diff --git a/.opc/config/company_orgs/org_cross-border-ecommerce_config.yaml b/.opc/config/company_orgs/org_cross-border-ecommerce_config.yaml new file mode 100644 index 0000000..bd97c68 --- /dev/null +++ b/.opc/config/company_orgs/org_cross-border-ecommerce_config.yaml @@ -0,0 +1,413 @@ +schema_version: 2 +kind: opc_org_architecture +organization_id: cross-border-ecommerce +organization_name: Cross-Border Ecommerce Team +company: + name: Cross-Border Ecommerce Team + topology: Ecommerce Growth Hub + company_profile: custom + execution_model: actor_runtime + final_decider_role_id: ecommerce_director + company_profiles: + - corporate + - custom +roles: +- id: ecommerce_director + name: Ecommerce Director + responsibility: Owns market choice, commercial goals, portfolio priorities, budget + allocation, operating cadence, risk decisions, and final delivery. + reports_to: owner + icon: leader + can_spawn: + - market_researcher + - listing_localization_specialist + - paid_media_specialist + - social_content_specialist + - operations_manager + - finance_analyst + tools: [] + preferred_external_agent: codex + prompt_refs: + - Clarify target platform, country, category, customer, margin target, budget, inventory + constraints, and time horizon before delegating. + - Require every recommendation to separate verified facts, assumptions, experiments, + owners, metrics, and stop conditions. + skill_refs: + - ecommerce-operating-system + - market-product-research + - compliance-freshness + - cross-border-guide + handoff_template_ref: null + memory_policy_ref: null + artifact_contract_ref: null + runtime_policy: + execution_strategy: native + allowed_downstream_roles: + - market_researcher + - listing_localization_specialist + - paid_media_specialist + - social_content_specialist + - operations_manager + - finance_analyst + review_role: null + default_turn_type: work + shell_timeout_override: null + setup_env_type: null + coordination_hints: {} + signal_capabilities: [] + parallelism_constraints: [] + gate_preferences: {} + capabilities: [] + role_type: coordinator + coordinator_policy: null +- id: market_researcher + name: Market and Product Researcher + responsibility: Researches demand, competition, pricing, reviews, trends, product + opportunities, and market-entry evidence. + reports_to: ecommerce_director + icon: search + can_spawn: [] + tools: [] + preferred_external_agent: codex + prompt_refs: + - Use current sources, record URLs and access dates, compare multiple competitors, + and quantify confidence and data gaps. + skill_refs: + - market-product-research + - compliance-freshness + handoff_template_ref: null + memory_policy_ref: null + artifact_contract_ref: null + runtime_policy: + execution_strategy: auto + allowed_downstream_roles: [] + review_role: null + default_turn_type: research + shell_timeout_override: null + setup_env_type: null + coordination_hints: {} + signal_capabilities: [] + parallelism_constraints: [] + gate_preferences: {} + capabilities: [] + role_type: worker + coordinator_policy: null +- id: listing_localization_specialist + name: Listing and Localization Specialist + responsibility: Produces localized product positioning, titles, bullets, descriptions, + keyword maps, image briefs, and storefront copy. + reports_to: ecommerce_director + icon: writing + can_spawn: [] + tools: [] + preferred_external_agent: codex + prompt_refs: + - Adapt claims and terminology to the target market and platform. Never invent certifications, + performance claims, or product facts. + skill_refs: + - listing-localization + - market-product-research + - compliance-freshness + handoff_template_ref: null + memory_policy_ref: null + artifact_contract_ref: null + runtime_policy: + execution_strategy: auto + allowed_downstream_roles: [] + review_role: null + default_turn_type: work + shell_timeout_override: null + setup_env_type: null + coordination_hints: {} + signal_capabilities: [] + parallelism_constraints: [] + gate_preferences: {} + capabilities: [] + role_type: worker + coordinator_policy: null +- id: paid_media_specialist + name: Paid Media Specialist + responsibility: Designs and optimizes PPC and paid-social campaigns, budgets, tracking, + experiments, and profitability controls. + reports_to: ecommerce_director + icon: target + can_spawn: [] + tools: [] + preferred_external_agent: codex + prompt_refs: + - Define funnel stage, audience, creative hypothesis, budget, attribution limits, + success metric, guardrails, and stop-loss rule for every campaign. + skill_refs: + - paid-media-optimization + - ecommerce-operating-system + handoff_template_ref: null + memory_policy_ref: null + artifact_contract_ref: null + runtime_policy: + execution_strategy: auto + allowed_downstream_roles: [] + review_role: null + default_turn_type: work + shell_timeout_override: null + setup_env_type: null + coordination_hints: {} + signal_capabilities: [] + parallelism_constraints: [] + gate_preferences: {} + capabilities: [] + role_type: worker + coordinator_policy: null +- id: social_content_specialist + name: Social Content Specialist + responsibility: Plans platform-native organic content, creator briefs, short-video + concepts, publishing cadence, and community feedback loops. + reports_to: ecommerce_director + icon: marketing + can_spawn: [] + tools: [] + preferred_external_agent: codex + prompt_refs: + - Build content around verified product value, target-customer situations, platform-native + formats, and measurable calls to action. + skill_refs: + - listing-localization + - paid-media-optimization + handoff_template_ref: null + memory_policy_ref: null + artifact_contract_ref: null + runtime_policy: + execution_strategy: auto + allowed_downstream_roles: [] + review_role: null + default_turn_type: work + shell_timeout_override: null + setup_env_type: null + coordination_hints: {} + signal_capabilities: [] + parallelism_constraints: [] + gate_preferences: {} + capabilities: [] + role_type: worker + coordinator_policy: null +- id: operations_manager + name: Ecommerce Operations Manager + responsibility: Owns catalog operations, order flow, inventory, fulfillment, customer + service coordination, SOPs, and operational incident handling. + reports_to: ecommerce_director + icon: settings + can_spawn: + - supply_chain_specialist + - customer_service_specialist + tools: [] + preferred_external_agent: codex + prompt_refs: + - Convert recommendations into repeatable SOPs with owner, trigger, input, output, + SLA, exception path, and audit evidence. + skill_refs: + - ecommerce-operating-system + - inventory-fulfillment + - cross-border-guide + handoff_template_ref: null + memory_policy_ref: null + artifact_contract_ref: null + runtime_policy: + execution_strategy: native + allowed_downstream_roles: + - supply_chain_specialist + - customer_service_specialist + review_role: null + default_turn_type: work + shell_timeout_override: null + setup_env_type: null + coordination_hints: {} + signal_capabilities: [] + parallelism_constraints: [] + gate_preferences: {} + capabilities: [] + role_type: coordinator + coordinator_policy: null +- id: supply_chain_specialist + name: Supply Chain Specialist + responsibility: Plans sourcing, lead times, replenishment, safety stock, logistics + options, landed cost, and inventory risk. + reports_to: operations_manager + icon: database + can_spawn: [] + tools: [] + preferred_external_agent: codex + prompt_refs: + - State assumptions for demand, lead time, MOQ, defect rate, freight, duties, and + service level; provide sensitivity ranges instead of false precision. + skill_refs: + - inventory-fulfillment + - ecommerce-operating-system + - cross-border-guide + handoff_template_ref: null + memory_policy_ref: null + artifact_contract_ref: null + runtime_policy: + execution_strategy: auto + allowed_downstream_roles: [] + review_role: null + default_turn_type: work + shell_timeout_override: null + setup_env_type: null + coordination_hints: {} + signal_capabilities: [] + parallelism_constraints: [] + gate_preferences: {} + capabilities: [] + role_type: worker + coordinator_policy: null +- id: customer_service_specialist + name: Customer Service Specialist + responsibility: Designs support macros, escalation paths, return handling, review + response, complaint analysis, and voice-of-customer feedback. + reports_to: operations_manager + icon: message + can_spawn: [] + tools: [] + preferred_external_agent: codex + prompt_refs: + - Keep responses factual, empathetic, policy-compliant, and explicit about what + requires human approval or account access. + skill_refs: + - customer-service-voice + - compliance-freshness + handoff_template_ref: null + memory_policy_ref: null + artifact_contract_ref: null + runtime_policy: + execution_strategy: auto + allowed_downstream_roles: [] + review_role: null + default_turn_type: work + shell_timeout_override: null + setup_env_type: null + coordination_hints: {} + signal_capabilities: [] + parallelism_constraints: [] + gate_preferences: {} + capabilities: [] + role_type: worker + coordinator_policy: null +- id: finance_analyst + name: Ecommerce Finance Analyst + responsibility: Models unit economics, pricing, contribution margin, CAC, ROAS, + cash conversion, scenario risk, and KPI reporting. + reports_to: ecommerce_director + icon: chart + can_spawn: [] + tools: [] + preferred_external_agent: codex + prompt_refs: + - Show formulas, currencies, tax and fee assumptions, data sources, and sensitivity + ranges. Flag missing inputs rather than guessing silently. + skill_refs: + - ecommerce-unit-economics + - paid-media-optimization + handoff_template_ref: null + memory_policy_ref: null + artifact_contract_ref: null + runtime_policy: + execution_strategy: auto + allowed_downstream_roles: [] + review_role: null + default_turn_type: analysis + shell_timeout_override: null + setup_env_type: null + coordination_hints: {} + signal_capabilities: [] + parallelism_constraints: [] + gate_preferences: {} + capabilities: [] + role_type: worker + coordinator_policy: null +employees: [] +escalation_rules: [] +runtime_policies: + custom: + communication: + default_mode: dm + blocking_default: true + meeting_required_for: + - budget_change + - compliance_risk + - inventory_risk + allow_broadcast: true + memory: + include_role_memory: true + include_project_memory: true + include_decision_log: true + include_artifact_index: true + recent_history_lines: 16 + handoff: + require_structured_handoff: true + require_ack: true + include_risks: true + include_open_questions: true + artifact: + enforce_contract: false + require_artifact_index: true + required_kinds: [] + review: + enable_work_item_gates: true + strict_gate_inference: true + require_reviewer_role: true + allow_human_override: true + gate_harness: + enabled: true + decision_mode: agent_first + default_degrade_policy: allow + auto_infer_turn_kind: true + auto_infer_gate_profile: true + max_rework_rounds_per_issue: 2 + stagnation_threshold: 2 + allow_pass_with_constraints: true + enable_delivery_constraints_propagation: true + agent_model: '' + agent_confidence_threshold: 0.55 + fallback_to_rules_on_parse_error: true + builtin_blocker_map: + workspace_mismatch: rework_same_work_item + missing_required_artifact: rework_same_work_item + verification_missing: rework_same_work_item + dependency_not_ready: rework_same_work_item + cross_work_item_conflict: replan + external_secret_missing: await_user_decision + permission_missing: escalate + environment_capability_gap: pass_with_constraints + quality_gap: rework_same_work_item + goal_env_mismatch: replan + unresolved_user_visible_risk: pass_with_constraints + turn_kind_overrides: {} + gate_profile_overrides: {} + parallel: + auto_dispatch: true + review_gate_enabled: true + max_workers: 7 + coordination: + inference_mode: llm_primary + fallback_mode: conservative + strict_gate_turn_kinds: + - verify + - deliver + mixed_gate_turn_kinds: + - synthesize + - review + - integration + allow_manager_release_for_mixed_only: true + allow_custom_signals: true +talent_templates: [] +teams: [] +team_runtime: + default_team_id: '' + shared_role_session_scope: team + allow_shared_role_sessions: true + seat_refresh_interval_seconds: 30 + metadata: {} +installed_packages: [] +role_serial_queue_enabled: true +metadata: + source: org_mode + organization_config_file: company_orgs/org_cross-border-ecommerce_config.yaml diff --git a/.opc/config/company_orgs/org_software-development_config.yaml b/.opc/config/company_orgs/org_software-development_config.yaml new file mode 100644 index 0000000..ebe2872 --- /dev/null +++ b/.opc/config/company_orgs/org_software-development_config.yaml @@ -0,0 +1,380 @@ +schema_version: 2 +kind: opc_org_architecture +organization_id: software-development +organization_name: Software Development Team +company: + name: Software Development Team + topology: Product Engineering Hub + company_profile: custom + execution_model: actor_runtime + final_decider_role_id: engineering_manager + company_profiles: + - corporate + - custom +roles: +- id: engineering_manager + name: Engineering Manager + responsibility: Owns scope, delivery, staffing, cross-role coordination, risk decisions, + and final acceptance for software projects. + reports_to: owner + icon: leader + can_spawn: + - product_manager + - software_architect + - qa_engineer + - security_reviewer + tools: [] + preferred_external_agent: codex + prompt_refs: + - Clarify the user goal, repository boundaries, constraints, acceptance criteria, + and delivery order before delegating. + - Require implementation evidence, focused tests, review findings, deployment notes, + and explicit residual risks before final delivery. + skill_refs: + - repo-onboarding + - software-delivery + - release-readiness + handoff_template_ref: null + memory_policy_ref: null + artifact_contract_ref: null + runtime_policy: + execution_strategy: native + allowed_downstream_roles: + - product_manager + - software_architect + - qa_engineer + - security_reviewer + review_role: null + default_turn_type: work + shell_timeout_override: null + setup_env_type: null + coordination_hints: {} + signal_capabilities: [] + parallelism_constraints: [] + gate_preferences: {} + capabilities: [] + role_type: coordinator + coordinator_policy: null +- id: product_manager + name: Product Manager + responsibility: Converts business goals into prioritized requirements, user flows, + acceptance criteria, and release scope. + reports_to: engineering_manager + icon: clipboard + can_spawn: [] + tools: [] + preferred_external_agent: codex + prompt_refs: + - Produce testable requirements and identify assumptions, exclusions, dependencies, + and user-visible behavior. + skill_refs: + - software-delivery + handoff_template_ref: null + memory_policy_ref: null + artifact_contract_ref: null + runtime_policy: + execution_strategy: auto + allowed_downstream_roles: [] + review_role: null + default_turn_type: work + shell_timeout_override: null + setup_env_type: null + coordination_hints: {} + signal_capabilities: [] + parallelism_constraints: [] + gate_preferences: {} + capabilities: [] + role_type: worker + coordinator_policy: null +- id: software_architect + name: Software Architect + responsibility: Owns repository analysis, architecture, technical decomposition, + interfaces, data design, and engineering integration. + reports_to: engineering_manager + icon: code + can_spawn: + - frontend_engineer + - backend_engineer + - devops_engineer + tools: [] + preferred_external_agent: codex + prompt_refs: + - Inspect the existing repository before proposing architecture. Prefer existing + patterns and define contracts between work items. + - Review implementation integration and reject changes that violate repository boundaries + or lack verification. + skill_refs: + - repo-onboarding + - software-delivery + - code-review-gate + - code-review + handoff_template_ref: null + memory_policy_ref: null + artifact_contract_ref: null + runtime_policy: + execution_strategy: native + allowed_downstream_roles: + - frontend_engineer + - backend_engineer + - devops_engineer + review_role: null + default_turn_type: work + shell_timeout_override: null + setup_env_type: null + coordination_hints: {} + signal_capabilities: [] + parallelism_constraints: [] + gate_preferences: {} + capabilities: [] + role_type: coordinator + coordinator_policy: null +- id: frontend_engineer + name: Frontend Engineer + responsibility: Implements accessible, responsive, tested frontend behavior using + the existing design system and framework conventions. + reports_to: software_architect + icon: design + can_spawn: [] + tools: [] + preferred_external_agent: codex + prompt_refs: + - Implement complete UI states and verify desktop and mobile behavior with focused + tests or browser evidence. + skill_refs: + - software-delivery + - testing-quality-gate + handoff_template_ref: null + memory_policy_ref: null + artifact_contract_ref: null + runtime_policy: + execution_strategy: external + allowed_downstream_roles: [] + review_role: null + default_turn_type: work + shell_timeout_override: null + setup_env_type: null + coordination_hints: {} + signal_capabilities: [] + parallelism_constraints: [] + gate_preferences: {} + capabilities: [] + role_type: worker + coordinator_policy: null +- id: backend_engineer + name: Backend Engineer + responsibility: Implements APIs, domain logic, persistence, integrations, migrations, + and backend tests. + reports_to: software_architect + icon: terminal + can_spawn: [] + tools: [] + preferred_external_agent: codex + prompt_refs: + - Preserve data and API compatibility, validate inputs, handle failure paths, and + add focused tests for changed behavior. + skill_refs: + - software-delivery + - testing-quality-gate + handoff_template_ref: null + memory_policy_ref: null + artifact_contract_ref: null + runtime_policy: + execution_strategy: external + allowed_downstream_roles: [] + review_role: null + default_turn_type: work + shell_timeout_override: null + setup_env_type: null + coordination_hints: {} + signal_capabilities: [] + parallelism_constraints: [] + gate_preferences: {} + capabilities: [] + role_type: worker + coordinator_policy: null +- id: qa_engineer + name: QA Engineer + responsibility: Independently validates requirements, regressions, edge cases, test + evidence, and release readiness. + reports_to: engineering_manager + icon: bug + can_spawn: [] + tools: [] + preferred_external_agent: codex + prompt_refs: + - Build a risk-based test matrix, run focused and integration checks, and report + reproducible defects with evidence. + skill_refs: + - testing-quality-gate + - code-review-gate + - code-review + - release-readiness + handoff_template_ref: null + memory_policy_ref: null + artifact_contract_ref: null + runtime_policy: + execution_strategy: auto + allowed_downstream_roles: [] + review_role: null + default_turn_type: verify + shell_timeout_override: null + setup_env_type: null + coordination_hints: {} + signal_capabilities: [] + parallelism_constraints: [] + gate_preferences: {} + capabilities: [] + role_type: worker + coordinator_policy: null +- id: devops_engineer + name: DevOps Engineer + responsibility: Owns environment setup, CI/CD, deployment, observability, rollback + planning, and operational verification. + reports_to: software_architect + icon: settings + can_spawn: [] + tools: [] + preferred_external_agent: codex + prompt_refs: + - Probe the environment first, keep changes reversible, document commands, and include + health checks and rollback steps. + skill_refs: + - repo-onboarding + - release-readiness + handoff_template_ref: null + memory_policy_ref: null + artifact_contract_ref: null + runtime_policy: + execution_strategy: auto + allowed_downstream_roles: [] + review_role: null + default_turn_type: setup + shell_timeout_override: 1800 + setup_env_type: null + coordination_hints: {} + signal_capabilities: [] + parallelism_constraints: [] + gate_preferences: {} + capabilities: [] + role_type: worker + coordinator_policy: null +- id: security_reviewer + name: Security Reviewer + responsibility: Reviews authentication, authorization, secrets, dependencies, input + handling, privacy, and abuse risks. + reports_to: engineering_manager + icon: shield + can_spawn: [] + tools: [] + preferred_external_agent: codex + prompt_refs: + - Review only the relevant attack surface, rank findings by severity, and distinguish + blockers from hardening opportunities. + skill_refs: + - code-review-gate + - code-review + - release-readiness + handoff_template_ref: null + memory_policy_ref: null + artifact_contract_ref: null + runtime_policy: + execution_strategy: auto + allowed_downstream_roles: [] + review_role: null + default_turn_type: review + shell_timeout_override: null + setup_env_type: null + coordination_hints: {} + signal_capabilities: [] + parallelism_constraints: [] + gate_preferences: {} + capabilities: [] + role_type: worker + coordinator_policy: null +employees: [] +escalation_rules: [] +runtime_policies: + custom: + communication: + default_mode: dm + blocking_default: true + meeting_required_for: + - architecture + - cross_team_conflict + allow_broadcast: true + memory: + include_role_memory: true + include_project_memory: true + include_decision_log: true + include_artifact_index: true + recent_history_lines: 16 + handoff: + require_structured_handoff: true + require_ack: true + include_risks: true + include_open_questions: true + artifact: + enforce_contract: false + require_artifact_index: true + required_kinds: [] + review: + enable_work_item_gates: true + strict_gate_inference: true + require_reviewer_role: true + allow_human_override: true + gate_harness: + enabled: true + decision_mode: agent_first + default_degrade_policy: allow + auto_infer_turn_kind: true + auto_infer_gate_profile: true + max_rework_rounds_per_issue: 2 + stagnation_threshold: 2 + allow_pass_with_constraints: true + enable_delivery_constraints_propagation: true + agent_model: '' + agent_confidence_threshold: 0.55 + fallback_to_rules_on_parse_error: true + builtin_blocker_map: + workspace_mismatch: rework_same_work_item + missing_required_artifact: rework_same_work_item + verification_missing: rework_same_work_item + dependency_not_ready: rework_same_work_item + cross_work_item_conflict: replan + external_secret_missing: await_user_decision + permission_missing: escalate + environment_capability_gap: pass_with_constraints + quality_gap: rework_same_work_item + goal_env_mismatch: replan + unresolved_user_visible_risk: pass_with_constraints + turn_kind_overrides: {} + gate_profile_overrides: {} + parallel: + auto_dispatch: true + review_gate_enabled: true + max_workers: 6 + coordination: + inference_mode: llm_primary + fallback_mode: conservative + strict_gate_turn_kinds: + - verify + - deliver + mixed_gate_turn_kinds: + - synthesize + - review + - integration + allow_manager_release_for_mixed_only: true + allow_custom_signals: true +talent_templates: [] +teams: [] +team_runtime: + default_team_id: '' + shared_role_session_scope: team + allow_shared_role_sessions: true + seat_refresh_interval_seconds: 30 + metadata: {} +installed_packages: [] +role_serial_queue_enabled: true +metadata: + source: org_mode + organization_config_file: company_orgs/org_software-development_config.yaml diff --git a/opc/database/store.py b/opc/database/store.py index 1de9d22..9eeaed5 100644 --- a/opc/database/store.py +++ b/opc/database/store.py @@ -3952,6 +3952,23 @@ class OPCStore: current = {} if token_record is None: current.pop(agent, None) + legacy_agent = str( + current.get("external_resume_agent_type") + or ( + current.get("selected_execution_agent") + if current.get("external_resume_session_id") + else "" + ) + or "" + ).strip() + if legacy_agent == agent: + for key in ( + "external_resume_session_id", + "external_resume_session_scope_id", + "external_resume_agent_type", + "resume_source_session", + ): + current.pop(key, None) else: current[agent] = { str(k): v for k, v in dict(token_record).items() diff --git a/opc/engine.py b/opc/engine.py index 5d757c6..6e35396 100644 --- a/opc/engine.py +++ b/opc/engine.py @@ -665,6 +665,7 @@ class OPCEngine: self.approval_engine, task_preparer=self._build_external_agent_task, communication=self.communication, + org_engine=self.org_engine, ) self.secretary = SecretaryService( llm=self.llm, @@ -11330,6 +11331,53 @@ class OPCEngine: if callable(reset): await reset(tasks, payload=payload) + def _merge_company_runtime_checkpoint_payload( + self, + payload: dict[str, Any], + supplement: dict[str, Any], + ) -> dict[str, Any]: + merged = copy.deepcopy(payload) + + merged["task_ids"] = list(dict.fromkeys([ + *list(merged.get("task_ids", []) or []), + *list(supplement.get("task_ids", []) or []), + ])) + for key, identity_key in ( + ("task_snapshots", "task_id"), + ("active_work_items", "work_item_id"), + ): + indexed = { + str(item.get(identity_key, "") or "").strip(): copy.deepcopy(item) + for item in list(merged.get(key, []) or []) + if isinstance(item, dict) + and str(item.get(identity_key, "") or "").strip() + } + for item in list(supplement.get(key, []) or []): + if not isinstance(item, dict): + continue + identity = str(item.get(identity_key, "") or "").strip() + if identity: + indexed[identity] = copy.deepcopy(item) + merged[key] = list(indexed.values()) + + for key in ("role_runtime_session_ids", "seat_state_ids"): + merged[key] = list(dict.fromkeys([ + *list(merged.get(key, []) or []), + *list(supplement.get(key, []) or []), + ])) + for key in ( + "native_runtime_resume", + "adapter_session_state", + "external_sessions", + "progress_tail", + ): + merged[key] = { + **dict(merged.get(key, {}) or {}), + **copy.deepcopy(dict(supplement.get(key, {}) or {})), + } + merged["basis_hash"] = self._checkpoint_basis_hash(merged) + return merged + async def _load_company_suspend_checkpoint_runtime( self, checkpoint: ExecutionCheckpoint, @@ -11352,16 +11400,56 @@ class OPCEngine: task = await self.store.get_task(task_id) if task: tasks.append(task) - if not tasks and parent_session_id: + + plan_data = payload.get("company_work_item_plan") or payload.get("plan") or {} + plan = deserialize_company_work_item_runtime_plan(plan_data if isinstance(plan_data, dict) else {}) + if parent_session_id: snapshot = await self._load_company_runtime_snapshot(parent_session_id) if snapshot: - _plan, tasks = snapshot + snapshot_plan, current_tasks = snapshot + if not tasks: + tasks = current_tasks + if not plan.projections: + plan = snapshot_plan + else: + known_task_ids = {task.id for task in tasks} + held_task_ids = await self._company_suspend_resume_candidate_task_ids( + current_tasks + ) + supplemental_tasks = [ + task + for task in current_tasks + if task.id not in known_task_ids and task.id in held_task_ids + ] + if supplemental_tasks: + supplement = await self._company_runtime_checkpoint_payload( + checkpoint_type=str( + checkpoint.checkpoint_type + or payload.get("checkpoint_type") + or "company_runtime_interrupted" + ), + reason=str(payload.get("reason", "") or "runtime_resume_reconciliation"), + parent_session_id=parent_session_id, + origin_task_id=str( + checkpoint.task_id + or payload.get("origin_task_id") + or "" + ).strip() + or None, + plan=plan, + tasks=supplemental_tasks, + stop_intent_id=str(payload.get("stop_intent_id", "") or "").strip() + or None, + ) + payload = self._merge_company_runtime_checkpoint_payload( + payload, + supplement, + ) + tasks.extend(supplemental_tasks) if not tasks: await self.store.resolve_execution_checkpoint(checkpoint.checkpoint_id, status="invalid") return None - plan_data = payload.get("company_work_item_plan") or payload.get("plan") or {} - plan = deserialize_company_work_item_runtime_plan(plan_data if isinstance(plan_data, dict) else {}) payload["checkpoint_id"] = checkpoint.checkpoint_id payload["checkpoint_type"] = checkpoint.checkpoint_type return payload, parent_session_id, plan, tasks diff --git a/opc/layer2_organization/company_mode.py b/opc/layer2_organization/company_mode.py index 4dc5d67..6a91c99 100644 --- a/opc/layer2_organization/company_mode.py +++ b/opc/layer2_organization/company_mode.py @@ -5661,7 +5661,18 @@ class CompanyWorkItemExecutor: await self._emit_progress(f"[Company:{projection_id}] awaiting peer", task_id=task.id) await self.save_task(task) else: + await transition_work_item_from_task( + self.store, + task, + target_status_or_phase=result.status, + reason=f"work_item_{result.status.value}", + ) + await self._append_progress( + task, + f"Work item ended with status {result.status.value}.", + ) await self._emit_progress(f"[Company:{projection_id}] failed", task_id=task.id) + await self.save_task(task) return result # Comms park check: if the agent sent any blocking messages @@ -7532,12 +7543,19 @@ class CompanyWorkItemExecutor: metadata_updates["review_resolution"] = copy.deepcopy(resolution) metadata_updates["review_resolution_state"] = "pending" try: + current = None + if hasattr(self.store, "get_delegation_work_item"): + current = await self.store.get_delegation_work_item(review_work_item_id) + update_kwargs: dict[str, Any] = { + "claimed_by_role_runtime_session_id": "", + "claimed_by_seat_id": "", + "metadata_updates": metadata_updates, + } + if current is None or current.phase not in DONE_PHASES or current.phase == phase: + update_kwargs["phase"] = phase persisted = await self.store.update_delegation_work_item( review_work_item_id, - phase=phase, - claimed_by_role_runtime_session_id="", - claimed_by_seat_id="", - metadata_updates=metadata_updates, + **update_kwargs, ) except Exception: logger.opt(exception=True).warning( diff --git a/opc/layer2_organization/company_runtime.py b/opc/layer2_organization/company_runtime.py index 709208e..53f09f6 100644 --- a/opc/layer2_organization/company_runtime.py +++ b/opc/layer2_organization/company_runtime.py @@ -1710,6 +1710,7 @@ class CompanyRuntime: **dict(session.resume_state), **runtime_state, } + await self._refresh_adapter_session_state_from_store(session) adapter_state_updates = self._adapter_state_from_result(task, result) if adapter_state_updates: session.adapter_session_state = { @@ -1899,6 +1900,31 @@ class CompanyRuntime: return candidate return None + async def _refresh_adapter_session_state_from_store( + self, + session: CompanyMemberSession, + ) -> None: + role_session_id = str(session.role_session_id or "").strip() + getter = getattr(self.store, "get_delegation_role_session", None) + if not role_session_id or not callable(getter): + return + try: + persisted = await getter(role_session_id) + except Exception: + logger.opt(exception=True).debug( + "company runtime adapter-state refresh failed" + ) + return + if persisted is None: + return + adapter_state = dict( + getattr(persisted, "adapter_session_state", {}) or {} + ) + session.adapter_session_state = adapter_state + role_session = self.role_sessions.get(role_session_id) + if role_session is not None: + role_session.adapter_session_state = dict(adapter_state) + def _ensure_role_session(self, task: Task) -> DelegationRoleSession | None: role_id = self._role_id(task) if not role_id: diff --git a/opc/layer3_agent/adapters/base.py b/opc/layer3_agent/adapters/base.py index 8237542..9ee6fab 100644 --- a/opc/layer3_agent/adapters/base.py +++ b/opc/layer3_agent/adapters/base.py @@ -517,7 +517,28 @@ class ExternalAgentAdapter(abc.ABC): merged = {**os.environ, **{str(k): str(v) for k, v in extra_env.items()}} path_value = merged.get("PATH") or merged.get("Path") or merged.get("path") or "" resolved = shutil.which(executable, path=path_value or None) - if not resolved or resolved == executable: + if not resolved: + return cmd + + if os.name == "nt": + resolved = ExternalAgentAdapter._resolve_windows_command_shim( + executable, + resolved, + path_value=path_value, + ) + + if os.name == "nt" and os.path.splitext(resolved)[1].lower() in {".cmd", ".bat"}: + comspec = str(os.environ.get("COMSPEC") or "").strip() + if not comspec: + comspec = shutil.which("cmd.exe") or "cmd.exe" + wrapped_cmd = [comspec, "/d", "/s", "/c", resolved, *cmd[1:]] + if isinstance(launch_metadata, dict): + launch_metadata.setdefault("configured_binary", executable) + launch_metadata["resolved_binary"] = resolved + launch_metadata["launch_wrapper"] = comspec + return wrapped_cmd + + if resolved == executable: return cmd resolved_cmd = list(cmd) resolved_cmd[0] = resolved @@ -526,6 +547,31 @@ class ExternalAgentAdapter(abc.ABC): launch_metadata["resolved_binary"] = resolved return resolved_cmd + @staticmethod + def _resolve_windows_command_shim( + executable: str, + resolved: str, + *, + path_value: str = "", + ) -> str: + """Prefer a Windows-launchable sibling over an extensionless POSIX shim.""" + if os.path.splitext(resolved)[1]: + return resolved + + for extension in (".exe", ".com", ".cmd", ".bat"): + sibling = f"{resolved}{extension}" + if os.path.isfile(sibling): + return sibling + + if os.path.dirname(executable): + return resolved + + for extension in (".exe", ".com", ".cmd", ".bat"): + candidate = shutil.which(f"{executable}{extension}", path=path_value or None) + if candidate: + return candidate + return resolved + async def send_process_input( self, proc: asyncio.subprocess.Process, diff --git a/opc/layer3_agent/adapters/codex_adapter.py b/opc/layer3_agent/adapters/codex_adapter.py index 6763d1b..c2b8c32 100644 --- a/opc/layer3_agent/adapters/codex_adapter.py +++ b/opc/layer3_agent/adapters/codex_adapter.py @@ -32,6 +32,8 @@ class CodexAdapter(ExternalAgentAdapter): "CODEX_SANDBOX_NETWORK_DISABLED", "CODEX_THREAD_ID", } + _RUNTIME_SHELL_ENV_KEYS = {"PYTHONPATH"} + _RUNTIME_SHELL_ENV_PREFIXES = ("OPC_",) _PROMPT_SENTINEL = "-" _TTY_EOF = b"\x04" _INTERACTIVE_ARGV_PROMPT_MAX_BYTES = 16 * 1024 @@ -118,6 +120,64 @@ class CodexAdapter(ExternalAgentAdapter): normalized = key.upper() return normalized in cls._PARENT_CODEX_RUNTIME_ENV_VARS + @classmethod + def _runtime_shell_environment_config_args( + cls, + extra_env: dict[str, str] | None, + ) -> tuple[list[str], list[str]]: + """Forward only OpenOPC's runtime contract into Codex shell tools. + + Codex can intentionally run with ``shell_environment_policy.inherit=core``. + The broker process still receives ``OPC_*`` variables, but commands launched + by Codex do not unless they are added to the policy's ``set`` table. + """ + forwarded: dict[str, str] = {} + for raw_key, raw_value in dict(extra_env or {}).items(): + key = str(raw_key).strip() + if not key: + continue + if key not in cls._RUNTIME_SHELL_ENV_KEYS and not key.startswith( + cls._RUNTIME_SHELL_ENV_PREFIXES + ): + continue + value = str(raw_value) + if key == "OPC_ALLOWED_COLLAB_TOOLS": + try: + parsed = json.loads(value) + except json.JSONDecodeError: + parsed = None + if isinstance(parsed, list): + value = ",".join( + str(item).strip() for item in parsed if str(item).strip() + ) + forwarded[key] = value + + args: list[str] = [] + for key in sorted(forwarded): + value = forwarded[key] + if "'''" in value: + encoded = json.dumps(value, ensure_ascii=False) + else: + encoded = f"'''{value}'''" + args.extend(["-c", f"shell_environment_policy.set.{key}={encoded}"]) + return args, sorted(forwarded) + + @classmethod + def _inject_runtime_shell_environment( + cls, + cmd: list[str], + extra_env: dict[str, str] | None, + launch_metadata: dict[str, Any] | None = None, + ) -> list[str]: + config_args, forwarded_keys = cls._runtime_shell_environment_config_args(extra_env) + if not config_args or not cmd: + return list(cmd) + insert_at = 2 if len(cmd) > 1 and str(cmd[1]).strip() == "exec" else 1 + launch_cmd = [*cmd[:insert_at], *config_args, *cmd[insert_at:]] + if isinstance(launch_metadata, dict): + launch_metadata["runtime_shell_environment_keys"] = forwarded_keys + return launch_cmd + def build_workspace_args(self, workspace_path: str | None = None) -> list[str]: args: list[str] = [] if workspace_path: @@ -564,8 +624,13 @@ class CodexAdapter(ExternalAgentAdapter): prompt_transport = str((launch_metadata or {}).get("prompt_transport") or "").strip().lower() prompt = self._prompt_text_from_task(task) if prompt_transport == "stdin" else "" env = self.build_process_env(extra_env) - launch_cmd = self._resolve_launch_command( + runtime_cmd = self._inject_runtime_shell_environment( cmd, + extra_env, + launch_metadata=launch_metadata, + ) + launch_cmd = self._resolve_launch_command( + runtime_cmd, extra_env=extra_env, launch_metadata=launch_metadata, ) diff --git a/opc/layer3_agent/external_broker.py b/opc/layer3_agent/external_broker.py index 337895f..3fd7f16 100644 --- a/opc/layer3_agent/external_broker.py +++ b/opc/layer3_agent/external_broker.py @@ -92,11 +92,13 @@ class ExternalAgentBroker: approval_engine: ApprovalEngine, task_preparer: Callable[[Task], Coroutine[Any, Any, Task]] | None = None, communication: CommunicationManager | None = None, + org_engine: Any | None = None, ) -> None: self.store = store self.approval_engine = approval_engine self.task_preparer = task_preparer self.communication = communication + self.org_engine = org_engine @staticmethod def _normalize_external_agent_choice(value: Any) -> str: @@ -137,19 +139,19 @@ class ExternalAgentBroker: ) return selected - async def _provider_stream_token_allows_resume( + async def _stored_provider_token_allows_resume( self, *, adapter: ExternalAgentAdapter, task: Task, role_session_id: str, token: str, - ) -> bool: - """Cross-check an early stream token against its latest run status.""" + ) -> bool | None: + """Return the latest durable resumability verdict for one provider token.""" list_sessions = getattr(self.store, "list_external_sessions", None) if not callable(list_sessions): - return False + return None project_id = str(task.project_id or "default").strip() or "default" kwargs: dict[str, Any] = {"project_id": project_id, "limit": 100} if role_session_id: @@ -160,19 +162,30 @@ class ExternalAgentBroker: sessions = await list_sessions(**kwargs) except Exception: logger.opt(exception=True).debug( - "External resume restore: provider-stream status lookup failed" + "External resume restore: provider-token status lookup failed" ) - return False - for session in sessions: - if str(getattr(session, "agent_type", "") or "").strip() != adapter.agent_type: - continue - if external_session_matches_provider_token(session, token): - return ( - external_session_allows_resume(session) - and str(getattr(session, "status", "") or "").strip().lower() - in {"done", "suspended"} - ) - return False + return None + matching = [ + session + for session in sessions + if str(getattr(session, "agent_type", "") or "").strip() + == adapter.agent_type + and external_session_matches_provider_token(session, token) + ] + if not matching: + return None + selected, selected_token = select_best_external_resume_session( + matching, + agent_type=adapter.agent_type, + project_id=project_id, + ) + return bool( + selected is not None + and selected_token == token + and external_session_allows_resume(selected) + and str(getattr(selected, "status", "") or "").strip().lower() + in {"done", "suspended"} + ) @classmethod def _task_explicitly_selected_external_agent(cls, task: Task, agent_type: str) -> bool: @@ -474,9 +487,12 @@ class ExternalAgentBroker: return if str(getattr(config, "session_mode", "") or "").strip().lower() == "new": return - # Respect already-configured resume state. - if str(getattr(config, "session_mode", "") or "").strip().lower() == "resume" and getattr(config, "session_id", ""): - return + configured_session_token = ( + str(getattr(config, "session_id", "") or "").strip() + if str(getattr(config, "session_mode", "") or "").strip().lower() + == "resume" + else "" + ) store = getattr(self, "store", None) if store is None or not hasattr(store, "get_external_session"): @@ -494,7 +510,7 @@ class ExternalAgentBroker: # Fix 5 PR6: canonical source is ``role_runtime_session.adapter_session_state[agent_type]``. # Check it first; the ExternalSession table is a compatibility # fallback for legacy rows written before PR6 landed. - session_token = "" + session_token = configured_session_token if role_session_id and hasattr(store, "get_role_session_adapter_state"): try: entry = await store.get_role_session_adapter_state( @@ -507,28 +523,29 @@ class ExternalAgentBroker: ) entry = None if isinstance(entry, dict): - session_token = str( + role_session_token = str( entry.get("resume_session_id") or entry.get("provider_session_id") or "" ).strip() if not is_provider_session_token( - session_token, + role_session_token, agent_type=adapter.agent_type, project_id=project_id, ): - session_token = "" - if ( - session_token - and str(entry.get("source", "") or "").strip() - == "provider_stream" - and not await self._provider_stream_token_allows_resume( + role_session_token = "" + session_token = session_token or role_session_token + token_allows_resume = ( + await self._stored_provider_token_allows_resume( adapter=adapter, task=task, role_session_id=role_session_id, token=session_token, ) - ): + if session_token + else None + ) + if session_token and token_allows_resume is False: session_token = "" clear_role_state = getattr( store, @@ -544,8 +561,23 @@ class ExternalAgentBroker: ) except Exception: logger.opt(exception=True).debug( - "External resume restore: stale provider-stream token clear failed" + "External resume restore: stale provider token clear failed" ) + if hasattr(config, "session_mode"): + config.session_mode = "new" + if hasattr(config, "session_id"): + config.session_id = "" + task.metadata = dict(task.metadata or {}) + task.metadata.pop("external_resume_session_id", None) + task.metadata.pop("external_resume_session_scope_id", None) + task.metadata.pop("external_resume_agent_type", None) + task.metadata["external_resume_fallback"] = ( + "provider_terminal_failure" + ) + if on_progress: + await on_progress( + f"[External resume] {adapter.agent_type} skipped prior failed session" + ) # Do not immediately rediscover the same unfinalized or # failed stream row through the compatibility fallback. return @@ -2552,20 +2584,34 @@ class ExternalAgentBroker: and hasattr(self.store, "get_role_session_adapter_state") and hasattr(self.store, "update_role_session_adapter_state") ): - # A stream token is durable early so Stop can retain it. A normal - # terminal failure, however, must not leave that attempt's token - # pinned for a later unrelated turn. + # A stream token is durable early so Stop can retain it. A normal + # terminal failure must clear both a token discovered by this task + # and an older role token that this failed attempt resumed. try: current = await self.store.get_role_session_adapter_state( role_session_id, adapter.agent_type, ) + current_token = "" + if isinstance(current, dict): + current_token = str( + current.get("resume_session_id") + or current.get("provider_session_id") + or "" + ).strip() + failed_token = str( + resume_session_id + or provider_session_id + or getattr(adapter.config, "session_id", "") + or "" + ).strip() if ( isinstance(current, dict) - and str(current.get("last_task_id", "") or "").strip() - == str(task.id or "").strip() - and str(current.get("source", "") or "").strip() - == "provider_stream" + and ( + str(current.get("last_task_id", "") or "").strip() + == str(task.id or "").strip() + or bool(failed_token and current_token == failed_token) + ) ): await self.store.update_role_session_adapter_state( role_session_id, @@ -2576,3 +2622,19 @@ class ExternalAgentBroker: logger.opt(exception=True).debug( "Failed to clear provider-stream role state after terminal failure" ) + if result.status != TaskStatus.DONE: + failed_token = str( + resume_session_id + or provider_session_id + or getattr(adapter.config, "session_id", "") + or "" + ).strip() + task_token = str( + (task.metadata or {}).get("external_resume_session_id", "") or "" + ).strip() + if failed_token and task_token == failed_token: + task.metadata = dict(task.metadata or {}) + task.metadata.pop("external_resume_session_id", None) + task.metadata.pop("external_resume_session_scope_id", None) + task.metadata.pop("external_resume_agent_type", None) + task.metadata["external_resume_fallback"] = "provider_terminal_failure" diff --git a/opc/layer3_agent/external_session_identity.py b/opc/layer3_agent/external_session_identity.py index de83d6c..c080cd3 100644 --- a/opc/layer3_agent/external_session_identity.py +++ b/opc/layer3_agent/external_session_identity.py @@ -61,6 +61,23 @@ def provider_token_from_external_session( ) -> str: if not external_session_allows_resume(session): return "" + return _provider_token_from_session_identity( + session, + agent_type=agent_type, + project_id=project_id, + ) + + +def _provider_token_from_session_identity( + session: Any | None, + *, + agent_type: str, + project_id: str, +) -> str: + """Extract a provider token without treating its row as resumable.""" + + if session is None: + return "" metadata = dict(getattr(session, "metadata", {}) or {}) for candidate in ( metadata.get("resume_session_id"), @@ -108,7 +125,7 @@ def select_best_external_resume_session( ) -> tuple[Any | None, str]: """Select the newest valid provider capability, ignoring placeholders.""" - valid: list[tuple[Any, str]] = [] + latest_by_token: dict[str, Any] = {} normalized_agent = str(agent_type or "").strip() for session in list(sessions or []): if ( @@ -116,23 +133,35 @@ def select_best_external_resume_session( != normalized_agent ): continue - token = provider_token_from_external_session( + token = _provider_token_from_session_identity( session, agent_type=normalized_agent, project_id=project_id, ) - if token: - valid.append((session, token)) + if not token: + continue + current = latest_by_token.get(token) + if current is None or _session_timestamp(session) > _session_timestamp(current): + latest_by_token[token] = session + + valid = [ + (session, token) + for token, session in latest_by_token.items() + if external_session_allows_resume(session) + ] if not valid: return None, "" def _sort_key(item: tuple[Any, str]) -> tuple[float, str]: session, token = item - updated_at = getattr(session, "updated_at", None) - try: - timestamp = float(updated_at.timestamp()) - except Exception: - timestamp = 0.0 - return timestamp, token + return _session_timestamp(session), token return max(valid, key=_sort_key) + + +def _session_timestamp(session: Any) -> float: + updated_at = getattr(session, "updated_at", None) + try: + return float(updated_at.timestamp()) + except Exception: + return 0.0 diff --git a/opc/plugins/office_ui/__init__.py b/opc/plugins/office_ui/__init__.py index 3d11ec6..b928b96 100644 --- a/opc/plugins/office_ui/__init__.py +++ b/opc/plugins/office_ui/__init__.py @@ -91,6 +91,19 @@ def _ensure_aiohttp() -> None: _pip_install(*missing) +def _run_npm(npm: str, *args: str) -> None: + """Run npm in a way that also works when Windows resolves npm.cmd.""" + cmd = [npm, *args] + if sys.platform == "win32": + npm_path = Path(npm) + npm_cmd = npm_path.with_suffix(".cmd") + if npm_path.suffix.lower() in {".cmd", ".bat"}: + cmd = [os.environ.get("COMSPEC", "cmd.exe"), "/c", npm, *args] + elif npm_cmd.exists(): + cmd = [os.environ.get("COMSPEC", "cmd.exe"), "/c", str(npm_cmd), *args] + subprocess.check_call(cmd, cwd=_FRONTEND_SRC) + + def _ensure_frontend() -> None: """Build frontend if frontend_dist is missing, empty, or stale.""" if not _frontend_needs_rebuild(): @@ -114,11 +127,11 @@ def _ensure_frontend() -> None: node_modules = _FRONTEND_SRC / "node_modules" if not node_modules.is_dir(): terminal_status("Installing npm dependencies") - subprocess.check_call([npm, "install"], cwd=_FRONTEND_SRC) + _run_npm(npm, "install") # npm run build → outputs to ../frontend_dist via vite config terminal_status("Building frontend bundle") - subprocess.check_call([npm, "run", "build"], cwd=_FRONTEND_SRC) + _run_npm(npm, "run", "build") if _FRONTEND_DIST.is_dir() and any(_FRONTEND_DIST.iterdir()): terminal_status("Frontend built successfully", kind="success") diff --git a/opc/plugins/office_ui/frontend_dist/assets/index-DEvLDWDw.css b/opc/plugins/office_ui/frontend_dist/assets/index-B6-ikSHW.css similarity index 92% rename from opc/plugins/office_ui/frontend_dist/assets/index-DEvLDWDw.css rename to opc/plugins/office_ui/frontend_dist/assets/index-B6-ikSHW.css index 27a96e0..6c99d7a 100644 --- a/opc/plugins/office_ui/frontend_dist/assets/index-DEvLDWDw.css +++ b/opc/plugins/office_ui/frontend_dist/assets/index-B6-ikSHW.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-shell{flex:1;min-height:0;min-width:0;position:relative;display:flex;flex-direction:column;overflow:hidden}.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;position:relative}.msg-list:focus{outline:none}.msg-list-following{overflow-anchor:none}.msg-list-browsing{overflow-anchor:auto}.msg-list-content{width:100%;min-height:100%}.msg-timeline-row{overflow-anchor:auto}.msg-list-following .msg-timeline-row{overflow-anchor:none}.msg-end-anchor{height:1px;flex-shrink:0;overflow-anchor:none}.msg-list-floating-actions{position:absolute;left:50%;bottom:12px;z-index:8;transform:translate(-50%);display:flex;align-items:center;gap:8px;max-width:calc(100% - 24px);pointer-events:none}.msg-list-float-btn{pointer-events:auto;min-width:0;max-width:min(320px,70vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid color-mix(in srgb,var(--border) 72%,var(--accent) 28%);border-radius:999px;padding:7px 12px;background:color-mix(in srgb,var(--bg-elevated) 92%,var(--accent) 8%);color:var(--text);box-shadow:0 6px 22px #00000047;font:inherit;font-size:11px;font-weight:600;cursor:pointer}.msg-list-float-btn:hover{border-color:var(--accent);background:color-mix(in srgb,var(--bg-elevated) 84%,var(--accent) 16%)}.msg-list-pending-btn{border-color:color-mix(in srgb,var(--yellow) 55%,var(--border));color:var(--yellow)}.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-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,.ctx-body>.msg-list-shell{min-height:0}.ctx-work-item-progress{flex:0 0 84px;height:84px;min-height:84px;padding:12px 12px 0;overflow:hidden;position:relative;z-index:1;background:var(--bg-elevated)}.ctx-work-item-progress .wi-progress-card{box-sizing:border-box;height:72px;padding:10px 12px;gap:7px;overflow:hidden}.ctx-work-item-progress .wi-progress-pipeline{min-width:0;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.ctx-work-item-progress .wi-progress-pipeline::-webkit-scrollbar{display:none}.ctx-work-item-progress .wi-projection-group{flex:0 0 auto}.ctx-work-item-progress .wi-progress-pipeline-empty{color:var(--text-secondary);font-size:11px;line-height:22px;white-space:nowrap}.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}}.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{height:min(400px,55vh);min-height:220px;overflow:hidden;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:6px;padding:4px 0;background:var(--bg)}.task-detail-linked-messages>.msg-list-shell{flex:1;min-height:0}.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} +.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-shell{flex:1;min-height:0;min-width:0;position:relative;display:flex;flex-direction:column;overflow:hidden}.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;position:relative}.msg-list:focus{outline:none}.msg-list-following{overflow-anchor:none}.msg-list-browsing{overflow-anchor:auto}.msg-list-content{width:100%;min-height:100%}.msg-timeline-row{overflow-anchor:auto}.msg-list-following .msg-timeline-row{overflow-anchor:none}.msg-end-anchor{height:1px;flex-shrink:0;overflow-anchor:none}.msg-list-floating-actions{position:absolute;left:50%;bottom:12px;z-index:8;transform:translate(-50%);display:flex;align-items:center;gap:8px;max-width:calc(100% - 24px);pointer-events:none}.msg-list-float-btn{pointer-events:auto;min-width:0;max-width:min(320px,70vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid color-mix(in srgb,var(--border) 72%,var(--accent) 28%);border-radius:999px;padding:7px 12px;background:color-mix(in srgb,var(--bg-elevated) 92%,var(--accent) 8%);color:var(--text);box-shadow:0 6px 22px #00000047;font:inherit;font-size:11px;font-weight:600;cursor:pointer}.msg-list-float-btn:hover{border-color:var(--accent);background:color-mix(in srgb,var(--bg-elevated) 84%,var(--accent) 16%)}.msg-list-pending-btn{border-color:color-mix(in srgb,var(--yellow) 55%,var(--border));color:var(--yellow)}.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-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,.ctx-body>.msg-list-shell{min-height:0}.ctx-work-item-progress{flex:0 0 84px;height:84px;min-height:84px;padding:12px 12px 0;overflow:hidden;position:relative;z-index:1;background:var(--bg-elevated)}.ctx-work-item-progress .wi-progress-card{box-sizing:border-box;height:72px;padding:10px 12px;gap:7px;overflow:hidden}.ctx-work-item-progress .wi-progress-pipeline{min-width:0;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.ctx-work-item-progress .wi-progress-pipeline::-webkit-scrollbar{display:none}.ctx-work-item-progress .wi-projection-group{flex:0 0 auto}.ctx-work-item-progress .wi-progress-pipeline-empty{color:var(--text-secondary);font-size:11px;line-height:22px;white-space:nowrap}.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}}.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{height:min(400px,55vh);min-height:220px;overflow:hidden;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:6px;padding:4px 0;background:var(--bg)}.task-detail-linked-messages>.msg-list-shell{flex:1;min-height:0}.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}.language-toggle{display:inline-flex;align-items:center;flex:0 0 auto;height:30px;padding:2px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.language-toggle-btn{flex:0 0 auto;min-width:34px;height:24px;padding:0 8px;border:0;border-radius:calc(var(--radius-sm) - 2px);background:transparent;color:var(--text-secondary);font-size:11px;line-height:1;cursor:pointer}.language-toggle-btn:hover{color:var(--text);background:var(--surface-hover)}.language-toggle-btn.active{color:var(--accent);background:var(--accent-soft)}.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-BgyI65M_.js b/opc/plugins/office_ui/frontend_dist/assets/index-BgyI65M_.js deleted file mode 100644 index 789edae..0000000 --- a/opc/plugins/office_ui/frontend_dist/assets/index-BgyI65M_.js +++ /dev/null @@ -1,167 +0,0 @@ -import{g as ma,r as YM}from"./phaser-DFK5Ua9d.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const o of r)if(o.type==="childList")for(const a of o.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&i(a)}).observe(document,{childList:!0,subtree:!0});function n(r){const o={};return r.integrity&&(o.integrity=r.integrity),r.referrerPolicy&&(o.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?o.credentials="include":r.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function i(r){if(r.ep)return;r.ep=!0;const o=n(r);fetch(r.href,o)}})();var lg={exports:{}},Mc={};var Ck;function XM(){if(Ck)return Mc;Ck=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function n(i,r,o){var a=null;if(o!==void 0&&(a=""+o),r.key!==void 0&&(a=""+r.key),"key"in r){o={};for(var c in r)c!=="key"&&(o[c]=r[c])}else o=r;return r=o.ref,{$$typeof:e,type:i,key:a,ref:r!==void 0?r:null,props:o}}return Mc.Fragment=t,Mc.jsx=n,Mc.jsxs=n,Mc}var jk;function KM(){return jk||(jk=1,lg.exports=XM()),lg.exports}var u=KM(),cg={exports:{}},Ct={};var Ek;function ZM(){if(Ek)return Ct;Ek=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),r=Symbol.for("react.profiler"),o=Symbol.for("react.consumer"),a=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),m=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),p=Symbol.for("react.activity"),g=Symbol.iterator;function x(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(){}},_=Object.assign,k={};function w(U,Z,F){this.props=U,this.context=Z,this.refs=k,this.updater=F||v}w.prototype.isReactComponent={},w.prototype.setState=function(U,Z){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,Z,"setState")},w.prototype.forceUpdate=function(U){this.updater.enqueueForceUpdate(this,U,"forceUpdate")};function S(){}S.prototype=w.prototype;function j(U,Z,F){this.props=U,this.context=Z,this.refs=k,this.updater=F||v}var N=j.prototype=new S;N.constructor=j,_(N,w.prototype),N.isPureReactComponent=!0;var O=Array.isArray;function R(){}var D={H:null,A:null,T:null,S:null},I=Object.prototype.hasOwnProperty;function L(U,Z,F){var K=F.ref;return{$$typeof:e,type:U,key:Z,ref:K!==void 0?K:null,props:F}}function M(U,Z){return L(U.type,Z,U.props)}function A(U){return typeof U=="object"&&U!==null&&U.$$typeof===e}function B(U){var Z={"=":"=0",":":"=2"};return"$"+U.replace(/[=:]/g,function(F){return Z[F]})}var W=/\/+/g;function P(U,Z){return typeof U=="object"&&U!==null&&U.key!=null?B(""+U.key):Z.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(R,R):(U.status="pending",U.then(function(Z){U.status==="pending"&&(U.status="fulfilled",U.value=Z)},function(Z){U.status==="pending"&&(U.status="rejected",U.reason=Z)})),U.status){case"fulfilled":return U.value;case"rejected":throw U.reason}}throw U}function $(U,Z,F,K,ee){var te=typeof U;(te==="undefined"||te==="boolean")&&(U=null);var oe=!1;if(U===null)oe=!0;else switch(te){case"bigint":case"string":case"number":oe=!0;break;case"object":switch(U.$$typeof){case e:case t:oe=!0;break;case h:return oe=U._init,$(oe(U._payload),Z,F,K,ee)}}if(oe)return ee=ee(U),oe=K===""?"."+P(U,0):K,O(ee)?(F="",oe!=null&&(F=oe.replace(W,"$&/")+"/"),$(ee,Z,F,"",function(ie){return ie})):ee!=null&&(A(ee)&&(ee=M(ee,F+(ee.key==null||U&&U.key===ee.key?"":(""+ee.key).replace(W,"$&/")+"/")+oe)),Z.push(ee)),1;oe=0;var ae=K===""?".":K+":";if(O(U))for(var ue=0;ue>>1,V=$[Q];if(0>>1;Qr(F,Y))Kr(ee,F)?($[Q]=ee,$[K]=Y,Q=K):($[Q]=F,$[Z]=Y,Q=Z);else if(Kr(ee,Y))$[Q]=ee,$[K]=Y,Q=K;else break e}}return q}function r($,q){var Y=$.sortIndex-q.sortIndex;return Y!==0?Y:$.id-q.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var a=Date,c=a.now();e.unstable_now=function(){return a.now()-c}}var d=[],m=[],h=1,p=null,g=3,x=!1,v=!1,_=!1,k=!1,w=typeof setTimeout=="function"?setTimeout:null,S=typeof clearTimeout=="function"?clearTimeout:null,j=typeof setImmediate<"u"?setImmediate:null;function N($){for(var q=n(m);q!==null;){if(q.callback===null)i(m);else if(q.startTime<=$)i(m),q.sortIndex=q.expirationTime,t(d,q);else break;q=n(m)}}function O($){if(_=!1,N($),!v)if(n(d)!==null)v=!0,R||(R=!0,B());else{var q=n(m);q!==null&&G(O,q.startTime-$)}}var R=!1,D=-1,I=5,L=-1;function M(){return k?!0:!(e.unstable_now()-L$&&M());){var Q=p.callback;if(typeof Q=="function"){p.callback=null,g=p.priorityLevel;var V=Q(p.expirationTime<=$);if($=e.unstable_now(),typeof V=="function"){p.callback=V,N($),q=!0;break t}p===n(d)&&i(d),N($)}else i(d);p=n(d)}if(p!==null)q=!0;else{var U=n(m);U!==null&&G(O,U.startTime-$),q=!1}}break e}finally{p=null,g=Y,x=!1}q=void 0}}finally{q?B():R=!1}}}var B;if(typeof j=="function")B=function(){j(A)};else if(typeof MessageChannel<"u"){var W=new MessageChannel,P=W.port2;W.port1.onmessage=A,B=function(){P.postMessage(null)}}else B=function(){w(A,0)};function G($,q){D=w(function(){$(e.unstable_now())},q)}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($){$.callback=null},e.unstable_forceFrameRate=function($){0>$||125<$?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):I=0<$?Math.floor(1e3/$):5},e.unstable_getCurrentPriorityLevel=function(){return g},e.unstable_next=function($){switch(g){case 1:case 2:case 3:var q=3;break;default:q=g}var Y=g;g=q;try{return $()}finally{g=Y}},e.unstable_requestPaint=function(){k=!0},e.unstable_runWithPriority=function($,q){switch($){case 1:case 2:case 3:case 4:case 5:break;default:$=3}var Y=g;g=$;try{return q()}finally{g=Y}},e.unstable_scheduleCallback=function($,q,Y){var Q=e.unstable_now();switch(typeof Y=="object"&&Y!==null?(Y=Y.delay,Y=typeof Y=="number"&&0Q?($.sortIndex=Y,t(m,$),n(d)===null&&$===n(m)&&(_?(S(D),D=-1):_=!0,G(O,Y-Q))):($.sortIndex=V,t(d,$),v||x||(v=!0,R||(R=!0,B()))),$},e.unstable_shouldYield=M,e.unstable_wrapCallback=function($){var q=g;return function(){var Y=g;g=q;try{return $.apply(this,arguments)}finally{g=Y}}}})(fg)),fg}var Tk;function JM(){return Tk||(Tk=1,dg.exports=QM()),dg.exports}var mg={exports:{}},Mi={};var Rk;function e3(){if(Rk)return Mi;Rk=1;var e=$l();function t(d){var m="https://react.dev/errors/"+d;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),mg.exports=e3(),mg.exports}var Mk;function t3(){if(Mk)return Dc;Mk=1;var e=JM(),t=$l(),n=Xj();function i(s){var l="https://react.dev/errors/"+s;if(1V||(s.current=Q[V],Q[V]=null,V--)}function F(s,l){V++,Q[V]=s.current,s.current=l}var K=U(null),ee=U(null),te=U(null),oe=U(null);function ae(s,l){switch(F(te,l),F(ee,s),F(K,null),l.nodeType){case 9:case 11:s=(s=l.documentElement)&&(s=s.namespaceURI)?Y_(s):0;break;default:if(s=l.tagName,l=l.namespaceURI)l=Y_(l),s=X_(l,s);else switch(s){case"svg":s=1;break;case"math":s=2;break;default:s=0}}Z(K),F(K,s)}function ue(){Z(K),Z(ee),Z(te)}function ie(s){s.memoizedState!==null&&F(oe,s);var l=K.current,f=X_(l,s.type);l!==f&&(F(ee,s),F(K,f))}function we(s){ee.current===s&&(Z(K),Z(ee)),oe.current===s&&(Z(oe),Ic._currentValue=Y)}var je,Te;function qe(s){if(je===void 0)try{throw Error()}catch(f){var l=f.stack.trim().match(/\n( *(at )?)/);je=l&&l[1]||"",Te=-1)":-1b||re[y]!==ye[b]){var Ce=` -`+re[y].replace(" at new "," at ");return s.displayName&&Ce.includes("")&&(Ce=Ce.replace("",s.displayName)),Ce}while(1<=y&&0<=b);break}}}finally{Ze=!1,Error.prepareStackTrace=f}return(f=s?s.displayName||s.name:"")?qe(f):""}function pt(s,l){switch(s.tag){case 26:case 27:case 5:return qe(s.type);case 16:return qe("Lazy");case 13:return s.child!==l&&l!==null?qe("Suspense Fallback"):qe("Suspense");case 19:return qe("SuspenseList");case 0:case 15:return Xe(s.type,!1);case 11:return Xe(s.type.render,!1);case 1:return Xe(s.type,!0);case 31:return qe("Activity");default:return""}}function Ut(s){try{var l="",f=null;do l+=pt(s,f),f=s,s=s.return;while(s);return l}catch(y){return` -Error generating stack: `+y.message+` -`+y.stack}}var Pt=Object.prototype.hasOwnProperty,It=e.unstable_scheduleCallback,he=e.unstable_cancelCallback,Be=e.unstable_shouldYield,at=e.unstable_requestPaint,Ue=e.unstable_now,ct=e.unstable_getCurrentPriorityLevel,pe=e.unstable_ImmediatePriority,be=e.unstable_UserBlockingPriority,Ae=e.unstable_NormalPriority,He=e.unstable_LowPriority,Ye=e.unstable_IdlePriority,$t=e.log,yt=e.unstable_setDisableYieldValue,ke=null,We=null;function Qe(s){if(typeof $t=="function"&&yt(s),We&&typeof We.setStrictMode=="function")try{We.setStrictMode(ke,s)}catch{}}var Fe=Math.clz32?Math.clz32:ei,Ve=Math.log,Gt=Math.LN2;function ei(s){return s>>>=0,s===0?32:31-(Ve(s)/Gt|0)|0}var _t=256,kt=262144,vn=4194304;function On(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 jt(s,l,f){var y=s.pendingLanes;if(y===0)return 0;var b=0,E=s.suspendedLanes,H=s.pingedLanes;s=s.warmLanes;var X=y&134217727;return X!==0?(y=X&~E,y!==0?b=On(y):(H&=X,H!==0?b=On(H):f||(f=X&~s,f!==0&&(b=On(f))))):(X=y&~E,X!==0?b=On(X):H!==0?b=On(H):f||(f=y&~s,f!==0&&(b=On(f)))),b===0?0:l!==0&&l!==b&&(l&E)===0&&(E=b&-b,f=l&-l,E>=f||E===32&&(f&4194048)!==0)?l:b}function Ht(s,l){return(s.pendingLanes&~(s.suspendedLanes&~s.pingedLanes)&l)===0}function Hn(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 Me(){var s=vn;return vn<<=1,(vn&62914560)===0&&(vn=4194304),s}function gt(s){for(var l=[],f=0;31>f;f++)l.push(s);return l}function ht(s,l){s.pendingLanes|=l,l!==268435456&&(s.suspendedLanes=0,s.pingedLanes=0,s.warmLanes=0)}function mi(s,l,f,y,b,E){var H=s.pendingLanes;s.pendingLanes=f,s.suspendedLanes=0,s.pingedLanes=0,s.warmLanes=0,s.expiredLanes&=f,s.entangledLanes&=f,s.errorRecoveryDisabledLanes&=f,s.shellSuspendCounter=0;var X=s.entanglements,re=s.expirationTimes,ye=s.hiddenUpdates;for(f=H&~f;0"u")return null;try{return s.activeElement||s.body}catch{return s.body}}var an=/[\n"\\]/g;function Ft(s){return s.replace(an,function(l){return"\\"+l.charCodeAt(0).toString(16)+" "})}function ce(s,l,f,y,b,E,H,X){s.name="",H!=null&&typeof H!="function"&&typeof H!="symbol"&&typeof H!="boolean"?s.type=H:s.removeAttribute("type"),l!=null?H==="number"?(l===0&&s.value===""||s.value!=l)&&(s.value=""+Ln(l)):s.value!==""+Ln(l)&&(s.value=""+Ln(l)):H!=="submit"&&H!=="reset"||s.removeAttribute("value"),l!=null?ze(s,H,Ln(l)):f!=null?ze(s,H,Ln(f)):y!=null&&s.removeAttribute("value"),b==null&&E!=null&&(s.defaultChecked=!!E),b!=null&&(s.checked=b&&typeof b!="function"&&typeof b!="symbol"),X!=null&&typeof X!="function"&&typeof X!="symbol"&&typeof X!="boolean"?s.name=""+Ln(X):s.removeAttribute("name")}function Se(s,l,f,y,b,E,H,X){if(E!=null&&typeof E!="function"&&typeof E!="symbol"&&typeof E!="boolean"&&(s.type=E),l!=null||f!=null){if(!(E!=="submit"&&E!=="reset"||l!=null)){ve(s);return}f=f!=null?""+Ln(f):"",l=l!=null?""+Ln(l):f,X||l===s.value||(s.value=l),s.defaultValue=l}y=y??b,y=typeof y!="function"&&typeof y!="symbol"&&!!y,s.checked=X?s.checked:!!y,s.defaultChecked=!!y,H!=null&&typeof H!="function"&&typeof H!="symbol"&&typeof H!="boolean"&&(s.name=H),ve(s)}function ze(s,l,f){l==="number"&&dt(s.ownerDocument)===s||s.defaultValue===""+f||(s.defaultValue=""+f)}function Ge(s,l,f,y){if(s=s.options,l){l={};for(var b=0;b"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),To=!1;if(tr)try{var Hs={};Object.defineProperty(Hs,"passive",{get:function(){To=!0}}),window.addEventListener("test",Hs,Hs),window.removeEventListener("test",Hs,Hs)}catch{To=!1}var Mr=null,ga=null,ya=null;function Ci(){if(ya)return ya;var s,l=ga,f=l.length,y,b="value"in Mr?Mr.value:Mr.textContent,E=b.length;for(s=0;s=Kl),tb=" ",nb=!1;function ib(s,l){switch(s){case"keyup":return gA.indexOf(l.keyCode)!==-1;case"keydown":return l.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function rb(s){return s=s.detail,typeof s=="object"&&"data"in s?s.data:null}var ba=!1;function xA(s,l){switch(s){case"compositionend":return rb(l);case"keypress":return l.which!==32?null:(nb=!0,tb);case"textInput":return s=l.data,s===tb&&nb?null:s;default:return null}}function vA(s,l){if(ba)return s==="compositionend"||!pp&&ib(s,l)?(s=Ci(),ya=ga=Mr=null,ba=!1,s):null;switch(s){case"paste":return null;case"keypress":if(!(l.ctrlKey||l.altKey||l.metaKey)||l.ctrlKey&&l.altKey){if(l.char&&1=l)return{node:f,offset:l-s};s=y}e:{for(;f;){if(f.nextSibling){f=f.nextSibling;break e}f=f.parentNode}f=void 0}f=fb(f)}}function pb(s,l){return s&&l?s===l?!0:s&&s.nodeType===3?!1:l&&l.nodeType===3?pb(s,l.parentNode):"contains"in s?s.contains(l):s.compareDocumentPosition?!!(s.compareDocumentPosition(l)&16):!1:!1}function hb(s){s=s!=null&&s.ownerDocument!=null&&s.ownerDocument.defaultView!=null?s.ownerDocument.defaultView:window;for(var l=dt(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=dt(s.document)}return l}function yp(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 EA=tr&&"documentMode"in document&&11>=document.documentMode,_a=null,xp=null,ec=null,vp=!1;function gb(s,l,f){var y=f.window===f?f.document:f.nodeType===9?f:f.ownerDocument;vp||_a==null||_a!==dt(y)||(y=_a,"selectionStart"in y&&yp(y)?y={start:y.selectionStart,end:y.selectionEnd}:(y=(y.ownerDocument&&y.ownerDocument.defaultView||window).getSelection(),y={anchorNode:y.anchorNode,anchorOffset:y.anchorOffset,focusNode:y.focusNode,focusOffset:y.focusOffset}),ec&&Jl(ec,y)||(ec=y,y=$d(xp,"onSelect"),0>=H,b-=H,Wr=1<<32-Fe(l)+b|f<Lt?(Jt=et,et=null):Jt=et.sibling;var un=xe(fe,et,ge[Lt],Ee);if(un===null){et===null&&(et=Jt);break}s&&et&&un.alternate===null&&l(fe,et),le=E(un,le,Lt),cn===null?lt=un:cn.sibling=un,cn=un,et=Jt}if(Lt===ge.length)return f(fe,et),tn&&hs(fe,Lt),lt;if(et===null){for(;LtLt?(Jt=et,et=null):Jt=et.sibling;var po=xe(fe,et,un.value,Ee);if(po===null){et===null&&(et=Jt);break}s&&et&&po.alternate===null&&l(fe,et),le=E(po,le,Lt),cn===null?lt=po:cn.sibling=po,cn=po,et=Jt}if(un.done)return f(fe,et),tn&&hs(fe,Lt),lt;if(et===null){for(;!un.done;Lt++,un=ge.next())un=Ie(fe,un.value,Ee),un!==null&&(le=E(un,le,Lt),cn===null?lt=un:cn.sibling=un,cn=un);return tn&&hs(fe,Lt),lt}for(et=y(et);!un.done;Lt++,un=ge.next())un=_e(et,fe,Lt,un.value,Ee),un!==null&&(s&&un.alternate!==null&&et.delete(un.key===null?Lt:un.key),le=E(un,le,Lt),cn===null?lt=un:cn.sibling=un,cn=un);return s&&et.forEach(function(WM){return l(fe,WM)}),tn&&hs(fe,Lt),lt}function Sn(fe,le,ge,Ee){if(typeof ge=="object"&&ge!==null&&ge.type===_&&ge.key===null&&(ge=ge.props.children),typeof ge=="object"&&ge!==null){switch(ge.$$typeof){case x:e:{for(var lt=ge.key;le!==null;){if(le.key===lt){if(lt=ge.type,lt===_){if(le.tag===7){f(fe,le.sibling),Ee=b(le,ge.props.children),Ee.return=fe,fe=Ee;break e}}else if(le.elementType===lt||typeof lt=="object"&<!==null&<.$$typeof===I&&Fo(lt)===le.type){f(fe,le.sibling),Ee=b(le,ge.props),oc(Ee,ge),Ee.return=fe,fe=Ee;break e}f(fe,le);break}else l(fe,le);le=le.sibling}ge.type===_?(Ee=zo(ge.props.children,fe.mode,Ee,ge.key),Ee.return=fe,fe=Ee):(Ee=id(ge.type,ge.key,ge.props,null,fe.mode,Ee),oc(Ee,ge),Ee.return=fe,fe=Ee)}return H(fe);case v:e:{for(lt=ge.key;le!==null;){if(le.key===lt)if(le.tag===4&&le.stateNode.containerInfo===ge.containerInfo&&le.stateNode.implementation===ge.implementation){f(fe,le.sibling),Ee=b(le,ge.children||[]),Ee.return=fe,fe=Ee;break e}else{f(fe,le);break}else l(fe,le);le=le.sibling}Ee=jp(ge,fe.mode,Ee),Ee.return=fe,fe=Ee}return H(fe);case I:return ge=Fo(ge),Sn(fe,le,ge,Ee)}if(G(ge))return Ke(fe,le,ge,Ee);if(B(ge)){if(lt=B(ge),typeof lt!="function")throw Error(i(150));return ge=lt.call(ge),mt(fe,le,ge,Ee)}if(typeof ge.then=="function")return Sn(fe,le,ud(ge),Ee);if(ge.$$typeof===j)return Sn(fe,le,od(fe,ge),Ee);dd(fe,ge)}return typeof ge=="string"&&ge!==""||typeof ge=="number"||typeof ge=="bigint"?(ge=""+ge,le!==null&&le.tag===6?(f(fe,le.sibling),Ee=b(le,ge),Ee.return=fe,fe=Ee):(f(fe,le),Ee=Cp(ge,fe.mode,Ee),Ee.return=fe,fe=Ee),H(fe)):f(fe,le)}return function(fe,le,ge,Ee){try{sc=0;var lt=Sn(fe,le,ge,Ee);return Aa=null,lt}catch(et){if(et===Ra||et===ld)throw et;var cn=ir(29,et,null,fe.mode);return cn.lanes=Ee,cn.return=fe,cn}}}var Uo=Bb(!0),$b=Bb(!1),Ks=!1;function Pp(s){s.updateQueue={baseState:s.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Bp(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 Zs(s){return{lane:s,tag:0,payload:null,callback:null,next:null}}function Qs(s,l,f){var y=s.updateQueue;if(y===null)return null;if(y=y.shared,(fn&2)!==0){var b=y.pending;return b===null?l.next=l:(l.next=b.next,b.next=l),y.pending=l,l=nd(s),Sb(s,null,f),l}return td(s,y,l,f),nd(s)}function ac(s,l,f){if(l=l.updateQueue,l!==null&&(l=l.shared,(f&4194048)!==0)){var y=l.lanes;y&=s.pendingLanes,f|=y,l.lanes=f,pn(s,f)}}function $p(s,l){var f=s.updateQueue,y=s.alternate;if(y!==null&&(y=y.updateQueue,f===y)){var b=null,E=null;if(f=f.firstBaseUpdate,f!==null){do{var H={lane:f.lane,tag:f.tag,payload:f.payload,callback:null,next:null};E===null?b=E=H:E=E.next=H,f=f.next}while(f!==null);E===null?b=E=l:E=E.next=l}else b=E=l;f={baseState:y.baseState,firstBaseUpdate:b,lastBaseUpdate:E,shared:y.shared,callbacks:y.callbacks},s.updateQueue=f;return}s=f.lastBaseUpdate,s===null?f.firstBaseUpdate=l:s.next=l,f.lastBaseUpdate=l}var Hp=!1;function lc(){if(Hp){var s=Ta;if(s!==null)throw s}}function cc(s,l,f,y){Hp=!1;var b=s.updateQueue;Ks=!1;var E=b.firstBaseUpdate,H=b.lastBaseUpdate,X=b.shared.pending;if(X!==null){b.shared.pending=null;var re=X,ye=re.next;re.next=null,H===null?E=ye:H.next=ye,H=re;var Ce=s.alternate;Ce!==null&&(Ce=Ce.updateQueue,X=Ce.lastBaseUpdate,X!==H&&(X===null?Ce.firstBaseUpdate=ye:X.next=ye,Ce.lastBaseUpdate=re))}if(E!==null){var Ie=b.baseState;H=0,Ce=ye=re=null,X=E;do{var xe=X.lane&-536870913,_e=xe!==X.lane;if(_e?(Qt&xe)===xe:(y&xe)===xe){xe!==0&&xe===Ia&&(Hp=!0),Ce!==null&&(Ce=Ce.next={lane:0,tag:X.tag,payload:X.payload,callback:null,next:null});e:{var Ke=s,mt=X;xe=l;var Sn=f;switch(mt.tag){case 1:if(Ke=mt.payload,typeof Ke=="function"){Ie=Ke.call(Sn,Ie,xe);break e}Ie=Ke;break e;case 3:Ke.flags=Ke.flags&-65537|128;case 0:if(Ke=mt.payload,xe=typeof Ke=="function"?Ke.call(Sn,Ie,xe):Ke,xe==null)break e;Ie=p({},Ie,xe);break e;case 2:Ks=!0}}xe=X.callback,xe!==null&&(s.flags|=64,_e&&(s.flags|=8192),_e=b.callbacks,_e===null?b.callbacks=[xe]:_e.push(xe))}else _e={lane:xe,tag:X.tag,payload:X.payload,callback:X.callback,next:null},Ce===null?(ye=Ce=_e,re=Ie):Ce=Ce.next=_e,H|=xe;if(X=X.next,X===null){if(X=b.shared.pending,X===null)break;_e=X,X=_e.next,_e.next=null,b.lastBaseUpdate=_e,b.shared.pending=null}}while(!0);Ce===null&&(re=Ie),b.baseState=re,b.firstBaseUpdate=ye,b.lastBaseUpdate=Ce,E===null&&(b.shared.lanes=0),io|=H,s.lanes=H,s.memoizedState=Ie}}function Hb(s,l){if(typeof s!="function")throw Error(i(191,s));s.call(l)}function Fb(s,l){var f=s.callbacks;if(f!==null)for(s.callbacks=null,s=0;sE?E:8;var H=$.T,X={};$.T=X,oh(s,!1,l,f);try{var re=b(),ye=$.S;if(ye!==null&&ye(X,re),re!==null&&typeof re=="object"&&typeof re.then=="function"){var Ce=LA(re,y);fc(s,l,Ce,lr(s))}else fc(s,l,y,lr(s))}catch(Ie){fc(s,l,{then:function(){},status:"rejected",reason:Ie},lr())}finally{q.p=E,H!==null&&X.types!==null&&(H.types=X.types),$.T=H}}function FA(){}function rh(s,l,f,y){if(s.tag!==5)throw Error(i(476));var b=b1(s).queue;v1(s,b,l,Y,f===null?FA:function(){return _1(s),f(y)})}function b1(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:vs,lastRenderedState:Y},next:null};var f={};return l.next={memoizedState:f,baseState:f,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:vs,lastRenderedState:f},next:null},s.memoizedState=l,s=s.alternate,s!==null&&(s.memoizedState=l),l}function _1(s){var l=b1(s);l.next===null&&(l=s.alternate.memoizedState),fc(s,l.next.queue,{},lr())}function sh(){return Ei(Ic)}function k1(){return Jn().memoizedState}function S1(){return Jn().memoizedState}function VA(s){for(var l=s.return;l!==null;){switch(l.tag){case 24:case 3:var f=lr();s=Zs(f);var y=Qs(l,s,f);y!==null&&(Ki(y,l,f),ac(y,l,f)),l={cache:Dp()},s.payload=l;return}l=l.return}}function UA(s,l,f){var y=lr();f={lane:y,revertLane:0,gesture:null,action:f,hasEagerState:!1,eagerState:null,next:null},_d(s)?C1(l,f):(f=Sp(s,l,f,y),f!==null&&(Ki(f,s,y),j1(f,l,y)))}function w1(s,l,f){var y=lr();fc(s,l,f,y)}function fc(s,l,f,y){var b={lane:y,revertLane:0,gesture:null,action:f,hasEagerState:!1,eagerState:null,next:null};if(_d(s))C1(l,b);else{var E=s.alternate;if(s.lanes===0&&(E===null||E.lanes===0)&&(E=l.lastRenderedReducer,E!==null))try{var H=l.lastRenderedState,X=E(H,f);if(b.hasEagerState=!0,b.eagerState=X,nr(X,H))return td(s,l,b,0),En===null&&ed(),!1}catch{}if(f=Sp(s,l,b,y),f!==null)return Ki(f,s,y),j1(f,l,y),!0}return!1}function oh(s,l,f,y){if(y={lane:2,revertLane:Ph(),gesture:null,action:y,hasEagerState:!1,eagerState:null,next:null},_d(s)){if(l)throw Error(i(479))}else l=Sp(s,f,y,2),l!==null&&Ki(l,s,2)}function _d(s){var l=s.alternate;return s===Tt||l!==null&&l===Tt}function C1(s,l){Da=pd=!0;var f=s.pending;f===null?l.next=l:(l.next=f.next,f.next=l),s.pending=l}function j1(s,l,f){if((f&4194048)!==0){var y=l.lanes;y&=s.pendingLanes,f|=y,l.lanes=f,pn(s,f)}}var mc={readContext:Ei,use:yd,useCallback:Wn,useContext:Wn,useEffect:Wn,useImperativeHandle:Wn,useLayoutEffect:Wn,useInsertionEffect:Wn,useMemo:Wn,useReducer:Wn,useRef:Wn,useState:Wn,useDebugValue:Wn,useDeferredValue:Wn,useTransition:Wn,useSyncExternalStore:Wn,useId:Wn,useHostTransitionStatus:Wn,useFormState:Wn,useActionState:Wn,useOptimistic:Wn,useMemoCache:Wn,useCacheRefresh:Wn};mc.useEffectEvent=Wn;var E1={readContext:Ei,use:yd,useCallback:function(s,l){return Bi().memoizedState=[s,l===void 0?null:l],s},useContext:Ei,useEffect:u1,useImperativeHandle:function(s,l,f){f=f!=null?f.concat([s]):null,vd(4194308,4,p1.bind(null,l,s),f)},useLayoutEffect:function(s,l){return vd(4194308,4,s,l)},useInsertionEffect:function(s,l){vd(4,2,s,l)},useMemo:function(s,l){var f=Bi();l=l===void 0?null:l;var y=s();if(Go){Qe(!0);try{s()}finally{Qe(!1)}}return f.memoizedState=[y,l],y},useReducer:function(s,l,f){var y=Bi();if(f!==void 0){var b=f(l);if(Go){Qe(!0);try{f(l)}finally{Qe(!1)}}}else b=l;return y.memoizedState=y.baseState=b,s={pending:null,lanes:0,dispatch:null,lastRenderedReducer:s,lastRenderedState:b},y.queue=s,s=s.dispatch=UA.bind(null,Tt,s),[y.memoizedState,s]},useRef:function(s){var l=Bi();return s={current:s},l.memoizedState=s},useState:function(s){s=Jp(s);var l=s.queue,f=w1.bind(null,Tt,l);return l.dispatch=f,[s.memoizedState,f]},useDebugValue:nh,useDeferredValue:function(s,l){var f=Bi();return ih(f,s,l)},useTransition:function(){var s=Jp(!1);return s=v1.bind(null,Tt,s.queue,!0,!1),Bi().memoizedState=s,[!1,s]},useSyncExternalStore:function(s,l,f){var y=Tt,b=Bi();if(tn){if(f===void 0)throw Error(i(407));f=f()}else{if(f=l(),En===null)throw Error(i(349));(Qt&127)!==0||Yb(y,l,f)}b.memoizedState=f;var E={value:f,getSnapshot:l};return b.queue=E,u1(Kb.bind(null,y,E,s),[s]),y.flags|=2048,La(9,{destroy:void 0},Xb.bind(null,y,E,f,l),null),f},useId:function(){var s=Bi(),l=En.identifierPrefix;if(tn){var f=Yr,y=Wr;f=(y&~(1<<32-Fe(y)-1)).toString(32)+f,l="_"+l+"R_"+f,f=hd++,0<\/script>",E=E.removeChild(E.firstChild);break;case"select":E=typeof y.is=="string"?H.createElement("select",{is:y.is}):H.createElement("select"),y.multiple?E.multiple=!0:y.size&&(E.size=y.size);break;default:E=typeof y.is=="string"?H.createElement(b,{is:y.is}):H.createElement(b)}}E[Vt]=l,E[Cn]=y;e:for(H=l.child;H!==null;){if(H.tag===5||H.tag===6)E.appendChild(H.stateNode);else if(H.tag!==4&&H.tag!==27&&H.child!==null){H.child.return=H,H=H.child;continue}if(H===l)break e;for(;H.sibling===null;){if(H.return===null||H.return===l)break e;H=H.return}H.sibling.return=H.return,H=H.sibling}l.stateNode=E;e:switch(Ii(E,b,y),b){case"button":case"input":case"select":case"textarea":y=!!y.autoFocus;break e;case"img":y=!0;break e;default:y=!1}y&&_s(l)}}return Dn(l),bh(l,l.type,s===null?null:s.memoizedProps,l.pendingProps,f),null;case 6:if(s&&l.stateNode!=null)s.memoizedProps!==y&&_s(l);else{if(typeof y!="string"&&l.stateNode===null)throw Error(i(166));if(s=te.current,Ea(l)){if(s=l.stateNode,f=l.memoizedProps,y=null,b=ji,b!==null)switch(b.tag){case 27:case 5:y=b.memoizedProps}s[Vt]=l,s=!!(s.nodeValue===f||y!==null&&y.suppressHydrationWarning===!0||q_(s.nodeValue,f)),s||Ys(l,!0)}else s=Hd(s).createTextNode(y),s[Vt]=l,l.stateNode=s}return Dn(l),null;case 31:if(f=l.memoizedState,s===null||s.memoizedState!==null){if(y=Ea(l),f!==null){if(s===null){if(!y)throw Error(i(318));if(s=l.memoizedState,s=s!==null?s.dehydrated:null,!s)throw Error(i(557));s[Vt]=l}else Po(),(l.flags&128)===0&&(l.memoizedState=null),l.flags|=4;Dn(l),s=!1}else f=Tp(),s!==null&&s.memoizedState!==null&&(s.memoizedState.hydrationErrors=f),s=!0;if(!s)return l.flags&256?(sr(l),l):(sr(l),null);if((l.flags&128)!==0)throw Error(i(558))}return Dn(l),null;case 13:if(y=l.memoizedState,s===null||s.memoizedState!==null&&s.memoizedState.dehydrated!==null){if(b=Ea(l),y!==null&&y.dehydrated!==null){if(s===null){if(!b)throw Error(i(318));if(b=l.memoizedState,b=b!==null?b.dehydrated:null,!b)throw Error(i(317));b[Vt]=l}else Po(),(l.flags&128)===0&&(l.memoizedState=null),l.flags|=4;Dn(l),b=!1}else b=Tp(),s!==null&&s.memoizedState!==null&&(s.memoizedState.hydrationErrors=b),b=!0;if(!b)return l.flags&256?(sr(l),l):(sr(l),null)}return sr(l),(l.flags&128)!==0?(l.lanes=f,l):(f=y!==null,s=s!==null&&s.memoizedState!==null,f&&(y=l.child,b=null,y.alternate!==null&&y.alternate.memoizedState!==null&&y.alternate.memoizedState.cachePool!==null&&(b=y.alternate.memoizedState.cachePool.pool),E=null,y.memoizedState!==null&&y.memoizedState.cachePool!==null&&(E=y.memoizedState.cachePool.pool),E!==b&&(y.flags|=2048)),f!==s&&f&&(l.child.flags|=8192),jd(l,l.updateQueue),Dn(l),null);case 4:return ue(),s===null&&Fh(l.stateNode.containerInfo),Dn(l),null;case 10:return ys(l.type),Dn(l),null;case 19:if(Z(Qn),y=l.memoizedState,y===null)return Dn(l),null;if(b=(l.flags&128)!==0,E=y.rendering,E===null)if(b)hc(y,!1);else{if(Yn!==0||s!==null&&(s.flags&128)!==0)for(s=l.child;s!==null;){if(E=md(s),E!==null){for(l.flags|=128,hc(y,!1),s=E.updateQueue,l.updateQueue=s,jd(l,s),l.subtreeFlags=0,s=f,f=l.child;f!==null;)wb(f,s),f=f.sibling;return F(Qn,Qn.current&1|2),tn&&hs(l,y.treeForkCount),l.child}s=s.sibling}y.tail!==null&&Ue()>Rd&&(l.flags|=128,b=!0,hc(y,!1),l.lanes=4194304)}else{if(!b)if(s=md(E),s!==null){if(l.flags|=128,b=!0,s=s.updateQueue,l.updateQueue=s,jd(l,s),hc(y,!0),y.tail===null&&y.tailMode==="hidden"&&!E.alternate&&!tn)return Dn(l),null}else 2*Ue()-y.renderingStartTime>Rd&&f!==536870912&&(l.flags|=128,b=!0,hc(y,!1),l.lanes=4194304);y.isBackwards?(E.sibling=l.child,l.child=E):(s=y.last,s!==null?s.sibling=E:l.child=E,y.last=E)}return y.tail!==null?(s=y.tail,y.rendering=s,y.tail=s.sibling,y.renderingStartTime=Ue(),s.sibling=null,f=Qn.current,F(Qn,b?f&1|2:f&1),tn&&hs(l,y.treeForkCount),s):(Dn(l),null);case 22:case 23:return sr(l),Vp(),y=l.memoizedState!==null,s!==null?s.memoizedState!==null!==y&&(l.flags|=8192):y&&(l.flags|=8192),y?(f&536870912)!==0&&(l.flags&128)===0&&(Dn(l),l.subtreeFlags&6&&(l.flags|=8192)):Dn(l),f=l.updateQueue,f!==null&&jd(l,f.retryQueue),f=null,s!==null&&s.memoizedState!==null&&s.memoizedState.cachePool!==null&&(f=s.memoizedState.cachePool.pool),y=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(y=l.memoizedState.cachePool.pool),y!==f&&(l.flags|=2048),s!==null&&Z(Ho),null;case 24:return f=null,s!==null&&(f=s.memoizedState.cache),l.memoizedState.cache!==f&&(l.flags|=2048),ys(si),Dn(l),null;case 25:return null;case 30:return null}throw Error(i(156,l.tag))}function XA(s,l){switch(Np(l),l.tag){case 1:return s=l.flags,s&65536?(l.flags=s&-65537|128,l):null;case 3:return ys(si),ue(),s=l.flags,(s&65536)!==0&&(s&128)===0?(l.flags=s&-65537|128,l):null;case 26:case 27:case 5:return we(l),null;case 31:if(l.memoizedState!==null){if(sr(l),l.alternate===null)throw Error(i(340));Po()}return s=l.flags,s&65536?(l.flags=s&-65537|128,l):null;case 13:if(sr(l),s=l.memoizedState,s!==null&&s.dehydrated!==null){if(l.alternate===null)throw Error(i(340));Po()}return s=l.flags,s&65536?(l.flags=s&-65537|128,l):null;case 19:return Z(Qn),null;case 4:return ue(),null;case 10:return ys(l.type),null;case 22:case 23:return sr(l),Vp(),s!==null&&Z(Ho),s=l.flags,s&65536?(l.flags=s&-65537|128,l):null;case 24:return ys(si),null;case 25:return null;default:return null}}function Z1(s,l){switch(Np(l),l.tag){case 3:ys(si),ue();break;case 26:case 27:case 5:we(l);break;case 4:ue();break;case 31:l.memoizedState!==null&&sr(l);break;case 13:sr(l);break;case 19:Z(Qn);break;case 10:ys(l.type);break;case 22:case 23:sr(l),Vp(),s!==null&&Z(Ho);break;case 24:ys(si)}}function gc(s,l){try{var f=l.updateQueue,y=f!==null?f.lastEffect:null;if(y!==null){var b=y.next;f=b;do{if((f.tag&s)===s){y=void 0;var E=f.create,H=f.inst;y=E(),H.destroy=y}f=f.next}while(f!==b)}}catch(X){xn(l,l.return,X)}}function to(s,l,f){try{var y=l.updateQueue,b=y!==null?y.lastEffect:null;if(b!==null){var E=b.next;y=E;do{if((y.tag&s)===s){var H=y.inst,X=H.destroy;if(X!==void 0){H.destroy=void 0,b=l;var re=f,ye=X;try{ye()}catch(Ce){xn(b,re,Ce)}}}y=y.next}while(y!==E)}}catch(Ce){xn(l,l.return,Ce)}}function Q1(s){var l=s.updateQueue;if(l!==null){var f=s.stateNode;try{Fb(l,f)}catch(y){xn(s,s.return,y)}}}function J1(s,l,f){f.props=qo(s.type,s.memoizedProps),f.state=s.memoizedState;try{f.componentWillUnmount()}catch(y){xn(s,l,y)}}function yc(s,l){try{var f=s.ref;if(f!==null){switch(s.tag){case 26:case 27:case 5:var y=s.stateNode;break;case 30:y=s.stateNode;break;default:y=s.stateNode}typeof f=="function"?s.refCleanup=f(y):f.current=y}}catch(b){xn(s,l,b)}}function Xr(s,l){var f=s.ref,y=s.refCleanup;if(f!==null)if(typeof y=="function")try{y()}catch(b){xn(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){xn(s,l,b)}else f.current=null}function e_(s){var l=s.type,f=s.memoizedProps,y=s.stateNode;try{e:switch(l){case"button":case"input":case"select":case"textarea":f.autoFocus&&y.focus();break e;case"img":f.src?y.src=f.src:f.srcSet&&(y.srcset=f.srcSet)}}catch(b){xn(s,s.return,b)}}function _h(s,l,f){try{var y=s.stateNode;yM(y,s.type,f,l),y[Cn]=l}catch(b){xn(s,s.return,b)}}function t_(s){return s.tag===5||s.tag===3||s.tag===26||s.tag===27&&lo(s.type)||s.tag===4}function kh(s){e:for(;;){for(;s.sibling===null;){if(s.return===null||t_(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&&lo(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 Sh(s,l,f){var y=s.tag;if(y===5||y===6)s=s.stateNode,l?(f.nodeType===9?f.body:f.nodeName==="HTML"?f.ownerDocument.body:f).insertBefore(s,l):(l=f.nodeType===9?f.body:f.nodeName==="HTML"?f.ownerDocument.body:f,l.appendChild(s),f=f._reactRootContainer,f!=null||l.onclick!==null||(l.onclick=Ui));else if(y!==4&&(y===27&&lo(s.type)&&(f=s.stateNode,l=null),s=s.child,s!==null))for(Sh(s,l,f),s=s.sibling;s!==null;)Sh(s,l,f),s=s.sibling}function Ed(s,l,f){var y=s.tag;if(y===5||y===6)s=s.stateNode,l?f.insertBefore(s,l):f.appendChild(s);else if(y!==4&&(y===27&&lo(s.type)&&(f=s.stateNode),s=s.child,s!==null))for(Ed(s,l,f),s=s.sibling;s!==null;)Ed(s,l,f),s=s.sibling}function n_(s){var l=s.stateNode,f=s.memoizedProps;try{for(var y=s.type,b=l.attributes;b.length;)l.removeAttributeNode(b[0]);Ii(l,y,f),l[Vt]=s,l[Cn]=f}catch(E){xn(s,s.return,E)}}var ks=!1,li=!1,wh=!1,i_=typeof WeakSet=="function"?WeakSet:Set,vi=null;function KA(s,l){if(s=s.containerInfo,Gh=Yd,s=hb(s),yp(s)){if("selectionStart"in s)var f={start:s.selectionStart,end:s.selectionEnd};else e:{f=(f=s.ownerDocument)&&f.defaultView||window;var y=f.getSelection&&f.getSelection();if(y&&y.rangeCount!==0){f=y.anchorNode;var b=y.anchorOffset,E=y.focusNode;y=y.focusOffset;try{f.nodeType,E.nodeType}catch{f=null;break e}var H=0,X=-1,re=-1,ye=0,Ce=0,Ie=s,xe=null;t:for(;;){for(var _e;Ie!==f||b!==0&&Ie.nodeType!==3||(X=H+b),Ie!==E||y!==0&&Ie.nodeType!==3||(re=H+y),Ie.nodeType===3&&(H+=Ie.nodeValue.length),(_e=Ie.firstChild)!==null;)xe=Ie,Ie=_e;for(;;){if(Ie===s)break t;if(xe===f&&++ye===b&&(X=H),xe===E&&++Ce===y&&(re=H),(_e=Ie.nextSibling)!==null)break;Ie=xe,xe=Ie.parentNode}Ie=_e}f=X===-1||re===-1?null:{start:X,end:re}}else f=null}f=f||{start:0,end:0}}else f=null;for(qh={focusedElem:s,selectionRange:f},Yd=!1,vi=l;vi!==null;)if(l=vi,s=l.child,(l.subtreeFlags&1028)!==0&&s!==null)s.return=l,vi=s;else for(;vi!==null;){switch(l=vi,E=l.alternate,s=l.flags,l.tag){case 0:if((s&4)!==0&&(s=l.updateQueue,s=s!==null?s.events:null,s!==null))for(f=0;f title"))),Ii(E,y,f),E[Vt]=s,Kt(E),y=E;break e;case"link":var H=ck("link","href",b).get(y+(f.href||""));if(H){for(var X=0;XSn&&(H=Sn,Sn=mt,mt=H);var fe=mb(X,mt),le=mb(X,Sn);if(fe&&le&&(_e.rangeCount!==1||_e.anchorNode!==fe.node||_e.anchorOffset!==fe.offset||_e.focusNode!==le.node||_e.focusOffset!==le.offset)){var ge=Ie.createRange();ge.setStart(fe.node,fe.offset),_e.removeAllRanges(),mt>Sn?(_e.addRange(ge),_e.extend(le.node,le.offset)):(ge.setEnd(le.node,le.offset),_e.addRange(ge))}}}}for(Ie=[],_e=X;_e=_e.parentNode;)_e.nodeType===1&&Ie.push({element:_e,left:_e.scrollLeft,top:_e.scrollTop});for(typeof X.focus=="function"&&X.focus(),X=0;Xf?32:f,$.T=null,f=Rh,Rh=null;var E=so,H=Es;if(hi=0,Ha=so=null,Es=0,(fn&6)!==0)throw Error(i(331));var X=fn;if(fn|=4,p_(E.current),d_(E,E.current,H,f),fn=X,Sc(0,!1),We&&typeof We.onPostCommitFiberRoot=="function")try{We.onPostCommitFiberRoot(ke,E)}catch{}return!0}finally{q.p=b,$.T=y,A_(s,l)}}function D_(s,l,f){l=vr(f,l),l=uh(s.stateNode,l,2),s=Qs(s,l,2),s!==null&&(ht(s,2),Kr(s))}function xn(s,l,f){if(s.tag===3)D_(s,s,f);else for(;l!==null;){if(l.tag===3){D_(l,s,f);break}else if(l.tag===1){var y=l.stateNode;if(typeof l.type.getDerivedStateFromError=="function"||typeof y.componentDidCatch=="function"&&(ro===null||!ro.has(y))){s=vr(f,s),f=O1(2),y=Qs(l,f,2),y!==null&&(L1(f,y,l,s),ht(y,2),Kr(y));break}}l=l.return}}function Oh(s,l,f){var y=s.pingCache;if(y===null){y=s.pingCache=new JA;var b=new Set;y.set(l,b)}else b=y.get(l),b===void 0&&(b=new Set,y.set(l,b));b.has(f)||(Eh=!0,b.add(f),s=rM.bind(null,s,l,f),l.then(s,s))}function rM(s,l,f){var y=s.pingCache;y!==null&&y.delete(l),s.pingedLanes|=s.suspendedLanes&f,s.warmLanes&=~f,En===s&&(Qt&f)===f&&(Yn===4||Yn===3&&(Qt&62914560)===Qt&&300>Ue()-Td?(fn&2)===0&&Fa(s,0):Nh|=f,$a===Qt&&($a=0)),Kr(s)}function O_(s,l){l===0&&(l=Me()),s=Lo(s,l),s!==null&&(ht(s,l),Kr(s))}function sM(s){var l=s.memoizedState,f=0;l!==null&&(f=l.retryLane),O_(s,f)}function oM(s,l){var f=0;switch(s.tag){case 31:case 13:var y=s.stateNode,b=s.memoizedState;b!==null&&(f=b.retryLane);break;case 19:y=s.stateNode;break;case 22:y=s.stateNode._retryCache;break;default:throw Error(i(314))}y!==null&&y.delete(l),O_(s,f)}function aM(s,l){return It(s,l)}var zd=null,Ua=null,Lh=!1,Pd=!1,zh=!1,ao=0;function Kr(s){s!==Ua&&s.next===null&&(Ua===null?zd=Ua=s:Ua=Ua.next=s),Pd=!0,Lh||(Lh=!0,cM())}function Sc(s,l){if(!zh&&Pd){zh=!0;do for(var f=!1,y=zd;y!==null;){if(s!==0){var b=y.pendingLanes;if(b===0)var E=0;else{var H=y.suspendedLanes,X=y.pingedLanes;E=(1<<31-Fe(42|s)+1)-1,E&=b&~(H&~X),E=E&201326741?E&201326741|1:E?E|2:0}E!==0&&(f=!0,B_(y,E))}else E=Qt,E=jt(y,y===En?E:0,y.cancelPendingCommit!==null||y.timeoutHandle!==-1),(E&3)===0||Ht(y,E)||(f=!0,B_(y,E));y=y.next}while(f);zh=!1}}function lM(){L_()}function L_(){Pd=Lh=!1;var s=0;ao!==0&&vM()&&(s=ao);for(var l=Ue(),f=null,y=zd;y!==null;){var b=y.next,E=z_(y,l);E===0?(y.next=null,f===null?zd=b:f.next=b,b===null&&(Ua=f)):(f=y,(s!==0||(E&3)!==0)&&(Pd=!0)),y=b}hi!==0&&hi!==5||Sc(s),ao!==0&&(ao=0)}function z_(s,l){for(var f=s.suspendedLanes,y=s.pingedLanes,b=s.expirationTimes,E=s.pendingLanes&-62914561;0X)break;var Ce=re.transferSize,Ie=re.initiatorType;Ce&&W_(Ie)&&(re=re.responseEnd,H+=Ce*(re"u"?null:document;function sk(s,l,f){var y=Ga;if(y&&typeof l=="string"&&l){var b=Ft(l);b='link[rel="'+s+'"][href="'+b+'"]',typeof f=="string"&&(b+='[crossorigin="'+f+'"]'),rk.has(b)||(rk.add(b),s={rel:s,crossOrigin:f,href:l},y.querySelector(b)===null&&(l=y.createElement("link"),Ii(l,"link",s),Kt(l),y.head.appendChild(l)))}}function NM(s){Ns.D(s),sk("dns-prefetch",s,null)}function IM(s,l){Ns.C(s,l),sk("preconnect",s,l)}function TM(s,l,f){Ns.L(s,l,f);var y=Ga;if(y&&s&&l){var b='link[rel="preload"][as="'+Ft(l)+'"]';l==="image"&&f&&f.imageSrcSet?(b+='[imagesrcset="'+Ft(f.imageSrcSet)+'"]',typeof f.imageSizes=="string"&&(b+='[imagesizes="'+Ft(f.imageSizes)+'"]')):b+='[href="'+Ft(s)+'"]';var E=b;switch(l){case"style":E=qa(s);break;case"script":E=Wa(s)}Cr.has(E)||(s=p({rel:"preload",href:l==="image"&&f&&f.imageSrcSet?void 0:s,as:l},f),Cr.set(E,s),y.querySelector(b)!==null||l==="style"&&y.querySelector(Ec(E))||l==="script"&&y.querySelector(Nc(E))||(l=y.createElement("link"),Ii(l,"link",s),Kt(l),y.head.appendChild(l)))}}function RM(s,l){Ns.m(s,l);var f=Ga;if(f&&s){var y=l&&typeof l.as=="string"?l.as:"script",b='link[rel="modulepreload"][as="'+Ft(y)+'"][href="'+Ft(s)+'"]',E=b;switch(y){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":E=Wa(s)}if(!Cr.has(E)&&(s=p({rel:"modulepreload",href:s},l),Cr.set(E,s),f.querySelector(b)===null)){switch(y){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(f.querySelector(Nc(E)))return}y=f.createElement("link"),Ii(y,"link",s),Kt(y),f.head.appendChild(y)}}}function AM(s,l,f){Ns.S(s,l,f);var y=Ga;if(y&&s){var b=ln(y).hoistableStyles,E=qa(s);l=l||"default";var H=b.get(E);if(!H){var X={loading:0,preload:null};if(H=y.querySelector(Ec(E)))X.loading=5;else{s=p({rel:"stylesheet",href:s,"data-precedence":l},f),(f=Cr.get(E))&&Jh(s,f);var re=H=y.createElement("link");Kt(re),Ii(re,"link",s),re._p=new Promise(function(ye,Ce){re.onload=ye,re.onerror=Ce}),re.addEventListener("load",function(){X.loading|=1}),re.addEventListener("error",function(){X.loading|=2}),X.loading|=4,Vd(H,l,y)}H={type:"stylesheet",instance:H,count:1,state:X},b.set(E,H)}}}function MM(s,l){Ns.X(s,l);var f=Ga;if(f&&s){var y=ln(f).hoistableScripts,b=Wa(s),E=y.get(b);E||(E=f.querySelector(Nc(b)),E||(s=p({src:s,async:!0},l),(l=Cr.get(b))&&eg(s,l),E=f.createElement("script"),Kt(E),Ii(E,"link",s),f.head.appendChild(E)),E={type:"script",instance:E,count:1,state:null},y.set(b,E))}}function DM(s,l){Ns.M(s,l);var f=Ga;if(f&&s){var y=ln(f).hoistableScripts,b=Wa(s),E=y.get(b);E||(E=f.querySelector(Nc(b)),E||(s=p({src:s,async:!0,type:"module"},l),(l=Cr.get(b))&&eg(s,l),E=f.createElement("script"),Kt(E),Ii(E,"link",s),f.head.appendChild(E)),E={type:"script",instance:E,count:1,state:null},y.set(b,E))}}function ok(s,l,f,y){var b=(b=te.current)?Fd(b):null;if(!b)throw Error(i(446));switch(s){case"meta":case"title":return null;case"style":return typeof f.precedence=="string"&&typeof f.href=="string"?(l=qa(f.href),f=ln(b).hoistableStyles,y=f.get(l),y||(y={type:"style",instance:null,count:0,state:null},f.set(l,y)),y):{type:"void",instance:null,count:0,state:null};case"link":if(f.rel==="stylesheet"&&typeof f.href=="string"&&typeof f.precedence=="string"){s=qa(f.href);var E=ln(b).hoistableStyles,H=E.get(s);if(H||(b=b.ownerDocument||b,H={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},E.set(s,H),(E=b.querySelector(Ec(s)))&&!E._p&&(H.instance=E,H.state.loading=5),Cr.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},Cr.set(s,f),E||OM(b,s,f,H.state))),l&&y===null)throw Error(i(528,""));return H}if(l&&y!==null)throw Error(i(529,""));return null;case"script":return l=f.async,f=f.src,typeof f=="string"&&l&&typeof l!="function"&&typeof l!="symbol"?(l=Wa(f),f=ln(b).hoistableScripts,y=f.get(l),y||(y={type:"script",instance:null,count:0,state:null},f.set(l,y)),y):{type:"void",instance:null,count:0,state:null};default:throw Error(i(444,s))}}function qa(s){return'href="'+Ft(s)+'"'}function Ec(s){return'link[rel="stylesheet"]['+s+"]"}function ak(s){return p({},s,{"data-precedence":s.precedence,precedence:null})}function OM(s,l,f,y){s.querySelector('link[rel="preload"][as="style"]['+l+"]")?y.loading=1:(l=s.createElement("link"),y.preload=l,l.addEventListener("load",function(){return y.loading|=1}),l.addEventListener("error",function(){return y.loading|=2}),Ii(l,"link",f),Kt(l),s.head.appendChild(l))}function Wa(s){return'[src="'+Ft(s)+'"]'}function Nc(s){return"script[async]"+s}function lk(s,l,f){if(l.count++,l.instance===null)switch(l.type){case"style":var y=s.querySelector('style[data-href~="'+Ft(f.href)+'"]');if(y)return l.instance=y,Kt(y),y;var b=p({},f,{"data-href":f.href,"data-precedence":f.precedence,href:null,precedence:null});return y=(s.ownerDocument||s).createElement("style"),Kt(y),Ii(y,"style",b),Vd(y,f.precedence,s),l.instance=y;case"stylesheet":b=qa(f.href);var E=s.querySelector(Ec(b));if(E)return l.state.loading|=4,l.instance=E,Kt(E),E;y=ak(f),(b=Cr.get(b))&&Jh(y,b),E=(s.ownerDocument||s).createElement("link"),Kt(E);var H=E;return H._p=new Promise(function(X,re){H.onload=X,H.onerror=re}),Ii(E,"link",y),l.state.loading|=4,Vd(E,f.precedence,s),l.instance=E;case"script":return E=Wa(f.src),(b=s.querySelector(Nc(E)))?(l.instance=b,Kt(b),b):(y=f,(b=Cr.get(E))&&(y=p({},f),eg(y,b)),s=s.ownerDocument||s,b=s.createElement("script"),Kt(b),Ii(b,"link",y),s.head.appendChild(b),l.instance=b);case"void":return null;default:throw Error(i(443,l.type))}else l.type==="stylesheet"&&(l.state.loading&4)===0&&(y=l.instance,l.state.loading|=4,Vd(y,f.precedence,s));return l.instance}function Vd(s,l,f){for(var y=f.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),b=y.length?y[y.length-1]:null,E=b,H=0;H title"):null)}function LM(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 dk(s){return!(s.type==="stylesheet"&&(s.state.loading&3)===0)}function zM(s,l,f,y){if(f.type==="stylesheet"&&(typeof y.media!="string"||matchMedia(y.media).matches!==!1)&&(f.state.loading&4)===0){if(f.instance===null){var b=qa(y.href),E=l.querySelector(Ec(b));if(E){l=E._p,l!==null&&typeof l=="object"&&typeof l.then=="function"&&(s.count++,s=Gd.bind(s),l.then(s,s)),f.state.loading|=4,f.instance=E,Kt(E);return}E=l.ownerDocument||l,y=ak(y),(b=Cr.get(b))&&Jh(y,b),E=E.createElement("link"),Kt(E);var H=E;H._p=new Promise(function(X,re){H.onload=X,H.onerror=re}),Ii(E,"link",y),f.instance=E}s.stylesheets===null&&(s.stylesheets=new Map),s.stylesheets.set(f,l),(l=f.state.preload)&&(f.state.loading&3)===0&&(s.count++,f=Gd.bind(s),l.addEventListener("load",f),l.addEventListener("error",f))}}var tg=0;function PM(s,l){return s.stylesheets&&s.count===0&&Wd(s,s.stylesheets),0tg?50:800)+l);return s.unsuspend=f,function(){s.unsuspend=null,clearTimeout(y),clearTimeout(b)}}:null}function Gd(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Wd(this,this.stylesheets);else if(this.unsuspend){var s=this.unsuspend;this.unsuspend=null,s()}}}var qd=null;function Wd(s,l){s.stylesheets=null,s.unsuspend!==null&&(s.count++,qd=new Map,l.forEach(BM,s),qd=null,Gd.call(s))}function BM(s,l){if(!(l.state.loading&4)){var f=qd.get(s);if(f)var y=f.get(null);else{f=new Map,qd.set(s,f);for(var b=s.querySelectorAll("link[data-precedence],style[data-precedence]"),E=0;E"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),ug.exports=t3(),ug.exports}var i3=n3();const r3=2e3,s3=3e4,o3=20,a3=100,l3=3e4,c3=1e4,u3=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","comms_state","comms_read_message"]),d3=3e4;class f3{constructor(t,n){this.url=t,this.handlers=n,this.ws=null,this.reconnectTimer=null,this.closedByUser=!1,this.reconnectAttempt=0,this.pendingQueue=[],this.heartbeatTimer=null,this.pongTimer=null,this.pendingSessionDetailRequests=[]}updateUrl(t){this.url=t}connect(){this.closedByUser=!1,this.handlers.onStatus?.("connecting"),this.ws=new WebSocket(this.url),this.ws.onopen=()=>{this.reconnectAttempt=0,this.handlers.onStatus?.("connected"),this.flushPendingQueue(),this.startHeartbeat()},this.ws.onmessage=t=>{this.handleMessage(t.data)},this.ws.onerror=()=>{this.handlers.onStatus?.("error","WebSocket error")},this.ws.onclose=()=>{this.stopHeartbeat(),this.failPendingSessionDetailRequests("connection_closed"),this.handlers.onStatus?.("disconnected"),this.ws=null,this.closedByUser||this.scheduleReconnect()}}disconnect(){this.closedByUser=!0,this.stopHeartbeat(),this.failPendingSessionDetailRequests("disconnected"),this.reconnectTimer!==null&&(window.clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.ws?.close(),this.ws=null}send(t){if(!this.ensureProjectScope(t))return"send-failed";const n=JSON.stringify(t);if(!this.ws||this.ws.readyState!==WebSocket.OPEN)return this.pendingQueue.length{const c={type:"session_detail",project_id:r,task_id:n,limit:i?.limit,before_created_at:i?.beforeCreatedAt,before_message_id:i?.beforeMessageId,detail_level:o,include:i?.include,view_generation:i?.viewGeneration},d=JSON.stringify(c),m={projectId:r,taskId:n,detailLevel:o,viewGeneration:i?.viewGeneration,historyPage:i?.beforeCreatedAt!==void 0||!!i?.beforeMessageId,wireData:d,queued:!1,settled:!1,timeout:null,resolve:a};m.timeout=setTimeout(()=>{const p=this.pendingSessionDetailRequests.indexOf(m);p>=0&&this.timeoutSessionDetailRequest(p)},d3),this.pendingSessionDetailRequests.push(m);const h=this.send(c);if(m.queued=h==="queued",h==="queue-full"||h==="send-failed"){const p=this.pendingSessionDetailRequests.indexOf(m);p>=0&&this.failSessionDetailRequest(p,h==="queue-full"?"send_queue_full":"send_failed")}})}secretarySend(t,n){const i=this.requireProjectId(t,"secretary_send");this.send({type:"secretary_send",project_id:i,content:n})}listProjects(){this.send({type:"list_projects"})}createProject(t){this.send({type:"create_project",project_id:this.normalizeProjectId(t)})}deleteProject(t){this.send({type:"delete_project",project_id:this.normalizeProjectId(t)})}switchProject(t,n){this.send({type:"switch_project",project_id:this.normalizeProjectId(t),switch_seq:n})}orgInfo(){this.send({type:"org_info"})}talentImport(t){this.send({type:"talent_import",repo_path:t})}talentList(){this.send({type:"talent_list"})}talentScanLocal(){this.send({type:"talent_scan_local"})}talentImportSelected(t){this.send({type:"talent_import_selected",template_ids:t})}talentHire(t,n,i,r){this.send({type:"talent_hire",template_id:t,role_id:n,employee_name:i,org_id:r})}employeeDetail(t){this.send({type:"employee_detail",employee_id:t})}reorgList(){this.send({type:"reorg_list"})}reorgDecide(t,n,i){this.send({type:"reorg_decide",proposal_id:t,approved:n,notes:i})}importEmployeeAsAgent(t,n){this.send({type:"import_employee_as_agent",employee_id:t,office_id:n})}marketBrowse(){this.send({type:"market_browse"})}marketPreview(t){this.send({type:"market_preview",preset_id:t})}marketApplyPreset(t,n="namespace"){this.send({type:"market_apply_preset",preset_id:t,strategy:n})}marketListInstalled(){this.send({type:"market_list_installed"})}marketExport(t){this.send({type:"market_export",...t})}marketInstall(t,n="namespace"){this.send({type:"market_install",path:t,strategy:n})}marketUninstall(t){this.send({type:"market_uninstall",package_id:t})}addRole(t,n,i,r="owner",o){this.send({type:"add_role",role_id:t,name:n,responsibility:i,reports_to:r,icon:o||null})}bulkAddRoles(t){this.send({type:"bulk_add_roles",roles:t})}updateRole(t,n){this.send({type:"update_role",role_id:t,...n})}deleteRole(t){this.send({type:"delete_role",role_id:t})}updateRuntimePolicy(t){this.send({type:"update_runtime_policy",policy:t})}updateOrgStrategy(t){this.send({type:"update_org_strategy",...t})}resetArchitecture(){this.send({type:"reset_architecture"})}orgConfigExport(){this.send({type:"org_config_export"})}orgConfigImport(t,n){this.send({type:"org_config_import",yaml:t,dry_run:n})}orgSavedList(){this.send({type:"org_saved_list"})}orgSavedSaveAs(t,n){this.send({type:"org_saved_save_as",name:t,overwrite:n})}orgSavedCreate(t,n){this.send({type:"org_saved_create",organization_name:t,members:n})}orgSavedLoad(t){this.send({type:"org_saved_load",name:t})}orgSavedDelete(t){this.send({type:"org_saved_delete",name:t})}commsState(t,n){const i=this.requireProjectId(t,"comms_state");this.send({type:"comms_state",project_id:i,...n||{}})}commsReadMessage(t,n){const i=this.requireProjectId(t,"comms_read_message");this.send({type:"comms_read_message",project_id:i,path:n})}normalizeProjectId(t){return typeof t=="string"?t.trim():""}requireProjectId(t,n){const i=this.normalizeProjectId(t);if(!i)throw new Error(`${n} requires non-empty project_id`);return i}ensureProjectScope(t){const n=typeof t.type=="string"?t.type:"";if(!u3.has(n))return!0;const i=this.normalizeProjectId(t.project_id??t.projectId);if(!i){const r=`${n} requires non-empty project_id`;return console.error(`[wsClient] ${r}`,t),this.handlers.onAck?.({ok:!1,error:r,action:n}),!1}return t.project_id=i,!0}handleMessage(t){if(typeof t!="string")return;let n=null;try{n=JSON.parse(t)}catch{return}if(!(!n||typeof n!="object"||!("type"in n)))try{switch(n.type){case"snapshot":this.handlers.onSnapshot?.(n.payload);break;case"event":this.handlers.onEvent?.(n.payload);break;case"ack":{const i=this.settleSessionDetailRequest(n.payload);this.handlers.onAck?.(i);break}case"channel_created":this.handlers.onChannelCreated?.(n.payload);break;case"board_task_created":case"board_task_moved":this.handlers.onBoardEvent?.(n.payload);break;case"board_task_status_changed":case"execution_mode_resolved":case"project_run_updated":case"seat_digest_updated":case"work_item_batch_updated":case"session_runtime_control":this.handlers.onCollabMessage?.(n.type,n.payload);break;case"cross_office_collab":this.handlers.onCrossOfficeCollab?.(n.payload);break;case"chat_new_message":case"chat_channel_created":case"kanban_updated":case"kanban_board_created":case"collab_sync_push":case"project_index_push":this.handlers.onCollabMessage?.(n.type,n.payload);break;case"agent_runtime_update":this.handlers.onAgentRuntimeUpdate?.(n.payload);break;case"runtime_status_sync":this.handlers.onRuntimeStatusSync?.(n.payload);break;case"worker_notification":this.handlers.onWorkerNotification?.(n.payload);break;case"session_progress":this.handlers.onSessionProgress?.(n.payload);break;case"work_item_progress":this.handlers.onWorkItemProgress?.(n.payload);break;case"kanban_view_data":this.handlers.onKanbanViewData?.(n.payload);break;case"session_created":this.handlers.onSessionCreated?.(n.payload);break;case"session_updated":this.handlers.onSessionUpdated?.(n.payload);break;case"session_message":this.handlers.onSessionMessage?.(n.payload);break;case"session_title_updated":this.handlers.onSessionTitleUpdated?.(n.payload);break;case"session_deleted":this.handlers.onSessionDeleted?.(n.payload);break;case"child_session_created":this.handlers.onChildSessionCreated?.(n.payload);break;case"project_switched":this.handlers.onProjectSwitched?.(n.payload);break;case"project_deleted":this.handlers.onProjectDeleted?.(n.payload);break;case"org_info":this.handlers.onOrgInfo?.(n.payload);break;case"comms_state":this.handlers.onCommsState?.(n.payload);break;case"comms_message":this.handlers.onCommsMessage?.(n.payload);break;case"comms_state_dirty":try{const i=typeof n.payload?.project_id=="string"?n.payload.project_id:"";i&&this.commsState(i)}catch{}break;case"talent_list":this.handlers.onTalentList?.(n.payload);break;case"talent_scan_local":this.handlers.onTalentScanLocal?.(n.payload);break;case"employee_detail":this.handlers.onEmployeeDetail?.(n.payload);break;case"reorg_list":this.handlers.onReorgList?.(n.payload);break;case"market_list_installed":this.handlers.onMarketListInstalled?.(n.payload);break;case"market_browse":this.handlers.onMarketBrowse?.(n.payload);break;case"market_preview":this.handlers.onMarketPreview?.(n.payload);break;case"org_config_export":this.handlers.onOrgConfigExport?.(n.payload);break;case"org_config_import":this.handlers.onOrgConfigImport?.(n.payload);break;case"org_saved_list":this.handlers.onOrgSavedList?.(n.payload);break;case"org_saved_save_as":this.handlers.onOrgSavedSaveAs?.(n.payload);break;case"org_saved_create":this.handlers.onOrgSavedCreate?.(n.payload);break;case"org_saved_load":this.handlers.onOrgSavedLoad?.(n.payload);break;case"org_saved_delete":this.handlers.onOrgSavedDelete?.(n.payload);break;case"pong":this.handlePong();break;default:break}}catch(i){console.error("[wsClient] Error handling message:",n.type,i)}}settleSessionDetailRequest(t){const n=typeof t.action=="string"?t.action.trim():"";if(!(n==="session_detail"||!n&&t.error==="store_not_ready"))return t;const r=this.normalizeProjectId(t.project_id??t.projectId),o=typeof t.task_id=="string"?t.task_id:"",a=t.detail_level==="full"?"full":t.detail_level==="summary"?"summary":"",c=typeof t.view_generation=="number"?t.view_generation:void 0,d=this.pendingSessionDetailRequests.findIndex(p=>(!r||p.projectId===r)&&(!o||p.taskId===o)&&(!a||p.detailLevel===a)&&(c===void 0||p.viewGeneration===c));if(d<0)return t;const[m]=this.pendingSessionDetailRequests.splice(d,1);m.timeout!==null&&clearTimeout(m.timeout);const h={...t,action:"session_detail",project_id:r||m.projectId,task_id:o||m.taskId,detail_level:a||m.detailLevel,client_history_page:m.historyPage};return m.settled||(m.settled=!0,m.resolve(h)),h}timeoutSessionDetailRequest(t){const n=this.pendingSessionDetailRequests[t];if(n){if(n.queued){this.failSessionDetailRequest(t,"request_timeout");return}n.timeout!==null&&clearTimeout(n.timeout),n.timeout=null,n.settled||(n.settled=!0,n.resolve(this.sessionDetailFailurePayload(n,"request_timeout")))}}failSessionDetailRequest(t,n){const[i]=this.pendingSessionDetailRequests.splice(t,1);if(i){if(i.timeout!==null&&clearTimeout(i.timeout),i.queued){const r=this.pendingQueue.indexOf(i.wireData);r>=0&&this.pendingQueue.splice(r,1)}i.settled||i.resolve(this.sessionDetailFailurePayload(i,n))}}sessionDetailFailurePayload(t,n){return{ok:!1,action:"session_detail",error:n,project_id:t.projectId,task_id:t.taskId,detail_level:t.detailLevel,client_history_page:t.historyPage}}failPendingSessionDetailRequests(t){for(;this.pendingSessionDetailRequests.length>0;)this.failSessionDetailRequest(0,t)}flushPendingQueue(){if(!this.ws||this.ws.readyState!==WebSocket.OPEN)return;const t=this.pendingQueue.splice(0);for(const n of t){const i=this.pendingSessionDetailRequests.findIndex(r=>r.queued&&r.wireData===n);try{this.ws.send(n),i>=0&&(this.pendingSessionDetailRequests[i].queued=!1)}catch{i>=0&&this.failSessionDetailRequest(i,"send_failed")}}}startHeartbeat(){this.stopHeartbeat(),this.heartbeatTimer=window.setInterval(()=>{!this.ws||this.ws.readyState!==WebSocket.OPEN||(this.ws.send(JSON.stringify({type:"ping"})),this.pongTimer=window.setTimeout(()=>{this.pongTimer=null,this.ws?.close()},c3))},l3)}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>=o3){this.handlers.onStatus?.("error","max reconnect attempts reached");return}const t=Math.min(r3*Math.pow(2,this.reconnectAttempt),s3);this.reconnectAttempt++,this.reconnectTimer=window.setTimeout(()=>{this.reconnectTimer=null,this.connect()},t)}}var m3=YM();const Qi=ma(m3),T=32,Xn=20,dr=25,zv=2,Ok=3,p3=Xn*Ok+zv*(Ok-1),h3=dr,pg=p3,Oc=h3,nu=T*8,ll=T*4,fl=T*20,Kj=1.8,g3=Kj,y3=Kj,x3=30,v3=8,b3=-2,_3=.22,k3=5,S3=23;function w3(){if(typeof window>"u")return null;const e=o=>{const a=new URLSearchParams(o);return a.get("day")==="1"||a.get("daytime")==="1"?"day":a.get("night")==="1"?"night":null};let t=e(window.location.search||"");if(t)return t;const n=window.location.hash;if(!n)return null;const i=n.indexOf("?");if(i>=0&&(t=e(n.slice(i+1)),t))return t;const r=n.replace(/^#/,"");return r.includes("=")&&(t=e(r),t)?t:null}function iu(e=new Date){if(typeof window<"u")try{const n=w3();if(n==="day")return!0;if(n==="night")return!1;const i=window.localStorage?.getItem("opc_outdoor_override");if(i==="day")return!0;if(i==="night")return!1;if(window.localStorage?.getItem("opc_outdoor_day")==="1")return!0;if(window.localStorage?.getItem("opc_outdoor_night")==="1")return!1}catch{}const t=e.getHours();return t>=k3&&t<=S3}const Lk=11064556,zk=3228986,C3=200,j3=100,E3=60,If=2,Tf=20,Zj=3,Qj=6,Xa=2.5,N3=8,I3=15,Pk=5,Bk=10,T3=5,$k=3,Hk=2;function R3(e,t,n){const i=t||e.clientWidth||window.innerWidth-380,r=n||e.clientHeight||window.innerHeight-48,o=iu()?"#a8d4ec":"#31453a";return{type:Qi.CANVAS,parent:e,width:i,height:r,pixelArt:!0,backgroundColor:o,physics:{default:"arcade",arcade:{gravity:{x:0,y:0},debug:!1}},scale:{mode:Qi.Scale.RESIZE,autoCenter:Qi.Scale.NONE,parent:e},render:{antialias:!1,pixelArt:!0}}}const A3=16,M3=32,Fk=6;class D3 extends Qi.Scene{constructor(){super("Boot")}preload(){this.load.image("office-bg","assets/office-bg.png"),this.load.spritesheet("office-tileset-32","assets/office-tileset-32.png",{frameWidth:32,frameHeight:32});for(let n=0;n{t.clear(),t.fillStyle(4886745,1),t.fillRect(this.scale.width/2-100,this.scale.height/2-8,200*n,16)}),this.load.on("complete",()=>t.destroy())}create(){this.createCharacterAnimations(),console.log("[BootScene] All assets loaded"),this.scene.start("Office")}createCharacterAnimations(){const n=[{name:"down",row:0},{name:"up",row:1},{name:"right",row:2},{name:"left",row:2}];for(let i=0;i0)return t}}catch{}return eE()}function Nm(e){localStorage.setItem(Jj,JSON.stringify(e))}function O3(e,t){const n=Kn(),i=n.find(r=>r.id===e);i&&(i.name=t,Nm(n))}function hg(e,t){const n=Kn();for(const r of n)r.assignedAgents=r.assignedAgents.filter(o=>o!==t);const i=n.find(r=>r.id===e);i&&i.assignedAgents.push(t),Nm(n)}function L3(e){const t=Kn();for(const n of t)n.assignedAgents=n.assignedAgents.filter(i=>i!==e);Nm(t)}function z3(e){return Kn().find(t=>t.assignedAgents.includes(e))}function P3(e,t,n){const i=Kn(),r=i.find(o=>o.id===e);r&&(r.mapStr=t,r.seats=n,Nm(i))}function tE(e){const t=[];for(let n=0;n0?e[e.length-1].offsetCol+Xn:Xn,n=[];for(let i=0;it.map(n=>n===0?".":"#").join(""))}function Di(e,t,n,i,r=t+i){return{x:Math.round(e*T),y:Math.round(t*T),w:Math.round(n*T),h:Math.round(i*T),depthY:Math.round(r*T)}}const B3=[Di(8,4,4.3,3.35,7.15),Di(2.3,8.65,5.35,1.95,10.55),Di(11.1,8.55,3.1,1.7,10.45),Di(14.15,8.55,4.95,2,10.95),Di(2.1,11.45,3.05,1.8,12.95),Di(5.25,11.45,3.05,1.8,12.95),Di(8.45,11.45,3.05,1.8,12.95),Di(2.1,14.55,3.05,1.85,16.1),Di(5.25,14.55,3.05,1.85,16.1),Di(8.45,14.55,3.05,1.85,16.1),Di(14,12.15,4.85,3,15.3),Di(1,19.55,3.05,1.15,20.7),Di(4.45,20.45,3.35,1.35,21.8),Di(14.1,20.5,3.15,1.85,22.3),Di(8.05,23.1,4.2,1,24.1),Di(17,23.1,2.1,1,24.1)];class Vf{constructor(){this.bgSprites=[],this.foregroundSprites=[],this.nameLabels=[],this.decor=[],this.outdoorBackdrop=null,this.outdoorParking=null,this.tilesetFrames={shelfA:61,shelfB:62,waterCooler:105,waterCoolerAlt:106,fridge:108,vending:110,plantA:148,plantB:150,boxA:153,boxB:154,boxC:158}}clearSceneDecor(){for(const t of this.bgSprites)t.destroy();for(const t of this.foregroundSprites)t.destroy();for(const t of this.nameLabels)t.destroy();for(const t of this.decor)t.destroy();this.bgSprites=[],this.foregroundSprites=[],this.nameLabels=[],this.decor=[],this.outdoorBackdrop=null,this.outdoorParking=null}addForegroundOccluders(t,n){const i=n.offsetCol*T;for(const r of B3){const o=t.add.image(i,0,"office-bg");o.setOrigin(0,0),o.setCrop(r.x,r.y,r.w,r.h),o.setDepth(r.depthY),this.foregroundSprites.push(o)}}addPixelLabel(t,n,i,r,o,a="#f5efe3",c="10px"){const d=t.add.text(n,i,r,{fontSize:c,fontFamily:"monospace",color:a,backgroundColor:o,padding:{left:4,right:4,top:2,bottom:2},resolution:2,align:"center"});return d.setOrigin(.5,.5),d.setDepth(-94),this.decor.push(d),d}addTilesetSprite(t,n,i,r,o=1){const a=t.add.image(n,i,"office-tileset-32",r);return a.setOrigin(0,0),a.setScale(o),a.setDepth(-92),this.decor.push(a),a}getOutdoorMetrics(t,n){const i=n+T*10.1,r=T*4.1,o=i+r+T*.15,a=o+T*1.1;return{gateCenterX:t/2,roadY:i,roadHeight:r,waterTopY:o,dockY:a,bottomY:n+fl}}paintStylizedParkingCar(t,n,i,r,o,a){const c=o?{outline:1314840,body:14240338,bodyMid:13057092,bodyDark:9316914,cabin:14706798,cabinHi:15894668,cabinLo:11546684,glass:6062264,glassDeep:3824776,glassHi:12116220,tire:1842724,tireOuter:1184794,bonnetHi:15233140}:{outline:1053728,body:4095176,bodyMid:3105960,bodyDark:2377848,cabin:6068444,cabinHi:8303856,cabinLo:3434664,glass:4878240,glassDeep:3164264,glassHi:11065599,tire:1842724,tireOuter:1184794,bonnetHi:7121128},d=(x,v,_,k,w,S=1)=>{t.fillStyle(w,S);const j=r?-x-_:x;t.fillRect(Math.round(n+j),Math.round(i+v),_,k)};t.fillStyle(988175,.28),t.fillEllipse(n,i+36,36,9),d(-16,-38,32,76,c.outline),d(-15,-37,30,74,c.body),d(-14,2,28,35,c.bodyDark),d(-14,-4,28,10,c.bodyMid),d(-13,8,26,22,c.body),d(-13,8,26,7,c.bonnetHi,.92),d(-13,-35,26,32,c.cabin),d(-13,-35,26,4,c.cabinHi),d(-13,-8,26,5,c.cabinLo),d(-11,-7,22,11,c.glassDeep),d(-11,-7,22,5,c.glass),d(-10,-6,8,3,c.glassHi),d(-1,-6,6,2,c.glassHi,.75),d(-16,-2,3,8,c.bodyDark),d(13,-2,3,8,c.bodyDark);const m=22,h=-30,p=7,g=9;for(const x of[m,h])d(-22,x,p,g,c.tire),d(15,x,p,g,c.tire),d(-22,x,1,g,c.tireOuter),d(15+p-1,x,1,g,c.tireOuter);for(const x of[m,h])d(-18,x+1,4,g-2,c.bodyDark),d(14,x+1,4,g-2,c.bodyDark);a&&(d(-12,33,5,4,16052970),d(7,33,5,4,16052970),d(-11,34,2,2,16775368),d(8,34,2,2,16775368),d(-13,-38,4,3,16733488),d(9,-38,4,3,13121568),d(-18,4,3,4,16763976),d(15,4,3,4,16752688)),d(-15,-37,30,1,c.cabinHi,.45),d(-14,28,28,1,0,.12)}buildOutdoorBackdrop(t,n,i,r,o,a){const c=t.add.graphics();c.setDepth(-320);const d=-nu,m=-ll,h=n+nu*2,p=i+ll+fl,g=d+h,x=i+fl,v=m+T*6.2,_=i+T*.35,k=i+T*4.25,w=i+T*5.9,{gateCenterX:S,roadY:j,roadHeight:N,waterTopY:O,dockY:R}=this.getOutdoorMetrics(n,i),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(c.fillStyle(D.skyTop,1),c.fillRect(d,m,h,T*8.2),c.fillStyle(D.skyBand,1),c.fillRect(d,m+T*6.15,h,T*2.05),o){c.fillStyle(16775400,.45);for(let he=0;he<5;he++){const Be=d+h*(.12+he*.19)+he*17%40,at=m+T*(1.4+he%3*.35);c.fillEllipse(Be,at,T*2.2,T*.95)}c.fillStyle(16773808,.92),c.fillCircle(g-T*2.4,m+T*1.25,T*.85),c.fillStyle(16776432,.35),c.fillCircle(g-T*2.4,m+T*1.25,T*1.45)}c.fillStyle(D.towerFar,1);for(let he=d-T;heT*1.9&&c.fillRect(he+ct-8,Ae+4,3,3));c.fillStyle(D.facadeColor,D.facadeAlpha),c.fillRect(he+ct*.5,be+T*.4,2,pe-T*.8),c.fillStyle(D.towerNear,1)}c.fillStyle(D.bridgeColor,D.bridgeAlpha);for(let he=d+T*6;he(he.offsetCol+2.95)*T),M=T*.9,A=n-T*1.8,B=6,W=T*1.7,P=i+T*.08,G=T*2.05,$=P+G,q=T*9.4,Y=S-q/2,Q=$-2,V=T*3.1,U=Q+V,Z=T*2.3;c.fillStyle(12428667,1),c.fillRect(S-T*4.25,U,T*8.5,j-U),c.fillStyle(14141089,.95);for(let he=U+T*.35;heK&&c.fillRect(K,P,Be-K,B),c.fillStyle(8415310,1),c.fillRect(Be-4,P,4,T*.62),c.fillRect(Be+W,P,4,T*.62),c.fillStyle(11045217,1),c.fillRect(Be,P,W,4),c.fillStyle(15920612,1),K=Be+W}KS-T*5.4&&he=0&&this.decor.splice(he,1),this.outdoorParking.destroy(),this.outdoorParking=null}const Te=t.add.graphics();Te.setDepth(-300);const qe=4080460,Ze=15262424,Xe=[{x:d+T*2.2,count:5},{x:g-T*11.4,count:5}];Te.lineStyle(0,0,0),Te.fillStyle(qe,1);for(const he of Xe)Te.fillRect(he.x,w,T*12.8,T*3.8);Te.lineStyle(1,Ze,.95);for(const he of Xe)for(let Be=0;BeS-T;for(let at=0;at=0&&this.decor.splice(a,1),this.outdoorParking.destroy(),this.outdoorParking=null}if(this.outdoorBackdrop){const a=this.decor.indexOf(this.outdoorBackdrop);a>=0&&this.decor.splice(a,1),this.outdoorBackdrop.destroy(),this.outdoorBackdrop=null}this.buildOutdoorBackdrop(t,r,o,i,n,{skipLabels:!0})}buildBoundaryDecor(t,n,i){const r=t.add.graphics();r.setDepth(-140);const o=t.add.graphics();o.setDepth(-95);const a=((n[n.length-1]?.offsetCol??0)+Xn)*T,c=dr*T,d=Xn*T,m=T*2,h=T*20;this.buildOutdoorBackdrop(t,a,c,n,i),r.fillStyle(2498844,1),r.fillRect(-T,0,a+T*2,c),r.fillStyle(3221794,1),r.fillRect(0,0,a,c),r.fillStyle(6048831,1),r.fillRect(0,0,a,8),r.fillRect(0,c-8,a,8),r.fillRect(0,0,8,c),r.fillRect(a-8,0,8,c),r.fillStyle(2367001,1),r.fillRect(8,8,a-16,3),r.fillRect(8,c-11,a-16,3),r.fillStyle(1709844,1),r.fillRect(0,0,a,m),r.fillStyle(4931637,1),r.fillRect(0,m-5,a,5),r.fillStyle(4208173,1),r.fillRect(0,m,a,c-m),r.fillStyle(4865588,1),r.fillRect(0,T*8,a,T*4),r.fillStyle(3813416,1),r.fillRect(0,h,a,c-h),r.lineStyle(1,5917503,.32);for(let p=0;p<=a;p+=T)r.beginPath(),r.moveTo(p,m),r.lineTo(p,c),r.strokePath();for(let p=m;p<=c;p+=T)r.beginPath(),r.moveTo(0,p),r.lineTo(a,p),r.strokePath();for(let p=T*3;pA.id===p.id);r.fillStyle(5785659,1),r.fillRect(g-10,0,d+20,c),r.fillStyle(2301208,1),r.fillRect(g-4,0,d+8,c),r.lineStyle(2,8087640,.9),r.strokeRect(g-10,0,d+20,c),r.lineStyle(2,10982014,.34),r.strokeRect(g-4,0,d+8,c),r.fillStyle(1578259,1),r.fillRect(g-4,0,d+8,T),r.fillStyle(7166796,1),r.fillRect(g+T*5.5,T*.55,T*9,5),r.fillStyle(9074018,1),r.fillRect(g-10,0,8,8),r.fillRect(g+d+2,0,8,8),r.fillRect(g-10,c-8,8,8),r.fillRect(g+d+2,c-8,8,8),r.fillStyle(3221536,1),r.fillRect(g-4,h,d+8,6);const v=g+T*.7,_=g+T*14.65,k=T*1.05,w=T*4.45,S=T*6.4,j=k+S+T*.35,N=T*.55,O=x%2===0?6115909:5069382,R=x%2===0?4609113:5984070,D=x%2===0?5205640:7297908,I=x%2===0?5666919:9073231,L=x%2===0?7045045:10119803,M=x%2===0?6196089:10979160;r.fillStyle(2827295,1),r.fillRect(g+T*.58,j,d-T*1.16,T*.44),r.fillStyle(7692879,1),r.fillRect(g+T*.92,j+2,d-T*1.84,2),r.fillRect(g+T*4.3,j-T*.2,4,T*.84),r.fillRect(g+d-T*4.3,j-T*.2,4,T*.84),o.fillStyle(1906966,1),o.fillRect(v,k,w,S),o.fillRect(_,k,w,S),o.fillStyle(3090722,1),o.fillRect(v+4,k+4,w-8,S-8),o.fillRect(_+4,k+4,w-8,S-8),o.fillStyle(O,1),o.fillRect(v+4,k+4,w-8,T*.7),o.fillStyle(R,1),o.fillRect(_+4,k+4,w-8,T*.7),o.fillStyle(D,.95),o.fillRect(v+4,k+T*1.15,w-8,S-T*1.45),o.fillStyle(I,.95),o.fillRect(_+4,k+T*1.15,w-8,S-T*1.45),o.fillStyle(15127204,.16),o.fillRect(v+10,k+10,w-20,2),o.fillRect(_+10,k+10,w-20,2),o.lineStyle(1,6181444,.28);for(let A=v+12;A","#2d241c","#e8d5b6","8px"),this.decor.push(r,o)}buildMap(t,n=iu()){this.clearSceneDecor();const i=Kn(),r=((i[i.length-1]?.offsetCol??0)+Xn)*T,o=dr*T,a=this.getOutdoorMetrics(r,o);this.buildBoundaryDecor(t,i,n);for(const m of i){const h=(m.offsetCol+Xn/2)*T,p=t.add.image(m.offsetCol*T,0,"office-bg");p.setOrigin(0,0),p.setDepth(-100),this.bgSprites.push(p),this.addForegroundOccluders(t,m);const g=t.add.text(h,6,m.name,{fontSize:"14px",fontFamily:"monospace",color:"#ffffff",stroke:"#000000",strokeThickness:3,align:"center"});g.setOrigin(.5,0),g.setDepth(99999),g.setData("officeId",m.id),this.nameLabels.push(g)}const c=nE(i),d=Vf.buildWallBodies(t,c);return console.log("[OfficeMapBuilder] Composite map ready —",i.length,"offices"),{wallBodies:d,collisionGrid:c,waterfront:{dockCenterX:a.gateCenterX,dockY:a.dockY,waterTopY:a.waterTopY,waterBottomY:a.bottomY}}}getBackgroundSprites(){return this.bgSprites}getNameLabels(){return this.nameLabels}updateLabel(t,n){const i=this.nameLabels.find(r=>r.getData("officeId")===t);i&&i.setText(n)}static buildWallBodies(t,n){const i=n.length,r=i>0?n[0].length:0,o=t.physics.add.staticGroup();for(let a=0;a=0){const h=d-c,p=t.add.rectangle(c*T+h*T/2,a*T+T/2,h*T,T);p.setVisible(!1),o.add(p),c=-1}}}return o}static buildWallBodiesForRegion(t,n,i,r){const o=n.length,a=o>0?n[0].length:0;for(let c=0;c=0){const p=m-d,g=t.add.rectangle((r+d)*T+p*T/2,c*T+T/2,p*T,T);g.setVisible(!1),i.add(g),d=-1}}}}}const st={IDLE:"idle",WALK:"walk",TYPE:"type",THINK:"think",CELEBRATE:"celebrate",COFFEE:"coffee",CHAT:"chat",PRACTICE:"practice",REFLECT:"reflect",SLEEP:"sleep",PRESENT:"present"},Ka={DOWN:"down",LEFT:"left",RIGHT:"right",UP:"up"};function Px(e,t){return e+Math.random()*(t-e)}function $3(e,t){return Math.floor(Px(e,t+1))}class H3 extends Qi.GameObjects.Container{constructor(t,n,i,r,o,a){const c=o*T+T/2,d=a*T+T/2;super(t,c,d),this.officeId="office-0",this.agentState=st.IDLE,this.dir=Ka.DOWN,this.isActive=!1,this.currentTool=null,this.seatId=null,this.urgency="relaxed",this.isSubagent=!1,this.parentAgentId=null,this.lastEventAt=0,this.stateTimer=0,this.seatTimer=0,this.wanderCount=0,this.hueShift=0,this.bubbleText=null,this.bubbleTimer=0,this.myceliumEffect=null,this.myceliumEffectTimer=0,this.myceliumSession=null,this.bubbleObj=null,this.currentPath=[],this.pathIndex=0,this.pathfinder=null,this.arrivalCallback=null,this.agentId=n,this.displayName=i,this.palette=r%6,this.wanderTimer=Px(.5,2.5),this.wanderLimit=$3(Zj,Qj);const m=`char_${this.palette}`;this.shadow=t.add.ellipse(0,b3,x3,v3,1382432,_3),this.shadow.setOrigin(.5,.5),this.add(this.shadow),this.sprite=t.add.sprite(0,0,m),this.sprite.setScale(g3,y3),this.sprite.setOrigin(.5,1),this.add(this.sprite),t.add.existing(this),t.physics.world.enable(this);const h=Math.min(12,T-4),p=Math.min(6,T/2);this.body.setSize(h,p),this.body.setOffset(-h/2,-p),this.body.setCollideWorldBounds(!0),this.setDepth(d),this.playAnimForState()}setPathfinder(t){this.pathfinder=t}getState(){return this.agentState}getTilePos(){return{x:Math.floor(this.x/T),y:Math.floor(this.y/T)}}setAgentState(t){this.agentState!==t&&(this.agentState=t,this.playAnimForState())}setDirection(t){this.dir!==t&&(this.dir=t,this.playAnimForState())}playAnimForState(){if(!this.sprite?.anims)return;const t=`char_${this.palette}`,n=this.dir,i=n===Ka.LEFT;this.sprite.setFlipX(i);const r=i?"right":n;switch(this.agentState){case st.WALK:this.sprite.play(`${t}_walk_${r}`,!0);break;case st.CELEBRATE:this.sprite.play(`${t}_celebrate_${r}`,!0);break;case st.TYPE:case st.PRESENT:case st.PRACTICE:this.sprite.play(`${t}_type_${r}`,!0);break;case st.THINK:case st.REFLECT:this.sprite.play(`${t}_read_${r}`,!0);break;case st.COFFEE:case st.CHAT:this.sprite.play(`${t}_coffee_${r}`,!0);break;case st.SLEEP:case st.IDLE:default:this.sprite.play(`${t}_idle_${r}`,!0);break}}async walkTo(t,n,i){if(!this.pathfinder||!this.sprite?.anims)return!1;const r=this.getTilePos(),o=await this.pathfinder.findPath(r,{x:t,y:n});return o.length===0?!1:(this.currentPath=o,this.pathIndex=0,this.arrivalCallback=i??null,this.setAgentState(st.WALK),!0)}stopMovement(){this.currentPath=[],this.pathIndex=0,this.arrivalCallback=null,this.body?.setVelocity(0,0)}get isMoving(){return this.agentState===st.WALK&&this.currentPath.length>0}getWalkSpeed(){switch(this.urgency){case"urgent":return C3;case"normal":return j3;default:return E3}}showBubble(t,n=T3){this.bubbleText=t,this.bubbleTimer=n,this.updateBubbleDisplay()}clearBubble(){this.bubbleText=null,this.bubbleTimer=0,this.bubbleObj&&(this.bubbleObj.destroy(),this.bubbleObj=null)}updateBubbleDisplay(){if(this.bubbleObj&&(this.bubbleObj.destroy(),this.bubbleObj=null),!this.bubbleText)return;const t=this.scene.add.container(this.x,this.y-70),n=this.scene.add.text(0,0,this.bubbleText,{fontSize:"10px",fontFamily:"monospace",color:"#1a1a2e",backgroundColor:"#ffffff",padding:{x:4,y:2},resolution:2});n.setOrigin(.5,1);const i=this.scene.add.graphics(),r=n.width+8,o=n.height+4;i.fillStyle(16777215,.95),i.fillRoundedRect(-r/2,-o,r,o,4),i.lineStyle(1,6710886,.5),i.strokeRoundedRect(-r/2,-o,r,o,4),t.add([i,n]),t.setDepth(1e5),this.bubbleObj=t}update(t){this.setDepth(this.y),this.bubbleObj&&(this.bubbleObj.setPosition(this.x,this.y-70),this.bubbleTimer>0&&(this.bubbleTimer-=t,this.bubbleTimer<=0&&this.clearBubble())),this.stateTimer>0&&(this.stateTimer-=t,this.stateTimer<=0&&(this.stateTimer=0,this.agentState===st.CELEBRATE&&this.setAgentState(st.IDLE),this.agentState===st.COFFEE&&(this.setAgentState(st.IDLE),this.wanderTimer=Px(If,Tf)),this.agentState===st.CHAT&&this.setAgentState(st.IDLE))),this.agentState===st.WALK&&this.currentPath.length>0&&this.followPath(t)}followPath(t){if(this.body.setVelocity(0,0),this.pathIndex>=this.currentPath.length){this.arriveAtDestination();return}const n=this.currentPath[this.pathIndex],i=n.x*T+T/2,r=n.y*T+T/2,o=i-this.x,a=r-this.y,c=Math.sqrt(o*o+a*a),m=this.getWalkSpeed()*t;if(c<=m+.5){this.x=i,this.y=r,this.pathIndex++,this.pathIndex>=this.currentPath.length&&this.arriveAtDestination();return}this.x+=o/c*m,this.y+=a/c*m,Math.abs(o)>Math.abs(a)?this.setDirection(o>0?Ka.RIGHT:Ka.LEFT):this.setDirection(a>0?Ka.DOWN:Ka.UP)}arriveAtDestination(){this.currentPath=[],this.pathIndex=0,this.body.setVelocity(0,0);const t=this.arrivalCallback;this.arrivalCallback=null,t?t():this.agentState===st.WALK&&this.setAgentState(st.IDLE)}destroy(t){this.clearBubble(),super.destroy(t)}}var yg,Uk;function F3(){return Uk||(Uk=1,yg=function(){this.pointsToAvoid={},this.startX,this.callback,this.startY,this.endX,this.endY,this.nodeHash={},this.openList}),yg}var xg,Gk;function V3(){return Gk||(Gk=1,xg=function(e,t,n,i,r){this.parent=e,this.x=t,this.y=n,this.costSoFar=i,this.simpleDistanceToTarget=r,this.bestGuessDistance=function(){return this.costSoFar+this.simpleDistanceToTarget}}),xg}var Rf={exports:{}},U3=Rf.exports,qk;function G3(){return qk||(qk=1,(function(e,t){(function(){var n,i,r,o,a,c,d,m,h,p,g,x,v,_,k;r=Math.floor,p=Math.min,i=function(w,S){return wS?1:0},h=function(w,S,j,N,O){var R;if(j==null&&(j=0),O==null&&(O=i),j<0)throw new Error("lo must be non-negative");for(N==null&&(N=w.length);jM;0<=M?L++:L--)I.push(L);return I}).apply(this).reverse(),D=[],N=0,O=R.length;NA;0<=A?++I:--I)B.push(a(w,j));return B},_=function(w,S,j,N){var O,R,D;for(N==null&&(N=i),O=w[j];j>S;){if(D=j-1>>1,R=w[D],N(O,R)<0){w[j]=R,j=D;continue}break}return w[j]=O},k=function(w,S,j){var N,O,R,D,I;for(j==null&&(j=i),O=w.length,I=S,R=w[S],N=2*S+1;Np[0].length-1||W>p.length-1||P>p[0].length-1||G>p.length-1)throw new Error("Your start or end point is outside the scope of your grid.");if(B===P&&W===G){q([]);return}for(var Y=p[G][P],Q=!1,V=0;V"u"){S.shift();continue}if(W.openList.size()===0){W.callback(null),delete w[B],S.shift();continue}var P=W.openList.pop();if(W.endX===P.x&&W.endY===P.y){var G=[];G.push({x:P.x,y:P.y});for(var $=P.parent;$!=null;)G.push({x:$.x,y:$.y}),$=$.parent;G.reverse();var q=G;W.callback(q),delete w[B],S.shift();continue}P.list=r,P.y>0&&R(W,P,0,-1,c*L(P.x,P.y-1)),P.x0&&R(W,P,-1,0,c*L(P.x-1,P.y)),O&&(P.x>0&&P.y>0&&(_||D(p,N,P.x,P.y-1,P)&&D(p,N,P.x-1,P.y,P))&&R(W,P,-1,-1,d*L(P.x-1,P.y-1)),P.x0&&(_||D(p,N,P.x,P.y-1,P)&&D(p,N,P.x+1,P.y,P))&&R(W,P,1,-1,d*L(P.x+1,P.y-1)),P.x>0&&P.y[...n]),this.gridRows=this.grid.length,this.gridCols=this.gridRows>0?this.grid[0].length:0,this.easystar=new Y3.js,this.easystar.setGrid(this.grid),this.easystar.setAcceptableTiles([0]),this.easystar.setIterationsPerCalculation(800)}findPath(t,n){return new Promise(i=>{if(t.x<0||t.x>=this.gridCols||t.y<0||t.y>=this.gridRows||n.x<0||n.x>=this.gridCols||n.y<0||n.y>=this.gridRows){i([]);return}if(this.grid[n.y]?.[n.x]===1){const r=this.findNearestWalkable(n.x,n.y);if(!r){i([]);return}n=r}if(this.grid[t.y]?.[t.x]===1){const r=this.findNearestWalkable(t.x,t.y);if(!r){i([]);return}t=r}this.easystar.findPath(t.x,t.y,n.x,n.y,r=>{i(r??[])}),this.easystar.calculate()})}blockTile(t,n){n>=0&&n=0&&t=0&&n=0&&t=this.grid.length||t<0||t<0||t>=this.grid[0].length?!1:this.grid[n][t]===0}getWalkableTiles(){const t=[];for(let n=0;n=r&&e=o&&tK3(`${e.id}-${c.id}`,c.localX+t,c.localY,c.type)),doorways:o.doorways.map(c=>({id:`${e.id}-${c.id}`,tileX:c.localX+t,tileY:c.localY}))}}const i={};for(const[r,o]of e.seats){const a=Q3(r,o),c=`${e.id}-${a}`;if(!n[c])continue;i[c]=(i[c]??0)+1;const d=i[c],m=a==="workspace"?"desk":a==="meetingRoom"?"meeting":a==="breakRoom"?"break":a==="leaderOffice"?"leader":"lobby",h=Z3(r,o,a);n[c].seats.push(X3(`${e.id}-${m}-${d}`,r+t,o,h))}return n}function rE(e){const t=e??Kn(),n={};for(const i of t)Object.assign(n,J3(i));return n}let wo=rE();function e4(e){wo=rE(e)}function sE(e){const t=wo[`${e}-workspace`]?.seats??[],n=wo[`${e}-leaderOffice`]?.seats??[];return[...t,...n]}function Kk(){return Object.values(wo).flatMap(e=>e.seats)}function t4(e){const t=wo[e];if(!t)return null;const{x:n,y:i,w:r,h:o}=t.bounds,a=e.split("-").slice(0,2).join("-"),d=Kn().find(g=>g.id===a);if(!d)return{x:n+1,y:i+1};const m=tE(d.mapStr),h=d.offsetCol,p=[];for(let g=i;g=0&&v({x:n.tileX,y:n.tileY})):[]}function Jo(e,t){return e+Math.random()*(t-e)}function n4(e,t){return Math.floor(Jo(e,t+1))}function Zr(e,t){return e.length>t?e.slice(0,t)+"...":e}function Qk(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 i4{constructor(t){this.pendingDespawn=new Set,this.scene=t}applyEvent(t){const n=t.data??{},i=t.agent_id||"openopc-main";if(i==="user")return;const r=i.startsWith("subagent-"),o=r?typeof n.parent_agent_id=="string"?n.parent_agent_id:"openopc-main":null,a=r?`Sub ${i.slice(-4)}`:void 0,c=this.scene.ensureAgent(i,a,r,o);switch(c.lastEventAt=Date.now(),typeof n.task_preview=="string"&&(c.taskSummary=n.task_preview),typeof n.result_preview=="string"&&(c.taskSummary=n.result_preview),t.type){case"tool_start":this.onToolStart(c,n);break;case"tool_done":this.onToolDone(c,n);break;case"agent_active":this.onAgentActive(c);break;case"waiting":this.onWaiting(c);break;case"reflect_start":this.onReflectStart(c);break;case"reflect_done":this.onReflectDone(c);break;case"skill_synthesized":this.onSkillSynthesized(c,n);break;case"subagent_spawn":this.onSubagentSpawn(c,i,o);break;case"subagent_done":this.onSubagentDone(c,i);break;case"message_in":this.onMessageIn(c,n);break;case"message_out":this.onMessageOut(c,n);break;case"practice_start":this.onPracticeStart(c,n);break;case"practice_done":this.onPracticeDone(c);break;case"task_routed":this.onTaskRouted(c,n);break;case"task_delegated":this.onTaskDelegated(c,i,n);break;case"delegation_done":this.onDelegationDone(c,n);break;case"agent_spawned":this.onAgentSpawned(c,i,n);break;case"agent_removed":this.onAgentRemoved(c,i);break;case"collab_started":this.onCollabStarted(c);break;case"collab_ended":this.onCollabEnded(c);break;case"skill_published":this.onSkillPublished(c,n);break;case"skill_adopted":this.onSkillAdopted(c,n);break;case"mycelium_transport":this.onMyceliumTransport(c,i,n);break;case"mycelium_crystallize":this.onMyceliumCrystallize(c,i,n);break;case"mycelium_spore":this.onMyceliumSpore(c,i,n);break;case"mycelium_decompose":this.onMyceliumDecompose(c,i,n);break;case"mycelium_unit_created":this.onMyceliumUnitCreated(c,n);break;case"mycelium_germinate":this.onMyceliumGerminate(c,i,n);break;case"hyphal_strengthen":this.onHyphalStrengthen(i,n);break;case"hyphal_weaken":this.onHyphalWeaken(i,n);break}}onToolStart(t,n){const i=typeof n.tool_name=="string"?n.tool_name:"tool",r=Qk(i);t.urgency="urgent",t.currentTool=i,t.isActive=!0,t.showBubble(`${r}...`),this.sendToSeat(t)}onToolDone(t,n){const i=typeof n.tool_name=="string"?n.tool_name:t.currentTool,r=Qk(i);t.currentTool=null,t.setAgentState(st.CELEBRATE),t.stateTimer=Xa,t.isActive=!1,t.showBubble(`${r} done`)}onAgentActive(t){t.urgency="urgent",t.isActive=!0,t.currentTool||this.sendToSeat(t)}onWaiting(t){t.urgency="relaxed",t.isActive=!1,t.currentTool=null,t.showBubble("Waiting");const n=this.moveToZone(t,"breakRoom",st.COFFEE);n||t.setAgentState(st.IDLE),n&&(t.stateTimer=Jo(N3,I3))}onReflectStart(t){t.urgency="normal",t.isActive=!1,t.currentTool="Reflect",this.moveToZone(t,"meetingRoom",st.REFLECT)||t.setAgentState(st.REFLECT),t.stateTimer=30,t.showBubble("Reflecting...")}onReflectDone(t){t.currentTool=null,t.setAgentState(st.CELEBRATE),t.stateTimer=Xa,t.showBubble("Insight!")}onSkillSynthesized(t,n){const i=Zr(String(n.skill_name??"new"),20);t.setAgentState(st.PRESENT),t.showBubble(`New Skill: ${i}`)}onSubagentSpawn(t,n,i){this.placeAtDoorway(t),t.urgency="urgent",t.isActive=!0,t.showBubble("Spawned"),this.sendToSeat(t)}onSubagentDone(t,n){t.urgency="relaxed",t.currentTool=null,t.isActive=!1,t.showBubble("Finished"),this.moveToDoorway(t)?this.pendingDespawn.add(n):this.scene.removeAgent(n)}onMessageIn(t,n){t.urgency="urgent";const i=typeof n.content_preview=="string"?n.content_preview:"";i&&(t.taskSummary=i);const r=i?Zr(i,30):"New task";t.showBubble(r),t.isActive=!0,this.sendToSeat(t)}onMessageOut(t,n){const i=typeof n.content_preview=="string"?n.content_preview:"";i&&(t.taskSummary=i);const r=i?Zr(i,30):"Reply sent";t.showBubble(`Reply: ${r}`)}onPracticeStart(t,n){t.urgency="normal";const i=typeof n.target_domain=="string"?n.target_domain:"Practice";t.showBubble(`Practicing: ${Zr(i,20)}`),t.isActive=!1,t.currentTool="Practice",this.moveToZone(t,"meetingRoom",st.PRACTICE)||t.setAgentState(st.PRACTICE)}onPracticeDone(t){t.currentTool=null,t.setAgentState(st.CELEBRATE),t.stateTimer=Xa,t.showBubble("Practice done!")}onTaskRouted(t,n){t.urgency="urgent";const i=typeof n.method=="string"?n.method:"auto";t.isActive=!0,this.sendToSeat(t),t.showBubble(`Assigned (${i})`)}onTaskDelegated(t,n,i){t.urgency="normal",t.stateTimer=Jo(Pk,Bk);const r=typeof i.target=="string"?i.target:"?";t.setAgentState(st.CHAT),t.showBubble(`Delegating to ${r}...`);const o=this.scene.getAgent(r);o&&(o.parentAgentId=n,o.showBubble("Receiving task..."))}onDelegationDone(t,n){const i=typeof n.target=="string"?n.target:"";if(t.setAgentState(st.IDLE),t.showBubble("Delegation complete"),i){const r=this.scene.getAgent(i);r&&(r.parentAgentId=null)}}onAgentSpawned(t,n,i){const r=typeof i.role_name=="string"?i.role_name:n;t.displayName=r,this.placeAtDoorway(t),this.sendToSeat(t),t.showBubble(`${r} joined`)}onAgentRemoved(t,n){t.showBubble("Leaving..."),this.moveToDoorway(t)?this.pendingDespawn.add(n):this.scene.removeAgent(n)}onCollabStarted(t){t.urgency="normal",t.isActive=!1,t.stateTimer=Jo(Pk,Bk),this.moveToZone(t,"meetingRoom",st.CHAT),t.showBubble("Collaborating...")}onCollabEnded(t){t.stateTimer=Xa,t.setAgentState(st.CELEBRATE),t.showBubble("Collaboration done!")}onSkillPublished(t,n){const i=Zr(String(n.skill_name??"skill"),20);t.setAgentState(st.CELEBRATE),t.stateTimer=Xa,t.showBubble(`Published: ${i}`)}onSkillAdopted(t,n){const i=Zr(String(n.skill_name??"skill"),20);t.showBubble(`Adopted: ${i}`)}onMyceliumTransport(t,n,i){const r=typeof i.source=="string"?i.source:n,o=typeof i.target=="string"?i.target:null,a=typeof i.domain=="string"?Zr(i.domain,15):"?",c=this.scene.ensureAgent(r);if(c.myceliumEffect="transport_send",c.myceliumEffectTimer=3,c.showBubble(`-> [${a}]`),o){const d=this.scene.ensureAgent(o);d.myceliumEffect="transport_recv",d.myceliumEffectTimer=2,d.showBubble("Receiving...");const m=d.getTilePos();c.walkTo(m.x,m.y+1)}}onMyceliumCrystallize(t,n,i){const r=Array.isArray(i.corroborating_agents)?i.corroborating_agents:[],o=Zr(String(i.content_preview??"Knowledge"),22),a=Array.from(new Set([n,...r])),c=`${t.officeId}-meetingRoom`,d=wo[c]?.seats??[];for(let m=0;m{p.setDirection(x.facing),p.setAgentState(st.CHAT)}),p.showBubble(h===n?`Crystal: ${o}`:"Crystal!")}}onMyceliumSpore(t,n,i){const r=Zr(String(i.content_preview??"Breakthrough"),20);t.myceliumEffect="spore_send",t.myceliumEffectTimer=4,t.setAgentState(st.PRESENT),t.showBubble(`Breakthrough! ${r}`),this.moveToZone(t,"breakRoom")}onMyceliumDecompose(t,n,i){const r=Zr(String(i.humus_preview??"Lesson learned"),22);t.myceliumEffect="decompose",t.myceliumEffectTimer=4,t.setAgentState(st.REFLECT),t.showBubble(`Learning: ${r}`),this.moveToZone(t,"meetingRoom")}onMyceliumUnitCreated(t,n){const i=String(n.nutrient_type??"insight").slice(0,1).toUpperCase();t.showBubble(`[${i}]...`,2)}onMyceliumGerminate(t,n,i){const r=typeof i.target_agent=="string"?i.target_agent:n,o=this.scene.ensureAgent(r);o.myceliumEffect=null,o.setAgentState(st.CELEBRATE),o.stateTimer=Xa,o.showBubble("Insight took root!")}onHyphalStrengthen(t,n){}onHyphalWeaken(t,n){}updateIdle(t){for(const n of this.scene.agents.values()){if(this.pendingDespawn.has(n.agentId)&&!n.isMoving){this.pendingDespawn.delete(n.agentId),this.scene.removeAgent(n.agentId);continue}if(n.myceliumEffectTimer>0&&(n.myceliumEffectTimer-=t,n.myceliumEffectTimer<=0&&(n.myceliumEffect=null,n.myceliumEffectTimer=0,n.myceliumSession=null)),n.agentState===st.TYPE&&!n.isActive){n.seatTimer>0?(n.seatTimer-=t,n.seatTimer<=0&&(n.seatTimer=0,n.setAgentState(st.IDLE),n.wanderCount=0,n.wanderLimit=n4(Zj,Qj),n.wanderTimer=Jo(If,Tf))):n.setAgentState(st.IDLE);continue}if(n.agentState===st.IDLE){if(n.isActive){if(n.urgency="urgent",!n.seatId){n.setAgentState(st.TYPE);continue}this.sendToSeat(n);continue}if(n.wanderTimer-=t,n.wanderTimer<=0){if(n.wanderCount>=n.wanderLimit&&n.seatId){n.urgency="relaxed",this.sendToSeat(n),n.wanderTimer=Jo(If,Tf);continue}const i=this.scene.getWalkableTilesForOffice(n.officeId);if(i.length>0){n.urgency="relaxed";const r=i[Math.floor(Math.random()*i.length)];n.walkTo(r.x,r.y),n.wanderCount++}n.wanderTimer=Jo(If,Tf)}}}}sendToSeat(t){if(!t.seatId)return;const n=this.scene.getSeatById(t.seatId);n&&t.walkTo(n.tileX,n.tileY,()=>{t.setAgentState(st.TYPE),t.setDirection(n.facing),t.isActive||(t.seatTimer=$k+Math.random()*Hk)}).then(i=>{i||(t.setAgentState(st.TYPE),t.setDirection(n.facing),t.isActive||(t.seatTimer=$k+Math.random()*Hk))})}moveToZone(t,n,i){const r=`${t.officeId}-${n}`,o=wo[r];if(!o)return!1;if(o.seats.length>0){const c=new Set;for(const m of this.scene.agents.values()){if(m===t||m.isMoving)continue;const h=m.getTilePos();c.add(`${h.x},${h.y}`)}for(const m of this.scene.agents.values()){if(m===t||!m.isMoving)continue;const h=m.currentPath;if(h?.length){const p=h[h.length-1];c.add(`${p.x},${p.y}`)}}const d=o.seats.find(m=>!c.has(`${m.tileX},${m.tileY}`));if(d)return t.walkTo(d.tileX,d.tileY,()=>{t.setDirection(d.facing),i?t.setAgentState(i):t.setAgentState(st.IDLE)}),!0}const a=t4(r);return a?(t.walkTo(a.x,a.y,()=>{i?t.setAgentState(i):t.setAgentState(st.IDLE)}),!0):!1}moveToDoorway(t){const n=Zk(t.officeId);if(n.length===0)return!1;const i=n[Math.floor(Math.random()*n.length)];return t.walkTo(i.x,i.y),!0}placeAtDoorway(t){const n=Zk(t.officeId);if(n.length>0){const i=n[Math.floor(Math.random()*n.length)];t.setPosition(i.x*T+T/2,i.y*T+T/2)}}}class r4 extends Qi.Scene{constructor(){super("Office"),this.yachtLoopStarted=!1,this.outdoorIsDay=null,this.agents=new Map,this.seats=[],this.walkableTiles=[],this.walkableTilesByOffice=new Map,this.dragState={pointerId:null,lastX:0,lastY:0,moved:!1}}create(){this.bridge=this.registry.get("bridge");const t=iu();this.outdoorIsDay=t,this.cameras.main.setBackgroundColor(t?Lk:zk),this.mapBuilder=new Vf,this.mapData=this.mapBuilder.buildMap(this,t),this.pathfinder=new Xk(this.mapData.collisionGrid),this.walkableTiles=this.pathfinder.getWalkableTiles(),this.buildWalkableTilesByOffice(),this.seats=Kk().map(d=>({...d})),this.behavior=new i4(this);const n=pg*T,i=Oc*T,r=-nu,o=-ll,a=n+nu*2,c=i+ll+fl;this.physics.world.setBounds(r,o,a,c),this.cameras.main.setBounds(r,o,a,c),this.resetCameraView(!1),this.startWaterfrontLoop(),this.input.on("pointerdown",d=>{d.leftButtonDown()&&(this.dragState.pointerId=d.id,this.dragState.lastX=d.x,this.dragState.lastY=d.y,this.dragState.moved=!1)}),this.input.on("pointermove",d=>{if(!d.isDown||this.dragState.pointerId!==d.id)return;const m=d.x-this.dragState.lastX,h=d.y-this.dragState.lastY;if(!this.dragState.moved&&Math.abs(d.downX-d.x)+Math.abs(d.downY-d.y)<6)return;this.dragState.moved=!0;const p=this.cameras.main;p.stopFollow(),p.scrollX-=m/p.zoom,p.scrollY-=h/p.zoom,this.dragState.lastX=d.x,this.dragState.lastY=d.y}),this.input.on("wheel",(d,m,h,p)=>{const g=this.cameras.main,x=this.input.activePointer,v=g.getWorldPoint(x.x,x.y),_=this.getMinCameraZoom(g),k=Qi.Math.Clamp(g.zoom-p*.0015,_,3);g.setZoom(k);const w=g.getWorldPoint(x.x,x.y);g.scrollX+=v.x-w.x,g.scrollY+=v.y-w.y,g.scrollX=g.clampX(g.scrollX),g.scrollY=g.clampY(g.scrollY)}),this.scale.on("resize",()=>{const d=this.cameras.main,m=this.getMinCameraZoom(d);d.zoom{if(this.dragState.pointerId!==d.id)return;const m=this.dragState.pointerId===d.id&&this.dragState.moved;if(this.dragState.pointerId=null,this.dragState.moved=!1,m)return;const h=this.cameras.main.getWorldPoint(d.x,d.y);let p=null,g=1/0;for(const x of this.agents.values()){const v=Qi.Math.Distance.Between(h.x,h.y,x.x,x.y);v<24&&vthis.add.circle(Y,5,2.1,14284031,.95));G.add($),G.setDepth(-250),G.setAlpha(0),G.setRotation(-.04),G.setScale(o),this.tweens.add({targets:[p,g,x],scaleX:{from:.85,to:1.2},alpha:{from:.5,to:.2},duration:900,yoyo:!0,repeat:-1});const q=()=>{G.setPosition(c,a),G.setAlpha(0),G.setRotation(-.04),p.setAlpha(.55),g.setAlpha(.42),x.setAlpha(.24),this.tweens.add({targets:G,x:d,alpha:1,rotation:.015,duration:7200,ease:"Sine.InOut",onComplete:()=>{p.setAlpha(.22),g.setAlpha(.14),x.setAlpha(.08),this.tweens.add({targets:G,x:d+4,y:a+T*.12,duration:1400,yoyo:!0,repeat:2,ease:"Sine.InOut"}),this.time.delayedCall(3600,()=>{p.setAlpha(.48),g.setAlpha(.32),x.setAlpha(.18),this.tweens.add({targets:G,x:m,alpha:0,rotation:-.055,duration:7600,ease:"Sine.InOut",onComplete:()=>{this.time.delayedCall(2400,q)}})})}})};q()}buildWalkableTilesByOffice(){this.walkableTilesByOffice.clear();const t=Kn();for(const n of t){const i=[];for(const r of this.walkableTiles)r.x>=n.offsetCol&&r.xm.id===t);if(!i)return;const r=(i.offsetCol+Xn/2)*T,o=Oc/2*T,a=this.cameras.main,c=this.getMinCameraZoom(a),d=Qi.Math.Clamp(Math.min(this.scale.width/((Xn+4)*T),this.scale.height/((Oc-4)*T)),c,Math.max(1.5,c));a.stopFollow(),this.tweens.add({targets:a,zoom:d,duration:380,ease:"Cubic.easeOut"}),a.pan(r,o,380,"Cubic.easeOut")}resolveOfficeForAgent(t){const n=z3(t);if(n)return n.id;const i=Kn();let r=null,o=-1;for(const c of i){const d=sE(c.id),m=c.assignedAgents.length,h=d.length-m;h>o&&(r=c,o=h)}const a=r?.id??i[0]?.id??"office-0";return hg(a,t),a}addAgent(t,n,i=!1,r=null,o,a,c){if(this.agents.has(t))return this.agents.get(t);const d=n??t,m=a??this.agents.size%6,h=o?(hg(o,t),o):this.resolveOfficeForAgent(t),p=c?this.seats.find(j=>j.id===c&&!j.assigned)??this.findFreeSeatInOffice(h):this.findFreeSeatInOffice(h),v=(Kn().find(j=>j.id===h)?.offsetCol??0)+5,_=20;let k=v,w=_;p&&(k=p.tileX,w=p.tileY,p.assigned=!0,p.assignedTo=t);const S=new H3(this,t,d,m,k,w);return S.officeId=h,S.setPathfinder(this.pathfinder),S.seatId=p?.id??null,S.isSubagent=i,S.parentAgentId=r,p&&(S.setAgentState(st.TYPE),S.setDirection(p.facing),S.seatTimer=10),this.agents.set(t,S),S}removeAgent(t){const n=this.agents.get(t);if(n){if(n.seatId){const i=this.seats.find(r=>r.id===n.seatId);i&&(i.assigned=!1,i.assignedTo=null)}n.destroy(),this.agents.delete(t);try{const{unassignAgent:i}=require("../map/OfficeStore");i(t)}catch{}}}getAgent(t){return this.agents.get(t)}ensureAgent(t,n,i=!1,r=null,o,a,c){const d=this.agents.get(t);return d?(o&&d.officeId!==o&&this.reassignAgent(t,o),c&&d.seatId!==c&&this.changeAgentSeat(t,c),d):this.addAgent(t,n,i,r,o,a,c)}findFreeSeatInOffice(t){const n=this.seats.filter(i=>i.id.startsWith(`${t}-desk-`)).find(i=>!i.assigned);return n||(this.seats.filter(i=>i.id.startsWith(`${t}-leader-`)).find(i=>!i.assigned)??null)}getSeatById(t){return this.seats.find(n=>n.id===t)}reassignAgent(t,n){const i=this.agents.get(t);if(!i)return;if(i.seatId){const m=this.seats.find(h=>h.id===i.seatId);m&&(m.assigned=!1,m.assignedTo=null)}i.stopMovement(),hg(n,t),i.officeId=n;const r=this.findFreeSeatInOffice(n),c=(Kn().find(m=>m.id===n)?.offsetCol??0)+5,d=20;r?(r.assigned=!0,r.assignedTo=t,i.seatId=r.id,i.setPosition(r.tileX*T+T/2,r.tileY*T+T/2),i.setAgentState(st.TYPE),i.setDirection(r.facing),i.seatTimer=10):(i.seatId=null,i.setPosition(c*T+T/2,d*T+T/2))}getCharacterCards(){const t=[];for(const n of this.agents.values())t.push({id:n.agentId,displayName:n.displayName,state:n.agentState,currentTool:n.currentTool,isSubagent:n.isSubagent,parentAgentId:n.parentAgentId,taskSummary:n.taskSummary,lastEventAt:n.lastEventAt,officeId:n.officeId,seatId:n.seatId});return t}changeAgentSeat(t,n){const i=this.agents.get(t);if(!i)return;if(i.seatId){const o=this.seats.find(a=>a.id===i.seatId);o&&(o.assigned=!1,o.assignedTo=null)}const r=this.seats.find(o=>o.id===n);!r||r.assigned&&r.assignedTo!==t||(r.assigned=!0,r.assignedTo=t,i.seatId=n,i.stopMovement(),i.setPosition(r.tileX*T+T/2,r.tileY*T+T/2),i.setAgentState(st.TYPE),i.setDirection(r.facing),i.seatTimer=10)}rebuildOfficeCollision(t,n,i){P3(t,n,i),this.mapData.wallBodies&&this.mapData.wallBodies.clear(!0,!0);const r=Kn(),o=nE(r),a=Vf.buildWallBodies(this,o);this.mapData={...this.mapData,wallBodies:a,collisionGrid:o},this.pathfinder=new Xk(o),this.walkableTiles=this.pathfinder.getWalkableTiles(),this.buildWalkableTilesByOffice(),e4(r),this.seats=Kk().map(c=>({...c}));for(const c of this.agents.values())c.setPathfinder(this.pathfinder),c.stopMovement();console.log("[OfficeScene] Office collision rebuilt —",t,"walkable:",this.walkableTiles.length)}renameOffice(t,n){O3(t,n),this.mapBuilder.updateLabel(t,n)}checkOutdoorDayNight(){this.applyOutdoorLighting(iu())}syncOutdoorLighting(){this.applyOutdoorLighting(iu())}applyOutdoorLighting(t){t!==this.outdoorIsDay&&(this.outdoorIsDay=t,this.cameras.main.setBackgroundColor(t?Lk:zk),this.mapBuilder.refreshOutdoorDayNight(this,t))}getWorldSize(){const t=pg*T,n=Oc*T;return{worldW:t+nu*2,worldH:n+ll+fl}}getMinCameraZoom(t){const{worldW:n,worldH:i}=this.getWorldSize();return Math.max(t.width/n,t.height/i)}}function s4({bridge:e,active:t=!0}){const n=C.useRef(null),i=C.useRef(null),r=C.useRef(null),o=C.useRef(t);return o.current=t,C.useEffect(()=>{const a=r.current;!a||!a.loop||(t?a.loop.started&&!a.loop.running&&(a.loop.wake(),a.scale.getParentBounds(),a.scale.refresh()):a.loop.running&&a.loop.sleep())},[t]),C.useEffect(()=>{if(!n.current||!i.current)return;const a=n.current,c=i.current,d=(h,p)=>{console.log("[PhaserGame] Creating Phaser game",h,"×",p);const g=R3(c,h,p);g.scene=[D3,r4];const x=new Qi.Game(g);x.registry.set("bridge",e),x.events.once(Qi.Core.Events.READY,()=>{!o.current&&x.loop.running&&x.loop.sleep()}),r.current=x};if(typeof ResizeObserver>"u")return d(a.clientWidth||window.innerWidth-380,a.clientHeight||window.innerHeight-48),()=>{r.current?.destroy(!0),r.current=null};const m=new ResizeObserver(h=>{const p=h[h.length-1].contentRect,g=Math.floor(p.width),x=Math.floor(p.height);if(!(g<1||x<1))if(!r.current)d(g,x);else{const v=r.current.scale;v.getParentBounds(),v.refresh()}});return m.observe(a),()=>{m.disconnect(),r.current?.destroy(!0),r.current=null}},[e]),u.jsx("div",{ref:n,style:{width:"100%",height:"100%"},children:u.jsx("div",{ref:i,style:{width:"100%",height:"100%"}})})}class o4 extends Qi.Events.EventEmitter{constructor(){super(),this.scene=null,this.eventQueue=[],this.snapshotQueue=[]}setScene(t){this.scene=t;for(const n of this.snapshotQueue)this.applySnapshot(n);this.snapshotQueue=[];for(const n of this.eventQueue)this.applyEvent(n);this.eventQueue=[]}getScene(){return this.scene}pushEvent(t){if(!this.scene){this.eventQueue.push(t),this.eventQueue.length>500&&this.eventQueue.shift();return}this.applyEvent(t)}pushSnapshot(t){const n=Object.keys(t.agents??{}).length;if(!this.scene){console.log(`[GameBridge] pushSnapshot queued (scene not ready) — ${n} agents`),this.snapshotQueue=[t],this.eventQueue=[];return}console.log(`[GameBridge] pushSnapshot applying now — ${n} agents`),this.applySnapshot(t)}sendToSeat(t){this.scene&&this.scene.behavior.sendToSeat(this.scene.ensureAgent(t))}setAgentActive(t,n){if(!this.scene)return;const i=this.scene.getAgent(t);i&&(i.isActive=n)}setAgentBubble(t,n){if(!this.scene)return;const i=this.scene.getAgent(t);i&&(n?i.showBubble(n):i.clearBubble())}ensureAgent(t,n,i,r,o){this.scene&&this.scene.ensureAgent(t,n,!1,null,i,r,o)}getCharacterCards(){return this.scene?this.scene.getCharacterCards():[]}getOffices(){return Kn()}renameOffice(t,n){this.scene&&(this.scene.renameOffice(t,n),this.emit("officeChanged"))}assignAgentToOffice(t,n){this.scene&&(this.scene.reassignAgent(t,n),this.emit("officeChanged"))}panToOffice(t){this.scene&&this.scene.panToOffice(t)}resetCamera(){this.scene&&this.scene.resetCameraView()}syncOutdoorLighting(){this.scene&&this.scene.syncOutdoorLighting()}rebuildOfficeCollision(t,n,i){this.scene&&this.scene.rebuildOfficeCollision(t,n,i)}getSeatsForOffice(t){return this.scene?this.scene.seats.filter(n=>n.id.startsWith(`${t}-desk-`)||n.id.startsWith(`${t}-leader-`)).map(n=>({id:n.id,assigned:n.assigned,assignedTo:n.assignedTo})):[]}changeAgentSeat(t,n){this.scene&&(this.scene.changeAgentSeat(t,n),this.emit("officeChanged"))}notifyChannelMessage(t,n){if(this.scene)for(const i of t){const r=this.scene.getAgent(i);r&&(r.showBubble(n.slice(0,30)),setTimeout(()=>r.clearBubble(),4e3))}}triggerCrossOfficeMeeting(t){if(this.scene)for(const n of t){const i=this.scene.getAgent(n);i&&this.scene.behavior.moveToZone(i,"meetingRoom")}}triggerCelebration(t){if(!this.scene)return;const n=this.scene.getAgent(t);n&&(n.showBubble("🎉 Done!"),setTimeout(()=>n.clearBubble(),3e3))}applyEvent(t){this.scene&&(this.scene.behavior.applyEvent(t),this.emit("eventApplied",t))}applySnapshot(t){if(!this.scene){console.warn("[GameBridge] applySnapshot called but scene is null");return}const n=Array.from(this.scene.agents.keys());console.log("[GameBridge] applySnapshot — clearing",n.length,"old agents:",n);for(const o of n)this.scene.removeAgent(o);const i=t.timeline??[];for(const o of i)this.scene.behavior.applyEvent(o);const r=Object.entries(t.agents??{});console.log("[GameBridge] applySnapshot — adding",r.length,"agents:",r.map(([o])=>o));for(const[o,a]of r){const c=a,d=c.name||c.role_name||o,m=c.office_id,h=c.appearance?.palette,p=c.appearance?.desk_id;try{const g=this.scene.ensureAgent(o,d,!1,null,m,h,p),x=c.runtime_status||c.status;x==="tool_active"?(g.currentTool=c.current_tool??null,g.isActive=!0,g.setAgentState(st.TYPE)):x==="reflecting"&&(g.currentTool=c.current_tool??"Reflect",g.isActive=!1,g.setAgentState(st.REFLECT)),console.log(`[GameBridge] ✓ ensured ${o} in ${m} palette=${h}`)}catch(g){console.error(`[GameBridge] ✗ ensureAgent failed for ${o}:`,g)}}i.length===0&&r.length===0&&(console.warn("[GameBridge] applySnapshot — empty snapshot, creating fallback agent"),this.scene.ensureAgent("openopc-main","OpenOPC")),console.log("[GameBridge] applySnapshot done — total agents:",this.scene.agents.size),this.emit("snapshotApplied",t)}}const a4="assets/office-bg.png";function l4({bridge:e}){const t=C.useRef(null),n=C.useRef(null),i=C.useRef(!1),[r,o]=C.useState(()=>Kn()),[a,c]=C.useState(()=>Kn()[0]?.id??"office-0"),d=r.find(te=>te.id===a)??r[0],[m,h]=C.useState(()=>gg(d?.mapStr??ru,Xn,dr)),[p,g]=C.useState(()=>[...d?.seats??su]),[x,v]=C.useState("wall"),[_,k]=C.useState(!1),[w,S]=C.useState(!1),[j,N]=C.useState(!1),[O,R]=C.useState(1),[D,I]=C.useState(!0),L=Xn,M=dr,A=te=>{const oe=Kn();o(oe),c(te);const ae=oe.find(ue=>ue.id===te);ae&&(h(gg(ae.mapStr,Xn,dr)),g([...ae.seats])),N(!1)};C.useEffect(()=>{const te=new Image;te.crossOrigin="anonymous",te.onload=()=>{n.current=te,k(!0)},te.onerror=()=>{n.current=null,k(!0)},te.src=a4},[]);const B=C.useCallback(()=>{const te=t.current;if(!te)return;const oe=te.getContext("2d");if(!oe)return;const ae=L*T,ue=M*T;te.width=ae,te.height=ue,oe.clearRect(0,0,ae,ue),n.current?oe.drawImage(n.current,0,0,ae,ue):(oe.fillStyle="#3d3d3d",oe.fillRect(0,0,ae,ue));for(let ie=0;ie{B()},[B]);const W=te=>{const oe=t.current;if(!oe)return null;const ae=oe.getBoundingClientRect(),ue=oe.width/ae.width,ie=oe.height/ae.height,we=Math.floor((te.clientX-ae.left)*ue/T),je=Math.floor((te.clientY-ae.top)*ie/T);return we<0||we>=L||je<0||je>=M?null:{c:we,r:je}},P=C.useCallback((te,oe)=>{if(N(!1),x==="seat")g(ae=>{const ue=ae.findIndex(([ie,we])=>ie===te&&we===oe);return ue>=0?ae.filter((ie,we)=>we!==ue):[...ae,[te,oe]]}),h(ae=>{if(ae[oe]?.[te]===1){const ue=ae.map(ie=>[...ie]);return ue[oe][te]=0,ue}return ae});else{const ae=x==="wall"?1:0;h(ue=>{if(ue[oe]?.[te]===ae)return ue;const ie=ue.map(we=>[...we]);return ie[oe][te]=ae,ie}),x==="wall"&&g(ue=>ue.filter(([ie,we])=>!(ie===te&&we===oe)))}},[x]),G=te=>{if(te.button!==0)return;i.current=!0;const oe=W(te);oe&&P(oe.c,oe.r)},$=te=>{if(!i.current||x==="seat")return;const oe=W(te);oe&&P(oe.c,oe.r)},q=()=>{i.current=!1},Y=()=>{const te=Vk(m);e.rebuildOfficeCollision(a,te,p),N(!0),o(Kn()),setTimeout(()=>N(!1),2e3)},Q=()=>S(te=>!te),V=()=>{h(gg(ru,Xn,dr)),g([...su]),N(!1)},U=(()=>{const oe=Vk(m).map((ue,ie)=>` '${ue}', // ${ie}`).join(` -`),ae=p.map(([ue,ie])=>` [${ue}, ${ie}],`).join(` -`);return`const MAP_STR: string[] = [ -${oe} -] - -const SEATS: [number, number][] = [ -${ae} -]`})(),Z=()=>R(te=>Math.min(te+.25,3)),F=()=>R(te=>Math.max(te-.25,.5)),K=m.flat().filter(te=>te===1).length,ee=m.flat().filter(te=>te===0).length;return u.jsxs("div",{className:"collision-editor",children:[u.jsxs("div",{className:"ce-toolbar",children:[u.jsxs("div",{className:"ce-toolbar-group",children:[u.jsx("span",{className:"ce-title",children:"Map Editor"}),u.jsx("select",{className:"ce-office-select",value:a,onChange:te=>A(te.target.value),children:r.map(te=>u.jsx("option",{value:te.id,children:te.name},te.id))})]}),u.jsxs("div",{className:"ce-toolbar-group",children:[u.jsxs("button",{className:`ce-mode-btn ${x==="wall"?"active wall":""}`,onClick:()=>v("wall"),children:[u.jsx("span",{className:"ce-mode-dot wall"})," Wall"]}),u.jsxs("button",{className:`ce-mode-btn ${x==="floor"?"active floor":""}`,onClick:()=>v("floor"),children:[u.jsx("span",{className:"ce-mode-dot floor"})," Floor"]}),u.jsxs("button",{className:`ce-mode-btn ${x==="seat"?"active seat":""}`,onClick:()=>v("seat"),children:[u.jsx("span",{className:"ce-mode-dot seat"})," Seat"]})]}),u.jsxs("div",{className:"ce-toolbar-group",children:[u.jsx("button",{className:"ce-btn",onClick:F,children:"-"}),u.jsxs("span",{className:"ce-zoom-label",children:[Math.round(O*100),"%"]}),u.jsx("button",{className:"ce-btn",onClick:Z,children:"+"}),u.jsx("button",{className:`ce-btn${D?" active":""}`,onClick:()=>I(te=>!te),children:"Grid"})]}),u.jsxs("div",{className:"ce-toolbar-group",children:[u.jsx("button",{className:`ce-btn apply${j?" success":""}`,onClick:Y,children:j?"Applied":"Apply"}),u.jsx("button",{className:`ce-btn${w?" active":""}`,onClick:Q,children:"Export"}),u.jsx("button",{className:"ce-btn danger",onClick:V,children:"Reset"})]}),u.jsxs("div",{className:"ce-toolbar-group ce-stats",children:[u.jsxs("span",{children:["Walls: ",K]}),u.jsxs("span",{children:["Floor: ",ee]}),u.jsxs("span",{children:["Seats: ",p.length]})]})]}),u.jsxs("div",{className:"ce-body",children:[u.jsx("div",{className:"ce-canvas-wrap",style:{overflow:"auto"},children:u.jsx("canvas",{ref:t,style:{width:L*T*O,height:M*T*O,imageRendering:"pixelated",cursor:x==="seat"?"crosshair":"cell"},onMouseDown:G,onMouseMove:$,onMouseUp:q,onMouseLeave:q})}),w&&u.jsxs("div",{className:"ce-export-panel",children:[u.jsxs("div",{className:"ce-export-header",children:[u.jsx("span",{children:"Export — copy to source code"}),u.jsx("button",{className:"ce-btn",onClick:()=>navigator.clipboard.writeText(U),children:"Copy"})]}),u.jsx("textarea",{className:"ce-export-textarea",value:U,readOnly:!0,rows:20})]})]})]})}let c4=0;function gi(e,t,n={}){return{event_id:`test-${++c4}`,type:e,agent_id:t,data:n,timestamp:Date.now()/1e3}}function Pn(e){return new Promise(t=>setTimeout(t,e))}async function u4(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 Pn(100);const i=Kn();t.push({name:"offices-loaded",pass:i.length>=3,detail:`${i.length} offices loaded: ${i.map(A=>A.name).join(", ")}`});const r=["agent-A","agent-B","agent-C","agent-D","agent-E","agent-F"];for(const A of r)e.pushEvent(gi("agent_active",A));await Pn(300);const o=new Set;let a=!1;for(const A of r){const B=n.getAgent(A);B&&B.seatId&&(o.has(B.seatId)&&(a=!0),o.add(B.seatId))}t.push({name:"desk-assignment-unique",pass:!a&&o.size===r.length,detail:`Assigned ${o.size} unique seats to ${r.length} agents. IDs: [${[...o].join(", ")}]`});const c=r.every(A=>n.getAgent(A)?.officeId!=null);t.push({name:"agents-have-officeId",pass:c,detail:r.map(A=>`${A}=${n.getAgent(A)?.officeId}`).join(", ")}),e.pushEvent(gi("tool_start","agent-A",{tool_name:"shell"})),await Pn(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(gi("tool_done","agent-A",{tool_name:"shell"})),await Pn(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 Pn(500);t.push({name:"celebrate-to-idle",pass:d.agentState!=="celebrate",detail:`state=${d.agentState}`}),e.pushEvent(gi("waiting","agent-B")),await Pn(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(gi("reflect_start","agent-C")),await Pn(200);const h=n.getAgent("agent-C");t.push({name:"reflect_start-state",pass:h.currentTool==="Reflect"&&(h.agentState==="walk"||h.agentState==="reflect"),detail:`currentTool=${h.currentTool}, state=${h.agentState}`}),e.pushEvent(gi("reflect_done","agent-C")),await Pn(100),t.push({name:"reflect_done-celebrate",pass:h.agentState==="celebrate",detail:`state=${h.agentState}`});const p=["agent-A","agent-B","agent-C","agent-D"];for(const A of p)e.pushEvent(gi("collab_started",A));await Pn(4e3);const g=new Map;let x=!1;for(const A of p){const B=n.getAgent(A);if(!B)continue;const W=B.getTilePos(),P=`${W.x},${W.y}`;g.has(P)&&(x=!0),g.set(P,A)}t.push({name:"collab-no-overlap",pass:!x,detail:`${p.length} agents, ${g.size} unique positions`});for(const A of p)e.pushEvent(gi("collab_ended",A));await Pn(100);const v=p.every(A=>n.getAgent(A)?.agentState==="celebrate");t.push({name:"collab_ended-celebrate",pass:v,detail:p.map(A=>`${A}=${n.getAgent(A)?.agentState}`).join(", ")}),await Pn(3e3),e.pushEvent(gi("practice_start","agent-E",{target_domain:"TypeScript"})),await Pn(200);const _=n.getAgent("agent-E");t.push({name:"practice_start-state",pass:_.currentTool==="Practice"&&(_.agentState==="walk"||_.agentState==="practice"),detail:`currentTool=${_.currentTool}, state=${_.agentState}`}),e.pushEvent(gi("practice_done","agent-E")),await Pn(100),t.push({name:"practice_done-celebrate",pass:_.agentState==="celebrate",detail:`state=${_.agentState}`}),await Pn(3e3),e.pushEvent(gi("task_delegated","agent-A",{target:"agent-B"})),await Pn(100),t.push({name:"task_delegated-chat",pass:d.agentState==="chat",detail:`state=${d.agentState}`}),e.pushEvent(gi("delegation_done","agent-A",{target:"agent-B"})),await Pn(300),t.push({name:"delegation_done-return",pass:["idle","walk","type"].includes(d.agentState),detail:`state=${d.agentState}`});const k=n.getAgent("agent-F");e.pushEvent(gi("message_in","agent-F",{content_preview:"Hello test"})),await Pn(200),t.push({name:"message_in-active",pass:k.isActive===!0,detail:`isActive=${k.isActive}, state=${k.agentState}`}),e.pushEvent(gi("message_out","agent-F",{content_preview:"Reply test"})),await Pn(100),t.push({name:"message_out-bubble",pass:k.bubbleText?.includes("Reply")===!0,detail:`bubble="${k.bubbleText}"`}),e.pushEvent(gi("subagent_spawn","subagent-test-1",{parent_agent_id:"agent-A"})),await Pn(200);const w=n.getAgent("subagent-test-1");t.push({name:"subagent_spawn-created",pass:w!=null&&w.isSubagent===!0,detail:`created=${!!w}, isSubagent=${w?.isSubagent}`}),e.pushEvent(gi("subagent_done","subagent-test-1")),await Pn(5e3),t.push({name:"subagent_done-removed",pass:n.getAgent("subagent-test-1")==null,detail:`still exists=${!!n.getAgent("subagent-test-1")}`}),e.pushEvent(gi("task_routed","agent-E",{method:"auto"})),await Pn(200),t.push({name:"task_routed-active",pass:_.isActive===!0,detail:`isActive=${_.isActive}, state=${_.agentState}`}),e.pushEvent(gi("agent_removed","agent-F")),await Pn(5e3),t.push({name:"agent_removed-destroyed",pass:n.getAgent("agent-F")==null,detail:`still exists=${!!n.getAgent("agent-F")}`}),e.pushEvent(gi("mycelium_crystallize","agent-A",{corroborating_agents:["agent-B","agent-C"],content_preview:"Shared knowledge"})),await Pn(4e3);const S=new Map;let j=!1;for(const A of["agent-A","agent-B","agent-C"]){const B=n.getAgent(A);if(!B)continue;const W=B.getTilePos(),P=`${W.x},${W.y}`;S.has(P)&&(j=!0),S.set(P,A)}t.push({name:"crystal-no-overlap",pass:!j,detail:`3 agents, ${S.size} unique positions`});const N=new Map;let O=!1;for(const A of n.agents.values())A.seatId&&(N.has(A.seatId)&&(O=!0),N.set(A.seatId,A.agentId));t.push({name:"desk-seat-no-conflict",pass:!O,detail:`${N.size} desk seats assigned, conflict=${O}`});const R=n.getAgent("agent-D");if(R){const A=R.officeId,B=i.find(P=>P.id!==A)??i[1];e.assignAgentToOffice("agent-D",B.id),await Pn(300);const W=R.officeId;t.push({name:"reassign-office",pass:W===B.id&&W!==A,detail:`${A} → ${W} (expected ${B.id})`})}else t.push({name:"reassign-office",pass:!1,detail:"agent-D not found"});const D=new Map;let I=!1;for(const A of n.agents.values())A.seatId&&(D.has(A.seatId)&&(I=!0),D.set(A.seatId,A.agentId));t.push({name:"cross-office-seat-unique",pass:!I,detail:`${D.size} seats, conflict=${I}`});const L=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: ${L} 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 B=A.pass?"✅":"❌",W=A.pass?"color: #34d399":"color: #f87171; font-weight: bold";console.log(`%c ${B} ${A.name}: ${A.detail}`,W)}return t}function d4(e){window.__runEventTests=()=>u4(e),window.__bridge=e,console.log("%c[EventTest] Test runner ready. Run: window.__runEventTests()","color: #fbbf24; font-weight: bold")}const f4={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 m4(e){return e?f4[e]??"todo":"todo"}function p4(){return`${Date.now()}-${Math.random().toString(36).slice(2,7)}`}function h4(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 g4(e,t){return t.type==="SET"?t.columns:e}function y4(e,t){const n=Date.now();switch(t.type){case"SET":return t.tasks;case"ADD":return e.some(i=>i.id===t.task.id)?e:[...e,t.task];case"UPDATE":return e.map(i=>i.id===t.id?{...i,...t.partial,updatedAt:n}:i);case"DELETE":return e.filter(i=>i.id!==t.id);case"MOVE":return e.map(i=>i.id===t.id?{...i,columnId:t.columnId,sortOrder:t.sortOrder,updatedAt:n}:i);case"ASSIGN":return e.map(i=>i.id===t.taskId?{...i,assigneeIds:t.agentIds,updatedAt:n}:i);case"REMOVE_ASSIGNEE":return e.map(i=>i.assigneeIds.includes(t.agentId)?{...i,assigneeIds:i.assigneeIds.filter(r=>r!==t.agentId),updatedAt:n}:i);default:return e}}function x4(){const[e,t]=C.useReducer(h4,[]),[n,i]=C.useReducer(g4,[]),[r,o]=C.useReducer(y4,[]),[a,c]=C.useState(null),[d,m]=C.useState("default"),h=C.useMemo(()=>e.find(D=>D.id===a)??null,[e,a]),p=C.useMemo(()=>n.filter(D=>D.boardId===a).sort((D,I)=>D.sortOrder-I.sortOrder),[n,a]),g=C.useMemo(()=>{const D=r.filter(L=>L.boardId===a),I={};for(const L of p)I[L.id]=[];for(const L of D){const M=L.phase?m4(L.phase):L.columnId;I[M]&&I[M].push(L)}for(const L of Object.keys(I))I[L].sort((M,A)=>M.sortOrder-A.sortOrder);return I},[r,a,p]),x=C.useCallback(D=>{const I=e.find(B=>B.id===D.boardId),L=I?.nextTaskNum??1,M=I?.prefix??"T",A={id:D.taskId??`task-${p4()}`,displayId:D.displayId??`${M}-${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:A}),A},[e]),v=C.useCallback((D,I)=>o({type:"UPDATE",id:D,partial:I}),[]),_=C.useCallback(D=>o({type:"DELETE",id:D}),[]),k=C.useCallback((D,I,L)=>o({type:"MOVE",id:D,columnId:I,sortOrder:L}),[]),w=C.useCallback((D,I)=>o({type:"ASSIGN",taskId:D,agentIds:I}),[]),S=C.useCallback(()=>{const D=new Set(n.filter(I=>I.isTerminal).map(I=>I.id));return r.filter(I=>!D.has(I.columnId)).length},[r,n]),j=C.useCallback(D=>{o({type:"REMOVE_ASSIGNEE",agentId:D})},[]),N=C.useCallback((D,I,L,M,A)=>{const B=D||"default",W=B!==d,P=!W&&!!A?.preserveTasksWhenIncomingEmpty&&M.length===0;m(B),t({type:"SET",boards:I}),i({type:"SET",columns:L}),o({type:"SET",tasks:P?r:M}),c(G=>!W&&G&&I.some($=>$.id===G)?G:null)},[d,r]),O=C.useCallback(D=>{c(D)},[]),R=C.useCallback((D,I)=>{t({type:"UPDATE_NAME",boardId:D,name:I})},[]);return C.useMemo(()=>({scopeProjectId:d,boards:e,columns:n,tasks:r,activeBoardId:a,activeBoard:h,activeBoardColumns:p,tasksByColumn:g,setActiveBoard:O,createTask:x,updateTask:v,deleteTask:_,moveTask:k,assignTask:w,dispatchTask:o,getOpenTaskCount:S,removeAssignee:j,initFromBackend:N,updateBoardName:R}),[d,e,n,r,a,h,p,g,O,x,v,_,k,w,o,S,j,N,R])}var Im=Xj();const v4=ma(Im);function Za(e,t,n){let i=n.initialDeps??[],r,o=!0;function a(){var c,d,m;let h;n.key&&((c=n.debug)!=null&&c.call(n))&&(h=Date.now());const p=e();if(!(p.length!==i.length||p.some((v,_)=>i[_]!==v)))return r;i=p;let x;if(n.key&&((d=n.debug)!=null&&d.call(n))&&(x=Date.now()),r=t(...p),n.key&&((m=n.debug)!=null&&m.call(n))){const v=Math.round((Date.now()-h)*100)/100,_=Math.round((Date.now()-x)*100)/100,k=_/16,w=(S,j)=>{for(S=String(S);S.length{i=c},a}function Jk(e,t){if(e===void 0)throw new Error("Unexpected undefined");return e}const b4=(e,t)=>Math.abs(e-t)<1.01,_4=(e,t,n)=>{let i;return function(...r){e.clearTimeout(i),i=e.setTimeout(()=>t.apply(this,r),n)}},eS=e=>{const{offsetWidth:t,offsetHeight:n}=e;return{width:t,height:n}},k4=e=>e,S4=e=>{const t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1),i=[];for(let r=t;r<=n;r++)i.push(r);return i},w4=(e,t)=>{const n=e.scrollElement;if(!n)return;const i=e.targetWindow;if(!i)return;const r=a=>{const{width:c,height:d}=a;t({width:Math.round(c),height:Math.round(d)})};if(r(eS(n)),!i.ResizeObserver)return()=>{};const o=new i.ResizeObserver(a=>{const c=()=>{const d=a[0];if(d?.borderBoxSize){const m=d.borderBoxSize[0];if(m){r({width:m.inlineSize,height:m.blockSize});return}}r(eS(n))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(c):c()});return o.observe(n,{box:"border-box"}),()=>{o.unobserve(n)}},tS={passive:!0},nS=typeof window>"u"?!0:"onscrollend"in window,C4=(e,t)=>{const n=e.scrollElement;if(!n)return;const i=e.targetWindow;if(!i)return;let r=0;const o=e.options.useScrollendEvent&&nS?()=>{}:_4(i,()=>{t(r,!1)},e.options.isScrollingResetDelay),a=h=>()=>{const{horizontal:p,isRtl:g}=e.options;r=p?n.scrollLeft*(g&&-1||1):n.scrollTop,o(),t(r,h)},c=a(!0),d=a(!1);n.addEventListener("scroll",c,tS);const m=e.options.useScrollendEvent&&nS;return m&&n.addEventListener("scrollend",d,tS),()=>{n.removeEventListener("scroll",c),m&&n.removeEventListener("scrollend",d)}},j4=(e,t,n)=>{if(t?.borderBoxSize){const i=t.borderBoxSize[0];if(i)return Math.round(i[n.options.horizontal?"inlineSize":"blockSize"])}return e[n.options.horizontal?"offsetWidth":"offsetHeight"]},E4=(e,{adjustments:t=0,behavior:n},i)=>{var r,o;const a=e+t;(o=(r=i.scrollElement)==null?void 0:r.scrollTo)==null||o.call(r,{[i.options.horizontal?"left":"top"]:a,behavior:n})};class N4{constructor(t){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this.itemSizeCache=new Map,this.laneAssignments=new Map,this.pendingMeasuredCacheIndexes=[],this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.now=()=>{var n,i,r;return((r=(i=(n=this.targetWindow)==null?void 0:n.performance)==null?void 0:i.now)==null?void 0:r.call(i))??Date.now()},this.observer=(()=>{let n=null;const i=()=>n||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:n=new this.targetWindow.ResizeObserver(r=>{r.forEach(o=>{const a=()=>{const c=o.target,d=this.indexFromElement(c);if(!c.isConnected){this.observer.unobserve(c);return}this.shouldMeasureDuringScroll(d)&&this.resizeItem(d,this.options.measureElement(c,o,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(a):a()})}));return{disconnect:()=>{var r;(r=i())==null||r.disconnect(),n=null},observe:r=>{var o;return(o=i())==null?void 0:o.observe(r,{box:"border-box"})},unobserve:r=>{var o;return(o=i())==null?void 0:o.unobserve(r)}}})(),this.range=null,this.setOptions=n=>{Object.entries(n).forEach(([i,r])=>{typeof r>"u"&&delete n[i]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:k4,rangeExtractor:S4,onChange:()=>{},measureElement:j4,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,...n}},this.notify=n=>{var i,r;(r=(i=this.options).onChange)==null||r.call(i,this,n)},this.maybeNotify=Za(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),n=>{this.notify(n)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(n=>n()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var n;const i=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==i){if(this.cleanup(),!i){this.maybeNotify();return}this.scrollElement=i,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((n=this.scrollElement)==null?void 0:n.window)??null,this.elementsCache.forEach(r=>{this.observer.observe(r)}),this.unsubs.push(this.options.observeElementRect(this,r=>{this.scrollRect=r,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(r,o)=>{this.scrollAdjustments=0,this.scrollDirection=o?this.getScrollOffset()this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(n,i)=>{const r=new Map,o=new Map;for(let a=i-1;a>=0;a--){const c=n[a];if(r.has(c.lane))continue;const d=o.get(c.lane);if(d==null||c.end>d.end?o.set(c.lane,c):c.enda.end===c.end?a.index-c.index:a.end-c.end)[0]:void 0},this.getMeasurementOptions=Za(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes],(n,i,r,o,a,c)=>(this.prevLanes!==void 0&&this.prevLanes!==c&&(this.lanesChangedFlag=!0),this.prevLanes=c,this.pendingMeasuredCacheIndexes=[],{count:n,paddingStart:i,scrollMargin:r,getItemKey:o,enabled:a,lanes:c}),{key:!1}),this.getMeasurements=Za(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:n,paddingStart:i,scrollMargin:r,getItemKey:o,enabled:a,lanes:c},d)=>{if(!a)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>n)for(const g of this.laneAssignments.keys())g>=n&&this.laneAssignments.delete(g);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMeasuredCacheIndexes=[]),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(g=>{this.itemSizeCache.set(g.key,g.size)}));const m=this.lanesSettling?0:this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[],this.lanesSettling&&this.measurementsCache.length===n&&(this.lanesSettling=!1);const h=this.measurementsCache.slice(0,m),p=new Array(c).fill(void 0);for(let g=0;g1){_=v;const N=p[_],O=N!==void 0?h[N]:void 0;k=O?O.end+this.options.gap:i+r}else{const N=this.options.lanes===1?h[g-1]:this.getFurthestMeasurement(h,g);k=N?N.end+this.options.gap:i+r,_=N?N.lane:g%this.options.lanes,this.options.lanes>1&&this.laneAssignments.set(g,_)}const w=d.get(x),S=typeof w=="number"?w:this.options.estimateSize(g),j=k+S;h[g]={index:g,start:k,size:S,end:j,key:x,lane:_},p[_]=g}return this.measurementsCache=h,h},{key:!1,debug:()=>this.options.debug}),this.calculateRange=Za(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(n,i,r,o)=>this.range=n.length>0&&i>0?I4({measurements:n,outerSize:i,scrollOffset:r,lanes:o}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=Za(()=>{let n=null,i=null;const r=this.calculateRange();return r&&(n=r.startIndex,i=r.endIndex),this.maybeNotify.updateDeps([this.isScrolling,n,i]),[this.options.rangeExtractor,this.options.overscan,this.options.count,n,i]},(n,i,r,o,a)=>o===null||a===null?[]:n({startIndex:o,endIndex:a,overscan:i,count:r}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=n=>{const i=this.options.indexAttribute,r=n.getAttribute(i);return r?parseInt(r,10):(console.warn(`Missing attribute name '${i}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=n=>{var i;if(!this.scrollState||this.scrollState.behavior!=="smooth")return!0;const r=this.scrollState.index??((i=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))==null?void 0:i.index);if(r!==void 0&&this.range){const o=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),a=Math.max(0,r-o),c=Math.min(this.options.count-1,r+o);return n>=a&&n<=c}return!0},this.measureElement=n=>{if(!n){this.elementsCache.forEach((a,c)=>{a.isConnected||(this.observer.unobserve(a),this.elementsCache.delete(c))});return}const i=this.indexFromElement(n),r=this.options.getItemKey(i),o=this.elementsCache.get(r);o!==n&&(o&&this.observer.unobserve(o),this.observer.observe(n),this.elementsCache.set(r,n)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(i)&&this.resizeItem(i,this.options.measureElement(n,void 0,this))},this.resizeItem=(n,i)=>{var r;const o=this.measurementsCache[n];if(!o)return;const a=this.itemSizeCache.get(o.key)??o.size,c=i-a;c!==0&&(((r=this.scrollState)==null?void 0:r.behavior)!=="smooth"&&(this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(o,c,this):o.start[this.getVirtualIndexes(),this.getMeasurements()],(n,i)=>{const r=[];for(let o=0,a=n.length;othis.options.debug}),this.getVirtualItemForOffset=n=>{const i=this.getMeasurements();if(i.length!==0)return Jk(i[oE(0,i.length-1,r=>Jk(i[r]).start,n)])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if("scrollHeight"in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{const n=this.scrollElement.document.documentElement;return this.options.horizontal?n.scrollWidth-this.scrollElement.innerWidth:n.scrollHeight-this.scrollElement.innerHeight}},this.getOffsetForAlignment=(n,i,r=0)=>{if(!this.scrollElement)return 0;const o=this.getSize(),a=this.getScrollOffset();i==="auto"&&(i=n>=a+o?"end":"start"),i==="center"?n+=(r-o)/2:i==="end"&&(n-=o);const c=this.getMaxScrollOffset();return Math.max(Math.min(c,n),0)},this.getOffsetForIndex=(n,i="auto")=>{n=Math.max(0,Math.min(n,this.options.count-1));const r=this.getSize(),o=this.getScrollOffset(),a=this.measurementsCache[n];if(!a)return;if(i==="auto")if(a.end>=o+r-this.options.scrollPaddingEnd)i="end";else if(a.start<=o+this.options.scrollPaddingStart)i="start";else return[o,i];if(i==="end"&&n===this.options.count-1)return[this.getMaxScrollOffset(),i];const c=i==="end"?a.end+this.options.scrollPaddingEnd:a.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(c,i,a.size),i]},this.scrollToOffset=(n,{align:i="start",behavior:r="auto"}={})=>{const o=this.getOffsetForAlignment(n,i),a=this.now();this.scrollState={index:null,align:i,behavior:r,startedAt:a,lastTargetOffset:o,stableFrames:0},this._scrollToOffset(o,{adjustments:void 0,behavior:r}),this.scheduleScrollReconcile()},this.scrollToIndex=(n,{align:i="auto",behavior:r="auto"}={})=>{n=Math.max(0,Math.min(n,this.options.count-1));const o=this.getOffsetForIndex(n,i);if(!o)return;const[a,c]=o,d=this.now();this.scrollState={index:n,align:c,behavior:r,startedAt:d,lastTargetOffset:a,stableFrames:0},this._scrollToOffset(a,{adjustments:void 0,behavior:r}),this.scheduleScrollReconcile()},this.scrollBy=(n,{behavior:i="auto"}={})=>{const r=this.getScrollOffset()+n,o=this.now();this.scrollState={index:null,align:"start",behavior:i,startedAt:o,lastTargetOffset:r,stableFrames:0},this._scrollToOffset(r,{adjustments:void 0,behavior:i}),this.scheduleScrollReconcile()},this.getTotalSize=()=>{var n;const i=this.getMeasurements();let r;if(i.length===0)r=this.options.paddingStart;else if(this.options.lanes===1)r=((n=i[i.length-1])==null?void 0:n.end)??0;else{const o=Array(this.options.lanes).fill(null);let a=i.length-1;for(;a>=0&&o.some(c=>c===null);){const c=i[a];o[c.lane]===null&&(o[c.lane]=c.end),a--}r=Math.max(...o.filter(c=>c!==null))}return Math.max(r-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(n,{adjustments:i,behavior:r})=>{this.options.scrollToFn(n,{behavior:r,adjustments:i},this)},this.measure=()=>{this.itemSizeCache=new Map,this.laneAssignments=new Map,this.notify(!1)},this.setOptions(t)}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId==null&&(this.rafId=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()}))}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}const i=this.scrollState.index!=null?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,r=i?i[0]:this.scrollState.lastTargetOffset,o=1,a=r!==this.scrollState.lastTargetOffset;if(!a&&b4(r,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=o){this.scrollState=null;return}}else this.scrollState.stableFrames=0,a&&(this.scrollState.lastTargetOffset=r,this.scrollState.behavior="auto",this._scrollToOffset(r,{adjustments:void 0,behavior:"auto"}));this.scheduleScrollReconcile()}}const oE=(e,t,n,i)=>{for(;e<=t;){const r=(e+t)/2|0,o=n(r);if(oi)t=r-1;else return r}return e>0?e-1:0};function I4({measurements:e,outerSize:t,scrollOffset:n,lanes:i}){const r=e.length-1,o=d=>e[d].start;if(e.length<=i)return{startIndex:0,endIndex:r};let a=oE(0,r,o,n),c=a;if(i===1)for(;c1){const d=Array(i).fill(0);for(;ch=0&&m.some(h=>h>=n);){const h=e[a];m[h.lane]=h.start,a--}a=Math.max(0,a-a%i),c=Math.min(r,c+(i-1-c%i))}return{startIndex:a,endIndex:c}}const iS=typeof document<"u"?C.useLayoutEffect:C.useEffect;function T4({useFlushSync:e=!0,...t}){const n=C.useReducer(()=>({}),{})[1],i={...t,onChange:(o,a)=>{var c;e&&a?Im.flushSync(n):n(),(c=t.onChange)==null||c.call(t,o,a)}},[r]=C.useState(()=>new N4(i));return r.setOptions(i),iS(()=>r._didMount(),[]),iS(()=>r._willUpdate()),r}function R4(e){return T4({observeElementRect:w4,observeElementOffset:C4,scrollToFn:E4,...e})}function A4(){return u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M12 2C9.5 2 7.5 3.5 7 5.5C5 5.5 3 7.5 3 10C3 12 4.5 13.5 6 14V20C6 21.1 6.9 22 8 22H16C17.1 22 18 21.1 18 20V14C19.5 13.5 21 12 21 10C21 7.5 19 5.5 17 5.5C16.5 3.5 14.5 2 12 2Z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M12 2V8M8 6H16M12 14V18",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function Tm(){return u.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:u.jsx("path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94L6.73 20.15a2.12 2.12 0 0 1-3-3l6.72-6.72a6 6 0 0 1 7.94-7.94L14.7 6.3z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function aE(){return u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("rect",{x:"4",y:"4",width:"16",height:"16",rx:"3",stroke:"currentColor",strokeWidth:"1.5"}),u.jsx("rect",{x:"8",y:"8",width:"8",height:"8",rx:"1.5",fill:"currentColor"})]})}function M4(){return u.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:u.jsx("path",{d:"M5 12L3 3L21 12L3 21L5 12ZM5 12H13",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function Rm(){return u.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",stroke:"currentColor",strokeWidth:"1.5"}),u.jsx("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function Hl(){return u.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:u.jsx("path",{d:"M20 6L9 17L4 12",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}function D4(){return u.jsxs("svg",{width:"28",height:"28",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M13 8H7",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"}),u.jsx("path",{d:"M17 12H7",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"})]})}function O4(){return u.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:u.jsx("path",{d:"M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66L9.41 17.41a2 2 0 0 1-2.83-2.83l8.49-8.49",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function rs({down:e}){return u.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",style:{transition:"transform 200ms",transform:e?"rotate(90deg)":"none"},children:u.jsx("path",{d:"M9 18L15 12L9 6",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function L4(){return u.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:u.jsx("path",{d:"M12 5V19M5 12H19",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})}function Pv(){return u.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("circle",{cx:"11",cy:"11",r:"8",stroke:"currentColor",strokeWidth:"1.5"}),u.jsx("path",{d:"M21 21L16.65 16.65",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function z4(){return u.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M3 6H5H21",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),u.jsx("path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2M19 6L18.13 20.11A2 2 0 0 1 16.14 22H7.86a2 2 0 0 1-2-1.89L5 6",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})}function P4(){return u.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("rect",{x:"3",y:"3",width:"7",height:"9",rx:"1.5",stroke:"currentColor",strokeWidth:"1.5"}),u.jsx("rect",{x:"14",y:"3",width:"7",height:"5",rx:"1.5",stroke:"currentColor",strokeWidth:"1.5"}),u.jsx("rect",{x:"14",y:"12",width:"7",height:"9",rx:"1.5",stroke:"currentColor",strokeWidth:"1.5"}),u.jsx("rect",{x:"3",y:"16",width:"7",height:"5",rx:"1.5",stroke:"currentColor",strokeWidth:"1.5"})]})}function lE(){return u.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:u.jsx("path",{d:"M22 12H18L15 21L9 3L6 12H2",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function hu(){return u.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:u.jsx("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function bl(){return u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .962 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.582a.5.5 0 0 1 0 .962L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.962 0z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M20 3v4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),u.jsx("path",{d:"M22 5h-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),u.jsx("path",{d:"M4 17v2",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),u.jsx("path",{d:"M5 18H3",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function cE(){return u.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M5 12h14",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"m12 5 7 7-7 7",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"})]})}function B4(){return u.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M9 11L12 14L22 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M21 12V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})}function rS(){return u.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:u.jsx("path",{d:"M13 2L3 14H12L11 22L21 10H12L13 2Z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function Am(){return u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M4 18H10V14H4V18Z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M8 14H14V10H8V14Z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M12 10H18V6H12V10Z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M18 8L21 8",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function $4(){return u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M9 12L11 14L15 10",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})}function H4(){return u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M15 9L9 15M9 9L15 15",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function Lc(){return u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"1.5"}),u.jsx("path",{d:"M12 6V12L16 14",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function Uf(){return u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M7 17L2 12L7 7",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M17 7L22 12L17 17",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M2 12H22",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function _l(){return u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M12 2V22",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),u.jsx("circle",{cx:"12",cy:"6",r:"2",stroke:"currentColor",strokeWidth:"1.5"}),u.jsx("circle",{cx:"12",cy:"12",r:"2",stroke:"currentColor",strokeWidth:"1.5"}),u.jsx("circle",{cx:"12",cy:"18",r:"2",stroke:"currentColor",strokeWidth:"1.5"}),u.jsx("path",{d:"M14 6H20",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),u.jsx("path",{d:"M14 12H18",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),u.jsx("path",{d:"M14 18H20",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function Mm(){return u.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:u.jsx("path",{d:"M18 6L6 18M6 6L18 18",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function sS({size:e=12}={}){return u.jsxs("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",children:[u.jsx("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M7 11V7a5 5 0 0 1 10 0v4",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round"})]})}function F4({size:e=14}={}){return u.jsxs("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",children:[u.jsx("circle",{cx:"12",cy:"8",r:"5",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M20 21a8 8 0 0 0-16 0",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round"})]})}function V4({size:e=14}={}){return u.jsxs("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M10 6h4",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"}),u.jsx("path",{d:"M10 10h4",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"}),u.jsx("path",{d:"M10 14h4",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"}),u.jsx("path",{d:"M10 18h4",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"})]})}function U4({size:e=14}={}){return u.jsxs("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .962 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.582a.5.5 0 0 1 0 .962L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.962 0z",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M20 3v4",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"}),u.jsx("path",{d:"M22 5h-4",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"}),u.jsx("path",{d:"M4 17v2",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"}),u.jsx("path",{d:"M5 18H3",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"})]})}const sl=new Set(["done","failed","cancelled"]),G4=new Set(["company","org","custom"]),q4=new Set(["idle","done","failed","cancelled"]);function Dm(e){return sl.has(e.status)?"idle":e.agentStatus==="reflecting"||e.agentStatus==="tool_active"?e.agentStatus:e.runtimeControlState&&e.runtimeControlState!=="running"&&e.runtimeControlState!=="suspending"&&e.runtimeControlState!=="resuming"?"idle":e.status==="running"?"reflecting":"idle"}function ss(e){return Dm(e)!=="idle"}function W4(e){if(!e)return!1;const t=String(e.execMode??"").trim().toLowerCase(),n=t==="task";return G4.has(t)||!!e.isCompanyRuntime||!!e.parentSessionId||!!e.orgId||!!e.workItemProjectionId||!!e.roleWorkItems||!!e.executorRoleWorkItems||!!e.companyProfile&&!n}function Y4(e,t){if(!W4(e))return{};const n=String(t??"").trim().toLowerCase();if(n==="running")return{runtimeControlState:"running",canStop:!0,canResume:!1};if(q4.has(n)){const i=e?.runtimeControlState;return i==="suspending"||i==="suspended"?{}:{runtimeControlState:"idle",canStop:!1,canResume:!1}}return{}}function _g(e){if(!(typeof e!="number"||!Number.isFinite(e)))return e}function oS(e){return Math.max(0,Math.min(Math.round(e),100))}function uE(e){const t=_g(e?.contextTokens),n=_g(e?.contextWindow),i=_g(e?.contextRemainingPct),r=typeof t=="number"?Math.max(0,Math.round(t)):void 0,o=typeof n=="number"&&n>0?Math.max(1,Math.round(n)):void 0,a=typeof i=="number"?oS(i):void 0;if(typeof r=="number"&&typeof o=="number"){const c=Math.min(r,o),d=oS(c/o*100);return{usedPct:d,remainingPct:100-d,usedTokens:c,windowTokens:o}}if(typeof a=="number"&&typeof o=="number"){const c=100-a;return{usedPct:c,remainingPct:a,usedTokens:Math.round(c/100*o),windowTokens:o}}return typeof o=="number"?{usedPct:0,remainingPct:100,usedTokens:0,windowTokens:o}:typeof a=="number"?{remainingPct:a}:typeof r=="number"?{usedTokens:r}:{}}const X4=new Set(["runtime_v2_assistant","runtime_v2_company_assistant","child_task_result","child_task_result_retry","company_role_result","company_role_result_retry","child_result","top_level_reply"]);function Om(e){const t=e??{};for(const n of["canonical_turn_id","conversation_turn_id","turn_id","execution_turn_id"]){const i=String(t[n]??"").trim();if(i)return i}return""}function Gf(e){if(e.sender==="user")return"";const t=e.metadata??{},n=String(t.transcript_kind??t.kind??"").trim();if(!X4.has(n))return"";if(n==="runtime_v2_company_assistant"){const i=String(t.ui_message_id??"").trim();if(!(t.company_final_turn===!0||!!String(t.result_delivery_id??"").trim()||i.startsWith("runtime-v2-company-assistant-final:")||String(t.detail_visibility??"").trim()==="summary"))return""}return Om(t)}const K4=new Set(["child_task_result","child_task_result_retry","company_role_result","company_role_result_retry","child_result","top_level_reply"]),Bx=new Set(["runtime_v2_assistant","runtime_v2_company_assistant"]);function na(e,...t){for(const n of t){const i=String(e[n]??"").trim();if(i)return i}return""}function Z4(e,t){const i=na(e,"result_attempt","attempt","attempt_index","retry_count","retryCount")||(t.endsWith("_retry")?"retry":""),r=na(e,"result_revision","delivery_revision","revision");return[i?`attempt:${i}`:"",r?`revision:${r}`:""].filter(Boolean).join(":")}function kg(e,t,n){const i=Z4(t,n);return i?`${e}:${i}`:e}function dE(e){const t=e.metadata??{},n=String(t.transcript_kind??t.kind??"").trim();if(!K4.has(n)&&!Bx.has(n))return"";const i=na(t,"canonical_delivery_id","result_delivery_id","delivery_id");if(i)return`delivery:${i}`;if(Bx.has(n)){const d=Om(t);return d?`turn:${d}`:""}const o=na(t,"source_task_id","child_task_id")||(n==="top_level_reply"?"":na(t,"task_id","taskId"));if(o)return kg(`source-task:${o}`,t,n);const a=na(t,"work_item_id","work_item_projection_id");if(a)return kg(`work-item:${a}`,t,n);const c=na(t,"child_session_id");return c?kg(`child-session:${c}`,t,n):""}function Bv(e){const t=e.metadata??{},n=String(t.checkpoint_id??"").trim();if(n)return`checkpoint:${n}`;const i=String(t.ui_message_id??"").trim(),r=String(t.transcript_kind??t.kind??"").trim(),o=String(t.role??"").trim().toLowerCase(),a=e.sender==="user"||o==="user"||r==="runtime_v2_user_turn"||r==="top_level_user_turn";if(a&&i)return`ui:${i}`;const c=String(t.ui_timeline_id??"").trim();if(c)return c;const d=Bx.has(r)?Gf(e):"";if(!a&&d)return`turn:assistant:${d}`;const m=dE(e);return!a&&m?`result:${m}`:`message:${e.id}`}const Q4=/(\d[\d,]*)\s*\/\s*(\d[\d,]*)\s+tokens/i,J4=/(\d{1,3})%\s*used/i,e5=/(\d{1,3})%\s*remaining/i;function $v(e,t){return t==="full"?!0:String(e.metadata?.detail_visibility??"summary").trim()!=="full"}function t5(e){return e.replace(/\s+/g," ").trim()}function n5(e){let t=String(e||"").replace(/\r\n/g,` -`).replace(/\r/g,` -`).split(` -`).map(i=>i.trimEnd()).join(` -`).replace(/\n{3,}/g,` - -`).trim();for(;;){const i=t.match(/^\*\*([^\r\n]{8,160}?)\*\*:(?:[ \t]+|\r?\n+)([\s\S]+)$/);if(!i)break;const r=i[2].trim();if(r.length<80||r===t)break;t=r}const n=t.split(/\n{2,}/).map(i=>i.trim()).filter(Boolean);return n.length>1&&/^Verification:\s/i.test(n[n.length-1])&&(t=n.slice(0,-1).join(` - -`).trim()),t5(t).slice(0,2e3)}function $x(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 aS(e){return String(e.content??"").replace(/\r\n/g,` -`).replace(/\r/g,` -`).split(` -`).map(t=>t.trimEnd()).join(` -`).trim().length}function lS(e){const t=e.metadata??{};let n=0;return String(t.source??"").trim()==="engine"&&(n+=4),String(t.source_result_message_id??"").trim()&&(n+=2),(t.authoritative_output===!0||t.canonical_result===!0)&&(n+=1),n}function i5(e,t){const n=[[$x(e),$x(t)],[lS(e),lS(t)],[aS(e),aS(t)]];for(const[o,a]of n)if(o!==a)return o>a?1:-1;const i=e.id.localeCompare(t.id);if(i!==0)return i;const r=e.content.localeCompare(t.content);return r!==0?r:e.timestamp===t.timestamp?0:e.timestamp>t.timestamp?1:-1}function fE(e){if($x(e)<=0)return"";const t=dE(e);if(t)return`result:${t}`;const n=n5(e.content);return n?`result:${n}`:""}function tf(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 cS(e){if(!(typeof e!="number"||!Number.isFinite(e)))return Math.max(0,Math.min(Math.round(e),100))}function kl(e){if(!e)return;const t=String(e.execMode??"").trim();if(!(t==="company"||t==="org"||t==="custom"||!!e.isCompanyRuntime||!!e.roleWorkItems||!!e.executorRoleWorkItems))return;const i=Object.values(e.executorRoleWorkItems??e.roleWorkItems??{});if(i.length===0)return;const r=i.map(o=>o.aggregatedStatus);if(r.some(o=>o==="active"))return"running";if(r.some(o=>o==="waiting")||r.some(o=>o==="pending"))return"pending";if(r.every(o=>o==="failed"))return"failed";if(r.every(o=>o==="done")||r.some(o=>o==="done"))return"done"}function r5(e){const t={};for(const n of e??[]){const i=`${n.summary??""} ${n.detail??""}`.trim();if(!i)continue;const r=Q4.exec(i);if(r){const c=tf(r[1]),d=tf(r[2]);typeof c=="number"&&(t.contextTokens=c),typeof d=="number"&&d>0&&(t.contextWindow=d)}const o=e5.exec(i);if(o){t.contextRemainingPct=cS(tf(o[1]));continue}const a=J4.exec(i);if(a){const c=cS(tf(a[1]));typeof c=="number"&&(t.contextRemainingPct=100-c)}}return t}function qf(e){const t=r5(e.progressLog),n=e.contextTokens??t.contextTokens,i=e.contextWindow??t.contextWindow,r=e.contextRemainingPct??t.contextRemainingPct;return n===e.contextTokens&&i===e.contextWindow&&r===e.contextRemainingPct?e:{...e,contextTokens:n,contextWindow:i,contextRemainingPct:r}}function mE(e){const t=new Set,n=[];for(const i of e)t.has(i.taskId)||(t.add(i.taskId),n.push(i));return n}function s5(e){return!!(String(e?.workItemRoleId??"").trim()||String(e?.workItemRoleName??"").trim())}function Af(e,t){if(!e||e.mode==="child")return[];const n=new Set;e.sessionId&&n.add(e.sessionId),n.add(e.taskId);const i=String(e.originTaskId??e.taskId??"").trim(),r=new Map;for(const c of e.workItemLog??[]){const d=c.executionTurnId||c.runtimeTaskId;d&&!r.has(d)&&r.set(d,r.size)}const o=new Set;return t.filter(c=>{if(c.taskId===e.taskId||o.has(c.taskId))return!1;const d=!!c.parentSessionId&&n.has(c.parentSessionId),m=r.has(c.taskId),h=!!i&&String(c.originTaskId??"").trim()===i;return!d&&!m&&!h?!1:(o.add(c.taskId),!0)}).sort((c,d)=>{const m=r.get(c.taskId),h=r.get(d.taskId);return m!=null&&h!=null&&m!==h?m-h:m!=null&&h==null?-1:m==null&&h!=null?1:d.updatedAt-c.updatedAt})}function uS(e,t){const n=Af(e,t);return!e||e.mode==="child"||!s5(e)?n:mE([e,...n])}function Wf(e,t){if(!e||e.mode==="child")return[];const n=String(e.sessionId??"").trim();if(!n)return[];const i=new Set;return t.filter(r=>r.taskId===e.taskId||i.has(r.taskId)||String(r.sessionId??"").trim()!==n?!1:(i.add(r.taskId),!0)).sort((r,o)=>o.updatedAt-r.updatedAt)}function o5(e){const t=String(e?.execMode??"").trim();return t==="company"||t==="org"||t==="custom"}function dS(e){const t=ss(e)?1e9:0,n=String(e.draftAssistantText??"").trim()?1e10:0,i=Math.max(0,e.messageCount??0)*1e4,r=(e.progressLog?.length??0)*100;return n+t+i+r+e.updatedAt}function fS(e){const t=uE(e),n=ss(e)?1e11:0,i=String(e.draftAssistantText??"").trim()?1e10:0,r=typeof t.usedPct=="number"||typeof t.usedTokens=="number"||typeof t.windowTokens=="number"?1e10:0,o=typeof e.inputTokens=="number"||typeof e.outputTokens=="number"||typeof e.totalTokens=="number"?1e9:0,a=Math.max(0,e.messageCount??0)*1e4,c=(e.progressLog?.length??0)*100;return n+i+r+o+a+c}function Yf(e,t){if(!e)return{timelineSessions:[],displaySession:null,runtimeSession:null,projectedFromChild:!1};const n=qf(e);if(e.mode==="child"||t.length===0)return{timelineSessions:[n],displaySession:n,runtimeSession:n,projectedFromChild:!1};const i=t.map(qf),r=i.filter(p=>p.status!=="cancelled"),o=r.length>0?r:i,a=mE([n,...o]),c=o5(e),d=[...a].sort((p,g)=>dS(g)-dS(p))[0]??n,m=c?n:d,h=[...a].sort((p,g)=>fS(g)-fS(p))[0]??m;return{timelineSessions:a,displaySession:m,runtimeSession:h,projectedFromChild:!c&&m.taskId!==e.taskId}}function mS(e,t,n){if(!e)return null;const i=qf(e),r=t??i,o=kl(r)??kl(i),a=Xf(n.length>0?n:[i]);return{...i,status:o??(r.status||i.status),assigneeIds:r.assigneeIds.length>0?r.assigneeIds:i.assigneeIds,agentStatus:r.agentStatus??i.agentStatus,currentTool:r.currentTool??i.currentTool,displayTool:r.displayTool??r.currentTool??i.displayTool??i.currentTool,toolElapsedMs:r.toolElapsedMs??i.toolElapsedMs,lastToolSummary:r.lastToolSummary??i.lastToolSummary,contextTokens:r.contextTokens??i.contextTokens,contextWindow:r.contextWindow??i.contextWindow,contextRemainingPct:r.contextRemainingPct??i.contextRemainingPct,inputTokens:r.inputTokens??i.inputTokens,outputTokens:r.outputTokens??i.outputTokens,totalTokens:r.totalTokens??i.totalTokens,turnCostUsd:r.turnCostUsd??i.turnCostUsd,sessionCostUsd:r.sessionCostUsd??i.sessionCostUsd,pendingPermissionCount:r.pendingPermissionCount??i.pendingPermissionCount,drainMode:r.drainMode??i.drainMode,workItemProjectionId:r.workItemProjectionId??i.workItemProjectionId,workItemTurnType:r.workItemTurnType??i.workItemTurnType,companyProfile:i.companyProfile??r.companyProfile,workItemRoleId:i.workItemRoleId??r.workItemRoleId,workItemRoleName:i.workItemRoleName??r.workItemRoleName,workItemGate:i.workItemGate??r.workItemGate,employeeAssignment:i.employeeAssignment??r.employeeAssignment,selectedExecutionAgent:r.selectedExecutionAgent??i.selectedExecutionAgent,draftAssistantText:r.draftAssistantText??i.draftAssistantText,draftUpdatedAt:r.draftUpdatedAt??i.draftUpdatedAt,draftIteration:r.draftIteration??i.draftIteration,draftTurnId:r.draftTurnId??i.draftTurnId,runtimeControlState:r.runtimeControlState??i.runtimeControlState,canStop:r.canStop??i.canStop,canResume:r.canResume??i.canResume,resumeParentSessionId:r.resumeParentSessionId??i.resumeParentSessionId,pendingRuntimeCheckpointId:r.pendingRuntimeCheckpointId??i.pendingRuntimeCheckpointId,stopIntentId:r.stopIntentId??i.stopIntentId,updatedAt:Math.max(i.updatedAt,r.updatedAt),messageCount:Math.max(i.messageCount??0,r.messageCount??0,a),isCompanyRuntime:!!(i.isCompanyRuntime||r.isCompanyRuntime),workItemLog:(i.workItemLog?.length??0)>0?i.workItemLog:r.workItemLog,roleWorkItems:i.roleWorkItems??r.roleWorkItems,executorRoleWorkItems:i.executorRoleWorkItems??r.executorRoleWorkItems,activeSubagents:i.activeSubagents??r.activeSubagents,permissionRequests:i.permissionRequests??r.permissionRequests}}function a5(e,t,n){if(!e)return null;const i=qf(e),r=t??i,o=kl(r)??kl(i),a=Xf(n.length>0?n:[i]);return{...i,status:o??(r.status||i.status),agentStatus:r.agentStatus??i.agentStatus,currentTool:r.currentTool??i.currentTool,displayTool:r.displayTool??r.currentTool??i.displayTool??i.currentTool,toolElapsedMs:r.toolElapsedMs??i.toolElapsedMs,lastToolSummary:r.lastToolSummary??i.lastToolSummary,contextTokens:r.contextTokens??i.contextTokens,contextWindow:r.contextWindow??i.contextWindow,contextRemainingPct:r.contextRemainingPct??i.contextRemainingPct,inputTokens:r.inputTokens??i.inputTokens,outputTokens:r.outputTokens??i.outputTokens,totalTokens:r.totalTokens??i.totalTokens,turnCostUsd:r.turnCostUsd??i.turnCostUsd,sessionCostUsd:r.sessionCostUsd??i.sessionCostUsd,pendingPermissionCount:r.pendingPermissionCount??i.pendingPermissionCount,drainMode:r.drainMode??i.drainMode,selectedExecutionAgent:r.selectedExecutionAgent??i.selectedExecutionAgent,runtimeControlState:r.runtimeControlState??i.runtimeControlState,canStop:r.canStop??i.canStop,canResume:r.canResume??i.canResume,resumeParentSessionId:r.resumeParentSessionId??i.resumeParentSessionId,pendingRuntimeCheckpointId:r.pendingRuntimeCheckpointId??i.pendingRuntimeCheckpointId,stopIntentId:r.stopIntentId??i.stopIntentId,updatedAt:Math.max(i.updatedAt,r.updatedAt),messageCount:Math.max(i.messageCount??0,r.messageCount??0,a)}}function Hx(e){const t=new Set,n=new Map,i=new Map,r=[];for(const o of e)for(const a of o){const c=a.metadata??{},d=String(c.checkpoint_id??"").trim();if(d){const x=i.get(d);if(x!==void 0){const v=r[x],_=a.timestamp>=v.timestamp?a:v,k=a.timestamp0,k=_?a:v,w=_?v:a;r[x]={...w,...k,timestamp:Math.min(v.timestamp,a.timestamp),metadata:{...w.metadata??{},...k.metadata??{},ui_timeline_id:h||Bv(v)}};continue}n.set(h,r.length)}const p=d?`checkpoint:${d}`:"",g=h||p||m||`${a.sender}:${a.replyToId??""}:${a.timestamp}:${a.content.trim()}`;t.has(g)||(t.add(g),d&&i.set(d,r.length),r.push(a))}return r.sort((o,a)=>o.timestamp===a.timestamp?o.id.localeCompare(a.id):o.timestamp-a.timestamp)}function pS(e,t){const n=[];for(const i of e){if(i.channelId===t){$v(i,"summary")&&n.push(i);continue}const r=i.metadata??{},o=String(r.transcript_kind??r.kind??"").trim(),a=String(r.checkpoint_id??"").trim(),c=String(r.checkpoint_type??"").trim(),d=String(r.response_to_checkpoint_id??"").trim(),m=String(r.response_to_escalation_id??"").trim();if(a&&c||d||m){n.push(i);continue}["company_role_result","company_role_result_retry","child_task_result","child_task_result_retry","child_result","top_level_reply"].includes(o)&&n.push(i)}return Hx([n])}function hS(e){const t=new Set,n=[];for(const i of e)for(const r of i.progressLog??[]){const o=`${r.timestamp}:${r.type}:${r.summary}:${r.detail??""}`;t.has(o)||(t.add(o),n.push(r))}return n.sort((i,r)=>i.timestamp-r.timestamp)}function Xf(e){return e.reduce((t,n)=>t+Math.max(0,n.messageCount??0),0)}const l5={idle:"status-idle",done:"status-done",pending:"status-pending",failed:"status-failed",cancelled:"status-cancelled",blocked:"status-blocked"};function c5(e){const t=kl(e)??e.status,n=Dm({...e,status:t});return n==="tool_active"?"status-tool-active":n==="reflecting"?"status-reflecting":t==="running"?"status-running-idle":l5[t]??"status-pending"}function u5(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 d5(e){const t=new Date,n=new Date(e),i=new Date(t.getFullYear(),t.getMonth(),t.getDate()),r=new Date(i.getTime()-864e5);return n>=i?"Today":n>=r?"Yesterday":"Earlier"}function f5(e){const t=new Map,n=[];for(const i of e)if(i.mode==="child"&&i.parentSessionId){const r=t.get(i.parentSessionId)??[];r.push(i),t.set(i.parentSessionId,r)}else n.push(i);return n.map(i=>({session:i,children:Array.from(new Map([...i.sessionId?t.get(i.sessionId)??[]:[],...t.get(i.taskId)??[]].map(r=>[r.taskId,r])).values())}))}function nf({session:e,isActive:t,isChild:n,isLast:i,unreadCount:r,onSelect:o,onDelete:a}){const[c,d]=C.useState(!1),[m,h]=C.useState(!1),p=e.assigneeIds.length>0?e.assigneeIds[0].replace(/^agent-/,""):null,g=kl(e)??e.status;return C.useEffect(()=>{if(!m)return;const x=setTimeout(()=>h(!1),3e3);return()=>clearTimeout(x)},[m]),u.jsxs("button",{className:`session-item${t?" active":""}${n?" session-item-child":""}`,onClick:o,onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),children:[n&&u.jsx("span",{className:`session-tree-line${i?" last":""}`}),u.jsx("span",{className:`session-dot ${c5(e)}`}),u.jsxs("div",{className:"session-item-content",children:[u.jsxs("span",{className:"session-item-title",children:[n&&p&&u.jsx("span",{className:"session-agent-tag",children:p}),!n&&e.isCompanyRuntime&&u.jsx("span",{className:"session-runtime-badge",title:"Company runtime",children:u.jsx(Am,{})}),e.title]}),u.jsxs("span",{className:"session-item-meta",children:[g," · ",u5(e.updatedAt)]})]}),!!r&&r>0&&u.jsx("span",{className:"session-unread-badge",children:r>99?"99+":r}),c&&!n&&!m&&u.jsx("button",{className:"session-delete-btn",onClick:x=>{x.stopPropagation(),h(!0)},title:"Delete",children:u.jsx(z4,{})}),m&&u.jsxs("span",{className:"session-confirm-delete",onClick:x=>x.stopPropagation(),children:[u.jsx("button",{className:"session-confirm-yes",onClick:()=>{h(!1),a()},children:"Delete"}),u.jsx("button",{className:"session-confirm-no",onClick:()=>h(!1),children:"Cancel"})]})]})}function m5({sessions:e,activeSessionId:t,activeChannel:n,secretaryChannelId:i,unreadCounts:r,onSelect:o,onCreateSession:a,onDeleteSession:c,onSelectSecretary:d}){const[m,h]=C.useState(""),[p,g]=C.useState(new Set),x=e.some(I=>I.isCompanyRuntime||I.mode==="child"||I.execMode==="company"||I.execMode==="org"||I.execMode==="custom"),v=C.useCallback(I=>{g(L=>{const M=new Set(L);return M.has(I)?M.delete(I):M.add(I),M})},[]),_=C.useMemo(()=>{if(!m.trim())return e;const I=m.toLowerCase();return e.filter(L=>L.title.toLowerCase().includes(I))},[e,m]),k=C.useMemo(()=>f5(_),[_]),w=C.useMemo(()=>{const I={Today:[],Yesterday:[],Earlier:[]};for(const L of k){const M=d5(L.session.createdAt);I[M]?.push(L)}return I},[k]),S=C.useMemo(()=>{const I=[];for(const L of["Today","Yesterday","Earlier"]){const M=w[L];if(!(!M||M.length===0)){I.push({kind:"group",group:L});for(const A of M){I.push({kind:"primary",node:A});const B=A.children.length>0,W=p.has(A.session.taskId);B&&W?I.push({kind:"child-count",node:A}):B&&A.children.forEach((P,G)=>{I.push({kind:"child",parentTaskId:A.session.taskId,child:P,childIndex:G,childCount:A.children.length})})}}}return I},[p,w]),j=S.length>120,N=C.useRef(null),O=R4({count:S.length,getScrollElement:()=>N.current,estimateSize:I=>{const L=S[I];return L?.kind==="group"?26:L?.kind==="child-count"?30:54},overscan:8}),R=C.useCallback(I=>{const L=I.children.length>0,M=p.has(I.session.taskId);return u.jsx("div",{className:"session-tree-node",children:u.jsxs("div",{className:"session-tree-primary",children:[L&&u.jsx("button",{className:`session-expand-btn${M?" collapsed":""}`,onClick:A=>{A.stopPropagation(),v(I.session.taskId)},"aria-label":M?"Expand":"Collapse"}),u.jsx(nf,{session:I.session,isActive:I.session.taskId===t,unreadCount:r?.[I.session.channelId],onSelect:()=>o(I.session.taskId),onDelete:()=>c(I.session.taskId)})]})})},[t,p,c,o,v,r]),D=C.useCallback(I=>I.kind==="group"?u.jsx("div",{className:"session-group-label",children:x?`${I.group} Runtime Sessions`:I.group}):I.kind==="primary"?R(I.node):I.kind==="child-count"?u.jsxs("button",{className:"session-child-count",onClick:()=>v(I.node.session.taskId),children:[I.node.children.length," sub-task",I.node.children.length>1?"s":""]}):u.jsx("div",{className:"session-children",children:u.jsx(nf,{session:I.child,isActive:I.child.taskId===t,isChild:!0,isLast:I.childIndex===I.childCount-1,unreadCount:r?.[I.child.channelId],onSelect:()=>o(I.child.taskId),onDelete:()=>c(I.child.taskId)})}),[t,x,c,o,R,v,r]);return u.jsxs("div",{className:"session-sidebar",children:[u.jsxs("button",{className:"session-new-btn",onClick:a,children:[u.jsx(L4,{}),u.jsx("span",{children:"New Chat"})]}),d&&u.jsxs("button",{className:`session-nav-btn${n===i?" active":""}`,onClick:d,children:[u.jsx(hu,{}),u.jsx("span",{children:"Secretary"}),!!(i&&r?.[i])&&r[i]>0&&u.jsx("span",{className:"session-unread-badge",children:r[i]>99?"99+":r[i]})]}),u.jsxs("div",{className:"session-search-wrap",children:[u.jsx(Pv,{}),u.jsx("input",{className:"session-search",placeholder:"Search...",value:m,onChange:I=>h(I.target.value)})]}),u.jsxs("div",{ref:N,className:`session-list${j?" session-list-virtualized":""}`,children:[j?u.jsx("div",{style:{height:O.getTotalSize(),width:"100%",position:"relative"},children:O.getVirtualItems().map(I=>u.jsx("div",{"data-index":I.index,ref:O.measureElement,style:{position:"absolute",top:0,left:0,width:"100%",transform:`translateY(${I.start}px)`},children:D(S[I.index])},I.key))}):["Today","Yesterday","Earlier"].map(I=>{const L=w[I];return!L||L.length===0?null:u.jsxs("div",{className:"session-group",children:[u.jsx("div",{className:"session-group-label",children:x?`${I} Runtime Sessions`:I}),L.map(M=>{const A=M.children.length>0,B=p.has(M.session.taskId);return u.jsxs("div",{className:"session-tree-node",children:[u.jsxs("div",{className:"session-tree-primary",children:[A&&u.jsx("button",{className:`session-expand-btn${B?" collapsed":""}`,onClick:W=>{W.stopPropagation(),v(M.session.taskId)},"aria-label":B?"Expand":"Collapse"}),u.jsx(nf,{session:M.session,isActive:M.session.taskId===t,unreadCount:r?.[M.session.channelId],onSelect:()=>o(M.session.taskId),onDelete:()=>c(M.session.taskId)})]}),A&&!B&&u.jsx("div",{className:"session-children",children:M.children.map((W,P)=>u.jsx(nf,{session:W,isActive:W.taskId===t,isChild:!0,isLast:P===M.children.length-1,unreadCount:r?.[W.channelId],onSelect:()=>o(W.taskId),onDelete:()=>c(W.taskId)},W.taskId))}),A&&B&&u.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)})]},I)}),_.length===0&&u.jsx("div",{className:"session-empty",children:"No sessions yet"})]}),u.jsxs("button",{className:`session-nav-btn session-activity-btn${t===null&&n!==i?" active":""}`,onClick:()=>o(null),children:[u.jsx(lE,{}),u.jsx("span",{children:"Activity"})]})]})}const p5=new Set(["company_work_item_gate","company_delivery_feedback","company_staffing_selection","company_recruitment_confirmation","company_reorg_pending","human_escalation","task_user_input"]),h5=new Set(["responded","resolved","timeout","timed_out","expired","stale","superseded","ignored","cancelled","canceled","invalid"]);function g5(e){return p5.has(String(e??"").trim())}function gu(e){return!(!g5(e?.checkpoint_type)||e?.self_evolution_completed||String(e?.kind??"").trim()==="company_self_evolution_result")}function y5(e){const t=String(e?.checkpoint_status??"").trim().toLowerCase();return h5.has(t)?!0:!!String(e?.checkpoint_response_message_id??"").trim()}function pE(e){const t=String(e?.checkpoint_id??"").trim();if(!t)return;const n=String(e?.checkpoint_type??"").trim(),i=String(e?.escalation_id??"").trim();return{response_to_checkpoint_id:t,response_to_checkpoint_type:n||void 0,response_to_escalation_id:i||void 0}}function hE(e){const t=String(e?.response_to_checkpoint_type??"").trim();if(!(t==="company_delivery_feedback"||t==="human_escalation"))return e}function Hv(e){const t=new Set,n=new Set,i=new Set;let r;const o=new Map,a=new Map,c=new Set;for(let d=0;dd,_=g==="human_escalation"&&!!x&&(a.get(x)??-1)>d;if(y5(h)||v||_){n.add(m.id);continue}t.add(m.id),r=pE(h)??r}return{pendingMessageIds:t,respondedMessageIds:n,duplicateMessageIds:i,latestPendingReplyMetadata:r}}function Hi(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 x5=typeof Symbol=="function"&&Symbol.observable||"@@observable",gS=x5,yS=()=>Math.random().toString(36).substring(7).split("").join("."),v5={INIT:`@@redux/INIT${yS()}`,REPLACE:`@@redux/REPLACE${yS()}`},xS=v5;function b5(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 gE(e,t,n){if(typeof e!="function")throw new Error(Hi(2));if(typeof t=="function"&&typeof n=="function"||typeof n=="function"&&typeof arguments[3]=="function")throw new Error(Hi(0));if(typeof t=="function"&&typeof n>"u"&&(n=t,t=void 0),typeof n<"u"){if(typeof n!="function")throw new Error(Hi(1));return n(gE)(e,t)}let i=e,r=t,o=new Map,a=o,c=0,d=!1;function m(){a===o&&(a=new Map,o.forEach((k,w)=>{a.set(w,k)}))}function h(){if(d)throw new Error(Hi(3));return r}function p(k){if(typeof k!="function")throw new Error(Hi(4));if(d)throw new Error(Hi(5));let w=!0;m();const S=c++;return a.set(S,k),function(){if(w){if(d)throw new Error(Hi(6));w=!1,m(),a.delete(S),o=null}}}function g(k){if(!b5(k))throw new Error(Hi(7));if(typeof k.type>"u")throw new Error(Hi(8));if(typeof k.type!="string")throw new Error(Hi(17));if(d)throw new Error(Hi(9));try{d=!0,r=i(r,k)}finally{d=!1}return(o=a).forEach(S=>{S()}),k}function x(k){if(typeof k!="function")throw new Error(Hi(10));i=k,g({type:xS.REPLACE})}function v(){const k=p;return{subscribe(w){if(typeof w!="object"||w===null)throw new Error(Hi(11));function S(){const N=w;N.next&&N.next(h())}return S(),{unsubscribe:k(S)}},[gS](){return this}}}return g({type:xS.INIT}),{dispatch:g,subscribe:p,getState:h,replaceReducer:x,[gS]:v}}function vS(e,t){return function(...n){return t(e.apply(this,n))}}function bS(e,t){if(typeof e=="function")return vS(e,t);if(typeof e!="object"||e===null)throw new Error(Hi(16));const n={};for(const i in e){const r=e[i];typeof r=="function"&&(n[i]=vS(r,t))}return n}function yE(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,n)=>(...i)=>t(n(...i)))}function _5(...e){return t=>(n,i)=>{const r=t(n,i);let o=()=>{throw new Error(Hi(15))};const a={getState:r.getState,dispatch:(d,...m)=>o(d,...m)},c=e.map(d=>d(a));return o=yE(...c)(r.dispatch),{...r,dispatch:o}}}var Sg={exports:{}},wg={};var _S;function k5(){if(_S)return wg;_S=1;var e=$l();function t(d,m){return d===m&&(d!==0||1/d===1/m)||d!==d&&m!==m}var n=typeof Object.is=="function"?Object.is:t,i=e.useSyncExternalStore,r=e.useRef,o=e.useEffect,a=e.useMemo,c=e.useDebugValue;return wg.useSyncExternalStoreWithSelector=function(d,m,h,p,g){var x=r(null);if(x.current===null){var v={hasValue:!1,value:null};x.current=v}else v=x.current;x=a(function(){function k(O){if(!w){if(w=!0,S=O,O=p(O),g!==void 0&&v.hasValue){var R=v.value;if(g(R,O))return j=R}return j=O}if(R=j,n(S,O))return R;var D=p(O);return g!==void 0&&g(R,D)?(S=O,R):(S=O,j=D)}var w=!1,S,j,N=h===void 0?null:h;return[function(){return k(m())},N===null?void 0:function(){return k(N())}]},[m,h,p,g]);var _=i(d,x[0],x[1]);return o(function(){v.hasValue=!0,v.value=_},[_]),c(_),_},wg}var kS;function S5(){return kS||(kS=1,Sg.exports=k5()),Sg.exports}S5();var w5=C.version.startsWith("19"),C5=Symbol.for(w5?"react.transitional.element":"react.element"),j5=Symbol.for("react.portal"),E5=Symbol.for("react.fragment"),N5=Symbol.for("react.strict_mode"),I5=Symbol.for("react.profiler"),T5=Symbol.for("react.consumer"),R5=Symbol.for("react.context"),xE=Symbol.for("react.forward_ref"),A5=Symbol.for("react.suspense"),M5=Symbol.for("react.suspense_list"),Fv=Symbol.for("react.memo"),D5=Symbol.for("react.lazy"),O5=xE,L5=Fv;function z5(e){if(typeof e=="object"&&e!==null){const{$$typeof:t}=e;switch(t){case C5:switch(e=e.type,e){case E5:case I5:case N5:case A5:case M5:return e;default:switch(e=e&&e.$$typeof,e){case R5:case xE:case D5:case Fv:return e;case T5:return e;default:return t}}case j5:return t}}}function P5(e){return z5(e)===Fv}function B5(e,t,n,i,{areStatesEqual:r,areOwnPropsEqual:o,areStatePropsEqual:a}){let c=!1,d,m,h,p,g;function x(S,j){return d=S,m=j,h=e(d,m),p=t(i,m),g=n(h,p,m),c=!0,g}function v(){return h=e(d,m),t.dependsOnOwnProps&&(p=t(i,m)),g=n(h,p,m),g}function _(){return e.dependsOnOwnProps&&(h=e(d,m)),t.dependsOnOwnProps&&(p=t(i,m)),g=n(h,p,m),g}function k(){const S=e(d,m),j=!a(S,h);return h=S,j&&(g=n(h,p,m)),g}function w(S,j){const N=!o(j,m),O=!r(S,d,j,m);return d=S,m=j,N&&O?v():N?_():O?k():g}return function(j,N){return c?w(j,N):x(j,N)}}function $5(e,{initMapStateToProps:t,initMapDispatchToProps:n,initMergeProps:i,...r}){const o=t(e,r),a=n(e,r),c=i(e,r);return B5(o,a,c,e,r)}function H5(e,t){const n={};for(const i in e){const r=e[i];typeof r=="function"&&(n[i]=(...o)=>t(r(...o)))}return n}function Fx(e){return function(n){const i=e(n);function r(){return i}return r.dependsOnOwnProps=!1,r}}function SS(e){return e.dependsOnOwnProps?!!e.dependsOnOwnProps:e.length!==1}function vE(e,t){return function(i,{displayName:r}){const o=function(c,d){return o.dependsOnOwnProps?o.mapToProps(c,d):o.mapToProps(c,void 0)};return o.dependsOnOwnProps=!0,o.mapToProps=function(c,d){o.mapToProps=e,o.dependsOnOwnProps=SS(e);let m=o(c,d);return typeof m=="function"&&(o.mapToProps=m,o.dependsOnOwnProps=SS(m),m=o(c,d)),m},o}}function Vv(e,t){return(n,i)=>{throw new Error(`Invalid value of type ${typeof e} for ${t} argument when connecting component ${i.wrappedComponentName}.`)}}function F5(e){return e&&typeof e=="object"?Fx(t=>H5(e,t)):e?typeof e=="function"?vE(e):Vv(e,"mapDispatchToProps"):Fx(t=>({dispatch:t}))}function V5(e){return e?typeof e=="function"?vE(e):Vv(e,"mapStateToProps"):Fx(()=>({}))}function U5(e,t,n){return{...n,...e,...t}}function G5(e){return function(n,{displayName:i,areMergedPropsEqual:r}){let o=!1,a;return function(d,m,h){const p=e(d,m,h);return o?r(p,a)||(a=p):(o=!0,a=p),a}}}function q5(e){return e?typeof e=="function"?G5(e):Vv(e,"mergeProps"):()=>U5}function W5(e){e()}function Y5(){let e=null,t=null;return{clear(){e=null,t=null},notify(){W5(()=>{let n=e;for(;n;)n.callback(),n=n.next})},get(){const n=[];let i=e;for(;i;)n.push(i),i=i.next;return n},subscribe(n){let i=!0;const r=t={callback:n,next:null,prev:t};return r.prev?r.prev.next=r:e=r,function(){!i||e===null||(i=!1,r.next?r.next.prev=r.prev:t=r.prev,r.prev?r.prev.next=r.next:e=r.next)}}}}var wS={notify(){},get:()=>[]};function bE(e,t){let n,i=wS,r=0,o=!1;function a(_){h();const k=i.subscribe(_);let w=!1;return()=>{w||(w=!0,k(),p())}}function c(){i.notify()}function d(){v.onStateChange&&v.onStateChange()}function m(){return o}function h(){r++,n||(n=t?t.addNestedSub(d):e.subscribe(d),i=Y5())}function p(){r--,n&&r===0&&(n(),n=void 0,i.clear(),i=wS)}function g(){o||(o=!0,h())}function x(){o&&(o=!1,p())}const v={addNestedSub:a,notifyNestedSubs:c,handleChangeWrapper:d,isSubscribed:m,trySubscribe:g,tryUnsubscribe:x,getListeners:()=>i};return v}var X5=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",K5=X5(),Z5=()=>typeof navigator<"u"&&navigator.product==="ReactNative",Q5=Z5(),J5=()=>K5||Q5?C.useLayoutEffect:C.useEffect,Kf=J5();function CS(e,t){return e===t?e!==0||t!==0||1/e===1/t:e!==e&&t!==t}function Cg(e,t){if(CS(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;const n=Object.keys(e),i=Object.keys(t);if(n.length!==i.length)return!1;for(let r=0;re(...t),n)}function mD(e,t,n,i,r,o){e.current=i,n.current=!1,r.current&&(r.current=null,o())}function pD(e,t,n,i,r,o,a,c,d,m,h){if(!e)return()=>{};let p=!1,g=null;const x=()=>{if(p||!c.current)return;const _=t.getState();let k,w;try{k=i(_,r.current)}catch(S){w=S,g=S}w||(g=null),k===o.current?a.current||m():(o.current=k,d.current=k,a.current=!0,h())};return n.onStateChange=x,n.trySubscribe(),x(),()=>{if(p=!0,n.tryUnsubscribe(),n.onStateChange=null,g)throw g}}function hD(e,t){return e===t}function gD(e,t,n,{pure:i,areStatesEqual:r=hD,areOwnPropsEqual:o=Cg,areStatePropsEqual:a=Cg,areMergedPropsEqual:c=Cg,forwardRef:d=!1,context:m=kE}={}){const h=m,p=V5(e),g=F5(t),x=q5(n),v=!!e;return k=>{const w=k.displayName||k.name||"Component",S=`Connect(${w})`,j={shouldHandleStateChanges:v,displayName:S,wrappedComponentName:w,WrappedComponent:k,initMapStateToProps:p,initMapDispatchToProps:g,initMergeProps:x,areStatesEqual:r,areStatePropsEqual:a,areOwnPropsEqual:o,areMergedPropsEqual:c};function N(D){const[I,L,M]=C.useMemo(()=>{const{reactReduxForwardedRef:je,...Te}=D;return[D.context,je,Te]},[D]),A=C.useMemo(()=>{let je=h;return I?.Consumer,je},[I,h]),B=C.useContext(A),W=!!D.store&&!!D.store.getState&&!!D.store.dispatch,P=!!B&&!!B.store,G=W?D.store:B.store,$=P?B.getServerState:G.getState,q=C.useMemo(()=>$5(G.dispatch,j),[G]),[Y,Q]=C.useMemo(()=>{if(!v)return dD;const je=bE(G,W?void 0:B.subscription),Te=je.notifyNestedSubs.bind(je);return[je,Te]},[G,W,B]),V=C.useMemo(()=>W?B:{...B,subscription:Y},[W,B,Y]),U=C.useRef(void 0),Z=C.useRef(M),F=C.useRef(void 0),K=C.useRef(!1),ee=C.useRef(!1),te=C.useRef(void 0);Kf(()=>(ee.current=!0,()=>{ee.current=!1}),[]);const oe=C.useMemo(()=>()=>F.current&&M===Z.current?F.current:q(G.getState(),M),[G,M]),ae=C.useMemo(()=>Te=>Y?pD(v,G,Y,q,Z,U,K,ee,F,Q,Te):()=>{},[Y]);fD(mD,[Z,U,K,M,F,Q]);let ue;try{ue=C.useSyncExternalStore(ae,oe,$?()=>q($(),M):oe)}catch(je){throw te.current&&(je.message+=` -The error may be correlated with this previous error: -${te.current.stack} - -`),je}Kf(()=>{te.current=void 0,F.current=void 0,U.current=ue});const ie=C.useMemo(()=>C.createElement(k,{...ue,ref:L}),[L,k,ue]);return C.useMemo(()=>v?C.createElement(A.Provider,{value:V},ie):ie,[A,ie,V])}const R=C.memo(N);if(R.WrappedComponent=k,R.displayName=N.displayName=S,d){const I=C.forwardRef(function(M,A){return C.createElement(R,{...M,reactReduxForwardedRef:A})});return I.displayName=S,I.WrappedComponent=k,Vx(I,k)}return Vx(R,k)}}var SE=gD;function yD(e){const{children:t,context:n,serverState:i,store:r}=e,o=C.useMemo(()=>{const d=bE(r);return{store:r,subscription:d,getServerState:i?()=>i:void 0}},[r,i]),a=C.useMemo(()=>r.getState(),[r]);Kf(()=>{const{subscription:d}=o;return d.onStateChange=d.notifyNestedSubs,d.trySubscribe(),a!==r.getState()&&d.notifyNestedSubs(),()=>{d.tryUnsubscribe(),d.onStateChange=void 0}},[o,a]);const c=n||kE;return C.createElement(c.Provider,{value:o},t)}var xD=yD,vD="Invariant failed";function bD(e,t){throw new Error(vD)}var $r=function(t){var n=t.top,i=t.right,r=t.bottom,o=t.left,a=i-o,c=r-n,d={top:n,right:i,bottom:r,left:o,width:a,height:c,x:o,y:n,center:{x:(i+o)/2,y:(r+n)/2}};return d},Uv=function(t,n){return{top:t.top-n.top,left:t.left-n.left,bottom:t.bottom+n.bottom,right:t.right+n.right}},IS=function(t,n){return{top:t.top+n.top,left:t.left+n.left,bottom:t.bottom-n.bottom,right:t.right-n.right}},_D=function(t,n){return{top:t.top+n.y,left:t.left+n.x,bottom:t.bottom+n.y,right:t.right+n.x}},jg={top:0,right:0,bottom:0,left:0},Gv=function(t){var n=t.borderBox,i=t.margin,r=i===void 0?jg:i,o=t.border,a=o===void 0?jg:o,c=t.padding,d=c===void 0?jg:c,m=$r(Uv(n,r)),h=$r(IS(n,a)),p=$r(IS(h,d));return{marginBox:m,borderBox:$r(n),paddingBox:h,contentBox:p,margin:r,border:a,padding:d}},jr=function(t){var n=t.slice(0,-2),i=t.slice(-2);if(i!=="px")return 0;var r=Number(n);return isNaN(r)&&bD(),r},kD=function(){return{x:window.pageXOffset,y:window.pageYOffset}},Zf=function(t,n){var i=t.borderBox,r=t.border,o=t.margin,a=t.padding,c=_D(i,n);return Gv({borderBox:c,border:r,margin:o,padding:a})},Qf=function(t,n){return n===void 0&&(n=kD()),Zf(t,n)},wE=function(t,n){var i={top:jr(n.marginTop),right:jr(n.marginRight),bottom:jr(n.marginBottom),left:jr(n.marginLeft)},r={top:jr(n.paddingTop),right:jr(n.paddingRight),bottom:jr(n.paddingBottom),left:jr(n.paddingLeft)},o={top:jr(n.borderTopWidth),right:jr(n.borderRightWidth),bottom:jr(n.borderBottomWidth),left:jr(n.borderLeftWidth)};return Gv({borderBox:t,margin:i,padding:r,border:o})},CE=function(t){var n=t.getBoundingClientRect(),i=window.getComputedStyle(t);return wE(n,i)},yu=function(t){var n=[],i=null,r=function(){for(var a=arguments.length,c=new Array(a),d=0;d{const o=SD(n,r.options);return e.addEventListener(r.eventName,r.fn,o),function(){e.removeEventListener(r.eventName,r.fn,o)}});return function(){i.forEach(o=>{o()})}}const wD="Invariant failed";class em extends Error{}em.prototype.toString=function(){return this.message};function Le(e,t){throw new em(wD)}let CD=class extends Rt.Component{constructor(...t){super(...t),this.callbacks=null,this.unbind=_o,this.onWindowError=n=>{const i=this.getCallbacks();i.isDragging()&&i.tryAbort(),n.error instanceof em&&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=Tr(window,[{eventName:"error",fn:this.onWindowError}])}componentDidCatch(t){if(t instanceof em){this.setState({});return}throw t}componentWillUnmount(){this.unbind()}render(){return this.props.children(this.setCallbacks)}};const jD=` - 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 -`,tm=e=>e+1,ED=e=>` - You have lifted an item in position ${tm(e.source.index)} -`,EE=(e,t)=>{const n=e.droppableId===t.droppableId,i=tm(e.index),r=tm(t.index);return n?` - You have moved the item from position ${i} - to position ${r} - `:` - You have moved the item from position ${i} - in list ${e.droppableId} - to list ${t.droppableId} - in position ${r} - `},NE=(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} - `,ND=e=>{const t=e.destination;if(t)return EE(e.source,t);const n=e.combine;return n?NE(e.draggableId,e.source,n):"You are over an area that cannot be dropped on"},TS=e=>` - The item has returned to its starting position - of ${tm(e.index)} -`,ID=e=>{if(e.reason==="CANCEL")return` - Movement cancelled. - ${TS(e.source)} - `;const t=e.destination,n=e.combine;return t?` - You have dropped the item. - ${EE(e.source,t)} - `:n?` - You have dropped the item. - ${NE(e.draggableId,e.source,n)} - `:` - The item has been dropped while not over a drop area. - ${TS(e.source)} - `},Mf={dragHandleUsageInstructions:jD,onDragStart:ED,onDragUpdate:ND,onDragEnd:ID};function TD(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],i=C.useRef(!0),r=C.useRef(n),a=i.current||!!(t&&r.current.inputs&&IE(t,r.current.inputs))?r.current:{inputs:t,result:e()};return C.useEffect(()=>{i.current=!1,r.current=a},[a]),a.result}function rt(e,t){return rn(()=>e,t)}const ki={x:0,y:0},Ti=(e,t)=>({x:e.x+t.x,y:e.y+t.y}),fr=(e,t)=>({x:e.x-t.x,y:e.y-t.y}),ko=(e,t)=>e.x===t.x&&e.y===t.y,Fl=e=>({x:e.x!==0?-e.x:0,y:e.y!==0?-e.y:0}),aa=(e,t,n=0)=>e==="x"?{x:t,y:n}:{x:n,y:t},xu=(e,t)=>Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2),RS=(e,t)=>Math.min(...t.map(n=>xu(e,n))),TE=e=>t=>({x:e(t.x),y:e(t.y)});var RD=(e,t)=>{const n=$r({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 zu=(e,t)=>({top:e.top+t.y,left:e.left+t.x,bottom:e.bottom+t.y,right:e.right+t.x}),AS=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}],AD={top:0,right:0,bottom:0,left:0},MD=(e,t)=>t?zu(e,t.scroll.diff.displacement):e,DD=(e,t,n)=>n&&n.increasedBy?{...e,[t.end]:e[t.end]+n.increasedBy[t.line]}:e,OD=(e,t)=>t&&t.shouldClipSubject?RD(t.pageMarginBox,e):$r(e);var Sl=({page:e,withPlaceholder:t,axis:n,frame:i})=>{const r=MD(e.marginBox,i),o=DD(r,n,t),a=OD(o,i);return{page:e,withPlaceholder:t,active:a}},qv=(e,t)=>{e.frame||Le();const n=e.frame,i=fr(t,n.scroll.initial),r=Fl(i),o={...n,scroll:{initial:n.scroll.initial,current:t,diff:{value:i,displacement:r},max:n.scroll.max}},a=Sl({page:e.subject.page,withPlaceholder:e.subject.withPlaceholder,axis:e.axis,frame:o});return{...e,frame:o,subject:a}};function _i(e,t=IE){let n=null;function i(...r){if(n&&n.lastThis===this&&t(r,n.lastArgs))return n.lastResult;const o=e.apply(this,r);return n={lastResult:o,lastArgs:r,lastThis:this},o}return i.clear=function(){n=null},i}const RE=_i(e=>e.reduce((t,n)=>(t[n.descriptor.id]=n,t),{})),AE=_i(e=>e.reduce((t,n)=>(t[n.descriptor.id]=n,t),{})),Lm=_i(e=>Object.values(e)),LD=_i(e=>Object.values(e));var Vl=_i((e,t)=>LD(t).filter(i=>e===i.descriptor.droppableId).sort((i,r)=>i.descriptor.index-r.descriptor.index));function Wv(e){return e.at&&e.at.type==="REORDER"?e.at.destination:null}function zm(e){return e.at&&e.at.type==="COMBINE"?e.at.combine:null}var Pm=_i((e,t)=>t.filter(n=>n.descriptor.id!==e.descriptor.id)),zD=({isMovingForward:e,draggable:t,destination:n,insideDestination:i,previousImpact:r})=>{if(!n.isCombineEnabled||!Wv(r))return null;function a(x){const v={type:"COMBINE",combine:{draggableId:x,droppableId:n.descriptor.id}};return{...r,at:v}}const c=r.displaced.all,d=c.length?c[0]:null;if(e)return d?a(d):null;const m=Pm(t,i);if(!d){if(!m.length)return null;const x=m[m.length-1];return a(x.descriptor.id)}const h=m.findIndex(x=>x.descriptor.id===d);h===-1&&Le();const p=h-1;if(p<0)return null;const g=m[p];return a(g.descriptor.id)},Ul=(e,t)=>e.descriptor.droppableId===t.descriptor.id;const ME={point:ki,value:0},vu={invisible:{},visible:{},all:[]},PD={displaced:vu,displacedBy:ME,at:null};var Rr=(e,t)=>n=>e<=n&&n<=t,DE=e=>{const t=Rr(e.top,e.bottom),n=Rr(e.left,e.right);return i=>{if(t(i.top)&&t(i.bottom)&&n(i.left)&&n(i.right))return!0;const o=t(i.top)||t(i.bottom),a=n(i.left)||n(i.right);if(o&&a)return!0;const d=i.tope.bottom,m=i.lefte.right;return d&&m?!0:d&&a||m&&o}},BD=e=>{const t=Rr(e.top,e.bottom),n=Rr(e.left,e.right);return i=>t(i.top)&&t(i.bottom)&&n(i.left)&&n(i.right)};const Yv={direction:"vertical",line:"y",crossAxisLine:"x",start:"top",end:"bottom",size:"height",crossAxisStart:"left",crossAxisEnd:"right",crossAxisSize:"width"},OE={direction:"horizontal",line:"x",crossAxisLine:"y",start:"left",end:"right",size:"width",crossAxisStart:"top",crossAxisEnd:"bottom",crossAxisSize:"height"};var $D=e=>t=>{const n=Rr(t.top,t.bottom),i=Rr(t.left,t.right);return r=>e===Yv?n(r.top)&&n(r.bottom):i(r.left)&&i(r.right)};const HD=(e,t)=>{const n=t.frame?t.frame.scroll.diff.displacement:ki;return zu(e,n)},FD=(e,t,n)=>t.subject.active?n(t.subject.active)(e):!1,VD=(e,t,n)=>n(t)(e),Xv=({target:e,destination:t,viewport:n,withDroppableDisplacement:i,isVisibleThroughFrameFn:r})=>{const o=i?HD(e,t):e;return FD(o,t,r)&&VD(o,n,r)},UD=e=>Xv({...e,isVisibleThroughFrameFn:DE}),LE=e=>Xv({...e,isVisibleThroughFrameFn:BD}),GD=e=>Xv({...e,isVisibleThroughFrameFn:$D(e.destination.axis)}),qD=(e,t,n)=>{if(typeof n=="boolean")return n;if(!t)return!0;const{invisible:i,visible:r}=t;if(i[e])return!1;const o=r[e];return o?o.shouldAnimate:!0};function WD(e,t){const n=e.page.marginBox,i={top:t.point.y,right:0,bottom:0,left:t.point.x};return $r(Uv(n,i))}function bu({afterDragging:e,destination:t,displacedBy:n,viewport:i,forceShouldAnimate:r,last:o}){return e.reduce(function(c,d){const m=WD(d,n),h=d.descriptor.id;if(c.all.push(h),!UD({target:m,destination:t,viewport:i,withDroppableDisplacement:!0}))return c.invisible[d.descriptor.id]=!0,c;const g=qD(h,o,r),x={draggableId:h,shouldAnimate:g};return c.visible[h]=x,c},{all:[],visible:{},invisible:{}})}function YD(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:i}){const r=YD(e,{inHomeList:t});return{displaced:vu,displacedBy:n,at:{type:"REORDER",destination:{droppableId:i.descriptor.id,index:r}}}}function nm({draggable:e,insideDestination:t,destination:n,viewport:i,displacedBy:r,last:o,index:a,forceShouldAnimate:c}){const d=Ul(e,n);if(a==null)return MS({insideDestination:t,inHomeList:d,displacedBy:r,destination:n});const m=t.find(v=>v.descriptor.index===a);if(!m)return MS({insideDestination:t,inHomeList:d,displacedBy:r,destination:n});const h=Pm(e,t),p=t.indexOf(m),g=h.slice(p);return{displaced:bu({afterDragging:g,destination:n,displacedBy:r,last:o,viewport:i.frame,forceShouldAnimate:c}),displacedBy:r,at:{type:"REORDER",destination:{droppableId:n.descriptor.id,index:a}}}}function Co(e,t){return!!t.effected[e]}var XD=({isMovingForward:e,destination:t,draggables:n,combine:i,afterCritical:r})=>{if(!t.isCombineEnabled)return null;const o=i.draggableId,c=n[o].descriptor.index;return Co(o,r)?e?c:c-1:e?c+1:c},KD=({isMovingForward:e,isInHomeList:t,insideDestination:n,location:i})=>{if(!n.length)return null;const r=i.index,o=e?r+1:r-1,a=n[0].descriptor.index,c=n[n.length-1].descriptor.index,d=t?c:c+1;return od?null:o},ZD=({isMovingForward:e,isInHomeList:t,draggable:n,draggables:i,destination:r,insideDestination:o,previousImpact:a,viewport:c,afterCritical:d})=>{const m=a.at;if(m||Le(),m.type==="REORDER"){const p=KD({isMovingForward:e,isInHomeList:t,location:m.destination,insideDestination:o});return p==null?null:nm({draggable:n,insideDestination:o,destination:r,viewport:c,last:a.displaced,displacedBy:a.displacedBy,index:p})}const h=XD({isMovingForward:e,destination:r,displaced:a.displaced,draggables:i,combine:m.combine,afterCritical:d});return h==null?null:nm({draggable:n,insideDestination:o,destination:r,viewport:c,last:a.displaced,displacedBy:a.displacedBy,index:h})},QD=({displaced:e,afterCritical:t,combineWith:n,displacedBy:i})=>{const r=!!(e.visible[n]||e.invisible[n]);return Co(n,t)?r?ki:Fl(i.point):r?i.point:ki},JD=({afterCritical:e,impact:t,draggables:n})=>{const i=zm(t);i||Le();const r=i.draggableId,o=n[r].page.borderBox.center,a=QD({displaced:t.displaced,afterCritical:e,combineWith:r,displacedBy:t.displacedBy});return Ti(o,a)};const zE=(e,t)=>t.margin[e.start]+t.borderBox[e.size]/2,eO=(e,t)=>t.margin[e.end]+t.borderBox[e.size]/2,Kv=(e,t,n)=>t[e.crossAxisStart]+n.margin[e.crossAxisStart]+n.borderBox[e.crossAxisSize]/2,DS=({axis:e,moveRelativeTo:t,isMoving:n})=>aa(e.line,t.marginBox[e.end]+zE(e,n),Kv(e,t.marginBox,n)),OS=({axis:e,moveRelativeTo:t,isMoving:n})=>aa(e.line,t.marginBox[e.start]-eO(e,n),Kv(e,t.marginBox,n)),tO=({axis:e,moveInto:t,isMoving:n})=>aa(e.line,t.contentBox[e.start]+zE(e,n),Kv(e,t.contentBox,n));var nO=({impact:e,draggable:t,draggables:n,droppable:i,afterCritical:r})=>{const o=Vl(i.descriptor.id,n),a=t.page,c=i.axis;if(!o.length)return tO({axis:c,moveInto:i.page,isMoving:a});const{displaced:d,displacedBy:m}=e,h=d.all[0];if(h){const g=n[h];if(Co(h,r))return OS({axis:c,moveRelativeTo:g.page,isMoving:a});const x=Zf(g.page,m.point);return OS({axis:c,moveRelativeTo:x,isMoving:a})}const p=o[o.length-1];if(p.descriptor.id===t.descriptor.id)return a.borderBox.center;if(Co(p.descriptor.id,r)){const g=Zf(p.page,Fl(r.displacedBy.point));return DS({axis:c,moveRelativeTo:g,isMoving:a})}return DS({axis:c,moveRelativeTo:p.page,isMoving:a})},Ux=(e,t)=>{const n=e.frame;return n?Ti(t,n.scroll.diff.displacement):t};const iO=({impact:e,draggable:t,droppable:n,draggables:i,afterCritical:r})=>{const o=t.page.borderBox.center,a=e.at;return!n||!a?o:a.type==="REORDER"?nO({impact:e,draggable:t,draggables:i,droppable:n,afterCritical:r}):JD({impact:e,draggables:i,afterCritical:r})};var Bm=e=>{const t=iO(e),n=e.droppable;return n?Ux(n,t):t},PE=(e,t)=>{const n=fr(t,e.scroll.initial),i=Fl(n);return{frame:$r({top:t.y,bottom:t.y+e.frame.height,left:t.x,right:t.x+e.frame.width}),scroll:{initial:e.scroll.initial,max:e.scroll.max,current:t,diff:{value:n,displacement:i}}}};function LS(e,t){return e.map(n=>t[n])}function rO(e,t){for(let n=0;n{const o=PE(t,Ti(t.scroll.current,r)),a=n.frame?qv(n,Ti(n.frame.scroll.current,r)):n,c=e.displaced,d=bu({afterDragging:LS(c.all,i),destination:n,displacedBy:e.displacedBy,viewport:o.frame,last:c,forceShouldAnimate:!1}),m=bu({afterDragging:LS(c.all,i),destination:a,displacedBy:e.displacedBy,viewport:t.frame,last:c,forceShouldAnimate:!1}),h={},p={},g=[c,d,m];return c.all.forEach(v=>{const _=rO(v,g);if(_){p[v]=_;return}h[v]=!0}),{...e,displaced:{all:c.all,invisible:h,visible:p}}},oO=(e,t)=>Ti(e.scroll.diff.displacement,t),Zv=({pageBorderBoxCenter:e,draggable:t,viewport:n})=>{const i=oO(n,e),r=fr(i,t.page.borderBox.center);return Ti(t.client.borderBox.center,r)},BE=({draggable:e,destination:t,newPageBorderBoxCenter:n,viewport:i,withDroppableDisplacement:r,onlyOnMainAxis:o=!1})=>{const a=fr(n,e.page.borderBox.center),d={target:zu(e.page.borderBox,a),destination:t,withDroppableDisplacement:r,viewport:i};return o?GD(d):LE(d)},aO=({isMovingForward:e,draggable:t,destination:n,draggables:i,previousImpact:r,viewport:o,previousPageBorderBoxCenter:a,previousClientSelection:c,afterCritical:d})=>{if(!n.isEnabled)return null;const m=Vl(n.descriptor.id,i),h=Ul(t,n),p=zD({isMovingForward:e,draggable:t,destination:n,insideDestination:m,previousImpact:r})||ZD({isMovingForward:e,isInHomeList:h,draggable:t,draggables:i,destination:n,insideDestination:m,previousImpact:r,viewport:o,afterCritical:d});if(!p)return null;const g=Bm({impact:p,draggable:t,droppable:n,draggables:i,afterCritical:d});if(BE({draggable:t,destination:n,newPageBorderBoxCenter:g,viewport:o.frame,withDroppableDisplacement:!1,onlyOnMainAxis:!0}))return{clientSelection:Zv({pageBorderBoxCenter:g,draggable:t,viewport:o}),impact:p,scrollJumpRequest:null};const v=fr(g,a),_=sO({impact:p,viewport:o,destination:n,draggables:i,maxScrollChange:v});return{clientSelection:c,impact:_,scrollJumpRequest:v}};const $i=e=>{const t=e.subject.active;return t||Le(),t};var lO=({isMovingForward:e,pageBorderBoxCenter:t,source:n,droppables:i,viewport:r})=>{const o=n.subject.active;if(!o)return null;const a=n.axis,c=Rr(o[a.start],o[a.end]),d=Lm(i).filter(h=>h!==n).filter(h=>h.isEnabled).filter(h=>!!h.subject.active).filter(h=>DE(r.frame)($i(h))).filter(h=>{const p=$i(h);return e?o[a.crossAxisEnd]{const p=$i(h),g=Rr(p[a.start],p[a.end]);return c(p[a.start])||c(p[a.end])||g(o[a.start])||g(o[a.end])}).sort((h,p)=>{const g=$i(h)[a.crossAxisStart],x=$i(p)[a.crossAxisStart];return e?g-x:x-g}).filter((h,p,g)=>$i(h)[a.crossAxisStart]===$i(g[0])[a.crossAxisStart]);if(!d.length)return null;if(d.length===1)return d[0];const m=d.filter(h=>Rr($i(h)[a.start],$i(h)[a.end])(t[a.line]));return m.length===1?m[0]:m.length>1?m.sort((h,p)=>$i(h)[a.start]-$i(p)[a.start])[0]:d.sort((h,p)=>{const g=RS(t,AS($i(h))),x=RS(t,AS($i(p)));return g!==x?g-x:$i(h)[a.start]-$i(p)[a.start]})[0]};const zS=(e,t)=>{const n=e.page.borderBox.center;return Co(e.descriptor.id,t)?fr(n,t.displacedBy.point):n},cO=(e,t)=>{const n=e.page.borderBox;return Co(e.descriptor.id,t)?zu(n,Fl(t.displacedBy.point)):n};var uO=({pageBorderBoxCenter:e,viewport:t,destination:n,insideDestination:i,afterCritical:r})=>i.filter(a=>LE({target:cO(a,r),destination:n,viewport:t.frame,withDroppableDisplacement:!0})).sort((a,c)=>{const d=xu(e,Ux(n,zS(a,r))),m=xu(e,Ux(n,zS(c,r)));return d{const i=e.axis;if(e.descriptor.mode==="virtual")return aa(i.line,t[i.line]);const r=e.subject.page.contentBox[i.size],d=Vl(e.descriptor.id,n).reduce((m,h)=>m+h.client.marginBox[i.size],0)+t[i.line]-r;return d<=0?null:aa(i.line,d)},$E=(e,t)=>({...e,scroll:{...e.scroll,max:t}}),HE=(e,t,n)=>{const i=e.frame;Ul(t,e)&&Le(),e.subject.withPlaceholder&&Le();const r=Pu(e.axis,t.displaceBy).point,o=dO(e,r,n),a={placeholderSize:r,increasedBy:o,oldFrameMaxScroll:e.frame?e.frame.scroll.max:null};if(!i){const h=Sl({page:e.subject.page,withPlaceholder:a,axis:e.axis,frame:e.frame});return{...e,subject:h}}const c=o?Ti(i.scroll.max,o):i.scroll.max,d=$E(i,c),m=Sl({page:e.subject.page,withPlaceholder:a,axis:e.axis,frame:d});return{...e,subject:m,frame:d}},fO=e=>{const t=e.subject.withPlaceholder;t||Le();const n=e.frame;if(!n){const a=Sl({page:e.subject.page,axis:e.axis,frame:null,withPlaceholder:null});return{...e,subject:a}}const i=t.oldFrameMaxScroll;i||Le();const r=$E(n,i),o=Sl({page:e.subject.page,axis:e.axis,frame:r,withPlaceholder:null});return{...e,subject:o,frame:r}};var mO=({previousPageBorderBoxCenter:e,moveRelativeTo:t,insideDestination:n,draggable:i,draggables:r,destination:o,viewport:a,afterCritical:c})=>{if(!t){if(n.length)return null;const p={displaced:vu,displacedBy:ME,at:{type:"REORDER",destination:{droppableId:o.descriptor.id,index:0}}},g=Bm({impact:p,draggable:i,droppable:o,draggables:r,afterCritical:c}),x=Ul(i,o)?o:HE(o,i,r);return BE({draggable:i,destination:x,newPageBorderBoxCenter:g,viewport:a.frame,withDroppableDisplacement:!1,onlyOnMainAxis:!0})?p:null}const d=e[o.axis.line]<=t.page.borderBox.center[o.axis.line],m=(()=>{const p=t.descriptor.index;return t.descriptor.id===i.descriptor.id||d?p:p+1})(),h=Pu(o.axis,i.displaceBy);return nm({draggable:i,insideDestination:n,destination:o,viewport:a,displacedBy:h,last:vu,index:m})},pO=({isMovingForward:e,previousPageBorderBoxCenter:t,draggable:n,isOver:i,draggables:r,droppables:o,viewport:a,afterCritical:c})=>{const d=lO({isMovingForward:e,pageBorderBoxCenter:t,source:i,droppables:o,viewport:a});if(!d)return null;const m=Vl(d.descriptor.id,r),h=uO({pageBorderBoxCenter:t,viewport:a,destination:d,insideDestination:m,afterCritical:c}),p=mO({previousPageBorderBoxCenter:t,destination:d,draggable:n,draggables:r,moveRelativeTo:h,insideDestination:m,viewport:a,afterCritical:c});if(!p)return null;const g=Bm({impact:p,draggable:n,droppable:d,draggables:r,afterCritical:c});return{clientSelection:Zv({pageBorderBoxCenter:g,draggable:n,viewport:a}),impact:p,scrollJumpRequest:null}},mr=e=>{const t=e.at;return t?t.type==="REORDER"?t.destination.droppableId:t.combine.droppableId:null};const hO=(e,t)=>{const n=mr(e);return n?t[n]:null};var gO=({state:e,type:t})=>{const n=hO(e.impact,e.dimensions.droppables),i=!!n,r=e.dimensions.droppables[e.critical.droppable.id],o=n||r,a=o.axis.direction,c=a==="vertical"&&(t==="MOVE_UP"||t==="MOVE_DOWN")||a==="horizontal"&&(t==="MOVE_LEFT"||t==="MOVE_RIGHT");if(c&&!i)return null;const d=t==="MOVE_DOWN"||t==="MOVE_RIGHT",m=e.dimensions.draggables[e.critical.draggable.id],h=e.current.page.borderBoxCenter,{draggables:p,droppables:g}=e.dimensions;return c?aO({isMovingForward:d,previousPageBorderBoxCenter:h,draggable:m,destination:o,draggables:p,viewport:e.viewport,previousClientSelection:e.current.client.selection,previousImpact:e.impact,afterCritical:e.afterCritical}):pO({isMovingForward:d,previousPageBorderBoxCenter:h,draggable:m,isOver:o,draggables:p,droppables:g,viewport:e.viewport,afterCritical:e.afterCritical})};function ea(e){return e.phase==="DRAGGING"||e.phase==="COLLECTING"}function FE(e){const t=Rr(e.top,e.bottom),n=Rr(e.left,e.right);return function(r){return t(r.y)&&n(r.x)}}function yO(e,t){return e.leftt.left&&e.topt.top}function xO({pageBorderBox:e,draggable:t,candidates:n}){const i=t.page.borderBox.center,r=n.map(o=>{const a=o.axis,c=aa(o.axis.line,e.center[a.line],o.page.borderBox.center[a.crossAxisLine]);return{id:o.descriptor.id,distance:xu(i,c)}}).sort((o,a)=>a.distance-o.distance);return r[0]?r[0].id:null}function vO({pageBorderBox:e,draggable:t,droppables:n}){const i=Lm(n).filter(r=>{if(!r.isEnabled)return!1;const o=r.subject.active;if(!o||!yO(e,o))return!1;if(FE(o)(e.center))return!0;const a=r.axis,c=o.center[a.crossAxisLine],d=e[a.crossAxisStart],m=e[a.crossAxisEnd],h=Rr(o[a.crossAxisStart],o[a.crossAxisEnd]),p=h(d),g=h(m);return!p&&!g?!0:p?dc});return i.length?i.length===1?i[0].descriptor.id:xO({pageBorderBox:e,draggable:t,candidates:i}):null}const VE=(e,t)=>$r(zu(e,t));var bO=(e,t)=>{const n=e.frame;return n?VE(t,n.scroll.diff.value):t};function UE({displaced:e,id:t}){return!!(e.visible[t]||e.invisible[t])}function _O({draggable:e,closest:t,inHomeList:n}){return t?n&&t.descriptor.index>e.descriptor.index?t.descriptor.index-1:t.descriptor.index:null}var kO=({pageBorderBoxWithDroppableScroll:e,draggable:t,destination:n,insideDestination:i,last:r,viewport:o,afterCritical:a})=>{const c=n.axis,d=Pu(n.axis,t.displaceBy),m=d.value,h=e[c.start],p=e[c.end],x=Pm(t,i).find(_=>{const k=_.descriptor.id,w=_.page.borderBox.center[c.line],S=Co(k,a),j=UE({displaced:r,id:k});return S?j?p<=w:h{if(!i.isCombineEnabled)return null;const a=i.axis,c=Pu(i.axis,e.displaceBy),d=c.value,m=t[a.start],h=t[a.end],g=Pm(e,r).find(v=>{const _=v.descriptor.id,k=v.page.borderBox,S=k[a.size]/SO,j=Co(_,o),N=UE({displaced:n.displaced,id:_});return j?N?h>k[a.start]+S&&hk[a.start]-d+S&&mk[a.start]+d+S&&hk[a.start]+S&&m{const c=VE(t.page.borderBox,e),d=vO({pageBorderBox:c,draggable:t,droppables:i});if(!d)return PD;const m=i[d],h=Vl(m.descriptor.id,n),p=bO(m,c);return wO({pageBorderBoxWithDroppableScroll:p,draggable:t,previousImpact:r,destination:m,insideDestination:h,afterCritical:a})||kO({pageBorderBoxWithDroppableScroll:p,draggable:t,destination:m,insideDestination:h,last:r.displaced,viewport:o,afterCritical:a})},Qv=(e,t)=>({...e,[t.descriptor.id]:t});const CO=({previousImpact:e,impact:t,droppables:n})=>{const i=mr(e),r=mr(t);if(!i||i===r)return n;const o=n[i];if(!o.subject.withPlaceholder)return n;const a=fO(o);return Qv(n,a)};var jO=({draggable:e,draggables:t,droppables:n,previousImpact:i,impact:r})=>{const o=CO({previousImpact:i,impact:r,droppables:n}),a=mr(r);if(!a)return o;const c=n[a];if(Ul(e,c)||c.subject.withPlaceholder)return o;const d=HE(c,e,t);return Qv(o,d)},ou=({state:e,clientSelection:t,dimensions:n,viewport:i,impact:r,scrollJumpRequest:o})=>{const a=i||e.viewport,c=n||e.dimensions,d=t||e.current.client.selection,m=fr(d,e.initial.client.selection),h={offset:m,selection:d,borderBoxCenter:Ti(e.initial.client.borderBoxCenter,m)},p={selection:Ti(h.selection,a.scroll.current),borderBoxCenter:Ti(h.borderBoxCenter,a.scroll.current),offset:Ti(h.offset,a.scroll.diff.value)},g={client:h,page:p};if(e.phase==="COLLECTING")return{...e,dimensions:c,viewport:a,current:g};const x=c.draggables[e.critical.draggable.id],v=r||GE({pageOffset:p.offset,draggable:x,draggables:c.draggables,droppables:c.droppables,previousImpact:e.impact,viewport:a,afterCritical:e.afterCritical}),_=jO({draggable:x,impact:v,previousImpact:e.impact,draggables:c.draggables,droppables:c.droppables});return{...e,current:g,dimensions:{draggables:c.draggables,droppables:_},impact:v,viewport:a,scrollJumpRequest:o||null,forceShouldAnimate:o?!1:null}};function EO(e,t){return e.map(n=>t[n])}var qE=({impact:e,viewport:t,draggables:n,destination:i,forceShouldAnimate:r})=>{const o=e.displaced,a=EO(o.all,n),c=bu({afterDragging:a,destination:i,displacedBy:e.displacedBy,viewport:t.frame,forceShouldAnimate:r,last:o});return{...e,displaced:c}},WE=({impact:e,draggable:t,droppable:n,draggables:i,viewport:r,afterCritical:o})=>{const a=Bm({impact:e,draggable:t,draggables:i,droppable:n,afterCritical:o});return Zv({pageBorderBoxCenter:a,draggable:t,viewport:r})},YE=({state:e,dimensions:t,viewport:n})=>{e.movementMode!=="SNAP"&&Le();const i=e.impact,r=n||e.viewport,o=t||e.dimensions,{draggables:a,droppables:c}=o,d=a[e.critical.draggable.id],m=mr(i);m||Le();const h=c[m],p=qE({impact:i,viewport:r,destination:h,draggables:a}),g=WE({impact:p,draggable:d,droppable:h,draggables:a,viewport:r,afterCritical:e.afterCritical});return ou({impact:p,clientSelection:g,state:e,dimensions:o,viewport:r})},NO=e=>({index:e.index,droppableId:e.droppableId}),XE=({draggable:e,home:t,draggables:n,viewport:i})=>{const r=Pu(t.axis,e.displaceBy),o=Vl(t.descriptor.id,n),a=o.indexOf(e);a===-1&&Le();const c=o.slice(a+1),d=c.reduce((g,x)=>(g[x.descriptor.id]=!0,g),{}),m={inVirtualList:t.descriptor.mode==="virtual",displacedBy:r,effected:d};return{impact:{displaced:bu({afterDragging:c,destination:t,displacedBy:r,last:null,viewport:i.frame,forceShouldAnimate:!1}),displacedBy:r,at:{type:"REORDER",destination:NO(e.descriptor)}},afterCritical:m}},IO=(e,t)=>({draggables:e.draggables,droppables:Qv(e.droppables,t)}),TO=({draggable:e,offset:t,initialWindowScroll:n})=>{const i=Zf(e.client,t),r=Qf(i,n);return{...e,placeholder:{...e.placeholder,client:i},client:i,page:r}},RO=e=>{const t=e.frame;return t||Le(),t},AO=({additions:e,updatedDroppables:t,viewport:n})=>{const i=n.scroll.diff.value;return e.map(r=>{const o=r.descriptor.droppableId,a=t[o],d=RO(a).scroll.diff.value,m=Ti(i,d);return TO({draggable:r,offset:m,initialWindowScroll:n.scroll.initial})})},MO=({state:e,published:t})=>{const n=t.modified.map(w=>{const S=e.dimensions.droppables[w.droppableId];return qv(S,w.scroll)}),i={...e.dimensions.droppables,...RE(n)},r=AE(AO({additions:t.additions,updatedDroppables:i,viewport:e.viewport})),o={...e.dimensions.draggables,...r};t.removals.forEach(w=>{delete o[w]});const a={droppables:i,draggables:o},c=mr(e.impact),d=c?a.droppables[c]:null,m=a.draggables[e.critical.draggable.id],h=a.droppables[e.critical.droppable.id],{impact:p,afterCritical:g}=XE({draggable:m,home:h,draggables:o,viewport:e.viewport}),x=d&&d.isCombineEnabled?e.impact:p,v=GE({pageOffset:e.current.page.offset,draggable:a.draggables[e.critical.draggable.id],draggables:a.draggables,droppables:a.droppables,previousImpact:x,viewport:e.viewport,afterCritical:g}),_={...e,phase:"DRAGGING",impact:v,onLiftImpact:p,dimensions:a,afterCritical:g,forceShouldAnimate:!1};return e.phase==="COLLECTING"?_:{..._,phase:"DROP_PENDING",reason:e.reason,isWaiting:!1}};const Gx=e=>e.movementMode==="SNAP",Eg=(e,t,n)=>{const i=IO(e.dimensions,t);return!Gx(e)||n?ou({state:e,dimensions:i}):YE({state:e,dimensions:i})};function Ng(e){return e.isDragging&&e.movementMode==="SNAP"?{...e,scrollJumpRequest:null}:e}const PS={phase:"IDLE",completed:null,shouldFlush:!1};var DO=(e=PS,t)=>{if(t.type==="FLUSH")return{...PS,shouldFlush:!0};if(t.type==="INITIAL_PUBLISH"){e.phase!=="IDLE"&&Le();const{critical:n,clientSelection:i,viewport:r,dimensions:o,movementMode:a}=t.payload,c=o.draggables[n.draggable.id],d=o.droppables[n.droppable.id],m={selection:i,borderBoxCenter:c.client.borderBox.center,offset:ki},h={client:m,page:{selection:Ti(m.selection,r.scroll.initial),borderBoxCenter:Ti(m.selection,r.scroll.initial),offset:Ti(m.selection,r.scroll.diff.value)}},p=Lm(o.droppables).every(_=>!_.isFixedOnPage),{impact:g,afterCritical:x}=XE({draggable:c,home:d,draggables:o.draggables,viewport:r});return{phase:"DRAGGING",isDragging:!0,critical:n,movementMode:a,dimensions:o,initial:h,current:h,isWindowScrollAllowed:p,impact:g,afterCritical:x,onLiftImpact:g,viewport:r,scrollJumpRequest:null,forceShouldAnimate:null}}if(t.type==="COLLECTION_STARTING")return e.phase==="COLLECTING"||e.phase==="DROP_PENDING"?e:(e.phase!=="DRAGGING"&&Le(),{...e,phase:"COLLECTING"});if(t.type==="PUBLISH_WHILE_DRAGGING")return e.phase==="COLLECTING"||e.phase==="DROP_PENDING"||Le(),MO({state:e,published:t.payload});if(t.type==="MOVE"){if(e.phase==="DROP_PENDING")return e;ea(e)||Le();const{client:n}=t.payload;return ko(n,e.current.client.selection)?e:ou({state:e,clientSelection:n,impact:Gx(e)?e.impact:null})}if(t.type==="UPDATE_DROPPABLE_SCROLL"){if(e.phase==="DROP_PENDING"||e.phase==="COLLECTING")return Ng(e);ea(e)||Le();const{id:n,newScroll:i}=t.payload,r=e.dimensions.droppables[n];if(!r)return e;const o=qv(r,i);return Eg(e,o,!1)}if(t.type==="UPDATE_DROPPABLE_IS_ENABLED"){if(e.phase==="DROP_PENDING")return e;ea(e)||Le();const{id:n,isEnabled:i}=t.payload,r=e.dimensions.droppables[n];r||Le(),r.isEnabled===i&&Le();const o={...r,isEnabled:i};return Eg(e,o,!0)}if(t.type==="UPDATE_DROPPABLE_IS_COMBINE_ENABLED"){if(e.phase==="DROP_PENDING")return e;ea(e)||Le();const{id:n,isCombineEnabled:i}=t.payload,r=e.dimensions.droppables[n];r||Le(),r.isCombineEnabled===i&&Le();const o={...r,isCombineEnabled:i};return Eg(e,o,!0)}if(t.type==="MOVE_BY_WINDOW_SCROLL"){if(e.phase==="DROP_PENDING"||e.phase==="DROP_ANIMATING")return e;ea(e)||Le(),e.isWindowScrollAllowed||Le();const n=t.payload.newScroll;if(ko(e.viewport.scroll.current,n))return Ng(e);const i=PE(e.viewport,n);return Gx(e)?YE({state:e,viewport:i}):ou({state:e,viewport:i})}if(t.type==="UPDATE_VIEWPORT_MAX_SCROLL"){if(!ea(e))return e;const n=t.payload.maxScroll;if(ko(n,e.viewport.scroll.max))return e;const i={...e.viewport,scroll:{...e.viewport.scroll,max:n}};return{...e,viewport:i}}if(t.type==="MOVE_UP"||t.type==="MOVE_DOWN"||t.type==="MOVE_LEFT"||t.type==="MOVE_RIGHT"){if(e.phase==="COLLECTING"||e.phase==="DROP_PENDING")return e;e.phase!=="DRAGGING"&&Le();const n=gO({state:e,type:t.type});return n?ou({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:i,newHomeClientOffset:r}=t.payload;return e.phase==="DRAGGING"||e.phase==="DROP_PENDING"||Le(),{phase:"DROP_ANIMATING",completed:n,dropDuration:i,newHomeClientOffset:r,dimensions:e.dimensions}}if(t.type==="DROP_COMPLETE"){const{completed:n}=t.payload;return{phase:"IDLE",completed:n,shouldFlush:!1}}return e};function mn(e,t){return e instanceof Object&&"type"in e&&e.type===t}const OO=e=>({type:"BEFORE_INITIAL_CAPTURE",payload:e}),LO=e=>({type:"LIFT",payload:e}),zO=e=>({type:"INITIAL_PUBLISH",payload:e}),PO=e=>({type:"PUBLISH_WHILE_DRAGGING",payload:e}),BO=()=>({type:"COLLECTION_STARTING",payload:null}),$O=e=>({type:"UPDATE_DROPPABLE_SCROLL",payload:e}),HO=e=>({type:"UPDATE_DROPPABLE_IS_ENABLED",payload:e}),FO=e=>({type:"UPDATE_DROPPABLE_IS_COMBINE_ENABLED",payload:e}),KE=e=>({type:"MOVE",payload:e}),VO=e=>({type:"MOVE_BY_WINDOW_SCROLL",payload:e}),UO=e=>({type:"UPDATE_VIEWPORT_MAX_SCROLL",payload:e}),GO=()=>({type:"MOVE_UP",payload:null}),qO=()=>({type:"MOVE_DOWN",payload:null}),WO=()=>({type:"MOVE_RIGHT",payload:null}),YO=()=>({type:"MOVE_LEFT",payload:null}),Jv=()=>({type:"FLUSH",payload:null}),XO=e=>({type:"DROP_ANIMATE",payload:e}),e0=e=>({type:"DROP_COMPLETE",payload:e}),ZE=e=>({type:"DROP",payload:e}),KO=e=>({type:"DROP_PENDING",payload:e}),QE=()=>({type:"DROP_ANIMATION_FINISHED",payload:null});var ZO=e=>({getState:t,dispatch:n})=>i=>r=>{if(!mn(r,"LIFT")){i(r);return}const{id:o,clientSelection:a,movementMode:c}=r.payload,d=t();d.phase==="DROP_ANIMATING"&&n(e0({completed:d.completed})),t().phase!=="IDLE"&&Le(),n(Jv()),n(OO({draggableId:o,movementMode:c}));const h={draggableId:o,scrollOptions:{shouldPublishImmediately:c==="SNAP"}},{critical:p,dimensions:g,viewport:x}=e.startPublishing(h);n(zO({critical:p,dimensions:g,clientSelection:a,movementMode:c,viewport:x}))},QO=e=>()=>t=>n=>{mn(n,"INITIAL_PUBLISH")&&e.dragging(),mn(n,"DROP_ANIMATE")&&e.dropping(n.payload.completed.result.reason),(mn(n,"FLUSH")||mn(n,"DROP_COMPLETE"))&&e.resting(),t(n)};const t0={outOfTheWay:"cubic-bezier(0.2, 0, 0, 1)",drop:"cubic-bezier(.2,1,.1,1)"},_u={opacity:{drop:0,combining:.7},scale:{drop:.75}},JE={outOfTheWay:.2,minDropTime:.33,maxDropTime:.55},Xo=`${JE.outOfTheWay}s ${t0.outOfTheWay}`,au={fluid:`opacity ${Xo}`,snap:`transform ${Xo}, opacity ${Xo}`,drop:e=>{const t=`${e}s ${t0.drop}`;return`transform ${t}, opacity ${t}`},outOfTheWay:`transform ${Xo}`,placeholder:`height ${Xo}, width ${Xo}, margin ${Xo}`},BS=e=>ko(e,ki)?void 0:`translate(${e.x}px, ${e.y}px)`,qx={moveTo:BS,drop:(e,t)=>{const n=BS(e);if(n)return t?`${n} scale(${_u.scale.drop})`:n}},{minDropTime:Wx,maxDropTime:eN}=JE,JO=eN-Wx,$S=1500,eL=.6;var tL=({current:e,destination:t,reason:n})=>{const i=xu(e,t);if(i<=0)return Wx;if(i>=$S)return eN;const r=i/$S,o=Wx+JO*r,a=n==="CANCEL"?o*eL:o;return Number(a.toFixed(2))},nL=({impact:e,draggable:t,dimensions:n,viewport:i,afterCritical:r})=>{const{draggables:o,droppables:a}=n,c=mr(e),d=c?a[c]:null,m=a[t.descriptor.droppableId],h=WE({impact:e,draggable:t,draggables:o,afterCritical:r,droppable:d||m,viewport:i});return fr(h,t.client.borderBox.center)},iL=({draggables:e,reason:t,lastImpact:n,home:i,viewport:r,onLiftImpact:o})=>!n.at||t!=="DROP"?{impact:qE({draggables:e,impact:o,destination:i,viewport:r,forceShouldAnimate:!0}),didDropInsideDroppable:!1}:n.at.type==="REORDER"?{impact:n,didDropInsideDroppable:!0}:{impact:{...n,displaced:vu},didDropInsideDroppable:!0};const rL=({getState:e,dispatch:t})=>n=>i=>{if(!mn(i,"DROP")){n(i);return}const r=e(),o=i.payload.reason;if(r.phase==="COLLECTING"){t(KO({reason:o}));return}if(r.phase==="IDLE")return;r.phase==="DROP_PENDING"&&r.isWaiting&&Le(),r.phase==="DRAGGING"||r.phase==="DROP_PENDING"||Le();const c=r.critical,d=r.dimensions,m=d.draggables[r.critical.draggable.id],{impact:h,didDropInsideDroppable:p}=iL({reason:o,lastImpact:r.impact,afterCritical:r.afterCritical,onLiftImpact:r.onLiftImpact,home:r.dimensions.droppables[r.critical.droppable.id],viewport:r.viewport,draggables:r.dimensions.draggables}),g=p?Wv(h):null,x=p?zm(h):null,v={index:c.draggable.index,droppableId:c.droppable.id},_={draggableId:m.descriptor.id,type:m.descriptor.type,source:v,reason:o,mode:r.movementMode,destination:g,combine:x},k=nL({impact:h,draggable:m,dimensions:d,viewport:r.viewport,afterCritical:r.afterCritical}),w={critical:r.critical,afterCritical:r.afterCritical,result:_,impact:h};if(!(!ko(r.current.client.offset,k)||!!_.combine)){t(e0({completed:w}));return}const j=tL({current:r.current.client.offset,destination:k,reason:o});t(XO({newHomeClientOffset:k,dropDuration:j,completed:w}))};var tN=()=>({x:window.pageXOffset,y:window.pageYOffset});function sL(e){return{eventName:"scroll",options:{passive:!0,capture:!1},fn:t=>{t.target!==window&&t.target!==window.document||e()}}}function oL({onWindowScroll:e}){function t(){e(tN())}const n=yu(t),i=sL(n);let r=_o;function o(){return r!==_o}function a(){o()&&Le(),r=Tr(window,[i])}function c(){o()||Le(),n.cancel(),r(),r=_o}return{start:a,stop:c,isActive:o}}const aL=e=>mn(e,"DROP_COMPLETE")||mn(e,"DROP_ANIMATE")||mn(e,"FLUSH"),lL=e=>{const t=oL({onWindowScroll:n=>{e.dispatch(VO({newScroll:n}))}});return n=>i=>{!t.isActive()&&mn(i,"INITIAL_PUBLISH")&&t.start(),t.isActive()&&aL(i)&&t.stop(),n(i)}};var cL=e=>{let t=!1,n=!1;const i=setTimeout(()=>{n=!0}),r=o=>{t||n||(t=!0,e(o),clearTimeout(i))};return r.wasCalled=()=>t,r},uL=()=>{const e=[],t=r=>{const o=e.findIndex(c=>c.timerId===r);o===-1&&Le();const[a]=e.splice(o,1);a.callback()};return{add:r=>{const o=setTimeout(()=>t(o)),a={timerId:o,callback:r};e.push(a)},flush:()=>{if(!e.length)return;const r=[...e];e.length=0,r.forEach(o=>{clearTimeout(o.timerId),o.callback()})}}};const dL=(e,t)=>e==null&&t==null?!0:e==null||t==null?!1:e.droppableId===t.droppableId&&e.index===t.index,fL=(e,t)=>e==null&&t==null?!0:e==null||t==null?!1:e.draggableId===t.draggableId&&e.droppableId===t.droppableId,mL=(e,t)=>{if(e===t)return!0;const n=e.draggable.id===t.draggable.id&&e.draggable.droppableId===t.draggable.droppableId&&e.draggable.type===t.draggable.type&&e.draggable.index===t.draggable.index,i=e.droppable.id===t.droppable.id&&e.droppable.type===t.droppable.type;return n&&i},zc=(e,t)=>{t()},rf=(e,t)=>({draggableId:e.draggable.id,type:e.droppable.type,source:{droppableId:e.droppable.id,index:e.draggable.index},mode:t});function Ig(e,t,n,i){if(!e){n(i(t));return}const r=cL(n);e(t,{announce:r}),r.wasCalled()||n(i(t))}var pL=(e,t)=>{const n=uL();let i=null;const r=(p,g)=>{i&&Le(),zc("onBeforeCapture",()=>{const x=e().onBeforeCapture;x&&x({draggableId:p,mode:g})})},o=(p,g)=>{i&&Le(),zc("onBeforeDragStart",()=>{const x=e().onBeforeDragStart;x&&x(rf(p,g))})},a=(p,g)=>{i&&Le();const x=rf(p,g);i={mode:g,lastCritical:p,lastLocation:x.source,lastCombine:null},n.add(()=>{zc("onDragStart",()=>Ig(e().onDragStart,x,t,Mf.onDragStart))})},c=(p,g)=>{const x=Wv(g),v=zm(g);i||Le();const _=!mL(p,i.lastCritical);_&&(i.lastCritical=p);const k=!dL(i.lastLocation,x);k&&(i.lastLocation=x);const w=!fL(i.lastCombine,v);if(w&&(i.lastCombine=v),!_&&!k&&!w)return;const S={...rf(p,i.mode),combine:v,destination:x};n.add(()=>{zc("onDragUpdate",()=>Ig(e().onDragUpdate,S,t,Mf.onDragUpdate))})},d=()=>{i||Le(),n.flush()},m=p=>{i||Le(),i=null,zc("onDragEnd",()=>Ig(e().onDragEnd,p,t,Mf.onDragEnd))};return{beforeCapture:r,beforeStart:o,start:a,update:c,flush:d,drop:m,abort:()=>{if(!i)return;const p={...rf(i.lastCritical,i.mode),combine:null,destination:null,reason:"CANCEL"};m(p)}}},hL=(e,t)=>{const n=pL(e,t);return i=>r=>o=>{if(mn(o,"BEFORE_INITIAL_CAPTURE")){n.beforeCapture(o.payload.draggableId,o.payload.movementMode);return}if(mn(o,"INITIAL_PUBLISH")){const c=o.payload.critical;n.beforeStart(c,o.payload.movementMode),r(o),n.start(c,o.payload.movementMode);return}if(mn(o,"DROP_COMPLETE")){const c=o.payload.completed.result;n.flush(),r(o),n.drop(c);return}if(r(o),mn(o,"FLUSH")){n.abort();return}const a=i.getState();a.phase==="DRAGGING"&&n.update(a.critical,a.impact)}};const gL=e=>t=>n=>{if(!mn(n,"DROP_ANIMATION_FINISHED")){t(n);return}const i=e.getState();i.phase!=="DROP_ANIMATING"&&Le(),e.dispatch(e0({completed:i.completed}))},yL=e=>{let t=null,n=null;function i(){n&&(cancelAnimationFrame(n),n=null),t&&(t(),t=null)}return r=>o=>{if((mn(o,"FLUSH")||mn(o,"DROP_COMPLETE")||mn(o,"DROP_ANIMATION_FINISHED"))&&i(),r(o),!mn(o,"DROP_ANIMATE"))return;const a={eventName:"scroll",options:{capture:!0,passive:!1,once:!0},fn:function(){e.getState().phase==="DROP_ANIMATING"&&e.dispatch(QE())}};n=requestAnimationFrame(()=>{n=null,t=Tr(window,[a])})}};var xL=e=>()=>t=>n=>{(mn(n,"DROP_COMPLETE")||mn(n,"FLUSH")||mn(n,"DROP_ANIMATE"))&&e.stopPublishing(),t(n)},vL=e=>{let t=!1;return()=>n=>i=>{if(mn(i,"INITIAL_PUBLISH")){t=!0,e.tryRecordFocus(i.payload.critical.draggable.id),n(i),e.tryRestoreFocusRecorded();return}if(n(i),!!t){if(mn(i,"FLUSH")){t=!1,e.tryRestoreFocusRecorded();return}if(mn(i,"DROP_COMPLETE")){t=!1;const r=i.payload.completed.result;r.combine&&e.tryShiftRecord(r.draggableId,r.combine.draggableId),e.tryRestoreFocusRecorded()}}}};const bL=e=>mn(e,"DROP_COMPLETE")||mn(e,"DROP_ANIMATE")||mn(e,"FLUSH");var _L=e=>t=>n=>i=>{if(bL(i)){e.stop(),n(i);return}if(mn(i,"INITIAL_PUBLISH")){n(i);const r=t.getState();r.phase!=="DRAGGING"&&Le(),e.start(r);return}n(i),e.scroll(t.getState())};const kL=e=>t=>n=>{if(t(n),!mn(n,"PUBLISH_WHILE_DRAGGING"))return;const i=e.getState();i.phase==="DROP_PENDING"&&(i.isWaiting||e.dispatch(ZE({reason:i.reason})))},SL=yE;var wL=({dimensionMarshal:e,focusMarshal:t,styleMarshal:n,getResponders:i,announce:r,autoScroller:o})=>gE(DO,SL(_5(QO(n),xL(e),ZO(e),rL,gL,yL,kL,_L(o),lL,vL(t),hL(i,r))));const Tg=()=>({additions:{},removals:{},modified:{}});function CL({registry:e,callbacks:t}){let n=Tg(),i=null;const r=()=>{i||(t.collectionStarting(),i=requestAnimationFrame(()=>{i=null;const{additions:d,removals:m,modified:h}=n,p=Object.keys(d).map(v=>e.draggable.getById(v).getDimension(ki)).sort((v,_)=>v.descriptor.index-_.descriptor.index),g=Object.keys(h).map(v=>{const k=e.droppable.getById(v).callbacks.getScrollWhileDragging();return{droppableId:v,scroll:k}}),x={additions:p,removals:Object.keys(m),modified:g};n=Tg(),t.publish(x)}))};return{add:d=>{const m=d.descriptor.id;n.additions[m]=d,n.modified[d.descriptor.droppableId]=!0,n.removals[m]&&delete n.removals[m],r()},remove:d=>{const m=d.descriptor;n.removals[m.id]=!0,n.modified[m.droppableId]=!0,n.additions[m.id]&&delete n.additions[m.id],r()},stop:()=>{i&&(cancelAnimationFrame(i),i=null,n=Tg())}}}var nN=({scrollHeight:e,scrollWidth:t,height:n,width:i})=>{const r=fr({x:t,y:e},{x:i,y:n});return{x:Math.max(0,r.x),y:Math.max(0,r.y)}},iN=()=>{const e=document.documentElement;return e||Le(),e},rN=()=>{const e=iN();return nN({scrollHeight:e.scrollHeight,scrollWidth:e.scrollWidth,width:e.clientWidth,height:e.clientHeight})},jL=()=>{const e=tN(),t=rN(),n=e.y,i=e.x,r=iN(),o=r.clientWidth,a=r.clientHeight,c=i+o,d=n+a;return{frame:$r({top:n,left:i,right:c,bottom:d}),scroll:{initial:e,current:e,max:t,diff:{value:ki,displacement:ki}}}},EL=({critical:e,scrollOptions:t,registry:n})=>{const i=jL(),r=i.scroll.current,o=e.droppable,a=n.droppable.getAllByType(o.type).map(h=>h.callbacks.getDimensionAndWatchScroll(r,t)),c=n.draggable.getAllByType(e.draggable.type).map(h=>h.getDimension(r));return{dimensions:{draggables:AE(c),droppables:RE(a)},critical:e,viewport:i}};function HS(e,t,n){return!(n.descriptor.id===t.id||n.descriptor.type!==t.type||e.droppable.getById(n.descriptor.droppableId).descriptor.mode!=="virtual")}var NL=(e,t)=>{let n=null;const i=CL({callbacks:{publish:t.publishWhileDragging,collectionStarting:t.collectionStarting},registry:e}),r=(g,x)=>{e.droppable.exists(g)||Le(),n&&t.updateDroppableIsEnabled({id:g,isEnabled:x})},o=(g,x)=>{n&&(e.droppable.exists(g)||Le(),t.updateDroppableIsCombineEnabled({id:g,isCombineEnabled:x}))},a=(g,x)=>{n&&(e.droppable.exists(g)||Le(),t.updateDroppableScroll({id:g,newScroll:x}))},c=(g,x)=>{n&&e.droppable.getById(g).callbacks.scroll(x)},d=()=>{if(!n)return;i.stop();const g=n.critical.droppable;e.droppable.getAllByType(g.type).forEach(x=>x.callbacks.dragStopped()),n.unsubscribe(),n=null},m=g=>{n||Le();const x=n.critical.draggable;g.type==="ADDITION"&&HS(e,x,g.value)&&i.add(g.value),g.type==="REMOVAL"&&HS(e,x,g.value)&&i.remove(g.value)};return{updateDroppableIsEnabled:r,updateDroppableIsCombineEnabled:o,scrollDroppable:c,updateDroppableScroll:a,startPublishing:g=>{n&&Le();const x=e.draggable.getById(g.draggableId),v=e.droppable.getById(x.descriptor.droppableId),_={draggable:x.descriptor,droppable:v.descriptor},k=e.subscribe(m);return n={critical:_,unsubscribe:k},EL({critical:_,registry:e,scrollOptions:g.scrollOptions})},stopPublishing:d}},sN=(e,t)=>e.phase==="IDLE"?!0:e.phase!=="DROP_ANIMATING"||e.completed.result.draggableId===t?!1:e.completed.result.reason==="DROP",IL=e=>{window.scrollBy(e.x,e.y)};const TL=_i(e=>Lm(e).filter(t=>!(!t.isEnabled||!t.frame))),RL=(e,t)=>TL(t).find(i=>(i.frame||Le(),FE(i.frame.pageMarginBox)(e)))||null;var AL=({center:e,destination:t,droppables:n})=>{if(t){const r=n[t];return r.frame?r:null}return RL(e,n)};const ku={startFromPercentage:.25,maxScrollAtPercentage:.05,maxPixelScroll:28,ease:e=>e**2,durationDampening:{stopDampeningAt:1200,accelerateAt:360},disabled:!1};var ML=(e,t,n=()=>ku)=>{const i=n(),r=e[t.size]*i.startFromPercentage,o=e[t.size]*i.maxScrollAtPercentage;return{startScrollingFrom:r,maxScrollValueAt:o}},oN=({startOfRange:e,endOfRange:t,current:n})=>{const i=t-e;return i===0?0:(n-e)/i},n0=1,DL=(e,t,n=()=>ku)=>{const i=n();if(e>t.startScrollingFrom)return 0;if(e<=t.maxScrollValueAt)return i.maxPixelScroll;if(e===t.startScrollingFrom)return n0;const o=1-oN({startOfRange:t.maxScrollValueAt,endOfRange:t.startScrollingFrom,current:e}),a=i.maxPixelScroll*i.ease(o);return Math.ceil(a)},OL=(e,t,n)=>{const i=n(),r=i.durationDampening.accelerateAt,o=i.durationDampening.stopDampeningAt,a=t,c=o,m=Date.now()-a;if(m>=o)return e;if(m{const o=DL(e,t,r);return o===0?0:i?Math.max(OL(o,n,r),n0):o},VS=({container:e,distanceToEdges:t,dragStartTime:n,axis:i,shouldUseTimeDampening:r,getAutoScrollerOptions:o})=>{const a=ML(e,i,o);return t[i.end]{const i=t.height>e.height,r=t.width>e.width;return!r&&!i?n:r&&i?null:{x:r?0:n.x,y:i?0:n.y}};const zL=TE(e=>e===0?0:e);var aN=({dragStartTime:e,container:t,subject:n,center:i,shouldUseTimeDampening:r,getAutoScrollerOptions:o})=>{const a={top:i.y-t.top,right:t.right-i.x,bottom:t.bottom-i.y,left:i.x-t.left},c=VS({container:t,distanceToEdges:a,dragStartTime:e,axis:Yv,shouldUseTimeDampening:r,getAutoScrollerOptions:o}),d=VS({container:t,distanceToEdges:a,dragStartTime:e,axis:OE,shouldUseTimeDampening:r,getAutoScrollerOptions:o}),m=zL({x:d,y:c});if(ko(m,ki))return null;const h=LL({container:t,subject:n,proposedScroll:m});return h?ko(h,ki)?null:h:null};const PL=TE(e=>e===0?0:e>0?1:-1),i0=(()=>{const e=(t,n)=>t<0?t:t>n?t-n:0;return({current:t,max:n,change:i})=>{const r=Ti(t,i),o={x:e(r.x,n.x),y:e(r.y,n.y)};return ko(o,ki)?null:o}})(),lN=({max:e,current:t,change:n})=>{const i={x:Math.max(t.x,e.x),y:Math.max(t.y,e.y)},r=PL(n),o=i0({max:i,current:t,change:r});return!o||r.x!==0&&o.x===0||r.y!==0&&o.y===0},r0=(e,t)=>lN({current:e.scroll.current,max:e.scroll.max,change:t}),BL=(e,t)=>{if(!r0(e,t))return null;const n=e.scroll.max,i=e.scroll.current;return i0({current:i,max:n,change:t})},s0=(e,t)=>{const n=e.frame;return n?lN({current:n.scroll.current,max:n.scroll.max,change:t}):!1},$L=(e,t)=>{const n=e.frame;return!n||!s0(e,t)?null:i0({current:n.scroll.current,max:n.scroll.max,change:t})};var HL=({viewport:e,subject:t,center:n,dragStartTime:i,shouldUseTimeDampening:r,getAutoScrollerOptions:o})=>{const a=aN({dragStartTime:i,container:e.frame,subject:t,center:n,shouldUseTimeDampening:r,getAutoScrollerOptions:o});return a&&r0(e,a)?a:null},FL=({droppable:e,subject:t,center:n,dragStartTime:i,shouldUseTimeDampening:r,getAutoScrollerOptions:o})=>{const a=e.frame;if(!a)return null;const c=aN({dragStartTime:i,container:a.pageMarginBox,subject:t,center:n,shouldUseTimeDampening:r,getAutoScrollerOptions:o});return c&&s0(e,c)?c:null},US=({state:e,dragStartTime:t,shouldUseTimeDampening:n,scrollWindow:i,scrollDroppable:r,getAutoScrollerOptions:o})=>{const a=e.current.page.borderBoxCenter,d=e.dimensions.draggables[e.critical.draggable.id].page.marginBox;if(e.isWindowScrollAllowed){const p=e.viewport,g=HL({dragStartTime:t,viewport:p,subject:d,center:a,shouldUseTimeDampening:n,getAutoScrollerOptions:o});if(g){i(g);return}}const m=AL({center:a,destination:mr(e.impact),droppables:e.dimensions.droppables});if(!m)return;const h=FL({dragStartTime:t,droppable:m,subject:d,center:a,shouldUseTimeDampening:n,getAutoScrollerOptions:o});h&&r(m.descriptor.id,h)},VL=({scrollWindow:e,scrollDroppable:t,getAutoScrollerOptions:n=()=>ku})=>{const i=yu(e),r=yu(t);let o=null;const a=m=>{o||Le();const{shouldUseTimeDampening:h,dragStartTime:p}=o;US({state:m,scrollWindow:i,scrollDroppable:r,dragStartTime:p,shouldUseTimeDampening:h,getAutoScrollerOptions:n})};return{start:m=>{o&&Le();const h=Date.now();let p=!1;const g=()=>{p=!0};US({state:m,dragStartTime:0,shouldUseTimeDampening:!1,scrollWindow:g,scrollDroppable:g,getAutoScrollerOptions:n}),o={dragStartTime:h,shouldUseTimeDampening:p},p&&a(m)},stop:()=>{o&&(i.cancel(),r.cancel(),o=null)},scroll:a}},UL=({move:e,scrollDroppable:t,scrollWindow:n})=>{const i=(c,d)=>{const m=Ti(c.current.client.selection,d);e({client:m})},r=(c,d)=>{if(!s0(c,d))return d;const m=$L(c,d);if(!m)return t(c.descriptor.id,d),null;const h=fr(d,m);return t(c.descriptor.id,h),fr(d,h)},o=(c,d,m)=>{if(!c||!r0(d,m))return m;const h=BL(d,m);if(!h)return n(m),null;const p=fr(m,h);return n(p),fr(m,p)};return c=>{const d=c.scrollJumpRequest;if(!d)return;const m=mr(c.impact);m||Le();const h=r(c.dimensions.droppables[m],d);if(!h)return;const p=c.viewport,g=o(c.isWindowScrollAllowed,p,h);g&&i(c,g)}},GL=({scrollDroppable:e,scrollWindow:t,move:n,getAutoScrollerOptions:i})=>{const r=VL({scrollWindow:t,scrollDroppable:e,getAutoScrollerOptions:i}),o=UL({move:n,scrollWindow:t,scrollDroppable:e});return{scroll:d=>{if(!(i().disabled||d.phase!=="DRAGGING")){if(d.movementMode==="FLUID"){r.scroll(d);return}d.scrollJumpRequest&&o(d)}},start:r.start,stop:r.stop}};const wl="data-rfd",Cl=(()=>{const e=`${wl}-drag-handle`;return{base:e,draggableId:`${e}-draggable-id`,contextId:`${e}-context-id`}})(),Yx=(()=>{const e=`${wl}-draggable`;return{base:e,contextId:`${e}-context-id`,id:`${e}-id`}})(),qL=(()=>{const e=`${wl}-droppable`;return{base:e,contextId:`${e}-context-id`,id:`${e}-id`}})(),GS={contextId:`${wl}-scroll-container-context-id`},WL=e=>t=>`[${t}="${e}"]`,Pc=(e,t)=>e.map(n=>{const i=n.styles[t];return i?`${n.selector} { ${i} }`:""}).join(" "),YL="pointer-events: none;";var XL=e=>{const t=WL(e),n=(()=>{const c=` - cursor: -webkit-grab; - cursor: grab; - `;return{selector:t(Cl.contextId),styles:{always:` - -webkit-touch-callout: none; - -webkit-tap-highlight-color: rgba(0,0,0,0); - touch-action: manipulation; - `,resting:c,dragging:YL,dropAnimating:c}}})(),i=(()=>{const c=` - transition: ${au.outOfTheWay}; - `;return{selector:t(Yx.contextId),styles:{dragging:c,dropAnimating:c,userCancel:c}}})(),r={selector:t(qL.contextId),styles:{always:"overflow-anchor: none;"}},a=[i,n,r,{selector:"body",styles:{dragging:` - cursor: grabbing; - cursor: -webkit-grabbing; - user-select: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - overflow-anchor: none; - `}}];return{always:Pc(a,"always"),resting:Pc(a,"resting"),dragging:Pc(a,"dragging"),dropAnimating:Pc(a,"dropAnimating"),userCancel:Pc(a,"userCancel")}};const pr=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u"?C.useLayoutEffect:C.useEffect,Rg=()=>{const e=document.querySelector("head");return e||Le(),e},qS=e=>{const t=document.createElement("style");return e&&t.setAttribute("nonce",e),t.type="text/css",t};function KL(e,t){const n=rn(()=>XL(e),[e]),i=C.useRef(null),r=C.useRef(null),o=rt(_i(p=>{const g=r.current;g||Le(),g.textContent=p}),[]),a=rt(p=>{const g=i.current;g||Le(),g.textContent=p},[]);pr(()=>{!i.current&&!r.current||Le();const p=qS(t),g=qS(t);return i.current=p,r.current=g,p.setAttribute(`${wl}-always`,e),g.setAttribute(`${wl}-dynamic`,e),Rg().appendChild(p),Rg().appendChild(g),a(n.always),o(n.resting),()=>{const x=v=>{const _=v.current;_||Le(),Rg().removeChild(_),v.current=null};x(i),x(r)}},[t,a,o,n.always,n.resting,e]);const c=rt(()=>o(n.dragging),[o,n.dragging]),d=rt(p=>{if(p==="DROP"){o(n.dropAnimating);return}o(n.userCancel)},[o,n.dropAnimating,n.userCancel]),m=rt(()=>{r.current&&o(n.resting)},[o,n.resting]);return rn(()=>({dragging:c,dropping:d,resting:m}),[c,d,m])}function cN(e,t){return Array.from(e.querySelectorAll(t))}var uN=e=>e&&e.ownerDocument&&e.ownerDocument.defaultView?e.ownerDocument.defaultView:window;function $m(e){return e instanceof uN(e).HTMLElement}function ZL(e,t){const n=`[${Cl.contextId}="${e}"]`,i=cN(document,n);if(!i.length)return null;const r=i.find(o=>o.getAttribute(Cl.draggableId)===t);return!r||!$m(r)?null:r}function QL(e){const t=C.useRef({}),n=C.useRef(null),i=C.useRef(null),r=C.useRef(!1),o=rt(function(g,x){const v={id:g,focus:x};return t.current[g]=v,function(){const k=t.current;k[g]!==v&&delete k[g]}},[]),a=rt(function(g){const x=ZL(e,g);x&&x!==document.activeElement&&x.focus()},[e]),c=rt(function(g,x){n.current===g&&(n.current=x)},[]),d=rt(function(){i.current||r.current&&(i.current=requestAnimationFrame(()=>{i.current=null;const g=n.current;g&&a(g)}))},[a]),m=rt(function(g){n.current=null;const x=document.activeElement;x&&x.getAttribute(Cl.draggableId)===g&&(n.current=g)},[]);return pr(()=>(r.current=!0,function(){r.current=!1;const g=i.current;g&&cancelAnimationFrame(g)}),[]),rn(()=>({register:o,tryRecordFocus:m,tryRestoreFocusRecorded:d,tryShiftRecord:c}),[o,m,d,c])}function JL(){const e={draggables:{},droppables:{}},t=[];function n(p){return t.push(p),function(){const x=t.indexOf(p);x!==-1&&t.splice(x,1)}}function i(p){t.length&&t.forEach(g=>g(p))}function r(p){return e.draggables[p]||null}function o(p){const g=r(p);return g||Le(),g}const a={register:p=>{e.draggables[p.descriptor.id]=p,i({type:"ADDITION",value:p})},update:(p,g)=>{const x=e.draggables[g.descriptor.id];x&&x.uniqueId===p.uniqueId&&(delete e.draggables[g.descriptor.id],e.draggables[p.descriptor.id]=p)},unregister:p=>{const g=p.descriptor.id,x=r(g);x&&p.uniqueId===x.uniqueId&&(delete e.draggables[g],e.droppables[p.descriptor.droppableId]&&i({type:"REMOVAL",value:p}))},getById:o,findById:r,exists:p=>!!r(p),getAllByType:p=>Object.values(e.draggables).filter(g=>g.descriptor.type===p)};function c(p){return e.droppables[p]||null}function d(p){const g=c(p);return g||Le(),g}const m={register:p=>{e.droppables[p.descriptor.id]=p},unregister:p=>{const g=c(p.descriptor.id);g&&p.uniqueId===g.uniqueId&&delete e.droppables[p.descriptor.id]},getById:d,findById:c,exists:p=>!!c(p),getAllByType:p=>Object.values(e.droppables).filter(g=>g.descriptor.type===p)};function h(){e.draggables={},e.droppables={},t.length=0}return{draggable:a,droppable:m,subscribe:n,clean:h}}function e6(){const e=rn(JL,[]);return C.useEffect(()=>function(){e.clean()},[e]),e}var o0=Rt.createContext(null),im=()=>{const e=document.body;return e||Le(),e};const t6={position:"absolute",width:"1px",height:"1px",margin:"-1px",border:"0",padding:"0",overflow:"hidden",clip:"rect(0 0 0 0)","clip-path":"inset(100%)"},n6=e=>`rfd-announcement-${e}`;function i6(e){const t=rn(()=>n6(e),[e]),n=C.useRef(null);return C.useEffect(function(){const o=document.createElement("div");return n.current=o,o.id=t,o.setAttribute("aria-live","assertive"),o.setAttribute("aria-atomic","true"),Jf(o.style,t6),im().appendChild(o),function(){setTimeout(function(){const d=im();d.contains(o)&&d.removeChild(o),o===n.current&&(n.current=null)})}},[t]),rt(r=>{const o=n.current;if(o){o.textContent=r;return}},[])}const r6={separator:"::"};function a0(e,t=r6){const n=Rt.useId();return rn(()=>`${e}${t.separator}${n}`,[t.separator,e,n])}function s6({contextId:e,uniqueId:t}){return`rfd-hidden-text-${e}-${t}`}function o6({contextId:e,text:t}){const n=a0("hidden-text",{separator:"-"}),i=rn(()=>s6({contextId:e,uniqueId:n}),[n,e]);return C.useEffect(function(){const o=document.createElement("div");return o.id=i,o.textContent=t,o.style.display="none",im().appendChild(o),function(){const c=im();c.contains(o)&&c.removeChild(o)}},[i,t]),i}var Hm=Rt.createContext(null);function dN(e){const t=C.useRef(e);return C.useEffect(()=>{t.current=e}),t}function a6(){let e=null;function t(){return!!e}function n(a){return a===e}function i(a){e&&Le();const c={abandon:a};return e=c,c}function r(){e||Le(),e=null}function o(){e&&(e.abandon(),r())}return{isClaimed:t,isActive:n,claim:i,release:r,tryAbandon:o}}function Su(e){return e.phase==="IDLE"||e.phase==="DROP_ANIMATING"?!1:e.isDragging}const l6=9,c6=13,l0=27,fN=32,u6=33,d6=34,f6=35,m6=36,p6=37,h6=38,g6=39,y6=40,x6={[c6]:!0,[l6]:!0};var mN=e=>{x6[e.keyCode]&&e.preventDefault()};const Fm=(()=>{const e="visibilitychange";return typeof document>"u"?e:[e,`ms${e}`,`webkit${e}`,`moz${e}`,`o${e}`].find(i=>`on${i}`in document)||e})(),pN=0,WS=5;function v6(e,t){return Math.abs(t.x-e.x)>=WS||Math.abs(t.y-e.y)>=WS}const YS={type:"IDLE"};function b6({cancel:e,completed:t,getPhase:n,setPhase:i}){return[{eventName:"mousemove",fn:r=>{const{button:o,clientX:a,clientY:c}=r;if(o!==pN)return;const d={x:a,y:c},m=n();if(m.type==="DRAGGING"){r.preventDefault(),m.actions.move(d);return}m.type!=="PENDING"&&Le();const h=m.point;if(!v6(h,d))return;r.preventDefault();const p=m.actions.fluidLift(d);i({type:"DRAGGING",actions:p})}},{eventName:"mouseup",fn:r=>{const o=n();if(o.type!=="DRAGGING"){e();return}r.preventDefault(),o.actions.drop({shouldBlockNextClick:!0}),t()}},{eventName:"mousedown",fn:r=>{n().type==="DRAGGING"&&r.preventDefault(),e()}},{eventName:"keydown",fn:r=>{if(n().type==="PENDING"){e();return}if(r.keyCode===l0){r.preventDefault(),e();return}mN(r)}},{eventName:"resize",fn:e},{eventName:"scroll",options:{passive:!0,capture:!1},fn:()=>{n().type==="PENDING"&&e()}},{eventName:"webkitmouseforcedown",fn:r=>{const o=n();if(o.type==="IDLE"&&Le(),o.actions.shouldRespectForcePress()){e();return}r.preventDefault()}},{eventName:Fm,fn:e}]}function _6(e){const t=C.useRef(YS),n=C.useRef(_o),i=rn(()=>({eventName:"mousedown",fn:function(p){if(p.defaultPrevented||p.button!==pN||p.ctrlKey||p.metaKey||p.shiftKey||p.altKey)return;const g=e.findClosestDraggableId(p);if(!g)return;const x=e.tryGetLock(g,a,{sourceEvent:p});if(!x)return;p.preventDefault();const v={x:p.clientX,y:p.clientY};n.current(),m(x,v)}}),[e]),r=rn(()=>({eventName:"webkitmouseforcewillbegin",fn:h=>{if(h.defaultPrevented)return;const p=e.findClosestDraggableId(h);if(!p)return;const g=e.findOptionsForDraggable(p);g&&(g.shouldRespectForcePress||e.canGetLock(p)&&h.preventDefault())}}),[e]),o=rt(function(){const p={passive:!1,capture:!0};n.current=Tr(window,[r,i],p)},[r,i]),a=rt(()=>{t.current.type!=="IDLE"&&(t.current=YS,n.current(),o())},[o]),c=rt(()=>{const h=t.current;a(),h.type==="DRAGGING"&&h.actions.cancel({shouldBlockNextClick:!0}),h.type==="PENDING"&&h.actions.abort()},[a]),d=rt(function(){const p={capture:!0,passive:!1},g=b6({cancel:c,completed:a,getPhase:()=>t.current,setPhase:x=>{t.current=x}});n.current=Tr(window,g,p)},[c,a]),m=rt(function(p,g){t.current.type!=="IDLE"&&Le(),t.current={type:"PENDING",point:g,actions:p},d()},[d]);pr(function(){return o(),function(){n.current()}},[o])}function k6(){}const S6={[d6]:!0,[u6]:!0,[m6]:!0,[f6]:!0};function w6(e,t){function n(){t(),e.cancel()}function i(){t(),e.drop()}return[{eventName:"keydown",fn:r=>{if(r.keyCode===l0){r.preventDefault(),n();return}if(r.keyCode===fN){r.preventDefault(),i();return}if(r.keyCode===y6){r.preventDefault(),e.moveDown();return}if(r.keyCode===h6){r.preventDefault(),e.moveUp();return}if(r.keyCode===g6){r.preventDefault(),e.moveRight();return}if(r.keyCode===p6){r.preventDefault(),e.moveLeft();return}if(S6[r.keyCode]){r.preventDefault();return}mN(r)}},{eventName:"mousedown",fn:n},{eventName:"mouseup",fn:n},{eventName:"click",fn:n},{eventName:"touchstart",fn:n},{eventName:"resize",fn:n},{eventName:"wheel",fn:n,options:{passive:!0}},{eventName:Fm,fn:n}]}function C6(e){const t=C.useRef(k6),n=rn(()=>({eventName:"keydown",fn:function(o){if(o.defaultPrevented||o.keyCode!==fN)return;const a=e.findClosestDraggableId(o);if(!a)return;const c=e.tryGetLock(a,h,{sourceEvent:o});if(!c)return;o.preventDefault();let d=!0;const m=c.snapLift();t.current();function h(){d||Le(),d=!1,t.current(),i()}t.current=Tr(window,w6(m,h),{capture:!0,passive:!1})}}),[e]),i=rt(function(){const o={passive:!1,capture:!0};t.current=Tr(window,[n],o)},[n]);pr(function(){return i(),function(){t.current()}},[i])}const Ag={type:"IDLE"},j6=120,E6=.15;function N6({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===l0&&n.preventDefault(),e()}},{eventName:Fm,fn:e}]}function I6({cancel:e,completed:t,getPhase:n}){return[{eventName:"touchmove",options:{capture:!1},fn:i=>{const r=n();if(r.type!=="DRAGGING"){e();return}r.hasMoved=!0;const{clientX:o,clientY:a}=i.touches[0],c={x:o,y:a};i.preventDefault(),r.actions.move(c)}},{eventName:"touchend",fn:i=>{const r=n();if(r.type!=="DRAGGING"){e();return}i.preventDefault(),r.actions.drop({shouldBlockNextClick:!0}),t()}},{eventName:"touchcancel",fn:i=>{if(n().type!=="DRAGGING"){e();return}i.preventDefault(),e()}},{eventName:"touchforcechange",fn:i=>{const r=n();r.type==="IDLE"&&Le();const o=i.touches[0];if(!o||!(o.force>=E6))return;const c=r.actions.shouldRespectForcePress();if(r.type==="PENDING"){c&&e();return}if(c){if(r.hasMoved){i.preventDefault();return}e();return}i.preventDefault()}},{eventName:Fm,fn:e}]}function T6(e){const t=C.useRef(Ag),n=C.useRef(_o),i=rt(function(){return t.current},[]),r=rt(function(x){t.current=x},[]),o=rn(()=>({eventName:"touchstart",fn:function(x){if(x.defaultPrevented)return;const v=e.findClosestDraggableId(x);if(!v)return;const _=e.tryGetLock(v,c,{sourceEvent:x});if(!_)return;const k=x.touches[0],{clientX:w,clientY:S}=k,j={x:w,y:S};n.current(),p(_,j)}}),[e]),a=rt(function(){const x={capture:!0,passive:!1};n.current=Tr(window,[o],x)},[o]),c=rt(()=>{const g=t.current;g.type!=="IDLE"&&(g.type==="PENDING"&&clearTimeout(g.longPressTimerId),r(Ag),n.current(),a())},[a,r]),d=rt(()=>{const g=t.current;c(),g.type==="DRAGGING"&&g.actions.cancel({shouldBlockNextClick:!0}),g.type==="PENDING"&&g.actions.abort()},[c]),m=rt(function(){const x={capture:!0,passive:!1},v={cancel:d,completed:c,getPhase:i},_=Tr(window,I6(v),x),k=Tr(window,N6(v),x);n.current=function(){_(),k()}},[d,i,c]),h=rt(function(){const x=i();x.type!=="PENDING"&&Le();const v=x.actions.fluidLift(x.point);r({type:"DRAGGING",actions:v,hasMoved:!1})},[i,r]),p=rt(function(x,v){i().type!=="IDLE"&&Le();const _=setTimeout(h,j6);r({type:"PENDING",point:v,actions:x,longPressTimerId:_}),m()},[m,i,r,h]);pr(function(){return a(),function(){n.current();const v=i();v.type==="PENDING"&&(clearTimeout(v.longPressTimerId),r(Ag))}},[i,a,r]),pr(function(){return Tr(window,[{eventName:"touchmove",fn:()=>{},options:{capture:!1,passive:!1}}])},[])}const R6=["input","button","textarea","select","option","optgroup","video","audio"];function hN(e,t){if(t==null)return!1;if(R6.includes(t.tagName.toLowerCase()))return!0;const i=t.getAttribute("contenteditable");return i==="true"||i===""?!0:t===e?!1:hN(e,t.parentElement)}function A6(e,t){const n=t.target;return $m(n)?hN(e,n):!1}var M6=e=>$r(e.getBoundingClientRect()).center;function D6(e){return e instanceof uN(e).Element}const O6=(()=>{const e="matches";return typeof document>"u"?e:[e,"msMatchesSelector","webkitMatchesSelector"].find(i=>i in Element.prototype)||e})();function gN(e,t){return e==null?null:e[O6](t)?e:gN(e.parentElement,t)}function L6(e,t){return e.closest?e.closest(t):gN(e,t)}function z6(e){return`[${Cl.contextId}="${e}"]`}function P6(e,t){const n=t.target;if(!D6(n))return null;const i=z6(e),r=L6(n,i);return!r||!$m(r)?null:r}function B6(e,t){const n=P6(e,t);return n?n.getAttribute(Cl.draggableId):null}function $6(e,t){const n=`[${Yx.contextId}="${e}"]`,r=cN(document,n).find(o=>o.getAttribute(Yx.id)===t);return!r||!$m(r)?null:r}function H6(e){e.preventDefault()}function sf({expected:e,phase:t,isLockActive:n,shouldWarn:i}){return!(!n()||e!==t)}function yN({lockAPI:e,store:t,registry:n,draggableId:i}){if(e.isClaimed())return!1;const r=n.draggable.findById(i);return!(!r||!r.options.isEnabled||!sN(t.getState(),i))}function F6({lockAPI:e,contextId:t,store:n,registry:i,draggableId:r,forceSensorStop:o,sourceEvent:a}){if(!yN({lockAPI:e,store:n,registry:i,draggableId:r}))return null;const d=i.draggable.getById(r),m=$6(t,d.descriptor.id);if(!m||a&&!d.options.canDragInteractiveElements&&A6(m,a))return null;const h=e.claim(o||_o);let p="PRE_DRAG";function g(){return d.options.shouldRespectForcePress}function x(){return e.isActive(h)}function v(O,R){sf({expected:O,phase:p,isLockActive:x,shouldWarn:!0})&&n.dispatch(R())}const _=v.bind(null,"DRAGGING");function k(O){function R(){e.release(),p="COMPLETED"}p!=="PRE_DRAG"&&(R(),Le()),n.dispatch(LO(O.liftActionArgs)),p="DRAGGING";function D(I,L={shouldBlockNextClick:!1}){if(O.cleanup(),L.shouldBlockNextClick){const M=Tr(window,[{eventName:"click",fn:H6,options:{once:!0,passive:!1,capture:!0}}]);setTimeout(M)}R(),n.dispatch(ZE({reason:I}))}return{isActive:()=>sf({expected:"DRAGGING",phase:p,isLockActive:x,shouldWarn:!1}),shouldRespectForcePress:g,drop:I=>D("DROP",I),cancel:I=>D("CANCEL",I),...O.actions}}function w(O){const R=yu(I=>{_(()=>KE({client:I}))});return{...k({liftActionArgs:{id:r,clientSelection:O,movementMode:"FLUID"},cleanup:()=>R.cancel(),actions:{move:R}}),move:R}}function S(){const O={moveUp:()=>_(GO),moveRight:()=>_(WO),moveDown:()=>_(qO),moveLeft:()=>_(YO)};return k({liftActionArgs:{id:r,clientSelection:M6(m),movementMode:"SNAP"},cleanup:_o,actions:O})}function j(){sf({expected:"PRE_DRAG",phase:p,isLockActive:x,shouldWarn:!0})&&e.release()}return{isActive:()=>sf({expected:"PRE_DRAG",phase:p,isLockActive:x,shouldWarn:!1}),shouldRespectForcePress:g,fluidLift:w,snapLift:S,abort:j}}const V6=[_6,C6,T6];function U6({contextId:e,store:t,registry:n,customSensors:i,enableDefaultSensors:r}){const o=[...r?V6:[],...i||[]],a=C.useState(()=>a6())[0],c=rt(function(k,w){Su(k)&&!Su(w)&&a.tryAbandon()},[a]);pr(function(){let k=t.getState();return t.subscribe(()=>{const S=t.getState();c(k,S),k=S})},[a,t,c]),pr(()=>a.tryAbandon,[a.tryAbandon]);const d=rt(_=>yN({lockAPI:a,registry:n,store:t,draggableId:_}),[a,n,t]),m=rt((_,k,w)=>F6({lockAPI:a,registry:n,contextId:e,store:t,draggableId:_,forceSensorStop:k||null,sourceEvent:w&&w.sourceEvent?w.sourceEvent:null}),[e,a,n,t]),h=rt(_=>B6(e,_),[e]),p=rt(_=>{const k=n.draggable.findById(_);return k?k.options:null},[n.draggable]),g=rt(function(){a.isClaimed()&&(a.tryAbandon(),t.getState().phase!=="IDLE"&&t.dispatch(Jv()))},[a,t]),x=rt(()=>a.isClaimed(),[a]),v=rn(()=>({canGetLock:d,tryGetLock:m,findClosestDraggableId:h,findOptionsForDraggable:p,tryReleaseLock:g,isLockClaimed:x}),[d,m,h,p,g,x]);for(let _=0;_({onBeforeCapture:t=>{const n=()=>{e.onBeforeCapture&&e.onBeforeCapture(t)};Im.flushSync(n)},onBeforeDragStart:e.onBeforeDragStart,onDragStart:e.onDragStart,onDragEnd:e.onDragEnd,onDragUpdate:e.onDragUpdate}),q6=e=>({...ku,...e.autoScrollerOptions,durationDampening:{...ku.durationDampening,...e.autoScrollerOptions}});function Bc(e){return e.current||Le(),e.current}function W6(e){const{contextId:t,setCallbacks:n,sensors:i,nonce:r,dragHandleUsageInstructions:o}=e,a=C.useRef(null),c=dN(e),d=rt(()=>G6(c.current),[c]),m=rt(()=>q6(c.current),[c]),h=i6(t),p=o6({contextId:t,text:o}),g=KL(t,r),x=rt(M=>{Bc(a).dispatch(M)},[]),v=rn(()=>bS({publishWhileDragging:PO,updateDroppableScroll:$O,updateDroppableIsEnabled:HO,updateDroppableIsCombineEnabled:FO,collectionStarting:BO},x),[x]),_=e6(),k=rn(()=>NL(_,v),[_,v]),w=rn(()=>GL({scrollWindow:IL,scrollDroppable:k.scrollDroppable,getAutoScrollerOptions:m,...bS({move:KE},x)}),[k.scrollDroppable,x,m]),S=QL(t),j=rn(()=>wL({announce:h,autoScroller:w,dimensionMarshal:k,focusMarshal:S,getResponders:d,styleMarshal:g}),[h,w,k,S,d,g]);a.current=j;const N=rt(()=>{const M=Bc(a);M.getState().phase!=="IDLE"&&M.dispatch(Jv())},[]),O=rt(()=>{const M=Bc(a).getState();return M.phase==="DROP_ANIMATING"?!0:M.phase==="IDLE"?!1:M.isDragging},[]),R=rn(()=>({isDragging:O,tryAbort:N}),[O,N]);n(R);const D=rt(M=>sN(Bc(a).getState(),M),[]),I=rt(()=>ea(Bc(a).getState()),[]),L=rn(()=>({marshal:k,focus:S,contextId:t,canLift:D,isMovementAllowed:I,dragHandleUsageInstructionsId:p,registry:_}),[t,k,p,S,D,I,_]);return U6({contextId:t,store:j,registry:_,customSensors:i||null,enableDefaultSensors:e.enableDefaultSensors!==!1}),C.useEffect(()=>N,[N]),Rt.createElement(Hm.Provider,{value:L},Rt.createElement(xD,{context:o0,store:j},e.children))}function Y6(){return Rt.useId()}function X6(e){const t=Y6(),n=e.dragHandleUsageInstructions||Mf.dragHandleUsageInstructions;return Rt.createElement(CD,null,i=>Rt.createElement(W6,{nonce:e.nonce,contextId:t,setCallbacks:i,dragHandleUsageInstructions:n,enableDefaultSensors:e.enableDefaultSensors,sensors:e.sensors,onBeforeCapture:e.onBeforeCapture,onBeforeDragStart:e.onBeforeDragStart,onDragStart:e.onDragStart,onDragUpdate:e.onDragUpdate,onDragEnd:e.onDragEnd,autoScrollerOptions:e.autoScrollerOptions},e.children))}const XS={dragging:5e3,dropAnimating:4500},K6=(e,t)=>t?au.drop(t.duration):e?au.snap:au.fluid,Z6=(e,t)=>{if(e)return t?_u.opacity.drop:_u.opacity.combining},Q6=e=>e.forceShouldAnimate!=null?e.forceShouldAnimate:e.mode==="SNAP";function J6(e){const n=e.dimension.client,{offset:i,combineWith:r,dropping:o}=e,a=!!r,c=Q6(e),d=!!o,m=d?qx.drop(i,a):qx.moveTo(i);return{position:"fixed",top:n.marginBox.top,left:n.marginBox.left,boxSizing:"border-box",width:n.borderBox.width,height:n.borderBox.height,transition:K6(c,o),transform:m,opacity:Z6(a,d),zIndex:d?XS.dropAnimating:XS.dragging,pointerEvents:"none"}}function ez(e){return{transform:qx.moveTo(e.offset),transition:e.shouldAnimateDisplacement?void 0:"none"}}function tz(e){return e.type==="DRAGGING"?J6(e):ez(e)}function nz(e,t,n=ki){const i=window.getComputedStyle(t),r=t.getBoundingClientRect(),o=wE(r,i),a=Qf(o,n),c={client:o,tagName:t.tagName.toLowerCase(),display:i.display},d={x:o.marginBox.width,y:o.marginBox.height};return{descriptor:e,placeholder:c,displaceBy:d,client:o,page:a}}function iz(e){const t=a0("draggable"),{descriptor:n,registry:i,getDraggableRef:r,canDragInteractiveElements:o,shouldRespectForcePress:a,isEnabled:c}=e,d=rn(()=>({canDragInteractiveElements:o,shouldRespectForcePress:a,isEnabled:c}),[o,c,a]),m=rt(x=>{const v=r();return v||Le(),nz(n,v,x)},[n,r]),h=rn(()=>({uniqueId:t,descriptor:n,options:d,getDimension:m}),[n,m,d,t]),p=C.useRef(h),g=C.useRef(!0);pr(()=>(i.draggable.register(p.current),()=>i.draggable.unregister(p.current)),[i.draggable]),pr(()=>{if(g.current){g.current=!1;return}const x=p.current;p.current=h,i.draggable.update(h,x)},[h,i.draggable])}var c0=Rt.createContext(null);function rm(e){const t=C.useContext(e);return t||Le(),t}function rz(e){e.preventDefault()}const sz=e=>{const t=C.useRef(null),n=rt((R=null)=>{t.current=R},[]),i=rt(()=>t.current,[]),{contextId:r,dragHandleUsageInstructionsId:o,registry:a}=rm(Hm),{type:c,droppableId:d}=rm(c0),m=rn(()=>({id:e.draggableId,index:e.index,type:c,droppableId:d}),[e.draggableId,e.index,c,d]),{children:h,draggableId:p,isEnabled:g,shouldRespectForcePress:x,canDragInteractiveElements:v,isClone:_,mapped:k,dropAnimationFinished:w}=e;if(!_){const R=rn(()=>({descriptor:m,registry:a,getDraggableRef:i,canDragInteractiveElements:v,shouldRespectForcePress:x,isEnabled:g}),[m,a,i,v,x,g]);iz(R)}const S=rn(()=>g?{tabIndex:0,role:"button","aria-describedby":o,"data-rfd-drag-handle-draggable-id":p,"data-rfd-drag-handle-context-id":r,draggable:!1,onDragStart:rz}:null,[r,o,p,g]),j=rt(R=>{k.type==="DRAGGING"&&k.dropping&&R.propertyName==="transform"&&Im.flushSync(w)},[w,k]),N=rn(()=>{const R=tz(k),D=k.type==="DRAGGING"&&k.dropping?j:void 0;return{innerRef:n,draggableProps:{"data-rfd-draggable-context-id":r,"data-rfd-draggable-id":p,style:R,onTransitionEnd:D},dragHandleProps:S}},[r,S,p,k,j,n]),O=rn(()=>({draggableId:m.id,type:m.type,source:{index:m.index,droppableId:m.droppableId}}),[m.droppableId,m.id,m.index,m.type]);return Rt.createElement(Rt.Fragment,null,h(N,k.snapshot,O))};var xN=(e,t)=>e===t,vN=e=>{const{combine:t,destination:n}=e;return n?n.droppableId:t?t.droppableId:null};const oz=e=>e.combine?e.combine.draggableId:null,az=e=>e.at&&e.at.type==="COMBINE"?e.at.combine.draggableId:null;function lz(){const e=_i((r,o)=>({x:r,y:o})),t=_i((r,o,a=null,c=null,d=null)=>({isDragging:!0,isClone:o,isDropAnimating:!!d,dropAnimation:d,mode:r,draggingOver:a,combineWith:c,combineTargetFor:null})),n=_i((r,o,a,c,d=null,m=null,h=null)=>({mapped:{type:"DRAGGING",dropping:null,draggingOver:d,combineWith:m,mode:o,offset:r,dimension:a,forceShouldAnimate:h,snapshot:t(o,c,d,m,null)}}));return(r,o)=>{if(Su(r)){if(r.critical.draggable.id!==o.draggableId)return null;const a=r.current.client.offset,c=r.dimensions.draggables[o.draggableId],d=mr(r.impact),m=az(r.impact),h=r.forceShouldAnimate;return n(e(a.x,a.y),r.movementMode,c,o.isClone,d,m,h)}if(r.phase==="DROP_ANIMATING"){const a=r.completed;if(a.result.draggableId!==o.draggableId)return null;const c=o.isClone,d=r.dimensions.draggables[o.draggableId],m=a.result,h=m.mode,p=vN(m),g=oz(m),v={duration:r.dropDuration,curve:t0.drop,moveTo:r.newHomeClientOffset,opacity:g?_u.opacity.drop:null,scale:g?_u.scale.drop:null};return{mapped:{type:"DRAGGING",offset:r.newHomeClientOffset,dimension:d,dropping:v,draggingOver:p,combineWith:g,mode:h,forceShouldAnimate:null,snapshot:t(h,c,p,g,v)}}}return null}}function bN(e=null){return{isDragging:!1,isDropAnimating:!1,isClone:!1,dropAnimation:null,mode:null,draggingOver:null,combineTargetFor:e,combineWith:null}}const cz={mapped:{type:"SECONDARY",offset:ki,combineTargetFor:null,shouldAnimateDisplacement:!0,snapshot:bN(null)}};function uz(){const e=_i((a,c)=>({x:a,y:c})),t=_i(bN),n=_i((a,c=null,d)=>({mapped:{type:"SECONDARY",offset:a,combineTargetFor:c,shouldAnimateDisplacement:d,snapshot:t(c)}})),i=a=>a?n(ki,a,!0):null,r=(a,c,d,m)=>{const h=d.displaced.visible[a],p=!!(m.inVirtualList&&m.effected[a]),g=zm(d),x=g&&g.draggableId===a?c:null;if(!h){if(!p)return i(x);if(d.displaced.invisible[a])return null;const k=Fl(m.displacedBy.point),w=e(k.x,k.y);return n(w,x,!0)}if(p)return i(x);const v=d.displacedBy.point,_=e(v.x,v.y);return n(_,x,h.shouldAnimate)};return(a,c)=>{if(Su(a))return a.critical.draggable.id===c.draggableId?null:r(c.draggableId,a.critical.draggable.id,a.impact,a.afterCritical);if(a.phase==="DROP_ANIMATING"){const d=a.completed;return d.result.draggableId===c.draggableId?null:r(c.draggableId,d.result.draggableId,d.impact,d.afterCritical)}return null}}const dz=()=>{const e=lz(),t=uz();return(i,r)=>e(i,r)||t(i,r)||cz},fz={dropAnimationFinished:QE},mz=SE(dz,fz,null,{context:o0,areStatePropsEqual:xN})(sz);function _N(e){return rm(c0).isUsingCloneFor===e.draggableId&&!e.isClone?null:Rt.createElement(mz,e)}function pz(e){const t=typeof e.isDragDisabled=="boolean"?!e.isDragDisabled:!0,n=!!e.disableInteractiveElementBlocking,i=!!e.shouldRespectForcePress;return Rt.createElement(_N,Jf({},e,{isClone:!1,isEnabled:t,canDragInteractiveElements:n,shouldRespectForcePress:i}))}const kN=e=>t=>e===t,hz=kN("scroll"),gz=kN("auto"),KS=(e,t)=>t(e.overflowX)||t(e.overflowY),yz=e=>{const t=window.getComputedStyle(e),n={overflowX:t.overflowX,overflowY:t.overflowY};return KS(n,hz)||KS(n,gz)},xz=()=>!1,SN=e=>e==null?null:e===document.body?xz()?e:null:e===document.documentElement?null:yz(e)?e:SN(e.parentElement);var Xx=e=>({x:e.scrollLeft,y:e.scrollTop});const wN=e=>e?window.getComputedStyle(e).position==="fixed"?!0:wN(e.parentElement):!1;var vz=e=>{const t=SN(e),n=wN(e);return{closestScrollable:t,isFixedOnPage:n}},bz=({descriptor:e,isEnabled:t,isCombineEnabled:n,isFixedOnPage:i,direction:r,client:o,page:a,closest:c})=>{const d=(()=>{if(!c)return null;const{scrollSize:g,client:x}=c,v=nN({scrollHeight:g.scrollHeight,scrollWidth:g.scrollWidth,height:x.paddingBox.height,width:x.paddingBox.width});return{pageMarginBox:c.page.marginBox,frameClient:x,scrollSize:g,shouldClipSubject:c.shouldClipSubject,scroll:{initial:c.scroll,current:c.scroll,max:v,diff:{value:ki,displacement:ki}}}})(),m=r==="vertical"?Yv:OE,h=Sl({page:a,withPlaceholder:null,axis:m,frame:d});return{descriptor:e,isCombineEnabled:n,isFixedOnPage:i,axis:m,isEnabled:t,client:o,page:a,frame:d,subject:h}};const _z=(e,t)=>{const n=CE(e);if(!t||e!==t)return n;const i=n.paddingBox.top-t.scrollTop,r=n.paddingBox.left-t.scrollLeft,o=i+t.scrollHeight,a=r+t.scrollWidth,d=Uv({top:i,right:a,bottom:o,left:r},n.border);return Gv({borderBox:d,margin:n.margin,border:n.border,padding:n.padding})};var kz=({ref:e,descriptor:t,env:n,windowScroll:i,direction:r,isDropDisabled:o,isCombineEnabled:a,shouldClipSubject:c})=>{const d=n.closestScrollable,m=_z(e,d),h=Qf(m,i),p=(()=>{if(!d)return null;const x=CE(d),v={scrollHeight:d.scrollHeight,scrollWidth:d.scrollWidth};return{client:x,page:Qf(x,i),scroll:Xx(d),scrollSize:v,shouldClipSubject:c}})();return bz({descriptor:t,isEnabled:!o,isCombineEnabled:a,isFixedOnPage:n.isFixedOnPage,direction:r,client:m,page:h,closest:p})};const Sz={passive:!1},wz={passive:!0};var ZS=e=>e.shouldPublishImmediately?Sz:wz;const of=e=>e&&e.env.closestScrollable||null;function Cz(e){const t=C.useRef(null),n=rm(Hm),i=a0("droppable"),{registry:r,marshal:o}=n,a=dN(e),c=rn(()=>({id:e.droppableId,type:e.type,mode:e.mode}),[e.droppableId,e.mode,e.type]),d=C.useRef(c),m=rn(()=>_i((N,O)=>{t.current||Le();const R={x:N,y:O};o.updateDroppableScroll(c.id,R)}),[c.id,o]),h=rt(()=>{const N=t.current;return!N||!N.env.closestScrollable?ki:Xx(N.env.closestScrollable)},[]),p=rt(()=>{const N=h();m(N.x,N.y)},[h,m]),g=rn(()=>yu(p),[p]),x=rt(()=>{const N=t.current,O=of(N);if(N&&O||Le(),N.scrollOptions.shouldPublishImmediately){p();return}g()},[g,p]),v=rt((N,O)=>{t.current&&Le();const R=a.current,D=R.getDroppableRef();D||Le();const I=vz(D),L={ref:D,descriptor:c,env:I,scrollOptions:O};t.current=L;const M=kz({ref:D,descriptor:c,env:I,windowScroll:N,direction:R.direction,isDropDisabled:R.isDropDisabled,isCombineEnabled:R.isCombineEnabled,shouldClipSubject:!R.ignoreContainerClipping}),A=I.closestScrollable;return A&&(A.setAttribute(GS.contextId,n.contextId),A.addEventListener("scroll",x,ZS(L.scrollOptions))),M},[n.contextId,c,x,a]),_=rt(()=>{const N=t.current,O=of(N);return N&&O||Le(),Xx(O)},[]),k=rt(()=>{const N=t.current;N||Le();const O=of(N);t.current=null,O&&(g.cancel(),O.removeAttribute(GS.contextId),O.removeEventListener("scroll",x,ZS(N.scrollOptions)))},[x,g]),w=rt(N=>{const O=t.current;O||Le();const R=of(O);R||Le(),R.scrollTop+=N.y,R.scrollLeft+=N.x},[]),S=rn(()=>({getDimensionAndWatchScroll:v,getScrollWhileDragging:_,dragStopped:k,scroll:w}),[k,v,_,w]),j=rn(()=>({uniqueId:i,descriptor:c,callbacks:S}),[S,c,i]);pr(()=>(d.current=j.descriptor,r.droppable.register(j),()=>{t.current&&k(),r.droppable.unregister(j)}),[S,c,k,j,o,r.droppable]),pr(()=>{t.current&&o.updateDroppableIsEnabled(d.current.id,!e.isDropDisabled)},[e.isDropDisabled,o]),pr(()=>{t.current&&o.updateDroppableIsCombineEnabled(d.current.id,e.isCombineEnabled)},[e.isCombineEnabled,o])}function Mg(){}const QS={width:0,height:0,margin:AD},jz=({isAnimatingOpenOnMount:e,placeholder:t,animate:n})=>e||n==="close"?QS:{height:t.client.borderBox.height,width:t.client.borderBox.width,margin:t.client.margin},Ez=({isAnimatingOpenOnMount:e,placeholder:t,animate:n})=>{const i=jz({isAnimatingOpenOnMount:e,placeholder:t,animate:n});return{display:t.display,boxSizing:"border-box",width:i.width,height:i.height,marginTop:i.margin.top,marginRight:i.margin.right,marginBottom:i.margin.bottom,marginLeft:i.margin.left,flexShrink:"0",flexGrow:"0",pointerEvents:"none",transition:n!=="none"?au.placeholder:null}},Nz=e=>{const t=C.useRef(null),n=rt(()=>{t.current&&(clearTimeout(t.current),t.current=null)},[]),{animate:i,onTransitionEnd:r,onClose:o,contextId:a}=e,[c,d]=C.useState(e.animate==="open");C.useEffect(()=>c?i!=="open"?(n(),d(!1),Mg):t.current?Mg:(t.current=setTimeout(()=>{t.current=null,d(!1)}),n):Mg,[i,c,n]);const m=rt(p=>{p.propertyName==="height"&&(r(),i==="close"&&o())},[i,o,r]),h=Ez({isAnimatingOpenOnMount:c,animate:e.animate,placeholder:e.placeholder});return Rt.createElement(e.placeholder.tagName,{style:h,"data-rfd-placeholder-context-id":a,onTransitionEnd:m,ref:e.innerRef})};var Iz=Rt.memo(Nz);class Tz extends Rt.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 Rz=e=>{const t=C.useContext(Hm);t||Le();const{contextId:n,isMovementAllowed:i}=t,r=C.useRef(null),o=C.useRef(null),{children:a,droppableId:c,type:d,mode:m,direction:h,ignoreContainerClipping:p,isDropDisabled:g,isCombineEnabled:x,snapshot:v,useClone:_,updateViewportMaxScroll:k,getContainerForClone:w}=e,S=rt(()=>r.current,[]),j=rt((A=null)=>{r.current=A},[]);rt(()=>o.current,[]);const N=rt((A=null)=>{o.current=A},[]),O=rt(()=>{i()&&k({maxScroll:rN()})},[i,k]);Cz({droppableId:c,type:d,mode:m,direction:h,isDropDisabled:g,isCombineEnabled:x,ignoreContainerClipping:p,getDroppableRef:S});const R=rn(()=>Rt.createElement(Tz,{on:e.placeholder,shouldAnimate:e.shouldAnimatePlaceholder},({onClose:A,data:B,animate:W})=>Rt.createElement(Iz,{placeholder:B,onClose:A,innerRef:N,animate:W,contextId:n,onTransitionEnd:O})),[n,O,e.placeholder,e.shouldAnimatePlaceholder,N]),D=rn(()=>({innerRef:j,placeholder:R,droppableProps:{"data-rfd-droppable-id":c,"data-rfd-droppable-context-id":n}}),[n,c,R,j]),I=_?_.dragging.draggableId:null,L=rn(()=>({droppableId:c,type:d,isUsingCloneFor:I}),[c,I,d]);function M(){if(!_)return null;const{dragging:A,render:B}=_,W=Rt.createElement(_N,{draggableId:A.draggableId,index:A.source.index,isClone:!0,isEnabled:!0,shouldRespectForcePress:!1,canDragInteractiveElements:!0},(P,G)=>B(P,G,A));return v4.createPortal(W,w())}return Rt.createElement(c0.Provider,{value:L},a(D,v),M())};function Az(){return document.body||Le(),document.body}const JS={mode:"standard",type:"DEFAULT",direction:"vertical",isDropDisabled:!1,isCombineEnabled:!1,ignoreContainerClipping:!1,renderClone:null,getContainerForClone:Az},CN=e=>{let t={...e},n;for(n in JS)e[n]===void 0&&(t={...t,[n]:JS[n]});return t},Dg=(e,t)=>e===t.droppable.type,ew=(e,t)=>t.draggables[e.draggable.id],Mz=()=>{const e={placeholder:null,shouldAnimatePlaceholder:!0,snapshot:{isDraggingOver:!1,draggingOverWith:null,draggingFromThisWith:null,isUsingPlaceholder:!1},useClone:null},t={...e,shouldAnimatePlaceholder:!1},n=_i(o=>({draggableId:o.id,type:o.type,source:{index:o.index,droppableId:o.droppableId}})),i=_i((o,a,c,d,m,h)=>{const p=m.descriptor.id;if(m.descriptor.droppableId===o){const v=h?{render:h,dragging:n(m.descriptor)}:null,_={isDraggingOver:c,draggingOverWith:c?p:null,draggingFromThisWith:p,isUsingPlaceholder:!0};return{placeholder:m.placeholder,shouldAnimatePlaceholder:!1,snapshot:_,useClone:v}}if(!a)return t;if(!d)return e;const x={isDraggingOver:c,draggingOverWith:p,draggingFromThisWith:null,isUsingPlaceholder:!0};return{placeholder:m.placeholder,shouldAnimatePlaceholder:!0,snapshot:x,useClone:null}});return(o,a)=>{const c=CN(a),d=c.droppableId,m=c.type,h=!c.isDropDisabled,p=c.renderClone;if(Su(o)){const g=o.critical;if(!Dg(m,g))return t;const x=ew(g,o.dimensions),v=mr(o.impact)===d;return i(d,h,v,v,x,p)}if(o.phase==="DROP_ANIMATING"){const g=o.completed;if(!Dg(m,g.critical))return t;const x=ew(g.critical,o.dimensions);return i(d,h,vN(g.result)===d,mr(g.impact)===d,x,p)}if(o.phase==="IDLE"&&o.completed&&!o.shouldFlush){const g=o.completed;if(!Dg(m,g.critical))return t;const x=mr(g.impact)===d,v=!!(g.impact.at&&g.impact.at.type==="COMBINE"),_=g.critical.droppable.id===d;return x?v?e:t:_?e:t}return t}},Dz={updateViewportMaxScroll:UO},Oz=SE(Mz,Dz,(e,t,n)=>({...CN(n),...e,...t}),{context:o0,areStatePropsEqual:xN})(Rz),sm={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:"▽"}},om={idle:"Idle",reflecting:"Thinking...",tool_active:"Running tool"};function u0(e){const t=(e??"").trim();return t?t.replace(/[_-]+/g," ").replace(/\b\w/g,n=>n.toUpperCase()):""}function jl(e){const t=(e.workItemRoleName??"").trim();return t||u0(e.workItemRoleId)}function Lz(e){return(e.employeeAssignment?.name??"").trim()}function Og(e){const t=jl(e),n=Lz(e);return t&&n?`${t} · ${n}`:t||n}function ml(e){return typeof e=="string"?e.trim():""}function xo(e){if(!e)return"";const t=e;return ml(t.executionTurnId)||ml(t.runtimeTaskId)||ml(t.taskId)}function Vm(e){return ml(e?.workItemId)?ml(e?.executionTurnId)||ml(e?.runtimeTaskId):""}const zz={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 Pz({task:e,index:t,agents:n,officeMap:i,companyMode:r,isSelected:o,onClick:a,onStart:c}){const d=e.assigneeIds.map(R=>n.find(D=>D.agent_id===R)).filter(Boolean),m=e.priority?sm[e.priority]:null,h=i&&d.length>1&&new Set(d.map(R=>i[R.agent_id]).filter(Boolean)).size>1,p=e.agentStatus&&e.agentStatus!=="idle",g=e.dependencies?.length??0,x=e.phase,v=!p&&x&&x!=="ready"?zz[x]??null:null,_=e.employeeAssignment,k=jl(e),w=e.workItemGate,S=u0(e.managerRoleId),j=(e.blockedReason??"").trim(),N=(e.reworkFeedback??"").trim(),O=Vm(e);return u.jsx(pz,{draggableId:e.id,index:t,isDragDisabled:!!r,children:(R,D)=>u.jsxs("div",{ref:R.innerRef,...R.draggableProps,...R.dragHandleProps,className:`kanban-card${D.isDragging?" is-dragging":""}${p?" is-active":""}${o?" is-selected":""}`,"data-task-id":e.id,onMouseUp:I=>{I.button===0&&!D.isDragging&&a(e)},children:[u.jsxs("div",{className:"kanban-card-top",children:[u.jsx("span",{className:"kanban-card-id",children:e.displayId}),v&&u.jsxs("span",{className:"kanban-status-badge",style:{color:v.color},children:[u.jsx("span",{style:{display:"inline-block",width:6,height:6,borderRadius:"50%",background:v.color,marginRight:3}}),v.label]}),g>0&&u.jsxs("span",{className:"kanban-dep-badge",title:`${g} upstream dep(s)`,children:[g," dep"]}),h&&u.jsx("span",{className:"kanban-cross-badge",title:"Cross-office",children:"⇄"}),c&&u.jsx("button",{className:"kanban-start-btn",title:r?"Start Work Item":"Start task",onClick:I=>{I.stopPropagation(),c(e.id)},children:"▶"})]}),u.jsx("p",{className:"kanban-card-title",children:e.title}),(k||_?.name||w?.type||e.originChannel||e.workItemProjectionId)&&u.jsxs("div",{className:"kanban-card-meta-row",children:[k&&u.jsx("span",{className:"kanban-meta-badge kanban-role-badge",title:`Role: ${k}`,children:k}),_?.name&&u.jsxs("span",{className:"kanban-meta-badge kanban-employee-badge",title:`Employee: ${_.name}${_.category?` (${_.category})`:""}`,children:[u.jsx("span",{className:"kanban-meta-icon",children:"👤"}),_.name]}),e.workItemProjectionId&&u.jsx("span",{className:"kanban-meta-badge kanban-projection-badge",title:`Projection: ${e.workItemProjectionId}`,children:e.workItemProjectionId}),w?.type&&u.jsxs("span",{className:`kanban-meta-badge kanban-gate-badge kanban-gate-${w.type}`,title:`Gate: ${w.type}${w.reviewerRole?` by ${w.reviewerRole}`:""}`,children:[w.type==="review"?"✉":w.type==="approval"?"✓":"✋",w.type]}),e.originChannel&&u.jsxs("span",{className:"kanban-meta-badge kanban-origin-badge",title:`Origin: ${e.originChannel}`,children:["#",e.originChannel]}),S&&u.jsx("span",{className:"kanban-meta-badge",title:`Manager: ${S}`,children:S})]}),(j||N||O)&&u.jsxs("div",{className:"kanban-card-tags",children:[j&&u.jsx("span",{className:"kanban-tag",children:j}),N&&u.jsx("span",{className:"kanban-tag",children:N}),O&&u.jsx("span",{className:"kanban-tag",title:`Execution Turn: ${O}`,children:"Runtime"})]}),p&&u.jsxs("div",{className:`kanban-card-runtime status-${e.agentStatus}`,children:[u.jsx("span",{className:"kanban-runtime-dot"}),u.jsx("span",{className:"kanban-runtime-label",children:e.agentStatus==="tool_active"&&e.currentTool?e.currentTool:om[e.agentStatus]??e.agentStatus})]}),e.tags.length>0&&u.jsx("div",{className:"kanban-card-tags",children:e.tags.slice(0,3).map(I=>u.jsx("span",{className:"kanban-tag",children:I},I))}),(m||d.length>0)&&u.jsxs("div",{className:"kanban-card-footer",children:[u.jsx("div",{className:"kanban-card-footer-left",children:m&&u.jsx("span",{className:"kanban-priority",style:{color:m.color},title:m.label,children:m.symbol})}),u.jsxs("div",{className:"kanban-assignee-group",children:[d.slice(0,3).map(I=>u.jsx("span",{className:"kanban-assignee-badge",title:I.name,children:I.name.charAt(0).toUpperCase()},I.agent_id)),d.length>3&&u.jsxs("span",{className:"kanban-assignee-badge kanban-assignee-more",children:["+",d.length-3]})]})]})]})})}function Bz({column:e,tasks:t,agents:n,officeMap:i,companyMode:r,selectedTaskId:o,onCardClick:a,onStartTask:c,onQuickCreate:d}){const[m,h]=C.useState(!1),[p,g]=C.useState(""),x=C.useRef(!1),v=C.useCallback(()=>{if(x.current)return;x.current=!0;const _=p.trim();_&&d&&d(_),g(""),h(!1)},[p,d]);return u.jsxs("div",{className:"kanban-column",children:[u.jsxs("div",{className:"kanban-column-header",children:[u.jsx("span",{className:"kanban-col-dot",style:{background:e.color}}),u.jsx("span",{className:"kanban-col-label",children:e.name}),u.jsx("span",{className:"kanban-col-count",children:t.length}),d&&u.jsx("button",{className:"kanban-col-add",title:"Add task",onClick:()=>{x.current=!1,h(!0)},children:"+"})]}),m&&u.jsx("div",{className:"kanban-quick-add",children:u.jsx("input",{className:"kanban-quick-input",value:p,onChange:_=>g(_.target.value),onKeyDown:_=>{_.key==="Enter"&&(_.preventDefault(),v()),_.key==="Escape"&&(x.current=!0,g(""),h(!1))},onBlur:v,placeholder:"Task title...",autoFocus:!0})}),u.jsx(Oz,{droppableId:e.id,isDropDisabled:!!r,children:_=>u.jsxs("div",{ref:_.innerRef,..._.droppableProps,className:"kanban-col-body",children:[t.length===0&&!m&&u.jsx("div",{className:"kanban-empty",children:u.jsx("span",{className:"kanban-empty-icon",children:"·"})}),t.map((k,w)=>u.jsx(Pz,{task:k,index:w,agents:n,officeMap:i,companyMode:r,isSelected:k.id===o,onClick:a,onStart:c},k.id)),_.placeholder]})})]})}function $z({columns:e,tasksByColumn:t,agents:n,officeMap:i,store:r,companyMode:o,selectedTaskId:a,onCardClick:c,onStartTask:d,onQuickCreate:m,onMoveTask:h}){const p=g=>{if(o||!g.destination)return;const x=g.source.droppableId,v=g.destination.droppableId;if(x!==v)return;const _=g.destination.index,k=g.draggableId,w=[...t[v]??[]].filter(j=>j.id!==k),S=(t[v]??[]).find(j=>j.id===k);S&&w.splice(_,0,S),w.forEach((j,N)=>{r.moveTask(j.id,v,N)})};return u.jsx(X6,{onDragEnd:p,children:u.jsx("div",{className:"kanban-board",children:e.map(g=>u.jsx(Bz,{column:g,tasks:t[g.id]??[],agents:n,officeMap:i,companyMode:o,selectedTaskId:a,onCardClick:c,onStartTask:!o&&g.name==="Todo"?d:void 0,onQuickCreate:!o&&g.name==="Todo"?m:void 0},g.id))})})}function Hz({agents:e,tasks:t}){const n=C.useMemo(()=>{const r=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"),c=o.current_task_id?r.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??c?.displayId}})},[e,t]);if(e.length===0)return null;const i=n.filter(r=>r.status!=="idle").length;return u.jsxs("div",{className:"agent-status-bar",children:[u.jsx("span",{className:"agent-status-summary",children:i>0?`${i}/${e.length} active`:`${e.length} agent${e.length!==1?"s":""}`}),u.jsx("div",{className:"agent-status-chips",children:n.map(({agent:r,status:o,currentTool:a,taskDisplayId:c})=>u.jsxs("div",{className:`agent-status-chip status-${o}`,title:`${r.name}: ${o==="tool_active"&&a?a:om[o]}${c?` (${c})`:""}`,children:[u.jsx("span",{className:"agent-status-avatar",children:r.name.charAt(0).toUpperCase()}),u.jsx("span",{className:"agent-status-name",children:r.name}),o!=="idle"&&u.jsxs(u.Fragment,{children:[u.jsx("span",{className:"kanban-runtime-dot"}),u.jsx("span",{className:"agent-status-detail",children:o==="tool_active"&&a?a:om[o]})]}),c&&u.jsx("span",{className:"agent-status-task",children:c})]},r.agent_id))})]})}function Fz({boards:e,activeBoardId:t,onSelect:n}){return u.jsx("div",{className:"board-selector",children:u.jsx("div",{className:"board-tabs",children:e.map(i=>u.jsxs("button",{className:`board-tab${i.id===t?" active":""}`,style:{"--board-color":i.color},onClick:()=>n(i.id),children:[u.jsx("span",{className:"board-tab-dot",style:{background:i.color}}),i.name]},i.id))})})}function Ri(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function As(e){return Array.isArray(e)?e.filter(Ri):[]}function El(e){return Array.isArray(e)?e.map(t=>String(t??"").trim()).filter(Boolean):[]}function Vz(e){return Ri(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 Uz(e){return{cell_id:String(e.cell_id??e.team_id??e.id??"").trim(),team_instance_id:typeof e.team_instance_id=="string"?e.team_instance_id:void 0,team_id:typeof e.team_id=="string"?e.team_id:void 0,manager_role_id:String(e.manager_role_id??"").trim(),member_role_ids:El(e.member_role_ids),seat_ids:El(e.seat_ids),parent_team_id:typeof e.parent_team_id=="string"?e.parent_team_id:void 0,status:String(e.status??"idle"),is_final_decider_cell:typeof e.is_final_decider_cell=="boolean"?e.is_final_decider_cell:void 0}}function Gz(e){return{role_session_id:String(e.role_session_id??e.id??"").trim(),role_id:String(e.role_id??"").trim(),employee_id:String(e.employee_id??"").trim(),team_id:typeof e.team_id=="string"?e.team_id:void 0,team_instance_id:typeof e.team_instance_id=="string"?e.team_instance_id:void 0,seat_id:typeof e.seat_id=="string"?e.seat_id:void 0,focused_work_item_id:typeof e.focused_work_item_id=="string"?e.focused_work_item_id:void 0,current_work_item_id:typeof e.current_work_item_id=="string"?e.current_work_item_id:void 0,background_work_item_ids:El(e.background_work_item_ids),manager_role_ids:El(e.manager_role_ids),manager_seat_id:typeof e.manager_seat_id=="string"?e.manager_seat_id:void 0,resident_status:typeof e.resident_status=="string"?e.resident_status:void 0,latest_notification:Ri(e.latest_notification)?e.latest_notification:void 0,manager_digest:Ri(e.manager_digest)?e.manager_digest:void 0,status:String(e.status??"cold")}}function qz(e){const t=Ri(e.metadata)?e.metadata:void 0,n=Ri(e.adaptive)?e.adaptive:t&&Ri(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 Wz(e){if(Ri(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:Ri(e.recovery_pointer)?e.recovery_pointer:void 0}}function Yz(e){if(Ri(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:As(e.architecture_decisions),completed_work_items:As(e.completed_work_items),open_issues:El(e.open_issues),verification_summary:typeof e.verification_summary=="string"?e.verification_summary:void 0,artifact_index:As(e.artifact_index),handoff_summaries:As(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 Xz(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:Ri(e.current_work_item)?e.current_work_item:void 0,latest_notification:Ri(e.latest_notification)?e.latest_notification:void 0,manager_digest:Ri(e.manager_digest)?e.manager_digest:void 0}}function Kz(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:Ri(e.metadata)?e.metadata:void 0,created_at:typeof e.created_at=="string"?e.created_at:void 0}}function jN(e){const t=Ri(e)?e:{},n=As(t.runtime_teams).map(Uz),i=As(t.runtime_seats).map(Gz),r=As(t.work_items).map(qz);return{roles:Array.isArray(t.roles)?t.roles:[],employees:Array.isArray(t.employees)?t.employees:[],company_profile:typeof t.company_profile=="string"?t.company_profile:"",organization_id:typeof t.organization_id=="string"?t.organization_id:void 0,organization_name:typeof t.organization_name=="string"?t.organization_name:void 0,organization_config_file:typeof t.organization_config_file=="string"?t.organization_config_file:void 0,final_decider_role_id:typeof t.final_decider_role_id=="string"?t.final_decider_role_id:null,top_level_role_ids:El(t.top_level_role_ids),runtime_teams:n,runtime_seats:i,work_items:r,frontier:Vz(t.frontier),project_run:Wz(t.project_run),project_dossier:Yz(t.project_dossier),seat_digests:As(t.seat_digests).map(Xz),revision_links:As(t.revision_links).map(Kz),project_recovery:Ri(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:Ri(t.runtime_policy)?t.runtime_policy:void 0}}function Um(e){const t=jN(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 Zz({state:e,message:t,onRefresh:n,onReadMessage:i,pollIntervalMs:r=3e4,embedded:o=!1}){const[a,c]=C.useState(null),d=C.useRef(n);d.current=n,C.useEffect(()=>{if(!r)return;d.current();const g=window.setInterval(()=>d.current(),r);return()=>window.clearInterval(g)},[r]);const m=C.useMemo(()=>e?.roles?e.roles.reduce((g,x)=>g+x.unread_count,0):0,[e?.roles]),h=g=>{c(g),i(g)},p=o?{fontSize:13,color:"var(--text)"}:{border:"1px solid var(--border, #333)",borderRadius:6,background:"var(--bg-primary, #1e1e1e)",fontSize:13};return u.jsxs("div",{className:"comms-panel",style:p,children:[u.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"8px 12px",borderBottom:"1px solid var(--border, #333)"},children:[u.jsx("span",{style:{fontWeight:600,fontSize:13,flex:1},children:"Agent Communications"}),m>0&&u.jsxs(wu,{color:"var(--accent, #3498db)",children:[m," unread"]}),u.jsx("button",{onClick:n,style:{background:"var(--surface, #2a2a2a)",border:"1px solid var(--border, #444)",color:"var(--text-secondary, #aaa)",fontSize:11,padding:"3px 10px",cursor:"pointer",borderRadius:4},children:"Refresh"})]}),e?e.available?e.empty?u.jsx(Df,{children:"No communications yet. They will appear once agents start collaborating."}):u.jsx(Qz,{state:e,selectedPath:a,onSelectMessage:h}):u.jsxs(Df,{children:["Not available",e.reason?`: ${e.reason}`:""]}):u.jsx(Df,{children:"Loading communications..."}),t&&u.jsx(t8,{message:t,onClose:()=>c(null)})]})}function Qz({state:e,selectedPath:t,onSelectMessage:n}){const i=(e.roles?.length??0)>0,r=(e.meetings?.length??0)>0,o=(e.recent_failures?.length??0)>0;return u.jsxs("div",{style:{padding:"4px 0"},children:[o&&u.jsx(Lg,{title:"Failures",children:(e.recent_failures||[]).map((a,c)=>u.jsxs("div",{style:{padding:"6px 12px",marginBottom:4,background:"color-mix(in srgb, var(--red, #e74c3c) 6%, transparent)",borderLeft:"3px solid var(--red, #e74c3c)"},children:[u.jsxs("div",{style:{fontWeight:600,fontSize:12},children:[a.operation," · ",a.from_role," → ",a.to_role]}),u.jsx("div",{style:{fontSize:11,color:"var(--text-secondary, #999)",marginTop:2},children:a.reason})]},`${a.recorded_at||"f"}-${c}`))}),i&&u.jsx(Lg,{title:`Inboxes (${e.roles.length})`,children:e.roles.map(a=>u.jsx(Jz,{role:a,selectedPath:t,onSelectMessage:n},a.role_id))}),r&&u.jsx(Lg,{title:"Meetings",children:(e.meetings||[]).map(a=>u.jsxs("div",{style:{padding:"6px 12px",marginBottom:4,borderLeft:`3px solid ${a.status==="open"?"var(--accent, #3498db)":"var(--text-dim, #555)"}`},children:[u.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[u.jsx(wu,{color:a.status==="open"?"var(--accent, #3498db)":"var(--text-dim, #555)",children:a.status}),u.jsx("strong",{style:{fontSize:12,flex:1},children:a.topic}),u.jsxs("span",{style:{fontSize:11,color:"var(--text-dim, #888)"},children:[a.entry_count," entries"]})]}),u.jsxs("div",{style:{fontSize:11,color:"var(--text-secondary, #999)",marginTop:3},children:["by ",a.organizer," · ",a.participants.join(", ")]}),a.decision&&u.jsxs("div",{style:{fontSize:11,marginTop:3,color:"var(--green, #27ae60)"},children:["Decision: ",a.decision]})]},a.meeting_id))}),!i&&!r&&!o&&u.jsx(Df,{children:"No communication activity yet."})]})}function Jz({role:e,selectedPath:t,onSelectMessage:n}){const[i,r]=C.useState(!0),o=e.unread_count>0||(e.recent_seen?.length??0)>0||(e.recent_outbox?.length??0)>0,[a,c]=C.useState(e.unread_count>0?"unread":"history"),d=C.useMemo(()=>{switch(a){case"unread":return e.recent_unread||[];case"history":return e.recent_seen||[];case"sent":return e.recent_outbox||[];default:return[]}},[a,e.recent_unread,e.recent_seen,e.recent_outbox]),m=e.role_id.replace(/_/g," ").replace(/\b\w/g,h=>h.toUpperCase());return u.jsxs("div",{style:{marginBottom:2},children:[u.jsxs("div",{onClick:()=>r(h=>!h),style:{display:"flex",alignItems:"center",gap:8,padding:"6px 12px",cursor:"pointer",userSelect:"none",background:i?"var(--surface-hover, rgba(255,255,255,0.03))":"transparent",borderRadius:4},children:[u.jsx("span",{style:{fontSize:10,width:10},children:i?"▼":"▶"}),u.jsx("span",{style:{flex:1,fontWeight:600,fontSize:12},children:m}),e.has_blocking&&u.jsx(wu,{color:"var(--red, #e74c3c)",children:"BLOCKING"}),e.unread_count>0&&u.jsxs(wu,{color:"var(--accent, #3498db)",children:[e.unread_count," new"]}),u.jsxs("span",{style:{fontSize:11,color:"var(--text-dim, #666)"},children:[e.seen_count," read · ",e.outbox_count," sent"]})]}),i&&o&&u.jsxs("div",{style:{paddingLeft:12},children:[u.jsxs("div",{style:{display:"flex",gap:2,padding:"4px 0",borderBottom:"1px solid var(--border, #333)",marginBottom:4},children:[u.jsxs(zg,{active:a==="unread",onClick:()=>c("unread"),children:["Unread (",e.unread_count,")"]}),u.jsxs(zg,{active:a==="history",onClick:()=>c("history"),children:["Read (",e.recent_seen?.length??0,")"]}),u.jsxs(zg,{active:a==="sent",onClick:()=>c("sent"),children:["Sent (",e.recent_outbox?.length??0,")"]})]}),d.length===0?u.jsx("div",{style:{padding:"8px 0",fontSize:11,color:"var(--text-dim, #666)"},children:"No messages."}):u.jsx("div",{style:{maxHeight:280,overflow:"auto"},children:d.map(h=>u.jsx(e8,{message:h,selected:h.path===t,onClick:()=>n(h.path)},h.message_id))})]})]})}function e8({message:e,selected:t,onClick:n}){const r=e.bucket==="sent"?`To: ${e.to||"?"}`:`From: ${e.from}`;return u.jsx("div",{onClick:n,style:{padding:"5px 8px",marginBottom:2,background:t?"var(--accent-soft, #2c4a6b)":"transparent",cursor:"pointer",borderRadius:4,borderLeft:e.blocking?"3px solid var(--red, #e74c3c)":"3px solid transparent",transition:"background 0.1s"},children:u.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[u.jsxs("span",{style:{fontSize:11,color:"var(--text-secondary, #aaa)",minWidth:0,flex:1},children:[u.jsx("strong",{children:r})," ",u.jsx("span",{style:{color:"var(--text, #ddd)"},children:e.subject})]}),e.blocking&&u.jsx("span",{style:{fontSize:9,color:"var(--red, #e74c3c)",fontWeight:700},children:"BLK"}),u.jsx("span",{style:{fontSize:10,color:"var(--text-dim, #666)",flexShrink:0},children:e.sent_at?.slice(11,19)||""})]})})}function t8({message:e,onClose:t}){return u.jsxs("div",{style:{margin:"8px 12px 12px",padding:12,border:"1px solid var(--border, #444)",borderRadius:6,background:"var(--bg-secondary, #262626)",maxHeight:400,overflow:"auto"},children:[u.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:8},children:[u.jsx("strong",{style:{flex:1,fontSize:13},children:e.header.subject||"(no subject)"}),u.jsx("button",{onClick:t,style:{background:"var(--surface, #333)",border:"1px solid var(--border, #444)",color:"var(--text-secondary, #aaa)",fontSize:11,padding:"2px 10px",cursor:"pointer",borderRadius:4},children:"Close"})]}),u.jsxs("div",{style:{fontSize:11,color:"var(--text-secondary, #999)",marginBottom:8,display:"flex",gap:8,flexWrap:"wrap"},children:[u.jsxs("span",{children:["From: ",u.jsx("strong",{children:e.header.from||"?"})]}),u.jsxs("span",{children:["To: ",u.jsx("strong",{children:e.header.to||"?"})]}),u.jsx("span",{children:e.header.sent_at||""}),e.header.blocking&&u.jsx(wu,{color:"var(--red, #e74c3c)",children:"BLOCKING"})]}),u.jsx("pre",{style:{margin:0,fontSize:12,whiteSpace:"pre-wrap",wordBreak:"break-word",color:"var(--text, #ddd)",lineHeight:1.5},children:e.body})]})}function Lg({title:e,children:t}){return u.jsxs("div",{style:{marginBottom:4},children:[u.jsx("div",{style:{fontSize:10,textTransform:"uppercase",letterSpacing:.6,fontWeight:700,color:"var(--text-dim, #777)",padding:"8px 12px 4px"},children:e}),t]})}function wu({color:e,children:t}){return u.jsx("span",{style:{background:e,color:"white",borderRadius:10,padding:"1px 7px",fontSize:10,fontWeight:600,whiteSpace:"nowrap"},children:t})}function zg({active:e,onClick:t,children:n}){return u.jsx("button",{onClick:t,style:{background:e?"var(--accent-soft, #2c4a6b)":"transparent",border:"none",color:e?"var(--text, #ddd)":"var(--text-secondary, #999)",fontSize:11,padding:"3px 10px",cursor:"pointer",borderRadius:4,fontWeight:e?600:400},children:n})}function Df({children:e}){return u.jsx("div",{style:{padding:"20px 16px",fontSize:12,color:"var(--text-secondary, #888)",textAlign:"center"},children:e})}function Qa(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}function Ja(e){return Array.isArray(e)?e.filter(t=>t&&typeof t=="object"&&!Array.isArray(t)):[]}function Nr(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,i=>i.toUpperCase()):t}function tw(e){return Nr(e,"idle").toLowerCase().replace(/[\s_]+/g,"-")}function n8({orgInfoData:e,commsState:t,onStopRun:n,embedded:i=!1}){const r=C.useMemo(()=>Um(e??null),[e]),o=r.projectRun,a=r.seatDigests,c=a.reduce((_,k)=>{const w=Qa(k.manager_digest);return _+Ja(w.pending_decisions).length},0),d=a.reduce((_,k)=>_+Ja(Qa(k.manager_digest).actionable_chat).length,0),m=a.reduce((_,k)=>_+Ja(Qa(k.manager_digest).protocol_backlog).length,0),h=a.reduce((_,k)=>_+Ja(Qa(k.manager_digest).notification_backlog).length,0),p=d+m+h,g=[{label:"Actionable",value:d},{label:"Protocol",value:m},{label:"Notifications",value:h},{label:"Meetings",value:t?.meetings?.length??0},{label:"Failures",value:t?.recent_failures?.length??0}],x=C.useMemo(()=>{const _=new Map;for(const S of a){const j=String(S.seat_id??"").trim();j&&_.set(j,Qa(S.manager_digest))}const k=r.runtimeTeams.map(S=>{const j=[String(S.cell_id??"").trim(),String(S.team_id??"").trim(),String(S.team_instance_id??"").trim()].filter(Boolean),N=r.runtimeSeats.filter(D=>j.includes(String(D.team_id??"").trim())||j.includes(String(D.team_instance_id??"").trim())),O=N.reduce((D,I)=>{const L=_.get(String(I.seat_id??"").trim())??{};return D+Ja(L.pending_decisions).length},0),R=N.map(D=>Nr(D.latest_notification?.subject??D.latest_notification?.summary,"")).find(Boolean);return{key:String(S.cell_id??S.team_id??S.team_instance_id??S.manager_role_id??"team"),label:$c(S.team_id??S.cell_id,"Team"),managerLabel:$c(S.manager_role_id,"Unassigned manager"),status:Nr(S.status,"idle"),seatCount:N.length||S.member_role_ids.length,pendingApprovals:O,latestAlert:R,seats:N.map(D=>({key:String(D.seat_id??D.role_session_id??D.role_id),roleLabel:$c(D.role_id,"Seat"),seatLabel:Nr(D.seat_id??D.role_session_id,"Seat"),status:Nr(D.resident_status??D.status,"idle")}))}}),w=new Set(k.flatMap(S=>S.seats.map(j=>j.key)));for(const S of r.runtimeSeats){const j=String(S.seat_id??S.role_session_id??S.role_id).trim();if(!j||w.has(j))continue;const N=String(S.team_id??S.team_instance_id??"unassigned").trim()||"unassigned";let O=k.find(D=>D.key===N);O||(O={key:N,label:$c(N,"Unassigned Team"),managerLabel:"Unassigned manager",status:Nr(S.status,"idle"),seatCount:0,pendingApprovals:0,seats:[]},k.push(O));const R=_.get(String(S.seat_id??"").trim())??{};O.pendingApprovals+=Ja(R.pending_decisions).length,O.latestAlert||(O.latestAlert=Nr(S.latest_notification?.subject??S.latest_notification?.summary,"")),O.seats.push({key:j,roleLabel:$c(S.role_id,"Seat"),seatLabel:Nr(S.seat_id??S.role_session_id,"Seat"),status:Nr(S.resident_status??S.status,"idle")}),O.seatCount=O.seats.length}return k.sort((S,j)=>S.label.localeCompare(j.label))},[r.runtimeTeams,r.runtimeSeats,a]),v=x.map(_=>_.latestAlert).find(Boolean)||"No current alerts";return!o?.run_id&&x.length===0?null:u.jsxs("section",{className:`project-cockpit${i?" embedded":""}`,"aria-label":"Team",children:[u.jsxs("div",{className:"project-cockpit-overview",children:[u.jsxs("div",{className:"project-cockpit-title",children:[u.jsx("span",{className:"project-cockpit-label",children:"Team"}),u.jsx("strong",{children:Nr(o?.run_id,"Runtime Team Status")}),n&&u.jsx("button",{className:"project-cockpit-stop-btn",onClick:n,title:"Stop this run",children:"Stop"})]}),u.jsxs("div",{className:"project-cockpit-metrics",children:[u.jsx("span",{children:Nr(o?.lifecycle_status,"active")}),u.jsxs("span",{children:["Teams ",x.length]}),u.jsxs("span",{children:["Seats ",r.runtimeSeats.length]}),u.jsxs("span",{children:["Approvals ",c]}),u.jsxs("span",{children:["Unread ",p]}),u.jsxs("span",{children:["Run state ",Nr(Qa(o?.recovery_pointer).status,"clean")]})]})]}),u.jsxs("div",{className:"project-cockpit-grid project-cockpit-grid--team",children:[u.jsxs("section",{className:"project-cockpit-panel",children:[u.jsxs("header",{children:[u.jsx("h3",{children:"Communication"}),u.jsx("span",{children:g.length})]}),u.jsxs("div",{className:"project-cockpit-summary",children:[g.map(_=>u.jsxs("span",{children:[_.label," ",_.value]},_.label)),u.jsx("div",{className:"project-cockpit-inline-text",children:v})]})]}),u.jsxs("section",{className:"project-cockpit-panel project-cockpit-panel--wide",children:[u.jsxs("header",{children:[u.jsx("h3",{children:"Teams"}),u.jsx("span",{children:x.length})]}),u.jsx("div",{className:"project-cockpit-team-grid",children:x.map(_=>u.jsxs("article",{className:"project-cockpit-team-card",children:[u.jsxs("div",{className:"project-cockpit-team-head",children:[u.jsxs("div",{className:"project-cockpit-team-title",children:[u.jsx("strong",{children:_.label}),u.jsx("span",{children:_.managerLabel})]}),u.jsx("span",{className:`project-cockpit-team-status status-${tw(_.status)}`,children:_.status})]}),u.jsxs("div",{className:"project-cockpit-team-meta",children:[u.jsxs("span",{children:["Seats ",_.seatCount]}),u.jsxs("span",{children:["Approvals ",_.pendingApprovals]}),_.latestAlert&&u.jsx("span",{children:_.latestAlert})]}),u.jsx("div",{className:"project-cockpit-seat-list",children:_.seats.length>0?_.seats.map(k=>u.jsxs("div",{className:"project-cockpit-seat-row",children:[u.jsx("span",{className:"project-cockpit-seat-role",children:k.roleLabel}),u.jsx("span",{className:"project-cockpit-seat-id",children:k.seatLabel}),u.jsx("span",{className:`project-cockpit-seat-status status-${tw(k.status)}`,children:k.status})]},k.key)):u.jsx("div",{className:"project-cockpit-inline-text",children:"No seats assigned yet"})})]},_.key))})]})]})]})}function i8(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 nw={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"}},r8=new Set(["awaiting_human","awaiting_manager_review","awaiting_review","awaiting_peer"]),iw={native:"Native",codex:"Codex",claude_code:"Claude Code",cursor:"Cursor",opencode:"OpenCode"};function s8({session:e,agents:t,onTitleChange:n,onViewOnBoard:i,onStop:r,onComplete:o,onResume:a}){const[c,d]=C.useState(!1),[m,h]=C.useState(e.title),p=C.useRef(null);C.useEffect(()=>{c||h(e.title)},[e.title,c]);const g=C.useCallback(()=>{const U=m.trim();U&&U!==e.title?n(e.taskId,U):h(e.title),d(!1)},[m,e.title,e.taskId,n]),x=C.useCallback(()=>{h(e.title),d(!0),setTimeout(()=>p.current?.select(),0)},[e.title]),v=e.assigneeIds.map(U=>t.find(Z=>Z.agent_id===U)).filter(Boolean),_=String(e.execMode??"").trim().toLowerCase(),k=_==="company"||_==="org"||_==="custom"||!!e.isCompanyRuntime||!!e.workItemProjectionId||!!e.workItemRoleId||!!e.workItemRoleName,w=v.length>0&&!k,S=e.runtimeControlState??(e.status==="running"?"running":"idle"),j=S==="suspending",N=S==="resuming",O=S==="suspended",R=e.status==="running"&&!j&&!O&&!N,D=r8.has(e.status),I=(e.canStop??e.status==="running")&&!j&&!O&&!N,L=(e.canResume??(O||!D&&!R&&e.status!=="done"&&e.status!=="pending"))&&!j&&!N,M=nw[e.status]??nw.pending,A=j?"Stopping":O?"Suspended":N?"Resuming":M.label,B=jl(e),W=Dm(e),P=ss(e),G=e.displayTool||e.currentTool,[$,q]=C.useState(G||void 0);C.useEffect(()=>{if(!R){q(void 0);return}G&&q(G)},[R,G]);const Y=typeof e.pendingPermissionCount=="number"&&e.pendingPermissionCount>0,Q=Y,V=j?"var(--yellow)":O?"var(--text-secondary)":W==="tool_active"?"var(--green)":W==="reflecting"?"var(--yellow)":M.color;return u.jsxs("div",{className:"task-header-shell",children:[u.jsxs("div",{className:"task-header-bar",children:[u.jsxs("div",{className:"task-header-left",children:[c?u.jsx("input",{ref:p,className:"task-title-input",value:m,onChange:U=>h(U.target.value),onBlur:g,onKeyDown:U=>{U.key==="Enter"&&g(),U.key==="Escape"&&(h(e.title),d(!1))}}):u.jsx("span",{className:"task-title",onClick:x,title:"Click to edit",children:e.title}),u.jsxs("span",{className:"task-status-pill","data-status":e.status,"data-working":P?"true":"false",children:[u.jsx("span",{className:"task-status-dot",style:{background:V}}),A]}),R&&$&&u.jsxs("span",{className:"task-tool-pill",children:[u.jsx(Tm,{}),u.jsx("code",{children:$}),e.currentTool&&typeof e.toolElapsedMs=="number"&&e.toolElapsedMs>0&&u.jsxs("span",{children:[e.toolElapsedMs,"ms"]})]}),e.lastToolSummary&&u.jsx("span",{className:"task-projection-pill",title:e.lastToolSummary,children:e.lastToolSummary.slice(0,48)}),B&&u.jsx("span",{className:"task-role-pill",title:`Role: ${B}`,children:B}),e.employeeAssignment?.name&&u.jsxs("span",{className:"task-employee-pill",title:`Employee: ${e.employeeAssignment.name}${e.employeeAssignment.category?` (${e.employeeAssignment.category})`:""}`,children:[u.jsx("span",{className:"task-employee-icon",children:"👤"}),e.employeeAssignment.name]}),e.selectedExecutionAgent&&u.jsxs("span",{className:"task-agent-pill",title:`Execution Agent: ${iw[e.selectedExecutionAgent]??e.selectedExecutionAgent}`,children:[u.jsx("span",{className:"task-agent-icon",children:"⚙"}),iw[e.selectedExecutionAgent]??e.selectedExecutionAgent]})]}),u.jsxs("div",{className:"task-header-right",children:[w&&u.jsx("div",{className:"task-header-avatars",children:v.slice(0,3).map(U=>u.jsx("span",{className:"task-header-avatar",title:U.name,children:U.name.charAt(0).toUpperCase()},U.agent_id))}),u.jsx("span",{className:"task-header-time",title:new Date(e.createdAt).toLocaleString(),children:i8(e.createdAt)}),(I||j)&&r&&u.jsxs("button",{className:"task-stop-btn",onClick:r,title:"Stop task",disabled:!I,children:[u.jsx(aE,{}),u.jsx("span",{children:j?"Stopping...":"Stop"})]}),L&&a&&e.status!=="done"&&u.jsx("button",{className:"task-resume-btn",onClick:a,title:"Resume prior runtime (re-awaken original team, no new plan)",children:u.jsx("span",{children:"Continue"})}),o&&u.jsxs("button",{className:"task-done-btn",onClick:o,title:"Mark task as done",children:[u.jsx(Hl,{}),u.jsx("span",{children:"Done"})]}),i&&u.jsx("button",{className:"task-board-btn",onClick:i,title:"View on Board",children:u.jsx(P4,{})})]})]}),Q&&u.jsx("div",{className:"task-header-metrics",children:Y&&u.jsxs("div",{className:"task-runtime-metric task-runtime-metric-approval",title:"Pending approvals",children:[u.jsx("span",{className:"task-runtime-metric-label",children:"Approvals"}),u.jsx("span",{className:"task-runtime-metric-value",children:e.pendingPermissionCount})]})})]})}function Qr(e){return String(e??"").trim().replace(/\s+/g," ").slice(0,96)}function EN(e){const t=e.itemId||e.streamId||e.toolCallId||e.permissionGroupKey;if(t)return`${e.type}:${Qr(e.turnId)}:${Qr(t)}`;if(e.type==="thinking"||e.type==="assistant")return`${e.type}:${Qr(e.turnId)||Qr(e.executionMode)||"stream"}:${Number.isFinite(e.timestamp)?e.timestamp:""}`;if(e.type==="tool_call")return`tool:${Qr(e.turnId)||"turnless"}:${Qr(e.summary)||"tool"}:${Number.isFinite(e.timestamp)?e.timestamp:""}`;if(e.turnId&&typeof e.seq=="number")return`${e.type}:${Qr(e.turnId)}:seq:${e.seq}`;const n=[e.type,Qr(e.turnId)];return typeof e.seq=="number"&&Number.isFinite(e.seq)&&n.push(`seq-${e.seq}`),n.push(Number.isFinite(e.timestamp)?e.timestamp:"",Qr(e.summary),Qr(e.detail)),n.join(":")}const o8=new Set(["done","failed","cancelled"]),rw=new Set(["thinking","tool_call","autonomy","needs_input","verification"]),am={thinking:{icon:u.jsx(A4,{}),color:"var(--accent)",label:"Thinking"},assistant:{icon:u.jsx(bl,{}),color:"var(--accent)",label:"Reply"},tool_call:{icon:u.jsx(Tm,{}),color:"var(--green)",label:"Tool"},autonomy:{icon:u.jsx(hu,{}),color:"var(--yellow)",label:"Autonomy"},handoff:{icon:u.jsx(cE,{}),color:"var(--accent)",label:"Handoff"},gate_result:{icon:u.jsx(B4,{}),color:"var(--green)",label:"Gate"},status_change:{icon:u.jsx(rS,{}),color:"var(--text-secondary)",label:"Status"},work_item_started:{icon:u.jsx(Am,{}),color:"var(--accent)",label:"Work item"},gate_approved:{icon:u.jsx($4,{}),color:"var(--green)",label:"Gate Passed"},gate_rejected:{icon:u.jsx(H4,{}),color:"var(--red)",label:"Rejected"},awaiting_manager_review:{icon:u.jsx(Lc,{}),color:"var(--yellow)",label:"Awaiting Manager Review"},awaiting_human:{icon:u.jsx(Lc,{}),color:"var(--yellow)",label:"Awaiting Human Review"},awaiting_review:{icon:u.jsx(Lc,{}),color:"var(--yellow)",label:"Awaiting Review"},awaiting_peer:{icon:u.jsx(Lc,{}),color:"var(--yellow)",label:"Awaiting Peer"},work_item_failed:{icon:u.jsx(rS,{}),color:"var(--red)",label:"Failed"},deadlock:{icon:u.jsx(Uf,{}),color:"var(--red)",label:"Deadlock"},needs_input:{icon:u.jsx(Lc,{}),color:"var(--yellow)",label:"Needs Input"},verification:{icon:u.jsx(hu,{}),color:"var(--accent)",label:"Verification"}},Pg=5;function Hc(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 Of(e){if(typeof e=="string"){const t=e.trim();if(t.startsWith("{")&&t.endsWith("}")||t.startsWith("[")&&t.endsWith("]"))try{return Of(JSON.parse(t))}catch{return e}return e}return Array.isArray(e)?e.map(Of):e&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([t,n])=>[t,Of(n)])):e}function a8(e){const t=e.trim();if(!t||!t.startsWith("{")&&!t.startsWith("["))return e;try{return JSON.stringify(Of(JSON.parse(t)),null,2)}catch{return e}}function Nl({entries:e,agentStatus:t,currentTool:n,toolElapsedMs:i,lastToolSummary:r,sessionStatus:o,expandedByDefault:a}){const[c,d]=C.useState(!!a),m=!!o&&o8.has(o),h=!m&&t==="reflecting",p=!m&&t==="tool_active",g=h||p,x=C.useMemo(()=>e,[e]),v=C.useMemo(()=>c||x.length<=Pg?x:x.slice(-Pg),[x,c]),_=x.length-v.length;return x.length===0&&!g&&!m?null:u.jsxs("div",{className:"ptl-block",children:[g&&u.jsxs("div",{className:`ptl-live ${p?"ptl-live-tool":"ptl-live-think"}`,children:[u.jsx("span",{className:"ptl-live-icon",children:p?u.jsx(Tm,{}):u.jsx(bl,{})}),u.jsx("span",{className:"ptl-live-text",children:p?"Running":"Thinking"}),p&&n&&u.jsx("code",{className:"ptl-live-tool-name",children:n}),p&&typeof i=="number"&&i>0&&u.jsx("span",{className:"ptl-live-elapsed",children:i<1e3?`${i}ms`:`${(i/1e3).toFixed(1)}s`}),u.jsx("span",{className:"ptl-live-shimmer"})]}),r&&!p&&u.jsxs("div",{className:"ptl-last-tool-summary",children:[u.jsx("span",{className:"ptl-last-tool-label",children:"Last tool result:"}),u.jsx("span",{className:"ptl-last-tool-text",children:r})]}),_>0&&u.jsxs("button",{className:"ptl-expand",onClick:()=>d(!0),children:[u.jsx(rs,{}),u.jsxs("span",{children:[_," earlier step",_>1?"s":""]})]}),v.length>0&&u.jsx("div",{className:"ptl-timeline",children:v.map((k,w)=>{const S=w===v.length-1,j=am[k.type]||am.status_change;return u.jsxs("div",{className:`ptl-entry${S?" ptl-entry-last":""}`,children:[u.jsxs("div",{className:"ptl-connector",children:[u.jsx("div",{className:"ptl-dot",style:{color:j.color},children:j.icon}),!S&&u.jsx("div",{className:"ptl-line"})]}),u.jsx("div",{className:"ptl-content",children:u.jsx(NN,{entry:k})})]},EN(k))})}),m&&!g&&u.jsxs("div",{className:`ptl-completion ptl-completion-${o}`,children:[u.jsx("span",{className:"ptl-completion-icon",children:o==="done"?"✓":o==="failed"?"✗":"—"}),u.jsx("span",{className:"ptl-completion-text",children:o==="done"?"Completed":o==="failed"?"Failed":"Cancelled"})]}),c&&x.length>Pg&&u.jsxs("button",{className:"ptl-expand",onClick:()=>d(!1),children:[u.jsx(rs,{down:!0}),u.jsx("span",{children:"Show less"})]}),!c&&_>0&&u.jsxs("button",{className:"ptl-expand",onClick:()=>d(!0),children:[u.jsx(rs,{}),u.jsxs("span",{children:["Show more (",_," earlier step",_>1?"s":"",")"]})]})]})}const NN=Rt.memo(function({entry:t}){const[n,i]=C.useState(!1),r=am[t.type]||am.status_change,o=t.type==="tool_call"&&!!t.detail;if(t.type==="tool_call")return u.jsxs("div",{className:`ptl-tool-card${n?" expanded":""}`,children:[u.jsxs("button",{className:`ptl-row ptl-tool-toggle${o?" clickable":""}`,onClick:()=>{o&&i(a=>!a)},type:"button",children:[u.jsx("span",{className:"ptl-label",style:{color:r.color},children:r.label}),u.jsx("code",{className:"ptl-tool-badge",children:t.summary}),u.jsx("span",{className:"ptl-time",children:Hc(t.timestamp)}),o&&u.jsx("span",{className:"ptl-tool-chevron",children:u.jsx(rs,{down:n})})]}),n&&t.detail&&u.jsx("pre",{className:"ptl-tool-card-detail",children:a8(t.detail)})]});if(t.type==="autonomy"){const a=!!t.detail;return u.jsxs("div",{className:`ptl-tool-card ptl-autonomy-card${n?" expanded":""}`,children:[u.jsxs("button",{className:`ptl-row ptl-tool-toggle${a?" clickable":""}`,onClick:()=>{a&&i(c=>!c)},type:"button",children:[u.jsx("span",{className:"ptl-label",style:{color:r.color},children:r.label}),u.jsx("code",{className:"ptl-tool-badge",children:t.summary}),u.jsx("span",{className:"ptl-time",children:Hc(t.timestamp)}),a&&u.jsx("span",{className:"ptl-tool-chevron",children:u.jsx(rs,{down:n})})]}),n&&t.detail&&u.jsx("div",{className:"ptl-tool-card-detail ptl-autonomy-detail",children:t.detail})]})}if(t.type==="thinking"||t.type==="assistant")return u.jsxs("div",{className:"ptl-tool-card",children:[u.jsxs("button",{className:"ptl-row ptl-tool-toggle clickable",onClick:()=>i(a=>!a),type:"button",children:[u.jsx("span",{className:"ptl-label",style:{color:r.color},children:r.label}),u.jsx("span",{className:"ptl-summary",children:t.summary}),u.jsx("span",{className:"ptl-time",children:Hc(t.timestamp)}),u.jsx("span",{className:"ptl-tool-chevron",children:u.jsx(rs,{down:n})})]}),n&&u.jsx("div",{className:"ptl-tool-card-detail ptl-thinking-detail",children:t.detail||t.summary})]});if(t.type==="verification"){const a=!!t.detail;return u.jsxs("div",{className:`ptl-tool-card ptl-verification-card${n?" expanded":""}`,children:[u.jsxs("button",{className:`ptl-row ptl-tool-toggle${a?" clickable":""}`,onClick:()=>{a&&i(c=>!c)},type:"button",children:[u.jsx("span",{className:"ptl-label",style:{color:r.color},children:r.label}),u.jsx("span",{className:"ptl-summary",children:t.summary||"Verification"}),u.jsx("span",{className:"ptl-time",children:Hc(t.timestamp)}),a&&u.jsx("span",{className:"ptl-tool-chevron",children:u.jsx(rs,{down:n})})]}),n&&t.detail&&u.jsx("div",{className:"ptl-tool-card-detail ptl-verification-detail",children:t.detail})]})}return u.jsxs(u.Fragment,{children:[u.jsxs("div",{className:"ptl-row",children:[u.jsx("span",{className:"ptl-label",style:{color:r.color},children:r.label}),u.jsx("span",{className:"ptl-summary",children:t.summary}),u.jsx("span",{className:"ptl-time",children:Hc(t.timestamp)})]}),t.detail&&u.jsx("div",{className:"ptl-detail",children:t.detail})]})});function l8(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const c8=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,u8=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,d8={};function sw(e,t){return(d8.jsx?u8:c8).test(e)}const f8=/[ \t\n\f\r]/g;function m8(e){return typeof e=="object"?e.type==="text"?ow(e.value):!1:ow(e)}function ow(e){return e.replace(f8,"")===""}class Bu{constructor(t,n,i){this.normal=n,this.property=t,i&&(this.space=i)}}Bu.prototype.normal={};Bu.prototype.property={};Bu.prototype.space=void 0;function IN(e,t){const n={},i={};for(const r of e)Object.assign(n,r.property),Object.assign(i,r.normal);return new Bu(n,i,t)}function Kx(e){return e.toLowerCase()}class er{constructor(t,n){this.attribute=n,this.property=t}}er.prototype.attribute="";er.prototype.booleanish=!1;er.prototype.boolean=!1;er.prototype.commaOrSpaceSeparated=!1;er.prototype.commaSeparated=!1;er.prototype.defined=!1;er.prototype.mustUseProperty=!1;er.prototype.number=!1;er.prototype.overloadedBoolean=!1;er.prototype.property="";er.prototype.spaceSeparated=!1;er.prototype.space=void 0;let p8=0;const zt=pa(),ci=pa(),Zx=pa(),De=pa(),Tn=pa(),pl=pa(),cr=pa();function pa(){return 2**++p8}const Qx=Object.freeze(Object.defineProperty({__proto__:null,boolean:zt,booleanish:ci,commaOrSpaceSeparated:cr,commaSeparated:pl,number:De,overloadedBoolean:Zx,spaceSeparated:Tn},Symbol.toStringTag,{value:"Module"})),Bg=Object.keys(Qx);class d0 extends er{constructor(t,n,i,r){let o=-1;if(super(t,n),aw(this,"space",r),typeof i=="number")for(;++o4&&n.slice(0,4)==="data"&&v8.test(t)){if(t.charAt(4)==="-"){const o=t.slice(5).replace(lw,k8);i="data"+o.charAt(0).toUpperCase()+o.slice(1)}else{const o=t.slice(4);if(!lw.test(o)){let a=o.replace(x8,_8);a.charAt(0)!=="-"&&(a="-"+a),t="data"+a}}r=d0}return new r(i,t)}function _8(e){return"-"+e.toLowerCase()}function k8(e){return e.charAt(1).toUpperCase()}const S8=IN([TN,h8,MN,DN,ON],"html"),f0=IN([TN,g8,MN,DN,ON],"svg");function w8(e){return e.join(" ").trim()}var el={},$g,cw;function C8(){if(cw)return $g;cw=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,t=/\n/g,n=/^\s*/,i=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,r=/^:\s*/,o=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,a=/^[;\s]*/,c=/^\s+|\s+$/g,d=` -`,m="/",h="*",p="",g="comment",x="declaration";function v(k,w){if(typeof k!="string")throw new TypeError("First argument must be a string");if(!k)return[];w=w||{};var S=1,j=1;function N(P){var G=P.match(t);G&&(S+=G.length);var $=P.lastIndexOf(d);j=~$?P.length-$:j+P.length}function O(){var P={line:S,column:j};return function(G){return G.position=new R(P),L(),G}}function R(P){this.start=P,this.end={line:S,column:j},this.source=w.source}R.prototype.content=k;function D(P){var G=new Error(w.source+":"+S+":"+j+": "+P);if(G.reason=P,G.filename=w.source,G.line=S,G.column=j,G.source=k,!w.silent)throw G}function I(P){var G=P.exec(k);if(G){var $=G[0];return N($),k=k.slice($.length),G}}function L(){I(n)}function M(P){var G;for(P=P||[];G=A();)G!==!1&&P.push(G);return P}function A(){var P=O();if(!(m!=k.charAt(0)||h!=k.charAt(1))){for(var G=2;p!=k.charAt(G)&&(h!=k.charAt(G)||m!=k.charAt(G+1));)++G;if(G+=2,p===k.charAt(G-1))return D("End of comment missing");var $=k.slice(2,G-2);return j+=2,N($),k=k.slice(G),j+=2,P({type:g,comment:$})}}function B(){var P=O(),G=I(i);if(G){if(A(),!I(r))return D("property missing ':'");var $=I(o),q=P({type:x,property:_(G[0].replace(e,p)),value:$?_($[0].replace(e,p)):p});return I(a),q}}function W(){var P=[];M(P);for(var G;G=B();)G!==!1&&(P.push(G),M(P));return P}return L(),W()}function _(k){return k?k.replace(c,p):p}return $g=v,$g}var uw;function j8(){if(uw)return el;uw=1;var e=el&&el.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(el,"__esModule",{value:!0}),el.default=n;const t=e(C8());function n(i,r){let o=null;if(!i||typeof i!="string")return o;const a=(0,t.default)(i),c=typeof r=="function";return a.forEach(d=>{if(d.type!=="declaration")return;const{property:m,value:h}=d;c?r(m,h,d):h&&(o=o||{},o[m]=h)}),o}return el}var Fc={},dw;function E8(){if(dw)return Fc;dw=1,Object.defineProperty(Fc,"__esModule",{value:!0}),Fc.camelCase=void 0;var e=/^--[a-zA-Z0-9_-]+$/,t=/-([a-z])/g,n=/^[^-]+$/,i=/^-(webkit|moz|ms|o|khtml)-/,r=/^-(ms)-/,o=function(m){return!m||n.test(m)||e.test(m)},a=function(m,h){return h.toUpperCase()},c=function(m,h){return"".concat(h,"-")},d=function(m,h){return h===void 0&&(h={}),o(m)?m:(m=m.toLowerCase(),h.reactCompat?m=m.replace(r,c):m=m.replace(i,c),m.replace(t,a))};return Fc.camelCase=d,Fc}var Vc,fw;function N8(){if(fw)return Vc;fw=1;var e=Vc&&Vc.__importDefault||function(r){return r&&r.__esModule?r:{default:r}},t=e(j8()),n=E8();function i(r,o){var a={};return!r||typeof r!="string"||(0,t.default)(r,function(c,d){c&&d&&(a[(0,n.camelCase)(c,o)]=d)}),a}return i.default=i,Vc=i,Vc}var I8=N8();const T8=ma(I8),LN=zN("end"),m0=zN("start");function zN(e){return t;function t(n){const i=n&&n.position&&n.position[e]||{};if(typeof i.line=="number"&&i.line>0&&typeof i.column=="number"&&i.column>0)return{line:i.line,column:i.column,offset:typeof i.offset=="number"&&i.offset>-1?i.offset:void 0}}}function R8(e){const t=m0(e),n=LN(e);if(t&&n)return{start:t,end:n}}function lu(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?mw(e.position):"start"in e||"end"in e?mw(e):"line"in e||"column"in e?Jx(e):""}function Jx(e){return pw(e&&e.line)+":"+pw(e&&e.column)}function mw(e){return Jx(e&&e.start)+"-"+Jx(e&&e.end)}function pw(e){return e&&typeof e=="number"?e:1}class zi extends Error{constructor(t,n,i){super(),typeof n=="string"&&(i=n,n=void 0);let r="",o={},a=!1;if(n&&("line"in n&&"column"in n?o={place:n}:"start"in n&&"end"in n?o={place:n}:"type"in n?o={ancestors:[n],place:n.position}:o={...n}),typeof t=="string"?r=t:!o.cause&&t&&(a=!0,r=t.message,o.cause=t),!o.ruleId&&!o.source&&typeof i=="string"){const d=i.indexOf(":");d===-1?o.ruleId=i:(o.source=i.slice(0,d),o.ruleId=i.slice(d+1))}if(!o.place&&o.ancestors&&o.ancestors){const d=o.ancestors[o.ancestors.length-1];d&&(o.place=d.position)}const c=o.place&&"start"in o.place?o.place.start:o.place;this.ancestors=o.ancestors||void 0,this.cause=o.cause||void 0,this.column=c?c.column:void 0,this.fatal=void 0,this.file="",this.message=r,this.line=c?c.line:void 0,this.name=lu(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}}zi.prototype.file="";zi.prototype.name="";zi.prototype.reason="";zi.prototype.message="";zi.prototype.stack="";zi.prototype.column=void 0;zi.prototype.line=void 0;zi.prototype.ancestors=void 0;zi.prototype.cause=void 0;zi.prototype.fatal=void 0;zi.prototype.place=void 0;zi.prototype.ruleId=void 0;zi.prototype.source=void 0;const p0={}.hasOwnProperty,A8=new Map,M8=/[A-Z]/g,D8=new Set(["table","tbody","thead","tfoot","tr"]),O8=new Set(["td","th"]),PN="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function L8(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let i;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");i=U8(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");i=V8(n,t.jsx,t.jsxs)}const r={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:i,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?f0:S8,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},o=BN(r,e,void 0);return o&&typeof o!="string"?o:r.create(e,r.Fragment,{children:o||void 0},void 0)}function BN(e,t,n){if(t.type==="element")return z8(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return P8(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return $8(e,t,n);if(t.type==="mdxjsEsm")return B8(e,t);if(t.type==="root")return H8(e,t,n);if(t.type==="text")return F8(e,t)}function z8(e,t,n){const i=e.schema;let r=i;t.tagName.toLowerCase()==="svg"&&i.space==="html"&&(r=f0,e.schema=r),e.ancestors.push(t);const o=HN(e,t.tagName,!1),a=G8(e,t);let c=g0(e,t);return D8.has(t.tagName)&&(c=c.filter(function(d){return typeof d=="string"?!m8(d):!0})),$N(e,a,o,t),h0(a,c),e.ancestors.pop(),e.schema=i,e.create(t,o,a,n)}function P8(e,t){if(t.data&&t.data.estree&&e.evaluater){const i=t.data.estree.body[0];return i.type,e.evaluater.evaluateExpression(i.expression)}Cu(e,t.position)}function B8(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);Cu(e,t.position)}function $8(e,t,n){const i=e.schema;let r=i;t.name==="svg"&&i.space==="html"&&(r=f0,e.schema=r),e.ancestors.push(t);const o=t.name===null?e.Fragment:HN(e,t.name,!0),a=q8(e,t),c=g0(e,t);return $N(e,a,o,t),h0(a,c),e.ancestors.pop(),e.schema=i,e.create(t,o,a,n)}function H8(e,t,n){const i={};return h0(i,g0(e,t)),e.create(t,e.Fragment,i,n)}function F8(e,t){return t.value}function $N(e,t,n,i){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=i)}function h0(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function V8(e,t,n){return i;function i(r,o,a,c){const m=Array.isArray(a.children)?n:t;return c?m(o,a,c):m(o,a)}}function U8(e,t){return n;function n(i,r,o,a){const c=Array.isArray(o.children),d=m0(i);return t(r,o,a,c,{columnNumber:d?d.column-1:void 0,fileName:e,lineNumber:d?d.line:void 0},void 0)}}function G8(e,t){const n={};let i,r;for(r in t.properties)if(r!=="children"&&p0.call(t.properties,r)){const o=W8(e,r,t.properties[r]);if(o){const[a,c]=o;e.tableCellAlignToStyle&&a==="align"&&typeof c=="string"&&O8.has(t.tagName)?i=c:n[a]=c}}if(i){const o=n.style||(n.style={});o[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=i}return n}function q8(e,t){const n={};for(const i of t.attributes)if(i.type==="mdxJsxExpressionAttribute")if(i.data&&i.data.estree&&e.evaluater){const o=i.data.estree.body[0];o.type;const a=o.expression;a.type;const c=a.properties[0];c.type,Object.assign(n,e.evaluater.evaluateExpression(c.argument))}else Cu(e,t.position);else{const r=i.name;let o;if(i.value&&typeof i.value=="object")if(i.value.data&&i.value.data.estree&&e.evaluater){const c=i.value.data.estree.body[0];c.type,o=e.evaluater.evaluateExpression(c.expression)}else Cu(e,t.position);else o=i.value===null?!0:i.value;n[r]=o}return n}function g0(e,t){const n=[];let i=-1;const r=e.passKeys?new Map:A8;for(;++ir?0:r+t:t=t>r?r:t,n=n>0?n:0,i.length<1e4)a=Array.from(i),a.unshift(t,n),e.splice(...a);else for(n&&e.splice(t,n);o0?(hr(e,e.length,0,t),e):t}const yw={}.hasOwnProperty;function VN(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 Vr(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Fi=No(/[A-Za-z]/),Li=No(/[\dA-Za-z]/),nP=No(/[#-'*+\--9=?A-Z^-~]/);function lm(e){return e!==null&&(e<32||e===127)}const ev=No(/\d/),iP=No(/[\dA-Fa-f]/),rP=No(/[!-/:-@[-`{-~]/);function ft(e){return e!==null&&e<-2}function Nn(e){return e!==null&&(e<0||e===32)}function Yt(e){return e===-2||e===-1||e===32}const Gm=No(new RegExp("\\p{P}|\\p{S}","u")),la=No(/\s/);function No(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function ql(e){const t=[];let n=-1,i=0,r=0;for(;++n55295&&o<57344){const c=e.charCodeAt(n+1);o<56320&&c>56319&&c<57344?(a=String.fromCharCode(o,c),r=1):a="�"}else a=String.fromCharCode(o);a&&(t.push(e.slice(i,n),encodeURIComponent(a)),i=n+r+1,a=""),r&&(n+=r,r=0)}return t.join("")+e.slice(i)}function sn(e,t,n,i){const r=i?i-1:Number.POSITIVE_INFINITY;let o=0;return a;function a(d){return Yt(d)?(e.enter(n),c(d)):t(d)}function c(d){return Yt(d)&&o++a))return;const D=t.events.length;let I=D,L,M;for(;I--;)if(t.events[I][0]==="exit"&&t.events[I][1].type==="chunkFlow"){if(L){M=t.events[I][1].end;break}L=!0}for(w(i),R=D;Rj;){const O=n[N];t.containerState=O[1],O[0].exit.call(t,e)}n.length=j}function S(){r.write([null]),o=void 0,r=void 0,t.containerState._closeFlow=void 0}}function cP(e,t,n){return sn(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Il(e){if(e===null||Nn(e)||la(e))return 1;if(Gm(e))return 2}function qm(e,t,n){const i=[];let r=-1;for(;++r1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const p={...e[i][1].end},g={...e[n][1].start};vw(p,-d),vw(g,d),a={type:d>1?"strongSequence":"emphasisSequence",start:p,end:{...e[i][1].end}},c={type:d>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:g},o={type:d>1?"strongText":"emphasisText",start:{...e[i][1].end},end:{...e[n][1].start}},r={type:d>1?"strong":"emphasis",start:{...a.start},end:{...c.end}},e[i][1].end={...a.start},e[n][1].start={...c.end},m=[],e[i][1].end.offset-e[i][1].start.offset&&(m=Ir(m,[["enter",e[i][1],t],["exit",e[i][1],t]])),m=Ir(m,[["enter",r,t],["enter",a,t],["exit",a,t],["enter",o,t]]),m=Ir(m,qm(t.parser.constructs.insideSpan.null,e.slice(i+1,n),t)),m=Ir(m,[["exit",o,t],["enter",c,t],["exit",c,t],["exit",r,t]]),e[n][1].end.offset-e[n][1].start.offset?(h=2,m=Ir(m,[["enter",e[n][1],t],["exit",e[n][1],t]])):h=0,hr(e,i-1,n-i+3,m),n=i+m.length-h-2;break}}for(n=-1;++n0&&Yt(R)?sn(e,S,"linePrefix",o+1)(R):S(R)}function S(R){return R===null||ft(R)?e.check(bw,_,N)(R):(e.enter("codeFlowValue"),j(R))}function j(R){return R===null||ft(R)?(e.exit("codeFlowValue"),S(R)):(e.consume(R),j)}function N(R){return e.exit("codeFenced"),t(R)}function O(R,D,I){let L=0;return M;function M(G){return R.enter("lineEnding"),R.consume(G),R.exit("lineEnding"),A}function A(G){return R.enter("codeFencedFence"),Yt(G)?sn(R,B,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(G):B(G)}function B(G){return G===c?(R.enter("codeFencedFenceSequence"),W(G)):I(G)}function W(G){return G===c?(L++,R.consume(G),W):L>=a?(R.exit("codeFencedFenceSequence"),Yt(G)?sn(R,P,"whitespace")(G):P(G)):I(G)}function P(G){return G===null||ft(G)?(R.exit("codeFencedFence"),D(G)):I(G)}}}function _P(e,t,n){const i=this;return r;function r(a){return a===null?n(a):(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),o)}function o(a){return i.parser.lazy[i.now().line]?n(a):t(a)}}const Fg={name:"codeIndented",tokenize:SP},kP={partial:!0,tokenize:wP};function SP(e,t,n){const i=this;return r;function r(m){return e.enter("codeIndented"),sn(e,o,"linePrefix",5)(m)}function o(m){const h=i.events[i.events.length-1];return h&&h[1].type==="linePrefix"&&h[2].sliceSerialize(h[1],!0).length>=4?a(m):n(m)}function a(m){return m===null?d(m):ft(m)?e.attempt(kP,a,d)(m):(e.enter("codeFlowValue"),c(m))}function c(m){return m===null||ft(m)?(e.exit("codeFlowValue"),a(m)):(e.consume(m),c)}function d(m){return e.exit("codeIndented"),t(m)}}function wP(e,t,n){const i=this;return r;function r(a){return i.parser.lazy[i.now().line]?n(a):ft(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),r):sn(e,o,"linePrefix",5)(a)}function o(a){const c=i.events[i.events.length-1];return c&&c[1].type==="linePrefix"&&c[2].sliceSerialize(c[1],!0).length>=4?t(a):ft(a)?r(a):n(a)}}const CP={name:"codeText",previous:EP,resolve:jP,tokenize:NP};function jP(e){let t=e.length-4,n=3,i,r;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(i=n;++i=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-i+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-i+this.left.length).reverse())}splice(t,n,i){const r=n||0;this.setCursor(Math.trunc(t));const o=this.right.splice(this.right.length-r,Number.POSITIVE_INFINITY);return i&&Uc(this.left,i),o.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),Uc(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),Uc(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(a):e.interrupt(i.parser.constructs.flow,n,t)(a)}}function XN(e,t,n,i,r,o,a,c,d){const m=d||Number.POSITIVE_INFINITY;let h=0;return p;function p(w){return w===60?(e.enter(i),e.enter(r),e.enter(o),e.consume(w),e.exit(o),g):w===null||w===32||w===41||lm(w)?n(w):(e.enter(i),e.enter(a),e.enter(c),e.enter("chunkString",{contentType:"string"}),_(w))}function g(w){return w===62?(e.enter(o),e.consume(w),e.exit(o),e.exit(r),e.exit(i),t):(e.enter(c),e.enter("chunkString",{contentType:"string"}),x(w))}function x(w){return w===62?(e.exit("chunkString"),e.exit(c),g(w)):w===null||w===60||ft(w)?n(w):(e.consume(w),w===92?v:x)}function v(w){return w===60||w===62||w===92?(e.consume(w),x):x(w)}function _(w){return!h&&(w===null||w===41||Nn(w))?(e.exit("chunkString"),e.exit(c),e.exit(a),e.exit(i),t(w)):h999||x===null||x===91||x===93&&!d||x===94&&!c&&"_hiddenFootnoteSupport"in a.parser.constructs?n(x):x===93?(e.exit(o),e.enter(r),e.consume(x),e.exit(r),e.exit(i),t):ft(x)?(e.enter("lineEnding"),e.consume(x),e.exit("lineEnding"),h):(e.enter("chunkString",{contentType:"string"}),p(x))}function p(x){return x===null||x===91||x===93||ft(x)||c++>999?(e.exit("chunkString"),h(x)):(e.consume(x),d||(d=!Yt(x)),x===92?g:p)}function g(x){return x===91||x===92||x===93?(e.consume(x),c++,p):p(x)}}function ZN(e,t,n,i,r,o){let a;return c;function c(g){return g===34||g===39||g===40?(e.enter(i),e.enter(r),e.consume(g),e.exit(r),a=g===40?41:g,d):n(g)}function d(g){return g===a?(e.enter(r),e.consume(g),e.exit(r),e.exit(i),t):(e.enter(o),m(g))}function m(g){return g===a?(e.exit(o),d(a)):g===null?n(g):ft(g)?(e.enter("lineEnding"),e.consume(g),e.exit("lineEnding"),sn(e,m,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),h(g))}function h(g){return g===a||g===null||ft(g)?(e.exit("chunkString"),m(g)):(e.consume(g),g===92?p:h)}function p(g){return g===a||g===92?(e.consume(g),h):h(g)}}function cu(e,t){let n;return i;function i(r){return ft(r)?(e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),n=!0,i):Yt(r)?sn(e,i,n?"linePrefix":"lineSuffix")(r):t(r)}}const LP={name:"definition",tokenize:PP},zP={partial:!0,tokenize:BP};function PP(e,t,n){const i=this;let r;return o;function o(x){return e.enter("definition"),a(x)}function a(x){return KN.call(i,e,c,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(x)}function c(x){return r=Vr(i.sliceSerialize(i.events[i.events.length-1][1]).slice(1,-1)),x===58?(e.enter("definitionMarker"),e.consume(x),e.exit("definitionMarker"),d):n(x)}function d(x){return Nn(x)?cu(e,m)(x):m(x)}function m(x){return XN(e,h,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(x)}function h(x){return e.attempt(zP,p,p)(x)}function p(x){return Yt(x)?sn(e,g,"whitespace")(x):g(x)}function g(x){return x===null||ft(x)?(e.exit("definition"),i.parser.defined.push(r),t(x)):n(x)}}function BP(e,t,n){return i;function i(c){return Nn(c)?cu(e,r)(c):n(c)}function r(c){return ZN(e,o,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(c)}function o(c){return Yt(c)?sn(e,a,"whitespace")(c):a(c)}function a(c){return c===null||ft(c)?t(c):n(c)}}const $P={name:"hardBreakEscape",tokenize:HP};function HP(e,t,n){return i;function i(o){return e.enter("hardBreakEscape"),e.consume(o),r}function r(o){return ft(o)?(e.exit("hardBreakEscape"),t(o)):n(o)}}const FP={name:"headingAtx",resolve:VP,tokenize:UP};function VP(e,t){let n=e.length-2,i=3,r,o;return e[i][1].type==="whitespace"&&(i+=2),n-2>i&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(i===n-1||n-4>i&&e[n-2][1].type==="whitespace")&&(n-=i+1===n?2:4),n>i&&(r={type:"atxHeadingText",start:e[i][1].start,end:e[n][1].end},o={type:"chunkText",start:e[i][1].start,end:e[n][1].end,contentType:"text"},hr(e,i,n-i+1,[["enter",r,t],["enter",o,t],["exit",o,t],["exit",r,t]])),e}function UP(e,t,n){let i=0;return r;function r(h){return e.enter("atxHeading"),o(h)}function o(h){return e.enter("atxHeadingSequence"),a(h)}function a(h){return h===35&&i++<6?(e.consume(h),a):h===null||Nn(h)?(e.exit("atxHeadingSequence"),c(h)):n(h)}function c(h){return h===35?(e.enter("atxHeadingSequence"),d(h)):h===null||ft(h)?(e.exit("atxHeading"),t(h)):Yt(h)?sn(e,c,"whitespace")(h):(e.enter("atxHeadingText"),m(h))}function d(h){return h===35?(e.consume(h),d):(e.exit("atxHeadingSequence"),c(h))}function m(h){return h===null||h===35||Nn(h)?(e.exit("atxHeadingText"),c(h)):(e.consume(h),m)}}const GP=["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"],kw=["pre","script","style","textarea"],qP={concrete:!0,name:"htmlFlow",resolveTo:XP,tokenize:KP},WP={partial:!0,tokenize:QP},YP={partial:!0,tokenize:ZP};function XP(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 KP(e,t,n){const i=this;let r,o,a,c,d;return m;function m(F){return h(F)}function h(F){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(F),p}function p(F){return F===33?(e.consume(F),g):F===47?(e.consume(F),o=!0,_):F===63?(e.consume(F),r=3,i.interrupt?t:V):Fi(F)?(e.consume(F),a=String.fromCharCode(F),k):n(F)}function g(F){return F===45?(e.consume(F),r=2,x):F===91?(e.consume(F),r=5,c=0,v):Fi(F)?(e.consume(F),r=4,i.interrupt?t:V):n(F)}function x(F){return F===45?(e.consume(F),i.interrupt?t:V):n(F)}function v(F){const K="CDATA[";return F===K.charCodeAt(c++)?(e.consume(F),c===K.length?i.interrupt?t:B:v):n(F)}function _(F){return Fi(F)?(e.consume(F),a=String.fromCharCode(F),k):n(F)}function k(F){if(F===null||F===47||F===62||Nn(F)){const K=F===47,ee=a.toLowerCase();return!K&&!o&&kw.includes(ee)?(r=1,i.interrupt?t(F):B(F)):GP.includes(a.toLowerCase())?(r=6,K?(e.consume(F),w):i.interrupt?t(F):B(F)):(r=7,i.interrupt&&!i.parser.lazy[i.now().line]?n(F):o?S(F):j(F))}return F===45||Li(F)?(e.consume(F),a+=String.fromCharCode(F),k):n(F)}function w(F){return F===62?(e.consume(F),i.interrupt?t:B):n(F)}function S(F){return Yt(F)?(e.consume(F),S):M(F)}function j(F){return F===47?(e.consume(F),M):F===58||F===95||Fi(F)?(e.consume(F),N):Yt(F)?(e.consume(F),j):M(F)}function N(F){return F===45||F===46||F===58||F===95||Li(F)?(e.consume(F),N):O(F)}function O(F){return F===61?(e.consume(F),R):Yt(F)?(e.consume(F),O):j(F)}function R(F){return F===null||F===60||F===61||F===62||F===96?n(F):F===34||F===39?(e.consume(F),d=F,D):Yt(F)?(e.consume(F),R):I(F)}function D(F){return F===d?(e.consume(F),d=null,L):F===null||ft(F)?n(F):(e.consume(F),D)}function I(F){return F===null||F===34||F===39||F===47||F===60||F===61||F===62||F===96||Nn(F)?O(F):(e.consume(F),I)}function L(F){return F===47||F===62||Yt(F)?j(F):n(F)}function M(F){return F===62?(e.consume(F),A):n(F)}function A(F){return F===null||ft(F)?B(F):Yt(F)?(e.consume(F),A):n(F)}function B(F){return F===45&&r===2?(e.consume(F),$):F===60&&r===1?(e.consume(F),q):F===62&&r===4?(e.consume(F),U):F===63&&r===3?(e.consume(F),V):F===93&&r===5?(e.consume(F),Q):ft(F)&&(r===6||r===7)?(e.exit("htmlFlowData"),e.check(WP,Z,W)(F)):F===null||ft(F)?(e.exit("htmlFlowData"),W(F)):(e.consume(F),B)}function W(F){return e.check(YP,P,Z)(F)}function P(F){return e.enter("lineEnding"),e.consume(F),e.exit("lineEnding"),G}function G(F){return F===null||ft(F)?W(F):(e.enter("htmlFlowData"),B(F))}function $(F){return F===45?(e.consume(F),V):B(F)}function q(F){return F===47?(e.consume(F),a="",Y):B(F)}function Y(F){if(F===62){const K=a.toLowerCase();return kw.includes(K)?(e.consume(F),U):B(F)}return Fi(F)&&a.length<8?(e.consume(F),a+=String.fromCharCode(F),Y):B(F)}function Q(F){return F===93?(e.consume(F),V):B(F)}function V(F){return F===62?(e.consume(F),U):F===45&&r===2?(e.consume(F),V):B(F)}function U(F){return F===null||ft(F)?(e.exit("htmlFlowData"),Z(F)):(e.consume(F),U)}function Z(F){return e.exit("htmlFlow"),t(F)}}function ZP(e,t,n){const i=this;return r;function r(a){return ft(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),o):n(a)}function o(a){return i.parser.lazy[i.now().line]?n(a):t(a)}}function QP(e,t,n){return i;function i(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),e.attempt($u,t,n)}}const JP={name:"htmlText",tokenize:eB};function eB(e,t,n){const i=this;let r,o,a;return c;function c(V){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(V),d}function d(V){return V===33?(e.consume(V),m):V===47?(e.consume(V),O):V===63?(e.consume(V),j):Fi(V)?(e.consume(V),I):n(V)}function m(V){return V===45?(e.consume(V),h):V===91?(e.consume(V),o=0,v):Fi(V)?(e.consume(V),S):n(V)}function h(V){return V===45?(e.consume(V),x):n(V)}function p(V){return V===null?n(V):V===45?(e.consume(V),g):ft(V)?(a=p,q(V)):(e.consume(V),p)}function g(V){return V===45?(e.consume(V),x):p(V)}function x(V){return V===62?$(V):V===45?g(V):p(V)}function v(V){const U="CDATA[";return V===U.charCodeAt(o++)?(e.consume(V),o===U.length?_:v):n(V)}function _(V){return V===null?n(V):V===93?(e.consume(V),k):ft(V)?(a=_,q(V)):(e.consume(V),_)}function k(V){return V===93?(e.consume(V),w):_(V)}function w(V){return V===62?$(V):V===93?(e.consume(V),w):_(V)}function S(V){return V===null||V===62?$(V):ft(V)?(a=S,q(V)):(e.consume(V),S)}function j(V){return V===null?n(V):V===63?(e.consume(V),N):ft(V)?(a=j,q(V)):(e.consume(V),j)}function N(V){return V===62?$(V):j(V)}function O(V){return Fi(V)?(e.consume(V),R):n(V)}function R(V){return V===45||Li(V)?(e.consume(V),R):D(V)}function D(V){return ft(V)?(a=D,q(V)):Yt(V)?(e.consume(V),D):$(V)}function I(V){return V===45||Li(V)?(e.consume(V),I):V===47||V===62||Nn(V)?L(V):n(V)}function L(V){return V===47?(e.consume(V),$):V===58||V===95||Fi(V)?(e.consume(V),M):ft(V)?(a=L,q(V)):Yt(V)?(e.consume(V),L):$(V)}function M(V){return V===45||V===46||V===58||V===95||Li(V)?(e.consume(V),M):A(V)}function A(V){return V===61?(e.consume(V),B):ft(V)?(a=A,q(V)):Yt(V)?(e.consume(V),A):L(V)}function B(V){return V===null||V===60||V===61||V===62||V===96?n(V):V===34||V===39?(e.consume(V),r=V,W):ft(V)?(a=B,q(V)):Yt(V)?(e.consume(V),B):(e.consume(V),P)}function W(V){return V===r?(e.consume(V),r=void 0,G):V===null?n(V):ft(V)?(a=W,q(V)):(e.consume(V),W)}function P(V){return V===null||V===34||V===39||V===60||V===61||V===96?n(V):V===47||V===62||Nn(V)?L(V):(e.consume(V),P)}function G(V){return V===47||V===62||Nn(V)?L(V):n(V)}function $(V){return V===62?(e.consume(V),e.exit("htmlTextData"),e.exit("htmlText"),t):n(V)}function q(V){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(V),e.exit("lineEnding"),Y}function Y(V){return Yt(V)?sn(e,Q,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(V):Q(V)}function Q(V){return e.enter("htmlTextData"),a(V)}}const v0={name:"labelEnd",resolveAll:rB,resolveTo:sB,tokenize:oB},tB={tokenize:aB},nB={tokenize:lB},iB={tokenize:cB};function rB(e){let t=-1;const n=[];for(;++t=3&&(m===null||ft(m))?(e.exit("thematicBreak"),t(m)):n(m)}function d(m){return m===r?(e.consume(m),i++,d):(e.exit("thematicBreakSequence"),Yt(m)?sn(e,c,"whitespace")(m):c(m))}}const Zi={continuation:{tokenize:vB},exit:_B,name:"list",tokenize:xB},gB={partial:!0,tokenize:kB},yB={partial:!0,tokenize:bB};function xB(e,t,n){const i=this,r=i.events[i.events.length-1];let o=r&&r[1].type==="linePrefix"?r[2].sliceSerialize(r[1],!0).length:0,a=0;return c;function c(x){const v=i.containerState.type||(x===42||x===43||x===45?"listUnordered":"listOrdered");if(v==="listUnordered"?!i.containerState.marker||x===i.containerState.marker:ev(x)){if(i.containerState.type||(i.containerState.type=v,e.enter(v,{_container:!0})),v==="listUnordered")return e.enter("listItemPrefix"),x===42||x===45?e.check(Lf,n,m)(x):m(x);if(!i.interrupt||x===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),d(x)}return n(x)}function d(x){return ev(x)&&++a<10?(e.consume(x),d):(!i.interrupt||a<2)&&(i.containerState.marker?x===i.containerState.marker:x===41||x===46)?(e.exit("listItemValue"),m(x)):n(x)}function m(x){return e.enter("listItemMarker"),e.consume(x),e.exit("listItemMarker"),i.containerState.marker=i.containerState.marker||x,e.check($u,i.interrupt?n:h,e.attempt(gB,g,p))}function h(x){return i.containerState.initialBlankLine=!0,o++,g(x)}function p(x){return Yt(x)?(e.enter("listItemPrefixWhitespace"),e.consume(x),e.exit("listItemPrefixWhitespace"),g):n(x)}function g(x){return i.containerState.size=o+i.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(x)}}function vB(e,t,n){const i=this;return i.containerState._closeFlow=void 0,e.check($u,r,o);function r(c){return i.containerState.furtherBlankLines=i.containerState.furtherBlankLines||i.containerState.initialBlankLine,sn(e,t,"listItemIndent",i.containerState.size+1)(c)}function o(c){return i.containerState.furtherBlankLines||!Yt(c)?(i.containerState.furtherBlankLines=void 0,i.containerState.initialBlankLine=void 0,a(c)):(i.containerState.furtherBlankLines=void 0,i.containerState.initialBlankLine=void 0,e.attempt(yB,t,a)(c))}function a(c){return i.containerState._closeFlow=!0,i.interrupt=void 0,sn(e,e.attempt(Zi,t,n),"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(c)}}function bB(e,t,n){const i=this;return sn(e,r,"listItemIndent",i.containerState.size+1);function r(o){const a=i.events[i.events.length-1];return a&&a[1].type==="listItemIndent"&&a[2].sliceSerialize(a[1],!0).length===i.containerState.size?t(o):n(o)}}function _B(e){e.exit(this.containerState.type)}function kB(e,t,n){const i=this;return sn(e,r,"listItemPrefixWhitespace",i.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function r(o){const a=i.events[i.events.length-1];return!Yt(o)&&a&&a[1].type==="listItemPrefixWhitespace"?t(o):n(o)}}const Sw={name:"setextUnderline",resolveTo:SB,tokenize:wB};function SB(e,t){let n=e.length,i,r,o;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){i=n;break}e[n][1].type==="paragraph"&&(r=n)}else e[n][1].type==="content"&&e.splice(n,1),!o&&e[n][1].type==="definition"&&(o=n);const a={type:"setextHeading",start:{...e[i][1].start},end:{...e[e.length-1][1].end}};return e[r][1].type="setextHeadingText",o?(e.splice(r,0,["enter",a,t]),e.splice(o+1,0,["exit",e[i][1],t]),e[i][1].end={...e[o][1].end}):e[i][1]=a,e.push(["exit",a,t]),e}function wB(e,t,n){const i=this;let r;return o;function o(m){let h=i.events.length,p;for(;h--;)if(i.events[h][1].type!=="lineEnding"&&i.events[h][1].type!=="linePrefix"&&i.events[h][1].type!=="content"){p=i.events[h][1].type==="paragraph";break}return!i.parser.lazy[i.now().line]&&(i.interrupt||p)?(e.enter("setextHeadingLine"),r=m,a(m)):n(m)}function a(m){return e.enter("setextHeadingLineSequence"),c(m)}function c(m){return m===r?(e.consume(m),c):(e.exit("setextHeadingLineSequence"),Yt(m)?sn(e,d,"lineSuffix")(m):d(m))}function d(m){return m===null||ft(m)?(e.exit("setextHeadingLine"),t(m)):n(m)}}const CB={tokenize:jB};function jB(e){const t=this,n=e.attempt($u,i,e.attempt(this.parser.constructs.flowInitial,r,sn(e,e.attempt(this.parser.constructs.flow,r,e.attempt(RP,r)),"linePrefix")));return n;function i(o){if(o===null){e.consume(o);return}return e.enter("lineEndingBlank"),e.consume(o),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function r(o){if(o===null){e.consume(o);return}return e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const EB={resolveAll:JN()},NB=QN("string"),IB=QN("text");function QN(e){return{resolveAll:JN(e==="text"?TB:void 0),tokenize:t};function t(n){const i=this,r=this.parser.constructs[e],o=n.attempt(r,a,c);return a;function a(h){return m(h)?o(h):c(h)}function c(h){if(h===null){n.consume(h);return}return n.enter("data"),n.consume(h),d}function d(h){return m(h)?(n.exit("data"),o(h)):(n.consume(h),d)}function m(h){if(h===null)return!0;const p=r[h];let g=-1;if(p)for(;++g-1){const c=a[0];typeof c=="string"?a[0]=c.slice(i):a.shift()}o>0&&a.push(e[r].slice(0,o))}return a}function VB(e,t){let n=-1;const i=[];let r;for(;++n0){const $t=Ae.tokenStack[Ae.tokenStack.length-1];($t[1]||Cw).call(Ae,void 0,$t[0])}for(be.position={start:ho(pe.length>0?pe[0][1].start:{line:1,column:1,offset:0}),end:ho(pe.length>0?pe[pe.length-2][1].end:{line:1,column:1,offset:0})},Ye=-1;++Ye0&&(i.className=["language-"+r[0]]);let o={type:"element",tagName:"code",properties:i,children:[{type:"text",value:n}]};return t.meta&&(o.data={meta:t.meta}),e.patch(t,o),o=e.applyData(t,o),o={type:"element",tagName:"pre",properties:{},children:[o]},e.patch(t,o),o}function i9(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function r9(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function s9(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",i=String(t.identifier).toUpperCase(),r=ql(i.toLowerCase()),o=e.footnoteOrder.indexOf(i);let a,c=e.footnoteCounts.get(i);c===void 0?(c=0,e.footnoteOrder.push(i),a=e.footnoteOrder.length):a=o+1,c+=1,e.footnoteCounts.set(i,c);const d={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+r,id:n+"fnref-"+r+(c>1?"-"+c:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(a)}]};e.patch(t,d);const m={type:"element",tagName:"sup",properties:{},children:[d]};return e.patch(t,m),e.applyData(t,m)}function o9(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 a9(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function nI(e,t){const n=t.referenceType;let i="]";if(n==="collapsed"?i+="[]":n==="full"&&(i+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+i}];const r=e.all(t),o=r[0];o&&o.type==="text"?o.value="["+o.value:r.unshift({type:"text",value:"["});const a=r[r.length-1];return a&&a.type==="text"?a.value+=i:r.push({type:"text",value:i}),r}function l9(e,t){const n=String(t.identifier).toUpperCase(),i=e.definitionById.get(n);if(!i)return nI(e,t);const r={src:ql(i.url||""),alt:t.alt};i.title!==null&&i.title!==void 0&&(r.title=i.title);const o={type:"element",tagName:"img",properties:r,children:[]};return e.patch(t,o),e.applyData(t,o)}function c9(e,t){const n={src:ql(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const i={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,i),e.applyData(t,i)}function u9(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const i={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,i),e.applyData(t,i)}function d9(e,t){const n=String(t.identifier).toUpperCase(),i=e.definitionById.get(n);if(!i)return nI(e,t);const r={href:ql(i.url||"")};i.title!==null&&i.title!==void 0&&(r.title=i.title);const o={type:"element",tagName:"a",properties:r,children:e.all(t)};return e.patch(t,o),e.applyData(t,o)}function f9(e,t){const n={href:ql(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const i={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,i),e.applyData(t,i)}function m9(e,t,n){const i=e.all(t),r=n?p9(n):iI(t),o={},a=[];if(typeof t.checked=="boolean"){const h=i[0];let p;h&&h.type==="element"&&h.tagName==="p"?p=h:(p={type:"element",tagName:"p",properties:{},children:[]},i.unshift(p)),p.children.length>0&&p.children.unshift({type:"text",value:" "}),p.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),o.className=["task-list-item"]}let c=-1;for(;++c1}function h9(e,t){const n={},i=e.all(t);let r=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++r0){const a={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},c=m0(t.children[1]),d=LN(t.children[t.children.length-1]);c&&d&&(a.position={start:c,end:d}),r.push(a)}const o={type:"element",tagName:"table",properties:{},children:e.wrap(r,!0)};return e.patch(t,o),e.applyData(t,o)}function b9(e,t,n){const i=n?n.children:void 0,o=(i?i.indexOf(t):1)===0?"th":"td",a=n&&n.type==="table"?n.align:void 0,c=a?a.length:t.children.length;let d=-1;const m=[];for(;++d0,!0),i[0]),r=i.index+i[0].length,i=n.exec(t);return o.push(Nw(t.slice(r),r>0,!1)),o.join("")}function Nw(e,t,n){let i=0,r=e.length;if(t){let o=e.codePointAt(i);for(;o===jw||o===Ew;)i++,o=e.codePointAt(i)}if(n){let o=e.codePointAt(r-1);for(;o===jw||o===Ew;)r--,o=e.codePointAt(r-1)}return r>i?e.slice(i,r):""}function S9(e,t){const n={type:"text",value:k9(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function w9(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const C9={blockquote:e9,break:t9,code:n9,delete:i9,emphasis:r9,footnoteReference:s9,heading:o9,html:a9,imageReference:l9,image:c9,inlineCode:u9,linkReference:d9,link:f9,listItem:m9,list:h9,paragraph:g9,root:y9,strong:x9,table:v9,tableCell:_9,tableRow:b9,text:S9,thematicBreak:w9,toml:af,yaml:af,definition:af,footnoteDefinition:af};function af(){}const rI=-1,Wm=0,uu=1,cm=2,b0=3,_0=4,k0=5,S0=6,sI=7,oI=8,Iw=typeof self=="object"?self:globalThis,j9=(e,t)=>{const n=(r,o)=>(e.set(o,r),r),i=r=>{if(e.has(r))return e.get(r);const[o,a]=t[r];switch(o){case Wm:case rI:return n(a,r);case uu:{const c=n([],r);for(const d of a)c.push(i(d));return c}case cm:{const c=n({},r);for(const[d,m]of a)c[i(d)]=i(m);return c}case b0:return n(new Date(a),r);case _0:{const{source:c,flags:d}=a;return n(new RegExp(c,d),r)}case k0:{const c=n(new Map,r);for(const[d,m]of a)c.set(i(d),i(m));return c}case S0:{const c=n(new Set,r);for(const d of a)c.add(i(d));return c}case sI:{const{name:c,message:d}=a;return n(new Iw[c](d),r)}case oI:return n(BigInt(a),r);case"BigInt":return n(Object(BigInt(a)),r);case"ArrayBuffer":return n(new Uint8Array(a).buffer,a);case"DataView":{const{buffer:c}=new Uint8Array(a);return n(new DataView(c),a)}}return n(new Iw[o](a),r)};return i},Tw=e=>j9(new Map,e)(0),tl="",{toString:E9}={},{keys:N9}=Object,Gc=e=>{const t=typeof e;if(t!=="object"||!e)return[Wm,t];const n=E9.call(e).slice(8,-1);switch(n){case"Array":return[uu,tl];case"Object":return[cm,tl];case"Date":return[b0,tl];case"RegExp":return[_0,tl];case"Map":return[k0,tl];case"Set":return[S0,tl];case"DataView":return[uu,n]}return n.includes("Array")?[uu,n]:n.includes("Error")?[sI,n]:[cm,n]},lf=([e,t])=>e===Wm&&(t==="function"||t==="symbol"),I9=(e,t,n,i)=>{const r=(a,c)=>{const d=i.push(a)-1;return n.set(c,d),d},o=a=>{if(n.has(a))return n.get(a);let[c,d]=Gc(a);switch(c){case Wm:{let h=a;switch(d){case"bigint":c=oI,h=a.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+d);h=null;break;case"undefined":return r([rI],a)}return r([c,h],a)}case uu:{if(d){let g=a;return d==="DataView"?g=new Uint8Array(a.buffer):d==="ArrayBuffer"&&(g=new Uint8Array(a)),r([d,[...g]],a)}const h=[],p=r([c,h],a);for(const g of a)h.push(o(g));return p}case cm:{if(d)switch(d){case"BigInt":return r([d,a.toString()],a);case"Boolean":case"Number":case"String":return r([d,a.valueOf()],a)}if(t&&"toJSON"in a)return o(a.toJSON());const h=[],p=r([c,h],a);for(const g of N9(a))(e||!lf(Gc(a[g])))&&h.push([o(g),o(a[g])]);return p}case b0:return r([c,a.toISOString()],a);case _0:{const{source:h,flags:p}=a;return r([c,{source:h,flags:p}],a)}case k0:{const h=[],p=r([c,h],a);for(const[g,x]of a)(e||!(lf(Gc(g))||lf(Gc(x))))&&h.push([o(g),o(x)]);return p}case S0:{const h=[],p=r([c,h],a);for(const g of a)(e||!lf(Gc(g)))&&h.push(o(g));return p}}const{message:m}=a;return r([c,{name:d,message:m}],a)};return o},Rw=(e,{json:t,lossy:n}={})=>{const i=[];return I9(!(t||n),!!t,new Map,i)(e),i},um=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?Tw(Rw(e,t)):structuredClone(e):(e,t)=>Tw(Rw(e,t));function T9(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 R9(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function A9(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||T9,i=e.options.footnoteBackLabel||R9,r=e.options.footnoteLabel||"Footnotes",o=e.options.footnoteLabelTagName||"h2",a=e.options.footnoteLabelProperties||{className:["sr-only"]},c=[];let d=-1;for(;++d0&&v.push({type:"text",value:" "});let S=typeof n=="string"?n:n(d,x);typeof S=="string"&&(S={type:"text",value:S}),v.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+g+(x>1?"-"+x:""),dataFootnoteBackref:"",ariaLabel:typeof i=="string"?i:i(d,x),className:["data-footnote-backref"]},children:Array.isArray(S)?S:[S]})}const k=h[h.length-1];if(k&&k.type==="element"&&k.tagName==="p"){const S=k.children[k.children.length-1];S&&S.type==="text"?S.value+=" ":k.children.push({type:"text",value:" "}),k.children.push(...v)}else h.push(...v);const w={type:"element",tagName:"li",properties:{id:t+"fn-"+g},children:e.wrap(h,!0)};e.patch(m,w),c.push(w)}if(c.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:o,properties:{...um(a),id:"footnote-label"},children:[{type:"text",value:r}]},{type:"text",value:` -`},{type:"element",tagName:"ol",properties:{},children:e.wrap(c,!0)},{type:"text",value:` -`}]}}const Ym=(function(e){if(e==null)return L9;if(typeof e=="function")return Xm(e);if(typeof e=="object")return Array.isArray(e)?M9(e):D9(e);if(typeof e=="string")return O9(e);throw new Error("Expected function, string, or object as test")});function M9(e){const t=[];let n=-1;for(;++n":""))+")"})}return g;function g(){let x=aI,v,_,k;if((!t||o(d,m,h[h.length-1]||void 0))&&(x=$9(n(d,h)),x[0]===nv))return x;if("children"in d&&d.children){const w=d;if(w.children&&x[0]!==B9)for(_=(i?w.children.length:-1)+a,k=h.concat(w);_>-1&&_0&&n.push({type:"text",value:` -`}),n}function Aw(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=F9(e,t),i=n.one(e,void 0),r=A9(n),o=Array.isArray(i)?{type:"root",children:i}:i||{type:"root",children:[]};return r&&o.children.push({type:"text",value:` -`},r),o}function W9(e,t){return e&&"run"in e?async function(n,i){const r=Mw(n,{file:i,...t});await e.run(r,i)}:function(n,i){return Mw(n,{file:i,...e||t})}}function Dw(e){if(e)throw e}var Ug,Ow;function Y9(){if(Ow)return Ug;Ow=1;var e=Object.prototype.hasOwnProperty,t=Object.prototype.toString,n=Object.defineProperty,i=Object.getOwnPropertyDescriptor,r=function(m){return typeof Array.isArray=="function"?Array.isArray(m):t.call(m)==="[object Array]"},o=function(m){if(!m||t.call(m)!=="[object Object]")return!1;var h=e.call(m,"constructor"),p=m.constructor&&m.constructor.prototype&&e.call(m.constructor.prototype,"isPrototypeOf");if(m.constructor&&!h&&!p)return!1;var g;for(g in m);return typeof g>"u"||e.call(m,g)},a=function(m,h){n&&h.name==="__proto__"?n(m,h.name,{enumerable:!0,configurable:!0,value:h.newValue,writable:!0}):m[h.name]=h.newValue},c=function(m,h){if(h==="__proto__")if(e.call(m,h)){if(i)return i(m,h).value}else return;return m[h]};return Ug=function d(){var m,h,p,g,x,v,_=arguments[0],k=1,w=arguments.length,S=!1;for(typeof _=="boolean"&&(S=_,_=arguments[1]||{},k=2),(_==null||typeof _!="object"&&typeof _!="function")&&(_={});ka.length;let d;c&&a.push(r);try{d=e.apply(this,a)}catch(m){const h=m;if(c&&n)throw h;return r(h)}c||(d&&d.then&&typeof d.then=="function"?d.then(o,r):d instanceof Error?r(d):o(d))}function r(a,...c){n||(n=!0,t(a,...c))}function o(a){r(null,a)}}const Jr={basename:Q9,dirname:J9,extname:e$,join:t$,sep:"/"};function Q9(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Hu(e);let n=0,i=-1,r=e.length,o;if(t===void 0||t.length===0||t.length>e.length){for(;r--;)if(e.codePointAt(r)===47){if(o){n=r+1;break}}else i<0&&(o=!0,i=r+1);return i<0?"":e.slice(n,i)}if(t===e)return"";let a=-1,c=t.length-1;for(;r--;)if(e.codePointAt(r)===47){if(o){n=r+1;break}}else a<0&&(o=!0,a=r+1),c>-1&&(e.codePointAt(r)===t.codePointAt(c--)?c<0&&(i=r):(c=-1,i=a));return n===i?i=a:i<0&&(i=e.length),e.slice(n,i)}function J9(e){if(Hu(e),e.length===0)return".";let t=-1,n=e.length,i;for(;--n;)if(e.codePointAt(n)===47){if(i){t=n;break}}else i||(i=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function e$(e){Hu(e);let t=e.length,n=-1,i=0,r=-1,o=0,a;for(;t--;){const c=e.codePointAt(t);if(c===47){if(a){i=t+1;break}continue}n<0&&(a=!0,n=t+1),c===46?r<0?r=t:o!==1&&(o=1):r>-1&&(o=-1)}return r<0||n<0||o===0||o===1&&r===n-1&&r===i+1?"":e.slice(r,n)}function t$(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function i$(e,t){let n="",i=0,r=-1,o=0,a=-1,c,d;for(;++a<=e.length;){if(a2){if(d=n.lastIndexOf("/"),d!==n.length-1){d<0?(n="",i=0):(n=n.slice(0,d),i=n.length-1-n.lastIndexOf("/")),r=a,o=0;continue}}else if(n.length>0){n="",i=0,r=a,o=0;continue}}t&&(n=n.length>0?n+"/..":"..",i=2)}else n.length>0?n+="/"+e.slice(r+1,a):n=e.slice(r+1,a),i=a-r-1;r=a,o=0}else c===46&&o>-1?o++:o=-1}return n}function Hu(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const r$={cwd:s$};function s$(){return"/"}function sv(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function o$(e){if(typeof e=="string")e=new URL(e);else if(!sv(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 a$(e)}function a$(e){if(e.hostname!==""){const i=new TypeError('File URL host must be "localhost" or empty on darwin');throw i.code="ERR_INVALID_FILE_URL_HOST",i}const t=e.pathname;let n=-1;for(;++n0){let[x,...v]=h;const _=i[g][1];rv(_)&&rv(x)&&(x=Gg(!0,_,x)),i[g]=[m,x,...v]}}}}const d$=new C0().freeze();function Xg(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function Kg(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function Zg(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 zw(e){if(!rv(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function Pw(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function cf(e){return f$(e)?e:new cI(e)}function f$(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function m$(e){return typeof e=="string"||p$(e)}function p$(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const h$="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",Bw=[],$w={allowDangerousHtml:!0},g$=/^(https?|ircs?|mailto|xmpp)$/i,y$=[{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 x$(e){const t=v$(e),n=b$(e);return _$(t.runSync(t.parse(n),n),e)}function v$(e){const t=e.rehypePlugins||Bw,n=e.remarkPlugins||Bw,i=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...$w}:$w;return d$().use(JB).use(n).use(W9,i).use(t)}function b$(e){const t=e.children||"",n=new cI;return typeof t=="string"&&(n.value=t),n}function _$(e,t){const n=t.allowedElements,i=t.allowElement,r=t.components,o=t.disallowedElements,a=t.skipHtml,c=t.unwrapDisallowed,d=t.urlTransform||k$;for(const h of y$)Object.hasOwn(t,h.from)&&(""+h.from+(h.to?"use `"+h.to+"` instead":"remove it")+h$+h.id,void 0);return w0(e,m),L8(e,{Fragment:u.Fragment,components:r,ignoreInvalidStyle:!0,jsx:u.jsx,jsxs:u.jsxs,passKeys:!0,passNode:!0});function m(h,p,g){if(h.type==="raw"&&g&&typeof p=="number")return a?g.children.splice(p,1):g.children[p]={type:"text",value:h.value},p;if(h.type==="element"){let x;for(x in Hg)if(Object.hasOwn(Hg,x)&&Object.hasOwn(h.properties,x)){const v=h.properties[x],_=Hg[x];(_===null||_.includes(h.tagName))&&(h.properties[x]=d(String(v||""),x,h))}}if(h.type==="element"){let x=n?!n.includes(h.tagName):o?o.includes(h.tagName):!1;if(!x&&i&&typeof p=="number"&&(x=!i(h,p,g)),x&&g&&typeof p=="number")return c&&h.children?g.children.splice(p,1,...h.children):g.children.splice(p,1),p}}}function k$(e){const t=e.indexOf(":"),n=e.indexOf("?"),i=e.indexOf("#"),r=e.indexOf("/");return t===-1||r!==-1&&t>r||n!==-1&&t>n||i!==-1&&t>i||g$.test(e.slice(0,t))?e:""}function Hw(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let i=0,r=n.indexOf(t);for(;r!==-1;)i++,r=n.indexOf(t,r+t.length);return i}function S$(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function w$(e,t,n){const r=Ym((n||{}).ignore||[]),o=C$(t);let a=-1;for(;++a0?{type:"text",value:R}:void 0),R===!1?g.lastIndex=N+1:(v!==N&&S.push({type:"text",value:m.value.slice(v,N)}),Array.isArray(R)?S.push(...R):R&&S.push(R),v=N+j[0].length,w=!0),!g.global)break;j=g.exec(m.value)}return w?(v?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],i=n.indexOf(")");const r=Hw(e,"(");let o=Hw(e,")");for(;i!==-1&&r>o;)e+=n.slice(0,i+1),n=n.slice(i+1),i=n.indexOf(")"),o++;return[e,n]}function uI(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||la(n)||Gm(n))&&(!t||n!==47)}dI.peek=Y$;function $$(){this.buffer()}function H$(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function F$(){this.buffer()}function V$(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function U$(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Vr(this.sliceSerialize(e)).toLowerCase(),n.label=t}function G$(e){this.exit(e)}function q$(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Vr(this.sliceSerialize(e)).toLowerCase(),n.label=t}function W$(e){this.exit(e)}function Y$(){return"["}function dI(e,t,n,i){const r=n.createTracker(i);let o=r.move("[^");const a=n.enter("footnoteReference"),c=n.enter("reference");return o+=r.move(n.safe(n.associationId(e),{after:"]",before:o})),c(),a(),o+=r.move("]"),o}function X$(){return{enter:{gfmFootnoteCallString:$$,gfmFootnoteCall:H$,gfmFootnoteDefinitionLabelString:F$,gfmFootnoteDefinition:V$},exit:{gfmFootnoteCallString:U$,gfmFootnoteCall:G$,gfmFootnoteDefinitionLabelString:q$,gfmFootnoteDefinition:W$}}}function K$(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:dI},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(i,r,o,a){const c=o.createTracker(a);let d=c.move("[^");const m=o.enter("footnoteDefinition"),h=o.enter("label");return d+=c.move(o.safe(o.associationId(i),{before:d,after:"]"})),h(),d+=c.move("]:"),i.children&&i.children.length>0&&(c.shift(4),d+=c.move((t?` -`:" ")+o.indentLines(o.containerFlow(i,c.current()),t?fI:Z$))),m(),d}}function Z$(e,t,n){return t===0?e:fI(e,t,n)}function fI(e,t,n){return(n?"":" ")+e}const Q$=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];mI.peek=i7;function J$(){return{canContainEols:["delete"],enter:{strikethrough:t7},exit:{strikethrough:n7}}}function e7(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:Q$}],handlers:{delete:mI}}}function t7(e){this.enter({type:"delete",children:[]},e)}function n7(e){this.exit(e)}function mI(e,t,n,i){const r=n.createTracker(i),o=n.enter("strikethrough");let a=r.move("~~");return a+=n.containerPhrasing(e,{...r.current(),before:a,after:"~"}),a+=r.move("~~"),o(),a}function i7(){return"~"}function r7(e){return e.length}function s7(e,t){const n=t||{},i=(n.align||[]).concat(),r=n.stringLength||r7,o=[],a=[],c=[],d=[];let m=0,h=-1;for(;++hm&&(m=e[h].length);++wd[w])&&(d[w]=j)}_.push(S)}a[h]=_,c[h]=k}let p=-1;if(typeof i=="object"&&"length"in i)for(;++pd[p]&&(d[p]=S),x[p]=S),g[p]=j}a.splice(1,0,g),c.splice(1,0,x),h=-1;const v=[];for(;++h "),o.shift(2);const a=n.indentLines(n.containerFlow(e,o.current()),l7);return r(),a}function l7(e,t,n){return">"+(n?"":" ")+e}function c7(e,t){return Vw(e,t.inConstruct,!0)&&!Vw(e,t.notInConstruct,!1)}function Vw(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let i=-1;for(;++ia&&(a=o):o=1,r=i+t.length,i=n.indexOf(t,r);return a}function d7(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 f7(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 m7(e,t,n,i){const r=f7(n),o=e.value||"",a=r==="`"?"GraveAccent":"Tilde";if(d7(e,n)){const p=n.enter("codeIndented"),g=n.indentLines(o,p7);return p(),g}const c=n.createTracker(i),d=r.repeat(Math.max(u7(o,r)+1,3)),m=n.enter("codeFenced");let h=c.move(d);if(e.lang){const p=n.enter(`codeFencedLang${a}`);h+=c.move(n.safe(e.lang,{before:h,after:" ",encode:["`"],...c.current()})),p()}if(e.lang&&e.meta){const p=n.enter(`codeFencedMeta${a}`);h+=c.move(" "),h+=c.move(n.safe(e.meta,{before:h,after:` -`,encode:["`"],...c.current()})),p()}return h+=c.move(` -`),o&&(h+=c.move(o+` -`)),h+=c.move(d),m(),h}function p7(e,t,n){return(n?"":" ")+e}function j0(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 h7(e,t,n,i){const r=j0(n),o=r==='"'?"Quote":"Apostrophe",a=n.enter("definition");let c=n.enter("label");const d=n.createTracker(i);let m=d.move("[");return m+=d.move(n.safe(n.associationId(e),{before:m,after:"]",...d.current()})),m+=d.move("]: "),c(),!e.url||/[\0- \u007F]/.test(e.url)?(c=n.enter("destinationLiteral"),m+=d.move("<"),m+=d.move(n.safe(e.url,{before:m,after:">",...d.current()})),m+=d.move(">")):(c=n.enter("destinationRaw"),m+=d.move(n.safe(e.url,{before:m,after:e.title?" ":` -`,...d.current()}))),c(),e.title&&(c=n.enter(`title${o}`),m+=d.move(" "+r),m+=d.move(n.safe(e.title,{before:m,after:r,...d.current()})),m+=d.move(r),c()),a(),m}function g7(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 ju(e){return"&#x"+e.toString(16).toUpperCase()+";"}function dm(e,t,n){const i=Il(e),r=Il(t);return i===void 0?r===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:r===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:i===1?r===void 0?{inside:!1,outside:!1}:r===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:r===void 0?{inside:!1,outside:!1}:r===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}pI.peek=y7;function pI(e,t,n,i){const r=g7(n),o=n.enter("emphasis"),a=n.createTracker(i),c=a.move(r);let d=a.move(n.containerPhrasing(e,{after:r,before:c,...a.current()}));const m=d.charCodeAt(0),h=dm(i.before.charCodeAt(i.before.length-1),m,r);h.inside&&(d=ju(m)+d.slice(1));const p=d.charCodeAt(d.length-1),g=dm(i.after.charCodeAt(0),p,r);g.inside&&(d=d.slice(0,-1)+ju(p));const x=a.move(r);return o(),n.attentionEncodeSurroundingInfo={after:g.outside,before:h.outside},c+d+x}function y7(e,t,n){return n.options.emphasis||"*"}function x7(e,t){let n=!1;return w0(e,function(i){if("value"in i&&/\r?\n|\r/.test(i.value)||i.type==="break")return n=!0,nv}),!!((!e.depth||e.depth<3)&&y0(e)&&(t.options.setext||n))}function v7(e,t,n,i){const r=Math.max(Math.min(6,e.depth||1),1),o=n.createTracker(i);if(x7(e,n)){const h=n.enter("headingSetext"),p=n.enter("phrasing"),g=n.containerPhrasing(e,{...o.current(),before:` -`,after:` -`});return p(),h(),g+` -`+(r===1?"=":"-").repeat(g.length-(Math.max(g.lastIndexOf("\r"),g.lastIndexOf(` -`))+1))}const a="#".repeat(r),c=n.enter("headingAtx"),d=n.enter("phrasing");o.move(a+" ");let m=n.containerPhrasing(e,{before:"# ",after:` -`,...o.current()});return/^[\t ]/.test(m)&&(m=ju(m.charCodeAt(0))+m.slice(1)),m=m?a+" "+m:a,n.options.closeAtx&&(m+=" "+a),d(),c(),m}hI.peek=b7;function hI(e){return e.value||""}function b7(){return"<"}gI.peek=_7;function gI(e,t,n,i){const r=j0(n),o=r==='"'?"Quote":"Apostrophe",a=n.enter("image");let c=n.enter("label");const d=n.createTracker(i);let m=d.move("![");return m+=d.move(n.safe(e.alt,{before:m,after:"]",...d.current()})),m+=d.move("]("),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter("destinationLiteral"),m+=d.move("<"),m+=d.move(n.safe(e.url,{before:m,after:">",...d.current()})),m+=d.move(">")):(c=n.enter("destinationRaw"),m+=d.move(n.safe(e.url,{before:m,after:e.title?" ":")",...d.current()}))),c(),e.title&&(c=n.enter(`title${o}`),m+=d.move(" "+r),m+=d.move(n.safe(e.title,{before:m,after:r,...d.current()})),m+=d.move(r),c()),m+=d.move(")"),a(),m}function _7(){return"!"}yI.peek=k7;function yI(e,t,n,i){const r=e.referenceType,o=n.enter("imageReference");let a=n.enter("label");const c=n.createTracker(i);let d=c.move("![");const m=n.safe(e.alt,{before:d,after:"]",...c.current()});d+=c.move(m+"]["),a();const h=n.stack;n.stack=[],a=n.enter("reference");const p=n.safe(n.associationId(e),{before:d,after:"]",...c.current()});return a(),n.stack=h,o(),r==="full"||!m||m!==p?d+=c.move(p+"]"):r==="shortcut"?d=d.slice(0,-1):d+=c.move("]"),d}function k7(){return"!"}xI.peek=S7;function xI(e,t,n){let i=e.value||"",r="`",o=-1;for(;new RegExp("(^|[^`])"+r+"([^`]|$)").test(i);)r+="`";for(/[^ \r\n]/.test(i)&&(/^[ \r\n]/.test(i)&&/[ \r\n]$/.test(i)||/^`|`$/.test(i))&&(i=" "+i+" ");++o\u007F]/.test(e.url))}bI.peek=w7;function bI(e,t,n,i){const r=j0(n),o=r==='"'?"Quote":"Apostrophe",a=n.createTracker(i);let c,d;if(vI(e,n)){const h=n.stack;n.stack=[],c=n.enter("autolink");let p=a.move("<");return p+=a.move(n.containerPhrasing(e,{before:p,after:">",...a.current()})),p+=a.move(">"),c(),n.stack=h,p}c=n.enter("link"),d=n.enter("label");let m=a.move("[");return m+=a.move(n.containerPhrasing(e,{before:m,after:"](",...a.current()})),m+=a.move("]("),d(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(d=n.enter("destinationLiteral"),m+=a.move("<"),m+=a.move(n.safe(e.url,{before:m,after:">",...a.current()})),m+=a.move(">")):(d=n.enter("destinationRaw"),m+=a.move(n.safe(e.url,{before:m,after:e.title?" ":")",...a.current()}))),d(),e.title&&(d=n.enter(`title${o}`),m+=a.move(" "+r),m+=a.move(n.safe(e.title,{before:m,after:r,...a.current()})),m+=a.move(r),d()),m+=a.move(")"),c(),m}function w7(e,t,n){return vI(e,n)?"<":"["}_I.peek=C7;function _I(e,t,n,i){const r=e.referenceType,o=n.enter("linkReference");let a=n.enter("label");const c=n.createTracker(i);let d=c.move("[");const m=n.containerPhrasing(e,{before:d,after:"]",...c.current()});d+=c.move(m+"]["),a();const h=n.stack;n.stack=[],a=n.enter("reference");const p=n.safe(n.associationId(e),{before:d,after:"]",...c.current()});return a(),n.stack=h,o(),r==="full"||!m||m!==p?d+=c.move(p+"]"):r==="shortcut"?d=d.slice(0,-1):d+=c.move("]"),d}function C7(){return"["}function E0(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 j7(e){const t=E0(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 E7(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 kI(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 N7(e,t,n,i){const r=n.enter("list"),o=n.bulletCurrent;let a=e.ordered?E7(n):E0(n);const c=e.ordered?a==="."?")":".":j7(n);let d=t&&n.bulletLastUsed?a===n.bulletLastUsed:!1;if(!e.ordered){const h=e.children?e.children[0]:void 0;if((a==="*"||a==="-")&&h&&(!h.children||!h.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(d=!0),kI(n)===a&&h){let p=-1;for(;++p-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+o);let a=o.length+1;(r==="tab"||r==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(a=Math.ceil(a/4)*4);const c=n.createTracker(i);c.move(o+" ".repeat(a-o.length)),c.shift(a);const d=n.enter("listItem"),m=n.indentLines(n.containerFlow(e,c.current()),h);return d(),m;function h(p,g,x){return g?(x?"":" ".repeat(a))+p:(x?o:o+" ".repeat(a-o.length))+p}}function R7(e,t,n,i){const r=n.enter("paragraph"),o=n.enter("phrasing"),a=n.containerPhrasing(e,i);return o(),r(),a}const A7=Ym(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function M7(e,t,n,i){return(e.children.some(function(a){return A7(a)})?n.containerPhrasing:n.containerFlow).call(n,e,i)}function D7(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}SI.peek=O7;function SI(e,t,n,i){const r=D7(n),o=n.enter("strong"),a=n.createTracker(i),c=a.move(r+r);let d=a.move(n.containerPhrasing(e,{after:r,before:c,...a.current()}));const m=d.charCodeAt(0),h=dm(i.before.charCodeAt(i.before.length-1),m,r);h.inside&&(d=ju(m)+d.slice(1));const p=d.charCodeAt(d.length-1),g=dm(i.after.charCodeAt(0),p,r);g.inside&&(d=d.slice(0,-1)+ju(p));const x=a.move(r+r);return o(),n.attentionEncodeSurroundingInfo={after:g.outside,before:h.outside},c+d+x}function O7(e,t,n){return n.options.strong||"*"}function L7(e,t,n,i){return n.safe(e.value,i)}function z7(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 P7(e,t,n){const i=(kI(n)+(n.options.ruleSpaces?" ":"")).repeat(z7(n));return n.options.ruleSpaces?i.slice(0,-1):i}const wI={blockquote:a7,break:Uw,code:m7,definition:h7,emphasis:pI,hardBreak:Uw,heading:v7,html:hI,image:gI,imageReference:yI,inlineCode:xI,link:bI,linkReference:_I,list:N7,listItem:T7,paragraph:R7,root:M7,strong:SI,text:L7,thematicBreak:P7};function B7(){return{enter:{table:$7,tableData:Gw,tableHeader:Gw,tableRow:F7},exit:{codeText:V7,table:H7,tableData:ty,tableHeader:ty,tableRow:ty}}}function $7(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 H7(e){this.exit(e),this.data.inTable=void 0}function F7(e){this.enter({type:"tableRow",children:[]},e)}function ty(e){this.exit(e)}function Gw(e){this.enter({type:"tableCell",children:[]},e)}function V7(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,U7));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function U7(e,t){return t==="|"?t:e}function G7(e){const t=e||{},n=t.tableCellPadding,i=t.tablePipeAlign,r=t.stringLength,o=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` -`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:g,table:a,tableCell:d,tableRow:c}};function a(x,v,_,k){return m(h(x,_,k),x.align)}function c(x,v,_,k){const w=p(x,_,k),S=m([w]);return S.slice(0,S.indexOf(` -`))}function d(x,v,_,k){const w=_.enter("tableCell"),S=_.enter("phrasing"),j=_.containerPhrasing(x,{...k,before:o,after:o});return S(),w(),j}function m(x,v){return s7(x,{align:v,alignDelimiters:i,padding:n,stringLength:r})}function h(x,v,_){const k=x.children;let w=-1;const S=[],j=v.enter("table");for(;++w0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const cH={tokenize:yH,partial:!0};function uH(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:pH,continuation:{tokenize:hH},exit:gH}},text:{91:{name:"gfmFootnoteCall",tokenize:mH},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:dH,resolveTo:fH}}}}function dH(e,t,n){const i=this;let r=i.events.length;const o=i.parser.gfmFootnotes||(i.parser.gfmFootnotes=[]);let a;for(;r--;){const d=i.events[r][1];if(d.type==="labelImage"){a=d;break}if(d.type==="gfmFootnoteCall"||d.type==="labelLink"||d.type==="label"||d.type==="image"||d.type==="link")break}return c;function c(d){if(!a||!a._balanced)return n(d);const m=Vr(i.sliceSerialize({start:a.end,end:i.now()}));return m.codePointAt(0)!==94||!o.includes(m.slice(1))?n(d):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(d),e.exit("gfmFootnoteCallLabelMarker"),t(d))}}function fH(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const i={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},r={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};r.end.column++,r.end.offset++,r.end._bufferIndex++;const o={type:"gfmFootnoteCallString",start:Object.assign({},r.end),end:Object.assign({},e[e.length-1][1].start)},a={type:"chunkString",contentType:"string",start:Object.assign({},o.start),end:Object.assign({},o.end)},c=[e[n+1],e[n+2],["enter",i,t],e[n+3],e[n+4],["enter",r,t],["exit",r,t],["enter",o,t],["enter",a,t],["exit",a,t],["exit",o,t],e[e.length-2],e[e.length-1],["exit",i,t]];return e.splice(n,e.length-n+1,...c),e}function mH(e,t,n){const i=this,r=i.parser.gfmFootnotes||(i.parser.gfmFootnotes=[]);let o=0,a;return c;function c(p){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),d}function d(p){return p!==94?n(p):(e.enter("gfmFootnoteCallMarker"),e.consume(p),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",m)}function m(p){if(o>999||p===93&&!a||p===null||p===91||Nn(p))return n(p);if(p===93){e.exit("chunkString");const g=e.exit("gfmFootnoteCallString");return r.includes(Vr(i.sliceSerialize(g)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(p)}return Nn(p)||(a=!0),o++,e.consume(p),p===92?h:m}function h(p){return p===91||p===92||p===93?(e.consume(p),o++,m):m(p)}}function pH(e,t,n){const i=this,r=i.parser.gfmFootnotes||(i.parser.gfmFootnotes=[]);let o,a=0,c;return d;function d(v){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(v),e.exit("gfmFootnoteDefinitionLabelMarker"),m}function m(v){return v===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(v),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",h):n(v)}function h(v){if(a>999||v===93&&!c||v===null||v===91||Nn(v))return n(v);if(v===93){e.exit("chunkString");const _=e.exit("gfmFootnoteDefinitionLabelString");return o=Vr(i.sliceSerialize(_)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(v),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),g}return Nn(v)||(c=!0),a++,e.consume(v),v===92?p:h}function p(v){return v===91||v===92||v===93?(e.consume(v),a++,h):h(v)}function g(v){return v===58?(e.enter("definitionMarker"),e.consume(v),e.exit("definitionMarker"),r.includes(o)||r.push(o),sn(e,x,"gfmFootnoteDefinitionWhitespace")):n(v)}function x(v){return t(v)}}function hH(e,t,n){return e.check($u,t,e.attempt(cH,t,n))}function gH(e){e.exit("gfmFootnoteDefinition")}function yH(e,t,n){const i=this;return sn(e,r,"gfmFootnoteDefinitionIndent",5);function r(o){const a=i.events[i.events.length-1];return a&&a[1].type==="gfmFootnoteDefinitionIndent"&&a[2].sliceSerialize(a[1],!0).length===4?t(o):n(o)}}function xH(e){let n=(e||{}).singleTilde;const i={name:"strikethrough",tokenize:o,resolveAll:r};return n==null&&(n=!0),{text:{126:i},insideSpan:{null:[i]},attentionMarkers:{null:[126]}};function r(a,c){let d=-1;for(;++d1?d(v):(a.consume(v),p++,x);if(p<2&&!n)return d(v);const k=a.exit("strikethroughSequenceTemporary"),w=Il(v);return k._open=!w||w===2&&!!_,k._close=!_||_===2&&!!w,c(v)}}}class vH{constructor(){this.map=[]}add(t,n,i){bH(this,t,n,i)}consume(t){if(this.map.sort(function(o,a){return o[0]-a[0]}),this.map.length===0)return;let n=this.map.length;const i=[];for(;n>0;)n-=1,i.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];i.push(t.slice()),t.length=0;let r=i.pop();for(;r;){for(const o of r)t.push(o);r=i.pop()}this.map.length=0}}function bH(e,t,n,i){let r=0;if(!(n===0&&i.length===0)){for(;r-1;){const P=i.events[A][1].type;if(P==="lineEnding"||P==="linePrefix")A--;else break}const B=A>-1?i.events[A][1].type:null,W=B==="tableHead"||B==="tableRow"?R:d;return W===R&&i.parser.lazy[i.now().line]?n(M):W(M)}function d(M){return e.enter("tableHead"),e.enter("tableRow"),m(M)}function m(M){return M===124||(a=!0,o+=1),h(M)}function h(M){return M===null?n(M):ft(M)?o>1?(o=0,i.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(M),e.exit("lineEnding"),x):n(M):Yt(M)?sn(e,h,"whitespace")(M):(o+=1,a&&(a=!1,r+=1),M===124?(e.enter("tableCellDivider"),e.consume(M),e.exit("tableCellDivider"),a=!0,h):(e.enter("data"),p(M)))}function p(M){return M===null||M===124||Nn(M)?(e.exit("data"),h(M)):(e.consume(M),M===92?g:p)}function g(M){return M===92||M===124?(e.consume(M),p):p(M)}function x(M){return i.interrupt=!1,i.parser.lazy[i.now().line]?n(M):(e.enter("tableDelimiterRow"),a=!1,Yt(M)?sn(e,v,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(M):v(M))}function v(M){return M===45||M===58?k(M):M===124?(a=!0,e.enter("tableCellDivider"),e.consume(M),e.exit("tableCellDivider"),_):O(M)}function _(M){return Yt(M)?sn(e,k,"whitespace")(M):k(M)}function k(M){return M===58?(o+=1,a=!0,e.enter("tableDelimiterMarker"),e.consume(M),e.exit("tableDelimiterMarker"),w):M===45?(o+=1,w(M)):M===null||ft(M)?N(M):O(M)}function w(M){return M===45?(e.enter("tableDelimiterFiller"),S(M)):O(M)}function S(M){return M===45?(e.consume(M),S):M===58?(a=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(M),e.exit("tableDelimiterMarker"),j):(e.exit("tableDelimiterFiller"),j(M))}function j(M){return Yt(M)?sn(e,N,"whitespace")(M):N(M)}function N(M){return M===124?v(M):M===null||ft(M)?!a||r!==o?O(M):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(M)):O(M)}function O(M){return n(M)}function R(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||ft(M)?(e.exit("tableRow"),t(M)):Yt(M)?sn(e,D,"whitespace")(M):(e.enter("data"),I(M))}function I(M){return M===null||M===124||Nn(M)?(e.exit("data"),D(M)):(e.consume(M),M===92?L:I)}function L(M){return M===92||M===124?(e.consume(M),I):I(M)}}function wH(e,t){let n=-1,i=!0,r=0,o=[0,0,0,0],a=[0,0,0,0],c=!1,d=0,m,h,p;const g=new vH;for(;++nn[2]+1){const v=n[2]+1,_=n[3]-n[2]-1;e.add(v,_,[])}}e.add(n[3]+1,0,[["exit",p,t]])}return r!==void 0&&(o.end=Object.assign({},ol(t.events,r)),e.add(r,0,[["exit",o,t]]),o=void 0),o}function Ww(e,t,n,i,r){const o=[],a=ol(t.events,n);r&&(r.end=Object.assign({},a),o.push(["exit",r,t])),i.end=Object.assign({},a),o.push(["exit",i,t]),e.add(n+1,0,o)}function ol(e,t){const n=e[t],i=n[0]==="enter"?"start":"end";return n[1][i]}const CH={name:"tasklistCheck",tokenize:EH};function jH(){return{text:{91:CH}}}function EH(e,t,n){const i=this;return r;function r(d){return i.previous!==null||!i._gfmTasklistFirstContentOfListItem?n(d):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(d),e.exit("taskListCheckMarker"),o)}function o(d){return Nn(d)?(e.enter("taskListCheckValueUnchecked"),e.consume(d),e.exit("taskListCheckValueUnchecked"),a):d===88||d===120?(e.enter("taskListCheckValueChecked"),e.consume(d),e.exit("taskListCheckValueChecked"),a):n(d)}function a(d){return d===93?(e.enter("taskListCheckMarker"),e.consume(d),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),c):n(d)}function c(d){return ft(d)?t(d):Yt(d)?e.check({tokenize:NH},t,n)(d):n(d)}}function NH(e,t,n){return sn(e,i,"whitespace");function i(r){return r===null?n(r):t(r)}}function IH(e){return VN([eH(),uH(),xH(e),kH(),jH()])}const TH={};function RH(e){const t=this,n=e||TH,i=t.data(),r=i.micromarkExtensions||(i.micromarkExtensions=[]),o=i.fromMarkdownExtensions||(i.fromMarkdownExtensions=[]),a=i.toMarkdownExtensions||(i.toMarkdownExtensions=[]);r.push(IH(n)),o.push(K7()),a.push(Z7(n))}const AH=30,ny=10;function MH({className:e,children:t}){const[n,i]=C.useState(!1),[r,o]=C.useState(!1),a=String(t).replace(/\n$/,""),c=e?.replace("language-","")||"",d=a.split(` -`),m=d.length>AH,h=m?d.length-ny*2:0,p=C.useCallback(()=>{navigator.clipboard.writeText(a),i(!0),setTimeout(()=>i(!1),1500)},[a]);return u.jsxs("div",{className:"code-block-wrap",children:[u.jsxs("div",{className:"code-block-header",children:[u.jsxs("span",{className:"code-block-lang",children:[c||"code",m?` (${d.length} lines)`:""]}),u.jsx("button",{className:"code-block-copy",onClick:p,children:n?u.jsxs(u.Fragment,{children:[u.jsx(Hl,{})," ",u.jsx("span",{children:"Copied"})]}):u.jsxs(u.Fragment,{children:[u.jsx(Rm,{})," ",u.jsx("span",{children:"Copy"})]})})]}),u.jsx("pre",{children:u.jsx("code",{className:e,children:m&&!r?u.jsxs(u.Fragment,{children:[d.slice(0,ny).join(` -`)+` -`,u.jsxs("span",{className:"code-block-omitted",onClick:()=>o(!0),children:["... +",h," lines (click to expand)"]}),` -`+d.slice(-ny).join(` -`)]}):a})}),m&&r&&u.jsxs("button",{className:"code-block-collapse-btn",onClick:()=>o(!1),children:["Collapse (",d.length," lines)"]})]})}const DH={code({className:e,children:t,...n}){return e?.startsWith("language-")?u.jsx(MH,{className:e,children:t}):u.jsx("code",{className:e,...n,children:t})}},OH=3e3,LH=60,iy=800;function Yw(e){if(e.length>OH)return!0;let t=0;for(let n=0;n=LH)return!0;return!1}function zH(e){const t=e.lastIndexOf(` -`,iy);return e.slice(0,t>iy/2?t:iy)}const bi=Rt.memo(function({content:t,className:n="msg-content-agent",collapseMode:i="auto"}){const r=i!=="never"&&Yw(t),[o,a]=C.useState(r);C.useEffect(()=>{a(i!=="never"&&Yw(t))},[i,t]);const c=o?zH(t):t,d=t.split(` -`).length,m=t.length;return u.jsxs("div",{className:n,children:[u.jsx(x$,{remarkPlugins:[RH],components:DH,children:c}),r&&o&&u.jsxs("button",{className:"msg-collapse-toggle",onClick:()=>a(!1),children:["Show more (",d," lines, ",(m/1e3).toFixed(1),"k chars)"]}),r&&!o&&u.jsx("button",{className:"msg-collapse-toggle",onClick:()=>a(!0),children:"Show less"})]})}),Xw={native:"OpenOPC Native",codex:"Codex",claude_code:"Claude Code",cursor:"Cursor",opencode:"OpenCode"},Eu="codex",ry="native",PH=["codex","native","claude_code","cursor","opencode"],BH=["native","codex","claude_code","cursor","opencode"];function MI(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 DI(e){const t=MI(e);return t.kind==="fallback"?"fallback:":`${t.kind}:${t.id??""}`}function $H(e,t,n){const i=String(e.role_id??"").trim(),r=String(e.role_label??"").trim(),o=`${i} ${r} ${e.role_responsibility??""}`.toLowerCase(),a=new Set((e.same_role_employee_ids??[]).map(m=>String(m??"").trim()).filter(Boolean)),c=t.map(m=>{const h=String(m.employee_id??"").trim(),p=String(m.employee_name??h).trim()||h,g=String(m.role_id??"").trim(),x=String(m.category??"").trim(),v=[g,x].filter(Boolean).join(" · ")||h;return{kind:"employee",id:h,name:p,subtitle:v,category:x,searchText:`${h} ${p} ${g} ${x} ${(m.domains??[]).join(" ")} ${(m.tags??[]).join(" ")}`.toLowerCase(),rank:a.has(h)||g===i?0:2}}).filter(m=>m.id).sort((m,h)=>m.rank-h.rank||m.name.localeCompare(h.name)),d=n.map(m=>{const h=String(m.template_id??"").trim(),p=String(m.template_name??h).trim()||h,g=String(m.category??"").trim(),x=[g,h].filter(Boolean).join(" · ")||h,v=`${h} ${p} ${g} ${(m.domains??[]).join(" ")} ${(m.tags??[]).join(" ")}`.toLowerCase(),_=o.split(/[^a-z0-9]+/).filter(k=>k.length>=3).reduce((k,w)=>k+(v.includes(w)?1:0),0);return{kind:"template",id:h,name:p,subtitle:x,category:g,searchText:v,rank:_}}).filter(m=>m.id).sort((m,h)=>h.rank-m.rank||m.name.localeCompare(h.name));return[...c,...d,{kind:"fallback",id:"",name:"Fallback role-only",subtitle:"No employee override",category:"fallback",searchText:"fallback role only no employee override"}]}function HH(e,t){const n=DI(t);return e.find(i=>`${i.kind}:${i.id}`===n)??e[0]}function FH(e,t){const n=t.toLowerCase().split(/\s+/).filter(Boolean);return n.length===0?!0:n.every(i=>e.searchText.includes(i))}function VH(e){return e.map(t=>{const n=String(t.role_id??"").trim(),i=String(t.existing_employee?.employee_id??"").trim(),r=String(t.candidate?.template_id??"").trim(),o=i?{kind:"employee",id:i}:r?{kind:"template",id:r}:{kind:"fallback"};return{role_id:n,role_label:t.role_labels?.[0]??n,role_responsibility:"",default_selection:o,same_role_employee_ids:t.existing_employee_ids??[],fallback_available:!0,default_agent:t.default_agent??Eu,selected_agent:t.selected_agent??t.default_agent??Eu,default_source:"recruitment"}}).filter(t=>t.role_id)}function UH(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 Kw(e,t){const n={},i=e.staffing_selections??{};for(const r of t){const o=String(r.role_id??"").trim();o&&(n[o]=MI(i[o]??r.default_selection))}return n}function Zw(e,t){const n=e.recruitment_role_agents??{},i={};for(const r of t){const o=String(r.role_id??"").trim();o&&(i[o]=n[o]??r.selected_agent??r.default_agent??Eu)}return i}function GH(e){return!!(String(e.checkpoint_response_message_id??"").trim()||String(e.checkpoint_responded_at??"").trim()||String(e.checkpoint_reply_kind??"").trim())}const qH=Rt.memo(function({meta:t,onReply:n,responded:i}){const r=t.proposals??[],o=C.useMemo(()=>{const L={};for(const M of r){const A=String(M.role_id??"").trim();A&&(L[A]=M)}return L},[r]),a=C.useMemo(()=>t.staffing_roles?.length?t.staffing_roles:VH(r),[t.staffing_roles,r]),c=t.staffing_pool?.employees??[],d=t.staffing_pool?.templates??[],m=t.recruitment_rationales??[],h=C.useMemo(()=>{const L={};for(const M of a){const A=String(M.role_id??"").trim();A&&(L[A]=$H(M,c,d))}return L},[c,a,d]),[p,g]=C.useState({}),[x,v]=C.useState(""),[_,k]=C.useState(()=>Kw(t,a)),[w,S]=C.useState(()=>Zw(t,a)),[j,N]=C.useState(t.recruitment_agent??ry),O=i;C.useEffect(()=>{!O||!GH(t)||(k(Kw(t,a)),S(Zw(t,a)),N(t.recruitment_agent??ry))},[O,t,a]),C.useEffect(()=>{N(t.recruitment_agent??ry)},[t.recruitment_agent]);const R=C.useCallback(L=>{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:L,staffing_selections:_,recruitment_agent:j,recruitment_role_agents:a.reduce((B,W)=>{const P=String(W.role_id??"").trim();return P&&(B[P]=w[P]??W.selected_agent??W.default_agent??Eu),B},{})}},[t.checkpoint_id,t.checkpoint_type,j,w,a,_]),D=C.useCallback(()=>{O||n("approve",R("approve"))},[R,O,n]),I=C.useCallback(()=>{O||!x.trim()||(n(x.trim(),R("feedback")),v(""))},[R,O,x,n]);return u.jsxs("div",{className:"ckpt-panel ckpt-recruitment",children:[u.jsxs("div",{className:"ckpt-header",children:[u.jsx("div",{className:"ckpt-icon ckpt-icon-recruit",children:u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[u.jsx("circle",{cx:"6",cy:"5",r:"3"}),u.jsx("path",{d:"M2 14c0-2.2 1.8-4 4-4s4 1.8 4 4"}),u.jsx("path",{d:"M12 5v4M10 7h4"})]})}),u.jsx("div",{className:"ckpt-title",children:"Recruitment Review"}),u.jsx("span",{className:"ckpt-badge ckpt-badge-profile",children:t.company_profile||"corporate"}),O&&u.jsx("span",{className:"ckpt-badge ckpt-badge-responded",children:"Responded"})]}),t.summary&&u.jsx("div",{className:"ckpt-summary",children:t.summary}),u.jsxs("div",{className:"ckpt-recruiter-agent",children:[u.jsx("label",{className:"ckpt-agent-label",htmlFor:`recruitment-recruiter-agent-${t.checkpoint_id}`,children:"Recruiter Agent"}),u.jsx("select",{id:`recruitment-recruiter-agent-${t.checkpoint_id}`,className:"ckpt-agent-select",value:j,onChange:L=>N(L.target.value),disabled:O,children:BH.map(L=>u.jsx("option",{value:L,children:Xw[L]},L))})]}),m.length>0&&u.jsx("div",{className:"ckpt-recruitment-reasons",children:m.map(L=>u.jsxs("div",{className:"ckpt-recruitment-reason",children:[u.jsxs("div",{className:"ckpt-proposal-header",children:[u.jsx("span",{className:"ckpt-role-name",children:L.role_id}),L.role_label&&L.role_label!==L.role_id&&u.jsx("span",{className:"ckpt-field-tag",children:L.role_label}),L.selection_label&&u.jsx("span",{className:"ckpt-badge ckpt-badge-template",children:L.selection_label})]}),L.rationale&&u.jsx("div",{className:"ckpt-rationale",children:L.rationale})]},L.role_id))}),u.jsx("div",{className:"ckpt-staffing-grid",children:a.map(L=>{const M=String(L.role_id??"").trim(),A=h[M]??[{kind:"fallback",id:"",name:"Fallback role-only",subtitle:"No employee override",category:"fallback",searchText:"fallback role only no employee override"}],B=HH(A,_[M]),W=o[M],P=p[M]??"",G=A.filter($=>FH($,P)).slice(0,8);return u.jsxs("div",{className:"ckpt-staffing-card",children:[u.jsxs("div",{className:"ckpt-proposal-header",children:[u.jsx("span",{className:"ckpt-role-name",children:M}),u.jsx("span",{className:`ckpt-badge ckpt-badge-${B.kind}`,children:B.kind})]}),L.role_label&&L.role_label!==M&&u.jsx("div",{className:"ckpt-role-labels",children:u.jsx("span",{className:"ckpt-field-tag",children:L.role_label})}),u.jsxs("div",{className:"ckpt-staffing-selected",children:[u.jsx("div",{className:"ckpt-cand-name",children:UH(W,B)}),u.jsxs("div",{className:"ckpt-cand-meta",children:[u.jsx("span",{className:"ckpt-cand-category",children:B.category}),u.jsx("span",{className:"ckpt-domain-tag",children:B.subtitle})]})]}),u.jsx("input",{className:"ckpt-staffing-search",value:P,onChange:$=>g(q=>({...q,[M]:$.target.value})),placeholder:"Search employees or templates...",disabled:O}),u.jsx("div",{className:"ckpt-staffing-options",children:G.map($=>{const q=`${$.kind}:${$.id}`===DI(_[M]);return u.jsxs("button",{className:`ckpt-staffing-option${q?" active":""}`,onClick:()=>k(Y=>({...Y,[M]:{kind:$.kind,id:$.id}})),disabled:O,title:$.subtitle,children:[u.jsx("span",{className:"ckpt-staffing-option-kind",children:$.kind}),u.jsx("span",{className:"ckpt-staffing-option-name",children:$.name})]},`${$.kind}:${$.id}`)})}),u.jsxs("div",{className:"ckpt-agent-picker",children:[u.jsx("label",{className:"ckpt-agent-label",htmlFor:`recruit-agent-${t.checkpoint_id}-${M}`,children:"Execution Agent"}),u.jsx("select",{id:`recruit-agent-${t.checkpoint_id}-${M}`,className:"ckpt-agent-select",value:w[M]??L.selected_agent??L.default_agent??Eu,onChange:$=>S(q=>({...q,[M]:$.target.value})),disabled:O,children:PH.map($=>u.jsx("option",{value:$,children:Xw[$]},$))})]})]},M)})}),!O&&u.jsxs("div",{className:"ckpt-actions ckpt-actions-inline-feedback",children:[u.jsx("button",{className:"ckpt-btn ckpt-btn-approve",onClick:D,children:"Approve"}),u.jsx("textarea",{className:"ckpt-feedback-input ckpt-feedback-inline-input",placeholder:"Feedback to refine recruitment...",value:x,onChange:L=>v(L.target.value),rows:2}),u.jsx("button",{className:"ckpt-btn ckpt-btn-feedback",onClick:I,disabled:!x.trim(),children:"Send Feedback"})]})]})}),Qw={native:"OpenOPC Native",codex:"Codex",claude_code:"Claude Code",cursor:"Cursor",opencode:"OpenCode"},av="codex",sy="native",WH=["codex","native","claude_code","cursor","opencode"],YH=["native","codex","claude_code","cursor","opencode"];function OI(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 LI(e){const t=OI(e);return t.kind==="fallback"?"fallback:":`${t.kind}:${t.id??""}`}function XH(e,t,n){const i=String(e.role_id??"").trim(),r=String(e.role_label??"").trim(),o=`${i} ${r} ${e.role_responsibility??""}`.toLowerCase(),a=new Set((e.same_role_employee_ids??[]).map(h=>String(h??"").trim()).filter(Boolean)),c=h=>{const p=`${h.template_id??""} ${h.template_name??""} ${h.category??""} ${(h.domains??[]).join(" ")} ${(h.tags??[]).join(" ")}`.toLowerCase(),g=String(h.category??"").toLowerCase();let x=0;for(const v of o.split(/[^a-z0-9]+/).filter(_=>_.length>=3))(p.includes(v)||g&&v.includes(g))&&(x+=1);return(p.includes(i.replace(/_/g,"-"))||p.includes(i.replace(/_/g," ")))&&(x+=2),x},d=t.map(h=>{const p=String(h.employee_id??"").trim(),g=String(h.employee_name??p).trim()||p,x=String(h.role_id??"").trim(),v=String(h.category??"").trim(),_=[x,v].filter(Boolean).join(" · ")||p;return{kind:"employee",id:p,name:g,subtitle:_,category:v,searchText:`${p} ${g} ${x} ${v} ${(h.domains??[]).join(" ")} ${(h.tags??[]).join(" ")}`.toLowerCase(),rank:a.has(p)||x===i?0:2}}).filter(h=>h.id).sort((h,p)=>h.rank-p.rank||h.name.localeCompare(p.name)),m=n.map(h=>{const p=String(h.template_id??"").trim(),g=String(h.template_name??p).trim()||p,x=String(h.category??"").trim(),v=[x,p].filter(Boolean).join(" · ")||p;return{kind:"template",id:p,name:g,subtitle:v,category:x,searchText:`${p} ${g} ${x} ${(h.domains??[]).join(" ")} ${(h.tags??[]).join(" ")}`.toLowerCase(),rank:c(h)}}).filter(h=>h.id).sort((h,p)=>p.rank-h.rank||h.name.localeCompare(p.name));return[...d,...m,{kind:"fallback",id:"",name:"Fallback role-only",subtitle:"No employee override",category:"fallback",searchText:"fallback role only no employee override"}]}function KH(e,t){const n=LI(t);return e.find(i=>`${i.kind}:${i.id}`===n)??e[0]}function ZH(e,t){const n=t.toLowerCase().split(/\s+/).filter(Boolean);return n.length===0?!0:n.every(i=>e.searchText.includes(i))}function Jw(e,t){const n={},i=e.staffing_selections??{};for(const r of t){const o=String(r.role_id??"").trim();o&&(n[o]=OI(i[o]??r.default_selection))}return n}function eC(e,t){const n=e.recruitment_role_agents??{},i={};for(const r of t){const o=String(r.role_id??"").trim();o&&(i[o]=n[o]??r.selected_agent??r.default_agent??av)}return i}function QH(e){return!!(String(e.checkpoint_response_message_id??"").trim()||String(e.checkpoint_responded_at??"").trim()||String(e.staffing_action??"").trim())}const JH=Rt.memo(function({meta:t,onReply:n,responded:i}){const r=C.useMemo(()=>t.staffing_roles??[],[t.staffing_roles]),o=t.staffing_pool?.employees??[],a=t.staffing_pool?.templates??[],c=C.useMemo(()=>{const O={};for(const R of r){const D=String(R.role_id??"").trim();D&&(O[D]=XH(R,o,a))}return O},[o,r,a]),[d,m]=C.useState({}),[h,p]=C.useState(()=>Jw(t,r)),[g,x]=C.useState(()=>eC(t,r)),[v,_]=C.useState(t.recruitment_agent??sy),k=i,w=t.recommended_action==="auto_recruit"&&a.length>0;C.useEffect(()=>{!k||!QH(t)||(p(Jw(t,r)),x(eC(t,r)),_(t.recruitment_agent??sy))},[k,t,r]),C.useEffect(()=>{_(t.recruitment_agent??sy)},[t.recruitment_agent]);const S=C.useCallback(O=>{const R=String(t.checkpoint_id??"").trim();if(!R)throw new Error("Staffing checkpoint reply requires checkpoint_id metadata.");return{response_to_checkpoint_id:R,response_to_checkpoint_type:"company_staffing_selection",staffing_action:O,staffing_selections:h,recruitment_agent:v,recruitment_role_agents:r.reduce((D,I)=>{const L=String(I.role_id??"").trim();return L&&(D[L]=g[L]??I.selected_agent??I.default_agent??av),D},{})}},[t.checkpoint_id,v,g,r,h]),j=C.useCallback(()=>{k||n("approve",S("manual_approve"))},[S,k,n]),N=C.useCallback(()=>{k||n("auto recruit",S("auto_recruit"))},[S,k,n]);return u.jsxs("div",{className:"ckpt-panel ckpt-staffing",children:[u.jsxs("div",{className:"ckpt-header",children:[u.jsx("div",{className:"ckpt-icon ckpt-icon-staffing",children:u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[u.jsx("path",{d:"M6 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z"}),u.jsx("path",{d:"M1.5 14c.6-2.5 2.2-4 4.5-4s3.9 1.5 4.5 4"}),u.jsx("path",{d:"M12.5 3.5v5M10 6h5"})]})}),u.jsx("div",{className:"ckpt-title",children:"Manual Staffing"}),u.jsx("span",{className:"ckpt-badge ckpt-badge-profile",children:t.company_profile||"corporate"}),w&&!k&&u.jsx("span",{className:"ckpt-badge ckpt-badge-scope",children:"Recruit recommended"}),k&&u.jsx("span",{className:"ckpt-badge ckpt-badge-responded",children:"Responded"})]}),t.summary&&u.jsx("div",{className:"ckpt-summary",children:t.summary}),u.jsxs("div",{className:"ckpt-recruiter-agent",children:[u.jsx("label",{className:"ckpt-agent-label",htmlFor:`staffing-recruiter-agent-${t.checkpoint_id}`,children:"Recruiter Agent"}),u.jsx("select",{id:`staffing-recruiter-agent-${t.checkpoint_id}`,className:"ckpt-agent-select",value:v,onChange:O=>_(O.target.value),disabled:k,children:YH.map(O=>u.jsx("option",{value:O,children:Qw[O]},O))})]}),u.jsx("div",{className:"ckpt-staffing-grid",children:r.map(O=>{const R=String(O.role_id??"").trim(),D=c[R]??[{kind:"fallback",id:"",name:"Fallback role-only",subtitle:"No employee override",category:"fallback",searchText:"fallback role only no employee override"}],I=KH(D,h[R]),L=d[R]??"",M=D.filter(A=>ZH(A,L)).slice(0,8);return u.jsxs("div",{className:"ckpt-staffing-card",children:[u.jsxs("div",{className:"ckpt-proposal-header",children:[u.jsx("span",{className:"ckpt-role-name",children:R}),u.jsx("span",{className:`ckpt-badge ckpt-badge-${I.kind}`,children:I.kind})]}),O.role_label&&O.role_label!==R&&u.jsx("div",{className:"ckpt-role-labels",children:u.jsx("span",{className:"ckpt-field-tag",children:O.role_label})}),u.jsxs("div",{className:"ckpt-staffing-selected",children:[u.jsx("div",{className:"ckpt-cand-name",children:I.name}),u.jsxs("div",{className:"ckpt-cand-meta",children:[u.jsx("span",{className:"ckpt-cand-category",children:I.category}),u.jsx("span",{className:"ckpt-domain-tag",children:I.subtitle})]})]}),u.jsx("input",{className:"ckpt-staffing-search",value:L,onChange:A=>m(B=>({...B,[R]:A.target.value})),placeholder:"Search employees or templates...",disabled:k}),u.jsx("div",{className:"ckpt-staffing-options",children:M.map(A=>{const B=`${A.kind}:${A.id}`===LI(h[R]);return u.jsxs("button",{className:`ckpt-staffing-option${B?" active":""}`,onClick:()=>p(W=>({...W,[R]:{kind:A.kind,id:A.id}})),disabled:k,title:A.subtitle,children:[u.jsx("span",{className:"ckpt-staffing-option-kind",children:A.kind}),u.jsx("span",{className:"ckpt-staffing-option-name",children:A.name})]},`${A.kind}:${A.id}`)})}),u.jsxs("div",{className:"ckpt-agent-picker",children:[u.jsx("label",{className:"ckpt-agent-label",htmlFor:`staffing-agent-${t.checkpoint_id}-${R}`,children:"Execution Agent"}),u.jsx("select",{id:`staffing-agent-${t.checkpoint_id}-${R}`,className:"ckpt-agent-select",value:g[R]??O.selected_agent??O.default_agent??av,onChange:A=>x(B=>({...B,[R]:A.target.value})),disabled:k,children:WH.map(A=>u.jsx("option",{value:A,children:Qw[A]},A))})]})]},R)})}),!k&&u.jsx("div",{className:"ckpt-actions",children:w?u.jsxs(u.Fragment,{children:[u.jsx("button",{className:"ckpt-btn ckpt-btn-approve",onClick:N,children:"Auto Recruit"}),u.jsx("button",{className:"ckpt-btn ckpt-btn-feedback",onClick:j,children:"Approve Selections"})]}):u.jsxs(u.Fragment,{children:[u.jsx("button",{className:"ckpt-btn ckpt-btn-approve",onClick:j,children:"Approve Selections"}),a.length>0&&u.jsx("button",{className:"ckpt-btn ckpt-btn-feedback",onClick:N,children:"Auto Recruit"})]})})]})}),eF={task_adjustment:"Task Adjustment",runtime_replan:"Runtime Replan",org_mutation:"Org Mutation"},tC={low:"var(--green)",medium:"var(--yellow)",high:"var(--red)"},tF=Rt.memo(function({meta:t,onReply:n,responded:i}){const r=i,o=C.useCallback(()=>{r||n("approve")},[r,n]),a=C.useCallback(()=>{r||n("deny")},[r,n]),c=t.role_changes??[],d=t.work_item_projection_changes??[],m=t.scope||"org_mutation",h=t.risk_level||"medium",p=t.impact_summary||{};return u.jsxs("div",{className:"ckpt-panel ckpt-reorg",children:[u.jsxs("div",{className:"ckpt-header",children:[u.jsx("div",{className:"ckpt-icon ckpt-icon-reorg",children:u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[u.jsx("rect",{x:"1",y:"1",width:"5",height:"5",rx:"1"}),u.jsx("rect",{x:"10",y:"1",width:"5",height:"5",rx:"1"}),u.jsx("rect",{x:"5.5",y:"10",width:"5",height:"5",rx:"1"}),u.jsx("path",{d:"M3.5 6v2.5a1 1 0 001 1h7a1 1 0 001-1V6"}),u.jsx("path",{d:"M8 9.5V10"})]})}),u.jsx("div",{className:"ckpt-title",children:t.title||"Company Reorg"}),r&&u.jsx("span",{className:"ckpt-badge ckpt-badge-responded",children:"Responded"})]}),u.jsxs("div",{className:"ckpt-reorg-badges",children:[u.jsx("span",{className:"ckpt-badge ckpt-badge-scope",children:eF[m]||m}),u.jsxs("span",{className:"ckpt-badge",style:{color:tC[h]||"var(--text-secondary)",borderColor:tC[h]||"var(--border)"},children:["Risk: ",h.charAt(0).toUpperCase()+h.slice(1)]})]}),t.summary&&u.jsx("div",{className:"ckpt-summary",children:t.summary}),t.rationale&&u.jsx("div",{className:"ckpt-rationale",children:t.rationale}),c.length>0&&u.jsxs("div",{className:"ckpt-changes-section",children:[u.jsx("div",{className:"ckpt-changes-title",children:"Role Changes"}),c.map((g,x)=>u.jsxs("div",{className:"ckpt-change-row",children:[u.jsx("span",{className:`ckpt-change-action ckpt-action-${g.action}`,children:g.action}),u.jsx("span",{className:"ckpt-change-id",children:g.role_id}),g.replacement_role_id&&u.jsxs(u.Fragment,{children:[u.jsx("span",{className:"ckpt-change-arrow",children:"→"}),u.jsx("span",{className:"ckpt-change-id",children:g.replacement_role_id})]}),g.reason&&u.jsx("span",{className:"ckpt-change-reason",children:g.reason})]},x))]}),d.length>0&&u.jsxs("div",{className:"ckpt-changes-section",children:[u.jsx("div",{className:"ckpt-changes-title",children:"Work Item Projection Changes"}),d.map((g,x)=>u.jsxs("div",{className:"ckpt-change-row",children:[u.jsx("span",{className:`ckpt-change-action ckpt-action-${g.action}`,children:g.action}),u.jsx("span",{className:"ckpt-change-id",children:g.work_item_projection_id}),g.replacement_work_item_projection_id&&u.jsxs(u.Fragment,{children:[u.jsx("span",{className:"ckpt-change-arrow",children:"→"}),u.jsx("span",{className:"ckpt-change-id",children:g.replacement_work_item_projection_id})]}),g.reason&&u.jsx("span",{className:"ckpt-change-reason",children:g.reason})]},x))]}),Object.keys(p).length>0&&u.jsxs("div",{className:"ckpt-impact",children:[p.affected_tasks!=null&&u.jsxs("span",{children:["Tasks affected: ",p.affected_tasks]}),p.affected_roles!=null&&u.jsxs("span",{children:["Roles affected: ",p.affected_roles]}),p.migration_count!=null&&u.jsxs("span",{children:["Migrations: ",p.migration_count]})]}),!r&&u.jsxs("div",{className:"ckpt-actions",children:[u.jsx("button",{className:"ckpt-btn ckpt-btn-approve",onClick:o,children:"Approve Reorg"}),u.jsx("button",{className:"ckpt-btn ckpt-btn-deny",onClick:a,children:"Deny"})]})]})}),nF=3e4;function iF(e){return e.split(` -`).map(t=>t.trim()).find(Boolean)??e}function rF(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 nC=Rt.memo(function({meta:t,onReply:n,responded:i}){const r=i,o=String(t.checkpoint_status??"").trim().toLowerCase(),a=rF(o),c=String(t.prompt??t.summary??""),d=C.useMemo(()=>c.split(` -`).map(O=>O.trim()).filter(Boolean),[c]),m=iF(c).replace(/^\[[^\]]+\]\s*/,"")||"Action Required",h=d.slice(1).join(` -`).trim(),p=String(t.summary??"").trim(),g=(t.options??[]).filter(O=>!!O?.id),x=C.useMemo(()=>(t.active_subagents??[]).filter(O=>!!O&&typeof O=="object"),[t.active_subagents]),v=C.useMemo(()=>(t.permission_requests??[]).filter(O=>!!O&&typeof O=="object"),[t.permission_requests]),_=String(t.worktree_path??"").trim(),k=x.length>0||v.length>0||!!_,[w,S]=C.useState(""),j=!!w&&!r;C.useEffect(()=>{if(!j)return;const O=window.setTimeout(()=>S(""),nF);return()=>window.clearTimeout(O)},[j,w]);const N=C.useCallback(O=>{r||j||(S(O.id),n(O.label||O.id))},[r,j,n]);return u.jsxs("div",{className:"ckpt-panel ckpt-escalation",children:[u.jsxs("div",{className:"ckpt-header",children:[u.jsx("div",{className:"ckpt-icon ckpt-icon-escalation",children:u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[u.jsx("path",{d:"M8 1.5L14.5 13H1.5L8 1.5Z"}),u.jsx("path",{d:"M8 5.5V9"}),u.jsx("circle",{cx:"8",cy:"11.5",r:"0.75",fill:"currentColor",stroke:"none"})]})}),u.jsx("div",{className:"ckpt-title",children:m}),u.jsx("span",{className:"ckpt-badge ckpt-badge-scope",children:String(t.escalation_type??"decision_needed").replace(/_/g," ")}),r&&u.jsx("span",{className:"ckpt-badge ckpt-badge-responded",children:a})]}),p&&p!==m&&u.jsxs("div",{className:"ckpt-section",children:[u.jsx("div",{className:"ckpt-section-title",children:"Summary"}),u.jsx(bi,{content:p,className:"ckpt-markdown"})]}),h&&u.jsxs("div",{className:"ckpt-section",children:[u.jsx("div",{className:"ckpt-section-title",children:"Request"}),u.jsx(bi,{content:h,className:"ckpt-markdown"})]}),k&&u.jsxs("details",{className:"ckpt-runtime-details",children:[u.jsx("summary",{children:"Runtime State"}),u.jsxs("div",{className:"ckpt-runtime-body",children:[_&&u.jsxs("div",{children:["Worktree: ",u.jsx("code",{children:_})]}),x.length>0&&u.jsxs("div",{children:["Active subagents: ",x.length]}),v.length>0&&u.jsxs("div",{children:["Pending permission records: ",v.length]})]})]}),!r&&g.length>0&&u.jsx("div",{className:"ckpt-actions ckpt-escalation-actions",children:g.map(O=>u.jsx("button",{className:`ckpt-btn ${O.id.includes("deny")?"ckpt-btn-deny":"ckpt-btn-approve"}${j?" ckpt-btn-submitting":""}`,onClick:()=>N(O),disabled:j,children:j&&w===O.id?"Submitting…":O.label||O.id},O.id))}),j&&u.jsx("div",{className:"ckpt-escalation-hint",children:"Decision sent — waiting for server confirmation…"}),!r&&t.default_action&&u.jsxs("div",{className:"ckpt-escalation-hint",children:["Default on timeout: ",u.jsx("code",{children:t.default_action})]})]})});function sF(e){return e.split(` -`).map(t=>t.trim()).find(Boolean)??e}function oF(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 aF=Rt.memo(function({meta:t,onReply:n,responded:i}){const r=i,[o,a]=C.useState(""),[c,d]=C.useState(null),m=String(t.checkpoint_status??"").trim().toLowerCase(),h=oF(m),p=String(t.prompt??t.summary??"").trim(),x=`${String(t.work_item_projection_title??sF(p)??"Human Review").trim()||"Human Review"} (for self-evolution)`,v=String(t.summary??"").trim(),_=C.useMemo(()=>(t.active_subagents??[]).filter(I=>!!I&&typeof I=="object"),[t.active_subagents]),k=C.useMemo(()=>(t.permission_requests??[]).filter(I=>!!I&&typeof I=="object"),[t.permission_requests]),w=String(t.worktree_path??"").trim(),S=_.length>0||k.length>0||!!w,j=r||c!==null,N=C.useCallback((I,L="")=>{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:I};return(I==="approve"||I==="feedback")&&(A.self_evolution_trigger=!0,A.human_feedback_text=L),A},[t.checkpoint_id]),O=C.useCallback(()=>{if(j)return;const I=N("approve");d("approve"),n("I fully agree with this delivery.",I)},[j,N,n]),R=C.useCallback(()=>{const I=o.trim();if(j||!I)return;const L=N("feedback",I);d("feedback"),n(I,L),a("")},[j,N,o,n]),D=C.useCallback(()=>{if(j)return;const I=N("ignore");d("ignore"),n("Ignore this self-evolution review.",I)},[j,N,n]);return u.jsxs("div",{className:"ckpt-panel ckpt-delivery-feedback",children:[u.jsxs("div",{className:"ckpt-header",children:[u.jsx("div",{className:"ckpt-icon ckpt-icon-user-input",children:u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[u.jsx("path",{d:"M8 1.5L14 5v4.5c0 2.25-1.8 4.25-6 5-4.2-.75-6-2.75-6-5V5L8 1.5Z"}),u.jsx("path",{d:"M5.5 8.25L7.25 10l3.25-4"})]})}),u.jsx("div",{className:"ckpt-title",children:x}),u.jsx("span",{className:"ckpt-badge ckpt-badge-scope",children:String(t.feedback_scope??"final").replace(/_/g," ")}),r&&u.jsx("span",{className:"ckpt-badge ckpt-badge-responded",children:h})]}),v&&v!==x&&u.jsxs("div",{className:"ckpt-section",children:[u.jsx("div",{className:"ckpt-section-title",children:"Summary"}),u.jsx(bi,{content:v,className:"ckpt-markdown"})]}),p&&u.jsxs("div",{className:"ckpt-section",children:[u.jsx("div",{className:"ckpt-section-title",children:"Review Request"}),u.jsx(bi,{content:p,className:"ckpt-markdown"})]}),S&&u.jsxs("details",{className:"ckpt-runtime-details",children:[u.jsx("summary",{children:"Runtime State"}),u.jsxs("div",{className:"ckpt-runtime-body",children:[w&&u.jsxs("div",{children:["Worktree: ",u.jsx("code",{children:w})]}),_.length>0&&u.jsxs("div",{children:["Active subagents: ",_.length]}),k.length>0&&u.jsxs("div",{children:["Pending permission records: ",k.length]})]})]}),!r&&u.jsxs("div",{className:"ckpt-actions ckpt-actions-inline-feedback",children:[u.jsx("button",{className:"ckpt-btn ckpt-btn-approve",onClick:O,disabled:j,children:"Fully Agree"}),u.jsx("button",{className:"ckpt-btn ckpt-btn-cancel",onClick:D,disabled:j,children:"Ignore"}),u.jsx("textarea",{className:"ckpt-feedback-input ckpt-feedback-inline-input",placeholder:"Feedback for self-evolution...",value:o,onChange:I=>a(I.target.value),disabled:j,rows:2}),u.jsx("button",{className:"ckpt-btn ckpt-btn-feedback",onClick:R,disabled:j||!o.trim(),children:"Send Feedback"})]})]})}),df="__other__",lF=["A","B","C"];function es(e){return String(e??"").trim()}function cF(e,t){const n=es(e.question),i=es(e.header);if(!n&&!i)return null;const r=(e.options??[]).slice(0,3).map((o,a)=>({id:es(o.id)||String.fromCharCode(97+a),label:es(o.label),description:es(o.description)})).filter(o=>o.label);return{id:es(e.id)||`question_${t+1}`,header:i,question:n||i,options:r,allow_freeform:e.allow_freeform!==!1,required:e.required!==!1}}const uF=Rt.memo(function({meta:t,onReply:n,responded:i}){const[r,o]=C.useState(""),[a,c]=C.useState({}),d=i,m=String(t.work_item_projection_title??t.work_item_projection_id??"Input Needed").trim()||"Input Needed",h=String(t.summary??"").trim(),p=String(t.prompt??"").trim(),g=String(t.context_note??"").trim(),x=String(t.resume_hint??"").trim(),v=C.useMemo(()=>(t.questions??[]).map(q=>String(q).trim()).filter(Boolean),[t.questions]),_=C.useMemo(()=>(t.input_questions??[]).map((q,Y)=>cF(q,Y)).filter(q=>q!==null),[t.input_questions]),k=_.some(q=>(q.options??[]).length>0),w=C.useMemo(()=>(t.required_fields??[]).map(q=>String(q).trim()).filter(Boolean),[t.required_fields]),S=C.useMemo(()=>(t.active_subagents??[]).filter(q=>!!q&&typeof q=="object"),[t.active_subagents]),j=C.useMemo(()=>(t.permission_requests??[]).filter(q=>!!q&&typeof q=="object"),[t.permission_requests]),N=String(t.worktree_path??"").trim(),O=String(t.requesting_role_id??"").trim(),R=String(t.requesting_task_id??"").trim(),D=String(t.requesting_work_item_id??"").trim(),I=String(t.seat_id??"").trim(),M=!!O||!!R||!!D||!!I||S.length>0||j.length>0||!!N,A=C.useCallback((q,Y)=>{c(Q=>({...Q,[q]:{freeformText:Q[q]?.freeformText??"",selectedOptionId:Y}}))},[]),B=C.useCallback((q,Y)=>{c(Q=>({...Q,[q]:{selectedOptionId:Q[q]?.selectedOptionId,freeformText:Y}}))},[]),W=C.useCallback(q=>{if(q.required===!1)return!0;const Y=a[q.id],Q=Y?.selectedOptionId;return!!(Q&&Q!==df||q.allow_freeform!==!1&&es(Y?.freeformText))},[a]),P=k&&_.every(W),G=C.useCallback(()=>{const q=r.trim();d||!q||n(q)},[d,n,r]),$=C.useCallback(()=>{if(d||!P)return;const q={},Y=[];_.forEach(Q=>{const V=a[Q.id]??{freeformText:""},U=(Q.options??[]).find(te=>te.id===V.selectedOptionId),Z=es(V.freeformText),K=[U?.label??"",Z].filter(Boolean).join("; ");q[Q.id]={question_id:Q.id,question:Q.question,...U?{selected_option_id:U.id,selected_label:U.label}:{},...Z?{freeform_text:Z}:{},answer_text:K};const ee=es(Q.header)||es(Q.question)||Q.id;Y.push(`- ${ee}: ${K||"(no answer)"}`)}),n(Y.join(` -`),{user_input_answers:q})},[a,P,_,d,n]);return u.jsxs("div",{className:"ckpt-panel ckpt-user-input",children:[u.jsxs("div",{className:"ckpt-header",children:[u.jsx("div",{className:"ckpt-icon ckpt-icon-user-input",children:u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[u.jsx("path",{d:"M3 3.5h10v6H6.5L3 13V3.5Z"}),u.jsx("path",{d:"M5.5 6h5"}),u.jsx("path",{d:"M5.5 8h3.5"})]})}),u.jsx("div",{className:"ckpt-title",children:m}),u.jsx("span",{className:"ckpt-badge ckpt-badge-scope",children:"awaiting input"}),d&&u.jsx("span",{className:"ckpt-badge ckpt-badge-responded",children:"Responded"})]}),h&&u.jsxs("div",{className:"ckpt-section",children:[u.jsx("div",{className:"ckpt-section-title",children:"Summary"}),u.jsx(bi,{content:h,className:"ckpt-markdown"})]}),p&&u.jsxs("div",{className:"ckpt-section",children:[u.jsx("div",{className:"ckpt-section-title",children:"Request"}),u.jsx(bi,{content:p,className:"ckpt-markdown"})]}),k?u.jsxs("div",{className:"ckpt-section",children:[u.jsx("div",{className:"ckpt-section-title",children:"Questions"}),u.jsx("div",{className:"ckpt-choice-list",children:_.map(q=>{const Y=a[q.id]??{freeformText:""},Q=q.options??[],V=q.allow_freeform!==!1,U=V&&(Q.length===0||Y.selectedOptionId===df);return u.jsxs("div",{className:"ckpt-choice-question",children:[q.header&&u.jsx("div",{className:"ckpt-question-header",children:q.header}),u.jsx(bi,{content:q.question,className:"ckpt-markdown"}),Q.length>0&&u.jsxs("div",{className:"ckpt-choice-grid",children:[Q.map((Z,F)=>{const K=Y.selectedOptionId===Z.id;return u.jsxs("button",{className:`ckpt-choice-option${K?" is-selected":""}`,onClick:()=>A(q.id,Z.id),children:[u.jsx("span",{className:"ckpt-choice-letter",children:lF[F]??"?"}),u.jsxs("span",{className:"ckpt-choice-copy",children:[u.jsx("span",{className:"ckpt-choice-label",children:Z.label}),Z.description&&u.jsx("span",{className:"ckpt-choice-desc",children:Z.description})]})]},Z.id)}),V&&u.jsxs("button",{className:`ckpt-choice-option${Y.selectedOptionId===df?" is-selected":""}`,onClick:()=>A(q.id,df),children:[u.jsx("span",{className:"ckpt-choice-letter",children:"D"}),u.jsxs("span",{className:"ckpt-choice-copy",children:[u.jsx("span",{className:"ckpt-choice-label",children:"Other"}),u.jsx("span",{className:"ckpt-choice-desc",children:"Enter a custom answer"})]})]})]}),U&&u.jsx("textarea",{className:"ckpt-feedback-input ckpt-other-field",placeholder:"Type your answer...",value:Y.freeformText,onChange:Z=>B(q.id,Z.target.value),rows:3})]},q.id)})})]}):v.length>0&&u.jsxs("div",{className:"ckpt-section",children:[u.jsx("div",{className:"ckpt-section-title",children:"Questions"}),u.jsx("ul",{className:"ckpt-task-list",children:v.map(q=>u.jsx("li",{children:q},q))})]}),w.length>0&&u.jsxs("div",{className:"ckpt-section",children:[u.jsx("div",{className:"ckpt-section-title",children:"Required Fields"}),u.jsx("div",{className:"ckpt-task-tags",children:w.map(q=>u.jsx("span",{className:"ckpt-field-tag",children:q},q))})]}),g&&u.jsxs("div",{className:"ckpt-section",children:[u.jsx("div",{className:"ckpt-section-title",children:"Context"}),u.jsx(bi,{content:g,className:"ckpt-markdown ckpt-markdown-muted"})]}),x&&u.jsx("div",{className:"ckpt-escalation-hint",children:x}),M&&u.jsxs("details",{className:"ckpt-runtime-details",children:[u.jsx("summary",{children:"Runtime State"}),u.jsxs("div",{className:"ckpt-runtime-body",children:[O&&u.jsxs("div",{children:["Requester: ",u.jsx("code",{children:O})]}),D&&u.jsxs("div",{children:["Work item: ",u.jsx("code",{children:D})]}),R&&u.jsxs("div",{children:["Task: ",u.jsx("code",{children:R})]}),I&&u.jsxs("div",{children:["Seat: ",u.jsx("code",{children:I})]}),N&&u.jsxs("div",{children:["Worktree: ",u.jsx("code",{children:N})]}),S.length>0&&u.jsxs("div",{children:["Active subagents: ",S.length]}),j.length>0&&u.jsxs("div",{children:["Pending permission records: ",j.length]})]})]}),!d&&u.jsxs("div",{className:"ckpt-feedback-area",children:[k?null:u.jsx("textarea",{className:"ckpt-feedback-input",placeholder:"Reply with the missing input to continue...",value:r,onChange:q=>o(q.target.value),rows:3}),u.jsx("div",{className:"ckpt-feedback-btns",children:u.jsx("button",{className:"ckpt-btn ckpt-btn-approve",onClick:k?$:G,disabled:k?!P:!r.trim(),children:"Send Reply"})})]})]})}),lv={todo:"To do",in_progress:"In progress",in_review:"In review",done:"Done"};function oy(e,t){if(t&&t in lv)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 ff(e){return lv[e]??lv.todo}const iC={active:0,waiting:1,failed:2,done:3,pending:4};function dF(e){if(e.length===0)return"pending";let t=e[0],n=iC[t]??99;for(const i of e){const r=iC[i]??99;r12&&/^[0-9a-f-]+$/i.test(e.replace(/_/g,""))}function hl(e){return typeof e=="string"?e.trim():""}function ay(...e){for(const t of e){const n=hl(t);if(n)return n}return""}function mF(e){const t=hl(e);return t?fF[t]??u0(t):""}function pF(e){return e==="done"?u.jsx("span",{className:"wi-projection-icon",children:"✓"}):e==="active"?u.jsx("span",{className:"wi-projection-icon wi-projection-pulse",children:"●"}):e==="failed"?u.jsx("span",{className:"wi-projection-icon",children:"✗"}):e==="waiting"?u.jsx("span",{className:"wi-projection-icon",children:"●"}):null}const hF={active:"active",waiting:"waiting",pending:"pending",done:"done",failed:"failed"};function gF(e){return e?e==="in-progress"?"in_progress":e==="in-review"?"in_review":e:"todo"}function yF(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 xF(e){const t=hl(e.status).toLowerCase();return t==="done"||t==="delivered"?"done":t==="failed"||t==="cancelled"?"failed":t==="awaiting_peer"||t==="awaiting_manager_review"||t==="awaiting_human"||t==="awaiting_review"||t==="blocked"||t==="paused"||t==="awaiting_owner"?"waiting":t==="running"||t==="deliverable"||t==="active"||t==="ready"?"active":"pending"}function zI({workItemLog:e,roleWorkItems:t,executorRoleWorkItems:n,childSessions:i,isCompanyRuntime:r=!1,onWorkItemClick:o}){const a=C.useMemo(()=>{const _=new Map;for(const k of i??[]){_.set(k.taskId,k);const w=xo(k);w&&_.set(w,k)}return _},[i]),c=C.useMemo(()=>{const _=new Map,k=[];for(const w of e){const S=xo(w),j=w.workItemProjectionId??S??"";if(!j)continue;if(!_.has(j)){k.push(j);const O=w.workItemProjectionTitle??j,R=w.roleName||(rC(O)?"Agent":O);_.set(j,{projectionId:j,title:R,roleName:w.roleName,status:"pending",executionTurnId:S})}const N=_.get(j);switch(w.roleName?(N.roleName=w.roleName,N.title=w.roleName):w.workItemProjectionTitle&&!rC(w.workItemProjectionTitle)&&(N.title=w.workItemProjectionTitle),S&&(N.executionTurnId=S),w.type){case"work_item_started":N.status="active";break;case"gate_approved":N.status="done";break;case"gate_rejected":N.status="active";break;case"awaiting_manager_review":case"awaiting_human":case"awaiting_review":case"awaiting_peer":N.status="waiting";break;case"work_item_failed":case"deadlock":N.status="failed";break}}for(const w of _.values()){if(!w.executionTurnId)continue;const S=a.get(w.executionTurnId);if(!S)continue;const j=Og(S);j&&(w.title=j),S.workItemRoleName&&(w.roleName=S.workItemRoleName),S.status==="done"?w.status="done":S.status==="failed"&&(w.status="failed")}return k.map(w=>_.get(w))},[e,a]),d=C.useMemo(()=>{const _=new Map;for(const k of e){const w=xo(k);w&&!_.has(w)&&_.set(w,_.size)}return _},[e]),m=n??t,h=C.useMemo(()=>{if(!m)return[];const _=[];for(const k of Object.values(m)){if(!k||!Array.isArray(k.workItems)||k.workItems.length===0)continue;const S=[...k.workItems].sort((D,I)=>D.createdAt-I.createdAt).map(D=>{const I=gF(D.kanbanColumn),L=yF(D.phase);return{executionTurnId:D.executionTurnId??"",title:hl(D.title)||hl(D.executorRoleName)||hl(D.executorRoleId)||"Work item",status:L,statusLabel:ff(I),columnId:I,updatedAt:D.updatedAt,workItemId:D.workItemId,progressLog:D.progressLog,activitySections:D.activitySections??[],isReviewTarget:D.isReviewTarget}}),j=hF[k.aggregatedStatus]??"pending",N=oy(j),O=S[S.length-1],R=[...S].reverse().find(D=>!!D.executionTurnId)?.executionTurnId??"";_.push({roleKey:k.roleKey,executionTurnId:O.executionTurnId||R,title:k.roleName||k.roleId,status:j,statusLabel:ff(N),roleName:k.roleName,updatedAt:S.reduce((D,I)=>Math.max(D,I.updatedAt),0),turns:S,runtimeStatus:k.runtimeStatus})}return _.sort((k,w)=>{const S=k.turns[0]?.updatedAt??Number.POSITIVE_INFINITY,j=w.turns[0]?.updatedAt??Number.POSITIVE_INFINITY;return S-j}),_},[m]),p=C.useMemo(()=>{const _=[...i??[]];if(_.length===0)return[];const k=new Map,w=[];for(const j of _){const N=ay(j.workItemRoleId,j.assigneeIds[0],j.taskId);k.has(N)||(k.set(N,[]),w.push(N)),k.get(N).push(j)}w.sort((j,N)=>{const O=k.get(j)??[],R=k.get(N)??[],D=Math.min(...O.map(A=>d.get(xo(A)||A.taskId)??Number.POSITIVE_INFINITY)),I=Math.min(...R.map(A=>d.get(xo(A)||A.taskId)??Number.POSITIVE_INFINITY));if(D!==I)return D-I;const L=Math.min(...O.map(A=>A.updatedAt)),M=Math.min(...R.map(A=>A.updatedAt));return L-M});const S=[];for(const j of w){const N=k.get(j)??[];if(N.length===0)continue;const O=N.slice().sort((A,B)=>A.updatedAt-B.updatedAt).map(A=>{const B=xF(A),W=xo(A),P=oy(B,String(A.columnId??"").trim()||void 0);return{executionTurnId:W||A.taskId,title:ay(Og(A),A.title,A.workItemRoleName,A.workItemRoleId,"Turn"),status:B,statusLabel:ff(P),columnId:P,updatedAt:A.updatedAt}}),R=O[O.length-1],D=dF(O.map(A=>A.status)),I=oy(D),L=N[0],M=ay(L.workItemRoleName,L.workItemRoleId,L.assigneeIds[0],Og(L),L.title,"Agent");S.push({roleKey:j,executionTurnId:R.executionTurnId,title:M,status:D,statusLabel:ff(I),executionAgent:mF(L.selectedExecutionAgent??L.preferredAgent),roleName:L.workItemRoleName,updatedAt:Math.max(...N.map(A=>A.updatedAt)),turns:O})}return S},[i,d]),g=C.useMemo(()=>h.length>0?h:r?[]:p,[r,h,p]),x=C.useMemo(()=>g.length>0?g.map(_=>({projectionId:_.roleKey,title:_.title,roleName:_.roleName,status:_.status,executionTurnId:_.executionTurnId})):r?[]:c,[r,g,c]),v=r&&g.length===0;return!r&&e.length===0&&x.length===0&&g.length===0?null:u.jsxs("div",{className:"wi-progress-card",children:[u.jsxs("div",{className:"wi-progress-header",children:[u.jsx(Am,{}),u.jsx("span",{children:"Execution Progress"})]}),x.length>0&&u.jsx("div",{className:"wi-progress-pipeline",children:x.map((_,k)=>u.jsxs("div",{className:"wi-projection-group",children:[u.jsxs("button",{type:"button",className:`wi-projection-chip wi-projection-${_.status}`,onClick:()=>o?.(_.executionTurnId||""),title:`Open Runtime Session${_.roleName?`: ${_.title} (${_.roleName})`:`: ${_.title}`}`,children:[u.jsx("span",{className:"wi-projection-label",children:_.title}),pF(_.status)]}),kc.mime_type?.startsWith("image/")),i=e.filter(c=>c.mime_type?.startsWith("video/")),r=e.filter(c=>!c.mime_type?.startsWith("image/")&&!c.mime_type?.startsWith("video/")),o=n.length===1?"":(n.length<=3," cols-2"),a=i.length===1?"":(i.length<=3," cols-2");return u.jsxs("div",{className:"msg-attachments",children:[n.length>0&&u.jsx("div",{className:`msg-attachment-grid${o}`,children:n.map(c=>{const d=`/api/attachments/${c.attachment_id}/${c.filename}`;return u.jsx("img",{className:"msg-attachment-image",src:d,alt:c.filename,loading:"lazy",onClick:()=>t?.(d)},c.attachment_id)})}),i.length>0&&u.jsx("div",{className:`msg-attachment-grid${a}`,children:i.map(c=>{const d=`/api/attachments/${c.attachment_id}/${c.filename}`;return u.jsx("video",{className:"msg-attachment-video",src:d,controls:!0,preload:"metadata",playsInline:!0},c.attachment_id)})}),r.length>0&&u.jsx("div",{className:"msg-attachment-files",children:r.map(c=>u.jsxs("a",{className:"msg-attachment-file-chip",href:`/api/attachments/${c.attachment_id}/${c.filename}`,download:!0,title:c.filename,children:["📎 ",c.filename,u.jsx("span",{className:"msg-attachment-file-size",children:c.size_bytes<1024?`${c.size_bytes}B`:c.size_bytes<1048576?`${(c.size_bytes/1024).toFixed(0)}KB`:`${(c.size_bytes/1048576).toFixed(1)}MB`})]},c.attachment_id))})]})}const sC=new WeakMap;function ly(e){if(!e||typeof e!="object")return"";const t=sC.get(e);if(t!==void 0)return t;const n=JSON.stringify(e)??"";return sC.set(e,n),n}function bF(e){if(e.kind==="message"){const{msg:n}=e;return[e.kind,e.id,e.timestamp,n.sender,n.senderName,n.senderDeleted,n.content,n.replyToId,ly(n.mentions),ly(n.metadata)]}if(e.kind==="progress"){const{entry:n}=e;return[e.kind,e.id,e.timestamp,n.type,n.summary,n.detail,n.turnId,n.itemId,n.streamId,n.toolCallId,n.permissionGroupKey,n.seq,n.executionMode]}if(e.kind==="draft")return[e.kind,e.id,e.timestamp,e.text,e.iteration];const t=[e.kind,e.id,e.timestamp];for(const{msg:n,classification:i}of e.events)t.push(n.id,n.timestamp,n.content,ly(n.metadata),i.kind,i.label,i.summary,i.tone);return t}function _F(e,t){return!e||e.length!==t.length?!1:t.every((n,i)=>{const r=e[i];return r.length===n.length&&n.every((o,a)=>o===r[a])})}const oC=["#F59E0B","#10B981","#3B82F6","#8B5CF6","#EC4899","#06B6D4","#F97316","#6366F1"],aC=new Map;function PI(e){const t=aC.get(e);if(t)return t;let n=0;for(let r=0;rd.toUpperCase());let a="●",c="active";return r.includes("gate passed")||r.includes("approved")||r.includes("completed")?(a="✓",c="passed"):r.includes("rejected")||r.includes("reworking")?(a="↻",c="rejected"):r.includes("failed")||r.includes("timed out")?(a="✗",c="failed"):r.includes("awaiting")&&(a="⏳",c="waiting"),{projectionId:n,workItemName:o,action:i,icon:a,statusClass:c}}const wF={session:{icon:u.jsx(D4,{}),title:"New Conversation",hint:"Send a message to start working with your OPC system"},activity:{icon:u.jsx(lE,{}),title:"Activity Feed",hint:"Agent activity across all sessions will appear here."},secretary:{icon:u.jsx(hu,{}),title:"Secretary",hint:"Manage policies, rules, and preferences for your agents."}},CF=5*6e4,jF=200,cy=200,EF=2;function Zo(e){return e.scrollHeight-e.scrollTop-e.clientHeight<=EF}function lC(e){return!String(e.id??"").startsWith("msg-")}function ia(e){return Bv(e)}function jo(e){return new Date(e).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",hour12:!1})}function Os(e){return new Date(e).toLocaleString([],{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"})}async function NF(e){if(typeof navigator<"u"&&navigator.clipboard?.writeText)try{return await navigator.clipboard.writeText(e),!0}catch{}if(typeof document>"u"||!document.body)return!1;const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="fixed",t.style.top="0",t.style.left="-9999px",t.style.opacity="0",document.body.appendChild(t);try{return t.focus(),t.select(),t.setSelectionRange(0,t.value.length),document.execCommand("copy")}catch{return!1}finally{document.body.removeChild(t)}}function IF(e){return String(e.metadata?.transcript_kind??"").trim()==="runtime_v2_user_turn"}function uy(e){return e.replace(/\s+/g," ").trim()}function cC(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 TF(e){const t=String(e||"").trim();if(!t)return null;if(t.startsWith("{")&&t.endsWith("}")){const c=cC(t);return c?{obj:c}:null}const n=t.indexOf("{"),i=t.lastIndexOf("}");if(n<=0||i<=n)return null;const o=t.slice(0,n).trim().replace(/\*/g,"").replace(/:\s*$/,"").trim();if(!/\b(report|review)\b/i.test(o))return null;const a=cC(t.slice(n,i+1));return a?{obj:a,title:o||void 0}:null}function gl(e){return typeof e=="string"?e.trim():""}function uC(e,t=4){if(!Array.isArray(e))return[];const n=[];for(const i of e){const r=typeof i=="string"?i.trim():i&&typeof i=="object"&&"summary"in i?gl(i.summary):"";if(r&&n.push(r),n.length>=t)break}return n}function RF(e){if(!Array.isArray(e))return[];const t=[];for(const n of e){if(!n||typeof n!="object")continue;const i=n,r=gl(i.path),o=gl(i.name)||r.split("/").filter(Boolean).pop()||"Artifact";t.push({name:o,path:r,status:gl(i.status)||void 0})}return t}function AF(e){if(!Array.isArray(e))return;const t=e.filter(i=>i&&typeof i=="object").length;return t?`${e.filter(i=>i.met===!0).length}/${t} acceptance checks met`:void 0}function MF(e){const t=TF(e);if(!t)return null;const{obj:n,title:i}=t,r=gl(n.summary),o=gl(n.review_verdict),a=RF(n.deliverables),c=uC(n.risks),d=uC(n.next_actions),m=AF(n.acceptance_status);return!r&&!o&&a.length===0&&!m?null:{kind:o?"review":a.length>0||m?"report":"update",title:i,summary:r,verdict:o||void 0,deliverables:a,risks:c,nextActions:d,acceptanceSummary:m}}const DF=Rt.memo(function({entry:t,showDate:n,dateStr:i,compact:r=!1}){return u.jsxs("div",{children:[n&&u.jsx("div",{className:"msg-date-sep",children:u.jsx("span",{children:i})}),u.jsxs("div",{className:`msg-row agent msg-row-inline-progress${r?" compact":""}`,children:[u.jsx("div",{className:"msg-avatar agent-avatar",children:u.jsx(bl,{})}),u.jsx("div",{className:"msg-body msg-inline-progress-body",children:u.jsx("div",{className:"msg-inline-progress-shell",children:u.jsx(NN,{entry:t})})})]})]})}),OF=Rt.memo(function({msg:t,showDate:n,dateStr:i}){const r=SF(t.content);return r?u.jsxs("div",{children:[n&&u.jsx("div",{className:"msg-date-sep",children:u.jsx("span",{children:i})}),u.jsxs("div",{className:`work-item-divider work-item-divider-${r.statusClass}`,children:[u.jsx("div",{className:"work-item-divider-line"}),u.jsxs("span",{className:"work-item-divider-label",children:[u.jsx("span",{className:"work-item-divider-icon",children:r.icon}),r.workItemName,u.jsx("span",{className:"work-item-divider-action",children:r.action})]}),u.jsx("div",{className:"work-item-divider-line"})]})]}):null}),LF=Rt.memo(function({msg:t,showDate:n,dateStr:i}){return u.jsxs("div",{children:[n&&u.jsx("div",{className:"msg-date-sep",children:u.jsx("span",{children:i})}),u.jsx("div",{className:"msg-system",children:u.jsx("span",{children:t.content})})]})}),zF=Rt.memo(function({msg:t,showDate:n,dateStr:i}){return u.jsxs("div",{children:[n&&u.jsx("div",{className:"msg-date-sep",children:u.jsx("span",{children:i})}),u.jsxs("div",{className:"msg-row agent msg-row-context",children:[u.jsx("div",{className:"msg-avatar agent-avatar msg-avatar-context",children:u.jsx(hu,{})}),u.jsx("div",{className:"msg-body",children:u.jsxs("div",{className:"msg-content-agent-card msg-context-card",children:[u.jsx("div",{className:"msg-context-label",children:"Execution Context"}),u.jsx(bi,{content:t.content})]})})]})]})}),PF=Rt.memo(function({text:t,timestamp:n,iteration:i,showDate:r,dateStr:o}){return u.jsxs("div",{children:[r&&u.jsx("div",{className:"msg-date-sep",children:u.jsx("span",{children:o})}),u.jsxs("div",{className:"msg-row agent msg-row-draft",children:[u.jsx("div",{className:"msg-avatar agent-avatar msg-avatar-draft",children:u.jsx(bl,{})}),u.jsxs("div",{className:"msg-body",children:[u.jsxs("div",{className:"msg-agent-header",children:[u.jsx("span",{className:"msg-sender",children:"Live Reply"}),u.jsx("span",{className:"msg-time",title:Os(n),children:jo(n)})]}),u.jsxs("div",{className:"msg-content-agent-card msg-draft-card",children:[i?u.jsxs("div",{className:"msg-draft-label",children:["Turn ",i]}):null,u.jsx(bi,{content:t,collapseMode:"never"})]})]})]})]})}),BF=Rt.memo(function({msg:t,showDate:n,dateStr:i,isGrouped:r,isCopied:o,onCopy:a,onImageClick:c,renderUserMarkdown:d}){return u.jsxs("div",{children:[n&&u.jsx("div",{className:"msg-date-sep",children:u.jsx("span",{children:i})}),u.jsx("div",{className:`msg-row user${r?" grouped":""}`,children:u.jsxs("div",{className:"msg-body msg-body-user",children:[u.jsx("div",{className:"msg-content-user",children:d?u.jsx(bi,{content:t.content,className:"msg-content-user-markdown"}):t.content}),u.jsx(vF,{refs:t.metadata?.attachment_refs,onImageClick:c}),u.jsxs("div",{className:"msg-meta-user",children:[u.jsx("span",{className:"msg-time",title:Os(t.timestamp),children:jo(t.timestamp)}),u.jsx("button",{className:"msg-action-btn",onClick:()=>a(t.id,t.content),title:"Copy",children:o?u.jsx(Hl,{}):u.jsx(Rm,{})})]})]})})]})});function BI(e){const t=String(e||"").trim();if(!t)return null;const n=t.match(/^\[Delegating to ([^\]]+)\]/);if(n){const d=n[1].trim(),m=t.match(/task=([^|]+?)(?:\||$)/),h=m?m[1].trim():"";return{kind:"delegation",label:`Delegating to ${d}`,summary:h,tone:"info"}}if(/^\[External resume\]/i.test(t)){const d=t.match(/codex:[a-z0-9-]+:([a-f0-9-]+)/i);return{kind:"external_resume",label:"External resume",summary:d?`Restored session ${d[1].slice(0,8)}…`:"Resumed prior session",tone:"info"}}const i=t.match(/^\[External inbox\]\s*(.+)$/i);if(i)return{kind:"external_status",label:"External inbox",summary:uy(i[1]),tone:"info"};const r=t.match(/^\[External status\]\s*(.+)$/i);if(r)return{kind:"external_status",label:"External status",summary:r[1].split(/\(|;/)[0].trim()||r[1].trim(),tone:"info"};if(/^\[External error\]/i.test(t)||/^\[External failure\]/i.test(t))return{kind:"external_error",label:"External error",summary:t.replace(/^\[[^\]]+\]\s*/,"").split(` -`)[0].slice(0,140),tone:"danger"};const o=t.match(/^\[Company:([^\]]+)\]\s*(.+)$/);if(o){const d=o[1].split("::"),m=d[0]||"company",h=o[2].trim(),p=h.toLowerCase(),g=p.includes("completed")||p.includes("done")?"success":p.includes("blocked")||p.includes("failed")?"warning":"info";return{kind:"company_event",label:`${m.toUpperCase()} · ${d[1]??""}`.replace(/ · $/,""),summary:h,tone:g}}const a=t.match(/^(Review needed|Status digest|Blocked|Completion):\s*(.+)$/i);if(a){const d=a[1].replace(/\b\w/g,h=>h.toUpperCase()),m=uy(a[2]);return{kind:"company_event",label:d,summary:m,tone:/^Blocked$/i.test(a[1])?"warning":"info"}}const c=t.match(/^NO_DELEGATION_JUSTIFICATION:\s*(.+)$/i);return c?{kind:"company_event",label:"Delegation check",summary:uy(c[1]).slice(0,180),tone:"info"}:null}function $F(e,t){const{isCompanyRuntime:n,detailMode:i}=t;if(!n||i==="full"||gu(e.metadata))return null;const r=BI(e.content);if(!r)return null;const o=e.sender==="system"||e.metadata?.type==="system",a=r.kind==="company_event"||e.content.startsWith("[Company:");return!o&&!a?null:{msg:e,classification:r}}function HF(e,t={}){const{isCompanyRuntime:n=!1,detailMode:i="summary"}=t,r=[];let o=[],a=0;const c=()=>{if(o.length===0)return;const d=o[0].msg;r.push({kind:"ops-bundle",id:`ops:${ia(d)}`,timestamp:d.timestamp,events:o,sortOrder:a}),o=[]};return e.forEach((d,m)=>{const h=m*2+1,p=$F(d,{isCompanyRuntime:n,detailMode:i});if(p){o.length===0&&(a=h),o.push(p);return}c(),r.push({kind:"message",id:ia(d),timestamp:d.timestamp,msg:d,sortOrder:h})}),c(),r}const FF=Rt.memo(function({msg:t,showDate:n,dateStr:i,classification:r}){const[o,a]=C.useState(!1),c=t.content.trim()!==`[${r.label}] ${r.summary}`.trim()&&t.content.trim().length>r.summary.length+4;return u.jsxs("div",{children:[n&&u.jsx("div",{className:"msg-date-sep",children:u.jsx("span",{children:i})}),u.jsxs("div",{className:`msg-ops-row msg-ops-tone-${r.tone}${o?" expanded":""}`,onClick:c?()=>a(d=>!d):void 0,role:c?"button":void 0,tabIndex:c?0:-1,children:[u.jsx("span",{className:"msg-ops-dot","aria-hidden":"true"}),u.jsx("span",{className:"msg-ops-label",children:r.label}),r.summary&&u.jsx("span",{className:"msg-ops-summary",title:r.summary,children:r.summary}),u.jsx("span",{className:"msg-ops-time",title:Os(t.timestamp),children:jo(t.timestamp)}),c&&u.jsx("span",{className:`msg-ops-chevron${o?" open":""}`,"aria-hidden":"true",children:u.jsx(rs,{down:o})})]}),c&&o&&u.jsx("div",{className:"msg-ops-details",children:u.jsx("pre",{className:"msg-ops-details-pre",children:t.content})})]})}),VF=Rt.memo(function({events:t,showDate:n,dateStr:i}){const[r,o]=C.useState(!1);if(t.length===0)return null;const a=t[0].msg,c=t[t.length-1].msg,d=t.reduce((p,g)=>{const x=g.classification.kind==="company_event"?"company":g.classification.kind.startsWith("external")?"runtime":"delegation";return p[x]=(p[x]??0)+1,p},{}),m=Object.entries(d).map(([p,g])=>`${g} ${p}`).join(" · "),h=`${t.length} technical event${t.length===1?"":"s"} hidden`;return u.jsxs("div",{children:[n&&u.jsx("div",{className:"msg-date-sep",children:u.jsx("span",{children:i})}),u.jsxs("button",{type:"button",className:`msg-ops-bundle${r?" expanded":""}`,onClick:()=>o(p=>!p),title:`${Os(a.timestamp)} - ${Os(c.timestamp)}`,children:[u.jsx("span",{className:"msg-ops-bundle-dot"}),u.jsx("span",{className:"msg-ops-bundle-title",children:h}),u.jsx("span",{className:"msg-ops-bundle-summary",children:m}),u.jsx("span",{className:"msg-ops-bundle-time",children:jo(a.timestamp)}),u.jsx("span",{className:"msg-ops-bundle-chevron",children:u.jsx(rs,{down:r})})]}),r&&u.jsx("div",{className:"msg-ops-bundle-details",children:t.map(({msg:p,classification:g})=>u.jsxs("div",{className:`msg-ops-bundle-event msg-ops-tone-${g.tone}`,children:[u.jsx("span",{className:"msg-ops-dot"}),u.jsx("span",{className:"msg-ops-label",children:g.label}),u.jsx("span",{className:"msg-ops-summary",children:g.summary}),u.jsx("span",{className:"msg-ops-time",title:Os(p.timestamp),children:jo(p.timestamp)})]},p.id))})]})});function UF(e){return e.kind==="review"?`Review · ${e.verdict?e.verdict.replace(/_/g," "):"review"}`:e.kind==="report"?"Report":"Update"}const GF=Rt.memo(function({msg:t,payload:n,showDate:i,dateStr:r,isCopied:o,onCopy:a}){const c=PI(t.sender==="system"?t.senderName||"OPC":t.sender),d=t.senderDeleted?"[Deleted]":t.senderName,m=UF(n),h=n.summary||n.acceptanceSummary||m;return u.jsxs("div",{children:[i&&u.jsx("div",{className:"msg-date-sep",children:u.jsx("span",{children:r})}),u.jsxs("div",{className:"msg-row agent msg-row-project-update",children:[u.jsx("div",{className:"msg-avatar agent-avatar",style:{background:c},children:d.charAt(0).toUpperCase()}),u.jsxs("div",{className:"msg-body",children:[u.jsxs("div",{className:"msg-agent-header",children:[u.jsx("span",{className:"msg-sender",style:{color:c},children:d}),u.jsx("span",{className:"msg-time",title:Os(t.timestamp),children:jo(t.timestamp)})]}),u.jsxs("div",{className:`msg-project-update-card msg-project-update-${n.kind}`,children:[u.jsxs("div",{className:"msg-project-update-head",children:[u.jsx("span",{className:"msg-project-update-label",children:m}),n.acceptanceSummary&&u.jsx("span",{className:"msg-project-update-chip",children:n.acceptanceSummary})]}),n.title&&u.jsx("div",{className:"msg-project-update-title",children:n.title}),u.jsx(bi,{content:h,className:"msg-project-update-summary"}),n.deliverables.length>0&&u.jsxs("div",{className:"msg-project-update-section",children:[u.jsx("div",{className:"msg-project-update-section-label",children:"Outputs"}),u.jsx("div",{className:"msg-project-update-artifacts",children:n.deliverables.slice(0,6).map((p,g)=>u.jsxs("div",{className:"msg-project-update-artifact",children:[u.jsx("span",{className:"msg-project-update-artifact-name",children:p.name}),p.status&&u.jsx("span",{className:"msg-project-update-artifact-status",children:p.status}),p.path&&u.jsx("code",{className:"msg-project-update-artifact-path",children:p.path})]},`${p.path||p.name}-${g}`))})]}),(n.risks.length>0||n.nextActions.length>0)&&u.jsxs("div",{className:"msg-project-update-grid",children:[n.risks.length>0&&u.jsxs("div",{className:"msg-project-update-section",children:[u.jsx("div",{className:"msg-project-update-section-label",children:"Caveats"}),u.jsx("ul",{className:"msg-project-update-list",children:n.risks.map((p,g)=>u.jsx("li",{children:p},`risk-${g}`))})]}),n.nextActions.length>0&&u.jsxs("div",{className:"msg-project-update-section",children:[u.jsx("div",{className:"msg-project-update-section-label",children:"Next"}),u.jsx("ul",{className:"msg-project-update-list",children:n.nextActions.map((p,g)=>u.jsx("li",{children:p},`next-${g}`))})]})]}),u.jsx("div",{className:"msg-card-actions",children:u.jsx("button",{className:"msg-action-btn",onClick:()=>a(t.id,t.content),title:"Copy raw update",children:o?u.jsxs(u.Fragment,{children:[u.jsx(Hl,{})," ",u.jsx("span",{children:"Copied"})]}):u.jsxs(u.Fragment,{children:[u.jsx(Rm,{})," ",u.jsx("span",{children:"Copy raw"})]})})})]})]})]})]})}),qF=Rt.memo(function({msg:t,showDate:n,dateStr:i,isGrouped:r,isCopied:o,isCheckpointResponded:a,suppressCheckpointPanel:c,keepExpanded:d,onCopy:m,onSend:h}){const p=!!t.senderDeleted,g=p?"[Deleted]":t.senderName,x=PI(t.sender==="system"?t.senderName||"OPC":t.sender),v=t.channelId.startsWith("session:")?t.channelId.slice(8):t.metadata?.taskId??t.metadata?.task_id,_=String(t.metadata?.checkpoint_type??"").trim(),k=pE(t.metadata),w=gu(t.metadata)&&!c;return u.jsxs("div",{children:[n&&u.jsx("div",{className:"msg-date-sep",children:u.jsx("span",{children:i})}),u.jsxs("div",{className:`msg-row agent${r?" grouped":""}${p?" deleted-sender":""}`,children:[r?u.jsx("div",{className:"msg-avatar-spacer"}):u.jsx("div",{className:"msg-avatar agent-avatar",style:{background:x},children:g.charAt(0).toUpperCase()}),u.jsxs("div",{className:"msg-body",children:[!r&&u.jsxs("div",{className:"msg-agent-header",children:[u.jsx("span",{className:`msg-sender${p?" deleted":""}`,style:{color:x},children:g}),u.jsx("span",{className:"msg-time",title:Os(t.timestamp),children:jo(t.timestamp)})]}),t.replyToId&&u.jsx("div",{className:"msg-reply-indicator",children:"Replying to previous message"}),w?u.jsxs(u.Fragment,{children:[_==="company_recruitment_confirmation"&&u.jsx(qH,{meta:t.metadata,onReply:(S,j)=>h?.(S,v,j),responded:a}),_==="company_staffing_selection"&&u.jsx(JH,{meta:t.metadata,onReply:(S,j)=>h?.(S,v,j),responded:a}),_==="company_work_item_gate"&&u.jsx(nC,{meta:t.metadata,onReply:S=>h?.(S,v,k),responded:a}),_==="company_delivery_feedback"&&u.jsx(aF,{meta:t.metadata,onReply:(S,j)=>h?.(S,v,j??k),responded:a}),_==="company_reorg_pending"&&u.jsx(tF,{meta:t.metadata,onReply:S=>h?.(S,v,k),responded:a}),_==="human_escalation"&&u.jsx(nC,{meta:t.metadata,onReply:S=>h?.(S,v,k),responded:a}),_==="task_user_input"&&u.jsx(uF,{meta:t.metadata,onReply:(S,j)=>h?.(S,v,{...k,...j}),responded:a})]}):u.jsxs("div",{className:"msg-content-agent-card",style:{borderLeftColor:x},children:[u.jsx(bi,{content:t.content,collapseMode:d?"never":"auto"}),u.jsxs("div",{className:"msg-card-actions",children:[u.jsx("button",{className:"msg-action-btn",onClick:()=>m(t.id,t.content),title:"Copy message",children:o?u.jsxs(u.Fragment,{children:[u.jsx(Hl,{})," ",u.jsx("span",{children:"Copied"})]}):u.jsxs(u.Fragment,{children:[u.jsx(Rm,{})," ",u.jsx("span",{children:"Copy"})]})}),r&&u.jsx("span",{className:"msg-time msg-time-inline",title:Os(t.timestamp),children:jo(t.timestamp)})]})]})]})]})]})}),al=Rt.memo(function({messages:t,channelName:n,viewKind:i="session",detailMode:r="summary",agentStatus:o,currentTool:a,toolElapsedMs:c,lastToolSummary:d,progressLog:m,draftAssistantText:h,draftUpdatedAt:p,draftIteration:g,draftTurnId:x,isCompanyRuntime:v,workItemLog:_,childSessions:k,roleWorkItems:w,executorRoleWorkItems:S,onSend:j,onWorkItemClick:N,onMarkRead:O,hasOlderHistory:R=!1,totalMessageCount:D,onLoadOlderHistory:I,loadingOlderHistory:L=!1,scrollPolicy:M="follow",scrollScope:A,showWorkItemRuntimeCard:B=!0,showRuntimeProgress:W=!0,renderUserMarkdown:P=!1}){const G=A??`${i}:${r}:${n}`,$=C.useRef(null),q=C.useRef(null),[Y,Q]=C.useState(null),[V,U]=C.useState(null),Z=M==="follow"?"following":"browsing",[F,K]=C.useState(Z),[ee,te]=C.useState(0),[oe,ae]=C.useState(!1),ue=C.useRef(Z),ie=C.useRef(M),we=C.useRef(M!=="manual"),je=C.useRef(!1),Te=C.useRef(null),qe=C.useRef(0),Ze=C.useRef(!1),Xe=C.useRef("none"),pt=C.useRef(null),Ut=C.useRef(0),Pt=C.useRef(new Set),It=C.useRef(null),he=C.useRef(null),Be=C.useRef(O),at=C.useRef(0),Ue=C.useRef(0),ct=C.useRef(null),pe=C.useRef({active:!1,revision:0}),be=C.useRef(!1),Ae=C.useRef(null),He=C.useRef(!1),Ye=C.useRef(null),$t=C.useRef(null),yt=C.useRef([]),ke=C.useRef({scope:G,assignments:new Map}),We=C.useRef({scope:G,owners:new Map}),Qe=C.useRef({scope:G,keys:new Set});Be.current=O;const Ve=(_?.length??0)+(k?.length??0),Gt=C.useMemo(()=>{const ce=t.filter(Se=>$v(Se,r));return v?ce.filter(Se=>!(Se.metadata?.type==="system"&&Se.content.startsWith("[Company:")||!W&&Se.content.startsWith("[Company:"))):ce},[r,v,t,W]),ei=C.useMemo(()=>Hv(Gt),[Gt]),_t=C.useMemo(()=>i==="session"&&j?Gt.filter(ce=>ei.pendingMessageIds.has(ce.id)):[],[ei.pendingMessageIds,Gt,j,i]),kt=Gt,vn=C.useMemo(()=>{const ce=new Set;for(const Se of m??[]){if(Se.type!=="thinking")continue;const ze=String(Se.turnId??"").trim();ze&&ce.add(ze)}return ce},[m]),On=C.useMemo(()=>{const ce=[];for(const Se of kt){const ze=String(Se.metadata?.runtime_thinking??"").trim();if(!ze)continue;const Ge=Om(Se.metadata);Ge&&vn.has(Ge)||ce.push({type:"thinking",summary:"Thinking",detail:ze,timestamp:Math.max(0,Se.timestamp-1),turnId:Ge||void 0,itemId:Ge?`${Ge}:thinking`:`thinking:${Se.id}`,streamId:Ge?`${Ge}:thinking`:`thinking:${Se.id}`,executionMode:String(Se.metadata?.execution_mode??"").trim()||void 0})}return ce},[vn,kt]),jt=C.useMemo(()=>W?[...(m??[]).filter(ce=>rw.has(ce.type)),...On].sort((ce,Se)=>ce.timestamp-Se.timestamp):[],[m,W,On]),Ht=C.useMemo(()=>W?(m??[]).filter(ce=>!rw.has(ce.type)):[],[m,W]),Hn=C.useMemo(()=>W?r==="full"?m??[]:jt:[],[r,jt,m,W]),Me=Ht,gt=C.useMemo(()=>{const ce=new Set;for(const Se of kt){const ze=Gf(Se);ze&&ce.add(ze)}return ce},[kt]),ht=C.useMemo(()=>{const ce=String(h??"").trim(),Se=String(x??"").trim();return!ce||Se&>.has(Se)?null:{kind:"draft",id:Se?`turn:assistant:${Se}`:"draft:active",timestamp:p??kt[kt.length-1]?.timestamp??0,text:ce,iteration:g,sortOrder:Number.MAX_SAFE_INTEGER}},[gt,h,g,x,p,kt]);C.useLayoutEffect(()=>{Qe.current.scope!==G&&(Qe.current={scope:G,keys:new Set}),ht&&Qe.current.keys.add(ht.id)},[ht,G]);const mi=!!o&&o!=="idle",Vn=Me.length>0,pn=W&&r!=="full"&&(mi||Vn),Fn=C.useMemo(()=>{const ce=[...HF(kt,{isCompanyRuntime:v,detailMode:r}),...Hn.map((nt,hn)=>({kind:"progress",id:`progress:${EN(nt)}`,timestamp:nt.timestamp,entry:nt,sortOrder:hn*2}))].sort((nt,hn)=>nt.timestamp-hn.timestamp||nt.sortOrder-hn.sortOrder),Se=We.current.scope===G?We.current.owners:new Map,ze=new Map;ce.forEach((nt,hn)=>{if(nt.kind!=="message")return;const ii=fE(nt.msg);if(!ii)return;const qn=Se.get(ii)??nt.id;ze.set(ii,qn),qn!==nt.id&&(ce[hn]={...nt,id:qn})});const Ge=new Map;ce.forEach((nt,hn)=>{if(nt.kind!=="message")return;const ii=`${nt.msg.channelId}\0${nt.msg.id}`,qn=Ge.get(nt.id)??[];qn.push({index:hn,identity:ii}),Ge.set(nt.id,qn)});const St=ke.current.scope===G?ke.current.assignments:new Map,ut=new Map;for(const[nt,hn]of Ge){const ii=St.get(nt),qn=new Map,Et=new Set;for(const nn of hn){const gn=ii?.get(nn.identity);!gn||Et.has(gn)||(qn.set(nn.identity,gn),Et.add(gn))}for(const nn of hn){if(qn.has(nn.identity))continue;const gn=Et.has(nt)?`${nt}:message:${encodeURIComponent(nn.identity)}`:nt;qn.set(nn.identity,gn),Et.add(gn)}ut.set(nt,qn);for(const nn of hn){const gn=qn.get(nn.identity);if(!gn||gn===nt)continue;const Vi=ce[nn.index];Vi.kind==="message"&&(ce[nn.index]={...Vi,id:gn})}}return ht&&ce.push(ht),{items:ce,messageKeyAssignments:ut,resultKeyOwners:ze}},[r,ht,v,G,kt,Hn]),tt=Fn.items,pi=C.useMemo(()=>tt.map(bF),[tt]);C.useLayoutEffect(()=>{ke.current={scope:G,assignments:Fn.messageKeyAssignments},We.current={scope:G,owners:Fn.resultKeyOwners}},[G,Fn.messageKeyAssignments,Fn.resultKeyOwners]);const Si=C.useRef(kt);Si.current=kt,at.current=kt.reduce((ce,Se)=>Math.max(ce,Se.timestamp),0);const[Rn,wn]=C.useState({scope:G,startKey:null}),Vt=Rn.scope===G?Rn.startKey:null,Cn=Math.max(0,tt.length-jF),Xt=Vt?tt.findIndex(ce=>ce.id===Vt):-1;let Re=-1;if(Vt&&Xt<0){const ce=yt.current,Se=ce.indexOf(Vt),ze=new Map(tt.map((Ge,St)=>[Ge.id,St]));for(let Ge=Math.max(0,Se);Ge=0;Ge-=1){const St=ze.get(ce[Ge]);if(St!==void 0){Re=St;break}}}const wt=Xt>=0?Xt:Re>=0?Re:Cn,bn=C.useMemo(()=>tt.slice(wt),[tt,wt]),wi=wt,In=C.useRef(tt);In.current=tt,C.useLayoutEffect(()=>{const ce=tt[wt]?.id??null;Rn.scope===G&&Rn.startKey===ce||(Rn.scope===G&&Rn.startKey&&(He.current=!0),wn({scope:G,startKey:ce}))},[G,tt,wt,Rn.scope,Rn.startKey]),C.useLayoutEffect(()=>{const ce=Ae.current;if(!ce||ce.scope!==G)return;const Se=tt.findIndex(Ge=>Ge.id===ce.startKey);if(Se<=ce.beforeIndex)return;const ze=Math.max(0,Se-cy);Ae.current=null,He.current=!0,wn({scope:G,startKey:tt[ze]?.id??null})},[G,tt]),C.useLayoutEffect(()=>{yt.current=tt.map(ce=>ce.id)},[tt]);const At=C.useMemo(()=>{let ce="";return bn.map((Se,ze)=>{const Ge=new Date(Se.timestamp).toLocaleDateString(),St=Ge!==ce;St&&(ce=Ge);const ut=ze>0?bn[ze-1]:null,nt=Se.kind==="message"&&ut?.kind==="message"&&!St&&ut.msg.sender===Se.msg.sender&&ut.msg.senderName===Se.msg.senderName&&Se.msg.metadata?.type!=="system"&&ut.msg.metadata?.type!=="system"&&!Se.msg.metadata?.is_work_item_event&&!ut.msg.metadata?.is_work_item_event&&Se.msg.timestamp-ut.msg.timestamp0),Zn=tt.length>0||yi||pn;be.current=Zn;const ti=C.useCallback(ce=>{const Se=q.current?.querySelectorAll("[data-timeline-key]");if(!Se)return null;for(const ze of Se)if(ze.dataset.timelineKey===ce)return ze;return null},[]),ln=C.useCallback(ce=>{je.current=ce,ae(Se=>Se===ce?Se:ce)},[]),Kt=C.useCallback(()=>{const ce=he.current,Se=Be.current;!ce||!Se||It.current===ce||(It.current=ce,Se())},[]),Mt=C.useCallback(()=>{const ce=$.current,Se=q.current;if(!ce||!Se)return;const ze=ce.getBoundingClientRect(),Ge=Se.querySelectorAll("[data-timeline-key]");for(const St of Ge){const ut=St.getBoundingClientRect();if(!(ut.bottom<=ze.top+.5)){Te.current={key:St.dataset.timelineKey??"",viewportOffset:ut.top-ze.top};return}}Te.current=null},[]),Zt=C.useCallback(()=>{const ce=$.current,Se=Te.current;if(!ce||!Se?.key)return;const ze=ti(Se.key);if(!ze){Mt();return}const Ge=ze.getBoundingClientRect().top-ce.getBoundingClientRect().top-Se.viewportOffset;Math.abs(Ge)>.5&&(ce.scrollTop+=Ge),Se.viewportOffset=ze.getBoundingClientRect().top-ce.getBoundingClientRect().top,qe.current=ce.scrollTop,ln(Zo(ce))},[Mt,ti,ln]),Un=C.useCallback(ce=>{ue.current=ce,K(Se=>Se===ce?Se:ce)},[]),dn=C.useCallback(()=>{pe.current.active=!1,ue.current!=="browsing"&&(Ut.current=at.current,te(0),Un("browsing")),Mt()},[Mt,Un]),Je=C.useCallback(()=>{const ce=$.current;if(!ce)return;const Se=Math.max(0,ce.scrollHeight-ce.clientHeight);Math.abs(ce.scrollTop-Se)>.5&&(ce.scrollTop=Se),qe.current=ce.scrollTop,ln(Zo(ce))},[ln]),ni=C.useCallback(()=>{ie.current==="follow"&&(Un("following"),te(0),Te.current=null,Je(),Kt())},[Kt,Un,Je]),Bt=C.useCallback(()=>{if(ie.current==="follow"){ni();return}pe.current.active=!1,Je(),Mt(),te(0),Kt()},[Mt,Kt,ni,Je]),Dt=C.useCallback(()=>{const ce=$.current;if(!ce||!be.current)return;if(ln(Zo(ce)),we.current){we.current=!1,ie.current==="initial-bottom"&&(pe.current={active:!0,revision:Ue.current}),Je(),ie.current!=="follow"&&Un("browsing");return}const Se=pe.current;if(ie.current==="initial-bottom"&&Se.active&&Se.revision===Ue.current){Je();return}if(ie.current==="follow"&&ue.current==="following"){Je();return}He.current&&(He.current=!1,Zt())},[Zt,Un,ln,Je]);C.useLayoutEffect(()=>{ie.current=M;const ce=M==="follow"?"following":"browsing";ue.current=ce,K(ce),we.current=M!=="manual",ln(!1),Te.current=null,Ae.current=null,He.current=!1,Ye.current=null,$t.current=null,pe.current={active:!1,revision:Ue.current},Pt.current=new Set(Si.current.filter(lC).map(ia)),Ut.current=at.current,It.current=null,te(0)},[M,G,ln]),C.useLayoutEffect(()=>{const ce=ct.current;if(_F(ce,pi))return;ct.current=pi,Ue.current+=1;const ze=pe.current;!ze.active||ze.revision===Ue.current||(ze.active=!1,Mt())},[Mt,pi]),C.useLayoutEffect(()=>{const ce=$.current,Se=q.current;if(!ce||!Se||($t.current={width:ce.clientWidth,height:ce.clientHeight},Dt(),typeof ResizeObserver>"u"))return;const ze=new ResizeObserver(Ge=>{if(Ge.find(ut=>ut.target===ce)){const ut=$t.current,nt={width:ce.clientWidth,height:ce.clientHeight};ut&&(ut.width!==nt.width||ut.height!==nt.height)&&(He.current=ue.current==="browsing"),$t.current=nt}Dt()});return ze.observe(ce),ze.observe(Se),()=>ze.disconnect()},[Dt,M,G]),C.useEffect(()=>{const ce=$.current;if(!ce)return;qe.current=ce.scrollTop;const Se=Et=>{Xe.current=Et.deltaY<0?"up":Et.deltaY>0?"down":"none",Et.deltaY<0&&ce.scrollTop>0&&dn(),Et.deltaY>0&&Zo(ce)&&ni()},ze=()=>{Ze.current=!0},Ge=()=>{Ze.current=!1,Xe.current="none",ue.current==="browsing"&&Mt()},St=Et=>{pt.current=Et.touches[0]?.clientY??null,Ze.current=!0},ut=Et=>{const nn=Et.touches[0]?.clientY,gn=pt.current;nn===void 0||gn===null||(nn>gn+1?(Xe.current="up",dn()):nn{pt.current=null,Ge()},hn=Et=>{const nn=Et.target;nn&&nn!==ce&&(nn.isContentEditable||["INPUT","TEXTAREA","SELECT","BUTTON"].includes(nn.tagName))||(["ArrowUp","PageUp","Home"].includes(Et.key)||Et.key===" "&&Et.shiftKey?(Xe.current="up",dn()):(["ArrowDown","PageDown","End"].includes(Et.key)||Et.key===" ")&&(Xe.current="down",Et.key==="End"&&Bt()))},ii=()=>{Xe.current="none"},qn=()=>{const Et=qe.current,nn=ce.scrollTop,gn=Zo(ce),Vi=je.current,Ui=Ze.current||Xe.current!=="none";nnEt+.5||Xe.current==="down")&&ni(),ue.current==="browsing"&&Mt(),Ze.current||(Xe.current="none")):nn>Et+.5&&gn?ni():ue.current==="browsing"&&Math.abs(nn-Et)>.5&&Mt(),qe.current=nn,ln(gn),!Vi&&gn&&(Ui||nn>Et+.5)&&Kt()};return ce.addEventListener("wheel",Se,{passive:!0}),ce.addEventListener("pointerdown",ze),window.addEventListener("pointerup",Ge),window.addEventListener("pointercancel",Ge),window.addEventListener("blur",Ge),ce.addEventListener("touchstart",St,{passive:!0}),ce.addEventListener("touchmove",ut,{passive:!0}),ce.addEventListener("touchend",nt,{passive:!0}),ce.addEventListener("touchcancel",nt,{passive:!0}),ce.addEventListener("keydown",hn),ce.addEventListener("keyup",ii),ce.addEventListener("scroll",qn,{passive:!0}),()=>{ce.removeEventListener("wheel",Se),ce.removeEventListener("pointerdown",ze),window.removeEventListener("pointerup",Ge),window.removeEventListener("pointercancel",Ge),window.removeEventListener("blur",Ge),ce.removeEventListener("touchstart",St),ce.removeEventListener("touchmove",ut),ce.removeEventListener("touchend",nt),ce.removeEventListener("touchcancel",nt),ce.removeEventListener("keydown",hn),ce.removeEventListener("keyup",ii),ce.removeEventListener("scroll",qn)}},[Mt,dn,Kt,Bt,ni,ln]);const An=C.useMemo(()=>kt.filter(lC),[kt]),Gn=C.useMemo(()=>An.map(ia),[An]);C.useEffect(()=>{const ce=new Set(Gn);if(Pt.current.size===0){Pt.current=ce;return}if(ue.current==="browsing"){let Se=0;for(const ze of An){const Ge=ia(ze);!Pt.current.has(Ge)&&ze.timestamp>=Ut.current&&(Se+=1)}Se>0&&te(ze=>ze+Se)}else te(0);Pt.current=ce},[An,Gn]);const jn=An.reduce((ce,Se)=>!ce||Se.timestamp>ce.timestamp?Se:ce,void 0),Ln=jn?`${ia(jn)}:${jn.timestamp}`:null;he.current=Ln,C.useEffect(()=>{if(!Ln)return;const ce=$.current,Se=!!ce&&Zo(ce);ln(Se),!(ue.current!=="following"&&!Se)&&Kt()},[Ln,Kt,ln,F]);const xi=C.useCallback((ce,Se)=>{NF(Se).then(ze=>{ze&&(Q(ce),setTimeout(()=>Q(null),1500))})},[]),de=C.useCallback(async()=>{if(Mt(),He.current=!0,wt>0){const ce=Math.max(0,wt-cy);wn({scope:G,startKey:tt[ce]?.id??null});return}!R||L||!I||(Ae.current=Vt?{scope:G,startKey:Vt,beforeIndex:wt}:null,await I(Gt[0]))},[Mt,Vt,Gt,R,L,I,G,tt,wt]),ve=Bt,$e=C.useCallback(ce=>{const Se=$.current,ze=ti(ce);if(!Se||!ze)return!1;const Ge=Se.getBoundingClientRect(),St=ze.getBoundingClientRect();return Se.scrollTop+=St.top-Ge.top-Math.max(0,(Se.clientHeight-St.height)/2),qe.current=Se.scrollTop,ln(Zo(Se)),Mt(),!0},[Mt,ti,ln]);C.useLayoutEffect(()=>{const ce=Ye.current;!ce||!$e(ce)||(Ye.current=null)},[$e,bn]);const dt=C.useCallback(()=>{const ce=_t[0];if(!ce)return;dn(),He.current=!1;const Se=ia(ce);if($e(Se))return;const ze=tt.findIndex(St=>St.id===Se);if(ze<0)return;Ye.current=Se;const Ge=Math.max(0,ze-2);wn({scope:G,startKey:tt[Ge]?.id??Se})},[$e,dn,_t,G,tt]),an=C.useCallback(ce=>{const{item:Se,showDate:ze,dateStr:Ge,isGrouped:St}=ce;if(Se.kind==="progress")return u.jsx(DF,{entry:Se.entry,showDate:ze,dateStr:Ge,compact:r!=="full"});if(Se.kind==="draft")return u.jsx(PF,{text:Se.text,timestamp:Se.timestamp,iteration:Se.iteration,showDate:ze,dateStr:Ge});if(Se.kind==="ops-bundle")return u.jsx(VF,{events:Se.events,showDate:ze,dateStr:Ge});const{msg:ut}=Se,nt=Qe.current.scope===G&&Qe.current.keys.has(Se.id),hn=ut.metadata?.type==="system",ii=IF(ut),qn=!nt&&(!!ut.metadata?.is_work_item_event||ut.content.startsWith("[Company:")),Et=gu(ut.metadata),nn=ut.sender==="user",gn=!nt&&!nn&&!Et?MF(ut.content):null;if(qn&&!Et)return u.jsx(OF,{msg:ut,showDate:ze,dateStr:Ge});if(gn)return u.jsx(GF,{msg:ut,payload:gn,showDate:ze,dateStr:Ge,isCopied:Y===ut.id,onCopy:xi});if(ii&&!Et)return u.jsx(zF,{msg:ut,showDate:ze,dateStr:Ge});if(hn&&!Et)return u.jsx(LF,{msg:ut,showDate:ze,dateStr:Ge});if(nn)return u.jsx(BF,{msg:ut,showDate:ze,dateStr:Ge,isGrouped:St,isCopied:Y===ut.id,onCopy:xi,onImageClick:U,renderUserMarkdown:P});if(ut.sender==="system"&&!gu(ut.metadata)){const Vi=BI(ut.content);if(Vi)return u.jsx(FF,{msg:ut,showDate:ze,dateStr:Ge,isGrouped:St,classification:Vi})}return u.jsx(qF,{msg:ut,showDate:ze,dateStr:Ge,isGrouped:St,isCopied:Y===ut.id,isCheckpointResponded:ei.respondedMessageIds.has(ut.id),suppressCheckpointPanel:ei.duplicateMessageIds.has(ut.id),keepExpanded:nt,onCopy:xi,onSend:j})},[ei,Y,xi,r,j,P,G]),Ft=wF[i];return u.jsxs("div",{className:`msg-list-shell msg-list-shell-${F}`,children:[u.jsx("div",{className:`msg-list msg-list-${F}`,ref:$,tabIndex:0,"data-scroll-policy":M,"data-viewport-mode":F,children:u.jsxs("div",{className:"msg-list-content",ref:q,children:[!Zn&&u.jsxs("div",{className:"msg-welcome",children:[u.jsx("div",{className:"msg-welcome-icon",children:Ft.icon}),u.jsx("div",{className:"msg-welcome-title",children:n||Ft.title}),u.jsx("div",{className:"msg-welcome-hint",children:Ft.hint})]}),(wi>0||R)&&u.jsxs("div",{className:"msg-history-hint",children:[u.jsx("button",{className:"msg-history-load-btn",onClick:()=>{de()},disabled:L,children:L?"Loading older messages...":wi>0?`Load ${Math.min(cy,wi)} older messages`:"Load older messages"}),u.jsxs("span",{className:"msg-history-meta",children:["Showing ",bn.length," of ",D??tt.length]})]}),At.map(ce=>u.jsx("div",{className:"msg-timeline-row","data-timeline-key":ce.item.id,children:an(ce)},ce.item.id)),yi&&u.jsxs("div",{className:"msg-row agent",children:[u.jsx("div",{className:"msg-avatar agent-avatar",children:u.jsx(bl,{})}),u.jsx("div",{className:"msg-body",children:u.jsx(zI,{workItemLog:_??[],roleWorkItems:w,executorRoleWorkItems:S,childSessions:k,isCompanyRuntime:v,onWorkItemClick:N})})]}),pn&&u.jsxs("div",{className:"msg-row agent agent-working-row",children:[u.jsx("div",{className:"msg-avatar agent-avatar",children:u.jsx(bl,{})}),u.jsx("div",{className:"msg-body",children:u.jsx(Nl,{entries:Me,agentStatus:o,currentTool:a,toolElapsedMs:c,lastToolSummary:d,expandedByDefault:!0})})]}),u.jsx("div",{className:"msg-end-anchor"})]})}),(_t.length>0||F==="browsing"&&!oe)&&u.jsxs("div",{className:"msg-list-floating-actions",children:[_t.length>0&&u.jsxs("button",{type:"button",className:"msg-list-float-btn msg-list-pending-btn",onClick:dt,children:["Pending actions · ",_t.length]}),F==="browsing"&&!oe&&u.jsxs("button",{type:"button",className:"msg-list-float-btn msg-list-latest-btn",onClick:ve,children:[ee>0?`${ee} new · `:"","Back to latest"]})]}),V&&u.jsx("div",{className:"lightbox-overlay",onClick:()=>U(null),children:u.jsx("img",{className:"lightbox-img",src:V,alt:"Preview"})})]})}),WF=10*1024*1024,YF=20*1024*1024,XF="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",mf={native:"OpenOPC Native",codex:"Codex",claude_code:"Claude Code",cursor:"Cursor",opencode:"OpenCode"};function KF(e,t){return new Promise((n,i)=>{const r=new FileReader;r.onprogress=o=>{o.lengthComputable&&t?.(Math.round(o.loaded/o.total*100))},r.onload=()=>{const o=r.result;t?.(100),n(o.split(",")[1]||"")},r.onerror=i,r.readAsDataURL(e)})}function dC(e){return e<1024?`${e}B`:e<1024*1024?`${(e/1024).toFixed(0)}KB`:`${(e/(1024*1024)).toFixed(1)}MB`}function $I(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 ZF(e,t){const n=$I(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 QF({progress:e,state:t,error:n}){const r=2*Math.PI*11,o=n||t==="ready"?100:Math.max(0,Math.min(e,100)),a=r*(1-o/100);return u.jsxs("span",{className:`attachment-progress-ring${n?" error":t==="ready"?" ready":""}`,"aria-label":n?"Attachment preparation failed":t==="ready"?"Attachment ready to send":`Preparing attachment ${o}%`,role:"img",children:[u.jsxs("svg",{viewBox:"0 0 28 28","aria-hidden":"true",children:[u.jsx("circle",{className:"attachment-progress-track",cx:"14",cy:"14",r:11}),u.jsx("circle",{className:"attachment-progress-value",cx:"14",cy:"14",r:11,strokeDasharray:r,strokeDashoffset:a})]}),u.jsx("span",{className:"attachment-progress-center",children:n?"!":t==="ready"?u.jsx(Hl,{}):o})]})}function JF({usedPct:e,usedTokens:t,windowTokens:n}){const r=2*Math.PI*11,o=Math.max(0,Math.min(e,100)),a=r*(1-o/100),c=o>=80,d=o>=90,m=typeof t=="number"&&typeof n=="number"?`${o}% used (${t.toLocaleString()}/${n.toLocaleString()})`:`${o}% used`;return u.jsxs("span",{className:`composer-context-ring${c?" low":""}${d?" critical":""}`,title:`Context window: ${m}`,"aria-label":`Context window ${m}`,role:"img",children:[u.jsxs("svg",{viewBox:"0 0 28 28","aria-hidden":"true",children:[u.jsx("circle",{className:"composer-context-ring-track",cx:"14",cy:"14",r:11}),u.jsx("circle",{className:"composer-context-ring-value",cx:"14",cy:"14",r:11,strokeDasharray:r,strokeDashoffset:a})]}),u.jsx("span",{className:"composer-context-ring-label",children:o})]})}function dy(e){return e.organization_name?.trim()||e.name}function fy({disabled:e,placeholder:t,channelId:n,execMode:i,companyProfile:r,taskPreferredAgent:o="native",agentStatus:a,currentTool:c,displayTool:d,activeAgentCount:m,runtimeControlState:h,canStop:p,autoFocus:g=!0,contextTokens:x,contextWindow:v,contextRemainingPct:_,savedOrgs:k,activeSavedOrg:w,selectedOrgId:S,lockedMode:j=!1,onSend:N,onModeChange:O,onTaskAgentChange:R,onSavedOrgsRefresh:D,onSavedOrgLoad:I,onStop:L,onContinueInNewChat:M}){const[A,B]=C.useState(""),[W,P]=C.useState(!1),[G,$]=C.useState([]),[q,Y]=C.useState(null),Q=C.useRef(null),V=C.useRef(null),U=h==="suspending",Z=h==="running"||h==="suspending"||h==="resuming",F=h==="suspended",K=h!=null,ee=Z||!K&&a!=null&&a!=="idle",te=(p??!0)&&!U&&!F,oe=C.useMemo(()=>uE({contextTokens:x,contextWindow:v,contextRemainingPct:_}),[_,x,v]);C.useEffect(()=>{const ke=Q.current;ke&&(ke.style.height="auto",ke.style.height=`${Math.min(ke.scrollHeight,200)}px`)},[A]),C.useEffect(()=>{B(""),$(ke=>(ke.forEach(We=>{We.preview_url&&URL.revokeObjectURL(We.preview_url)}),[])),!e&&g&&setTimeout(()=>Q.current?.focus(),50)},[n,e,g]);const ae=C.useCallback((ke,We)=>{$(Qe=>Qe.map(Fe=>Fe.id===ke?We(Fe):Fe))},[]),ue=C.useCallback(async(ke,We)=>{try{const Qe=await KF(We,Fe=>{ae(ke,Ve=>({...Ve,progress_percent:Fe,transfer_state:"reading"}))});ae(ke,Fe=>({...Fe,base64_data:Qe,progress_percent:100,transfer_state:"ready"}))}catch{ae(ke,Qe=>({...Qe,error:"Failed to prepare file",progress_percent:0,transfer_state:"error"}))}},[ae]),ie=C.useCallback(ke=>{const We=Array.from(ke);let Qe=G.reduce((Ve,Gt)=>Ve+Gt.size_bytes,0);const Fe=We.map(Ve=>{let Gt;return Ve.size>WF?Gt=`Too large (${dC(Ve.size)})`:Qe+Ve.size>YF?Gt="Total size exceeds 20MB":Qe+=Ve.size,{id:crypto.randomUUID(),file:Ve,filename:Ve.name||"upload",mime_type:Ve.type||"application/octet-stream",size_bytes:Ve.size,preview_url:Ve.type.startsWith("image/")?URL.createObjectURL(Ve):"",progress_percent:0,transfer_state:Gt?"error":"reading",error:Gt}});$(Ve=>[...Ve,...Fe]),Fe.filter(Ve=>!Ve.error).forEach(Ve=>{ue(Ve.id,Ve.file)})},[G,ue]),we=C.useCallback(ke=>{$(We=>{const Qe=We.find(Fe=>Fe.id===ke);return Qe?.preview_url&&URL.revokeObjectURL(Qe.preview_url),We.filter(Fe=>Fe.id!==ke)})},[]),je=C.useCallback(()=>{if(e||ee)return;const ke=A.trim(),We=G.filter(Ve=>!Ve.error&&Ve.transfer_state==="reading"),Qe=G.filter(Ve=>!Ve.error&&!!Ve.base64_data);if(We.length>0||!ke&&Qe.length===0)return;const Fe=Qe.map(Ve=>({filename:Ve.filename,data:Ve.base64_data,mime_type:Ve.mime_type}));N(ke||"Sent with attachments",Fe.length?Fe:void 0),B(""),G.forEach(Ve=>{Ve.preview_url&&URL.revokeObjectURL(Ve.preview_url)}),$([])},[e,ee,A,G,N]),Te=C.useCallback(ke=>{const We=ke.clipboardData?.files;We&&We.length>0&&(ke.preventDefault(),ie(We))},[ie]),qe=String(r??"").trim().toLowerCase(),Ze=i==="company"?"company":i==="org"||i==="custom"||qe==="custom"?"org":"task",Xe=C.useMemo(()=>(k??[]).filter(ke=>!!ke.name&&ke.name!=="corporate"),[k]),pt=w?Xe.find(ke=>ke.name===w):void 0,Ut=S?Xe.find(ke=>ke.name===S):void 0,Pt=pt?dy(pt):w||"",It=Ut?dy(Ut):S||Pt,he=Ut?.name||S||pt?.name||"",Be=Ze==="task"?"task":"company",at=Ze==="org"?he?`org:${he}`:"":"corporate",Ue=Ze==="org"?It?`Company / ${It}`:"Company / Saved org":"Company / Corporate",ct=Be==="task"?"Task":Ue,pe=!!i&&!!O,be=Ze==="task"&&!!R,Ae=C.useMemo(()=>{const ke=Ze==="task"?"task":Ze==="org"?`org:${he||"selected"}`:"company:corporate",We=he||pt?.name||"",Qe=It||Pt||We,Fe=[{key:"task",mode:"task",label:"Task",description:"A single agent handles the request",icon:u.jsx(F4,{})},{key:"company:corporate",mode:"company",profile:"corporate",label:"Company / Corporate",description:"A team of roles collaborates",icon:u.jsx(V4,{})}];return We&&Fe.push({key:`org:${We}`,mode:"org",profile:"custom",orgId:We,label:`Company / ${Qe}`,description:"A saved company architecture collaborates",icon:u.jsx(U4,{})}),Fe.filter(Ve=>Ve.key!==ke)},[Pt,pt?.name,Ze,It,he]),He=G.filter(ke=>!ke.error&&ke.transfer_state==="reading").length,Ye=G.filter(ke=>!ke.error&&ke.transfer_state==="ready").length,$t=d||c,yt=ee?U?"Stopping...":m&&m>1?`${m} agents working`:$t?`Running ${$t}`:a==="reflecting"?"Thinking...":"Working...":null;return u.jsxs(u.Fragment,{children:[u.jsxs("div",{className:`msg-composer${W?" focused":""}${ee?" working":""}`,children:[ee&&yt&&u.jsxs("div",{className:"composer-status",children:[u.jsx("div",{className:"composer-status-indicator"}),u.jsx("span",{className:"composer-status-text",children:yt}),u.jsxs("button",{className:"composer-stop-btn",onClick:L,title:"Stop",disabled:!te||!L,children:[u.jsx(aE,{}),u.jsx("span",{children:U?"Stopping...":"Stop"})]})]}),G.length>0&&u.jsx("div",{className:"composer-attachments",children:G.map(ke=>u.jsxs("div",{className:`attachment-chip${ke.error?" error":""}`,children:[ke.preview_url?u.jsx("img",{className:"attachment-thumb",src:ke.preview_url,alt:ke.filename,onClick:()=>Y(ke.preview_url)}):u.jsx("span",{className:`attachment-file-icon tone-${ZF(ke.mime_type,ke.filename)}`,children:$I(ke.mime_type,ke.filename)}),u.jsxs("span",{className:"attachment-chip-info",children:[u.jsx("span",{className:"attachment-chip-name",children:ke.filename}),u.jsx("span",{className:"attachment-chip-size",children:ke.error?ke.error:ke.transfer_state==="reading"?`Preparing ${ke.progress_percent}%`:`${dC(ke.size_bytes)} - Ready`})]}),u.jsx(QF,{progress:ke.progress_percent,state:ke.transfer_state,error:ke.error}),u.jsx("button",{className:"attachment-chip-remove",onClick:()=>we(ke.id),title:"Remove",children:u.jsx(Mm,{})})]},ke.id))}),u.jsxs("div",{className:"composer-input-area",children:[u.jsx("textarea",{ref:Q,value:A,onChange:ke=>B(ke.target.value),onFocus:()=>P(!0),onBlur:()=>P(!1),onPaste:Te,onKeyDown:ke=>{ke.key==="Enter"&&!ke.shiftKey&&(ke.preventDefault(),je())},placeholder:t??"Message...",rows:1,disabled:e}),u.jsxs("div",{className:"composer-bottom",children:[u.jsx("button",{className:"composer-attach-btn",onClick:()=>V.current?.click(),title:"Attach files",disabled:e,children:u.jsx(O4,{})}),u.jsx("input",{ref:V,type:"file",multiple:!0,accept:XF,style:{display:"none"},onChange:ke=>{ke.target.files&&ie(ke.target.files),ke.target.value=""}}),(pe||i)&&u.jsxs("div",{className:"composer-config-group","data-locked":j?"true":void 0,children:[pe&&!j?u.jsxs("label",{className:"composer-mode-inline","data-kind":"mode",title:"Execution mode for this chat and new work started from it",children:[u.jsx("span",{className:"composer-mode-inline-label",children:"Mode"}),u.jsx("span",{className:"composer-mode-select-wrap",children:u.jsxs("select",{className:"composer-mode-select",value:Be,onChange:ke=>{if(ke.target.value==="task"){O?.("task");return}O?.("company","corporate")},onFocus:()=>D?.(),onPointerDown:()=>D?.(),disabled:e,"aria-label":"Execution mode",children:[u.jsx("option",{value:"task",children:"Task"}),u.jsx("option",{value:"company",children:"Company"})]})})]}):pe&&j?u.jsxs("div",{className:"composer-mode-chip","data-kind":"mode",tabIndex:0,role:"group","aria-label":`Mode locked to ${ct}.${M?" Use the menu to start a new chat in a different mode.":" Start a new chat to use a different mode."}`,children:[u.jsx("span",{className:"composer-mode-chip-icon","aria-hidden":"true",children:u.jsx(sS,{})}),u.jsx("span",{className:"composer-mode-chip-label",children:ct}),u.jsxs("div",{className:"composer-mode-chip-popover",role:"dialog","aria-label":"Mode info",children:[u.jsx("div",{className:"composer-mode-chip-popover-title",children:"Mode is fixed for this chat"}),u.jsxs("div",{className:"composer-mode-chip-popover-body",children:["Once the first message is sent, this chat is committed to"," ",u.jsx("strong",{children:ct}),"."]}),M&&Ae.length>0&&u.jsxs(u.Fragment,{children:[u.jsx("div",{className:"composer-mode-chip-popover-divider","aria-hidden":"true"}),u.jsx("div",{className:"composer-mode-chip-popover-action-title",children:"Continue in a new chat"}),u.jsx("div",{className:"composer-mode-chip-popover-actions",children:Ae.map(ke=>u.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:[u.jsx("span",{className:"composer-mode-chip-popover-action-icon","aria-hidden":"true",children:ke.icon}),u.jsxs("span",{className:"composer-mode-chip-popover-action-text",children:[u.jsx("span",{className:"composer-mode-chip-popover-action-label",children:ke.label}),u.jsx("span",{className:"composer-mode-chip-popover-action-desc",children:ke.description})]}),u.jsx("span",{className:"composer-mode-chip-popover-action-arrow","aria-hidden":"true",children:u.jsx(cE,{})})]},ke.key))})]})]})]}):u.jsx("span",{className:"composer-mode","data-kind":"mode",children:ct}),Be==="company"&&pe&&!j&&u.jsxs(u.Fragment,{children:[u.jsx("span",{className:"composer-config-divider","aria-hidden":"true"}),u.jsxs("label",{className:"composer-mode-inline","data-kind":"org",title:"Company architecture for this chat",children:[u.jsx("span",{className:"composer-mode-inline-label",children:"Company"}),u.jsx("span",{className:"composer-mode-select-wrap",children:u.jsxs("select",{className:"composer-mode-select",value:at,onChange:ke=>{const We=ke.target.value;if(We==="corporate"){O?.("company","corporate");return}if(We.startsWith("org:")){const Qe=We.slice(4);Qe&&O?.("org","custom",Qe)}},onFocus:()=>D?.(),onPointerDown:()=>D?.(),disabled:e,"aria-label":"Company architecture",children:[u.jsx("option",{value:"corporate",children:"Corporate"}),!at&&u.jsx("option",{value:"",disabled:!0,children:"Select saved org"}),at&&at!=="corporate"&&!Xe.some(ke=>`org:${ke.name}`===at)&&u.jsx("option",{value:at,children:It||he}),Xe.length===0?u.jsx("option",{value:"",disabled:!0,children:"No saved orgs"}):Xe.map(ke=>u.jsx("option",{value:`org:${ke.name}`,children:dy(ke)},ke.name))]})})]})]}),Ze==="task"&&u.jsxs(u.Fragment,{children:[u.jsx("span",{className:"composer-config-divider","aria-hidden":"true"}),be&&!j?u.jsxs("label",{className:"composer-mode-inline","data-kind":"agent",title:"Execution agent for this task-mode chat",children:[u.jsx("span",{className:"composer-mode-inline-label",children:"Agent"}),u.jsx("span",{className:"composer-mode-select-wrap",children:u.jsx("select",{className:"composer-mode-select",value:o,onChange:ke=>R?.(ke.target.value),disabled:e,"aria-label":"Task mode agent",children:Object.entries(mf).map(([ke,We])=>u.jsx("option",{value:ke,children:We},ke))})})]}):be&&j?u.jsxs("span",{className:"composer-mode-chip","data-kind":"agent",tabIndex:0,role:"status","aria-label":`Agent locked to ${mf[o]}. Start a new chat to use a different agent.`,children:[u.jsx("span",{className:"composer-mode-chip-icon","aria-hidden":"true",children:u.jsx(sS,{})}),u.jsx("span",{className:"composer-mode-chip-label",children:mf[o]}),u.jsxs("span",{className:"composer-mode-chip-popover",role:"tooltip",children:[u.jsx("span",{className:"composer-mode-chip-popover-title",children:"Agent is fixed for this chat"}),u.jsx("span",{className:"composer-mode-chip-popover-body",children:"The execution agent is committed once the chat starts. Start a new chat to switch agents."})]})]}):u.jsx("span",{className:"composer-mode","data-kind":"agent",children:mf[o]})]})]}),u.jsx("span",{className:"composer-hint",children:He>0?`Preparing ${He} attachment${He>1?"s":""}`:Ye>0?`${Ye} attachment${Ye>1?"s":""} ready`:"Shift+Enter for new line"}),typeof oe.usedPct=="number"&&u.jsx(JF,{usedPct:oe.usedPct,usedTokens:oe.usedTokens,windowTokens:oe.windowTokens}),u.jsx("button",{className:"composer-send-btn",onClick:je,disabled:e||He>0||!A.trim()&&Ye===0||ee,children:u.jsx(M4,{})})]})]})]}),q&&u.jsx("div",{className:"lightbox-overlay",onClick:()=>Y(null),children:u.jsx("img",{className:"lightbox-img",src:q,alt:"Preview"})})]})}function I0(e){return Dm(e)}function fC(e){const t=I0(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 T0(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 eV(e){return e.length===0?"—":T0(e[e.length-1].timestamp)}function tV(e){if(e.status==="done")return"Completed";if(e.status==="failed")return"Failed";if(e.status==="cancelled")return"Cancelled";const t=I0(e);if(t==="tool_active"&&e.currentTool)return e.currentTool;if(t==="reflecting")return"Thinking…";if(e.status==="pending")return"Pending";const n=e.progressLog;if(n.length>0){const i=n[n.length-1];return i.type==="work_item_started"?`Work item: ${i.summary}`:i.type==="tool_call"?i.summary:i.detail?i.detail.replace(/\s+/g," ").trim():i.summary}return"Idle"}function mC(e){return e==="done"?"✓":e==="failed"?"✗":e==="cancelled"?"—":null}function pC(e){return e==="done"?"awp-terminal-done":e==="failed"?"awp-terminal-failed":e==="cancelled"?"awp-terminal-cancelled":""}const nV={native:"Native",codex:"Codex",claude_code:"Claude Code",cursor:"Cursor",opencode:"OpenCode"},my={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"}},cv={active:"Working",waiting:"Waiting",pending:"Pending",done:"Completed",failed:"Failed"},hC={active:0,waiting:1,pending:2,done:3,failed:4};function iV(e){if(e.runtimeStatus==="tool_active")return"Running tool…";if(e.runtimeStatus==="reflecting")return"Thinking…";const t=cv[e.aggregatedStatus]??"Pending";return e.aggregatedStatus==="done"?`${t} · ${e.workItems.length} work item${e.workItems.length===1?"":"s"}`:t}function rV(e){if(e.workItems.length===0)return"—";const t=e.workItems.reduce((n,i)=>Math.max(n,i.updatedAt),0);return t?T0(t):"—"}function sV(e){if(e.phase==="failed")return"failed";if(e.phase==="cancelled")return"cancelled";if(e.kanbanColumn==="done")return"done"}function oV({sections:e,fallbackEntries:t,sessionStatus:n}){const i=(e??[]).filter(r=>(r.entries?.length??0)>0||!!r.runtimeTaskId);return i.length>0?u.jsx("div",{className:"wf-role-turn-activity-sections",children:i.map((r,o)=>{const a=r.entries??[],c=`${r.runtimeTaskId||r.kind}:${o}`;return u.jsxs("section",{className:"wf-role-turn-activity-section",children:[u.jsxs("div",{className:"wf-role-turn-activity-section-head",children:[u.jsx("span",{className:"wf-role-turn-activity-section-title",children:r.title}),r.roleName&&u.jsx("span",{className:"wf-role-turn-activity-section-role",children:r.roleName}),a.length>0&&u.jsx("span",{className:"wf-role-turn-activity-section-count",children:a.length})]}),a.length>0?u.jsx(Nl,{entries:a,sessionStatus:n,expandedByDefault:!0}):u.jsx("div",{className:"wf-role-turn-empty-activity",children:"No runtime activity yet"})]},c)})}):!t||t.length===0?u.jsx("div",{className:"wf-role-turn-empty-activity",children:"No runtime activity yet"}):u.jsx(Nl,{entries:t,sessionStatus:n,expandedByDefault:!0})}function aV({roleWorkItems:e,onOpenChildDetail:t,onOpenExecutionPanel:n}){const[i,r]=C.useState(null),[o,a]=C.useState(null),[c,d]=C.useState("all"),[m,h]=C.useState(""),[p,g]=C.useState(!1),x=C.useMemo(()=>Object.values(e),[e]),v=C.useMemo(()=>{let S=x.slice();if(c==="active"?S=S.filter(j=>j.aggregatedStatus==="active"):c==="idle"?S=S.filter(j=>j.aggregatedStatus==="done"||j.aggregatedStatus==="failed"):c==="pending"&&(S=S.filter(j=>j.aggregatedStatus==="pending"||j.aggregatedStatus==="waiting")),m.trim()){const j=m.toLowerCase();S=S.filter(N=>N.roleName.toLowerCase().includes(j)||N.roleId.toLowerCase().includes(j)||N.workItems.some(O=>O.title.toLowerCase().includes(j)))}return S.sort((j,N)=>{const O=hC[j.aggregatedStatus]??99,R=hC[N.aggregatedStatus]??99;return O!==R?O-R:j.roleName.localeCompare(N.roleName)}),S},[x,c,m]);C.useEffect(()=>{i&&!x.some(S=>S.roleKey===i)&&(r(null),a(null))},[x,i]);const _=x.filter(S=>S.aggregatedStatus==="active").length,k=i?e[i]??null:null,w=k&&o?k.workItems.find(S=>S.workItemId===o)??null:null;return x.length===0?null:u.jsxs("div",{className:"awp",children:[u.jsxs("div",{className:"awp-header",children:[u.jsxs("span",{className:"awp-title",children:["Agents",u.jsx("span",{className:"awp-count",children:_>0?`${_}/${x.length} active`:`${x.length}`})]}),u.jsxs("div",{className:"awp-controls",children:[u.jsxs("select",{className:"awp-filter",value:c,onChange:S=>d(S.target.value),children:[u.jsx("option",{value:"all",children:"All"}),u.jsx("option",{value:"active",children:"Active"}),u.jsx("option",{value:"idle",children:"Idle / Done"}),u.jsx("option",{value:"pending",children:"Pending"})]}),u.jsx("button",{className:`awp-search-toggle${p?" active":""}`,onClick:()=>g(S=>!S),title:"Search agents",children:u.jsx(Pv,{})})]})]}),p&&u.jsx("div",{className:"awp-search-bar",children:u.jsx("input",{className:"awp-search-input",type:"text",placeholder:"Search agents or work items...",value:m,onChange:S=>h(S.target.value),autoFocus:!0})}),u.jsxs("div",{className:"awp-list",children:[v.map(S=>{const j=i===S.roleKey,N=S.aggregatedStatus==="active",O=S.runtimeStatus==="reflecting"||S.runtimeStatus==="tool_active",R=S.aggregatedStatus==="done"||S.aggregatedStatus==="failed";return u.jsxs("button",{className:`awp-row${j?" awp-row-selected":""}${N?" awp-row-active":""}${R?` awp-row-terminal awp-terminal-${S.aggregatedStatus}`:""}`,onClick:()=>{r(D=>D===S.roleKey?null:S.roleKey),a(null)},title:`${S.roleName} — ${cv[S.aggregatedStatus]}`,children:[u.jsx("span",{className:`awp-dot${O?" awp-dot-active":""} awp-dot-${S.aggregatedStatus}`}),u.jsxs("div",{className:"awp-row-info",children:[u.jsx("span",{className:"awp-row-name",children:S.roleName}),u.jsxs("span",{className:"awp-row-projection",children:[S.workItems.length," work item",S.workItems.length===1?"":"s"]})]}),u.jsx("span",{className:"awp-row-activity",children:iV(S)}),u.jsx("span",{className:"awp-row-time",children:rV(S)})]},S.roleKey)}),v.length===0&&u.jsx("div",{className:"awp-empty",children:m?"No matching agents":"No agents in this filter"})]}),k&&u.jsxs("div",{className:"awp-detail",children:[u.jsxs("div",{className:"awp-detail-header",children:[u.jsxs("div",{className:"awp-detail-identity",children:[u.jsx("div",{className:"awp-detail-avatar",children:k.roleName.charAt(0).toUpperCase()}),u.jsxs("div",{className:"awp-detail-meta",children:[u.jsx("span",{className:"awp-detail-name",children:k.roleName}),u.jsx("span",{className:"awp-detail-role",children:cv[k.aggregatedStatus]})]})]}),u.jsx("div",{className:"awp-detail-actions",children:u.jsx("button",{className:"awp-detail-close",onClick:()=>{r(null),a(null)},title:"Close detail",children:u.jsx(Mm,{})})})]}),u.jsxs("div",{className:"awp-detail-body",children:[u.jsxs("div",{className:"awp-detail-section",children:[u.jsxs("div",{className:"awp-detail-section-label",children:[u.jsx(_l,{}),u.jsx("span",{children:"Work items"})]}),u.jsx("ul",{className:"wf-role-turns",children:k.workItems.map(S=>{const j=o===S.workItemId,N=S.kanbanColumn==="in-progress"?"in_progress":S.kanbanColumn==="in-review"?"in_review":S.kanbanColumn;return u.jsxs("li",{className:`wf-role-turn${j?" wf-role-turn-expanded":""}`,children:[u.jsxs("button",{type:"button",className:"wf-role-turn-button",onClick:()=>a(O=>O===S.workItemId?null:S.workItemId),children:[u.jsx("span",{className:`wf-role-turn-column wf-role-turn-column-${N}`,children:S.kanbanColumn.replace("-"," ").replace(/^./,O=>O.toUpperCase())}),u.jsxs("span",{className:"wf-role-turn-title",children:[S.isReviewTarget&&u.jsx("span",{className:"wf-role-turn-tag",children:"Review"}),S.title]}),u.jsx("span",{className:"wf-role-turn-time",children:T0(S.updatedAt)}),u.jsx("span",{className:"wf-role-turn-chevron",children:u.jsx(rs,{down:j})})]}),j&&u.jsxs("div",{className:"wf-role-turn-activity",children:[u.jsx(oV,{sections:S.activitySections,fallbackEntries:S.progressLog,sessionStatus:sV(S)}),S.executionTurnId&&u.jsx("button",{type:"button",className:"wf-role-turn-open-session",onClick:O=>{O.stopPropagation(),S.executionTurnId&&(n??t)?.(S.executionTurnId)},children:"Open runtime session"})]})]},S.workItemId)})})]}),w===null&&k.workItems.length===0&&u.jsx("div",{className:"awp-detail-empty",children:"No work items yet"})]})]})]})}function lV({sessions:e,agents:t,onOpenChildDetail:n,onOpenExecutionPanel:i}){const[r,o]=C.useState(null),[a,c]=C.useState("all"),[d,m]=C.useState(""),[h,p]=C.useState(!1);C.useEffect(()=>{r&&!e.some(w=>w.taskId===r)&&o(null)},[e,r]);const g=C.useMemo(()=>{let w=[...e];if(a==="active"?w=w.filter(ss):a==="idle"?w=w.filter(S=>sl.has(S.status)||I0(S)==="idle"&&S.status!=="pending"):a==="pending"&&(w=w.filter(S=>S.status==="pending")),d.trim()){const S=d.toLowerCase();w=w.filter(j=>(j.assigneeIds[0]??j.title).toLowerCase().includes(S)||j.title.toLowerCase().includes(S))}return w.sort((S,j)=>fC(S)-fC(j)),w},[e,a,d]),x=e.filter(ss).length,v=C.useMemo(()=>r?e.find(w=>w.taskId===r)??null:null,[e,r]),_=C.useMemo(()=>{if(!v)return;const w=v.assigneeIds[0];return w?t.find(S=>S.agent_id===w):void 0},[v,t]),k=C.useCallback(w=>{o(S=>S===w?(n?.(w),S):w)},[n]);return e.length===0?null:u.jsxs("div",{className:"awp",children:[u.jsxs("div",{className:"awp-header",children:[u.jsxs("span",{className:"awp-title",children:["Agents",u.jsx("span",{className:"awp-count",children:x>0?`${x}/${e.length} active`:`${e.length}`})]}),u.jsxs("div",{className:"awp-controls",children:[u.jsxs("select",{className:"awp-filter",value:a,onChange:w=>c(w.target.value),children:[u.jsx("option",{value:"all",children:"All"}),u.jsx("option",{value:"active",children:"Active"}),u.jsx("option",{value:"idle",children:"Idle / Done"}),u.jsx("option",{value:"pending",children:"Pending"})]}),u.jsx("button",{className:`awp-search-toggle${h?" active":""}`,onClick:()=>p(w=>!w),title:"Search agents",children:u.jsx(Pv,{})})]})]}),h&&u.jsx("div",{className:"awp-search-bar",children:u.jsx("input",{className:"awp-search-input",type:"text",placeholder:"Search agents...",value:d,onChange:w=>m(w.target.value),autoFocus:!0})}),u.jsxs("div",{className:"awp-list",children:[g.map(w=>{const S=ss(w),j=sl.has(w.status),N=r===w.taskId,O=w.assigneeIds[0]?.replace(/_/g," ").replace(/\b\w/g,L=>L.toUpperCase())??w.title,R=w.workItemProjectionId?.replace(/_/g," ")??"",D=mC(w.status),I=pC(w.status);return u.jsxs("button",{className:`awp-row${N?" awp-row-selected":""}${S?" awp-row-active":""}${j?` awp-row-terminal ${I}`:""}`,onClick:()=>k(w.taskId),onDoubleClick:()=>n?.(w.taskId),title:n?"Click to inspect, click again or double-click to open full context":void 0,children:[D?u.jsx("span",{className:`awp-terminal-icon ${I}`,children:D}):u.jsx("span",{className:`awp-dot${S?" awp-dot-active":""}`}),u.jsxs("div",{className:"awp-row-info",children:[u.jsx("span",{className:"awp-row-name",children:O}),R&&u.jsx("span",{className:"awp-row-projection",children:R})]}),u.jsx("span",{className:"awp-row-activity",children:tV(w)}),u.jsx("span",{className:"awp-row-time",children:eV(w.progressLog)})]},w.taskId)}),g.length===0&&u.jsx("div",{className:"awp-empty",children:d?"No matching agents":"No agents in this filter"})]}),v&&u.jsxs("div",{className:"awp-detail",children:[u.jsxs("div",{className:"awp-detail-header",children:[u.jsxs("div",{className:"awp-detail-identity",children:[u.jsx("div",{className:`awp-detail-avatar${sl.has(v.status)?` ${pC(v.status)}`:""}`,children:(_?.name??v.assigneeIds[0]??"?").charAt(0).toUpperCase()}),u.jsxs("div",{className:"awp-detail-meta",children:[u.jsx("span",{className:"awp-detail-name",children:_?.name??v.assigneeIds[0]??v.title}),jl(v)&&u.jsx("span",{className:"awp-detail-role",children:jl(v)}),v.employeeAssignment?.name&&u.jsx("span",{className:"awp-detail-employee",children:v.employeeAssignment.name}),v.selectedExecutionAgent&&u.jsxs("span",{className:"awp-detail-employee",children:["Agent: ",nV[v.selectedExecutionAgent]??v.selectedExecutionAgent]}),v.workItemProjectionId&&u.jsx("span",{className:"awp-detail-projection",children:v.workItemProjectionId.replace(/_/g," ")})]})]}),u.jsxs("div",{className:"awp-detail-actions",children:[n&&u.jsx("button",{className:"awp-detail-expand",onClick:()=>n(v.taskId),title:"Open full context",children:u.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none","aria-hidden":"true",children:[u.jsx("path",{d:"M2.5 3.25h9a1 1 0 011 1v5.5a1 1 0 01-1 1h-4l-2.75 2v-2h-2.25a1 1 0 01-1-1v-5.5a1 1 0 011-1Z",stroke:"currentColor",strokeWidth:"1.2",strokeLinejoin:"round"}),u.jsx("path",{d:"M4.5 5.5h5M4.5 7.5h3.5",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"})]})}),i&&u.jsx("button",{className:"awp-detail-expand",onClick:()=>i(v.taskId),title:"Open execution panel",children:u.jsx(_l,{})}),u.jsx("button",{className:"awp-detail-close",onClick:()=>o(null),title:"Close detail",children:u.jsx(Mm,{})})]})]}),u.jsxs("div",{className:"awp-detail-body",children:[v.handoffContext&&u.jsxs("div",{className:"awp-detail-section",children:[u.jsxs("div",{className:"awp-detail-section-label",children:[u.jsx(Uf,{}),u.jsx("span",{children:"Handoff"})]}),u.jsx("div",{className:"msg-content-agent-card",children:u.jsx(bi,{content:v.handoffContext,className:"awp-detail-handoff awp-detail-handoff-markdown"})})]}),u.jsxs("div",{className:"awp-detail-section",children:[u.jsxs("div",{className:"awp-detail-section-label",children:[u.jsx(_l,{}),u.jsx("span",{children:"Activity"})]}),u.jsx(Nl,{entries:v.progressLog,agentStatus:v.agentStatus,currentTool:v.currentTool,toolElapsedMs:v.toolElapsedMs,lastToolSummary:v.lastToolSummary,sessionStatus:v.status,expandedByDefault:!0}),v.progressLog.length===0&&!v.agentStatus&&!sl.has(v.status)&&u.jsx("div",{className:"awp-detail-empty",children:"No activity recorded yet"})]}),sl.has(v.status)&&my[v.status]&&u.jsxs("div",{className:`awp-result-banner ${my[v.status].cls}`,children:[u.jsx("span",{className:"awp-result-icon",children:mC(v.status)}),u.jsx("span",{children:my[v.status].text})]})]})]})]})}function cV({sessions:e,roleWorkItems:t,isCompanyRuntime:n=!1,agents:i,onOpenChildDetail:r,onOpenExecutionPanel:o}){return t&&Object.keys(t).length>0?u.jsx(aV,{roleWorkItems:t,onOpenChildDetail:r,onOpenExecutionPanel:o}):n?null:u.jsx(lV,{sessions:e,agents:i,onOpenChildDetail:r,onOpenExecutionPanel:o})}function HI(e){try{return JSON.stringify(e,null,2)}catch{return String(e??"")}}function py(e){return(e??[]).map(t=>t.trim()).filter(Boolean)}function gC(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,HI(n)]:[t,String(n)]):[]}function uV({task:e,linkedSession:t,linkedSessionMessages:n,agents:i,onBack:r,onOpenLinkedSession:o,onOpenExecutionPanel:a}){const c=C.useMemo(()=>e.assigneeIds.map(R=>i.find(D=>D.agent_id===R)).filter(Boolean),[i,e.assigneeIds]),d=e.priority?sm[e.priority]:null,m=e.residentAssignment??{},h=e.memberSessionState??{},p=e.ownershipContract??{},g=!!(e.agentStatus&&e.agentStatus!=="idle"),x=py(e.deliverables),v=py(e.acceptanceCriteria),_=py(e.dependencies),k=gC({role_id:m.role_id,employee_id:m.employee_id,manager_role_id:m.manager_role_id,team_id:m.team_id,seat_id:m.seat_id,work_item_turn_type:m.work_item_turn_type,resident_status:m.resident_status}),w=gC({status:h.status,current_turn_mode:h.current_turn_mode,manager_role_id:h.manager_role_id,actionable_inbox_count:h.actionable_inbox_count,protocol_backlog_count:h.protocol_backlog_count,notification_backlog_count:h.notification_backlog_count}),S=String(e.employeeAssignment?.promptContext??"").trim(),j=String(e.employeeAssignment?.deltaContext??"").trim(),N=Vm(e),O=!!(e.workItemId||e.workItemProjectionId||N);return u.jsxs("div",{className:"ctx-child-detail",children:[u.jsxs("div",{className:"ctx-child-topbar",children:[u.jsxs("button",{className:"ctx-back-btn",onClick:r,children:["←"," Back to board"]}),N&&(o||a)&&u.jsx("button",{className:"ctx-child-stop-btn",onClick:()=>{if(o){o(N);return}a?.(N)},children:"Open Runtime Session"})]}),u.jsxs("div",{className:"ctx-child-header",children:[u.jsx("div",{className:"ctx-child-avatar",children:(e.workItemRoleName??e.title).charAt(0).toUpperCase()}),u.jsxs("div",{className:"ctx-child-meta",children:[u.jsx("span",{className:"ctx-child-name",children:e.title}),u.jsx("span",{className:"ctx-child-work-item",children:[e.workItemRoleName,e.phase].filter(Boolean).join(" · ")})]})]}),g&&u.jsxs("div",{className:`task-detail-runtime status-${e.agentStatus}`,children:[u.jsx("span",{className:"kanban-runtime-dot"}),u.jsx("span",{children:e.agentStatus==="tool_active"&&e.currentTool?e.currentTool:om[e.agentStatus]??e.agentStatus}),c.length>0&&u.jsx("span",{className:"task-detail-runtime-agent",children:c.map(R=>R.name).join(", ")})]}),u.jsxs("div",{className:"task-detail-body",children:[u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:O?"Work Item":"Task"}),u.jsxs("div",{className:"ctx-task-chip-row",children:[u.jsx("span",{className:"task-detail-dep-id",children:e.displayId}),d&&u.jsx("span",{className:"kanban-tag",children:d.label}),e.workItemRoleName&&u.jsx("span",{className:"kanban-tag",children:e.workItemRoleName}),e.managerRoleId&&u.jsxs("span",{className:"kanban-tag",children:["Manager: ",e.managerRoleId]}),e.scopeKey&&u.jsx("span",{className:"kanban-tag",children:e.scopeKey})]}),e.description&&u.jsx("div",{className:"msg-content-agent-card ctx-task-detail-card",children:u.jsx(bi,{content:e.description})})]}),e.originalMessage&&u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Session Goal"}),u.jsx("pre",{className:"task-detail-handoff",children:e.originalMessage})]}),e.planningContext&&u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Planning Context"}),u.jsx("pre",{className:"task-detail-handoff",children:e.planningContext})]}),x.length>0&&u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Deliverables"}),u.jsx("ul",{className:"task-detail-dep-list",children:x.map(R=>u.jsx("li",{className:"task-detail-dep-item",children:R},R))})]}),v.length>0&&u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Acceptance Criteria"}),u.jsx("ul",{className:"task-detail-dep-list",children:v.map(R=>u.jsx("li",{className:"task-detail-dep-item",children:R},R))})]}),(e.delegationRationale||e.nonOverlapGuard||e.coordinationNotes)&&u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Delegation Notes"}),e.delegationRationale&&u.jsx("pre",{className:"task-detail-handoff",children:e.delegationRationale}),e.nonOverlapGuard&&u.jsx("pre",{className:"task-detail-handoff",children:e.nonOverlapGuard}),e.coordinationNotes&&u.jsx("pre",{className:"task-detail-handoff",children:e.coordinationNotes})]}),_.length>0&&u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Dependencies"}),u.jsx("ul",{className:"task-detail-dep-list",children:_.map(R=>u.jsx("li",{className:"task-detail-dep-item",children:u.jsx("span",{className:"task-detail-dep-id",children:R})},R))})]}),(k.length>0||w.length>0||t)&&u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Role Runtime Context"}),t&&u.jsxs("div",{className:"ctx-task-chip-row",children:[u.jsxs("span",{className:"kanban-tag",children:["Runtime Session: ",t.title]}),u.jsxs("span",{className:"kanban-tag",children:["Status: ",t.status]})]}),k.length>0&&u.jsx("div",{className:"ctx-task-kv-grid",children:k.map(([R,D])=>u.jsxs("div",{className:"ctx-task-kv-item",children:[u.jsx("span",{className:"ctx-task-kv-label",children:R}),u.jsx("span",{className:"ctx-task-kv-value",children:D})]},R))}),w.length>0&&u.jsx("div",{className:"ctx-task-kv-grid",children:w.map(([R,D])=>u.jsxs("div",{className:"ctx-task-kv-item",children:[u.jsx("span",{className:"ctx-task-kv-label",children:R}),u.jsx("span",{className:"ctx-task-kv-value",children:D})]},R))})]}),e.handoffContext&&u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Handoff Context"}),u.jsx("pre",{className:"task-detail-handoff",children:e.handoffContext})]}),S&&u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Role Prompt Context"}),u.jsx("div",{className:"msg-content-agent-card ctx-task-detail-card",children:u.jsx(bi,{content:S})})]}),j&&u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Role Delta Context"}),u.jsx("pre",{className:"task-detail-handoff",children:j})]}),Object.keys(p).length>0&&u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Ownership Contract"}),u.jsx("pre",{className:"task-detail-handoff",children:HI(p)})]}),e.progressLog&&e.progressLog.length>0&&u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Activity"}),u.jsx("ul",{className:"task-detail-progress",children:e.progressLog.map((R,D)=>u.jsxs("li",{className:`progress-entry type-${R.type}`,children:[u.jsx("span",{className:"progress-time",children:new Date(R.timestamp).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}),u.jsx("span",{className:"progress-summary",children:R.summary})]},`${R.timestamp}-${D}`))})]}),u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Runtime Session Activity"}),t&&n&&n.length>0?u.jsx("div",{className:"task-detail-linked-messages",children:u.jsx(al,{messages:n,channelName:t.title??"Runtime Session",detailMode:"summary",scrollScope:t.channelId},t.channelId)}):t?u.jsx("p",{className:"task-detail-empty-hint",children:"Runtime session has no visible messages yet."}):u.jsx("p",{className:"task-detail-empty-hint",children:"No Runtime Session linked yet."})]})]})]})}function dV(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 fV(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 mV(e){if(!(!e||Object.keys(e).length===0))return Object.values(e).filter(t=>t.aggregatedStatus==="active").length}function pV(e){return new Set(e.filter(ss).map(n=>String(n.workItemRoleId??n.assigneeIds[0]??n.taskId).trim()).filter(Boolean)).size}function yC(e,t){const n=mV(e);return n!==void 0?n||void 0:pV(t)||void 0}function hV(e){const t=uv(e);return t==="org"||t==="custom"?`company/${e.orgId??"org"}`:t==="company"?`company/${e.companyProfile??"corporate"}`:t}function FI(e){const t=String(e??"").trim().toLowerCase();return t==="company"?"company":t==="org"||t==="custom"?"org":"task"}function VI(e){return!!(e.isCompanyRuntime||e.parentSessionId||e.workItemProjectionId||e.roleWorkItems||e.executorRoleWorkItems)}function xC(e,t=0){if(!e)return!1;const n=String(e.execMode??"").trim().toLowerCase();return t>0||VI(e)||n==="company"||n==="org"||n==="custom"}function Jc(e,t){const n=t==="full"?e.fullHasMore:e.summaryHasMore;if(n!==void 0)return n;if(e.summaryHasMore===void 0&&e.fullHasMore===void 0)return e.hasMore}function hy(e,t,n,i=!0){const r=e.map(o=>Jc(o,n));return r.some(o=>o===!0)?!0:e.length!==1||r[0]===!1?!1:i&&e[0].messageCount>t}function gV(e){const t=String(e.execMode??"").trim().toLowerCase(),n=FI(e.execMode),i=String(e.companyProfile??"").trim().toLowerCase();return n==="company"?!1:n==="org"?!0:t?!1:i==="custom"||!!e.orgId}function gy(e,t=0){if(!e)return t>0;if(Math.max(e.messageCount??0,t)>0)return!0;const i=String(e.status??"").trim().toLowerCase();return!!(i&&i!=="pending"||e.parentSessionId||e.workItemProjectionId||e.workItemRoleId||e.workItemTurnType||e.pendingRuntimeCheckpointId||e.runtimeControlState&&e.runtimeControlState!=="idle"||(e.progressLog?.length??0)>0||(e.workItemLog?.length??0)>0||e.roleWorkItems&&Object.keys(e.roleWorkItems).length>0||e.executorRoleWorkItems&&Object.keys(e.executorRoleWorkItems).length>0)}function uv(e,t){const i=String(e.execMode??"").trim().toLowerCase().length>0,r=FI(e.execMode);return gV(e)?"org":!i&&r==="task"&&VI(e)?"company":e.execMode??t??"task"}function vC(e,t,n){return t&&e.selectedExecutionAgent&&e.selectedExecutionAgent!=="native"?e.selectedExecutionAgent:e.preferredAgent??e.selectedExecutionAgent??n}function qc(e,t){return e?e.execMode==="company"||e.execMode==="org"||e.execMode==="custom"?"summary":"full":"summary"}const yV=new Set(["awaiting_human","awaiting_manager_review","awaiting_review","awaiting_peer"]);function bC(e){const t=String(e.status??"").trim(),n=e.runtimeControlState==="suspended"||!yV.has(t)&&t!=="running"&&t!=="done";return!!(e.canResume??n)}function xV({task:e,agents:t,roleLabel:n}){const[i,r]=C.useState(!1),o=e.priority,a=o&&e.priority in sm?sm[o]:null,c=e.assigneeIds.map(p=>t.find(g=>g.agent_id===p)?.name??p).filter(Boolean),d=new Date(e.createdAt),m=e.employeeAssignment?.name?`${e.employeeAssignment.name}${e.employeeAssignment.category?` · ${e.employeeAssignment.category}`:""}`:null,h=({label:p,value:g})=>u.jsxs("div",{className:"ctx-info-fact",children:[u.jsx("span",{className:"ctx-info-fact-label",children:p}),u.jsx("span",{className:"ctx-info-fact-value",children:g})]});return u.jsxs("div",{className:"ctx-info-v2",children:[u.jsxs("section",{className:"ctx-info-section",children:[u.jsx("h4",{className:"ctx-info-section-title",children:"Status"}),u.jsxs("div",{className:"ctx-info-card",children:[u.jsxs("div",{className:"ctx-info-status-row",children:[u.jsxs("span",{className:`ctx-info-status-pill status-${e.status}`,children:[u.jsx("span",{className:"ctx-info-status-dot"}),e.status]}),a&&u.jsxs("span",{className:"ctx-info-priority-pill",style:{color:a.color},children:[u.jsx("span",{"aria-hidden":"true",children:a.symbol}),a.label]})]}),e.tags&&e.tags.length>0&&u.jsx("div",{className:"ctx-info-chips",children:e.tags.map(p=>u.jsx("span",{className:"ctx-info-chip",children:p},p))})]})]}),u.jsxs("section",{className:"ctx-info-section",children:[u.jsx("h4",{className:"ctx-info-section-title",children:"People & agent"}),u.jsxs("div",{className:"ctx-info-card",children:[c.length>0&&u.jsx(h,{label:"Assignees",value:u.jsx("div",{className:"ctx-info-chips",children:c.map(p=>u.jsx("span",{className:"ctx-info-chip",children:p},p))})}),n&&u.jsx(h,{label:"Role",value:n}),m&&u.jsx(h,{label:"Employee",value:m}),e.selectedExecutionAgent&&u.jsx(h,{label:"Execution agent",value:u.jsx("span",{className:"ctx-info-mono",children:e.selectedExecutionAgent})})]})]}),u.jsxs("section",{className:"ctx-info-section",children:[u.jsx("h4",{className:"ctx-info-section-title",children:"Timing"}),u.jsx("div",{className:"ctx-info-card",children:u.jsx(h,{label:"Created",value:u.jsx("span",{children:d.toLocaleString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})})})})]}),u.jsxs("section",{className:"ctx-info-section ctx-info-dev-section",children:[u.jsxs("button",{className:`ctx-info-dev-toggle${i?" expanded":""}`,type:"button",onClick:()=>r(p=>!p),"aria-expanded":i,children:[u.jsx("svg",{width:"11",height:"11",viewBox:"0 0 16 16","aria-hidden":"true",children:u.jsx("path",{d:i?"M3 6l5 5 5-5":"M6 3l5 5-5 5",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"})}),u.jsx("span",{children:"Developer details"})]}),i&&u.jsxs("div",{className:"ctx-info-card ctx-info-dev-card",children:[e.workItemProjectionId&&u.jsx(h,{label:"Projection",value:u.jsx("span",{className:"ctx-info-mono ctx-info-mono-break",children:e.workItemProjectionId})}),u.jsx(h,{label:"Task ID",value:u.jsx("span",{className:"ctx-info-mono ctx-info-mono-break",children:e.taskId})}),u.jsx(h,{label:"Channel",value:u.jsx("span",{className:"ctx-info-mono ctx-info-mono-break",children:e.channelId})}),e.sessionId&&u.jsx(h,{label:"Session",value:u.jsx("span",{className:"ctx-info-mono ctx-info-mono-break",children:e.sessionId})})]})]})]})}function vV({panelState:e,width:t,onResizeMouseDown:n,isResizing:i,activeView:r,activeSession:o,activeTask:a,linkedTaskSession:c,linkedTaskSessionMessages:d,childDetailSession:m,messages:h,childDetailMessages:p,allSessions:g,openSessions:x,openSessionMessages:v,openSessionChildren:_,agents:k,childSessions:w,execMode:S,taskPreferredAgent:j,savedOrgsList:N,activeSavedOrg:O,onSavedOrgsList:R,onSavedOrgLoad:D,canShowAgentsTab:I=!1,channelId:L,channelName:M,secretaryChannelId:A,unreadCounts:B,multiSessionView:W=!1,panelTab:P,onPanelTabChange:G,commsState:$,commsMessage:q,onCommsRefresh:Y,onCommsReadMessage:Q,orgInfoData:V,canShowTeamTab:U=!1,onTeamStopRun:Z,onTitleChange:F,onSessionConfigChange:K,onSessionTaskAgentChange:ee,onContinueInNewChat:te,onStop:oe,onComplete:ae,onResume:ue,onResumeTask:ie,onStopTask:we,onCompleteTask:je,onLocateOnBoard:Te,onBackToParent:qe,onCloseTaskDetail:Ze,onOpenChildDetail:Xe,onOpenExecutionPanel:pt,onSelectSessionTab:Ut,onCloseSessionTab:Pt,onToggleMultiSessionView:It,onCollapse:he,onExpand:Be,onMaximize:at,onComposerSend:Ue,onMessageSend:ct,onSessionSend:pe,onWorkItemClick:be,onWorkItemOpenSession:Ae,onMarkRead:He,onSessionMarkRead:Ye,onLoadSessionHistory:$t,isSessionHistoryLoading:yt}){const ke=r.kind==="secretary",We=r.kind==="activity",Qe=r.kind==="child-detail",Fe=r.kind==="task-detail",Ve=xC(o,w.length),Gt=r.kind==="session"&&o,ei=ke?!0:!!o,_t=!Qe&&x.length>0,kt=x.length>1,vn=!!(W&&r.kind==="session"&&o&&kt&&P==="chat"),On=C.useRef(null),jt=C.useMemo(()=>{const Re=Wf(o,g);return Yf(o,[...Re,...w])},[o,w,g]),Ht=jt.displaySession??o,Hn=qc(Ht),Me=C.useMemo(()=>mS(o,jt.runtimeSession,jt.timelineSessions),[o,jt.runtimeSession,jt.timelineSessions]),gt=C.useMemo(()=>a5(o,jt.runtimeSession,jt.timelineSessions),[o,jt.runtimeSession,jt.timelineSessions]),ht=C.useMemo(()=>hS(jt.timelineSessions),[jt.timelineSessions]),mi=C.useMemo(()=>Me?.workItemLog??o?.workItemLog??[],[Me?.workItemLog,o?.workItemLog]),Vn=C.useMemo(()=>uS(Me??o,g),[Me,o,g]),pn=C.useMemo(()=>Me?.roleWorkItems??o?.roleWorkItems,[Me?.roleWorkItems,o?.roleWorkItems]),Fn=C.useMemo(()=>Me?.executorRoleWorkItems??o?.executorRoleWorkItems,[Me?.executorRoleWorkItems,o?.executorRoleWorkItems]),tt=!!(pn&&Object.keys(pn).length>0||Fn&&Object.keys(Fn).length>0),pi=Vn.length>0?Vn:w,Si=C.useMemo(()=>Xf(jt.timelineSessions),[jt.timelineSessions]),Rn=C.useMemo(()=>jt.timelineSessions.some(Re=>yt?.(Re.taskId)??!1),[jt.timelineSessions,yt]),wn=C.useCallback(Re=>{if(Re){const bn=jt.timelineSessions.find(wi=>wi.channelId===Re.channelId);if(bn&&Jc(bn,Hn)!==!1)return bn}const wt=jt.timelineSessions.find(bn=>Jc(bn,Hn)===!0);return wt||(Ht??o)},[jt.timelineSessions,Hn,Ht,o]),Vt=C.useMemo(()=>{if(!m)return;const Re=m.assigneeIds[0];return Re?k.find(wt=>wt.agent_id===Re):void 0},[m,k]),Cn=c??(()=>{const Re=Vm(a);return Re?g.find(wt=>wt.taskId===Re||wt.runtimeTaskId===Re||wt.executionTurnId===Re)??null:null})();C.useEffect(()=>{!Qe||!m||On.current?.scrollTo({top:0,behavior:"auto"})},[Qe,m?.taskId]);const Xt=o;return e==="collapsed"?u.jsx("div",{className:"ctx-collapse-strip",onClick:()=>Be(),title:"Open panel",children:"◀"}):u.jsxs(u.Fragment,{children:[u.jsx("div",{className:`ctx-resize-handle${i?" active":""}`,onMouseDown:n}),u.jsx("div",{className:`ctx-panel${e==="maximized"?" maximized":""}`,style:e!=="maximized"?{width:t}:void 0,children:Fe&&a?u.jsx(uV,{task:a,linkedSession:Cn,linkedSessionMessages:d,agents:k,onBack:Ze??he,onOpenLinkedSession:Ut,onOpenExecutionPanel:pt}):Qe&&m?u.jsxs("div",{className:"ctx-child-detail",ref:On,children:[u.jsxs("div",{className:"ctx-child-topbar",children:[u.jsx("button",{className:"ctx-back-btn",onClick:qe,children:"← Back to parent"}),(m.canStop??m.status==="running")&&m.runtimeControlState!=="suspending"&&we&&u.jsx("button",{className:"ctx-child-stop-btn",onClick:()=>we(m.taskId),title:"Stop this agent",children:"Stop"}),m.runtimeControlState==="suspending"&&u.jsx("button",{className:"ctx-child-stop-btn",disabled:!0,title:"Stopping this agent",children:"Stopping..."}),bC(m)&&ie&&u.jsx("button",{className:"ctx-child-resume-btn",onClick:()=>ie(m.taskId),title:"Continue this agent's runtime",children:"Continue"})]}),u.jsxs("div",{className:"ctx-child-header",children:[Vt&&u.jsx("div",{className:"ctx-child-avatar",children:Vt.name.charAt(0).toUpperCase()}),u.jsxs("div",{className:"ctx-child-meta",children:[u.jsx("span",{className:"ctx-child-name",children:Vt?.name??m.title}),m.workItemRoleName&&u.jsx("span",{className:"ctx-child-work-item",children:m.workItemRoleName}),!m.workItemRoleName&&m.workItemProjectionId&&u.jsx("span",{className:"ctx-child-work-item",children:m.workItemProjectionId.replace(/_/g," ")})]})]}),m.handoffContext&&u.jsxs("div",{className:"exec-section ctx-child-markdown-section",children:[u.jsxs("div",{className:"exec-section-header",children:[u.jsx(Uf,{}),u.jsx("span",{children:"Received From"})]}),u.jsx("div",{className:"msg-content-agent-card ctx-child-markdown-card",children:u.jsx(bi,{content:m.handoffContext})})]}),u.jsxs("div",{className:"ctx-child-transcript",children:[u.jsxs("div",{className:"ctx-child-transcript-header",children:[u.jsx(_l,{}),u.jsx("span",{children:"Transcript"})]}),u.jsx(al,{messages:p,channelName:m.title,viewKind:"session",detailMode:"full",agentStatus:m.agentStatus,currentTool:m.currentTool,toolElapsedMs:m.toolElapsedMs,lastToolSummary:m.lastToolSummary,progressLog:m.progressLog,draftAssistantText:m.draftAssistantText,draftUpdatedAt:m.draftUpdatedAt,draftIteration:m.draftIteration,draftTurnId:m.draftTurnId,onMarkRead:He,hasOlderHistory:hy([m],p.length,"full",!ss(m)),totalMessageCount:m.messageCount,onLoadOlderHistory:Re=>$t?.(m.taskId,Re,"full"),loadingOlderHistory:yt?.(m.taskId)??!1,scrollPolicy:"initial-bottom",scrollScope:m.channelId,showRuntimeProgress:!0,renderUserMarkdown:!0},m.channelId)]}),m.artifacts&&m.artifacts.length>0&&u.jsxs("div",{className:"ctx-child-artifacts",children:[u.jsxs("div",{className:"ctx-child-section-header",children:[u.jsx(Tm,{}),u.jsx("span",{children:"Artifacts"})]}),u.jsx("ul",{className:"ctx-child-artifact-list",children:m.artifacts.map((Re,wt)=>u.jsx("li",{children:Re},wt))})]}),m.handoffTo&&u.jsxs("div",{className:"ctx-child-markdown-section ctx-child-passed-to",children:[u.jsxs("div",{className:"ctx-child-section-header",children:[u.jsx(Uf,{}),u.jsx("span",{children:"Passed To"})]}),u.jsx("div",{className:"msg-content-agent-card ctx-child-markdown-card",children:u.jsx(bi,{content:m.handoffTo})})]})]}):u.jsxs(u.Fragment,{children:[_t&&u.jsxs("div",{className:"ctx-session-strip",children:[u.jsx("div",{className:"ctx-session-strip-scroll",children:x.map(Re=>{const wt=B?.[Re.channelId]??0,bn=o?.taskId===Re.taskId;return u.jsxs("div",{className:`ctx-session-chip${bn?" active":""}`,children:[u.jsxs("button",{className:"ctx-session-chip-main",onClick:()=>Ut?.(Re.taskId),title:Re.title,children:[u.jsx("span",{className:`ctx-session-chip-status status-${Re.status}`}),u.jsx("span",{className:"ctx-session-chip-title",children:Re.title}),wt>0&&u.jsx("span",{className:"ctx-session-chip-unread",children:wt>99?"99+":wt})]}),u.jsx("button",{className:"ctx-session-chip-close",onClick:()=>Pt?.(Re.taskId),title:"Close tab",children:"×"})]},Re.taskId)})}),kt&&u.jsx("button",{className:`ctx-session-view-btn${W?" active":""}`,onClick:It,children:W?"Single View":"Multi View"})]}),u.jsxs("div",{className:"ctx-header",children:[vn?u.jsx("span",{className:"ctx-header-title",children:Ve?"Open Runtime Sessions":"Open Sessions"}):Gt?u.jsxs("div",{className:"ctx-header-tabs",role:"tablist","aria-label":"Session view",children:[u.jsx("button",{role:"tab","aria-selected":P==="chat",className:`ctx-tab${P==="chat"?" active":""}`,onClick:()=>G("chat"),children:"Chat"}),I&&u.jsx("button",{role:"tab","aria-selected":P==="agents",className:`ctx-tab${P==="agents"?" active":""}`,onClick:()=>G("agents"),children:"Agents"}),u.jsx("button",{role:"tab","aria-selected":P==="info",className:`ctx-tab${P==="info"?" active":""}`,onClick:()=>G("info"),children:"Info"}),Y&&u.jsx("button",{role:"tab","aria-selected":P==="comms",className:`ctx-tab${P==="comms"?" active":""}`,onClick:()=>G("comms"),children:"Comms"}),U&&u.jsx("button",{role:"tab","aria-selected":P==="team",className:`ctx-tab${P==="team"?" active":""}`,onClick:()=>G("team"),children:"Team"})]}):ke?u.jsx("span",{style:{fontSize:13,fontWeight:600,padding:"0 4px"},children:"Secretary"}):u.jsx("span",{style:{fontSize:13,fontWeight:600,padding:"0 4px"},children:"Activity"}),u.jsxs("div",{className:"ctx-header-actions",children:[e==="open"&&u.jsx("button",{onClick:at,title:"Maximize",children:u.jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",children:u.jsx("rect",{x:"2",y:"2",width:"10",height:"10",rx:"1.5",stroke:"currentColor",strokeWidth:"1.3"})})}),e==="maximized"&&u.jsx("button",{onClick:Be,title:"Restore",children:u.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",children:[u.jsx("rect",{x:"1",y:"3",width:"8",height:"8",rx:"1.5",stroke:"currentColor",strokeWidth:"1.3"}),u.jsx("path",{d:"M5 3V1.5A.5.5 0 015.5 1H12.5a.5.5 0 01.5.5V8.5a.5.5 0 01-.5.5H11",stroke:"currentColor",strokeWidth:"1.3"})]})}),u.jsx("button",{onClick:he,title:"Close panel",children:u.jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",children:u.jsx("path",{d:"M3 3l8 8M11 3l-8 8",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})})})]})]}),u.jsxs("div",{className:"ctx-body",children:[!o&&!ke&&!We&&u.jsxs("div",{className:"ctx-empty",children:[u.jsx("span",{className:"ctx-empty-icon",children:"📋"}),u.jsx("span",{children:Ve?"Select a Work Item to see details":"Select a task to see details"})]}),vn&&u.jsx("div",{className:"ctx-multi-grid",children:x.map(Re=>{const wt=v[Re.taskId]??[],bn=_[Re.taskId]??[],wi=Wf(Re,g),In=Yf(Re,[...wi,...bn]),At=mS(Re,In.runtimeSession,In.timelineSessions),yi=uS(At??Re,g),Zn=At?.roleWorkItems??Re.roleWorkItems,ti=yC(Zn,bn)??0,ln=Re.assigneeIds.map(Bt=>k.find(Dt=>Dt.agent_id===Bt)?.name??Bt).filter(Boolean),Kt=fV(At??Re,ti),Mt=xC(Re,bn.length),Zt=In.displaySession??Re,Un=hS(In.timelineSessions),dn=Xf(In.timelineSessions),Je=gy(At??Zt,Math.max(dn,wt.length)),ni=In.timelineSessions.some(Bt=>yt?.(Bt.taskId)??!1);return u.jsxs("section",{className:`ctx-multi-card${o?.taskId===Re.taskId?" focused":""}`,children:[u.jsxs("div",{className:"ctx-multi-card-header",children:[u.jsxs("button",{className:"ctx-multi-card-main",onClick:()=>Ut?.(Re.taskId),title:"Focus session",children:[u.jsx("span",{className:`ctx-multi-card-status status-${Re.status}`}),u.jsx("span",{className:"ctx-multi-card-title",children:Re.title})]}),u.jsxs("div",{className:"ctx-multi-card-actions",children:[((At??Re).canStop??(At??Re).status==="running")&&(At??Re).runtimeControlState!=="suspending"&&we&&u.jsx("button",{onClick:()=>we(In.runtimeSession?.taskId??Re.taskId),children:"Stop"}),(At??Re).runtimeControlState==="suspending"&&u.jsx("button",{disabled:!0,children:"Stopping..."}),bC(At??Re)&&ie&&u.jsx("button",{onClick:()=>ie(Re.taskId),children:"Continue"}),(At??Re).status!=="done"&&(At??Re).status!=="cancelled"&&je&&u.jsx("button",{onClick:()=>je(Re.taskId),children:"Done"}),u.jsx("button",{onClick:()=>Ut?.(Re.taskId),children:"Focus"}),u.jsx("button",{onClick:()=>Pt?.(Re.taskId),title:"Close tab",children:"×"})]})]}),u.jsxs("div",{className:"ctx-multi-card-meta",children:[u.jsx("span",{children:hV(Re)}),u.jsx("span",{children:Re.status}),Kt&&u.jsx("span",{children:Kt}),ln.length>0&&u.jsx("span",{children:ln.join(", ")}),u.jsx("span",{children:dV(Re.updatedAt)})]}),u.jsx("div",{className:"ctx-multi-card-body",children:u.jsx(al,{messages:wt,channelName:Zt?.title??Re.title,viewKind:"session",detailMode:qc(Zt),agentStatus:Mt?void 0:At?.agentStatus??Zt?.agentStatus,currentTool:Mt?void 0:At?.currentTool??Zt?.currentTool,toolElapsedMs:Mt?void 0:At?.toolElapsedMs??Zt?.toolElapsedMs,lastToolSummary:Mt?void 0:At?.lastToolSummary??Zt?.lastToolSummary,progressLog:Mt?void 0:Un,draftAssistantText:Mt?void 0:At?.draftAssistantText??Zt?.draftAssistantText,draftUpdatedAt:Mt?void 0:At?.draftUpdatedAt??Zt?.draftUpdatedAt,draftIteration:Mt?void 0:At?.draftIteration??Zt?.draftIteration,draftTurnId:Mt?void 0:At?.draftTurnId??Zt?.draftTurnId,isCompanyRuntime:Mt,workItemLog:At?.workItemLog??Re.workItemLog,childSessions:yi,showWorkItemRuntimeCard:!Mt,onSend:(Bt,Dt,An)=>pe?.(Re.taskId,Bt,void 0,An),onWorkItemClick:be,onWorkItemOpenSession:Ae,onMarkRead:()=>Ye?.(Re.taskId),scrollScope:Re.channelId,hasOlderHistory:hy(In.timelineSessions,wt.length,qc(Zt??Re),!In.timelineSessions.some(ss)),totalMessageCount:dn,onLoadOlderHistory:Bt=>{const Dt=qc(Zt??Re),An=In.timelineSessions.find(jn=>jn.channelId===Bt?.channelId),Gn=(An&&Jc(An,Dt)!==!1?An:void 0)??In.timelineSessions.find(jn=>Jc(jn,Dt)===!0)??Zt??Re;return $t?.(Gn.taskId,Bt,Dt)},loadingOlderHistory:ni,showRuntimeProgress:qc(Zt)==="full"},Zt?.channelId??Re.channelId)}),u.jsx(fy,{disabled:!1,channelId:At?.channelId??Re.channelId,execMode:uv(Re,S),companyProfile:Re.companyProfile,taskPreferredAgent:vC(Re,Je,j),agentStatus:At?.agentStatus??Zt?.agentStatus,currentTool:At?.currentTool??Zt?.currentTool,displayTool:At?.displayTool??Zt?.displayTool,activeAgentCount:ti||void 0,runtimeControlState:(At??Zt)?.runtimeControlState,canStop:(At??Zt)?.canStop,savedOrgs:N??null,activeSavedOrg:O??null,selectedOrgId:Re.orgId??O??null,lockedMode:Je,autoFocus:!1,contextTokens:At?.contextTokens??Zt?.contextTokens,contextWindow:At?.contextWindow??Zt?.contextWindow,contextRemainingPct:At?.contextRemainingPct??Zt?.contextRemainingPct??100,onSend:(Bt,Dt)=>pe?.(Re.taskId,Bt,Dt,hE(Hv(wt).latestPendingReplyMetadata)),onModeChange:(Bt,Dt,An)=>K?.(Re.taskId,Bt,Dt,An),onTaskAgentChange:Bt=>ee?.(Re.taskId,Bt),onContinueInNewChat:te,onSavedOrgsRefresh:R,onSavedOrgLoad:D,onStop:()=>we?.(In.runtimeSession?.taskId??Re.taskId)})]},Re.taskId)})}),We&&u.jsxs(u.Fragment,{children:[u.jsx("div",{style:{padding:"8px 12px",fontSize:12,color:"var(--text-secondary)",borderBottom:"1px solid var(--border)"},children:"Recent activity across all sessions"}),u.jsx(al,{messages:h,channelName:"Activity",viewKind:"activity",detailMode:"summary",onSend:ct,onMarkRead:He,scrollScope:L},L)]}),ke&&u.jsxs(u.Fragment,{children:[u.jsx(al,{messages:h,channelName:"Secretary",viewKind:"secretary",detailMode:"summary",onSend:ct,onMarkRead:He,scrollScope:A},A),u.jsx(fy,{disabled:!1,channelId:A,placeholder:"Talk to Secretary about policies, rules, preferences...",onSend:Ue})]}),o&&!ke&&!We&&!vn&&P==="chat"&&u.jsxs(u.Fragment,{children:[u.jsx(s8,{session:gt??o,agents:k,onTitleChange:F,onViewOnBoard:Te?()=>Te(o.taskId):void 0,onStop:oe,onComplete:(gt??o).status!=="done"&&(gt??o).status!=="cancelled"?ae:void 0,onResume:ue}),Ve&&u.jsx("div",{className:"ctx-work-item-progress",children:u.jsx(zI,{workItemLog:mi,roleWorkItems:pn,executorRoleWorkItems:Fn,childSessions:Vn,isCompanyRuntime:Ve,onWorkItemClick:be})}),u.jsx(al,{messages:h,channelName:M,viewKind:"session",detailMode:Hn,agentStatus:Ve?void 0:Me?.agentStatus??Ht?.agentStatus,currentTool:Ve?void 0:Me?.currentTool??Ht?.currentTool,toolElapsedMs:Ve?void 0:Me?.toolElapsedMs??Ht?.toolElapsedMs,lastToolSummary:Ve?void 0:Me?.lastToolSummary??Ht?.lastToolSummary,progressLog:Ve?void 0:ht,draftAssistantText:Ve?void 0:Me?.draftAssistantText??Ht?.draftAssistantText,draftUpdatedAt:Ve?void 0:Me?.draftUpdatedAt??Ht?.draftUpdatedAt,draftIteration:Ve?void 0:Me?.draftIteration??Ht?.draftIteration,draftTurnId:Ve?void 0:Me?.draftTurnId??Ht?.draftTurnId,isCompanyRuntime:Ve,workItemLog:mi,roleWorkItems:pn,executorRoleWorkItems:Fn,childSessions:Vn,onSend:ct,onWorkItemClick:be,onWorkItemOpenSession:Ae,onMarkRead:He,scrollScope:L,hasOlderHistory:hy(jt.timelineSessions,h.length,Hn,!jt.timelineSessions.some(ss)),totalMessageCount:Si,onLoadOlderHistory:Re=>{const wt=wn(Re);if(wt)return $t?.(wt.taskId,Re,Hn)},loadingOlderHistory:Rn,showWorkItemRuntimeCard:!1,showRuntimeProgress:Hn==="full"},L),u.jsx(fy,{disabled:!ei,channelId:Me?.channelId??L,execMode:uv(o,S),companyProfile:o.companyProfile,taskPreferredAgent:vC(o,gy(Me??Ht??o,Math.max(Si,h.length)),j),agentStatus:Me?.agentStatus??Ht?.agentStatus,currentTool:Me?.currentTool??Ht?.currentTool,displayTool:Me?.displayTool??Ht?.displayTool,runtimeControlState:(Me??Ht)?.runtimeControlState,canStop:(Me??Ht)?.canStop,savedOrgs:N??null,activeSavedOrg:O??null,selectedOrgId:o.orgId??O??null,lockedMode:gy(Me??Ht??o,Math.max(Si,h.length)),activeAgentCount:yC(pn,pi),contextTokens:Me?.contextTokens??Ht?.contextTokens,contextWindow:Me?.contextWindow??Ht?.contextWindow,contextRemainingPct:Me?.contextRemainingPct??Ht?.contextRemainingPct??100,onSend:Ue,onModeChange:(Re,wt,bn)=>K?.(o.taskId,Re,wt,bn),onTaskAgentChange:Re=>ee?.(o.taskId,Re),onContinueInNewChat:te,onSavedOrgsRefresh:R,onSavedOrgLoad:D,onStop:oe})]}),o&&!ke&&!vn&&P==="agents"&&I&&(pi.length>0||tt?u.jsx(cV,{sessions:pi,roleWorkItems:pn,isCompanyRuntime:Ve,agents:k,onOpenChildDetail:Xe,onOpenExecutionPanel:pt}):u.jsxs("div",{className:"ctx-empty",children:[u.jsx("span",{className:"ctx-empty-icon",children:"🧠"}),u.jsx("span",{children:"No child agents have started for this session yet"})]})),o&&!ke&&!vn&&P==="info"&&Xt&&u.jsx(xV,{task:Xt,agents:k,roleLabel:jl(Xt)}),P==="comms"&&Y&&Q&&u.jsx("div",{style:{flex:1,overflow:"auto",minHeight:0},children:u.jsx(Zz,{state:$??null,message:q??null,onRefresh:Y,onReadMessage:Q,embedded:!0})}),P==="team"&&U&&u.jsx("div",{style:{flex:1,overflow:"auto",minHeight:0},children:u.jsx(n8,{orgInfoData:V??null,commsState:$??null,onStopRun:Z,embedded:!0})})]})]})})]})}function bV({initialWidth:e,minWidth:t,maxWidth:n,onCollapse:i}){const[r,o]=C.useState(e),[a,c]=C.useState(!1),d=C.useRef(0),m=C.useRef(0),h=C.useRef(e);h.current=r;const p=C.useCallback(g=>{g.preventDefault(),d.current=g.clientX,m.current=h.current,c(!0)},[]);return C.useEffect(()=>{if(!a)return;const g=v=>{const _=d.current-v.clientX,k=m.current+_;if(k{c(!1)};return document.body.style.userSelect="none",document.body.style.cursor="col-resize",document.addEventListener("mousemove",g),document.addEventListener("mouseup",x),()=>{document.body.style.userSelect="",document.body.style.cursor="",document.removeEventListener("mousemove",g),document.removeEventListener("mouseup",x)}},[a,t,n,i]),{width:r,isResizing:a,handleMouseDown:p}}const _V=200;function _C(){const e=globalThis.crypto;return e&&typeof e.randomUUID=="function"?`ui-${e.randomUUID()}`:`ui-${Date.now()}-${Math.random().toString(36).slice(2,9)}`}function kV(e,t,n){if(e!=="org"&&e!=="custom"||!t)return!0;const{roles:i,employees:r}=t,o=Um(t),a=t.top_level_role_ids??[],c=t.final_decider_role_id??"";if(i.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&&!c)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(i.map(x=>x.role_id));o.runtimeTeams.filter(x=>x.member_role_ids.some(v=>m.has(v))||x.manager_role_id&&m.has(x.manager_role_id)).length===0&&d.push("No runtime teams defined — the system will auto-generate from your roles");const p=new Set(r.map(x=>x.role_id)),g=i.filter(x=>!p.has(x.role_id));if(g.length>0){const x=g.map(v=>v.name).join(", ");d.push(`${g.length} role(s) have no employees: ${x}`)}return d.length>0?confirm(`Before running this task: - -`+d.map(x=>"• "+x).join(` -`)+` - -Run anyway?`):!0}function SV(e){if(!e)return!1;const t=Um(e);return!!(t.projectRun?.run_id||t.runtimeTeams.length>0||t.runtimeSeats.length>0)}function wV(e,t){return e?e.execMode==="company"||e.execMode==="org"||e.execMode==="custom"?"summary":"full":"summary"}function yy(e,t=0){if(!e)return!1;const n=String(e.execMode??"").trim().toLowerCase();return t>0||!!e.isCompanyRuntime||!!e.roleWorkItems||!!e.executorRoleWorkItems||n==="company"||n==="org"||n==="custom"}function kC(e){return String(e?.originTaskId??e?.taskId??"").trim()||null}function CV({boardColor:e,title:t,onCommit:n}){const[i,r]=C.useState(!1),[o,a]=C.useState(t),c=C.useRef(null);C.useEffect(()=>{i||a(t)},[t,i]);const d=C.useCallback(()=>{const h=o.trim();h&&h!==t?n(h):a(t),r(!1)},[o,t,n]),m=C.useCallback(()=>{a(t),r(!0),setTimeout(()=>c.current?.select(),0)},[t]);return u.jsx("div",{className:"board-selector",children:u.jsx("div",{className:"board-tabs",children:u.jsxs("span",{className:"board-tab active board-tab-editable",style:{"--board-color":e},children:[u.jsx("span",{className:"board-tab-dot",style:{background:e}}),i?u.jsx("input",{ref:c,className:"board-tab-title-input",value:o,onChange:h=>a(h.target.value),onBlur:d,onKeyDown:h=>{h.key==="Enter"&&d(),h.key==="Escape"&&(a(t),r(!1))}}):u.jsx("span",{className:"board-tab-title",onClick:m,title:"Click to edit session title",children:t})]})})})}function jV({boardStore:e,agents:t,officeMap:n,execMode:i,companyProfile:r,taskPreferredAgent:o,chatStore:a,sessionStore:c,projectId:d,onRunTask:m,onCreateTask:h,onMoveTask:p,onCreateSession:g,onSessionSend:x,onSecretarySend:v,onDeleteSession:_,onTitleChange:k,onSessionConfigChange:w,onSessionTaskAgentChange:S,onContinueInNewChat:j,onSessionStop:N,onSessionResume:O,onSessionComplete:R,onLoadSessionDetail:D,onOpenExecutionPanel:I,onCollabSync:L,orgInfoData:M,onNavigateToOrg:A,commsState:B,commsMessage:W,onCommsRefresh:P,onCommsReadMessage:G,savedOrgsList:$,activeSavedOrg:q,onSavedOrgsList:Y,onSavedOrgLoad:Q}){const{sessions:V,activeSessionId:U,activeSession:Z}=c,{markRead:F}=a,[K,ee]=C.useState("collapsed"),{width:te,isResizing:oe,handleMouseDown:ae}=bV({initialWidth:380,minWidth:300,maxWidth:600,onCollapse:()=>ee("collapsed")}),[ue,ie]=C.useState("chat"),[we,je]=C.useState(null),[Te,qe]=C.useState({kind:"activity"}),[Ze,Xe]=C.useState([]),[pt,Ut]=C.useState(!1),[Pt,It]=C.useState({}),he=C.useRef(D),Be=C.useRef(V),at=C.useRef(a.getChannelMessages),Ue=C.useRef({scope:null,active:new Set,child:null}),ct=C.useRef(new Set),pe=C.useRef(0);Be.current=V,at.current=a.getChannelMessages;const be=i==="company"||i==="org"||i==="custom",Ae=`secretary:${d}`,He=`activity:${d}`,Ye=C.useMemo(()=>we?V.find(de=>de.taskId===we)??null:null,[V,we]),$t=C.useMemo(()=>Te.kind!=="task-detail"?null:e.tasks.find(de=>de.id===Te.taskId)??null,[Te,e.tasks]),yt=C.useMemo(()=>{const de=Vm($t);return de?V.find(ve=>ve.taskId===de||ve.runtimeTaskId===de||ve.executionTurnId===de)??null:null},[V,$t]),ke=C.useMemo(()=>yt?a.getChannelMessages(yt.channelId):[],[a.messages,a.getChannelMessages,yt]),We=C.useMemo(()=>Af(Z,V),[V,Z]),Qe=C.useMemo(()=>Wf(Z,V),[V,Z]),Fe=C.useMemo(()=>Yf(Z,[...Qe,...We]),[Z,We,Qe]);C.useEffect(()=>{he.current=D},[D]);const Ve=C.useCallback((de,ve,$e="summary")=>{const dt=he.current;if(!dt||!de)return;const an=pe.current,ce=Be.current.find(St=>St.taskId===de)?.channelId,Se=ve&&ce&&ve.channelId!==ce?at.current(ce).find(St=>$v(St,$e)):ve,ze=[an,de,$e,Se?.timestamp??"latest",Se?.id??""].join("|");if(ct.current.has(ze))return;ct.current.add(ze),It(St=>St[de]?St:{...St,[de]:!0});let Ge;try{Ge=dt(de,{limit:_V,beforeCreatedAt:Se?.timestamp,beforeMessageId:Se?.id,detailLevel:$e})}catch{ct.current.delete(ze),pe.current===an&&(It(ut=>ut[de]?{...ut,[de]:!1}:ut),Ue.current.active.delete(`${de}:${$e}`),Ue.current.child===de&&(Ue.current.child=null));return}return Promise.resolve(Ge).catch(()=>{pe.current===an&&(Ue.current.active.delete(`${de}:${$e}`),Ue.current.child===de&&(Ue.current.child=null))}).finally(()=>{if(ct.current.delete(ze),pe.current!==an)return;const St=`${an}|${de}|`;[...ct.current.keys()].some(nt=>nt.startsWith(St))||It(nt=>nt[de]?{...nt,[de]:!1}:nt)})},[]),Gt=C.useCallback(de=>!!Pt[de],[Pt]);C.useLayoutEffect(()=>{pe.current+=1,ct.current.clear(),Ue.current={scope:null,active:new Set,child:null},It({})},[d]),C.useEffect(()=>()=>{pe.current+=1,ct.current.clear()},[]),C.useEffect(()=>{we&&!Ye&&je(null)},[we,Ye]),C.useEffect(()=>{Te.kind==="task-detail"&&!$t&&qe({kind:"activity"})},[Te,$t]);const ei=C.useRef(null);C.useEffect(()=>{if(!yt){ei.current=null;return}ei.current!==yt.taskId&&(ei.current=yt.taskId,Ve(yt.taskId,void 0,"full"))},[yt,Ve]),C.useEffect(()=>{if(!we){Ue.current.child=null;return}Ue.current.child!==we&&(Ue.current.child=we,Ve(we,void 0,"full"))},[we,Ve]),C.useEffect(()=>{if(!U){Ue.current.scope=null,Ue.current.active.clear();return}Ue.current.scope!==U&&(Ue.current.scope=U,Ue.current.active.clear());const de=Fe.timelineSessions.length>0?Fe.timelineSessions:V.find(ve=>ve.taskId===U)?[V.find(ve=>ve.taskId===U)]:[];if(de.length===0){Ue.current.active.clear();return}for(const ve of de){const $e=yy(Z,We.length)?"summary":wV(ve),dt=`${ve.taskId}:${$e}`;Ue.current.active.has(dt)||(Ue.current.active.add(dt),Ve(ve.taskId,void 0,$e))}},[Fe.timelineSessions,Z,U,We.length,Ve,V]);const _t=C.useMemo(()=>we?{kind:"child-detail"}:Te.kind==="task-detail"||Te.kind==="secretary"?Te:U?{kind:"session",taskId:U}:{kind:"activity"},[Te,U,we]),kt=C.useMemo(()=>_t.kind==="secretary"?Ae:_t.kind==="child-detail"&&Ye?Ye.channelId:_t.kind==="session"&&Fe.displaySession?Fe.displaySession.channelId:_t.kind==="session"&&Z?Z.channelId:He,[_t,Fe.displaySession,Z,Ye,Ae,He]),vn=C.useMemo(()=>{if(_t.kind==="activity")return[He];if(_t.kind==="secretary")return[Ae];if(_t.kind==="child-detail"&&Ye)return[Ye.channelId];if(_t.kind==="session"){const de=Fe.timelineSessions.map(ve=>ve.channelId).filter((ve,$e,dt)=>!!ve&&dt.indexOf(ve)===$e);if(de.length>0)return de}return kt?[kt]:[]},[_t.kind,Fe.timelineSessions,Ye,He,Ae,kt]),On=C.useMemo(()=>{const de=new Set;for(const ve of V)ve.status!=="cancelled"&&de.add(ve.channelId);return de.add(He),de.add(Ae),de},[V,He,Ae]),jt=C.useMemo(()=>{if(_t.kind==="activity")return a.messages.filter(de=>de.sender!=="user"&&On.has(de.channelId)).sort((de,ve)=>ve.timestamp-de.timestamp).slice(0,50).reverse();if(_t.kind==="session"&&vn.length>1){const de=vn.map(ve=>a.getChannelMessages(ve));return yy(Z,We.length)&&Z?pS(de.flat(),Z.channelId):Hx(de)}return a.getChannelMessages(kt)},[a.messages,a.getChannelMessages,kt,_t.kind,On,Z,We.length,vn]),Ht=C.useMemo(()=>Ye?a.getChannelMessages(Ye.channelId):[],[a.messages,a.getChannelMessages,Ye]),Hn=C.useMemo(()=>{if(_t.kind==="session")return hE(Hv(jt).latestPendingReplyMetadata)},[jt,_t.kind]),Me=C.useMemo(()=>[...be?V.filter(ve=>ve.mode!=="child"):V].sort((ve,$e)=>$e.updatedAt-ve.updatedAt),[V,be]),gt=C.useMemo(()=>{if(!be)return null;const de=new Set;for(const ve of V)ve.mode==="child"&&de.add(ve.taskId);return de.size>0?de:null},[V,be]),ht=C.useMemo(()=>{if(!gt)return e.tasksByColumn;const de={};for(const[ve,$e]of Object.entries(e.tasksByColumn))de[ve]=$e.filter(dt=>!gt.has(dt.id));return de},[e.tasksByColumn,gt]),mi=!!(Z&&(Z.isCompanyRuntime||We.length>0)),Vn=!!(Z&&(be||mi)),pn=!!(Z&&be&&SV(M));C.useEffect(()=>{ue==="agents"&&!Vn&&ie("chat"),ue==="comms"&&!P&&ie("chat"),ue==="team"&&!pn&&ie("chat")},[ue,Vn,pn,P]);const Fn=C.useMemo(()=>{const de={};for(const ve of V)de[ve.channelId]=a.getUnreadCount(ve.channelId);return de[Ae]=a.getUnreadCount(Ae),de},[V,a.getUnreadCount,Ae]),tt=C.useMemo(()=>Ze.map(de=>V.find(ve=>ve.taskId===de)).filter(de=>!!de&&de.mode!=="child"),[Ze,V]),pi=C.useMemo(()=>{const de={};for(const ve of tt){const $e=Af(ve,V),dt=Wf(ve,V),Ft=Yf(ve,[...dt,...$e]).timelineSessions.map(ce=>a.getChannelMessages(ce.channelId));de[ve.taskId]=yy(ve,$e.length)?pS(Ft.flat(),ve.channelId):Hx(Ft)}return de},[tt,V,a.getChannelMessages]),Si=C.useMemo(()=>{const de={};for(const ve of tt)de[ve.taskId]=Af(ve,V);return de},[tt,V]),Rn=C.useCallback(de=>{Xe(ve=>ve.includes(de)?ve:[...ve,de])},[]),wn=C.useRef(null);C.useEffect(()=>{U&&!wn.current&&K==="collapsed"&&(ee("open"),ie("chat")),wn.current=U},[U,K]),C.useEffect(()=>{U&&Rn(U)},[U,Rn]),C.useEffect(()=>{const de=new Set(V.map(ve=>ve.taskId));Xe(ve=>ve.filter($e=>de.has($e))),It(ve=>Object.fromEntries(Object.entries(ve).filter(([$e])=>de.has($e))))},[V]),C.useEffect(()=>{pt&&tt.length<2&&Ut(!1)},[pt,tt.length]),C.useEffect(()=>{const de=ve=>{if(ve.key==="Escape"&&K!=="collapsed"){const $e=ve.target?.tagName;if($e==="INPUT"||$e==="TEXTAREA"||$e==="SELECT")return;ee("collapsed")}};return document.addEventListener("keydown",de),()=>document.removeEventListener("keydown",de)},[K]);const Vt=C.useCallback(()=>{for(const de of vn)F(de)},[vn,F]),Cn=C.useCallback(de=>{const ve=V.find($e=>$e.taskId===de);ve&&F(ve.channelId)},[V,F]),Xt=C.useCallback(de=>{V.find($e=>$e.taskId===de)&&(Rn(de),c.setActiveSession(de),qe({kind:"session",taskId:de}),ee("open"),ie("chat"),je(null))},[V,Rn,c]),Re=C.useCallback(de=>{const ve=Ze.filter(dt=>dt!==de);if(Xe(ve),we===de&&je(null),U!==de)return;const $e=ve[ve.length-1]??null;if(c.setActiveSession($e),$e){qe({kind:"session",taskId:$e}),ie("chat");return}qe({kind:"activity"})},[Ze,we,U,c]),wt=C.useCallback(de=>{if(!de){qe({kind:"activity"}),c.setActiveSession(null),je(null);return}const ve=V.find($e=>$e.taskId===de);if(be&&ve?.mode==="child"){je(de),ee("open");return}Xt(de)},[V,c,be,Xt]),bn=C.useCallback(()=>{qe({kind:"secretary"}),c.setActiveSession(null),je(null),ee("open")},[c]),wi=C.useCallback(de=>{const ve=e.tasks.find(dt=>dt.id===de.id);if(be&&ve){je(null),qe({kind:"task-detail",taskId:ve.id}),ee("open"),ie("info");return}V.find(dt=>dt.taskId===de.id)?Xt(de.id):ve&&ve.phase!=="cancelled"&&(c.createSession({projectId:d,taskId:ve.id,channelId:`session:${ve.id}`,sessionId:ve.sessionId,title:ve.title,status:"pending",columnId:ve.columnId,execMode:i,companyProfile:r,assigneeIds:ve.assigneeIds,priority:ve.priority,tags:ve.tags,selectedExecutionAgent:ve.selectedExecutionAgent,createdAt:ve.createdAt,updatedAt:ve.updatedAt,messageCount:0,progressLog:[]}),Rn(de.id),c.setActiveSession(de.id),qe({kind:"session",taskId:de.id}),ee("open"),ie("chat"),L?.())},[V,e.tasks,c,Xt,Rn,L,be]),In=C.useCallback(de=>{if(!e.activeBoardId)return;const ve=e.activeBoardColumns.find(dt=>dt.name==="Todo");if(!ve)return;const $e=e.createTask({boardId:e.activeBoardId,columnId:ve.id,title:de});h(de,e.activeBoardId,ve.id,$e.id)},[e,h]),At=C.useCallback(de=>{e.setActiveBoard(de);const ve=V.find($e=>$e.mode!=="child"&&kC($e)===de);if(ve){Xt(ve.taskId);return}je(null),qe({kind:"activity"}),c.setActiveSession(null)},[e,V,Xt,c]),yi=C.useMemo(()=>new Set(e.boards.map(de=>de.id)),[e.boards]);C.useEffect(()=>{if(be){const de=$t?.boardId??kC(Z)??null;if(!de||!yi.has(de)){e.activeBoardId!==null&&e.setActiveBoard(null);return}e.activeBoardId!==de&&e.setActiveBoard(de);return}e.boards.length>0&&!e.activeBoardId&&e.setActiveBoard(e.boards[0].id)},[be,$t?.boardId,Z,yi,e.activeBoardId,e.boards,e.setActiveBoard]);const Zn=C.useCallback(de=>{const ve=e.tasks.find(Se=>Se.id===de);if(!ve)return;const $e=V.find(Se=>Se.taskId===de),dt=$e?.execMode??i,an=$e?.companyProfile??r,Ft=dt==="org"||dt==="custom"?"custom":dt==="company"?an:void 0;if(!kV(dt,M,A))return;m(de,ve.title,ve.description??"",dt,Ft);const ce=e.activeBoardColumns.find(Se=>Se.name==="In Progress");ce&&e.moveTask(de,ce.id,0)},[e,m,V,i,r,M,A]),ti=C.useCallback((de,ve,$e,dt)=>{w?.(de,ve,$e,dt)},[w]),ln=C.useCallback(de=>{K==="maximized"&&ee("open"),setTimeout(()=>{document.querySelector(`[data-task-id="${de}"]`)?.scrollIntoView({behavior:"smooth",block:"nearest",inline:"nearest"})},100)},[K]),Kt=C.useCallback(()=>{const ve=(Fe.runtimeSession??Fe.displaySession??Z)?.taskId??U;ve&&N?.(ve)},[Fe.runtimeSession,Fe.displaySession,Z,U,N]),Mt=C.useCallback(()=>{we||U&&R?.(U)},[U,we,R]),Zt=C.useCallback(de=>{N?.(de)},[N]),Un=C.useCallback(()=>{const de=Fe.runtimeSession??Fe.displaySession??Z,ve=U??de?.taskId,$e=de?.resumeParentSessionId??de?.parentSessionId??de?.sessionId;ve&&O?.(ve,$e,de?.pendingRuntimeCheckpointId)},[Fe.runtimeSession,Fe.displaySession,Z,U,O]),dn=C.useCallback(de=>{const ve=V.find(dt=>dt.taskId===de),$e=ve?.resumeParentSessionId??ve?.parentSessionId??ve?.sessionId;O?.(de,$e,ve?.pendingRuntimeCheckpointId)},[V,O]),Je=C.useCallback(de=>{R?.(de)},[R]),ni=C.useCallback(()=>{if(!pt&&_t.kind!=="session"){const de=U??tt[tt.length-1]?.taskId??null;de&&Xt(de)}Ut(de=>!de)},[pt,_t.kind,U,tt,Xt]),Bt=C.useCallback((de,ve,$e,dt)=>{const an=dt?.ui_message_id?dt:{...dt??{},ui_message_id:_C()};x(de,ve,$e,an)},[x]),Dt=C.useCallback((de,ve)=>{if(_t.kind==="secretary"){v?.(de);return}const $e=U;if(!$e)return;const dt=Fe.runtimeSession??Fe.displaySession??Z,an=String(dt?.pendingRuntimeCheckpointId??"").trim();let Ft=Hn??(an?{response_to_checkpoint_id:an}:void 0);if(!String(Ft?.response_to_checkpoint_id??"").trim()){const Se=_C();Ft={...Hn??{},ui_message_id:Se};const ze=Fe.displaySession??Z;a.sendMessage({channelId:ze?.channelId??`session:${$e}`,sender:"user",senderName:"You",content:de,metadata:{ui_message_id:Se}})}Bt($e,de,ve,Ft)},[_t.kind,U,Fe.runtimeSession,Fe.displaySession,Z,Hn,a,Bt,v]),An=C.useCallback((de,ve,$e)=>{const dt=ve??U;dt&&Bt(dt,de,void 0,$e)},[U,Bt]),Gn=C.useCallback(de=>{const ve=V.find($e=>$e.taskId===de||$e.runtimeTaskId===de||$e.executionTurnId===de);ve&&(je(ve.taskId),ee("open"),ie("chat"))},[V]),jn=C.useCallback(de=>{if(I){I(de);return}Gn(de)},[Gn,I]),Ln=_t.kind==="secretary",xi=Ln?"Secretary":Z?Z.title:"Activity";return u.jsxs("div",{className:`workspace-page${K==="maximized"?" panel-maximized":""}`,children:[u.jsx(m5,{sessions:Me,activeSessionId:Ln?null:U,activeChannel:Ln?Ae:null,secretaryChannelId:Ae,unreadCounts:Fn,onSelect:wt,onCreateSession:g,onDeleteSession:_,onSelectSecretary:v?bn:void 0}),K!=="maximized"&&u.jsxs("div",{className:"workspace-board",children:[t.length>0&&u.jsx(Hz,{agents:t,tasks:e.tasks}),be?e.activeBoard&&Z&&u.jsx(CV,{boardColor:e.activeBoard.color,title:e.activeBoard.name,onCommit:de=>k(Z.taskId,de)},Z.taskId):e.boards.length>1&&u.jsx(Fz,{boards:e.boards,activeBoardId:e.activeBoardId,onSelect:At}),be&&!e.activeBoard?u.jsx("div",{className:"kanban-empty-state",children:u.jsx("p",{children:"Select a Runtime Session on the left to view its Work Item board."})}):u.jsxs(u.Fragment,{children:[u.jsx($z,{columns:e.activeBoardColumns,tasksByColumn:ht,agents:t,officeMap:n,store:e,companyMode:be,selectedTaskId:_t.kind==="task-detail"?_t.taskId:U,onCardClick:wi,onStartTask:Zn,onQuickCreate:In,onMoveTask:p}),be&&e.activeBoard&&e.tasks.filter(de=>de.boardId===e.activeBoardId).length===0&&u.jsx("div",{className:"kanban-empty-state kanban-empty-state-inline",children:u.jsx("p",{children:"No work items yet — start delegation to populate this board."})})]})]}),u.jsx(vV,{panelState:K,width:te,onResizeMouseDown:ae,isResizing:oe,activeView:_t,activeSession:Z,activeTask:$t,linkedTaskSession:yt,linkedTaskSessionMessages:ke,childDetailSession:Ye,messages:jt,childDetailMessages:Ht,allSessions:V,openSessions:tt,openSessionMessages:pi,openSessionChildren:Si,agents:t,childSessions:We,execMode:i,taskPreferredAgent:o,savedOrgsList:$??null,activeSavedOrg:q??null,onSavedOrgsList:Y,onSavedOrgLoad:Q,canShowAgentsTab:Vn,channelId:kt,channelName:xi,secretaryChannelId:Ae,unreadCounts:Fn,multiSessionView:pt,panelTab:ue,onPanelTabChange:ie,commsState:B??null,commsMessage:W??null,onCommsRefresh:P?()=>P({session_id:Z?.sessionId||void 0,project_id:d||void 0}):void 0,onCommsReadMessage:G,orgInfoData:M??null,canShowTeamTab:pn,onTeamStopRun:U?()=>N?.(U):void 0,onTitleChange:k,onSessionConfigChange:ti,onSessionTaskAgentChange:S,onContinueInNewChat:j,onStop:Kt,onComplete:Mt,onResume:Un,onResumeTask:dn,onStopTask:Zt,onCompleteTask:Je,onLocateOnBoard:ln,onBackToParent:()=>je(null),onCloseTaskDetail:()=>qe({kind:"activity"}),onOpenChildDetail:Gn,onOpenExecutionPanel:I,onSelectSessionTab:Xt,onCloseSessionTab:Re,onToggleMultiSessionView:ni,onCollapse:()=>ee("collapsed"),onExpand:()=>ee("open"),onMaximize:()=>ee(de=>de==="maximized"?"open":"maximized"),onComposerSend:Dt,onMessageSend:An,onSessionSend:Bt,onWorkItemClick:jn,onWorkItemOpenSession:Gn,onMarkRead:Vt,onSessionMarkRead:Cn,onLoadSessionHistory:Ve,isSessionHistoryLoading:Gt})]})}function EV(){return`${Date.now()}-${Math.random().toString(36).slice(2,7)}`}const R0=2e3,SC={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 Pr(e){return e.metadata??{}}function dv(e){return String(e??"").replace(/\r\n/g,` -`).replace(/\r/g,` -`).split(` -`).map(t=>t.trimEnd()).join(` -`).replace(/\n{3,}/g,` - -`).trim()}function wC(e){const t=dv(e),n=NV(t),i=n.split(/\n{2,}/).map(r=>r.trim()).filter(Boolean);return i.length>1&&/^Verification:\s/i.test(i[i.length-1])?i.slice(0,-1).join(` - -`).trim():n}function NV(e){let t=String(e||"").trim();for(;;){const n=t.match(/^\*\*([^\r\n]{8,160}?)\*\*:(?:[ \t]+|\r?\n+)([\s\S]+)$/);if(!n)return t;const i=n[2].trim();if(i.length<80||i===t)return t;t=i}}function IV(e,t,n,i){if(!i)return n.content;const r=dv(e.content),o=dv(t.content);return!r||!o||r===o?n.content:r.endsWith(o)?e.content:o.endsWith(r)?t.content:n.content}function Tl(e){const t=Pr(e),n=new Set,i=typeof t.checkpoint_type=="string"?t.checkpoint_type.trim():"",r=typeof t.checkpoint_id=="string"?t.checkpoint_id.trim():"";for(const o of[e.id,typeof t.ui_message_id=="string"?t.ui_message_id:"",typeof t.result_delivery_id=="string"&&t.result_delivery_id.trim()?`delivery:${t.result_delivery_id.trim()}`:"",i&&r?`checkpoint:${i}:${r}`:""]){const a=String(o??"").trim();a&&n.add(a)}return n}function cl(e){return new Set([...Tl(e)].map(t=>`${e.channelId}\0${t}`))}function TV(e){return e.startsWith("checkpoint:")||e.startsWith("delivery:")}function ui(e){return typeof e.timestamp=="number"?e.timestamp:0}function fv(e){return String(e.id??"").startsWith("msg-")}function UI(e){return!fv(e)}function CC(e){const t={};for(const n of e){if(!UI(n))continue;const i=ui(n);i>(t[n.channelId]??0)&&(t[n.channelId]=i)}return t}function RV(e,t,n){return n<=(e[t]??0)?e:{...e,[t]:n}}function AV(e,t){const n={};for(const i of e){if(!UI(i)||i.sender==="user")continue;const r=t[i.channelId]??0;ui(i)<=r||(n[i.channelId]=(n[i.channelId]??0)+1)}return n}function jC(e){const t=String(e.sender??"").trim().toLowerCase(),n=Pr(e),i=typeof n.role=="string"?n.role.trim().toLowerCase():"";return t==="user"||i==="user"?"user":"assistant"}function EC(e){const t=Pr(e),n=String(e.sender??"").trim().toLowerCase();let i=0;const r=GI(e);return r&&(i+=1e3+r),t.source==="engine"&&(i+=100),n&&n!=="system"&&(i+=20),n&&!["assistant","system","user"].includes(n)&&(i+=5),e.replyToId&&(i+=2),i+=Math.min(Object.keys(t).length,10),i}function NC(e){return String(Pr(e).source??"").trim().toLowerCase()==="engine"}function GI(e){const t=Pr(e),n=String(t.transcript_kind??"").trim();if(n)return SC[n]??0;const i=String(t.kind??"").trim();return SC[i]??0}function Rl(e){return GI(e)>0}function qI(e,t){if(e.channelId!==t.channelId)return!1;const n=Tl(e),i=Tl(t);for(const r of n)if(i.has(r))return!0;return!1}function fm(e,t){if(qI(e,t))return!0;if(e.channelId!==t.channelId||jC(e)!==jC(t)||wC(e.content)!==wC(t.content))return!1;const n=Rl(e)&&Rl(t);if(!n&&String(e.replyToId??"")!==String(t.replyToId??"")||!(NC(e)||NC(t)))return!1;const i=ui(e),r=ui(t);return!(!n&&i&&r&&Math.abs(i-r)>R0)}function mm(e,t,n=!1){let i=e,r=t;const o=fv(e),a=fv(t);o!==a?(i=o?t:e,r=o?e:t):(n||EC(t)>EC(e))&&(i=t,r=e);const c=[];for(const j of[r.mentions,i.mentions])for(const N of j??[])c.includes(N)||c.push(N);const d=Tl(e),m=Tl(t);let h=!1,p="";for(const j of d)m.has(j)&&(TV(j)||(h=!0,p||(p=j)));const g=IV(e,t,i,h),x=String(Pr(e).checkpoint_id??"").trim(),v=String(Pr(t).checkpoint_id??"").trim(),_=!!x&&x===v,k=Rl(e)&&Rl(t),w=k?String(Pr(e).ui_timeline_id??Pr(t).ui_timeline_id??Bv(e)).trim():"",S={...Pr(r),...Pr(i)};return w&&(S.ui_timeline_id=w),{...r,...i,...p?{id:p}:{},content:g,metadata:S,mentions:c,timestamp:_||k?ui(e)||ui(t):ui(i)||ui(r)}}function IC(e){const t=[],n=new Map;for(const i of[...e].sort((r,o)=>ui(r)-ui(o))){const r=cl(i);let o=-1,a=!1;for(const d of r){const m=n.get(d);if(m!==void 0){o=m,a=t[m].id===i.id;break}}if(o===-1){const d=ui(i),m=Rl(i);for(let h=t.length-1;h>=0;h--){const p=ui(t[h]);if(!m&&d>0&&p>0&&d-p>R0)break;if(fm(t[h],i)){o=h;break}}}const c=o===-1?t.length:o;o===-1?t.push(i):t[o]=mm(t[o],i,a);for(const d of cl(t[c]))n.has(d)||n.set(d,c)}return t}function MV(e,t){const n=[...e],i=new Map;n.forEach((r,o)=>{for(const a of cl(r))i.set(a,o)});for(const r of[...t].sort((o,a)=>ui(o)-ui(a))){let o=-1;for(const a of cl(r)){const c=i.get(a);if(c!==void 0){o=c;break}}if(o<0){for(let a=n.length-1;a>=0;a-=1)if(fm(n[a],r)){o=a;break}}if(o<0)o=n.length,n.push(r);else{const a=n[o];n[o]=mm(a,r,a.id===r.id)}for(const a of cl(r))i.set(a,o);for(const a of cl(n[o]))i.set(a,o)}return n.sort((r,o)=>ui(r)===ui(o)?r.id.localeCompare(o.id):ui(r)-ui(o))}function DV(e,t){switch(t.type){case"SET":return t.channels;case"CLEAR":return[];case"ADD":return e.some(n=>n.id===t.channel.id)?e:[...e,t.channel];case"REMOVE":return e.filter(n=>n.id!==t.channelId);case"REMOVE_PARTICIPANT":return e.map(n=>({...n,participants:n.participants.filter(i=>i!==t.agentId)}));default:return e}}function OV(e,t){switch(t.type){case"SET":{const n=IC(t.messages);if(e.length===0)return n;const i=e.filter(r=>typeof r.id=="string"&&r.id.startsWith("msg-")&&!n.some(o=>fm(r,o)));return i.length===0?n:IC([...n,...i])}case"CLEAR":return[];case"ADD":{const n=ui(t.message);Tl(t.message);let i=!1;for(let r=e.length-1;r>=0;r--){const o=ui(e[r]);if(!i&&n>0&&o>0&&n-o>R0&&(i=!0),qI(e[r],t.message)){const a=[...e];return a[r]=mm(e[r],t.message,e[r].id===t.message.id),a}if((Rl(t.message)||!i)&&fm(e[r],t.message)){const a=[...e];return a[r]=mm(e[r],t.message),a}}return[...e,t.message]}case"MERGE":return t.messages.length===0?e:MV(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]=C.useReducer(DV,[]),[n,i]=C.useReducer(OV,[]),[r,o]=C.useState({}),[a,c]=C.useState("default"),d=C.useRef(null),m=C.useMemo(()=>CC(n),[n]),h=C.useRef(m);h.current=m;const p=C.useMemo(()=>{const L={};for(const M of n)L[M.channelId]||(L[M.channelId]=[]),L[M.channelId].push(M);return L},[n]),g=C.useMemo(()=>AV(n,r),[n,r]),x=C.useCallback(L=>{const M={id:`msg-${EV()}`,channelId:L.channelId,sender:L.sender,senderName:L.senderName,content:L.content,timestamp:Date.now(),replyToId:L.replyToId,mentions:[],metadata:L.metadata};return i({type:"ADD",message:M}),M},[]),v=C.useCallback(L=>p[L]??[],[p]),_=C.useCallback(L=>g[L]??0,[g]),k=C.useCallback(L=>{const M=h.current[L]??0;M<=0||o(A=>RV(A,L,M))},[]),w=C.useCallback(L=>{i({type:"MARK_SENDER_DELETED",senderId:L})},[]),S=C.useCallback(L=>{t({type:"REMOVE_PARTICIPANT",agentId:L})},[]),j=C.useCallback(L=>{t({type:"REMOVE",channelId:`session:${L}`}),i({type:"REMOVE_BY_TASK_ID",taskId:L})},[]),N=C.useCallback(()=>{t({type:"CLEAR"}),i({type:"CLEAR"}),d.current=null,o({})},[]),O=C.useCallback((L,M,A)=>{const B=L||"default",W=B!==a,P=d.current!==B;d.current=B,c(B),t({type:"SET",channels:M}),i(W?{type:"SET",messages:A}:{type:"MERGE",messages:A}),P&&o(CC(A))},[a]),R=C.useCallback(L=>{i({type:"ADD",message:L})},[]),D=C.useCallback(L=>{i({type:"MERGE",messages:L})},[]),I=C.useCallback(L=>{t({type:"ADD",channel:L})},[]);return C.useMemo(()=>({scopeProjectId:a,channels:e,messages:n,sendMessage:x,getChannelMessages:v,getUnreadCount:_,markRead:k,markSenderDeleted:w,removeParticipant:S,removeSessionData:j,clear:N,initFromBackend:O,addMessageFromBackend:R,mergeMessagesFromBackend:D,addChannelFromBackend:I}),[a,e,n,x,v,_,k,w,S,j,N,O,R,D,I])}const Km=4e3;function yl(e,t){return e.length>t?e.slice(-t):e}function mv(e,t,n){if(!e)return t;if(!t||e===t)return e;if(t.startsWith(e))return t;if(e.startsWith(t)||e.endsWith(t))return e;if(t.endsWith(e))return t;const i=Math.min(e.length,t.length);for(let r=i;r>0;r-=1)if(e.slice(-r)===t.slice(0,r))return`${e}${t.slice(r)}`;return n==="tool_call"&&/[}\]"]$/.test(e)&&!/^\s/.test(t)?`${e} -${t}`:`${e}${t}`}function zV(e,t){const n=e.trim().replace(/\s+/g," ");return n?n.length>120?`${n.slice(0,120).trimEnd()}...`:n:t||"Thinking"}function PV(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 pm(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 BV(e,t){const n=pm(e),i=pm(t);return n&&i?n===i:t.timestamp-e.timestamp>Km||e.type!==t.type?!1:e.type==="thinking"||e.type==="assistant"?!0:e.type==="tool_call"?e.summary===t.summary:!1}function $V(e,t){return t.timestamp-e.timestamp<=Km&&e.type===t.type&&e.summary===t.summary&&(e.detail??"")===(t.detail??"")}function HV(e,t){if(e.type==="thinking"||e.type==="assistant"){const n=mv(e.detail??"",t.detail??"","thinking");return{timestamp:e.timestamp,type:e.type,summary:zV(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=mv(e.detail??"",t.detail??"","tool_call");return{timestamp:e.timestamp,type:"tool_call",summary:t.summary||e.summary,detail:n||void 0,turnId:t.turnId??e.turnId,itemId:t.itemId??e.itemId,streamId:t.streamId??e.streamId,toolCallId:t.toolCallId??e.toolCallId,permissionGroupKey:t.permissionGroupKey??e.permissionGroupKey,seq:t.seq??e.seq,executionMode:t.executionMode??e.executionMode}}return t}function WI(e,t,n=100){const i=PV(t),r=pm(i),o=r?[...e].reverse().findIndex(d=>pm(d)===r):-1,a=o>=0?e.length-1-o:e.length-1,c=e[a];return c?r&&o>=0&&typeof c.seq=="number"&&typeof i.seq=="number"&&i.seq<=c.seq?e:$V(c,i)?yl([...e.slice(0,a),c,...e.slice(a+1)],n):BV(c,i)?yl([...e.slice(0,a),HV(c,i),...e.slice(a+1)],n):yl([...e,i],n):[i]}function YI(e,t=100){return(Array.isArray(e)?e:[]).reduce((n,i)=>WI(n,i,t),[])}function FV(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 XI(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 VV(e,t){return t.timestamp-e.timestamp<=Km&&XI(e,t)&&(e.type==="thinking"||e.type==="tool_call")}function UV(e,t){return XI(e,t)&&(e.detail??"")===(t.detail??"")&&t.timestamp-e.timestamp<=Km}function GV(e,t){const n=t.type==="tool_call"?"tool_call":"thinking";return{...e,...t,timestamp:t.timestamp,detail:mv(e.detail??"",t.detail??"",n)||void 0}}function KI(e,t,n=100){const i=FV(t),r=e[e.length-1];return r?UV(r,i)?yl([...e.slice(0,-1),{...r,timestamp:i.timestamp}],n):VV(r,i)?yl([...e.slice(0,-1),GV(r,i)],n):yl([...e,i],n):[i]}function ZI(e,t=100){return(Array.isArray(e)?e:[]).reduce((n,i)=>KI(n,i,t),[])}function pv(e){const t=String(e??"").trim().toLowerCase();return t==="company"?"company":t==="org"||t==="custom"?"org":"task"}function qV(e){return String(e??"").trim().toLowerCase()==="custom"?"custom":"corporate"}function QI(e){const t=String(e.execMode??"").trim().toLowerCase(),n=String(e.companyProfile??"").trim().toLowerCase(),i=String(e.orgId??"").trim(),o=t.length>0?pv(t):n==="custom"||i?"org":pv(t);return o==="org"?{...e,execMode:"org",companyProfile:"custom",orgId:i||void 0}:o==="company"?{...e,execMode:"company",companyProfile:"corporate",orgId:void 0}:{...e,execMode:"task",companyProfile:void 0,orgId:void 0}}const pf=100,WV=new Set(["done","failed","cancelled"]);function YV(e,t,n){const i=n,r=new Map(t.filter(c=>c.projectId===i).map(c=>[c.taskId,c])),o=new Set,a=[];for(const c of e){if(c.projectId!==i)continue;const d=r.get(c.taskId);d?(a.push(d),o.add(c.taskId)):a.push(c)}for(const c of t)c.projectId!==i||o.has(c.taskId)||(a.push(c),o.add(c.taskId));return a}function XV(e,t){const n=g=>QI({...g,progressLog:YI(g.progressLog??[],pf),workItemLog:ZI(g.workItemLog??[],pf)}),i=g=>{const x=String(g.execMode??"").trim().toLowerCase();return x==="company"||x==="org"||x==="custom"||!!g.isCompanyRuntime||!!g.parentSessionId||!!g.workItemProjectionId||!!g.roleWorkItems||!!g.executorRoleWorkItems||!!g.orgId},r=g=>{const x=String(g.execMode??"").trim().toLowerCase(),v=String(g.companyProfile??"").trim().toLowerCase(),_=String(g.orgId??"").trim();return x==="task"&&(!v||v==="corporate")&&!_&&!g.isCompanyRuntime&&!g.parentSessionId&&!g.workItemProjectionId&&!g.workItemRoleId&&!g.roleWorkItems&&!g.executorRoleWorkItems},o=(g,x)=>{const v=g.execMode,_=x.execMode;return!v||v==="task"&&_&&_!=="task"&&!r(g)&&(i(g)||i(x))?_:v},a=(g,x,v)=>{const _=g[v],k=x[v];return!_||_==="native"&&k&&k!=="native"?k:_},c=(g,x)=>Object.prototype.hasOwnProperty.call(g,x),d=(g,x,v)=>c(g,v)?g[v]:x[v],m=(g,x)=>{const v=typeof g.updatedAt=="number"&&Number.isFinite(g.updatedAt)?g.updatedAt:void 0,_=typeof x.updatedAt=="number"&&Number.isFinite(x.updatedAt)?x.updatedAt:void 0;return v===void 0?_??Date.now():_===void 0?v:Math.max(_,v)},h=(g,x)=>g.runtimeControlState==="suspending"&&x.runtimeControlState==="running"?{...x,runtimeControlState:"suspending",canStop:!1,canResume:g.canResume??!1,pendingRuntimeCheckpointId:g.pendingRuntimeCheckpointId??x.pendingRuntimeCheckpointId,stopIntentId:g.stopIntentId??x.stopIntentId}:x,p=(g,x,v)=>{const _=g[v];if(_!=null)return _;if(!(WV.has(g.status)||g.status!=="running"&&g.runtimeControlState!=="running"&&g.runtimeControlState!=="suspending"&&g.runtimeControlState!=="resuming"))return x[v]};switch(t.type){case"SET":{if(t.reset)return t.sessions.map(n);const x=new Map(e.map(v=>[v.taskId,v]));return t.sessions.map(v=>{const _=x.get(v.taskId);if(!_)return n(v);const k=h(_,v);return n({...v,updatedAt:m(v,_),execMode:o(v,_),preferredAgent:a(v,_,"preferredAgent"),draftAssistantText:_.draftAssistantText??v.draftAssistantText,draftUpdatedAt:_.draftUpdatedAt??v.draftUpdatedAt,draftIteration:_.draftIteration??v.draftIteration,draftTurnId:_.draftTurnId??v.draftTurnId,agentStatus:p(v,_,"agentStatus"),currentTool:p(v,_,"currentTool"),displayTool:p(v,_,"displayTool"),toolElapsedMs:p(v,_,"toolElapsedMs"),lastToolSummary:p(v,_,"lastToolSummary"),contextTokens:_.contextTokens??v.contextTokens,contextWindow:_.contextWindow??v.contextWindow,contextRemainingPct:_.contextRemainingPct??v.contextRemainingPct,inputTokens:_.inputTokens??v.inputTokens,outputTokens:_.outputTokens??v.outputTokens,totalTokens:_.totalTokens??v.totalTokens,turnCostUsd:_.turnCostUsd??v.turnCostUsd,sessionCostUsd:_.sessionCostUsd??v.sessionCostUsd,pendingPermissionCount:_.pendingPermissionCount??v.pendingPermissionCount,drainMode:_.drainMode??v.drainMode,workItemProjectionId:v.workItemProjectionId??_.workItemProjectionId,workItemTurnType:v.workItemTurnType??_.workItemTurnType,companyProfile:d(v,_,"companyProfile"),orgId:d(v,_,"orgId"),workItemRoleId:v.workItemRoleId??_.workItemRoleId,workItemRoleName:v.workItemRoleName??_.workItemRoleName,workItemGate:v.workItemGate??_.workItemGate,roleWorkItems:v.roleWorkItems??_.roleWorkItems,executorRoleWorkItems:v.executorRoleWorkItems??_.executorRoleWorkItems,employeeAssignment:v.employeeAssignment??_.employeeAssignment,selectedExecutionAgent:a(v,_,"selectedExecutionAgent"),runtimeControlState:k.runtimeControlState??_.runtimeControlState,canStop:k.canStop??_.canStop,canResume:k.canResume??_.canResume,resumeParentSessionId:v.resumeParentSessionId??_.resumeParentSessionId,pendingRuntimeCheckpointId:k.pendingRuntimeCheckpointId??_.pendingRuntimeCheckpointId,stopIntentId:k.stopIntentId??_.stopIntentId,residentStatus:_.residentStatus??v.residentStatus,actionableInboxCount:_.actionableInboxCount??v.actionableInboxCount,protocolBacklogCount:_.protocolBacklogCount??v.protocolBacklogCount,notificationBacklogCount:_.notificationBacklogCount??v.notificationBacklogCount,latestNotification:_.latestNotification??v.latestNotification,latestPreview:v.latestPreview??_.latestPreview,latestSender:v.latestSender??_.latestSender,latestMessageId:v.latestMessageId??_.latestMessageId,indexLoaded:v.indexLoaded??_.indexLoaded,detailLoaded:_.detailLoaded??v.detailLoaded,fullLoaded:_.fullLoaded??v.fullLoaded,hasMore:v.hasMore??_.hasMore,summaryHasMore:v.summaryHasMore??_.summaryHasMore,fullHasMore:v.fullHasMore??_.fullHasMore,detailLoading:v.detailLoading??_.detailLoading,detailError:v.detailError??_.detailError,viewGeneration:v.viewGeneration??_.viewGeneration,progressLog:_.progressLog&&_.progressLog.length>0?_.progressLog:v.progressLog,workItemLog:_.workItemLog&&_.workItemLog.length>0?_.workItemLog:v.workItemLog,lastRuntimeEventType:_.lastRuntimeEventType??v.lastRuntimeEventType,activeSubagents:_.activeSubagents??v.activeSubagents,permissionRequests:_.permissionRequests??v.permissionRequests,handoffContext:v.handoffContext??_.handoffContext,handoffTo:v.handoffTo??_.handoffTo})})}case"ADD":const g=n(t.session);return e.some(x=>x.taskId===t.session.taskId)?e.map(x=>x.taskId===t.session.taskId?n({...x,...g,progressLog:g.progressLog.length>0?g.progressLog:x.progressLog,workItemLog:(g.workItemLog??[]).length>0?g.workItemLog:x.workItemLog,messageCount:Math.max(x.messageCount??0,g.messageCount??0),updatedAt:Math.max(x.updatedAt??0,g.updatedAt??0),execMode:o(g,x),preferredAgent:a(g,x,"preferredAgent"),workItemProjectionId:g.workItemProjectionId??x.workItemProjectionId,workItemTurnType:g.workItemTurnType??x.workItemTurnType,companyProfile:d(g,x,"companyProfile"),orgId:d(g,x,"orgId"),workItemRoleId:g.workItemRoleId??x.workItemRoleId,workItemRoleName:g.workItemRoleName??x.workItemRoleName,workItemGate:g.workItemGate??x.workItemGate,roleWorkItems:g.roleWorkItems??x.roleWorkItems,executorRoleWorkItems:g.executorRoleWorkItems??x.executorRoleWorkItems,employeeAssignment:g.employeeAssignment??x.employeeAssignment,selectedExecutionAgent:a(g,x,"selectedExecutionAgent"),handoffContext:g.handoffContext??x.handoffContext,handoffTo:g.handoffTo??x.handoffTo,latestPreview:g.latestPreview??x.latestPreview,latestSender:g.latestSender??x.latestSender,latestMessageId:g.latestMessageId??x.latestMessageId,indexLoaded:g.indexLoaded??x.indexLoaded,detailLoaded:g.detailLoaded??x.detailLoaded,fullLoaded:g.fullLoaded??x.fullLoaded,hasMore:g.hasMore??x.hasMore,summaryHasMore:g.summaryHasMore??x.summaryHasMore,fullHasMore:g.fullHasMore??x.fullHasMore,detailLoading:g.detailLoading??x.detailLoading,detailError:g.detailError??x.detailError,viewGeneration:g.viewGeneration??x.viewGeneration}):x):[g,...e];case"UPDATE":return e.map(x=>x.taskId===t.taskId?(()=>{const v=h(x,t.partial);return n({...x,...v,updatedAt:m(v,x),runtimeControlState:v.runtimeControlState??x.runtimeControlState,canStop:v.canStop??x.canStop,canResume:v.canResume??x.canResume,resumeParentSessionId:v.resumeParentSessionId??x.resumeParentSessionId,pendingRuntimeCheckpointId:v.pendingRuntimeCheckpointId??x.pendingRuntimeCheckpointId,stopIntentId:v.stopIntentId??x.stopIntentId,roleWorkItems:v.roleWorkItems??x.roleWorkItems,executorRoleWorkItems:v.executorRoleWorkItems??x.executorRoleWorkItems,execMode:d(v,x,"execMode"),companyProfile:d(v,x,"companyProfile"),orgId:d(v,x,"orgId"),isCompanyRuntime:v.isCompanyRuntime??x.isCompanyRuntime,workItemProjectionId:v.workItemProjectionId??x.workItemProjectionId,workItemTurnType:v.workItemTurnType??x.workItemTurnType,workItemRoleId:v.workItemRoleId??x.workItemRoleId,workItemRoleName:v.workItemRoleName??x.workItemRoleName,workItemGate:v.workItemGate??x.workItemGate,employeeAssignment:v.employeeAssignment??x.employeeAssignment,selectedExecutionAgent:v.selectedExecutionAgent??x.selectedExecutionAgent,activeSubagents:v.activeSubagents??x.activeSubagents,permissionRequests:v.permissionRequests??x.permissionRequests,contextTokens:v.contextTokens??x.contextTokens,contextWindow:v.contextWindow??x.contextWindow,contextRemainingPct:v.contextRemainingPct??x.contextRemainingPct,inputTokens:v.inputTokens??x.inputTokens,outputTokens:v.outputTokens??x.outputTokens,totalTokens:v.totalTokens??x.totalTokens,turnCostUsd:v.turnCostUsd??x.turnCostUsd,sessionCostUsd:v.sessionCostUsd??x.sessionCostUsd,...t.partial.progressLog?{progressLog:t.partial.progressLog}:{},...t.partial.workItemLog?{workItemLog:t.partial.workItemLog}:{}})})():x);case"DELETE":return e.filter(x=>x.taskId!==t.taskId);case"APPEND_PROGRESS":return e.map(x=>x.taskId!==t.taskId?x:{...x,progressLog:WI(x.progressLog,t.entry,pf),updatedAt:Math.max(x.updatedAt,t.entry.timestamp)});case"APPEND_DRAFT":return e.map(x=>{if(x.taskId!==t.taskId)return x;const v=t.turnId??x.draftTurnId,_=!!t.turnId&&!!x.draftTurnId&&t.turnId!==x.draftTurnId;return{...x,draftAssistantText:`${_?"":x.draftAssistantText??""}${t.text}`,draftUpdatedAt:t.timestamp,draftIteration:t.iteration??x.draftIteration,draftTurnId:v,updatedAt:Math.max(x.updatedAt,t.timestamp)}});case"CLEAR_DRAFT":return e.map(x=>x.taskId===t.taskId?{...x,draftAssistantText:void 0,draftUpdatedAt:void 0,draftIteration:void 0,draftTurnId:void 0}:x);case"CLEAR_PROGRESS":return e.map(x=>x.taskId===t.taskId?{...x,progressLog:[]}:x);case"APPEND_WORK_ITEM_PROGRESS":return e.map(x=>x.taskId!==t.taskId?x:{...x,workItemLog:KI(x.workItemLog??[],t.entry,pf)});case"SET_COMPANY_RUNTIME":return e.map(x=>x.taskId===t.taskId?{...x,isCompanyRuntime:t.isCompanyRuntime}:x);default:return e}}function KV(){const[e,t]=C.useReducer(XV,[]),[n,i]=C.useState(null),[r,o]=C.useState("default"),a=C.useMemo(()=>e.find(S=>S.taskId===n)??null,[e,n]),c=C.useCallback(S=>{S.projectId===r&&t({type:"ADD",session:S})},[r]),d=C.useCallback(S=>{t({type:"DELETE",taskId:S})},[]),m=C.useCallback(S=>{i(S)},[]),h=C.useCallback((S,j)=>{t({type:"UPDATE",taskId:S,partial:j})},[]),p=C.useCallback((S,j)=>{t({type:"APPEND_PROGRESS",taskId:S,entry:j})},[]),g=C.useCallback((S,j,N,O)=>{t({type:"APPEND_DRAFT",taskId:S,text:j,iteration:N,turnId:O,timestamp:Date.now()})},[]),x=C.useCallback(S=>{t({type:"CLEAR_DRAFT",taskId:S})},[]),v=C.useCallback(S=>{t({type:"CLEAR_PROGRESS",taskId:S})},[]),_=C.useCallback((S,j)=>{t({type:"APPEND_WORK_ITEM_PROGRESS",taskId:S,entry:j})},[]),k=C.useCallback((S,j)=>{t({type:"SET_COMPANY_RUNTIME",taskId:S,isCompanyRuntime:j})},[]),w=C.useCallback((S,j,N)=>{const O=S||"default",R=O!==r,D=N?.preserveExistingWhenIncomingPartial&&!R?YV(e,j,O):j.filter(I=>I.projectId===O);o(O),t({type:"SET",sessions:D,reset:R}),i(I=>!R&&I&&(D.some(L=>L.taskId===I)||N?.preserveActiveWhenMissing)?I:null)},[r,e]);return C.useMemo(()=>({scopeProjectId:r,sessions:e,activeSessionId:n,activeSession:a,createSession:c,deleteSession:d,setActiveSession:m,updateSession:h,appendProgress:p,appendDraft:g,clearDraft:x,clearProgress:v,appendWorkItemProgress:_,setCompanyRuntime:k,initFromBackend:w}),[r,e,n,a,c,d,m,h,p,g,x,v,_,k,w])}function TC(e){return e.trim()||"default"}function ZV(e,t){switch(t.type){case"SET":return{projects:t.projects,activeProjectId:TC(t.activeId)};case"ADD":return e.projects.some(n=>n.id===t.project.id)?e:{...e,projects:[...e.projects,t.project]};case"REMOVE":{const n=e.projects.filter(r=>r.id!==t.id),i=e.activeProjectId===t.id?"default":e.activeProjectId;return{projects:n,activeProjectId:i}}case"SET_ACTIVE":return{...e,activeProjectId:TC(t.id)};default:return e}}function QV(){const[e,t]=C.useReducer(ZV,{projects:[{id:"default",name:"default"}],activeProjectId:"default"}),n=C.useCallback((a,c)=>{t({type:"SET",projects:a,activeId:c})},[]),i=C.useCallback(a=>{t({type:"ADD",project:a})},[]),r=C.useCallback(a=>{t({type:"REMOVE",id:a})},[]),o=C.useCallback(a=>{t({type:"SET_ACTIVE",id:a})},[]);return C.useMemo(()=>({projects:e.projects,activeProjectId:e.activeProjectId,initFromBackend:n,addProject:i,removeProject:r,setActiveProject:o}),[e,n,i,r,o])}const RC={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"}},hf={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 JV(e){const t=Math.floor((Date.now()-e)/1e3);if(t<5)return"now";if(t<60)return`${t}s ago`;const n=Math.floor(t/60);if(n<60)return`${n}m ago`;const i=Math.floor(n/60);return i<24?`${i}h ago`:`${Math.floor(i/24)}d ago`}function xy(e){const t=String(e??"").trim();return t?t.replace(/[_-]/g," ").replace(/\b\w/g,n=>n.toUpperCase()):""}function eU(e){return e.phase==="failed"?hf.failed:e.phase==="cancelled"?hf.cancelled:hf[e.kanbanColumn]??hf.todo}function tU(e){if(e.phase==="failed")return"failed";if(e.phase==="cancelled")return"cancelled";if(e.kanbanColumn==="done")return"done"}function nU(e){const t=e.activitySections??[];return t.length>0?t.reduce((n,i)=>n+(i.entries?.length??0),0):e.progressLog.length}function iU({sections:e,fallbackEntries:t,sessionStatus:n}){const i=(e??[]).filter(r=>(r.entries?.length??0)>0||!!r.runtimeTaskId);return i.length>0?u.jsx("div",{className:"exec-activity-sections",children:i.map((r,o)=>{const a=r.entries??[],c=`${r.runtimeTaskId||r.kind}:${o}`;return u.jsxs("section",{className:"exec-activity-section",children:[u.jsxs("div",{className:"exec-activity-section-head",children:[u.jsx("span",{className:"exec-activity-section-title",children:r.title}),r.roleName&&u.jsx("span",{className:"exec-activity-section-role",children:r.roleName}),a.length>0&&u.jsx("span",{className:"exec-section-count",children:a.length})]}),a.length>0?u.jsx(Nl,{entries:a,sessionStatus:n,expandedByDefault:!0}):u.jsx("div",{className:"exec-section-empty",children:"No runtime activity yet"})]},c)})}):!t||t.length===0?u.jsx("div",{className:"exec-section-empty",children:"No activity recorded yet"}):u.jsx(Nl,{entries:t,sessionStatus:n,expandedByDefault:!0})}function AC({role:e,focusedWorkItemId:t,focusedExecutionTurnId:n,agents:i,onClose:r}){const o=C.useMemo(()=>e.workItems.slice().sort((S,j)=>S.createdAt-j.createdAt),[e.workItems]),c=C.useMemo(()=>o.find(S=>!!t&&S.workItemId===t||!!n&&S.executionTurnId===n)??o[o.length-1]??null,[n,t,o])?.workItemId,[d,m]=C.useState(()=>{const S=new Set;return c&&S.add(c),S}),h=C.useRef(new Set);C.useEffect(()=>{!c||h.current.has(c)||(h.current.add(c),m(S=>{if(S.has(c))return S;const j=new Set(S);return j.add(c),j}))},[c]);const p=C.useCallback(S=>{m(j=>{const N=new Set(j);return N.has(S)?N.delete(S):N.add(S),N})},[]),g=C.useRef(null),x=C.useRef(null);C.useEffect(()=>{!c||x.current===c||(x.current=c,g.current?.scrollIntoView({behavior:"smooth",block:"nearest"}))},[c]);const v=C.useCallback(S=>{S.key==="Escape"&&r()},[r]);C.useEffect(()=>(document.addEventListener("keydown",v),()=>document.removeEventListener("keydown",v)),[v]);const _=i.find(S=>S.agent_id===e.roleId),k=e.roleName||_?.name||xy(e.roleId)||"Role",w=RC[e.aggregatedStatus]??RC.pending;return u.jsxs(u.Fragment,{children:[u.jsx("div",{className:"exec-panel-backdrop",onClick:r}),u.jsxs("div",{className:"exec-panel",children:[u.jsxs("div",{className:"exec-panel-header",children:[u.jsxs("div",{className:"exec-panel-title-row",children:[u.jsx(_l,{}),u.jsx("h3",{className:"exec-panel-title",children:k}),u.jsx("span",{className:`exec-badge ${w.cls}`,children:w.label}),u.jsxs("span",{className:"exec-panel-task-count",children:[o.length," Work Item",o.length===1?"":"s"]})]}),u.jsx("button",{className:"exec-panel-close",onClick:r,title:"Close (Esc)",children:u.jsx(Mm,{})})]}),u.jsxs("div",{className:"exec-panel-identity",children:[u.jsx("div",{className:"exec-panel-avatar",children:k.charAt(0).toUpperCase()}),u.jsxs("div",{className:"exec-panel-agent-info",children:[u.jsx("span",{className:"exec-panel-agent-name",children:k}),u.jsx("span",{className:"exec-panel-agent-role",children:xy(e.roleId)}),e.roleSessionId&&u.jsx("span",{className:"exec-panel-employee",children:e.roleSessionId})]})]}),u.jsxs("div",{className:"exec-panel-body",children:[o.length===0&&u.jsx("div",{className:"exec-section-empty",children:"No work items yet"}),o.map((S,j)=>{const N=S.workItemId===c,O=d.has(S.workItemId),R=eU(S),D=nU(S);return u.jsxs("div",{ref:N?g:null,className:`exec-task-card${N?" exec-task-card-focused":""}`,children:[u.jsxs("button",{type:"button",className:"exec-task-card-header",onClick:()=>p(S.workItemId),title:O?"Collapse":"Expand",children:[u.jsxs("span",{className:"exec-task-card-index",children:["Work item #",j+1]}),u.jsx("span",{className:"exec-task-card-title",children:S.title||S.workItemId}),u.jsx("span",{className:`exec-badge ${R.cls}`,children:R.label}),u.jsx("span",{className:"exec-task-card-time",children:JV(S.updatedAt)}),u.jsx("span",{className:`exec-task-card-chevron${O?" open":""}`,"aria-hidden":"true",children:"▸"})]}),O&&u.jsxs("div",{className:"exec-task-card-body",children:[u.jsxs("div",{className:"exec-task-card-projection",children:[u.jsx(Am,{}),u.jsx("span",{children:xy(S.kind)||"Work item"}),S.workItemProjectionId&&u.jsx("code",{children:S.workItemProjectionId}),S.executionTurnId&&u.jsx("span",{className:"exec-inline-tag",children:"Execution Turn"}),S.isReviewTarget&&u.jsx("span",{className:"exec-inline-tag",children:"Review target"}),S.executorRoleName&&u.jsx("span",{children:S.executorRoleName})]}),u.jsxs("div",{className:"exec-section",children:[u.jsxs("div",{className:"exec-section-header",children:[u.jsx(_l,{}),u.jsx("span",{children:"Activity"}),u.jsx("span",{className:"exec-section-count",children:D})]}),u.jsx("div",{className:"exec-section-content exec-activity-scroll",children:u.jsx(iU,{sections:S.activitySections,fallbackEntries:S.progressLog,sessionStatus:tU(S)})})]})]})]},S.workItemId)})]})]})]})}function rU({projects:e,activeId:t,onSelect:n,onCreate:i,onDelete:r}){const[o,a]=C.useState(!1),[c,d]=C.useState(""),[m,h]=C.useState(null),p=C.useCallback(()=>{const x=c.trim().toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-|-$/g,"");x&&(i(x),d(""),a(!1))},[c,i]),g=C.useCallback(()=>{!m||!r||(r(m),h(null))},[m,r]);return u.jsxs("div",{className:"project-selector",style:{display:"flex",alignItems:"center",gap:6},children:[u.jsx("select",{className:"theme-select",value:t,onChange:x=>n(x.target.value),title:"Switch project",children:e.map(x=>u.jsx("option",{value:x.id,children:x.name},x.id))}),o?u.jsxs("form",{onSubmit:x=>{x.preventDefault(),p()},style:{display:"flex",gap:4},children:[u.jsx("input",{autoFocus:!0,className:"theme-select",value:c,placeholder:"project-name",onChange:x=>d(x.target.value),onKeyDown:x=>{x.key==="Escape"&&a(!1)},style:{width:120}}),u.jsx("button",{type:"submit",className:"pill-btn",style:{fontSize:11,padding:"2px 8px"},children:"+"})]}):u.jsx("button",{className:"pill-btn",onClick:()=>a(!0),title:"New project",style:{fontSize:11,padding:"2px 8px"},children:"+"}),r&&t!=="default"&&!m&&u.jsx("button",{className:"pill-btn",onClick:()=>h(t),title:"Delete project",style:{fontSize:11,padding:"2px 8px",color:"#ef4444"},children:"Del"}),m&&u.jsx("div",{className:"project-delete-confirm",style:{position:"fixed",inset:0,zIndex:9999,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.5)"},children:u.jsxs("div",{style:{background:"var(--bg-surface, #1e1e2e)",borderRadius:12,padding:"24px 32px",maxWidth:400,boxShadow:"0 8px 32px rgba(0,0,0,0.4)",textAlign:"center"},children:[u.jsxs("p",{style:{margin:"0 0 8px",fontWeight:600,fontSize:15},children:['Delete project "',m,'"?']}),u.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."}),u.jsxs("div",{style:{display:"flex",gap:8,justifyContent:"center"},children:[u.jsx("button",{className:"pill-btn",onClick:()=>h(null),style:{padding:"6px 18px",fontSize:13},children:"Cancel"}),u.jsx("button",{className:"pill-btn",onClick:g,style:{padding:"6px 18px",fontSize:13,background:"#ef4444",color:"#fff"},children:"Delete"})]})]})})]})}const sU=80;function oU(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 MC(e){return(e.organization_name||e.name).trim()||e.name}function aU(e){const t=e.trim();return t.length>0&&t.length<=sU&&!/[\\/]/.test(t)&&!/[\u0000-\u001f]/.test(t)}function lU(e){return e.normalize("NFKD").replace(/[^\x00-\x7F]/g,"").toLowerCase().trim().replace(/\s+/g,"_").replace(/[^a-z0-9_-]+/g,"_").replace(/_+/g,"_").replace(/^[_-]+|[_-]+$/g,"").slice(0,64)||"org"}function cU({className:e}){return u.jsxs("svg",{className:e,width:"12",height:"12",viewBox:"0 0 16 16",fill:"none","aria-hidden":!0,children:[u.jsx("path",{d:"M8 1.5L1.5 4.5L8 7.5L14.5 4.5L8 1.5Z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),u.jsx("path",{d:"M2 8L8 10.8L14 8",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round",opacity:"0.6"}),u.jsx("path",{d:"M2 11.5L8 14.2L14 11.5",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round",opacity:"0.35"})]})}function uU({className:e}){return u.jsx("svg",{className:e,width:"10",height:"10",viewBox:"0 0 12 12",fill:"none","aria-hidden":!0,children:u.jsx("path",{d:"M3 4.5L6 7.5L9 4.5",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})})}function dU({className:e}){return u.jsxs("svg",{className:e,width:"11",height:"11",viewBox:"0 0 12 12",fill:"none","aria-hidden":!0,children:[u.jsx("circle",{cx:"5",cy:"5",r:"3.2",stroke:"currentColor",strokeWidth:"1.3"}),u.jsx("path",{d:"M7.5 7.5L10 10",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]})}function fU({savedOrgs:e,activeName:t,isDirty:n,onRefresh:i,onSaveAs:r,onLoad:o,onDelete:a}){const[c,d]=C.useState(!1),[m,h]=C.useState(""),[p,g]=C.useState(0),[x,v]=C.useState(!1),[_,k]=C.useState(""),[w,S]=C.useState(null),[j,N]=C.useState(null),O=C.useRef(null),R=C.useRef(null);C.useEffect(()=>{N(null)},[t,e]);const D=(e??[]).filter(Y=>!m.trim()||Y.name.toLowerCase().includes(m.trim().toLowerCase())),I=C.useRef(!1);C.useEffect(()=>{c&&!I.current&&(I.current=!0,i())},[c,i]),C.useEffect(()=>{x&&R.current?.focus()},[x]),C.useEffect(()=>{g(Y=>Math.min(Y,Math.max(0,D.length-1)))},[D.length]),C.useEffect(()=>{if(!c)return;const Y=Q=>{O.current&&!O.current.contains(Q.target)&&L()};return document.addEventListener("mousedown",Y),()=>document.removeEventListener("mousedown",Y)},[c]);const L=C.useCallback(()=>{d(!1),h(""),g(0),v(!1),k(""),S(null)},[]),M=C.useCallback(Y=>{if(Y===t){L();return}N(Y),o(Y),L()},[o,L,t]),A=C.useCallback(Y=>{a(Y),S(null)},[a]),B=_.trim(),W=aU(B),P=lU(B),G=(e??[]).some(Y=>Y.name===P||MC(Y).toLowerCase()===B.toLowerCase()),$=C.useCallback(()=>{W&&(r(B,G),v(!1),k(""),L())},[W,B,G,r,L]),q=Y=>{if(Y.key==="Escape"){Y.preventDefault(),L();return}if(x){Y.key==="Enter"&&(Y.preventDefault(),$());return}if(Y.key==="ArrowDown")Y.preventDefault(),g(Q=>Math.min(Q+1,Math.max(0,D.length-1)));else if(Y.key==="ArrowUp")Y.preventDefault(),g(Q=>Math.max(0,Q-1));else if(Y.key==="Enter"){const Q=D[p];Q&&M(Q.name)}else if((Y.key==="Backspace"||Y.key==="Delete")&&(Y.metaKey||Y.ctrlKey)){const Q=D[p];Q&&(Y.preventDefault(),S(Q.name))}};return u.jsxs("div",{className:"sos-wrap",ref:O,children:[u.jsxs("button",{type:"button",className:"sos-pill","data-open":c?"true":"false",onClick:()=>d(Y=>!Y),"aria-haspopup":"listbox","aria-expanded":c,title:t?`Active saved architecture: ${t}`:"No saved architecture loaded",children:[u.jsx(cU,{className:"sos-pill-glyph"}),t?u.jsx("span",{className:"sos-pill-name",children:t}):u.jsx("span",{className:"sos-pill-name sos-pill-name--placeholder",children:"draft"}),n&&u.jsx("span",{className:"sos-pill-dirty","aria-label":"Modified since opened"}),u.jsx(uU,{className:"sos-pill-caret"})]}),c&&u.jsxs("div",{className:"sos-popover",role:"listbox",onKeyDown:q,tabIndex:-1,children:[u.jsxs("div",{className:"sos-search-row",children:[u.jsx(dU,{className:"sos-search-glyph"}),u.jsx("input",{type:"text",className:"sos-search-input",placeholder:"Search architectures…",value:m,onChange:Y=>{h(Y.target.value),g(0)},autoFocus:!0,onKeyDown:q}),u.jsx("kbd",{className:"sos-search-hint",children:"↑↓ ↵"})]}),u.jsx("div",{className:"sos-list",children:e===null?u.jsx("div",{className:"sos-empty",children:"Loading…"}):D.length===0?u.jsx("div",{className:"sos-empty",children:(e??[]).length===0?"No saved architectures.":"No matches."}):D.map((Y,Q)=>{const V=t===Y.name,U=p===Q,Z=MC(Y);return u.jsxs("div",{className:`sos-row${V?" sos-row--active":""}`,"data-highlighted":U?"true":"false",onMouseEnter:()=>g(Q),onClick:()=>M(Y.name),role:"option","aria-selected":V,children:[u.jsxs("div",{className:"sos-row-meta",children:[u.jsx("span",{className:"sos-row-name",children:Z}),u.jsxs("span",{className:"sos-row-stats",children:[Z!==Y.name&&`${Y.name} · `,Y.roles_count," ",Y.roles_count===1?"role":"roles"," · ",Y.employees_count," ",Y.employees_count===1?"employee":"employees"," · ",oU(Y.saved_at)]})]}),j===Y.name?u.jsx("span",{className:"sos-row-loading",children:"loading…"}):V?u.jsx("span",{className:"sos-row-active-chip",children:"active"}):w===Y.name?u.jsx("button",{type:"button",className:"sos-row-delete sos-row-delete--confirm",onClick:F=>{F.stopPropagation(),A(Y.name)},children:"confirm"}):u.jsx("button",{type:"button",className:"sos-row-delete",onClick:F=>{F.stopPropagation(),S(Y.name)},title:"Delete",children:"delete"})]},Y.name)})}),u.jsxs("div",{className:"sos-save-as",children:[x?u.jsxs("div",{className:"sos-save-as-form",children:[u.jsx("input",{ref:R,type:"text",className:"sos-save-as-input",placeholder:"Organization name",value:_,onChange:Y=>k(Y.target.value),onKeyDown:q}),u.jsx("button",{type:"button",className:"btn btn-primary btn-sm",onClick:$,disabled:!W,children:G?"Overwrite copy":"Save as copy"}),u.jsx("button",{type:"button",className:"btn btn-ghost btn-sm",onClick:()=>{v(!1),k("")},children:"Cancel"})]}):u.jsx("button",{type:"button",className:"sos-save-as-trigger",onClick:()=>v(!0),children:"+ Save as copy..."}),x&&_&&!W&&u.jsx("div",{className:"sos-save-as-hint sos-save-as-hint--warn",children:"Use up to 80 characters. Slashes are not allowed."}),x&&W&&G&&u.jsx("div",{className:"sos-save-as-hint sos-save-as-hint--warn",children:"Name exists - this will overwrite that copy."})]})]})]})}const mU=["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"],du={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 Fu(e){return e?e.startsWith("data:")?e:du[e]??du.generic:du.generic}const Wc=["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"],pU=[{label:"Files",prefix:"file_",tools:Wc.filter(e=>e.startsWith("file_"))},{label:"Shell",prefix:"shell_",tools:Wc.filter(e=>e==="shell_exec")},{label:"Web",prefix:"web_",tools:Wc.filter(e=>e.startsWith("web_"))},{label:"TODOs",prefix:"todo_",tools:Wc.filter(e=>e.startsWith("todo_"))},{label:"Browser",prefix:"browser_",tools:Wc.filter(e=>e.startsWith("browser_"))}],hU=["codex","cursor","claude_code","opencode"],gU=[{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 yU({role:e,allRoles:t,employees:n,readOnly:i,onUpdateRole:r,onDeleteRole:o,onClose:a}){const[c,d]=C.useState(e.name),[m,h]=C.useState(e.responsibility),[p,g]=C.useState(e.reports_to),[x,v]=C.useState(e.icon??null),[_,k]=C.useState(()=>new Set(e.can_spawn)),[w,S]=C.useState(()=>new Set(e.tools)),[j,N]=C.useState(e.runtime_policy?.execution_strategy??"auto"),[O,R]=C.useState(e.preferred_external_agent??null),[D,I]=C.useState((e.prompt_refs??[]).join(` -`)),[L,M]=C.useState(!1),A=C.useRef(e.role_id);C.useEffect(()=>{A.current!==e.role_id&&(A.current=e.role_id,d(e.name),h(e.responsibility),g(e.reports_to),v(e.icon??null),k(new Set(e.can_spawn)),S(new Set(e.tools)),N(e.runtime_policy?.execution_strategy??"auto"),R(e.preferred_external_agent??null),I((e.prompt_refs??[]).join(` -`)),M(!1))},[e]);const B=C.useRef({}),W=C.useRef(null),P=C.useRef(e.role_id);C.useEffect(()=>{P.current=e.role_id},[e.role_id]);const G=C.useCallback(()=>{W.current&&(clearTimeout(W.current),W.current=null);const ie=B.current;B.current={},Object.keys(ie).length!==0&&r(P.current,ie)},[r]),$=C.useCallback(ie=>{i||(B.current={...B.current,...ie},W.current&&clearTimeout(W.current),W.current=setTimeout(G,500))},[G,i]);C.useEffect(()=>()=>{W.current&&(clearTimeout(W.current),W.current=null);const ie=B.current;Object.keys(ie).length>0&&(B.current={},r(P.current,ie))},[r]);const q=ie=>{d(ie),$({name:ie})},Y=ie=>{h(ie),$({responsibility:ie})},Q=ie=>{g(ie),$({reports_to:ie})},V=ie=>{v(ie),$({icon:ie})},U=ie=>{N(ie),$({execution_strategy:ie})},Z=ie=>{R(ie),$({preferred_external_agent:ie})},F=ie=>{I(ie);const we=ie.split(` -`).map(je=>je.trim()).filter(Boolean);$({prompt_refs:we})},K=ie=>{const we=new Set(_);we.has(ie)?we.delete(ie):we.add(ie),k(we),$({can_spawn:Array.from(we)})},ee=ie=>{const we=new Set(w);we.has(ie)?we.delete(ie):we.add(ie),S(we),$({tools:Array.from(we)})},te=C.useMemo(()=>t.filter(ie=>ie.role_id!==e.role_id),[t,e.role_id]),oe=C.useMemo(()=>n.filter(ie=>(ie.role_ids?.length?ie.role_ids:[ie.role_id]).includes(e.role_id)).length,[n,e.role_id]),ae=C.useMemo(()=>D.split(` -`).filter(ie=>ie.trim()).length,[D]),ue=()=>{if(!L){M(!0);return}G(),o(e.role_id)};return u.jsxs("aside",{className:"ri-panel","aria-label":`Inspector for role ${e.name}`,children:[u.jsxs("header",{className:"ri-panel-header",children:[u.jsx("img",{src:Fu(x),alt:"",className:"ri-panel-icon"}),u.jsxs("div",{className:"ri-panel-title-wrap",children:[u.jsx("h3",{className:"ri-panel-title",children:c||"(unnamed)"}),u.jsx("code",{className:"ri-panel-id",children:e.role_id})]}),u.jsx("button",{className:"btn btn-ghost btn-sm ri-panel-close",onClick:a,title:"Close (Esc)",children:"✕"})]}),u.jsxs("div",{className:"ri-panel-body",children:[u.jsxs(nl,{title:"Identity",defaultExpanded:!0,children:[u.jsx(Er,{label:"Name",children:u.jsx("input",{className:"ri-text-input",value:c,onChange:ie=>q(ie.target.value),disabled:i})}),u.jsx(Er,{label:"Responsibility",children:u.jsx("textarea",{className:"ri-textarea",rows:3,value:m,onChange:ie=>Y(ie.target.value),disabled:i})}),u.jsx(Er,{label:"Icon",children:u.jsx(xU,{value:x,onChange:V,readOnly:i})})]}),u.jsxs(nl,{title:"Hierarchy",defaultExpanded:!0,children:[u.jsx(Er,{label:"Reports to",children:u.jsxs("select",{className:"ri-select",value:p,onChange:ie=>Q(ie.target.value),disabled:i,children:[u.jsx("option",{value:"owner",children:"You (Owner)"}),te.map(ie=>u.jsx("option",{value:ie.role_id,children:ie.name},ie.role_id))]})}),u.jsx(Er,{label:"Can delegate to",children:u.jsx(vU,{allIds:te.map(ie=>ie.role_id),labelFor:ie=>te.find(we=>we.role_id===ie)?.name??ie,selected:_,onToggle:K,readOnly:i})}),u.jsx(Er,{label:"Employees assigned",children:u.jsx("span",{className:"ri-meta-value",children:oe})})]}),u.jsx(nl,{title:`Tools (${w.size})`,children:u.jsx(bU,{tools:w,onToggle:ee,readOnly:i})}),u.jsx(nl,{title:`Prompts (${ae})`,children:u.jsx(Er,{label:"Prompt refs / inline",children:u.jsx("textarea",{className:"ri-textarea ri-textarea-mono",rows:5,placeholder:"One prompt ref or inline instruction per line",value:D,onChange:ie=>F(ie.target.value),disabled:i})})}),u.jsxs(nl,{title:"Runtime policy",children:[u.jsx(Er,{label:"Execution strategy",children:u.jsx("div",{className:"ri-radio-group",children:gU.map(ie=>u.jsxs("label",{className:"ri-radio",title:ie.hint,children:[u.jsx("input",{type:"radio",name:`exec-strategy-${e.role_id}`,value:ie.value,checked:j===ie.value,onChange:()=>U(ie.value),disabled:i}),ie.label]},ie.value))})}),j==="external"&&u.jsx(Er,{label:"Preferred external agent",children:u.jsxs("select",{className:"ri-select",value:O??"",onChange:ie=>Z(ie.target.value||null),disabled:i,children:[u.jsx("option",{value:"",children:"(any)"}),hU.map(ie=>u.jsx("option",{value:ie,children:ie},ie))]})})]}),u.jsxs(nl,{title:"Advanced",children:[u.jsx(Er,{label:"Role type",children:u.jsx("span",{className:"ri-meta-value",children:e.role_type??"worker"})}),u.jsx(Er,{label:"Skills",children:u.jsx("span",{className:"ri-meta-value",children:e.skill_refs&&e.skill_refs.length>0?e.skill_refs.join(", "):"(none)"})}),u.jsx(Er,{label:"Artifact contract",children:u.jsx("span",{className:"ri-meta-value",children:e.artifact_contract_ref??"(none)"})})]})]}),!i&&u.jsx("footer",{className:"ri-panel-footer",children:u.jsx("button",{className:`btn btn-sm ${L?"btn-danger":"btn-ghost"}`,onClick:ue,onBlur:()=>M(!1),children:L?"Confirm delete?":"Delete role"})})]})}function nl({title:e,defaultExpanded:t=!1,children:n}){const[i,r]=C.useState(t);return u.jsxs("section",{className:`ri-group${i?" is-expanded":""}`,children:[u.jsxs("button",{className:"ri-group-header",onClick:()=>r(o=>!o),children:[u.jsx("span",{className:"ri-group-caret",children:i?"▾":"▸"}),u.jsx("span",{className:"ri-group-title",children:e})]}),i&&u.jsx("div",{className:"ri-group-body",children:n})]})}function Er({label:e,children:t}){return u.jsxs("div",{className:"ri-field",children:[u.jsx("label",{className:"ri-field-label",children:e}),u.jsx("div",{className:"ri-field-control",children:t})]})}function xU({value:e,onChange:t,readOnly:n}){const[i,r]=C.useState(!1);return u.jsxs("div",{className:"ri-icon-picker",children:[u.jsxs("button",{className:"ri-icon-picker-trigger",onClick:()=>!n&&r(o=>!o),disabled:n,children:[u.jsx("img",{src:Fu(e),alt:"",className:"ri-icon-picker-current"}),u.jsx("span",{className:"ri-icon-picker-label",children:e??"generic"})]}),i&&u.jsxs("div",{className:"ri-icon-picker-popover",children:[u.jsx("button",{className:`ri-icon-option${e===null?" is-active":""}`,onClick:()=>{t(null),r(!1)},title:"Default icon",children:u.jsx("img",{src:du.generic,alt:""})}),mU.filter(o=>o!=="generic").map(o=>u.jsx("button",{className:`ri-icon-option${e===o?" is-active":""}`,onClick:()=>{t(o),r(!1)},title:o,children:u.jsx("img",{src:du[o],alt:o})},o))]})]})}function vU({allIds:e,labelFor:t,selected:n,onToggle:i,readOnly:r}){const[o,a]=C.useState(!1),c=e.filter(d=>!n.has(d));return u.jsxs("div",{className:"ri-multiselect",children:[u.jsxs("div",{className:"ri-chips",children:[Array.from(n).map(d=>u.jsxs("span",{className:"ri-chip",children:[t(d),!r&&u.jsx("button",{className:"ri-chip-x",onClick:()=>i(d),title:"Remove",children:"×"})]},d)),!r&&c.length>0&&u.jsx("button",{className:"ri-chip-add",onClick:()=>a(d=>!d),children:"+ Add"}),n.size===0&&r&&u.jsx("span",{className:"ri-meta-value",children:"(none)"})]}),o&&!r&&u.jsx("div",{className:"ri-multiselect-popover",children:c.map(d=>u.jsx("button",{className:"ri-multiselect-option",onClick:()=>{i(d),a(!1)},children:t(d)},d))})]})}function bU({tools:e,onToggle:t,readOnly:n}){return u.jsx("div",{className:"ri-toolcheck",children:pU.map(i=>u.jsxs("fieldset",{className:"ri-toolcheck-group",children:[u.jsx("legend",{className:"ri-toolcheck-legend",children:i.label}),u.jsx("div",{className:"ri-toolcheck-items",children:i.tools.map(r=>u.jsxs("label",{className:"ri-toolcheck-item",children:[u.jsx("input",{type:"checkbox",checked:e.has(r),onChange:()=>t(r),disabled:n}),u.jsx("span",{className:"ri-toolcheck-name",children:r.replace(i.prefix,"")||r})]},r))})]},i.prefix))})}function bo(e,t){return typeof e=="function"?e(t):e}function gr(e,t){return n=>{t.setState(i=>({...i,[e]:bo(n,i[e])}))}}function Zm(e){return e instanceof Function}function _U(e){return Array.isArray(e)&&e.every(t=>typeof t=="number")}function kU(e,t){const n=[],i=r=>{r.forEach(o=>{n.push(o);const a=t(o);a!=null&&a.length&&i(a)})};return i(e),n}function vt(e,t,n){let i=[],r;return o=>{let a;n.key&&n.debug&&(a=Date.now());const c=e(o);if(!(c.length!==i.length||c.some((h,p)=>i[p]!==h)))return r;i=c;let m;if(n.key&&n.debug&&(m=Date.now()),r=t(...c),n==null||n.onChange==null||n.onChange(r),n.key&&n.debug&&n!=null&&n.debug()){const h=Math.round((Date.now()-a)*100)/100,p=Math.round((Date.now()-m)*100)/100,g=p/16,x=(v,_)=>{for(v=String(v);v.length<_;)v=" "+v;return v};console.info(`%c⏱ ${x(p,5)} /${x(h,5)} ms`,` - font-size: .6rem; - font-weight: bold; - color: hsl(${Math.max(0,Math.min(120-120*g,120))}deg 100% 31%);`,n?.key)}return r}}function bt(e,t,n,i){return{debug:()=>{var r;return(r=e?.debugAll)!=null?r:e[t]},key:!1,onChange:i}}function SU(e,t,n,i){const r=()=>{var a;return(a=o.getValue())!=null?a:e.options.renderFallbackValue},o={id:`${t.id}_${n.id}`,row:t,column:n,getValue:()=>t.getValue(i),renderValue:r,getContext:vt(()=>[e,n,t,o],(a,c,d,m)=>({table:a,column:c,row:d,cell:m,getValue:m.getValue,renderValue:m.renderValue}),bt(e.options,"debugCells"))};return e._features.forEach(a=>{a.createCell==null||a.createCell(o,n,t,e)},{}),o}function wU(e,t,n,i){var r,o;const c={...e._getDefaultColumnDef(),...t},d=c.accessorKey;let m=(r=(o=c.id)!=null?o:d?typeof String.prototype.replaceAll=="function"?d.replaceAll(".","_"):d.replace(/\./g,"_"):void 0)!=null?r:typeof c.header=="string"?c.header:void 0,h;if(c.accessorFn?h=c.accessorFn:d&&(d.includes(".")?h=g=>{let x=g;for(const _ of d.split(".")){var v;x=(v=x)==null?void 0:v[_]}return x}:h=g=>g[c.accessorKey]),!m)throw new Error;let p={id:`${String(m)}`,accessorFn:h,parent:i,depth:n,columnDef:c,columns:[],getFlatColumns:vt(()=>[!0],()=>{var g;return[p,...(g=p.columns)==null?void 0:g.flatMap(x=>x.getFlatColumns())]},bt(e.options,"debugColumns")),getLeafColumns:vt(()=>[e._getOrderColumnsFn()],g=>{var x;if((x=p.columns)!=null&&x.length){let v=p.columns.flatMap(_=>_.getLeafColumns());return g(v)}return[p]},bt(e.options,"debugColumns"))};for(const g of e._features)g.createColumn==null||g.createColumn(p,e);return p}const Oi="debugHeaders";function DC(e,t,n){var i;let o={id:(i=n.id)!=null?i:t.id,column:t,index:n.index,isPlaceholder:!!n.isPlaceholder,placeholderId:n.placeholderId,depth:n.depth,subHeaders:[],colSpan:0,rowSpan:0,headerGroup:null,getLeafHeaders:()=>{const a=[],c=d=>{d.subHeaders&&d.subHeaders.length&&d.subHeaders.map(c),a.push(d)};return c(o),a},getContext:()=>({table:e,header:o,column:t})};return e._features.forEach(a=>{a.createHeader==null||a.createHeader(o,e)}),o}const CU={createTable:e=>{e.getHeaderGroups=vt(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,i,r)=>{var o,a;const c=(o=i?.map(p=>n.find(g=>g.id===p)).filter(Boolean))!=null?o:[],d=(a=r?.map(p=>n.find(g=>g.id===p)).filter(Boolean))!=null?a:[],m=n.filter(p=>!(i!=null&&i.includes(p.id))&&!(r!=null&&r.includes(p.id)));return gf(t,[...c,...m,...d],e)},bt(e.options,Oi)),e.getCenterHeaderGroups=vt(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,i,r)=>(n=n.filter(o=>!(i!=null&&i.includes(o.id))&&!(r!=null&&r.includes(o.id))),gf(t,n,e,"center")),bt(e.options,Oi)),e.getLeftHeaderGroups=vt(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left],(t,n,i)=>{var r;const o=(r=i?.map(a=>n.find(c=>c.id===a)).filter(Boolean))!=null?r:[];return gf(t,o,e,"left")},bt(e.options,Oi)),e.getRightHeaderGroups=vt(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.right],(t,n,i)=>{var r;const o=(r=i?.map(a=>n.find(c=>c.id===a)).filter(Boolean))!=null?r:[];return gf(t,o,e,"right")},bt(e.options,Oi)),e.getFooterGroups=vt(()=>[e.getHeaderGroups()],t=>[...t].reverse(),bt(e.options,Oi)),e.getLeftFooterGroups=vt(()=>[e.getLeftHeaderGroups()],t=>[...t].reverse(),bt(e.options,Oi)),e.getCenterFooterGroups=vt(()=>[e.getCenterHeaderGroups()],t=>[...t].reverse(),bt(e.options,Oi)),e.getRightFooterGroups=vt(()=>[e.getRightHeaderGroups()],t=>[...t].reverse(),bt(e.options,Oi)),e.getFlatHeaders=vt(()=>[e.getHeaderGroups()],t=>t.map(n=>n.headers).flat(),bt(e.options,Oi)),e.getLeftFlatHeaders=vt(()=>[e.getLeftHeaderGroups()],t=>t.map(n=>n.headers).flat(),bt(e.options,Oi)),e.getCenterFlatHeaders=vt(()=>[e.getCenterHeaderGroups()],t=>t.map(n=>n.headers).flat(),bt(e.options,Oi)),e.getRightFlatHeaders=vt(()=>[e.getRightHeaderGroups()],t=>t.map(n=>n.headers).flat(),bt(e.options,Oi)),e.getCenterLeafHeaders=vt(()=>[e.getCenterFlatHeaders()],t=>t.filter(n=>{var i;return!((i=n.subHeaders)!=null&&i.length)}),bt(e.options,Oi)),e.getLeftLeafHeaders=vt(()=>[e.getLeftFlatHeaders()],t=>t.filter(n=>{var i;return!((i=n.subHeaders)!=null&&i.length)}),bt(e.options,Oi)),e.getRightLeafHeaders=vt(()=>[e.getRightFlatHeaders()],t=>t.filter(n=>{var i;return!((i=n.subHeaders)!=null&&i.length)}),bt(e.options,Oi)),e.getLeafHeaders=vt(()=>[e.getLeftHeaderGroups(),e.getCenterHeaderGroups(),e.getRightHeaderGroups()],(t,n,i)=>{var r,o,a,c,d,m;return[...(r=(o=t[0])==null?void 0:o.headers)!=null?r:[],...(a=(c=n[0])==null?void 0:c.headers)!=null?a:[],...(d=(m=i[0])==null?void 0:m.headers)!=null?d:[]].map(h=>h.getLeafHeaders()).flat()},bt(e.options,Oi))}};function gf(e,t,n,i){var r,o;let a=0;const c=function(g,x){x===void 0&&(x=1),a=Math.max(a,x),g.filter(v=>v.getIsVisible()).forEach(v=>{var _;(_=v.columns)!=null&&_.length&&c(v.columns,x+1)},0)};c(e);let d=[];const m=(g,x)=>{const v={depth:x,id:[i,`${x}`].filter(Boolean).join("_"),headers:[]},_=[];g.forEach(k=>{const w=[..._].reverse()[0],S=k.column.depth===v.depth;let j,N=!1;if(S&&k.column.parent?j=k.column.parent:(j=k.column,N=!0),w&&w?.column===j)w.subHeaders.push(k);else{const O=DC(n,j,{id:[i,x,j.id,k?.id].filter(Boolean).join("_"),isPlaceholder:N,placeholderId:N?`${_.filter(R=>R.column===j).length}`:void 0,depth:x,index:_.length});O.subHeaders.push(k),_.push(O)}v.headers.push(k),k.headerGroup=v}),d.push(v),x>0&&m(_,x-1)},h=t.map((g,x)=>DC(n,g,{depth:a,index:x}));m(h,a-1),d.reverse();const p=g=>g.filter(v=>v.column.getIsVisible()).map(v=>{let _=0,k=0,w=[0];v.subHeaders&&v.subHeaders.length?(w=[],p(v.subHeaders).forEach(j=>{let{colSpan:N,rowSpan:O}=j;_+=N,w.push(O)})):_=1;const S=Math.min(...w);return k=k+S,v.colSpan=_,v.rowSpan=k,{colSpan:_,rowSpan:k}});return p((r=(o=d[0])==null?void 0:o.headers)!=null?r:[]),d}const jU=(e,t,n,i,r,o,a)=>{let c={id:t,index:i,original:n,depth:r,parentId:a,_valuesCache:{},_uniqueValuesCache:{},getValue:d=>{if(c._valuesCache.hasOwnProperty(d))return c._valuesCache[d];const m=e.getColumn(d);if(m!=null&&m.accessorFn)return c._valuesCache[d]=m.accessorFn(c.original,i),c._valuesCache[d]},getUniqueValues:d=>{if(c._uniqueValuesCache.hasOwnProperty(d))return c._uniqueValuesCache[d];const m=e.getColumn(d);if(m!=null&&m.accessorFn)return m.columnDef.getUniqueValues?(c._uniqueValuesCache[d]=m.columnDef.getUniqueValues(c.original,i),c._uniqueValuesCache[d]):(c._uniqueValuesCache[d]=[c.getValue(d)],c._uniqueValuesCache[d])},renderValue:d=>{var m;return(m=c.getValue(d))!=null?m:e.options.renderFallbackValue},subRows:[],getLeafRows:()=>kU(c.subRows,d=>d.subRows),getParentRow:()=>c.parentId?e.getRow(c.parentId,!0):void 0,getParentRows:()=>{let d=[],m=c;for(;;){const h=m.getParentRow();if(!h)break;d.push(h),m=h}return d.reverse()},getAllCells:vt(()=>[e.getAllLeafColumns()],d=>d.map(m=>SU(e,c,m,m.id)),bt(e.options,"debugRows")),_getAllCellsByColumnId:vt(()=>[c.getAllCells()],d=>d.reduce((m,h)=>(m[h.column.id]=h,m),{}),bt(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()}}},JI=(e,t,n)=>{var i,r;const o=n==null||(i=n.toString())==null?void 0:i.toLowerCase();return!!(!((r=e.getValue(t))==null||(r=r.toString())==null||(r=r.toLowerCase())==null)&&r.includes(o))};JI.autoRemove=e=>Ur(e);const eT=(e,t,n)=>{var i;return!!(!((i=e.getValue(t))==null||(i=i.toString())==null)&&i.includes(n))};eT.autoRemove=e=>Ur(e);const tT=(e,t,n)=>{var i;return((i=e.getValue(t))==null||(i=i.toString())==null?void 0:i.toLowerCase())===n?.toLowerCase()};tT.autoRemove=e=>Ur(e);const nT=(e,t,n)=>{var i;return(i=e.getValue(t))==null?void 0:i.includes(n)};nT.autoRemove=e=>Ur(e);const iT=(e,t,n)=>!n.some(i=>{var r;return!((r=e.getValue(t))!=null&&r.includes(i))});iT.autoRemove=e=>Ur(e)||!(e!=null&&e.length);const rT=(e,t,n)=>n.some(i=>{var r;return(r=e.getValue(t))==null?void 0:r.includes(i)});rT.autoRemove=e=>Ur(e)||!(e!=null&&e.length);const sT=(e,t,n)=>e.getValue(t)===n;sT.autoRemove=e=>Ur(e);const oT=(e,t,n)=>e.getValue(t)==n;oT.autoRemove=e=>Ur(e);const A0=(e,t,n)=>{let[i,r]=n;const o=e.getValue(t);return o>=i&&o<=r};A0.resolveFilterValue=e=>{let[t,n]=e,i=typeof t!="number"?parseFloat(t):t,r=typeof n!="number"?parseFloat(n):n,o=t===null||Number.isNaN(i)?-1/0:i,a=n===null||Number.isNaN(r)?1/0:r;if(o>a){const c=o;o=a,a=c}return[o,a]};A0.autoRemove=e=>Ur(e)||Ur(e[0])&&Ur(e[1]);const Rs={includesString:JI,includesStringSensitive:eT,equalsString:tT,arrIncludes:nT,arrIncludesAll:iT,arrIncludesSome:rT,equals:sT,weakEquals:oT,inNumberRange:A0};function Ur(e){return e==null||e===""}const NU={getDefaultColumnDef:()=>({filterFn:"auto"}),getInitialState:e=>({columnFilters:[],...e}),getDefaultOptions:e=>({onColumnFiltersChange:gr("columnFilters",e),filterFromLeafRows:!1,maxLeafRowFilterDepth:100}),createColumn:(e,t)=>{e.getAutoFilterFn=()=>{const n=t.getCoreRowModel().flatRows[0],i=n?.getValue(e.id);return typeof i=="string"?Rs.includesString:typeof i=="number"?Rs.inNumberRange:typeof i=="boolean"||i!==null&&typeof i=="object"?Rs.equals:Array.isArray(i)?Rs.arrIncludes:Rs.weakEquals},e.getFilterFn=()=>{var n,i;return Zm(e.columnDef.filterFn)?e.columnDef.filterFn:e.columnDef.filterFn==="auto"?e.getAutoFilterFn():(n=(i=t.options.filterFns)==null?void 0:i[e.columnDef.filterFn])!=null?n:Rs[e.columnDef.filterFn]},e.getCanFilter=()=>{var n,i,r;return((n=e.columnDef.enableColumnFilter)!=null?n:!0)&&((i=t.options.enableColumnFilters)!=null?i:!0)&&((r=t.options.enableFilters)!=null?r:!0)&&!!e.accessorFn},e.getIsFiltered=()=>e.getFilterIndex()>-1,e.getFilterValue=()=>{var n;return(n=t.getState().columnFilters)==null||(n=n.find(i=>i.id===e.id))==null?void 0:n.value},e.getFilterIndex=()=>{var n,i;return(n=(i=t.getState().columnFilters)==null?void 0:i.findIndex(r=>r.id===e.id))!=null?n:-1},e.setFilterValue=n=>{t.setColumnFilters(i=>{const r=e.getFilterFn(),o=i?.find(h=>h.id===e.id),a=bo(n,o?o.value:void 0);if(OC(r,a,e)){var c;return(c=i?.filter(h=>h.id!==e.id))!=null?c:[]}const d={id:e.id,value:a};if(o){var m;return(m=i?.map(h=>h.id===e.id?d:h))!=null?m:[]}return i!=null&&i.length?[...i,d]:[d]})}},createRow:(e,t)=>{e.columnFilters={},e.columnFiltersMeta={}},createTable:e=>{e.setColumnFilters=t=>{const n=e.getAllLeafColumns(),i=r=>{var o;return(o=bo(t,r))==null?void 0:o.filter(a=>{const c=n.find(d=>d.id===a.id);if(c){const d=c.getFilterFn();if(OC(d,a.value,c))return!1}return!0})};e.options.onColumnFiltersChange==null||e.options.onColumnFiltersChange(i)},e.resetColumnFilters=t=>{var n,i;e.setColumnFilters(t?[]:(n=(i=e.initialState)==null?void 0:i.columnFilters)!=null?n:[])},e.getPreFilteredRowModel=()=>e.getCoreRowModel(),e.getFilteredRowModel=()=>(!e._getFilteredRowModel&&e.options.getFilteredRowModel&&(e._getFilteredRowModel=e.options.getFilteredRowModel(e)),e.options.manualFiltering||!e._getFilteredRowModel?e.getPreFilteredRowModel():e._getFilteredRowModel())}};function OC(e,t,n){return(e&&e.autoRemove?e.autoRemove(t,n):!1)||typeof t>"u"||typeof t=="string"&&!t}const IU=(e,t,n)=>n.reduce((i,r)=>{const o=r.getValue(e);return i+(typeof o=="number"?o:0)},0),TU=(e,t,n)=>{let i;return n.forEach(r=>{const o=r.getValue(e);o!=null&&(i>o||i===void 0&&o>=o)&&(i=o)}),i},RU=(e,t,n)=>{let i;return n.forEach(r=>{const o=r.getValue(e);o!=null&&(i=o)&&(i=o)}),i},AU=(e,t,n)=>{let i,r;return n.forEach(o=>{const a=o.getValue(e);a!=null&&(i===void 0?a>=a&&(i=r=a):(i>a&&(i=a),r{let n=0,i=0;if(t.forEach(r=>{let o=r.getValue(e);o!=null&&(o=+o)>=o&&(++n,i+=o)}),n)return i/n},DU=(e,t)=>{if(!t.length)return;const n=t.map(o=>o.getValue(e));if(!_U(n))return;if(n.length===1)return n[0];const i=Math.floor(n.length/2),r=n.sort((o,a)=>o-a);return n.length%2!==0?r[i]:(r[i-1]+r[i])/2},OU=(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,zU=(e,t)=>t.length,vy={sum:IU,min:TU,max:RU,extent:AU,mean:MU,median:DU,unique:OU,uniqueCount:LU,count:zU},PU={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:gr("grouping",e),groupedColumnMode:"reorder"}),createColumn:(e,t)=>{e.toggleGrouping=()=>{t.setGrouping(n=>n!=null&&n.includes(e.id)?n.filter(i=>i!==e.id):[...n??[],e.id])},e.getCanGroup=()=>{var n,i;return((n=e.columnDef.enableGrouping)!=null?n:!0)&&((i=t.options.enableGrouping)!=null?i:!0)&&(!!e.accessorFn||!!e.columnDef.getGroupingValue)},e.getIsGrouped=()=>{var n;return(n=t.getState().grouping)==null?void 0:n.includes(e.id)},e.getGroupedIndex=()=>{var n;return(n=t.getState().grouping)==null?void 0:n.indexOf(e.id)},e.getToggleGroupingHandler=()=>{const n=e.getCanGroup();return()=>{n&&e.toggleGrouping()}},e.getAutoAggregationFn=()=>{const n=t.getCoreRowModel().flatRows[0],i=n?.getValue(e.id);if(typeof i=="number")return vy.sum;if(Object.prototype.toString.call(i)==="[object Date]")return vy.extent},e.getAggregationFn=()=>{var n,i;if(!e)throw new Error;return Zm(e.columnDef.aggregationFn)?e.columnDef.aggregationFn:e.columnDef.aggregationFn==="auto"?e.getAutoAggregationFn():(n=(i=t.options.aggregationFns)==null?void 0:i[e.columnDef.aggregationFn])!=null?n:vy[e.columnDef.aggregationFn]}},createTable:e=>{e.setGrouping=t=>e.options.onGroupingChange==null?void 0:e.options.onGroupingChange(t),e.resetGrouping=t=>{var n,i;e.setGrouping(t?[]:(n=(i=e.initialState)==null?void 0:i.grouping)!=null?n:[])},e.getPreGroupedRowModel=()=>e.getFilteredRowModel(),e.getGroupedRowModel=()=>(!e._getGroupedRowModel&&e.options.getGroupedRowModel&&(e._getGroupedRowModel=e.options.getGroupedRowModel(e)),e.options.manualGrouping||!e._getGroupedRowModel?e.getPreGroupedRowModel():e._getGroupedRowModel())},createRow:(e,t)=>{e.getIsGrouped=()=>!!e.groupingColumnId,e.getGroupingValue=n=>{if(e._groupingValuesCache.hasOwnProperty(n))return e._groupingValuesCache[n];const i=t.getColumn(n);return i!=null&&i.columnDef.getGroupingValue?(e._groupingValuesCache[n]=i.columnDef.getGroupingValue(e.original),e._groupingValuesCache[n]):e.getValue(n)},e._groupingValuesCache={}},createCell:(e,t,n,i)=>{e.getIsGrouped=()=>t.getIsGrouped()&&t.id===n.groupingColumnId,e.getIsPlaceholder=()=>!e.getIsGrouped()&&t.getIsGrouped(),e.getIsAggregated=()=>{var r;return!e.getIsGrouped()&&!e.getIsPlaceholder()&&!!((r=n.subRows)!=null&&r.length)}}};function BU(e,t,n){if(!(t!=null&&t.length)||!n)return e;const i=e.filter(o=>!t.includes(o.id));return n==="remove"?i:[...t.map(o=>e.find(a=>a.id===o)).filter(Boolean),...i]}const $U={getInitialState:e=>({columnOrder:[],...e}),getDefaultOptions:e=>({onColumnOrderChange:gr("columnOrder",e)}),createColumn:(e,t)=>{e.getIndex=vt(n=>[fu(t,n)],n=>n.findIndex(i=>i.id===e.id),bt(t.options,"debugColumns")),e.getIsFirstColumn=n=>{var i;return((i=fu(t,n)[0])==null?void 0:i.id)===e.id},e.getIsLastColumn=n=>{var i;const r=fu(t,n);return((i=r[r.length-1])==null?void 0:i.id)===e.id}},createTable:e=>{e.setColumnOrder=t=>e.options.onColumnOrderChange==null?void 0:e.options.onColumnOrderChange(t),e.resetColumnOrder=t=>{var n;e.setColumnOrder(t?[]:(n=e.initialState.columnOrder)!=null?n:[])},e._getOrderColumnsFn=vt(()=>[e.getState().columnOrder,e.getState().grouping,e.options.groupedColumnMode],(t,n,i)=>r=>{let o=[];if(!(t!=null&&t.length))o=r;else{const a=[...t],c=[...r];for(;c.length&&a.length;){const d=a.shift(),m=c.findIndex(h=>h.id===d);m>-1&&o.push(c.splice(m,1)[0])}o=[...o,...c]}return BU(o,n,i)},bt(e.options,"debugTable"))}},by=()=>({left:[],right:[]}),HU={getInitialState:e=>({columnPinning:by(),...e}),getDefaultOptions:e=>({onColumnPinningChange:gr("columnPinning",e)}),createColumn:(e,t)=>{e.pin=n=>{const i=e.getLeafColumns().map(r=>r.id).filter(Boolean);t.setColumnPinning(r=>{var o,a;if(n==="right"){var c,d;return{left:((c=r?.left)!=null?c:[]).filter(p=>!(i!=null&&i.includes(p))),right:[...((d=r?.right)!=null?d:[]).filter(p=>!(i!=null&&i.includes(p))),...i]}}if(n==="left"){var m,h;return{left:[...((m=r?.left)!=null?m:[]).filter(p=>!(i!=null&&i.includes(p))),...i],right:((h=r?.right)!=null?h:[]).filter(p=>!(i!=null&&i.includes(p)))}}return{left:((o=r?.left)!=null?o:[]).filter(p=>!(i!=null&&i.includes(p))),right:((a=r?.right)!=null?a:[]).filter(p=>!(i!=null&&i.includes(p)))}})},e.getCanPin=()=>e.getLeafColumns().some(i=>{var r,o,a;return((r=i.columnDef.enablePinning)!=null?r:!0)&&((o=(a=t.options.enableColumnPinning)!=null?a:t.options.enablePinning)!=null?o:!0)}),e.getIsPinned=()=>{const n=e.getLeafColumns().map(c=>c.id),{left:i,right:r}=t.getState().columnPinning,o=n.some(c=>i?.includes(c)),a=n.some(c=>r?.includes(c));return o?"left":a?"right":!1},e.getPinnedIndex=()=>{var n,i;const r=e.getIsPinned();return r?(n=(i=t.getState().columnPinning)==null||(i=i[r])==null?void 0:i.indexOf(e.id))!=null?n:-1:0}},createRow:(e,t)=>{e.getCenterVisibleCells=vt(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,t.getState().columnPinning.right],(n,i,r)=>{const o=[...i??[],...r??[]];return n.filter(a=>!o.includes(a.column.id))},bt(t.options,"debugRows")),e.getLeftVisibleCells=vt(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left],(n,i)=>(i??[]).map(o=>n.find(a=>a.column.id===o)).filter(Boolean).map(o=>({...o,position:"left"})),bt(t.options,"debugRows")),e.getRightVisibleCells=vt(()=>[e._getAllVisibleCells(),t.getState().columnPinning.right],(n,i)=>(i??[]).map(o=>n.find(a=>a.column.id===o)).filter(Boolean).map(o=>({...o,position:"right"})),bt(t.options,"debugRows"))},createTable:e=>{e.setColumnPinning=t=>e.options.onColumnPinningChange==null?void 0:e.options.onColumnPinningChange(t),e.resetColumnPinning=t=>{var n,i;return e.setColumnPinning(t?by():(n=(i=e.initialState)==null?void 0:i.columnPinning)!=null?n:by())},e.getIsSomeColumnsPinned=t=>{var n;const i=e.getState().columnPinning;if(!t){var r,o;return!!((r=i.left)!=null&&r.length||(o=i.right)!=null&&o.length)}return!!((n=i[t])!=null&&n.length)},e.getLeftLeafColumns=vt(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left],(t,n)=>(n??[]).map(i=>t.find(r=>r.id===i)).filter(Boolean),bt(e.options,"debugColumns")),e.getRightLeafColumns=vt(()=>[e.getAllLeafColumns(),e.getState().columnPinning.right],(t,n)=>(n??[]).map(i=>t.find(r=>r.id===i)).filter(Boolean),bt(e.options,"debugColumns")),e.getCenterLeafColumns=vt(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,i)=>{const r=[...n??[],...i??[]];return t.filter(o=>!r.includes(o.id))},bt(e.options,"debugColumns"))}};function FU(e){return e||(typeof document<"u"?document:null)}const yf={size:150,minSize:20,maxSize:Number.MAX_SAFE_INTEGER},_y=()=>({startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}),VU={getDefaultColumnDef:()=>yf,getInitialState:e=>({columnSizing:{},columnSizingInfo:_y(),...e}),getDefaultOptions:e=>({columnResizeMode:"onEnd",columnResizeDirection:"ltr",onColumnSizingChange:gr("columnSizing",e),onColumnSizingInfoChange:gr("columnSizingInfo",e)}),createColumn:(e,t)=>{e.getSize=()=>{var n,i,r;const o=t.getState().columnSizing[e.id];return Math.min(Math.max((n=e.columnDef.minSize)!=null?n:yf.minSize,(i=o??e.columnDef.size)!=null?i:yf.size),(r=e.columnDef.maxSize)!=null?r:yf.maxSize)},e.getStart=vt(n=>[n,fu(t,n),t.getState().columnSizing],(n,i)=>i.slice(0,e.getIndex(n)).reduce((r,o)=>r+o.getSize(),0),bt(t.options,"debugColumns")),e.getAfter=vt(n=>[n,fu(t,n),t.getState().columnSizing],(n,i)=>i.slice(e.getIndex(n)+1).reduce((r,o)=>r+o.getSize(),0),bt(t.options,"debugColumns")),e.resetSize=()=>{t.setColumnSizing(n=>{let{[e.id]:i,...r}=n;return r})},e.getCanResize=()=>{var n,i;return((n=e.columnDef.enableResizing)!=null?n:!0)&&((i=t.options.enableColumnResizing)!=null?i:!0)},e.getIsResizing=()=>t.getState().columnSizingInfo.isResizingColumn===e.id},createHeader:(e,t)=>{e.getSize=()=>{let n=0;const i=r=>{if(r.subHeaders.length)r.subHeaders.forEach(i);else{var o;n+=(o=r.column.getSize())!=null?o:0}};return i(e),n},e.getStart=()=>{if(e.index>0){const n=e.headerGroup.headers[e.index-1];return n.getStart()+n.getSize()}return 0},e.getResizeHandler=n=>{const i=t.getColumn(e.column.id),r=i?.getCanResize();return o=>{if(!i||!r||(o.persist==null||o.persist(),ky(o)&&o.touches&&o.touches.length>1))return;const a=e.getSize(),c=e?e.getLeafHeaders().map(w=>[w.column.id,w.column.getSize()]):[[i.id,i.getSize()]],d=ky(o)?Math.round(o.touches[0].clientX):o.clientX,m={},h=(w,S)=>{typeof S=="number"&&(t.setColumnSizingInfo(j=>{var N,O;const R=t.options.columnResizeDirection==="rtl"?-1:1,D=(S-((N=j?.startOffset)!=null?N:0))*R,I=Math.max(D/((O=j?.startSize)!=null?O:0),-.999999);return j.columnSizingStart.forEach(L=>{let[M,A]=L;m[M]=Math.round(Math.max(A+A*I,0)*100)/100}),{...j,deltaOffset:D,deltaPercentage:I}}),(t.options.columnResizeMode==="onChange"||w==="end")&&t.setColumnSizing(j=>({...j,...m})))},p=w=>h("move",w),g=w=>{h("end",w),t.setColumnSizingInfo(S=>({...S,isResizingColumn:!1,startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,columnSizingStart:[]}))},x=FU(n),v={moveHandler:w=>p(w.clientX),upHandler:w=>{x?.removeEventListener("mousemove",v.moveHandler),x?.removeEventListener("mouseup",v.upHandler),g(w.clientX)}},_={moveHandler:w=>(w.cancelable&&(w.preventDefault(),w.stopPropagation()),p(w.touches[0].clientX),!1),upHandler:w=>{var S;x?.removeEventListener("touchmove",_.moveHandler),x?.removeEventListener("touchend",_.upHandler),w.cancelable&&(w.preventDefault(),w.stopPropagation()),g((S=w.touches[0])==null?void 0:S.clientX)}},k=UU()?{passive:!1}:!1;ky(o)?(x?.addEventListener("touchmove",_.moveHandler,k),x?.addEventListener("touchend",_.upHandler,k)):(x?.addEventListener("mousemove",v.moveHandler,k),x?.addEventListener("mouseup",v.upHandler,k)),t.setColumnSizingInfo(w=>({...w,startOffset:d,startSize:a,deltaOffset:0,deltaPercentage:0,columnSizingStart:c,isResizingColumn:i.id}))}}},createTable:e=>{e.setColumnSizing=t=>e.options.onColumnSizingChange==null?void 0:e.options.onColumnSizingChange(t),e.setColumnSizingInfo=t=>e.options.onColumnSizingInfoChange==null?void 0:e.options.onColumnSizingInfoChange(t),e.resetColumnSizing=t=>{var n;e.setColumnSizing(t?{}:(n=e.initialState.columnSizing)!=null?n:{})},e.resetHeaderSizeInfo=t=>{var n;e.setColumnSizingInfo(t?_y():(n=e.initialState.columnSizingInfo)!=null?n:_y())},e.getTotalSize=()=>{var t,n;return(t=(n=e.getHeaderGroups()[0])==null?void 0:n.headers.reduce((i,r)=>i+r.getSize(),0))!=null?t:0},e.getLeftTotalSize=()=>{var t,n;return(t=(n=e.getLeftHeaderGroups()[0])==null?void 0:n.headers.reduce((i,r)=>i+r.getSize(),0))!=null?t:0},e.getCenterTotalSize=()=>{var t,n;return(t=(n=e.getCenterHeaderGroups()[0])==null?void 0:n.headers.reduce((i,r)=>i+r.getSize(),0))!=null?t:0},e.getRightTotalSize=()=>{var t,n;return(t=(n=e.getRightHeaderGroups()[0])==null?void 0:n.headers.reduce((i,r)=>i+r.getSize(),0))!=null?t:0}}};let xf=null;function UU(){if(typeof xf=="boolean")return xf;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 xf=e,xf}function ky(e){return e.type==="touchstart"}const GU={getInitialState:e=>({columnVisibility:{},...e}),getDefaultOptions:e=>({onColumnVisibilityChange:gr("columnVisibility",e)}),createColumn:(e,t)=>{e.toggleVisibility=n=>{e.getCanHide()&&t.setColumnVisibility(i=>({...i,[e.id]:n??!e.getIsVisible()}))},e.getIsVisible=()=>{var n,i;const r=e.columns;return(n=r.length?r.some(o=>o.getIsVisible()):(i=t.getState().columnVisibility)==null?void 0:i[e.id])!=null?n:!0},e.getCanHide=()=>{var n,i;return((n=e.columnDef.enableHiding)!=null?n:!0)&&((i=t.options.enableHiding)!=null?i:!0)},e.getToggleVisibilityHandler=()=>n=>{e.toggleVisibility==null||e.toggleVisibility(n.target.checked)}},createRow:(e,t)=>{e._getAllVisibleCells=vt(()=>[e.getAllCells(),t.getState().columnVisibility],n=>n.filter(i=>i.column.getIsVisible()),bt(t.options,"debugRows")),e.getVisibleCells=vt(()=>[e.getLeftVisibleCells(),e.getCenterVisibleCells(),e.getRightVisibleCells()],(n,i,r)=>[...n,...i,...r],bt(t.options,"debugRows"))},createTable:e=>{const t=(n,i)=>vt(()=>[i(),i().filter(r=>r.getIsVisible()).map(r=>r.id).join("_")],r=>r.filter(o=>o.getIsVisible==null?void 0:o.getIsVisible()),bt(e.options,"debugColumns"));e.getVisibleFlatColumns=t("getVisibleFlatColumns",()=>e.getAllFlatColumns()),e.getVisibleLeafColumns=t("getVisibleLeafColumns",()=>e.getAllLeafColumns()),e.getLeftVisibleLeafColumns=t("getLeftVisibleLeafColumns",()=>e.getLeftLeafColumns()),e.getRightVisibleLeafColumns=t("getRightVisibleLeafColumns",()=>e.getRightLeafColumns()),e.getCenterVisibleLeafColumns=t("getCenterVisibleLeafColumns",()=>e.getCenterLeafColumns()),e.setColumnVisibility=n=>e.options.onColumnVisibilityChange==null?void 0:e.options.onColumnVisibilityChange(n),e.resetColumnVisibility=n=>{var i;e.setColumnVisibility(n?{}:(i=e.initialState.columnVisibility)!=null?i:{})},e.toggleAllColumnsVisible=n=>{var i;n=(i=n)!=null?i:!e.getIsAllColumnsVisible(),e.setColumnVisibility(e.getAllLeafColumns().reduce((r,o)=>({...r,[o.id]:n||!(o.getCanHide!=null&&o.getCanHide())}),{}))},e.getIsAllColumnsVisible=()=>!e.getAllLeafColumns().some(n=>!(n.getIsVisible!=null&&n.getIsVisible())),e.getIsSomeColumnsVisible=()=>e.getAllLeafColumns().some(n=>n.getIsVisible==null?void 0:n.getIsVisible()),e.getToggleAllColumnsVisibilityHandler=()=>n=>{var i;e.toggleAllColumnsVisible((i=n.target)==null?void 0:i.checked)}}};function fu(e,t){return t?t==="center"?e.getCenterVisibleLeafColumns():t==="left"?e.getLeftVisibleLeafColumns():e.getRightVisibleLeafColumns():e.getVisibleLeafColumns()}const qU={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()}}},WU={getInitialState:e=>({globalFilter:void 0,...e}),getDefaultOptions:e=>({onGlobalFilterChange:gr("globalFilter",e),globalFilterFn:"auto",getColumnCanGlobalFilter:t=>{var n;const i=(n=e.getCoreRowModel().flatRows[0])==null||(n=n._getAllCellsByColumnId()[t.id])==null?void 0:n.getValue();return typeof i=="string"||typeof i=="number"}}),createColumn:(e,t)=>{e.getCanGlobalFilter=()=>{var n,i,r,o;return((n=e.columnDef.enableGlobalFilter)!=null?n:!0)&&((i=t.options.enableGlobalFilter)!=null?i:!0)&&((r=t.options.enableFilters)!=null?r:!0)&&((o=t.options.getColumnCanGlobalFilter==null?void 0:t.options.getColumnCanGlobalFilter(e))!=null?o:!0)&&!!e.accessorFn}},createTable:e=>{e.getGlobalAutoFilterFn=()=>Rs.includesString,e.getGlobalFilterFn=()=>{var t,n;const{globalFilterFn:i}=e.options;return Zm(i)?i:i==="auto"?e.getGlobalAutoFilterFn():(t=(n=e.options.filterFns)==null?void 0:n[i])!=null?t:Rs[i]},e.setGlobalFilter=t=>{e.options.onGlobalFilterChange==null||e.options.onGlobalFilterChange(t)},e.resetGlobalFilter=t=>{e.setGlobalFilter(t?void 0:e.initialState.globalFilter)}}},YU={getInitialState:e=>({expanded:{},...e}),getDefaultOptions:e=>({onExpandedChange:gr("expanded",e),paginateExpandedRows:!0}),createTable:e=>{let t=!1,n=!1;e._autoResetExpanded=()=>{var i,r;if(!t){e._queue(()=>{t=!0});return}if((i=(r=e.options.autoResetAll)!=null?r:e.options.autoResetExpanded)!=null?i:!e.options.manualExpanding){if(n)return;n=!0,e._queue(()=>{e.resetExpanded(),n=!1})}},e.setExpanded=i=>e.options.onExpandedChange==null?void 0:e.options.onExpandedChange(i),e.toggleAllRowsExpanded=i=>{i??!e.getIsAllRowsExpanded()?e.setExpanded(!0):e.setExpanded({})},e.resetExpanded=i=>{var r,o;e.setExpanded(i?{}:(r=(o=e.initialState)==null?void 0:o.expanded)!=null?r:{})},e.getCanSomeRowsExpand=()=>e.getPrePaginationRowModel().flatRows.some(i=>i.getCanExpand()),e.getToggleAllRowsExpandedHandler=()=>i=>{i.persist==null||i.persist(),e.toggleAllRowsExpanded()},e.getIsSomeRowsExpanded=()=>{const i=e.getState().expanded;return i===!0||Object.values(i).some(Boolean)},e.getIsAllRowsExpanded=()=>{const i=e.getState().expanded;return typeof i=="boolean"?i===!0:!(!Object.keys(i).length||e.getRowModel().flatRows.some(r=>!r.getIsExpanded()))},e.getExpandedDepth=()=>{let i=0;return(e.getState().expanded===!0?Object.keys(e.getRowModel().rowsById):Object.keys(e.getState().expanded)).forEach(o=>{const a=o.split(".");i=Math.max(i,a.length)}),i},e.getPreExpandedRowModel=()=>e.getSortedRowModel(),e.getExpandedRowModel=()=>(!e._getExpandedRowModel&&e.options.getExpandedRowModel&&(e._getExpandedRowModel=e.options.getExpandedRowModel(e)),e.options.manualExpanding||!e._getExpandedRowModel?e.getPreExpandedRowModel():e._getExpandedRowModel())},createRow:(e,t)=>{e.toggleExpanded=n=>{t.setExpanded(i=>{var r;const o=i===!0?!0:!!(i!=null&&i[e.id]);let a={};if(i===!0?Object.keys(t.getRowModel().rowsById).forEach(c=>{a[c]=!0}):a=i,n=(r=n)!=null?r:!o,!o&&n)return{...a,[e.id]:!0};if(o&&!n){const{[e.id]:c,...d}=a;return d}return i})},e.getIsExpanded=()=>{var n;const i=t.getState().expanded;return!!((n=t.options.getIsRowExpanded==null?void 0:t.options.getIsRowExpanded(e))!=null?n:i===!0||i?.[e.id])},e.getCanExpand=()=>{var n,i,r;return(n=t.options.getRowCanExpand==null?void 0:t.options.getRowCanExpand(e))!=null?n:((i=t.options.enableExpanding)!=null?i:!0)&&!!((r=e.subRows)!=null&&r.length)},e.getIsAllParentsExpanded=()=>{let n=!0,i=e;for(;n&&i.parentId;)i=t.getRow(i.parentId,!0),n=i.getIsExpanded();return n},e.getToggleExpandedHandler=()=>{const n=e.getCanExpand();return()=>{n&&e.toggleExpanded()}}}},hv=0,gv=10,Sy=()=>({pageIndex:hv,pageSize:gv}),XU={getInitialState:e=>({...e,pagination:{...Sy(),...e?.pagination}}),getDefaultOptions:e=>({onPaginationChange:gr("pagination",e)}),createTable:e=>{let t=!1,n=!1;e._autoResetPageIndex=()=>{var i,r;if(!t){e._queue(()=>{t=!0});return}if((i=(r=e.options.autoResetAll)!=null?r:e.options.autoResetPageIndex)!=null?i:!e.options.manualPagination){if(n)return;n=!0,e._queue(()=>{e.resetPageIndex(),n=!1})}},e.setPagination=i=>{const r=o=>bo(i,o);return e.options.onPaginationChange==null?void 0:e.options.onPaginationChange(r)},e.resetPagination=i=>{var r;e.setPagination(i?Sy():(r=e.initialState.pagination)!=null?r:Sy())},e.setPageIndex=i=>{e.setPagination(r=>{let o=bo(i,r.pageIndex);const a=typeof e.options.pageCount>"u"||e.options.pageCount===-1?Number.MAX_SAFE_INTEGER:e.options.pageCount-1;return o=Math.max(0,Math.min(o,a)),{...r,pageIndex:o}})},e.resetPageIndex=i=>{var r,o;e.setPageIndex(i?hv:(r=(o=e.initialState)==null||(o=o.pagination)==null?void 0:o.pageIndex)!=null?r:hv)},e.resetPageSize=i=>{var r,o;e.setPageSize(i?gv:(r=(o=e.initialState)==null||(o=o.pagination)==null?void 0:o.pageSize)!=null?r:gv)},e.setPageSize=i=>{e.setPagination(r=>{const o=Math.max(1,bo(i,r.pageSize)),a=r.pageSize*r.pageIndex,c=Math.floor(a/o);return{...r,pageIndex:c,pageSize:o}})},e.setPageCount=i=>e.setPagination(r=>{var o;let a=bo(i,(o=e.options.pageCount)!=null?o:-1);return typeof a=="number"&&(a=Math.max(-1,a)),{...r,pageCount:a}}),e.getPageOptions=vt(()=>[e.getPageCount()],i=>{let r=[];return i&&i>0&&(r=[...new Array(i)].fill(null).map((o,a)=>a)),r},bt(e.options,"debugTable")),e.getCanPreviousPage=()=>e.getState().pagination.pageIndex>0,e.getCanNextPage=()=>{const{pageIndex:i}=e.getState().pagination,r=e.getPageCount();return r===-1?!0:r===0?!1:ie.setPageIndex(i=>i-1),e.nextPage=()=>e.setPageIndex(i=>i+1),e.firstPage=()=>e.setPageIndex(0),e.lastPage=()=>e.setPageIndex(e.getPageCount()-1),e.getPrePaginationRowModel=()=>e.getExpandedRowModel(),e.getPaginationRowModel=()=>(!e._getPaginationRowModel&&e.options.getPaginationRowModel&&(e._getPaginationRowModel=e.options.getPaginationRowModel(e)),e.options.manualPagination||!e._getPaginationRowModel?e.getPrePaginationRowModel():e._getPaginationRowModel()),e.getPageCount=()=>{var i;return(i=e.options.pageCount)!=null?i:Math.ceil(e.getRowCount()/e.getState().pagination.pageSize)},e.getRowCount=()=>{var i;return(i=e.options.rowCount)!=null?i:e.getPrePaginationRowModel().rows.length}}},wy=()=>({top:[],bottom:[]}),KU={getInitialState:e=>({rowPinning:wy(),...e}),getDefaultOptions:e=>({onRowPinningChange:gr("rowPinning",e)}),createRow:(e,t)=>{e.pin=(n,i,r)=>{const o=i?e.getLeafRows().map(d=>{let{id:m}=d;return m}):[],a=r?e.getParentRows().map(d=>{let{id:m}=d;return m}):[],c=new Set([...a,e.id,...o]);t.setRowPinning(d=>{var m,h;if(n==="bottom"){var p,g;return{top:((p=d?.top)!=null?p:[]).filter(_=>!(c!=null&&c.has(_))),bottom:[...((g=d?.bottom)!=null?g:[]).filter(_=>!(c!=null&&c.has(_))),...Array.from(c)]}}if(n==="top"){var x,v;return{top:[...((x=d?.top)!=null?x:[]).filter(_=>!(c!=null&&c.has(_))),...Array.from(c)],bottom:((v=d?.bottom)!=null?v:[]).filter(_=>!(c!=null&&c.has(_)))}}return{top:((m=d?.top)!=null?m:[]).filter(_=>!(c!=null&&c.has(_))),bottom:((h=d?.bottom)!=null?h:[]).filter(_=>!(c!=null&&c.has(_)))}})},e.getCanPin=()=>{var n;const{enableRowPinning:i,enablePinning:r}=t.options;return typeof i=="function"?i(e):(n=i??r)!=null?n:!0},e.getIsPinned=()=>{const n=[e.id],{top:i,bottom:r}=t.getState().rowPinning,o=n.some(c=>i?.includes(c)),a=n.some(c=>r?.includes(c));return o?"top":a?"bottom":!1},e.getPinnedIndex=()=>{var n,i;const r=e.getIsPinned();if(!r)return-1;const o=(n=r==="top"?t.getTopRows():t.getBottomRows())==null?void 0:n.map(a=>{let{id:c}=a;return c});return(i=o?.indexOf(e.id))!=null?i:-1}},createTable:e=>{e.setRowPinning=t=>e.options.onRowPinningChange==null?void 0:e.options.onRowPinningChange(t),e.resetRowPinning=t=>{var n,i;return e.setRowPinning(t?wy():(n=(i=e.initialState)==null?void 0:i.rowPinning)!=null?n:wy())},e.getIsSomeRowsPinned=t=>{var n;const i=e.getState().rowPinning;if(!t){var r,o;return!!((r=i.top)!=null&&r.length||(o=i.bottom)!=null&&o.length)}return!!((n=i[t])!=null&&n.length)},e._getPinnedRows=(t,n,i)=>{var r;return((r=e.options.keepPinnedRows)==null||r?(n??[]).map(a=>{const c=e.getRow(a,!0);return c.getIsAllParentsExpanded()?c:null}):(n??[]).map(a=>t.find(c=>c.id===a))).filter(Boolean).map(a=>({...a,position:i}))},e.getTopRows=vt(()=>[e.getRowModel().rows,e.getState().rowPinning.top],(t,n)=>e._getPinnedRows(t,n,"top"),bt(e.options,"debugRows")),e.getBottomRows=vt(()=>[e.getRowModel().rows,e.getState().rowPinning.bottom],(t,n)=>e._getPinnedRows(t,n,"bottom"),bt(e.options,"debugRows")),e.getCenterRows=vt(()=>[e.getRowModel().rows,e.getState().rowPinning.top,e.getState().rowPinning.bottom],(t,n,i)=>{const r=new Set([...n??[],...i??[]]);return t.filter(o=>!r.has(o.id))},bt(e.options,"debugRows"))}},ZU={getInitialState:e=>({rowSelection:{},...e}),getDefaultOptions:e=>({onRowSelectionChange:gr("rowSelection",e),enableRowSelection:!0,enableMultiRowSelection:!0,enableSubRowSelection:!0}),createTable:e=>{e.setRowSelection=t=>e.options.onRowSelectionChange==null?void 0:e.options.onRowSelectionChange(t),e.resetRowSelection=t=>{var n;return e.setRowSelection(t?{}:(n=e.initialState.rowSelection)!=null?n:{})},e.toggleAllRowsSelected=t=>{e.setRowSelection(n=>{t=typeof t<"u"?t:!e.getIsAllRowsSelected();const i={...n},r=e.getPreGroupedRowModel().flatRows;return t?r.forEach(o=>{o.getCanSelect()&&(i[o.id]=!0)}):r.forEach(o=>{delete i[o.id]}),i})},e.toggleAllPageRowsSelected=t=>e.setRowSelection(n=>{const i=typeof t<"u"?t:!e.getIsAllPageRowsSelected(),r={...n};return e.getRowModel().rows.forEach(o=>{yv(r,o.id,i,!0,e)}),r}),e.getPreSelectedRowModel=()=>e.getCoreRowModel(),e.getSelectedRowModel=vt(()=>[e.getState().rowSelection,e.getCoreRowModel()],(t,n)=>Object.keys(t).length?Cy(e,n):{rows:[],flatRows:[],rowsById:{}},bt(e.options,"debugTable")),e.getFilteredSelectedRowModel=vt(()=>[e.getState().rowSelection,e.getFilteredRowModel()],(t,n)=>Object.keys(t).length?Cy(e,n):{rows:[],flatRows:[],rowsById:{}},bt(e.options,"debugTable")),e.getGroupedSelectedRowModel=vt(()=>[e.getState().rowSelection,e.getSortedRowModel()],(t,n)=>Object.keys(t).length?Cy(e,n):{rows:[],flatRows:[],rowsById:{}},bt(e.options,"debugTable")),e.getIsAllRowsSelected=()=>{const t=e.getFilteredRowModel().flatRows,{rowSelection:n}=e.getState();let i=!!(t.length&&Object.keys(n).length);return i&&t.some(r=>r.getCanSelect()&&!n[r.id])&&(i=!1),i},e.getIsAllPageRowsSelected=()=>{const t=e.getPaginationRowModel().flatRows.filter(r=>r.getCanSelect()),{rowSelection:n}=e.getState();let i=!!t.length;return i&&t.some(r=>!n[r.id])&&(i=!1),i},e.getIsSomeRowsSelected=()=>{var t;const n=Object.keys((t=e.getState().rowSelection)!=null?t:{}).length;return n>0&&n{const t=e.getPaginationRowModel().flatRows;return e.getIsAllPageRowsSelected()?!1:t.filter(n=>n.getCanSelect()).some(n=>n.getIsSelected()||n.getIsSomeSelected())},e.getToggleAllRowsSelectedHandler=()=>t=>{e.toggleAllRowsSelected(t.target.checked)},e.getToggleAllPageRowsSelectedHandler=()=>t=>{e.toggleAllPageRowsSelected(t.target.checked)}},createRow:(e,t)=>{e.toggleSelected=(n,i)=>{const r=e.getIsSelected();t.setRowSelection(o=>{var a;if(n=typeof n<"u"?n:!r,e.getCanSelect()&&r===n)return o;const c={...o};return yv(c,e.id,n,(a=i?.selectChildren)!=null?a:!0,t),c})},e.getIsSelected=()=>{const{rowSelection:n}=t.getState();return M0(e,n)},e.getIsSomeSelected=()=>{const{rowSelection:n}=t.getState();return xv(e,n)==="some"},e.getIsAllSubRowsSelected=()=>{const{rowSelection:n}=t.getState();return xv(e,n)==="all"},e.getCanSelect=()=>{var n;return typeof t.options.enableRowSelection=="function"?t.options.enableRowSelection(e):(n=t.options.enableRowSelection)!=null?n:!0},e.getCanSelectSubRows=()=>{var n;return typeof t.options.enableSubRowSelection=="function"?t.options.enableSubRowSelection(e):(n=t.options.enableSubRowSelection)!=null?n:!0},e.getCanMultiSelect=()=>{var n;return typeof t.options.enableMultiRowSelection=="function"?t.options.enableMultiRowSelection(e):(n=t.options.enableMultiRowSelection)!=null?n:!0},e.getToggleSelectedHandler=()=>{const n=e.getCanSelect();return i=>{var r;n&&e.toggleSelected((r=i.target)==null?void 0:r.checked)}}}},yv=(e,t,n,i,r)=>{var o;const a=r.getRow(t,!0);n?(a.getCanMultiSelect()||Object.keys(e).forEach(c=>delete e[c]),a.getCanSelect()&&(e[t]=!0)):delete e[t],i&&(o=a.subRows)!=null&&o.length&&a.getCanSelectSubRows()&&a.subRows.forEach(c=>yv(e,c.id,n,i,r))};function Cy(e,t){const n=e.getState().rowSelection,i=[],r={},o=function(a,c){return a.map(d=>{var m;const h=M0(d,n);if(h&&(i.push(d),r[d.id]=d),(m=d.subRows)!=null&&m.length&&(d={...d,subRows:o(d.subRows)}),h)return d}).filter(Boolean)};return{rows:o(t.rows),flatRows:i,rowsById:r}}function M0(e,t){var n;return(n=t[e.id])!=null?n:!1}function xv(e,t,n){var i;if(!((i=e.subRows)!=null&&i.length))return!1;let r=!0,o=!1;return e.subRows.forEach(a=>{if(!(o&&!r)&&(a.getCanSelect()&&(M0(a,t)?o=!0:r=!1),a.subRows&&a.subRows.length)){const c=xv(a,t);c==="all"?o=!0:(c==="some"&&(o=!0),r=!1)}}),r?"all":o?"some":!1}const vv=/([0-9]+)/gm,QU=(e,t,n)=>aT(Eo(e.getValue(n)).toLowerCase(),Eo(t.getValue(n)).toLowerCase()),JU=(e,t,n)=>aT(Eo(e.getValue(n)),Eo(t.getValue(n))),eG=(e,t,n)=>D0(Eo(e.getValue(n)).toLowerCase(),Eo(t.getValue(n)).toLowerCase()),tG=(e,t,n)=>D0(Eo(e.getValue(n)),Eo(t.getValue(n))),nG=(e,t,n)=>{const i=e.getValue(n),r=t.getValue(n);return i>r?1:iD0(e.getValue(n),t.getValue(n));function D0(e,t){return e===t?0:e>t?1:-1}function Eo(e){return typeof e=="number"?isNaN(e)||e===1/0||e===-1/0?"":String(e):typeof e=="string"?e:""}function aT(e,t){const n=e.split(vv).filter(Boolean),i=t.split(vv).filter(Boolean);for(;n.length&&i.length;){const r=n.shift(),o=i.shift(),a=parseInt(r,10),c=parseInt(o,10),d=[a,c].sort();if(isNaN(d[0])){if(r>o)return 1;if(o>r)return-1;continue}if(isNaN(d[1]))return isNaN(a)?-1:1;if(a>c)return 1;if(c>a)return-1}return n.length-i.length}const Yc={alphanumeric:QU,alphanumericCaseSensitive:JU,text:eG,textCaseSensitive:tG,datetime:nG,basic:iG},rG={getInitialState:e=>({sorting:[],...e}),getDefaultColumnDef:()=>({sortingFn:"auto",sortUndefined:1}),getDefaultOptions:e=>({onSortingChange:gr("sorting",e),isMultiSortEvent:t=>t.shiftKey}),createColumn:(e,t)=>{e.getAutoSortingFn=()=>{const n=t.getFilteredRowModel().flatRows.slice(10);let i=!1;for(const r of n){const o=r?.getValue(e.id);if(Object.prototype.toString.call(o)==="[object Date]")return Yc.datetime;if(typeof o=="string"&&(i=!0,o.split(vv).length>1))return Yc.alphanumeric}return i?Yc.text:Yc.basic},e.getAutoSortDir=()=>{const n=t.getFilteredRowModel().flatRows[0];return typeof n?.getValue(e.id)=="string"?"asc":"desc"},e.getSortingFn=()=>{var n,i;if(!e)throw new Error;return Zm(e.columnDef.sortingFn)?e.columnDef.sortingFn:e.columnDef.sortingFn==="auto"?e.getAutoSortingFn():(n=(i=t.options.sortingFns)==null?void 0:i[e.columnDef.sortingFn])!=null?n:Yc[e.columnDef.sortingFn]},e.toggleSorting=(n,i)=>{const r=e.getNextSortingOrder(),o=typeof n<"u"&&n!==null;t.setSorting(a=>{const c=a?.find(x=>x.id===e.id),d=a?.findIndex(x=>x.id===e.id);let m=[],h,p=o?n:r==="desc";if(a!=null&&a.length&&e.getCanMultiSort()&&i?c?h="toggle":h="add":a!=null&&a.length&&d!==a.length-1?h="replace":c?h="toggle":h="replace",h==="toggle"&&(o||r||(h="remove")),h==="add"){var g;m=[...a,{id:e.id,desc:p}],m.splice(0,m.length-((g=t.options.maxMultiSortColCount)!=null?g:Number.MAX_SAFE_INTEGER))}else h==="toggle"?m=a.map(x=>x.id===e.id?{...x,desc:p}:x):h==="remove"?m=a.filter(x=>x.id!==e.id):m=[{id:e.id,desc:p}];return m})},e.getFirstSortDir=()=>{var n,i;return((n=(i=e.columnDef.sortDescFirst)!=null?i:t.options.sortDescFirst)!=null?n:e.getAutoSortDir()==="desc")?"desc":"asc"},e.getNextSortingOrder=n=>{var i,r;const o=e.getFirstSortDir(),a=e.getIsSorted();return a?a!==o&&((i=t.options.enableSortingRemoval)==null||i)&&(!(n&&(r=t.options.enableMultiRemove)!=null)||r)?!1:a==="desc"?"asc":"desc":o},e.getCanSort=()=>{var n,i;return((n=e.columnDef.enableSorting)!=null?n:!0)&&((i=t.options.enableSorting)!=null?i:!0)&&!!e.accessorFn},e.getCanMultiSort=()=>{var n,i;return(n=(i=e.columnDef.enableMultiSort)!=null?i:t.options.enableMultiSort)!=null?n:!!e.accessorFn},e.getIsSorted=()=>{var n;const i=(n=t.getState().sorting)==null?void 0:n.find(r=>r.id===e.id);return i?i.desc?"desc":"asc":!1},e.getSortIndex=()=>{var n,i;return(n=(i=t.getState().sorting)==null?void 0:i.findIndex(r=>r.id===e.id))!=null?n:-1},e.clearSorting=()=>{t.setSorting(n=>n!=null&&n.length?n.filter(i=>i.id!==e.id):[])},e.getToggleSortingHandler=()=>{const n=e.getCanSort();return i=>{n&&(i.persist==null||i.persist(),e.toggleSorting==null||e.toggleSorting(void 0,e.getCanMultiSort()?t.options.isMultiSortEvent==null?void 0:t.options.isMultiSortEvent(i):!1))}}},createTable:e=>{e.setSorting=t=>e.options.onSortingChange==null?void 0:e.options.onSortingChange(t),e.resetSorting=t=>{var n,i;e.setSorting(t?[]:(n=(i=e.initialState)==null?void 0:i.sorting)!=null?n:[])},e.getPreSortedRowModel=()=>e.getGroupedRowModel(),e.getSortedRowModel=()=>(!e._getSortedRowModel&&e.options.getSortedRowModel&&(e._getSortedRowModel=e.options.getSortedRowModel(e)),e.options.manualSorting||!e._getSortedRowModel?e.getPreSortedRowModel():e._getSortedRowModel())}},sG=[CU,GU,$U,HU,EU,NU,qU,WU,rG,PU,YU,XU,KU,ZU,VU];function oG(e){var t,n;const i=[...sG,...(t=e._features)!=null?t:[]];let r={_features:i};const o=r._features.reduce((g,x)=>Object.assign(g,x.getDefaultOptions==null?void 0:x.getDefaultOptions(r)),{}),a=g=>r.options.mergeOptions?r.options.mergeOptions(o,g):{...o,...g};let d={...{},...(n=e.initialState)!=null?n:{}};r._features.forEach(g=>{var x;d=(x=g.getInitialState==null?void 0:g.getInitialState(d))!=null?x:d});const m=[];let h=!1;const p={_features:i,options:{...o,...e},initialState:d,_queue:g=>{m.push(g),h||(h=!0,Promise.resolve().then(()=>{for(;m.length;)m.shift()();h=!1}).catch(x=>setTimeout(()=>{throw x})))},reset:()=>{r.setState(r.initialState)},setOptions:g=>{const x=bo(g,r.options);r.options=a(x)},getState:()=>r.options.state,setState:g=>{r.options.onStateChange==null||r.options.onStateChange(g)},_getRowId:(g,x,v)=>{var _;return(_=r.options.getRowId==null?void 0:r.options.getRowId(g,x,v))!=null?_:`${v?[v.id,x].join("."):x}`},getCoreRowModel:()=>(r._getCoreRowModel||(r._getCoreRowModel=r.options.getCoreRowModel(r)),r._getCoreRowModel()),getRowModel:()=>r.getPaginationRowModel(),getRow:(g,x)=>{let v=(x?r.getPrePaginationRowModel():r.getRowModel()).rowsById[g];if(!v&&(v=r.getCoreRowModel().rowsById[g],!v))throw new Error;return v},_getDefaultColumnDef:vt(()=>[r.options.defaultColumn],g=>{var x;return g=(x=g)!=null?x:{},{header:v=>{const _=v.header.column.columnDef;return _.accessorKey?_.accessorKey:_.accessorFn?_.id:null},cell:v=>{var _,k;return(_=(k=v.renderValue())==null||k.toString==null?void 0:k.toString())!=null?_:null},...r._features.reduce((v,_)=>Object.assign(v,_.getDefaultColumnDef==null?void 0:_.getDefaultColumnDef()),{}),...g}},bt(e,"debugColumns")),_getColumnDefs:()=>r.options.columns,getAllColumns:vt(()=>[r._getColumnDefs()],g=>{const x=function(v,_,k){return k===void 0&&(k=0),v.map(w=>{const S=wU(r,w,k,_),j=w;return S.columns=j.columns?x(j.columns,S,k+1):[],S})};return x(g)},bt(e,"debugColumns")),getAllFlatColumns:vt(()=>[r.getAllColumns()],g=>g.flatMap(x=>x.getFlatColumns()),bt(e,"debugColumns")),_getAllFlatColumnsById:vt(()=>[r.getAllFlatColumns()],g=>g.reduce((x,v)=>(x[v.id]=v,x),{}),bt(e,"debugColumns")),getAllLeafColumns:vt(()=>[r.getAllColumns(),r._getOrderColumnsFn()],(g,x)=>{let v=g.flatMap(_=>_.getLeafColumns());return x(v)},bt(e,"debugColumns")),getColumn:g=>r._getAllFlatColumnsById()[g]};Object.assign(r,p);for(let g=0;gvt(()=>[e.options.data],t=>{const n={rows:[],flatRows:[],rowsById:{}},i=function(r,o,a){o===void 0&&(o=0);const c=[];for(let m=0;me._autoResetPageIndex()))}function lG(){return e=>vt(()=>[e.getState().sorting,e.getPreSortedRowModel()],(t,n)=>{if(!n.rows.length||!(t!=null&&t.length))return n;const i=e.getState().sorting,r=[],o=i.filter(d=>{var m;return(m=e.getColumn(d.id))==null?void 0:m.getCanSort()}),a={};o.forEach(d=>{const m=e.getColumn(d.id);m&&(a[d.id]={sortUndefined:m.columnDef.sortUndefined,invertSorting:m.columnDef.invertSorting,sortingFn:m.getSortingFn()})});const c=d=>{const m=d.map(h=>({...h}));return m.sort((h,p)=>{for(let x=0;x{var p;r.push(h),(p=h.subRows)!=null&&p.length&&(h.subRows=c(h.subRows))}),m};return{rows:c(n.rows),flatRows:r,rowsById:n.rowsById}},bt(e.options,"debugTable","getSortedRowModel",()=>e._autoResetPageIndex()))}function LC(e,t){return e?cG(e)?C.createElement(e,t):e:null}function cG(e){return uG(e)||typeof e=="function"||dG(e)}function uG(e){return typeof e=="function"&&(()=>{const t=Object.getPrototypeOf(e);return t.prototype&&t.prototype.isReactComponent})()}function dG(e){return typeof e=="object"&&typeof e.$$typeof=="symbol"&&["react.memo","react.forward_ref"].includes(e.$$typeof.description)}function fG(e){const t={state:{},onStateChange:()=>{},renderFallbackValue:null,...e},[n]=C.useState(()=>({current:oG(t)})),[i,r]=C.useState(()=>n.current.initialState);return n.current.setOptions(o=>({...o,...e,state:{...i,...e.state},onStateChange:a=>{r(a),e.onStateChange==null||e.onStateChange(a)}})),n.current}const zC=["codex","cursor","claude_code","opencode"];function mG({roles:e,employees:t,selectedIds:n,onSelectRow:i,onUpdateRole:r,onDeleteRole:o,readOnly:a}){const[c,d]=C.useState([]),[m,h]=C.useState({}),[p,g]=C.useState(null),[x,v]=C.useState(""),_=C.useMemo(()=>{const I=new Map;for(const L of t){const M=L.role_ids?.length?L.role_ids:[L.role_id];for(const A of M)A&&I.set(A,(I.get(A)??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:I.get(L.role_id)??0}))},[e,t]),k=C.useMemo(()=>[{id:"owner",name:"Owner"},...e.map(I=>({id:I.role_id,name:I.name}))],[e]),w=I=>{const L=x.trim();L&&L!==e.find(M=>M.role_id===I)?.name&&r(I,{name:L}),g(null),v("")},S=C.useMemo(()=>[{id:"select",header:({table:I})=>u.jsx("input",{type:"checkbox",checked:I.getIsAllRowsSelected(),ref:L=>{L&&(L.indeterminate=I.getIsSomeRowsSelected()&&!I.getIsAllRowsSelected())},onChange:I.getToggleAllRowsSelectedHandler(),disabled:a,"aria-label":"Select all"}),cell:({row:I})=>u.jsx("input",{type:"checkbox",checked:I.getIsSelected(),onChange:I.getToggleSelectedHandler(),disabled:a,"aria-label":`Select ${I.original.role_id}`,onClick:L=>L.stopPropagation()}),size:32,enableSorting:!1},{id:"icon",header:"",cell:({row:I})=>u.jsx("img",{src:Fu(I.original.icon),alt:"",className:"rt-cell-icon"}),size:32,enableSorting:!1},{id:"name",header:"Name",accessorKey:"name",cell:({row:I})=>{const L=I.original;return p?.rowId===L.role_id&&p.col==="name"?u.jsx("input",{autoFocus:!0,className:"rt-inline-input",value:x,onChange:A=>v(A.target.value),onBlur:()=>w(L.role_id),onKeyDown:A=>{A.key==="Enter"?w(L.role_id):A.key==="Escape"&&(g(null),v(""))},onClick:A=>A.stopPropagation()}):u.jsx("span",{className:"rt-cell-name",onDoubleClick:A=>{a||(A.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:I})=>u.jsx("code",{className:"rt-cell-id",children:I.original.role_id})},{id:"reports_to",header:"Reports to",accessorKey:"reports_to",cell:({row:I})=>{const L=I.original;return u.jsx("select",{className:"rt-cell-select",value:L.reports_to,onChange:M=>r(L.role_id,{reports_to:M.target.value}),disabled:a,onClick:M=>M.stopPropagation(),children:k.filter(M=>M.id!==L.role_id).map(M=>u.jsx("option",{value:M.id,children:M.name},M.id))})}},{id:"toolCount",header:"Tools",accessorKey:"toolCount",cell:({row:I})=>u.jsx("span",{className:"rt-cell-count",children:I.original.toolCount}),size:64},{id:"agent",header:"Agent",accessorKey:"agent",cell:({row:I})=>{const L=I.original;return u.jsxs("select",{className:"rt-cell-select",value:L.agent??"",onChange:M=>r(L.role_id,{preferred_external_agent:M.target.value||null}),disabled:a,onClick:M=>M.stopPropagation(),children:[u.jsx("option",{value:"",children:"(auto)"}),zC.map(M=>u.jsx("option",{value:M,children:M},M))]})}},{id:"employeeCount",header:"People",accessorKey:"employeeCount",cell:({row:I})=>u.jsx("span",{className:"rt-cell-count",children:I.original.employeeCount}),size:64},{id:"actions",header:"",cell:({row:I})=>u.jsx("button",{className:"rt-cell-action",onClick:L=>{L.stopPropagation(),!a&&confirm(`Delete role "${I.original.name}"?`)&&o(I.original.role_id)},disabled:a,title:"Delete",children:"✕"}),size:40,enableSorting:!1}],[p,x,a,k,r,o]),j=fG({data:_,columns:S,state:{sorting:c,rowSelection:m},onSortingChange:d,onRowSelectionChange:h,enableRowSelection:!0,getRowId:I=>I.role_id,getCoreRowModel:aG(),getSortedRowModel:lG()}),N=Object.values(m).filter(Boolean).length,O=Object.keys(m).filter(I=>m[I]),R=I=>{a||(O.forEach(L=>r(L,{preferred_external_agent:I})),h({}))},D=()=>{a||confirm(`Delete ${N} roles? This cannot be undone.`)&&(O.forEach(I=>o(I)),h({}))};return u.jsxs("div",{className:"rt-container",children:[N>0&&!a&&u.jsxs("div",{className:"rt-bulk-bar",children:[u.jsxs("span",{className:"rt-bulk-count",children:[N," selected"]}),u.jsxs("select",{className:"rt-bulk-select",defaultValue:"",onChange:I=>{const L=I.target.value;L&&R(L==="__auto__"?null:L)},children:[u.jsx("option",{value:"",disabled:!0,children:"Change agent…"}),u.jsx("option",{value:"__auto__",children:"(auto)"}),zC.map(I=>u.jsx("option",{value:I,children:I},I))]}),u.jsx("button",{className:"btn btn-danger btn-sm",onClick:D,children:"Delete selected"}),u.jsx("button",{className:"btn btn-ghost btn-sm",onClick:()=>h({}),children:"Clear"})]}),u.jsx("div",{className:"rt-table-wrap",children:u.jsxs("table",{className:"rt-table",children:[u.jsx("thead",{children:j.getHeaderGroups().map(I=>u.jsx("tr",{children:I.headers.map(L=>u.jsxs("th",{style:{width:L.getSize()},className:L.column.getCanSort()?"rt-th-sortable":"",onClick:L.column.getToggleSortingHandler(),children:[LC(L.column.columnDef.header,L.getContext()),L.column.getIsSorted()==="asc"&&u.jsx("span",{className:"rt-sort-caret",children:" ▲"}),L.column.getIsSorted()==="desc"&&u.jsx("span",{className:"rt-sort-caret",children:" ▼"})]},L.id))},I.id))}),u.jsxs("tbody",{children:[j.getRowModel().rows.length===0&&u.jsx("tr",{children:u.jsx("td",{colSpan:9,className:"rt-empty",children:'No roles. Add one via the "+ Add role" button.'})}),j.getRowModel().rows.map(I=>{const L=n.includes(I.original.role_id);return u.jsx("tr",{className:`rt-row${I.getIsSelected()?" rt-row-checked":""}${L?" rt-row-active":""}`,onClick:()=>i(I.original.role_id),children:I.getVisibleCells().map(M=>u.jsx("td",{style:{width:M.column.getSize()},children:LC(M.column.columnDef.cell,M.getContext())},M.id))},I.id)})]})]})})]})}function fi(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,i;n{}};function Qm(){for(var e=0,t=arguments.length,n={},i;e=0&&(i=n.slice(r+1),n=n.slice(0,r)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:i}})}zf.prototype=Qm.prototype={constructor:zf,on:function(e,t){var n=this._,i=hG(e+"",n),r,o=-1,a=i.length;if(arguments.length<2){for(;++o0)for(var n=new Array(r),i=0,r,o;i=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),BC.hasOwnProperty(t)?{space:BC[t],local:e}:e}function yG(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===bv&&t.documentElement.namespaceURI===bv?t.createElement(e):t.createElementNS(n,e)}}function xG(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function lT(e){var t=Jm(e);return(t.local?xG:yG)(t)}function vG(){}function O0(e){return e==null?vG:function(){return this.querySelector(e)}}function bG(e){typeof e!="function"&&(e=O0(e));for(var t=this._groups,n=t.length,i=new Array(n),r=0;r=j&&(j=S+1);!(O=k[j])&&++j=0;)(a=i[r])&&(o&&a.compareDocumentPosition(o)^4&&o.parentNode.insertBefore(a,o),o=a);return this}function GG(e){e||(e=qG);function t(p,g){return p&&g?e(p.__data__,g.__data__):!p-!g}for(var n=this._groups,i=n.length,r=new Array(i),o=0;ot?1:e>=t?0:NaN}function WG(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function YG(){return Array.from(this)}function XG(){for(var e=this._groups,t=0,n=e.length;t1?this.each((t==null?oq:typeof t=="function"?lq:aq)(e,t,n??"")):Al(this.node(),e)}function Al(e,t){return e.style.getPropertyValue(t)||mT(e).getComputedStyle(e,null).getPropertyValue(t)}function uq(e){return function(){delete this[e]}}function dq(e,t){return function(){this[e]=t}}function fq(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function mq(e,t){return arguments.length>1?this.each((t==null?uq:typeof t=="function"?fq:dq)(e,t)):this.node()[e]}function pT(e){return e.trim().split(/^|\s+/)}function L0(e){return e.classList||new hT(e)}function hT(e){this._node=e,this._names=pT(e.getAttribute("class")||"")}hT.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 gT(e,t){for(var n=L0(e),i=-1,r=t.length;++i=0&&(n=t.slice(i+1),t=t.slice(0,i)),{type:t,name:n}})}function Hq(e){return function(){var t=this.__on;if(t){for(var n=0,i=-1,r=t.length,o;n()=>e;function _v(e,{sourceEvent:t,subject:n,target:i,identifier:r,active:o,x:a,y:c,dx:d,dy:m,dispatch:h}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:i,enumerable:!0,configurable:!0},identifier:{value:r,enumerable:!0,configurable:!0},active:{value:o,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:c,enumerable:!0,configurable:!0},dx:{value:d,enumerable:!0,configurable:!0},dy:{value:m,enumerable:!0,configurable:!0},_:{value:h}})}_v.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function Zq(e){return!e.ctrlKey&&!e.button}function Qq(){return this.parentNode}function Jq(e,t){return t??{x:e.x,y:e.y}}function eW(){return navigator.maxTouchPoints||"ontouchstart"in this}function kT(){var e=Zq,t=Qq,n=Jq,i=eW,r={},o=Qm("start","drag","end"),a=0,c,d,m,h,p=0;function g(N){N.on("mousedown.drag",x).filter(i).on("touchstart.drag",k).on("touchmove.drag",w,Kq).on("touchend.drag touchcancel.drag",S).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function x(N,O){if(!(h||!e.call(this,N,O))){var R=j(this,t.call(this,N,O),N,O,"mouse");R&&(ur(N.view).on("mousemove.drag",v,Nu).on("mouseup.drag",_,Nu),bT(N.view),jy(N),m=!1,c=N.clientX,d=N.clientY,R("start",N))}}function v(N){if(xl(N),!m){var O=N.clientX-c,R=N.clientY-d;m=O*O+R*R>p}r.mouse("drag",N)}function _(N){ur(N.view).on("mousemove.drag mouseup.drag",null),_T(N.view,m),xl(N),r.mouse("end",N)}function k(N,O){if(e.call(this,N,O)){var R=N.changedTouches,D=t.call(this,N,O),I=R.length,L,M;for(L=0;L>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?bf(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?bf(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=nW.exec(e))?new Ji(t[1],t[2],t[3],1):(t=iW.exec(e))?new Ji(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=rW.exec(e))?bf(t[1],t[2],t[3],t[4]):(t=sW.exec(e))?bf(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=oW.exec(e))?qC(t[1],t[2]/100,t[3]/100,1):(t=aW.exec(e))?qC(t[1],t[2]/100,t[3]/100,t[4]):$C.hasOwnProperty(e)?VC($C[e]):e==="transparent"?new Ji(NaN,NaN,NaN,0):null}function VC(e){return new Ji(e>>16&255,e>>8&255,e&255,1)}function bf(e,t,n,i){return i<=0&&(e=t=n=NaN),new Ji(e,t,n,i)}function uW(e){return e instanceof Uu||(e=ca(e)),e?(e=e.rgb(),new Ji(e.r,e.g,e.b,e.opacity)):new Ji}function kv(e,t,n,i){return arguments.length===1?uW(e):new Ji(e,t,n,i??1)}function Ji(e,t,n,i){this.r=+e,this.g=+t,this.b=+n,this.opacity=+i}z0(Ji,kv,ST(Uu,{brighter(e){return e=e==null?gm:Math.pow(gm,e),new Ji(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Iu:Math.pow(Iu,e),new Ji(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Ji(sa(this.r),sa(this.g),sa(this.b),ym(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:UC,formatHex:UC,formatHex8:dW,formatRgb:GC,toString:GC}));function UC(){return`#${ra(this.r)}${ra(this.g)}${ra(this.b)}`}function dW(){return`#${ra(this.r)}${ra(this.g)}${ra(this.b)}${ra((isNaN(this.opacity)?1:this.opacity)*255)}`}function GC(){const e=ym(this.opacity);return`${e===1?"rgb(":"rgba("}${sa(this.r)}, ${sa(this.g)}, ${sa(this.b)}${e===1?")":`, ${e})`}`}function ym(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function sa(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function ra(e){return e=sa(e),(e<16?"0":"")+e.toString(16)}function qC(e,t,n,i){return i<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Br(e,t,n,i)}function wT(e){if(e instanceof Br)return new Br(e.h,e.s,e.l,e.opacity);if(e instanceof Uu||(e=ca(e)),!e)return new Br;if(e instanceof Br)return e;e=e.rgb();var t=e.r/255,n=e.g/255,i=e.b/255,r=Math.min(t,n,i),o=Math.max(t,n,i),a=NaN,c=o-r,d=(o+r)/2;return c?(t===o?a=(n-i)/c+(n0&&d<1?0:a,new Br(a,c,d,e.opacity)}function fW(e,t,n,i){return arguments.length===1?wT(e):new Br(e,t,n,i??1)}function Br(e,t,n,i){this.h=+e,this.s=+t,this.l=+n,this.opacity=+i}z0(Br,fW,ST(Uu,{brighter(e){return e=e==null?gm:Math.pow(gm,e),new Br(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Iu:Math.pow(Iu,e),new Br(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,i=n+(n<.5?n:1-n)*t,r=2*n-i;return new Ji(Ey(e>=240?e-240:e+120,r,i),Ey(e,r,i),Ey(e<120?e+240:e-120,r,i),this.opacity)},clamp(){return new Br(WC(this.h),_f(this.s),_f(this.l),ym(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=ym(this.opacity);return`${e===1?"hsl(":"hsla("}${WC(this.h)}, ${_f(this.s)*100}%, ${_f(this.l)*100}%${e===1?")":`, ${e})`}`}}));function WC(e){return e=(e||0)%360,e<0?e+360:e}function _f(e){return Math.max(0,Math.min(1,e||0))}function Ey(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 P0=e=>()=>e;function mW(e,t){return function(n){return e+n*t}}function pW(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(i){return Math.pow(e+i*t,n)}}function hW(e){return(e=+e)==1?CT:function(t,n){return n-t?pW(t,n,e):P0(isNaN(t)?n:t)}}function CT(e,t){var n=t-e;return n?mW(e,n):P0(isNaN(e)?t:e)}const xm=(function e(t){var n=hW(t);function i(r,o){var a=n((r=kv(r)).r,(o=kv(o)).r),c=n(r.g,o.g),d=n(r.b,o.b),m=CT(r.opacity,o.opacity);return function(h){return r.r=a(h),r.g=c(h),r.b=d(h),r.opacity=m(h),r+""}}return i.gamma=e,i})(1);function gW(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,i=t.slice(),r;return function(o){for(r=0;rn&&(o=t.slice(n,o),c[a]?c[a]+=o:c[++a]=o),(i=i[0])===(r=r[0])?c[a]?c[a]+=r:c[++a]=r:(c[++a]=null,d.push({i:a,x:ts(i,r)})),n=Ny.lastIndex;return n180?h+=360:h-m>180&&(m+=360),g.push({i:p.push(r(p)+"rotate(",null,i)-2,x:ts(m,h)})):h&&p.push(r(p)+"rotate("+h+i)}function c(m,h,p,g){m!==h?g.push({i:p.push(r(p)+"skewX(",null,i)-2,x:ts(m,h)}):h&&p.push(r(p)+"skewX("+h+i)}function d(m,h,p,g,x,v){if(m!==p||h!==g){var _=x.push(r(x)+"scale(",null,",",null,")");v.push({i:_-4,x:ts(m,p)},{i:_-2,x:ts(h,g)})}else(p!==1||g!==1)&&x.push(r(x)+"scale("+p+","+g+")")}return function(m,h){var p=[],g=[];return m=e(m),h=e(h),o(m.translateX,m.translateY,h.translateX,h.translateY,p,g),a(m.rotate,h.rotate,p,g),c(m.skewX,h.skewX,p,g),d(m.scaleX,m.scaleY,h.scaleX,h.scaleY,p,g),m=h=null,function(x){for(var v=-1,_=g.length,k;++v<_;)p[(k=g[v]).i]=k.x(x);return p.join("")}}}var CW=NT(SW,"px, ","px)","deg)"),jW=NT(wW,", ",")",")"),EW=1e-12;function XC(e){return((e=Math.exp(e))+1/e)/2}function NW(e){return((e=Math.exp(e))-1/e)/2}function IW(e){return((e=Math.exp(2*e))-1)/(e+1)}const Pf=(function e(t,n,i){function r(o,a){var c=o[0],d=o[1],m=o[2],h=a[0],p=a[1],g=a[2],x=h-c,v=p-d,_=x*x+v*v,k,w;if(_=0&&e._call.call(void 0,t),e=e._next;--Ml}function KC(){ua=(bm=Ru.now())+ep,Ml=eu=0;try{RW()}finally{Ml=0,MW(),ua=0}}function AW(){var e=Ru.now(),t=e-bm;t>IT&&(ep-=t,bm=e)}function MW(){for(var e,t=vm,n,i=1/0;t;)t._call?(i>t._time&&(i=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:vm=n);tu=e,Cv(i)}function Cv(e){if(!Ml){eu&&(eu=clearTimeout(eu));var t=e-ua;t>24?(e<1/0&&(eu=setTimeout(KC,e-Ru.now()-ep)),Xc&&(Xc=clearInterval(Xc))):(Xc||(bm=Ru.now(),Xc=setInterval(AW,IT)),Ml=1,TT(KC))}}function ZC(e,t,n){var i=new _m;return t=t==null?0:+t,i.restart(r=>{i.stop(),e(r+t)},t,n),i}var DW=Qm("start","end","cancel","interrupt"),OW=[],AT=0,QC=1,jv=2,Bf=3,JC=4,Ev=5,$f=6;function tp(e,t,n,i,r,o){var a=e.__transition;if(!a)e.__transition={};else if(n in a)return;LW(e,n,{name:t,index:i,group:r,on:DW,tween:OW,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:AT})}function $0(e,t){var n=qr(e,t);if(n.state>AT)throw new Error("too late; already scheduled");return n}function cs(e,t){var n=qr(e,t);if(n.state>Bf)throw new Error("too late; already running");return n}function qr(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 i=e.__transition,r;i[t]=n,n.timer=RT(o,0,n.time);function o(m){n.state=QC,n.timer.restart(a,n.delay,n.time),n.delay<=m&&a(m-n.delay)}function a(m){var h,p,g,x;if(n.state!==QC)return d();for(h in i)if(x=i[h],x.name===n.name){if(x.state===Bf)return ZC(a);x.state===JC?(x.state=$f,x.timer.stop(),x.on.call("interrupt",e,e.__data__,x.index,x.group),delete i[h]):+hjv&&i.state=0&&(t=t.slice(0,n)),!t||t==="start"})}function fY(e,t,n){var i,r,o=dY(t)?$0:cs;return function(){var a=o(this,e),c=a.on;c!==i&&(r=(i=c).copy()).on(t,n),a.on=r}}function mY(e,t){var n=this._id;return arguments.length<2?qr(this.node(),n).on.on(e):this.each(fY(n,e,t))}function pY(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function hY(){return this.on("end.remove",pY(this._id))}function gY(e){var t=this._name,n=this._id;typeof e!="function"&&(e=O0(e));for(var i=this._groups,r=i.length,o=new Array(r),a=0;a()=>e;function HY(e,{sourceEvent:t,target:n,transform:i,dispatch:r}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:i,enumerable:!0,configurable:!0},_:{value:r}})}function Ds(e,t,n){this.k=e,this.x=t,this.y=n}Ds.prototype={constructor:Ds,scale:function(e){return e===1?this:new Ds(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new Ds(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 np=new Ds(1,0,0);LT.prototype=Ds.prototype;function LT(e){for(;!e.__zoom;)if(!(e=e.parentNode))return np;return e.__zoom}function Iy(e){e.stopImmediatePropagation()}function Kc(e){e.preventDefault(),e.stopImmediatePropagation()}function FY(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function VY(){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 e2(){return this.__zoom||np}function UY(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function GY(){return navigator.maxTouchPoints||"ontouchstart"in this}function qY(e,t,n){var i=e.invertX(t[0][0])-n[0][0],r=e.invertX(t[1][0])-n[1][0],o=e.invertY(t[0][1])-n[0][1],a=e.invertY(t[1][1])-n[1][1];return e.translate(r>i?(i+r)/2:Math.min(0,i)||Math.max(0,r),a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a))}function zT(){var e=FY,t=VY,n=qY,i=UY,r=GY,o=[0,1/0],a=[[-1/0,-1/0],[1/0,1/0]],c=250,d=Pf,m=Qm("start","zoom","end"),h,p,g,x=500,v=150,_=0,k=10;function w(P){P.property("__zoom",e2).on("wheel.zoom",I,{passive:!1}).on("mousedown.zoom",L).on("dblclick.zoom",M).filter(r).on("touchstart.zoom",A).on("touchmove.zoom",B).on("touchend.zoom touchcancel.zoom",W).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}w.transform=function(P,G,$,q){var Y=P.selection?P.selection():P;Y.property("__zoom",e2),P!==Y?O(P,G,$,q):Y.interrupt().each(function(){R(this,arguments).event(q).start().zoom(null,typeof G=="function"?G.apply(this,arguments):G).end()})},w.scaleBy=function(P,G,$,q){w.scaleTo(P,function(){var Y=this.__zoom.k,Q=typeof G=="function"?G.apply(this,arguments):G;return Y*Q},$,q)},w.scaleTo=function(P,G,$,q){w.transform(P,function(){var Y=t.apply(this,arguments),Q=this.__zoom,V=$==null?N(Y):typeof $=="function"?$.apply(this,arguments):$,U=Q.invert(V),Z=typeof G=="function"?G.apply(this,arguments):G;return n(j(S(Q,Z),V,U),Y,a)},$,q)},w.translateBy=function(P,G,$,q){w.transform(P,function(){return n(this.__zoom.translate(typeof G=="function"?G.apply(this,arguments):G,typeof $=="function"?$.apply(this,arguments):$),t.apply(this,arguments),a)},null,q)},w.translateTo=function(P,G,$,q,Y){w.transform(P,function(){var Q=t.apply(this,arguments),V=this.__zoom,U=q==null?N(Q):typeof q=="function"?q.apply(this,arguments):q;return n(np.translate(U[0],U[1]).scale(V.k).translate(typeof G=="function"?-G.apply(this,arguments):-G,typeof $=="function"?-$.apply(this,arguments):-$),Q,a)},q,Y)};function S(P,G){return G=Math.max(o[0],Math.min(o[1],G)),G===P.k?P:new Ds(G,P.x,P.y)}function j(P,G,$){var q=G[0]-$[0]*P.k,Y=G[1]-$[1]*P.k;return q===P.x&&Y===P.y?P:new Ds(P.k,q,Y)}function N(P){return[(+P[0][0]+ +P[1][0])/2,(+P[0][1]+ +P[1][1])/2]}function O(P,G,$,q){P.on("start.zoom",function(){R(this,arguments).event(q).start()}).on("interrupt.zoom end.zoom",function(){R(this,arguments).event(q).end()}).tween("zoom",function(){var Y=this,Q=arguments,V=R(Y,Q).event(q),U=t.apply(Y,Q),Z=$==null?N(U):typeof $=="function"?$.apply(Y,Q):$,F=Math.max(U[1][0]-U[0][0],U[1][1]-U[0][1]),K=Y.__zoom,ee=typeof G=="function"?G.apply(Y,Q):G,te=d(K.invert(Z).concat(F/K.k),ee.invert(Z).concat(F/ee.k));return function(oe){if(oe===1)oe=ee;else{var ae=te(oe),ue=F/ae[2];oe=new Ds(ue,Z[0]-ae[0]*ue,Z[1]-ae[1]*ue)}V.zoom(null,oe)}})}function R(P,G,$){return!$&&P.__zooming||new D(P,G)}function D(P,G){this.that=P,this.args=G,this.active=0,this.sourceEvent=null,this.extent=t.apply(P,G),this.taps=0}D.prototype={event:function(P){return P&&(this.sourceEvent=P),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(P,G){return this.mouse&&P!=="mouse"&&(this.mouse[1]=G.invert(this.mouse[0])),this.touch0&&P!=="touch"&&(this.touch0[1]=G.invert(this.touch0[0])),this.touch1&&P!=="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(P){var G=ur(this.that).datum();m.call(P,this.that,new HY(P,{sourceEvent:this.sourceEvent,target:w,transform:this.that.__zoom,dispatch:m}),G)}};function I(P,...G){if(!e.apply(this,arguments))return;var $=R(this,G).event(P),q=this.__zoom,Y=Math.max(o[0],Math.min(o[1],q.k*Math.pow(2,i.apply(this,arguments)))),Q=zr(P);if($.wheel)($.mouse[0][0]!==Q[0]||$.mouse[0][1]!==Q[1])&&($.mouse[1]=q.invert($.mouse[0]=Q)),clearTimeout($.wheel);else{if(q.k===Y)return;$.mouse=[Q,q.invert(Q)],Hf(this),$.start()}Kc(P),$.wheel=setTimeout(V,v),$.zoom("mouse",n(j(S(q,Y),$.mouse[0],$.mouse[1]),$.extent,a));function V(){$.wheel=null,$.end()}}function L(P,...G){if(g||!e.apply(this,arguments))return;var $=P.currentTarget,q=R(this,G,!0).event(P),Y=ur(P.view).on("mousemove.zoom",Z,!0).on("mouseup.zoom",F,!0),Q=zr(P,$),V=P.clientX,U=P.clientY;bT(P.view),Iy(P),q.mouse=[Q,this.__zoom.invert(Q)],Hf(this),q.start();function Z(K){if(Kc(K),!q.moved){var ee=K.clientX-V,te=K.clientY-U;q.moved=ee*ee+te*te>_}q.event(K).zoom("mouse",n(j(q.that.__zoom,q.mouse[0]=zr(K,$),q.mouse[1]),q.extent,a))}function F(K){Y.on("mousemove.zoom mouseup.zoom",null),_T(K.view,q.moved),Kc(K),q.event(K).end()}}function M(P,...G){if(e.apply(this,arguments)){var $=this.__zoom,q=zr(P.changedTouches?P.changedTouches[0]:P,this),Y=$.invert(q),Q=$.k*(P.shiftKey?.5:2),V=n(j(S($,Q),q,Y),t.apply(this,G),a);Kc(P),c>0?ur(this).transition().duration(c).call(O,V,q,P):ur(this).call(w.transform,V,q,P)}}function A(P,...G){if(e.apply(this,arguments)){var $=P.touches,q=$.length,Y=R(this,G,P.changedTouches.length===q).event(P),Q,V,U,Z;for(Iy(P),V=0;V"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:i})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:i}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs."},Au=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],PT=["Enter"," ","Escape"],BT={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var Dl;(function(e){e.Strict="strict",e.Loose="loose"})(Dl||(Dl={}));var oa;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(oa||(oa={}));var Mu;(function(e){e.Partial="partial",e.Full="full"})(Mu||(Mu={}));const $T={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var vo;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(vo||(vo={}));var km;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(km||(km={}));var ot;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(ot||(ot={}));const t2={[ot.Left]:ot.Right,[ot.Right]:ot.Left,[ot.Top]:ot.Bottom,[ot.Bottom]:ot.Top};function HT(e){return e===null?null:e?"valid":"invalid"}const FT=e=>"id"in e&&"source"in e&&"target"in e,WY=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),F0=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),Gu=(e,t=[0,0])=>{const{width:n,height:i}=Ps(e),r=e.origin??t,o=n*r[0],a=i*r[1];return{x:e.position.x-o,y:e.position.y-a}},YY=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((i,r)=>{const o=typeof r=="string";let a=!t.nodeLookup&&!o?r:void 0;t.nodeLookup&&(a=o?t.nodeLookup.get(r):F0(r)?r:t.nodeLookup.get(r.id));const c=a?Sm(a,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return ip(i,c)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return rp(n)},qu=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},i=!1;return e.forEach(r=>{(t.filter===void 0||t.filter(r))&&(n=ip(n,Sm(r)),i=!0)}),i?rp(n):{x:0,y:0,width:0,height:0}},V0=(e,t,[n,i,r]=[0,0,1],o=!1,a=!1)=>{const c={...Yu(t,[n,i,r]),width:t.width/r,height:t.height/r},d=[];for(const m of e.values()){const{measured:h,selectable:p=!0,hidden:g=!1}=m;if(a&&!p||g)continue;const x=h.width??m.width??m.initialWidth??null,v=h.height??m.height??m.initialHeight??null,_=Du(c,Ll(m)),k=(x??0)*(v??0),w=o&&_>0;(!m.internals.handleBounds||w||_>=k||m.dragging)&&d.push(m)}return d},XY=(e,t)=>{const n=new Set;return e.forEach(i=>{n.add(i.id)}),t.filter(i=>n.has(i.source)||n.has(i.target))};function KY(e,t){const n=new Map,i=t?.nodes?new Set(t.nodes.map(r=>r.id)):null;return e.forEach(r=>{r.measured.width&&r.measured.height&&(t?.includeHiddenNodes||!r.hidden)&&(!i||i.has(r.id))&&n.set(r.id,r)}),n}async function ZY({nodes:e,width:t,height:n,panZoom:i,minZoom:r,maxZoom:o},a){if(e.size===0)return Promise.resolve(!0);const c=KY(e,a),d=qu(c),m=U0(d,t,n,a?.minZoom??r,a?.maxZoom??o,a?.padding??.1);return await i.setViewport(m,{duration:a?.duration,ease:a?.ease,interpolate:a?.interpolate}),Promise.resolve(!0)}function VT({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:i=[0,0],nodeExtent:r,onError:o}){const a=n.get(e),c=a.parentId?n.get(a.parentId):void 0,{x:d,y:m}=c?c.internals.positionAbsolute:{x:0,y:0},h=a.origin??i;let p=a.extent||r;if(a.extent==="parent"&&!a.expandParent)if(!c)o?.("005",as.error005());else{const x=c.measured.width,v=c.measured.height;x&&v&&(p=[[d,m],[d+x,m+v]])}else c&&zl(a.extent)&&(p=[[a.extent[0][0]+d,a.extent[0][1]+m],[a.extent[1][0]+d,a.extent[1][1]+m]]);const g=zl(p)?da(t,p,a.measured):t;return(a.measured.width===void 0||a.measured.height===void 0)&&o?.("015",as.error015()),{position:{x:g.x-d+(a.measured.width??0)*h[0],y:g.y-m+(a.measured.height??0)*h[1]},positionAbsolute:g}}async function QY({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:i,onBeforeDelete:r}){const o=new Set(e.map(g=>g.id)),a=[];for(const g of n){if(g.deletable===!1)continue;const x=o.has(g.id),v=!x&&g.parentId&&a.find(_=>_.id===g.parentId);(x||v)&&a.push(g)}const c=new Set(t.map(g=>g.id)),d=i.filter(g=>g.deletable!==!1),h=XY(a,d);for(const g of d)c.has(g.id)&&!h.find(v=>v.id===g.id)&&h.push(g);if(!r)return{edges:h,nodes:a};const p=await r({nodes:a,edges:h});return typeof p=="boolean"?p?{edges:h,nodes:a}:{edges:[],nodes:[]}:p}const Ol=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),da=(e={x:0,y:0},t,n)=>({x:Ol(e.x,t[0][0],t[1][0]-(n?.width??0)),y:Ol(e.y,t[0][1],t[1][1]-(n?.height??0))});function UT(e,t,n){const{width:i,height:r}=Ps(n),{x:o,y:a}=n.internals.positionAbsolute;return da(e,[[o,a],[o+i,a+r]],t)}const n2=(e,t,n)=>en?-Ol(Math.abs(e-n),1,t)/t:0,GT=(e,t,n=15,i=40)=>{const r=n2(e.x,i,t.width-i)*n,o=n2(e.y,i,t.height-i)*n;return[r,o]},ip=(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)}),Nv=({x:e,y:t,width:n,height:i})=>({x:e,y:t,x2:e+n,y2:t+i}),rp=({x:e,y:t,x2:n,y2:i})=>({x:e,y:t,width:n-e,height:i-t}),Ll=(e,t=[0,0])=>{const{x:n,y:i}=F0(e)?e.internals.positionAbsolute:Gu(e,t);return{x:n,y:i,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},Sm=(e,t=[0,0])=>{const{x:n,y:i}=F0(e)?e.internals.positionAbsolute:Gu(e,t);return{x:n,y:i,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:i+(e.measured?.height??e.height??e.initialHeight??0)}},qT=(e,t)=>rp(ip(Nv(e),Nv(t))),Du=(e,t)=>{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),i=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*i)},i2=e=>Hr(e.width)&&Hr(e.height)&&Hr(e.x)&&Hr(e.y),Hr=e=>!isNaN(e)&&isFinite(e),JY=(e,t)=>{},Wu=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),Yu=({x:e,y:t},[n,i,r],o=!1,a=[1,1])=>{const c={x:(e-n)/r,y:(t-i)/r};return o?Wu(c,a):c},wm=({x:e,y:t},[n,i,r])=>({x:e*r+n,y:t*r+i});function il(e,t){if(typeof e=="number")return Math.floor((t-t/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(n)}if(typeof e=="string"&&e.endsWith("%")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`[React Flow] The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function eX(e,t,n){if(typeof e=="string"||typeof e=="number"){const i=il(e,n),r=il(e,t);return{top:i,right:r,bottom:i,left:r,x:r*2,y:i*2}}if(typeof e=="object"){const i=il(e.top??e.y??0,n),r=il(e.bottom??e.y??0,n),o=il(e.left??e.x??0,t),a=il(e.right??e.x??0,t);return{top:i,right:a,bottom:r,left:o,x:o+a,y:i+r}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function tX(e,t,n,i,r,o){const{x:a,y:c}=wm(e,[t,n,i]),{x:d,y:m}=wm({x:e.x+e.width,y:e.y+e.height},[t,n,i]),h=r-d,p=o-m;return{left:Math.floor(a),top:Math.floor(c),right:Math.floor(h),bottom:Math.floor(p)}}const U0=(e,t,n,i,r,o)=>{const a=eX(o,t,n),c=(t-a.x)/e.width,d=(n-a.y)/e.height,m=Math.min(c,d),h=Ol(m,i,r),p=e.x+e.width/2,g=e.y+e.height/2,x=t/2-p*h,v=n/2-g*h,_=tX(e,x,v,h,t,n),k={left:Math.min(_.left-a.left,0),top:Math.min(_.top-a.top,0),right:Math.min(_.right-a.right,0),bottom:Math.min(_.bottom-a.bottom,0)};return{x:x-k.left+k.right,y:v-k.top+k.bottom,zoom:h}},Ou=()=>typeof navigator<"u"&&navigator?.userAgent?.indexOf("Mac")>=0;function zl(e){return e!=null&&e!=="parent"}function Ps(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 YT(e,t={width:0,height:0},n,i,r){const o={...e},a=i.get(n);if(a){const c=a.origin||r;o.x+=a.internals.positionAbsolute.x-(t.width??0)*c[0],o.y+=a.internals.positionAbsolute.y-(t.height??0)*c[1]}return o}function r2(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function nX(){let e,t;return{promise:new Promise((i,r)=>{e=i,t=r}),resolve:e,reject:t}}function iX(e){return{...BT,...e||{}}}function pu(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:i,containerBounds:r}){const{x:o,y:a}=Fr(e),c=Yu({x:o-(r?.left??0),y:a-(r?.top??0)},i),{x:d,y:m}=n?Wu(c,t):c;return{xSnapped:d,ySnapped:m,...c}}const G0=e=>({width:e.offsetWidth,height:e.offsetHeight}),XT=e=>e?.getRootNode?.()||window?.document,rX=["INPUT","SELECT","TEXTAREA"];function KT(e){const t=e.composedPath?.()?.[0]||e.target;return t?.nodeType!==1?!1:rX.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const ZT=e=>"clientX"in e,Fr=(e,t)=>{const n=ZT(e),i=n?e.clientX:e.touches?.[0].clientX,r=n?e.clientY:e.touches?.[0].clientY;return{x:i-(t?.left??0),y:r-(t?.top??0)}},s2=(e,t,n,i,r)=>{const o=t.querySelectorAll(`.${e}`);return!o||!o.length?null:Array.from(o).map(a=>{const c=a.getBoundingClientRect();return{id:a.getAttribute("data-handleid"),type:e,nodeId:r,position:a.getAttribute("data-handlepos"),x:(c.left-n.left)/i,y:(c.top-n.top)/i,...G0(a)}})};function QT({sourceX:e,sourceY:t,targetX:n,targetY:i,sourceControlX:r,sourceControlY:o,targetControlX:a,targetControlY:c}){const d=e*.125+r*.375+a*.375+n*.125,m=t*.125+o*.375+c*.375+i*.125,h=Math.abs(d-e),p=Math.abs(m-t);return[d,m,h,p]}function wf(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function o2({pos:e,x1:t,y1:n,x2:i,y2:r,c:o}){switch(e){case ot.Left:return[t-wf(t-i,o),n];case ot.Right:return[t+wf(i-t,o),n];case ot.Top:return[t,n-wf(n-r,o)];case ot.Bottom:return[t,n+wf(r-n,o)]}}function JT({sourceX:e,sourceY:t,sourcePosition:n=ot.Bottom,targetX:i,targetY:r,targetPosition:o=ot.Top,curvature:a=.25}){const[c,d]=o2({pos:n,x1:e,y1:t,x2:i,y2:r,c:a}),[m,h]=o2({pos:o,x1:i,y1:r,x2:e,y2:t,c:a}),[p,g,x,v]=QT({sourceX:e,sourceY:t,targetX:i,targetY:r,sourceControlX:c,sourceControlY:d,targetControlX:m,targetControlY:h});return[`M${e},${t} C${c},${d} ${m},${h} ${i},${r}`,p,g,x,v]}function eR({sourceX:e,sourceY:t,targetX:n,targetY:i}){const r=Math.abs(n-e)/2,o=n0}const aX=({source:e,sourceHandle:t,target:n,targetHandle:i})=>`xy-edge__${e}${t||""}-${n}${i||""}`,lX=(e,t)=>t.some(n=>n.source===e.source&&n.target===e.target&&(n.sourceHandle===e.sourceHandle||!n.sourceHandle&&!e.sourceHandle)&&(n.targetHandle===e.targetHandle||!n.targetHandle&&!e.targetHandle)),cX=(e,t,n={})=>{if(!e.source||!e.target)return t;const i=n.getEdgeId||aX;let r;return FT(e)?r={...e}:r={...e,id:i(e)},lX(r,t)?t:(r.sourceHandle===null&&delete r.sourceHandle,r.targetHandle===null&&delete r.targetHandle,t.concat(r))};function tR({sourceX:e,sourceY:t,targetX:n,targetY:i}){const[r,o,a,c]=eR({sourceX:e,sourceY:t,targetX:n,targetY:i});return[`M ${e},${t}L ${n},${i}`,r,o,a,c]}const a2={[ot.Left]:{x:-1,y:0},[ot.Right]:{x:1,y:0},[ot.Top]:{x:0,y:-1},[ot.Bottom]:{x:0,y:1}},uX=({source:e,sourcePosition:t=ot.Bottom,target:n})=>t===ot.Left||t===ot.Right?e.xMath.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function dX({source:e,sourcePosition:t=ot.Bottom,target:n,targetPosition:i=ot.Top,center:r,offset:o,stepPosition:a}){const c=a2[t],d=a2[i],m={x:e.x+c.x*o,y:e.y+c.y*o},h={x:n.x+d.x*o,y:n.y+d.y*o},p=uX({source:m,sourcePosition:t,target:h}),g=p.x!==0?"x":"y",x=p[g];let v=[],_,k;const w={x:0,y:0},S={x:0,y:0},[,,j,N]=eR({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(c[g]*d[g]===-1){g==="x"?(_=r.x??m.x+(h.x-m.x)*a,k=r.y??(m.y+h.y)/2):(_=r.x??(m.x+h.x)/2,k=r.y??m.y+(h.y-m.y)*a);const I=[{x:_,y:m.y},{x:_,y:h.y}],L=[{x:m.x,y:k},{x:h.x,y:k}];c[g]===x?v=g==="x"?I:L:v=g==="x"?L:I}else{const I=[{x:m.x,y:h.y}],L=[{x:h.x,y:m.y}];if(g==="x"?v=c.x===x?L:I:v=c.y===x?I:L,t===i){const P=Math.abs(e[g]-n[g]);if(P<=o){const G=Math.min(o-1,o-P);c[g]===x?w[g]=(m[g]>e[g]?-1:1)*G:S[g]=(h[g]>n[g]?-1:1)*G}}if(t!==i){const P=g==="x"?"y":"x",G=c[g]===d[P],$=m[P]>h[P],q=m[P]=W?(_=(M.x+A.x)/2,k=v[0].y):(_=v[0].x,k=(M.y+A.y)/2)}const O={x:m.x+w.x,y:m.y+w.y},R={x:h.x+S.x,y:h.y+S.y};return[[e,...O.x!==v[0].x||O.y!==v[0].y?[O]:[],...v,...R.x!==v[v.length-1].x||R.y!==v[v.length-1].y?[R]:[],n],_,k,j,N]}function fX(e,t,n,i){const r=Math.min(l2(e,t)/2,l2(t,n)/2,i),{x:o,y:a}=t;if(e.x===o&&o===n.x||e.y===a&&a===n.y)return`L${o} ${a}`;if(e.y===a){const m=e.xn.id===t):e[0])||null}function Tv(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(i=>`${i}=${e[i]}`).join("&")}`:""}function pX(e,{id:t,defaultColor:n,defaultMarkerStart:i,defaultMarkerEnd:r}){const o=new Set;return e.reduce((a,c)=>([c.markerStart||i,c.markerEnd||r].forEach(d=>{if(d&&typeof d=="object"){const m=Tv(d,t);o.has(m)||(a.push({id:m,color:d.color||n,...d}),o.add(m))}}),a),[]).sort((a,c)=>a.id.localeCompare(c.id))}const nR=1e3,hX=10,q0={nodeOrigin:[0,0],nodeExtent:Au,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},gX={...q0,checkEquality:!0};function W0(e,t){const n={...e};for(const i in t)t[i]!==void 0&&(n[i]=t[i]);return n}function yX(e,t,n){const i=W0(q0,n);for(const r of e.values())if(r.parentId)X0(r,e,t,i);else{const o=Gu(r,i.nodeOrigin),a=zl(r.extent)?r.extent:i.nodeExtent,c=da(o,a,Ps(r));r.internals.positionAbsolute=c}}function xX(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;const n=[],i=[];for(const r of e.handles){const o={id:r.id,width:r.width??1,height:r.height??1,nodeId:e.id,x:r.x,y:r.y,position:r.position,type:r.type};r.type==="source"?n.push(o):r.type==="target"&&i.push(o)}return{source:n,target:i}}function Y0(e){return e==="manual"}function Rv(e,t,n,i={}){const r=W0(gX,i),o={i:0},a=new Map(t),c=r?.elevateNodesOnSelect&&!Y0(r.zIndexMode)?nR:0;let d=e.length>0,m=!1;t.clear(),n.clear();for(const h of e){let p=a.get(h.id);if(r.checkEquality&&h===p?.internals.userNode)t.set(h.id,p);else{const g=Gu(h,r.nodeOrigin),x=zl(h.extent)?h.extent:r.nodeExtent,v=da(g,x,Ps(h));p={...r.defaults,...h,measured:{width:h.measured?.width,height:h.measured?.height},internals:{positionAbsolute:v,handleBounds:xX(h,p),z:iR(h,c,r.zIndexMode),userNode:h}},t.set(h.id,p)}(p.measured===void 0||p.measured.width===void 0||p.measured.height===void 0)&&!p.hidden&&(d=!1),h.parentId&&X0(p,t,n,i,o),m||=h.selected??!1}return{nodesInitialized:d,hasSelectedNodes:m}}function vX(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 X0(e,t,n,i,r){const{elevateNodesOnSelect:o,nodeOrigin:a,nodeExtent:c,zIndexMode:d}=W0(q0,i),m=e.parentId,h=t.get(m);if(!h){console.warn(`Parent node ${m} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}vX(e,n),r&&!h.parentId&&h.internals.rootParentIndex===void 0&&d==="auto"&&(h.internals.rootParentIndex=++r.i,h.internals.z=h.internals.z+r.i*hX),r&&h.internals.rootParentIndex!==void 0&&(r.i=h.internals.rootParentIndex);const p=o&&!Y0(d)?nR:0,{x:g,y:x,z:v}=bX(e,h,a,c,p,d),{positionAbsolute:_}=e.internals,k=g!==_.x||x!==_.y;(k||v!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:k?{x:g,y:x}:_,z:v}})}function iR(e,t,n){const i=Hr(e.zIndex)?e.zIndex:0;return Y0(n)?i:i+(e.selected?t:0)}function bX(e,t,n,i,r,o){const{x:a,y:c}=t.internals.positionAbsolute,d=Ps(e),m=Gu(e,n),h=zl(e.extent)?da(m,e.extent,d):m;let p=da({x:a+h.x,y:c+h.y},i,d);e.extent==="parent"&&(p=UT(p,d,t));const g=iR(e,r,o),x=t.internals.z??0;return{x:p.x,y:p.y,z:x>=g?x+1:g}}function K0(e,t,n,i=[0,0]){const r=[],o=new Map;for(const a of e){const c=t.get(a.parentId);if(!c)continue;const d=o.get(a.parentId)?.expandedRect??Ll(c),m=qT(d,a.rect);o.set(a.parentId,{expandedRect:m,parent:c})}return o.size>0&&o.forEach(({expandedRect:a,parent:c},d)=>{const m=c.internals.positionAbsolute,h=Ps(c),p=c.origin??i,g=a.x0||x>0||k||w)&&(r.push({id:d,type:"position",position:{x:c.position.x-g+k,y:c.position.y-x+w}}),n.get(d)?.forEach(S=>{e.some(j=>j.id===S.id)||r.push({id:S.id,type:"position",position:{x:S.position.x+g,y:S.position.y+x}})})),(h.width0){const x=K0(g,t,n,r);m.push(...x)}return{changes:m,updatedInternals:d}}async function kX({delta:e,panZoom:t,transform:n,translateExtent:i,width:r,height:o}){if(!t||!e.x&&!e.y)return Promise.resolve(!1);const a=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[r,o]],i),c=!!a&&(a.x!==n[0]||a.y!==n[1]||a.k!==n[2]);return Promise.resolve(c)}function f2(e,t,n,i,r,o){let a=r;const c=i.get(a)||new Map;i.set(a,c.set(n,t)),a=`${r}-${e}`;const d=i.get(a)||new Map;if(i.set(a,d.set(n,t)),o){a=`${r}-${e}-${o}`;const m=i.get(a)||new Map;i.set(a,m.set(n,t))}}function rR(e,t,n){e.clear(),t.clear();for(const i of n){const{source:r,target:o,sourceHandle:a=null,targetHandle:c=null}=i,d={edgeId:i.id,source:r,target:o,sourceHandle:a,targetHandle:c},m=`${r}-${a}--${o}-${c}`,h=`${o}-${c}--${r}-${a}`;f2("source",d,h,e,r,a),f2("target",d,m,e,o,c),t.set(i.id,i)}}function sR(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:sR(n,t):!1}function m2(e,t,n){let i=e;do{if(i?.matches?.(t))return!0;if(i===n)return!1;i=i?.parentElement}while(i);return!1}function SX(e,t,n,i){const r=new Map;for(const[o,a]of e)if((a.selected||a.id===i)&&(!a.parentId||!sR(a,e))&&(a.draggable||t&&typeof a.draggable>"u")){const c=e.get(o);c&&r.set(o,{id:o,position:c.position||{x:0,y:0},distance:{x:n.x-c.internals.positionAbsolute.x,y:n.y-c.internals.positionAbsolute.y},extent:c.extent,parentId:c.parentId,origin:c.origin,expandParent:c.expandParent,internals:{positionAbsolute:c.internals.positionAbsolute||{x:0,y:0}},measured:{width:c.measured.width??0,height:c.measured.height??0}})}return r}function Ty({nodeId:e,dragItems:t,nodeLookup:n,dragging:i=!0}){const r=[];for(const[a,c]of t){const d=n.get(a)?.internals.userNode;d&&r.push({...d,position:c.position,dragging:i})}if(!e)return[r[0],r];const o=n.get(e)?.internals.userNode;return[o?{...o,position:t.get(e)?.position||o.position,dragging:i}:r[0],r]}function wX({dragItems:e,snapGrid:t,x:n,y:i}){const r=e.values().next().value;if(!r)return null;const o={x:n-r.distance.x,y:i-r.distance.y},a=Wu(o,t);return{x:a.x-o.x,y:a.y-o.y}}function CX({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:i,onDragStop:r}){let o={x:null,y:null},a=0,c=new Map,d=!1,m={x:0,y:0},h=null,p=!1,g=null,x=!1,v=!1,_=null;function k({noDragClassName:S,handleSelector:j,domNode:N,isSelectable:O,nodeId:R,nodeClickDistance:D=0}){g=ur(N);function I({x:B,y:W}){const{nodeLookup:P,nodeExtent:G,snapGrid:$,snapToGrid:q,nodeOrigin:Y,onNodeDrag:Q,onSelectionDrag:V,onError:U,updateNodePositions:Z}=t();o={x:B,y:W};let F=!1;const K=c.size>1,ee=K&&G?Nv(qu(c)):null,te=K&&q?wX({dragItems:c,snapGrid:$,x:B,y:W}):null;for(const[oe,ae]of c){if(!P.has(oe))continue;let ue={x:B-ae.distance.x,y:W-ae.distance.y};q&&(ue=te?{x:Math.round(ue.x+te.x),y:Math.round(ue.y+te.y)}:Wu(ue,$));let ie=null;if(K&&G&&!ae.extent&&ee){const{positionAbsolute:Te}=ae.internals,qe=Te.x-ee.x+G[0][0],Ze=Te.x+ae.measured.width-ee.x2+G[1][0],Xe=Te.y-ee.y+G[0][1],pt=Te.y+ae.measured.height-ee.y2+G[1][1];ie=[[qe,Xe],[Ze,pt]]}const{position:we,positionAbsolute:je}=VT({nodeId:oe,nextPosition:ue,nodeLookup:P,nodeExtent:ie||G,nodeOrigin:Y,onError:U});F=F||ae.position.x!==we.x||ae.position.y!==we.y,ae.position=we,ae.internals.positionAbsolute=je}if(v=v||F,!!F&&(Z(c,!0),_&&(i||Q||!R&&V))){const[oe,ae]=Ty({nodeId:R,dragItems:c,nodeLookup:P});i?.(_,c,oe,ae),Q?.(_,oe,ae),R||V?.(_,ae)}}async function L(){if(!h)return;const{transform:B,panBy:W,autoPanSpeed:P,autoPanOnNodeDrag:G}=t();if(!G){d=!1,cancelAnimationFrame(a);return}const[$,q]=GT(m,h,P);($!==0||q!==0)&&(o.x=(o.x??0)-$/B[2],o.y=(o.y??0)-q/B[2],await W({x:$,y:q})&&I(o)),a=requestAnimationFrame(L)}function M(B){const{nodeLookup:W,multiSelectionActive:P,nodesDraggable:G,transform:$,snapGrid:q,snapToGrid:Y,selectNodesOnDrag:Q,onNodeDragStart:V,onSelectionDragStart:U,unselectNodesAndEdges:Z}=t();p=!0,(!Q||!O)&&!P&&R&&(W.get(R)?.selected||Z()),O&&Q&&R&&e?.(R);const F=pu(B.sourceEvent,{transform:$,snapGrid:q,snapToGrid:Y,containerBounds:h});if(o=F,c=SX(W,G,F,R),c.size>0&&(n||V||!R&&U)){const[K,ee]=Ty({nodeId:R,dragItems:c,nodeLookup:W});n?.(B.sourceEvent,c,K,ee),V?.(B.sourceEvent,K,ee),R||U?.(B.sourceEvent,ee)}}const A=kT().clickDistance(D).on("start",B=>{const{domNode:W,nodeDragThreshold:P,transform:G,snapGrid:$,snapToGrid:q}=t();h=W?.getBoundingClientRect()||null,x=!1,v=!1,_=B.sourceEvent,P===0&&M(B),o=pu(B.sourceEvent,{transform:G,snapGrid:$,snapToGrid:q,containerBounds:h}),m=Fr(B.sourceEvent,h)}).on("drag",B=>{const{autoPanOnNodeDrag:W,transform:P,snapGrid:G,snapToGrid:$,nodeDragThreshold:q,nodeLookup:Y}=t(),Q=pu(B.sourceEvent,{transform:P,snapGrid:G,snapToGrid:$,containerBounds:h});if(_=B.sourceEvent,(B.sourceEvent.type==="touchmove"&&B.sourceEvent.touches.length>1||R&&!Y.has(R))&&(x=!0),!x){if(!d&&W&&p&&(d=!0,L()),!p){const V=Fr(B.sourceEvent,h),U=V.x-m.x,Z=V.y-m.y;Math.sqrt(U*U+Z*Z)>q&&M(B)}(o.x!==Q.xSnapped||o.y!==Q.ySnapped)&&c&&p&&(m=Fr(B.sourceEvent,h),I(Q))}}).on("end",B=>{if(!(!p||x)&&(d=!1,p=!1,cancelAnimationFrame(a),c.size>0)){const{nodeLookup:W,updateNodePositions:P,onNodeDragStop:G,onSelectionDragStop:$}=t();if(v&&(P(c,!1),v=!1),r||G||!R&&$){const[q,Y]=Ty({nodeId:R,dragItems:c,nodeLookup:W,dragging:!1});r?.(B.sourceEvent,c,q,Y),G?.(B.sourceEvent,q,Y),R||$?.(B.sourceEvent,Y)}}}).filter(B=>{const W=B.target;return!B.button&&(!S||!m2(W,`.${S}`,N))&&(!j||m2(W,j,N))});g.call(A)}function w(){g?.on(".drag",null)}return{update:k,destroy:w}}function jX(e,t,n){const i=[],r={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const o of t.values())Du(r,Ll(o))>0&&i.push(o);return i}const EX=250;function NX(e,t,n,i){let r=[],o=1/0;const a=jX(e,n,t+EX);for(const c of a){const d=[...c.internals.handleBounds?.source??[],...c.internals.handleBounds?.target??[]];for(const m of d){if(i.nodeId===m.nodeId&&i.type===m.type&&i.id===m.id)continue;const{x:h,y:p}=fa(c,m,m.position,!0),g=Math.sqrt(Math.pow(h-e.x,2)+Math.pow(p-e.y,2));g>t||(g1){const c=i.type==="source"?"target":"source";return r.find(d=>d.type===c)??r[0]}return r[0]}function oR(e,t,n,i,r,o=!1){const a=i.get(e);if(!a)return null;const c=r==="strict"?a.internals.handleBounds?.[t]:[...a.internals.handleBounds?.source??[],...a.internals.handleBounds?.target??[]],d=(n?c?.find(m=>m.id===n):c?.[0])??null;return d&&o?{...d,...fa(a,d,d.position,!0)}:d}function aR(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function IX(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const lR=()=>!0;function TX(e,{connectionMode:t,connectionRadius:n,handleId:i,nodeId:r,edgeUpdaterType:o,isTarget:a,domNode:c,nodeLookup:d,lib:m,autoPanOnConnect:h,flowId:p,panBy:g,cancelConnection:x,onConnectStart:v,onConnect:_,onConnectEnd:k,isValidConnection:w=lR,onReconnectEnd:S,updateConnection:j,getTransform:N,getFromHandle:O,autoPanSpeed:R,dragThreshold:D=1,handleDomNode:I}){const L=XT(e.target);let M=0,A;const{x:B,y:W}=Fr(e),P=aR(o,I),G=c?.getBoundingClientRect();let $=!1;if(!G||!P)return;const q=oR(r,P,i,d,t);if(!q)return;let Y=Fr(e,G),Q=!1,V=null,U=!1,Z=null;function F(){if(!h||!G)return;const[we,je]=GT(Y,G,R);g({x:we,y:je}),M=requestAnimationFrame(F)}const K={...q,nodeId:r,type:P,position:q.position},ee=d.get(r);let oe={inProgress:!0,isValid:null,from:fa(ee,K,ot.Left,!0),fromHandle:K,fromPosition:K.position,fromNode:ee,to:Y,toHandle:null,toPosition:t2[K.position],toNode:null,pointer:Y};function ae(){$=!0,j(oe),v?.(e,{nodeId:r,handleId:i,handleType:P})}D===0&&ae();function ue(we){if(!$){const{x:pt,y:Ut}=Fr(we),Pt=pt-B,It=Ut-W;if(!(Pt*Pt+It*It>D*D))return;ae()}if(!O()||!K){ie(we);return}const je=N();Y=Fr(we,G),A=NX(Yu(Y,je,!1,[1,1]),n,d,K),Q||(F(),Q=!0);const Te=cR(we,{handle:A,connectionMode:t,fromNodeId:r,fromHandleId:i,fromType:a?"target":"source",isValidConnection:w,doc:L,lib:m,flowId:p,nodeLookup:d});Z=Te.handleDomNode,V=Te.connection,U=IX(!!A,Te.isValid);const qe=d.get(r),Ze=qe?fa(qe,K,ot.Left,!0):oe.from,Xe={...oe,from:Ze,isValid:U,to:Te.toHandle&&U?wm({x:Te.toHandle.x,y:Te.toHandle.y},je):Y,toHandle:Te.toHandle,toPosition:U&&Te.toHandle?Te.toHandle.position:t2[K.position],toNode:Te.toHandle?d.get(Te.toHandle.nodeId):null,pointer:Y};j(Xe),oe=Xe}function ie(we){if(!("touches"in we&&we.touches.length>0)){if($){(A||Z)&&V&&U&&_?.(V);const{inProgress:je,...Te}=oe,qe={...Te,toPosition:oe.toHandle?oe.toPosition:null};k?.(we,qe),o&&S?.(we,qe)}x(),cancelAnimationFrame(M),Q=!1,U=!1,V=null,Z=null,L.removeEventListener("mousemove",ue),L.removeEventListener("mouseup",ie),L.removeEventListener("touchmove",ue),L.removeEventListener("touchend",ie)}}L.addEventListener("mousemove",ue),L.addEventListener("mouseup",ie),L.addEventListener("touchmove",ue),L.addEventListener("touchend",ie)}function cR(e,{handle:t,connectionMode:n,fromNodeId:i,fromHandleId:r,fromType:o,doc:a,lib:c,flowId:d,isValidConnection:m=lR,nodeLookup:h}){const p=o==="target",g=t?a.querySelector(`.${c}-flow__handle[data-id="${d}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x,y:v}=Fr(e),_=a.elementFromPoint(x,v),k=_?.classList.contains(`${c}-flow__handle`)?_:g,w={handleDomNode:k,isValid:!1,connection:null,toHandle:null};if(k){const S=aR(void 0,k),j=k.getAttribute("data-nodeid"),N=k.getAttribute("data-handleid"),O=k.classList.contains("connectable"),R=k.classList.contains("connectableend");if(!j||!S)return w;const D={source:p?j:i,sourceHandle:p?N:r,target:p?i:j,targetHandle:p?r:N};w.connection=D;const L=O&&R&&(n===Dl.Strict?p&&S==="source"||!p&&S==="target":j!==i||N!==r);w.isValid=L&&m(D),w.toHandle=oR(j,S,N,h,n,!0)}return w}const Av={onPointerDown:TX,isValid:cR};function RX({domNode:e,panZoom:t,getTransform:n,getViewScale:i}){const r=ur(e);function o({translateExtent:c,width:d,height:m,zoomStep:h=1,pannable:p=!0,zoomable:g=!0,inversePan:x=!1}){const v=j=>{if(j.sourceEvent.type!=="wheel"||!t)return;const N=n(),O=j.sourceEvent.ctrlKey&&Ou()?10:1,R=-j.sourceEvent.deltaY*(j.sourceEvent.deltaMode===1?.05:j.sourceEvent.deltaMode?1:.002)*h,D=N[2]*Math.pow(2,R*O);t.scaleTo(D)};let _=[0,0];const k=j=>{(j.sourceEvent.type==="mousedown"||j.sourceEvent.type==="touchstart")&&(_=[j.sourceEvent.clientX??j.sourceEvent.touches[0].clientX,j.sourceEvent.clientY??j.sourceEvent.touches[0].clientY])},w=j=>{const N=n();if(j.sourceEvent.type!=="mousemove"&&j.sourceEvent.type!=="touchmove"||!t)return;const O=[j.sourceEvent.clientX??j.sourceEvent.touches[0].clientX,j.sourceEvent.clientY??j.sourceEvent.touches[0].clientY],R=[O[0]-_[0],O[1]-_[1]];_=O;const D=i()*Math.max(N[2],Math.log(N[2]))*(x?-1:1),I={x:N[0]-R[0]*D,y:N[1]-R[1]*D},L=[[0,0],[d,m]];t.setViewportConstrained({x:I.x,y:I.y,zoom:N[2]},L,c)},S=zT().on("start",k).on("zoom",p?w:null).on("zoom.wheel",g?v:null);r.call(S,{})}function a(){r.on("zoom",null)}return{update:o,destroy:a,pointer:zr}}const sp=e=>({x:e.x,y:e.y,zoom:e.k}),Ry=({x:e,y:t,zoom:n})=>np.translate(e,t).scale(n),ul=(e,t)=>e.target.closest(`.${t}`),uR=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),AX=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,Ay=(e,t=0,n=AX,i=()=>{})=>{const r=typeof t=="number"&&t>0;return r||i(),r?e.transition().duration(t).ease(n).on("end",i):e},dR=e=>{const t=e.ctrlKey&&Ou()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function MX({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:i,panOnScrollMode:r,panOnScrollSpeed:o,zoomOnPinch:a,onPanZoomStart:c,onPanZoom:d,onPanZoomEnd:m}){return h=>{if(ul(h,t))return h.ctrlKey&&h.preventDefault(),!1;h.preventDefault(),h.stopImmediatePropagation();const p=n.property("__zoom").k||1;if(h.ctrlKey&&a){const k=zr(h),w=dR(h),S=p*Math.pow(2,w);i.scaleTo(n,S,k,h);return}const g=h.deltaMode===1?20:1;let x=r===oa.Vertical?0:h.deltaX*g,v=r===oa.Horizontal?0:h.deltaY*g;!Ou()&&h.shiftKey&&r!==oa.Vertical&&(x=h.deltaY*g,v=0),i.translateBy(n,-(x/p)*o,-(v/p)*o,{internal:!0});const _=sp(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(d?.(h,_),e.panScrollTimeout=setTimeout(()=>{m?.(h,_),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,c?.(h,_))}}function DX({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(i,r){const o=i.type==="wheel",a=!t&&o&&!i.ctrlKey,c=ul(i,e);if(i.ctrlKey&&o&&c&&i.preventDefault(),a||c)return null;i.preventDefault(),n.call(this,i,r)}}function OX({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return i=>{if(i.sourceEvent?.internal)return;const r=sp(i.transform);e.mouseButton=i.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=r,i.sourceEvent?.type==="mousedown"&&t(!0),n&&n?.(i.sourceEvent,r)}}function LX({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:i,onPanZoom:r}){return o=>{e.usedRightMouseButton=!!(n&&uR(t,e.mouseButton??0)),o.sourceEvent?.sync||i([o.transform.x,o.transform.y,o.transform.k]),r&&!o.sourceEvent?.internal&&r?.(o.sourceEvent,sp(o.transform))}}function zX({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:i,onPanZoomEnd:r,onPaneContextMenu:o}){return a=>{if(!a.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,o&&uR(t,e.mouseButton??0)&&!e.usedRightMouseButton&&a.sourceEvent&&o(a.sourceEvent),e.usedRightMouseButton=!1,i(!1),r)){const c=sp(a.transform);e.prevViewport=c,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{r?.(a.sourceEvent,c)},n?150:0)}}}function PX({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:i,panOnScroll:r,zoomOnDoubleClick:o,userSelectionActive:a,noWheelClassName:c,noPanClassName:d,lib:m,connectionInProgress:h}){return p=>{const g=e||t,x=n&&p.ctrlKey,v=p.type==="wheel";if(p.button===1&&p.type==="mousedown"&&(ul(p,`${m}-flow__node`)||ul(p,`${m}-flow__edge`)))return!0;if(!i&&!g&&!r&&!o&&!n||a||h&&!v||ul(p,c)&&v||ul(p,d)&&(!v||r&&v&&!e)||!n&&p.ctrlKey&&v)return!1;if(!n&&p.type==="touchstart"&&p.touches?.length>1)return p.preventDefault(),!1;if(!g&&!r&&!x&&v||!i&&(p.type==="mousedown"||p.type==="touchstart")||Array.isArray(i)&&!i.includes(p.button)&&p.type==="mousedown")return!1;const _=Array.isArray(i)&&i.includes(p.button)||!p.button||p.button<=1;return(!p.ctrlKey||v)&&_}}function BX({domNode:e,minZoom:t,maxZoom:n,translateExtent:i,viewport:r,onPanZoom:o,onPanZoomStart:a,onPanZoomEnd:c,onDraggingChange:d}){const m={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},h=e.getBoundingClientRect(),p=zT().scaleExtent([t,n]).translateExtent(i),g=ur(e).call(p);S({x:r.x,y:r.y,zoom:Ol(r.zoom,t,n)},[[0,0],[h.width,h.height]],i);const x=g.on("wheel.zoom"),v=g.on("dblclick.zoom");p.wheelDelta(dR);function _(A,B){return g?new Promise(W=>{p?.interpolate(B?.interpolate==="linear"?mu:Pf).transform(Ay(g,B?.duration,B?.ease,()=>W(!0)),A)}):Promise.resolve(!1)}function k({noWheelClassName:A,noPanClassName:B,onPaneContextMenu:W,userSelectionActive:P,panOnScroll:G,panOnDrag:$,panOnScrollMode:q,panOnScrollSpeed:Y,preventScrolling:Q,zoomOnPinch:V,zoomOnScroll:U,zoomOnDoubleClick:Z,zoomActivationKeyPressed:F,lib:K,onTransformChange:ee,connectionInProgress:te,paneClickDistance:oe,selectionOnDrag:ae}){P&&!m.isZoomingOrPanning&&w();const ue=G&&!F&&!P;p.clickDistance(ae?1/0:!Hr(oe)||oe<0?0:oe);const ie=ue?MX({zoomPanValues:m,noWheelClassName:A,d3Selection:g,d3Zoom:p,panOnScrollMode:q,panOnScrollSpeed:Y,zoomOnPinch:V,onPanZoomStart:a,onPanZoom:o,onPanZoomEnd:c}):DX({noWheelClassName:A,preventScrolling:Q,d3ZoomHandler:x});if(g.on("wheel.zoom",ie,{passive:!1}),!P){const je=OX({zoomPanValues:m,onDraggingChange:d,onPanZoomStart:a});p.on("start",je);const Te=LX({zoomPanValues:m,panOnDrag:$,onPaneContextMenu:!!W,onPanZoom:o,onTransformChange:ee});p.on("zoom",Te);const qe=zX({zoomPanValues:m,panOnDrag:$,panOnScroll:G,onPaneContextMenu:W,onPanZoomEnd:c,onDraggingChange:d});p.on("end",qe)}const we=PX({zoomActivationKeyPressed:F,panOnDrag:$,zoomOnScroll:U,panOnScroll:G,zoomOnDoubleClick:Z,zoomOnPinch:V,userSelectionActive:P,noPanClassName:B,noWheelClassName:A,lib:K,connectionInProgress:te});p.filter(we),Z?g.on("dblclick.zoom",v):g.on("dblclick.zoom",null)}function w(){p.on("zoom",null)}async function S(A,B,W){const P=Ry(A),G=p?.constrain()(P,B,W);return G&&await _(G),new Promise($=>$(G))}async function j(A,B){const W=Ry(A);return await _(W,B),new Promise(P=>P(W))}function N(A){if(g){const B=Ry(A),W=g.property("__zoom");(W.k!==A.zoom||W.x!==A.x||W.y!==A.y)&&p?.transform(g,B,null,{sync:!0})}}function O(){const A=g?LT(g.node()):{x:0,y:0,k:1};return{x:A.x,y:A.y,zoom:A.k}}function R(A,B){return g?new Promise(W=>{p?.interpolate(B?.interpolate==="linear"?mu:Pf).scaleTo(Ay(g,B?.duration,B?.ease,()=>W(!0)),A)}):Promise.resolve(!1)}function D(A,B){return g?new Promise(W=>{p?.interpolate(B?.interpolate==="linear"?mu:Pf).scaleBy(Ay(g,B?.duration,B?.ease,()=>W(!0)),A)}):Promise.resolve(!1)}function I(A){p?.scaleExtent(A)}function L(A){p?.translateExtent(A)}function M(A){const B=!Hr(A)||A<0?0:A;p?.clickDistance(B)}return{update:k,destroy:w,setViewport:j,setViewportConstrained:S,getViewport:O,scaleTo:R,scaleBy:D,setScaleExtent:I,setTranslateExtent:L,syncViewport:N,setClickDistance:M}}var Pl;(function(e){e.Line="line",e.Handle="handle"})(Pl||(Pl={}));function $X({width:e,prevWidth:t,height:n,prevHeight:i,affectsX:r,affectsY:o}){const a=e-t,c=n-i,d=[a>0?1:a<0?-1:0,c>0?1:c<0?-1:0];return a&&r&&(d[0]=d[0]*-1),c&&o&&(d[1]=d[1]*-1),d}function p2(e){const t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),i=e.includes("left"),r=e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:i,affectsY:r}}function go(e,t){return Math.max(0,t-e)}function yo(e,t){return Math.max(0,e-t)}function Cf(e,t,n){return Math.max(0,t-e,e-n)}function h2(e,t){return e?!t:t}function HX(e,t,n,i,r,o,a,c){let{affectsX:d,affectsY:m}=t;const{isHorizontal:h,isVertical:p}=t,g=h&&p,{xSnapped:x,ySnapped:v}=n,{minWidth:_,maxWidth:k,minHeight:w,maxHeight:S}=i,{x:j,y:N,width:O,height:R,aspectRatio:D}=e;let I=Math.floor(h?x-e.pointerX:0),L=Math.floor(p?v-e.pointerY:0);const M=O+(d?-I:I),A=R+(m?-L:L),B=-o[0]*O,W=-o[1]*R;let P=Cf(M,_,k),G=Cf(A,w,S);if(a){let Y=0,Q=0;d&&I<0?Y=go(j+I+B,a[0][0]):!d&&I>0&&(Y=yo(j+M+B,a[1][0])),m&&L<0?Q=go(N+L+W,a[0][1]):!m&&L>0&&(Q=yo(N+A+W,a[1][1])),P=Math.max(P,Y),G=Math.max(G,Q)}if(c){let Y=0,Q=0;d&&I>0?Y=yo(j+I,c[0][0]):!d&&I<0&&(Y=go(j+M,c[1][0])),m&&L>0?Q=yo(N+L,c[0][1]):!m&&L<0&&(Q=go(N+A,c[1][1])),P=Math.max(P,Y),G=Math.max(G,Q)}if(r){if(h){const Y=Cf(M/D,w,S)*D;if(P=Math.max(P,Y),a){let Q=0;!d&&!m||d&&!m&&g?Q=yo(N+W+M/D,a[1][1])*D:Q=go(N+W+(d?I:-I)/D,a[0][1])*D,P=Math.max(P,Q)}if(c){let Q=0;!d&&!m||d&&!m&&g?Q=go(N+M/D,c[1][1])*D:Q=yo(N+(d?I:-I)/D,c[0][1])*D,P=Math.max(P,Q)}}if(p){const Y=Cf(A*D,_,k)/D;if(G=Math.max(G,Y),a){let Q=0;!d&&!m||m&&!d&&g?Q=yo(j+A*D+B,a[1][0])/D:Q=go(j+(m?L:-L)*D+B,a[0][0])/D,G=Math.max(G,Q)}if(c){let Q=0;!d&&!m||m&&!d&&g?Q=go(j+A*D,c[1][0])/D:Q=yo(j+(m?L:-L)*D,c[0][0])/D,G=Math.max(G,Q)}}}L=L+(L<0?G:-G),I=I+(I<0?P:-P),r&&(g?M>A*D?L=(h2(d,m)?-I:I)/D:I=(h2(d,m)?-L:L)*D:h?(L=I/D,m=d):(I=L*D,d=m));const $=d?j+I:j,q=m?N+L:N;return{width:O+(d?-I:I),height:R+(m?-L:L),x:o[0]*I*(d?-1:1)+$,y:o[1]*L*(m?-1:1)+q}}const fR={width:0,height:0,x:0,y:0},FX={...fR,pointerX:0,pointerY:0,aspectRatio:1};function VX(e){return[[0,0],[e.measured.width,e.measured.height]]}function UX(e,t,n){const i=t.position.x+e.position.x,r=t.position.y+e.position.y,o=e.measured.width??0,a=e.measured.height??0,c=n[0]*o,d=n[1]*a;return[[i-c,r-d],[i+o-c,r+a-d]]}function GX({domNode:e,nodeId:t,getStoreItems:n,onChange:i,onEnd:r}){const o=ur(e);let a={controlDirection:p2("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function c({controlPosition:m,boundaries:h,keepAspectRatio:p,resizeDirection:g,onResizeStart:x,onResize:v,onResizeEnd:_,shouldResize:k}){let w={...fR},S={...FX};a={boundaries:h,resizeDirection:g,keepAspectRatio:p,controlDirection:p2(m)};let j,N=null,O=[],R,D,I,L=!1;const M=kT().on("start",A=>{const{nodeLookup:B,transform:W,snapGrid:P,snapToGrid:G,nodeOrigin:$,paneDomNode:q}=n();if(j=B.get(t),!j)return;N=q?.getBoundingClientRect()??null;const{xSnapped:Y,ySnapped:Q}=pu(A.sourceEvent,{transform:W,snapGrid:P,snapToGrid:G,containerBounds:N});w={width:j.measured.width??0,height:j.measured.height??0,x:j.position.x??0,y:j.position.y??0},S={...w,pointerX:Y,pointerY:Q,aspectRatio:w.width/w.height},R=void 0,j.parentId&&(j.extent==="parent"||j.expandParent)&&(R=B.get(j.parentId),D=R&&j.extent==="parent"?VX(R):void 0),O=[],I=void 0;for(const[V,U]of B)if(U.parentId===t&&(O.push({id:V,position:{...U.position},extent:U.extent}),U.extent==="parent"||U.expandParent)){const Z=UX(U,j,U.origin??$);I?I=[[Math.min(Z[0][0],I[0][0]),Math.min(Z[0][1],I[0][1])],[Math.max(Z[1][0],I[1][0]),Math.max(Z[1][1],I[1][1])]]:I=Z}x?.(A,{...w})}).on("drag",A=>{const{transform:B,snapGrid:W,snapToGrid:P,nodeOrigin:G}=n(),$=pu(A.sourceEvent,{transform:B,snapGrid:W,snapToGrid:P,containerBounds:N}),q=[];if(!j)return;const{x:Y,y:Q,width:V,height:U}=w,Z={},F=j.origin??G,{width:K,height:ee,x:te,y:oe}=HX(S,a.controlDirection,$,a.boundaries,a.keepAspectRatio,F,D,I),ae=K!==V,ue=ee!==U,ie=te!==Y&&ae,we=oe!==Q&&ue;if(!ie&&!we&&!ae&&!ue)return;if((ie||we||F[0]===1||F[1]===1)&&(Z.x=ie?te:w.x,Z.y=we?oe:w.y,w.x=Z.x,w.y=Z.y,O.length>0)){const Ze=te-Y,Xe=oe-Q;for(const pt of O)pt.position={x:pt.position.x-Ze+F[0]*(K-V),y:pt.position.y-Xe+F[1]*(ee-U)},q.push(pt)}if((ae||ue)&&(Z.width=ae&&(!a.resizeDirection||a.resizeDirection==="horizontal")?K:w.width,Z.height=ue&&(!a.resizeDirection||a.resizeDirection==="vertical")?ee:w.height,w.width=Z.width,w.height=Z.height),R&&j.expandParent){const Ze=F[0]*(Z.width??0);Z.x&&Z.x{L&&(_?.(A,{...w}),r?.({...w}),L=!1)});o.call(M)}function d(){o.on(".drag",null)}return{update:c,destroy:d}}var My={exports:{}},Dy={},Oy={exports:{}},Ly={};var g2;function qX(){if(g2)return Ly;g2=1;var e=$l();function t(p,g){return p===g&&(p!==0||1/p===1/g)||p!==p&&g!==g}var n=typeof Object.is=="function"?Object.is:t,i=e.useState,r=e.useEffect,o=e.useLayoutEffect,a=e.useDebugValue;function c(p,g){var x=g(),v=i({inst:{value:x,getSnapshot:g}}),_=v[0].inst,k=v[1];return o(function(){_.value=x,_.getSnapshot=g,d(_)&&k({inst:_})},[p,x,g]),r(function(){return d(_)&&k({inst:_}),p(function(){d(_)&&k({inst:_})})},[p]),a(x),x}function d(p){var g=p.getSnapshot;p=p.value;try{var x=g();return!n(p,x)}catch{return!0}}function m(p,g){return g()}var h=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?m:c;return Ly.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:h,Ly}var y2;function WX(){return y2||(y2=1,Oy.exports=qX()),Oy.exports}var x2;function YX(){if(x2)return Dy;x2=1;var e=$l(),t=WX();function n(m,h){return m===h&&(m!==0||1/m===1/h)||m!==m&&h!==h}var i=typeof Object.is=="function"?Object.is:n,r=t.useSyncExternalStore,o=e.useRef,a=e.useEffect,c=e.useMemo,d=e.useDebugValue;return Dy.useSyncExternalStoreWithSelector=function(m,h,p,g,x){var v=o(null);if(v.current===null){var _={hasValue:!1,value:null};v.current=_}else _=v.current;v=c(function(){function w(R){if(!S){if(S=!0,j=R,R=g(R),x!==void 0&&_.hasValue){var D=_.value;if(x(D,R))return N=D}return N=R}if(D=N,i(j,R))return D;var I=g(R);return x!==void 0&&x(D,I)?(j=R,D):(j=R,N=I)}var S=!1,j,N,O=p===void 0?null:p;return[function(){return w(h())},O===null?void 0:function(){return w(O())}]},[h,p,g,x]);var k=r(m,v[0],v[1]);return a(function(){_.hasValue=!0,_.value=k},[k]),d(k),k},Dy}var v2;function XX(){return v2||(v2=1,My.exports=YX()),My.exports}var KX=XX();const ZX=ma(KX),QX={},b2=e=>{let t;const n=new Set,i=(h,p)=>{const g=typeof h=="function"?h(t):h;if(!Object.is(g,t)){const x=t;t=p??(typeof g!="object"||g===null)?g:Object.assign({},t,g),n.forEach(v=>v(t,x))}},r=()=>t,d={setState:i,getState:r,getInitialState:()=>m,subscribe:h=>(n.add(h),()=>n.delete(h)),destroy:()=>{(QX?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},m=t=e(i,r,d);return d},JX=e=>e?b2(e):b2,{useDebugValue:eK}=Rt,{useSyncExternalStoreWithSelector:tK}=ZX,nK=e=>e;function mR(e,t=nK,n){const i=tK(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return eK(i),i}const _2=(e,t)=>{const n=JX(e),i=(r,o=t)=>mR(n,r,o);return Object.assign(i,n),i},iK=(e,t)=>e?_2(e,t):_2;function Bn(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[i,r]of e)if(!Object.is(r,t.get(i)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const i of e)if(!t.has(i))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const i of n)if(!Object.prototype.hasOwnProperty.call(t,i)||!Object.is(e[i],t[i]))return!1;return!0}const op=C.createContext(null),rK=op.Provider,pR=as.error001();function on(e,t){const n=C.useContext(op);if(n===null)throw new Error(pR);return mR(n,e,t)}function $n(){const e=C.useContext(op);if(e===null)throw new Error(pR);return C.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const k2={display:"none"},sK={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},hR="react-flow__node-desc",gR="react-flow__edge-desc",oK="react-flow__aria-live",aK=e=>e.ariaLiveMessage,lK=e=>e.ariaLabelConfig;function cK({rfId:e}){const t=on(aK);return u.jsx("div",{id:`${oK}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:sK,children:t})}function uK({rfId:e,disableKeyboardA11y:t}){const n=on(lK);return u.jsxs(u.Fragment,{children:[u.jsx("div",{id:`${hR}-${e}`,style:k2,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),u.jsx("div",{id:`${gR}-${e}`,style:k2,children:n["edge.a11yDescription.default"]}),!t&&u.jsx(cK,{rfId:e})]})}const ap=C.forwardRef(({position:e="top-left",children:t,className:n,style:i,...r},o)=>{const a=`${e}`.split("-");return u.jsx("div",{className:fi(["react-flow__panel",n,...a]),style:i,ref:o,...r,children:t})});ap.displayName="Panel";function dK({proOptions:e,position:t="bottom-right"}){return e?.hideAttribution?null:u.jsx(ap,{position:t,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev",children:u.jsx("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const fK=e=>{const t=[],n=[];for(const[,i]of e.nodeLookup)i.selected&&t.push(i.internals.userNode);for(const[,i]of e.edgeLookup)i.selected&&n.push(i);return{selectedNodes:t,selectedEdges:n}},jf=e=>e.id;function mK(e,t){return Bn(e.selectedNodes.map(jf),t.selectedNodes.map(jf))&&Bn(e.selectedEdges.map(jf),t.selectedEdges.map(jf))}function pK({onSelectionChange:e}){const t=$n(),{selectedNodes:n,selectedEdges:i}=on(fK,mK);return C.useEffect(()=>{const r={nodes:n,edges:i};e?.(r),t.getState().onSelectionChangeHandlers.forEach(o=>o(r))},[n,i,e]),null}const hK=e=>!!e.onSelectionChangeHandlers;function gK({onSelectionChange:e}){const t=on(hK);return e||t?u.jsx(pK,{onSelectionChange:e}):null}const Mv=typeof window<"u"?C.useLayoutEffect:C.useEffect,yR=[0,0],yK={x:0,y:0,zoom:1},xK=["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"],S2=[...xK,"rfId"],vK=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}),w2={translateExtent:Au,nodeOrigin:yR,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function bK(e){const{setNodes:t,setEdges:n,setMinZoom:i,setMaxZoom:r,setTranslateExtent:o,setNodeExtent:a,reset:c,setDefaultNodesAndEdges:d}=on(vK,Bn),m=$n();Mv(()=>(d(e.defaultNodes,e.defaultEdges),()=>{h.current=w2,c()}),[]);const h=C.useRef(w2);return Mv(()=>{for(const p of S2){const g=e[p],x=h.current[p];g!==x&&(typeof e[p]>"u"||(p==="nodes"?t(g):p==="edges"?n(g):p==="minZoom"?i(g):p==="maxZoom"?r(g):p==="translateExtent"?o(g):p==="nodeExtent"?a(g):p==="ariaLabelConfig"?m.setState({ariaLabelConfig:iX(g)}):p==="fitView"?m.setState({fitViewQueued:g}):p==="fitViewOptions"?m.setState({fitViewOptions:g}):m.setState({[p]:g})))}h.current=e},S2.map(p=>e[p])),null}function C2(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function _K(e){const[t,n]=C.useState(e==="system"?null:e);return C.useEffect(()=>{if(e!=="system"){n(e);return}const i=C2(),r=()=>n(i?.matches?"dark":"light");return r(),i?.addEventListener("change",r),()=>{i?.removeEventListener("change",r)}},[e]),t!==null?t:C2()?.matches?"dark":"light"}const j2=typeof document<"u"?document:null;function Lu(e=null,t={target:j2,actInsideInputWithModifier:!0}){const[n,i]=C.useState(!1),r=C.useRef(!1),o=C.useRef(new Set([])),[a,c]=C.useMemo(()=>{if(e!==null){const m=(Array.isArray(e)?e:[e]).filter(p=>typeof p=="string").map(p=>p.replace("+",` -`).replace(` - -`,` -+`).split(` -`)),h=m.reduce((p,g)=>p.concat(...g),[]);return[m,h]}return[[],[]]},[e]);return C.useEffect(()=>{const d=t?.target??j2,m=t?.actInsideInputWithModifier??!0;if(e!==null){const h=x=>{if(r.current=x.ctrlKey||x.metaKey||x.shiftKey||x.altKey,(!r.current||r.current&&!m)&&KT(x))return!1;const _=N2(x.code,c);if(o.current.add(x[_]),E2(a,o.current,!1)){const k=x.composedPath?.()?.[0]||x.target,w=k?.nodeName==="BUTTON"||k?.nodeName==="A";t.preventDefault!==!1&&(r.current||!w)&&x.preventDefault(),i(!0)}},p=x=>{const v=N2(x.code,c);E2(a,o.current,!0)?(i(!1),o.current.clear()):o.current.delete(x[v]),x.key==="Meta"&&o.current.clear(),r.current=!1},g=()=>{o.current.clear(),i(!1)};return d?.addEventListener("keydown",h),d?.addEventListener("keyup",p),window.addEventListener("blur",g),window.addEventListener("contextmenu",g),()=>{d?.removeEventListener("keydown",h),d?.removeEventListener("keyup",p),window.removeEventListener("blur",g),window.removeEventListener("contextmenu",g)}}},[e,i]),n}function E2(e,t,n){return e.filter(i=>n||i.length===t.size).some(i=>i.every(r=>t.has(r)))}function N2(e,t){return t.includes(e)?"code":"key"}const kK=()=>{const e=$n();return C.useMemo(()=>({zoomIn:t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):Promise.resolve(!1)},zoomOut:t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):Promise.resolve(!1)},zoomTo:(t,n)=>{const{panZoom:i}=e.getState();return i?i.scaleTo(t,n):Promise.resolve(!1)},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{const{transform:[i,r,o],panZoom:a}=e.getState();return a?(await a.setViewport({x:t.x??i,y:t.y??r,zoom:t.zoom??o},n),Promise.resolve(!0)):Promise.resolve(!1)},getViewport:()=>{const[t,n,i]=e.getState().transform;return{x:t,y:n,zoom:i}},setCenter:async(t,n,i)=>e.getState().setCenter(t,n,i),fitBounds:async(t,n)=>{const{width:i,height:r,minZoom:o,maxZoom:a,panZoom:c}=e.getState(),d=U0(t,i,r,o,a,n?.padding??.1);return c?(await c.setViewport(d,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),Promise.resolve(!0)):Promise.resolve(!1)},screenToFlowPosition:(t,n={})=>{const{transform:i,snapGrid:r,snapToGrid:o,domNode:a}=e.getState();if(!a)return t;const{x:c,y:d}=a.getBoundingClientRect(),m={x:t.x-c,y:t.y-d},h=n.snapGrid??r,p=n.snapToGrid??o;return Yu(m,i,p,h)},flowToScreenPosition:t=>{const{transform:n,domNode:i}=e.getState();if(!i)return t;const{x:r,y:o}=i.getBoundingClientRect(),a=wm(t,n);return{x:a.x+r,y:a.y+o}}}),[])};function xR(e,t){const n=[],i=new Map,r=[];for(const o of e)if(o.type==="add"){r.push(o);continue}else if(o.type==="remove"||o.type==="replace")i.set(o.id,[o]);else{const a=i.get(o.id);a?a.push(o):i.set(o.id,[o])}for(const o of t){const a=i.get(o.id);if(!a){n.push(o);continue}if(a[0].type==="remove")continue;if(a[0].type==="replace"){n.push({...a[0].item});continue}const c={...o};for(const d of a)SK(d,c);n.push(c)}return r.length&&r.forEach(o=>{o.index!==void 0?n.splice(o.index,0,{...o.item}):n.push({...o.item})}),n}function SK(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 vR(e,t){return xR(e,t)}function wK(e,t){return xR(e,t)}function ta(e,t){return{id:e,type:"select",selected:t}}function dl(e,t=new Set,n=!1){const i=[];for(const[r,o]of e){const a=t.has(r);!(o.selected===void 0&&!a)&&o.selected!==a&&(n&&(o.selected=a),i.push(ta(o.id,a)))}return i}function I2({items:e=[],lookup:t}){const n=[],i=new Map(e.map(r=>[r.id,r]));for(const[r,o]of e.entries()){const a=t.get(o.id),c=a?.internals?.userNode??a;c!==void 0&&c!==o&&n.push({id:o.id,item:o,type:"replace"}),c===void 0&&n.push({item:o,type:"add",index:r})}for(const[r]of t)i.get(r)===void 0&&n.push({id:r,type:"remove"});return n}function T2(e){return{id:e.id,type:"remove"}}const R2=e=>WY(e),CK=e=>FT(e);function bR(e){return C.forwardRef(e)}function A2(e){const[t,n]=C.useState(BigInt(0)),[i]=C.useState(()=>jK(()=>n(r=>r+BigInt(1))));return Mv(()=>{const r=i.get();r.length&&(e(r),i.reset())},[t]),i}function jK(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const _R=C.createContext(null);function EK({children:e}){const t=$n(),n=C.useCallback(c=>{const{nodes:d=[],setNodes:m,hasDefaultNodes:h,onNodesChange:p,nodeLookup:g,fitViewQueued:x,onNodesChangeMiddlewareMap:v}=t.getState();let _=d;for(const w of c)_=typeof w=="function"?w(_):w;let k=I2({items:_,lookup:g});for(const w of v.values())k=w(k);h&&m(_),k.length>0?p?.(k):x&&window.requestAnimationFrame(()=>{const{fitViewQueued:w,nodes:S,setNodes:j}=t.getState();w&&j(S)})},[]),i=A2(n),r=C.useCallback(c=>{const{edges:d=[],setEdges:m,hasDefaultEdges:h,onEdgesChange:p,edgeLookup:g}=t.getState();let x=d;for(const v of c)x=typeof v=="function"?v(x):v;h?m(x):p&&p(I2({items:x,lookup:g}))},[]),o=A2(r),a=C.useMemo(()=>({nodeQueue:i,edgeQueue:o}),[]);return u.jsx(_R.Provider,{value:a,children:e})}function NK(){const e=C.useContext(_R);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const IK=e=>!!e.panZoom;function Z0(){const e=kK(),t=$n(),n=NK(),i=on(IK),r=C.useMemo(()=>{const o=p=>t.getState().nodeLookup.get(p),a=p=>{n.nodeQueue.push(p)},c=p=>{n.edgeQueue.push(p)},d=p=>{const{nodeLookup:g,nodeOrigin:x}=t.getState(),v=R2(p)?p:g.get(p.id),_=v.parentId?YT(v.position,v.measured,v.parentId,g,x):v.position,k={...v,position:_,width:v.measured?.width??v.width,height:v.measured?.height??v.height};return Ll(k)},m=(p,g,x={replace:!1})=>{a(v=>v.map(_=>{if(_.id===p){const k=typeof g=="function"?g(_):g;return x.replace&&R2(k)?k:{..._,...k}}return _}))},h=(p,g,x={replace:!1})=>{c(v=>v.map(_=>{if(_.id===p){const k=typeof g=="function"?g(_):g;return x.replace&&CK(k)?k:{..._,...k}}return _}))};return{getNodes:()=>t.getState().nodes.map(p=>({...p})),getNode:p=>o(p)?.internals.userNode,getInternalNode:o,getEdges:()=>{const{edges:p=[]}=t.getState();return p.map(g=>({...g}))},getEdge:p=>t.getState().edgeLookup.get(p),setNodes:a,setEdges:c,addNodes:p=>{const g=Array.isArray(p)?p:[p];n.nodeQueue.push(x=>[...x,...g])},addEdges:p=>{const g=Array.isArray(p)?p:[p];n.edgeQueue.push(x=>[...x,...g])},toObject:()=>{const{nodes:p=[],edges:g=[],transform:x}=t.getState(),[v,_,k]=x;return{nodes:p.map(w=>({...w})),edges:g.map(w=>({...w})),viewport:{x:v,y:_,zoom:k}}},deleteElements:async({nodes:p=[],edges:g=[]})=>{const{nodes:x,edges:v,onNodesDelete:_,onEdgesDelete:k,triggerNodeChanges:w,triggerEdgeChanges:S,onDelete:j,onBeforeDelete:N}=t.getState(),{nodes:O,edges:R}=await QY({nodesToRemove:p,edgesToRemove:g,nodes:x,edges:v,onBeforeDelete:N}),D=R.length>0,I=O.length>0;if(D){const L=R.map(T2);k?.(R),S(L)}if(I){const L=O.map(T2);_?.(O),w(L)}return(I||D)&&j?.({nodes:O,edges:R}),{deletedNodes:O,deletedEdges:R}},getIntersectingNodes:(p,g=!0,x)=>{const v=i2(p),_=v?p:d(p),k=x!==void 0;return _?(x||t.getState().nodes).filter(w=>{const S=t.getState().nodeLookup.get(w.id);if(S&&!v&&(w.id===p.id||!S.internals.positionAbsolute))return!1;const j=Ll(k?w:S),N=Du(j,_);return g&&N>0||N>=j.width*j.height||N>=_.width*_.height}):[]},isNodeIntersecting:(p,g,x=!0)=>{const _=i2(p)?p:d(p);if(!_)return!1;const k=Du(_,g);return x&&k>0||k>=g.width*g.height||k>=_.width*_.height},updateNode:m,updateNodeData:(p,g,x={replace:!1})=>{m(p,v=>{const _=typeof g=="function"?g(v):g;return x.replace?{...v,data:_}:{...v,data:{...v.data,..._}}},x)},updateEdge:h,updateEdgeData:(p,g,x={replace:!1})=>{h(p,v=>{const _=typeof g=="function"?g(v):g;return x.replace?{...v,data:_}:{...v,data:{...v.data,..._}}},x)},getNodesBounds:p=>{const{nodeLookup:g,nodeOrigin:x}=t.getState();return YY(p,{nodeLookup:g,nodeOrigin:x})},getHandleConnections:({type:p,id:g,nodeId:x})=>Array.from(t.getState().connectionLookup.get(`${x}-${p}${g?`-${g}`:""}`)?.values()??[]),getNodeConnections:({type:p,handleId:g,nodeId:x})=>Array.from(t.getState().connectionLookup.get(`${x}${p?g?`-${p}-${g}`:`-${p}`:""}`)?.values()??[]),fitView:async p=>{const g=t.getState().fitViewResolver??nX();return t.setState({fitViewQueued:!0,fitViewOptions:p,fitViewResolver:g}),n.nodeQueue.push(x=>[...x]),g.promise}}},[]);return C.useMemo(()=>({...r,...e,viewportInitialized:i}),[i])}const M2=e=>e.selected,TK=typeof window<"u"?window:void 0;function RK({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=$n(),{deleteElements:i}=Z0(),r=Lu(e,{actInsideInputWithModifier:!1}),o=Lu(t,{target:TK});C.useEffect(()=>{if(r){const{edges:a,nodes:c}=n.getState();i({nodes:c.filter(M2),edges:a.filter(M2)}),n.setState({nodesSelectionActive:!1})}},[r]),C.useEffect(()=>{n.setState({multiSelectionActive:o})},[o])}function AK(e){const t=$n();C.useEffect(()=>{const n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;const i=G0(e.current);(i.height===0||i.width===0)&&t.getState().onError?.("004",as.error004()),t.setState({width:i.width||500,height:i.height||500})};if(e.current){n(),window.addEventListener("resize",n);const i=new ResizeObserver(()=>n());return i.observe(e.current),()=>{window.removeEventListener("resize",n),i&&e.current&&i.unobserve(e.current)}}},[])}const lp={position:"absolute",width:"100%",height:"100%",top:0,left:0},MK=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function DK({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:i=!1,panOnScrollSpeed:r=.5,panOnScrollMode:o=oa.Free,zoomOnDoubleClick:a=!0,panOnDrag:c=!0,defaultViewport:d,translateExtent:m,minZoom:h,maxZoom:p,zoomActivationKeyCode:g,preventScrolling:x=!0,children:v,noWheelClassName:_,noPanClassName:k,onViewportChange:w,isControlledViewport:S,paneClickDistance:j,selectionOnDrag:N}){const O=$n(),R=C.useRef(null),{userSelectionActive:D,lib:I,connectionInProgress:L}=on(MK,Bn),M=Lu(g),A=C.useRef();AK(R);const B=C.useCallback(W=>{w?.({x:W[0],y:W[1],zoom:W[2]}),S||O.setState({transform:W})},[w,S]);return C.useEffect(()=>{if(R.current){A.current=BX({domNode:R.current,minZoom:h,maxZoom:p,translateExtent:m,viewport:d,onDraggingChange:$=>O.setState(q=>q.paneDragging===$?q:{paneDragging:$}),onPanZoomStart:($,q)=>{const{onViewportChangeStart:Y,onMoveStart:Q}=O.getState();Q?.($,q),Y?.(q)},onPanZoom:($,q)=>{const{onViewportChange:Y,onMove:Q}=O.getState();Q?.($,q),Y?.(q)},onPanZoomEnd:($,q)=>{const{onViewportChangeEnd:Y,onMoveEnd:Q}=O.getState();Q?.($,q),Y?.(q)}});const{x:W,y:P,zoom:G}=A.current.getViewport();return O.setState({panZoom:A.current,transform:[W,P,G],domNode:R.current.closest(".react-flow")}),()=>{A.current?.destroy()}}},[]),C.useEffect(()=>{A.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:i,panOnScrollSpeed:r,panOnScrollMode:o,zoomOnDoubleClick:a,panOnDrag:c,zoomActivationKeyPressed:M,preventScrolling:x,noPanClassName:k,userSelectionActive:D,noWheelClassName:_,lib:I,onTransformChange:B,connectionInProgress:L,selectionOnDrag:N,paneClickDistance:j})},[e,t,n,i,r,o,a,c,M,x,k,D,_,I,B,L,N,j]),u.jsx("div",{className:"react-flow__renderer",ref:R,style:lp,children:v})}const OK=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function LK(){const{userSelectionActive:e,userSelectionRect:t}=on(OK,Bn);return e&&t?u.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}const zy=(e,t)=>n=>{n.target===t.current&&e?.(n)},zK=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging});function PK({isSelecting:e,selectionKeyPressed:t,selectionMode:n=Mu.Full,panOnDrag:i,paneClickDistance:r,selectionOnDrag:o,onSelectionStart:a,onSelectionEnd:c,onPaneClick:d,onPaneContextMenu:m,onPaneScroll:h,onPaneMouseEnter:p,onPaneMouseMove:g,onPaneMouseLeave:x,children:v}){const _=$n(),{userSelectionActive:k,elementsSelectable:w,dragging:S,connectionInProgress:j}=on(zK,Bn),N=w&&(e||k),O=C.useRef(null),R=C.useRef(),D=C.useRef(new Set),I=C.useRef(new Set),L=C.useRef(!1),M=Y=>{if(L.current||j){L.current=!1;return}d?.(Y),_.getState().resetSelectedElements(),_.setState({nodesSelectionActive:!1})},A=Y=>{if(Array.isArray(i)&&i?.includes(2)){Y.preventDefault();return}m?.(Y)},B=h?Y=>h(Y):void 0,W=Y=>{L.current&&(Y.stopPropagation(),L.current=!1)},P=Y=>{const{domNode:Q}=_.getState();if(R.current=Q?.getBoundingClientRect(),!R.current)return;const V=Y.target===O.current;if(!V&&!!Y.target.closest(".nokey")||!e||!(o&&V||t)||Y.button!==0||!Y.isPrimary)return;Y.target?.setPointerCapture?.(Y.pointerId),L.current=!1;const{x:F,y:K}=Fr(Y.nativeEvent,R.current);_.setState({userSelectionRect:{width:0,height:0,startX:F,startY:K,x:F,y:K}}),V||(Y.stopPropagation(),Y.preventDefault())},G=Y=>{const{userSelectionRect:Q,transform:V,nodeLookup:U,edgeLookup:Z,connectionLookup:F,triggerNodeChanges:K,triggerEdgeChanges:ee,defaultEdgeOptions:te,resetSelectedElements:oe}=_.getState();if(!R.current||!Q)return;const{x:ae,y:ue}=Fr(Y.nativeEvent,R.current),{startX:ie,startY:we}=Q;if(!L.current){const Xe=t?0:r;if(Math.hypot(ae-ie,ue-we)<=Xe)return;oe(),a?.(Y)}L.current=!0;const je={startX:ie,startY:we,x:aeXe.id)),I.current=new Set;const Ze=te?.selectable??!0;for(const Xe of D.current){const pt=F.get(Xe);if(pt)for(const{edgeId:Ut}of pt.values()){const Pt=Z.get(Ut);Pt&&(Pt.selectable??Ze)&&I.current.add(Ut)}}if(!r2(Te,D.current)){const Xe=dl(U,D.current,!0);K(Xe)}if(!r2(qe,I.current)){const Xe=dl(Z,I.current);ee(Xe)}_.setState({userSelectionRect:je,userSelectionActive:!0,nodesSelectionActive:!1})},$=Y=>{Y.button===0&&(Y.target?.releasePointerCapture?.(Y.pointerId),!k&&Y.target===O.current&&_.getState().userSelectionRect&&M?.(Y),_.setState({userSelectionActive:!1,userSelectionRect:null}),L.current&&(c?.(Y),_.setState({nodesSelectionActive:D.current.size>0})))},q=i===!0||Array.isArray(i)&&i.includes(0);return u.jsxs("div",{className:fi(["react-flow__pane",{draggable:q,dragging:S,selection:e}]),onClick:N?void 0:zy(M,O),onContextMenu:zy(A,O),onWheel:zy(B,O),onPointerEnter:N?void 0:p,onPointerMove:N?G:g,onPointerUp:N?$:void 0,onPointerDownCapture:N?P:void 0,onClickCapture:N?W:void 0,onPointerLeave:x,ref:O,style:lp,children:[v,u.jsx(LK,{})]})}function Dv({id:e,store:t,unselect:n=!1,nodeRef:i}){const{addSelectedNodes:r,unselectNodesAndEdges:o,multiSelectionActive:a,nodeLookup:c,onError:d}=t.getState(),m=c.get(e);if(!m){d?.("012",as.error012(e));return}t.setState({nodesSelectionActive:!1}),m.selected?(n||m.selected&&a)&&(o({nodes:[m],edges:[]}),requestAnimationFrame(()=>i?.current?.blur())):r([e])}function kR({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:i,nodeId:r,isSelectable:o,nodeClickDistance:a}){const c=$n(),[d,m]=C.useState(!1),h=C.useRef();return C.useEffect(()=>{h.current=CX({getStoreItems:()=>c.getState(),onNodeMouseDown:p=>{Dv({id:p,store:c,nodeRef:e})},onDragStart:()=>{m(!0)},onDragStop:()=>{m(!1)}})},[]),C.useEffect(()=>{if(!(t||!e.current||!h.current))return h.current.update({noDragClassName:n,handleSelector:i,domNode:e.current,isSelectable:o,nodeId:r,nodeClickDistance:a}),()=>{h.current?.destroy()}},[n,i,t,o,e,r,a]),d}const BK=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function SR(){const e=$n();return C.useCallback(n=>{const{nodeExtent:i,snapToGrid:r,snapGrid:o,nodesDraggable:a,onError:c,updateNodePositions:d,nodeLookup:m,nodeOrigin:h}=e.getState(),p=new Map,g=BK(a),x=r?o[0]:5,v=r?o[1]:5,_=n.direction.x*x*n.factor,k=n.direction.y*v*n.factor;for(const[,w]of m){if(!g(w))continue;let S={x:w.internals.positionAbsolute.x+_,y:w.internals.positionAbsolute.y+k};r&&(S=Wu(S,o));const{position:j,positionAbsolute:N}=VT({nodeId:w.id,nextPosition:S,nodeLookup:m,nodeExtent:i,nodeOrigin:h,onError:c});w.position=j,w.internals.positionAbsolute=N,p.set(w.id,w)}d(p)},[])}const Q0=C.createContext(null),$K=Q0.Provider;Q0.Consumer;const wR=()=>C.useContext(Q0),HK=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),FK=(e,t,n)=>i=>{const{connectionClickStartHandle:r,connectionMode:o,connection:a}=i,{fromHandle:c,toHandle:d,isValid:m}=a,h=d?.nodeId===e&&d?.id===t&&d?.type===n;return{connectingFrom:c?.nodeId===e&&c?.id===t&&c?.type===n,connectingTo:h,clickConnecting:r?.nodeId===e&&r?.id===t&&r?.type===n,isPossibleEndHandle:o===Dl.Strict?c?.type!==n:e!==c?.nodeId||t!==c?.id,connectionInProcess:!!c,clickConnectionInProcess:!!r,valid:h&&m}};function VK({type:e="source",position:t=ot.Top,isValidConnection:n,isConnectable:i=!0,isConnectableStart:r=!0,isConnectableEnd:o=!0,id:a,onConnect:c,children:d,className:m,onMouseDown:h,onTouchStart:p,...g},x){const v=a||null,_=e==="target",k=$n(),w=wR(),{connectOnClick:S,noPanClassName:j,rfId:N}=on(HK,Bn),{connectingFrom:O,connectingTo:R,clickConnecting:D,isPossibleEndHandle:I,connectionInProcess:L,clickConnectionInProcess:M,valid:A}=on(FK(w,v,e),Bn);w||k.getState().onError?.("010",as.error010());const B=G=>{const{defaultEdgeOptions:$,onConnect:q,hasDefaultEdges:Y}=k.getState(),Q={...$,...G};if(Y){const{edges:V,setEdges:U}=k.getState();U(cX(Q,V))}q?.(Q),c?.(Q)},W=G=>{if(!w)return;const $=ZT(G.nativeEvent);if(r&&($&&G.button===0||!$)){const q=k.getState();Av.onPointerDown(G.nativeEvent,{handleDomNode:G.currentTarget,autoPanOnConnect:q.autoPanOnConnect,connectionMode:q.connectionMode,connectionRadius:q.connectionRadius,domNode:q.domNode,nodeLookup:q.nodeLookup,lib:q.lib,isTarget:_,handleId:v,nodeId:w,flowId:q.rfId,panBy:q.panBy,cancelConnection:q.cancelConnection,onConnectStart:q.onConnectStart,onConnectEnd:(...Y)=>k.getState().onConnectEnd?.(...Y),updateConnection:q.updateConnection,onConnect:B,isValidConnection:n||((...Y)=>k.getState().isValidConnection?.(...Y)??!0),getTransform:()=>k.getState().transform,getFromHandle:()=>k.getState().connection.fromHandle,autoPanSpeed:q.autoPanSpeed,dragThreshold:q.connectionDragThreshold})}$?h?.(G):p?.(G)},P=G=>{const{onClickConnectStart:$,onClickConnectEnd:q,connectionClickStartHandle:Y,connectionMode:Q,isValidConnection:V,lib:U,rfId:Z,nodeLookup:F,connection:K}=k.getState();if(!w||!Y&&!r)return;if(!Y){$?.(G.nativeEvent,{nodeId:w,handleId:v,handleType:e}),k.setState({connectionClickStartHandle:{nodeId:w,type:e,id:v}});return}const ee=XT(G.target),te=n||V,{connection:oe,isValid:ae}=Av.isValid(G.nativeEvent,{handle:{nodeId:w,id:v,type:e},connectionMode:Q,fromNodeId:Y.nodeId,fromHandleId:Y.id||null,fromType:Y.type,isValidConnection:te,flowId:Z,doc:ee,lib:U,nodeLookup:F});ae&&oe&&B(oe);const ue=structuredClone(K);delete ue.inProgress,ue.toPosition=ue.toHandle?ue.toHandle.position:null,q?.(G,ue),k.setState({connectionClickStartHandle:null})};return u.jsx("div",{"data-handleid":v,"data-nodeid":w,"data-handlepos":t,"data-id":`${N}-${w}-${v}-${e}`,className:fi(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",j,m,{source:!_,target:_,connectable:i,connectablestart:r,connectableend:o,clickconnecting:D,connectingfrom:O,connectingto:R,valid:A,connectionindicator:i&&(!L||I)&&(L||M?o:r)}]),onMouseDown:W,onTouchStart:W,onClick:S?P:void 0,ref:x,...g,children:d})}const Bl=C.memo(bR(VK));function UK({data:e,isConnectable:t,sourcePosition:n=ot.Bottom}){return u.jsxs(u.Fragment,{children:[e?.label,u.jsx(Bl,{type:"source",position:n,isConnectable:t})]})}function GK({data:e,isConnectable:t,targetPosition:n=ot.Top,sourcePosition:i=ot.Bottom}){return u.jsxs(u.Fragment,{children:[u.jsx(Bl,{type:"target",position:n,isConnectable:t}),e?.label,u.jsx(Bl,{type:"source",position:i,isConnectable:t})]})}function qK(){return null}function WK({data:e,isConnectable:t,targetPosition:n=ot.Top}){return u.jsxs(u.Fragment,{children:[u.jsx(Bl,{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}},D2={input:UK,default:GK,output:WK,group:qK};function YK(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 XK=e=>{const{width:t,height:n,x:i,y:r}=qu(e.nodeLookup,{filter:o=>!!o.selected});return{width:Hr(t)?t:null,height:Hr(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${i}px,${r}px)`}};function KK({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const i=$n(),{width:r,height:o,transformString:a,userSelectionActive:c}=on(XK,Bn),d=SR(),m=C.useRef(null);C.useEffect(()=>{n||m.current?.focus({preventScroll:!0})},[n]);const h=!c&&r!==null&&o!==null;if(kR({nodeRef:m,disabled:!h}),!h)return null;const p=e?x=>{const v=i.getState().nodes.filter(_=>_.selected);e(x,v)}:void 0,g=x=>{Object.prototype.hasOwnProperty.call(Cm,x.key)&&(x.preventDefault(),d({direction:Cm[x.key],factor:x.shiftKey?4:1}))};return u.jsx("div",{className:fi(["react-flow__nodesselection","react-flow__container",t]),style:{transform:a},children:u.jsx("div",{ref:m,className:"react-flow__nodesselection-rect",onContextMenu:p,tabIndex:n?void 0:-1,onKeyDown:n?void 0:g,style:{width:r,height:o}})})}const O2=typeof window<"u"?window:void 0,ZK=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function CR({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:i,onPaneMouseLeave:r,onPaneContextMenu:o,onPaneScroll:a,paneClickDistance:c,deleteKeyCode:d,selectionKeyCode:m,selectionOnDrag:h,selectionMode:p,onSelectionStart:g,onSelectionEnd:x,multiSelectionKeyCode:v,panActivationKeyCode:_,zoomActivationKeyCode:k,elementsSelectable:w,zoomOnScroll:S,zoomOnPinch:j,panOnScroll:N,panOnScrollSpeed:O,panOnScrollMode:R,zoomOnDoubleClick:D,panOnDrag:I,defaultViewport:L,translateExtent:M,minZoom:A,maxZoom:B,preventScrolling:W,onSelectionContextMenu:P,noWheelClassName:G,noPanClassName:$,disableKeyboardA11y:q,onViewportChange:Y,isControlledViewport:Q}){const{nodesSelectionActive:V,userSelectionActive:U}=on(ZK,Bn),Z=Lu(m,{target:O2}),F=Lu(_,{target:O2}),K=F||I,ee=F||N,te=h&&K!==!0,oe=Z||U||te;return RK({deleteKeyCode:d,multiSelectionKeyCode:v}),u.jsx(DK,{onPaneContextMenu:o,elementsSelectable:w,zoomOnScroll:S,zoomOnPinch:j,panOnScroll:ee,panOnScrollSpeed:O,panOnScrollMode:R,zoomOnDoubleClick:D,panOnDrag:!Z&&K,defaultViewport:L,translateExtent:M,minZoom:A,maxZoom:B,zoomActivationKeyCode:k,preventScrolling:W,noWheelClassName:G,noPanClassName:$,onViewportChange:Y,isControlledViewport:Q,paneClickDistance:c,selectionOnDrag:te,children:u.jsxs(PK,{onSelectionStart:g,onSelectionEnd:x,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:i,onPaneMouseLeave:r,onPaneContextMenu:o,onPaneScroll:a,panOnDrag:K,isSelecting:!!oe,selectionMode:p,selectionKeyPressed:Z,paneClickDistance:c,selectionOnDrag:te,children:[e,V&&u.jsx(KK,{onSelectionContextMenu:P,noPanClassName:$,disableKeyboardA11y:q})]})})}CR.displayName="FlowRenderer";const QK=C.memo(CR),JK=e=>t=>e?V0(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 eZ(e){return on(C.useCallback(JK(e),[e]),Bn)}const tZ=e=>e.updateNodeInternals;function nZ(){const e=on(tZ),[t]=C.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const i=new Map;n.forEach(r=>{const o=r.target.getAttribute("data-id");i.set(o,{id:o,nodeElement:r.target,force:!0})}),e(i)}));return C.useEffect(()=>()=>{t?.disconnect()},[t]),t}function iZ({node:e,nodeType:t,hasDimensions:n,resizeObserver:i}){const r=$n(),o=C.useRef(null),a=C.useRef(null),c=C.useRef(e.sourcePosition),d=C.useRef(e.targetPosition),m=C.useRef(t),h=n&&!!e.internals.handleBounds;return C.useEffect(()=>{o.current&&!e.hidden&&(!h||a.current!==o.current)&&(a.current&&i?.unobserve(a.current),i?.observe(o.current),a.current=o.current)},[h,e.hidden]),C.useEffect(()=>()=>{a.current&&(i?.unobserve(a.current),a.current=null)},[]),C.useEffect(()=>{if(o.current){const p=m.current!==t,g=c.current!==e.sourcePosition,x=d.current!==e.targetPosition;(p||g||x)&&(m.current=t,c.current=e.sourcePosition,d.current=e.targetPosition,r.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:o.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),o}function rZ({id:e,onClick:t,onMouseEnter:n,onMouseMove:i,onMouseLeave:r,onContextMenu:o,onDoubleClick:a,nodesDraggable:c,elementsSelectable:d,nodesConnectable:m,nodesFocusable:h,resizeObserver:p,noDragClassName:g,noPanClassName:x,disableKeyboardA11y:v,rfId:_,nodeTypes:k,nodeClickDistance:w,onError:S}){const{node:j,internals:N,isParent:O}=on(ae=>{const ue=ae.nodeLookup.get(e),ie=ae.parentLookup.has(e);return{node:ue,internals:ue.internals,isParent:ie}},Bn);let R=j.type||"default",D=k?.[R]||D2[R];D===void 0&&(S?.("003",as.error003(R)),R="default",D=k?.default||D2.default);const I=!!(j.draggable||c&&typeof j.draggable>"u"),L=!!(j.selectable||d&&typeof j.selectable>"u"),M=!!(j.connectable||m&&typeof j.connectable>"u"),A=!!(j.focusable||h&&typeof j.focusable>"u"),B=$n(),W=WT(j),P=iZ({node:j,nodeType:R,hasDimensions:W,resizeObserver:p}),G=kR({nodeRef:P,disabled:j.hidden||!I,noDragClassName:g,handleSelector:j.dragHandle,nodeId:e,isSelectable:L,nodeClickDistance:w}),$=SR();if(j.hidden)return null;const q=Ps(j),Y=YK(j),Q=L||I||t||n||i||r,V=n?ae=>n(ae,{...N.userNode}):void 0,U=i?ae=>i(ae,{...N.userNode}):void 0,Z=r?ae=>r(ae,{...N.userNode}):void 0,F=o?ae=>o(ae,{...N.userNode}):void 0,K=a?ae=>a(ae,{...N.userNode}):void 0,ee=ae=>{const{selectNodesOnDrag:ue,nodeDragThreshold:ie}=B.getState();L&&(!ue||!I||ie>0)&&Dv({id:e,store:B,nodeRef:P}),t&&t(ae,{...N.userNode})},te=ae=>{if(!(KT(ae.nativeEvent)||v)){if(PT.includes(ae.key)&&L){const ue=ae.key==="Escape";Dv({id:e,store:B,unselect:ue,nodeRef:P})}else if(I&&j.selected&&Object.prototype.hasOwnProperty.call(Cm,ae.key)){ae.preventDefault();const{ariaLabelConfig:ue}=B.getState();B.setState({ariaLiveMessage:ue["node.a11yDescription.ariaLiveMessage"]({direction:ae.key.replace("Arrow","").toLowerCase(),x:~~N.positionAbsolute.x,y:~~N.positionAbsolute.y})}),$({direction:Cm[ae.key],factor:ae.shiftKey?4:1})}}},oe=()=>{if(v||!P.current?.matches(":focus-visible"))return;const{transform:ae,width:ue,height:ie,autoPanOnNodeFocus:we,setCenter:je}=B.getState();if(!we)return;V0(new Map([[e,j]]),{x:0,y:0,width:ue,height:ie},ae,!0).length>0||je(j.position.x+q.width/2,j.position.y+q.height/2,{zoom:ae[2]})};return u.jsx("div",{className:fi(["react-flow__node",`react-flow__node-${R}`,{[x]:I},j.className,{selected:j.selected,selectable:L,parent:O,draggable:I,dragging:G}]),ref:P,style:{zIndex:N.z,transform:`translate(${N.positionAbsolute.x}px,${N.positionAbsolute.y}px)`,pointerEvents:Q?"all":"none",visibility:W?"visible":"hidden",...j.style,...Y},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:V,onMouseMove:U,onMouseLeave:Z,onContextMenu:F,onClick:ee,onDoubleClick:K,onKeyDown:A?te:void 0,tabIndex:A?0:void 0,onFocus:A?oe:void 0,role:j.ariaRole??(A?"group":void 0),"aria-roledescription":"node","aria-describedby":v?void 0:`${hR}-${_}`,"aria-label":j.ariaLabel,...j.domAttributes,children:u.jsx($K,{value:e,children:u.jsx(D,{id:e,data:j.data,type:R,positionAbsoluteX:N.positionAbsolute.x,positionAbsoluteY:N.positionAbsolute.y,selected:j.selected??!1,selectable:L,draggable:I,deletable:j.deletable??!0,isConnectable:M,sourcePosition:j.sourcePosition,targetPosition:j.targetPosition,dragging:G,dragHandle:j.dragHandle,zIndex:N.z,parentId:j.parentId,...q})})})}var sZ=C.memo(rZ);const oZ=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function jR(e){const{nodesDraggable:t,nodesConnectable:n,nodesFocusable:i,elementsSelectable:r,onError:o}=on(oZ,Bn),a=eZ(e.onlyRenderVisibleElements),c=nZ();return u.jsx("div",{className:"react-flow__nodes",style:lp,children:a.map(d=>u.jsx(sZ,{id:d,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:c,nodesDraggable:t,nodesConnectable:n,nodesFocusable:i,elementsSelectable:r,nodeClickDistance:e.nodeClickDistance,onError:o},d))})}jR.displayName="NodeRenderer";const aZ=C.memo(jR);function lZ(e){return on(C.useCallback(n=>{if(!e)return n.edges.map(r=>r.id);const i=[];if(n.width&&n.height)for(const r of n.edges){const o=n.nodeLookup.get(r.source),a=n.nodeLookup.get(r.target);o&&a&&oX({sourceNode:o,targetNode:a,width:n.width,height:n.height,transform:n.transform})&&i.push(r.id)}return i},[e]),Bn)}const cZ=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e}};return u.jsx("polyline",{className:"arrow",style:n,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},uZ=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e,fill:e}};return u.jsx("polyline",{className:"arrowclosed",style:n,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},L2={[km.Arrow]:cZ,[km.ArrowClosed]:uZ};function dZ(e){const t=$n();return C.useMemo(()=>Object.prototype.hasOwnProperty.call(L2,e)?L2[e]:(t.getState().onError?.("009",as.error009(e)),null),[e])}const fZ=({id:e,type:t,color:n,width:i=12.5,height:r=12.5,markerUnits:o="strokeWidth",strokeWidth:a,orient:c="auto-start-reverse"})=>{const d=dZ(t);return d?u.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${i}`,markerHeight:`${r}`,viewBox:"-10 -10 20 20",markerUnits:o,orient:c,refX:"0",refY:"0",children:u.jsx(d,{color:n,strokeWidth:a})}):null},ER=({defaultColor:e,rfId:t})=>{const n=on(o=>o.edges),i=on(o=>o.defaultEdgeOptions),r=C.useMemo(()=>pX(n,{id:t,defaultColor:e,defaultMarkerStart:i?.markerStart,defaultMarkerEnd:i?.markerEnd}),[n,i,t,e]);return r.length?u.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:u.jsx("defs",{children:r.map(o=>u.jsx(fZ,{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};ER.displayName="MarkerDefinitions";var mZ=C.memo(ER);function NR({x:e,y:t,label:n,labelStyle:i,labelShowBg:r=!0,labelBgStyle:o,labelBgPadding:a=[2,4],labelBgBorderRadius:c=2,children:d,className:m,...h}){const[p,g]=C.useState({x:1,y:0,width:0,height:0}),x=fi(["react-flow__edge-textwrapper",m]),v=C.useRef(null);return C.useEffect(()=>{if(v.current){const _=v.current.getBBox();g({x:_.x,y:_.y,width:_.width,height:_.height})}},[n]),n?u.jsxs("g",{transform:`translate(${e-p.width/2} ${t-p.height/2})`,className:x,visibility:p.width?"visible":"hidden",...h,children:[r&&u.jsx("rect",{width:p.width+2*a[0],x:-a[0],y:-a[1],height:p.height+2*a[1],className:"react-flow__edge-textbg",style:o,rx:c,ry:c}),u.jsx("text",{className:"react-flow__edge-text",y:p.height/2,dy:"0.3em",ref:v,style:i,children:n}),d]}):null}NR.displayName="EdgeText";const pZ=C.memo(NR);function cp({path:e,labelX:t,labelY:n,label:i,labelStyle:r,labelShowBg:o,labelBgStyle:a,labelBgPadding:c,labelBgBorderRadius:d,interactionWidth:m=20,...h}){return u.jsxs(u.Fragment,{children:[u.jsx("path",{...h,d:e,fill:"none",className:fi(["react-flow__edge-path",h.className])}),m?u.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:m,className:"react-flow__edge-interaction"}):null,i&&Hr(t)&&Hr(n)?u.jsx(pZ,{x:t,y:n,label:i,labelStyle:r,labelShowBg:o,labelBgStyle:a,labelBgPadding:c,labelBgBorderRadius:d}):null]})}function z2({pos:e,x1:t,y1:n,x2:i,y2:r}){return e===ot.Left||e===ot.Right?[.5*(t+i),n]:[t,.5*(n+r)]}function IR({sourceX:e,sourceY:t,sourcePosition:n=ot.Bottom,targetX:i,targetY:r,targetPosition:o=ot.Top}){const[a,c]=z2({pos:n,x1:e,y1:t,x2:i,y2:r}),[d,m]=z2({pos:o,x1:i,y1:r,x2:e,y2:t}),[h,p,g,x]=QT({sourceX:e,sourceY:t,targetX:i,targetY:r,sourceControlX:a,sourceControlY:c,targetControlX:d,targetControlY:m});return[`M${e},${t} C${a},${c} ${d},${m} ${i},${r}`,h,p,g,x]}function TR(e){return C.memo(({id:t,sourceX:n,sourceY:i,targetX:r,targetY:o,sourcePosition:a,targetPosition:c,label:d,labelStyle:m,labelShowBg:h,labelBgStyle:p,labelBgPadding:g,labelBgBorderRadius:x,style:v,markerEnd:_,markerStart:k,interactionWidth:w})=>{const[S,j,N]=IR({sourceX:n,sourceY:i,sourcePosition:a,targetX:r,targetY:o,targetPosition:c}),O=e.isInternal?void 0:t;return u.jsx(cp,{id:O,path:S,labelX:j,labelY:N,label:d,labelStyle:m,labelShowBg:h,labelBgStyle:p,labelBgPadding:g,labelBgBorderRadius:x,style:v,markerEnd:_,markerStart:k,interactionWidth:w})})}const hZ=TR({isInternal:!1}),RR=TR({isInternal:!0});hZ.displayName="SimpleBezierEdge";RR.displayName="SimpleBezierEdgeInternal";function AR(e){return C.memo(({id:t,sourceX:n,sourceY:i,targetX:r,targetY:o,label:a,labelStyle:c,labelShowBg:d,labelBgStyle:m,labelBgPadding:h,labelBgBorderRadius:p,style:g,sourcePosition:x=ot.Bottom,targetPosition:v=ot.Top,markerEnd:_,markerStart:k,pathOptions:w,interactionWidth:S})=>{const[j,N,O]=Iv({sourceX:n,sourceY:i,sourcePosition:x,targetX:r,targetY:o,targetPosition:v,borderRadius:w?.borderRadius,offset:w?.offset,stepPosition:w?.stepPosition}),R=e.isInternal?void 0:t;return u.jsx(cp,{id:R,path:j,labelX:N,labelY:O,label:a,labelStyle:c,labelShowBg:d,labelBgStyle:m,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:_,markerStart:k,interactionWidth:S})})}const MR=AR({isInternal:!1}),DR=AR({isInternal:!0});MR.displayName="SmoothStepEdge";DR.displayName="SmoothStepEdgeInternal";function OR(e){return C.memo(({id:t,...n})=>{const i=e.isInternal?void 0:t;return u.jsx(MR,{...n,id:i,pathOptions:C.useMemo(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}const gZ=OR({isInternal:!1}),LR=OR({isInternal:!0});gZ.displayName="StepEdge";LR.displayName="StepEdgeInternal";function zR(e){return C.memo(({id:t,sourceX:n,sourceY:i,targetX:r,targetY:o,label:a,labelStyle:c,labelShowBg:d,labelBgStyle:m,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:x,markerStart:v,interactionWidth:_})=>{const[k,w,S]=tR({sourceX:n,sourceY:i,targetX:r,targetY:o}),j=e.isInternal?void 0:t;return u.jsx(cp,{id:j,path:k,labelX:w,labelY:S,label:a,labelStyle:c,labelShowBg:d,labelBgStyle:m,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:x,markerStart:v,interactionWidth:_})})}const yZ=zR({isInternal:!1}),PR=zR({isInternal:!0});yZ.displayName="StraightEdge";PR.displayName="StraightEdgeInternal";function BR(e){return C.memo(({id:t,sourceX:n,sourceY:i,targetX:r,targetY:o,sourcePosition:a=ot.Bottom,targetPosition:c=ot.Top,label:d,labelStyle:m,labelShowBg:h,labelBgStyle:p,labelBgPadding:g,labelBgBorderRadius:x,style:v,markerEnd:_,markerStart:k,pathOptions:w,interactionWidth:S})=>{const[j,N,O]=JT({sourceX:n,sourceY:i,sourcePosition:a,targetX:r,targetY:o,targetPosition:c,curvature:w?.curvature}),R=e.isInternal?void 0:t;return u.jsx(cp,{id:R,path:j,labelX:N,labelY:O,label:d,labelStyle:m,labelShowBg:h,labelBgStyle:p,labelBgPadding:g,labelBgBorderRadius:x,style:v,markerEnd:_,markerStart:k,interactionWidth:S})})}const xZ=BR({isInternal:!1}),$R=BR({isInternal:!0});xZ.displayName="BezierEdge";$R.displayName="BezierEdgeInternal";const P2={default:$R,straight:PR,step:LR,smoothstep:DR,simplebezier:RR},B2={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},vZ=(e,t,n)=>n===ot.Left?e-t:n===ot.Right?e+t:e,bZ=(e,t,n)=>n===ot.Top?e-t:n===ot.Bottom?e+t:e,$2="react-flow__edgeupdater";function H2({position:e,centerX:t,centerY:n,radius:i=10,onMouseDown:r,onMouseEnter:o,onMouseOut:a,type:c}){return u.jsx("circle",{onMouseDown:r,onMouseEnter:o,onMouseOut:a,className:fi([$2,`${$2}-${c}`]),cx:vZ(t,i,e),cy:bZ(n,i,e),r:i,stroke:"transparent",fill:"transparent"})}function _Z({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:i,sourceY:r,targetX:o,targetY:a,sourcePosition:c,targetPosition:d,onReconnect:m,onReconnectStart:h,onReconnectEnd:p,setReconnecting:g,setUpdateHover:x}){const v=$n(),_=(N,O)=>{if(N.button!==0)return;const{autoPanOnConnect:R,domNode:D,connectionMode:I,connectionRadius:L,lib:M,onConnectStart:A,cancelConnection:B,nodeLookup:W,rfId:P,panBy:G,updateConnection:$}=v.getState(),q=O.type==="target",Y=(U,Z)=>{g(!1),p?.(U,n,O.type,Z)},Q=U=>m?.(n,U),V=(U,Z)=>{g(!0),h?.(N,n,O.type),A?.(U,Z)};Av.onPointerDown(N.nativeEvent,{autoPanOnConnect:R,connectionMode:I,connectionRadius:L,domNode:D,handleId:O.id,nodeId:O.nodeId,nodeLookup:W,isTarget:q,edgeUpdaterType:O.type,lib:M,flowId:P,cancelConnection:B,panBy:G,isValidConnection:(...U)=>v.getState().isValidConnection?.(...U)??!0,onConnect:Q,onConnectStart:V,onConnectEnd:(...U)=>v.getState().onConnectEnd?.(...U),onReconnectEnd:Y,updateConnection:$,getTransform:()=>v.getState().transform,getFromHandle:()=>v.getState().connection.fromHandle,dragThreshold:v.getState().connectionDragThreshold,handleDomNode:N.currentTarget})},k=N=>_(N,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),w=N=>_(N,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),S=()=>x(!0),j=()=>x(!1);return u.jsxs(u.Fragment,{children:[(e===!0||e==="source")&&u.jsx(H2,{position:c,centerX:i,centerY:r,radius:t,onMouseDown:k,onMouseEnter:S,onMouseOut:j,type:"source"}),(e===!0||e==="target")&&u.jsx(H2,{position:d,centerX:o,centerY:a,radius:t,onMouseDown:w,onMouseEnter:S,onMouseOut:j,type:"target"})]})}function kZ({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:i,onClick:r,onDoubleClick:o,onContextMenu:a,onMouseEnter:c,onMouseMove:d,onMouseLeave:m,reconnectRadius:h,onReconnect:p,onReconnectStart:g,onReconnectEnd:x,rfId:v,edgeTypes:_,noPanClassName:k,onError:w,disableKeyboardA11y:S}){let j=on(je=>je.edgeLookup.get(e));const N=on(je=>je.defaultEdgeOptions);j=N?{...N,...j}:j;let O=j.type||"default",R=_?.[O]||P2[O];R===void 0&&(w?.("011",as.error011(O)),O="default",R=_?.default||P2.default);const D=!!(j.focusable||t&&typeof j.focusable>"u"),I=typeof p<"u"&&(j.reconnectable||n&&typeof j.reconnectable>"u"),L=!!(j.selectable||i&&typeof j.selectable>"u"),M=C.useRef(null),[A,B]=C.useState(!1),[W,P]=C.useState(!1),G=$n(),{zIndex:$,sourceX:q,sourceY:Y,targetX:Q,targetY:V,sourcePosition:U,targetPosition:Z}=on(C.useCallback(je=>{const Te=je.nodeLookup.get(j.source),qe=je.nodeLookup.get(j.target);if(!Te||!qe)return{zIndex:j.zIndex,...B2};const Ze=mX({id:e,sourceNode:Te,targetNode:qe,sourceHandle:j.sourceHandle||null,targetHandle:j.targetHandle||null,connectionMode:je.connectionMode,onError:w});return{zIndex:sX({selected:j.selected,zIndex:j.zIndex,sourceNode:Te,targetNode:qe,elevateOnSelect:je.elevateEdgesOnSelect,zIndexMode:je.zIndexMode}),...Ze||B2}},[j.source,j.target,j.sourceHandle,j.targetHandle,j.selected,j.zIndex]),Bn),F=C.useMemo(()=>j.markerStart?`url('#${Tv(j.markerStart,v)}')`:void 0,[j.markerStart,v]),K=C.useMemo(()=>j.markerEnd?`url('#${Tv(j.markerEnd,v)}')`:void 0,[j.markerEnd,v]);if(j.hidden||q===null||Y===null||Q===null||V===null)return null;const ee=je=>{const{addSelectedEdges:Te,unselectNodesAndEdges:qe,multiSelectionActive:Ze}=G.getState();L&&(G.setState({nodesSelectionActive:!1}),j.selected&&Ze?(qe({nodes:[],edges:[j]}),M.current?.blur()):Te([e])),r&&r(je,j)},te=o?je=>{o(je,{...j})}:void 0,oe=a?je=>{a(je,{...j})}:void 0,ae=c?je=>{c(je,{...j})}:void 0,ue=d?je=>{d(je,{...j})}:void 0,ie=m?je=>{m(je,{...j})}:void 0,we=je=>{if(!S&&PT.includes(je.key)&&L){const{unselectNodesAndEdges:Te,addSelectedEdges:qe}=G.getState();je.key==="Escape"?(M.current?.blur(),Te({edges:[j]})):qe([e])}};return u.jsx("svg",{style:{zIndex:$},children:u.jsxs("g",{className:fi(["react-flow__edge",`react-flow__edge-${O}`,j.className,k,{selected:j.selected,animated:j.animated,inactive:!L&&!r,updating:A,selectable:L}]),onClick:ee,onDoubleClick:te,onContextMenu:oe,onMouseEnter:ae,onMouseMove:ue,onMouseLeave:ie,onKeyDown:D?we:void 0,tabIndex:D?0:void 0,role:j.ariaRole??(D?"group":"img"),"aria-roledescription":"edge","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":j.ariaLabel===null?void 0:j.ariaLabel||`Edge from ${j.source} to ${j.target}`,"aria-describedby":D?`${gR}-${v}`:void 0,ref:M,...j.domAttributes,children:[!W&&u.jsx(R,{id:e,source:j.source,target:j.target,type:j.type,selected:j.selected,animated:j.animated,selectable:L,deletable:j.deletable??!0,label:j.label,labelStyle:j.labelStyle,labelShowBg:j.labelShowBg,labelBgStyle:j.labelBgStyle,labelBgPadding:j.labelBgPadding,labelBgBorderRadius:j.labelBgBorderRadius,sourceX:q,sourceY:Y,targetX:Q,targetY:V,sourcePosition:U,targetPosition:Z,data:j.data,style:j.style,sourceHandleId:j.sourceHandle,targetHandleId:j.targetHandle,markerStart:F,markerEnd:K,pathOptions:"pathOptions"in j?j.pathOptions:void 0,interactionWidth:j.interactionWidth}),I&&u.jsx(_Z,{edge:j,isReconnectable:I,reconnectRadius:h,onReconnect:p,onReconnectStart:g,onReconnectEnd:x,sourceX:q,sourceY:Y,targetX:Q,targetY:V,sourcePosition:U,targetPosition:Z,setUpdateHover:B,setReconnecting:P})]})})}var SZ=C.memo(kZ);const wZ=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function HR({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:i,noPanClassName:r,onReconnect:o,onEdgeContextMenu:a,onEdgeMouseEnter:c,onEdgeMouseMove:d,onEdgeMouseLeave:m,onEdgeClick:h,reconnectRadius:p,onEdgeDoubleClick:g,onReconnectStart:x,onReconnectEnd:v,disableKeyboardA11y:_}){const{edgesFocusable:k,edgesReconnectable:w,elementsSelectable:S,onError:j}=on(wZ,Bn),N=lZ(t);return u.jsxs("div",{className:"react-flow__edges",children:[u.jsx(mZ,{defaultColor:e,rfId:n}),N.map(O=>u.jsx(SZ,{id:O,edgesFocusable:k,edgesReconnectable:w,elementsSelectable:S,noPanClassName:r,onReconnect:o,onContextMenu:a,onMouseEnter:c,onMouseMove:d,onMouseLeave:m,onClick:h,reconnectRadius:p,onDoubleClick:g,onReconnectStart:x,onReconnectEnd:v,rfId:n,onError:j,edgeTypes:i,disableKeyboardA11y:_},O))]})}HR.displayName="EdgeRenderer";const CZ=C.memo(HR),jZ=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function EZ({children:e}){const t=on(jZ);return u.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}function NZ(e){const t=Z0(),n=C.useRef(!1);C.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const IZ=e=>e.panZoom?.syncViewport;function TZ(e){const t=on(IZ),n=$n();return C.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:Yu(e.connection.to,e.transform)}:{...e.connection}}function AZ(e){return RZ}function MZ(e){const t=AZ();return on(t,Bn)}const DZ=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function OZ({containerStyle:e,style:t,type:n,component:i}){const{nodesConnectable:r,width:o,height:a,isValid:c,inProgress:d}=on(DZ,Bn);return!(o&&r&&d)?null:u.jsx("svg",{style:e,width:o,height:a,className:"react-flow__connectionline react-flow__container",children:u.jsx("g",{className:fi(["react-flow__connection",HT(c)]),children:u.jsx(FR,{style:t,type:n,CustomComponent:i,isValid:c})})})}const FR=({style:e,type:t=vo.Bezier,CustomComponent:n,isValid:i})=>{const{inProgress:r,from:o,fromNode:a,fromHandle:c,fromPosition:d,to:m,toNode:h,toHandle:p,toPosition:g,pointer:x}=MZ();if(!r)return;if(n)return u.jsx(n,{connectionLineType:t,connectionLineStyle:e,fromNode:a,fromHandle:c,fromX:o.x,fromY:o.y,toX:m.x,toY:m.y,fromPosition:d,toPosition:g,connectionStatus:HT(i),toNode:h,toHandle:p,pointer:x});let v="";const _={sourceX:o.x,sourceY:o.y,sourcePosition:d,targetX:m.x,targetY:m.y,targetPosition:g};switch(t){case vo.Bezier:[v]=JT(_);break;case vo.SimpleBezier:[v]=IR(_);break;case vo.Step:[v]=Iv({..._,borderRadius:0});break;case vo.SmoothStep:[v]=Iv(_);break;default:[v]=tR(_)}return u.jsx("path",{d:v,fill:"none",className:"react-flow__connection-path",style:e})};FR.displayName="ConnectionLine";const LZ={};function F2(e=LZ){C.useRef(e),$n(),C.useEffect(()=>{},[e])}function zZ(){$n(),C.useRef(!1),C.useEffect(()=>{},[])}function VR({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:i,onEdgeClick:r,onNodeDoubleClick:o,onEdgeDoubleClick:a,onNodeMouseEnter:c,onNodeMouseMove:d,onNodeMouseLeave:m,onNodeContextMenu:h,onSelectionContextMenu:p,onSelectionStart:g,onSelectionEnd:x,connectionLineType:v,connectionLineStyle:_,connectionLineComponent:k,connectionLineContainerStyle:w,selectionKeyCode:S,selectionOnDrag:j,selectionMode:N,multiSelectionKeyCode:O,panActivationKeyCode:R,zoomActivationKeyCode:D,deleteKeyCode:I,onlyRenderVisibleElements:L,elementsSelectable:M,defaultViewport:A,translateExtent:B,minZoom:W,maxZoom:P,preventScrolling:G,defaultMarkerColor:$,zoomOnScroll:q,zoomOnPinch:Y,panOnScroll:Q,panOnScrollSpeed:V,panOnScrollMode:U,zoomOnDoubleClick:Z,panOnDrag:F,onPaneClick:K,onPaneMouseEnter:ee,onPaneMouseMove:te,onPaneMouseLeave:oe,onPaneScroll:ae,onPaneContextMenu:ue,paneClickDistance:ie,nodeClickDistance:we,onEdgeContextMenu:je,onEdgeMouseEnter:Te,onEdgeMouseMove:qe,onEdgeMouseLeave:Ze,reconnectRadius:Xe,onReconnect:pt,onReconnectStart:Ut,onReconnectEnd:Pt,noDragClassName:It,noWheelClassName:he,noPanClassName:Be,disableKeyboardA11y:at,nodeExtent:Ue,rfId:ct,viewport:pe,onViewportChange:be}){return F2(e),F2(t),zZ(),NZ(n),TZ(pe),u.jsx(QK,{onPaneClick:K,onPaneMouseEnter:ee,onPaneMouseMove:te,onPaneMouseLeave:oe,onPaneContextMenu:ue,onPaneScroll:ae,paneClickDistance:ie,deleteKeyCode:I,selectionKeyCode:S,selectionOnDrag:j,selectionMode:N,onSelectionStart:g,onSelectionEnd:x,multiSelectionKeyCode:O,panActivationKeyCode:R,zoomActivationKeyCode:D,elementsSelectable:M,zoomOnScroll:q,zoomOnPinch:Y,zoomOnDoubleClick:Z,panOnScroll:Q,panOnScrollSpeed:V,panOnScrollMode:U,panOnDrag:F,defaultViewport:A,translateExtent:B,minZoom:W,maxZoom:P,onSelectionContextMenu:p,preventScrolling:G,noDragClassName:It,noWheelClassName:he,noPanClassName:Be,disableKeyboardA11y:at,onViewportChange:be,isControlledViewport:!!pe,children:u.jsxs(EZ,{children:[u.jsx(CZ,{edgeTypes:t,onEdgeClick:r,onEdgeDoubleClick:a,onReconnect:pt,onReconnectStart:Ut,onReconnectEnd:Pt,onlyRenderVisibleElements:L,onEdgeContextMenu:je,onEdgeMouseEnter:Te,onEdgeMouseMove:qe,onEdgeMouseLeave:Ze,reconnectRadius:Xe,defaultMarkerColor:$,noPanClassName:Be,disableKeyboardA11y:at,rfId:ct}),u.jsx(OZ,{style:_,type:v,component:k,containerStyle:w}),u.jsx("div",{className:"react-flow__edgelabel-renderer"}),u.jsx(aZ,{nodeTypes:e,onNodeClick:i,onNodeDoubleClick:o,onNodeMouseEnter:c,onNodeMouseMove:d,onNodeMouseLeave:m,onNodeContextMenu:h,nodeClickDistance:we,onlyRenderVisibleElements:L,noPanClassName:Be,noDragClassName:It,disableKeyboardA11y:at,nodeExtent:Ue,rfId:ct}),u.jsx("div",{className:"react-flow__viewport-portal"})]})})}VR.displayName="GraphView";const PZ=C.memo(VR),V2=({nodes:e,edges:t,defaultNodes:n,defaultEdges:i,width:r,height:o,fitView:a,fitViewOptions:c,minZoom:d=.5,maxZoom:m=2,nodeOrigin:h,nodeExtent:p,zIndexMode:g="basic"}={})=>{const x=new Map,v=new Map,_=new Map,k=new Map,w=i??t??[],S=n??e??[],j=h??[0,0],N=p??Au;rR(_,k,w);const{nodesInitialized:O}=Rv(S,x,v,{nodeOrigin:j,nodeExtent:N,zIndexMode:g});let R=[0,0,1];if(a&&r&&o){const D=qu(x,{filter:A=>!!((A.width||A.initialWidth)&&(A.height||A.initialHeight))}),{x:I,y:L,zoom:M}=U0(D,r,o,d,m,c?.padding??.1);R=[I,L,M]}return{rfId:"1",width:r??0,height:o??0,transform:R,nodes:S,nodesInitialized:O,nodeLookup:x,parentLookup:v,edges:w,edgeLookup:k,connectionLookup:_,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:i!==void 0,panZoom:null,minZoom:d,maxZoom:m,translateExtent:Au,nodeExtent:N,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:Dl.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:j,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:a??!1,fitViewOptions:c,fitViewResolver:null,connection:{...$T},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:JY,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:BT,zIndexMode:g,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},BZ=({nodes:e,edges:t,defaultNodes:n,defaultEdges:i,width:r,height:o,fitView:a,fitViewOptions:c,minZoom:d,maxZoom:m,nodeOrigin:h,nodeExtent:p,zIndexMode:g})=>iK((x,v)=>{async function _(){const{nodeLookup:k,panZoom:w,fitViewOptions:S,fitViewResolver:j,width:N,height:O,minZoom:R,maxZoom:D}=v();w&&(await ZY({nodes:k,width:N,height:O,panZoom:w,minZoom:R,maxZoom:D},S),j?.resolve(!0),x({fitViewResolver:null}))}return{...V2({nodes:e,edges:t,width:r,height:o,fitView:a,fitViewOptions:c,minZoom:d,maxZoom:m,nodeOrigin:h,nodeExtent:p,defaultNodes:n,defaultEdges:i,zIndexMode:g}),setNodes:k=>{const{nodeLookup:w,parentLookup:S,nodeOrigin:j,elevateNodesOnSelect:N,fitViewQueued:O,zIndexMode:R,nodesSelectionActive:D}=v(),{nodesInitialized:I,hasSelectedNodes:L}=Rv(k,w,S,{nodeOrigin:j,nodeExtent:p,elevateNodesOnSelect:N,checkEquality:!0,zIndexMode:R}),M=D&&L;O&&I?(_(),x({nodes:k,nodesInitialized:I,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:M})):x({nodes:k,nodesInitialized:I,nodesSelectionActive:M})},setEdges:k=>{const{connectionLookup:w,edgeLookup:S}=v();rR(w,S,k),x({edges:k})},setDefaultNodesAndEdges:(k,w)=>{if(k){const{setNodes:S}=v();S(k),x({hasDefaultNodes:!0})}if(w){const{setEdges:S}=v();S(w),x({hasDefaultEdges:!0})}},updateNodeInternals:k=>{const{triggerNodeChanges:w,nodeLookup:S,parentLookup:j,domNode:N,nodeOrigin:O,nodeExtent:R,debug:D,fitViewQueued:I,zIndexMode:L}=v(),{changes:M,updatedInternals:A}=_X(k,S,j,N,O,R,L);A&&(yX(S,j,{nodeOrigin:O,nodeExtent:R,zIndexMode:L}),I?(_(),x({fitViewQueued:!1,fitViewOptions:void 0})):x({}),M?.length>0&&(D&&console.log("React Flow: trigger node changes",M),w?.(M)))},updateNodePositions:(k,w=!1)=>{const S=[];let j=[];const{nodeLookup:N,triggerNodeChanges:O,connection:R,updateConnection:D,onNodesChangeMiddlewareMap:I}=v();for(const[L,M]of k){const A=N.get(L),B=!!(A?.expandParent&&A?.parentId&&M?.position),W={id:L,type:"position",position:B?{x:Math.max(0,M.position.x),y:Math.max(0,M.position.y)}:M.position,dragging:w};if(A&&R.inProgress&&R.fromNode.id===A.id){const P=fa(A,R.fromHandle,ot.Left,!0);D({...R,from:P})}B&&A.parentId&&S.push({id:L,parentId:A.parentId,rect:{...M.internals.positionAbsolute,width:M.measured.width??0,height:M.measured.height??0}}),j.push(W)}if(S.length>0){const{parentLookup:L,nodeOrigin:M}=v(),A=K0(S,N,L,M);j.push(...A)}for(const L of I.values())j=L(j);O(j)},triggerNodeChanges:k=>{const{onNodesChange:w,setNodes:S,nodes:j,hasDefaultNodes:N,debug:O}=v();if(k?.length){if(N){const R=vR(k,j);S(R)}O&&console.log("React Flow: trigger node changes",k),w?.(k)}},triggerEdgeChanges:k=>{const{onEdgesChange:w,setEdges:S,edges:j,hasDefaultEdges:N,debug:O}=v();if(k?.length){if(N){const R=wK(k,j);S(R)}O&&console.log("React Flow: trigger edge changes",k),w?.(k)}},addSelectedNodes:k=>{const{multiSelectionActive:w,edgeLookup:S,nodeLookup:j,triggerNodeChanges:N,triggerEdgeChanges:O}=v();if(w){const R=k.map(D=>ta(D,!0));N(R);return}N(dl(j,new Set([...k]),!0)),O(dl(S))},addSelectedEdges:k=>{const{multiSelectionActive:w,edgeLookup:S,nodeLookup:j,triggerNodeChanges:N,triggerEdgeChanges:O}=v();if(w){const R=k.map(D=>ta(D,!0));O(R);return}O(dl(S,new Set([...k]))),N(dl(j,new Set,!0))},unselectNodesAndEdges:({nodes:k,edges:w}={})=>{const{edges:S,nodes:j,nodeLookup:N,triggerNodeChanges:O,triggerEdgeChanges:R}=v(),D=k||j,I=w||S,L=[];for(const A of D){if(!A.selected)continue;const B=N.get(A.id);B&&(B.selected=!1),L.push(ta(A.id,!1))}const M=[];for(const A of I)A.selected&&M.push(ta(A.id,!1));O(L),R(M)},setMinZoom:k=>{const{panZoom:w,maxZoom:S}=v();w?.setScaleExtent([k,S]),x({minZoom:k})},setMaxZoom:k=>{const{panZoom:w,minZoom:S}=v();w?.setScaleExtent([S,k]),x({maxZoom:k})},setTranslateExtent:k=>{v().panZoom?.setTranslateExtent(k),x({translateExtent:k})},resetSelectedElements:()=>{const{edges:k,nodes:w,triggerNodeChanges:S,triggerEdgeChanges:j,elementsSelectable:N}=v();if(!N)return;const O=w.reduce((D,I)=>I.selected?[...D,ta(I.id,!1)]:D,[]),R=k.reduce((D,I)=>I.selected?[...D,ta(I.id,!1)]:D,[]);S(O),j(R)},setNodeExtent:k=>{const{nodes:w,nodeLookup:S,parentLookup:j,nodeOrigin:N,elevateNodesOnSelect:O,nodeExtent:R,zIndexMode:D}=v();k[0][0]===R[0][0]&&k[0][1]===R[0][1]&&k[1][0]===R[1][0]&&k[1][1]===R[1][1]||(Rv(w,S,j,{nodeOrigin:N,nodeExtent:k,elevateNodesOnSelect:O,checkEquality:!1,zIndexMode:D}),x({nodeExtent:k}))},panBy:k=>{const{transform:w,width:S,height:j,panZoom:N,translateExtent:O}=v();return kX({delta:k,panZoom:N,transform:w,translateExtent:O,width:S,height:j})},setCenter:async(k,w,S)=>{const{width:j,height:N,maxZoom:O,panZoom:R}=v();if(!R)return Promise.resolve(!1);const D=typeof S?.zoom<"u"?S.zoom:O;return await R.setViewport({x:j/2-k*D,y:N/2-w*D,zoom:D},{duration:S?.duration,ease:S?.ease,interpolate:S?.interpolate}),Promise.resolve(!0)},cancelConnection:()=>{x({connection:{...$T}})},updateConnection:k=>{x({connection:k})},reset:()=>x({...V2()})}},Object.is);function UR({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:i,initialWidth:r,initialHeight:o,initialMinZoom:a,initialMaxZoom:c,initialFitViewOptions:d,fitView:m,nodeOrigin:h,nodeExtent:p,zIndexMode:g,children:x}){const[v]=C.useState(()=>BZ({nodes:e,edges:t,defaultNodes:n,defaultEdges:i,width:r,height:o,fitView:m,minZoom:a,maxZoom:c,fitViewOptions:d,nodeOrigin:h,nodeExtent:p,zIndexMode:g}));return u.jsx(rK,{value:v,children:u.jsx(EK,{children:x})})}function $Z({children:e,nodes:t,edges:n,defaultNodes:i,defaultEdges:r,width:o,height:a,fitView:c,fitViewOptions:d,minZoom:m,maxZoom:h,nodeOrigin:p,nodeExtent:g,zIndexMode:x}){return C.useContext(op)?u.jsx(u.Fragment,{children:e}):u.jsx(UR,{initialNodes:t,initialEdges:n,defaultNodes:i,defaultEdges:r,initialWidth:o,initialHeight:a,fitView:c,initialFitViewOptions:d,initialMinZoom:m,initialMaxZoom:h,nodeOrigin:p,nodeExtent:g,zIndexMode:x,children:e})}const HZ={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function FZ({nodes:e,edges:t,defaultNodes:n,defaultEdges:i,className:r,nodeTypes:o,edgeTypes:a,onNodeClick:c,onEdgeClick:d,onInit:m,onMove:h,onMoveStart:p,onMoveEnd:g,onConnect:x,onConnectStart:v,onConnectEnd:_,onClickConnectStart:k,onClickConnectEnd:w,onNodeMouseEnter:S,onNodeMouseMove:j,onNodeMouseLeave:N,onNodeContextMenu:O,onNodeDoubleClick:R,onNodeDragStart:D,onNodeDrag:I,onNodeDragStop:L,onNodesDelete:M,onEdgesDelete:A,onDelete:B,onSelectionChange:W,onSelectionDragStart:P,onSelectionDrag:G,onSelectionDragStop:$,onSelectionContextMenu:q,onSelectionStart:Y,onSelectionEnd:Q,onBeforeDelete:V,connectionMode:U,connectionLineType:Z=vo.Bezier,connectionLineStyle:F,connectionLineComponent:K,connectionLineContainerStyle:ee,deleteKeyCode:te="Backspace",selectionKeyCode:oe="Shift",selectionOnDrag:ae=!1,selectionMode:ue=Mu.Full,panActivationKeyCode:ie="Space",multiSelectionKeyCode:we=Ou()?"Meta":"Control",zoomActivationKeyCode:je=Ou()?"Meta":"Control",snapToGrid:Te,snapGrid:qe,onlyRenderVisibleElements:Ze=!1,selectNodesOnDrag:Xe,nodesDraggable:pt,autoPanOnNodeFocus:Ut,nodesConnectable:Pt,nodesFocusable:It,nodeOrigin:he=yR,edgesFocusable:Be,edgesReconnectable:at,elementsSelectable:Ue=!0,defaultViewport:ct=yK,minZoom:pe=.5,maxZoom:be=2,translateExtent:Ae=Au,preventScrolling:He=!0,nodeExtent:Ye,defaultMarkerColor:$t="#b1b1b7",zoomOnScroll:yt=!0,zoomOnPinch:ke=!0,panOnScroll:We=!1,panOnScrollSpeed:Qe=.5,panOnScrollMode:Fe=oa.Free,zoomOnDoubleClick:Ve=!0,panOnDrag:Gt=!0,onPaneClick:ei,onPaneMouseEnter:_t,onPaneMouseMove:kt,onPaneMouseLeave:vn,onPaneScroll:On,onPaneContextMenu:jt,paneClickDistance:Ht=1,nodeClickDistance:Hn=0,children:Me,onReconnect:gt,onReconnectStart:ht,onReconnectEnd:mi,onEdgeContextMenu:Vn,onEdgeDoubleClick:pn,onEdgeMouseEnter:Fn,onEdgeMouseMove:tt,onEdgeMouseLeave:pi,reconnectRadius:Si=10,onNodesChange:Rn,onEdgesChange:wn,noDragClassName:Vt="nodrag",noWheelClassName:Cn="nowheel",noPanClassName:Xt="nopan",fitView:Re,fitViewOptions:wt,connectOnClick:bn,attributionPosition:wi,proOptions:In,defaultEdgeOptions:At,elevateNodesOnSelect:yi=!0,elevateEdgesOnSelect:Zn=!1,disableKeyboardA11y:ti=!1,autoPanOnConnect:ln,autoPanOnNodeDrag:Kt,autoPanSpeed:Mt,connectionRadius:Zt,isValidConnection:Un,onError:dn,style:Je,id:ni,nodeDragThreshold:Bt,connectionDragThreshold:Dt,viewport:An,onViewportChange:Gn,width:jn,height:Ln,colorMode:xi="light",debug:de,onScroll:ve,ariaLabelConfig:$e,zIndexMode:dt="basic",...an},Ft){const ce=ni||"1",Se=_K(xi),ze=C.useCallback(Ge=>{Ge.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),ve?.(Ge)},[ve]);return u.jsx("div",{"data-testid":"rf__wrapper",...an,onScroll:ze,style:{...Je,...HZ},ref:Ft,className:fi(["react-flow",r,Se]),id:ni,role:"application",children:u.jsxs($Z,{nodes:e,edges:t,width:jn,height:Ln,fitView:Re,fitViewOptions:wt,minZoom:pe,maxZoom:be,nodeOrigin:he,nodeExtent:Ye,zIndexMode:dt,children:[u.jsx(bK,{nodes:e,edges:t,defaultNodes:n,defaultEdges:i,onConnect:x,onConnectStart:v,onConnectEnd:_,onClickConnectStart:k,onClickConnectEnd:w,nodesDraggable:pt,autoPanOnNodeFocus:Ut,nodesConnectable:Pt,nodesFocusable:It,edgesFocusable:Be,edgesReconnectable:at,elementsSelectable:Ue,elevateNodesOnSelect:yi,elevateEdgesOnSelect:Zn,minZoom:pe,maxZoom:be,nodeExtent:Ye,onNodesChange:Rn,onEdgesChange:wn,snapToGrid:Te,snapGrid:qe,connectionMode:U,translateExtent:Ae,connectOnClick:bn,defaultEdgeOptions:At,fitView:Re,fitViewOptions:wt,onNodesDelete:M,onEdgesDelete:A,onDelete:B,onNodeDragStart:D,onNodeDrag:I,onNodeDragStop:L,onSelectionDrag:G,onSelectionDragStart:P,onSelectionDragStop:$,onMove:h,onMoveStart:p,onMoveEnd:g,noPanClassName:Xt,nodeOrigin:he,rfId:ce,autoPanOnConnect:ln,autoPanOnNodeDrag:Kt,autoPanSpeed:Mt,onError:dn,connectionRadius:Zt,isValidConnection:Un,selectNodesOnDrag:Xe,nodeDragThreshold:Bt,connectionDragThreshold:Dt,onBeforeDelete:V,debug:de,ariaLabelConfig:$e,zIndexMode:dt}),u.jsx(PZ,{onInit:m,onNodeClick:c,onEdgeClick:d,onNodeMouseEnter:S,onNodeMouseMove:j,onNodeMouseLeave:N,onNodeContextMenu:O,onNodeDoubleClick:R,nodeTypes:o,edgeTypes:a,connectionLineType:Z,connectionLineStyle:F,connectionLineComponent:K,connectionLineContainerStyle:ee,selectionKeyCode:oe,selectionOnDrag:ae,selectionMode:ue,deleteKeyCode:te,multiSelectionKeyCode:we,panActivationKeyCode:ie,zoomActivationKeyCode:je,onlyRenderVisibleElements:Ze,defaultViewport:ct,translateExtent:Ae,minZoom:pe,maxZoom:be,preventScrolling:He,zoomOnScroll:yt,zoomOnPinch:ke,zoomOnDoubleClick:Ve,panOnScroll:We,panOnScrollSpeed:Qe,panOnScrollMode:Fe,panOnDrag:Gt,onPaneClick:ei,onPaneMouseEnter:_t,onPaneMouseMove:kt,onPaneMouseLeave:vn,onPaneScroll:On,onPaneContextMenu:jt,paneClickDistance:Ht,nodeClickDistance:Hn,onSelectionContextMenu:q,onSelectionStart:Y,onSelectionEnd:Q,onReconnect:gt,onReconnectStart:ht,onReconnectEnd:mi,onEdgeContextMenu:Vn,onEdgeDoubleClick:pn,onEdgeMouseEnter:Fn,onEdgeMouseMove:tt,onEdgeMouseLeave:pi,reconnectRadius:Si,defaultMarkerColor:$t,noDragClassName:Vt,noWheelClassName:Cn,noPanClassName:Xt,rfId:ce,disableKeyboardA11y:ti,nodeExtent:Ye,viewport:An,onViewportChange:Gn}),u.jsx(gK,{onSelectionChange:W}),Me,u.jsx(dK,{proOptions:In,position:wi}),u.jsx(uK,{rfId:ce,disableKeyboardA11y:ti})]})})}var VZ=bR(FZ);function UZ({dimensions:e,lineWidth:t,variant:n,className:i}){return u.jsx("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:fi(["react-flow__background-pattern",n,i])})}function GZ({radius:e,className:t}){return u.jsx("circle",{cx:e,cy:e,r:e,className:fi(["react-flow__background-pattern","dots",t])})}var So;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(So||(So={}));const qZ={[So.Dots]:1,[So.Lines]:1,[So.Cross]:6},WZ=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function GR({id:e,variant:t=So.Dots,gap:n=20,size:i,lineWidth:r=1,offset:o=0,color:a,bgColor:c,style:d,className:m,patternClassName:h}){const p=C.useRef(null),{transform:g,patternId:x}=on(WZ,Bn),v=i||qZ[t],_=t===So.Dots,k=t===So.Cross,w=Array.isArray(n)?n:[n,n],S=[w[0]*g[2]||1,w[1]*g[2]||1],j=v*g[2],N=Array.isArray(o)?o:[o,o],O=k?[j,j]:S,R=[N[0]*g[2]||1+O[0]/2,N[1]*g[2]||1+O[1]/2],D=`${x}${e||""}`;return u.jsxs("svg",{className:fi(["react-flow__background",m]),style:{...d,...lp,"--xy-background-color-props":c,"--xy-background-pattern-color-props":a},ref:p,"data-testid":"rf__background",children:[u.jsx("pattern",{id:D,x:g[0]%S[0],y:g[1]%S[1],width:S[0],height:S[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${R[0]},-${R[1]})`,children:_?u.jsx(GZ,{radius:j/2,className:h}):u.jsx(UZ,{dimensions:O,lineWidth:r,variant:t,className:h})}),u.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${D})`})]})}GR.displayName="Background";const YZ=C.memo(GR);function XZ(){return u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:u.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function KZ(){return u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:u.jsx("path",{d:"M0 0h32v4.2H0z"})})}function ZZ(){return u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:u.jsx("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function QZ(){return u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:u.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function JZ(){return u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:u.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}function Ef({children:e,className:t,...n}){return u.jsx("button",{type:"button",className:fi(["react-flow__controls-button",t]),...n,children:e})}const eQ=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function qR({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:i=!0,fitViewOptions:r,onZoomIn:o,onZoomOut:a,onFitView:c,onInteractiveChange:d,className:m,children:h,position:p="bottom-left",orientation:g="vertical","aria-label":x}){const v=$n(),{isInteractive:_,minZoomReached:k,maxZoomReached:w,ariaLabelConfig:S}=on(eQ,Bn),{zoomIn:j,zoomOut:N,fitView:O}=Z0(),R=()=>{j(),o?.()},D=()=>{N(),a?.()},I=()=>{O(r),c?.()},L=()=>{v.setState({nodesDraggable:!_,nodesConnectable:!_,elementsSelectable:!_}),d?.(!_)},M=g==="horizontal"?"horizontal":"vertical";return u.jsxs(ap,{className:fi(["react-flow__controls",M,m]),position:p,style:e,"data-testid":"rf__controls","aria-label":x??S["controls.ariaLabel"],children:[t&&u.jsxs(u.Fragment,{children:[u.jsx(Ef,{onClick:R,className:"react-flow__controls-zoomin",title:S["controls.zoomIn.ariaLabel"],"aria-label":S["controls.zoomIn.ariaLabel"],disabled:w,children:u.jsx(XZ,{})}),u.jsx(Ef,{onClick:D,className:"react-flow__controls-zoomout",title:S["controls.zoomOut.ariaLabel"],"aria-label":S["controls.zoomOut.ariaLabel"],disabled:k,children:u.jsx(KZ,{})})]}),n&&u.jsx(Ef,{className:"react-flow__controls-fitview",onClick:I,title:S["controls.fitView.ariaLabel"],"aria-label":S["controls.fitView.ariaLabel"],children:u.jsx(ZZ,{})}),i&&u.jsx(Ef,{className:"react-flow__controls-interactive",onClick:L,title:S["controls.interactive.ariaLabel"],"aria-label":S["controls.interactive.ariaLabel"],children:_?u.jsx(JZ,{}):u.jsx(QZ,{})}),h]})}qR.displayName="Controls";const tQ=C.memo(qR);function nQ({id:e,x:t,y:n,width:i,height:r,style:o,color:a,strokeColor:c,strokeWidth:d,className:m,borderRadius:h,shapeRendering:p,selected:g,onClick:x}){const{background:v,backgroundColor:_}=o||{},k=a||v||_;return u.jsx("rect",{className:fi(["react-flow__minimap-node",{selected:g},m]),x:t,y:n,rx:h,ry:h,width:i,height:r,style:{fill:k,stroke:c,strokeWidth:d},shapeRendering:p,onClick:x?w=>x(w,e):void 0})}const iQ=C.memo(nQ),rQ=e=>e.nodes.map(t=>t.id),Py=e=>e instanceof Function?e:()=>e;function sQ({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:i=5,nodeStrokeWidth:r,nodeComponent:o=iQ,onClick:a}){const c=on(rQ,Bn),d=Py(t),m=Py(e),h=Py(n),p=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return u.jsx(u.Fragment,{children:c.map(g=>u.jsx(aQ,{id:g,nodeColorFunc:d,nodeStrokeColorFunc:m,nodeClassNameFunc:h,nodeBorderRadius:i,nodeStrokeWidth:r,NodeComponent:o,onClick:a,shapeRendering:p},g))})}function oQ({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:i,nodeBorderRadius:r,nodeStrokeWidth:o,shapeRendering:a,NodeComponent:c,onClick:d}){const{node:m,x:h,y:p,width:g,height:x}=on(v=>{const _=v.nodeLookup.get(e);if(!_)return{node:void 0,x:0,y:0,width:0,height:0};const k=_.internals.userNode,{x:w,y:S}=_.internals.positionAbsolute,{width:j,height:N}=Ps(k);return{node:k,x:w,y:S,width:j,height:N}},Bn);return!m||m.hidden||!WT(m)?null:u.jsx(c,{x:h,y:p,width:g,height:x,style:m.style,selected:!!m.selected,className:i(m),color:t(m),borderRadius:r,strokeColor:n(m),strokeWidth:o,shapeRendering:a,onClick:d,id:m.id})}const aQ=C.memo(oQ);var lQ=C.memo(sQ);const cQ=200,uQ=150,dQ=e=>!e.hidden,fQ=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?qT(qu(e.nodeLookup,{filter:dQ}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},mQ="react-flow__minimap-desc";function WR({style:e,className:t,nodeStrokeColor:n,nodeColor:i,nodeClassName:r="",nodeBorderRadius:o=5,nodeStrokeWidth:a,nodeComponent:c,bgColor:d,maskColor:m,maskStrokeColor:h,maskStrokeWidth:p,position:g="bottom-right",onClick:x,onNodeClick:v,pannable:_=!1,zoomable:k=!1,ariaLabel:w,inversePan:S,zoomStep:j=1,offsetScale:N=5}){const O=$n(),R=C.useRef(null),{boundingRect:D,viewBB:I,rfId:L,panZoom:M,translateExtent:A,flowWidth:B,flowHeight:W,ariaLabelConfig:P}=on(fQ,Bn),G=e?.width??cQ,$=e?.height??uQ,q=D.width/G,Y=D.height/$,Q=Math.max(q,Y),V=Q*G,U=Q*$,Z=N*Q,F=D.x-(V-D.width)/2-Z,K=D.y-(U-D.height)/2-Z,ee=V+Z*2,te=U+Z*2,oe=`${mQ}-${L}`,ae=C.useRef(0),ue=C.useRef();ae.current=Q,C.useEffect(()=>{if(R.current&&M)return ue.current=RX({domNode:R.current,panZoom:M,getTransform:()=>O.getState().transform,getViewScale:()=>ae.current}),()=>{ue.current?.destroy()}},[M]),C.useEffect(()=>{ue.current?.update({translateExtent:A,width:B,height:W,inversePan:S,pannable:_,zoomStep:j,zoomable:k})},[_,k,S,j,A,B,W]);const ie=x?Te=>{const[qe,Ze]=ue.current?.pointer(Te)||[0,0];x(Te,{x:qe,y:Ze})}:void 0,we=v?C.useCallback((Te,qe)=>{const Ze=O.getState().nodeLookup.get(qe).internals.userNode;v(Te,Ze)},[]):void 0,je=w??P["minimap.ariaLabel"];return u.jsx(ap,{position:g,style:{...e,"--xy-minimap-background-color-props":typeof d=="string"?d:void 0,"--xy-minimap-mask-background-color-props":typeof m=="string"?m:void 0,"--xy-minimap-mask-stroke-color-props":typeof h=="string"?h:void 0,"--xy-minimap-mask-stroke-width-props":typeof p=="number"?p*Q:void 0,"--xy-minimap-node-background-color-props":typeof i=="string"?i:void 0,"--xy-minimap-node-stroke-color-props":typeof n=="string"?n:void 0,"--xy-minimap-node-stroke-width-props":typeof a=="number"?a:void 0},className:fi(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:u.jsxs("svg",{width:G,height:$,viewBox:`${F} ${K} ${ee} ${te}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":oe,ref:R,onClick:ie,children:[je&&u.jsx("title",{id:oe,children:je}),u.jsx(lQ,{onClick:we,nodeColor:i,nodeStrokeColor:n,nodeBorderRadius:o,nodeClassName:r,nodeStrokeWidth:a,nodeComponent:c}),u.jsx("path",{className:"react-flow__minimap-mask",d:`M${F-Z},${K-Z}h${ee+Z*2}v${te+Z*2}h${-ee-Z*2}z - M${I.x},${I.y}h${I.width}v${I.height}h${-I.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}WR.displayName="MiniMap";const pQ=C.memo(WR),hQ=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,gQ={[Pl.Line]:"right",[Pl.Handle]:"bottom-right"};function yQ({nodeId:e,position:t,variant:n=Pl.Handle,className:i,style:r=void 0,children:o,color:a,minWidth:c=10,minHeight:d=10,maxWidth:m=Number.MAX_VALUE,maxHeight:h=Number.MAX_VALUE,keepAspectRatio:p=!1,resizeDirection:g,autoScale:x=!0,shouldResize:v,onResizeStart:_,onResize:k,onResizeEnd:w}){const S=wR(),j=typeof e=="string"?e:S,N=$n(),O=C.useRef(null),R=n===Pl.Handle,D=on(C.useCallback(hQ(R&&x),[R,x]),Bn),I=C.useRef(null),L=t??gQ[n];C.useEffect(()=>{if(!(!O.current||!j))return I.current||(I.current=GX({domNode:O.current,nodeId:j,getStoreItems:()=>{const{nodeLookup:A,transform:B,snapGrid:W,snapToGrid:P,nodeOrigin:G,domNode:$}=N.getState();return{nodeLookup:A,transform:B,snapGrid:W,snapToGrid:P,nodeOrigin:G,paneDomNode:$}},onChange:(A,B)=>{const{triggerNodeChanges:W,nodeLookup:P,parentLookup:G,nodeOrigin:$}=N.getState(),q=[],Y={x:A.x,y:A.y},Q=P.get(j);if(Q&&Q.expandParent&&Q.parentId){const V=Q.origin??$,U=A.width??Q.measured.width??0,Z=A.height??Q.measured.height??0,F={id:Q.id,parentId:Q.parentId,rect:{width:U,height:Z,...YT({x:A.x??Q.position.x,y:A.y??Q.position.y},{width:U,height:Z},Q.parentId,P,V)}},K=K0([F],P,G,$);q.push(...K),Y.x=A.x?Math.max(V[0]*U,A.x):void 0,Y.y=A.y?Math.max(V[1]*Z,A.y):void 0}if(Y.x!==void 0&&Y.y!==void 0){const V={id:j,type:"position",position:{...Y}};q.push(V)}if(A.width!==void 0&&A.height!==void 0){const U={id:j,type:"dimensions",resizing:!0,setAttributes:g?g==="horizontal"?"width":"height":!0,dimensions:{width:A.width,height:A.height}};q.push(U)}for(const V of B){const U={...V,type:"position"};q.push(U)}W(q)},onEnd:({width:A,height:B})=>{const W={id:j,type:"dimensions",resizing:!1,dimensions:{width:A,height:B}};N.getState().triggerNodeChanges([W])}})),I.current.update({controlPosition:L,boundaries:{minWidth:c,minHeight:d,maxWidth:m,maxHeight:h},keepAspectRatio:p,resizeDirection:g,onResizeStart:_,onResize:k,onResizeEnd:w,shouldResize:v}),()=>{I.current?.destroy()}},[L,c,d,m,h,p,_,k,w,v]);const M=L.split("-");return u.jsx("div",{className:fi(["react-flow__resize-control","nodrag",...M,n,i]),ref:O,style:{...r,scale:D,...a&&{[R?"backgroundColor":"borderColor"]:a}},children:o})}C.memo(yQ);const xQ=C.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(" "),i=Fu(t.icon);return u.jsxs("div",{className:n,children:[u.jsx(Bl,{type:"target",position:ot.Top,className:"oc-canvas-handle"}),u.jsxs("div",{className:"oc-canvas-node-row",children:[u.jsx("div",{className:"oc-canvas-node-chip",children:u.jsx("span",{className:"oc-canvas-node-chip-icon",style:{WebkitMaskImage:`url("${i}")`,maskImage:`url("${i}")`},"aria-hidden":!0})}),u.jsxs("div",{className:"oc-canvas-node-text",children:[u.jsx("span",{className:"oc-canvas-node-name",children:t.name}),u.jsxs("div",{className:"oc-canvas-node-meta",children:[t.employeeNames.length>0?u.jsxs("span",{className:"oc-canvas-node-person",title:t.employeeNames.join(", "),children:[t.employeeNames[0],t.employeeNames.length>1?` +${t.employeeNames.length-1}`:""]}):u.jsx("span",{className:"oc-canvas-node-id",children:t.roleId}),t.employeeCount>0&&u.jsx("span",{className:"oc-canvas-node-badge",children:t.employeeCount})]})]})]}),u.jsx(Bl,{type:"source",position:ot.Bottom,className:"oc-canvas-handle"})]})});var By,U2;function J0(){if(U2)return By;U2=1;var e="\0",t="\0",n="";class i{_isDirected=!0;_isMultigraph=!1;_isCompound=!1;_label;_defaultNodeLabelFn=()=>{};_defaultEdgeLabelFn=()=>{};_nodes={};_in={};_preds={};_out={};_sucs={};_edgeObjs={};_edgeLabels={};_nodeCount=0;_edgeCount=0;_parent;_children;constructor(h){h&&(this._isDirected=Object.hasOwn(h,"directed")?h.directed:!0,this._isMultigraph=Object.hasOwn(h,"multigraph")?h.multigraph:!1,this._isCompound=Object.hasOwn(h,"compound")?h.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children[t]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(h){return this._label=h,this}graph(){return this._label}setDefaultNodeLabel(h){return this._defaultNodeLabelFn=h,typeof h!="function"&&(this._defaultNodeLabelFn=()=>h),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var h=this;return this.nodes().filter(p=>Object.keys(h._in[p]).length===0)}sinks(){var h=this;return this.nodes().filter(p=>Object.keys(h._out[p]).length===0)}setNodes(h,p){var g=arguments,x=this;return h.forEach(function(v){g.length>1?x.setNode(v,p):x.setNode(v)}),this}setNode(h,p){return Object.hasOwn(this._nodes,h)?(arguments.length>1&&(this._nodes[h]=p),this):(this._nodes[h]=arguments.length>1?p:this._defaultNodeLabelFn(h),this._isCompound&&(this._parent[h]=t,this._children[h]={},this._children[t][h]=!0),this._in[h]={},this._preds[h]={},this._out[h]={},this._sucs[h]={},++this._nodeCount,this)}node(h){return this._nodes[h]}hasNode(h){return Object.hasOwn(this._nodes,h)}removeNode(h){var p=this;if(Object.hasOwn(this._nodes,h)){var g=x=>p.removeEdge(p._edgeObjs[x]);delete this._nodes[h],this._isCompound&&(this._removeFromParentsChildList(h),delete this._parent[h],this.children(h).forEach(function(x){p.setParent(x)}),delete this._children[h]),Object.keys(this._in[h]).forEach(g),delete this._in[h],delete this._preds[h],Object.keys(this._out[h]).forEach(g),delete this._out[h],delete this._sucs[h],--this._nodeCount}return this}setParent(h,p){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(p===void 0)p=t;else{p+="";for(var g=p;g!==void 0;g=this.parent(g))if(g===h)throw new Error("Setting "+p+" as parent of "+h+" would create a cycle");this.setNode(p)}return this.setNode(h),this._removeFromParentsChildList(h),this._parent[h]=p,this._children[p][h]=!0,this}_removeFromParentsChildList(h){delete this._children[this._parent[h]][h]}parent(h){if(this._isCompound){var p=this._parent[h];if(p!==t)return p}}children(h=t){if(this._isCompound){var p=this._children[h];if(p)return Object.keys(p)}else{if(h===t)return this.nodes();if(this.hasNode(h))return[]}}predecessors(h){var p=this._preds[h];if(p)return Object.keys(p)}successors(h){var p=this._sucs[h];if(p)return Object.keys(p)}neighbors(h){var p=this.predecessors(h);if(p){const x=new Set(p);for(var g of this.successors(h))x.add(g);return Array.from(x.values())}}isLeaf(h){var p;return this.isDirected()?p=this.successors(h):p=this.neighbors(h),p.length===0}filterNodes(h){var p=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});p.setGraph(this.graph());var g=this;Object.entries(this._nodes).forEach(function([_,k]){h(_)&&p.setNode(_,k)}),Object.values(this._edgeObjs).forEach(function(_){p.hasNode(_.v)&&p.hasNode(_.w)&&p.setEdge(_,g.edge(_))});var x={};function v(_){var k=g.parent(_);return k===void 0||p.hasNode(k)?(x[_]=k,k):k in x?x[k]:v(k)}return this._isCompound&&p.nodes().forEach(_=>p.setParent(_,v(_))),p}setDefaultEdgeLabel(h){return this._defaultEdgeLabelFn=h,typeof h!="function"&&(this._defaultEdgeLabelFn=()=>h),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(h,p){var g=this,x=arguments;return h.reduce(function(v,_){return x.length>1?g.setEdge(v,_,p):g.setEdge(v,_),_}),this}setEdge(){var h,p,g,x,v=!1,_=arguments[0];typeof _=="object"&&_!==null&&"v"in _?(h=_.v,p=_.w,g=_.name,arguments.length===2&&(x=arguments[1],v=!0)):(h=_,p=arguments[1],g=arguments[3],arguments.length>2&&(x=arguments[2],v=!0)),h=""+h,p=""+p,g!==void 0&&(g=""+g);var k=a(this._isDirected,h,p,g);if(Object.hasOwn(this._edgeLabels,k))return v&&(this._edgeLabels[k]=x),this;if(g!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(h),this.setNode(p),this._edgeLabels[k]=v?x:this._defaultEdgeLabelFn(h,p,g);var w=c(this._isDirected,h,p,g);return h=w.v,p=w.w,Object.freeze(w),this._edgeObjs[k]=w,r(this._preds[p],h),r(this._sucs[h],p),this._in[p][k]=w,this._out[h][k]=w,this._edgeCount++,this}edge(h,p,g){var x=arguments.length===1?d(this._isDirected,arguments[0]):a(this._isDirected,h,p,g);return this._edgeLabels[x]}edgeAsObj(){const h=this.edge(...arguments);return typeof h!="object"?{label:h}:h}hasEdge(h,p,g){var x=arguments.length===1?d(this._isDirected,arguments[0]):a(this._isDirected,h,p,g);return Object.hasOwn(this._edgeLabels,x)}removeEdge(h,p,g){var x=arguments.length===1?d(this._isDirected,arguments[0]):a(this._isDirected,h,p,g),v=this._edgeObjs[x];return v&&(h=v.v,p=v.w,delete this._edgeLabels[x],delete this._edgeObjs[x],o(this._preds[p],h),o(this._sucs[h],p),delete this._in[p][x],delete this._out[h][x],this._edgeCount--),this}inEdges(h,p){var g=this._in[h];if(g){var x=Object.values(g);return p?x.filter(v=>v.v===p):x}}outEdges(h,p){var g=this._out[h];if(g){var x=Object.values(g);return p?x.filter(v=>v.w===p):x}}nodeEdges(h,p){var g=this.inEdges(h,p);if(g)return g.concat(this.outEdges(h,p))}}function r(m,h){m[h]?m[h]++:m[h]=1}function o(m,h){--m[h]||delete m[h]}function a(m,h,p,g){var x=""+h,v=""+p;if(!m&&x>v){var _=x;x=v,v=_}return x+n+v+n+(g===void 0?e:g)}function c(m,h,p,g){var x=""+h,v=""+p;if(!m&&x>v){var _=x;x=v,v=_}var k={v:x,w:v};return g&&(k.name=g),k}function d(m,h){return a(m,h.v,h.w,h.name)}return By=i,By}var $y,G2;function vQ(){return G2||(G2=1,$y="2.2.4"),$y}var Hy,q2;function bQ(){return q2||(q2=1,Hy={Graph:J0(),version:vQ()}),Hy}var Fy,W2;function _Q(){if(W2)return Fy;W2=1;var e=J0();Fy={write:t,read:r};function t(o){var a={options:{directed:o.isDirected(),multigraph:o.isMultigraph(),compound:o.isCompound()},nodes:n(o),edges:i(o)};return o.graph()!==void 0&&(a.value=structuredClone(o.graph())),a}function n(o){return o.nodes().map(function(a){var c=o.node(a),d=o.parent(a),m={v:a};return c!==void 0&&(m.value=c),d!==void 0&&(m.parent=d),m})}function i(o){return o.edges().map(function(a){var c=o.edge(a),d={v:a.v,w:a.w};return a.name!==void 0&&(d.name=a.name),c!==void 0&&(d.value=c),d})}function r(o){var a=new e(o.options).setGraph(o.value);return o.nodes.forEach(function(c){a.setNode(c.v,c.value),c.parent&&a.setParent(c.v,c.parent)}),o.edges.forEach(function(c){a.setEdge({v:c.v,w:c.w,name:c.name},c.value)}),a}return Fy}var Vy,Y2;function kQ(){if(Y2)return Vy;Y2=1,Vy=e;function e(t){var n={},i=[],r;function o(a){Object.hasOwn(n,a)||(n[a]=!0,r.push(a),t.successors(a).forEach(o),t.predecessors(a).forEach(o))}return t.nodes().forEach(function(a){r=[],o(a),r.length&&i.push(r)}),i}return Vy}var Uy,X2;function YR(){if(X2)return Uy;X2=1;class e{_arr=[];_keyIndices={};size(){return this._arr.length}keys(){return this._arr.map(function(n){return n.key})}has(n){return Object.hasOwn(this._keyIndices,n)}priority(n){var i=this._keyIndices[n];if(i!==void 0)return this._arr[i].priority}min(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key}add(n,i){var r=this._keyIndices;if(n=String(n),!Object.hasOwn(r,n)){var o=this._arr,a=o.length;return r[n]=a,o.push({key:n,priority:i}),this._decrease(a),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);var n=this._arr.pop();return delete this._keyIndices[n.key],this._heapify(0),n.key}decrease(n,i){var r=this._keyIndices[n];if(i>this._arr[r].priority)throw new Error("New priority is greater than current priority. Key: "+n+" Old: "+this._arr[r].priority+" New: "+i);this._arr[r].priority=i,this._decrease(r)}_heapify(n){var i=this._arr,r=2*n,o=r+1,a=n;r>1,!(i[o].priority1;function n(r,o,a,c){return i(r,String(o),a||t,c||function(d){return r.outEdges(d)})}function i(r,o,a,c){var d={},m=new e,h,p,g=function(x){var v=x.v!==h?x.v:x.w,_=d[v],k=a(x),w=p.distance+k;if(k<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+x+" Weight: "+k);w<_.distance&&(_.distance=w,_.predecessor=h,m.decrease(v,w))};for(r.nodes().forEach(function(x){var v=x===o?0:Number.POSITIVE_INFINITY;d[x]={distance:v},m.add(x,v)});m.size()>0&&(h=m.removeMin(),p=d[h],p.distance!==Number.POSITIVE_INFINITY);)c(h).forEach(g);return d}return Gy}var qy,Z2;function SQ(){if(Z2)return qy;Z2=1;var e=XR();qy=t;function t(n,i,r){return n.nodes().reduce(function(o,a){return o[a]=e(n,a,i,r),o},{})}return qy}var Wy,Q2;function KR(){if(Q2)return Wy;Q2=1,Wy=e;function e(t){var n=0,i=[],r={},o=[];function a(c){var d=r[c]={onStack:!0,lowlink:n,index:n++};if(i.push(c),t.successors(c).forEach(function(p){Object.hasOwn(r,p)?r[p].onStack&&(d.lowlink=Math.min(d.lowlink,r[p].index)):(a(p),d.lowlink=Math.min(d.lowlink,r[p].lowlink))}),d.lowlink===d.index){var m=[],h;do h=i.pop(),r[h].onStack=!1,m.push(h);while(c!==h);o.push(m)}}return t.nodes().forEach(function(c){Object.hasOwn(r,c)||a(c)}),o}return Wy}var Yy,J2;function wQ(){if(J2)return Yy;J2=1;var e=KR();Yy=t;function t(n){return e(n).filter(function(i){return i.length>1||i.length===1&&n.hasEdge(i[0],i[0])})}return Yy}var Xy,ej;function CQ(){if(ej)return Xy;ej=1,Xy=t;var e=()=>1;function t(i,r,o){return n(i,r||e,o||function(a){return i.outEdges(a)})}function n(i,r,o){var a={},c=i.nodes();return c.forEach(function(d){a[d]={},a[d][d]={distance:0},c.forEach(function(m){d!==m&&(a[d][m]={distance:Number.POSITIVE_INFINITY})}),o(d).forEach(function(m){var h=m.v===d?m.w:m.v,p=r(m);a[d][h]={distance:p,predecessor:d}})}),c.forEach(function(d){var m=a[d];c.forEach(function(h){var p=a[h];c.forEach(function(g){var x=p[d],v=m[g],_=p[g],k=x.distance+v.distance;k<_.distance&&(_.distance=k,_.predecessor=v.predecessor)})})}),a}return Xy}var Ky,tj;function ZR(){if(tj)return Ky;tj=1;function e(n){var i={},r={},o=[];function a(c){if(Object.hasOwn(r,c))throw new t;Object.hasOwn(i,c)||(r[c]=!0,i[c]=!0,n.predecessors(c).forEach(a),delete r[c],o.push(c))}if(n.sinks().forEach(a),Object.keys(i).length!==n.nodeCount())throw new t;return o}class t extends Error{constructor(){super(...arguments)}}return Ky=e,e.CycleException=t,Ky}var Zy,nj;function jQ(){if(nj)return Zy;nj=1;var e=ZR();Zy=t;function t(n){try{e(n)}catch(i){if(i instanceof e.CycleException)return!1;throw i}return!0}return Zy}var Qy,ij;function QR(){if(ij)return Qy;ij=1,Qy=e;function e(r,o,a){Array.isArray(o)||(o=[o]);var c=r.isDirected()?p=>r.successors(p):p=>r.neighbors(p),d=a==="post"?t:n,m=[],h={};return o.forEach(p=>{if(!r.hasNode(p))throw new Error("Graph does not have node: "+p);d(p,c,h,m)}),m}function t(r,o,a,c){for(var d=[[r,!1]];d.length>0;){var m=d.pop();m[1]?c.push(m[0]):Object.hasOwn(a,m[0])||(a[m[0]]=!0,d.push([m[0],!0]),i(o(m[0]),h=>d.push([h,!1])))}}function n(r,o,a,c){for(var d=[r];d.length>0;){var m=d.pop();Object.hasOwn(a,m)||(a[m]=!0,c.push(m),i(o(m),h=>d.push(h)))}}function i(r,o){for(var a=r.length;a--;)o(r[a],a,r);return r}return Qy}var Jy,rj;function EQ(){if(rj)return Jy;rj=1;var e=QR();Jy=t;function t(n,i){return e(n,i,"post")}return Jy}var ex,sj;function NQ(){if(sj)return ex;sj=1;var e=QR();ex=t;function t(n,i){return e(n,i,"pre")}return ex}var tx,oj;function IQ(){if(oj)return tx;oj=1;var e=J0(),t=YR();tx=n;function n(i,r){var o=new e,a={},c=new t,d;function m(p){var g=p.v===d?p.w:p.v,x=c.priority(g);if(x!==void 0){var v=r(p);v0;){if(d=c.removeMin(),Object.hasOwn(a,d))o.setEdge(d,a[d]);else{if(h)throw new Error("Input graph is not connected: "+i);h=!0}i.nodeEdges(d).forEach(m)}return o}return tx}var nx,aj;function TQ(){return aj||(aj=1,nx={components:kQ(),dijkstra:XR(),dijkstraAll:SQ(),findCycles:wQ(),floydWarshall:CQ(),isAcyclic:jQ(),postorder:EQ(),preorder:NQ(),prim:IQ(),tarjan:KR(),topsort:ZR()}),nx}var ix,lj;function Gr(){if(lj)return ix;lj=1;var e=bQ();return ix={Graph:e.Graph,json:_Q(),alg:TQ(),version:e.version},ix}var rx,cj;function RQ(){if(cj)return rx;cj=1;class e{constructor(){let r={};r._next=r._prev=r,this._sentinel=r}dequeue(){let r=this._sentinel,o=r._prev;if(o!==r)return t(o),o}enqueue(r){let o=this._sentinel;r._prev&&r._next&&t(r),r._next=o._next,o._next._prev=r,o._next=r,r._prev=o}toString(){let r=[],o=this._sentinel,a=o._prev;for(;a!==o;)r.push(JSON.stringify(a,n)),a=a._prev;return"["+r.join(", ")+"]"}}function t(i){i._prev._next=i._next,i._next._prev=i._prev,delete i._next,delete i._prev}function n(i,r){if(i!=="_next"&&i!=="_prev")return r}return rx=e,rx}var sx,uj;function AQ(){if(uj)return sx;uj=1;let e=Gr().Graph,t=RQ();sx=i;let n=()=>1;function i(m,h){if(m.nodeCount()<=1)return[];let p=a(m,h||n);return r(p.graph,p.buckets,p.zeroIdx).flatMap(x=>m.outEdges(x.v,x.w))}function r(m,h,p){let g=[],x=h[h.length-1],v=h[0],_;for(;m.nodeCount();){for(;_=v.dequeue();)o(m,h,p,_);for(;_=x.dequeue();)o(m,h,p,_);if(m.nodeCount()){for(let k=h.length-2;k>0;--k)if(_=h[k].dequeue(),_){g=g.concat(o(m,h,p,_,!0));break}}}return g}function o(m,h,p,g,x){let v=x?[]:void 0;return m.inEdges(g.v).forEach(_=>{let k=m.edge(_),w=m.node(_.v);x&&v.push({v:_.v,w:_.w}),w.out-=k,c(h,p,w)}),m.outEdges(g.v).forEach(_=>{let k=m.edge(_),w=_.w,S=m.node(w);S.in-=k,c(h,p,S)}),m.removeNode(g.v),v}function a(m,h){let p=new e,g=0,x=0;m.nodes().forEach(k=>{p.setNode(k,{v:k,in:0,out:0})}),m.edges().forEach(k=>{let w=p.edge(k.v,k.w)||0,S=h(k),j=w+S;p.setEdge(k.v,k.w,j),x=Math.max(x,p.node(k.v).out+=S),g=Math.max(g,p.node(k.w).in+=S)});let v=d(x+g+3).map(()=>new t),_=g+1;return p.nodes().forEach(k=>{c(v,_,p.node(k))}),{graph:p,buckets:v,zeroIdx:_}}function c(m,h,p){p.out?p.in?m[p.out-p.in+h].enqueue(p):m[m.length-1].enqueue(p):m[0].enqueue(p)}function d(m){const h=[];for(let p=0;pL.setNode(M,I.node(M))),I.edges().forEach(M=>{let A=L.edge(M.v,M.w)||{weight:0,minlen:1},B=I.edge(M);L.setEdge(M.v,M.w,{weight:A.weight+B.weight,minlen:Math.max(A.minlen,B.minlen)})}),L}function i(I){let L=new e({multigraph:I.isMultigraph()}).setGraph(I.graph());return I.nodes().forEach(M=>{I.children(M).length||L.setNode(M,I.node(M))}),I.edges().forEach(M=>{L.setEdge(M,I.edge(M))}),L}function r(I){let L=I.nodes().map(M=>{let A={};return I.outEdges(M).forEach(B=>{A[B.w]=(A[B.w]||0)+I.edge(B).weight}),A});return D(I.nodes(),L)}function o(I){let L=I.nodes().map(M=>{let A={};return I.inEdges(M).forEach(B=>{A[B.v]=(A[B.v]||0)+I.edge(B).weight}),A});return D(I.nodes(),L)}function a(I,L){let M=I.x,A=I.y,B=L.x-M,W=L.y-A,P=I.width/2,G=I.height/2;if(!B&&!W)throw new Error("Not possible to find intersection inside of the rectangle");let $,q;return Math.abs(W)*P>Math.abs(B)*G?(W<0&&(G=-G),$=G*B/W,q=G):(B<0&&(P=-P),$=P,q=P*W/B),{x:M+$,y:A+q}}function c(I){let L=N(v(I)+1).map(()=>[]);return I.nodes().forEach(M=>{let A=I.node(M),B=A.rank;B!==void 0&&(L[B][A.order]=M)}),L}function d(I){let L=I.nodes().map(A=>{let B=I.node(A).rank;return B===void 0?Number.MAX_VALUE:B}),M=x(Math.min,L);I.nodes().forEach(A=>{let B=I.node(A);Object.hasOwn(B,"rank")&&(B.rank-=M)})}function m(I){let L=I.nodes().map(P=>I.node(P).rank),M=x(Math.min,L),A=[];I.nodes().forEach(P=>{let G=I.node(P).rank-M;A[G]||(A[G]=[]),A[G].push(P)});let B=0,W=I.graph().nodeRankFactor;Array.from(A).forEach((P,G)=>{P===void 0&&G%W!==0?--B:P!==void 0&&B&&P.forEach($=>I.node($).rank+=B)})}function h(I,L,M,A){let B={width:0,height:0};return arguments.length>=4&&(B.rank=M,B.order=A),t(I,"border",B,L)}function p(I,L=g){const M=[];for(let A=0;Ag){const M=p(L);return I.apply(null,M.map(A=>I.apply(null,A)))}else return I.apply(null,L)}function v(I){const M=I.nodes().map(A=>{let B=I.node(A).rank;return B===void 0?Number.MIN_VALUE:B});return x(Math.max,M)}function _(I,L){let M={lhs:[],rhs:[]};return I.forEach(A=>{L(A)?M.lhs.push(A):M.rhs.push(A)}),M}function k(I,L){let M=Date.now();try{return L()}finally{console.log(I+" time: "+(Date.now()-M)+"ms")}}function w(I,L){return L()}let S=0;function j(I){var L=++S;return I+(""+L)}function N(I,L,M=1){L==null&&(L=I,I=0);let A=W=>WLA[L]),Object.entries(I).reduce((A,[B,W])=>(A[B]=M(W,B),A),{})}function D(I,L){return I.reduce((M,A,B)=>(M[A]=L[B],M),{})}return ox}var ax,fj;function MQ(){if(fj)return ax;fj=1;let e=AQ(),t=di().uniqueId;ax={run:n,undo:r};function n(o){(o.graph().acyclicer==="greedy"?e(o,c(o)):i(o)).forEach(d=>{let m=o.edge(d);o.removeEdge(d),m.forwardName=d.name,m.reversed=!0,o.setEdge(d.w,d.v,m,t("rev"))});function c(d){return m=>d.edge(m).weight}}function i(o){let a=[],c={},d={};function m(h){Object.hasOwn(d,h)||(d[h]=!0,c[h]=!0,o.outEdges(h).forEach(p=>{Object.hasOwn(c,p.w)?a.push(p):m(p.w)}),delete c[h])}return o.nodes().forEach(m),a}function r(o){o.edges().forEach(a=>{let c=o.edge(a);if(c.reversed){o.removeEdge(a);let d=c.forwardName;delete c.reversed,delete c.forwardName,o.setEdge(a.w,a.v,c,d)}})}return ax}var lx,mj;function DQ(){if(mj)return lx;mj=1;let e=di();lx={run:t,undo:i};function t(r){r.graph().dummyChains=[],r.edges().forEach(o=>n(r,o))}function n(r,o){let a=o.v,c=r.node(a).rank,d=o.w,m=r.node(d).rank,h=o.name,p=r.edge(o),g=p.labelRank;if(m===c+1)return;r.removeEdge(o);let x,v,_;for(_=0,++c;c{let a=r.node(o),c=a.edgeLabel,d;for(r.setEdge(a.edgeObj,c);a.dummy;)d=r.successors(o)[0],r.removeNode(o),c.points.push({x:a.x,y:a.y}),a.dummy==="edge-label"&&(c.x=a.x,c.y=a.y,c.width=a.width,c.height=a.height),o=d,a=r.node(o)})}return lx}var cx,pj;function jm(){if(pj)return cx;pj=1;const{applyWithChunking:e}=di();cx={longestPath:t,slack:n};function t(i){var r={};function o(a){var c=i.node(a);if(Object.hasOwn(r,a))return c.rank;r[a]=!0;let d=i.outEdges(a).map(h=>h==null?Number.POSITIVE_INFINITY:o(h.w)-i.edge(h).minlen);var m=e(Math.min,d);return m===Number.POSITIVE_INFINITY&&(m=0),c.rank=m}i.sources().forEach(o)}function n(i,r){return i.node(r.w).rank-i.node(r.v).rank-i.edge(r).minlen}return cx}var ux,hj;function JR(){if(hj)return ux;hj=1;var e=Gr().Graph,t=jm().slack;ux=n;function n(a){var c=new e({directed:!1}),d=a.nodes()[0],m=a.nodeCount();c.setNode(d,{});for(var h,p;i(c,a){var p=h.v,g=m===p?h.w:p;!a.hasNode(g)&&!t(c,h)&&(a.setNode(g,{}),a.setEdge(m,g,{}),d(g))})}return a.nodes().forEach(d),a.nodeCount()}function r(a,c){return c.edges().reduce((m,h)=>{let p=Number.POSITIVE_INFINITY;return a.hasNode(h.v)!==a.hasNode(h.w)&&(p=t(c,h)),pc.node(m).rank+=d)}return ux}var dx,gj;function OQ(){if(gj)return dx;gj=1;var e=JR(),t=jm().slack,n=jm().longestPath,i=Gr().alg.preorder,r=Gr().alg.postorder,o=di().simplify;dx=a,a.initLowLimValues=h,a.initCutValues=c,a.calcCutValue=m,a.leaveEdge=g,a.enterEdge=x,a.exchangeEdges=v;function a(S){S=o(S),n(S);var j=e(S);h(j),c(j,S);for(var N,O;N=g(j);)O=x(j,S,N),v(j,S,N,O)}function c(S,j){var N=r(S,S.nodes());N=N.slice(0,N.length-1),N.forEach(O=>d(S,j,O))}function d(S,j,N){var O=S.node(N),R=O.parent;S.edge(N,R).cutvalue=m(S,j,N)}function m(S,j,N){var O=S.node(N),R=O.parent,D=!0,I=j.edge(N,R),L=0;return I||(D=!1,I=j.edge(R,N)),L=I.weight,j.nodeEdges(N).forEach(M=>{var A=M.v===N,B=A?M.w:M.v;if(B!==R){var W=A===D,P=j.edge(M).weight;if(L+=W?P:-P,k(S,N,B)){var G=S.edge(N,B).cutvalue;L+=W?-G:G}}}),L}function h(S,j){arguments.length<2&&(j=S.nodes()[0]),p(S,{},1,j)}function p(S,j,N,O,R){var D=N,I=S.node(O);return j[O]=!0,S.neighbors(O).forEach(L=>{Object.hasOwn(j,L)||(N=p(S,j,N,L,O))}),I.low=D,I.lim=N++,R?I.parent=R:delete I.parent,N}function g(S){return S.edges().find(j=>S.edge(j).cutvalue<0)}function x(S,j,N){var O=N.v,R=N.w;j.hasEdge(O,R)||(O=N.w,R=N.v);var D=S.node(O),I=S.node(R),L=D,M=!1;D.lim>I.lim&&(L=I,M=!0);var A=j.edges().filter(B=>M===w(S,S.node(B.v),L)&&M!==w(S,S.node(B.w),L));return A.reduce((B,W)=>t(j,W)!j.node(R).parent),O=i(S,N);O=O.slice(1),O.forEach(R=>{var D=S.node(R).parent,I=j.edge(R,D),L=!1;I||(I=j.edge(D,R),L=!0),j.node(R).rank=j.node(D).rank+(L?I.minlen:-I.minlen)})}function k(S,j,N){return S.hasEdge(j,N)}function w(S,j,N){return N.low<=j.lim&&j.lim<=N.lim}return dx}var fx,yj;function LQ(){if(yj)return fx;yj=1;var e=jm(),t=e.longestPath,n=JR(),i=OQ();fx=r;function r(d){var m=d.graph().ranker;if(m instanceof Function)return m(d);switch(d.graph().ranker){case"network-simplex":c(d);break;case"tight-tree":a(d);break;case"longest-path":o(d);break;case"none":break;default:c(d)}}var o=t;function a(d){t(d),n(d)}function c(d){i(d)}return fx}var mx,xj;function zQ(){if(xj)return mx;xj=1,mx=e;function e(i){let r=n(i);i.graph().dummyChains.forEach(o=>{let a=i.node(o),c=a.edgeObj,d=t(i,r,c.v,c.w),m=d.path,h=d.lca,p=0,g=m[p],x=!0;for(;o!==c.w;){if(a=i.node(o),x){for(;(g=m[p])!==h&&i.node(g).maxRankm||h>r[p].lim));for(g=p,p=a;(p=i.parent(p))!==g;)d.push(p);return{path:c.concat(d.reverse()),lca:g}}function n(i){let r={},o=0;function a(c){let d=o;i.children(c).forEach(a),r[c]={low:d,lim:o++}}return i.children().forEach(a),r}return mx}var px,vj;function PQ(){if(vj)return px;vj=1;let e=di();px={run:t,cleanup:o};function t(a){let c=e.addDummyNode(a,"root",{},"_root"),d=i(a),m=Object.values(d),h=e.applyWithChunking(Math.max,m)-1,p=2*h+1;a.graph().nestingRoot=c,a.edges().forEach(x=>a.edge(x).minlen*=p);let g=r(a)+1;a.children().forEach(x=>n(a,c,p,g,h,d,x)),a.graph().nodeRankFactor=p}function n(a,c,d,m,h,p,g){let x=a.children(g);if(!x.length){g!==c&&a.setEdge(c,g,{weight:0,minlen:d});return}let v=e.addBorderNode(a,"_bt"),_=e.addBorderNode(a,"_bb"),k=a.node(g);a.setParent(v,g),k.borderTop=v,a.setParent(_,g),k.borderBottom=_,x.forEach(w=>{n(a,c,d,m,h,p,w);let S=a.node(w),j=S.borderTop?S.borderTop:w,N=S.borderBottom?S.borderBottom:w,O=S.borderTop?m:2*m,R=j!==N?1:h-p[g]+1;a.setEdge(v,j,{weight:O,minlen:R,nestingEdge:!0}),a.setEdge(N,_,{weight:O,minlen:R,nestingEdge:!0})}),a.parent(g)||a.setEdge(c,v,{weight:0,minlen:h+p[g]})}function i(a){var c={};function d(m,h){var p=a.children(m);p&&p.length&&p.forEach(g=>d(g,h+1)),c[m]=h}return a.children().forEach(m=>d(m,1)),c}function r(a){return a.edges().reduce((c,d)=>c+a.edge(d).weight,0)}function o(a){var c=a.graph();a.removeNode(c.nestingRoot),delete c.nestingRoot,a.edges().forEach(d=>{var m=a.edge(d);m.nestingEdge&&a.removeEdge(d)})}return px}var hx,bj;function BQ(){if(bj)return hx;bj=1;let e=di();hx=t;function t(i){function r(o){let a=i.children(o),c=i.node(o);if(a.length&&a.forEach(r),Object.hasOwn(c,"minRank")){c.borderLeft=[],c.borderRight=[];for(let d=c.minRank,m=c.maxRank+1;di(d.node(m))),d.edges().forEach(m=>i(d.edge(m)))}function i(d){let m=d.width;d.width=d.height,d.height=m}function r(d){d.nodes().forEach(m=>o(d.node(m))),d.edges().forEach(m=>{let h=d.edge(m);h.points.forEach(o),Object.hasOwn(h,"y")&&o(h)})}function o(d){d.y=-d.y}function a(d){d.nodes().forEach(m=>c(d.node(m))),d.edges().forEach(m=>{let h=d.edge(m);h.points.forEach(c),Object.hasOwn(h,"x")&&c(h)})}function c(d){let m=d.x;d.x=d.y,d.y=m}return gx}var yx,kj;function HQ(){if(kj)return yx;kj=1;let e=di();yx=t;function t(n){let i={},r=n.nodes().filter(h=>!n.children(h).length),o=r.map(h=>n.node(h).rank),a=e.applyWithChunking(Math.max,o),c=e.range(a+1).map(()=>[]);function d(h){if(i[h])return;i[h]=!0;let p=n.node(h);c[p.rank].push(h),n.successors(h).forEach(d)}return r.sort((h,p)=>n.node(h).rank-n.node(p).rank).forEach(d),c}return yx}var xx,Sj;function FQ(){if(Sj)return xx;Sj=1;let e=di().zipObject;xx=t;function t(i,r){let o=0;for(let a=1;ax)),c=r.flatMap(g=>i.outEdges(g).map(x=>({pos:a[x.w],weight:i.edge(x).weight})).sort((x,v)=>x.pos-v.pos)),d=1;for(;d{let x=g.pos+d;h[x]+=g.weight;let v=0;for(;x>0;)x%2&&(v+=h[x+1]),x=x-1>>1,h[x]+=g.weight;p+=g.weight*v}),p}return xx}var vx,wj;function VQ(){if(wj)return vx;wj=1,vx=e;function e(t,n=[]){return n.map(i=>{let r=t.inEdges(i);if(r.length){let o=r.reduce((a,c)=>{let d=t.edge(c),m=t.node(c.v);return{sum:a.sum+d.weight*m.order,weight:a.weight+d.weight}},{sum:0,weight:0});return{v:i,barycenter:o.sum/o.weight,weight:o.weight}}else return{v:i}})}return vx}var bx,Cj;function UQ(){if(Cj)return bx;Cj=1;let e=di();bx=t;function t(r,o){let a={};r.forEach((d,m)=>{let h=a[d.v]={indegree:0,in:[],out:[],vs:[d.v],i:m};d.barycenter!==void 0&&(h.barycenter=d.barycenter,h.weight=d.weight)}),o.edges().forEach(d=>{let m=a[d.v],h=a[d.w];m!==void 0&&h!==void 0&&(h.indegree++,m.out.push(a[d.w]))});let c=Object.values(a).filter(d=>!d.indegree);return n(c)}function n(r){let o=[];function a(d){return m=>{m.merged||(m.barycenter===void 0||d.barycenter===void 0||m.barycenter>=d.barycenter)&&i(d,m)}}function c(d){return m=>{m.in.push(d),--m.indegree===0&&r.push(m)}}for(;r.length;){let d=r.pop();o.push(d),d.in.reverse().forEach(a(d)),d.out.forEach(c(d))}return o.filter(d=>!d.merged).map(d=>e.pick(d,["vs","i","barycenter","weight"]))}function i(r,o){let a=0,c=0;r.weight&&(a+=r.barycenter*r.weight,c+=r.weight),o.weight&&(a+=o.barycenter*o.weight,c+=o.weight),r.vs=o.vs.concat(r.vs),r.barycenter=a/c,r.weight=c,r.i=Math.min(o.i,r.i),o.merged=!0}return bx}var _x,jj;function GQ(){if(jj)return _x;jj=1;let e=di();_x=t;function t(r,o){let a=e.partition(r,v=>Object.hasOwn(v,"barycenter")),c=a.lhs,d=a.rhs.sort((v,_)=>_.i-v.i),m=[],h=0,p=0,g=0;c.sort(i(!!o)),g=n(m,d,g),c.forEach(v=>{g+=v.vs.length,m.push(v.vs),h+=v.barycenter*v.weight,p+=v.weight,g=n(m,d,g)});let x={vs:m.flat(!0)};return p&&(x.barycenter=h/p,x.weight=p),x}function n(r,o,a){let c;for(;o.length&&(c=o[o.length-1]).i<=a;)o.pop(),r.push(c.vs),a++;return a}function i(r){return(o,a)=>o.barycentera.barycenter?1:r?a.i-o.i:o.i-a.i}return _x}var kx,Ej;function qQ(){if(Ej)return kx;Ej=1;let e=VQ(),t=UQ(),n=GQ();kx=i;function i(a,c,d,m){let h=a.children(c),p=a.node(c),g=p?p.borderLeft:void 0,x=p?p.borderRight:void 0,v={};g&&(h=h.filter(S=>S!==g&&S!==x));let _=e(a,h);_.forEach(S=>{if(a.children(S.v).length){let j=i(a,S.v,d,m);v[S.v]=j,Object.hasOwn(j,"barycenter")&&o(S,j)}});let k=t(_,d);r(k,v);let w=n(k,m);if(g&&(w.vs=[g,w.vs,x].flat(!0),a.predecessors(g).length)){let S=a.node(a.predecessors(g)[0]),j=a.node(a.predecessors(x)[0]);Object.hasOwn(w,"barycenter")||(w.barycenter=0,w.weight=0),w.barycenter=(w.barycenter*w.weight+S.order+j.order)/(w.weight+2),w.weight+=2}return w}function r(a,c){a.forEach(d=>{d.vs=d.vs.flatMap(m=>c[m]?c[m].vs:m)})}function o(a,c){a.barycenter!==void 0?(a.barycenter=(a.barycenter*a.weight+c.barycenter*c.weight)/(a.weight+c.weight),a.weight+=c.weight):(a.barycenter=c.barycenter,a.weight=c.weight)}return kx}var Sx,Nj;function WQ(){if(Nj)return Sx;Nj=1;let e=Gr().Graph,t=di();Sx=n;function n(r,o,a,c){c||(c=r.nodes());let d=i(r),m=new e({compound:!0}).setGraph({root:d}).setDefaultNodeLabel(h=>r.node(h));return c.forEach(h=>{let p=r.node(h),g=r.parent(h);(p.rank===o||p.minRank<=o&&o<=p.maxRank)&&(m.setNode(h),m.setParent(h,g||d),r[a](h).forEach(x=>{let v=x.v===h?x.w:x.v,_=m.edge(v,h),k=_!==void 0?_.weight:0;m.setEdge(v,h,{weight:r.edge(x).weight+k})}),Object.hasOwn(p,"minRank")&&m.setNode(h,{borderLeft:p.borderLeft[o],borderRight:p.borderRight[o]}))}),m}function i(r){for(var o;r.hasNode(o=t.uniqueId("_root")););return o}return Sx}var wx,Ij;function YQ(){if(Ij)return wx;Ij=1,wx=e;function e(t,n,i){let r={},o;i.forEach(a=>{let c=t.parent(a),d,m;for(;c;){if(d=t.parent(c),d?(m=r[d],r[d]=c):(m=o,o=c),m&&m!==c){n.setEdge(m,c);return}c=d}})}return wx}var Cx,Tj;function XQ(){if(Tj)return Cx;Tj=1;let e=HQ(),t=FQ(),n=qQ(),i=WQ(),r=YQ(),o=Gr().Graph,a=di();Cx=c;function c(p,g){if(g&&typeof g.customOrder=="function"){g.customOrder(p,c);return}let x=a.maxRank(p),v=d(p,a.range(1,x+1),"inEdges"),_=d(p,a.range(x-1,-1,-1),"outEdges"),k=e(p);if(h(p,k),g&&g.disableOptimalOrderHeuristic)return;let w=Number.POSITIVE_INFINITY,S;for(let j=0,N=0;N<4;++j,++N){m(j%2?v:_,j%4>=2),k=a.buildLayerMatrix(p);let O=t(p,k);O{v.has(k)||v.set(k,[]),v.get(k).push(w)};for(const k of p.nodes()){const w=p.node(k);if(typeof w.rank=="number"&&_(w.rank,k),typeof w.minRank=="number"&&typeof w.maxRank=="number")for(let S=w.minRank;S<=w.maxRank;S++)S!==w.rank&&_(S,k)}return g.map(function(k){return i(p,k,x,v.get(k)||[])})}function m(p,g){let x=new o;p.forEach(function(v){let _=v.graph().root,k=n(v,_,x,g);k.vs.forEach((w,S)=>v.node(w).order=S),r(v,x,k.vs)})}function h(p,g){Object.values(g).forEach(x=>x.forEach((v,_)=>p.node(v).order=_))}return Cx}var jx,Rj;function KQ(){if(Rj)return jx;Rj=1;let e=Gr().Graph,t=di();jx={positionX:x,findType1Conflicts:n,findType2Conflicts:i,addConflict:o,hasConflict:a,verticalAlignment:c,horizontalCompaction:d,alignCoordinates:p,findSmallestWidthAlignment:h,balance:g};function n(k,w){let S={};function j(N,O){let R=0,D=0,I=N.length,L=O[O.length-1];return O.forEach((M,A)=>{let B=r(k,M),W=B?k.node(B).order:I;(B||M===L)&&(O.slice(D,A+1).forEach(P=>{k.predecessors(P).forEach(G=>{let $=k.node(G),q=$.order;(q{M=O[A],k.node(M).dummy&&k.predecessors(M).forEach(B=>{let W=k.node(B);W.dummy&&(W.orderL)&&o(S,B,M)})})}function N(O,R){let D=-1,I,L=0;return R.forEach((M,A)=>{if(k.node(M).dummy==="border"){let B=k.predecessors(M);B.length&&(I=k.node(B[0]).order,j(R,L,A,D,I),L=A,D=I)}j(R,L,R.length,I,O.length)}),R}return w.length&&w.reduce(N),S}function r(k,w){if(k.node(w).dummy)return k.predecessors(w).find(S=>k.node(S).dummy)}function o(k,w,S){if(w>S){let N=w;w=S,S=N}let j=k[w];j||(k[w]=j={}),j[S]=!0}function a(k,w,S){if(w>S){let j=w;w=S,S=j}return!!k[w]&&Object.hasOwn(k[w],S)}function c(k,w,S,j){let N={},O={},R={};return w.forEach(D=>{D.forEach((I,L)=>{N[I]=I,O[I]=I,R[I]=L})}),w.forEach(D=>{let I=-1;D.forEach(L=>{let M=j(L);if(M.length){M=M.sort((B,W)=>R[B]-R[W]);let A=(M.length-1)/2;for(let B=Math.floor(A),W=Math.ceil(A);B<=W;++B){let P=M[B];O[L]===L&&IMath.max(B,O[W.v]+R.edge(W)),0)}function M(A){let B=R.outEdges(A).reduce((P,G)=>Math.min(P,O[G.w]-R.edge(G)),Number.POSITIVE_INFINITY),W=k.node(A);B!==Number.POSITIVE_INFINITY&&W.borderType!==D&&(O[A]=Math.max(O[A],B))}return I(L,R.predecessors.bind(R)),I(M,R.successors.bind(R)),Object.keys(j).forEach(A=>O[A]=O[S[A]]),O}function m(k,w,S,j){let N=new e,O=k.graph(),R=v(O.nodesep,O.edgesep,j);return w.forEach(D=>{let I;D.forEach(L=>{let M=S[L];if(N.setNode(M),I){var A=S[I],B=N.edge(A,M);N.setEdge(A,M,Math.max(R(k,L,I),B||0))}I=L})}),N}function h(k,w){return Object.values(w).reduce((S,j)=>{let N=Number.NEGATIVE_INFINITY,O=Number.POSITIVE_INFINITY;Object.entries(j).forEach(([D,I])=>{let L=_(k,D)/2;N=Math.max(I+L,N),O=Math.min(I-L,O)});const R=N-O;return R{["l","r"].forEach(R=>{let D=O+R,I=k[D];if(I===w)return;let L=Object.values(I),M=j-t.applyWithChunking(Math.min,L);R!=="l"&&(M=N-t.applyWithChunking(Math.max,L)),M&&(k[D]=t.mapValues(I,A=>A+M))})})}function g(k,w){return t.mapValues(k.ul,(S,j)=>{if(w)return k[w.toLowerCase()][j];{let N=Object.values(k).map(O=>O[j]).sort((O,R)=>O-R);return(N[1]+N[2])/2}})}function x(k){let w=t.buildLayerMatrix(k),S=Object.assign(n(k,w),i(k,w)),j={},N;["u","d"].forEach(R=>{N=R==="u"?w:Object.values(w).reverse(),["l","r"].forEach(D=>{D==="r"&&(N=N.map(A=>Object.values(A).reverse()));let I=(R==="u"?k.predecessors:k.successors).bind(k),L=c(k,N,S,I),M=d(k,N,L.root,L.align,D==="r");D==="r"&&(M=t.mapValues(M,A=>-A)),j[R+D]=M})});let O=h(k,j);return p(j,O),g(j,k.graph().align)}function v(k,w,S){return(j,N,O)=>{let R=j.node(N),D=j.node(O),I=0,L;if(I+=R.width/2,Object.hasOwn(R,"labelpos"))switch(R.labelpos.toLowerCase()){case"l":L=-R.width/2;break;case"r":L=R.width/2;break}if(L&&(I+=S?L:-L),L=0,I+=(R.dummy?w:k)/2,I+=(D.dummy?w:k)/2,I+=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&&(I+=S?L:-L),L=0,I}}function _(k,w){return k.node(w).width}return jx}var Ex,Aj;function ZQ(){if(Aj)return Ex;Aj=1;let e=di(),t=KQ().positionX;Ex=n;function n(r){r=e.asNonCompoundGraph(r),i(r),Object.entries(t(r)).forEach(([o,a])=>r.node(o).x=a)}function i(r){let o=e.buildLayerMatrix(r),a=r.graph().ranksep,c=0;o.forEach(d=>{const m=d.reduce((h,p)=>{const g=r.node(p).height;return h>g?h:g},0);d.forEach(h=>r.node(h).y=c+m/2),c+=m+a})}return Ex}var Nx,Mj;function QQ(){if(Mj)return Nx;Mj=1;let e=MQ(),t=DQ(),n=LQ(),i=di().normalizeRanks,r=zQ(),o=di().removeEmptyRanks,a=PQ(),c=BQ(),d=$Q(),m=XQ(),h=ZQ(),p=di(),g=Gr().Graph;Nx=x;function x(F,K){let ee=K&&K.debugTiming?p.time:p.notime;ee("layout",()=>{let te=ee(" buildLayoutGraph",()=>I(F));ee(" runLayout",()=>v(te,ee,K)),ee(" updateInputGraph",()=>_(F,te))})}function v(F,K,ee){K(" makeSpaceForEdgeLabels",()=>L(F)),K(" removeSelfEdges",()=>Y(F)),K(" acyclic",()=>e.run(F)),K(" nestingGraph.run",()=>a.run(F)),K(" rank",()=>n(p.asNonCompoundGraph(F))),K(" injectEdgeLabelProxies",()=>M(F)),K(" removeEmptyRanks",()=>o(F)),K(" nestingGraph.cleanup",()=>a.cleanup(F)),K(" normalizeRanks",()=>i(F)),K(" assignRankMinMax",()=>A(F)),K(" removeEdgeLabelProxies",()=>B(F)),K(" normalize.run",()=>t.run(F)),K(" parentDummyChains",()=>r(F)),K(" addBorderSegments",()=>c(F)),K(" order",()=>m(F,ee)),K(" insertSelfEdges",()=>Q(F)),K(" adjustCoordinateSystem",()=>d.adjust(F)),K(" position",()=>h(F)),K(" positionSelfEdges",()=>V(F)),K(" removeBorderNodes",()=>q(F)),K(" normalize.undo",()=>t.undo(F)),K(" fixupEdgeLabelCoords",()=>G(F)),K(" undoCoordinateSystem",()=>d.undo(F)),K(" translateGraph",()=>W(F)),K(" assignNodeIntersects",()=>P(F)),K(" reversePoints",()=>$(F)),K(" acyclic.undo",()=>e.undo(F))}function _(F,K){F.nodes().forEach(ee=>{let te=F.node(ee),oe=K.node(ee);te&&(te.x=oe.x,te.y=oe.y,te.rank=oe.rank,K.children(ee).length&&(te.width=oe.width,te.height=oe.height))}),F.edges().forEach(ee=>{let te=F.edge(ee),oe=K.edge(ee);te.points=oe.points,Object.hasOwn(oe,"x")&&(te.x=oe.x,te.y=oe.y)}),F.graph().width=K.graph().width,F.graph().height=K.graph().height}let k=["nodesep","edgesep","ranksep","marginx","marginy"],w={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},S=["acyclicer","ranker","rankdir","align"],j=["width","height","rank"],N={width:0,height:0},O=["minlen","weight","width","height","labeloffset"],R={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},D=["labelpos"];function I(F){let K=new g({multigraph:!0,compound:!0}),ee=Z(F.graph());return K.setGraph(Object.assign({},w,U(ee,k),p.pick(ee,S))),F.nodes().forEach(te=>{let oe=Z(F.node(te));const ae=U(oe,j);Object.keys(N).forEach(ue=>{ae[ue]===void 0&&(ae[ue]=N[ue])}),K.setNode(te,ae),K.setParent(te,F.parent(te))}),F.edges().forEach(te=>{let oe=Z(F.edge(te));K.setEdge(te,Object.assign({},R,U(oe,O),p.pick(oe,D)))}),K}function L(F){let K=F.graph();K.ranksep/=2,F.edges().forEach(ee=>{let te=F.edge(ee);te.minlen*=2,te.labelpos.toLowerCase()!=="c"&&(K.rankdir==="TB"||K.rankdir==="BT"?te.width+=te.labeloffset:te.height+=te.labeloffset)})}function M(F){F.edges().forEach(K=>{let ee=F.edge(K);if(ee.width&&ee.height){let te=F.node(K.v),ae={rank:(F.node(K.w).rank-te.rank)/2+te.rank,e:K};p.addDummyNode(F,"edge-proxy",ae,"_ep")}})}function A(F){let K=0;F.nodes().forEach(ee=>{let te=F.node(ee);te.borderTop&&(te.minRank=F.node(te.borderTop).rank,te.maxRank=F.node(te.borderBottom).rank,K=Math.max(K,te.maxRank))}),F.graph().maxRank=K}function B(F){F.nodes().forEach(K=>{let ee=F.node(K);ee.dummy==="edge-proxy"&&(F.edge(ee.e).labelRank=ee.rank,F.removeNode(K))})}function W(F){let K=Number.POSITIVE_INFINITY,ee=0,te=Number.POSITIVE_INFINITY,oe=0,ae=F.graph(),ue=ae.marginx||0,ie=ae.marginy||0;function we(je){let Te=je.x,qe=je.y,Ze=je.width,Xe=je.height;K=Math.min(K,Te-Ze/2),ee=Math.max(ee,Te+Ze/2),te=Math.min(te,qe-Xe/2),oe=Math.max(oe,qe+Xe/2)}F.nodes().forEach(je=>we(F.node(je))),F.edges().forEach(je=>{let Te=F.edge(je);Object.hasOwn(Te,"x")&&we(Te)}),K-=ue,te-=ie,F.nodes().forEach(je=>{let Te=F.node(je);Te.x-=K,Te.y-=te}),F.edges().forEach(je=>{let Te=F.edge(je);Te.points.forEach(qe=>{qe.x-=K,qe.y-=te}),Object.hasOwn(Te,"x")&&(Te.x-=K),Object.hasOwn(Te,"y")&&(Te.y-=te)}),ae.width=ee-K+ue,ae.height=oe-te+ie}function P(F){F.edges().forEach(K=>{let ee=F.edge(K),te=F.node(K.v),oe=F.node(K.w),ae,ue;ee.points?(ae=ee.points[0],ue=ee.points[ee.points.length-1]):(ee.points=[],ae=oe,ue=te),ee.points.unshift(p.intersectRect(te,ae)),ee.points.push(p.intersectRect(oe,ue))})}function G(F){F.edges().forEach(K=>{let ee=F.edge(K);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 $(F){F.edges().forEach(K=>{let ee=F.edge(K);ee.reversed&&ee.points.reverse()})}function q(F){F.nodes().forEach(K=>{if(F.children(K).length){let ee=F.node(K),te=F.node(ee.borderTop),oe=F.node(ee.borderBottom),ae=F.node(ee.borderLeft[ee.borderLeft.length-1]),ue=F.node(ee.borderRight[ee.borderRight.length-1]);ee.width=Math.abs(ue.x-ae.x),ee.height=Math.abs(oe.y-te.y),ee.x=ae.x+ee.width/2,ee.y=te.y+ee.height/2}}),F.nodes().forEach(K=>{F.node(K).dummy==="border"&&F.removeNode(K)})}function Y(F){F.edges().forEach(K=>{if(K.v===K.w){var ee=F.node(K.v);ee.selfEdges||(ee.selfEdges=[]),ee.selfEdges.push({e:K,label:F.edge(K)}),F.removeEdge(K)}})}function Q(F){var K=p.buildLayerMatrix(F);K.forEach(ee=>{var te=0;ee.forEach((oe,ae)=>{var ue=F.node(oe);ue.order=ae+te,(ue.selfEdges||[]).forEach(ie=>{p.addDummyNode(F,"selfedge",{width:ie.label.width,height:ie.label.height,rank:ue.rank,order:ae+ ++te,e:ie.e,label:ie.label},"_se")}),delete ue.selfEdges})})}function V(F){F.nodes().forEach(K=>{var ee=F.node(K);if(ee.dummy==="selfedge"){var te=F.node(ee.e.v),oe=te.x+te.width/2,ae=te.y,ue=ee.x-oe,ie=te.height/2;F.setEdge(ee.e,ee.label),F.removeNode(K),ee.label.points=[{x:oe+2*ue/3,y:ae-ie},{x:oe+5*ue/6,y:ae-ie},{x:oe+ue,y:ae},{x:oe+5*ue/6,y:ae+ie},{x:oe+2*ue/3,y:ae+ie}],ee.label.x=ee.x,ee.label.y=ee.y}})}function U(F,K){return p.mapValues(p.pick(F,K),Number)}function Z(F){var K={};return F&&Object.entries(F).forEach(([ee,te])=>{typeof ee=="string"&&(ee=ee.toLowerCase()),K[ee]=te}),K}return Nx}var Ix,Dj;function JQ(){if(Dj)return Ix;Dj=1;let e=di(),t=Gr().Graph;Ix={debugOrdering:n};function n(i){let r=e.buildLayerMatrix(i),o=new t({compound:!0,multigraph:!0}).setGraph({});return i.nodes().forEach(a=>{o.setNode(a,{label:a}),o.setParent(a,"layer"+i.node(a).rank)}),i.edges().forEach(a=>o.setEdge(a.v,a.w,{},a.name)),r.forEach((a,c)=>{let d="layer"+c;o.setNode(d,{rank:"same"}),a.reduce((m,h)=>(o.setEdge(m,h,{style:"invis"}),h))}),o}return Ix}var Tx,Oj;function eJ(){return Oj||(Oj=1,Tx="1.1.8"),Tx}var Rx,Lj;function tJ(){return Lj||(Lj=1,Rx={graphlib:Gr(),layout:QQ(),debug:JQ(),util:{time:di().time,notime:di().notime},version:eJ()}),Rx}var nJ=tJ();const zj=ma(nJ);function iJ(e,t,n={}){const i=new zj.graphlib.Graph;i.setDefaultEdgeLabel(()=>({})),i.setGraph({rankdir:"TB",ranksep:60,nodesep:36,marginx:24,marginy:24});const r=n.nodeWidth??220,o=n.nodeHeight??80;return e.forEach(a=>i.setNode(a.id,{width:r,height:o})),t.forEach(a=>i.setEdge(a.source,a.target)),zj.layout(i),e.map(a=>{const{x:c,y:d}=i.node(a.id);return{...a,position:{x:c-r/2,y:d-o/2}}})}const rJ={roleNode:xQ},sJ=C.forwardRef(function(t,n){return u.jsx(UR,{children:u.jsx(oJ,{...t,forwardedRef:n})})});function oJ({roles:e,employees:t,sessionRecruitmentByRole:n,selectedRoleId:i,onSelectRole:r,onReparent:o,readOnly:a,forwardedRef:c}){const d=C.useMemo(()=>{const M=new Map;for(const A of t){const B=A.role_ids?.length?A.role_ids:[A.role_id];for(const W of B){if(!W)continue;const P=M.get(W)??[];P.push(A),M.set(W,P)}}return M},[t]),m=C.useCallback(M=>n?n[M]??[]:(d.get(M)??[]).filter(A=>!A.is_default_employee).map(A=>A.name).filter(Boolean),[d,n]),[h,p]=C.useState(0),g=C.useMemo(()=>e.map(M=>M.role_id).sort().join("|"),[e]),x=C.useRef(g);C.useEffect(()=>{x.current!==g&&(x.current=g,p(M=>M+1))},[g]),C.useImperativeHandle(c,()=>({autoLayout:()=>p(M=>M+1)}),[]);const[v,_]=C.useState(null),[k,w]=C.useState({});C.useEffect(()=>{w({})},[h]);const S=C.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}})),B=[M,...A],W=e.map(G=>({id:`e-${G.reports_to}-${G.role_id}`,source:G.reports_to,target:G.role_id,type:"smoothstep"}));return{nodes:iJ(B,W),edges:W}},[h,a]),j=C.useMemo(()=>S.nodes.map(M=>{if(M.id==="owner")return M;const A=e.find(W=>W.role_id===M.id);if(!A)return M;const B=k[M.id];return{...M,position:B??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===i,isDropTarget:A.role_id===v}}}),[S.nodes,e,d,m,i,v,a,k]),[N,O]=C.useState(j);C.useEffect(()=>{O(j)},[j]);const R=C.useCallback(M=>{O(A=>vR(M,A))},[]),D=C.useCallback((M,A)=>{if(a)return;const B=220,W=80,P={x:A.position.x+B/2,y:A.position.y+W/2},G=N.find($=>$.id===A.id?!1:P.x>=$.position.x&&P.x<=$.position.x+B&&P.y>=$.position.y&&P.y<=$.position.y+W);_(G?.id??null)},[N,a]),I=C.useCallback((M,A)=>{const B=v;_(null);const W=()=>w(P=>({...P,[A.id]:{x:A.position.x,y:A.position.y}}));if(a||!B||B===A.id||eA(e,A.id,B)){W();return}o(A.id,B),p(P=>P+1)},[v,e,a,o]),L=C.useCallback((M,A)=>{r(A.id==="owner"?null:A.id)},[r]);return u.jsx("div",{style:{width:"100%",height:"100%"},children:u.jsxs(VZ,{nodes:N,edges:S.edges,nodeTypes:rJ,onNodesChange:R,onNodeDrag:D,onNodeDragStop:I,onNodeClick:L,fitView:!0,fitViewOptions:{padding:.32,minZoom:.45,maxZoom:1.2},nodesConnectable:!1,edgesFocusable:!1,style:{width:"100%",height:"100%"},children:[u.jsx(YZ,{gap:28,size:1,color:"rgba(240, 237, 232, 0.10)"}),u.jsx(tQ,{showInteractive:!1}),u.jsx(pQ,{pannable:!0,nodeStrokeWidth:0,maskColor:"rgba(12, 17, 27, 0.6)"})]})})}function eA(e,t,n){const i=e.filter(r=>r.reports_to===t).map(r=>r.role_id);for(const r of i)if(r===n||eA(e,r,n))return!0;return!1}function aJ({roles:e,employees:t,sessionRecruitmentByRole:n,isCustomMode:i,onAddRole:r,onUpdateRole:o,onDeleteRole:a,savedOrgsList:c,activeSavedOrg:d,currentOrgVersion:m,versionAtLoad:h,onSavedOrgsList:p,onSavedOrgSaveAs:g,onSavedOrgLoad:x,onSavedOrgDelete:v}){const[_,k]=C.useState("canvas"),[w,S]=C.useState(null),j=C.useRef(null),N=C.useMemo(()=>e.find(M=>M.role_id===w)??null,[e,w]),O=C.useCallback((M,A)=>{i&&o(M,{reports_to:A})},[o,i]),R=C.useCallback(()=>{j.current?.autoLayout()},[]),D=C.useCallback(()=>{if(!i)return;const M=new Set(e.map(W=>W.role_id));let A="new_role",B=1;for(;M.has(A);)B+=1,A=`new_role_${B}`;r(A,"New Role","","owner",null),S(A)},[e,r,i]),I=C.useCallback(()=>{if(!i||!N)return;const M=new Set(e.map(W=>W.role_id));let A=`${N.role_id}_copy`,B=1;for(;M.has(A);)B+=1,A=`${N.role_id}_copy_${B}`;r(A,`${N.name} (copy)`,N.responsibility,N.reports_to,N.icon),S(A)},[e,r,N,i]),L=C.useRef(null);return C.useEffect(()=>{const M=A=>{const B=A.target;if(!(B&&(B.tagName==="INPUT"||B.tagName==="TEXTAREA"||B.tagName==="SELECT"||B.isContentEditable))&&!(L.current&&!L.current.contains(B))){if(A.key==="Escape"&&w){S(null),A.preventDefault();return}if(A.key==="Delete"&&w&&i){a(w),S(null),A.preventDefault();return}if((A.metaKey||A.ctrlKey)&&A.key.toLowerCase()==="d"&&w&&i){I(),A.preventDefault();return}if(A.key.toLowerCase()==="f"&&_==="canvas"){R(),A.preventDefault();return}}};return window.addEventListener("keydown",M),()=>window.removeEventListener("keydown",M)},[w,i,_,a,R,I]),u.jsxs("div",{className:"se-container",ref:L,children:[u.jsxs("div",{className:"se-toolbar",children:[u.jsxs("div",{className:"se-view-switcher",role:"tablist","aria-label":"Editor view",children:[u.jsx("button",{role:"tab","aria-selected":_==="canvas",className:`se-view-btn${_==="canvas"?" is-active":""}`,onClick:()=>k("canvas"),children:"Canvas"}),u.jsx("button",{role:"tab","aria-selected":_==="table",className:`se-view-btn${_==="table"?" is-active":""}`,onClick:()=>k("table"),children:"Table"})]}),u.jsxs("div",{className:`se-toolbar-actions${i?"":" se-toolbar-actions--readonly"}`,children:[i?u.jsxs("div",{className:"se-saved-org-control",children:[u.jsx("span",{className:"se-toolbar-label",children:"Saved org"}),u.jsx(fU,{savedOrgs:c??null,activeName:d??null,isDirty:h!=null&&(m??0)!==h,onRefresh:p??(()=>{}),onSaveAs:g??(()=>{}),onLoad:x??(()=>{}),onDelete:v??(()=>{})})]}):u.jsx("span",{className:"se-readonly-pill",children:"Read-only corporate"}),u.jsx("div",{className:"se-toolbar-divider","aria-hidden":!0}),_==="canvas"&&u.jsx("button",{className:"btn btn-ghost btn-sm",onClick:R,children:"Auto-layout"}),i&&u.jsx("button",{className:"btn btn-primary btn-sm",onClick:D,children:"+ Add role"})]})]}),u.jsxs("div",{className:"se-body",children:[_==="canvas"?u.jsx(sJ,{ref:j,roles:e,employees:t,sessionRecruitmentByRole:n,selectedRoleId:w,onSelectRole:S,onReparent:O,readOnly:!i}):u.jsx(mG,{roles:e,employees:t,selectedIds:w?[w]:[],onSelectRow:M=>S(M),onUpdateRole:o,onDeleteRole:a,readOnly:!i}),N&&u.jsx(yU,{role:N,allRoles:e,employees:t,readOnly:!i,onUpdateRole:o,onDeleteRole:M=>{a(M),S(null)},onClose:()=>S(null)})]})]})}const is={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 lJ({onComplete:e,onSwitchToTab:t}){const[n,i]=C.useState(1),[r,o]=C.useState([{name:"",resp:"",parent:"owner"}]),a=()=>o([...r,{name:"",resp:"",parent:"owner"}]),c=(g,x,v)=>{const _=[...r];_[g][x]=v,o(_)},d=g=>{r.length<=1||o(r.filter((x,v)=>v!==g))},m=r.filter(g=>g.name.trim()),h=m.map(g=>g.name.trim()).filter(Boolean),p=()=>{e(m.map(g=>({name:g.name.trim(),responsibility:g.resp.trim(),reportsTo:g.parent})))};return u.jsxs("div",{className:"qs-wizard",children:[u.jsxs("div",{className:"qs-header",children:[u.jsx("img",{src:is.rocket,alt:"",className:"qs-header-icon"}),u.jsxs("div",{children:[u.jsx("h3",{className:"qs-header-title",children:"Build Your Team"}),u.jsxs("p",{className:"qs-header-sub",children:["Create an org team in a few steps, or ",u.jsx("button",{className:"qs-link-btn",onClick:()=>t("architecture"),children:"use a template"})]})]})]}),u.jsx("div",{className:"qs-progress",children:[{n:1,icon:is.people,label:"Team Members"},{n:2,icon:is.check,label:"Preview"}].map(g=>u.jsxs("div",{className:`qs-step${n===g.n?" qs-step-active":n>g.n?" qs-step-done":""}`,children:[u.jsx("img",{src:g.icon,alt:"",className:"qs-step-icon"}),u.jsx("span",{children:g.label})]},g.n))}),n===1&&u.jsxs("div",{className:"qs-panel",children:[u.jsx("h4",{children:"Who's on your team?"}),u.jsx("p",{className:"qs-hint",children:"Add each team member with their name and what they do."}),u.jsx("div",{className:"qs-members",children:r.map((g,x)=>u.jsxs("div",{className:"qs-member-row",children:[u.jsx("input",{className:"qs-member-name",value:g.name,placeholder:"Role name (e.g. Engineer)",onChange:v=>c(x,"name",v.target.value)}),u.jsx("input",{className:"qs-member-resp",value:g.resp,placeholder:"What do they do?",onChange:v=>c(x,"resp",v.target.value)}),u.jsxs("select",{className:"qs-member-parent",value:g.parent,onChange:v=>c(x,"parent",v.target.value),children:[u.jsx("option",{value:"owner",children:"Reports to you"}),h.filter(v=>v!==g.name.trim()).map(v=>u.jsx("option",{value:v,children:`Managed by ${v}`},v))]}),r.length>1&&u.jsx("button",{className:"qs-remove-btn",onClick:()=>d(x),title:"Remove",children:u.jsx("img",{src:is.trash,alt:"",className:"qs-remove-icon"})})]},x))}),u.jsxs("button",{className:"qs-add-member",onClick:a,children:[u.jsx("img",{src:is.addPerson,alt:"",className:"qs-add-icon"})," Add another member"]}),u.jsxs("div",{className:"qs-nav",children:[u.jsx("span",{}),u.jsx("button",{className:"oc-btn-primary",onClick:()=>i(2),disabled:m.length===0,children:"Next: Preview →"})]})]}),n===2&&u.jsxs("div",{className:"qs-panel",children:[u.jsx("h4",{children:"Your team at a glance"}),u.jsxs("div",{className:"qs-preview",children:[u.jsxs("div",{className:"qs-preview-section",children:[u.jsxs("h5",{children:["Team (",m.length," members)"]}),m.map((g,x)=>u.jsxs("div",{className:"qs-preview-member",children:[u.jsx("strong",{children:g.name}),g.resp&&u.jsxs("span",{className:"qs-preview-resp",children:[" — ",g.resp]}),u.jsx("span",{className:"qs-preview-parent",children:g.parent==="owner"?" (reports to you)":` (managed by ${g.parent})`})]},x))]}),u.jsxs("div",{className:"qs-preview-section",children:[u.jsx("h5",{children:"Actor Runtime"}),u.jsx("p",{children:"Seat routing and delegation will be derived from your reporting structure and any team seats you configure later."})]})]}),u.jsxs("div",{className:"qs-nav",children:[u.jsx("button",{className:"oc-btn-ghost",onClick:()=>i(1),children:"← Back"}),u.jsx("button",{className:"oc-btn-primary qs-create-btn",onClick:p,children:"Create Team"})]})]})]})}function cJ({roles:e,employees:t,sessionRecruitmentByRole:n,isCustomMode:i,onAddRole:r,onBulkAddRoles:o,onUpdateRole:a,onDeleteRole:c,onExport:d,onImportEmployee:m,onResetArchitecture:h,onSwitchToTab:p,savedOrgsList:g,activeSavedOrg:x,currentOrgVersion:v,versionAtLoad:_,onSavedOrgsList:k,onSavedOrgSaveAs:w,onSavedOrgLoad:S,onSavedOrgDelete:j}){const[N,O]=C.useState(!1),[R,D]=C.useState(!1),[I,L]=C.useState(""),[M,A]=C.useState(""),[B,W]=C.useState(""),[P,G]=C.useState("1.0.0"),$=C.useMemo(()=>{const K=new Map;for(const ee of t){const te=ee.role_ids?.length?ee.role_ids:[ee.role_id];for(const oe of te){if(!oe)continue;const ae=K.get(oe)||[];ae.push(ee),K.set(oe,ae)}}return K},[t]),q=()=>{!I.trim()||!M.trim()||(d({package_id:I.trim(),name:M.trim(),description:B,version:P}),D(!1),L(""),A(""),W(""),G("1.0.0"))},Y=C.useRef(null);C.useEffect(()=>{N&&e.length>0&&(O(!1),Y.current&&(clearTimeout(Y.current),Y.current=null))},[e.length,N]),C.useEffect(()=>{if(N)return Y.current=setTimeout(()=>O(!1),1e4),()=>{Y.current&&clearTimeout(Y.current)}},[N]);const Q=K=>{const ee=new Map,te=new Set,oe=[];for(const ae of K){let ue=ae.name.toLowerCase().replace(/\s+/g,"-").replace(/[^a-z0-9-]/g,"").replace(/^-+|-+$/g,"");if(!ue)continue;let ie=ue,we=2;for(;te.has(ie);)ie=`${ue}-${we++}`;te.add(ie),ee.set(ae.name,ie);const je=ae.reportsTo==="owner"?"owner":ee.get(ae.reportsTo)||"owner";oe.push({role_id:ie,name:ae.name,responsibility:ae.responsibility,reports_to:je})}if(oe.length!==0)if(o)O(!0),o(oe);else{for(const ae of oe)r(ae.role_id,ae.name,ae.responsibility,ae.reports_to);O(!0)}},V=()=>{confirm("This will remove all org roles, employees, and work-item templates. Continue?")&&h?.()},U=C.useMemo(()=>{let K=0;for(const ee of e)($.get(ee.role_id)??[]).length>0&&(K+=1);return K},[e,$]),Z=C.useMemo(()=>t.filter(K=>K.linked_agent_id).length,[t]),F=Math.max(0,e.length-U);return i&&e.length===0?u.jsx("div",{className:"team-view",children:N?u.jsx("div",{className:"qs-wizard",children:u.jsxs("div",{className:"qs-loading",children:[u.jsx("span",{className:"spinner-inline"})," Setting up your team..."]})}):u.jsx(lJ,{onComplete:Q,onSwitchToTab:p})}):u.jsxs("div",{className:"team-view",children:[u.jsxs("div",{className:`team-command-bar${i?" team-command-bar--editable":" team-command-bar--readonly"}`,children:[u.jsxs("div",{className:"team-command-copy",children:[u.jsx("span",{className:"team-command-eyebrow",children:i?"Saved org workspace":"Corporate baseline"}),u.jsx("span",{className:"team-command-title",children:i?"Editable company architecture":"Built-in company architecture"})]}),u.jsxs("div",{className:"team-command-metrics",children:[u.jsxs("span",{children:[u.jsx("b",{children:U})," staffed roles"]}),u.jsxs("span",{children:[u.jsx("b",{children:F})," vacant"]}),u.jsxs("span",{children:[u.jsx("b",{children:Z})," in office"]})]}),i&&u.jsxs("div",{className:"team-command-actions",children:[u.jsxs("button",{className:"myorg-inline-btn",onClick:()=>p("employees"),children:[u.jsx("img",{src:is.addPerson,alt:"",className:"myorg-inline-icon"})," Hire Talent"]}),u.jsx("button",{className:"btn btn-ghost btn-sm",onClick:()=>D(!0),children:"Export Package"}),h&&u.jsxs("button",{className:"myorg-reset-btn",onClick:V,children:[u.jsx("img",{src:is.trash,alt:"",className:"myorg-reset-icon"})," Reset"]})]})]}),!i&&u.jsx("div",{className:"team-readonly-strip",children:"Corporate is fixed and read-only; saved company architectures are edited separately."}),u.jsx(aJ,{roles:e,employees:t,sessionRecruitmentByRole:n,isCustomMode:i,onAddRole:r,onUpdateRole:a,onDeleteRole:c,savedOrgsList:g??null,activeSavedOrg:x??null,currentOrgVersion:v??0,versionAtLoad:_??null,onSavedOrgsList:k,onSavedOrgSaveAs:w,onSavedOrgLoad:S,onSavedOrgDelete:j}),R&&u.jsxs("div",{className:"myorg-form",children:[u.jsx("h4",{className:"myorg-form-title",children:"Export as .opcpkg"}),u.jsxs("div",{className:"oc-form-row",children:[u.jsx("label",{children:"Package ID"}),u.jsx("input",{value:I,onChange:K=>L(K.target.value),placeholder:"my-architecture"})]}),u.jsxs("div",{className:"oc-form-row",children:[u.jsx("label",{children:"Name"}),u.jsx("input",{value:M,onChange:K=>A(K.target.value),placeholder:"My Architecture"})]}),u.jsxs("div",{className:"oc-form-row",children:[u.jsx("label",{children:"Description"}),u.jsx("input",{value:B,onChange:K=>W(K.target.value),placeholder:"An org team structure"})]}),u.jsxs("div",{className:"oc-form-row",children:[u.jsx("label",{children:"Version"}),u.jsx("input",{value:P,onChange:K=>G(K.target.value)})]}),u.jsxs("div",{className:"oc-form-actions",children:[u.jsx("button",{className:"oc-btn-primary",onClick:q,disabled:!I.trim()||!M.trim(),children:"Export"}),u.jsx("button",{className:"oc-btn-ghost",onClick:()=>D(!1),children:"Cancel"})]})]}),u.jsxs("div",{className:"myorg-section",children:[u.jsxs("div",{className:"myorg-section-header",children:[u.jsx("img",{src:is.team,alt:"",className:"myorg-section-icon"}),u.jsx("h3",{className:"myorg-section-title",children:"Team Roster"}),u.jsxs("span",{className:"myorg-section-count",children:[t.length," members"]}),u.jsx("span",{className:"myorg-section-spacer"}),u.jsxs("span",{className:"myorg-section-note",children:[U,"/",e.length," staffed"]})]}),u.jsx("div",{className:"team-roster-grid",children:e.map(K=>{const ee=$.get(K.role_id)||[];return u.jsxs("div",{className:"team-roster-card",children:[u.jsxs("div",{className:"team-roster-card-header",children:[u.jsx("img",{src:Fu(K.icon),alt:"",className:"team-roster-card-icon"}),u.jsx("span",{className:"team-roster-role-name",children:K.name}),u.jsx("span",{className:"team-roster-count",children:ee.length||"vacant"})]}),ee.length>0?ee.map(te=>u.jsxs("div",{className:"team-roster-emp",children:[u.jsx("img",{src:is.person,alt:"",className:"team-roster-emp-avatar"}),u.jsxs("div",{className:"team-roster-emp-info",children:[u.jsx("span",{className:"team-roster-emp-name",children:te.name}),u.jsx("span",{className:`team-roster-seniority team-roster-seniority--${te.seniority}`,children:te.seniority})]}),te.linked_agent_id?u.jsx("span",{className:"team-roster-badge team-roster-badge--active",children:"In Office"}):m&&te.role_id?u.jsxs("button",{className:"team-roster-deploy-btn",onClick:()=>m(te.employee_id),title:"Add this employee to the office workspace",children:[u.jsx("img",{src:is.deploy,alt:"",className:"team-roster-deploy-icon"})," Deploy"]}):null]},te.employee_id)):u.jsxs("div",{className:"team-roster-vacant",children:[u.jsx("span",{className:"team-roster-vacant-text",children:"No members yet"}),i&&u.jsx("button",{className:"team-roster-hire-btn",onClick:()=>p("employees"),children:"Hire"})]})]},K.role_id)})})]})]})}function up(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 uJ(e){const t=up(e);return(Array.isArray(t?.signals)?t.signals:[]).filter(i=>i&&typeof i=="object").filter(i=>!!(i.required??!0)&&!i.satisfied).map(i=>String(i.name??"").trim()).filter(Boolean)}function dJ(e){const n=up(e)?.work_item_profile;return n&&typeof n=="object"?String(n.gate_owner_role_id??"").trim():""}function fJ(e){const t=up(e),n=typeof t?.confidence=="number"?t.confidence:void 0;return typeof n=="number"?`${Math.round(n*100)}%`:""}function mJ({roles:e,runtimeTeams:t,runtimeSeats:n,workItems:i,frontier:r,companyProfile:o,runtimePolicy:a,finalDeciderRoleId:c,topLevelRoleIds:d,readOnly:m=!1,onUpdateOrgStrategy:h,onUpdateRuntimePolicy:p}){const g=e.filter(k=>(d??[]).includes(k.role_id)),x=c||(g.length===1?g[0]?.role_id:""),v=g.length>1&&!x,_=new Map(e.map(k=>[k.role_id,k.name]));return u.jsxs("div",{className:"wfe-container",children:[u.jsxs("div",{className:"wfe-header",children:[u.jsx("h3",{className:"wfe-title",children:"Actor Runtime"}),u.jsx("span",{className:"wfe-profile-badge",children:o})]}),u.jsx("div",{className:"myorg-collapsible",style:{margin:"0 0 8px"},children:u.jsxs("div",{className:"myorg-collapsible-body",style:{display:"block"},children:[u.jsxs("div",{className:"oc-form-row",children:[u.jsx("label",{children:"Final decider"}),u.jsxs("select",{value:x,disabled:m,onChange:k=>{m||h?.({final_decider_role_id:k.target.value||null})},children:[u.jsx("option",{value:"",children:g.length>1?"Select top-level role":"Auto-select only top-level role"}),g.map(k=>u.jsx("option",{value:k.role_id,children:k.name},k.role_id))]})]}),u.jsx("div",{style:{fontSize:12,color:"var(--text-secondary)"},children:"Runtime wakeups, delegation, approvals, and recovery are seat-scoped."}),v&&u.jsx("div",{className:"org-toast org-toast--warn",style:{margin:"0 0 8px"},children:"Multiple top-level roles exist. Select one final decider before company execution can start."})]})}),t.length||n.length||i.length?u.jsx("div",{className:"myorg-collapsible",style:{margin:"0 0 8px"},children:u.jsxs("div",{className:"myorg-collapsible-body",style:{display:"block"},children:[u.jsxs("div",{className:"oc-form-row",children:[u.jsx("label",{children:"Runtime"}),u.jsxs("div",{children:[r.status||"running",r.run_id?` (${r.run_id.slice(0,8)})`:""]})]}),u.jsxs("div",{className:"oc-form-row",children:[u.jsx("label",{children:"Frontier"}),u.jsxs("div",{children:[r.running_count??0," running, ",r.ready_count??0," ready, ",r.blocked_count??0," blocked, ",r.waiting_count??0," waiting"]})]}),u.jsxs("div",{className:"oc-form-row",children:[u.jsx("label",{children:"Teams"}),u.jsx("div",{children:t.length})]}),u.jsxs("div",{className:"oc-form-row",children:[u.jsx("label",{children:"Seats"}),u.jsx("div",{children:n.length})]}),u.jsxs("div",{className:"oc-form-row",children:[u.jsx("label",{children:"Work items"}),u.jsx("div",{children:i.length})]}),i.length>0&&u.jsx("div",{style:{fontSize:12,color:"var(--text-secondary)"},children:i.slice(0,6).map(k=>{const w=up(k),S=typeof w?.normalized_state=="string"?w.normalized_state:"",j=typeof w?.blocked_reason=="string"?w.blocked_reason:k.blocked_reason??"",N=dJ(k),O=uJ(k),R=fJ(k),D=[j?`waiting ${j}`:"",N?`gate ${_.get(N)??N}`:"",O.length?`signals ${O.join(", ")}`:"",R?`confidence ${R}`:"",S==="invalidated"?"invalidated":""].filter(Boolean);return u.jsxs("div",{style:{marginBottom:6},children:[u.jsxs("div",{children:[_.get(k.role_id)??k.role_id,": ",k.title," [",k.phase,"]",k.kanban_column&&u.jsxs("span",{style:{opacity:.5},children:[" · ",k.kanban_column]}),k.batch_id&&u.jsxs("span",{style:{opacity:.5},children:[" batch:",k.batch_id]}),S&&S!==k.phase&&u.jsxs("span",{style:{opacity:.7},children:[" state:",S]})]}),D.length>0&&u.jsx("div",{style:{marginLeft:12,opacity:.85},children:D.join(" • ")})]},k.work_item_id)})})]})}):null]})}function pJ({pkg:e,onUninstall:t,uninstallingId:n}){const i=n===e.package_id;return u.jsxs("div",{className:"pkg-card",children:[u.jsxs("div",{className:"pkg-card-header",children:[u.jsx("img",{src:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M20.54 5.23l-1.39-1.68C18.88 3.21 18.47 3 18 3H6c-.47 0-.88.21-1.16.55L3.46 5.23C3.17 5.57 3 6.02 3 6.5V19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6.5c0-.48-.17-.93-.46-1.27zM12 17.5L6.5 12H10v-2h4v2h3.5L12 17.5zM5.12 5l.81-1h12l.94 1H5.12z'/%3E%3C/svg%3E",alt:"package",className:"pkg-card-icon"}),u.jsxs("div",{className:"pkg-card-title-wrap",children:[u.jsx("span",{className:"pkg-card-name",children:e.name||e.package_id}),u.jsxs("span",{className:"pkg-card-version",children:["v",e.version]})]})]}),u.jsxs("div",{className:"pkg-card-stats",children:[u.jsxs("span",{className:"pkg-card-stat",children:[u.jsx("img",{src:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z'/%3E%3C/svg%3E",alt:"roles",className:"pkg-stat-icon"}),e.role_ids.length," roles"]}),u.jsxs("span",{className:"pkg-card-stat",children:[u.jsx("img",{src:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.11-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z'/%3E%3C/svg%3E",alt:"templates",className:"pkg-stat-icon"}),e.template_ids.length," templates"]})]}),e.installed_at&&u.jsxs("div",{className:"pkg-card-date",children:["Installed ",new Date(e.installed_at).toLocaleDateString()]}),t&&u.jsx("div",{className:"pkg-card-actions",children:u.jsx("button",{className:"pkg-btn pkg-btn-danger",disabled:i,onClick:r=>{r.stopPropagation(),t(e.package_id)},children:i?"Removing...":"Uninstall"})})]})}function Ax({icon:e,title:t,count:n,extra:i,children:r,defaultExpanded:o=!1}){const[a,c]=C.useState(o);return u.jsxs("div",{className:"myorg-collapsible",children:[u.jsxs("button",{className:"myorg-collapsible-toggle",onClick:()=>c(!a),children:[u.jsx("span",{className:"myorg-toggle-icon",children:a?"▾":"▸"}),u.jsx("img",{src:e,alt:"",className:"myorg-section-icon"}),u.jsx("span",{className:"myorg-collapsible-title",children:t}),u.jsx("span",{className:"myorg-collapsible-count",children:n}),i&&u.jsx("span",{className:"myorg-collapsible-extra",onClick:d=>d.stopPropagation(),children:i})]}),a&&u.jsx("div",{className:"myorg-collapsible-body",children:r})]})}const ns={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"},Ov={pipeline:"Pipeline",hub_spoke:"Hub & Spoke",review_loop:"Review Loop",hierarchical:"Hierarchical",flat:"Flat Team"};function hJ({presets:e,installedIds:t,previewData:n,applyingPresetId:i,readOnly:r,onPreview:o,onApplyPreset:a,onClearPreview:c,installedPackages:d,channels:m,reorgProposals:h,isCustomMode:p,onReorgDecide:g,onMarketInstall:x,onMarketUninstall:v}){const[_,k]=C.useState(""),[w,S]=C.useState(null),[j,N]=C.useState(null),[O,R]=C.useState(!1),[D,I]=C.useState(""),[L,M]=C.useState(null),A=C.useMemo(()=>{const $=new Set;for(const q of e)q.category&&$.add(q.category);return Array.from($).sort()},[e]),B=C.useMemo(()=>{const $=new Set;for(const q of e)q.collaboration_pattern&&$.add(q.collaboration_pattern);return Array.from($).sort()},[e]),W=C.useMemo(()=>{let $=e;if(w&&($=$.filter(q=>q.category===w)),j&&($=$.filter(q=>q.collaboration_pattern===j)),_.trim()){const q=_.trim().toLowerCase();$=$.filter(Y=>Y.name.toLowerCase().includes(q)||Y.description.toLowerCase().includes(q)||Y.tags.some(Q=>Q.toLowerCase().includes(q))||(Ov[Y.collaboration_pattern]||"").toLowerCase().includes(q))}return $},[e,w,j,_]),P=()=>{D.trim()&&(x(D.trim(),"namespace"),R(!1),I(""))},G=$=>{confirm("Uninstall this package? Roles and work-item templates from this package will be removed.")&&(M($),v($),setTimeout(()=>M(null),3e3))};return u.jsxs("div",{className:"mkt-container","data-testid":"architecture-marketplace",children:[u.jsxs("div",{className:"mkt-toolbar",children:[u.jsxs("div",{className:"mkt-search-wrap",children:[u.jsx("img",{src:ns.search,alt:"",className:"mkt-search-icon"}),u.jsx("input",{className:"mkt-search",placeholder:"Search architectures...",value:_,onChange:$=>k($.target.value)})]}),u.jsxs("span",{className:"mkt-count",children:[W.length," architectures"]})]}),u.jsxs("div",{className:"mkt-filters",children:[A.length>0&&u.jsxs("div",{className:"mkt-pill-row",children:[u.jsx("button",{className:`mkt-pill${w?"":" active"}`,onClick:()=>S(null),children:"All"}),A.map($=>u.jsx("button",{className:`mkt-pill${w===$?" active":""}`,onClick:()=>S(w===$?null:$),children:$},$))]}),B.length>0&&u.jsxs("div",{className:"mkt-pill-row",children:[u.jsx("button",{className:`mkt-pill mkt-pill-pattern${j?"":" active"}`,onClick:()=>N(null),children:"All Patterns"}),B.map($=>u.jsx("button",{className:`mkt-pill mkt-pill-pattern${j===$?" active":""}`,onClick:()=>N(j===$?null:$),children:Ov[$]||$},$))]})]}),W.length>0?u.jsxs("div",{className:"mkt-section",children:[u.jsxs("div",{className:"mkt-section-header",children:[u.jsx("img",{src:ns.arch,alt:"",className:"mkt-section-icon"}),u.jsx("h3",{className:"mkt-section-title",children:"Architecture Blueprints"}),u.jsx("span",{className:"mkt-section-count",children:W.length})]}),u.jsx("div",{className:"mkt-arch-grid",children:W.map($=>u.jsx(gJ,{preset:$,isInstalled:t.has($.id),isApplying:i===$.id,readOnly:r,onPreview:()=>o($.id),onApply:()=>a($.id,"namespace")},$.id))})]}):u.jsx("div",{className:"mkt-empty",children:u.jsx("p",{children:"No architectures match your search."})}),u.jsxs(Ax,{icon:ns.packages,title:"Installed Packages",count:d.length,extra:p?u.jsxs("button",{className:"myorg-inline-btn",onClick:()=>R(!O),children:[u.jsx("img",{src:ns.importPkg,alt:"",className:"myorg-inline-icon"})," Import"]}):void 0,children:[p&&O&&u.jsxs("div",{className:"myorg-form",children:[u.jsxs("div",{className:"oc-form-row",children:[u.jsx("label",{children:"Path"}),u.jsx("input",{value:D,onChange:$=>I($.target.value),placeholder:"/path/to/package.opcpkg"})]}),u.jsxs("div",{className:"oc-form-actions",children:[u.jsx("button",{className:"oc-btn-primary",onClick:P,disabled:!D.trim(),children:"Install"}),u.jsx("button",{className:"oc-btn-ghost",onClick:()=>R(!1),children:"Cancel"})]})]}),d.length>0?u.jsx("div",{className:"pkg-grid",children:d.map($=>u.jsx(pJ,{pkg:$,onUninstall:p?G:void 0,uninstallingId:L},$.package_id))}):u.jsx("div",{className:"myorg-empty-hint",children:"No packages installed."})]}),u.jsx(Ax,{icon:ns.channels,title:"Channels & Connectors",count:m.length,children:m.length>0?u.jsx("div",{className:"org-channels-grid",children:m.map($=>u.jsxs("div",{className:`org-channel-card${$.running?" org-ch-running":""}${$.enabled?"":" org-ch-disabled"}`,children:[u.jsxs("div",{className:"org-ch-header",children:[u.jsx("span",{className:`org-ch-dot${$.running?" running":$.ready?" ready":$.configured?" configured":""}`}),u.jsx("span",{className:"org-ch-name",children:$.name})]}),u.jsxs("div",{className:"org-ch-status-row",children:[$.enabled&&u.jsx("span",{className:"org-ch-badge org-ch-enabled",children:"enabled"}),$.running&&u.jsx("span",{className:"org-ch-badge org-ch-running-badge",children:"running"}),!$.enabled&&u.jsx("span",{className:"org-ch-badge org-ch-off",children:"disabled"})]})]},$.name))}):u.jsx("div",{className:"myorg-empty-hint",children:"No channels configured."})}),h.length>0&&u.jsx(Ax,{icon:ns.reorg,title:"Reorg Proposals",count:h.length,children:u.jsx("div",{className:"org-reorg-list",children:h.map($=>{const q=$.status==="proposed";return u.jsxs("div",{className:`org-reorg-card org-reorg-${$.status}`,children:[u.jsxs("div",{className:"org-reorg-header",children:[u.jsx("span",{className:"org-reorg-title",children:$.title||$.summary||"Untitled"}),u.jsx("span",{className:"org-reorg-status",children:$.status})]}),$.summary&&u.jsx("div",{className:"org-reorg-summary",children:$.summary}),q&&p&&u.jsxs("div",{className:"org-reorg-actions",children:[u.jsx("button",{className:"org-reorg-approve",onClick:()=>g($.proposal_id,!0),children:"Approve"}),u.jsx("button",{className:"org-reorg-deny",onClick:()=>g($.proposal_id,!1),children:"Deny"})]})]},$.proposal_id)})})}),n&&u.jsx(yJ,{data:n,isInstalled:t.has(n.id),isApplying:i===n.id,onApply:()=>a(n.id,"namespace"),onClose:c})]})}function gJ({preset:e,isInstalled:t,isApplying:n,readOnly:i,onPreview:r,onApply:o}){const a=Ov[e.collaboration_pattern]||e.collaboration_pattern;return u.jsxs("div",{className:"mkt-arch-card",style:{borderLeftColor:e.color||"var(--accent)"},onClick:r,children:[u.jsxs("div",{className:"mkt-arch-header",children:[u.jsx("span",{className:"mkt-arch-emoji",children:e.emoji}),u.jsxs("div",{className:"mkt-arch-title-wrap",children:[u.jsx("span",{className:"mkt-arch-name",children:e.name}),u.jsxs("div",{className:"mkt-arch-badges",children:[u.jsx("span",{className:"mkt-arch-category",children:e.category}),e.collaboration_pattern&&u.jsx("span",{className:"mkt-arch-pattern",children:a})]})]})]}),e.dag_summary&&u.jsx("div",{className:"mkt-arch-dag-summary",children:e.dag_summary}),u.jsx("div",{className:"mkt-arch-desc",children:e.description}),u.jsxs("div",{className:"mkt-arch-stats",children:[u.jsxs("span",{className:"mkt-arch-stat",children:[e.roles_count," roles"]}),u.jsxs("span",{className:"mkt-arch-stat",children:[e.work_item_templates_count," templates"]}),e.gates_count>0&&u.jsxs("span",{className:"mkt-arch-stat",children:[e.gates_count," checkpoints"]}),e.team_size&&u.jsxs("span",{className:"mkt-arch-stat",children:[e.team_size," people"]})]}),e.tags.length>0&&u.jsx("div",{className:"mkt-arch-tags",children:e.tags.slice(0,4).map(c=>u.jsx("span",{className:"mkt-tag",children:c},c))}),u.jsxs("div",{className:"mkt-arch-actions",children:[t?u.jsx("span",{className:"mkt-installed-badge",children:"Installed"}):i?null:u.jsx("button",{className:"mkt-btn mkt-btn-primary mkt-btn-sm",disabled:n,onClick:c=>{c.stopPropagation(),o()},children:n?"Applying...":"Use This"}),u.jsx("button",{className:"mkt-btn mkt-btn-ghost mkt-btn-sm",onClick:c=>{c.stopPropagation(),r()},children:"Preview"})]})]})}function yJ({data:e,isInstalled:t,isApplying:n,onApply:i,onClose:r}){return u.jsx("div",{className:"mkt-modal-overlay",onClick:r,children:u.jsxs("div",{className:"mkt-modal",onClick:o=>o.stopPropagation(),children:[u.jsxs("div",{className:"mkt-modal-header",style:{borderBottomColor:e.color||"var(--border)"},children:[u.jsx("span",{className:"mkt-modal-emoji",children:e.emoji}),u.jsxs("div",{children:[u.jsx("h2",{className:"mkt-modal-name",children:e.name}),u.jsx("span",{className:"mkt-modal-category",children:e.category})]}),u.jsx("button",{className:"mkt-modal-close",onClick:r,children:"×"})]}),u.jsxs("div",{className:"mkt-modal-body",children:[u.jsx("p",{className:"mkt-modal-desc",children:e.description}),e.tags.length>0&&u.jsxs("div",{className:"mkt-modal-section",children:[u.jsx("div",{className:"mkt-modal-label",children:"Tags"}),u.jsx("div",{className:"mkt-modal-tags",children:e.tags.map(o=>u.jsx("span",{className:"mkt-tag",children:o},o))})]}),u.jsxs("div",{className:"mkt-modal-section",children:[u.jsxs("div",{className:"mkt-modal-label",children:["Roles (",e.roles.length,")"]}),u.jsx("div",{className:"mkt-role-list",children:e.roles.map(o=>u.jsxs("div",{className:"mkt-role-item",children:[u.jsxs("div",{className:"mkt-role-name",children:[o.name," ",u.jsx("code",{children:o.id})]}),u.jsx("div",{className:"mkt-role-resp",children:o.responsibility}),u.jsxs("div",{className:"mkt-role-meta",children:["reports to: ",u.jsx("code",{children:o.reports_to}),o.can_spawn&&o.can_spawn.length>0&&u.jsxs(u.Fragment,{children:[" · spawns: ",o.can_spawn.map(a=>u.jsx("code",{children:a},a))]})]})]},o.id))})]}),u.jsxs("div",{className:"mkt-modal-section",children:[u.jsxs("div",{className:"mkt-modal-label",children:["Work item templates (",e.work_item_templates.length," templates)"]}),u.jsx("div",{className:"mkt-dag-wrap",children:u.jsx(xJ,{templates:e.work_item_templates})})]})]}),u.jsx("div",{className:"mkt-modal-footer",children:t?u.jsx("span",{className:"mkt-installed-badge",children:"Already Installed"}):u.jsx("button",{className:"mkt-btn mkt-btn-primary",disabled:n,onClick:i,children:n?"Applying...":"Use This Architecture"})})]})})}function xJ({templates:e}){const t=[];let n="__init__",i=[];for(const r of e)r.parallel_group!==n?(i.length>0&&t.push({group:n,templates:i}),n=r.parallel_group,i=[r]):i.push(r);return i.length>0&&t.push({group:n,templates:i}),u.jsx("div",{className:"org-dag",children:t.map((r,o)=>u.jsxs("div",{className:"org-dag-group-wrap",children:[o>0&&u.jsx("div",{className:"org-dag-arrow",children:u.jsx("img",{src:ns.arrow,alt:"→",className:"org-dag-arrow-icon"})}),u.jsxs("div",{className:`org-dag-group${r.templates.length>1?" org-dag-parallel":""}`,children:[r.templates.length>1&&u.jsx("div",{className:"org-dag-parallel-label",children:"parallel"}),r.templates.map(a=>u.jsxs("div",{className:"org-dag-node",children:[u.jsxs("div",{className:"org-dag-node-header",children:[u.jsx("span",{className:"org-dag-node-title",children:a.title}),u.jsx("span",{className:"org-dag-node-role",children:a.role_id})]}),u.jsx("div",{className:"org-dag-node-id",children:a.id}),a.gate&&u.jsxs("div",{className:`org-dag-gate org-gate-${a.gate.type}`,children:[u.jsx("img",{src:a.gate.type==="review"?ns.gateReview:a.gate.type==="approval"?ns.gateApproval:ns.gateHold,alt:"",className:"org-gate-icon"}),u.jsx("span",{children:a.gate.type}),a.gate.reviewer_role&&u.jsxs("span",{className:"org-gate-reviewer",children:["by ",a.gate.reviewer_role]})]})]},a.id))]})]},o))})}function vJ(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 bJ({template:e,hiringId:t,onHire:n,onClick:i}){const r=t===e.template_id,o=e.color?{background:`color-mix(in srgb, ${e.color} 18%, transparent)`,color:e.color,boxShadow:`inset 0 0 0 1px color-mix(in srgb, ${e.color} 28%, transparent)`}:void 0,a=[],c=new Set;for(const h of[...e.tags,...e.domains])c.has(h)||(c.add(h),a.push(h));const d=a.slice(0,3),m=a.length-d.length;return u.jsxs("div",{className:"tm-card",onClick:()=>i(e),children:[u.jsxs("div",{className:"tm-card-head",children:[u.jsx("div",{className:"tm-card-avatar",style:o,"aria-hidden":!0,children:e.emoji?u.jsx("span",{className:"tm-card-avatar-emoji",children:e.emoji}):u.jsx("span",{className:"tm-card-avatar-mono",children:vJ(e.name)})}),u.jsxs("div",{className:"tm-card-head-text",children:[u.jsxs("div",{className:"tm-card-name-row",children:[u.jsx("span",{className:"tm-card-name",title:e.name,children:e.name}),e.preferred_external_agent&&u.jsx("span",{className:"tm-card-agent-badge",title:`Agent: ${e.preferred_external_agent}`,children:e.preferred_external_agent})]}),e.category&&u.jsx("span",{className:"tm-card-category",children:e.category})]})]}),u.jsxs("div",{className:"tm-card-body",children:[e.vibe&&u.jsxs("div",{className:"tm-card-vibe",children:['"',e.vibe,'"']}),e.description&&u.jsx("div",{className:"tm-card-desc",children:e.description})]}),d.length>0&&u.jsxs("div",{className:"tm-card-chips",children:[d.map(h=>u.jsx("span",{className:"tm-card-chip",children:h},h)),m>0&&u.jsxs("span",{className:"tm-card-chip tm-card-chip-more",children:["+",m]})]}),u.jsx("div",{className:"tm-card-footer",children:u.jsx("button",{className:"tm-card-hire-btn",disabled:r,onClick:h=>{h.stopPropagation(),n(e.template_id)},children:r?u.jsxs(u.Fragment,{children:[u.jsx("span",{className:"spinner-inline"})," Hiring"]}):"Hire →"})})]})}const tA=e=>e,nA=e=>e;function _J({template:e,vacantRoles:t,hiringId:n,readOnly:i,onHire:r,onClose:o}){const[a,c]=C.useState(""),d=n===e.template_id,m=t.length===0,h=!i&&!d&&!m&&a!=="";C.useEffect(()=>{c("")},[e.template_id]);const p=()=>{h&&r(nA(e.template_id),tA(a))};return u.jsx("div",{className:"tm-detail-overlay",onClick:o,children:u.jsxs("div",{className:"tm-detail-modal",onClick:g=>g.stopPropagation(),children:[u.jsxs("div",{className:"tm-detail-header",style:{borderBottomColor:e.color||"var(--border)"},children:[e.emoji&&u.jsx("span",{className:"tm-detail-emoji",children:e.emoji}),u.jsxs("div",{children:[u.jsx("h2",{className:"tm-detail-name",children:e.name}),u.jsx("span",{className:"tm-detail-category",children:e.category})]}),u.jsx("button",{className:"tm-detail-close",onClick:o,children:"×"})]}),u.jsxs("div",{className:"tm-detail-body",children:[e.vibe&&u.jsxs("blockquote",{className:"tm-detail-vibe",children:['"',e.vibe,'"']}),e.description&&u.jsx("p",{className:"tm-detail-desc",children:e.description}),e.domains.length>0&&u.jsxs("div",{className:"tm-detail-section",children:[u.jsx("div",{className:"tm-detail-label",children:"Domains"}),u.jsx("div",{className:"tm-detail-tags",children:e.domains.map(g=>u.jsx("span",{className:"org-domain-tag",children:g},g))})]}),e.tags.length>0&&u.jsxs("div",{className:"tm-detail-section",children:[u.jsx("div",{className:"tm-detail-label",children:"Tags"}),u.jsx("div",{className:"tm-detail-tags",children:e.tags.map(g=>u.jsx("span",{className:"org-tool-tag",children:g},g))})]}),e.preferred_external_agent&&u.jsxs("div",{className:"tm-detail-section",children:[u.jsx("div",{className:"tm-detail-label",children:"Recommended Agent"}),u.jsx("span",{className:"tm-card-agent-badge",children:e.preferred_external_agent})]}),!i&&u.jsxs("div",{className:"tm-detail-section",children:[u.jsx("div",{className:"tm-detail-label",children:"Hire into role"}),m?u.jsx("p",{className:"tm-detail-vacancy-empty",children:"No vacant roles. Create a role in the Team tab first."}):u.jsx("div",{className:"tm-detail-role-list",role:"listbox","aria-label":"Vacant roles",children:t.map(g=>{const x=g.role_id===a;return u.jsxs("button",{type:"button",role:"option","aria-selected":x,className:`tm-detail-role-row${x?" is-selected":""}`,onClick:()=>c(g.role_id),children:[u.jsx("span",{className:"tm-detail-role-name",children:g.name}),g.responsibility&&u.jsx("span",{className:"tm-detail-role-resp",children:g.responsibility})]},g.role_id)})})]})]}),!i&&u.jsx("div",{className:"tm-detail-footer",children:u.jsx("button",{className:"tm-detail-hire-btn",disabled:!h,onClick:p,children:d?u.jsxs(u.Fragment,{children:[u.jsx("span",{className:"spinner-inline"})," Hiring..."]}):"Hire to selected role"})})]})})}function kJ({open:e,template:t,vacantRoles:n,onConfirm:i,onClose:r}){const[o,a]=C.useState("");if(C.useEffect(()=>{e&&a("")},[e,t?.template_id]),C.useEffect(()=>{if(!e)return;const h=p=>{p.key==="Escape"&&r()};return window.addEventListener("keydown",h),()=>window.removeEventListener("keydown",h)},[e,r]),!e||!t)return null;const c=n.length===0,d=!c&&o!=="",m=()=>{d&&i(nA(t.template_id),tA(o))};return u.jsx("div",{className:"htr-overlay",role:"dialog","aria-modal":"true",onMouseDown:r,children:u.jsxs("div",{className:"htr-modal",onMouseDown:h=>h.stopPropagation(),children:[u.jsxs("header",{className:"htr-header",children:[u.jsxs("div",{children:[u.jsxs("h3",{className:"htr-title",children:["Hire ",t.name]}),u.jsx("p",{className:"htr-subtitle",children:"Pick the role to fill with this employee."})]}),u.jsx("button",{className:"htr-close",type:"button",onClick:r,"aria-label":"Close",children:"x"})]}),u.jsx("div",{className:"htr-body",children:c?u.jsxs("div",{className:"htr-empty",children:[u.jsx("p",{className:"htr-empty-title",children:"No vacant roles."}),u.jsx("p",{className:"htr-empty-hint",children:"Add a role in the Team tab first, then come back to hire."})]}):u.jsx("div",{className:"htr-role-list",role:"listbox","aria-label":"Vacant roles",children:n.map(h=>{const p=h.role_id===o;return u.jsxs("button",{type:"button",role:"option","aria-selected":p,className:`htr-role-row${p?" is-selected":""}`,onClick:()=>a(h.role_id),children:[u.jsx("span",{className:"htr-role-name",children:h.name}),h.responsibility&&u.jsx("span",{className:"htr-role-resp",children:h.responsibility})]},h.role_id)})})}),u.jsxs("footer",{className:"htr-footer",children:[u.jsx("button",{type:"button",className:"btn btn-ghost",onClick:r,children:c?"Close":"Cancel"}),!c&&u.jsx("button",{type:"button",className:"btn btn-primary",onClick:m,disabled:!d,children:"Hire to selected role"})]})]})})}const Pj={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 SJ({templates:e,vacantRoles:t,hiringTemplateId:n,readOnly:i,onHireTalent:r}){const[o,a]=C.useState(""),[c,d]=C.useState(null),[m,h]=C.useState(null),[p,g]=C.useState(null),x=C.useMemo(()=>{const k=new Set;for(const w of e)w.category&&k.add(w.category);return Array.from(k).sort()},[e]),v=C.useMemo(()=>{let k=e;if(c&&(k=k.filter(w=>w.category===c)),o.trim()){const w=o.trim().toLowerCase();k=k.filter(S=>S.name.toLowerCase().includes(w)||S.description.toLowerCase().includes(w)||S.domains.some(j=>j.toLowerCase().includes(w))||S.tags.some(j=>j.toLowerCase().includes(w))||(S.vibe??"").toLowerCase().includes(w))}return k},[e,c,o]),_=k=>{if(i)return;const w=e.find(S=>S.template_id===k);w&&g(w)};return u.jsxs("div",{className:"mkt-container","data-testid":"employees-marketplace",children:[u.jsxs("div",{className:"mkt-toolbar",children:[u.jsxs("div",{className:"mkt-search-wrap",children:[u.jsx("img",{src:Pj.search,alt:"",className:"mkt-search-icon"}),u.jsx("input",{className:"mkt-search",placeholder:"Search talent templates...",value:o,onChange:k=>a(k.target.value)})]}),u.jsxs("span",{className:"mkt-count",children:[v.length," employees",t.length>0&&u.jsxs(u.Fragment,{children:[" · ",t.length," vacant role",t.length===1?"":"s"]})]})]}),x.length>0&&u.jsx("div",{className:"mkt-filters",children:u.jsxs("div",{className:"mkt-pill-row",children:[u.jsx("button",{className:`mkt-pill${c?"":" active"}`,onClick:()=>d(null),children:"All"}),x.map(k=>u.jsx("button",{className:`mkt-pill${c===k?" active":""}`,onClick:()=>d(c===k?null:k),children:k},k))]})}),v.length>0?u.jsxs("div",{className:"mkt-section",children:[u.jsxs("div",{className:"mkt-section-header",children:[u.jsx("img",{src:Pj.talent,alt:"",className:"mkt-section-icon"}),u.jsx("h3",{className:"mkt-section-title",children:"Talent Templates"}),u.jsx("span",{className:"mkt-section-count",children:v.length})]}),u.jsx("div",{className:"tm-grid",children:v.map(k=>u.jsx(bJ,{template:k,hiringId:n,onHire:_,onClick:h},k.template_id))})]}):u.jsx("div",{className:"mkt-empty",children:u.jsx("p",{children:e.length===0?"No talent templates available.":"No employees match your search."})}),m&&u.jsx(_J,{template:m,vacantRoles:t,hiringId:n,readOnly:i,onHire:(k,w)=>{i||(r(k,w),h(null))},onClose:()=>h(null)}),u.jsx(kJ,{open:p!==null,template:p,vacantRoles:t,onConfirm:(k,w)=>{r(k,w),g(null)},onClose:()=>g(null)})]})}const Zc={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 wJ({onExport:e,onImport:t,configExportYaml:n,importPreview:i,importError:r}){const[o,a]=C.useState(""),[c,d]=C.useState(null),[m,h]=C.useState(!1),p=C.useRef(!1),g=C.useRef(null);C.useEffect(()=>{if(!p.current||!n||n===g.current)return;g.current=n,p.current=!1;const S=new Blob([n],{type:"application/x-yaml"}),j=URL.createObjectURL(S),N=document.createElement("a");N.href=j;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(j)},[n]),C.useEffect(()=>{h(!1)},[o]),C.useEffect(()=>{i&&!r&&h(!0)},[i,r]);const x=()=>{p.current=!0,e()},v=S=>{const j=S.target.files?.[0];if(!j)return;d(j.name);const N=new FileReader;N.onload=()=>{const O=N.result;typeof O=="string"&&a(O)},N.readAsText(j),S.target.value=""},_=()=>{o.trim()&&t(o,!0)},k=()=>{!m||!o.trim()||confirm("Apply this config? The current company architecture will be overwritten.")&&(t(o,!1),h(!1),a(""),d(null))},w=()=>{a(""),d(null),h(!1)};return u.jsxs("div",{className:"cfg-io-panel","data-testid":"config-import-export-panel",children:[u.jsxs("div",{className:"cfg-io-header",children:[u.jsx("h3",{className:"cfg-io-title",children:"Config Import / Export"}),u.jsx("p",{className:"cfg-io-subtitle",children:"Download the current company architecture as YAML, or upload one to replace it."})]}),u.jsxs("div",{className:"cfg-io-section",children:[u.jsxs("div",{className:"cfg-io-section-header",children:[u.jsx("img",{src:Zc.download,alt:"",className:"cfg-io-section-icon"}),u.jsx("span",{className:"cfg-io-section-title",children:"Download current config"})]}),u.jsxs("button",{className:"cfg-io-btn cfg-io-btn-primary",onClick:x,children:[u.jsx("img",{src:Zc.download,alt:"",className:"cfg-io-btn-icon"})," Download YAML"]})]}),u.jsxs("div",{className:"cfg-io-section",children:[u.jsxs("div",{className:"cfg-io-section-header",children:[u.jsx("img",{src:Zc.upload,alt:"",className:"cfg-io-section-icon"}),u.jsx("span",{className:"cfg-io-section-title",children:"Upload config"})]}),u.jsx("div",{className:"cfg-io-upload-row",children:u.jsxs("label",{className:"cfg-io-file-label",children:[u.jsx("input",{type:"file",accept:".yaml,.yml",onChange:v,className:"cfg-io-file-input"}),u.jsx("span",{className:"cfg-io-file-btn",children:"Choose file…"}),u.jsx("span",{className:"cfg-io-file-name",children:c??"no file selected"})]})}),u.jsx("textarea",{className:"cfg-io-textarea",placeholder:"…or paste YAML here",value:o,onChange:S=>a(S.target.value),spellCheck:!1,rows:10}),u.jsxs("div",{className:"cfg-io-actions",children:[u.jsx("button",{className:"cfg-io-btn cfg-io-btn-ghost",onClick:_,disabled:!o.trim(),children:"Dry run"}),u.jsx("button",{className:"cfg-io-btn cfg-io-btn-primary",onClick:k,disabled:!m||!o.trim(),children:"Apply"}),o&&u.jsx("button",{className:"cfg-io-btn cfg-io-btn-ghost",onClick:w,children:"Clear"})]}),i&&!r&&u.jsxs("div",{className:"cfg-io-preview",children:[u.jsx("img",{src:Zc.check,alt:"",className:"cfg-io-preview-icon"}),u.jsxs("div",{className:"cfg-io-preview-body",children:[u.jsx("div",{className:"cfg-io-preview-title",children:"Dry run OK — ready to apply"}),u.jsxs("div",{className:"cfg-io-preview-stats",children:[u.jsxs("span",{className:"cfg-io-preview-stat",children:[u.jsx("span",{className:"cfg-io-stat-label",children:"Roles added"}),u.jsx("span",{className:"cfg-io-stat-value",children:i.roles_added})]}),u.jsxs("span",{className:"cfg-io-preview-stat",children:[u.jsx("span",{className:"cfg-io-stat-label",children:"Roles removed"}),u.jsx("span",{className:"cfg-io-stat-value",children:i.roles_removed})]}),u.jsxs("span",{className:"cfg-io-preview-stat",children:[u.jsx("span",{className:"cfg-io-stat-label",children:"Employees changed"}),u.jsx("span",{className:"cfg-io-stat-value",children:i.employees_changed})]})]})]})]}),r&&u.jsxs("div",{className:"cfg-io-error",children:[u.jsx("img",{src:Zc.warn,alt:"",className:"cfg-io-error-icon"}),u.jsxs("div",{className:"cfg-io-error-body",children:[u.jsx("div",{className:"cfg-io-error-title",children:"Validation failed"}),u.jsx("pre",{className:"cfg-io-error-text",children:r})]})]})]})]})}const Bj=[{name:"",responsibility:"",prompt:"",reportsToIndex:null},{name:"",responsibility:"",prompt:"",reportsToIndex:0}];function Mx(e){return e.trim()||"Member"}function CJ({open:e,pending:t,result:n,onClose:i,onCreate:r}){const[o,a]=C.useState(1),[c,d]=C.useState(""),[m,h]=C.useState(Bj),[p,g]=C.useState("");C.useEffect(()=>{e&&(a(1),d(""),h(Bj),g(""))},[e]),C.useEffect(()=>{if(!(!e||!n)){if(n.ok){i();return}g(n.error||"Failed to create organization")}},[e,n,i]);const x=c.trim().length>0,v=C.useMemo(()=>m.map((D,I)=>({member:D,index:I})).filter(D=>D.member.name.trim()),[m]),_=C.useMemo(()=>new Map(v.map((D,I)=>[D.index,I])),[v]),k=v.length>=2,w=x&&k&&!t,S=C.useMemo(()=>v.map(({member:D,index:I},L)=>{const M=D.reportsToIndex==null?null:_.get(D.reportsToIndex);return{...D,roleName:Mx(D.name),managerName:M!=null&&M{h(L=>L.map((M,A)=>A===D?{...M,...I}:M))},N=()=>{h(D=>[...D,{name:"",responsibility:"",prompt:"",reportsToIndex:0}])},O=D=>{h(I=>I.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))},R=()=>{w&&(g(""),r(c.trim(),v.map(({member:D},I)=>{const L=D.reportsToIndex==null?null:_.get(D.reportsToIndex);return{name:D.name.trim(),responsibility:D.responsibility.trim(),prompt:D.prompt.trim(),reports_to_index:L!=null&&LD.stopPropagation(),children:[u.jsxs("div",{className:"org-create-header",children:[u.jsxs("div",{children:[u.jsx("span",{className:"org-create-eyebrow",children:"New organization"}),u.jsx("h3",{id:"org-create-title",className:"org-create-title",children:"Create a saved org"})]}),u.jsx("button",{type:"button",className:"org-create-close",onClick:i,"aria-label":"Close",children:"x"})]}),u.jsx("div",{className:"org-create-steps","aria-label":"Create organization steps",children:[["1","Name"],["2","Members"],["3","Review"]].map(([D,I])=>u.jsxs("span",{className:`org-create-step${o===Number(D)?" org-create-step--active":o>Number(D)?" org-create-step--done":""}`,children:[u.jsx("span",{children:D}),I]},D))}),o===1&&u.jsx("div",{className:"org-create-panel",children:u.jsxs("label",{className:"org-create-field",children:[u.jsx("span",{children:"Organization name"}),u.jsx("input",{value:c,onChange:D=>d(D.target.value),placeholder:"HKU Research Lab",autoFocus:!0})]})}),o===2&&u.jsxs("div",{className:"org-create-panel",children:[u.jsx("div",{className:"org-create-member-list",children:m.map((D,I)=>u.jsxs("div",{className:"org-create-member-row",children:[u.jsx("input",{value:D.name,onChange:L=>j(I,{name:L.target.value}),placeholder:I===0?"Lead role":"Member role"}),u.jsx("input",{value:D.responsibility,onChange:L=>j(I,{responsibility:L.target.value}),placeholder:"Responsibility"}),u.jsxs("select",{value:D.reportsToIndex==null?"owner":String(D.reportsToIndex),onChange:L=>j(I,{reportsToIndex:L.target.value==="owner"?null:Number(L.target.value)}),disabled:I===0,"aria-label":"Reports to",children:[u.jsx("option",{value:"owner",children:"Owner"}),m.slice(0,I).map((L,M)=>u.jsx("option",{value:M,children:Mx(L.name)},M))]}),u.jsx("button",{type:"button",className:"org-create-icon-btn",onClick:()=>O(I),disabled:m.length<=2,title:"Remove member","aria-label":"Remove member",children:"-"}),u.jsx("textarea",{value:D.prompt,onChange:L=>j(I,{prompt:L.target.value}),placeholder:"Prompt optional","aria-label":`${I===0?"Lead role":"Member role"} prompt optional`})]},I))}),u.jsx("button",{type:"button",className:"org-create-add",onClick:N,children:"+ Add member"})]}),o===3&&u.jsx("div",{className:"org-create-panel",children:u.jsxs("div",{className:"org-create-review",children:[u.jsxs("div",{className:"org-create-review-head",children:[u.jsx("span",{children:c.trim()}),u.jsxs("b",{children:[v.length," members"]})]}),S.map(D=>u.jsxs("div",{className:"org-create-review-row",children:[u.jsx("strong",{children:D.roleName}),u.jsxs("span",{children:[D.managerName,D.prompt.trim()?u.jsx("em",{children:"Prompt"}):null]})]},D.index))]})}),p&&u.jsx("div",{className:"org-create-error",children:p}),u.jsxs("div",{className:"org-create-actions",children:[u.jsx("button",{type:"button",className:"btn btn-ghost",onClick:o===1?i:()=>a(o-1),children:o===1?"Cancel":"Back"}),o<3?u.jsx("button",{type:"button",className:"btn btn-primary",onClick:()=>a(o+1),disabled:o===1?!x:!k,children:"Next"}):u.jsx("button",{type:"button",className:"btn btn-primary",onClick:R,disabled:!w,children:t?"Creating...":"Create organization"})]})]})})}const rl={team:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z'/%3E%3C/svg%3E",runtime:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M13 2.05v2.02c3.95.49 7 3.85 7 7.93 0 3.21-1.81 6-4.72 7.72L13 17v5h5l-1.22-1.22C19.91 19.07 22 15.76 22 12c0-5.18-3.95-9.45-9-9.95zM11 2.05C5.95 2.55 2 6.82 2 12c0 3.76 2.09 7.07 5.22 8.78L6 22h5V2.05z'/%3E%3C/svg%3E",architecture:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M3 13h8V3H3v10zm0 8h8v-6H3v6zm10 0h8V11h-8v10zm0-18v6h8V3h-8z'/%3E%3C/svg%3E",employees:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z'/%3E%3C/svg%3E"},$j={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 jJ(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 EJ({data:e,sessionRecruitmentByRole:t,talents:n,employeeDetail:i,reorgProposals:r,isCustomMode:o,onRequestData:a,onRequestTalents:c,onRequestEmployeeDetail:d,onHireTalent:m,hiringTemplateId:h,onImportEmployee:p,onRequestReorgList:g,onReorgDecide:x,onMarketExport:v,onMarketInstall:_,onMarketUninstall:k,marketPresets:w,marketPreviewData:S,onMarketBrowse:j,onMarketPreview:N,onMarketApplyPreset:O,onMarketClearPreview:R,onAddRole:D,onBulkAddRoles:I,onUpdateRole:L,onDeleteRole:M,onUpdateOrgStrategy:A,onUpdateRuntimePolicy:B,onResetArchitecture:W,onConfigExport:P,onConfigImport:G,configExportYaml:$,configImportPreview:q,configImportError:Y,onSavedOrgsList:Q,onSavedOrgSaveAs:V,onSavedOrgCreate:U,onSavedOrgLoad:Z,onSavedOrgDelete:F,savedOrgsList:K,activeSavedOrg:ee,activeSavedOrgVersionAtLoad:te,orgCreatePending:oe,orgCreateResult:ae,onSelectCorporate:ue}){const[ie,we]=C.useState("team"),[je,Te]=C.useState(!1),qe=C.useCallback(Me=>{we(Me)},[]),[Ze,Xe]=C.useState(null),pt=C.useRef(-1),[Ut,Pt]=C.useState(null),It=C.useRef(null),he=C.useCallback((Me,gt="info")=>{Pt({msg:Me,type:gt}),It.current&&clearTimeout(It.current),It.current=setTimeout(()=>Pt(null),3e3)},[]);C.useEffect(()=>()=>{It.current&&clearTimeout(It.current)},[]);const Be=C.useRef(a),at=C.useRef(c),Ue=C.useRef(g),ct=C.useRef(j),pe=C.useRef(Q);Be.current=a,at.current=c,Ue.current=g,ct.current=j,pe.current=Q,C.useEffect(()=>{Be.current(),at.current(),Ue.current(),ct.current?.(),pe.current?.()},[]),C.useEffect(()=>{!ae||!ae.ok||(Te(!1),we("team"),he(`Created ${ae.organization_name||ae.name} and saved automatically`))},[ae,he]);const be=e?.roles??[],Ae=C.useMemo(()=>o?be.filter(Me=>!Me.is_builtin):be,[be,o]),He=C.useMemo(()=>e?.employees??[],[e?.employees]),Ye=C.useMemo(()=>Um(e),[e]),$t=C.useMemo(()=>He.filter(Me=>Me.linked_agent_id),[He]),ke=e?.organization_name?.trim()||jJ(ee)||(o?"Custom org":"Corporate company"),We=(o?e?.organization_id||ee:"corporate")||"",Qe=o?"Saved org":"Corporate",Fe=o?ee?"Editable saved architecture":"Editable draft architecture":"Built-in read-only architecture",Ve=Ye.frontier.status||Ye.projectRun?.status||Ye.projectRun?.lifecycle_status||"ready",Gt=C.useMemo(()=>{const Me=new Set;for(const gt of He){if(gt.is_default_employee)continue;const ht=gt.role_ids?.length?gt.role_ids:[gt.role_id];for(const mi of ht)mi&&Me.add(mi)}return Me},[He]),ei=C.useMemo(()=>Ae.filter(Me=>!Gt.has(Me.role_id)),[Ae,Gt]),_t=C.useMemo(()=>new Set((e?.installed_packages??[]).map(Me=>Me.package_id)),[e?.installed_packages]),kt=e?.org_version??0;C.useEffect(()=>{Ze&&pt.current>=0&&kt!==pt.current&&(Xe(null),pt.current=-1,we("team"),he("Architecture applied successfully"))},[kt,Ze,he]);const vn=(Me,gt)=>{pt.current=kt,Xe(Me),O?.(Me,gt)},On=Me=>{if(Me==="corporate"){ue?.();return}if(Me.startsWith("org:")){const gt=Me.slice(4);gt&&Z?.(gt)}};if(!e)return u.jsx("div",{className:"org-tab",children:u.jsx("div",{className:"org-loading",children:"Loading organization data..."})});const jt=e.installed_packages??[],Ht=K??[],Hn=o&&ee?`org:${ee}`:"corporate";return u.jsxs("div",{className:"org-tab",children:[u.jsxs("div",{className:`org-header${o?" org-header--custom":" org-header--corporate"}`,children:[u.jsxs("div",{className:"org-header-main",children:[u.jsxs("div",{className:"org-eyebrow",children:[u.jsx("span",{children:"Company"}),u.jsx("span",{className:"org-eyebrow-separator",children:"/"}),u.jsx("span",{children:Qe})]}),u.jsxs("div",{className:"org-title-row",children:[u.jsx("h2",{className:"org-title",children:ke}),u.jsxs("span",{className:"org-version-badge",children:["v",e.org_version]}),u.jsx("span",{className:`org-state-badge${o?" org-state-badge--editable":" org-state-badge--readonly"}`,children:Fe})]}),u.jsxs("div",{className:"org-header-meta",children:[u.jsx("span",{className:"org-meta-pill",children:e.company_profile||(o?"custom":"corporate")}),We&&u.jsx("code",{className:"org-meta-code",children:We}),u.jsx("span",{className:"org-meta-pill org-meta-pill--runtime",children:Ve}),u.jsx("span",{className:"org-meta-pill org-meta-pill--saved",children:"Auto-saved"})]})]}),u.jsxs("div",{className:"org-control-panel",children:[u.jsxs("label",{className:"org-switcher",children:[u.jsx("span",{className:"org-switcher-label",children:"Organization"}),u.jsx("span",{className:"org-switcher-select-wrap",children:u.jsxs("select",{className:"org-switcher-select",value:Hn,onChange:Me=>On(Me.target.value),onFocus:()=>Q?.(),onPointerDown:()=>Q?.(),"aria-label":"Organization",children:[u.jsx("option",{value:"corporate",children:"Corporate"}),Ht.map(Me=>u.jsx("option",{value:`org:${Me.name}`,children:(Me.organization_name||Me.name).trim()||Me.name},Me.name))]})})]}),u.jsxs("button",{type:"button",className:"org-create-trigger",onClick:()=>Te(!0),children:[u.jsx("span",{className:"org-create-trigger-icon","aria-hidden":!0,children:"+"}),"New organization"]})]}),u.jsxs("div",{className:"org-stats-strip",children:[u.jsxs("span",{className:"org-stat",children:[u.jsx("img",{src:$j.agents,alt:"",className:"org-stat-icon"}),u.jsx("b",{children:Ae.length})," roles"]}),u.jsxs("span",{className:"org-stat",children:[u.jsx("img",{src:rl.employees,alt:"",className:"org-stat-icon"}),u.jsx("b",{children:He.length})," employees"]}),u.jsxs("span",{className:"org-stat",children:[u.jsx("img",{src:rl.runtime,alt:"",className:"org-stat-icon"}),u.jsx("b",{children:Ye.runtimeTeams.length})," runtime teams"]}),u.jsxs("span",{className:"org-stat",children:[u.jsx("img",{src:$j.active,alt:"",className:"org-stat-icon"}),u.jsx("b",{children:$t.length})," active"]})]})]}),u.jsx("div",{className:"org-subtabs",children:[{id:"team",icon:rl.team,label:"Team",count:Ae.length},{id:"runtime",icon:rl.runtime,label:"Runtime",count:Ye.runtimeTeams.length},{id:"architecture",icon:rl.architecture,label:"Architecture",count:w?.length??0},{id:"employees",icon:rl.employees,label:"Employees",count:n.length}].map(Me=>u.jsxs("button",{className:`org-subtab${ie===Me.id?" org-subtab--active":""}`,onClick:()=>qe(Me.id),children:[u.jsx("img",{src:Me.icon,alt:"",className:"org-subtab-icon"}),u.jsx("span",{className:"org-subtab-label",children:Me.label}),u.jsx("span",{className:"org-subtab-count",children:Me.count})]},Me.id))}),Ut&&u.jsx("div",{className:`org-toast org-toast--${Ut.type}`,onClick:()=>Pt(null),children:Ut.msg}),u.jsxs("div",{className:"org-tab-content",children:[ie==="team"&&u.jsx(cJ,{roles:Ae,employees:He,sessionRecruitmentByRole:t,isCustomMode:o,onAddRole:D??(()=>{}),onBulkAddRoles:I,onUpdateRole:L??(()=>{}),onDeleteRole:M??(()=>{}),onExport:v??(()=>{}),onImportEmployee:p,onResetArchitecture:W,onSwitchToTab:Me=>we(Me),savedOrgsList:K,activeSavedOrg:ee??null,currentOrgVersion:e?.org_version??0,versionAtLoad:te??null,onSavedOrgsList:Q,onSavedOrgSaveAs:V,onSavedOrgLoad:Z,onSavedOrgDelete:F}),ie==="runtime"&&u.jsx(mJ,{roles:Ae,runtimeTeams:Ye.runtimeTeams,runtimeSeats:Ye.runtimeSeats,workItems:Ye.workItems,frontier:Ye.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:B}),ie==="architecture"&&u.jsxs(u.Fragment,{children:[u.jsx(hJ,{presets:w??[],installedIds:_t,previewData:S??null,applyingPresetId:Ze,readOnly:!o,onPreview:N??(()=>{}),onApplyPreset:vn,onClearPreview:R??(()=>{}),installedPackages:jt,channels:e.channels,reorgProposals:r,isCustomMode:!!o,onReorgDecide:x,onMarketInstall:(Me,gt)=>_?.(Me,gt),onMarketUninstall:Me=>k?.(Me)}),o&&u.jsx(wJ,{onExport:P??(()=>{}),onImport:G??(()=>{}),configExportYaml:$??null,importPreview:q??null,importError:Y??null})]}),ie==="employees"&&u.jsx(SJ,{templates:n,vacantRoles:ei,hiringTemplateId:h??null,readOnly:!o,onHireTalent:m})]}),u.jsx(CJ,{open:je,pending:oe,result:ae??null,onClose:()=>Te(!1),onCreate:(Me,gt)=>U?.(Me,gt)})]})}function NJ(e,t,n,i){const r=n.join(", "),o=`session:${t.id}`,a=e.channels.find(c=>c.id===o)??e.channels.find(c=>c.type==="activity");a&&e.sendMessage({channelId:a.id,sender:"system",senderName:"System",content:`Task **${t.displayId}** assigned to ${r}`,metadata:{type:"task_assigned",taskId:t.id,boardId:t.boardId}})}const IJ=1e12,TJ=/^\[Company:([^\]]+)\]\s*(.*)$/,RJ=/^\[Company\]\s*(.*)$/;function AJ(e,t,n){return!n&&e===!1?!1:t}function iA(e,t){return t==="idle"||t==="reflecting"||t==="tool_active"?t:e==="running"?"reflecting":void 0}function Em(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:Em(t.timestamp),type:t.type??"status_change",summary:typeof t.summary=="string"?t.summary:"",detail:typeof t.detail=="string"?t.detail:void 0,turnId:typeof t.turn_id=="string"?t.turn_id:typeof t.turnId=="string"?t.turnId:void 0,itemId:typeof t.item_id=="string"?t.item_id:typeof t.itemId=="string"?t.itemId:void 0,streamId:typeof t.stream_id=="string"?t.stream_id:typeof t.streamId=="string"?t.streamId:void 0,toolCallId:typeof t.tool_call_id=="string"?t.tool_call_id:typeof t.toolCallId=="string"?t.toolCallId:void 0,permissionGroupKey:typeof t.permission_group_key=="string"?t.permission_group_key:typeof t.permissionGroupKey=="string"?t.permissionGroupKey:void 0,seq:typeof t.seq=="number"&&Number.isFinite(t.seq)?t.seq:void 0,executionMode:typeof t.execution_mode=="string"?t.execution_mode:typeof t.executionMode=="string"?t.executionMode:void 0}))):[]}function MJ(e){return Array.isArray(e)?ZI(e.filter(t=>!!t&&typeof t=="object").map(t=>{const n=typeof t.runtime_task_id=="string"?t.runtime_task_id:typeof t.runtimeTaskId=="string"?t.runtimeTaskId:typeof t.execution_turn_id=="string"?t.execution_turn_id:typeof t.executionTurnId=="string"?t.executionTurnId:void 0,i=typeof t.execution_turn_id=="string"?t.execution_turn_id:typeof t.executionTurnId=="string"?t.executionTurnId:n;return{timestamp:Em(t.timestamp),type:t.type??"gate_result",workItemProjectionId:typeof t.work_item_projection_id=="string"?t.work_item_projection_id:typeof t.workItemProjectionId=="string"?t.workItemProjectionId:void 0,workItemTurnType:typeof t.work_item_turn_type=="string"?t.work_item_turn_type:typeof t.workItemTurnType=="string"?t.workItemTurnType:void 0,workItemProjectionTitle:typeof t.work_item_projection_title=="string"?t.work_item_projection_title:typeof t.workItemProjectionTitle=="string"?t.workItemProjectionTitle:void 0,runtimeTaskId:n,executionTurnId:i,roleName:typeof t.role_name=="string"?t.role_name:typeof t.roleName=="string"?t.roleName:void 0,detail:typeof t.detail=="string"?t.detail:void 0}})):[]}function DJ(e){return e.replace(/[_-]/g," ").replace(/\b\w/g,t=>t.toUpperCase())}function Hj(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??{},i=e.sender!=="system"&&e.sender!=="assistant"?e.senderName:void 0,r=typeof n.forwarded_from=="string"?n.forwarded_from:typeof n.task_id=="string"?n.task_id:typeof n.taskId=="string"?n.taskId:void 0,o=TJ.exec(t);if(o){const[,c,d]=o,m=d.trim();return{timestamp:e.timestamp,type:Hj(m),workItemProjectionId:c,workItemProjectionTitle:DJ(c),roleName:i,detail:m||void 0,runtimeTaskId:r,executionTurnId:r}}const a=RJ.exec(t);if(a){const c=a[1].trim();return{timestamp:e.timestamp,type:Hj(c),workItemProjectionId:"company_runtime",workItemProjectionTitle:"Company Runtime",roleName:i,detail:c||void 0,runtimeTaskId:r,executionTurnId:r}}return null}function LJ(e){return e.map(OJ).filter(t=>t!=null).sort((t,n)=>t.timestamp-n.timestamp)}function zJ(e,t){if(e.length===0||t.length===0)return e;const n=new Map;for(const i of t){const r=n.get(i.channelId);r?r.push(i):n.set(i.channelId,[i])}return e.map(i=>{const r=LJ(n.get(i.channelId)??[]),o=i.workItemLog&&i.workItemLog.length>0?i.workItemLog:r,a=[...o].reverse().find(m=>{const h=m.workItemProjectionId;return h&&h!=="company_runtime"}),c=i.mode==="primary"?a?.workItemProjectionId??i.workItemProjectionId:i.workItemProjectionId??a?.workItemProjectionId,d=i.isCompanyRuntime||i.mode==="primary"&&o.length>0;return o.length===0&&c===i.workItemProjectionId&&d===i.isCompanyRuntime?i:{...i,isCompanyRuntime:d,workItemProjectionId:c,...o.length>0?{workItemLog:o}:{}}})}function PJ(e,t){if(e.length===0||t.length===0)return e;const n=new Map(t.map(i=>[i.taskId,i]));return e.map(i=>{const r=n.get(i.id);if(!r)return i;const o=r.workItemProjectionId??i.workItemProjectionId,a=r.companyProfile??i.companyProfile,c=r.workItemRoleId??i.workItemRoleId,d=r.workItemRoleName??i.workItemRoleName;return o===i.workItemProjectionId&&a===i.companyProfile&&c===i.workItemRoleId&&d===i.workItemRoleName?i:{...i,workItemProjectionId:o,companyProfile:a,workItemRoleId:c,workItemRoleName:d}})}function rA(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 Ff(e){const t=e.sender_name??e.senderName??"",n=String(t).trim().toLowerCase()==="task generalist"?"OPC":t;return{id:e.message_id??e.id??"",channelId:e.channel_id??e.channelId??"",sender:e.sender??"",senderName:n,content:e.content??"",timestamp:typeof e.created_at=="number"?e.created_at*1e3:e.timestamp??Date.now(),replyToId:e.reply_to_id??e.replyToId,mentions:e.mentions??[],metadata:e.metadata,senderDeleted:!!(e.sender_deleted??e.senderDeleted)}}function sA(e){return{id:e.board_id??e.id??"",name:e.name??"",description:e.description,color:e.color??"#3b82f6",officeId:e.office_id??e.officeId,prefix:e.prefix??"T",nextTaskNum:e.next_task_num??e.nextTaskNum??1,createdAt:typeof e.created_at=="number"?e.created_at*1e3:e.createdAt??Date.now(),updatedAt:typeof e.updated_at=="number"?e.updated_at*1e3:e.updatedAt??Date.now()}}function oA(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 aA(e){const t=iA(e.status,e.agent_status??e.agentStatus),n=e.kanban_column??e.column_id??e.columnId??"",i=e.work_item_id??e.workItemId??e.task_id??e.id??"",r=e.runtime_task_id??e.runtimeTaskId??e.execution_turn_id??e.executionTurnId??(e.work_item_id??e.workItemId?void 0:e.task_id??e.id),o=e.execution_turn_id??e.executionTurnId??r,a=e.execution_mode??e.executionMode,c=e.work_item_projection_id??e.workItemProjectionId,d=a==="task_mode"||c==="task_mode_execution";return{id:i,displayId:e.display_id??e.displayId??"",boardId:e.board_id??e.boardId??"",columnId:n,title:e.title??"",description:e.description,priority:e.priority??null,assigneeIds:e.assignee_ids??e.assigneeIds??[],tags:e.tags??[],sortOrder:e.sort_order??e.sortOrder??0,sessionId:e.session_id??e.sessionId,workItemId:e.work_item_id??e.workItemId,runtimeTaskId:r,executionTurnId:o,createdAt:typeof e.created_at=="number"?e.created_at*1e3:e.createdAt??Date.now(),updatedAt:typeof e.updated_at=="number"?e.updated_at*1e3:e.updatedAt??Date.now(),agentStatus:t,currentTool:e.current_tool??e.currentTool,displayTool:e.display_tool??e.displayTool??e.current_tool??e.currentTool,toolElapsedMs:e.tool_elapsed_ms??e.toolElapsedMs,lastToolSummary:e.last_tool_summary??e.lastToolSummary,contextTokens:e.context_tokens??e.contextTokens,contextWindow:e.context_window??e.contextWindow,contextRemainingPct:e.context_remaining_pct??e.contextRemainingPct,inputTokens:e.input_tokens??e.inputTokens,outputTokens:e.output_tokens??e.outputTokens,totalTokens:e.total_tokens??e.totalTokens,turnCostUsd:e.turn_cost_usd??e.turnCostUsd,sessionCostUsd:e.session_cost_usd??e.sessionCostUsd,pendingPermissionCount:e.pending_permission_count??e.pendingPermissionCount,drainMode:e.drain_mode??e.drainMode,residentStatus:e.resident_status??e.residentStatus,actionableInboxCount:e.actionable_inbox_count??e.actionableInboxCount,protocolBacklogCount:e.protocol_backlog_count??e.protocolBacklogCount,notificationBacklogCount:e.notification_backlog_count??e.notificationBacklogCount,latestNotification:e.latest_notification??e.latestNotification,workItemProjectionId:d?void 0:c,workItemTurnType:d?void 0:e.work_item_turn_type??e.workItemTurnType,companyProfile:d?void 0:e.company_profile??e.companyProfile,orgId:d?void 0:e.org_id??e.organization_id??e.orgId??e.organizationId,workItemRoleId:d?void 0:e.work_item_role_id??e.workItemRoleId,workItemRoleName:d?void 0:e.work_item_role_name??e.workItemRoleName,workItemGate:d?void 0:cA(e.work_item_gate??e.workItemGate),employeeAssignment:lA(e.employee_assignment??e.employeeAssignment),selectedExecutionAgent:e.selected_execution_agent??e.selectedExecutionAgent,originChannel:e.origin_channel??e.originChannel,dependencies:e.dependencies,progressLog:dp(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 lA(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 cA(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 BJ=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"]),$J=new Set(["active","waiting","pending","done","failed"]);function HJ(e){return typeof e=="string"&&BJ.has(e)?e:"queued"}function FJ(e){return typeof e=="string"&&$J.has(e)?e:"pending"}function VJ(e){return e==="reflecting"||e==="tool_active"||e==="idle"?e:"idle"}function UJ(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:dp(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:HJ(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:Em(e.created_at??e.createdAt),updatedAt:Em(e.updated_at??e.updatedAt),executionTurnId:e.execution_turn_id??e.executionTurnId??void 0,activitySections:t.filter(n=>!!n&&typeof n=="object").map(UJ),progressLog:dp(e.progress_log??e.progressLog)}}function Fj(e){if(!e||typeof e!="object")return;const t={};for(const[n,i]of Object.entries(e)){if(!i||typeof i!="object")continue;const r=i,a=(Array.isArray(r.work_items)?r.work_items:Array.isArray(r.workItems)?r.workItems:[]).map(GJ).sort((d,m)=>d.createdAt-m.createdAt),c=typeof r.role_key=="string"?r.role_key:typeof r.roleKey=="string"?r.roleKey:n;t[n]={roleKey:c,roleId:typeof r.role_id=="string"?r.role_id:typeof r.roleId=="string"?r.roleId:n,roleName:typeof r.role_name=="string"?r.role_name:typeof r.roleName=="string"?r.roleName:n,roleSessionId:typeof r.role_session_id=="string"?r.role_session_id:typeof r.roleSessionId=="string"?r.roleSessionId:void 0,teamInstanceId:typeof r.team_instance_id=="string"?r.team_instance_id:typeof r.teamInstanceId=="string"?r.teamInstanceId:void 0,runtimeStatus:VJ(r.runtime_status??r.runtimeStatus),aggregatedStatus:FJ(r.aggregated_status??r.aggregatedStatus),workItems:a}}return Object.keys(t).length>0?t:void 0}function uA(e){const t=iA(e.status,e.agent_status??e.agentStatus),n=e.task_id??e.taskId??"",i=e.runtime_task_id??e.runtimeTaskId??e.execution_turn_id??e.executionTurnId??n,r=e.execution_turn_id??e.executionTurnId??i,o=e.execution_mode??e.executionMode,a=String(e.exec_mode??e.execMode??"").trim().toLowerCase(),c=e.work_item_projection_id??e.workItemProjectionId,d=a==="task"||a==="project"||a==="single"||o==="task_mode"||c==="task_mode_execution",m=d?void 0:e.parent_session_id??e.parentSessionId,h={projectId:e.project_id??e.projectId??"",taskId:n,runtimeTaskId:i,executionTurnId:r,channelId:e.channel_id??e.channelId??"",sessionId:e.session_id??e.sessionId,parentSessionId:m,mode:d?"primary":e.mode??(m?"child":"primary"),title:e.title??"Untitled",status:e.status??"pending",columnId:e.column_id??e.columnId??"todo",assigneeIds:e.assignee_ids??e.assigneeIds??[],priority:e.priority??null,tags:e.tags??[],agentStatus:t,currentTool:e.current_tool??e.currentTool,displayTool:e.display_tool??e.displayTool??e.current_tool??e.currentTool,toolElapsedMs:e.tool_elapsed_ms??e.toolElapsedMs,lastToolSummary:e.last_tool_summary??e.lastToolSummary,contextTokens:e.context_tokens??e.contextTokens,contextWindow:e.context_window??e.contextWindow,contextRemainingPct:e.context_remaining_pct??e.contextRemainingPct,inputTokens:e.input_tokens??e.inputTokens,outputTokens:e.output_tokens??e.outputTokens,totalTokens:e.total_tokens??e.totalTokens,turnCostUsd:e.turn_cost_usd??e.turnCostUsd,sessionCostUsd:e.session_cost_usd??e.sessionCostUsd,pendingPermissionCount:e.pending_permission_count??e.pendingPermissionCount,drainMode:e.drain_mode??e.drainMode,progressLog:dp(e.progress_log??e.progressLog),createdAt:typeof e.created_at=="number"?e.created_at*1e3:e.createdAt??Date.now(),updatedAt:typeof e.updated_at=="number"?e.updated_at*1e3:e.updatedAt??Date.now(),messageCount:e.message_count??e.messageCount??0,latestPreview:e.latest_preview??e.latestPreview,latestSender:e.latest_sender??e.latestSender,latestMessageId:e.latest_message_id??e.latestMessageId,indexLoaded:e.index_loaded??e.indexLoaded,detailLoaded:e.detail_loaded??e.detailLoaded,fullLoaded:e.full_loaded??e.fullLoaded,hasMore:e.has_more??e.hasMore,summaryHasMore:e.summary_has_more??e.summaryHasMore,fullHasMore:e.full_has_more??e.fullHasMore,detailLoading:e.detail_loading??e.detailLoading,detailError:e.detail_error??e.detailError,viewGeneration:e.view_generation??e.viewGeneration,execMode:e.exec_mode??e.execMode,companyProfile:d?void 0:e.company_profile??e.companyProfile,orgId:d?void 0:e.org_id??e.organization_id??e.orgId??e.organizationId,preferredAgent:e.preferred_agent??e.preferredAgent,workItemProjectionId:d?void 0:c,workItemTurnType:d?void 0:e.work_item_turn_type??e.workItemTurnType,workItemRoleId:d?void 0:e.work_item_role_id??e.workItemRoleId,workItemRoleName:d?void 0:e.work_item_role_name??e.workItemRoleName,workItemGate:d?void 0:cA(e.work_item_gate??e.workItemGate),employeeAssignment:lA(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,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?[]:MJ(e.work_item_log??e.workItemLog),roleWorkItems:d?void 0:Fj(e.role_work_items??e.roleWorkItems),executorRoleWorkItems:d?void 0:Fj(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 QI(h)}function Vj(e){const t=(e.channels??[]).map(rA),n=(e.messages??[]).map(Ff),i=(e.boards??[]).map(sA),r=(e.columns??[]).map(oA),o=zJ((e.sessions??[]).map(uA),n),a=PJ((e.tasks??[]).map(aA),o);return{channels:t,messages:n,boards:i,columns:r,tasks:a,sessions:o}}function qJ(e){return`session:${e}`}const WJ=new Set(["company_recruitment_confirmation","company_staffing_selection"]);function YJ(e){let t=null;for(const o of e){const a=o.metadata?.checkpoint_type;!a||!WJ.has(a)||(!t||(o.timestamp??0)>=(t.timestamp??0))&&(t=o)}if(!t?.metadata)return null;const n=t.metadata,i={},r=(o,a)=>{const c=String(o??"").trim(),d=String(a??"").trim();if(!c||!d)return;const m=i[c]??(i[c]=[]);m.includes(d)||m.push(d)};for(const o of n.recruitment_rationales??[])o?.selection_label&&r(o.role_id,o.selection_label);if(Object.keys(i).length===0)for(const o of n.proposals??[]){const a=o?.existing_employee?.employee_name||o?.candidate?.proposed_name||o?.candidate?.template_name||"";r(o?.role_id,a)}return Object.keys(i).length?i:null}function XJ(){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 Uj=80,KJ=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"]),ZJ=new Set(["member_inbox_updated"]);function QJ(){return`${window.location.protocol==="https:"?"wss":"ws"}://${window.location.hostname}:${window.location.port||"8765"}/ws`}function JJ(e){return e==="connected"?"ok":e==="connecting"?"warn":e==="error"?"error":"off"}function Qc(e){return qV(e)}function Ts(e){return pv(e)}function Dx(e,t){if(e!=="task")return e==="org"?"custom":"corporate"}function Qo(e,t){return e!=="org"?void 0:String(t??"").trim()||void 0}function Ms(e){const t=String(e??"").trim().toLowerCase().replace("-","_");return t==="codex"||t==="claude_code"||t==="cursor"||t==="opencode"?t:"native"}function eee(e,t=120){const n=JSON.stringify(e)??"";return n.length<=t?n:n.slice(0,t)+"…"}function tee(e,t){const n=typeof e.runtime_status=="string"?e.runtime_status:typeof e.status=="string"?e.status:t?.runtime_status??t?.status??"idle",i=e.appearance&&typeof e.appearance=="object"?e.appearance:t?.appearance??{palette:0,hue_shift:0,seat_zone:"work_area"},r=Array.isArray(e.specialties)?e.specialties.filter(a=>typeof a=="string"):t?.specialties??[],o=typeof e.agent_id=="string"?e.agent_id:t?.agent_id??"";return{agent_id:o,name:typeof e.name=="string"&&e.name?e.name:typeof e.role_name=="string"&&e.role_name?e.role_name:t?.name??o,description:typeof e.description=="string"?e.description:t?.description??"",specialties:r,status:n,office_id:typeof e.office_id=="string"?e.office_id:t?.office_id,appearance:i,employee_id:typeof e.employee_id=="string"?e.employee_id:t?.employee_id,opc_role_id:typeof e.opc_role_id=="string"?e.opc_role_id:t?.opc_role_id,runtime_status:n,current_tool:typeof e.current_tool=="string"?e.current_tool:e.current_tool==null?void 0:t?.current_tool,current_task_id:typeof e.current_task_id=="string"?e.current_task_id:e.current_task_id==null?void 0:t?.current_task_id}}function Gj(e,t=[]){const n=new Map(t.map(i=>[i.agent_id,i]));return e.filter(i=>!!i&&typeof i=="object").map(i=>{const r=typeof i.agent_id=="string"?i.agent_id:"";return tee(i,n.get(r))}).filter(i=>!!i.agent_id)}function qj(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 Nf(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Wj(e){const t=String(e??"").trim().toLowerCase();return t==="idle"||t==="done"||t==="failed"||t==="cancelled"}function Ox(e){const t={};if((typeof e.execution_mode=="string"?e.execution_mode:"")==="task_mode"||e.work_item_projection_id==="task_mode_execution"){const o=qj(e.employee_assignment??e.employeeAssignment);return o&&(t.employeeAssignment=o),typeof e.selected_execution_agent=="string"?t.selectedExecutionAgent=Ms(e.selected_execution_agent):typeof e.selectedExecutionAgent=="string"&&(t.selectedExecutionAgent=Ms(e.selectedExecutionAgent)),t}typeof e.work_item_projection_id=="string"?t.workItemProjectionId=e.work_item_projection_id:typeof e.workItemProjectionId=="string"&&(t.workItemProjectionId=e.workItemProjectionId),typeof e.work_item_turn_type=="string"?t.workItemTurnType=e.work_item_turn_type:typeof e.workItemTurnType=="string"&&(t.workItemTurnType=e.workItemTurnType),typeof e.work_item_role_id=="string"?t.workItemRoleId=e.work_item_role_id:typeof e.workItemRoleId=="string"&&(t.workItemRoleId=e.workItemRoleId),typeof e.work_item_role_name=="string"?t.workItemRoleName=e.work_item_role_name:typeof e.workItemRoleName=="string"&&(t.workItemRoleName=e.workItemRoleName);const r=qj(e.employee_assignment??e.employeeAssignment);return r&&(t.employeeAssignment=r),typeof e.selected_execution_agent=="string"?t.selectedExecutionAgent=Ms(e.selected_execution_agent):typeof e.selectedExecutionAgent=="string"&&(t.selectedExecutionAgent=Ms(e.selectedExecutionAgent)),t}function Lx(e){const t={};return e.latest_notification&&typeof e.latest_notification=="object"&&(t.latestNotification=e.latest_notification),typeof e.runtime_session_id=="string"&&(t.runtimeSessionId=e.runtime_session_id),typeof e.resume_cursor=="number"&&(t.resumeCursor=e.resume_cursor),Array.isArray(e.active_subagents)&&(t.activeSubagents=e.active_subagents),Array.isArray(e.permission_requests)&&(t.permissionRequests=e.permission_requests),typeof e.worktree_path=="string"&&(t.worktreePath=e.worktree_path),typeof e.current_tool=="string"&&(t.currentTool=e.current_tool),typeof e.display_tool=="string"&&e.display_tool.trim()&&(t.displayTool=e.display_tool),typeof e.tool_elapsed_ms=="number"&&(t.toolElapsedMs=e.tool_elapsed_ms),typeof e.last_tool_summary=="string"&&(t.lastToolSummary=e.last_tool_summary),typeof e.context_tokens=="number"&&(t.contextTokens=e.context_tokens),typeof e.context_window=="number"&&e.context_window>0&&(t.contextWindow=e.context_window),typeof e.context_remaining_pct=="number"&&(t.contextRemainingPct=e.context_remaining_pct),typeof e.input_tokens=="number"?t.inputTokens=e.input_tokens:typeof e.input_tokens_total=="number"?t.inputTokens=e.input_tokens_total:typeof e.tokens_in=="number"&&(t.inputTokens=e.tokens_in),typeof e.output_tokens=="number"?t.outputTokens=e.output_tokens:typeof e.output_tokens_total=="number"?t.outputTokens=e.output_tokens_total:typeof e.tokens_out=="number"&&(t.outputTokens=e.tokens_out),typeof e.total_tokens=="number"?t.totalTokens=e.total_tokens:typeof e.tokens_total=="number"&&(t.totalTokens=e.tokens_total),typeof e.turn_cost_usd=="number"&&(t.turnCostUsd=e.turn_cost_usd),typeof e.session_cost_usd=="number"&&(t.sessionCostUsd=e.session_cost_usd),typeof e.pending_permission_count=="number"&&(t.pendingPermissionCount=e.pending_permission_count),typeof e.drain_mode=="string"&&(t.drainMode=e.drain_mode),typeof e.resident_status=="string"&&(t.residentStatus=e.resident_status),typeof e.actionable_inbox_count=="number"&&(t.actionableInboxCount=e.actionable_inbox_count),typeof e.protocol_backlog_count=="number"&&(t.protocolBacklogCount=e.protocol_backlog_count),typeof e.notification_backlog_count=="number"&&(t.notificationBacklogCount=e.notification_backlog_count),t}function zx(e){const t={};return e.latest_notification&&typeof e.latest_notification=="object"&&(t.latestNotification=e.latest_notification),typeof e.current_tool=="string"&&(t.currentTool=e.current_tool),typeof e.display_tool=="string"&&e.display_tool.trim()&&(t.displayTool=e.display_tool),typeof e.tool_elapsed_ms=="number"&&(t.toolElapsedMs=e.tool_elapsed_ms),typeof e.last_tool_summary=="string"&&(t.lastToolSummary=e.last_tool_summary),typeof e.context_tokens=="number"&&(t.contextTokens=e.context_tokens),typeof e.context_window=="number"&&e.context_window>0&&(t.contextWindow=e.context_window),typeof e.context_remaining_pct=="number"&&(t.contextRemainingPct=e.context_remaining_pct),typeof e.input_tokens=="number"?t.inputTokens=e.input_tokens:typeof e.input_tokens_total=="number"?t.inputTokens=e.input_tokens_total:typeof e.tokens_in=="number"&&(t.inputTokens=e.tokens_in),typeof e.output_tokens=="number"?t.outputTokens=e.output_tokens:typeof e.output_tokens_total=="number"?t.outputTokens=e.output_tokens_total:typeof e.tokens_out=="number"&&(t.outputTokens=e.tokens_out),typeof e.total_tokens=="number"?t.totalTokens=e.total_tokens:typeof e.tokens_total=="number"&&(t.totalTokens=e.tokens_total),typeof e.turn_cost_usd=="number"&&(t.turnCostUsd=e.turn_cost_usd),typeof e.session_cost_usd=="number"&&(t.sessionCostUsd=e.session_cost_usd),typeof e.pending_permission_count=="number"&&(t.pendingPermissionCount=e.pending_permission_count),typeof e.drain_mode=="string"&&(t.drainMode=e.drain_mode),typeof e.resident_status=="string"&&(t.residentStatus=e.resident_status),typeof e.actionable_inbox_count=="number"&&(t.actionableInboxCount=e.actionable_inbox_count),typeof e.protocol_backlog_count=="number"&&(t.protocolBacklogCount=e.protocol_backlog_count),typeof e.notification_backlog_count=="number"&&(t.notificationBacklogCount=e.notification_backlog_count),t}function Yj(e,t){if(!t||!e)return!1;if(t.activeSessionId===e)return!0;const n=t.activeSession;if(!n)return!1;if(n.taskId===e||n.parentSessionId===e||n.sessionId===e)return!0;const i=t.sessions.find(c=>c.taskId===e);if(!i)return!1;const r=new Set([String(n.taskId??"").trim(),String(n.sessionId??"").trim()].filter(Boolean)),o=String(i.parentSessionId??"").trim();if(o&&r.has(o))return!0;const a=String(n.parentSessionId??"").trim();return a?String(i.taskId??"").trim()===a||String(i.sessionId??"").trim()===a:!1}function nee(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 iee(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 ree(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 see(e){return e==="reflecting"||e==="tool_active"||e==="idle"?e:"idle"}function oee(e){const t=xo(e)||e.taskId,n=e.workItemRoleId||e.assigneeIds[0]||e.taskId,i=e.workItemRoleName||n.replace(/[_-]/g," ").replace(/\b\w/g,o=>o.toUpperCase()),r=nee(e.status);return{roleKey:n,roleId:n,roleName:i,runtimeStatus:see(e.agentStatus),aggregatedStatus:ree(e.status),workItems:[{workItemId:e.workItemProjectionId||t,workItemProjectionId:e.workItemProjectionId,phase:r,kanbanColumn:iee(r),title:e.title||i,kind:e.workItemTurnType,executorRoleId:n,executorRoleName:i,createdAt:e.createdAt,updatedAt:e.updatedAt,executionTurnId:t,progressLog:e.progressLog,activitySections:e.progressLog.length>0?[{kind:"activity",title:"Runtime activity",roleName:i,runtimeTaskId:t,entries:e.progressLog}]:[]}]}}function aee({taskId:e,sessions:t,agents:n,onClose:i}){if(!e)return null;for(const a of t){const c=a.roleWorkItems;if(c)for(const d of Object.values(c)){const m=d.workItems.find(h=>h.executionTurnId===e);if(m)return u.jsx(AC,{role:d,focusedWorkItemId:m.workItemId,focusedExecutionTurnId:m.executionTurnId,agents:n,onClose:i})}}const r=t.find(a=>a.taskId===e||xo(a)===e);if(!r)return null;const o=oee(r);return u.jsx(AC,{role:o,focusedExecutionTurnId:e,agents:n,onClose:i})}function lee(){const e=C.useRef(new o4);C.useMemo(()=>d4(e.current),[]);const t=C.useRef(null),n=QJ(),[i,r]=C.useState(n),[o,a]=C.useState(n),[c,d]=C.useState("disconnected"),[m,h]=C.useState(""),[p,g]=C.useState(null),[x,v]=C.useState([]),[_,k]=C.useState(0),[w,S]=C.useState(null),[j,N]=C.useState("openopc"),[O,R]=C.useState(!0),[D,I]=C.useState(()=>{try{return localStorage.getItem("opc_office_sidebar_collapsed")==="1"}catch{return!1}}),L=()=>I(J=>{const z=!J;try{localStorage.setItem("opc_office_sidebar_collapsed",z?"1":"0")}catch{}return z}),[M,A]=C.useState("all"),[B,W]=C.useState("workspace"),[P,G]=C.useState([]),[$,q]=C.useState(!1),[Y,Q]=C.useState(null),[V,U]=C.useState("task"),[Z,F]=C.useState("corporate"),[K,ee]=C.useState("native"),[te,oe]=C.useState(null),[ae,ue]=C.useState(null),[ie,we]=C.useState(null),[je,Te]=C.useState([]),[qe,Ze]=C.useState(""),[Xe,pt]=C.useState(null),[Ut,Pt]=C.useState([]),[It,he]=C.useState([]),[Be,at]=C.useState(null),[Ue,ct]=C.useState(null),[pe,be]=C.useState(null),[Ae,He]=C.useState(null),[Ye,$t]=C.useState(null),[yt,ke]=C.useState(null),[We,Qe]=C.useState(null),[Fe,Ve]=C.useState(!1),[Gt,ei]=C.useState(null),[_t,kt]=C.useState(null),vn=C.useRef(new Set),On=C.useRef(new Set),jt=C.useRef([]),Ht=C.useRef("task"),Hn=C.useRef(null),Me=C.useRef(null),gt=C.useRef(null),ht=C.useRef(null),mi=C.useRef(null),Vn=C.useRef("default"),pn=C.useRef(null),Fn=C.useRef(""),tt=C.useRef(0),pi=C.useRef(!1),Si=C.useRef(!1),Rn=C.useRef(0),wn=C.useRef(!1),Vt=C.useRef(null),Cn=C.useRef(null),Xt=C.useRef(new Map),[Re,wt]=C.useState(null),[bn,wi]=C.useState(null),[In,At]=C.useState("success"),[yi,Zn]=C.useState(null),[ti,ln]=C.useState(null),[Kt,Mt]=C.useState(null),[Zt,Un]=C.useState(()=>XJ()),dn=C.useCallback(J=>(typeof J=="string"?J.trim():"")||"default",[]),Je=C.useCallback(()=>dn(Vn.current),[dn]),ni=C.useCallback(()=>`${Date.now()}-${Math.random().toString(36).slice(2,9)}`,[]),Bt=C.useCallback(J=>{if(!J||typeof J!="object")return"";for(const ne of["project_id","projectId","active_project_id","activeProjectId"]){const se=J[ne];if(typeof se=="string"&&se.trim())return se.trim()}const z=J.data;if(z&&typeof z=="object")for(const ne of["project_id","projectId"]){const se=z[ne];if(typeof se=="string"&&se.trim())return se.trim()}return""},[]),Dt=C.useCallback((J,z=!1)=>{const ne=Bt(J);return ne?ne===Je():z},[Je,Bt]),An=C.useCallback(J=>{if(!J||typeof J!="object")return"";const z=J.switch_seq??J.switchSeq;return typeof z=="string"?z.trim():""},[]),Gn=C.useCallback(J=>{if(!J||typeof J!="object")return null;const z=J.view_generation??J.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},[]),jn=C.useCallback(J=>{const z=Bt(J);if(!z)return!1;const ne=pn.current;if(z!==Je()&&z!==ne)return!1;const se=Gn(J);if(se!==null&&se!==tt.current)return!1;const me=An(J);return!me||!Fn.current||me===Fn.current},[Je,An,Gn,Bt]),Ln=C.useCallback(J=>{if(!J||J.error!=="task_not_found")return!1;if(!Dt(J,!1))return!0;if((typeof J.action=="string"?J.action:"")!=="session_detail")return!1;const ne=Gn(J);if(ne!==null&&ne!==tt.current)return!0;const se=typeof J.task_id=="string"?J.task_id:"";return se?!(ht.current?.sessions??[]).some(Ne=>Ne.taskId===se):!0},[Dt,Gn]),xi=C.useCallback(()=>{for(const J of Xt.current.values())clearTimeout(J);Xt.current.clear()},[]),de=C.useCallback((J,z="full",ne=!1,se)=>{if(!J)return;const me=se||Je(),Ne=tt.current;if(!ne&&!Yj(J,ht.current))return;const Pe=`${me}:${Ne}:${J}`,Oe=Xt.current.get(Pe);Oe&&(clearTimeout(Oe),Xt.current.delete(Pe));const it=setTimeout(()=>{if(Xt.current.delete(Pe),me!==Je()||Ne!==tt.current||!ne&&!Yj(J,ht.current))return;const Nt=t.current;if(ht.current?.updateSession(J,{detailLoading:!0,detailError:void 0,viewGeneration:Ne}),!Nt){ht.current?.updateSession(J,{detailLoading:!1,detailError:"connection_unavailable"});return}Nt.sessionDetail(me,J,{limit:200,detailLevel:z,include:z==="full"?["messages","session_state","progress","work_items","runtime_context"]:["messages","session_state"],viewGeneration:Ne}).then(xt=>{xt.ok===!1&&me===Je()&&Ne===tt.current&&ht.current?.updateSession(J,{detailLoading:!1,detailError:String(xt.error??"request_failed")})})},180);Xt.current.set(Pe,it)},[Je]),ve=C.useCallback((J,z="success")=>{wi(J),At(z),setTimeout(()=>wi(null),3e3)},[]),$e=C.useCallback(()=>{Cn.current&&(clearTimeout(Cn.current),Cn.current=null),wn.current=!1,Vt.current=null},[]),dt=C.useCallback(J=>{$e(),wn.current=!0,Vt.current=J,Cn.current=setTimeout(()=>{!wn.current||Vt.current!==J||($e(),h("create_session_timeout"),ve("Session creation timed out. Please try again.","error"))},3e4)},[$e,ve]),an=x4(),Ft=LV(),ce=KV(),Se=QV(),ze=ce.activeSessionId,Ge=C.useMemo(()=>ze?YJ(Ft.getChannelMessages(qJ(ze))):null,[ze,Ft]);C.useCallback(J=>{const z=dn(J);Vn.current=z,xi(),Ft.initFromBackend(z,[],[]),an.initFromBackend(z,[],[],[]),ce.initFromBackend(z,[]),$e(),Mt(null),ue(null),we(null)},[an,Ft,$e,xi,dn,ce]);const St=C.useCallback(J=>{const z=dn(J),ne=ni();return pi.current=!0,Fn.current=ne,tt.current+=1,pn.current=z,xi(),h(`Switching to ${z}...`),ne},[xi,ni,dn]),ut=C.useRef(!1);C.useLayoutEffect(()=>{Me.current=Ft,gt.current=an,ht.current=ce,mi.current=Se,Hn.current=J=>{if(!an.activeBoardId||an.activeBoardColumns.length===0)return;const ne=an.activeBoardColumns.find(se=>se.name==="Todo")?.id??an.activeBoardColumns[0].id;an.createTask({boardId:an.activeBoardId,columnId:ne,title:J.title,priority:J.priority,assigneeIds:J.assignee_id?[J.assignee_id]:[]})},ut.current=!0}),C.useEffect(()=>{jt.current=P},[P]),C.useEffect(()=>{Ht.current=V},[V]),C.useEffect(()=>{const J=e.current,z=ne=>{S(ne),k(se=>se+1)};return J.on("agentSelected",z),()=>{J.off("agentSelected",z)}},[]);const nt=C.useRef(new Map),hn=C.useRef(null),ii=C.useCallback(J=>{const z=nt.current;if(z.size===0)return;const ne=J?[J]:Array.from(z.keys());for(const se of ne){const me=z.get(se);if(!me)continue;z.delete(se);const Ne=ht.current;me.draftText&&Ne?.appendDraft(se,me.draftText,me.draftIteration,me.draftTurnId),Ne?.updateSession(se,me.sessionPatch),Object.keys(me.kanbanPatch).length>0&>.current?.updateTask(se,me.kanbanPatch)}z.size===0&&hn.current!==null&&(window.clearTimeout(hn.current),hn.current=null)},[]),qn=C.useCallback(()=>{hn.current===null&&(hn.current=window.setTimeout(()=>{hn.current=null,ii()},80))},[ii]),Et=C.useRef(null),nn=C.useCallback(()=>{Et.current===null&&(Et.current=window.setTimeout(()=>{Et.current=null,k(J=>J+1)},300))},[]);C.useEffect(()=>{const J=new f3(i,{onSnapshot:z=>{if(!jn(z))return;g(z);const ne=z.timeline.slice(-Uj);v(ne);const se=new Set;for(const Ne of ne)se.add(Ne.event_id);On.current=se,e.current.pushSnapshot(z);const me=Object.entries(z.agents??{});if(me.length>0){const Ne=Gj(me.map(([Pe,Oe])=>({...Oe&&typeof Oe=="object"?Oe:{},agent_id:Pe})),jt.current);jt.current=Ne,G(Ne)}z.exec_mode&&U(Ts(z.exec_mode)),z.company_profile&&F(Qc(z.company_profile)),z.task_preferred_agent&&ee(Ms(z.task_preferred_agent)),k(Ne=>Ne+1)},onEvent:z=>{try{if(!Dt(z,!1))return;if(On.current.has(z.event_id)){On.current.delete(z.event_id);return}if(v(ne=>[...ne.slice(-Uj+1),z]),e.current.pushEvent(z),z.type==="task_routed"&&z.agent_id){if(Ht.current==="company"||Ht.current==="org")return;const ne=z.data?.task_id;if(ne&&!gt.current?.tasks.find(se=>se.id===ne)){const se=typeof z.data?.content_preview=="string"?z.data.content_preview.slice(0,80):"Task";Hn.current?.({title:se,priority:null,assignee_id:z.agent_id})}}if(z.type==="task_done"&&z.agent_id&&Q(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,se=typeof ne.task_id=="string"?ne.task_id:"";if(se){const me=z.type==="assistant_delta"||z.type==="thinking_delta",Ne=nt.current.get(se)?.draftTurnId;me||ii(se);const Pe=ht.current,Oe=gt.current,it=Pe?.sessions.find(ms=>ms.taskId===se),Nt=typeof ne.work_item_projection_id=="string"?ne.work_item_projection_id:"",en=(typeof ne.execution_mode=="string"?ne.execution_mode:"")==="task_mode"||Nt==="task_mode_execution",Ot=Om(ne)||void 0,Pi=!!Nt&&Nt!=="task_mode_execution"&&!en;Pi&&!me&&it?.isCompanyRuntime!==!0&&Pe?.setCompanyRuntime(se,!0);const Gi={lastRuntimeEventType:z.type,...z.type==="member_inbox_updated"?{}:{updatedAt:Date.now()},...Lx(ne)},Us=typeof ne.tool_name=="string"?ne.tool_name:void 0,Gs={...zx(ne),...Us!==void 0?{currentTool:Us||void 0}:{},...Us?{displayTool:Us}:{}};if(me){const ms=nt.current;let ri=ms.get(se);const Xl=z.type==="assistant_delta"&&typeof ne.text=="string"?ne.text:"";ri&&Xl&&ri.draftText&&ri.draftTurnId!==void 0&&Ot!==void 0&&ri.draftTurnId!==Ot&&(ii(se),ri=void 0),ri||(ri={draftText:"",sessionPatch:{},kanbanPatch:{}},ms.set(se,ri)),Xl&&(ri.draftText+=Xl,ri.draftIteration=typeof ne.iteration=="number"?ne.iteration:ri.draftIteration??it?.draftIteration,Ot!==void 0&&(ri.draftTurnId=Ot)),ri.sessionPatch={...ri.sessionPatch,...Gi,...Pi?{isCompanyRuntime:!0}:{}},ri.kanbanPatch={...ri.kanbanPatch,...Gs},qn()}else{const ms=String(Ne??it?.draftTurnId??"").trim(),ri=z.type==="turn_started"&&!!Ot&&!!ms&&Ot!==ms;(z.type==="turn_failed"||ri)&&Pe?.clearDraft(se),Pe?.updateSession(se,Gi),Oe?.updateTask(se,Gs)}const Zu=en&&KJ.has(z.type)||ZJ.has(z.type);z.type!=="assistant_delta"&&!Zu&&de(se)}}if(z.type==="agent_removed"&&z.agent_id){const ne=z.agent_id;L3(ne);const se=Me.current;se&&(se.markSenderDeleted(ne),se.removeParticipant(ne))}nn()}catch(ne){console.error("[onEvent] Error:",ne,z)}},onAck:z=>{try{if(z.ok===!1){if(z.action==="create_session"&&$e(),Ln(z))return;z.action==="session_detail"&&typeof z.task_id=="string"&&ht.current?.updateSession(z.task_id,{detailLoading:!1,detailError:String(z.error??"request_failed")}),h(String(z.error??"request_failed")),ln(null),Zn(null),ve(String(z.error??"Request failed"),"error")}if(z.ok&&z.action==="employee_imported"&&ve("Employee deployed to office!"),z.ok&&z.action==="talent_imported"&&ve(`Imported ${z.count??0} templates!`),z.ok&&z.action==="talent_hired"&&(wt(null),ve(`${z.name??"Agent"} hired and added to office!`)),z.ok&&z.action==="architecture_reset"&&(ke(null),Qe(null)),z.ok&&z.action==="session_detail"){if(!Dt(z,!1))return;const ne=Gn(z);if(ne!==null&&ne!==tt.current)return;const se=typeof z.task_id=="string"?z.task_id:"",me=Array.isArray(z.messages)?z.messages.map(Ff):[],Ne=typeof z.message_count=="number"?z.message_count:me.length,Pe=z.detail_level==="full"?"full":"summary",Oe=Me.current;Oe&&me.length>0&&Oe.mergeMessagesFromBackend(me);const it=ht.current;if(it&&se){const Nt=it.sessions.find(Gs=>Gs.taskId===se),xt=Pe==="full"?Nt?.fullHasMore:Nt?.summaryHasMore,en=AJ(xt,z.has_more===!0,z.client_history_page===!0),Ot=String(Nt?.draftTurnId??"").trim();Ot&&Oe&&me.some(Gs=>Gf(Gs)===Ot)&&it.clearDraft(se);const Gi=z.session_state,Us=Gi&&typeof Gi=="object"?uA(Gi):null;it.updateSession(se,{...Us??{},...typeof z.handoff_context=="string"?{handoffContext:z.handoff_context}:{},...typeof z.handoff_to=="string"?{handoffTo:z.handoff_to}:{},messageCount:Ne,detailLoaded:!0,...Pe==="full"?{fullLoaded:!en}:{},hasMore:en,...Pe==="full"?{fullHasMore:en}:{summaryHasMore:en},detailLoading:!1,detailError:void 0,viewGeneration:ne??tt.current})}}if(Array.isArray(z.agents)){const ne=Gj(z.agents,jt.current);jt.current=ne,G(ne);for(const se of ne)e.current.ensureAgent(se.agent_id,se.name,se.office_id,se.appearance?.palette,se.appearance?.desk_id);k(se=>se+1)}if(z.ok&&(z.agent_id||z.deleted)&&(z.deleted&&(ln(null),Zn(null),ve("Agent removed")),z.agent_id&&!z.deleted&&ve("Agent created!"),t.current?.listAgents()),z.ok&&Array.isArray(z.projects)){const ne=mi.current;if(ne){const se=Je(),me=!Si.current,Ne=!Si.current&&!pi.current,Pe=typeof z.active_project_id=="string"?z.active_project_id.trim():"",Oe=z.action==="create_project"&&typeof z.project_id=="string"?z.project_id.trim():"",it=Ne?dn(Oe||Pe||Vn.current):Oe?dn(Oe):Je();if(Oe&&(pi.current=!0),Si.current=!0,Vn.current=it,ne.initFromBackend(z.projects,it),it!==se||me){const Nt=ni();Fn.current=Nt,pn.current=it,tt.current+=1,h(`Switching to ${it}...`),t.current?.switchProject(it,Nt)}}}if(z.ok&&Array.isArray(z.channels)){if(!jn(z))return;const ne=Vj(z),se=Bt(z);if(!se)return;const me=pn.current===se||Je()!==se;Vn.current=se,pn.current=null,mi.current?.setActiveProject(se),me&&(xi(),Mt(null),ue(null),we(null)),h("");const Ne=Me.current;Ne&&Ne.initFromBackend(se,ne.channels,ne.messages);const Pe=gt.current;Pe&&Pe.initFromBackend(se,ne.boards,ne.columns,ne.tasks);const Oe=ht.current;if(Oe){Oe.initFromBackend(se,ne.sessions);const it=Oe.activeSessionId;it&&de(it,"full",!0)}}}catch(ne){console.error("[onAck] Error:",ne)}},onStatus:(z,ne)=>{if(d(z),h(ne??""),z==="connected"){const se=Je();J.listProjects(),J.orgInfo(),J.orgSavedList(),J.collabSync(se,void 0,tt.current)}},onCollabMessage:(z,ne)=>{try{if(z==="project_index_push"){if(!jn(ne))return}else if(!Dt(ne,!1))return;const se=Me.current;if(z==="chat_new_message")se&&se.addMessageFromBackend(Ff(ne));else if(z==="chat_channel_created")se&&se.addChannelFromBackend(rA(ne));else if(z==="session_runtime_control"){const me=ht.current;if(me){const Ne=Array.isArray(ne.task_ids)?ne.task_ids.map(String).filter(Boolean):[],Pe={runtimeControlState:String(ne.runtime_control_state??ne.runtimeControlState??"idle"),canStop:!!(ne.can_stop??ne.canStop),canResume:!!(ne.can_resume??ne.canResume),resumeParentSessionId:String(ne.resume_parent_session_id??ne.resumeParentSessionId??""),pendingRuntimeCheckpointId:String(ne.pending_runtime_checkpoint_id??ne.pendingRuntimeCheckpointId??""),stopIntentId:String(ne.stop_intent_id??ne.stopIntentId??"")};for(const Oe of Ne)me.updateSession(Oe,Pe)}}else if(z==="board_task_status_changed"){const me=String(ne.task_id??""),Ne=String(ne.column_id??""),Pe=String(ne.status??""),Oe=["done","failed","cancelled"].includes(Pe);if(me&&Ne){const it=gt.current;if(it){const xt=it.tasks.find(en=>en.id===me);if(xt){const en={};xt.columnId!==Ne&&it.moveTask(me,Ne,0),Pe==="running"?(!xt.agentStatus||xt.agentStatus==="idle")&&(en.agentStatus="reflecting"):(xt.agentStatus||xt.currentTool||xt.displayTool)&&(en.agentStatus=void 0,en.currentTool=void 0,en.displayTool=void 0),Object.keys(en).length>0&&it.updateTask(me,en)}}const Nt=ht.current;if(Nt){const xt=Nt.sessions.find(Ot=>Ot.taskId===me),en={columnId:Ne,status:Pe||Ne};Pe==="running"?(!xt?.agentStatus||xt.agentStatus==="idle")&&(en.agentStatus="reflecting"):(xt?.agentStatus||xt?.currentTool||xt?.displayTool||Oe)&&(en.agentStatus=void 0,en.currentTool=void 0,en.displayTool=void 0),Object.assign(en,Y4(xt,Pe)),Nt.updateSession(me,{...en})}}}else if(z==="execution_mode_resolved"){const me=String(ne.mode??""),Ne=String(ne.profile??"");if(me){const Pe=Ts(me);U(Pe),F(Pe==="org"?"custom":Pe==="company"?Qc(Ne):"corporate")}else Ne&&F(Qc(Ne))}else if(z==="project_run_updated"||z==="seat_digest_updated"||z==="work_item_batch_updated")t.current?.collabSync(Je(),void 0,tt.current);else if(z==="collab_sync_push"||z==="project_index_push"){const me=String(ne.sync_scope??ne.syncScope??"").toLowerCase(),Ne=z==="project_index_push"||me==="index";if(!jn(ne))return;const Pe=Vj(ne),Oe=Bt(ne);if(!Oe)return;const it=pn.current===Oe||Je()!==Oe;if(Vn.current=Oe,pn.current=null,mi.current?.setActiveProject(Oe),it&&(xi(),Mt(null),ue(null),we(null)),h(""),Ne){const Ot=ht.current;Ot&&Ot.initFromBackend(Oe,Pe.sessions,{preserveExistingWhenIncomingPartial:!0,preserveActiveWhenMissing:!0}),t.current?.collabSync(Oe,void 0,tt.current);return}const Nt=Me.current;Nt&&Nt.initFromBackend(Oe,Pe.channels,Pe.messages);const xt=gt.current;xt&&xt.initFromBackend(Oe,Pe.boards,Pe.columns,Pe.tasks);const en=ht.current;if(en){en.initFromBackend(Oe,Pe.sessions);const Ot=en.activeSessionId;Ot&&de(Ot,"full",!0)}}}catch(se){console.error("[onCollabMessage] Error:",se)}},onAgentRuntimeUpdate:z=>{if(!Dt(z,!1))return;z.agent_id&&G(se=>{const me=se.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 jt.current=me,me});const ne=gt.current;if(ne&&z.task_id){const se=z,me=zx(se),Ne=Lx(se);if(Nf(se,"current_tool")){const Oe=typeof se.current_tool=="string"&&se.current_tool.trim()?se.current_tool:void 0;me.currentTool=Oe,Ne.currentTool=Oe,Oe&&(me.displayTool=Oe,Ne.displayTool=Oe)}if(Nf(se,"display_tool")){const Oe=typeof se.display_tool=="string"&&se.display_tool.trim()?se.display_tool:void 0;Oe&&(me.displayTool=Oe,Ne.displayTool=Oe)}if(Wj(z.status)&&(me.displayTool=void 0,Ne.displayTool=void 0),Nf(se,"tool_elapsed_ms")){const Oe=typeof se.tool_elapsed_ms=="number"?se.tool_elapsed_ms:void 0;me.toolElapsedMs=Oe,Ne.toolElapsedMs=Oe}if(Nf(se,"last_tool_summary")){const Oe=typeof se.last_tool_summary=="string"?se.last_tool_summary:void 0;me.lastToolSummary=Oe,Ne.lastToolSummary=Oe}typeof z.iteration=="number"&&(me.iterationCount=z.iteration),ne.updateTask(z.task_id,{agentStatus:z.status,...me});const Pe=ht.current;Pe&&Pe.updateSession(z.task_id,{agentStatus:z.status,...Ne,updatedAt:Date.now()}),de(z.task_id)}},onRuntimeStatusSync:z=>{if(!Dt(z,!1))return;const ne=ht.current,se=gt.current;if(ne)for(const me of z.sessions??[]){const Ne=String(me.task_id??"").trim();if(!Ne)continue;const Pe=ne.sessions.find(xt=>xt.taskId===Ne);if(!Pe)continue;const Oe=String(me.status??"").trim(),it={};Oe&&Oe!==Pe.status&&(it.status=Oe);const Nt=typeof me.agent_status=="string"?me.agent_status.trim():"";if(Nt==="idle"||Nt==="reflecting"||Nt==="tool_active"){Nt!==Pe.agentStatus&&(it.agentStatus=Nt);const xt=typeof me.current_tool=="string"&&me.current_tool.trim()?me.current_tool:void 0;xt!==Pe.currentTool&&(it.currentTool=xt),Wj(Nt)&&Pe.displayTool!==void 0&&(it.displayTool=void 0)}else{const xt=Pe.runtimeControlState==="running"||Pe.runtimeControlState==="suspending"||Pe.runtimeControlState==="resuming";Oe&&Oe!=="running"&&!xt&&(Pe.agentStatus!==void 0&&(it.agentStatus=void 0),Pe.currentTool!==void 0&&(it.currentTool=void 0),Pe.displayTool!==void 0&&(it.displayTool=void 0))}if(Object.keys(it).length!==0&&(ne.updateSession(Ne,it),se&&("agentStatus"in it||"currentTool"in it||"displayTool"in it))){const xt={};"agentStatus"in it&&(xt.agentStatus=it.agentStatus),"currentTool"in it&&(xt.currentTool=it.currentTool),"displayTool"in it&&(xt.displayTool=it.displayTool),se.updateTask(Ne,xt)}}},onWorkerNotification:z=>{if(!Dt(z,!1))return;const ne=z,se=typeof z.task_id=="string"?z.task_id:"";if(!se)return;const me=ne;ht.current?.updateSession(se,{...Lx(ne),latestNotification:me,updatedAt:Date.now()}),gt.current?.updateTask(se,{...zx(ne),latestNotification:me}),de(se)},onKanbanViewData:z=>{if(!Dt(z,!1))return;const ne=gt.current;ne&&ne.initFromBackend(Bt(z)||Je(),(z.boards??[]).map(sA),(z.columns??[]).map(oA),(z.tasks??[]).map(aA))},onSessionProgress:z=>{if(!Dt(z,!1))return;const ne=ht.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 se=String(z.entry.summary??"").trim();ne.updateSession(z.task_id,{...se?{currentTool:se,displayTool:se}:{},updatedAt:z.entry.timestamp*1e3})}z.entry.type!=="thinking"&&z.entry.type!=="verification"&&de(z.task_id)}},onBoardEvent:z=>{if(!Dt(z,!1))return;const ne=gt.current;if(!ne)return;const se=String(z.task_id??"");if(!se)return;const me=ht.current;if(me&&me.sessions.find(Pi=>Pi.taskId===se)?.mode==="child")return;const Ne=Array.isArray(z.assignee_ids)?z.assignee_ids.map(String):[],Pe=Ox(z);if(ne.tasks.find(Ot=>Ot.id===se)){const Ot={};z.title&&(Ot.title=String(z.title)),z.display_id&&(Ot.displayId=String(z.display_id)),Ne.length>0&&(Ot.assigneeIds=Ne),Object.assign(Ot,Pe),Object.keys(Ot).length>0&&ne.updateTask(se,Ot);return}const it=String(z.board_id??ne.activeBoardId??"default"),Nt=ne.columns.filter(Ot=>Ot.boardId===it),en=Nt.find(Ot=>Ot.name==="Todo")?.id??Nt[0]?.id??"";en&&(ne.createTask({boardId:it,columnId:en,title:String(z.title??"Untitled"),taskId:se,displayId:z.display_id?String(z.display_id):void 0,assigneeIds:Ne}),Object.keys(Pe).length>0&&ne.updateTask(se,Pe))},onSessionCreated:z=>{try{if(!Dt(z,!1))return;const ne=ht.current;if(!ne)return;const se=String(z.task_id??"");if(!se)return;const me=Bt(z);if(!me)return;const Ne=se?ne.sessions.find(Ot=>Ot.taskId===se):void 0,Pe=Ox(z),Oe=Ts(z.exec_mode??Ne?.execMode),it=Dx(Oe,z.company_profile??Ne?.companyProfile),Nt=Qo(Oe,z.org_id??z.organization_id??Ne?.orgId);Oe==="org"&&Nt&&ke(Nt),ne.createSession({projectId:me,taskId:se,channelId:z.channel_id,sessionId:z.session_id,parentSessionId:z.parent_session_id,originTaskId:z.origin_task_id??Ne?.originTaskId??se,mode:z.parent_session_id?"child":"primary",execMode:Oe,companyProfile:it,orgId:Nt,preferredAgent:Ms(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,...Pe});const xt=gt.current;if(xt&&Oe==="task"&&!z.parent_session_id&&se&&!xt.tasks.find(Ot=>Ot.id===se)&&xt.activeBoardId){const Pi=xt.columns.filter(Gi=>Gi.boardId===xt.activeBoardId).find(Gi=>Gi.name==="Todo");Pi&&xt.createTask({boardId:xt.activeBoardId,columnId:Pi.id,title:z.title,taskId:se,assigneeIds:Ne?.assigneeIds??[]})}if(wn.current){if(Vt.current!==me)return;$e(),ne.setActiveSession(z.task_id),de(z.task_id,"full",!0)}}catch(ne){console.error("[onSessionCreated] Error:",ne)}},onSessionUpdated:z=>{try{if(!Dt(z,!1))return;const ne=ht.current;if(!ne||!z.task_id)return;const se=Ts(z.exec_mode??ne.sessions.find(me=>me.taskId===z.task_id)?.execMode);ne.updateSession(z.task_id,{...z.exec_mode?{execMode:se}:{},...z.exec_mode||z.company_profile?{companyProfile:Dx(se,z.company_profile)}:{},..."org_id"in z||"organization_id"in z?{orgId:Qo(se,z.org_id??z.organization_id)}:{},...z.preferred_agent?{preferredAgent:Ms(z.preferred_agent)}:{},...z.selected_execution_agent?{selectedExecutionAgent:Ms(z.selected_execution_agent)}:{}}),(z.exec_mode==="org"||z.exec_mode==="custom")&&(z.org_id||z.organization_id)&&ke(String(z.org_id??z.organization_id))}catch(ne){console.error("[onSessionUpdated] Error:",ne)}},onSessionMessage:z=>{try{if(!Dt(z,!1))return;const ne=Me.current;if(!ne)return;const se=Ff(z);console.debug("[onSessionMessage]",se.sender,se.channelId,se.content?.slice(0,60)),ne.addMessageFromBackend(se);const me=se.channelId.startsWith("session:")?se.channelId.slice(8):"",Ne=Gf(se),Pe=String(ht.current?.sessions.find(Oe=>Oe.taskId===me)?.draftTurnId??"").trim();me&&se.sender!=="user"&&(Ne&&Ne===Pe&&ht.current?.clearDraft(me),de(me,"full",!0))}catch(ne){console.error("[onSessionMessage] Error:",ne)}},onSessionTitleUpdated:z=>{try{if(!Dt(z,!1))return;const ne=ht.current;ne&&ne.updateSession(z.task_id,{title:z.title});const se=gt.current;if(se){const Ne=ne?.sessions.find(Oe=>Oe.taskId===z.task_id)?.originTaskId??z.task_id,Pe=se.boards.find(Oe=>Oe.id===Ne);Pe&&Pe.name!==z.title&&se.updateBoardName(Ne,z.title)}}catch(ne){console.error("[onSessionTitleUpdated] Error:",ne)}},onSessionDeleted:z=>{try{if(!Dt(z,!1))return;const ne=ht.current;if(!ne)return;ne.activeSessionId===z.task_id&&ne.setActiveSession(null),ne.deleteSession(z.task_id);const se=gt.current;se&&se.deleteTask(z.task_id);const me=Me.current;me&&me.removeSessionData(z.task_id)}catch(ne){console.error("[onSessionDeleted] Error:",ne)}},onProjectSwitched:z=>{if(!jn(z))return;const ne=typeof z.project_id=="string"?z.project_id.trim():"";ne&&(pn.current=ne,h(`Switching to ${ne}...`))},onProjectDeleted:z=>{const ne=mi.current;ne&&ne.removeProject(z.project_id)},onOrgInfo:z=>{const ne=jN(z);oe(ne),Qe(se=>se===null?ne?.org_version??0:se),(z?.project_run?.execution_model==="multi_team_org"||Array.isArray(z?.work_items)&&z.work_items.length>0)&&t.current?.collabSync(Je(),void 0,tt.current)},onCommsState:z=>{Dt(z,!1)&&ue(z)},onCommsMessage:z=>{Dt(z,!0)&&we(z)},onTalentList:z=>{Te(z.templates??[]),z.talent_dir&&Ze(z.talent_dir)},onEmployeeDetail:z=>{pt(z)},onReorgList:z=>{Pt(z.proposals??[])},onOrgConfigExport:z=>{ct(z.yaml??"")},onOrgConfigImport:z=>{z.ok?(be(z.preview??null),He(null),z.dry_run||(ke(null),Qe(null))):(He(z.error??"Import failed"),be(null))},onOrgSavedList:z=>{$t(z.orgs??[]),"active_name"in z&&ke(z.active_name??null)},onOrgSavedSaveAs:z=>{z.ok?(t.current?.orgSavedList(),ke(z.name),Qe(null),kt({kind:"ok",text:`Saved "${z.name}"`})):kt({kind:"error",text:`Save failed: ${z.error??"unknown"}`})},onOrgSavedCreate:z=>{if(Ve(!1),ei({...z,nonce:Date.now()}),z.ok){const ne=z.organization_id||z.name;ke(ne),U("org"),F("custom"),t.current?.orgSavedList(),t.current?.orgInfo(),Qe(null),kt({kind:"ok",text:`Created "${z.organization_name||ne}"`})}else kt({kind:"error",text:`Create failed: ${z.error??"unknown"}`})},onOrgSavedLoad:z=>{z.ok?(ke(z.name),U("org"),F("custom"),t.current?.orgSavedList(),Qe(null),kt({kind:"ok",text:`Loaded "${z.name}"`})):kt({kind:"error",text:`Load failed: ${z.error??"unknown"}`})},onOrgSavedDelete:z=>{z.ok?(t.current?.orgSavedList(),ke(ne=>ne===z.name?(Qe(null),null):ne),kt({kind:"ok",text:`Deleted "${z.name}"`})):kt({kind:"error",text:`Delete failed: ${z.error??"unknown"}`})},onMarketBrowse:z=>{he(z.presets??[])},onMarketPreview:z=>{at(z)},onChildSessionCreated:z=>{if(!Dt(z,!1))return;const ne=ht.current;if(!ne)return;const se=Ox(z),me=Bt(z);if(me&&(ne.createSession({projectId:me,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:[],...se}),z.parent_session_id)){const Ne=ne.sessions.find(Pe=>Pe.sessionId===z.parent_session_id||Pe.taskId===z.parent_session_id);Ne&&!Ne.isCompanyRuntime&&ne.setCompanyRuntime(Ne.taskId,!0)}},onWorkItemProgress:z=>{if(!Dt(z,!1))return;const ne=ht.current;if(!ne||!z.task_id||!z.entry)return;const se=typeof z.entry.work_item_projection_id=="string"?z.entry.work_item_projection_id:"",me=se&&se!=="company_runtime"?se: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,Pe=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,...me?{workItemProjectionId:me}:{}});const Oe=gt.current;Oe&&me&&Oe.updateTask(z.task_id,{workItemProjectionId:me}),ne.appendWorkItemProgress(z.task_id,{timestamp:z.entry.timestamp*1e3,type:z.entry.type,workItemProjectionId:me,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:Pe,roleName:z.entry.role_name,detail:z.entry.detail})}});return t.current=J,J.connect(),()=>{J.disconnect();for(const z of vn.current)clearTimeout(z);vn.current.clear();for(const z of Xt.current.values())clearTimeout(z);Xt.current.clear(),hn.current!==null&&(window.clearTimeout(hn.current),hn.current=null),nt.current.clear(),Et.current!==null&&(window.clearTimeout(Et.current),Et.current=null)}},[i]),C.useEffect(()=>{const J=()=>{if(typeof document<"u"&&document.visibilityState==="hidden")return;const ne=Date.now();ne-Rn.current<1500||(Rn.current=ne,t.current?.collabSync(Je(),void 0,tt.current))},z=()=>{document.visibilityState==="visible"&&J()};return window.addEventListener("focus",J),document.addEventListener("visibilitychange",z),()=>{window.removeEventListener("focus",J),document.removeEventListener("visibilitychange",z)}},[Je]),C.useEffect(()=>{if(!_t)return;const J=setTimeout(()=>kt(null),3e3);return()=>clearTimeout(J)},[_t]);const gn=C.useCallback(()=>{t.current?.orgSavedList()},[]),Vi=C.useCallback((J,z)=>{t.current?.orgSavedSaveAs(J,z)},[]),Ui=C.useCallback((J,z)=>{Ve(!0),ei(null),t.current?.orgSavedCreate(J,z)},[]),ha=C.useCallback(J=>{t.current?.orgSavedLoad(J)},[]),Wl=C.useCallback(J=>{t.current?.orgSavedDelete(J)},[]),Bs=C.useCallback(()=>{U("company"),F("corporate"),Qe(null),t.current?.setExecutionMode("company","corporate",K),t.current?.orgInfo()},[K]);C.useEffect(()=>{if(!Y)return;const J=Y;e.current.setAgentBubble(J,"Done!");const z=setTimeout(()=>{vn.current.delete(z),e.current.setAgentBubble(J,null)},3e3);vn.current.add(z),Q(null)},[Y]),C.useCallback((J,z,ne)=>{const se=an.tasks.find(me=>me.id===J);for(const me of z)e.current.sendToSeat(me),e.current.setAgentActive(me,!0),e.current.setAgentBubble(me,`Task: ${ne.slice(0,22)}`),t.current?.assignTaskToAgent(Je(),J,me,ne);if(se){const me=z.map(Ne=>P.find(Pe=>Pe.agent_id===Ne)?.name??Ne);NJ(Ft,se,me)}k(me=>me+1)},[an.tasks,Ft,P,Je]);const us=C.useMemo(()=>{const J=p?Object.keys(p.agents).length:0,z=p?.skills.total??0;return{totalAgents:J,totalSkills:z}},[p]),Ar=C.useMemo(()=>{const J=e.current.getCharacterCards();return(O?J:J.filter(ne=>!ne.isSubagent)).slice().sort((ne,se)=>ne.displayName.localeCompare(se.displayName))},[O,_]),$s=C.useMemo(()=>Kn(),[_]),Xu=C.useMemo(()=>{const J={};for(const z of Ar)z.officeId&&(J[z.id]=z.officeId);return J},[Ar]),[Io,tr]=C.useState(null),[To,Hs]=C.useState(""),Mr=J=>{To.trim()&&(e.current.renameOffice(J,To.trim()),k(z=>z+1)),tr(null)},ga=(J,z)=>{e.current.assignAgentToOffice(z,J),t.current?.moveAgent(z,J),k(ne=>ne+1)},ya=(J,z)=>{e.current.changeAgentSeat(J,z),k(ne=>ne+1)},Ci=Ar.find(J=>J.id===w)??null,xa=C.useMemo(()=>Ci?e.current.getSeatsForOffice(Ci.officeId):[],[Ci?.officeId,_]),Ro=C.useMemo(()=>{const J=x.slice(-40);return{trace:J.some(z=>z.type==="tool_start"||z.type==="tool_done"),reflect:J.some(z=>z.type==="reflect_start"||z.type==="reflect_done"),synthesize:J.some(z=>z.type==="skill_synthesized")}},[x]),Ku=C.useMemo(()=>["all",...Array.from(new Set(x.map(z=>z.type)))],[x]),Ai=C.useMemo(()=>(M==="all"?x:x.filter(z=>z.type===M)).slice().reverse(),[M,x]),ds=()=>{const J=o.trim();!J||J===i||r(J)},Fs=C.useCallback(J=>{S(J),k(z=>z+1)},[]),Ao=C.useCallback((J,z,ne,se)=>{const me=ce.sessions.find(Gi=>Gi.taskId===J),Ne=Ts(z),Pe=Qc(me?.companyProfile??Z),Oe=Ne==="org"?"custom":"corporate",it=String(me?.orgId??yt??"").trim(),Nt=Qo(Ne,se??me?.orgId??yt),xt=Ts(me?.execMode),en=Qc(Z);if(xt===Ne&&Pe===Oe&&it===String(Nt??"").trim()&&V===Ne&&en===Oe)return;ce.updateSession(J,{execMode:Ne,companyProfile:Oe,orgId:Nt,preferredAgent:me?.preferredAgent??K}),U(Ne),F(Oe),Ne==="org"&&Nt&&ke(Nt);const Ot=me?.preferredAgent??K,Pi=Ne==="task"?void 0:Oe;t.current?.sessionUpdateConfig(Je(),J,Ne,Pi,Ot,Nt),t.current?.setExecutionMode(Ne,Pi,Ot,Nt)},[ce,V,Z,K,yt,Je]),fp=C.useCallback((J,z)=>{const ne=ce.sessions.find(it=>it.taskId===J),se=Ms(z),me=Ts(ne?.execMode),Ne=me==="org"?"custom":"corporate";ce.updateSession(J,{preferredAgent:se,selectedExecutionAgent:se}),ee(se);const Pe=me==="task"?void 0:Ne,Oe=Qo(me,ne?.orgId??yt);t.current?.sessionUpdateConfig(Je(),J,me,Pe,se,Oe),t.current?.setExecutionMode(me,Pe,se,Oe)},[ce,Z,yt,Je]),Yl=C.useCallback((J,z,ne)=>{if(pn.current||wn.current)return;const se=Je();dt(se);const me=Ts(J),Ne=me==="org"?"custom":me==="company"?"corporate":void 0;t.current?.createSession(se,void 0,me,Ne,K,Qo(me,ne??yt)),W("workspace")},[Je,dt,K,yt]),Vs=C.useCallback((J,z)=>{const ne=ce.sessions.find(me=>me.taskId===J),se=ne?.resumeParentSessionId??ne?.parentSessionId??ne?.sessionId;for(const me of ce.sessions)(me.taskId===J||se&&(me.parentSessionId===se||me.sessionId===se))&&ce.updateSession(me.taskId,{...z,resumeParentSessionId:se})},[ce]),Mo=C.useCallback(J=>{const z=ce.sessions.find(se=>se.taskId===J);(z?.execMode==="company"||z?.execMode==="org"||z?.execMode==="custom"||z?.isCompanyRuntime||z?.parentSessionId||z?.companyProfile)&&Vs(J,{runtimeControlState:"suspending",canStop:!1,canResume:!1}),t.current?.sessionStop(Je(),J)},[ce.sessions,Vs,Je]),va=C.useCallback((J,z,ne)=>{const se=ce.sessions.find(Ne=>Ne.taskId===J);(se?.execMode==="company"||se?.execMode==="org"||se?.execMode==="custom"||se?.isCompanyRuntime||se?.parentSessionId||se?.companyProfile)&&Vs(J,{runtimeControlState:"resuming",canStop:!1,canResume:!1}),t.current?.sessionResume(Je(),J,z??se?.resumeParentSessionId??se?.parentSessionId??se?.sessionId,ne??se?.pendingRuntimeCheckpointId)},[ce.sessions,Vs,Je]);C.useCallback((J,z,ne)=>{const se=Ts(J),me=se==="org"?"custom":"corporate",Ne=Qo(se,ne??yt);U(se),F(me),Ne&&ke(Ne),t.current?.setExecutionMode(se,se==="task"?void 0:me,K,Ne)},[Z,K,yt]);const fs=V==="org",mp=V==="task"?"task":V==="org"?`company/${yt??"org"}`:`company/${Z}`;return u.jsxs("div",{className:`app-shell theme-${j}`,children:[_t&&u.jsx("div",{className:`org-toast org-toast--${_t.kind}`,role:"status","aria-live":"polite",children:_t.text}),u.jsxs("header",{className:"topbar",children:[u.jsxs("div",{className:"topbar-left",children:[u.jsxs("span",{className:"logo-text",children:["Open",u.jsx("span",{className:"logo-accent",children:"OPC"})]}),u.jsx("div",{className:`conn-dot ${JJ(c)}`,title:`${c}${m?` — ${m}`:""} -${i}`}),u.jsx(rU,{projects:Se.projects,activeId:Se.activeProjectId,onSelect:J=>{const z=St(J);t.current?.switchProject(J,z)},onCreate:J=>{t.current?.createProject(J)},onDelete:J=>t.current?.deleteProject(J)})]}),u.jsxs("div",{className:"topbar-center",children:[u.jsxs("div",{className:"page-nav",children:[u.jsxs("button",{className:`page-nav-btn${B==="workspace"?" active":""}`,onClick:()=>W("workspace"),children:["Workspace",(()=>{const J=Ft.channels.reduce((z,ne)=>z+Ft.getUnreadCount(ne.id),0);return J>0?u.jsx("span",{className:"nav-unread-badge",children:J>99?"99+":J}):null})()]}),u.jsx("button",{className:`page-nav-btn${B==="office"?" active":""}`,onClick:()=>W("office"),children:"Office"}),u.jsx("button",{className:`page-nav-btn${B==="org"?" active":""}`,onClick:()=>W("org"),children:"Org"})]}),u.jsxs("div",{className:"stat-chips",children:[u.jsxs("span",{className:"stat-chip",children:[u.jsx("b",{children:us.totalAgents})," agents"]}),u.jsxs("span",{className:"stat-chip",children:[u.jsx("b",{children:us.totalSkills})," skills"]}),u.jsxs("span",{className:"stat-chip",children:[u.jsx("b",{children:an.getOpenTaskCount()})," tasks"]})]})]}),u.jsxs("div",{className:"topbar-right",children:[u.jsxs("select",{className:"theme-select",value:Zt,title:"Outdoor lighting override",onChange:J=>{const z=J.target.value;Un(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:[u.jsx("option",{value:"auto",children:"Outdoor auto"}),u.jsx("option",{value:"day",children:"Outdoor day"}),u.jsx("option",{value:"night",children:"Outdoor night"})]}),u.jsxs("select",{className:"theme-select",value:j,onChange:J=>N(J.target.value),children:[u.jsx("option",{value:"midnight",children:"Midnight"}),u.jsx("option",{value:"neon",children:"Neon"}),u.jsx("option",{value:"paper",children:"Paper"}),u.jsx("option",{value:"retro",children:"Retro"}),u.jsx("option",{value:"terminal",children:"Terminal"}),u.jsx("option",{value:"cozy",children:"Cozy"}),u.jsx("option",{value:"openopc",children:"OpenOPC"})]}),u.jsx("button",{className:`icon-btn ${$?"active":""}`,onClick:()=>q(J=>!J),title:"Developer Tools",children:u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:[u.jsx("path",{d:"M5.5 2L2 5.5 5.5 9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M10.5 7L14 10.5 10.5 14",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})})]})]}),B==="workspace"&&u.jsx(jV,{boardStore:an,chatStore:Ft,sessionStore:ce,agents:P,officeMap:Xu,execMode:V,companyProfile:Z,taskPreferredAgent:K,projectId:Se.activeProjectId,orgInfoData:te,onNavigateToOrg:()=>W("org"),savedOrgsList:Ye,activeSavedOrg:yt,onSavedOrgsList:gn,onSavedOrgLoad:ha,commsState:ae,commsMessage:ie,onCommsRefresh:J=>{const{project_id:z,...ne}=J??{};t.current?.commsState(Je(),ne)},onCommsReadMessage:J=>t.current?.commsReadMessage(Je(),J),onRunTask:(J,z,ne,se,me)=>{t.current?.send({type:"run_task",project_id:Je(),task_id:J,title:z,description:ne,mode:se,profile:me})},onCreateTask:(J,z,ne,se)=>{t.current?.send({type:"kanban_create_task",project_id:Je(),title:J,board_id:z,column_id:ne,task_id:se})},onMoveTask:(J,z)=>{t.current?.send({type:"kanban_move_task",project_id:Je(),task_id:J,column_id:z})},onCreateSession:()=>{if(pn.current||wn.current)return;const J=Je();dt(J),t.current?.createSession(J,void 0,V,Dx(V),K,Qo(V,yt))},onSessionSend:(J,z,ne,se)=>t.current?.sessionSend(Je(),J,z,ne,se),onSecretarySend:J=>t.current?.secretarySend(Je(),J),onDeleteSession:J=>t.current?.deleteSession(Je(),J),onTitleChange:(J,z)=>t.current?.sessionUpdateTitle(Je(),J,z),onSessionConfigChange:Ao,onSessionTaskAgentChange:fp,onContinueInNewChat:Yl,onSessionStop:Mo,onSessionResume:va,onSessionComplete:J=>t.current?.sessionComplete(Je(),J),onLoadSessionDetail:(J,z)=>{const ne=t.current;if(ne)return ne.sessionDetail(Je(),J,{...z,include:z?.detailLevel==="full"?["messages","session_state","progress","work_items","runtime_context"]:["messages","session_state"],viewGeneration:tt.current}).then(se=>{if(se.ok===!1)throw new Error(String(se.error??"session_detail failed"))})},onOpenExecutionPanel:J=>Mt(J),onCollabSync:()=>t.current?.collabSync(Je(),void 0,tt.current)}),B==="org"&&u.jsx("div",{className:"org-page",children:u.jsx(EJ,{data:te,sessionRecruitmentByRole:Ge,talents:je,employeeDetail:Xe,reorgProposals:Ut,isCustomMode:fs,onRequestData:()=>t.current?.orgInfo(),onRequestTalents:()=>t.current?.talentList(),onRequestEmployeeDetail:J=>t.current?.employeeDetail(J),onHireTalent:(J,z)=>{wt(J),t.current?.talentHire(J,z,void 0,te?.organization_id||yt||void 0)},hiringTemplateId:Re,onImportEmployee:J=>t.current?.importEmployeeAsAgent(J),onRequestReorgList:()=>t.current?.reorgList(),onReorgDecide:(J,z,ne)=>t.current?.reorgDecide(J,z,ne),onMarketExport:J=>t.current?.marketExport(J),onMarketInstall:(J,z)=>t.current?.marketInstall(J,z),onMarketUninstall:J=>t.current?.marketUninstall(J),marketPresets:It,marketPreviewData:Be,onMarketBrowse:()=>t.current?.marketBrowse(),onMarketPreview:J=>t.current?.marketPreview(J),onMarketApplyPreset:(J,z)=>t.current?.marketApplyPreset(J,z),onMarketClearPreview:()=>at(null),onAddRole:(J,z,ne,se,me)=>t.current?.addRole(J,z,ne,se,me),onBulkAddRoles:J=>t.current?.bulkAddRoles(J),onUpdateRole:(J,z)=>t.current?.updateRole(J,z),onDeleteRole:J=>t.current?.deleteRole(J),onUpdateOrgStrategy:J=>t.current?.updateOrgStrategy(J),onUpdateRuntimePolicy:J=>t.current?.updateRuntimePolicy(J),onResetArchitecture:()=>t.current?.resetArchitecture(),onConfigExport:()=>t.current?.orgConfigExport(),onConfigImport:(J,z)=>t.current?.orgConfigImport(J,z),configExportYaml:Ue,configImportPreview:pe,configImportError:Ae,onSavedOrgsList:gn,onSavedOrgSaveAs:Vi,onSavedOrgCreate:Ui,onSavedOrgLoad:ha,onSavedOrgDelete:Wl,savedOrgsList:Ye,activeSavedOrg:yt,activeSavedOrgVersionAtLoad:We,orgCreatePending:Fe,orgCreateResult:Gt,onSelectCorporate:Bs})}),B==="mapEditor"&&u.jsx("div",{className:"editor-page",children:u.jsx(l4,{bridge:e.current})}),u.jsxs("main",{className:`main-grid${B!=="office"?" hidden":""}${D?" sidebar-collapsed":""}`,children:[u.jsxs("section",{className:"canvas-wrap",children:[u.jsx(s4,{bridge:e.current,active:B==="office"}),u.jsx("button",{className:"canvas-float-btn",onClick:()=>R(J=>!J),title:O?"Hide sub-agents":"Show sub-agents",children:O?"👥":"👤"}),u.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:u.jsx("span",{className:"collapse-glyph",children:D?"❮":"❯"})})]}),u.jsx("aside",{className:"sidebar",children:u.jsx("div",{className:"sidebar-body",children:u.jsxs("div",{className:"team-panel",children:[u.jsxs("div",{className:"mode-info-bar",children:[u.jsx("span",{className:"mode-badge",children:V==="company"?`${V}/${Z}`:mp}),fs?u.jsxs("span",{className:"mode-hint",children:["Manage your team in the ",u.jsx("b",{children:"Org"})," tab"]}):u.jsxs("span",{className:"mode-hint",children:["Switch to ",u.jsx("b",{children:"Org"})," mode to create or manage agents"]})]}),u.jsxs("div",{className:"section-label",children:["Offices ",u.jsx("span",{className:"count-badge",children:$s.length})]}),u.jsx("div",{className:"office-cards",children:$s.map(J=>{const z=sE(J.id).length,ne=Ar.filter(me=>me.officeId===J.id),se=Ar.filter(me=>me.officeId!==J.id&&!me.isSubagent);return u.jsxs("div",{className:"office-card",onClick:()=>e.current.panToOffice(J.id),children:[u.jsxs("div",{className:"office-card-header",children:[Io===J.id?u.jsx("input",{className:"office-name-input",value:To,onChange:me=>Hs(me.target.value),onBlur:()=>Mr(J.id),onKeyDown:me=>{me.key==="Enter"&&Mr(J.id),me.key==="Escape"&&tr(null)},autoFocus:!0,onClick:me=>me.stopPropagation()}):u.jsxs(u.Fragment,{children:[u.jsx("span",{className:"office-name",children:J.name}),u.jsx("button",{className:"office-edit-btn",title:"Rename",onClick:me=>{me.stopPropagation(),tr(J.id),Hs(J.name)},children:"✎"})]}),u.jsxs("span",{className:"office-capacity",children:[ne.length,"/",z]})]}),u.jsxs("div",{className:"office-agents",children:[ne.map(me=>u.jsx("span",{className:"office-agent-chip",title:`${me.displayName} — ${me.seatId??"no seat"}`,onClick:Ne=>{Ne.stopPropagation(),Fs(me.id)},children:me.displayName.slice(0,8)},me.id)),fs&&ne.length0&&u.jsxs("select",{className:"assign-dropdown",value:"",onClick:me=>me.stopPropagation(),onChange:me=>{me.target.value&&ga(J.id,me.target.value)},children:[u.jsx("option",{value:"",children:"+ Move here"}),se.map(me=>u.jsxs("option",{value:me.id,children:[me.displayName," (",$s.find(Ne=>Ne.id===Ar.find(Pe=>Pe.id===me.id)?.officeId)?.name??"?",")"]},me.id))]})]})]},J.id)})}),u.jsxs("div",{className:"section-label",children:["Active Agents ",u.jsx("span",{className:"count-badge",children:P.length})]}),u.jsxs("div",{className:"agent-list",children:[P.map(J=>u.jsxs("div",{className:`agent-row ${w===J.agent_id?"selected":""}`,children:[u.jsxs("button",{className:"agent-row-main",onClick:()=>Fs(J.agent_id),children:[u.jsx("span",{className:`dot ${J.status}`}),u.jsxs("div",{className:"agent-info",children:[u.jsx("span",{className:"agent-name",children:J.name}),u.jsx("span",{className:"agent-spec",children:J.specialties.slice(0,2).join(" · ")||"general"})]})]}),fs&&(ti===J.agent_id?u.jsx("span",{className:"agent-del",style:{pointerEvents:"none"},children:u.jsx("span",{className:"spinner-inline"})}):yi===J.agent_id?u.jsxs("span",{className:"del-confirm",children:[u.jsx("span",{className:"del-confirm-label",children:"Delete?"}),u.jsx("button",{className:"del-confirm-yes",onClick:()=>{ln(J.agent_id),Zn(null),t.current?.deleteAgent(J.agent_id)},children:"Yes"}),u.jsx("button",{className:"del-confirm-no",onClick:()=>Zn(null),children:"No"})]}):u.jsx("button",{className:"agent-del",title:`Remove ${J.name}`,onClick:()=>Zn(J.agent_id),children:"×"}))]},J.agent_id)),P.length===0&&u.jsx("div",{className:"empty-state",children:"No agents yet — click a template above to spawn one."})]}),Ci&&u.jsxs("div",{className:"agent-detail",children:[u.jsx("div",{className:"agent-detail-name",children:Ci.displayName}),u.jsxs("div",{className:"agent-detail-row",children:[u.jsx("span",{className:"detail-label",children:"State"}),u.jsx("span",{className:"detail-value",children:Ci.state})]}),u.jsxs("div",{className:"agent-detail-row",children:[u.jsx("span",{className:"detail-label",children:"Tool"}),u.jsx("span",{className:"detail-value",children:Ci.currentTool??"—"})]}),u.jsxs("div",{className:"agent-detail-row",children:[u.jsx("span",{className:"detail-label",children:"Task"}),u.jsx("span",{className:"detail-value",children:Ci.taskSummary??"—"})]}),u.jsxs("div",{className:"agent-detail-row",children:[u.jsx("span",{className:"detail-label",children:"Office"}),u.jsx("select",{className:"detail-select",value:Ci.officeId,onChange:J=>{ga(J.target.value,Ci.id)},disabled:!fs,children:$s.map(J=>u.jsx("option",{value:J.id,children:J.name},J.id))})]}),u.jsxs("div",{className:"agent-detail-row",children:[u.jsx("span",{className:"detail-label",children:"Seat"}),u.jsxs("select",{className:"detail-select",value:Ci.seatId??"",onChange:J=>{J.target.value&&ya(Ci.id,J.target.value)},disabled:!fs,children:[u.jsx("option",{value:"",children:"—"}),xa.map(J=>{const z=J.id.replace(/^office-\d+-/,"").replace("-"," ").replace(/\b\w/g,se=>se.toUpperCase()),ne=J.assigned&&J.assignedTo!==Ci.id;return u.jsxs("option",{value:J.id,disabled:ne,children:[z,ne?` (${J.assignedTo})`:J.assignedTo===Ci.id?" ✓":""]},J.id)})]})]})]}),Ar.length>P.length&&u.jsxs(u.Fragment,{children:[u.jsxs("div",{className:"section-label",children:["Characters",u.jsx("button",{className:"inline-btn",onClick:()=>R(J=>!J),children:O?"hide sub":"show sub"})]}),u.jsx("div",{className:"agent-list",children:Ar.filter(J=>!P.some(z=>z.agent_id===J.id)).map(J=>u.jsxs("button",{className:`agent-row-simple ${w===J.id?"selected":""}`,onClick:()=>Fs(J.id),children:[J.isSubagent&&u.jsx("span",{className:"sub-badge",children:"SUB"}),u.jsx("span",{className:"agent-name",children:J.displayName}),u.jsxs("span",{className:"agent-spec",children:[J.state,J.currentTool?` · ${J.currentTool}`:""]})]},J.id))})]})]})})})]}),$&&u.jsxs("div",{className:"dev-overlay",children:[u.jsxs("div",{className:"dev-header",children:[u.jsx("span",{className:"dev-title",children:"Developer Tools"}),u.jsx("button",{className:"icon-btn",onClick:()=>q(!1),children:"✕"})]}),u.jsxs("div",{className:"dev-group",children:[u.jsx("div",{className:"dev-label",children:"Connection"}),u.jsxs("div",{className:"input-row",children:[u.jsx("input",{value:o,onChange:J=>a(J.target.value),placeholder:"ws://..."}),u.jsx("button",{className:"send-btn",onClick:ds,children:"↩"})]})]}),u.jsxs("div",{className:"dev-group",children:[u.jsx("div",{className:"dev-label",children:"Evolution Pipeline"}),u.jsx("div",{className:"evo-pipeline",children:["Trace","Reflect","Synthesize","Practice","Lifecycle"].map((J,z)=>{const ne=J.toLowerCase(),se=ne in Ro?Ro[ne]:!1;return u.jsxs("div",{className:"evo-phase-group",children:[z>0&&u.jsx("div",{className:"evo-connector"}),u.jsxs("div",{className:`evo-node ${se?"active":""}`,children:[u.jsx("div",{className:"evo-dot"}),u.jsx("span",{className:"evo-label",children:J})]})]},J)})}),u.jsx("div",{className:"list",children:(p?.skills.recent??[]).slice(-6).reverse().map((J,z)=>u.jsxs("div",{className:"list-row",children:[u.jsx("span",{children:J.skill_name}),u.jsx("span",{className:"muted mono",children:J.version})]},`${J.skill_name}-${J.timestamp}-${z}`))})]}),u.jsxs("div",{className:"dev-group",children:[u.jsxs("div",{className:"dev-label",children:["Events",u.jsx("select",{className:"inline-select",value:M,onChange:J=>A(J.target.value),children:Ku.map(J=>u.jsx("option",{value:J,children:J},J))})]}),u.jsx("div",{className:"event-log",children:Ai.slice(0,30).map(J=>u.jsxs("div",{className:"log-row",children:[u.jsx("span",{className:"log-time",children:new Date(J.timestamp*1e3).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}),u.jsx("span",{className:"log-type",children:J.type}),u.jsx("span",{className:"log-agent",children:J.agent_id}),u.jsx("span",{className:"log-data",children:eee(J.data)})]},J.event_id))})]}),Object.keys(p?.channels??{}).length>0&&u.jsxs("div",{className:"dev-group",children:[u.jsx("div",{className:"dev-label",children:"Channels"}),Object.entries(p?.channels??{}).map(([J,z])=>u.jsxs("div",{className:"list-row",children:[u.jsx("span",{children:J}),u.jsx("span",{className:"muted",children:String(z.last_type??"idle")})]},J))]})]}),bn&&u.jsx("div",{className:In==="error"?"toast-error":"toast-success",children:bn}),u.jsx(aee,{taskId:Kt,sessions:ce.sessions,agents:P,onClose:()=>Mt(null)})]})}class cee extends Rt.Component{constructor(){super(...arguments),this.state={error:null,info:""}}static getDerivedStateFromError(t){return{error:t}}componentDidCatch(t,n){console.error("[ErrorBoundary] React crashed:",t,n),this.setState({info:n.componentStack??""})}render(){return this.state.error?u.jsxs("div",{style:{padding:32,color:"#ff6b6b",background:"#1a1a2e",minHeight:"100vh",fontFamily:"monospace"},children:[u.jsx("h2",{children:"UI Error — React crashed"}),u.jsx("pre",{style:{whiteSpace:"pre-wrap",fontSize:13},children:this.state.error.message}),u.jsxs("details",{open:!0,style:{marginTop:12,fontSize:12,color:"#ccc"},children:[u.jsx("summary",{children:"Stack trace"}),u.jsx("pre",{style:{whiteSpace:"pre-wrap"},children:this.state.error.stack})]}),this.state.info&&u.jsxs("details",{style:{marginTop:12,fontSize:12,color:"#888"},children:[u.jsx("summary",{children:"Component stack"}),u.jsx("pre",{style:{whiteSpace:"pre-wrap"},children:this.state.info})]}),u.jsx("button",{onClick:()=>{this.setState({error:null,info:""})},style:{marginTop:16,padding:"8px 16px",background:"#6366f1",color:"#fff",border:"none",borderRadius:6,cursor:"pointer"},children:"Try to recover"})]}):this.props.children}}window.addEventListener("error",e=>{console.error("[Global] Uncaught error:",e.error??e.message)});window.addEventListener("unhandledrejection",e=>{console.error("[Global] Unhandled promise rejection:",e.reason)});const Lv=document.getElementById("root");if(!Lv)throw document.body.innerHTML='

Root element not found

',new Error("Root element #root not found");try{i3.createRoot(Lv).render(u.jsx(cee,{children:u.jsx(lee,{})}))}catch(e){console.error("React render error:",e),Lv.innerHTML=`

React Error: ${e}

`} diff --git a/opc/plugins/office_ui/frontend_dist/assets/index-Dw3OK9za.js b/opc/plugins/office_ui/frontend_dist/assets/index-Dw3OK9za.js new file mode 100644 index 0000000..2f6ac6d --- /dev/null +++ b/opc/plugins/office_ui/frontend_dist/assets/index-Dw3OK9za.js @@ -0,0 +1,191 @@ +import{g as pa,r as JM}from"./phaser-DFK5Ua9d.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const o of r)if(o.type==="childList")for(const a of o.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&i(a)}).observe(document,{childList:!0,subtree:!0});function n(r){const o={};return r.integrity&&(o.integrity=r.integrity),r.referrerPolicy&&(o.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?o.credentials="include":r.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function i(r){if(r.ep)return;r.ep=!0;const o=n(r);fetch(r.href,o)}})();var fg={exports:{}},Oc={};var Rk;function e3(){if(Rk)return Oc;Rk=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function n(i,r,o){var a=null;if(o!==void 0&&(a=""+o),r.key!==void 0&&(a=""+r.key),"key"in r){o={};for(var c in r)c!=="key"&&(o[c]=r[c])}else o=r;return r=o.ref,{$$typeof:e,type:i,key:a,ref:r!==void 0?r:null,props:o}}return Oc.Fragment=t,Oc.jsx=n,Oc.jsxs=n,Oc}var Ak;function t3(){return Ak||(Ak=1,fg.exports=e3()),fg.exports}var u=t3(),mg={exports:{}},Ct={};var Mk;function n3(){if(Mk)return Ct;Mk=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),r=Symbol.for("react.profiler"),o=Symbol.for("react.consumer"),a=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),m=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),p=Symbol.for("react.activity"),g=Symbol.iterator;function x(V){return V===null||typeof V!="object"?null:(V=g&&V[g]||V["@@iterator"],typeof V=="function"?V:null)}var v={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},b=Object.assign,w={};function k(V,Q,B){this.props=V,this.context=Q,this.refs=w,this.updater=B||v}k.prototype.isReactComponent={},k.prototype.setState=function(V,Q){if(typeof V!="object"&&typeof V!="function"&&V!=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,V,Q,"setState")},k.prototype.forceUpdate=function(V){this.updater.enqueueForceUpdate(this,V,"forceUpdate")};function S(){}S.prototype=k.prototype;function j(V,Q,B){this.props=V,this.context=Q,this.refs=w,this.updater=B||v}var N=j.prototype=new S;N.constructor=j,b(N,k.prototype),N.isPureReactComponent=!0;var L=Array.isArray;function A(){}var D={H:null,A:null,T:null,S:null},O=Object.prototype.hasOwnProperty;function T(V,Q,B){var Z=B.ref;return{$$typeof:e,type:V,key:Q,ref:Z!==void 0?Z:null,props:B}}function M(V,Q){return T(V.type,Q,V.props)}function I(V){return typeof V=="object"&&V!==null&&V.$$typeof===e}function H(V){var Q={"=":"=0",":":"=2"};return"$"+V.replace(/[=:]/g,function(B){return Q[B]})}var Y=/\/+/g;function P(V,Q){return typeof V=="object"&&V!==null&&V.key!=null?H(""+V.key):Q.toString(36)}function U(V){switch(V.status){case"fulfilled":return V.value;case"rejected":throw V.reason;default:switch(typeof V.status=="string"?V.then(A,A):(V.status="pending",V.then(function(Q){V.status==="pending"&&(V.status="fulfilled",V.value=Q)},function(Q){V.status==="pending"&&(V.status="rejected",V.reason=Q)})),V.status){case"fulfilled":return V.value;case"rejected":throw V.reason}}throw V}function $(V,Q,B,Z,te){var ee=typeof V;(ee==="undefined"||ee==="boolean")&&(V=null);var se=!1;if(V===null)se=!0;else switch(ee){case"bigint":case"string":case"number":se=!0;break;case"object":switch(V.$$typeof){case e:case t:se=!0;break;case h:return se=V._init,$(se(V._payload),Q,B,Z,te)}}if(se)return te=te(V),se=Z===""?"."+P(V,0):Z,L(te)?(B="",se!=null&&(B=se.replace(Y,"$&/")+"/"),$(te,Q,B,"",function(ie){return ie})):te!=null&&(I(te)&&(te=M(te,B+(te.key==null||V&&V.key===te.key?"":(""+te.key).replace(Y,"$&/")+"/")+se)),Q.push(te)),1;se=0;var ae=Z===""?".":Z+":";if(L(V))for(var ue=0;ue>>1,W=$[K];if(0>>1;Kr(B,q))Zr(te,B)?($[K]=te,$[Z]=q,K=Z):($[K]=B,$[Q]=q,K=Q);else if(Zr(te,q))$[K]=te,$[Z]=q,K=Z;else break e}}return G}function r($,G){var q=$.sortIndex-G.sortIndex;return q!==0?q:$.id-G.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var a=Date,c=a.now();e.unstable_now=function(){return a.now()-c}}var d=[],m=[],h=1,p=null,g=3,x=!1,v=!1,b=!1,w=!1,k=typeof setTimeout=="function"?setTimeout:null,S=typeof clearTimeout=="function"?clearTimeout:null,j=typeof setImmediate<"u"?setImmediate:null;function N($){for(var G=n(m);G!==null;){if(G.callback===null)i(m);else if(G.startTime<=$)i(m),G.sortIndex=G.expirationTime,t(d,G);else break;G=n(m)}}function L($){if(b=!1,N($),!v)if(n(d)!==null)v=!0,A||(A=!0,H());else{var G=n(m);G!==null&&U(L,G.startTime-$)}}var A=!1,D=-1,O=5,T=-1;function M(){return w?!0:!(e.unstable_now()-T$&&M());){var K=p.callback;if(typeof K=="function"){p.callback=null,g=p.priorityLevel;var W=K(p.expirationTime<=$);if($=e.unstable_now(),typeof W=="function"){p.callback=W,N($),G=!0;break t}p===n(d)&&i(d),N($)}else i(d);p=n(d)}if(p!==null)G=!0;else{var V=n(m);V!==null&&U(L,V.startTime-$),G=!1}}break e}finally{p=null,g=q,x=!1}G=void 0}}finally{G?H():A=!1}}}var H;if(typeof j=="function")H=function(){j(I)};else if(typeof MessageChannel<"u"){var Y=new MessageChannel,P=Y.port2;Y.port1.onmessage=I,H=function(){P.postMessage(null)}}else H=function(){k(I,0)};function U($,G){D=k(function(){$(e.unstable_now())},G)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function($){$.callback=null},e.unstable_forceFrameRate=function($){0>$||125<$?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):O=0<$?Math.floor(1e3/$):5},e.unstable_getCurrentPriorityLevel=function(){return g},e.unstable_next=function($){switch(g){case 1:case 2:case 3:var G=3;break;default:G=g}var q=g;g=G;try{return $()}finally{g=q}},e.unstable_requestPaint=function(){w=!0},e.unstable_runWithPriority=function($,G){switch($){case 1:case 2:case 3:case 4:case 5:break;default:$=3}var q=g;g=$;try{return G()}finally{g=q}},e.unstable_scheduleCallback=function($,G,q){var K=e.unstable_now();switch(typeof q=="object"&&q!==null?(q=q.delay,q=typeof q=="number"&&0K?($.sortIndex=q,t(m,$),n(d)===null&&$===n(m)&&(b?(S(D),D=-1):b=!0,U(L,q-K))):($.sortIndex=W,t(d,$),v||x||(v=!0,A||(A=!0,H()))),$},e.unstable_shouldYield=M,e.unstable_wrapCallback=function($){var G=g;return function(){var q=g;g=G;try{return $.apply(this,arguments)}finally{g=q}}}})(gg)),gg}var Lk;function r3(){return Lk||(Lk=1,hg.exports=i3()),hg.exports}var yg={exports:{}},Ai={};var zk;function s3(){if(zk)return Ai;zk=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(),yg.exports=s3(),yg.exports}var Bk;function o3(){if(Bk)return Lc;Bk=1;var e=r3(),t=Bl(),n=nE();function i(s){var l="https://react.dev/errors/"+s;if(1W||(s.current=K[W],K[W]=null,W--)}function B(s,l){W++,K[W]=s.current,s.current=l}var Z=V(null),te=V(null),ee=V(null),se=V(null);function ae(s,l){switch(B(ee,l),B(te,s),B(Z,null),l.nodeType){case 9:case 11:s=(s=l.documentElement)&&(s=s.namespaceURI)?ek(s):0;break;default:if(s=l.tagName,l=l.namespaceURI)l=ek(l),s=tk(l,s);else switch(s){case"svg":s=1;break;case"math":s=2;break;default:s=0}}Q(Z),B(Z,s)}function ue(){Q(Z),Q(te),Q(ee)}function ie(s){s.memoizedState!==null&&B(se,s);var l=Z.current,f=tk(l,s.type);l!==f&&(B(te,s),B(Z,f))}function je(s){te.current===s&&(Q(Z),Q(te)),se.current===s&&(Q(se),Rc._currentValue=q)}var we,Re;function Ve(s){if(we===void 0)try{throw Error()}catch(f){var l=f.stack.trim().match(/\n( *(at )?)/);we=l&&l[1]||"",Re=-1)":-1_||re[y]!==ye[_]){var Ce=` +`+re[y].replace(" at new "," at ");return s.displayName&&Ce.includes("")&&(Ce=Ce.replace("",s.displayName)),Ce}while(1<=y&&0<=_);break}}}finally{Ge=!1,Error.prepareStackTrace=f}return(f=s?s.displayName||s.name:"")?Ve(f):""}function _t(s,l){switch(s.tag){case 26:case 27:case 5:return Ve(s.type);case 16:return Ve("Lazy");case 13:return s.child!==l&&l!==null?Ve("Suspense Fallback"):Ve("Suspense");case 19:return Ve("SuspenseList");case 0:case 15:return qe(s.type,!1);case 11:return qe(s.type.render,!1);case 1:return qe(s.type,!0);case 31:return Ve("Activity");default:return""}}function $t(s){try{var l="",f=null;do l+=_t(s,f),f=s,s=s.return;while(s);return l}catch(y){return` +Error generating stack: `+y.message+` +`+y.stack}}var Ht=Object.prototype.hasOwnProperty,Gt=e.unstable_scheduleCallback,he=e.unstable_cancelCallback,$e=e.unstable_shouldYield,ut=e.unstable_requestPaint,nt=e.unstable_now,Ke=e.unstable_getCurrentPriorityLevel,pe=e.unstable_ImmediatePriority,Se=e.unstable_UserBlockingPriority,De=e.unstable_NormalPriority,Pe=e.unstable_LowPriority,Je=e.unstable_IdlePriority,dt=e.log,nn=e.unstable_setDisableYieldValue,be=null,We=null;function et(s){if(typeof dt=="function"&&nn(s),We&&typeof We.setStrictMode=="function")try{We.setStrictMode(be,s)}catch{}}var Ue=Math.clz32?Math.clz32:An,Ae=Math.log,jt=Math.LN2;function An(s){return s>>>=0,s===0?32:31-(Ae(s)/jt|0)|0}var qn=256,ft=262144,bn=4194304;function Nn(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 Rt(s,l,f){var y=s.pendingLanes;if(y===0)return 0;var _=0,E=s.suspendedLanes,F=s.pingedLanes;s=s.warmLanes;var X=y&134217727;return X!==0?(y=X&~E,y!==0?_=Nn(y):(F&=X,F!==0?_=Nn(F):f||(f=X&~s,f!==0&&(_=Nn(f))))):(X=y&~E,X!==0?_=Nn(X):F!==0?_=Nn(F):f||(f=y&~s,f!==0&&(_=Nn(f)))),_===0?0:l!==0&&l!==_&&(l&E)===0&&(E=_&-_,f=l&-l,E>=f||E===32&&(f&4194048)!==0)?l:_}function bt(s,l){return(s.pendingLanes&~(s.suspendedLanes&~s.pingedLanes)&l)===0}function Vn(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 St(){var s=bn;return bn<<=1,(bn&62914560)===0&&(bn=4194304),s}function Ye(s){for(var l=[],f=0;31>f;f++)l.push(s);return l}function Ft(s,l){s.pendingLanes|=l,l!==268435456&&(s.suspendedLanes=0,s.pingedLanes=0,s.warmLanes=0)}function zi(s,l,f,y,_,E){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,re=s.expirationTimes,ye=s.hiddenUpdates;for(f=F&~f;0"u")return null;try{return s.activeElement||s.body}catch{return s.body}}var mt=/[\n"\\]/g;function Ot(s){return s.replace(mt,function(l){return"\\"+l.charCodeAt(0).toString(16)+" "})}function ce(s,l,f,y,_,E,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=""+Dt(l)):s.value!==""+Dt(l)&&(s.value=""+Dt(l)):F!=="submit"&&F!=="reset"||s.removeAttribute("value"),l!=null?Me(s,F,Dt(l)):f!=null?Me(s,F,Dt(f)):y!=null&&s.removeAttribute("value"),_==null&&E!=null&&(s.defaultChecked=!!E),_!=null&&(s.checked=_&&typeof _!="function"&&typeof _!="symbol"),X!=null&&typeof X!="function"&&typeof X!="symbol"&&typeof X!="boolean"?s.name=""+Dt(X):s.removeAttribute("name")}function ke(s,l,f,y,_,E,F,X){if(E!=null&&typeof E!="function"&&typeof E!="symbol"&&typeof E!="boolean"&&(s.type=E),l!=null||f!=null){if(!(E!=="submit"&&E!=="reset"||l!=null)){de(s);return}f=f!=null?""+Dt(f):"",l=l!=null?""+Dt(l):f,X||l===s.value||(s.value=l),s.defaultValue=l}y=y??_,y=typeof y!="function"&&typeof y!="symbol"&&!!y,s.checked=X?s.checked:!!y,s.defaultChecked=!!y,F!=null&&typeof F!="function"&&typeof F!="symbol"&&typeof F!="boolean"&&(s.name=F),de(s)}function Me(s,l,f){l==="number"&&Fe(s.ownerDocument)===s||s.defaultValue===""+f||(s.defaultValue=""+f)}function Le(s,l,f,y){if(s=s.options,l){l={};for(var _=0;_"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),$s=!1;if(xi)try{var Eo={};Object.defineProperty(Eo,"passive",{get:function(){$s=!0}}),window.addEventListener("test",Eo,Eo),window.removeEventListener("test",Eo,Eo)}catch{$s=!1}var Gr=null,No=null,Hs=null;function Xl(){if(Hs)return Hs;var s,l=No,f=l.length,y,_="value"in Gr?Gr.value:Gr.textContent,E=_.length;for(s=0;s=Ql),ab=" ",lb=!1;function cb(s,l){switch(s){case"keyup":return _A.indexOf(l.keyCode)!==-1;case"keydown":return l.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function ub(s){return s=s.detail,typeof s=="object"&&"data"in s?s.data:null}var va=!1;function SA(s,l){switch(s){case"compositionend":return ub(l);case"keypress":return l.which!==32?null:(lb=!0,ab);case"textInput":return s=l.data,s===ab&&lb?null:s;default:return null}}function wA(s,l){if(va)return s==="compositionend"||!xp&&cb(s,l)?(s=Xl(),Hs=No=Gr=null,va=!1,s):null;switch(s){case"paste":return null;case"keypress":if(!(l.ctrlKey||l.altKey||l.metaKey)||l.ctrlKey&&l.altKey){if(l.char&&1=l)return{node:f,offset:l-s};s=y}e:{for(;f;){if(f.nextSibling){f=f.nextSibling;break e}f=f.parentNode}f=void 0}f=xb(f)}}function bb(s,l){return s&&l?s===l?!0:s&&s.nodeType===3?!1:l&&l.nodeType===3?bb(s,l.parentNode):"contains"in s?s.contains(l):s.compareDocumentPosition?!!(s.compareDocumentPosition(l)&16):!1:!1}function _b(s){s=s!=null&&s.ownerDocument!=null&&s.ownerDocument.defaultView!=null?s.ownerDocument.defaultView:window;for(var l=Fe(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=Fe(s.document)}return l}function _p(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 AA=xi&&"documentMode"in document&&11>=document.documentMode,ba=null,kp=null,nc=null,Sp=!1;function kb(s,l,f){var y=f.window===f?f.document:f.nodeType===9?f:f.ownerDocument;Sp||ba==null||ba!==Fe(y)||(y=ba,"selectionStart"in y&&_p(y)?y={start:y.selectionStart,end:y.selectionEnd}:(y=(y.ownerDocument&&y.ownerDocument.defaultView||window).getSelection(),y={anchorNode:y.anchorNode,anchorOffset:y.anchorOffset,focusNode:y.focusNode,focusOffset:y.focusOffset}),nc&&tc(nc,y)||(nc=y,y=Fd(kp,"onSelect"),0>=F,_-=F,Wr=1<<32-Ue(l)+_|f<<_|y,Yr=E+s}else Wr=1<Pt?(Qt=tt,tt=null):Qt=tt.sibling;var un=xe(me,tt,ge[Pt],Ee);if(un===null){tt===null&&(tt=Qt);break}s&&tt&&un.alternate===null&&l(me,tt),le=E(un,le,Pt),cn===null?ct=un:cn.sibling=un,cn=un,tt=Qt}if(Pt===ge.length)return f(me,tt),tn&&ms(me,Pt),ct;if(tt===null){for(;PtPt?(Qt=tt,tt=null):Qt=tt.sibling;var fo=xe(me,tt,un.value,Ee);if(fo===null){tt===null&&(tt=Qt);break}s&&tt&&fo.alternate===null&&l(me,tt),le=E(fo,le,Pt),cn===null?ct=fo:cn.sibling=fo,cn=fo,tt=Qt}if(un.done)return f(me,tt),tn&&ms(me,Pt),ct;if(tt===null){for(;!un.done;Pt++,un=ge.next())un=Ie(me,un.value,Ee),un!==null&&(le=E(un,le,Pt),cn===null?ct=un:cn.sibling=un,cn=un);return tn&&ms(me,Pt),ct}for(tt=y(tt);!un.done;Pt++,un=ge.next())un=ve(tt,me,Pt,un.value,Ee),un!==null&&(s&&un.alternate!==null&&tt.delete(un.key===null?Pt:un.key),le=E(un,le,Pt),cn===null?ct=un:cn.sibling=un,cn=un);return s&&tt.forEach(function(QM){return l(me,QM)}),tn&&ms(me,Pt),ct}function wn(me,le,ge,Ee){if(typeof ge=="object"&&ge!==null&&ge.type===b&&ge.key===null&&(ge=ge.props.children),typeof ge=="object"&&ge!==null){switch(ge.$$typeof){case x:e:{for(var ct=ge.key;le!==null;){if(le.key===ct){if(ct=ge.type,ct===b){if(le.tag===7){f(me,le.sibling),Ee=_(le,ge.props.children),Ee.return=me,me=Ee;break e}}else if(le.elementType===ct||typeof ct=="object"&&ct!==null&&ct.$$typeof===O&&Vo(ct)===le.type){f(me,le.sibling),Ee=_(le,ge.props),lc(Ee,ge),Ee.return=me,me=Ee;break e}f(me,le);break}else l(me,le);le=le.sibling}ge.type===b?(Ee=Po(ge.props.children,me.mode,Ee,ge.key),Ee.return=me,me=Ee):(Ee=sd(ge.type,ge.key,ge.props,null,me.mode,Ee),lc(Ee,ge),Ee.return=me,me=Ee)}return F(me);case v:e:{for(ct=ge.key;le!==null;){if(le.key===ct)if(le.tag===4&&le.stateNode.containerInfo===ge.containerInfo&&le.stateNode.implementation===ge.implementation){f(me,le.sibling),Ee=_(le,ge.children||[]),Ee.return=me,me=Ee;break e}else{f(me,le);break}else l(me,le);le=le.sibling}Ee=Tp(ge,me.mode,Ee),Ee.return=me,me=Ee}return F(me);case O:return ge=Vo(ge),wn(me,le,ge,Ee)}if(U(ge))return Ze(me,le,ge,Ee);if(H(ge)){if(ct=H(ge),typeof ct!="function")throw Error(i(150));return ge=ct.call(ge),ht(me,le,ge,Ee)}if(typeof ge.then=="function")return wn(me,le,fd(ge),Ee);if(ge.$$typeof===j)return wn(me,le,ld(me,ge),Ee);md(me,ge)}return typeof ge=="string"&&ge!==""||typeof ge=="number"||typeof ge=="bigint"?(ge=""+ge,le!==null&&le.tag===6?(f(me,le.sibling),Ee=_(le,ge),Ee.return=me,me=Ee):(f(me,le),Ee=Ip(ge,me.mode,Ee),Ee.return=me,me=Ee),F(me)):f(me,le)}return function(me,le,ge,Ee){try{ac=0;var ct=wn(me,le,ge,Ee);return Ra=null,ct}catch(tt){if(tt===Ta||tt===ud)throw tt;var cn=nr(29,tt,null,me.mode);return cn.lanes=Ee,cn.return=me,cn}}}var Go=Gb(!0),qb=Gb(!1),Ys=!1;function Fp(s){s.updateQueue={baseState:s.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Vp(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 Xs(s){return{lane:s,tag:0,payload:null,callback:null,next:null}}function Ks(s,l,f){var y=s.updateQueue;if(y===null)return null;if(y=y.shared,(mn&2)!==0){var _=y.pending;return _===null?l.next=l:(l.next=_.next,_.next=l),y.pending=l,l=rd(s),Ib(s,null,f),l}return id(s,y,l,f),rd(s)}function cc(s,l,f){if(l=l.updateQueue,l!==null&&(l=l.shared,(f&4194048)!==0)){var y=l.lanes;y&=s.pendingLanes,f|=y,l.lanes=f,Jt(s,f)}}function Up(s,l){var f=s.updateQueue,y=s.alternate;if(y!==null&&(y=y.updateQueue,f===y)){var _=null,E=null;if(f=f.firstBaseUpdate,f!==null){do{var F={lane:f.lane,tag:f.tag,payload:f.payload,callback:null,next:null};E===null?_=E=F:E=E.next=F,f=f.next}while(f!==null);E===null?_=E=l:E=E.next=l}else _=E=l;f={baseState:y.baseState,firstBaseUpdate:_,lastBaseUpdate:E,shared:y.shared,callbacks:y.callbacks},s.updateQueue=f;return}s=f.lastBaseUpdate,s===null?f.firstBaseUpdate=l:s.next=l,f.lastBaseUpdate=l}var Gp=!1;function uc(){if(Gp){var s=Ia;if(s!==null)throw s}}function dc(s,l,f,y){Gp=!1;var _=s.updateQueue;Ys=!1;var E=_.firstBaseUpdate,F=_.lastBaseUpdate,X=_.shared.pending;if(X!==null){_.shared.pending=null;var re=X,ye=re.next;re.next=null,F===null?E=ye:F.next=ye,F=re;var Ce=s.alternate;Ce!==null&&(Ce=Ce.updateQueue,X=Ce.lastBaseUpdate,X!==F&&(X===null?Ce.firstBaseUpdate=ye:X.next=ye,Ce.lastBaseUpdate=re))}if(E!==null){var Ie=_.baseState;F=0,Ce=ye=re=null,X=E;do{var xe=X.lane&-536870913,ve=xe!==X.lane;if(ve?(Zt&xe)===xe:(y&xe)===xe){xe!==0&&xe===Na&&(Gp=!0),Ce!==null&&(Ce=Ce.next={lane:0,tag:X.tag,payload:X.payload,callback:null,next:null});e:{var Ze=s,ht=X;xe=l;var wn=f;switch(ht.tag){case 1:if(Ze=ht.payload,typeof Ze=="function"){Ie=Ze.call(wn,Ie,xe);break e}Ie=Ze;break e;case 3:Ze.flags=Ze.flags&-65537|128;case 0:if(Ze=ht.payload,xe=typeof Ze=="function"?Ze.call(wn,Ie,xe):Ze,xe==null)break e;Ie=p({},Ie,xe);break e;case 2:Ys=!0}}xe=X.callback,xe!==null&&(s.flags|=64,ve&&(s.flags|=8192),ve=_.callbacks,ve===null?_.callbacks=[xe]:ve.push(xe))}else ve={lane:xe,tag:X.tag,payload:X.payload,callback:X.callback,next:null},Ce===null?(ye=Ce=ve,re=Ie):Ce=Ce.next=ve,F|=xe;if(X=X.next,X===null){if(X=_.shared.pending,X===null)break;ve=X,X=ve.next,ve.next=null,_.lastBaseUpdate=ve,_.shared.pending=null}}while(!0);Ce===null&&(re=Ie),_.baseState=re,_.firstBaseUpdate=ye,_.lastBaseUpdate=Ce,E===null&&(_.shared.lanes=0),to|=F,s.lanes=F,s.memoizedState=Ie}}function Wb(s,l){if(typeof s!="function")throw Error(i(191,s));s.call(l)}function Yb(s,l){var f=s.callbacks;if(f!==null)for(s.callbacks=null,s=0;sE?E:8;var F=$.T,X={};$.T=X,uh(s,!1,l,f);try{var re=_(),ye=$.S;if(ye!==null&&ye(X,re),re!==null&&typeof re=="object"&&typeof re.then=="function"){var Ce=HA(re,y);pc(s,l,Ce,ar(s))}else pc(s,l,y,ar(s))}catch(Ie){pc(s,l,{then:function(){},status:"rejected",reason:Ie},ar())}finally{G.p=E,F!==null&&X.types!==null&&(F.types=X.types),$.T=F}}function WA(){}function lh(s,l,f,y){if(s.tag!==5)throw Error(i(476));var _=j1(s).queue;C1(s,_,l,q,f===null?WA:function(){return E1(s),f(y)})}function j1(s){var l=s.memoizedState;if(l!==null)return l;l={memoizedState:q,baseState:q,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ys,lastRenderedState:q},next:null};var f={};return l.next={memoizedState:f,baseState:f,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ys,lastRenderedState:f},next:null},s.memoizedState=l,s=s.alternate,s!==null&&(s.memoizedState=l),l}function E1(s){var l=j1(s);l.next===null&&(l=s.alternate.memoizedState),pc(s,l.next.queue,{},ar())}function ch(){return ji(Rc)}function N1(){return ti().memoizedState}function I1(){return ti().memoizedState}function YA(s){for(var l=s.return;l!==null;){switch(l.tag){case 24:case 3:var f=ar();s=Xs(f);var y=Ks(l,s,f);y!==null&&(Xi(y,l,f),cc(y,l,f)),l={cache:Pp()},s.payload=l;return}l=l.return}}function XA(s,l,f){var y=ar();f={lane:y,revertLane:0,gesture:null,action:f,hasEagerState:!1,eagerState:null,next:null},Sd(s)?R1(l,f):(f=Ep(s,l,f,y),f!==null&&(Xi(f,s,y),A1(f,l,y)))}function T1(s,l,f){var y=ar();pc(s,l,f,y)}function pc(s,l,f,y){var _={lane:y,revertLane:0,gesture:null,action:f,hasEagerState:!1,eagerState:null,next:null};if(Sd(s))R1(l,_);else{var E=s.alternate;if(s.lanes===0&&(E===null||E.lanes===0)&&(E=l.lastRenderedReducer,E!==null))try{var F=l.lastRenderedState,X=E(F,f);if(_.hasEagerState=!0,_.eagerState=X,tr(X,F))return id(s,l,_,0),jn===null&&nd(),!1}catch{}if(f=Ep(s,l,_,y),f!==null)return Xi(f,s,y),A1(f,l,y),!0}return!1}function uh(s,l,f,y){if(y={lane:2,revertLane:Fh(),gesture:null,action:y,hasEagerState:!1,eagerState:null,next:null},Sd(s)){if(l)throw Error(i(479))}else l=Ep(s,f,y,2),l!==null&&Xi(l,s,2)}function Sd(s){var l=s.alternate;return s===It||l!==null&&l===It}function R1(s,l){Ma=gd=!0;var f=s.pending;f===null?l.next=l:(l.next=f.next,f.next=l),s.pending=l}function A1(s,l,f){if((f&4194048)!==0){var y=l.lanes;y&=s.pendingLanes,f|=y,l.lanes=f,Jt(s,f)}}var hc={readContext:ji,use:vd,useCallback:Kn,useContext:Kn,useEffect:Kn,useImperativeHandle:Kn,useLayoutEffect:Kn,useInsertionEffect:Kn,useMemo:Kn,useReducer:Kn,useRef:Kn,useState:Kn,useDebugValue:Kn,useDeferredValue:Kn,useTransition:Kn,useSyncExternalStore:Kn,useId:Kn,useHostTransitionStatus:Kn,useFormState:Kn,useActionState:Kn,useOptimistic:Kn,useMemoCache:Kn,useCacheRefresh:Kn};hc.useEffectEvent=Kn;var M1={readContext:ji,use:vd,useCallback:function(s,l){return Pi().memoizedState=[s,l===void 0?null:l],s},useContext:ji,useEffect:g1,useImperativeHandle:function(s,l,f){f=f!=null?f.concat([s]):null,_d(4194308,4,b1.bind(null,l,s),f)},useLayoutEffect:function(s,l){return _d(4194308,4,s,l)},useInsertionEffect:function(s,l){_d(4,2,s,l)},useMemo:function(s,l){var f=Pi();l=l===void 0?null:l;var y=s();if(qo){et(!0);try{s()}finally{et(!1)}}return f.memoizedState=[y,l],y},useReducer:function(s,l,f){var y=Pi();if(f!==void 0){var _=f(l);if(qo){et(!0);try{f(l)}finally{et(!1)}}}else _=l;return y.memoizedState=y.baseState=_,s={pending:null,lanes:0,dispatch:null,lastRenderedReducer:s,lastRenderedState:_},y.queue=s,s=s.dispatch=XA.bind(null,It,s),[y.memoizedState,s]},useRef:function(s){var l=Pi();return s={current:s},l.memoizedState=s},useState:function(s){s=ih(s);var l=s.queue,f=T1.bind(null,It,l);return l.dispatch=f,[s.memoizedState,f]},useDebugValue:oh,useDeferredValue:function(s,l){var f=Pi();return ah(f,s,l)},useTransition:function(){var s=ih(!1);return s=C1.bind(null,It,s.queue,!0,!1),Pi().memoizedState=s,[!1,s]},useSyncExternalStore:function(s,l,f){var y=It,_=Pi();if(tn){if(f===void 0)throw Error(i(407));f=f()}else{if(f=l(),jn===null)throw Error(i(349));(Zt&127)!==0||e1(y,l,f)}_.memoizedState=f;var E={value:f,getSnapshot:l};return _.queue=E,g1(n1.bind(null,y,E,s),[s]),y.flags|=2048,Oa(9,{destroy:void 0},t1.bind(null,y,E,f,l),null),f},useId:function(){var s=Pi(),l=jn.identifierPrefix;if(tn){var f=Yr,y=Wr;f=(y&~(1<<32-Ue(y)-1)).toString(32)+f,l="_"+l+"R_"+f,f=yd++,0<\/script>",E=E.removeChild(E.firstChild);break;case"select":E=typeof y.is=="string"?F.createElement("select",{is:y.is}):F.createElement("select"),y.multiple?E.multiple=!0:y.size&&(E.size=y.size);break;default:E=typeof y.is=="string"?F.createElement(_,{is:y.is}):F.createElement(_)}}E[Ut]=l,E[In]=y;e:for(F=l.child;F!==null;){if(F.tag===5||F.tag===6)E.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=E;e:switch(Ni(E,_,y),_){case"button":case"input":case"select":case"textarea":y=!!y.autoFocus;break e;case"img":y=!0;break e;default:y=!1}y&&vs(l)}}return On(l),wh(l,l.type,s===null?null:s.memoizedProps,l.pendingProps,f),null;case 6:if(s&&l.stateNode!=null)s.memoizedProps!==y&&vs(l);else{if(typeof y!="string"&&l.stateNode===null)throw Error(i(166));if(s=ee.current,ja(l)){if(s=l.stateNode,f=l.memoizedProps,y=null,_=Ci,_!==null)switch(_.tag){case 27:case 5:y=_.memoizedProps}s[Ut]=l,s=!!(s.nodeValue===f||y!==null&&y.suppressHydrationWarning===!0||Q_(s.nodeValue,f)),s||qs(l,!0)}else s=Vd(s).createTextNode(y),s[Ut]=l,l.stateNode=s}return On(l),null;case 31:if(f=l.memoizedState,s===null||s.memoizedState!==null){if(y=ja(l),f!==null){if(s===null){if(!y)throw Error(i(318));if(s=l.memoizedState,s=s!==null?s.dehydrated:null,!s)throw Error(i(557));s[Ut]=l}else Bo(),(l.flags&128)===0&&(l.memoizedState=null),l.flags|=4;On(l),s=!1}else f=Dp(),s!==null&&s.memoizedState!==null&&(s.memoizedState.hydrationErrors=f),s=!0;if(!s)return l.flags&256?(rr(l),l):(rr(l),null);if((l.flags&128)!==0)throw Error(i(558))}return On(l),null;case 13:if(y=l.memoizedState,s===null||s.memoizedState!==null&&s.memoizedState.dehydrated!==null){if(_=ja(l),y!==null&&y.dehydrated!==null){if(s===null){if(!_)throw Error(i(318));if(_=l.memoizedState,_=_!==null?_.dehydrated:null,!_)throw Error(i(317));_[Ut]=l}else Bo(),(l.flags&128)===0&&(l.memoizedState=null),l.flags|=4;On(l),_=!1}else _=Dp(),s!==null&&s.memoizedState!==null&&(s.memoizedState.hydrationErrors=_),_=!0;if(!_)return l.flags&256?(rr(l),l):(rr(l),null)}return rr(l),(l.flags&128)!==0?(l.lanes=f,l):(f=y!==null,s=s!==null&&s.memoizedState!==null,f&&(y=l.child,_=null,y.alternate!==null&&y.alternate.memoizedState!==null&&y.alternate.memoizedState.cachePool!==null&&(_=y.alternate.memoizedState.cachePool.pool),E=null,y.memoizedState!==null&&y.memoizedState.cachePool!==null&&(E=y.memoizedState.cachePool.pool),E!==_&&(y.flags|=2048)),f!==s&&f&&(l.child.flags|=8192),Nd(l,l.updateQueue),On(l),null);case 4:return ue(),s===null&&qh(l.stateNode.containerInfo),On(l),null;case 10:return hs(l.type),On(l),null;case 19:if(Q(ei),y=l.memoizedState,y===null)return On(l),null;if(_=(l.flags&128)!==0,E=y.rendering,E===null)if(_)yc(y,!1);else{if(Zn!==0||s!==null&&(s.flags&128)!==0)for(s=l.child;s!==null;){if(E=hd(s),E!==null){for(l.flags|=128,yc(y,!1),s=E.updateQueue,l.updateQueue=s,Nd(l,s),l.subtreeFlags=0,s=f,f=l.child;f!==null;)Tb(f,s),f=f.sibling;return B(ei,ei.current&1|2),tn&&ms(l,y.treeForkCount),l.child}s=s.sibling}y.tail!==null&&nt()>Md&&(l.flags|=128,_=!0,yc(y,!1),l.lanes=4194304)}else{if(!_)if(s=hd(E),s!==null){if(l.flags|=128,_=!0,s=s.updateQueue,l.updateQueue=s,Nd(l,s),yc(y,!0),y.tail===null&&y.tailMode==="hidden"&&!E.alternate&&!tn)return On(l),null}else 2*nt()-y.renderingStartTime>Md&&f!==536870912&&(l.flags|=128,_=!0,yc(y,!1),l.lanes=4194304);y.isBackwards?(E.sibling=l.child,l.child=E):(s=y.last,s!==null?s.sibling=E:l.child=E,y.last=E)}return y.tail!==null?(s=y.tail,y.rendering=s,y.tail=s.sibling,y.renderingStartTime=nt(),s.sibling=null,f=ei.current,B(ei,_?f&1|2:f&1),tn&&ms(l,y.treeForkCount),s):(On(l),null);case 22:case 23:return rr(l),Wp(),y=l.memoizedState!==null,s!==null?s.memoizedState!==null!==y&&(l.flags|=8192):y&&(l.flags|=8192),y?(f&536870912)!==0&&(l.flags&128)===0&&(On(l),l.subtreeFlags&6&&(l.flags|=8192)):On(l),f=l.updateQueue,f!==null&&Nd(l,f.retryQueue),f=null,s!==null&&s.memoizedState!==null&&s.memoizedState.cachePool!==null&&(f=s.memoizedState.cachePool.pool),y=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(y=l.memoizedState.cachePool.pool),y!==f&&(l.flags|=2048),s!==null&&Q(Fo),null;case 24:return f=null,s!==null&&(f=s.memoizedState.cache),l.memoizedState.cache!==f&&(l.flags|=2048),hs(ri),On(l),null;case 25:return null;case 30:return null}throw Error(i(156,l.tag))}function eM(s,l){switch(Ap(l),l.tag){case 1:return s=l.flags,s&65536?(l.flags=s&-65537|128,l):null;case 3:return hs(ri),ue(),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(rr(l),l.alternate===null)throw Error(i(340));Bo()}return s=l.flags,s&65536?(l.flags=s&-65537|128,l):null;case 13:if(rr(l),s=l.memoizedState,s!==null&&s.dehydrated!==null){if(l.alternate===null)throw Error(i(340));Bo()}return s=l.flags,s&65536?(l.flags=s&-65537|128,l):null;case 19:return Q(ei),null;case 4:return ue(),null;case 10:return hs(l.type),null;case 22:case 23:return rr(l),Wp(),s!==null&&Q(Fo),s=l.flags,s&65536?(l.flags=s&-65537|128,l):null;case 24:return hs(ri),null;case 25:return null;default:return null}}function i_(s,l){switch(Ap(l),l.tag){case 3:hs(ri),ue();break;case 26:case 27:case 5:je(l);break;case 4:ue();break;case 31:l.memoizedState!==null&&rr(l);break;case 13:rr(l);break;case 19:Q(ei);break;case 10:hs(l.type);break;case 22:case 23:rr(l),Wp(),s!==null&&Q(Fo);break;case 24:hs(ri)}}function xc(s,l){try{var f=l.updateQueue,y=f!==null?f.lastEffect:null;if(y!==null){var _=y.next;f=_;do{if((f.tag&s)===s){y=void 0;var E=f.create,F=f.inst;y=E(),F.destroy=y}f=f.next}while(f!==_)}}catch(X){vn(l,l.return,X)}}function Js(s,l,f){try{var y=l.updateQueue,_=y!==null?y.lastEffect:null;if(_!==null){var E=_.next;y=E;do{if((y.tag&s)===s){var F=y.inst,X=F.destroy;if(X!==void 0){F.destroy=void 0,_=l;var re=f,ye=X;try{ye()}catch(Ce){vn(_,re,Ce)}}}y=y.next}while(y!==E)}}catch(Ce){vn(l,l.return,Ce)}}function r_(s){var l=s.updateQueue;if(l!==null){var f=s.stateNode;try{Yb(l,f)}catch(y){vn(s,s.return,y)}}}function s_(s,l,f){f.props=Wo(s.type,s.memoizedProps),f.state=s.memoizedState;try{f.componentWillUnmount()}catch(y){vn(s,l,y)}}function vc(s,l){try{var f=s.ref;if(f!==null){switch(s.tag){case 26:case 27:case 5:var y=s.stateNode;break;case 30:y=s.stateNode;break;default:y=s.stateNode}typeof f=="function"?s.refCleanup=f(y):f.current=y}}catch(_){vn(s,l,_)}}function Xr(s,l){var f=s.ref,y=s.refCleanup;if(f!==null)if(typeof y=="function")try{y()}catch(_){vn(s,l,_)}finally{s.refCleanup=null,s=s.alternate,s!=null&&(s.refCleanup=null)}else if(typeof f=="function")try{f(null)}catch(_){vn(s,l,_)}else f.current=null}function o_(s){var l=s.type,f=s.memoizedProps,y=s.stateNode;try{e:switch(l){case"button":case"input":case"select":case"textarea":f.autoFocus&&y.focus();break e;case"img":f.src?y.src=f.src:f.srcSet&&(y.srcset=f.srcSet)}}catch(_){vn(s,s.return,_)}}function Ch(s,l,f){try{var y=s.stateNode;kM(y,s.type,f,l),y[In]=l}catch(_){vn(s,s.return,_)}}function a_(s){return s.tag===5||s.tag===3||s.tag===26||s.tag===27&&oo(s.type)||s.tag===4}function jh(s){e:for(;;){for(;s.sibling===null;){if(s.return===null||a_(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&&oo(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 Eh(s,l,f){var y=s.tag;if(y===5||y===6)s=s.stateNode,l?(f.nodeType===9?f.body:f.nodeName==="HTML"?f.ownerDocument.body:f).insertBefore(s,l):(l=f.nodeType===9?f.body:f.nodeName==="HTML"?f.ownerDocument.body:f,l.appendChild(s),f=f._reactRootContainer,f!=null||l.onclick!==null||(l.onclick=mi));else if(y!==4&&(y===27&&oo(s.type)&&(f=s.stateNode,l=null),s=s.child,s!==null))for(Eh(s,l,f),s=s.sibling;s!==null;)Eh(s,l,f),s=s.sibling}function Id(s,l,f){var y=s.tag;if(y===5||y===6)s=s.stateNode,l?f.insertBefore(s,l):f.appendChild(s);else if(y!==4&&(y===27&&oo(s.type)&&(f=s.stateNode),s=s.child,s!==null))for(Id(s,l,f),s=s.sibling;s!==null;)Id(s,l,f),s=s.sibling}function l_(s){var l=s.stateNode,f=s.memoizedProps;try{for(var y=s.type,_=l.attributes;_.length;)l.removeAttributeNode(_[0]);Ni(l,y,f),l[Ut]=s,l[In]=f}catch(E){vn(s,s.return,E)}}var bs=!1,ai=!1,Nh=!1,c_=typeof WeakSet=="function"?WeakSet:Set,vi=null;function tM(s,l){if(s=s.containerInfo,Xh=Kd,s=_b(s),_p(s)){if("selectionStart"in s)var f={start:s.selectionStart,end:s.selectionEnd};else e:{f=(f=s.ownerDocument)&&f.defaultView||window;var y=f.getSelection&&f.getSelection();if(y&&y.rangeCount!==0){f=y.anchorNode;var _=y.anchorOffset,E=y.focusNode;y=y.focusOffset;try{f.nodeType,E.nodeType}catch{f=null;break e}var F=0,X=-1,re=-1,ye=0,Ce=0,Ie=s,xe=null;t:for(;;){for(var ve;Ie!==f||_!==0&&Ie.nodeType!==3||(X=F+_),Ie!==E||y!==0&&Ie.nodeType!==3||(re=F+y),Ie.nodeType===3&&(F+=Ie.nodeValue.length),(ve=Ie.firstChild)!==null;)xe=Ie,Ie=ve;for(;;){if(Ie===s)break t;if(xe===f&&++ye===_&&(X=F),xe===E&&++Ce===y&&(re=F),(ve=Ie.nextSibling)!==null)break;Ie=xe,xe=Ie.parentNode}Ie=ve}f=X===-1||re===-1?null:{start:X,end:re}}else f=null}f=f||{start:0,end:0}}else f=null;for(Kh={focusedElem:s,selectionRange:f},Kd=!1,vi=l;vi!==null;)if(l=vi,s=l.child,(l.subtreeFlags&1028)!==0&&s!==null)s.return=l,vi=s;else for(;vi!==null;){switch(l=vi,E=l.alternate,s=l.flags,l.tag){case 0:if((s&4)!==0&&(s=l.updateQueue,s=s!==null?s.events:null,s!==null))for(f=0;f title"))),Ni(E,y,f),E[Ut]=s,Xt(E),y=E;break e;case"link":var F=hk("link","href",_).get(y+(f.href||""));if(F){for(var X=0;Xwn&&(F=wn,wn=ht,ht=F);var me=vb(X,ht),le=vb(X,wn);if(me&&le&&(ve.rangeCount!==1||ve.anchorNode!==me.node||ve.anchorOffset!==me.offset||ve.focusNode!==le.node||ve.focusOffset!==le.offset)){var ge=Ie.createRange();ge.setStart(me.node,me.offset),ve.removeAllRanges(),ht>wn?(ve.addRange(ge),ve.extend(le.node,le.offset)):(ge.setEnd(le.node,le.offset),ve.addRange(ge))}}}}for(Ie=[],ve=X;ve=ve.parentNode;)ve.nodeType===1&&Ie.push({element:ve,left:ve.scrollLeft,top:ve.scrollTop});for(typeof X.focus=="function"&&X.focus(),X=0;Xf?32:f,$.T=null,f=Oh,Oh=null;var E=io,F=Cs;if(pi=0,$a=io=null,Cs=0,(mn&6)!==0)throw Error(i(331));var X=mn;if(mn|=4,b_(E.current),y_(E,E.current,F,f),mn=X,Cc(0,!1),We&&typeof We.onPostCommitFiberRoot=="function")try{We.onPostCommitFiberRoot(be,E)}catch{}return!0}finally{G.p=_,$.T=y,P_(s,l)}}function $_(s,l,f){l=xr(f,l),l=ph(s.stateNode,l,2),s=Ks(s,l,2),s!==null&&(Ft(s,2),Kr(s))}function vn(s,l,f){if(s.tag===3)$_(s,s,f);else for(;l!==null;){if(l.tag===3){$_(l,s,f);break}else if(l.tag===1){var y=l.stateNode;if(typeof l.type.getDerivedStateFromError=="function"||typeof y.componentDidCatch=="function"&&(no===null||!no.has(y))){s=xr(f,s),f=H1(2),y=Ks(l,f,2),y!==null&&(F1(f,y,l,s),Ft(y,2),Kr(y));break}}l=l.return}}function Bh(s,l,f){var y=s.pingCache;if(y===null){y=s.pingCache=new rM;var _=new Set;y.set(l,_)}else _=y.get(l),_===void 0&&(_=new Set,y.set(l,_));_.has(f)||(Rh=!0,_.add(f),s=cM.bind(null,s,l,f),l.then(s,s))}function cM(s,l,f){var y=s.pingCache;y!==null&&y.delete(l),s.pingedLanes|=s.suspendedLanes&f,s.warmLanes&=~f,jn===s&&(Zt&f)===f&&(Zn===4||Zn===3&&(Zt&62914560)===Zt&&300>nt()-Ad?(mn&2)===0&&Ha(s,0):Ah|=f,Ba===Zt&&(Ba=0)),Kr(s)}function H_(s,l){l===0&&(l=St()),s=zo(s,l),s!==null&&(Ft(s,l),Kr(s))}function uM(s){var l=s.memoizedState,f=0;l!==null&&(f=l.retryLane),H_(s,f)}function dM(s,l){var f=0;switch(s.tag){case 31:case 13:var y=s.stateNode,_=s.memoizedState;_!==null&&(f=_.retryLane);break;case 19:y=s.stateNode;break;case 22:y=s.stateNode._retryCache;break;default:throw Error(i(314))}y!==null&&y.delete(l),H_(s,f)}function fM(s,l){return Gt(s,l)}var Bd=null,Va=null,$h=!1,$d=!1,Hh=!1,so=0;function Kr(s){s!==Va&&s.next===null&&(Va===null?Bd=Va=s:Va=Va.next=s),$d=!0,$h||($h=!0,pM())}function Cc(s,l){if(!Hh&&$d){Hh=!0;do for(var f=!1,y=Bd;y!==null;){if(s!==0){var _=y.pendingLanes;if(_===0)var E=0;else{var F=y.suspendedLanes,X=y.pingedLanes;E=(1<<31-Ue(42|s)+1)-1,E&=_&~(F&~X),E=E&201326741?E&201326741|1:E?E|2:0}E!==0&&(f=!0,G_(y,E))}else E=Zt,E=Rt(y,y===jn?E:0,y.cancelPendingCommit!==null||y.timeoutHandle!==-1),(E&3)===0||bt(y,E)||(f=!0,G_(y,E));y=y.next}while(f);Hh=!1}}function mM(){F_()}function F_(){$d=$h=!1;var s=0;so!==0&&wM()&&(s=so);for(var l=nt(),f=null,y=Bd;y!==null;){var _=y.next,E=V_(y,l);E===0?(y.next=null,f===null?Bd=_:f.next=_,_===null&&(Va=f)):(f=y,(s!==0||(E&3)!==0)&&($d=!0)),y=_}pi!==0&&pi!==5||Cc(s),so!==0&&(so=0)}function V_(s,l){for(var f=s.suspendedLanes,y=s.pingedLanes,_=s.expirationTimes,E=s.pendingLanes&-62914561;0X)break;var Ce=re.transferSize,Ie=re.initiatorType;Ce&&J_(Ie)&&(re=re.responseEnd,F+=Ce*(re"u"?null:document;function dk(s,l,f){var y=Ua;if(y&&typeof l=="string"&&l){var _=Ot(l);_='link[rel="'+s+'"][href="'+_+'"]',typeof f=="string"&&(_+='[crossorigin="'+f+'"]'),uk.has(_)||(uk.add(_),s={rel:s,crossOrigin:f,href:l},y.querySelector(_)===null&&(l=y.createElement("link"),Ni(l,"link",s),Xt(l),y.head.appendChild(l)))}}function MM(s){js.D(s),dk("dns-prefetch",s,null)}function DM(s,l){js.C(s,l),dk("preconnect",s,l)}function OM(s,l,f){js.L(s,l,f);var y=Ua;if(y&&s&&l){var _='link[rel="preload"][as="'+Ot(l)+'"]';l==="image"&&f&&f.imageSrcSet?(_+='[imagesrcset="'+Ot(f.imageSrcSet)+'"]',typeof f.imageSizes=="string"&&(_+='[imagesizes="'+Ot(f.imageSizes)+'"]')):_+='[href="'+Ot(s)+'"]';var E=_;switch(l){case"style":E=Ga(s);break;case"script":E=qa(s)}wr.has(E)||(s=p({rel:"preload",href:l==="image"&&f&&f.imageSrcSet?void 0:s,as:l},f),wr.set(E,s),y.querySelector(_)!==null||l==="style"&&y.querySelector(Ic(E))||l==="script"&&y.querySelector(Tc(E))||(l=y.createElement("link"),Ni(l,"link",s),Xt(l),y.head.appendChild(l)))}}function LM(s,l){js.m(s,l);var f=Ua;if(f&&s){var y=l&&typeof l.as=="string"?l.as:"script",_='link[rel="modulepreload"][as="'+Ot(y)+'"][href="'+Ot(s)+'"]',E=_;switch(y){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":E=qa(s)}if(!wr.has(E)&&(s=p({rel:"modulepreload",href:s},l),wr.set(E,s),f.querySelector(_)===null)){switch(y){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(f.querySelector(Tc(E)))return}y=f.createElement("link"),Ni(y,"link",s),Xt(y),f.head.appendChild(y)}}}function zM(s,l,f){js.S(s,l,f);var y=Ua;if(y&&s){var _=hn(y).hoistableStyles,E=Ga(s);l=l||"default";var F=_.get(E);if(!F){var X={loading:0,preload:null};if(F=y.querySelector(Ic(E)))X.loading=5;else{s=p({rel:"stylesheet",href:s,"data-precedence":l},f),(f=wr.get(E))&&ig(s,f);var re=F=y.createElement("link");Xt(re),Ni(re,"link",s),re._p=new Promise(function(ye,Ce){re.onload=ye,re.onerror=Ce}),re.addEventListener("load",function(){X.loading|=1}),re.addEventListener("error",function(){X.loading|=2}),X.loading|=4,Gd(F,l,y)}F={type:"stylesheet",instance:F,count:1,state:X},_.set(E,F)}}}function PM(s,l){js.X(s,l);var f=Ua;if(f&&s){var y=hn(f).hoistableScripts,_=qa(s),E=y.get(_);E||(E=f.querySelector(Tc(_)),E||(s=p({src:s,async:!0},l),(l=wr.get(_))&&rg(s,l),E=f.createElement("script"),Xt(E),Ni(E,"link",s),f.head.appendChild(E)),E={type:"script",instance:E,count:1,state:null},y.set(_,E))}}function BM(s,l){js.M(s,l);var f=Ua;if(f&&s){var y=hn(f).hoistableScripts,_=qa(s),E=y.get(_);E||(E=f.querySelector(Tc(_)),E||(s=p({src:s,async:!0,type:"module"},l),(l=wr.get(_))&&rg(s,l),E=f.createElement("script"),Xt(E),Ni(E,"link",s),f.head.appendChild(E)),E={type:"script",instance:E,count:1,state:null},y.set(_,E))}}function fk(s,l,f,y){var _=(_=ee.current)?Ud(_):null;if(!_)throw Error(i(446));switch(s){case"meta":case"title":return null;case"style":return typeof f.precedence=="string"&&typeof f.href=="string"?(l=Ga(f.href),f=hn(_).hoistableStyles,y=f.get(l),y||(y={type:"style",instance:null,count:0,state:null},f.set(l,y)),y):{type:"void",instance:null,count:0,state:null};case"link":if(f.rel==="stylesheet"&&typeof f.href=="string"&&typeof f.precedence=="string"){s=Ga(f.href);var E=hn(_).hoistableStyles,F=E.get(s);if(F||(_=_.ownerDocument||_,F={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},E.set(s,F),(E=_.querySelector(Ic(s)))&&!E._p&&(F.instance=E,F.state.loading=5),wr.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},wr.set(s,f),E||$M(_,s,f,F.state))),l&&y===null)throw Error(i(528,""));return F}if(l&&y!==null)throw Error(i(529,""));return null;case"script":return l=f.async,f=f.src,typeof f=="string"&&l&&typeof l!="function"&&typeof l!="symbol"?(l=qa(f),f=hn(_).hoistableScripts,y=f.get(l),y||(y={type:"script",instance:null,count:0,state:null},f.set(l,y)),y):{type:"void",instance:null,count:0,state:null};default:throw Error(i(444,s))}}function Ga(s){return'href="'+Ot(s)+'"'}function Ic(s){return'link[rel="stylesheet"]['+s+"]"}function mk(s){return p({},s,{"data-precedence":s.precedence,precedence:null})}function $M(s,l,f,y){s.querySelector('link[rel="preload"][as="style"]['+l+"]")?y.loading=1:(l=s.createElement("link"),y.preload=l,l.addEventListener("load",function(){return y.loading|=1}),l.addEventListener("error",function(){return y.loading|=2}),Ni(l,"link",f),Xt(l),s.head.appendChild(l))}function qa(s){return'[src="'+Ot(s)+'"]'}function Tc(s){return"script[async]"+s}function pk(s,l,f){if(l.count++,l.instance===null)switch(l.type){case"style":var y=s.querySelector('style[data-href~="'+Ot(f.href)+'"]');if(y)return l.instance=y,Xt(y),y;var _=p({},f,{"data-href":f.href,"data-precedence":f.precedence,href:null,precedence:null});return y=(s.ownerDocument||s).createElement("style"),Xt(y),Ni(y,"style",_),Gd(y,f.precedence,s),l.instance=y;case"stylesheet":_=Ga(f.href);var E=s.querySelector(Ic(_));if(E)return l.state.loading|=4,l.instance=E,Xt(E),E;y=mk(f),(_=wr.get(_))&&ig(y,_),E=(s.ownerDocument||s).createElement("link"),Xt(E);var F=E;return F._p=new Promise(function(X,re){F.onload=X,F.onerror=re}),Ni(E,"link",y),l.state.loading|=4,Gd(E,f.precedence,s),l.instance=E;case"script":return E=qa(f.src),(_=s.querySelector(Tc(E)))?(l.instance=_,Xt(_),_):(y=f,(_=wr.get(E))&&(y=p({},f),rg(y,_)),s=s.ownerDocument||s,_=s.createElement("script"),Xt(_),Ni(_,"link",y),s.head.appendChild(_),l.instance=_);case"void":return null;default:throw Error(i(443,l.type))}else l.type==="stylesheet"&&(l.state.loading&4)===0&&(y=l.instance,l.state.loading|=4,Gd(y,f.precedence,s));return l.instance}function Gd(s,l,f){for(var y=f.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),_=y.length?y[y.length-1]:null,E=_,F=0;F title"):null)}function HM(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 yk(s){return!(s.type==="stylesheet"&&(s.state.loading&3)===0)}function FM(s,l,f,y){if(f.type==="stylesheet"&&(typeof y.media!="string"||matchMedia(y.media).matches!==!1)&&(f.state.loading&4)===0){if(f.instance===null){var _=Ga(y.href),E=l.querySelector(Ic(_));if(E){l=E._p,l!==null&&typeof l=="object"&&typeof l.then=="function"&&(s.count++,s=Wd.bind(s),l.then(s,s)),f.state.loading|=4,f.instance=E,Xt(E);return}E=l.ownerDocument||l,y=mk(y),(_=wr.get(_))&&ig(y,_),E=E.createElement("link"),Xt(E);var F=E;F._p=new Promise(function(X,re){F.onload=X,F.onerror=re}),Ni(E,"link",y),f.instance=E}s.stylesheets===null&&(s.stylesheets=new Map),s.stylesheets.set(f,l),(l=f.state.preload)&&(f.state.loading&3)===0&&(s.count++,f=Wd.bind(s),l.addEventListener("load",f),l.addEventListener("error",f))}}var sg=0;function VM(s,l){return s.stylesheets&&s.count===0&&Xd(s,s.stylesheets),0sg?50:800)+l);return s.unsuspend=f,function(){s.unsuspend=null,clearTimeout(y),clearTimeout(_)}}:null}function Wd(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Xd(this,this.stylesheets);else if(this.unsuspend){var s=this.unsuspend;this.unsuspend=null,s()}}}var Yd=null;function Xd(s,l){s.stylesheets=null,s.unsuspend!==null&&(s.count++,Yd=new Map,l.forEach(UM,s),Yd=null,Wd.call(s))}function UM(s,l){if(!(l.state.loading&4)){var f=Yd.get(s);if(f)var y=f.get(null);else{f=new Map,Yd.set(s,f);for(var _=s.querySelectorAll("link[data-precedence],style[data-precedence]"),E=0;E<_.length;E++){var F=_[E];(F.nodeName==="LINK"||F.getAttribute("media")!=="not all")&&(f.set(F.dataset.precedence,F),y=F)}y&&f.set(null,y)}_=l.instance,F=_.getAttribute("data-precedence"),E=f.get(F)||y,E===y&&f.set(null,_),f.set(F,_),this.count++,y=Wd.bind(this),_.addEventListener("load",y),_.addEventListener("error",y),E?E.parentNode.insertBefore(_,E.nextSibling):(s=s.nodeType===9?s.head:s,s.insertBefore(_,s.firstChild)),l.state.loading|=4}}var Rc={$$typeof:j,Provider:null,Consumer:null,_currentValue:q,_currentValue2:q,_threadCount:0};function GM(s,l,f,y,_,E,F,X,re){this.tag=1,this.containerInfo=s,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=Ye(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ye(0),this.hiddenUpdates=Ye(null),this.identifierPrefix=y,this.onUncaughtError=_,this.onCaughtError=E,this.onRecoverableError=F,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=re,this.incompleteTransitions=new Map}function xk(s,l,f,y,_,E,F,X,re,ye,Ce,Ie){return s=new GM(s,l,f,F,re,ye,Ce,Ie,X),l=1,E===!0&&(l|=24),E=nr(3,null,null,l),s.current=E,E.stateNode=s,l=Pp(),l.refCount++,s.pooledCache=l,l.refCount++,E.memoizedState={element:y,isDehydrated:f,cache:l},Fp(E),s}function vk(s){return s?(s=Sa,s):Sa}function bk(s,l,f,y,_,E){_=vk(_),y.context===null?y.context=_:y.pendingContext=_,y=Xs(l),y.payload={element:f},E=E===void 0?null:E,E!==null&&(y.callback=E),f=Ks(s,y,l),f!==null&&(Xi(f,s,l),cc(f,s,l))}function _k(s,l){if(s=s.memoizedState,s!==null&&s.dehydrated!==null){var f=s.retryLane;s.retryLane=f!==0&&f"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),pg.exports=o3(),pg.exports}var l3=a3();const c3=2e3,u3=3e4,d3=20,f3=100,m3=3e4,p3=1e4,h3=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","comms_state","comms_read_message"]),g3=3e4;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,this.pendingSessionDetailRequests=[]}updateUrl(t){this.url=t}connect(){this.closedByUser=!1,this.handlers.onStatus?.("connecting"),this.ws=new WebSocket(this.url),this.ws.onopen=()=>{this.reconnectAttempt=0,this.handlers.onStatus?.("connected"),this.flushPendingQueue(),this.startHeartbeat()},this.ws.onmessage=t=>{this.handleMessage(t.data)},this.ws.onerror=()=>{this.handlers.onStatus?.("error","WebSocket error")},this.ws.onclose=()=>{this.stopHeartbeat(),this.failPendingSessionDetailRequests("connection_closed"),this.handlers.onStatus?.("disconnected"),this.ws=null,this.closedByUser||this.scheduleReconnect()}}disconnect(){this.closedByUser=!0,this.stopHeartbeat(),this.failPendingSessionDetailRequests("disconnected"),this.reconnectTimer!==null&&(window.clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.ws?.close(),this.ws=null}send(t){if(!this.ensureProjectScope(t))return"send-failed";const n=JSON.stringify(t);if(!this.ws||this.ws.readyState!==WebSocket.OPEN)return this.pendingQueue.length{const c={type:"session_detail",project_id:r,task_id:n,limit:i?.limit,before_created_at:i?.beforeCreatedAt,before_message_id:i?.beforeMessageId,detail_level:o,include:i?.include,view_generation:i?.viewGeneration},d=JSON.stringify(c),m={projectId:r,taskId:n,detailLevel:o,viewGeneration:i?.viewGeneration,historyPage:i?.beforeCreatedAt!==void 0||!!i?.beforeMessageId,wireData:d,queued:!1,settled:!1,timeout:null,resolve:a};m.timeout=setTimeout(()=>{const p=this.pendingSessionDetailRequests.indexOf(m);p>=0&&this.timeoutSessionDetailRequest(p)},g3),this.pendingSessionDetailRequests.push(m);const h=this.send(c);if(m.queued=h==="queued",h==="queue-full"||h==="send-failed"){const p=this.pendingSessionDetailRequests.indexOf(m);p>=0&&this.failSessionDetailRequest(p,h==="queue-full"?"send_queue_full":"send_failed")}})}secretarySend(t,n){const i=this.requireProjectId(t,"secretary_send");this.send({type:"secretary_send",project_id:i,content:n})}listProjects(){this.send({type:"list_projects"})}createProject(t){this.send({type:"create_project",project_id:this.normalizeProjectId(t)})}deleteProject(t){this.send({type:"delete_project",project_id:this.normalizeProjectId(t)})}switchProject(t,n){this.send({type:"switch_project",project_id:this.normalizeProjectId(t),switch_seq:n})}orgInfo(){this.send({type:"org_info"})}talentImport(t){this.send({type:"talent_import",repo_path:t})}talentList(){this.send({type:"talent_list"})}talentScanLocal(){this.send({type:"talent_scan_local"})}talentImportSelected(t){this.send({type:"talent_import_selected",template_ids:t})}talentHire(t,n,i,r){this.send({type:"talent_hire",template_id:t,role_id:n,employee_name:i,org_id:r})}employeeDetail(t){this.send({type:"employee_detail",employee_id:t})}reorgList(){this.send({type:"reorg_list"})}reorgDecide(t,n,i){this.send({type:"reorg_decide",proposal_id:t,approved:n,notes:i})}importEmployeeAsAgent(t,n){this.send({type:"import_employee_as_agent",employee_id:t,office_id:n})}marketBrowse(){this.send({type:"market_browse"})}marketPreview(t){this.send({type:"market_preview",preset_id:t})}marketApplyPreset(t,n="namespace"){this.send({type:"market_apply_preset",preset_id:t,strategy:n})}marketListInstalled(){this.send({type:"market_list_installed"})}marketExport(t){this.send({type:"market_export",...t})}marketInstall(t,n="namespace"){this.send({type:"market_install",path:t,strategy:n})}marketUninstall(t){this.send({type:"market_uninstall",package_id:t})}addRole(t,n,i,r="owner",o){this.send({type:"add_role",role_id:t,name:n,responsibility:i,reports_to:r,icon:o||null})}bulkAddRoles(t){this.send({type:"bulk_add_roles",roles:t})}updateRole(t,n){this.send({type:"update_role",role_id:t,...n})}deleteRole(t){this.send({type:"delete_role",role_id:t})}updateRuntimePolicy(t){this.send({type:"update_runtime_policy",policy:t})}updateOrgStrategy(t){this.send({type:"update_org_strategy",...t})}resetArchitecture(){this.send({type:"reset_architecture"})}orgConfigExport(){this.send({type:"org_config_export"})}orgConfigImport(t,n){this.send({type:"org_config_import",yaml:t,dry_run:n})}orgSavedList(){this.send({type:"org_saved_list"})}orgSavedSaveAs(t,n){this.send({type:"org_saved_save_as",name:t,overwrite:n})}orgSavedCreate(t,n){this.send({type:"org_saved_create",organization_name:t,members:n})}orgSavedLoad(t){this.send({type:"org_saved_load",name:t})}orgSavedDelete(t){this.send({type:"org_saved_delete",name:t})}commsState(t,n){const i=this.requireProjectId(t,"comms_state");this.send({type:"comms_state",project_id:i,...n||{}})}commsReadMessage(t,n){const i=this.requireProjectId(t,"comms_read_message");this.send({type:"comms_read_message",project_id:i,path:n})}normalizeProjectId(t){return typeof t=="string"?t.trim():""}requireProjectId(t,n){const i=this.normalizeProjectId(t);if(!i)throw new Error(`${n} requires non-empty project_id`);return i}ensureProjectScope(t){const n=typeof t.type=="string"?t.type:"";if(!h3.has(n))return!0;const i=this.normalizeProjectId(t.project_id??t.projectId);if(!i){const r=`${n} requires non-empty project_id`;return console.error(`[wsClient] ${r}`,t),this.handlers.onAck?.({ok:!1,error:r,action:n}),!1}return t.project_id=i,!0}handleMessage(t){if(typeof t!="string")return;let n=null;try{n=JSON.parse(t)}catch{return}if(!(!n||typeof n!="object"||!("type"in n)))try{switch(n.type){case"snapshot":this.handlers.onSnapshot?.(n.payload);break;case"event":this.handlers.onEvent?.(n.payload);break;case"ack":{const i=this.settleSessionDetailRequest(n.payload);this.handlers.onAck?.(i);break}case"channel_created":this.handlers.onChannelCreated?.(n.payload);break;case"board_task_created":case"board_task_moved":this.handlers.onBoardEvent?.(n.payload);break;case"board_task_status_changed":case"execution_mode_resolved":case"project_run_updated":case"seat_digest_updated":case"work_item_batch_updated":case"session_runtime_control":this.handlers.onCollabMessage?.(n.type,n.payload);break;case"cross_office_collab":this.handlers.onCrossOfficeCollab?.(n.payload);break;case"chat_new_message":case"chat_channel_created":case"kanban_updated":case"kanban_board_created":case"collab_sync_push":case"project_index_push":this.handlers.onCollabMessage?.(n.type,n.payload);break;case"agent_runtime_update":this.handlers.onAgentRuntimeUpdate?.(n.payload);break;case"runtime_status_sync":this.handlers.onRuntimeStatusSync?.(n.payload);break;case"worker_notification":this.handlers.onWorkerNotification?.(n.payload);break;case"session_progress":this.handlers.onSessionProgress?.(n.payload);break;case"work_item_progress":this.handlers.onWorkItemProgress?.(n.payload);break;case"kanban_view_data":this.handlers.onKanbanViewData?.(n.payload);break;case"session_created":this.handlers.onSessionCreated?.(n.payload);break;case"session_updated":this.handlers.onSessionUpdated?.(n.payload);break;case"session_message":this.handlers.onSessionMessage?.(n.payload);break;case"session_title_updated":this.handlers.onSessionTitleUpdated?.(n.payload);break;case"session_deleted":this.handlers.onSessionDeleted?.(n.payload);break;case"child_session_created":this.handlers.onChildSessionCreated?.(n.payload);break;case"project_switched":this.handlers.onProjectSwitched?.(n.payload);break;case"project_deleted":this.handlers.onProjectDeleted?.(n.payload);break;case"org_info":this.handlers.onOrgInfo?.(n.payload);break;case"comms_state":this.handlers.onCommsState?.(n.payload);break;case"comms_message":this.handlers.onCommsMessage?.(n.payload);break;case"comms_state_dirty":try{const i=typeof n.payload?.project_id=="string"?n.payload.project_id:"";i&&this.commsState(i)}catch{}break;case"talent_list":this.handlers.onTalentList?.(n.payload);break;case"talent_scan_local":this.handlers.onTalentScanLocal?.(n.payload);break;case"employee_detail":this.handlers.onEmployeeDetail?.(n.payload);break;case"reorg_list":this.handlers.onReorgList?.(n.payload);break;case"market_list_installed":this.handlers.onMarketListInstalled?.(n.payload);break;case"market_browse":this.handlers.onMarketBrowse?.(n.payload);break;case"market_preview":this.handlers.onMarketPreview?.(n.payload);break;case"org_config_export":this.handlers.onOrgConfigExport?.(n.payload);break;case"org_config_import":this.handlers.onOrgConfigImport?.(n.payload);break;case"org_saved_list":this.handlers.onOrgSavedList?.(n.payload);break;case"org_saved_save_as":this.handlers.onOrgSavedSaveAs?.(n.payload);break;case"org_saved_create":this.handlers.onOrgSavedCreate?.(n.payload);break;case"org_saved_load":this.handlers.onOrgSavedLoad?.(n.payload);break;case"org_saved_delete":this.handlers.onOrgSavedDelete?.(n.payload);break;case"pong":this.handlePong();break;default:break}}catch(i){console.error("[wsClient] Error handling message:",n.type,i)}}settleSessionDetailRequest(t){const n=typeof t.action=="string"?t.action.trim():"";if(!(n==="session_detail"||!n&&t.error==="store_not_ready"))return t;const r=this.normalizeProjectId(t.project_id??t.projectId),o=typeof t.task_id=="string"?t.task_id:"",a=t.detail_level==="full"?"full":t.detail_level==="summary"?"summary":"",c=typeof t.view_generation=="number"?t.view_generation:void 0,d=this.pendingSessionDetailRequests.findIndex(p=>(!r||p.projectId===r)&&(!o||p.taskId===o)&&(!a||p.detailLevel===a)&&(c===void 0||p.viewGeneration===c));if(d<0)return t;const[m]=this.pendingSessionDetailRequests.splice(d,1);m.timeout!==null&&clearTimeout(m.timeout);const h={...t,action:"session_detail",project_id:r||m.projectId,task_id:o||m.taskId,detail_level:a||m.detailLevel,client_history_page:m.historyPage};return m.settled||(m.settled=!0,m.resolve(h)),h}timeoutSessionDetailRequest(t){const n=this.pendingSessionDetailRequests[t];if(n){if(n.queued){this.failSessionDetailRequest(t,"request_timeout");return}n.timeout!==null&&clearTimeout(n.timeout),n.timeout=null,n.settled||(n.settled=!0,n.resolve(this.sessionDetailFailurePayload(n,"request_timeout")))}}failSessionDetailRequest(t,n){const[i]=this.pendingSessionDetailRequests.splice(t,1);if(i){if(i.timeout!==null&&clearTimeout(i.timeout),i.queued){const r=this.pendingQueue.indexOf(i.wireData);r>=0&&this.pendingQueue.splice(r,1)}i.settled||i.resolve(this.sessionDetailFailurePayload(i,n))}}sessionDetailFailurePayload(t,n){return{ok:!1,action:"session_detail",error:n,project_id:t.projectId,task_id:t.taskId,detail_level:t.detailLevel,client_history_page:t.historyPage}}failPendingSessionDetailRequests(t){for(;this.pendingSessionDetailRequests.length>0;)this.failSessionDetailRequest(0,t)}flushPendingQueue(){if(!this.ws||this.ws.readyState!==WebSocket.OPEN)return;const t=this.pendingQueue.splice(0);for(const n of t){const i=this.pendingSessionDetailRequests.findIndex(r=>r.queued&&r.wireData===n);try{this.ws.send(n),i>=0&&(this.pendingSessionDetailRequests[i].queued=!1)}catch{i>=0&&this.failSessionDetailRequest(i,"send_failed")}}}startHeartbeat(){this.stopHeartbeat(),this.heartbeatTimer=window.setInterval(()=>{!this.ws||this.ws.readyState!==WebSocket.OPEN||(this.ws.send(JSON.stringify({type:"ping"})),this.pongTimer=window.setTimeout(()=>{this.pongTimer=null,this.ws?.close()},p3))},m3)}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>=d3){this.handlers.onStatus?.("error","max reconnect attempts reached");return}const t=Math.min(c3*Math.pow(2,this.reconnectAttempt),u3);this.reconnectAttempt++,this.reconnectTimer=window.setTimeout(()=>{this.reconnectTimer=null,this.connect()},t)}}var x3=JM();const Zi=pa(x3),R=32,Qn=20,ur=25,Fv=2,Hk=3,v3=Qn*Hk+Fv*(Hk-1),b3=ur,xg=v3,zc=b3,ru=R*8,al=R*4,dl=R*20,iE=1.8,_3=iE,k3=iE,S3=30,w3=8,C3=-2,j3=.22,E3=5,N3=23;function I3(){if(typeof window>"u")return null;const e=o=>{const a=new URLSearchParams(o);return a.get("day")==="1"||a.get("daytime")==="1"?"day":a.get("night")==="1"?"night":null};let t=e(window.location.search||"");if(t)return t;const n=window.location.hash;if(!n)return null;const i=n.indexOf("?");if(i>=0&&(t=e(n.slice(i+1)),t))return t;const r=n.replace(/^#/,"");return r.includes("=")&&(t=e(r),t)?t:null}function su(e=new Date){if(typeof window<"u")try{const n=I3();if(n==="day")return!0;if(n==="night")return!1;const i=window.localStorage?.getItem("opc_outdoor_override");if(i==="day")return!0;if(i==="night")return!1;if(window.localStorage?.getItem("opc_outdoor_day")==="1")return!0;if(window.localStorage?.getItem("opc_outdoor_night")==="1")return!1}catch{}const t=e.getHours();return t>=E3&&t<=N3}const Fk=11064556,Vk=3228986,T3=200,R3=100,A3=60,Rf=2,Af=20,rE=3,sE=6,Ya=2.5,M3=8,D3=15,Uk=5,Gk=10,O3=5,qk=3,Wk=2;function L3(e,t,n){const i=t||e.clientWidth||window.innerWidth-380,r=n||e.clientHeight||window.innerHeight-48,o=su()?"#a8d4ec":"#31453a";return{type:Zi.CANVAS,parent:e,width:i,height:r,pixelArt:!0,backgroundColor:o,physics:{default:"arcade",arcade:{gravity:{x:0,y:0},debug:!1}},scale:{mode:Zi.Scale.RESIZE,autoCenter:Zi.Scale.NONE,parent:e},render:{antialias:!1,pixelArt:!0}}}const z3=16,P3=32,Yk=6;class B3 extends Zi.Scene{constructor(){super("Boot")}preload(){this.load.image("office-bg","assets/office-bg.png"),this.load.spritesheet("office-tileset-32","assets/office-tileset-32.png",{frameWidth:32,frameHeight:32});for(let n=0;n{t.clear(),t.fillStyle(4886745,1),t.fillRect(this.scale.width/2-100,this.scale.height/2-8,200*n,16)}),this.load.on("complete",()=>t.destroy())}create(){this.createCharacterAnimations(),console.log("[BootScene] All assets loaded"),this.scene.start("Office")}createCharacterAnimations(){const n=[{name:"down",row:0},{name:"up",row:1},{name:"right",row:2},{name:"left",row:2}];for(let i=0;i0)return t}}catch{}return aE()}function Im(e){localStorage.setItem(oE,JSON.stringify(e))}function $3(e,t){const n=Jn(),i=n.find(r=>r.id===e);i&&(i.name=t,Im(n))}function vg(e,t){const n=Jn();for(const r of n)r.assignedAgents=r.assignedAgents.filter(o=>o!==t);const i=n.find(r=>r.id===e);i&&i.assignedAgents.push(t),Im(n)}function H3(e){const t=Jn();for(const n of t)n.assignedAgents=n.assignedAgents.filter(i=>i!==e);Im(t)}function F3(e){return Jn().find(t=>t.assignedAgents.includes(e))}function V3(e,t,n){const i=Jn(),r=i.find(o=>o.id===e);r&&(r.mapStr=t,r.seats=n,Im(i))}function lE(e){const t=[];for(let n=0;n0?e[e.length-1].offsetCol+Qn:Qn,n=[];for(let i=0;it.map(n=>n===0?".":"#").join(""))}function Mi(e,t,n,i,r=t+i){return{x:Math.round(e*R),y:Math.round(t*R),w:Math.round(n*R),h:Math.round(i*R),depthY:Math.round(r*R)}}const U3=[Mi(8,4,4.3,3.35,7.15),Mi(2.3,8.65,5.35,1.95,10.55),Mi(11.1,8.55,3.1,1.7,10.45),Mi(14.15,8.55,4.95,2,10.95),Mi(2.1,11.45,3.05,1.8,12.95),Mi(5.25,11.45,3.05,1.8,12.95),Mi(8.45,11.45,3.05,1.8,12.95),Mi(2.1,14.55,3.05,1.85,16.1),Mi(5.25,14.55,3.05,1.85,16.1),Mi(8.45,14.55,3.05,1.85,16.1),Mi(14,12.15,4.85,3,15.3),Mi(1,19.55,3.05,1.15,20.7),Mi(4.45,20.45,3.35,1.35,21.8),Mi(14.1,20.5,3.15,1.85,22.3),Mi(8.05,23.1,4.2,1,24.1),Mi(17,23.1,2.1,1,24.1)];class Gf{constructor(){this.bgSprites=[],this.foregroundSprites=[],this.nameLabels=[],this.decor=[],this.outdoorBackdrop=null,this.outdoorParking=null,this.tilesetFrames={shelfA:61,shelfB:62,waterCooler:105,waterCoolerAlt:106,fridge:108,vending:110,plantA:148,plantB:150,boxA:153,boxB:154,boxC:158}}clearSceneDecor(){for(const t of this.bgSprites)t.destroy();for(const t of this.foregroundSprites)t.destroy();for(const t of this.nameLabels)t.destroy();for(const t of this.decor)t.destroy();this.bgSprites=[],this.foregroundSprites=[],this.nameLabels=[],this.decor=[],this.outdoorBackdrop=null,this.outdoorParking=null}addForegroundOccluders(t,n){const i=n.offsetCol*R;for(const r of U3){const o=t.add.image(i,0,"office-bg");o.setOrigin(0,0),o.setCrop(r.x,r.y,r.w,r.h),o.setDepth(r.depthY),this.foregroundSprites.push(o)}}addPixelLabel(t,n,i,r,o,a="#f5efe3",c="10px"){const d=t.add.text(n,i,r,{fontSize:c,fontFamily:"monospace",color:a,backgroundColor:o,padding:{left:4,right:4,top:2,bottom:2},resolution:2,align:"center"});return d.setOrigin(.5,.5),d.setDepth(-94),this.decor.push(d),d}addTilesetSprite(t,n,i,r,o=1){const a=t.add.image(n,i,"office-tileset-32",r);return a.setOrigin(0,0),a.setScale(o),a.setDepth(-92),this.decor.push(a),a}getOutdoorMetrics(t,n){const i=n+R*10.1,r=R*4.1,o=i+r+R*.15,a=o+R*1.1;return{gateCenterX:t/2,roadY:i,roadHeight:r,waterTopY:o,dockY:a,bottomY:n+dl}}paintStylizedParkingCar(t,n,i,r,o,a){const c=o?{outline:1314840,body:14240338,bodyMid:13057092,bodyDark:9316914,cabin:14706798,cabinHi:15894668,cabinLo:11546684,glass:6062264,glassDeep:3824776,glassHi:12116220,tire:1842724,tireOuter:1184794,bonnetHi:15233140}:{outline:1053728,body:4095176,bodyMid:3105960,bodyDark:2377848,cabin:6068444,cabinHi:8303856,cabinLo:3434664,glass:4878240,glassDeep:3164264,glassHi:11065599,tire:1842724,tireOuter:1184794,bonnetHi:7121128},d=(x,v,b,w,k,S=1)=>{t.fillStyle(k,S);const j=r?-x-b:x;t.fillRect(Math.round(n+j),Math.round(i+v),b,w)};t.fillStyle(988175,.28),t.fillEllipse(n,i+36,36,9),d(-16,-38,32,76,c.outline),d(-15,-37,30,74,c.body),d(-14,2,28,35,c.bodyDark),d(-14,-4,28,10,c.bodyMid),d(-13,8,26,22,c.body),d(-13,8,26,7,c.bonnetHi,.92),d(-13,-35,26,32,c.cabin),d(-13,-35,26,4,c.cabinHi),d(-13,-8,26,5,c.cabinLo),d(-11,-7,22,11,c.glassDeep),d(-11,-7,22,5,c.glass),d(-10,-6,8,3,c.glassHi),d(-1,-6,6,2,c.glassHi,.75),d(-16,-2,3,8,c.bodyDark),d(13,-2,3,8,c.bodyDark);const m=22,h=-30,p=7,g=9;for(const x of[m,h])d(-22,x,p,g,c.tire),d(15,x,p,g,c.tire),d(-22,x,1,g,c.tireOuter),d(15+p-1,x,1,g,c.tireOuter);for(const x of[m,h])d(-18,x+1,4,g-2,c.bodyDark),d(14,x+1,4,g-2,c.bodyDark);a&&(d(-12,33,5,4,16052970),d(7,33,5,4,16052970),d(-11,34,2,2,16775368),d(8,34,2,2,16775368),d(-13,-38,4,3,16733488),d(9,-38,4,3,13121568),d(-18,4,3,4,16763976),d(15,4,3,4,16752688)),d(-15,-37,30,1,c.cabinHi,.45),d(-14,28,28,1,0,.12)}buildOutdoorBackdrop(t,n,i,r,o,a){const c=t.add.graphics();c.setDepth(-320);const d=-ru,m=-al,h=n+ru*2,p=i+al+dl,g=d+h,x=i+dl,v=m+R*6.2,b=i+R*.35,w=i+R*4.25,k=i+R*5.9,{gateCenterX:S,roadY:j,roadHeight:N,waterTopY:L,dockY:A}=this.getOutdoorMetrics(n,i),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(c.fillStyle(D.skyTop,1),c.fillRect(d,m,h,R*8.2),c.fillStyle(D.skyBand,1),c.fillRect(d,m+R*6.15,h,R*2.05),o){c.fillStyle(16775400,.45);for(let he=0;he<5;he++){const $e=d+h*(.12+he*.19)+he*17%40,ut=m+R*(1.4+he%3*.35);c.fillEllipse($e,ut,R*2.2,R*.95)}c.fillStyle(16773808,.92),c.fillCircle(g-R*2.4,m+R*1.25,R*.85),c.fillStyle(16776432,.35),c.fillCircle(g-R*2.4,m+R*1.25,R*1.45)}c.fillStyle(D.towerFar,1);for(let he=d-R;heR*1.9&&c.fillRect(he+Ke-8,De+4,3,3));c.fillStyle(D.facadeColor,D.facadeAlpha),c.fillRect(he+Ke*.5,Se+R*.4,2,pe-R*.8),c.fillStyle(D.towerNear,1)}c.fillStyle(D.bridgeColor,D.bridgeAlpha);for(let he=d+R*6;he(he.offsetCol+2.95)*R),M=R*.9,I=n-R*1.8,H=6,Y=R*1.7,P=i+R*.08,U=R*2.05,$=P+U,G=R*9.4,q=S-G/2,K=$-2,W=R*3.1,V=K+W,Q=R*2.3;c.fillStyle(12428667,1),c.fillRect(S-R*4.25,V,R*8.5,j-V),c.fillStyle(14141089,.95);for(let he=V+R*.35;heZ&&c.fillRect(Z,P,$e-Z,H),c.fillStyle(8415310,1),c.fillRect($e-4,P,4,R*.62),c.fillRect($e+Y,P,4,R*.62),c.fillStyle(11045217,1),c.fillRect($e,P,Y,4),c.fillStyle(15920612,1),Z=$e+Y}ZS-R*5.4&&he=0&&this.decor.splice(he,1),this.outdoorParking.destroy(),this.outdoorParking=null}const Re=t.add.graphics();Re.setDepth(-300);const Ve=4080460,Ge=15262424,qe=[{x:d+R*2.2,count:5},{x:g-R*11.4,count:5}];Re.lineStyle(0,0,0),Re.fillStyle(Ve,1);for(const he of qe)Re.fillRect(he.x,k,R*12.8,R*3.8);Re.lineStyle(1,Ge,.95);for(const he of qe)for(let $e=0;$eS-R;for(let ut=0;ut=0&&this.decor.splice(a,1),this.outdoorParking.destroy(),this.outdoorParking=null}if(this.outdoorBackdrop){const a=this.decor.indexOf(this.outdoorBackdrop);a>=0&&this.decor.splice(a,1),this.outdoorBackdrop.destroy(),this.outdoorBackdrop=null}this.buildOutdoorBackdrop(t,r,o,i,n,{skipLabels:!0})}buildBoundaryDecor(t,n,i){const r=t.add.graphics();r.setDepth(-140);const o=t.add.graphics();o.setDepth(-95);const a=((n[n.length-1]?.offsetCol??0)+Qn)*R,c=ur*R,d=Qn*R,m=R*2,h=R*20;this.buildOutdoorBackdrop(t,a,c,n,i),r.fillStyle(2498844,1),r.fillRect(-R,0,a+R*2,c),r.fillStyle(3221794,1),r.fillRect(0,0,a,c),r.fillStyle(6048831,1),r.fillRect(0,0,a,8),r.fillRect(0,c-8,a,8),r.fillRect(0,0,8,c),r.fillRect(a-8,0,8,c),r.fillStyle(2367001,1),r.fillRect(8,8,a-16,3),r.fillRect(8,c-11,a-16,3),r.fillStyle(1709844,1),r.fillRect(0,0,a,m),r.fillStyle(4931637,1),r.fillRect(0,m-5,a,5),r.fillStyle(4208173,1),r.fillRect(0,m,a,c-m),r.fillStyle(4865588,1),r.fillRect(0,R*8,a,R*4),r.fillStyle(3813416,1),r.fillRect(0,h,a,c-h),r.lineStyle(1,5917503,.32);for(let p=0;p<=a;p+=R)r.beginPath(),r.moveTo(p,m),r.lineTo(p,c),r.strokePath();for(let p=m;p<=c;p+=R)r.beginPath(),r.moveTo(0,p),r.lineTo(a,p),r.strokePath();for(let p=R*3;pI.id===p.id);r.fillStyle(5785659,1),r.fillRect(g-10,0,d+20,c),r.fillStyle(2301208,1),r.fillRect(g-4,0,d+8,c),r.lineStyle(2,8087640,.9),r.strokeRect(g-10,0,d+20,c),r.lineStyle(2,10982014,.34),r.strokeRect(g-4,0,d+8,c),r.fillStyle(1578259,1),r.fillRect(g-4,0,d+8,R),r.fillStyle(7166796,1),r.fillRect(g+R*5.5,R*.55,R*9,5),r.fillStyle(9074018,1),r.fillRect(g-10,0,8,8),r.fillRect(g+d+2,0,8,8),r.fillRect(g-10,c-8,8,8),r.fillRect(g+d+2,c-8,8,8),r.fillStyle(3221536,1),r.fillRect(g-4,h,d+8,6);const v=g+R*.7,b=g+R*14.65,w=R*1.05,k=R*4.45,S=R*6.4,j=w+S+R*.35,N=R*.55,L=x%2===0?6115909:5069382,A=x%2===0?4609113:5984070,D=x%2===0?5205640:7297908,O=x%2===0?5666919:9073231,T=x%2===0?7045045:10119803,M=x%2===0?6196089:10979160;r.fillStyle(2827295,1),r.fillRect(g+R*.58,j,d-R*1.16,R*.44),r.fillStyle(7692879,1),r.fillRect(g+R*.92,j+2,d-R*1.84,2),r.fillRect(g+R*4.3,j-R*.2,4,R*.84),r.fillRect(g+d-R*4.3,j-R*.2,4,R*.84),o.fillStyle(1906966,1),o.fillRect(v,w,k,S),o.fillRect(b,w,k,S),o.fillStyle(3090722,1),o.fillRect(v+4,w+4,k-8,S-8),o.fillRect(b+4,w+4,k-8,S-8),o.fillStyle(L,1),o.fillRect(v+4,w+4,k-8,R*.7),o.fillStyle(A,1),o.fillRect(b+4,w+4,k-8,R*.7),o.fillStyle(D,.95),o.fillRect(v+4,w+R*1.15,k-8,S-R*1.45),o.fillStyle(O,.95),o.fillRect(b+4,w+R*1.15,k-8,S-R*1.45),o.fillStyle(15127204,.16),o.fillRect(v+10,w+10,k-20,2),o.fillRect(b+10,w+10,k-20,2),o.lineStyle(1,6181444,.28);for(let I=v+12;I","#2d241c","#e8d5b6","8px"),this.decor.push(r,o)}buildMap(t,n=su()){this.clearSceneDecor();const i=Jn(),r=((i[i.length-1]?.offsetCol??0)+Qn)*R,o=ur*R,a=this.getOutdoorMetrics(r,o);this.buildBoundaryDecor(t,i,n);for(const m of i){const h=(m.offsetCol+Qn/2)*R,p=t.add.image(m.offsetCol*R,0,"office-bg");p.setOrigin(0,0),p.setDepth(-100),this.bgSprites.push(p),this.addForegroundOccluders(t,m);const g=t.add.text(h,6,m.name,{fontSize:"14px",fontFamily:"monospace",color:"#ffffff",stroke:"#000000",strokeThickness:3,align:"center"});g.setOrigin(.5,0),g.setDepth(99999),g.setData("officeId",m.id),this.nameLabels.push(g)}const c=cE(i),d=Gf.buildWallBodies(t,c);return console.log("[OfficeMapBuilder] Composite map ready —",i.length,"offices"),{wallBodies:d,collisionGrid:c,waterfront:{dockCenterX:a.gateCenterX,dockY:a.dockY,waterTopY:a.waterTopY,waterBottomY:a.bottomY}}}getBackgroundSprites(){return this.bgSprites}getNameLabels(){return this.nameLabels}updateLabel(t,n){const i=this.nameLabels.find(r=>r.getData("officeId")===t);i&&i.setText(n)}static buildWallBodies(t,n){const i=n.length,r=i>0?n[0].length:0,o=t.physics.add.staticGroup();for(let a=0;a=0){const h=d-c,p=t.add.rectangle(c*R+h*R/2,a*R+R/2,h*R,R);p.setVisible(!1),o.add(p),c=-1}}}return o}static buildWallBodiesForRegion(t,n,i,r){const o=n.length,a=o>0?n[0].length:0;for(let c=0;c=0){const p=m-d,g=t.add.rectangle((r+d)*R+p*R/2,c*R+R/2,p*R,R);g.setVisible(!1),i.add(g),d=-1}}}}}const at={IDLE:"idle",WALK:"walk",TYPE:"type",THINK:"think",CELEBRATE:"celebrate",COFFEE:"coffee",CHAT:"chat",PRACTICE:"practice",REFLECT:"reflect",SLEEP:"sleep",PRESENT:"present"},Xa={DOWN:"down",LEFT:"left",RIGHT:"right",UP:"up"};function Vx(e,t){return e+Math.random()*(t-e)}function G3(e,t){return Math.floor(Vx(e,t+1))}class q3 extends Zi.GameObjects.Container{constructor(t,n,i,r,o,a){const c=o*R+R/2,d=a*R+R/2;super(t,c,d),this.officeId="office-0",this.agentState=at.IDLE,this.dir=Xa.DOWN,this.isActive=!1,this.currentTool=null,this.seatId=null,this.urgency="relaxed",this.isSubagent=!1,this.parentAgentId=null,this.lastEventAt=0,this.stateTimer=0,this.seatTimer=0,this.wanderCount=0,this.hueShift=0,this.bubbleText=null,this.bubbleTimer=0,this.myceliumEffect=null,this.myceliumEffectTimer=0,this.myceliumSession=null,this.bubbleObj=null,this.currentPath=[],this.pathIndex=0,this.pathfinder=null,this.arrivalCallback=null,this.agentId=n,this.displayName=i,this.palette=r%6,this.wanderTimer=Vx(.5,2.5),this.wanderLimit=G3(rE,sE);const m=`char_${this.palette}`;this.shadow=t.add.ellipse(0,C3,S3,w3,1382432,j3),this.shadow.setOrigin(.5,.5),this.add(this.shadow),this.sprite=t.add.sprite(0,0,m),this.sprite.setScale(_3,k3),this.sprite.setOrigin(.5,1),this.add(this.sprite),t.add.existing(this),t.physics.world.enable(this);const h=Math.min(12,R-4),p=Math.min(6,R/2);this.body.setSize(h,p),this.body.setOffset(-h/2,-p),this.body.setCollideWorldBounds(!0),this.setDepth(d),this.playAnimForState()}setPathfinder(t){this.pathfinder=t}getState(){return this.agentState}getTilePos(){return{x:Math.floor(this.x/R),y:Math.floor(this.y/R)}}setAgentState(t){this.agentState!==t&&(this.agentState=t,this.playAnimForState())}setDirection(t){this.dir!==t&&(this.dir=t,this.playAnimForState())}playAnimForState(){if(!this.sprite?.anims)return;const t=`char_${this.palette}`,n=this.dir,i=n===Xa.LEFT;this.sprite.setFlipX(i);const r=i?"right":n;switch(this.agentState){case at.WALK:this.sprite.play(`${t}_walk_${r}`,!0);break;case at.CELEBRATE:this.sprite.play(`${t}_celebrate_${r}`,!0);break;case at.TYPE:case at.PRESENT:case at.PRACTICE:this.sprite.play(`${t}_type_${r}`,!0);break;case at.THINK:case at.REFLECT:this.sprite.play(`${t}_read_${r}`,!0);break;case at.COFFEE:case at.CHAT:this.sprite.play(`${t}_coffee_${r}`,!0);break;case at.SLEEP:case at.IDLE:default:this.sprite.play(`${t}_idle_${r}`,!0);break}}async walkTo(t,n,i){if(!this.pathfinder||!this.sprite?.anims)return!1;const r=this.getTilePos(),o=await this.pathfinder.findPath(r,{x:t,y:n});return o.length===0?!1:(this.currentPath=o,this.pathIndex=0,this.arrivalCallback=i??null,this.setAgentState(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 T3;case"normal":return R3;default:return A3}}showBubble(t,n=O3){this.bubbleText=t,this.bubbleTimer=n,this.updateBubbleDisplay()}clearBubble(){this.bubbleText=null,this.bubbleTimer=0,this.bubbleObj&&(this.bubbleObj.destroy(),this.bubbleObj=null)}updateBubbleDisplay(){if(this.bubbleObj&&(this.bubbleObj.destroy(),this.bubbleObj=null),!this.bubbleText)return;const t=this.scene.add.container(this.x,this.y-70),n=this.scene.add.text(0,0,this.bubbleText,{fontSize:"10px",fontFamily:"monospace",color:"#1a1a2e",backgroundColor:"#ffffff",padding:{x:4,y:2},resolution:2});n.setOrigin(.5,1);const i=this.scene.add.graphics(),r=n.width+8,o=n.height+4;i.fillStyle(16777215,.95),i.fillRoundedRect(-r/2,-o,r,o,4),i.lineStyle(1,6710886,.5),i.strokeRoundedRect(-r/2,-o,r,o,4),t.add([i,n]),t.setDepth(1e5),this.bubbleObj=t}update(t){this.setDepth(this.y),this.bubbleObj&&(this.bubbleObj.setPosition(this.x,this.y-70),this.bubbleTimer>0&&(this.bubbleTimer-=t,this.bubbleTimer<=0&&this.clearBubble())),this.stateTimer>0&&(this.stateTimer-=t,this.stateTimer<=0&&(this.stateTimer=0,this.agentState===at.CELEBRATE&&this.setAgentState(at.IDLE),this.agentState===at.COFFEE&&(this.setAgentState(at.IDLE),this.wanderTimer=Vx(Rf,Af)),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],i=n.x*R+R/2,r=n.y*R+R/2,o=i-this.x,a=r-this.y,c=Math.sqrt(o*o+a*a),m=this.getWalkSpeed()*t;if(c<=m+.5){this.x=i,this.y=r,this.pathIndex++,this.pathIndex>=this.currentPath.length&&this.arriveAtDestination();return}this.x+=o/c*m,this.y+=a/c*m,Math.abs(o)>Math.abs(a)?this.setDirection(o>0?Xa.RIGHT:Xa.LEFT):this.setDirection(a>0?Xa.DOWN:Xa.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 _g,Kk;function W3(){return Kk||(Kk=1,_g=function(){this.pointsToAvoid={},this.startX,this.callback,this.startY,this.endX,this.endY,this.nodeHash={},this.openList}),_g}var kg,Zk;function Y3(){return Zk||(Zk=1,kg=function(e,t,n,i,r){this.parent=e,this.x=t,this.y=n,this.costSoFar=i,this.simpleDistanceToTarget=r,this.bestGuessDistance=function(){return this.costSoFar+this.simpleDistanceToTarget}}),kg}var Mf={exports:{}},X3=Mf.exports,Qk;function K3(){return Qk||(Qk=1,(function(e,t){(function(){var n,i,r,o,a,c,d,m,h,p,g,x,v,b,w;r=Math.floor,p=Math.min,i=function(k,S){return kS?1:0},h=function(k,S,j,N,L){var A;if(j==null&&(j=0),L==null&&(L=i),j<0)throw new Error("lo must be non-negative");for(N==null&&(N=k.length);jM;0<=M?T++:T--)O.push(T);return O}).apply(this).reverse(),D=[],N=0,L=A.length;NI;0<=I?++O:--O)H.push(a(k,j));return H},b=function(k,S,j,N){var L,A,D;for(N==null&&(N=i),L=k[j];j>S;){if(D=j-1>>1,A=k[D],N(L,A)<0){k[j]=A,j=D;continue}break}return k[j]=L},w=function(k,S,j){var N,L,A,D,O;for(j==null&&(j=i),L=k.length,O=S,A=k[S],N=2*S+1;Np[0].length-1||Y>p.length-1||P>p[0].length-1||U>p.length-1)throw new Error("Your start or end point is outside the scope of your grid.");if(H===P&&Y===U){G([]);return}for(var q=p[U][P],K=!1,W=0;W"u"){S.shift();continue}if(Y.openList.size()===0){Y.callback(null),delete k[H],S.shift();continue}var P=Y.openList.pop();if(Y.endX===P.x&&Y.endY===P.y){var U=[];U.push({x:P.x,y:P.y});for(var $=P.parent;$!=null;)U.push({x:$.x,y:$.y}),$=$.parent;U.reverse();var G=U;Y.callback(G),delete k[H],S.shift();continue}P.list=r,P.y>0&&A(Y,P,0,-1,c*T(P.x,P.y-1)),P.x0&&A(Y,P,-1,0,c*T(P.x-1,P.y)),L&&(P.x>0&&P.y>0&&(b||D(p,N,P.x,P.y-1,P)&&D(p,N,P.x-1,P.y,P))&&A(Y,P,-1,-1,d*T(P.x-1,P.y-1)),P.x0&&(b||D(p,N,P.x,P.y-1,P)&&D(p,N,P.x+1,P.y,P))&&A(Y,P,1,-1,d*T(P.x+1,P.y-1)),P.x>0&&P.y[...n]),this.gridRows=this.grid.length,this.gridCols=this.gridRows>0?this.grid[0].length:0,this.easystar=new J3.js,this.easystar.setGrid(this.grid),this.easystar.setAcceptableTiles([0]),this.easystar.setIterationsPerCalculation(800)}findPath(t,n){return new Promise(i=>{if(t.x<0||t.x>=this.gridCols||t.y<0||t.y>=this.gridRows||n.x<0||n.x>=this.gridCols||n.y<0||n.y>=this.gridRows){i([]);return}if(this.grid[n.y]?.[n.x]===1){const r=this.findNearestWalkable(n.x,n.y);if(!r){i([]);return}n=r}if(this.grid[t.y]?.[t.x]===1){const r=this.findNearestWalkable(t.x,t.y);if(!r){i([]);return}t=r}this.easystar.findPath(t.x,t.y,n.x,n.y,r=>{i(r??[])}),this.easystar.calculate()})}blockTile(t,n){n>=0&&n=0&&t=0&&n=0&&t=this.grid.length||t<0||t<0||t>=this.grid[0].length?!1:this.grid[n][t]===0}getWalkableTiles(){const t=[];for(let n=0;n=r&&e=o&&tt4(`${e.id}-${c.id}`,c.localX+t,c.localY,c.type)),doorways:o.doorways.map(c=>({id:`${e.id}-${c.id}`,tileX:c.localX+t,tileY:c.localY}))}}const i={};for(const[r,o]of e.seats){const a=i4(r,o),c=`${e.id}-${a}`;if(!n[c])continue;i[c]=(i[c]??0)+1;const d=i[c],m=a==="workspace"?"desk":a==="meetingRoom"?"meeting":a==="breakRoom"?"break":a==="leaderOffice"?"leader":"lobby",h=n4(r,o,a);n[c].seats.push(e4(`${e.id}-${m}-${d}`,r+t,o,h))}return n}function dE(e){const t=e??Jn(),n={};for(const i of t)Object.assign(n,r4(i));return n}let ko=dE();function s4(e){ko=dE(e)}function fE(e){const t=ko[`${e}-workspace`]?.seats??[],n=ko[`${e}-leaderOffice`]?.seats??[];return[...t,...n]}function nS(){return Object.values(ko).flatMap(e=>e.seats)}function o4(e){const t=ko[e];if(!t)return null;const{x:n,y:i,w:r,h:o}=t.bounds,a=e.split("-").slice(0,2).join("-"),d=Jn().find(g=>g.id===a);if(!d)return{x:n+1,y:i+1};const m=lE(d.mapStr),h=d.offsetCol,p=[];for(let g=i;g=0&&v({x:n.tileX,y:n.tileY})):[]}function ea(e,t){return e+Math.random()*(t-e)}function a4(e,t){return Math.floor(ea(e,t+1))}function Zr(e,t){return e.length>t?e.slice(0,t)+"...":e}function rS(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 l4{constructor(t){this.pendingDespawn=new Set,this.scene=t}applyEvent(t){const n=t.data??{},i=t.agent_id||"openopc-main";if(i==="user")return;const r=i.startsWith("subagent-"),o=r?typeof n.parent_agent_id=="string"?n.parent_agent_id:"openopc-main":null,a=r?`Sub ${i.slice(-4)}`:void 0,c=this.scene.ensureAgent(i,a,r,o);switch(c.lastEventAt=Date.now(),typeof n.task_preview=="string"&&(c.taskSummary=n.task_preview),typeof n.result_preview=="string"&&(c.taskSummary=n.result_preview),t.type){case"tool_start":this.onToolStart(c,n);break;case"tool_done":this.onToolDone(c,n);break;case"agent_active":this.onAgentActive(c);break;case"waiting":this.onWaiting(c);break;case"reflect_start":this.onReflectStart(c);break;case"reflect_done":this.onReflectDone(c);break;case"skill_synthesized":this.onSkillSynthesized(c,n);break;case"subagent_spawn":this.onSubagentSpawn(c,i,o);break;case"subagent_done":this.onSubagentDone(c,i);break;case"message_in":this.onMessageIn(c,n);break;case"message_out":this.onMessageOut(c,n);break;case"practice_start":this.onPracticeStart(c,n);break;case"practice_done":this.onPracticeDone(c);break;case"task_routed":this.onTaskRouted(c,n);break;case"task_delegated":this.onTaskDelegated(c,i,n);break;case"delegation_done":this.onDelegationDone(c,n);break;case"agent_spawned":this.onAgentSpawned(c,i,n);break;case"agent_removed":this.onAgentRemoved(c,i);break;case"collab_started":this.onCollabStarted(c);break;case"collab_ended":this.onCollabEnded(c);break;case"skill_published":this.onSkillPublished(c,n);break;case"skill_adopted":this.onSkillAdopted(c,n);break;case"mycelium_transport":this.onMyceliumTransport(c,i,n);break;case"mycelium_crystallize":this.onMyceliumCrystallize(c,i,n);break;case"mycelium_spore":this.onMyceliumSpore(c,i,n);break;case"mycelium_decompose":this.onMyceliumDecompose(c,i,n);break;case"mycelium_unit_created":this.onMyceliumUnitCreated(c,n);break;case"mycelium_germinate":this.onMyceliumGerminate(c,i,n);break;case"hyphal_strengthen":this.onHyphalStrengthen(i,n);break;case"hyphal_weaken":this.onHyphalWeaken(i,n);break}}onToolStart(t,n){const i=typeof n.tool_name=="string"?n.tool_name:"tool",r=rS(i);t.urgency="urgent",t.currentTool=i,t.isActive=!0,t.showBubble(`${r}...`),this.sendToSeat(t)}onToolDone(t,n){const i=typeof n.tool_name=="string"?n.tool_name:t.currentTool,r=rS(i);t.currentTool=null,t.setAgentState(at.CELEBRATE),t.stateTimer=Ya,t.isActive=!1,t.showBubble(`${r} done`)}onAgentActive(t){t.urgency="urgent",t.isActive=!0,t.currentTool||this.sendToSeat(t)}onWaiting(t){t.urgency="relaxed",t.isActive=!1,t.currentTool=null,t.showBubble("Waiting");const n=this.moveToZone(t,"breakRoom",at.COFFEE);n||t.setAgentState(at.IDLE),n&&(t.stateTimer=ea(M3,D3))}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=Ya,t.showBubble("Insight!")}onSkillSynthesized(t,n){const i=Zr(String(n.skill_name??"new"),20);t.setAgentState(at.PRESENT),t.showBubble(`New Skill: ${i}`)}onSubagentSpawn(t,n,i){this.placeAtDoorway(t),t.urgency="urgent",t.isActive=!0,t.showBubble("Spawned"),this.sendToSeat(t)}onSubagentDone(t,n){t.urgency="relaxed",t.currentTool=null,t.isActive=!1,t.showBubble("Finished"),this.moveToDoorway(t)?this.pendingDespawn.add(n):this.scene.removeAgent(n)}onMessageIn(t,n){t.urgency="urgent";const i=typeof n.content_preview=="string"?n.content_preview:"";i&&(t.taskSummary=i);const r=i?Zr(i,30):"New task";t.showBubble(r),t.isActive=!0,this.sendToSeat(t)}onMessageOut(t,n){const i=typeof n.content_preview=="string"?n.content_preview:"";i&&(t.taskSummary=i);const r=i?Zr(i,30):"Reply sent";t.showBubble(`Reply: ${r}`)}onPracticeStart(t,n){t.urgency="normal";const i=typeof n.target_domain=="string"?n.target_domain:"Practice";t.showBubble(`Practicing: ${Zr(i,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=Ya,t.showBubble("Practice done!")}onTaskRouted(t,n){t.urgency="urgent";const i=typeof n.method=="string"?n.method:"auto";t.isActive=!0,this.sendToSeat(t),t.showBubble(`Assigned (${i})`)}onTaskDelegated(t,n,i){t.urgency="normal",t.stateTimer=ea(Uk,Gk);const r=typeof i.target=="string"?i.target:"?";t.setAgentState(at.CHAT),t.showBubble(`Delegating to ${r}...`);const o=this.scene.getAgent(r);o&&(o.parentAgentId=n,o.showBubble("Receiving task..."))}onDelegationDone(t,n){const i=typeof n.target=="string"?n.target:"";if(t.setAgentState(at.IDLE),t.showBubble("Delegation complete"),i){const r=this.scene.getAgent(i);r&&(r.parentAgentId=null)}}onAgentSpawned(t,n,i){const r=typeof i.role_name=="string"?i.role_name:n;t.displayName=r,this.placeAtDoorway(t),this.sendToSeat(t),t.showBubble(`${r} joined`)}onAgentRemoved(t,n){t.showBubble("Leaving..."),this.moveToDoorway(t)?this.pendingDespawn.add(n):this.scene.removeAgent(n)}onCollabStarted(t){t.urgency="normal",t.isActive=!1,t.stateTimer=ea(Uk,Gk),this.moveToZone(t,"meetingRoom",at.CHAT),t.showBubble("Collaborating...")}onCollabEnded(t){t.stateTimer=Ya,t.setAgentState(at.CELEBRATE),t.showBubble("Collaboration done!")}onSkillPublished(t,n){const i=Zr(String(n.skill_name??"skill"),20);t.setAgentState(at.CELEBRATE),t.stateTimer=Ya,t.showBubble(`Published: ${i}`)}onSkillAdopted(t,n){const i=Zr(String(n.skill_name??"skill"),20);t.showBubble(`Adopted: ${i}`)}onMyceliumTransport(t,n,i){const r=typeof i.source=="string"?i.source:n,o=typeof i.target=="string"?i.target:null,a=typeof i.domain=="string"?Zr(i.domain,15):"?",c=this.scene.ensureAgent(r);if(c.myceliumEffect="transport_send",c.myceliumEffectTimer=3,c.showBubble(`-> [${a}]`),o){const d=this.scene.ensureAgent(o);d.myceliumEffect="transport_recv",d.myceliumEffectTimer=2,d.showBubble("Receiving...");const m=d.getTilePos();c.walkTo(m.x,m.y+1)}}onMyceliumCrystallize(t,n,i){const r=Array.isArray(i.corroborating_agents)?i.corroborating_agents:[],o=Zr(String(i.content_preview??"Knowledge"),22),a=Array.from(new Set([n,...r])),c=`${t.officeId}-meetingRoom`,d=ko[c]?.seats??[];for(let m=0;m{p.setDirection(x.facing),p.setAgentState(at.CHAT)}),p.showBubble(h===n?`Crystal: ${o}`:"Crystal!")}}onMyceliumSpore(t,n,i){const r=Zr(String(i.content_preview??"Breakthrough"),20);t.myceliumEffect="spore_send",t.myceliumEffectTimer=4,t.setAgentState(at.PRESENT),t.showBubble(`Breakthrough! ${r}`),this.moveToZone(t,"breakRoom")}onMyceliumDecompose(t,n,i){const r=Zr(String(i.humus_preview??"Lesson learned"),22);t.myceliumEffect="decompose",t.myceliumEffectTimer=4,t.setAgentState(at.REFLECT),t.showBubble(`Learning: ${r}`),this.moveToZone(t,"meetingRoom")}onMyceliumUnitCreated(t,n){const i=String(n.nutrient_type??"insight").slice(0,1).toUpperCase();t.showBubble(`[${i}]...`,2)}onMyceliumGerminate(t,n,i){const r=typeof i.target_agent=="string"?i.target_agent:n,o=this.scene.ensureAgent(r);o.myceliumEffect=null,o.setAgentState(at.CELEBRATE),o.stateTimer=Ya,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=a4(rE,sE),n.wanderTimer=ea(Rf,Af))):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=ea(Rf,Af);continue}const i=this.scene.getWalkableTilesForOffice(n.officeId);if(i.length>0){n.urgency="relaxed";const r=i[Math.floor(Math.random()*i.length)];n.walkTo(r.x,r.y),n.wanderCount++}n.wanderTimer=ea(Rf,Af)}}}}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=qk+Math.random()*Wk)}).then(i=>{i||(t.setAgentState(at.TYPE),t.setDirection(n.facing),t.isActive||(t.seatTimer=qk+Math.random()*Wk))})}moveToZone(t,n,i){const r=`${t.officeId}-${n}`,o=ko[r];if(!o)return!1;if(o.seats.length>0){const c=new Set;for(const m of this.scene.agents.values()){if(m===t||m.isMoving)continue;const h=m.getTilePos();c.add(`${h.x},${h.y}`)}for(const m of this.scene.agents.values()){if(m===t||!m.isMoving)continue;const h=m.currentPath;if(h?.length){const p=h[h.length-1];c.add(`${p.x},${p.y}`)}}const d=o.seats.find(m=>!c.has(`${m.tileX},${m.tileY}`));if(d)return t.walkTo(d.tileX,d.tileY,()=>{t.setDirection(d.facing),i?t.setAgentState(i):t.setAgentState(at.IDLE)}),!0}const a=o4(r);return a?(t.walkTo(a.x,a.y,()=>{i?t.setAgentState(i):t.setAgentState(at.IDLE)}),!0):!1}moveToDoorway(t){const n=iS(t.officeId);if(n.length===0)return!1;const i=n[Math.floor(Math.random()*n.length)];return t.walkTo(i.x,i.y),!0}placeAtDoorway(t){const n=iS(t.officeId);if(n.length>0){const i=n[Math.floor(Math.random()*n.length)];t.setPosition(i.x*R+R/2,i.y*R+R/2)}}}class c4 extends Zi.Scene{constructor(){super("Office"),this.yachtLoopStarted=!1,this.outdoorIsDay=null,this.agents=new Map,this.seats=[],this.walkableTiles=[],this.walkableTilesByOffice=new Map,this.dragState={pointerId:null,lastX:0,lastY:0,moved:!1}}create(){this.bridge=this.registry.get("bridge");const t=su();this.outdoorIsDay=t,this.cameras.main.setBackgroundColor(t?Fk:Vk),this.mapBuilder=new Gf,this.mapData=this.mapBuilder.buildMap(this,t),this.pathfinder=new tS(this.mapData.collisionGrid),this.walkableTiles=this.pathfinder.getWalkableTiles(),this.buildWalkableTilesByOffice(),this.seats=nS().map(d=>({...d})),this.behavior=new l4(this);const n=xg*R,i=zc*R,r=-ru,o=-al,a=n+ru*2,c=i+al+dl;this.physics.world.setBounds(r,o,a,c),this.cameras.main.setBounds(r,o,a,c),this.resetCameraView(!1),this.startWaterfrontLoop(),this.input.on("pointerdown",d=>{d.leftButtonDown()&&(this.dragState.pointerId=d.id,this.dragState.lastX=d.x,this.dragState.lastY=d.y,this.dragState.moved=!1)}),this.input.on("pointermove",d=>{if(!d.isDown||this.dragState.pointerId!==d.id)return;const m=d.x-this.dragState.lastX,h=d.y-this.dragState.lastY;if(!this.dragState.moved&&Math.abs(d.downX-d.x)+Math.abs(d.downY-d.y)<6)return;this.dragState.moved=!0;const p=this.cameras.main;p.stopFollow(),p.scrollX-=m/p.zoom,p.scrollY-=h/p.zoom,this.dragState.lastX=d.x,this.dragState.lastY=d.y}),this.input.on("wheel",(d,m,h,p)=>{const g=this.cameras.main,x=this.input.activePointer,v=g.getWorldPoint(x.x,x.y),b=this.getMinCameraZoom(g),w=Zi.Math.Clamp(g.zoom-p*.0015,b,3);g.setZoom(w);const k=g.getWorldPoint(x.x,x.y);g.scrollX+=v.x-k.x,g.scrollY+=v.y-k.y,g.scrollX=g.clampX(g.scrollX),g.scrollY=g.clampY(g.scrollY)}),this.scale.on("resize",()=>{const d=this.cameras.main,m=this.getMinCameraZoom(d);d.zoom{if(this.dragState.pointerId!==d.id)return;const m=this.dragState.pointerId===d.id&&this.dragState.moved;if(this.dragState.pointerId=null,this.dragState.moved=!1,m)return;const h=this.cameras.main.getWorldPoint(d.x,d.y);let p=null,g=1/0;for(const x of this.agents.values()){const v=Zi.Math.Distance.Between(h.x,h.y,x.x,x.y);v<24&&vthis.add.circle(q,5,2.1,14284031,.95));U.add($),U.setDepth(-250),U.setAlpha(0),U.setRotation(-.04),U.setScale(o),this.tweens.add({targets:[p,g,x],scaleX:{from:.85,to:1.2},alpha:{from:.5,to:.2},duration:900,yoyo:!0,repeat:-1});const G=()=>{U.setPosition(c,a),U.setAlpha(0),U.setRotation(-.04),p.setAlpha(.55),g.setAlpha(.42),x.setAlpha(.24),this.tweens.add({targets:U,x:d,alpha:1,rotation:.015,duration:7200,ease:"Sine.InOut",onComplete:()=>{p.setAlpha(.22),g.setAlpha(.14),x.setAlpha(.08),this.tweens.add({targets:U,x:d+4,y:a+R*.12,duration:1400,yoyo:!0,repeat:2,ease:"Sine.InOut"}),this.time.delayedCall(3600,()=>{p.setAlpha(.48),g.setAlpha(.32),x.setAlpha(.18),this.tweens.add({targets:U,x:m,alpha:0,rotation:-.055,duration:7600,ease:"Sine.InOut",onComplete:()=>{this.time.delayedCall(2400,G)}})})}})};G()}buildWalkableTilesByOffice(){this.walkableTilesByOffice.clear();const t=Jn();for(const n of t){const i=[];for(const r of this.walkableTiles)r.x>=n.offsetCol&&r.xm.id===t);if(!i)return;const r=(i.offsetCol+Qn/2)*R,o=zc/2*R,a=this.cameras.main,c=this.getMinCameraZoom(a),d=Zi.Math.Clamp(Math.min(this.scale.width/((Qn+4)*R),this.scale.height/((zc-4)*R)),c,Math.max(1.5,c));a.stopFollow(),this.tweens.add({targets:a,zoom:d,duration:380,ease:"Cubic.easeOut"}),a.pan(r,o,380,"Cubic.easeOut")}resolveOfficeForAgent(t){const n=F3(t);if(n)return n.id;const i=Jn();let r=null,o=-1;for(const c of i){const d=fE(c.id),m=c.assignedAgents.length,h=d.length-m;h>o&&(r=c,o=h)}const a=r?.id??i[0]?.id??"office-0";return vg(a,t),a}addAgent(t,n,i=!1,r=null,o,a,c){if(this.agents.has(t))return this.agents.get(t);const d=n??t,m=a??this.agents.size%6,h=o?(vg(o,t),o):this.resolveOfficeForAgent(t),p=c?this.seats.find(j=>j.id===c&&!j.assigned)??this.findFreeSeatInOffice(h):this.findFreeSeatInOffice(h),v=(Jn().find(j=>j.id===h)?.offsetCol??0)+5,b=20;let w=v,k=b;p&&(w=p.tileX,k=p.tileY,p.assigned=!0,p.assignedTo=t);const S=new q3(this,t,d,m,w,k);return S.officeId=h,S.setPathfinder(this.pathfinder),S.seatId=p?.id??null,S.isSubagent=i,S.parentAgentId=r,p&&(S.setAgentState(at.TYPE),S.setDirection(p.facing),S.seatTimer=10),this.agents.set(t,S),S}removeAgent(t){const n=this.agents.get(t);if(n){if(n.seatId){const i=this.seats.find(r=>r.id===n.seatId);i&&(i.assigned=!1,i.assignedTo=null)}n.destroy(),this.agents.delete(t);try{const{unassignAgent:i}=require("../map/OfficeStore");i(t)}catch{}}}getAgent(t){return this.agents.get(t)}ensureAgent(t,n,i=!1,r=null,o,a,c){const d=this.agents.get(t);return d?(o&&d.officeId!==o&&this.reassignAgent(t,o),c&&d.seatId!==c&&this.changeAgentSeat(t,c),d):this.addAgent(t,n,i,r,o,a,c)}findFreeSeatInOffice(t){const n=this.seats.filter(i=>i.id.startsWith(`${t}-desk-`)).find(i=>!i.assigned);return n||(this.seats.filter(i=>i.id.startsWith(`${t}-leader-`)).find(i=>!i.assigned)??null)}getSeatById(t){return this.seats.find(n=>n.id===t)}reassignAgent(t,n){const i=this.agents.get(t);if(!i)return;if(i.seatId){const m=this.seats.find(h=>h.id===i.seatId);m&&(m.assigned=!1,m.assignedTo=null)}i.stopMovement(),vg(n,t),i.officeId=n;const r=this.findFreeSeatInOffice(n),c=(Jn().find(m=>m.id===n)?.offsetCol??0)+5,d=20;r?(r.assigned=!0,r.assignedTo=t,i.seatId=r.id,i.setPosition(r.tileX*R+R/2,r.tileY*R+R/2),i.setAgentState(at.TYPE),i.setDirection(r.facing),i.seatTimer=10):(i.seatId=null,i.setPosition(c*R+R/2,d*R+R/2))}getCharacterCards(){const t=[];for(const n of this.agents.values())t.push({id:n.agentId,displayName:n.displayName,state:n.agentState,currentTool:n.currentTool,isSubagent:n.isSubagent,parentAgentId:n.parentAgentId,taskSummary:n.taskSummary,lastEventAt:n.lastEventAt,officeId:n.officeId,seatId:n.seatId});return t}changeAgentSeat(t,n){const i=this.agents.get(t);if(!i)return;if(i.seatId){const o=this.seats.find(a=>a.id===i.seatId);o&&(o.assigned=!1,o.assignedTo=null)}const r=this.seats.find(o=>o.id===n);!r||r.assigned&&r.assignedTo!==t||(r.assigned=!0,r.assignedTo=t,i.seatId=n,i.stopMovement(),i.setPosition(r.tileX*R+R/2,r.tileY*R+R/2),i.setAgentState(at.TYPE),i.setDirection(r.facing),i.seatTimer=10)}rebuildOfficeCollision(t,n,i){V3(t,n,i),this.mapData.wallBodies&&this.mapData.wallBodies.clear(!0,!0);const r=Jn(),o=cE(r),a=Gf.buildWallBodies(this,o);this.mapData={...this.mapData,wallBodies:a,collisionGrid:o},this.pathfinder=new tS(o),this.walkableTiles=this.pathfinder.getWalkableTiles(),this.buildWalkableTilesByOffice(),s4(r),this.seats=nS().map(c=>({...c}));for(const c of this.agents.values())c.setPathfinder(this.pathfinder),c.stopMovement();console.log("[OfficeScene] Office collision rebuilt —",t,"walkable:",this.walkableTiles.length)}renameOffice(t,n){$3(t,n),this.mapBuilder.updateLabel(t,n)}checkOutdoorDayNight(){this.applyOutdoorLighting(su())}syncOutdoorLighting(){this.applyOutdoorLighting(su())}applyOutdoorLighting(t){t!==this.outdoorIsDay&&(this.outdoorIsDay=t,this.cameras.main.setBackgroundColor(t?Fk:Vk),this.mapBuilder.refreshOutdoorDayNight(this,t))}getWorldSize(){const t=xg*R,n=zc*R;return{worldW:t+ru*2,worldH:n+al+dl}}getMinCameraZoom(t){const{worldW:n,worldH:i}=this.getWorldSize();return Math.max(t.width/n,t.height/i)}}function u4({bridge:e,active:t=!0}){const n=C.useRef(null),i=C.useRef(null),r=C.useRef(null),o=C.useRef(t);return o.current=t,C.useEffect(()=>{const a=r.current;!a||!a.loop||(t?a.loop.started&&!a.loop.running&&(a.loop.wake(),a.scale.getParentBounds(),a.scale.refresh()):a.loop.running&&a.loop.sleep())},[t]),C.useEffect(()=>{if(!n.current||!i.current)return;const a=n.current,c=i.current,d=(h,p)=>{console.log("[PhaserGame] Creating Phaser game",h,"×",p);const g=L3(c,h,p);g.scene=[B3,c4];const x=new Zi.Game(g);x.registry.set("bridge",e),x.events.once(Zi.Core.Events.READY,()=>{!o.current&&x.loop.running&&x.loop.sleep()}),r.current=x};if(typeof ResizeObserver>"u")return d(a.clientWidth||window.innerWidth-380,a.clientHeight||window.innerHeight-48),()=>{r.current?.destroy(!0),r.current=null};const m=new ResizeObserver(h=>{const p=h[h.length-1].contentRect,g=Math.floor(p.width),x=Math.floor(p.height);if(!(g<1||x<1))if(!r.current)d(g,x);else{const v=r.current.scale;v.getParentBounds(),v.refresh()}});return m.observe(a),()=>{m.disconnect(),r.current?.destroy(!0),r.current=null}},[e]),u.jsx("div",{ref:n,style:{width:"100%",height:"100%"},children:u.jsx("div",{ref:i,style:{width:"100%",height:"100%"}})})}class d4 extends Zi.Events.EventEmitter{constructor(){super(),this.scene=null,this.eventQueue=[],this.snapshotQueue=[]}setScene(t){this.scene=t;for(const n of this.snapshotQueue)this.applySnapshot(n);this.snapshotQueue=[];for(const n of this.eventQueue)this.applyEvent(n);this.eventQueue=[]}getScene(){return this.scene}pushEvent(t){if(!this.scene){this.eventQueue.push(t),this.eventQueue.length>500&&this.eventQueue.shift();return}this.applyEvent(t)}pushSnapshot(t){const n=Object.keys(t.agents??{}).length;if(!this.scene){console.log(`[GameBridge] pushSnapshot queued (scene not ready) — ${n} agents`),this.snapshotQueue=[t],this.eventQueue=[];return}console.log(`[GameBridge] pushSnapshot applying now — ${n} agents`),this.applySnapshot(t)}sendToSeat(t){this.scene&&this.scene.behavior.sendToSeat(this.scene.ensureAgent(t))}setAgentActive(t,n){if(!this.scene)return;const i=this.scene.getAgent(t);i&&(i.isActive=n)}setAgentBubble(t,n){if(!this.scene)return;const i=this.scene.getAgent(t);i&&(n?i.showBubble(n):i.clearBubble())}ensureAgent(t,n,i,r,o){this.scene&&this.scene.ensureAgent(t,n,!1,null,i,r,o)}getCharacterCards(){return this.scene?this.scene.getCharacterCards():[]}getOffices(){return Jn()}renameOffice(t,n){this.scene&&(this.scene.renameOffice(t,n),this.emit("officeChanged"))}assignAgentToOffice(t,n){this.scene&&(this.scene.reassignAgent(t,n),this.emit("officeChanged"))}panToOffice(t){this.scene&&this.scene.panToOffice(t)}resetCamera(){this.scene&&this.scene.resetCameraView()}syncOutdoorLighting(){this.scene&&this.scene.syncOutdoorLighting()}rebuildOfficeCollision(t,n,i){this.scene&&this.scene.rebuildOfficeCollision(t,n,i)}getSeatsForOffice(t){return this.scene?this.scene.seats.filter(n=>n.id.startsWith(`${t}-desk-`)||n.id.startsWith(`${t}-leader-`)).map(n=>({id:n.id,assigned:n.assigned,assignedTo:n.assignedTo})):[]}changeAgentSeat(t,n){this.scene&&(this.scene.changeAgentSeat(t,n),this.emit("officeChanged"))}notifyChannelMessage(t,n){if(this.scene)for(const i of t){const r=this.scene.getAgent(i);r&&(r.showBubble(n.slice(0,30)),setTimeout(()=>r.clearBubble(),4e3))}}triggerCrossOfficeMeeting(t){if(this.scene)for(const n of t){const i=this.scene.getAgent(n);i&&this.scene.behavior.moveToZone(i,"meetingRoom")}}triggerCelebration(t){if(!this.scene)return;const n=this.scene.getAgent(t);n&&(n.showBubble("🎉 Done!"),setTimeout(()=>n.clearBubble(),3e3))}applyEvent(t){this.scene&&(this.scene.behavior.applyEvent(t),this.emit("eventApplied",t))}applySnapshot(t){if(!this.scene){console.warn("[GameBridge] applySnapshot called but scene is null");return}const n=Array.from(this.scene.agents.keys());console.log("[GameBridge] applySnapshot — clearing",n.length,"old agents:",n);for(const o of n)this.scene.removeAgent(o);const i=t.timeline??[];for(const o of i)this.scene.behavior.applyEvent(o);const r=Object.entries(t.agents??{});console.log("[GameBridge] applySnapshot — adding",r.length,"agents:",r.map(([o])=>o));for(const[o,a]of r){const c=a,d=c.name||c.role_name||o,m=c.office_id,h=c.appearance?.palette,p=c.appearance?.desk_id;try{const g=this.scene.ensureAgent(o,d,!1,null,m,h,p),x=c.runtime_status||c.status;x==="tool_active"?(g.currentTool=c.current_tool??null,g.isActive=!0,g.setAgentState(at.TYPE)):x==="reflecting"&&(g.currentTool=c.current_tool??"Reflect",g.isActive=!1,g.setAgentState(at.REFLECT)),console.log(`[GameBridge] ✓ ensured ${o} in ${m} palette=${h}`)}catch(g){console.error(`[GameBridge] ✗ ensureAgent failed for ${o}:`,g)}}i.length===0&&r.length===0&&(console.warn("[GameBridge] applySnapshot — empty snapshot, creating fallback agent"),this.scene.ensureAgent("openopc-main","OpenOPC")),console.log("[GameBridge] applySnapshot done — total agents:",this.scene.agents.size),this.emit("snapshotApplied",t)}}const f4="assets/office-bg.png";function m4({bridge:e}){const t=C.useRef(null),n=C.useRef(null),i=C.useRef(!1),[r,o]=C.useState(()=>Jn()),[a,c]=C.useState(()=>Jn()[0]?.id??"office-0"),d=r.find(ee=>ee.id===a)??r[0],[m,h]=C.useState(()=>bg(d?.mapStr??ou,Qn,ur)),[p,g]=C.useState(()=>[...d?.seats??au]),[x,v]=C.useState("wall"),[b,w]=C.useState(!1),[k,S]=C.useState(!1),[j,N]=C.useState(!1),[L,A]=C.useState(1),[D,O]=C.useState(!0),T=Qn,M=ur,I=ee=>{const se=Jn();o(se),c(ee);const ae=se.find(ue=>ue.id===ee);ae&&(h(bg(ae.mapStr,Qn,ur)),g([...ae.seats])),N(!1)};C.useEffect(()=>{const ee=new Image;ee.crossOrigin="anonymous",ee.onload=()=>{n.current=ee,w(!0)},ee.onerror=()=>{n.current=null,w(!0)},ee.src=f4},[]);const H=C.useCallback(()=>{const ee=t.current;if(!ee)return;const se=ee.getContext("2d");if(!se)return;const ae=T*R,ue=M*R;ee.width=ae,ee.height=ue,se.clearRect(0,0,ae,ue),n.current?se.drawImage(n.current,0,0,ae,ue):(se.fillStyle="#3d3d3d",se.fillRect(0,0,ae,ue));for(let ie=0;ie{H()},[H]);const Y=ee=>{const se=t.current;if(!se)return null;const ae=se.getBoundingClientRect(),ue=se.width/ae.width,ie=se.height/ae.height,je=Math.floor((ee.clientX-ae.left)*ue/R),we=Math.floor((ee.clientY-ae.top)*ie/R);return je<0||je>=T||we<0||we>=M?null:{c:je,r:we}},P=C.useCallback((ee,se)=>{if(N(!1),x==="seat")g(ae=>{const ue=ae.findIndex(([ie,je])=>ie===ee&&je===se);return ue>=0?ae.filter((ie,je)=>je!==ue):[...ae,[ee,se]]}),h(ae=>{if(ae[se]?.[ee]===1){const ue=ae.map(ie=>[...ie]);return ue[se][ee]=0,ue}return ae});else{const ae=x==="wall"?1:0;h(ue=>{if(ue[se]?.[ee]===ae)return ue;const ie=ue.map(je=>[...je]);return ie[se][ee]=ae,ie}),x==="wall"&&g(ue=>ue.filter(([ie,je])=>!(ie===ee&&je===se)))}},[x]),U=ee=>{if(ee.button!==0)return;i.current=!0;const se=Y(ee);se&&P(se.c,se.r)},$=ee=>{if(!i.current||x==="seat")return;const se=Y(ee);se&&P(se.c,se.r)},G=()=>{i.current=!1},q=()=>{const ee=Xk(m);e.rebuildOfficeCollision(a,ee,p),N(!0),o(Jn()),setTimeout(()=>N(!1),2e3)},K=()=>S(ee=>!ee),W=()=>{h(bg(ou,Qn,ur)),g([...au]),N(!1)},V=(()=>{const se=Xk(m).map((ue,ie)=>` '${ue}', // ${ie}`).join(` +`),ae=p.map(([ue,ie])=>` [${ue}, ${ie}],`).join(` +`);return`const MAP_STR: string[] = [ +${se} +] + +const SEATS: [number, number][] = [ +${ae} +]`})(),Q=()=>A(ee=>Math.min(ee+.25,3)),B=()=>A(ee=>Math.max(ee-.25,.5)),Z=m.flat().filter(ee=>ee===1).length,te=m.flat().filter(ee=>ee===0).length;return u.jsxs("div",{className:"collision-editor",children:[u.jsxs("div",{className:"ce-toolbar",children:[u.jsxs("div",{className:"ce-toolbar-group",children:[u.jsx("span",{className:"ce-title",children:"Map Editor"}),u.jsx("select",{className:"ce-office-select",value:a,onChange:ee=>I(ee.target.value),children:r.map(ee=>u.jsx("option",{value:ee.id,children:ee.name},ee.id))})]}),u.jsxs("div",{className:"ce-toolbar-group",children:[u.jsxs("button",{className:`ce-mode-btn ${x==="wall"?"active wall":""}`,onClick:()=>v("wall"),children:[u.jsx("span",{className:"ce-mode-dot wall"})," Wall"]}),u.jsxs("button",{className:`ce-mode-btn ${x==="floor"?"active floor":""}`,onClick:()=>v("floor"),children:[u.jsx("span",{className:"ce-mode-dot floor"})," Floor"]}),u.jsxs("button",{className:`ce-mode-btn ${x==="seat"?"active seat":""}`,onClick:()=>v("seat"),children:[u.jsx("span",{className:"ce-mode-dot seat"})," Seat"]})]}),u.jsxs("div",{className:"ce-toolbar-group",children:[u.jsx("button",{className:"ce-btn",onClick:B,children:"-"}),u.jsxs("span",{className:"ce-zoom-label",children:[Math.round(L*100),"%"]}),u.jsx("button",{className:"ce-btn",onClick:Q,children:"+"}),u.jsx("button",{className:`ce-btn${D?" active":""}`,onClick:()=>O(ee=>!ee),children:"Grid"})]}),u.jsxs("div",{className:"ce-toolbar-group",children:[u.jsx("button",{className:`ce-btn apply${j?" success":""}`,onClick:q,children:j?"Applied":"Apply"}),u.jsx("button",{className:`ce-btn${k?" active":""}`,onClick:K,children:"Export"}),u.jsx("button",{className:"ce-btn danger",onClick:W,children:"Reset"})]}),u.jsxs("div",{className:"ce-toolbar-group ce-stats",children:[u.jsxs("span",{children:["Walls: ",Z]}),u.jsxs("span",{children:["Floor: ",te]}),u.jsxs("span",{children:["Seats: ",p.length]})]})]}),u.jsxs("div",{className:"ce-body",children:[u.jsx("div",{className:"ce-canvas-wrap",style:{overflow:"auto"},children:u.jsx("canvas",{ref:t,style:{width:T*R*L,height:M*R*L,imageRendering:"pixelated",cursor:x==="seat"?"crosshair":"cell"},onMouseDown:U,onMouseMove:$,onMouseUp:G,onMouseLeave:G})}),k&&u.jsxs("div",{className:"ce-export-panel",children:[u.jsxs("div",{className:"ce-export-header",children:[u.jsx("span",{children:"Export — copy to source code"}),u.jsx("button",{className:"ce-btn",onClick:()=>navigator.clipboard.writeText(V),children:"Copy"})]}),u.jsx("textarea",{className:"ce-export-textarea",value:V,readOnly:!0,rows:20})]})]})]})}let p4=0;function hi(e,t,n={}){return{event_id:`test-${++p4}`,type:e,agent_id:t,data:n,timestamp:Date.now()/1e3}}function $n(e){return new Promise(t=>setTimeout(t,e))}async function h4(e){const t=[],n=e.getScene();if(!n)return t.push({name:"scene-ready",pass:!1,detail:"OfficeScene not initialized"}),t;console.log("%c[EventTest] Starting full event test suite (multi-office)...","color: #6366f1; font-weight: bold");for(const I of[...n.agents.keys()])n.removeAgent(I);await $n(100);const i=Jn();t.push({name:"offices-loaded",pass:i.length>=3,detail:`${i.length} offices loaded: ${i.map(I=>I.name).join(", ")}`});const r=["agent-A","agent-B","agent-C","agent-D","agent-E","agent-F"];for(const I of r)e.pushEvent(hi("agent_active",I));await $n(300);const o=new Set;let a=!1;for(const I of r){const H=n.getAgent(I);H&&H.seatId&&(o.has(H.seatId)&&(a=!0),o.add(H.seatId))}t.push({name:"desk-assignment-unique",pass:!a&&o.size===r.length,detail:`Assigned ${o.size} unique seats to ${r.length} agents. IDs: [${[...o].join(", ")}]`});const c=r.every(I=>n.getAgent(I)?.officeId!=null);t.push({name:"agents-have-officeId",pass:c,detail:r.map(I=>`${I}=${n.getAgent(I)?.officeId}`).join(", ")}),e.pushEvent(hi("tool_start","agent-A",{tool_name:"shell"})),await $n(200);const d=n.getAgent("agent-A");t.push({name:"tool_start-state",pass:d.isActive===!0&&d.currentTool==="shell",detail:`isActive=${d.isActive}, currentTool=${d.currentTool}`}),e.pushEvent(hi("tool_done","agent-A",{tool_name:"shell"})),await $n(100),t.push({name:"tool_done-celebrate",pass:d.agentState==="celebrate",detail:`state=${d.agentState}`});for(let I=0;I<20&&d.agentState==="celebrate";I++)await $n(500);t.push({name:"celebrate-to-idle",pass:d.agentState!=="celebrate",detail:`state=${d.agentState}`}),e.pushEvent(hi("waiting","agent-B")),await $n(200);const m=n.getAgent("agent-B");t.push({name:"waiting-state",pass:m.isActive===!1&&(m.agentState==="walk"||m.agentState==="idle"||m.agentState==="coffee"),detail:`isActive=${m.isActive}, state=${m.agentState}`}),e.pushEvent(hi("reflect_start","agent-C")),await $n(200);const h=n.getAgent("agent-C");t.push({name:"reflect_start-state",pass:h.currentTool==="Reflect"&&(h.agentState==="walk"||h.agentState==="reflect"),detail:`currentTool=${h.currentTool}, state=${h.agentState}`}),e.pushEvent(hi("reflect_done","agent-C")),await $n(100),t.push({name:"reflect_done-celebrate",pass:h.agentState==="celebrate",detail:`state=${h.agentState}`});const p=["agent-A","agent-B","agent-C","agent-D"];for(const I of p)e.pushEvent(hi("collab_started",I));await $n(4e3);const g=new Map;let x=!1;for(const I of p){const H=n.getAgent(I);if(!H)continue;const Y=H.getTilePos(),P=`${Y.x},${Y.y}`;g.has(P)&&(x=!0),g.set(P,I)}t.push({name:"collab-no-overlap",pass:!x,detail:`${p.length} agents, ${g.size} unique positions`});for(const I of p)e.pushEvent(hi("collab_ended",I));await $n(100);const v=p.every(I=>n.getAgent(I)?.agentState==="celebrate");t.push({name:"collab_ended-celebrate",pass:v,detail:p.map(I=>`${I}=${n.getAgent(I)?.agentState}`).join(", ")}),await $n(3e3),e.pushEvent(hi("practice_start","agent-E",{target_domain:"TypeScript"})),await $n(200);const b=n.getAgent("agent-E");t.push({name:"practice_start-state",pass:b.currentTool==="Practice"&&(b.agentState==="walk"||b.agentState==="practice"),detail:`currentTool=${b.currentTool}, state=${b.agentState}`}),e.pushEvent(hi("practice_done","agent-E")),await $n(100),t.push({name:"practice_done-celebrate",pass:b.agentState==="celebrate",detail:`state=${b.agentState}`}),await $n(3e3),e.pushEvent(hi("task_delegated","agent-A",{target:"agent-B"})),await $n(100),t.push({name:"task_delegated-chat",pass:d.agentState==="chat",detail:`state=${d.agentState}`}),e.pushEvent(hi("delegation_done","agent-A",{target:"agent-B"})),await $n(300),t.push({name:"delegation_done-return",pass:["idle","walk","type"].includes(d.agentState),detail:`state=${d.agentState}`});const w=n.getAgent("agent-F");e.pushEvent(hi("message_in","agent-F",{content_preview:"Hello test"})),await $n(200),t.push({name:"message_in-active",pass:w.isActive===!0,detail:`isActive=${w.isActive}, state=${w.agentState}`}),e.pushEvent(hi("message_out","agent-F",{content_preview:"Reply test"})),await $n(100),t.push({name:"message_out-bubble",pass:w.bubbleText?.includes("Reply")===!0,detail:`bubble="${w.bubbleText}"`}),e.pushEvent(hi("subagent_spawn","subagent-test-1",{parent_agent_id:"agent-A"})),await $n(200);const k=n.getAgent("subagent-test-1");t.push({name:"subagent_spawn-created",pass:k!=null&&k.isSubagent===!0,detail:`created=${!!k}, isSubagent=${k?.isSubagent}`}),e.pushEvent(hi("subagent_done","subagent-test-1")),await $n(5e3),t.push({name:"subagent_done-removed",pass:n.getAgent("subagent-test-1")==null,detail:`still exists=${!!n.getAgent("subagent-test-1")}`}),e.pushEvent(hi("task_routed","agent-E",{method:"auto"})),await $n(200),t.push({name:"task_routed-active",pass:b.isActive===!0,detail:`isActive=${b.isActive}, state=${b.agentState}`}),e.pushEvent(hi("agent_removed","agent-F")),await $n(5e3),t.push({name:"agent_removed-destroyed",pass:n.getAgent("agent-F")==null,detail:`still exists=${!!n.getAgent("agent-F")}`}),e.pushEvent(hi("mycelium_crystallize","agent-A",{corroborating_agents:["agent-B","agent-C"],content_preview:"Shared knowledge"})),await $n(4e3);const S=new Map;let j=!1;for(const I of["agent-A","agent-B","agent-C"]){const H=n.getAgent(I);if(!H)continue;const Y=H.getTilePos(),P=`${Y.x},${Y.y}`;S.has(P)&&(j=!0),S.set(P,I)}t.push({name:"crystal-no-overlap",pass:!j,detail:`3 agents, ${S.size} unique positions`});const N=new Map;let L=!1;for(const I of n.agents.values())I.seatId&&(N.has(I.seatId)&&(L=!0),N.set(I.seatId,I.agentId));t.push({name:"desk-seat-no-conflict",pass:!L,detail:`${N.size} desk seats assigned, conflict=${L}`});const A=n.getAgent("agent-D");if(A){const I=A.officeId,H=i.find(P=>P.id!==I)??i[1];e.assignAgentToOffice("agent-D",H.id),await $n(300);const Y=A.officeId;t.push({name:"reassign-office",pass:Y===H.id&&Y!==I,detail:`${I} → ${Y} (expected ${H.id})`})}else t.push({name:"reassign-office",pass:!1,detail:"agent-D not found"});const D=new Map;let O=!1;for(const I of n.agents.values())I.seatId&&(D.has(I.seatId)&&(O=!0),D.set(I.seatId,I.agentId));t.push({name:"cross-office-seat-unique",pass:!O,detail:`${D.size} seats, conflict=${O}`});const T=t.filter(I=>I.pass).length,M=t.filter(I=>!I.pass).length;console.log(""),console.log("%c[EventTest] ═══════════════════════════════════════","color: #6366f1; font-weight: bold"),console.log(`%c[EventTest] Results: ${T} 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 I of t){const H=I.pass?"✅":"❌",Y=I.pass?"color: #34d399":"color: #f87171; font-weight: bold";console.log(`%c ${H} ${I.name}: ${I.detail}`,Y)}return t}function g4(e){window.__runEventTests=()=>h4(e),window.__bridge=e,console.log("%c[EventTest] Test runner ready. Run: window.__runEventTests()","color: #fbbf24; font-weight: bold")}const y4={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 x4(e){return e?y4[e]??"todo":"todo"}function v4(){return`${Date.now()}-${Math.random().toString(36).slice(2,7)}`}function b4(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 _4(e,t){return t.type==="SET"?t.columns:e}function k4(e,t){const n=Date.now();switch(t.type){case"SET":return t.tasks;case"ADD":return e.some(i=>i.id===t.task.id)?e:[...e,t.task];case"UPDATE":return e.map(i=>i.id===t.id?{...i,...t.partial,updatedAt:n}:i);case"DELETE":return e.filter(i=>i.id!==t.id);case"MOVE":return e.map(i=>i.id===t.id?{...i,columnId:t.columnId,sortOrder:t.sortOrder,updatedAt:n}:i);case"ASSIGN":return e.map(i=>i.id===t.taskId?{...i,assigneeIds:t.agentIds,updatedAt:n}:i);case"REMOVE_ASSIGNEE":return e.map(i=>i.assigneeIds.includes(t.agentId)?{...i,assigneeIds:i.assigneeIds.filter(r=>r!==t.agentId),updatedAt:n}:i);default:return e}}function S4(){const[e,t]=C.useReducer(b4,[]),[n,i]=C.useReducer(_4,[]),[r,o]=C.useReducer(k4,[]),[a,c]=C.useState(null),[d,m]=C.useState("default"),h=C.useMemo(()=>e.find(D=>D.id===a)??null,[e,a]),p=C.useMemo(()=>n.filter(D=>D.boardId===a).sort((D,O)=>D.sortOrder-O.sortOrder),[n,a]),g=C.useMemo(()=>{const D=r.filter(T=>T.boardId===a),O={};for(const T of p)O[T.id]=[];for(const T of D){const M=T.phase?x4(T.phase):T.columnId;O[M]&&O[M].push(T)}for(const T of Object.keys(O))O[T].sort((M,I)=>M.sortOrder-I.sortOrder);return O},[r,a,p]),x=C.useCallback(D=>{const O=e.find(H=>H.id===D.boardId),T=O?.nextTaskNum??1,M=O?.prefix??"T",I={id:D.taskId??`task-${v4()}`,displayId:D.displayId??`${M}-${String(T).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:T,createdAt:Date.now(),updatedAt:Date.now()};return o({type:"ADD",task:I}),I},[e]),v=C.useCallback((D,O)=>o({type:"UPDATE",id:D,partial:O}),[]),b=C.useCallback(D=>o({type:"DELETE",id:D}),[]),w=C.useCallback((D,O,T)=>o({type:"MOVE",id:D,columnId:O,sortOrder:T}),[]),k=C.useCallback((D,O)=>o({type:"ASSIGN",taskId:D,agentIds:O}),[]),S=C.useCallback(()=>{const D=new Set(n.filter(O=>O.isTerminal).map(O=>O.id));return r.filter(O=>!D.has(O.columnId)).length},[r,n]),j=C.useCallback(D=>{o({type:"REMOVE_ASSIGNEE",agentId:D})},[]),N=C.useCallback((D,O,T,M,I)=>{const H=D||"default",Y=H!==d,P=!Y&&!!I?.preserveTasksWhenIncomingEmpty&&M.length===0;m(H),t({type:"SET",boards:O}),i({type:"SET",columns:T}),o({type:"SET",tasks:P?r:M}),c(U=>!Y&&U&&O.some($=>$.id===U)?U:null)},[d,r]),L=C.useCallback(D=>{c(D)},[]),A=C.useCallback((D,O)=>{t({type:"UPDATE_NAME",boardId:D,name:O})},[]);return C.useMemo(()=>({scopeProjectId:d,boards:e,columns:n,tasks:r,activeBoardId:a,activeBoard:h,activeBoardColumns:p,tasksByColumn:g,setActiveBoard:L,createTask:x,updateTask:v,deleteTask:b,moveTask:w,assignTask:k,dispatchTask:o,getOpenTaskCount:S,removeAssignee:j,initFromBackend:N,updateBoardName:A}),[d,e,n,r,a,h,p,g,L,x,v,b,w,k,o,S,j,N,A])}var Tm=nE();const w4=pa(Tm);function Ka(e,t,n){let i=n.initialDeps??[],r,o=!0;function a(){var c,d,m;let h;n.key&&((c=n.debug)!=null&&c.call(n))&&(h=Date.now());const p=e();if(!(p.length!==i.length||p.some((v,b)=>i[b]!==v)))return r;i=p;let x;if(n.key&&((d=n.debug)!=null&&d.call(n))&&(x=Date.now()),r=t(...p),n.key&&((m=n.debug)!=null&&m.call(n))){const v=Math.round((Date.now()-h)*100)/100,b=Math.round((Date.now()-x)*100)/100,w=b/16,k=(S,j)=>{for(S=String(S);S.length{i=c},a}function sS(e,t){if(e===void 0)throw new Error("Unexpected undefined");return e}const C4=(e,t)=>Math.abs(e-t)<1.01,j4=(e,t,n)=>{let i;return function(...r){e.clearTimeout(i),i=e.setTimeout(()=>t.apply(this,r),n)}},oS=e=>{const{offsetWidth:t,offsetHeight:n}=e;return{width:t,height:n}},E4=e=>e,N4=e=>{const t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1),i=[];for(let r=t;r<=n;r++)i.push(r);return i},I4=(e,t)=>{const n=e.scrollElement;if(!n)return;const i=e.targetWindow;if(!i)return;const r=a=>{const{width:c,height:d}=a;t({width:Math.round(c),height:Math.round(d)})};if(r(oS(n)),!i.ResizeObserver)return()=>{};const o=new i.ResizeObserver(a=>{const c=()=>{const d=a[0];if(d?.borderBoxSize){const m=d.borderBoxSize[0];if(m){r({width:m.inlineSize,height:m.blockSize});return}}r(oS(n))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(c):c()});return o.observe(n,{box:"border-box"}),()=>{o.unobserve(n)}},aS={passive:!0},lS=typeof window>"u"?!0:"onscrollend"in window,T4=(e,t)=>{const n=e.scrollElement;if(!n)return;const i=e.targetWindow;if(!i)return;let r=0;const o=e.options.useScrollendEvent&&lS?()=>{}:j4(i,()=>{t(r,!1)},e.options.isScrollingResetDelay),a=h=>()=>{const{horizontal:p,isRtl:g}=e.options;r=p?n.scrollLeft*(g&&-1||1):n.scrollTop,o(),t(r,h)},c=a(!0),d=a(!1);n.addEventListener("scroll",c,aS);const m=e.options.useScrollendEvent&&lS;return m&&n.addEventListener("scrollend",d,aS),()=>{n.removeEventListener("scroll",c),m&&n.removeEventListener("scrollend",d)}},R4=(e,t,n)=>{if(t?.borderBoxSize){const i=t.borderBoxSize[0];if(i)return Math.round(i[n.options.horizontal?"inlineSize":"blockSize"])}return e[n.options.horizontal?"offsetWidth":"offsetHeight"]},A4=(e,{adjustments:t=0,behavior:n},i)=>{var r,o;const a=e+t;(o=(r=i.scrollElement)==null?void 0:r.scrollTo)==null||o.call(r,{[i.options.horizontal?"left":"top"]:a,behavior:n})};class M4{constructor(t){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this.itemSizeCache=new Map,this.laneAssignments=new Map,this.pendingMeasuredCacheIndexes=[],this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.now=()=>{var n,i,r;return((r=(i=(n=this.targetWindow)==null?void 0:n.performance)==null?void 0:i.now)==null?void 0:r.call(i))??Date.now()},this.observer=(()=>{let n=null;const i=()=>n||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:n=new this.targetWindow.ResizeObserver(r=>{r.forEach(o=>{const a=()=>{const c=o.target,d=this.indexFromElement(c);if(!c.isConnected){this.observer.unobserve(c);return}this.shouldMeasureDuringScroll(d)&&this.resizeItem(d,this.options.measureElement(c,o,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(a):a()})}));return{disconnect:()=>{var r;(r=i())==null||r.disconnect(),n=null},observe:r=>{var o;return(o=i())==null?void 0:o.observe(r,{box:"border-box"})},unobserve:r=>{var o;return(o=i())==null?void 0:o.unobserve(r)}}})(),this.range=null,this.setOptions=n=>{Object.entries(n).forEach(([i,r])=>{typeof r>"u"&&delete n[i]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:E4,rangeExtractor:N4,onChange:()=>{},measureElement:R4,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,...n}},this.notify=n=>{var i,r;(r=(i=this.options).onChange)==null||r.call(i,this,n)},this.maybeNotify=Ka(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),n=>{this.notify(n)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(n=>n()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var n;const i=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==i){if(this.cleanup(),!i){this.maybeNotify();return}this.scrollElement=i,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((n=this.scrollElement)==null?void 0:n.window)??null,this.elementsCache.forEach(r=>{this.observer.observe(r)}),this.unsubs.push(this.options.observeElementRect(this,r=>{this.scrollRect=r,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(r,o)=>{this.scrollAdjustments=0,this.scrollDirection=o?this.getScrollOffset()this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(n,i)=>{const r=new Map,o=new Map;for(let a=i-1;a>=0;a--){const c=n[a];if(r.has(c.lane))continue;const d=o.get(c.lane);if(d==null||c.end>d.end?o.set(c.lane,c):c.enda.end===c.end?a.index-c.index:a.end-c.end)[0]:void 0},this.getMeasurementOptions=Ka(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes],(n,i,r,o,a,c)=>(this.prevLanes!==void 0&&this.prevLanes!==c&&(this.lanesChangedFlag=!0),this.prevLanes=c,this.pendingMeasuredCacheIndexes=[],{count:n,paddingStart:i,scrollMargin:r,getItemKey:o,enabled:a,lanes:c}),{key:!1}),this.getMeasurements=Ka(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:n,paddingStart:i,scrollMargin:r,getItemKey:o,enabled:a,lanes:c},d)=>{if(!a)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>n)for(const g of this.laneAssignments.keys())g>=n&&this.laneAssignments.delete(g);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMeasuredCacheIndexes=[]),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(g=>{this.itemSizeCache.set(g.key,g.size)}));const m=this.lanesSettling?0:this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[],this.lanesSettling&&this.measurementsCache.length===n&&(this.lanesSettling=!1);const h=this.measurementsCache.slice(0,m),p=new Array(c).fill(void 0);for(let g=0;g1){b=v;const N=p[b],L=N!==void 0?h[N]:void 0;w=L?L.end+this.options.gap:i+r}else{const N=this.options.lanes===1?h[g-1]:this.getFurthestMeasurement(h,g);w=N?N.end+this.options.gap:i+r,b=N?N.lane:g%this.options.lanes,this.options.lanes>1&&this.laneAssignments.set(g,b)}const k=d.get(x),S=typeof k=="number"?k:this.options.estimateSize(g),j=w+S;h[g]={index:g,start:w,size:S,end:j,key:x,lane:b},p[b]=g}return this.measurementsCache=h,h},{key:!1,debug:()=>this.options.debug}),this.calculateRange=Ka(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(n,i,r,o)=>this.range=n.length>0&&i>0?D4({measurements:n,outerSize:i,scrollOffset:r,lanes:o}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=Ka(()=>{let n=null,i=null;const r=this.calculateRange();return r&&(n=r.startIndex,i=r.endIndex),this.maybeNotify.updateDeps([this.isScrolling,n,i]),[this.options.rangeExtractor,this.options.overscan,this.options.count,n,i]},(n,i,r,o,a)=>o===null||a===null?[]:n({startIndex:o,endIndex:a,overscan:i,count:r}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=n=>{const i=this.options.indexAttribute,r=n.getAttribute(i);return r?parseInt(r,10):(console.warn(`Missing attribute name '${i}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=n=>{var i;if(!this.scrollState||this.scrollState.behavior!=="smooth")return!0;const r=this.scrollState.index??((i=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))==null?void 0:i.index);if(r!==void 0&&this.range){const o=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),a=Math.max(0,r-o),c=Math.min(this.options.count-1,r+o);return n>=a&&n<=c}return!0},this.measureElement=n=>{if(!n){this.elementsCache.forEach((a,c)=>{a.isConnected||(this.observer.unobserve(a),this.elementsCache.delete(c))});return}const i=this.indexFromElement(n),r=this.options.getItemKey(i),o=this.elementsCache.get(r);o!==n&&(o&&this.observer.unobserve(o),this.observer.observe(n),this.elementsCache.set(r,n)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(i)&&this.resizeItem(i,this.options.measureElement(n,void 0,this))},this.resizeItem=(n,i)=>{var r;const o=this.measurementsCache[n];if(!o)return;const a=this.itemSizeCache.get(o.key)??o.size,c=i-a;c!==0&&(((r=this.scrollState)==null?void 0:r.behavior)!=="smooth"&&(this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(o,c,this):o.start[this.getVirtualIndexes(),this.getMeasurements()],(n,i)=>{const r=[];for(let o=0,a=n.length;othis.options.debug}),this.getVirtualItemForOffset=n=>{const i=this.getMeasurements();if(i.length!==0)return sS(i[mE(0,i.length-1,r=>sS(i[r]).start,n)])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if("scrollHeight"in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{const n=this.scrollElement.document.documentElement;return this.options.horizontal?n.scrollWidth-this.scrollElement.innerWidth:n.scrollHeight-this.scrollElement.innerHeight}},this.getOffsetForAlignment=(n,i,r=0)=>{if(!this.scrollElement)return 0;const o=this.getSize(),a=this.getScrollOffset();i==="auto"&&(i=n>=a+o?"end":"start"),i==="center"?n+=(r-o)/2:i==="end"&&(n-=o);const c=this.getMaxScrollOffset();return Math.max(Math.min(c,n),0)},this.getOffsetForIndex=(n,i="auto")=>{n=Math.max(0,Math.min(n,this.options.count-1));const r=this.getSize(),o=this.getScrollOffset(),a=this.measurementsCache[n];if(!a)return;if(i==="auto")if(a.end>=o+r-this.options.scrollPaddingEnd)i="end";else if(a.start<=o+this.options.scrollPaddingStart)i="start";else return[o,i];if(i==="end"&&n===this.options.count-1)return[this.getMaxScrollOffset(),i];const c=i==="end"?a.end+this.options.scrollPaddingEnd:a.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(c,i,a.size),i]},this.scrollToOffset=(n,{align:i="start",behavior:r="auto"}={})=>{const o=this.getOffsetForAlignment(n,i),a=this.now();this.scrollState={index:null,align:i,behavior:r,startedAt:a,lastTargetOffset:o,stableFrames:0},this._scrollToOffset(o,{adjustments:void 0,behavior:r}),this.scheduleScrollReconcile()},this.scrollToIndex=(n,{align:i="auto",behavior:r="auto"}={})=>{n=Math.max(0,Math.min(n,this.options.count-1));const o=this.getOffsetForIndex(n,i);if(!o)return;const[a,c]=o,d=this.now();this.scrollState={index:n,align:c,behavior:r,startedAt:d,lastTargetOffset:a,stableFrames:0},this._scrollToOffset(a,{adjustments:void 0,behavior:r}),this.scheduleScrollReconcile()},this.scrollBy=(n,{behavior:i="auto"}={})=>{const r=this.getScrollOffset()+n,o=this.now();this.scrollState={index:null,align:"start",behavior:i,startedAt:o,lastTargetOffset:r,stableFrames:0},this._scrollToOffset(r,{adjustments:void 0,behavior:i}),this.scheduleScrollReconcile()},this.getTotalSize=()=>{var n;const i=this.getMeasurements();let r;if(i.length===0)r=this.options.paddingStart;else if(this.options.lanes===1)r=((n=i[i.length-1])==null?void 0:n.end)??0;else{const o=Array(this.options.lanes).fill(null);let a=i.length-1;for(;a>=0&&o.some(c=>c===null);){const c=i[a];o[c.lane]===null&&(o[c.lane]=c.end),a--}r=Math.max(...o.filter(c=>c!==null))}return Math.max(r-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(n,{adjustments:i,behavior:r})=>{this.options.scrollToFn(n,{behavior:r,adjustments:i},this)},this.measure=()=>{this.itemSizeCache=new Map,this.laneAssignments=new Map,this.notify(!1)},this.setOptions(t)}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId==null&&(this.rafId=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()}))}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}const i=this.scrollState.index!=null?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,r=i?i[0]:this.scrollState.lastTargetOffset,o=1,a=r!==this.scrollState.lastTargetOffset;if(!a&&C4(r,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=o){this.scrollState=null;return}}else this.scrollState.stableFrames=0,a&&(this.scrollState.lastTargetOffset=r,this.scrollState.behavior="auto",this._scrollToOffset(r,{adjustments:void 0,behavior:"auto"}));this.scheduleScrollReconcile()}}const mE=(e,t,n,i)=>{for(;e<=t;){const r=(e+t)/2|0,o=n(r);if(oi)t=r-1;else return r}return e>0?e-1:0};function D4({measurements:e,outerSize:t,scrollOffset:n,lanes:i}){const r=e.length-1,o=d=>e[d].start;if(e.length<=i)return{startIndex:0,endIndex:r};let a=mE(0,r,o,n),c=a;if(i===1)for(;c1){const d=Array(i).fill(0);for(;ch=0&&m.some(h=>h>=n);){const h=e[a];m[h.lane]=h.start,a--}a=Math.max(0,a-a%i),c=Math.min(r,c+(i-1-c%i))}return{startIndex:a,endIndex:c}}const cS=typeof document<"u"?C.useLayoutEffect:C.useEffect;function O4({useFlushSync:e=!0,...t}){const n=C.useReducer(()=>({}),{})[1],i={...t,onChange:(o,a)=>{var c;e&&a?Tm.flushSync(n):n(),(c=t.onChange)==null||c.call(t,o,a)}},[r]=C.useState(()=>new M4(i));return r.setOptions(i),cS(()=>r._didMount(),[]),cS(()=>r._willUpdate()),r}function L4(e){return O4({observeElementRect:I4,observeElementOffset:T4,scrollToFn:A4,...e})}function z4(){return u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M12 2C9.5 2 7.5 3.5 7 5.5C5 5.5 3 7.5 3 10C3 12 4.5 13.5 6 14V20C6 21.1 6.9 22 8 22H16C17.1 22 18 21.1 18 20V14C19.5 13.5 21 12 21 10C21 7.5 19 5.5 17 5.5C16.5 3.5 14.5 2 12 2Z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M12 2V8M8 6H16M12 14V18",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function Rm(){return u.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:u.jsx("path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94L6.73 20.15a2.12 2.12 0 0 1-3-3l6.72-6.72a6 6 0 0 1 7.94-7.94L14.7 6.3z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function pE(){return u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("rect",{x:"4",y:"4",width:"16",height:"16",rx:"3",stroke:"currentColor",strokeWidth:"1.5"}),u.jsx("rect",{x:"8",y:"8",width:"8",height:"8",rx:"1.5",fill:"currentColor"})]})}function P4(){return u.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:u.jsx("path",{d:"M5 12L3 3L21 12L3 21L5 12ZM5 12H13",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function Am(){return u.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",stroke:"currentColor",strokeWidth:"1.5"}),u.jsx("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function $l(){return u.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:u.jsx("path",{d:"M20 6L9 17L4 12",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}function B4(){return u.jsxs("svg",{width:"28",height:"28",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M13 8H7",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"}),u.jsx("path",{d:"M17 12H7",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"})]})}function $4(){return u.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:u.jsx("path",{d:"M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66L9.41 17.41a2 2 0 0 1-2.83-2.83l8.49-8.49",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function rs({down:e}){return u.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",style:{transition:"transform 200ms",transform:e?"rotate(90deg)":"none"},children:u.jsx("path",{d:"M9 18L15 12L9 6",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function H4(){return u.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:u.jsx("path",{d:"M12 5V19M5 12H19",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})}function Vv(){return u.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("circle",{cx:"11",cy:"11",r:"8",stroke:"currentColor",strokeWidth:"1.5"}),u.jsx("path",{d:"M21 21L16.65 16.65",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function F4(){return u.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M3 6H5H21",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),u.jsx("path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2M19 6L18.13 20.11A2 2 0 0 1 16.14 22H7.86a2 2 0 0 1-2-1.89L5 6",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})}function V4(){return u.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("rect",{x:"3",y:"3",width:"7",height:"9",rx:"1.5",stroke:"currentColor",strokeWidth:"1.5"}),u.jsx("rect",{x:"14",y:"3",width:"7",height:"5",rx:"1.5",stroke:"currentColor",strokeWidth:"1.5"}),u.jsx("rect",{x:"14",y:"12",width:"7",height:"9",rx:"1.5",stroke:"currentColor",strokeWidth:"1.5"}),u.jsx("rect",{x:"3",y:"16",width:"7",height:"5",rx:"1.5",stroke:"currentColor",strokeWidth:"1.5"})]})}function hE(){return u.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:u.jsx("path",{d:"M22 12H18L15 21L9 3L6 12H2",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function yu(){return u.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:u.jsx("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function vl(){return u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .962 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.582a.5.5 0 0 1 0 .962L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.962 0z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M20 3v4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),u.jsx("path",{d:"M22 5h-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),u.jsx("path",{d:"M4 17v2",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),u.jsx("path",{d:"M5 18H3",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function gE(){return u.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M5 12h14",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"m12 5 7 7-7 7",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"})]})}function U4(){return u.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M9 11L12 14L22 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M21 12V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})}function uS(){return u.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:u.jsx("path",{d:"M13 2L3 14H12L11 22L21 10H12L13 2Z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function Mm(){return u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M4 18H10V14H4V18Z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M8 14H14V10H8V14Z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M12 10H18V6H12V10Z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M18 8L21 8",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function G4(){return u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M9 12L11 14L15 10",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})}function q4(){return u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M15 9L9 15M9 9L15 15",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function Pc(){return u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"1.5"}),u.jsx("path",{d:"M12 6V12L16 14",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function qf(){return u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M7 17L2 12L7 7",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M17 7L22 12L17 17",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M2 12H22",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function bl(){return u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M12 2V22",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),u.jsx("circle",{cx:"12",cy:"6",r:"2",stroke:"currentColor",strokeWidth:"1.5"}),u.jsx("circle",{cx:"12",cy:"12",r:"2",stroke:"currentColor",strokeWidth:"1.5"}),u.jsx("circle",{cx:"12",cy:"18",r:"2",stroke:"currentColor",strokeWidth:"1.5"}),u.jsx("path",{d:"M14 6H20",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),u.jsx("path",{d:"M14 12H18",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),u.jsx("path",{d:"M14 18H20",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function Dm(){return u.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:u.jsx("path",{d:"M18 6L6 18M6 6L18 18",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function dS({size:e=12}={}){return u.jsxs("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",children:[u.jsx("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M7 11V7a5 5 0 0 1 10 0v4",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round"})]})}function W4({size:e=14}={}){return u.jsxs("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",children:[u.jsx("circle",{cx:"12",cy:"8",r:"5",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M20 21a8 8 0 0 0-16 0",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round"})]})}function Y4({size:e=14}={}){return u.jsxs("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M10 6h4",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"}),u.jsx("path",{d:"M10 10h4",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"}),u.jsx("path",{d:"M10 14h4",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"}),u.jsx("path",{d:"M10 18h4",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"})]})}function X4({size:e=14}={}){return u.jsxs("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .962 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.582a.5.5 0 0 1 0 .962L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.962 0z",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M20 3v4",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"}),u.jsx("path",{d:"M22 5h-4",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"}),u.jsx("path",{d:"M4 17v2",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"}),u.jsx("path",{d:"M5 18H3",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"})]})}const rl=new Set(["done","failed","cancelled"]),K4=new Set(["company","org","custom"]),Z4=new Set(["idle","done","failed","cancelled"]);function Om(e){return rl.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 ss(e){return Om(e)!=="idle"}function Q4(e){if(!e)return!1;const t=String(e.execMode??"").trim().toLowerCase(),n=t==="task";return K4.has(t)||!!e.isCompanyRuntime||!!e.parentSessionId||!!e.orgId||!!e.workItemProjectionId||!!e.roleWorkItems||!!e.executorRoleWorkItems||!!e.companyProfile&&!n}function J4(e,t){if(!Q4(e))return{};const n=String(t??"").trim().toLowerCase();if(n==="running")return{runtimeControlState:"running",canStop:!0,canResume:!1};if(Z4.has(n)){const i=e?.runtimeControlState;return i==="suspending"||i==="suspended"?{}:{runtimeControlState:"idle",canStop:!1,canResume:!1}}return{}}function Cg(e){if(!(typeof e!="number"||!Number.isFinite(e)))return e}function fS(e){return Math.max(0,Math.min(Math.round(e),100))}function yE(e){const t=Cg(e?.contextTokens),n=Cg(e?.contextWindow),i=Cg(e?.contextRemainingPct),r=typeof t=="number"?Math.max(0,Math.round(t)):void 0,o=typeof n=="number"&&n>0?Math.max(1,Math.round(n)):void 0,a=typeof i=="number"?fS(i):void 0;if(typeof r=="number"&&typeof o=="number"){const c=Math.min(r,o),d=fS(c/o*100);return{usedPct:d,remainingPct:100-d,usedTokens:c,windowTokens:o}}if(typeof a=="number"&&typeof o=="number"){const c=100-a;return{usedPct:c,remainingPct:a,usedTokens:Math.round(c/100*o),windowTokens:o}}return typeof o=="number"?{usedPct:0,remainingPct:100,usedTokens:0,windowTokens:o}:typeof a=="number"?{remainingPct:a}:typeof r=="number"?{usedTokens:r}:{}}const eD=new Set(["runtime_v2_assistant","runtime_v2_company_assistant","child_task_result","child_task_result_retry","company_role_result","company_role_result_retry","child_result","top_level_reply"]);function Lm(e){const t=e??{};for(const n of["canonical_turn_id","conversation_turn_id","turn_id","execution_turn_id"]){const i=String(t[n]??"").trim();if(i)return i}return""}function Wf(e){if(e.sender==="user")return"";const t=e.metadata??{},n=String(t.transcript_kind??t.kind??"").trim();if(!eD.has(n))return"";if(n==="runtime_v2_company_assistant"){const i=String(t.ui_message_id??"").trim();if(!(t.company_final_turn===!0||!!String(t.result_delivery_id??"").trim()||i.startsWith("runtime-v2-company-assistant-final:")||String(t.detail_visibility??"").trim()==="summary"))return""}return Lm(t)}const tD=new Set(["child_task_result","child_task_result_retry","company_role_result","company_role_result_retry","child_result","top_level_reply"]),Ux=new Set(["runtime_v2_assistant","runtime_v2_company_assistant"]);function ia(e,...t){for(const n of t){const i=String(e[n]??"").trim();if(i)return i}return""}function nD(e,t){const i=ia(e,"result_attempt","attempt","attempt_index","retry_count","retryCount")||(t.endsWith("_retry")?"retry":""),r=ia(e,"result_revision","delivery_revision","revision");return[i?`attempt:${i}`:"",r?`revision:${r}`:""].filter(Boolean).join(":")}function jg(e,t,n){const i=nD(t,n);return i?`${e}:${i}`:e}function xE(e){const t=e.metadata??{},n=String(t.transcript_kind??t.kind??"").trim();if(!tD.has(n)&&!Ux.has(n))return"";const i=ia(t,"canonical_delivery_id","result_delivery_id","delivery_id");if(i)return`delivery:${i}`;if(Ux.has(n)){const d=Lm(t);return d?`turn:${d}`:""}const o=ia(t,"source_task_id","child_task_id")||(n==="top_level_reply"?"":ia(t,"task_id","taskId"));if(o)return jg(`source-task:${o}`,t,n);const a=ia(t,"work_item_id","work_item_projection_id");if(a)return jg(`work-item:${a}`,t,n);const c=ia(t,"child_session_id");return c?jg(`child-session:${c}`,t,n):""}function Uv(e){const t=e.metadata??{},n=String(t.checkpoint_id??"").trim();if(n)return`checkpoint:${n}`;const i=String(t.ui_message_id??"").trim(),r=String(t.transcript_kind??t.kind??"").trim(),o=String(t.role??"").trim().toLowerCase(),a=e.sender==="user"||o==="user"||r==="runtime_v2_user_turn"||r==="top_level_user_turn";if(a&&i)return`ui:${i}`;const c=String(t.ui_timeline_id??"").trim();if(c)return c;const d=Ux.has(r)?Wf(e):"";if(!a&&d)return`turn:assistant:${d}`;const m=xE(e);return!a&&m?`result:${m}`:`message:${e.id}`}const iD=/(\d[\d,]*)\s*\/\s*(\d[\d,]*)\s+tokens/i,rD=/(\d{1,3})%\s*used/i,sD=/(\d{1,3})%\s*remaining/i;function Gv(e,t){return t==="full"?!0:String(e.metadata?.detail_visibility??"summary").trim()!=="full"}function oD(e){return e.replace(/\s+/g," ").trim()}function aD(e){let t=String(e||"").replace(/\r\n/g,` +`).replace(/\r/g,` +`).split(` +`).map(i=>i.trimEnd()).join(` +`).replace(/\n{3,}/g,` + +`).trim();for(;;){const i=t.match(/^\*\*([^\r\n]{8,160}?)\*\*:(?:[ \t]+|\r?\n+)([\s\S]+)$/);if(!i)break;const r=i[2].trim();if(r.length<80||r===t)break;t=r}const n=t.split(/\n{2,}/).map(i=>i.trim()).filter(Boolean);return n.length>1&&/^Verification:\s/i.test(n[n.length-1])&&(t=n.slice(0,-1).join(` + +`).trim()),oD(t).slice(0,2e3)}function Gx(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 mS(e){return String(e.content??"").replace(/\r\n/g,` +`).replace(/\r/g,` +`).split(` +`).map(t=>t.trimEnd()).join(` +`).trim().length}function pS(e){const t=e.metadata??{};let n=0;return String(t.source??"").trim()==="engine"&&(n+=4),String(t.source_result_message_id??"").trim()&&(n+=2),(t.authoritative_output===!0||t.canonical_result===!0)&&(n+=1),n}function lD(e,t){const n=[[Gx(e),Gx(t)],[pS(e),pS(t)],[mS(e),mS(t)]];for(const[o,a]of n)if(o!==a)return o>a?1:-1;const i=e.id.localeCompare(t.id);if(i!==0)return i;const r=e.content.localeCompare(t.content);return r!==0?r:e.timestamp===t.timestamp?0:e.timestamp>t.timestamp?1:-1}function vE(e){if(Gx(e)<=0)return"";const t=xE(e);if(t)return`result:${t}`;const n=aD(e.content);return n?`result:${n}`:""}function rf(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 hS(e){if(!(typeof e!="number"||!Number.isFinite(e)))return Math.max(0,Math.min(Math.round(e),100))}function _l(e){if(!e)return;const t=String(e.execMode??"").trim();if(!(t==="company"||t==="org"||t==="custom"||!!e.isCompanyRuntime||!!e.roleWorkItems||!!e.executorRoleWorkItems))return;const i=Object.values(e.executorRoleWorkItems??e.roleWorkItems??{});if(i.length===0)return;const r=i.map(o=>o.aggregatedStatus);if(r.some(o=>o==="active"))return"running";if(r.some(o=>o==="waiting")||r.some(o=>o==="pending"))return"pending";if(r.every(o=>o==="failed"))return"failed";if(r.every(o=>o==="done")||r.some(o=>o==="done"))return"done"}function cD(e){const t={};for(const n of e??[]){const i=`${n.summary??""} ${n.detail??""}`.trim();if(!i)continue;const r=iD.exec(i);if(r){const c=rf(r[1]),d=rf(r[2]);typeof c=="number"&&(t.contextTokens=c),typeof d=="number"&&d>0&&(t.contextWindow=d)}const o=sD.exec(i);if(o){t.contextRemainingPct=hS(rf(o[1]));continue}const a=rD.exec(i);if(a){const c=hS(rf(a[1]));typeof c=="number"&&(t.contextRemainingPct=100-c)}}return t}function Yf(e){const t=cD(e.progressLog),n=e.contextTokens??t.contextTokens,i=e.contextWindow??t.contextWindow,r=e.contextRemainingPct??t.contextRemainingPct;return n===e.contextTokens&&i===e.contextWindow&&r===e.contextRemainingPct?e:{...e,contextTokens:n,contextWindow:i,contextRemainingPct:r}}function bE(e){const t=new Set,n=[];for(const i of e)t.has(i.taskId)||(t.add(i.taskId),n.push(i));return n}function uD(e){return!!(String(e?.workItemRoleId??"").trim()||String(e?.workItemRoleName??"").trim())}function Df(e,t){if(!e||e.mode==="child")return[];const n=new Set;e.sessionId&&n.add(e.sessionId),n.add(e.taskId);const i=String(e.originTaskId??e.taskId??"").trim(),r=new Map;for(const c of e.workItemLog??[]){const d=c.executionTurnId||c.runtimeTaskId;d&&!r.has(d)&&r.set(d,r.size)}const o=new Set;return t.filter(c=>{if(c.taskId===e.taskId||o.has(c.taskId))return!1;const d=!!c.parentSessionId&&n.has(c.parentSessionId),m=r.has(c.taskId),h=!!i&&String(c.originTaskId??"").trim()===i;return!d&&!m&&!h?!1:(o.add(c.taskId),!0)}).sort((c,d)=>{const m=r.get(c.taskId),h=r.get(d.taskId);return m!=null&&h!=null&&m!==h?m-h:m!=null&&h==null?-1:m==null&&h!=null?1:d.updatedAt-c.updatedAt})}function gS(e,t){const n=Df(e,t);return!e||e.mode==="child"||!uD(e)?n:bE([e,...n])}function Xf(e,t){if(!e||e.mode==="child")return[];const n=String(e.sessionId??"").trim();if(!n)return[];const i=new Set;return t.filter(r=>r.taskId===e.taskId||i.has(r.taskId)||String(r.sessionId??"").trim()!==n?!1:(i.add(r.taskId),!0)).sort((r,o)=>o.updatedAt-r.updatedAt)}function dD(e){const t=String(e?.execMode??"").trim();return t==="company"||t==="org"||t==="custom"}function yS(e){const t=ss(e)?1e9:0,n=String(e.draftAssistantText??"").trim()?1e10:0,i=Math.max(0,e.messageCount??0)*1e4,r=(e.progressLog?.length??0)*100;return n+t+i+r+e.updatedAt}function xS(e){const t=yE(e),n=ss(e)?1e11:0,i=String(e.draftAssistantText??"").trim()?1e10:0,r=typeof t.usedPct=="number"||typeof t.usedTokens=="number"||typeof t.windowTokens=="number"?1e10:0,o=typeof e.inputTokens=="number"||typeof e.outputTokens=="number"||typeof e.totalTokens=="number"?1e9:0,a=Math.max(0,e.messageCount??0)*1e4,c=(e.progressLog?.length??0)*100;return n+i+r+o+a+c}function Kf(e,t){if(!e)return{timelineSessions:[],displaySession:null,runtimeSession:null,projectedFromChild:!1};const n=Yf(e);if(e.mode==="child"||t.length===0)return{timelineSessions:[n],displaySession:n,runtimeSession:n,projectedFromChild:!1};const i=t.map(Yf),r=i.filter(p=>p.status!=="cancelled"),o=r.length>0?r:i,a=bE([n,...o]),c=dD(e),d=[...a].sort((p,g)=>yS(g)-yS(p))[0]??n,m=c?n:d,h=[...a].sort((p,g)=>xS(g)-xS(p))[0]??m;return{timelineSessions:a,displaySession:m,runtimeSession:h,projectedFromChild:!c&&m.taskId!==e.taskId}}function vS(e,t,n){if(!e)return null;const i=Yf(e),r=t??i,o=_l(r)??_l(i),a=Zf(n.length>0?n:[i]);return{...i,status:o??(r.status||i.status),assigneeIds:r.assigneeIds.length>0?r.assigneeIds:i.assigneeIds,agentStatus:r.agentStatus??i.agentStatus,currentTool:r.currentTool??i.currentTool,displayTool:r.displayTool??r.currentTool??i.displayTool??i.currentTool,toolElapsedMs:r.toolElapsedMs??i.toolElapsedMs,lastToolSummary:r.lastToolSummary??i.lastToolSummary,contextTokens:r.contextTokens??i.contextTokens,contextWindow:r.contextWindow??i.contextWindow,contextRemainingPct:r.contextRemainingPct??i.contextRemainingPct,inputTokens:r.inputTokens??i.inputTokens,outputTokens:r.outputTokens??i.outputTokens,totalTokens:r.totalTokens??i.totalTokens,turnCostUsd:r.turnCostUsd??i.turnCostUsd,sessionCostUsd:r.sessionCostUsd??i.sessionCostUsd,pendingPermissionCount:r.pendingPermissionCount??i.pendingPermissionCount,drainMode:r.drainMode??i.drainMode,workItemProjectionId:r.workItemProjectionId??i.workItemProjectionId,workItemTurnType:r.workItemTurnType??i.workItemTurnType,companyProfile:i.companyProfile??r.companyProfile,workItemRoleId:i.workItemRoleId??r.workItemRoleId,workItemRoleName:i.workItemRoleName??r.workItemRoleName,workItemGate:i.workItemGate??r.workItemGate,employeeAssignment:i.employeeAssignment??r.employeeAssignment,selectedExecutionAgent:r.selectedExecutionAgent??i.selectedExecutionAgent,draftAssistantText:r.draftAssistantText??i.draftAssistantText,draftUpdatedAt:r.draftUpdatedAt??i.draftUpdatedAt,draftIteration:r.draftIteration??i.draftIteration,draftTurnId:r.draftTurnId??i.draftTurnId,runtimeControlState:r.runtimeControlState??i.runtimeControlState,canStop:r.canStop??i.canStop,canResume:r.canResume??i.canResume,resumeParentSessionId:r.resumeParentSessionId??i.resumeParentSessionId,pendingRuntimeCheckpointId:r.pendingRuntimeCheckpointId??i.pendingRuntimeCheckpointId,stopIntentId:r.stopIntentId??i.stopIntentId,updatedAt:Math.max(i.updatedAt,r.updatedAt),messageCount:Math.max(i.messageCount??0,r.messageCount??0,a),isCompanyRuntime:!!(i.isCompanyRuntime||r.isCompanyRuntime),workItemLog:(i.workItemLog?.length??0)>0?i.workItemLog:r.workItemLog,roleWorkItems:i.roleWorkItems??r.roleWorkItems,executorRoleWorkItems:i.executorRoleWorkItems??r.executorRoleWorkItems,activeSubagents:i.activeSubagents??r.activeSubagents,permissionRequests:i.permissionRequests??r.permissionRequests}}function fD(e,t,n){if(!e)return null;const i=Yf(e),r=t??i,o=_l(r)??_l(i),a=Zf(n.length>0?n:[i]);return{...i,status:o??(r.status||i.status),agentStatus:r.agentStatus??i.agentStatus,currentTool:r.currentTool??i.currentTool,displayTool:r.displayTool??r.currentTool??i.displayTool??i.currentTool,toolElapsedMs:r.toolElapsedMs??i.toolElapsedMs,lastToolSummary:r.lastToolSummary??i.lastToolSummary,contextTokens:r.contextTokens??i.contextTokens,contextWindow:r.contextWindow??i.contextWindow,contextRemainingPct:r.contextRemainingPct??i.contextRemainingPct,inputTokens:r.inputTokens??i.inputTokens,outputTokens:r.outputTokens??i.outputTokens,totalTokens:r.totalTokens??i.totalTokens,turnCostUsd:r.turnCostUsd??i.turnCostUsd,sessionCostUsd:r.sessionCostUsd??i.sessionCostUsd,pendingPermissionCount:r.pendingPermissionCount??i.pendingPermissionCount,drainMode:r.drainMode??i.drainMode,selectedExecutionAgent:r.selectedExecutionAgent??i.selectedExecutionAgent,runtimeControlState:r.runtimeControlState??i.runtimeControlState,canStop:r.canStop??i.canStop,canResume:r.canResume??i.canResume,resumeParentSessionId:r.resumeParentSessionId??i.resumeParentSessionId,pendingRuntimeCheckpointId:r.pendingRuntimeCheckpointId??i.pendingRuntimeCheckpointId,stopIntentId:r.stopIntentId??i.stopIntentId,updatedAt:Math.max(i.updatedAt,r.updatedAt),messageCount:Math.max(i.messageCount??0,r.messageCount??0,a)}}function qx(e){const t=new Set,n=new Map,i=new Map,r=[];for(const o of e)for(const a of o){const c=a.metadata??{},d=String(c.checkpoint_id??"").trim();if(d){const x=i.get(d);if(x!==void 0){const v=r[x],b=a.timestamp>=v.timestamp?a:v,w=a.timestamp0,w=b?a:v,k=b?v:a;r[x]={...k,...w,timestamp:Math.min(v.timestamp,a.timestamp),metadata:{...k.metadata??{},...w.metadata??{},ui_timeline_id:h||Uv(v)}};continue}n.set(h,r.length)}const p=d?`checkpoint:${d}`:"",g=h||p||m||`${a.sender}:${a.replyToId??""}:${a.timestamp}:${a.content.trim()}`;t.has(g)||(t.add(g),d&&i.set(d,r.length),r.push(a))}return r.sort((o,a)=>o.timestamp===a.timestamp?o.id.localeCompare(a.id):o.timestamp-a.timestamp)}function bS(e,t){const n=[];for(const i of e){if(i.channelId===t){Gv(i,"summary")&&n.push(i);continue}const r=i.metadata??{},o=String(r.transcript_kind??r.kind??"").trim(),a=String(r.checkpoint_id??"").trim(),c=String(r.checkpoint_type??"").trim(),d=String(r.response_to_checkpoint_id??"").trim(),m=String(r.response_to_escalation_id??"").trim();if(a&&c||d||m){n.push(i);continue}["company_role_result","company_role_result_retry","child_task_result","child_task_result_retry","child_result","top_level_reply"].includes(o)&&n.push(i)}return qx([n])}function _S(e){const t=new Set,n=[];for(const i of e)for(const r of i.progressLog??[]){const o=`${r.timestamp}:${r.type}:${r.summary}:${r.detail??""}`;t.has(o)||(t.add(o),n.push(r))}return n.sort((i,r)=>i.timestamp-r.timestamp)}function Zf(e){return e.reduce((t,n)=>t+Math.max(0,n.messageCount??0),0)}const _E="openopc_locale",mD={"app.page.workspace":"Workspace","app.page.office":"Office","app.page.org":"Org","app.page.mapEditor":"Map editor","app.metric.agents":"agents","app.metric.skills":"skills","app.metric.tasks":"tasks","language.label":"Language","language.english":"EN","language.chinese":"简","outdoor.title":"Outdoor lighting override","outdoor.auto":"Outdoor auto","outdoor.day":"Outdoor day","outdoor.night":"Outdoor night","theme.midnight":"Midnight","theme.neon":"Neon","theme.paper":"Paper","theme.retro":"Retro","theme.terminal":"Terminal","theme.cozy":"Cozy","theme.openopc":"OpenOPC","dev.tools":"Developer Tools","dev.connection":"Connection","dev.evolution":"Evolution Pipeline","dev.events":"Events","dev.channels":"Channels","dev.phase.trace":"Trace","dev.phase.reflect":"Reflect","dev.phase.synthesize":"Synthesize","dev.phase.practice":"Practice","dev.phase.lifecycle":"Lifecycle","project.switch":"Switch project","project.new":"New project","project.delete":"Delete project","project.deleteButton":"Del","project.placeholder":"project-name","project.confirmTitle":'Delete project "{name}"?',"project.confirmBody":"All sessions, messages, tasks, and agent data in this project will be permanently deleted. This action cannot be undone.","common.cancel":"Cancel","common.delete":"Delete","common.yes":"Yes","common.no":"No","common.loading":"Loading...","common.ready":"ready","common.autoSaved":"Auto-saved","common.active":"active","common.idle":"idle","common.general":"general","common.state":"State","common.tool":"Tool","common.task":"Task","common.seat":"Seat","common.role":"Role","common.employee":"Employee","common.manager":"Manager","common.origin":"Origin","common.projection":"Projection","common.gate":"Gate","common.runtime":"Runtime","office.modeHint.org":"Manage your team in the Org tab","office.modeHint.switch":"Switch to Org mode to create or manage agents","office.offices":"Offices","office.activeAgents":"Active Agents","office.rename":"Rename","office.noSeat":"no seat","office.moveHere":"+ Move here","office.characters":"Characters","office.hideSub":"hide sub","office.showSub":"show sub","office.hideSubagents":"Hide sub-agents","office.showSubagents":"Show sub-agents","office.showSidePanel":"Show side panel","office.hideSidePanel":"Hide side panel","office.removeAgent":"Remove {name}","office.deleteQuestion":"Delete?","office.emptyAgents":"No agents yet — click a template above to spawn one.","session.newChat":"New Chat","session.secretary":"Secretary","session.search":"Search...","session.activity":"Activity","session.noSessions":"No sessions yet","session.today":"Today","session.yesterday":"Yesterday","session.earlier":"Earlier","session.runtimeSuffix":"Runtime Sessions","session.justNow":"just now","session.minutes":"{count}m","session.hours":"{count}h","session.days":"{count}d","session.companyRuntime":"Company runtime","session.expand":"Expand","session.collapse":"Collapse","session.subTask":"{count} sub-task","session.subTasks":"{count} sub-tasks","workspace.selectRuntimeSession":"Select a Runtime Session on the left to view its Work Item board.","workspace.noWorkItems":"No work items yet — start delegation to populate this board.","workspace.clickEditTitle":"Click to edit session title","workspace.channel.secretary":"Secretary","workspace.channel.activity":"Activity","workspace.confirmNoRoles":`Your org has no roles defined. + +Set up at least one role before running a task. + +Go to Org tab now?`,"workspace.confirmNoDecider":`Your organization has multiple top-level roles but no final decider selected. + +Choose one final decider in the Org tab before running a task. + +Go to Org tab now?`,"workspace.warningNoTeams":"No runtime teams defined — the system will auto-generate from your roles","workspace.warningVacantRoles":"{count} role(s) have no employees: {names}","workspace.confirmWarnings":`Before running this task: + +{warnings} + +Run anyway?`,"kanban.addTask":"Add task","kanban.taskTitle":"Task title...","kanban.startTask":"Start task","kanban.startWorkItem":"Start Work Item","kanban.upstreamDeps":"{count} upstream dep(s)","kanban.dep":"{count} dep","kanban.crossOffice":"Cross-office","kanban.executionTurn":"Execution Turn: {id}","kanban.column.Todo":"Todo","kanban.column.In Progress":"In Progress","kanban.column.Done":"Done","kanban.column.Ready":"Ready","kanban.column.Running":"Running","kanban.column.Review":"Review","kanban.column.Approved":"Approved","kanban.status.todo":"To do","kanban.status.in_progress":"In progress","kanban.status.in_review":"In review","kanban.status.done":"Done","kanban.status.running":"Running","kanban.status.idle":"Idle","kanban.status.blocked":"Blocked","kanban.status.awaiting_peer":"Awaiting","kanban.status.awaiting_manager_review":"Mgr Review","kanban.status.awaiting_human":"Human Review","kanban.status.awaiting_review":"In Review","kanban.status.failed":"Failed","kanban.status.cancelled":"Cancelled","agent.status.idle":"Idle","agent.status.reflecting":"Thinking...","agent.status.tool_active":"Running tool","agent.summary.active":"{active}/{total} active","agent.summary.count":"{count} agent","agent.summary.countPlural":"{count} agents","org.loading":"Loading organization data...","org.company":"Company","org.customOrg":"Custom org","org.corporateCompany":"Corporate company","org.kind.saved":"Saved org","org.kind.corporate":"Corporate","org.state.editableSaved":"Editable saved architecture","org.state.editableDraft":"Editable draft architecture","org.state.readOnly":"Built-in read-only architecture","org.organization":"Organization","org.corporate":"Corporate","org.newOrganization":"New organization","org.roles":"roles","org.employees":"employees","org.runtimeTeams":"runtime teams","org.tab.team":"Team","org.tab.runtime":"Runtime","org.tab.architecture":"Architecture","org.tab.employees":"Employees","org.createdToast":"Created {name} and saved automatically","org.architectureApplied":"Architecture applied successfully"},pD={"app.page.workspace":"工作台","app.page.office":"办公室","app.page.org":"组织","app.page.mapEditor":"地图编辑","app.metric.agents":"Agent","app.metric.skills":"技能","app.metric.tasks":"任务","language.label":"语言","language.english":"EN","language.chinese":"简","outdoor.title":"户外光照","outdoor.auto":"户外自动","outdoor.day":"户外白天","outdoor.night":"户外夜晚","theme.midnight":"午夜","theme.neon":"霓虹","theme.paper":"纸张","theme.retro":"复古","theme.terminal":"终端","theme.cozy":"舒适","theme.openopc":"OpenOPC","dev.tools":"开发工具","dev.connection":"连接","dev.evolution":"进化流水线","dev.events":"事件","dev.channels":"频道","dev.phase.trace":"追踪","dev.phase.reflect":"反思","dev.phase.synthesize":"合成","dev.phase.practice":"练习","dev.phase.lifecycle":"生命周期","project.switch":"切换项目","project.new":"新建项目","project.delete":"删除项目","project.deleteButton":"删","project.placeholder":"项目名","project.confirmTitle":"删除项目“{name}”?","project.confirmBody":"此项目中的所有会话、消息、任务和 Agent 数据都会被永久删除。此操作无法撤销。","common.cancel":"取消","common.delete":"删除","common.yes":"是","common.no":"否","common.loading":"加载中...","common.ready":"就绪","common.autoSaved":"已自动保存","common.active":"活跃","common.idle":"空闲","common.general":"通用","common.state":"状态","common.tool":"工具","common.task":"任务","common.seat":"座位","common.role":"角色","common.employee":"员工","common.manager":"经理","common.origin":"来源","common.projection":"投影","common.gate":"关卡","common.runtime":"运行时","office.modeHint.org":"在“组织”页管理你的团队","office.modeHint.switch":"切换到“组织”模式以创建或管理 Agent","office.offices":"办公室","office.activeAgents":"活跃 Agent","office.rename":"重命名","office.noSeat":"未分配座位","office.moveHere":"+ 移到这里","office.characters":"角色","office.hideSub":"隐藏子项","office.showSub":"显示子项","office.hideSubagents":"隐藏子 Agent","office.showSubagents":"显示子 Agent","office.showSidePanel":"显示侧栏","office.hideSidePanel":"隐藏侧栏","office.removeAgent":"移除 {name}","office.deleteQuestion":"删除?","office.emptyAgents":"还没有 Agent,点击上方模板生成一个。","session.newChat":"新聊天","session.secretary":"秘书","session.search":"搜索...","session.activity":"动态","session.noSessions":"还没有会话","session.today":"今天","session.yesterday":"昨天","session.earlier":"更早","session.runtimeSuffix":"运行时会话","session.justNow":"刚刚","session.minutes":"{count} 分钟","session.hours":"{count} 小时","session.days":"{count} 天","session.companyRuntime":"公司运行时","session.expand":"展开","session.collapse":"折叠","session.subTask":"{count} 个子任务","session.subTasks":"{count} 个子任务","workspace.selectRuntimeSession":"在左侧选择一个运行时会话来查看它的工作项看板。","workspace.noWorkItems":"还没有工作项,开始委派后会填充此看板。","workspace.clickEditTitle":"点击编辑会话标题","workspace.channel.secretary":"秘书","workspace.channel.activity":"动态","workspace.confirmNoRoles":`你的组织还没有定义角色。 + +运行任务前请至少设置一个角色。 + +现在前往“组织”页吗?`,"workspace.confirmNoDecider":`你的组织有多个顶层角色,但尚未选择最终决策者。 + +运行任务前请在“组织”页选择一个最终决策者。 + +现在前往“组织”页吗?`,"workspace.warningNoTeams":"尚未定义运行时团队,系统会根据角色自动生成","workspace.warningVacantRoles":"{count} 个角色没有员工:{names}","workspace.confirmWarnings":`运行此任务前: + +{warnings} + +仍然运行吗?`,"kanban.addTask":"添加任务","kanban.taskTitle":"任务标题...","kanban.startTask":"启动任务","kanban.startWorkItem":"启动工作项","kanban.upstreamDeps":"{count} 个上游依赖","kanban.dep":"{count} 依赖","kanban.crossOffice":"跨办公室","kanban.executionTurn":"执行轮次:{id}","kanban.column.Todo":"待办","kanban.column.In Progress":"进行中","kanban.column.Done":"完成","kanban.column.Ready":"就绪","kanban.column.Running":"运行中","kanban.column.Review":"评审","kanban.column.Approved":"已批准","kanban.status.todo":"待办","kanban.status.in_progress":"进行中","kanban.status.in_review":"评审中","kanban.status.done":"完成","kanban.status.running":"运行中","kanban.status.idle":"空闲","kanban.status.blocked":"阻塞","kanban.status.awaiting_peer":"等待同伴","kanban.status.awaiting_manager_review":"经理评审","kanban.status.awaiting_human":"人工评审","kanban.status.awaiting_review":"评审中","kanban.status.failed":"失败","kanban.status.cancelled":"已取消","agent.status.idle":"空闲","agent.status.reflecting":"思考中...","agent.status.tool_active":"运行工具","agent.summary.active":"{active}/{total} 活跃","agent.summary.count":"{count} 个 Agent","agent.summary.countPlural":"{count} 个 Agent","org.loading":"正在加载组织数据...","org.company":"公司","org.customOrg":"自定义组织","org.corporateCompany":"企业公司","org.kind.saved":"已保存组织","org.kind.corporate":"企业","org.state.editableSaved":"可编辑的已保存架构","org.state.editableDraft":"可编辑草稿架构","org.state.readOnly":"内置只读架构","org.organization":"组织","org.corporate":"企业","org.newOrganization":"新建组织","org.roles":"角色","org.employees":"员工","org.runtimeTeams":"运行时团队","org.tab.team":"团队","org.tab.runtime":"运行时","org.tab.architecture":"架构","org.tab.employees":"员工","org.createdToast":"已创建 {name} 并自动保存","org.architectureApplied":"架构已成功应用"},Eg={en:mD,"zh-CN":pD},kE=C.createContext(null);function hD(){try{const e=localStorage.getItem(_E);if(e==="en"||e==="zh-CN")return e}catch{}try{return navigator.language.toLowerCase().startsWith("zh")?"zh-CN":"en"}catch{return"en"}}function gD(e,t){return t?e.replace(/\{(\w+)\}/g,(n,i)=>Object.prototype.hasOwnProperty.call(t,i)?String(t[i]):`{${i}}`):e}function yD({children:e}){const[t,n]=C.useState(()=>hD());C.useEffect(()=>{document.documentElement.lang=t==="zh-CN"?"zh-CN":"en"},[t]);const i=C.useCallback(c=>{n(c);try{localStorage.setItem(_E,c),document.documentElement.lang=c==="zh-CN"?"zh-CN":"en"}catch{}},[]),r=C.useCallback((c,d)=>{const m=Eg[t][c]??Eg.en[c]??c;return gD(m,d)},[t]),o=C.useCallback((c,d)=>{const m=String(d??"").trim();if(!m)return"";const h=`${c}.${m}`;return Eg[t][h]??m},[t]),a=C.useMemo(()=>({locale:t,setLocale:i,t:r,translateMaybe:o}),[t,i,r,o]);return u.jsx(kE.Provider,{value:a,children:e})}function Vr(){const e=C.useContext(kE);if(!e)throw new Error("useI18n must be used within I18nProvider");return e}const xD={idle:"status-idle",done:"status-done",pending:"status-pending",failed:"status-failed",cancelled:"status-cancelled",blocked:"status-blocked"};function vD(e){const t=_l(e)??e.status,n=Om({...e,status:t});return n==="tool_active"?"status-tool-active":n==="reflecting"?"status-reflecting":t==="running"?"status-running-idle":xD[t]??"status-pending"}function bD(e,t){const n=Date.now()-e;return n<6e4?t("session.justNow"):n<36e5?t("session.minutes",{count:Math.floor(n/6e4)}):n<864e5?t("session.hours",{count:Math.floor(n/36e5)}):t("session.days",{count:Math.floor(n/864e5)})}function _D(e){const t=new Date,n=new Date(e),i=new Date(t.getFullYear(),t.getMonth(),t.getDate()),r=new Date(i.getTime()-864e5);return n>=i?"Today":n>=r?"Yesterday":"Earlier"}function kS(e,t,n){const i=n(e==="Today"?"session.today":e==="Yesterday"?"session.yesterday":"session.earlier");return t?`${i} ${n("session.runtimeSuffix")}`:i}function kD(e){const t=new Map,n=[];for(const i of e)if(i.mode==="child"&&i.parentSessionId){const r=t.get(i.parentSessionId)??[];r.push(i),t.set(i.parentSessionId,r)}else n.push(i);return n.map(i=>({session:i,children:Array.from(new Map([...i.sessionId?t.get(i.sessionId)??[]:[],...t.get(i.taskId)??[]].map(r=>[r.taskId,r])).values())}))}function sf({session:e,isActive:t,isChild:n,isLast:i,unreadCount:r,onSelect:o,onDelete:a}){const{t:c,translateMaybe:d}=Vr(),[m,h]=C.useState(!1),[p,g]=C.useState(!1),x=e.assigneeIds.length>0?e.assigneeIds[0].replace(/^agent-/,""):null,v=_l(e)??e.status;return C.useEffect(()=>{if(!p)return;const b=setTimeout(()=>g(!1),3e3);return()=>clearTimeout(b)},[p]),u.jsxs("button",{className:`session-item${t?" active":""}${n?" session-item-child":""}`,onClick:o,onMouseEnter:()=>h(!0),onMouseLeave:()=>h(!1),children:[n&&u.jsx("span",{className:`session-tree-line${i?" last":""}`}),u.jsx("span",{className:`session-dot ${vD(e)}`}),u.jsxs("div",{className:"session-item-content",children:[u.jsxs("span",{className:"session-item-title",children:[n&&x&&u.jsx("span",{className:"session-agent-tag",children:x}),!n&&e.isCompanyRuntime&&u.jsx("span",{className:"session-runtime-badge",title:c("session.companyRuntime"),children:u.jsx(Mm,{})}),e.title]}),u.jsxs("span",{className:"session-item-meta",children:[d("kanban.status",v)||v," · ",bD(e.updatedAt,c)]})]}),!!r&&r>0&&u.jsx("span",{className:"session-unread-badge",children:r>99?"99+":r}),m&&!n&&!p&&u.jsx("button",{className:"session-delete-btn",onClick:b=>{b.stopPropagation(),g(!0)},title:c("common.delete"),children:u.jsx(F4,{})}),p&&u.jsxs("span",{className:"session-confirm-delete",onClick:b=>b.stopPropagation(),children:[u.jsx("button",{className:"session-confirm-yes",onClick:()=>{g(!1),a()},children:c("common.delete")}),u.jsx("button",{className:"session-confirm-no",onClick:()=>g(!1),children:c("common.cancel")})]})]})}function SD({sessions:e,activeSessionId:t,activeChannel:n,secretaryChannelId:i,unreadCounts:r,onSelect:o,onCreateSession:a,onDeleteSession:c,onSelectSecretary:d}){const{t:m}=Vr(),[h,p]=C.useState(""),[g,x]=C.useState(new Set),v=e.some(T=>T.isCompanyRuntime||T.mode==="child"||T.execMode==="company"||T.execMode==="org"||T.execMode==="custom"),b=C.useCallback(T=>{x(M=>{const I=new Set(M);return I.has(T)?I.delete(T):I.add(T),I})},[]),w=C.useMemo(()=>{if(!h.trim())return e;const T=h.toLowerCase();return e.filter(M=>M.title.toLowerCase().includes(T))},[e,h]),k=C.useMemo(()=>kD(w),[w]),S=C.useMemo(()=>{const T={Today:[],Yesterday:[],Earlier:[]};for(const M of k){const I=_D(M.session.createdAt);T[I]?.push(M)}return T},[k]),j=C.useMemo(()=>{const T=[];for(const M of["Today","Yesterday","Earlier"]){const I=S[M];if(!(!I||I.length===0)){T.push({kind:"group",group:M});for(const H of I){T.push({kind:"primary",node:H});const Y=H.children.length>0,P=g.has(H.session.taskId);Y&&P?T.push({kind:"child-count",node:H}):Y&&H.children.forEach((U,$)=>{T.push({kind:"child",parentTaskId:H.session.taskId,child:U,childIndex:$,childCount:H.children.length})})}}}return T},[g,S]),N=j.length>120,L=C.useRef(null),A=L4({count:j.length,getScrollElement:()=>L.current,estimateSize:T=>{const M=j[T];return M?.kind==="group"?26:M?.kind==="child-count"?30:54},overscan:8}),D=C.useCallback(T=>{const M=T.children.length>0,I=g.has(T.session.taskId);return u.jsx("div",{className:"session-tree-node",children:u.jsxs("div",{className:"session-tree-primary",children:[M&&u.jsx("button",{className:`session-expand-btn${I?" collapsed":""}`,onClick:H=>{H.stopPropagation(),b(T.session.taskId)},"aria-label":m(I?"session.expand":"session.collapse")}),u.jsx(sf,{session:T.session,isActive:T.session.taskId===t,unreadCount:r?.[T.session.channelId],onSelect:()=>o(T.session.taskId),onDelete:()=>c(T.session.taskId)})]})})},[t,g,c,o,b,r,m]),O=C.useCallback(T=>T.kind==="group"?u.jsx("div",{className:"session-group-label",children:kS(T.group,v,m)}):T.kind==="primary"?D(T.node):T.kind==="child-count"?u.jsx("button",{className:"session-child-count",onClick:()=>b(T.node.session.taskId),children:m(T.node.children.length>1?"session.subTasks":"session.subTask",{count:T.node.children.length})}):u.jsx("div",{className:"session-children",children:u.jsx(sf,{session:T.child,isActive:T.child.taskId===t,isChild:!0,isLast:T.childIndex===T.childCount-1,unreadCount:r?.[T.child.channelId],onSelect:()=>o(T.child.taskId),onDelete:()=>c(T.child.taskId)})}),[t,v,c,o,D,b,r,m]);return u.jsxs("div",{className:"session-sidebar",children:[u.jsxs("button",{className:"session-new-btn",onClick:a,children:[u.jsx(H4,{}),u.jsx("span",{children:m("session.newChat")})]}),d&&u.jsxs("button",{className:`session-nav-btn${n===i?" active":""}`,onClick:d,children:[u.jsx(yu,{}),u.jsx("span",{children:m("session.secretary")}),!!(i&&r?.[i])&&r[i]>0&&u.jsx("span",{className:"session-unread-badge",children:r[i]>99?"99+":r[i]})]}),u.jsxs("div",{className:"session-search-wrap",children:[u.jsx(Vv,{}),u.jsx("input",{className:"session-search",placeholder:m("session.search"),value:h,onChange:T=>p(T.target.value)})]}),u.jsxs("div",{ref:L,className:`session-list${N?" session-list-virtualized":""}`,children:[N?u.jsx("div",{style:{height:A.getTotalSize(),width:"100%",position:"relative"},children:A.getVirtualItems().map(T=>u.jsx("div",{"data-index":T.index,ref:A.measureElement,style:{position:"absolute",top:0,left:0,width:"100%",transform:`translateY(${T.start}px)`},children:O(j[T.index])},T.key))}):["Today","Yesterday","Earlier"].map(T=>{const M=S[T];return!M||M.length===0?null:u.jsxs("div",{className:"session-group",children:[u.jsx("div",{className:"session-group-label",children:kS(T,v,m)}),M.map(I=>{const H=I.children.length>0,Y=g.has(I.session.taskId);return u.jsxs("div",{className:"session-tree-node",children:[u.jsxs("div",{className:"session-tree-primary",children:[H&&u.jsx("button",{className:`session-expand-btn${Y?" collapsed":""}`,onClick:P=>{P.stopPropagation(),b(I.session.taskId)},"aria-label":m(Y?"session.expand":"session.collapse")}),u.jsx(sf,{session:I.session,isActive:I.session.taskId===t,unreadCount:r?.[I.session.channelId],onSelect:()=>o(I.session.taskId),onDelete:()=>c(I.session.taskId)})]}),H&&!Y&&u.jsx("div",{className:"session-children",children:I.children.map((P,U)=>u.jsx(sf,{session:P,isActive:P.taskId===t,isChild:!0,isLast:U===I.children.length-1,unreadCount:r?.[P.channelId],onSelect:()=>o(P.taskId),onDelete:()=>c(P.taskId)},P.taskId))}),H&&Y&&u.jsx("button",{className:"session-child-count",onClick:()=>b(I.session.taskId),children:m(I.children.length>1?"session.subTasks":"session.subTask",{count:I.children.length})})]},I.session.taskId)})]},T)}),w.length===0&&u.jsx("div",{className:"session-empty",children:m("session.noSessions")})]}),u.jsxs("button",{className:`session-nav-btn session-activity-btn${t===null&&n!==i?" active":""}`,onClick:()=>o(null),children:[u.jsx(hE,{}),u.jsx("span",{children:m("session.activity")})]})]})}const wD=new Set(["company_work_item_gate","company_delivery_feedback","company_staffing_selection","company_recruitment_confirmation","company_reorg_pending","human_escalation","task_user_input"]),CD=new Set(["responded","resolved","timeout","timed_out","expired","stale","superseded","ignored","cancelled","canceled","invalid"]);function jD(e){return wD.has(String(e??"").trim())}function xu(e){return!(!jD(e?.checkpoint_type)||e?.self_evolution_completed||String(e?.kind??"").trim()==="company_self_evolution_result")}function ED(e){const t=String(e?.checkpoint_status??"").trim().toLowerCase();return CD.has(t)?!0:!!String(e?.checkpoint_response_message_id??"").trim()}function SE(e){const t=String(e?.checkpoint_id??"").trim();if(!t)return;const n=String(e?.checkpoint_type??"").trim(),i=String(e?.escalation_id??"").trim();return{response_to_checkpoint_id:t,response_to_checkpoint_type:n||void 0,response_to_escalation_id:i||void 0}}function wE(e){const t=String(e?.response_to_checkpoint_type??"").trim();if(!(t==="company_delivery_feedback"||t==="human_escalation"))return e}function qv(e){const t=new Set,n=new Set,i=new Set;let r;const o=new Map,a=new Map,c=new Set;for(let d=0;dd,b=g==="human_escalation"&&!!x&&(a.get(x)??-1)>d;if(ED(h)||v||b){n.add(m.id);continue}t.add(m.id),r=SE(h)??r}return{pendingMessageIds:t,respondedMessageIds:n,duplicateMessageIds:i,latestPendingReplyMetadata:r}}function $i(e){return`Minified Redux error #${e}; visit https://redux.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var ND=typeof Symbol=="function"&&Symbol.observable||"@@observable",SS=ND,wS=()=>Math.random().toString(36).substring(7).split("").join("."),ID={INIT:`@@redux/INIT${wS()}`,REPLACE:`@@redux/REPLACE${wS()}`},CS=ID;function TD(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 CE(e,t,n){if(typeof e!="function")throw new Error($i(2));if(typeof t=="function"&&typeof n=="function"||typeof n=="function"&&typeof arguments[3]=="function")throw new Error($i(0));if(typeof t=="function"&&typeof n>"u"&&(n=t,t=void 0),typeof n<"u"){if(typeof n!="function")throw new Error($i(1));return n(CE)(e,t)}let i=e,r=t,o=new Map,a=o,c=0,d=!1;function m(){a===o&&(a=new Map,o.forEach((w,k)=>{a.set(k,w)}))}function h(){if(d)throw new Error($i(3));return r}function p(w){if(typeof w!="function")throw new Error($i(4));if(d)throw new Error($i(5));let k=!0;m();const S=c++;return a.set(S,w),function(){if(k){if(d)throw new Error($i(6));k=!1,m(),a.delete(S),o=null}}}function g(w){if(!TD(w))throw new Error($i(7));if(typeof w.type>"u")throw new Error($i(8));if(typeof w.type!="string")throw new Error($i(17));if(d)throw new Error($i(9));try{d=!0,r=i(r,w)}finally{d=!1}return(o=a).forEach(S=>{S()}),w}function x(w){if(typeof w!="function")throw new Error($i(10));i=w,g({type:CS.REPLACE})}function v(){const w=p;return{subscribe(k){if(typeof k!="object"||k===null)throw new Error($i(11));function S(){const N=k;N.next&&N.next(h())}return S(),{unsubscribe:w(S)}},[SS](){return this}}}return g({type:CS.INIT}),{dispatch:g,subscribe:p,getState:h,replaceReducer:x,[SS]:v}}function jS(e,t){return function(...n){return t(e.apply(this,n))}}function ES(e,t){if(typeof e=="function")return jS(e,t);if(typeof e!="object"||e===null)throw new Error($i(16));const n={};for(const i in e){const r=e[i];typeof r=="function"&&(n[i]=jS(r,t))}return n}function jE(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,n)=>(...i)=>t(n(...i)))}function RD(...e){return t=>(n,i)=>{const r=t(n,i);let o=()=>{throw new Error($i(15))};const a={getState:r.getState,dispatch:(d,...m)=>o(d,...m)},c=e.map(d=>d(a));return o=jE(...c)(r.dispatch),{...r,dispatch:o}}}var Ng={exports:{}},Ig={};var NS;function AD(){if(NS)return Ig;NS=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,i=e.useSyncExternalStore,r=e.useRef,o=e.useEffect,a=e.useMemo,c=e.useDebugValue;return Ig.useSyncExternalStoreWithSelector=function(d,m,h,p,g){var x=r(null);if(x.current===null){var v={hasValue:!1,value:null};x.current=v}else v=x.current;x=a(function(){function w(L){if(!k){if(k=!0,S=L,L=p(L),g!==void 0&&v.hasValue){var A=v.value;if(g(A,L))return j=A}return j=L}if(A=j,n(S,L))return A;var D=p(L);return g!==void 0&&g(A,D)?(S=L,A):(S=L,j=D)}var k=!1,S,j,N=h===void 0?null:h;return[function(){return w(m())},N===null?void 0:function(){return w(N())}]},[m,h,p,g]);var b=i(d,x[0],x[1]);return o(function(){v.hasValue=!0,v.value=b},[b]),c(b),b},Ig}var IS;function MD(){return IS||(IS=1,Ng.exports=AD()),Ng.exports}MD();var DD=C.version.startsWith("19"),OD=Symbol.for(DD?"react.transitional.element":"react.element"),LD=Symbol.for("react.portal"),zD=Symbol.for("react.fragment"),PD=Symbol.for("react.strict_mode"),BD=Symbol.for("react.profiler"),$D=Symbol.for("react.consumer"),HD=Symbol.for("react.context"),EE=Symbol.for("react.forward_ref"),FD=Symbol.for("react.suspense"),VD=Symbol.for("react.suspense_list"),Wv=Symbol.for("react.memo"),UD=Symbol.for("react.lazy"),GD=EE,qD=Wv;function WD(e){if(typeof e=="object"&&e!==null){const{$$typeof:t}=e;switch(t){case OD:switch(e=e.type,e){case zD:case BD:case PD:case FD:case VD:return e;default:switch(e=e&&e.$$typeof,e){case HD:case EE:case UD:case Wv:return e;case $D:return e;default:return t}}case LD:return t}}}function YD(e){return WD(e)===Wv}function XD(e,t,n,i,{areStatesEqual:r,areOwnPropsEqual:o,areStatePropsEqual:a}){let c=!1,d,m,h,p,g;function x(S,j){return d=S,m=j,h=e(d,m),p=t(i,m),g=n(h,p,m),c=!0,g}function v(){return h=e(d,m),t.dependsOnOwnProps&&(p=t(i,m)),g=n(h,p,m),g}function b(){return e.dependsOnOwnProps&&(h=e(d,m)),t.dependsOnOwnProps&&(p=t(i,m)),g=n(h,p,m),g}function w(){const S=e(d,m),j=!a(S,h);return h=S,j&&(g=n(h,p,m)),g}function k(S,j){const N=!o(j,m),L=!r(S,d,j,m);return d=S,m=j,N&&L?v():N?b():L?w():g}return function(j,N){return c?k(j,N):x(j,N)}}function KD(e,{initMapStateToProps:t,initMapDispatchToProps:n,initMergeProps:i,...r}){const o=t(e,r),a=n(e,r),c=i(e,r);return XD(o,a,c,e,r)}function ZD(e,t){const n={};for(const i in e){const r=e[i];typeof r=="function"&&(n[i]=(...o)=>t(r(...o)))}return n}function Wx(e){return function(n){const i=e(n);function r(){return i}return r.dependsOnOwnProps=!1,r}}function TS(e){return e.dependsOnOwnProps?!!e.dependsOnOwnProps:e.length!==1}function NE(e,t){return function(i,{displayName:r}){const o=function(c,d){return o.dependsOnOwnProps?o.mapToProps(c,d):o.mapToProps(c,void 0)};return o.dependsOnOwnProps=!0,o.mapToProps=function(c,d){o.mapToProps=e,o.dependsOnOwnProps=TS(e);let m=o(c,d);return typeof m=="function"&&(o.mapToProps=m,o.dependsOnOwnProps=TS(m),m=o(c,d)),m},o}}function Yv(e,t){return(n,i)=>{throw new Error(`Invalid value of type ${typeof e} for ${t} argument when connecting component ${i.wrappedComponentName}.`)}}function QD(e){return e&&typeof e=="object"?Wx(t=>ZD(e,t)):e?typeof e=="function"?NE(e):Yv(e,"mapDispatchToProps"):Wx(t=>({dispatch:t}))}function JD(e){return e?typeof e=="function"?NE(e):Yv(e,"mapStateToProps"):Wx(()=>({}))}function e5(e,t,n){return{...n,...e,...t}}function t5(e){return function(n,{displayName:i,areMergedPropsEqual:r}){let o=!1,a;return function(d,m,h){const p=e(d,m,h);return o?r(p,a)||(a=p):(o=!0,a=p),a}}}function n5(e){return e?typeof e=="function"?t5(e):Yv(e,"mergeProps"):()=>e5}function i5(e){e()}function r5(){let e=null,t=null;return{clear(){e=null,t=null},notify(){i5(()=>{let n=e;for(;n;)n.callback(),n=n.next})},get(){const n=[];let i=e;for(;i;)n.push(i),i=i.next;return n},subscribe(n){let i=!0;const r=t={callback:n,next:null,prev:t};return r.prev?r.prev.next=r:e=r,function(){!i||e===null||(i=!1,r.next?r.next.prev=r.prev:t=r.prev,r.prev?r.prev.next=r.next:e=r.next)}}}}var RS={notify(){},get:()=>[]};function IE(e,t){let n,i=RS,r=0,o=!1;function a(b){h();const w=i.subscribe(b);let k=!1;return()=>{k||(k=!0,w(),p())}}function c(){i.notify()}function d(){v.onStateChange&&v.onStateChange()}function m(){return o}function h(){r++,n||(n=t?t.addNestedSub(d):e.subscribe(d),i=r5())}function p(){r--,n&&r===0&&(n(),n=void 0,i.clear(),i=RS)}function g(){o||(o=!0,h())}function x(){o&&(o=!1,p())}const v={addNestedSub:a,notifyNestedSubs:c,handleChangeWrapper:d,isSubscribed:m,trySubscribe:g,tryUnsubscribe:x,getListeners:()=>i};return v}var s5=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",o5=s5(),a5=()=>typeof navigator<"u"&&navigator.product==="ReactNative",l5=a5(),c5=()=>o5||l5?C.useLayoutEffect:C.useEffect,Qf=c5();function AS(e,t){return e===t?e!==0||t!==0||1/e===1/t:e!==e&&t!==t}function Tg(e,t){if(AS(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;const n=Object.keys(e),i=Object.keys(t);if(n.length!==i.length)return!1;for(let r=0;re(...t),n)}function S5(e,t,n,i,r,o){e.current=i,n.current=!1,r.current&&(r.current=null,o())}function w5(e,t,n,i,r,o,a,c,d,m,h){if(!e)return()=>{};let p=!1,g=null;const x=()=>{if(p||!c.current)return;const b=t.getState();let w,k;try{w=i(b,r.current)}catch(S){k=S,g=S}k||(g=null),w===o.current?a.current||m():(o.current=w,d.current=w,a.current=!0,h())};return n.onStateChange=x,n.trySubscribe(),x(),()=>{if(p=!0,n.tryUnsubscribe(),n.onStateChange=null,g)throw g}}function C5(e,t){return e===t}function j5(e,t,n,{pure:i,areStatesEqual:r=C5,areOwnPropsEqual:o=Tg,areStatePropsEqual:a=Tg,areMergedPropsEqual:c=Tg,forwardRef:d=!1,context:m=RE}={}){const h=m,p=JD(e),g=QD(t),x=n5(n),v=!!e;return w=>{const k=w.displayName||w.name||"Component",S=`Connect(${k})`,j={shouldHandleStateChanges:v,displayName:S,wrappedComponentName:k,WrappedComponent:w,initMapStateToProps:p,initMapDispatchToProps:g,initMergeProps:x,areStatesEqual:r,areStatePropsEqual:a,areOwnPropsEqual:o,areMergedPropsEqual:c};function N(D){const[O,T,M]=C.useMemo(()=>{const{reactReduxForwardedRef:we,...Re}=D;return[D.context,we,Re]},[D]),I=C.useMemo(()=>{let we=h;return O?.Consumer,we},[O,h]),H=C.useContext(I),Y=!!D.store&&!!D.store.getState&&!!D.store.dispatch,P=!!H&&!!H.store,U=Y?D.store:H.store,$=P?H.getServerState:U.getState,G=C.useMemo(()=>KD(U.dispatch,j),[U]),[q,K]=C.useMemo(()=>{if(!v)return _5;const we=IE(U,Y?void 0:H.subscription),Re=we.notifyNestedSubs.bind(we);return[we,Re]},[U,Y,H]),W=C.useMemo(()=>Y?H:{...H,subscription:q},[Y,H,q]),V=C.useRef(void 0),Q=C.useRef(M),B=C.useRef(void 0),Z=C.useRef(!1),te=C.useRef(!1),ee=C.useRef(void 0);Qf(()=>(te.current=!0,()=>{te.current=!1}),[]);const se=C.useMemo(()=>()=>B.current&&M===Q.current?B.current:G(U.getState(),M),[U,M]),ae=C.useMemo(()=>Re=>q?w5(v,U,q,G,Q,V,Z,te,B,K,Re):()=>{},[q]);k5(S5,[Q,V,Z,M,B,K]);let ue;try{ue=C.useSyncExternalStore(ae,se,$?()=>G($(),M):se)}catch(we){throw ee.current&&(we.message+=` +The error may be correlated with this previous error: +${ee.current.stack} + +`),we}Qf(()=>{ee.current=void 0,B.current=void 0,V.current=ue});const ie=C.useMemo(()=>C.createElement(w,{...ue,ref:T}),[T,w,ue]);return C.useMemo(()=>v?C.createElement(I.Provider,{value:W},ie):ie,[I,ie,W])}const A=C.memo(N);if(A.WrappedComponent=w,A.displayName=N.displayName=S,d){const O=C.forwardRef(function(M,I){return C.createElement(A,{...M,reactReduxForwardedRef:I})});return O.displayName=S,O.WrappedComponent=w,Yx(O,w)}return Yx(A,w)}}var AE=j5;function E5(e){const{children:t,context:n,serverState:i,store:r}=e,o=C.useMemo(()=>{const d=IE(r);return{store:r,subscription:d,getServerState:i?()=>i:void 0}},[r,i]),a=C.useMemo(()=>r.getState(),[r]);Qf(()=>{const{subscription:d}=o;return d.onStateChange=d.notifyNestedSubs,d.trySubscribe(),a!==r.getState()&&d.notifyNestedSubs(),()=>{d.tryUnsubscribe(),d.onStateChange=void 0}},[o,a]);const c=n||RE;return C.createElement(c.Provider,{value:o},t)}var N5=E5,I5="Invariant failed";function T5(e,t){throw new Error(I5)}var zr=function(t){var n=t.top,i=t.right,r=t.bottom,o=t.left,a=i-o,c=r-n,d={top:n,right:i,bottom:r,left:o,width:a,height:c,x:o,y:n,center:{x:(i+o)/2,y:(r+n)/2}};return d},Xv=function(t,n){return{top:t.top-n.top,left:t.left-n.left,bottom:t.bottom+n.bottom,right:t.right+n.right}},LS=function(t,n){return{top:t.top+n.top,left:t.left+n.left,bottom:t.bottom-n.bottom,right:t.right-n.right}},R5=function(t,n){return{top:t.top+n.y,left:t.left+n.x,bottom:t.bottom+n.y,right:t.right+n.x}},Rg={top:0,right:0,bottom:0,left:0},Kv=function(t){var n=t.borderBox,i=t.margin,r=i===void 0?Rg:i,o=t.border,a=o===void 0?Rg:o,c=t.padding,d=c===void 0?Rg:c,m=zr(Xv(n,r)),h=zr(LS(n,a)),p=zr(LS(h,d));return{marginBox:m,borderBox:zr(n),paddingBox:h,contentBox:p,margin:r,border:a,padding:d}},Cr=function(t){var n=t.slice(0,-2),i=t.slice(-2);if(i!=="px")return 0;var r=Number(n);return isNaN(r)&&T5(),r},A5=function(){return{x:window.pageXOffset,y:window.pageYOffset}},Jf=function(t,n){var i=t.borderBox,r=t.border,o=t.margin,a=t.padding,c=R5(i,n);return Kv({borderBox:c,border:r,margin:o,padding:a})},em=function(t,n){return n===void 0&&(n=A5()),Jf(t,n)},ME=function(t,n){var i={top:Cr(n.marginTop),right:Cr(n.marginRight),bottom:Cr(n.marginBottom),left:Cr(n.marginLeft)},r={top:Cr(n.paddingTop),right:Cr(n.paddingRight),bottom:Cr(n.paddingBottom),left:Cr(n.paddingLeft)},o={top:Cr(n.borderTopWidth),right:Cr(n.borderRightWidth),bottom:Cr(n.borderBottomWidth),left:Cr(n.borderLeftWidth)};return Kv({borderBox:t,margin:i,padding:r,border:o})},DE=function(t){var n=t.getBoundingClientRect(),i=window.getComputedStyle(t);return ME(n,i)},vu=function(t){var n=[],i=null,r=function(){for(var a=arguments.length,c=new Array(a),d=0;d{const o=M5(n,r.options);return e.addEventListener(r.eventName,r.fn,o),function(){e.removeEventListener(r.eventName,r.fn,o)}});return function(){i.forEach(o=>{o()})}}const D5="Invariant failed";class nm extends Error{}nm.prototype.toString=function(){return this.message};function Be(e,t){throw new nm(D5)}let O5=class extends Tt.Component{constructor(...t){super(...t),this.callbacks=null,this.unbind=vo,this.onWindowError=n=>{const i=this.getCallbacks();i.isDragging()&&i.tryAbort(),n.error instanceof nm&&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=Ir(window,[{eventName:"error",fn:this.onWindowError}])}componentDidCatch(t){if(t instanceof nm){this.setState({});return}throw t}componentWillUnmount(){this.unbind()}render(){return this.props.children(this.setCallbacks)}};const L5=` + 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 +`,im=e=>e+1,z5=e=>` + You have lifted an item in position ${im(e.source.index)} +`,LE=(e,t)=>{const n=e.droppableId===t.droppableId,i=im(e.index),r=im(t.index);return n?` + You have moved the item from position ${i} + to position ${r} + `:` + You have moved the item from position ${i} + in list ${e.droppableId} + to list ${t.droppableId} + in position ${r} + `},zE=(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} + `,P5=e=>{const t=e.destination;if(t)return LE(e.source,t);const n=e.combine;return n?zE(e.draggableId,e.source,n):"You are over an area that cannot be dropped on"},zS=e=>` + The item has returned to its starting position + of ${im(e.index)} +`,B5=e=>{if(e.reason==="CANCEL")return` + Movement cancelled. + ${zS(e.source)} + `;const t=e.destination,n=e.combine;return t?` + You have dropped the item. + ${LE(e.source,t)} + `:n?` + You have dropped the item. + ${zE(e.draggableId,e.source,n)} + `:` + The item has been dropped while not over a drop area. + ${zS(e.source)} + `},Of={dragHandleUsageInstructions:L5,onDragStart:z5,onDragUpdate:P5,onDragEnd:B5};function $5(e,t){return!!(e===t||Number.isNaN(e)&&Number.isNaN(t))}function PE(e,t){if(e.length!==t.length)return!1;for(let n=0;n({inputs:t,result:e()}))[0],i=C.useRef(!0),r=C.useRef(n),a=i.current||!!(t&&r.current.inputs&&PE(t,r.current.inputs))?r.current:{inputs:t,result:e()};return C.useEffect(()=>{i.current=!1,r.current=a},[a]),a.result}function rt(e,t){return sn(()=>e,t)}const ki={x:0,y:0},Ii=(e,t)=>({x:e.x+t.x,y:e.y+t.y}),dr=(e,t)=>({x:e.x-t.x,y:e.y-t.y}),bo=(e,t)=>e.x===t.x&&e.y===t.y,Hl=e=>({x:e.x!==0?-e.x:0,y:e.y!==0?-e.y:0}),la=(e,t,n=0)=>e==="x"?{x:t,y:n}:{x:n,y:t},bu=(e,t)=>Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2),PS=(e,t)=>Math.min(...t.map(n=>bu(e,n))),BE=e=>t=>({x:e(t.x),y:e(t.y)});var H5=(e,t)=>{const n=zr({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 Bu=(e,t)=>({top:e.top+t.y,left:e.left+t.x,bottom:e.bottom+t.y,right:e.right+t.x}),BS=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}],F5={top:0,right:0,bottom:0,left:0},V5=(e,t)=>t?Bu(e,t.scroll.diff.displacement):e,U5=(e,t,n)=>n&&n.increasedBy?{...e,[t.end]:e[t.end]+n.increasedBy[t.line]}:e,G5=(e,t)=>t&&t.shouldClipSubject?H5(t.pageMarginBox,e):zr(e);var kl=({page:e,withPlaceholder:t,axis:n,frame:i})=>{const r=V5(e.marginBox,i),o=U5(r,n,t),a=G5(o,i);return{page:e,withPlaceholder:t,active:a}},Zv=(e,t)=>{e.frame||Be();const n=e.frame,i=dr(t,n.scroll.initial),r=Hl(i),o={...n,scroll:{initial:n.scroll.initial,current:t,diff:{value:i,displacement:r},max:n.scroll.max}},a=kl({page:e.subject.page,withPlaceholder:e.subject.withPlaceholder,axis:e.axis,frame:o});return{...e,frame:o,subject:a}};function _i(e,t=PE){let n=null;function i(...r){if(n&&n.lastThis===this&&t(r,n.lastArgs))return n.lastResult;const o=e.apply(this,r);return n={lastResult:o,lastArgs:r,lastThis:this},o}return i.clear=function(){n=null},i}const $E=_i(e=>e.reduce((t,n)=>(t[n.descriptor.id]=n,t),{})),HE=_i(e=>e.reduce((t,n)=>(t[n.descriptor.id]=n,t),{})),zm=_i(e=>Object.values(e)),q5=_i(e=>Object.values(e));var Fl=_i((e,t)=>q5(t).filter(i=>e===i.descriptor.droppableId).sort((i,r)=>i.descriptor.index-r.descriptor.index));function Qv(e){return e.at&&e.at.type==="REORDER"?e.at.destination:null}function Pm(e){return e.at&&e.at.type==="COMBINE"?e.at.combine:null}var Bm=_i((e,t)=>t.filter(n=>n.descriptor.id!==e.descriptor.id)),W5=({isMovingForward:e,draggable:t,destination:n,insideDestination:i,previousImpact:r})=>{if(!n.isCombineEnabled||!Qv(r))return null;function a(x){const v={type:"COMBINE",combine:{draggableId:x,droppableId:n.descriptor.id}};return{...r,at:v}}const c=r.displaced.all,d=c.length?c[0]:null;if(e)return d?a(d):null;const m=Bm(t,i);if(!d){if(!m.length)return null;const x=m[m.length-1];return a(x.descriptor.id)}const h=m.findIndex(x=>x.descriptor.id===d);h===-1&&Be();const p=h-1;if(p<0)return null;const g=m[p];return a(g.descriptor.id)},Vl=(e,t)=>e.descriptor.droppableId===t.descriptor.id;const FE={point:ki,value:0},_u={invisible:{},visible:{},all:[]},Y5={displaced:_u,displacedBy:FE,at:null};var Tr=(e,t)=>n=>e<=n&&n<=t,VE=e=>{const t=Tr(e.top,e.bottom),n=Tr(e.left,e.right);return i=>{if(t(i.top)&&t(i.bottom)&&n(i.left)&&n(i.right))return!0;const o=t(i.top)||t(i.bottom),a=n(i.left)||n(i.right);if(o&&a)return!0;const d=i.tope.bottom,m=i.lefte.right;return d&&m?!0:d&&a||m&&o}},X5=e=>{const t=Tr(e.top,e.bottom),n=Tr(e.left,e.right);return i=>t(i.top)&&t(i.bottom)&&n(i.left)&&n(i.right)};const Jv={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 K5=e=>t=>{const n=Tr(t.top,t.bottom),i=Tr(t.left,t.right);return r=>e===Jv?n(r.top)&&n(r.bottom):i(r.left)&&i(r.right)};const Z5=(e,t)=>{const n=t.frame?t.frame.scroll.diff.displacement:ki;return Bu(e,n)},Q5=(e,t,n)=>t.subject.active?n(t.subject.active)(e):!1,J5=(e,t,n)=>n(t)(e),e0=({target:e,destination:t,viewport:n,withDroppableDisplacement:i,isVisibleThroughFrameFn:r})=>{const o=i?Z5(e,t):e;return Q5(o,t,r)&&J5(o,n,r)},eO=e=>e0({...e,isVisibleThroughFrameFn:VE}),GE=e=>e0({...e,isVisibleThroughFrameFn:X5}),tO=e=>e0({...e,isVisibleThroughFrameFn:K5(e.destination.axis)}),nO=(e,t,n)=>{if(typeof n=="boolean")return n;if(!t)return!0;const{invisible:i,visible:r}=t;if(i[e])return!1;const o=r[e];return o?o.shouldAnimate:!0};function iO(e,t){const n=e.page.marginBox,i={top:t.point.y,right:0,bottom:0,left:t.point.x};return zr(Xv(n,i))}function ku({afterDragging:e,destination:t,displacedBy:n,viewport:i,forceShouldAnimate:r,last:o}){return e.reduce(function(c,d){const m=iO(d,n),h=d.descriptor.id;if(c.all.push(h),!eO({target:m,destination:t,viewport:i,withDroppableDisplacement:!0}))return c.invisible[d.descriptor.id]=!0,c;const g=nO(h,o,r),x={draggableId:h,shouldAnimate:g};return c.visible[h]=x,c},{all:[],visible:{},invisible:{}})}function rO(e,t){if(!e.length)return 0;const n=e[e.length-1].descriptor.index;return t.inHomeList?n:n+1}function $S({insideDestination:e,inHomeList:t,displacedBy:n,destination:i}){const r=rO(e,{inHomeList:t});return{displaced:_u,displacedBy:n,at:{type:"REORDER",destination:{droppableId:i.descriptor.id,index:r}}}}function rm({draggable:e,insideDestination:t,destination:n,viewport:i,displacedBy:r,last:o,index:a,forceShouldAnimate:c}){const d=Vl(e,n);if(a==null)return $S({insideDestination:t,inHomeList:d,displacedBy:r,destination:n});const m=t.find(v=>v.descriptor.index===a);if(!m)return $S({insideDestination:t,inHomeList:d,displacedBy:r,destination:n});const h=Bm(e,t),p=t.indexOf(m),g=h.slice(p);return{displaced:ku({afterDragging:g,destination:n,displacedBy:r,last:o,viewport:i.frame,forceShouldAnimate:c}),displacedBy:r,at:{type:"REORDER",destination:{droppableId:n.descriptor.id,index:a}}}}function So(e,t){return!!t.effected[e]}var sO=({isMovingForward:e,destination:t,draggables:n,combine:i,afterCritical:r})=>{if(!t.isCombineEnabled)return null;const o=i.draggableId,c=n[o].descriptor.index;return So(o,r)?e?c:c-1:e?c+1:c},oO=({isMovingForward:e,isInHomeList:t,insideDestination:n,location:i})=>{if(!n.length)return null;const r=i.index,o=e?r+1:r-1,a=n[0].descriptor.index,c=n[n.length-1].descriptor.index,d=t?c:c+1;return od?null:o},aO=({isMovingForward:e,isInHomeList:t,draggable:n,draggables:i,destination:r,insideDestination:o,previousImpact:a,viewport:c,afterCritical:d})=>{const m=a.at;if(m||Be(),m.type==="REORDER"){const p=oO({isMovingForward:e,isInHomeList:t,location:m.destination,insideDestination:o});return p==null?null:rm({draggable:n,insideDestination:o,destination:r,viewport:c,last:a.displaced,displacedBy:a.displacedBy,index:p})}const h=sO({isMovingForward:e,destination:r,displaced:a.displaced,draggables:i,combine:m.combine,afterCritical:d});return h==null?null:rm({draggable:n,insideDestination:o,destination:r,viewport:c,last:a.displaced,displacedBy:a.displacedBy,index:h})},lO=({displaced:e,afterCritical:t,combineWith:n,displacedBy:i})=>{const r=!!(e.visible[n]||e.invisible[n]);return So(n,t)?r?ki:Hl(i.point):r?i.point:ki},cO=({afterCritical:e,impact:t,draggables:n})=>{const i=Pm(t);i||Be();const r=i.draggableId,o=n[r].page.borderBox.center,a=lO({displaced:t.displaced,afterCritical:e,combineWith:r,displacedBy:t.displacedBy});return Ii(o,a)};const qE=(e,t)=>t.margin[e.start]+t.borderBox[e.size]/2,uO=(e,t)=>t.margin[e.end]+t.borderBox[e.size]/2,t0=(e,t,n)=>t[e.crossAxisStart]+n.margin[e.crossAxisStart]+n.borderBox[e.crossAxisSize]/2,HS=({axis:e,moveRelativeTo:t,isMoving:n})=>la(e.line,t.marginBox[e.end]+qE(e,n),t0(e,t.marginBox,n)),FS=({axis:e,moveRelativeTo:t,isMoving:n})=>la(e.line,t.marginBox[e.start]-uO(e,n),t0(e,t.marginBox,n)),dO=({axis:e,moveInto:t,isMoving:n})=>la(e.line,t.contentBox[e.start]+qE(e,n),t0(e,t.contentBox,n));var fO=({impact:e,draggable:t,draggables:n,droppable:i,afterCritical:r})=>{const o=Fl(i.descriptor.id,n),a=t.page,c=i.axis;if(!o.length)return dO({axis:c,moveInto:i.page,isMoving:a});const{displaced:d,displacedBy:m}=e,h=d.all[0];if(h){const g=n[h];if(So(h,r))return FS({axis:c,moveRelativeTo:g.page,isMoving:a});const x=Jf(g.page,m.point);return FS({axis:c,moveRelativeTo:x,isMoving:a})}const p=o[o.length-1];if(p.descriptor.id===t.descriptor.id)return a.borderBox.center;if(So(p.descriptor.id,r)){const g=Jf(p.page,Hl(r.displacedBy.point));return HS({axis:c,moveRelativeTo:g,isMoving:a})}return HS({axis:c,moveRelativeTo:p.page,isMoving:a})},Xx=(e,t)=>{const n=e.frame;return n?Ii(t,n.scroll.diff.displacement):t};const mO=({impact:e,draggable:t,droppable:n,draggables:i,afterCritical:r})=>{const o=t.page.borderBox.center,a=e.at;return!n||!a?o:a.type==="REORDER"?fO({impact:e,draggable:t,draggables:i,droppable:n,afterCritical:r}):cO({impact:e,draggables:i,afterCritical:r})};var $m=e=>{const t=mO(e),n=e.droppable;return n?Xx(n,t):t},WE=(e,t)=>{const n=dr(t,e.scroll.initial),i=Hl(n);return{frame:zr({top:t.y,bottom:t.y+e.frame.height,left:t.x,right:t.x+e.frame.width}),scroll:{initial:e.scroll.initial,max:e.scroll.max,current:t,diff:{value:n,displacement:i}}}};function VS(e,t){return e.map(n=>t[n])}function pO(e,t){for(let n=0;n{const o=WE(t,Ii(t.scroll.current,r)),a=n.frame?Zv(n,Ii(n.frame.scroll.current,r)):n,c=e.displaced,d=ku({afterDragging:VS(c.all,i),destination:n,displacedBy:e.displacedBy,viewport:o.frame,last:c,forceShouldAnimate:!1}),m=ku({afterDragging:VS(c.all,i),destination:a,displacedBy:e.displacedBy,viewport:t.frame,last:c,forceShouldAnimate:!1}),h={},p={},g=[c,d,m];return c.all.forEach(v=>{const b=pO(v,g);if(b){p[v]=b;return}h[v]=!0}),{...e,displaced:{all:c.all,invisible:h,visible:p}}},gO=(e,t)=>Ii(e.scroll.diff.displacement,t),n0=({pageBorderBoxCenter:e,draggable:t,viewport:n})=>{const i=gO(n,e),r=dr(i,t.page.borderBox.center);return Ii(t.client.borderBox.center,r)},YE=({draggable:e,destination:t,newPageBorderBoxCenter:n,viewport:i,withDroppableDisplacement:r,onlyOnMainAxis:o=!1})=>{const a=dr(n,e.page.borderBox.center),d={target:Bu(e.page.borderBox,a),destination:t,withDroppableDisplacement:r,viewport:i};return o?tO(d):GE(d)},yO=({isMovingForward:e,draggable:t,destination:n,draggables:i,previousImpact:r,viewport:o,previousPageBorderBoxCenter:a,previousClientSelection:c,afterCritical:d})=>{if(!n.isEnabled)return null;const m=Fl(n.descriptor.id,i),h=Vl(t,n),p=W5({isMovingForward:e,draggable:t,destination:n,insideDestination:m,previousImpact:r})||aO({isMovingForward:e,isInHomeList:h,draggable:t,draggables:i,destination:n,insideDestination:m,previousImpact:r,viewport:o,afterCritical:d});if(!p)return null;const g=$m({impact:p,draggable:t,droppable:n,draggables:i,afterCritical:d});if(YE({draggable:t,destination:n,newPageBorderBoxCenter:g,viewport:o.frame,withDroppableDisplacement:!1,onlyOnMainAxis:!0}))return{clientSelection:n0({pageBorderBoxCenter:g,draggable:t,viewport:o}),impact:p,scrollJumpRequest:null};const v=dr(g,a),b=hO({impact:p,viewport:o,destination:n,draggables:i,maxScrollChange:v});return{clientSelection:c,impact:b,scrollJumpRequest:v}};const Bi=e=>{const t=e.subject.active;return t||Be(),t};var xO=({isMovingForward:e,pageBorderBoxCenter:t,source:n,droppables:i,viewport:r})=>{const o=n.subject.active;if(!o)return null;const a=n.axis,c=Tr(o[a.start],o[a.end]),d=zm(i).filter(h=>h!==n).filter(h=>h.isEnabled).filter(h=>!!h.subject.active).filter(h=>VE(r.frame)(Bi(h))).filter(h=>{const p=Bi(h);return e?o[a.crossAxisEnd]{const p=Bi(h),g=Tr(p[a.start],p[a.end]);return c(p[a.start])||c(p[a.end])||g(o[a.start])||g(o[a.end])}).sort((h,p)=>{const g=Bi(h)[a.crossAxisStart],x=Bi(p)[a.crossAxisStart];return e?g-x:x-g}).filter((h,p,g)=>Bi(h)[a.crossAxisStart]===Bi(g[0])[a.crossAxisStart]);if(!d.length)return null;if(d.length===1)return d[0];const m=d.filter(h=>Tr(Bi(h)[a.start],Bi(h)[a.end])(t[a.line]));return m.length===1?m[0]:m.length>1?m.sort((h,p)=>Bi(h)[a.start]-Bi(p)[a.start])[0]:d.sort((h,p)=>{const g=PS(t,BS(Bi(h))),x=PS(t,BS(Bi(p)));return g!==x?g-x:Bi(h)[a.start]-Bi(p)[a.start]})[0]};const US=(e,t)=>{const n=e.page.borderBox.center;return So(e.descriptor.id,t)?dr(n,t.displacedBy.point):n},vO=(e,t)=>{const n=e.page.borderBox;return So(e.descriptor.id,t)?Bu(n,Hl(t.displacedBy.point)):n};var bO=({pageBorderBoxCenter:e,viewport:t,destination:n,insideDestination:i,afterCritical:r})=>i.filter(a=>GE({target:vO(a,r),destination:n,viewport:t.frame,withDroppableDisplacement:!0})).sort((a,c)=>{const d=bu(e,Xx(n,US(a,r))),m=bu(e,Xx(n,US(c,r)));return d{const i=e.axis;if(e.descriptor.mode==="virtual")return la(i.line,t[i.line]);const r=e.subject.page.contentBox[i.size],d=Fl(e.descriptor.id,n).reduce((m,h)=>m+h.client.marginBox[i.size],0)+t[i.line]-r;return d<=0?null:la(i.line,d)},XE=(e,t)=>({...e,scroll:{...e.scroll,max:t}}),KE=(e,t,n)=>{const i=e.frame;Vl(t,e)&&Be(),e.subject.withPlaceholder&&Be();const r=$u(e.axis,t.displaceBy).point,o=_O(e,r,n),a={placeholderSize:r,increasedBy:o,oldFrameMaxScroll:e.frame?e.frame.scroll.max:null};if(!i){const h=kl({page:e.subject.page,withPlaceholder:a,axis:e.axis,frame:e.frame});return{...e,subject:h}}const c=o?Ii(i.scroll.max,o):i.scroll.max,d=XE(i,c),m=kl({page:e.subject.page,withPlaceholder:a,axis:e.axis,frame:d});return{...e,subject:m,frame:d}},kO=e=>{const t=e.subject.withPlaceholder;t||Be();const n=e.frame;if(!n){const a=kl({page:e.subject.page,axis:e.axis,frame:null,withPlaceholder:null});return{...e,subject:a}}const i=t.oldFrameMaxScroll;i||Be();const r=XE(n,i),o=kl({page:e.subject.page,axis:e.axis,frame:r,withPlaceholder:null});return{...e,subject:o,frame:r}};var SO=({previousPageBorderBoxCenter:e,moveRelativeTo:t,insideDestination:n,draggable:i,draggables:r,destination:o,viewport:a,afterCritical:c})=>{if(!t){if(n.length)return null;const p={displaced:_u,displacedBy:FE,at:{type:"REORDER",destination:{droppableId:o.descriptor.id,index:0}}},g=$m({impact:p,draggable:i,droppable:o,draggables:r,afterCritical:c}),x=Vl(i,o)?o:KE(o,i,r);return YE({draggable:i,destination:x,newPageBorderBoxCenter:g,viewport:a.frame,withDroppableDisplacement:!1,onlyOnMainAxis:!0})?p:null}const d=e[o.axis.line]<=t.page.borderBox.center[o.axis.line],m=(()=>{const p=t.descriptor.index;return t.descriptor.id===i.descriptor.id||d?p:p+1})(),h=$u(o.axis,i.displaceBy);return rm({draggable:i,insideDestination:n,destination:o,viewport:a,displacedBy:h,last:_u,index:m})},wO=({isMovingForward:e,previousPageBorderBoxCenter:t,draggable:n,isOver:i,draggables:r,droppables:o,viewport:a,afterCritical:c})=>{const d=xO({isMovingForward:e,pageBorderBoxCenter:t,source:i,droppables:o,viewport:a});if(!d)return null;const m=Fl(d.descriptor.id,r),h=bO({pageBorderBoxCenter:t,viewport:a,destination:d,insideDestination:m,afterCritical:c}),p=SO({previousPageBorderBoxCenter:t,destination:d,draggable:n,draggables:r,moveRelativeTo:h,insideDestination:m,viewport:a,afterCritical:c});if(!p)return null;const g=$m({impact:p,draggable:n,droppable:d,draggables:r,afterCritical:c});return{clientSelection:n0({pageBorderBoxCenter:g,draggable:n,viewport:a}),impact:p,scrollJumpRequest:null}},fr=e=>{const t=e.at;return t?t.type==="REORDER"?t.destination.droppableId:t.combine.droppableId:null};const CO=(e,t)=>{const n=fr(e);return n?t[n]:null};var jO=({state:e,type:t})=>{const n=CO(e.impact,e.dimensions.droppables),i=!!n,r=e.dimensions.droppables[e.critical.droppable.id],o=n||r,a=o.axis.direction,c=a==="vertical"&&(t==="MOVE_UP"||t==="MOVE_DOWN")||a==="horizontal"&&(t==="MOVE_LEFT"||t==="MOVE_RIGHT");if(c&&!i)return null;const d=t==="MOVE_DOWN"||t==="MOVE_RIGHT",m=e.dimensions.draggables[e.critical.draggable.id],h=e.current.page.borderBoxCenter,{draggables:p,droppables:g}=e.dimensions;return c?yO({isMovingForward:d,previousPageBorderBoxCenter:h,draggable:m,destination:o,draggables:p,viewport:e.viewport,previousClientSelection:e.current.client.selection,previousImpact:e.impact,afterCritical:e.afterCritical}):wO({isMovingForward:d,previousPageBorderBoxCenter:h,draggable:m,isOver:o,draggables:p,droppables:g,viewport:e.viewport,afterCritical:e.afterCritical})};function ta(e){return e.phase==="DRAGGING"||e.phase==="COLLECTING"}function ZE(e){const t=Tr(e.top,e.bottom),n=Tr(e.left,e.right);return function(r){return t(r.y)&&n(r.x)}}function EO(e,t){return e.leftt.left&&e.topt.top}function NO({pageBorderBox:e,draggable:t,candidates:n}){const i=t.page.borderBox.center,r=n.map(o=>{const a=o.axis,c=la(o.axis.line,e.center[a.line],o.page.borderBox.center[a.crossAxisLine]);return{id:o.descriptor.id,distance:bu(i,c)}}).sort((o,a)=>a.distance-o.distance);return r[0]?r[0].id:null}function IO({pageBorderBox:e,draggable:t,droppables:n}){const i=zm(n).filter(r=>{if(!r.isEnabled)return!1;const o=r.subject.active;if(!o||!EO(e,o))return!1;if(ZE(o)(e.center))return!0;const a=r.axis,c=o.center[a.crossAxisLine],d=e[a.crossAxisStart],m=e[a.crossAxisEnd],h=Tr(o[a.crossAxisStart],o[a.crossAxisEnd]),p=h(d),g=h(m);return!p&&!g?!0:p?dc});return i.length?i.length===1?i[0].descriptor.id:NO({pageBorderBox:e,draggable:t,candidates:i}):null}const QE=(e,t)=>zr(Bu(e,t));var TO=(e,t)=>{const n=e.frame;return n?QE(t,n.scroll.diff.value):t};function JE({displaced:e,id:t}){return!!(e.visible[t]||e.invisible[t])}function RO({draggable:e,closest:t,inHomeList:n}){return t?n&&t.descriptor.index>e.descriptor.index?t.descriptor.index-1:t.descriptor.index:null}var AO=({pageBorderBoxWithDroppableScroll:e,draggable:t,destination:n,insideDestination:i,last:r,viewport:o,afterCritical:a})=>{const c=n.axis,d=$u(n.axis,t.displaceBy),m=d.value,h=e[c.start],p=e[c.end],x=Bm(t,i).find(b=>{const w=b.descriptor.id,k=b.page.borderBox.center[c.line],S=So(w,a),j=JE({displaced:r,id:w});return S?j?p<=k:h{if(!i.isCombineEnabled)return null;const a=i.axis,c=$u(i.axis,e.displaceBy),d=c.value,m=t[a.start],h=t[a.end],g=Bm(e,r).find(v=>{const b=v.descriptor.id,w=v.page.borderBox,S=w[a.size]/MO,j=So(b,o),N=JE({displaced:n.displaced,id:b});return j?N?h>w[a.start]+S&&hw[a.start]-d+S&&mw[a.start]+d+S&&hw[a.start]+S&&m{const c=QE(t.page.borderBox,e),d=IO({pageBorderBox:c,draggable:t,droppables:i});if(!d)return Y5;const m=i[d],h=Fl(m.descriptor.id,n),p=TO(m,c);return DO({pageBorderBoxWithDroppableScroll:p,draggable:t,previousImpact:r,destination:m,insideDestination:h,afterCritical:a})||AO({pageBorderBoxWithDroppableScroll:p,draggable:t,destination:m,insideDestination:h,last:r.displaced,viewport:o,afterCritical:a})},i0=(e,t)=>({...e,[t.descriptor.id]:t});const OO=({previousImpact:e,impact:t,droppables:n})=>{const i=fr(e),r=fr(t);if(!i||i===r)return n;const o=n[i];if(!o.subject.withPlaceholder)return n;const a=kO(o);return i0(n,a)};var LO=({draggable:e,draggables:t,droppables:n,previousImpact:i,impact:r})=>{const o=OO({previousImpact:i,impact:r,droppables:n}),a=fr(r);if(!a)return o;const c=n[a];if(Vl(e,c)||c.subject.withPlaceholder)return o;const d=KE(c,e,t);return i0(o,d)},lu=({state:e,clientSelection:t,dimensions:n,viewport:i,impact:r,scrollJumpRequest:o})=>{const a=i||e.viewport,c=n||e.dimensions,d=t||e.current.client.selection,m=dr(d,e.initial.client.selection),h={offset:m,selection:d,borderBoxCenter:Ii(e.initial.client.borderBoxCenter,m)},p={selection:Ii(h.selection,a.scroll.current),borderBoxCenter:Ii(h.borderBoxCenter,a.scroll.current),offset:Ii(h.offset,a.scroll.diff.value)},g={client:h,page:p};if(e.phase==="COLLECTING")return{...e,dimensions:c,viewport:a,current:g};const x=c.draggables[e.critical.draggable.id],v=r||eN({pageOffset:p.offset,draggable:x,draggables:c.draggables,droppables:c.droppables,previousImpact:e.impact,viewport:a,afterCritical:e.afterCritical}),b=LO({draggable:x,impact:v,previousImpact:e.impact,draggables:c.draggables,droppables:c.droppables});return{...e,current:g,dimensions:{draggables:c.draggables,droppables:b},impact:v,viewport:a,scrollJumpRequest:o||null,forceShouldAnimate:o?!1:null}};function zO(e,t){return e.map(n=>t[n])}var tN=({impact:e,viewport:t,draggables:n,destination:i,forceShouldAnimate:r})=>{const o=e.displaced,a=zO(o.all,n),c=ku({afterDragging:a,destination:i,displacedBy:e.displacedBy,viewport:t.frame,forceShouldAnimate:r,last:o});return{...e,displaced:c}},nN=({impact:e,draggable:t,droppable:n,draggables:i,viewport:r,afterCritical:o})=>{const a=$m({impact:e,draggable:t,draggables:i,droppable:n,afterCritical:o});return n0({pageBorderBoxCenter:a,draggable:t,viewport:r})},iN=({state:e,dimensions:t,viewport:n})=>{e.movementMode!=="SNAP"&&Be();const i=e.impact,r=n||e.viewport,o=t||e.dimensions,{draggables:a,droppables:c}=o,d=a[e.critical.draggable.id],m=fr(i);m||Be();const h=c[m],p=tN({impact:i,viewport:r,destination:h,draggables:a}),g=nN({impact:p,draggable:d,droppable:h,draggables:a,viewport:r,afterCritical:e.afterCritical});return lu({impact:p,clientSelection:g,state:e,dimensions:o,viewport:r})},PO=e=>({index:e.index,droppableId:e.droppableId}),rN=({draggable:e,home:t,draggables:n,viewport:i})=>{const r=$u(t.axis,e.displaceBy),o=Fl(t.descriptor.id,n),a=o.indexOf(e);a===-1&&Be();const c=o.slice(a+1),d=c.reduce((g,x)=>(g[x.descriptor.id]=!0,g),{}),m={inVirtualList:t.descriptor.mode==="virtual",displacedBy:r,effected:d};return{impact:{displaced:ku({afterDragging:c,destination:t,displacedBy:r,last:null,viewport:i.frame,forceShouldAnimate:!1}),displacedBy:r,at:{type:"REORDER",destination:PO(e.descriptor)}},afterCritical:m}},BO=(e,t)=>({draggables:e.draggables,droppables:i0(e.droppables,t)}),$O=({draggable:e,offset:t,initialWindowScroll:n})=>{const i=Jf(e.client,t),r=em(i,n);return{...e,placeholder:{...e.placeholder,client:i},client:i,page:r}},HO=e=>{const t=e.frame;return t||Be(),t},FO=({additions:e,updatedDroppables:t,viewport:n})=>{const i=n.scroll.diff.value;return e.map(r=>{const o=r.descriptor.droppableId,a=t[o],d=HO(a).scroll.diff.value,m=Ii(i,d);return $O({draggable:r,offset:m,initialWindowScroll:n.scroll.initial})})},VO=({state:e,published:t})=>{const n=t.modified.map(k=>{const S=e.dimensions.droppables[k.droppableId];return Zv(S,k.scroll)}),i={...e.dimensions.droppables,...$E(n)},r=HE(FO({additions:t.additions,updatedDroppables:i,viewport:e.viewport})),o={...e.dimensions.draggables,...r};t.removals.forEach(k=>{delete o[k]});const a={droppables:i,draggables:o},c=fr(e.impact),d=c?a.droppables[c]:null,m=a.draggables[e.critical.draggable.id],h=a.droppables[e.critical.droppable.id],{impact:p,afterCritical:g}=rN({draggable:m,home:h,draggables:o,viewport:e.viewport}),x=d&&d.isCombineEnabled?e.impact:p,v=eN({pageOffset:e.current.page.offset,draggable:a.draggables[e.critical.draggable.id],draggables:a.draggables,droppables:a.droppables,previousImpact:x,viewport:e.viewport,afterCritical:g}),b={...e,phase:"DRAGGING",impact:v,onLiftImpact:p,dimensions:a,afterCritical:g,forceShouldAnimate:!1};return e.phase==="COLLECTING"?b:{...b,phase:"DROP_PENDING",reason:e.reason,isWaiting:!1}};const Kx=e=>e.movementMode==="SNAP",Ag=(e,t,n)=>{const i=BO(e.dimensions,t);return!Kx(e)||n?lu({state:e,dimensions:i}):iN({state:e,dimensions:i})};function Mg(e){return e.isDragging&&e.movementMode==="SNAP"?{...e,scrollJumpRequest:null}:e}const GS={phase:"IDLE",completed:null,shouldFlush:!1};var UO=(e=GS,t)=>{if(t.type==="FLUSH")return{...GS,shouldFlush:!0};if(t.type==="INITIAL_PUBLISH"){e.phase!=="IDLE"&&Be();const{critical:n,clientSelection:i,viewport:r,dimensions:o,movementMode:a}=t.payload,c=o.draggables[n.draggable.id],d=o.droppables[n.droppable.id],m={selection:i,borderBoxCenter:c.client.borderBox.center,offset:ki},h={client:m,page:{selection:Ii(m.selection,r.scroll.initial),borderBoxCenter:Ii(m.selection,r.scroll.initial),offset:Ii(m.selection,r.scroll.diff.value)}},p=zm(o.droppables).every(b=>!b.isFixedOnPage),{impact:g,afterCritical:x}=rN({draggable:c,home:d,draggables:o.draggables,viewport:r});return{phase:"DRAGGING",isDragging:!0,critical:n,movementMode:a,dimensions:o,initial:h,current:h,isWindowScrollAllowed:p,impact:g,afterCritical:x,onLiftImpact:g,viewport:r,scrollJumpRequest:null,forceShouldAnimate:null}}if(t.type==="COLLECTION_STARTING")return e.phase==="COLLECTING"||e.phase==="DROP_PENDING"?e:(e.phase!=="DRAGGING"&&Be(),{...e,phase:"COLLECTING"});if(t.type==="PUBLISH_WHILE_DRAGGING")return e.phase==="COLLECTING"||e.phase==="DROP_PENDING"||Be(),VO({state:e,published:t.payload});if(t.type==="MOVE"){if(e.phase==="DROP_PENDING")return e;ta(e)||Be();const{client:n}=t.payload;return bo(n,e.current.client.selection)?e:lu({state:e,clientSelection:n,impact:Kx(e)?e.impact:null})}if(t.type==="UPDATE_DROPPABLE_SCROLL"){if(e.phase==="DROP_PENDING"||e.phase==="COLLECTING")return Mg(e);ta(e)||Be();const{id:n,newScroll:i}=t.payload,r=e.dimensions.droppables[n];if(!r)return e;const o=Zv(r,i);return Ag(e,o,!1)}if(t.type==="UPDATE_DROPPABLE_IS_ENABLED"){if(e.phase==="DROP_PENDING")return e;ta(e)||Be();const{id:n,isEnabled:i}=t.payload,r=e.dimensions.droppables[n];r||Be(),r.isEnabled===i&&Be();const o={...r,isEnabled:i};return Ag(e,o,!0)}if(t.type==="UPDATE_DROPPABLE_IS_COMBINE_ENABLED"){if(e.phase==="DROP_PENDING")return e;ta(e)||Be();const{id:n,isCombineEnabled:i}=t.payload,r=e.dimensions.droppables[n];r||Be(),r.isCombineEnabled===i&&Be();const o={...r,isCombineEnabled:i};return Ag(e,o,!0)}if(t.type==="MOVE_BY_WINDOW_SCROLL"){if(e.phase==="DROP_PENDING"||e.phase==="DROP_ANIMATING")return e;ta(e)||Be(),e.isWindowScrollAllowed||Be();const n=t.payload.newScroll;if(bo(e.viewport.scroll.current,n))return Mg(e);const i=WE(e.viewport,n);return Kx(e)?iN({state:e,viewport:i}):lu({state:e,viewport:i})}if(t.type==="UPDATE_VIEWPORT_MAX_SCROLL"){if(!ta(e))return e;const n=t.payload.maxScroll;if(bo(n,e.viewport.scroll.max))return e;const i={...e.viewport,scroll:{...e.viewport.scroll,max:n}};return{...e,viewport:i}}if(t.type==="MOVE_UP"||t.type==="MOVE_DOWN"||t.type==="MOVE_LEFT"||t.type==="MOVE_RIGHT"){if(e.phase==="COLLECTING"||e.phase==="DROP_PENDING")return e;e.phase!=="DRAGGING"&&Be();const n=jO({state:e,type:t.type});return n?lu({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"&&Be(),{...e,phase:"DROP_PENDING",isWaiting:!0,reason:n}}if(t.type==="DROP_ANIMATE"){const{completed:n,dropDuration:i,newHomeClientOffset:r}=t.payload;return e.phase==="DRAGGING"||e.phase==="DROP_PENDING"||Be(),{phase:"DROP_ANIMATING",completed:n,dropDuration:i,newHomeClientOffset:r,dimensions:e.dimensions}}if(t.type==="DROP_COMPLETE"){const{completed:n}=t.payload;return{phase:"IDLE",completed:n,shouldFlush:!1}}return e};function yn(e,t){return e instanceof Object&&"type"in e&&e.type===t}const GO=e=>({type:"BEFORE_INITIAL_CAPTURE",payload:e}),qO=e=>({type:"LIFT",payload:e}),WO=e=>({type:"INITIAL_PUBLISH",payload:e}),YO=e=>({type:"PUBLISH_WHILE_DRAGGING",payload:e}),XO=()=>({type:"COLLECTION_STARTING",payload:null}),KO=e=>({type:"UPDATE_DROPPABLE_SCROLL",payload:e}),ZO=e=>({type:"UPDATE_DROPPABLE_IS_ENABLED",payload:e}),QO=e=>({type:"UPDATE_DROPPABLE_IS_COMBINE_ENABLED",payload:e}),sN=e=>({type:"MOVE",payload:e}),JO=e=>({type:"MOVE_BY_WINDOW_SCROLL",payload:e}),eL=e=>({type:"UPDATE_VIEWPORT_MAX_SCROLL",payload:e}),tL=()=>({type:"MOVE_UP",payload:null}),nL=()=>({type:"MOVE_DOWN",payload:null}),iL=()=>({type:"MOVE_RIGHT",payload:null}),rL=()=>({type:"MOVE_LEFT",payload:null}),r0=()=>({type:"FLUSH",payload:null}),sL=e=>({type:"DROP_ANIMATE",payload:e}),s0=e=>({type:"DROP_COMPLETE",payload:e}),oN=e=>({type:"DROP",payload:e}),oL=e=>({type:"DROP_PENDING",payload:e}),aN=()=>({type:"DROP_ANIMATION_FINISHED",payload:null});var aL=e=>({getState:t,dispatch:n})=>i=>r=>{if(!yn(r,"LIFT")){i(r);return}const{id:o,clientSelection:a,movementMode:c}=r.payload,d=t();d.phase==="DROP_ANIMATING"&&n(s0({completed:d.completed})),t().phase!=="IDLE"&&Be(),n(r0()),n(GO({draggableId:o,movementMode:c}));const h={draggableId:o,scrollOptions:{shouldPublishImmediately:c==="SNAP"}},{critical:p,dimensions:g,viewport:x}=e.startPublishing(h);n(WO({critical:p,dimensions:g,clientSelection:a,movementMode:c,viewport:x}))},lL=e=>()=>t=>n=>{yn(n,"INITIAL_PUBLISH")&&e.dragging(),yn(n,"DROP_ANIMATE")&&e.dropping(n.payload.completed.result.reason),(yn(n,"FLUSH")||yn(n,"DROP_COMPLETE"))&&e.resting(),t(n)};const o0={outOfTheWay:"cubic-bezier(0.2, 0, 0, 1)",drop:"cubic-bezier(.2,1,.1,1)"},Su={opacity:{drop:0,combining:.7},scale:{drop:.75}},lN={outOfTheWay:.2,minDropTime:.33,maxDropTime:.55},Ko=`${lN.outOfTheWay}s ${o0.outOfTheWay}`,cu={fluid:`opacity ${Ko}`,snap:`transform ${Ko}, opacity ${Ko}`,drop:e=>{const t=`${e}s ${o0.drop}`;return`transform ${t}, opacity ${t}`},outOfTheWay:`transform ${Ko}`,placeholder:`height ${Ko}, width ${Ko}, margin ${Ko}`},qS=e=>bo(e,ki)?void 0:`translate(${e.x}px, ${e.y}px)`,Zx={moveTo:qS,drop:(e,t)=>{const n=qS(e);if(n)return t?`${n} scale(${Su.scale.drop})`:n}},{minDropTime:Qx,maxDropTime:cN}=lN,cL=cN-Qx,WS=1500,uL=.6;var dL=({current:e,destination:t,reason:n})=>{const i=bu(e,t);if(i<=0)return Qx;if(i>=WS)return cN;const r=i/WS,o=Qx+cL*r,a=n==="CANCEL"?o*uL:o;return Number(a.toFixed(2))},fL=({impact:e,draggable:t,dimensions:n,viewport:i,afterCritical:r})=>{const{draggables:o,droppables:a}=n,c=fr(e),d=c?a[c]:null,m=a[t.descriptor.droppableId],h=nN({impact:e,draggable:t,draggables:o,afterCritical:r,droppable:d||m,viewport:i});return dr(h,t.client.borderBox.center)},mL=({draggables:e,reason:t,lastImpact:n,home:i,viewport:r,onLiftImpact:o})=>!n.at||t!=="DROP"?{impact:tN({draggables:e,impact:o,destination:i,viewport:r,forceShouldAnimate:!0}),didDropInsideDroppable:!1}:n.at.type==="REORDER"?{impact:n,didDropInsideDroppable:!0}:{impact:{...n,displaced:_u},didDropInsideDroppable:!0};const pL=({getState:e,dispatch:t})=>n=>i=>{if(!yn(i,"DROP")){n(i);return}const r=e(),o=i.payload.reason;if(r.phase==="COLLECTING"){t(oL({reason:o}));return}if(r.phase==="IDLE")return;r.phase==="DROP_PENDING"&&r.isWaiting&&Be(),r.phase==="DRAGGING"||r.phase==="DROP_PENDING"||Be();const c=r.critical,d=r.dimensions,m=d.draggables[r.critical.draggable.id],{impact:h,didDropInsideDroppable:p}=mL({reason:o,lastImpact:r.impact,afterCritical:r.afterCritical,onLiftImpact:r.onLiftImpact,home:r.dimensions.droppables[r.critical.droppable.id],viewport:r.viewport,draggables:r.dimensions.draggables}),g=p?Qv(h):null,x=p?Pm(h):null,v={index:c.draggable.index,droppableId:c.droppable.id},b={draggableId:m.descriptor.id,type:m.descriptor.type,source:v,reason:o,mode:r.movementMode,destination:g,combine:x},w=fL({impact:h,draggable:m,dimensions:d,viewport:r.viewport,afterCritical:r.afterCritical}),k={critical:r.critical,afterCritical:r.afterCritical,result:b,impact:h};if(!(!bo(r.current.client.offset,w)||!!b.combine)){t(s0({completed:k}));return}const j=dL({current:r.current.client.offset,destination:w,reason:o});t(sL({newHomeClientOffset:w,dropDuration:j,completed:k}))};var uN=()=>({x:window.pageXOffset,y:window.pageYOffset});function hL(e){return{eventName:"scroll",options:{passive:!0,capture:!1},fn:t=>{t.target!==window&&t.target!==window.document||e()}}}function gL({onWindowScroll:e}){function t(){e(uN())}const n=vu(t),i=hL(n);let r=vo;function o(){return r!==vo}function a(){o()&&Be(),r=Ir(window,[i])}function c(){o()||Be(),n.cancel(),r(),r=vo}return{start:a,stop:c,isActive:o}}const yL=e=>yn(e,"DROP_COMPLETE")||yn(e,"DROP_ANIMATE")||yn(e,"FLUSH"),xL=e=>{const t=gL({onWindowScroll:n=>{e.dispatch(JO({newScroll:n}))}});return n=>i=>{!t.isActive()&&yn(i,"INITIAL_PUBLISH")&&t.start(),t.isActive()&&yL(i)&&t.stop(),n(i)}};var vL=e=>{let t=!1,n=!1;const i=setTimeout(()=>{n=!0}),r=o=>{t||n||(t=!0,e(o),clearTimeout(i))};return r.wasCalled=()=>t,r},bL=()=>{const e=[],t=r=>{const o=e.findIndex(c=>c.timerId===r);o===-1&&Be();const[a]=e.splice(o,1);a.callback()};return{add:r=>{const o=setTimeout(()=>t(o)),a={timerId:o,callback:r};e.push(a)},flush:()=>{if(!e.length)return;const r=[...e];e.length=0,r.forEach(o=>{clearTimeout(o.timerId),o.callback()})}}};const _L=(e,t)=>e==null&&t==null?!0:e==null||t==null?!1:e.droppableId===t.droppableId&&e.index===t.index,kL=(e,t)=>e==null&&t==null?!0:e==null||t==null?!1:e.draggableId===t.draggableId&&e.droppableId===t.droppableId,SL=(e,t)=>{if(e===t)return!0;const n=e.draggable.id===t.draggable.id&&e.draggable.droppableId===t.draggable.droppableId&&e.draggable.type===t.draggable.type&&e.draggable.index===t.draggable.index,i=e.droppable.id===t.droppable.id&&e.droppable.type===t.droppable.type;return n&&i},Bc=(e,t)=>{t()},of=(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,i){if(!e){n(i(t));return}const r=vL(n);e(t,{announce:r}),r.wasCalled()||n(i(t))}var wL=(e,t)=>{const n=bL();let i=null;const r=(p,g)=>{i&&Be(),Bc("onBeforeCapture",()=>{const x=e().onBeforeCapture;x&&x({draggableId:p,mode:g})})},o=(p,g)=>{i&&Be(),Bc("onBeforeDragStart",()=>{const x=e().onBeforeDragStart;x&&x(of(p,g))})},a=(p,g)=>{i&&Be();const x=of(p,g);i={mode:g,lastCritical:p,lastLocation:x.source,lastCombine:null},n.add(()=>{Bc("onDragStart",()=>Dg(e().onDragStart,x,t,Of.onDragStart))})},c=(p,g)=>{const x=Qv(g),v=Pm(g);i||Be();const b=!SL(p,i.lastCritical);b&&(i.lastCritical=p);const w=!_L(i.lastLocation,x);w&&(i.lastLocation=x);const k=!kL(i.lastCombine,v);if(k&&(i.lastCombine=v),!b&&!w&&!k)return;const S={...of(p,i.mode),combine:v,destination:x};n.add(()=>{Bc("onDragUpdate",()=>Dg(e().onDragUpdate,S,t,Of.onDragUpdate))})},d=()=>{i||Be(),n.flush()},m=p=>{i||Be(),i=null,Bc("onDragEnd",()=>Dg(e().onDragEnd,p,t,Of.onDragEnd))};return{beforeCapture:r,beforeStart:o,start:a,update:c,flush:d,drop:m,abort:()=>{if(!i)return;const p={...of(i.lastCritical,i.mode),combine:null,destination:null,reason:"CANCEL"};m(p)}}},CL=(e,t)=>{const n=wL(e,t);return i=>r=>o=>{if(yn(o,"BEFORE_INITIAL_CAPTURE")){n.beforeCapture(o.payload.draggableId,o.payload.movementMode);return}if(yn(o,"INITIAL_PUBLISH")){const c=o.payload.critical;n.beforeStart(c,o.payload.movementMode),r(o),n.start(c,o.payload.movementMode);return}if(yn(o,"DROP_COMPLETE")){const c=o.payload.completed.result;n.flush(),r(o),n.drop(c);return}if(r(o),yn(o,"FLUSH")){n.abort();return}const a=i.getState();a.phase==="DRAGGING"&&n.update(a.critical,a.impact)}};const jL=e=>t=>n=>{if(!yn(n,"DROP_ANIMATION_FINISHED")){t(n);return}const i=e.getState();i.phase!=="DROP_ANIMATING"&&Be(),e.dispatch(s0({completed:i.completed}))},EL=e=>{let t=null,n=null;function i(){n&&(cancelAnimationFrame(n),n=null),t&&(t(),t=null)}return r=>o=>{if((yn(o,"FLUSH")||yn(o,"DROP_COMPLETE")||yn(o,"DROP_ANIMATION_FINISHED"))&&i(),r(o),!yn(o,"DROP_ANIMATE"))return;const a={eventName:"scroll",options:{capture:!0,passive:!1,once:!0},fn:function(){e.getState().phase==="DROP_ANIMATING"&&e.dispatch(aN())}};n=requestAnimationFrame(()=>{n=null,t=Ir(window,[a])})}};var NL=e=>()=>t=>n=>{(yn(n,"DROP_COMPLETE")||yn(n,"FLUSH")||yn(n,"DROP_ANIMATE"))&&e.stopPublishing(),t(n)},IL=e=>{let t=!1;return()=>n=>i=>{if(yn(i,"INITIAL_PUBLISH")){t=!0,e.tryRecordFocus(i.payload.critical.draggable.id),n(i),e.tryRestoreFocusRecorded();return}if(n(i),!!t){if(yn(i,"FLUSH")){t=!1,e.tryRestoreFocusRecorded();return}if(yn(i,"DROP_COMPLETE")){t=!1;const r=i.payload.completed.result;r.combine&&e.tryShiftRecord(r.draggableId,r.combine.draggableId),e.tryRestoreFocusRecorded()}}}};const TL=e=>yn(e,"DROP_COMPLETE")||yn(e,"DROP_ANIMATE")||yn(e,"FLUSH");var RL=e=>t=>n=>i=>{if(TL(i)){e.stop(),n(i);return}if(yn(i,"INITIAL_PUBLISH")){n(i);const r=t.getState();r.phase!=="DRAGGING"&&Be(),e.start(r);return}n(i),e.scroll(t.getState())};const AL=e=>t=>n=>{if(t(n),!yn(n,"PUBLISH_WHILE_DRAGGING"))return;const i=e.getState();i.phase==="DROP_PENDING"&&(i.isWaiting||e.dispatch(oN({reason:i.reason})))},ML=jE;var DL=({dimensionMarshal:e,focusMarshal:t,styleMarshal:n,getResponders:i,announce:r,autoScroller:o})=>CE(UO,ML(RD(lL(n),NL(e),aL(e),pL,jL,EL,AL,RL(o),xL,IL(t),CL(i,r))));const Og=()=>({additions:{},removals:{},modified:{}});function OL({registry:e,callbacks:t}){let n=Og(),i=null;const r=()=>{i||(t.collectionStarting(),i=requestAnimationFrame(()=>{i=null;const{additions:d,removals:m,modified:h}=n,p=Object.keys(d).map(v=>e.draggable.getById(v).getDimension(ki)).sort((v,b)=>v.descriptor.index-b.descriptor.index),g=Object.keys(h).map(v=>{const w=e.droppable.getById(v).callbacks.getScrollWhileDragging();return{droppableId:v,scroll:w}}),x={additions:p,removals:Object.keys(m),modified:g};n=Og(),t.publish(x)}))};return{add:d=>{const m=d.descriptor.id;n.additions[m]=d,n.modified[d.descriptor.droppableId]=!0,n.removals[m]&&delete n.removals[m],r()},remove:d=>{const m=d.descriptor;n.removals[m.id]=!0,n.modified[m.droppableId]=!0,n.additions[m.id]&&delete n.additions[m.id],r()},stop:()=>{i&&(cancelAnimationFrame(i),i=null,n=Og())}}}var dN=({scrollHeight:e,scrollWidth:t,height:n,width:i})=>{const r=dr({x:t,y:e},{x:i,y:n});return{x:Math.max(0,r.x),y:Math.max(0,r.y)}},fN=()=>{const e=document.documentElement;return e||Be(),e},mN=()=>{const e=fN();return dN({scrollHeight:e.scrollHeight,scrollWidth:e.scrollWidth,width:e.clientWidth,height:e.clientHeight})},LL=()=>{const e=uN(),t=mN(),n=e.y,i=e.x,r=fN(),o=r.clientWidth,a=r.clientHeight,c=i+o,d=n+a;return{frame:zr({top:n,left:i,right:c,bottom:d}),scroll:{initial:e,current:e,max:t,diff:{value:ki,displacement:ki}}}},zL=({critical:e,scrollOptions:t,registry:n})=>{const i=LL(),r=i.scroll.current,o=e.droppable,a=n.droppable.getAllByType(o.type).map(h=>h.callbacks.getDimensionAndWatchScroll(r,t)),c=n.draggable.getAllByType(e.draggable.type).map(h=>h.getDimension(r));return{dimensions:{draggables:HE(c),droppables:$E(a)},critical:e,viewport:i}};function YS(e,t,n){return!(n.descriptor.id===t.id||n.descriptor.type!==t.type||e.droppable.getById(n.descriptor.droppableId).descriptor.mode!=="virtual")}var PL=(e,t)=>{let n=null;const i=OL({callbacks:{publish:t.publishWhileDragging,collectionStarting:t.collectionStarting},registry:e}),r=(g,x)=>{e.droppable.exists(g)||Be(),n&&t.updateDroppableIsEnabled({id:g,isEnabled:x})},o=(g,x)=>{n&&(e.droppable.exists(g)||Be(),t.updateDroppableIsCombineEnabled({id:g,isCombineEnabled:x}))},a=(g,x)=>{n&&(e.droppable.exists(g)||Be(),t.updateDroppableScroll({id:g,newScroll:x}))},c=(g,x)=>{n&&e.droppable.getById(g).callbacks.scroll(x)},d=()=>{if(!n)return;i.stop();const g=n.critical.droppable;e.droppable.getAllByType(g.type).forEach(x=>x.callbacks.dragStopped()),n.unsubscribe(),n=null},m=g=>{n||Be();const x=n.critical.draggable;g.type==="ADDITION"&&YS(e,x,g.value)&&i.add(g.value),g.type==="REMOVAL"&&YS(e,x,g.value)&&i.remove(g.value)};return{updateDroppableIsEnabled:r,updateDroppableIsCombineEnabled:o,scrollDroppable:c,updateDroppableScroll:a,startPublishing:g=>{n&&Be();const x=e.draggable.getById(g.draggableId),v=e.droppable.getById(x.descriptor.droppableId),b={draggable:x.descriptor,droppable:v.descriptor},w=e.subscribe(m);return n={critical:b,unsubscribe:w},zL({critical:b,registry:e,scrollOptions:g.scrollOptions})},stopPublishing:d}},pN=(e,t)=>e.phase==="IDLE"?!0:e.phase!=="DROP_ANIMATING"||e.completed.result.draggableId===t?!1:e.completed.result.reason==="DROP",BL=e=>{window.scrollBy(e.x,e.y)};const $L=_i(e=>zm(e).filter(t=>!(!t.isEnabled||!t.frame))),HL=(e,t)=>$L(t).find(i=>(i.frame||Be(),ZE(i.frame.pageMarginBox)(e)))||null;var FL=({center:e,destination:t,droppables:n})=>{if(t){const r=n[t];return r.frame?r:null}return HL(e,n)};const wu={startFromPercentage:.25,maxScrollAtPercentage:.05,maxPixelScroll:28,ease:e=>e**2,durationDampening:{stopDampeningAt:1200,accelerateAt:360},disabled:!1};var VL=(e,t,n=()=>wu)=>{const i=n(),r=e[t.size]*i.startFromPercentage,o=e[t.size]*i.maxScrollAtPercentage;return{startScrollingFrom:r,maxScrollValueAt:o}},hN=({startOfRange:e,endOfRange:t,current:n})=>{const i=t-e;return i===0?0:(n-e)/i},a0=1,UL=(e,t,n=()=>wu)=>{const i=n();if(e>t.startScrollingFrom)return 0;if(e<=t.maxScrollValueAt)return i.maxPixelScroll;if(e===t.startScrollingFrom)return a0;const o=1-hN({startOfRange:t.maxScrollValueAt,endOfRange:t.startScrollingFrom,current:e}),a=i.maxPixelScroll*i.ease(o);return Math.ceil(a)},GL=(e,t,n)=>{const i=n(),r=i.durationDampening.accelerateAt,o=i.durationDampening.stopDampeningAt,a=t,c=o,m=Date.now()-a;if(m>=o)return e;if(m{const o=UL(e,t,r);return o===0?0:i?Math.max(GL(o,n,r),a0):o},KS=({container:e,distanceToEdges:t,dragStartTime:n,axis:i,shouldUseTimeDampening:r,getAutoScrollerOptions:o})=>{const a=VL(e,i,o);return t[i.end]{const i=t.height>e.height,r=t.width>e.width;return!r&&!i?n:r&&i?null:{x:r?0:n.x,y:i?0:n.y}};const WL=BE(e=>e===0?0:e);var gN=({dragStartTime:e,container:t,subject:n,center:i,shouldUseTimeDampening:r,getAutoScrollerOptions:o})=>{const a={top:i.y-t.top,right:t.right-i.x,bottom:t.bottom-i.y,left:i.x-t.left},c=KS({container:t,distanceToEdges:a,dragStartTime:e,axis:Jv,shouldUseTimeDampening:r,getAutoScrollerOptions:o}),d=KS({container:t,distanceToEdges:a,dragStartTime:e,axis:UE,shouldUseTimeDampening:r,getAutoScrollerOptions:o}),m=WL({x:d,y:c});if(bo(m,ki))return null;const h=qL({container:t,subject:n,proposedScroll:m});return h?bo(h,ki)?null:h:null};const YL=BE(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:i})=>{const r=Ii(t,i),o={x:e(r.x,n.x),y:e(r.y,n.y)};return bo(o,ki)?null:o}})(),yN=({max:e,current:t,change:n})=>{const i={x:Math.max(t.x,e.x),y:Math.max(t.y,e.y)},r=YL(n),o=l0({max:i,current:t,change:r});return!o||r.x!==0&&o.x===0||r.y!==0&&o.y===0},c0=(e,t)=>yN({current:e.scroll.current,max:e.scroll.max,change:t}),XL=(e,t)=>{if(!c0(e,t))return null;const n=e.scroll.max,i=e.scroll.current;return l0({current:i,max:n,change:t})},u0=(e,t)=>{const n=e.frame;return n?yN({current:n.scroll.current,max:n.scroll.max,change:t}):!1},KL=(e,t)=>{const n=e.frame;return!n||!u0(e,t)?null:l0({current:n.scroll.current,max:n.scroll.max,change:t})};var ZL=({viewport:e,subject:t,center:n,dragStartTime:i,shouldUseTimeDampening:r,getAutoScrollerOptions:o})=>{const a=gN({dragStartTime:i,container:e.frame,subject:t,center:n,shouldUseTimeDampening:r,getAutoScrollerOptions:o});return a&&c0(e,a)?a:null},QL=({droppable:e,subject:t,center:n,dragStartTime:i,shouldUseTimeDampening:r,getAutoScrollerOptions:o})=>{const a=e.frame;if(!a)return null;const c=gN({dragStartTime:i,container:a.pageMarginBox,subject:t,center:n,shouldUseTimeDampening:r,getAutoScrollerOptions:o});return c&&u0(e,c)?c:null},ZS=({state:e,dragStartTime:t,shouldUseTimeDampening:n,scrollWindow:i,scrollDroppable:r,getAutoScrollerOptions:o})=>{const a=e.current.page.borderBoxCenter,d=e.dimensions.draggables[e.critical.draggable.id].page.marginBox;if(e.isWindowScrollAllowed){const p=e.viewport,g=ZL({dragStartTime:t,viewport:p,subject:d,center:a,shouldUseTimeDampening:n,getAutoScrollerOptions:o});if(g){i(g);return}}const m=FL({center:a,destination:fr(e.impact),droppables:e.dimensions.droppables});if(!m)return;const h=QL({dragStartTime:t,droppable:m,subject:d,center:a,shouldUseTimeDampening:n,getAutoScrollerOptions:o});h&&r(m.descriptor.id,h)},JL=({scrollWindow:e,scrollDroppable:t,getAutoScrollerOptions:n=()=>wu})=>{const i=vu(e),r=vu(t);let o=null;const a=m=>{o||Be();const{shouldUseTimeDampening:h,dragStartTime:p}=o;ZS({state:m,scrollWindow:i,scrollDroppable:r,dragStartTime:p,shouldUseTimeDampening:h,getAutoScrollerOptions:n})};return{start:m=>{o&&Be();const h=Date.now();let p=!1;const g=()=>{p=!0};ZS({state:m,dragStartTime:0,shouldUseTimeDampening:!1,scrollWindow:g,scrollDroppable:g,getAutoScrollerOptions:n}),o={dragStartTime:h,shouldUseTimeDampening:p},p&&a(m)},stop:()=>{o&&(i.cancel(),r.cancel(),o=null)},scroll:a}},e6=({move:e,scrollDroppable:t,scrollWindow:n})=>{const i=(c,d)=>{const m=Ii(c.current.client.selection,d);e({client:m})},r=(c,d)=>{if(!u0(c,d))return d;const m=KL(c,d);if(!m)return t(c.descriptor.id,d),null;const h=dr(d,m);return t(c.descriptor.id,h),dr(d,h)},o=(c,d,m)=>{if(!c||!c0(d,m))return m;const h=XL(d,m);if(!h)return n(m),null;const p=dr(m,h);return n(p),dr(m,p)};return c=>{const d=c.scrollJumpRequest;if(!d)return;const m=fr(c.impact);m||Be();const h=r(c.dimensions.droppables[m],d);if(!h)return;const p=c.viewport,g=o(c.isWindowScrollAllowed,p,h);g&&i(c,g)}},t6=({scrollDroppable:e,scrollWindow:t,move:n,getAutoScrollerOptions:i})=>{const r=JL({scrollWindow:t,scrollDroppable:e,getAutoScrollerOptions:i}),o=e6({move:n,scrollWindow:t,scrollDroppable:e});return{scroll:d=>{if(!(i().disabled||d.phase!=="DRAGGING")){if(d.movementMode==="FLUID"){r.scroll(d);return}d.scrollJumpRequest&&o(d)}},start:r.start,stop:r.stop}};const Sl="data-rfd",wl=(()=>{const e=`${Sl}-drag-handle`;return{base:e,draggableId:`${e}-draggable-id`,contextId:`${e}-context-id`}})(),Jx=(()=>{const e=`${Sl}-draggable`;return{base:e,contextId:`${e}-context-id`,id:`${e}-id`}})(),n6=(()=>{const e=`${Sl}-droppable`;return{base:e,contextId:`${e}-context-id`,id:`${e}-id`}})(),QS={contextId:`${Sl}-scroll-container-context-id`},i6=e=>t=>`[${t}="${e}"]`,$c=(e,t)=>e.map(n=>{const i=n.styles[t];return i?`${n.selector} { ${i} }`:""}).join(" "),r6="pointer-events: none;";var s6=e=>{const t=i6(e),n=(()=>{const c=` + cursor: -webkit-grab; + cursor: grab; + `;return{selector:t(wl.contextId),styles:{always:` + -webkit-touch-callout: none; + -webkit-tap-highlight-color: rgba(0,0,0,0); + touch-action: manipulation; + `,resting:c,dragging:r6,dropAnimating:c}}})(),i=(()=>{const c=` + transition: ${cu.outOfTheWay}; + `;return{selector:t(Jx.contextId),styles:{dragging:c,dropAnimating:c,userCancel:c}}})(),r={selector:t(n6.contextId),styles:{always:"overflow-anchor: none;"}},a=[i,n,r,{selector:"body",styles:{dragging:` + cursor: grabbing; + cursor: -webkit-grabbing; + user-select: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + overflow-anchor: none; + `}}];return{always:$c(a,"always"),resting:$c(a,"resting"),dragging:$c(a,"dragging"),dropAnimating:$c(a,"dropAnimating"),userCancel:$c(a,"userCancel")}};const mr=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u"?C.useLayoutEffect:C.useEffect,Lg=()=>{const e=document.querySelector("head");return e||Be(),e},JS=e=>{const t=document.createElement("style");return e&&t.setAttribute("nonce",e),t.type="text/css",t};function o6(e,t){const n=sn(()=>s6(e),[e]),i=C.useRef(null),r=C.useRef(null),o=rt(_i(p=>{const g=r.current;g||Be(),g.textContent=p}),[]),a=rt(p=>{const g=i.current;g||Be(),g.textContent=p},[]);mr(()=>{!i.current&&!r.current||Be();const p=JS(t),g=JS(t);return i.current=p,r.current=g,p.setAttribute(`${Sl}-always`,e),g.setAttribute(`${Sl}-dynamic`,e),Lg().appendChild(p),Lg().appendChild(g),a(n.always),o(n.resting),()=>{const x=v=>{const b=v.current;b||Be(),Lg().removeChild(b),v.current=null};x(i),x(r)}},[t,a,o,n.always,n.resting,e]);const c=rt(()=>o(n.dragging),[o,n.dragging]),d=rt(p=>{if(p==="DROP"){o(n.dropAnimating);return}o(n.userCancel)},[o,n.dropAnimating,n.userCancel]),m=rt(()=>{r.current&&o(n.resting)},[o,n.resting]);return sn(()=>({dragging:c,dropping:d,resting:m}),[c,d,m])}function xN(e,t){return Array.from(e.querySelectorAll(t))}var vN=e=>e&&e.ownerDocument&&e.ownerDocument.defaultView?e.ownerDocument.defaultView:window;function Hm(e){return e instanceof vN(e).HTMLElement}function a6(e,t){const n=`[${wl.contextId}="${e}"]`,i=xN(document,n);if(!i.length)return null;const r=i.find(o=>o.getAttribute(wl.draggableId)===t);return!r||!Hm(r)?null:r}function l6(e){const t=C.useRef({}),n=C.useRef(null),i=C.useRef(null),r=C.useRef(!1),o=rt(function(g,x){const v={id:g,focus:x};return t.current[g]=v,function(){const w=t.current;w[g]!==v&&delete w[g]}},[]),a=rt(function(g){const x=a6(e,g);x&&x!==document.activeElement&&x.focus()},[e]),c=rt(function(g,x){n.current===g&&(n.current=x)},[]),d=rt(function(){i.current||r.current&&(i.current=requestAnimationFrame(()=>{i.current=null;const g=n.current;g&&a(g)}))},[a]),m=rt(function(g){n.current=null;const x=document.activeElement;x&&x.getAttribute(wl.draggableId)===g&&(n.current=g)},[]);return mr(()=>(r.current=!0,function(){r.current=!1;const g=i.current;g&&cancelAnimationFrame(g)}),[]),sn(()=>({register:o,tryRecordFocus:m,tryRestoreFocusRecorded:d,tryShiftRecord:c}),[o,m,d,c])}function c6(){const e={draggables:{},droppables:{}},t=[];function n(p){return t.push(p),function(){const x=t.indexOf(p);x!==-1&&t.splice(x,1)}}function i(p){t.length&&t.forEach(g=>g(p))}function r(p){return e.draggables[p]||null}function o(p){const g=r(p);return g||Be(),g}const a={register:p=>{e.draggables[p.descriptor.id]=p,i({type:"ADDITION",value:p})},update:(p,g)=>{const x=e.draggables[g.descriptor.id];x&&x.uniqueId===p.uniqueId&&(delete e.draggables[g.descriptor.id],e.draggables[p.descriptor.id]=p)},unregister:p=>{const g=p.descriptor.id,x=r(g);x&&p.uniqueId===x.uniqueId&&(delete e.draggables[g],e.droppables[p.descriptor.droppableId]&&i({type:"REMOVAL",value:p}))},getById:o,findById:r,exists:p=>!!r(p),getAllByType:p=>Object.values(e.draggables).filter(g=>g.descriptor.type===p)};function c(p){return e.droppables[p]||null}function d(p){const g=c(p);return g||Be(),g}const m={register:p=>{e.droppables[p.descriptor.id]=p},unregister:p=>{const g=c(p.descriptor.id);g&&p.uniqueId===g.uniqueId&&delete e.droppables[p.descriptor.id]},getById:d,findById:c,exists:p=>!!c(p),getAllByType:p=>Object.values(e.droppables).filter(g=>g.descriptor.type===p)};function h(){e.draggables={},e.droppables={},t.length=0}return{draggable:a,droppable:m,subscribe:n,clean:h}}function u6(){const e=sn(c6,[]);return C.useEffect(()=>function(){e.clean()},[e]),e}var d0=Tt.createContext(null),sm=()=>{const e=document.body;return e||Be(),e};const d6={position:"absolute",width:"1px",height:"1px",margin:"-1px",border:"0",padding:"0",overflow:"hidden",clip:"rect(0 0 0 0)","clip-path":"inset(100%)"},f6=e=>`rfd-announcement-${e}`;function m6(e){const t=sn(()=>f6(e),[e]),n=C.useRef(null);return C.useEffect(function(){const o=document.createElement("div");return n.current=o,o.id=t,o.setAttribute("aria-live","assertive"),o.setAttribute("aria-atomic","true"),tm(o.style,d6),sm().appendChild(o),function(){setTimeout(function(){const d=sm();d.contains(o)&&d.removeChild(o),o===n.current&&(n.current=null)})}},[t]),rt(r=>{const o=n.current;if(o){o.textContent=r;return}},[])}const p6={separator:"::"};function f0(e,t=p6){const n=Tt.useId();return sn(()=>`${e}${t.separator}${n}`,[t.separator,e,n])}function h6({contextId:e,uniqueId:t}){return`rfd-hidden-text-${e}-${t}`}function g6({contextId:e,text:t}){const n=f0("hidden-text",{separator:"-"}),i=sn(()=>h6({contextId:e,uniqueId:n}),[n,e]);return C.useEffect(function(){const o=document.createElement("div");return o.id=i,o.textContent=t,o.style.display="none",sm().appendChild(o),function(){const c=sm();c.contains(o)&&c.removeChild(o)}},[i,t]),i}var Fm=Tt.createContext(null);function bN(e){const t=C.useRef(e);return C.useEffect(()=>{t.current=e}),t}function y6(){let e=null;function t(){return!!e}function n(a){return a===e}function i(a){e&&Be();const c={abandon:a};return e=c,c}function r(){e||Be(),e=null}function o(){e&&(e.abandon(),r())}return{isClaimed:t,isActive:n,claim:i,release:r,tryAbandon:o}}function Cu(e){return e.phase==="IDLE"||e.phase==="DROP_ANIMATING"?!1:e.isDragging}const x6=9,v6=13,m0=27,_N=32,b6=33,_6=34,k6=35,S6=36,w6=37,C6=38,j6=39,E6=40,N6={[v6]:!0,[x6]:!0};var kN=e=>{N6[e.keyCode]&&e.preventDefault()};const Vm=(()=>{const e="visibilitychange";return typeof document>"u"?e:[e,`ms${e}`,`webkit${e}`,`moz${e}`,`o${e}`].find(i=>`on${i}`in document)||e})(),SN=0,ew=5;function I6(e,t){return Math.abs(t.x-e.x)>=ew||Math.abs(t.y-e.y)>=ew}const tw={type:"IDLE"};function T6({cancel:e,completed:t,getPhase:n,setPhase:i}){return[{eventName:"mousemove",fn:r=>{const{button:o,clientX:a,clientY:c}=r;if(o!==SN)return;const d={x:a,y:c},m=n();if(m.type==="DRAGGING"){r.preventDefault(),m.actions.move(d);return}m.type!=="PENDING"&&Be();const h=m.point;if(!I6(h,d))return;r.preventDefault();const p=m.actions.fluidLift(d);i({type:"DRAGGING",actions:p})}},{eventName:"mouseup",fn:r=>{const o=n();if(o.type!=="DRAGGING"){e();return}r.preventDefault(),o.actions.drop({shouldBlockNextClick:!0}),t()}},{eventName:"mousedown",fn:r=>{n().type==="DRAGGING"&&r.preventDefault(),e()}},{eventName:"keydown",fn:r=>{if(n().type==="PENDING"){e();return}if(r.keyCode===m0){r.preventDefault(),e();return}kN(r)}},{eventName:"resize",fn:e},{eventName:"scroll",options:{passive:!0,capture:!1},fn:()=>{n().type==="PENDING"&&e()}},{eventName:"webkitmouseforcedown",fn:r=>{const o=n();if(o.type==="IDLE"&&Be(),o.actions.shouldRespectForcePress()){e();return}r.preventDefault()}},{eventName:Vm,fn:e}]}function R6(e){const t=C.useRef(tw),n=C.useRef(vo),i=sn(()=>({eventName:"mousedown",fn:function(p){if(p.defaultPrevented||p.button!==SN||p.ctrlKey||p.metaKey||p.shiftKey||p.altKey)return;const g=e.findClosestDraggableId(p);if(!g)return;const x=e.tryGetLock(g,a,{sourceEvent:p});if(!x)return;p.preventDefault();const v={x:p.clientX,y:p.clientY};n.current(),m(x,v)}}),[e]),r=sn(()=>({eventName:"webkitmouseforcewillbegin",fn:h=>{if(h.defaultPrevented)return;const p=e.findClosestDraggableId(h);if(!p)return;const g=e.findOptionsForDraggable(p);g&&(g.shouldRespectForcePress||e.canGetLock(p)&&h.preventDefault())}}),[e]),o=rt(function(){const p={passive:!1,capture:!0};n.current=Ir(window,[r,i],p)},[r,i]),a=rt(()=>{t.current.type!=="IDLE"&&(t.current=tw,n.current(),o())},[o]),c=rt(()=>{const h=t.current;a(),h.type==="DRAGGING"&&h.actions.cancel({shouldBlockNextClick:!0}),h.type==="PENDING"&&h.actions.abort()},[a]),d=rt(function(){const p={capture:!0,passive:!1},g=T6({cancel:c,completed:a,getPhase:()=>t.current,setPhase:x=>{t.current=x}});n.current=Ir(window,g,p)},[c,a]),m=rt(function(p,g){t.current.type!=="IDLE"&&Be(),t.current={type:"PENDING",point:g,actions:p},d()},[d]);mr(function(){return o(),function(){n.current()}},[o])}function A6(){}const M6={[_6]:!0,[b6]:!0,[S6]:!0,[k6]:!0};function D6(e,t){function n(){t(),e.cancel()}function i(){t(),e.drop()}return[{eventName:"keydown",fn:r=>{if(r.keyCode===m0){r.preventDefault(),n();return}if(r.keyCode===_N){r.preventDefault(),i();return}if(r.keyCode===E6){r.preventDefault(),e.moveDown();return}if(r.keyCode===C6){r.preventDefault(),e.moveUp();return}if(r.keyCode===j6){r.preventDefault(),e.moveRight();return}if(r.keyCode===w6){r.preventDefault(),e.moveLeft();return}if(M6[r.keyCode]){r.preventDefault();return}kN(r)}},{eventName:"mousedown",fn:n},{eventName:"mouseup",fn:n},{eventName:"click",fn:n},{eventName:"touchstart",fn:n},{eventName:"resize",fn:n},{eventName:"wheel",fn:n,options:{passive:!0}},{eventName:Vm,fn:n}]}function O6(e){const t=C.useRef(A6),n=sn(()=>({eventName:"keydown",fn:function(o){if(o.defaultPrevented||o.keyCode!==_N)return;const a=e.findClosestDraggableId(o);if(!a)return;const c=e.tryGetLock(a,h,{sourceEvent:o});if(!c)return;o.preventDefault();let d=!0;const m=c.snapLift();t.current();function h(){d||Be(),d=!1,t.current(),i()}t.current=Ir(window,D6(m,h),{capture:!0,passive:!1})}}),[e]),i=rt(function(){const o={passive:!1,capture:!0};t.current=Ir(window,[n],o)},[n]);mr(function(){return i(),function(){t.current()}},[i])}const zg={type:"IDLE"},L6=120,z6=.15;function P6({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===m0&&n.preventDefault(),e()}},{eventName:Vm,fn:e}]}function B6({cancel:e,completed:t,getPhase:n}){return[{eventName:"touchmove",options:{capture:!1},fn:i=>{const r=n();if(r.type!=="DRAGGING"){e();return}r.hasMoved=!0;const{clientX:o,clientY:a}=i.touches[0],c={x:o,y:a};i.preventDefault(),r.actions.move(c)}},{eventName:"touchend",fn:i=>{const r=n();if(r.type!=="DRAGGING"){e();return}i.preventDefault(),r.actions.drop({shouldBlockNextClick:!0}),t()}},{eventName:"touchcancel",fn:i=>{if(n().type!=="DRAGGING"){e();return}i.preventDefault(),e()}},{eventName:"touchforcechange",fn:i=>{const r=n();r.type==="IDLE"&&Be();const o=i.touches[0];if(!o||!(o.force>=z6))return;const c=r.actions.shouldRespectForcePress();if(r.type==="PENDING"){c&&e();return}if(c){if(r.hasMoved){i.preventDefault();return}e();return}i.preventDefault()}},{eventName:Vm,fn:e}]}function $6(e){const t=C.useRef(zg),n=C.useRef(vo),i=rt(function(){return t.current},[]),r=rt(function(x){t.current=x},[]),o=sn(()=>({eventName:"touchstart",fn:function(x){if(x.defaultPrevented)return;const v=e.findClosestDraggableId(x);if(!v)return;const b=e.tryGetLock(v,c,{sourceEvent:x});if(!b)return;const w=x.touches[0],{clientX:k,clientY:S}=w,j={x:k,y:S};n.current(),p(b,j)}}),[e]),a=rt(function(){const x={capture:!0,passive:!1};n.current=Ir(window,[o],x)},[o]),c=rt(()=>{const g=t.current;g.type!=="IDLE"&&(g.type==="PENDING"&&clearTimeout(g.longPressTimerId),r(zg),n.current(),a())},[a,r]),d=rt(()=>{const g=t.current;c(),g.type==="DRAGGING"&&g.actions.cancel({shouldBlockNextClick:!0}),g.type==="PENDING"&&g.actions.abort()},[c]),m=rt(function(){const x={capture:!0,passive:!1},v={cancel:d,completed:c,getPhase:i},b=Ir(window,B6(v),x),w=Ir(window,P6(v),x);n.current=function(){b(),w()}},[d,i,c]),h=rt(function(){const x=i();x.type!=="PENDING"&&Be();const v=x.actions.fluidLift(x.point);r({type:"DRAGGING",actions:v,hasMoved:!1})},[i,r]),p=rt(function(x,v){i().type!=="IDLE"&&Be();const b=setTimeout(h,L6);r({type:"PENDING",point:v,actions:x,longPressTimerId:b}),m()},[m,i,r,h]);mr(function(){return a(),function(){n.current();const v=i();v.type==="PENDING"&&(clearTimeout(v.longPressTimerId),r(zg))}},[i,a,r]),mr(function(){return Ir(window,[{eventName:"touchmove",fn:()=>{},options:{capture:!1,passive:!1}}])},[])}const H6=["input","button","textarea","select","option","optgroup","video","audio"];function wN(e,t){if(t==null)return!1;if(H6.includes(t.tagName.toLowerCase()))return!0;const i=t.getAttribute("contenteditable");return i==="true"||i===""?!0:t===e?!1:wN(e,t.parentElement)}function F6(e,t){const n=t.target;return Hm(n)?wN(e,n):!1}var V6=e=>zr(e.getBoundingClientRect()).center;function U6(e){return e instanceof vN(e).Element}const G6=(()=>{const e="matches";return typeof document>"u"?e:[e,"msMatchesSelector","webkitMatchesSelector"].find(i=>i in Element.prototype)||e})();function CN(e,t){return e==null?null:e[G6](t)?e:CN(e.parentElement,t)}function q6(e,t){return e.closest?e.closest(t):CN(e,t)}function W6(e){return`[${wl.contextId}="${e}"]`}function Y6(e,t){const n=t.target;if(!U6(n))return null;const i=W6(e),r=q6(n,i);return!r||!Hm(r)?null:r}function X6(e,t){const n=Y6(e,t);return n?n.getAttribute(wl.draggableId):null}function K6(e,t){const n=`[${Jx.contextId}="${e}"]`,r=xN(document,n).find(o=>o.getAttribute(Jx.id)===t);return!r||!Hm(r)?null:r}function Z6(e){e.preventDefault()}function af({expected:e,phase:t,isLockActive:n,shouldWarn:i}){return!(!n()||e!==t)}function jN({lockAPI:e,store:t,registry:n,draggableId:i}){if(e.isClaimed())return!1;const r=n.draggable.findById(i);return!(!r||!r.options.isEnabled||!pN(t.getState(),i))}function Q6({lockAPI:e,contextId:t,store:n,registry:i,draggableId:r,forceSensorStop:o,sourceEvent:a}){if(!jN({lockAPI:e,store:n,registry:i,draggableId:r}))return null;const d=i.draggable.getById(r),m=K6(t,d.descriptor.id);if(!m||a&&!d.options.canDragInteractiveElements&&F6(m,a))return null;const h=e.claim(o||vo);let p="PRE_DRAG";function g(){return d.options.shouldRespectForcePress}function x(){return e.isActive(h)}function v(L,A){af({expected:L,phase:p,isLockActive:x,shouldWarn:!0})&&n.dispatch(A())}const b=v.bind(null,"DRAGGING");function w(L){function A(){e.release(),p="COMPLETED"}p!=="PRE_DRAG"&&(A(),Be()),n.dispatch(qO(L.liftActionArgs)),p="DRAGGING";function D(O,T={shouldBlockNextClick:!1}){if(L.cleanup(),T.shouldBlockNextClick){const M=Ir(window,[{eventName:"click",fn:Z6,options:{once:!0,passive:!1,capture:!0}}]);setTimeout(M)}A(),n.dispatch(oN({reason:O}))}return{isActive:()=>af({expected:"DRAGGING",phase:p,isLockActive:x,shouldWarn:!1}),shouldRespectForcePress:g,drop:O=>D("DROP",O),cancel:O=>D("CANCEL",O),...L.actions}}function k(L){const A=vu(O=>{b(()=>sN({client:O}))});return{...w({liftActionArgs:{id:r,clientSelection:L,movementMode:"FLUID"},cleanup:()=>A.cancel(),actions:{move:A}}),move:A}}function S(){const L={moveUp:()=>b(tL),moveRight:()=>b(iL),moveDown:()=>b(nL),moveLeft:()=>b(rL)};return w({liftActionArgs:{id:r,clientSelection:V6(m),movementMode:"SNAP"},cleanup:vo,actions:L})}function j(){af({expected:"PRE_DRAG",phase:p,isLockActive:x,shouldWarn:!0})&&e.release()}return{isActive:()=>af({expected:"PRE_DRAG",phase:p,isLockActive:x,shouldWarn:!1}),shouldRespectForcePress:g,fluidLift:k,snapLift:S,abort:j}}const J6=[R6,O6,$6];function ez({contextId:e,store:t,registry:n,customSensors:i,enableDefaultSensors:r}){const o=[...r?J6:[],...i||[]],a=C.useState(()=>y6())[0],c=rt(function(w,k){Cu(w)&&!Cu(k)&&a.tryAbandon()},[a]);mr(function(){let w=t.getState();return t.subscribe(()=>{const S=t.getState();c(w,S),w=S})},[a,t,c]),mr(()=>a.tryAbandon,[a.tryAbandon]);const d=rt(b=>jN({lockAPI:a,registry:n,store:t,draggableId:b}),[a,n,t]),m=rt((b,w,k)=>Q6({lockAPI:a,registry:n,contextId:e,store:t,draggableId:b,forceSensorStop:w||null,sourceEvent:k&&k.sourceEvent?k.sourceEvent:null}),[e,a,n,t]),h=rt(b=>X6(e,b),[e]),p=rt(b=>{const w=n.draggable.findById(b);return w?w.options:null},[n.draggable]),g=rt(function(){a.isClaimed()&&(a.tryAbandon(),t.getState().phase!=="IDLE"&&t.dispatch(r0()))},[a,t]),x=rt(()=>a.isClaimed(),[a]),v=sn(()=>({canGetLock:d,tryGetLock:m,findClosestDraggableId:h,findOptionsForDraggable:p,tryReleaseLock:g,isLockClaimed:x}),[d,m,h,p,g,x]);for(let b=0;b({onBeforeCapture:t=>{const n=()=>{e.onBeforeCapture&&e.onBeforeCapture(t)};Tm.flushSync(n)},onBeforeDragStart:e.onBeforeDragStart,onDragStart:e.onDragStart,onDragEnd:e.onDragEnd,onDragUpdate:e.onDragUpdate}),nz=e=>({...wu,...e.autoScrollerOptions,durationDampening:{...wu.durationDampening,...e.autoScrollerOptions}});function Hc(e){return e.current||Be(),e.current}function iz(e){const{contextId:t,setCallbacks:n,sensors:i,nonce:r,dragHandleUsageInstructions:o}=e,a=C.useRef(null),c=bN(e),d=rt(()=>tz(c.current),[c]),m=rt(()=>nz(c.current),[c]),h=m6(t),p=g6({contextId:t,text:o}),g=o6(t,r),x=rt(M=>{Hc(a).dispatch(M)},[]),v=sn(()=>ES({publishWhileDragging:YO,updateDroppableScroll:KO,updateDroppableIsEnabled:ZO,updateDroppableIsCombineEnabled:QO,collectionStarting:XO},x),[x]),b=u6(),w=sn(()=>PL(b,v),[b,v]),k=sn(()=>t6({scrollWindow:BL,scrollDroppable:w.scrollDroppable,getAutoScrollerOptions:m,...ES({move:sN},x)}),[w.scrollDroppable,x,m]),S=l6(t),j=sn(()=>DL({announce:h,autoScroller:k,dimensionMarshal:w,focusMarshal:S,getResponders:d,styleMarshal:g}),[h,k,w,S,d,g]);a.current=j;const N=rt(()=>{const M=Hc(a);M.getState().phase!=="IDLE"&&M.dispatch(r0())},[]),L=rt(()=>{const M=Hc(a).getState();return M.phase==="DROP_ANIMATING"?!0:M.phase==="IDLE"?!1:M.isDragging},[]),A=sn(()=>({isDragging:L,tryAbort:N}),[L,N]);n(A);const D=rt(M=>pN(Hc(a).getState(),M),[]),O=rt(()=>ta(Hc(a).getState()),[]),T=sn(()=>({marshal:w,focus:S,contextId:t,canLift:D,isMovementAllowed:O,dragHandleUsageInstructionsId:p,registry:b}),[t,w,p,S,D,O,b]);return ez({contextId:t,store:j,registry:b,customSensors:i||null,enableDefaultSensors:e.enableDefaultSensors!==!1}),C.useEffect(()=>N,[N]),Tt.createElement(Fm.Provider,{value:T},Tt.createElement(N5,{context:d0,store:j},e.children))}function rz(){return Tt.useId()}function sz(e){const t=rz(),n=e.dragHandleUsageInstructions||Of.dragHandleUsageInstructions;return Tt.createElement(O5,null,i=>Tt.createElement(iz,{nonce:e.nonce,contextId:t,setCallbacks:i,dragHandleUsageInstructions:n,enableDefaultSensors:e.enableDefaultSensors,sensors:e.sensors,onBeforeCapture:e.onBeforeCapture,onBeforeDragStart:e.onBeforeDragStart,onDragStart:e.onDragStart,onDragUpdate:e.onDragUpdate,onDragEnd:e.onDragEnd,autoScrollerOptions:e.autoScrollerOptions},e.children))}const nw={dragging:5e3,dropAnimating:4500},oz=(e,t)=>t?cu.drop(t.duration):e?cu.snap:cu.fluid,az=(e,t)=>{if(e)return t?Su.opacity.drop:Su.opacity.combining},lz=e=>e.forceShouldAnimate!=null?e.forceShouldAnimate:e.mode==="SNAP";function cz(e){const n=e.dimension.client,{offset:i,combineWith:r,dropping:o}=e,a=!!r,c=lz(e),d=!!o,m=d?Zx.drop(i,a):Zx.moveTo(i);return{position:"fixed",top:n.marginBox.top,left:n.marginBox.left,boxSizing:"border-box",width:n.borderBox.width,height:n.borderBox.height,transition:oz(c,o),transform:m,opacity:az(a,d),zIndex:d?nw.dropAnimating:nw.dragging,pointerEvents:"none"}}function uz(e){return{transform:Zx.moveTo(e.offset),transition:e.shouldAnimateDisplacement?void 0:"none"}}function dz(e){return e.type==="DRAGGING"?cz(e):uz(e)}function fz(e,t,n=ki){const i=window.getComputedStyle(t),r=t.getBoundingClientRect(),o=ME(r,i),a=em(o,n),c={client:o,tagName:t.tagName.toLowerCase(),display:i.display},d={x:o.marginBox.width,y:o.marginBox.height};return{descriptor:e,placeholder:c,displaceBy:d,client:o,page:a}}function mz(e){const t=f0("draggable"),{descriptor:n,registry:i,getDraggableRef:r,canDragInteractiveElements:o,shouldRespectForcePress:a,isEnabled:c}=e,d=sn(()=>({canDragInteractiveElements:o,shouldRespectForcePress:a,isEnabled:c}),[o,c,a]),m=rt(x=>{const v=r();return v||Be(),fz(n,v,x)},[n,r]),h=sn(()=>({uniqueId:t,descriptor:n,options:d,getDimension:m}),[n,m,d,t]),p=C.useRef(h),g=C.useRef(!0);mr(()=>(i.draggable.register(p.current),()=>i.draggable.unregister(p.current)),[i.draggable]),mr(()=>{if(g.current){g.current=!1;return}const x=p.current;p.current=h,i.draggable.update(h,x)},[h,i.draggable])}var p0=Tt.createContext(null);function om(e){const t=C.useContext(e);return t||Be(),t}function pz(e){e.preventDefault()}const hz=e=>{const t=C.useRef(null),n=rt((A=null)=>{t.current=A},[]),i=rt(()=>t.current,[]),{contextId:r,dragHandleUsageInstructionsId:o,registry:a}=om(Fm),{type:c,droppableId:d}=om(p0),m=sn(()=>({id:e.draggableId,index:e.index,type:c,droppableId:d}),[e.draggableId,e.index,c,d]),{children:h,draggableId:p,isEnabled:g,shouldRespectForcePress:x,canDragInteractiveElements:v,isClone:b,mapped:w,dropAnimationFinished:k}=e;if(!b){const A=sn(()=>({descriptor:m,registry:a,getDraggableRef:i,canDragInteractiveElements:v,shouldRespectForcePress:x,isEnabled:g}),[m,a,i,v,x,g]);mz(A)}const S=sn(()=>g?{tabIndex:0,role:"button","aria-describedby":o,"data-rfd-drag-handle-draggable-id":p,"data-rfd-drag-handle-context-id":r,draggable:!1,onDragStart:pz}:null,[r,o,p,g]),j=rt(A=>{w.type==="DRAGGING"&&w.dropping&&A.propertyName==="transform"&&Tm.flushSync(k)},[k,w]),N=sn(()=>{const A=dz(w),D=w.type==="DRAGGING"&&w.dropping?j:void 0;return{innerRef:n,draggableProps:{"data-rfd-draggable-context-id":r,"data-rfd-draggable-id":p,style:A,onTransitionEnd:D},dragHandleProps:S}},[r,S,p,w,j,n]),L=sn(()=>({draggableId:m.id,type:m.type,source:{index:m.index,droppableId:m.droppableId}}),[m.droppableId,m.id,m.index,m.type]);return Tt.createElement(Tt.Fragment,null,h(N,w.snapshot,L))};var EN=(e,t)=>e===t,NN=e=>{const{combine:t,destination:n}=e;return n?n.droppableId:t?t.droppableId:null};const gz=e=>e.combine?e.combine.draggableId:null,yz=e=>e.at&&e.at.type==="COMBINE"?e.at.combine.draggableId:null;function xz(){const e=_i((r,o)=>({x:r,y:o})),t=_i((r,o,a=null,c=null,d=null)=>({isDragging:!0,isClone:o,isDropAnimating:!!d,dropAnimation:d,mode:r,draggingOver:a,combineWith:c,combineTargetFor:null})),n=_i((r,o,a,c,d=null,m=null,h=null)=>({mapped:{type:"DRAGGING",dropping:null,draggingOver:d,combineWith:m,mode:o,offset:r,dimension:a,forceShouldAnimate:h,snapshot:t(o,c,d,m,null)}}));return(r,o)=>{if(Cu(r)){if(r.critical.draggable.id!==o.draggableId)return null;const a=r.current.client.offset,c=r.dimensions.draggables[o.draggableId],d=fr(r.impact),m=yz(r.impact),h=r.forceShouldAnimate;return n(e(a.x,a.y),r.movementMode,c,o.isClone,d,m,h)}if(r.phase==="DROP_ANIMATING"){const a=r.completed;if(a.result.draggableId!==o.draggableId)return null;const c=o.isClone,d=r.dimensions.draggables[o.draggableId],m=a.result,h=m.mode,p=NN(m),g=gz(m),v={duration:r.dropDuration,curve:o0.drop,moveTo:r.newHomeClientOffset,opacity:g?Su.opacity.drop:null,scale:g?Su.scale.drop:null};return{mapped:{type:"DRAGGING",offset:r.newHomeClientOffset,dimension:d,dropping:v,draggingOver:p,combineWith:g,mode:h,forceShouldAnimate:null,snapshot:t(h,c,p,g,v)}}}return null}}function IN(e=null){return{isDragging:!1,isDropAnimating:!1,isClone:!1,dropAnimation:null,mode:null,draggingOver:null,combineTargetFor:e,combineWith:null}}const vz={mapped:{type:"SECONDARY",offset:ki,combineTargetFor:null,shouldAnimateDisplacement:!0,snapshot:IN(null)}};function bz(){const e=_i((a,c)=>({x:a,y:c})),t=_i(IN),n=_i((a,c=null,d)=>({mapped:{type:"SECONDARY",offset:a,combineTargetFor:c,shouldAnimateDisplacement:d,snapshot:t(c)}})),i=a=>a?n(ki,a,!0):null,r=(a,c,d,m)=>{const h=d.displaced.visible[a],p=!!(m.inVirtualList&&m.effected[a]),g=Pm(d),x=g&&g.draggableId===a?c:null;if(!h){if(!p)return i(x);if(d.displaced.invisible[a])return null;const w=Hl(m.displacedBy.point),k=e(w.x,w.y);return n(k,x,!0)}if(p)return i(x);const v=d.displacedBy.point,b=e(v.x,v.y);return n(b,x,h.shouldAnimate)};return(a,c)=>{if(Cu(a))return a.critical.draggable.id===c.draggableId?null:r(c.draggableId,a.critical.draggable.id,a.impact,a.afterCritical);if(a.phase==="DROP_ANIMATING"){const d=a.completed;return d.result.draggableId===c.draggableId?null:r(c.draggableId,d.result.draggableId,d.impact,d.afterCritical)}return null}}const _z=()=>{const e=xz(),t=bz();return(i,r)=>e(i,r)||t(i,r)||vz},kz={dropAnimationFinished:aN},Sz=AE(_z,kz,null,{context:d0,areStatePropsEqual:EN})(hz);function TN(e){return om(p0).isUsingCloneFor===e.draggableId&&!e.isClone?null:Tt.createElement(Sz,e)}function wz(e){const t=typeof e.isDragDisabled=="boolean"?!e.isDragDisabled:!0,n=!!e.disableInteractiveElementBlocking,i=!!e.shouldRespectForcePress;return Tt.createElement(TN,tm({},e,{isClone:!1,isEnabled:t,canDragInteractiveElements:n,shouldRespectForcePress:i}))}const RN=e=>t=>e===t,Cz=RN("scroll"),jz=RN("auto"),iw=(e,t)=>t(e.overflowX)||t(e.overflowY),Ez=e=>{const t=window.getComputedStyle(e),n={overflowX:t.overflowX,overflowY:t.overflowY};return iw(n,Cz)||iw(n,jz)},Nz=()=>!1,AN=e=>e==null?null:e===document.body?Nz()?e:null:e===document.documentElement?null:Ez(e)?e:AN(e.parentElement);var ev=e=>({x:e.scrollLeft,y:e.scrollTop});const MN=e=>e?window.getComputedStyle(e).position==="fixed"?!0:MN(e.parentElement):!1;var Iz=e=>{const t=AN(e),n=MN(e);return{closestScrollable:t,isFixedOnPage:n}},Tz=({descriptor:e,isEnabled:t,isCombineEnabled:n,isFixedOnPage:i,direction:r,client:o,page:a,closest:c})=>{const d=(()=>{if(!c)return null;const{scrollSize:g,client:x}=c,v=dN({scrollHeight:g.scrollHeight,scrollWidth:g.scrollWidth,height:x.paddingBox.height,width:x.paddingBox.width});return{pageMarginBox:c.page.marginBox,frameClient:x,scrollSize:g,shouldClipSubject:c.shouldClipSubject,scroll:{initial:c.scroll,current:c.scroll,max:v,diff:{value:ki,displacement:ki}}}})(),m=r==="vertical"?Jv:UE,h=kl({page:a,withPlaceholder:null,axis:m,frame:d});return{descriptor:e,isCombineEnabled:n,isFixedOnPage:i,axis:m,isEnabled:t,client:o,page:a,frame:d,subject:h}};const Rz=(e,t)=>{const n=DE(e);if(!t||e!==t)return n;const i=n.paddingBox.top-t.scrollTop,r=n.paddingBox.left-t.scrollLeft,o=i+t.scrollHeight,a=r+t.scrollWidth,d=Xv({top:i,right:a,bottom:o,left:r},n.border);return Kv({borderBox:d,margin:n.margin,border:n.border,padding:n.padding})};var Az=({ref:e,descriptor:t,env:n,windowScroll:i,direction:r,isDropDisabled:o,isCombineEnabled:a,shouldClipSubject:c})=>{const d=n.closestScrollable,m=Rz(e,d),h=em(m,i),p=(()=>{if(!d)return null;const x=DE(d),v={scrollHeight:d.scrollHeight,scrollWidth:d.scrollWidth};return{client:x,page:em(x,i),scroll:ev(d),scrollSize:v,shouldClipSubject:c}})();return Tz({descriptor:t,isEnabled:!o,isCombineEnabled:a,isFixedOnPage:n.isFixedOnPage,direction:r,client:m,page:h,closest:p})};const Mz={passive:!1},Dz={passive:!0};var rw=e=>e.shouldPublishImmediately?Mz:Dz;const lf=e=>e&&e.env.closestScrollable||null;function Oz(e){const t=C.useRef(null),n=om(Fm),i=f0("droppable"),{registry:r,marshal:o}=n,a=bN(e),c=sn(()=>({id:e.droppableId,type:e.type,mode:e.mode}),[e.droppableId,e.mode,e.type]),d=C.useRef(c),m=sn(()=>_i((N,L)=>{t.current||Be();const A={x:N,y:L};o.updateDroppableScroll(c.id,A)}),[c.id,o]),h=rt(()=>{const N=t.current;return!N||!N.env.closestScrollable?ki:ev(N.env.closestScrollable)},[]),p=rt(()=>{const N=h();m(N.x,N.y)},[h,m]),g=sn(()=>vu(p),[p]),x=rt(()=>{const N=t.current,L=lf(N);if(N&&L||Be(),N.scrollOptions.shouldPublishImmediately){p();return}g()},[g,p]),v=rt((N,L)=>{t.current&&Be();const A=a.current,D=A.getDroppableRef();D||Be();const O=Iz(D),T={ref:D,descriptor:c,env:O,scrollOptions:L};t.current=T;const M=Az({ref:D,descriptor:c,env:O,windowScroll:N,direction:A.direction,isDropDisabled:A.isDropDisabled,isCombineEnabled:A.isCombineEnabled,shouldClipSubject:!A.ignoreContainerClipping}),I=O.closestScrollable;return I&&(I.setAttribute(QS.contextId,n.contextId),I.addEventListener("scroll",x,rw(T.scrollOptions))),M},[n.contextId,c,x,a]),b=rt(()=>{const N=t.current,L=lf(N);return N&&L||Be(),ev(L)},[]),w=rt(()=>{const N=t.current;N||Be();const L=lf(N);t.current=null,L&&(g.cancel(),L.removeAttribute(QS.contextId),L.removeEventListener("scroll",x,rw(N.scrollOptions)))},[x,g]),k=rt(N=>{const L=t.current;L||Be();const A=lf(L);A||Be(),A.scrollTop+=N.y,A.scrollLeft+=N.x},[]),S=sn(()=>({getDimensionAndWatchScroll:v,getScrollWhileDragging:b,dragStopped:w,scroll:k}),[w,v,b,k]),j=sn(()=>({uniqueId:i,descriptor:c,callbacks:S}),[S,c,i]);mr(()=>(d.current=j.descriptor,r.droppable.register(j),()=>{t.current&&w(),r.droppable.unregister(j)}),[S,c,w,j,o,r.droppable]),mr(()=>{t.current&&o.updateDroppableIsEnabled(d.current.id,!e.isDropDisabled)},[e.isDropDisabled,o]),mr(()=>{t.current&&o.updateDroppableIsCombineEnabled(d.current.id,e.isCombineEnabled)},[e.isCombineEnabled,o])}function Pg(){}const sw={width:0,height:0,margin:F5},Lz=({isAnimatingOpenOnMount:e,placeholder:t,animate:n})=>e||n==="close"?sw:{height:t.client.borderBox.height,width:t.client.borderBox.width,margin:t.client.margin},zz=({isAnimatingOpenOnMount:e,placeholder:t,animate:n})=>{const i=Lz({isAnimatingOpenOnMount:e,placeholder:t,animate:n});return{display:t.display,boxSizing:"border-box",width:i.width,height:i.height,marginTop:i.margin.top,marginRight:i.margin.right,marginBottom:i.margin.bottom,marginLeft:i.margin.left,flexShrink:"0",flexGrow:"0",pointerEvents:"none",transition:n!=="none"?cu.placeholder:null}},Pz=e=>{const t=C.useRef(null),n=rt(()=>{t.current&&(clearTimeout(t.current),t.current=null)},[]),{animate:i,onTransitionEnd:r,onClose:o,contextId:a}=e,[c,d]=C.useState(e.animate==="open");C.useEffect(()=>c?i!=="open"?(n(),d(!1),Pg):t.current?Pg:(t.current=setTimeout(()=>{t.current=null,d(!1)}),n):Pg,[i,c,n]);const m=rt(p=>{p.propertyName==="height"&&(r(),i==="close"&&o())},[i,o,r]),h=zz({isAnimatingOpenOnMount:c,animate:e.animate,placeholder:e.placeholder});return Tt.createElement(e.placeholder.tagName,{style:h,"data-rfd-placeholder-context-id":a,onTransitionEnd:m,ref:e.innerRef})};var Bz=Tt.memo(Pz);class $z extends Tt.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 Hz=e=>{const t=C.useContext(Fm);t||Be();const{contextId:n,isMovementAllowed:i}=t,r=C.useRef(null),o=C.useRef(null),{children:a,droppableId:c,type:d,mode:m,direction:h,ignoreContainerClipping:p,isDropDisabled:g,isCombineEnabled:x,snapshot:v,useClone:b,updateViewportMaxScroll:w,getContainerForClone:k}=e,S=rt(()=>r.current,[]),j=rt((I=null)=>{r.current=I},[]);rt(()=>o.current,[]);const N=rt((I=null)=>{o.current=I},[]),L=rt(()=>{i()&&w({maxScroll:mN()})},[i,w]);Oz({droppableId:c,type:d,mode:m,direction:h,isDropDisabled:g,isCombineEnabled:x,ignoreContainerClipping:p,getDroppableRef:S});const A=sn(()=>Tt.createElement($z,{on:e.placeholder,shouldAnimate:e.shouldAnimatePlaceholder},({onClose:I,data:H,animate:Y})=>Tt.createElement(Bz,{placeholder:H,onClose:I,innerRef:N,animate:Y,contextId:n,onTransitionEnd:L})),[n,L,e.placeholder,e.shouldAnimatePlaceholder,N]),D=sn(()=>({innerRef:j,placeholder:A,droppableProps:{"data-rfd-droppable-id":c,"data-rfd-droppable-context-id":n}}),[n,c,A,j]),O=b?b.dragging.draggableId:null,T=sn(()=>({droppableId:c,type:d,isUsingCloneFor:O}),[c,O,d]);function M(){if(!b)return null;const{dragging:I,render:H}=b,Y=Tt.createElement(TN,{draggableId:I.draggableId,index:I.source.index,isClone:!0,isEnabled:!0,shouldRespectForcePress:!1,canDragInteractiveElements:!0},(P,U)=>H(P,U,I));return w4.createPortal(Y,k())}return Tt.createElement(p0.Provider,{value:T},a(D,v),M())};function Fz(){return document.body||Be(),document.body}const ow={mode:"standard",type:"DEFAULT",direction:"vertical",isDropDisabled:!1,isCombineEnabled:!1,ignoreContainerClipping:!1,renderClone:null,getContainerForClone:Fz},DN=e=>{let t={...e},n;for(n in ow)e[n]===void 0&&(t={...t,[n]:ow[n]});return t},Bg=(e,t)=>e===t.droppable.type,aw=(e,t)=>t.draggables[e.draggable.id],Vz=()=>{const e={placeholder:null,shouldAnimatePlaceholder:!0,snapshot:{isDraggingOver:!1,draggingOverWith:null,draggingFromThisWith:null,isUsingPlaceholder:!1},useClone:null},t={...e,shouldAnimatePlaceholder:!1},n=_i(o=>({draggableId:o.id,type:o.type,source:{index:o.index,droppableId:o.droppableId}})),i=_i((o,a,c,d,m,h)=>{const p=m.descriptor.id;if(m.descriptor.droppableId===o){const v=h?{render:h,dragging:n(m.descriptor)}:null,b={isDraggingOver:c,draggingOverWith:c?p:null,draggingFromThisWith:p,isUsingPlaceholder:!0};return{placeholder:m.placeholder,shouldAnimatePlaceholder:!1,snapshot:b,useClone:v}}if(!a)return t;if(!d)return e;const x={isDraggingOver:c,draggingOverWith:p,draggingFromThisWith:null,isUsingPlaceholder:!0};return{placeholder:m.placeholder,shouldAnimatePlaceholder:!0,snapshot:x,useClone:null}});return(o,a)=>{const c=DN(a),d=c.droppableId,m=c.type,h=!c.isDropDisabled,p=c.renderClone;if(Cu(o)){const g=o.critical;if(!Bg(m,g))return t;const x=aw(g,o.dimensions),v=fr(o.impact)===d;return i(d,h,v,v,x,p)}if(o.phase==="DROP_ANIMATING"){const g=o.completed;if(!Bg(m,g.critical))return t;const x=aw(g.critical,o.dimensions);return i(d,h,NN(g.result)===d,fr(g.impact)===d,x,p)}if(o.phase==="IDLE"&&o.completed&&!o.shouldFlush){const g=o.completed;if(!Bg(m,g.critical))return t;const x=fr(g.impact)===d,v=!!(g.impact.at&&g.impact.at.type==="COMBINE"),b=g.critical.droppable.id===d;return x?v?e:t:b?e:t}return t}},Uz={updateViewportMaxScroll:eL},Gz=AE(Vz,Uz,(e,t,n)=>({...DN(n),...e,...t}),{context:d0,areStatePropsEqual:EN})(Hz),am={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:"▽"}},h0={idle:"Idle",reflecting:"Thinking...",tool_active:"Running tool"};function g0(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||g0(e.workItemRoleId)}function qz(e){return(e.employeeAssignment?.name??"").trim()}function $g(e){const t=Cl(e),n=qz(e);return t&&n?`${t} · ${n}`:t||n}function fl(e){return typeof e=="string"?e.trim():""}function go(e){if(!e)return"";const t=e;return fl(t.executionTurnId)||fl(t.runtimeTaskId)||fl(t.taskId)}function Um(e){return fl(e?.workItemId)?fl(e?.executionTurnId)||fl(e?.runtimeTaskId):""}const Wz={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 Yz({task:e,index:t,agents:n,officeMap:i,companyMode:r,isSelected:o,onClick:a,onStart:c}){const{t:d,translateMaybe:m}=Vr(),h=e.assigneeIds.map(T=>n.find(M=>M.agent_id===T)).filter(Boolean),p=e.priority?am[e.priority]:null,g=i&&h.length>1&&new Set(h.map(T=>i[T.agent_id]).filter(Boolean)).size>1,x=e.agentStatus&&e.agentStatus!=="idle",v=e.dependencies?.length??0,b=e.phase,w=!x&&b&&b!=="ready"?Wz[b]??null:null,k=e.employeeAssignment,S=Cl(e),j=e.workItemGate,N=g0(e.managerRoleId),L=(e.blockedReason??"").trim(),A=(e.reworkFeedback??"").trim(),D=Um(e),O=e.agentStatus?m("agent.status",e.agentStatus)||h0[e.agentStatus]||e.agentStatus:"";return u.jsx(wz,{draggableId:e.id,index:t,isDragDisabled:!!r,children:(T,M)=>u.jsxs("div",{ref:T.innerRef,...T.draggableProps,...T.dragHandleProps,className:`kanban-card${M.isDragging?" is-dragging":""}${x?" is-active":""}${o?" is-selected":""}`,"data-task-id":e.id,onMouseUp:I=>{I.button===0&&!M.isDragging&&a(e)},children:[u.jsxs("div",{className:"kanban-card-top",children:[u.jsx("span",{className:"kanban-card-id",children:e.displayId}),w&&u.jsxs("span",{className:"kanban-status-badge",style:{color:w.color},children:[u.jsx("span",{style:{display:"inline-block",width:6,height:6,borderRadius:"50%",background:w.color,marginRight:3}}),m("kanban.status",b)||w.label]}),v>0&&u.jsx("span",{className:"kanban-dep-badge",title:d("kanban.upstreamDeps",{count:v}),children:d("kanban.dep",{count:v})}),g&&u.jsx("span",{className:"kanban-cross-badge",title:d("kanban.crossOffice"),children:"⇄"}),c&&u.jsx("button",{className:"kanban-start-btn",title:d(r?"kanban.startWorkItem":"kanban.startTask"),onClick:I=>{I.stopPropagation(),c(e.id)},children:"▶"})]}),u.jsx("p",{className:"kanban-card-title",children:e.title}),(S||k?.name||j?.type||e.originChannel||e.workItemProjectionId)&&u.jsxs("div",{className:"kanban-card-meta-row",children:[S&&u.jsx("span",{className:"kanban-meta-badge kanban-role-badge",title:`${d("common.role")}: ${S}`,children:S}),k?.name&&u.jsxs("span",{className:"kanban-meta-badge kanban-employee-badge",title:`${d("common.employee")}: ${k.name}${k.category?` (${k.category})`:""}`,children:[u.jsx("span",{className:"kanban-meta-icon",children:"👤"}),k.name]}),e.workItemProjectionId&&u.jsx("span",{className:"kanban-meta-badge kanban-projection-badge",title:`${d("common.projection")}: ${e.workItemProjectionId}`,children:e.workItemProjectionId}),j?.type&&u.jsxs("span",{className:`kanban-meta-badge kanban-gate-badge kanban-gate-${j.type}`,title:`${d("common.gate")}: ${j.type}${j.reviewerRole?` by ${j.reviewerRole}`:""}`,children:[j.type==="review"?"✉":j.type==="approval"?"✓":"✋",j.type]}),e.originChannel&&u.jsxs("span",{className:"kanban-meta-badge kanban-origin-badge",title:`${d("common.origin")}: ${e.originChannel}`,children:["#",e.originChannel]}),N&&u.jsx("span",{className:"kanban-meta-badge",title:`${d("common.manager")}: ${N}`,children:N})]}),(L||A||D)&&u.jsxs("div",{className:"kanban-card-tags",children:[L&&u.jsx("span",{className:"kanban-tag",children:L}),A&&u.jsx("span",{className:"kanban-tag",children:A}),D&&u.jsx("span",{className:"kanban-tag",title:d("kanban.executionTurn",{id:D}),children:d("common.runtime")})]}),x&&u.jsxs("div",{className:`kanban-card-runtime status-${e.agentStatus}`,children:[u.jsx("span",{className:"kanban-runtime-dot"}),u.jsx("span",{className:"kanban-runtime-label",children:e.agentStatus==="tool_active"&&e.currentTool?e.currentTool:O})]}),e.tags.length>0&&u.jsx("div",{className:"kanban-card-tags",children:e.tags.slice(0,3).map(I=>u.jsx("span",{className:"kanban-tag",children:I},I))}),(p||h.length>0)&&u.jsxs("div",{className:"kanban-card-footer",children:[u.jsx("div",{className:"kanban-card-footer-left",children:p&&u.jsx("span",{className:"kanban-priority",style:{color:p.color},title:p.label,children:p.symbol})}),u.jsxs("div",{className:"kanban-assignee-group",children:[h.slice(0,3).map(I=>u.jsx("span",{className:"kanban-assignee-badge",title:I.name,children:I.name.charAt(0).toUpperCase()},I.agent_id)),h.length>3&&u.jsxs("span",{className:"kanban-assignee-badge kanban-assignee-more",children:["+",h.length-3]})]})]})]})})}function Xz({column:e,tasks:t,agents:n,officeMap:i,companyMode:r,selectedTaskId:o,onCardClick:a,onStartTask:c,onQuickCreate:d}){const{t:m,translateMaybe:h}=Vr(),[p,g]=C.useState(!1),[x,v]=C.useState(""),b=C.useRef(!1),w=C.useCallback(()=>{if(b.current)return;b.current=!0;const k=x.trim();k&&d&&d(k),v(""),g(!1)},[x,d]);return u.jsxs("div",{className:"kanban-column",children:[u.jsxs("div",{className:"kanban-column-header",children:[u.jsx("span",{className:"kanban-col-dot",style:{background:e.color}}),u.jsx("span",{className:"kanban-col-label",children:h("kanban.column",e.name)||e.name}),u.jsx("span",{className:"kanban-col-count",children:t.length}),d&&u.jsx("button",{className:"kanban-col-add",title:m("kanban.addTask"),onClick:()=>{b.current=!1,g(!0)},children:"+"})]}),p&&u.jsx("div",{className:"kanban-quick-add",children:u.jsx("input",{className:"kanban-quick-input",value:x,onChange:k=>v(k.target.value),onKeyDown:k=>{k.key==="Enter"&&(k.preventDefault(),w()),k.key==="Escape"&&(b.current=!0,v(""),g(!1))},onBlur:w,placeholder:m("kanban.taskTitle"),autoFocus:!0})}),u.jsx(Gz,{droppableId:e.id,isDropDisabled:!!r,children:k=>u.jsxs("div",{ref:k.innerRef,...k.droppableProps,className:"kanban-col-body",children:[t.length===0&&!p&&u.jsx("div",{className:"kanban-empty",children:u.jsx("span",{className:"kanban-empty-icon",children:"·"})}),t.map((S,j)=>u.jsx(Yz,{task:S,index:j,agents:n,officeMap:i,companyMode:r,isSelected:S.id===o,onClick:a,onStart:c},S.id)),k.placeholder]})})]})}function Kz({columns:e,tasksByColumn:t,agents:n,officeMap:i,store:r,companyMode:o,selectedTaskId:a,onCardClick:c,onStartTask:d,onQuickCreate:m,onMoveTask:h}){const p=g=>{if(o||!g.destination)return;const x=g.source.droppableId,v=g.destination.droppableId;if(x!==v)return;const b=g.destination.index,w=g.draggableId,k=[...t[v]??[]].filter(j=>j.id!==w),S=(t[v]??[]).find(j=>j.id===w);S&&k.splice(b,0,S),k.forEach((j,N)=>{r.moveTask(j.id,v,N)})};return u.jsx(sz,{onDragEnd:p,children:u.jsx("div",{className:"kanban-board",children:e.map(g=>u.jsx(Xz,{column:g,tasks:t[g.id]??[],agents:n,officeMap:i,companyMode:o,selectedTaskId:a,onCardClick:c,onStartTask:!o&&g.name==="Todo"?d:void 0,onQuickCreate:!o&&g.name==="Todo"?m:void 0},g.id))})})}function Zz({agents:e,tasks:t}){const{t:n,translateMaybe:i}=Vr(),r=C.useMemo(()=>{const a=new Map(t.map(c=>[c.id,c]));return e.map(c=>{const d=t.find(h=>h.assigneeIds.includes(c.agent_id)&&h.agentStatus&&h.agentStatus!=="idle"),m=c.current_task_id?a.get(c.current_task_id):void 0;return{agent:c,status:d?.agentStatus??c.runtime_status??"idle",currentTool:d?.currentTool??c.current_tool,taskDisplayId:d?.displayId??m?.displayId}})},[e,t]);if(e.length===0)return null;const o=r.filter(a=>a.status!=="idle").length;return u.jsxs("div",{className:"agent-status-bar",children:[u.jsx("span",{className:"agent-status-summary",children:o>0?n("agent.summary.active",{active:o,total:e.length}):n(e.length!==1?"agent.summary.countPlural":"agent.summary.count",{count:e.length})}),u.jsx("div",{className:"agent-status-chips",children:r.map(({agent:a,status:c,currentTool:d,taskDisplayId:m})=>{const h=c==="tool_active"&&d?d:i("agent.status",c)||h0[c];return u.jsxs("div",{className:`agent-status-chip status-${c}`,title:`${a.name}: ${h}${m?` (${m})`:""}`,children:[u.jsx("span",{className:"agent-status-avatar",children:a.name.charAt(0).toUpperCase()}),u.jsx("span",{className:"agent-status-name",children:a.name}),c!=="idle"&&u.jsxs(u.Fragment,{children:[u.jsx("span",{className:"kanban-runtime-dot"}),u.jsx("span",{className:"agent-status-detail",children:h})]}),m&&u.jsx("span",{className:"agent-status-task",children:m})]},a.agent_id)})})]})}function Qz({boards:e,activeBoardId:t,onSelect:n}){const{translateMaybe:i}=Vr();return u.jsx("div",{className:"board-selector",children:u.jsx("div",{className:"board-tabs",children:e.map(r=>u.jsxs("button",{className:`board-tab${r.id===t?" active":""}`,style:{"--board-color":r.color},onClick:()=>n(r.id),children:[u.jsx("span",{className:"board-tab-dot",style:{background:r.color}}),i("kanban.column",r.name)||r.name]},r.id))})})}function Ti(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function Ts(e){return Array.isArray(e)?e.filter(Ti):[]}function jl(e){return Array.isArray(e)?e.map(t=>String(t??"").trim()).filter(Boolean):[]}function Jz(e){return Ti(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 e8(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:jl(e.member_role_ids),seat_ids:jl(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 t8(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:jl(e.background_work_item_ids),manager_role_ids:jl(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:Ti(e.latest_notification)?e.latest_notification:void 0,manager_digest:Ti(e.manager_digest)?e.manager_digest:void 0,status:String(e.status??"cold")}}function n8(e){const t=Ti(e.metadata)?e.metadata:void 0,n=Ti(e.adaptive)?e.adaptive:t&&Ti(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 i8(e){if(Ti(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:Ti(e.recovery_pointer)?e.recovery_pointer:void 0}}function r8(e){if(Ti(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:Ts(e.architecture_decisions),completed_work_items:Ts(e.completed_work_items),open_issues:jl(e.open_issues),verification_summary:typeof e.verification_summary=="string"?e.verification_summary:void 0,artifact_index:Ts(e.artifact_index),handoff_summaries:Ts(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 s8(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:Ti(e.current_work_item)?e.current_work_item:void 0,latest_notification:Ti(e.latest_notification)?e.latest_notification:void 0,manager_digest:Ti(e.manager_digest)?e.manager_digest:void 0}}function o8(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:Ti(e.metadata)?e.metadata:void 0,created_at:typeof e.created_at=="string"?e.created_at:void 0}}function ON(e){const t=Ti(e)?e:{},n=Ts(t.runtime_teams).map(e8),i=Ts(t.runtime_seats).map(t8),r=Ts(t.work_items).map(n8);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:jl(t.top_level_role_ids),runtime_teams:n,runtime_seats:i,work_items:r,frontier:Jz(t.frontier),project_run:i8(t.project_run),project_dossier:r8(t.project_dossier),seat_digests:Ts(t.seat_digests).map(s8),revision_links:Ts(t.revision_links).map(o8),project_recovery:Ti(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:Ti(t.runtime_policy)?t.runtime_policy:void 0}}function Gm(e){const t=ON(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 a8({state:e,message:t,onRefresh:n,onReadMessage:i,pollIntervalMs:r=3e4,embedded:o=!1}){const[a,c]=C.useState(null),d=C.useRef(n);d.current=n,C.useEffect(()=>{if(!r)return;d.current();const g=window.setInterval(()=>d.current(),r);return()=>window.clearInterval(g)},[r]);const m=C.useMemo(()=>e?.roles?e.roles.reduce((g,x)=>g+x.unread_count,0):0,[e?.roles]),h=g=>{c(g),i(g)},p=o?{fontSize:13,color:"var(--text)"}:{border:"1px solid var(--border, #333)",borderRadius:6,background:"var(--bg-primary, #1e1e1e)",fontSize:13};return u.jsxs("div",{className:"comms-panel",style:p,children:[u.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"8px 12px",borderBottom:"1px solid var(--border, #333)"},children:[u.jsx("span",{style:{fontWeight:600,fontSize:13,flex:1},children:"Agent Communications"}),m>0&&u.jsxs(ju,{color:"var(--accent, #3498db)",children:[m," unread"]}),u.jsx("button",{onClick:n,style:{background:"var(--surface, #2a2a2a)",border:"1px solid var(--border, #444)",color:"var(--text-secondary, #aaa)",fontSize:11,padding:"3px 10px",cursor:"pointer",borderRadius:4},children:"Refresh"})]}),e?e.available?e.empty?u.jsx(Lf,{children:"No communications yet. They will appear once agents start collaborating."}):u.jsx(l8,{state:e,selectedPath:a,onSelectMessage:h}):u.jsxs(Lf,{children:["Not available",e.reason?`: ${e.reason}`:""]}):u.jsx(Lf,{children:"Loading communications..."}),t&&u.jsx(d8,{message:t,onClose:()=>c(null)})]})}function l8({state:e,selectedPath:t,onSelectMessage:n}){const i=(e.roles?.length??0)>0,r=(e.meetings?.length??0)>0,o=(e.recent_failures?.length??0)>0;return u.jsxs("div",{style:{padding:"4px 0"},children:[o&&u.jsx(Hg,{title:"Failures",children:(e.recent_failures||[]).map((a,c)=>u.jsxs("div",{style:{padding:"6px 12px",marginBottom:4,background:"color-mix(in srgb, var(--red, #e74c3c) 6%, transparent)",borderLeft:"3px solid var(--red, #e74c3c)"},children:[u.jsxs("div",{style:{fontWeight:600,fontSize:12},children:[a.operation," · ",a.from_role," → ",a.to_role]}),u.jsx("div",{style:{fontSize:11,color:"var(--text-secondary, #999)",marginTop:2},children:a.reason})]},`${a.recorded_at||"f"}-${c}`))}),i&&u.jsx(Hg,{title:`Inboxes (${e.roles.length})`,children:e.roles.map(a=>u.jsx(c8,{role:a,selectedPath:t,onSelectMessage:n},a.role_id))}),r&&u.jsx(Hg,{title:"Meetings",children:(e.meetings||[]).map(a=>u.jsxs("div",{style:{padding:"6px 12px",marginBottom:4,borderLeft:`3px solid ${a.status==="open"?"var(--accent, #3498db)":"var(--text-dim, #555)"}`},children:[u.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[u.jsx(ju,{color:a.status==="open"?"var(--accent, #3498db)":"var(--text-dim, #555)",children:a.status}),u.jsx("strong",{style:{fontSize:12,flex:1},children:a.topic}),u.jsxs("span",{style:{fontSize:11,color:"var(--text-dim, #888)"},children:[a.entry_count," entries"]})]}),u.jsxs("div",{style:{fontSize:11,color:"var(--text-secondary, #999)",marginTop:3},children:["by ",a.organizer," · ",a.participants.join(", ")]}),a.decision&&u.jsxs("div",{style:{fontSize:11,marginTop:3,color:"var(--green, #27ae60)"},children:["Decision: ",a.decision]})]},a.meeting_id))}),!i&&!r&&!o&&u.jsx(Lf,{children:"No communication activity yet."})]})}function c8({role:e,selectedPath:t,onSelectMessage:n}){const[i,r]=C.useState(!0),o=e.unread_count>0||(e.recent_seen?.length??0)>0||(e.recent_outbox?.length??0)>0,[a,c]=C.useState(e.unread_count>0?"unread":"history"),d=C.useMemo(()=>{switch(a){case"unread":return e.recent_unread||[];case"history":return e.recent_seen||[];case"sent":return e.recent_outbox||[];default:return[]}},[a,e.recent_unread,e.recent_seen,e.recent_outbox]),m=e.role_id.replace(/_/g," ").replace(/\b\w/g,h=>h.toUpperCase());return u.jsxs("div",{style:{marginBottom:2},children:[u.jsxs("div",{onClick:()=>r(h=>!h),style:{display:"flex",alignItems:"center",gap:8,padding:"6px 12px",cursor:"pointer",userSelect:"none",background:i?"var(--surface-hover, rgba(255,255,255,0.03))":"transparent",borderRadius:4},children:[u.jsx("span",{style:{fontSize:10,width:10},children:i?"▼":"▶"}),u.jsx("span",{style:{flex:1,fontWeight:600,fontSize:12},children:m}),e.has_blocking&&u.jsx(ju,{color:"var(--red, #e74c3c)",children:"BLOCKING"}),e.unread_count>0&&u.jsxs(ju,{color:"var(--accent, #3498db)",children:[e.unread_count," new"]}),u.jsxs("span",{style:{fontSize:11,color:"var(--text-dim, #666)"},children:[e.seen_count," read · ",e.outbox_count," sent"]})]}),i&&o&&u.jsxs("div",{style:{paddingLeft:12},children:[u.jsxs("div",{style:{display:"flex",gap:2,padding:"4px 0",borderBottom:"1px solid var(--border, #333)",marginBottom:4},children:[u.jsxs(Fg,{active:a==="unread",onClick:()=>c("unread"),children:["Unread (",e.unread_count,")"]}),u.jsxs(Fg,{active:a==="history",onClick:()=>c("history"),children:["Read (",e.recent_seen?.length??0,")"]}),u.jsxs(Fg,{active:a==="sent",onClick:()=>c("sent"),children:["Sent (",e.recent_outbox?.length??0,")"]})]}),d.length===0?u.jsx("div",{style:{padding:"8px 0",fontSize:11,color:"var(--text-dim, #666)"},children:"No messages."}):u.jsx("div",{style:{maxHeight:280,overflow:"auto"},children:d.map(h=>u.jsx(u8,{message:h,selected:h.path===t,onClick:()=>n(h.path)},h.message_id))})]})]})}function u8({message:e,selected:t,onClick:n}){const r=e.bucket==="sent"?`To: ${e.to||"?"}`:`From: ${e.from}`;return u.jsx("div",{onClick:n,style:{padding:"5px 8px",marginBottom:2,background:t?"var(--accent-soft, #2c4a6b)":"transparent",cursor:"pointer",borderRadius:4,borderLeft:e.blocking?"3px solid var(--red, #e74c3c)":"3px solid transparent",transition:"background 0.1s"},children:u.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[u.jsxs("span",{style:{fontSize:11,color:"var(--text-secondary, #aaa)",minWidth:0,flex:1},children:[u.jsx("strong",{children:r})," ",u.jsx("span",{style:{color:"var(--text, #ddd)"},children:e.subject})]}),e.blocking&&u.jsx("span",{style:{fontSize:9,color:"var(--red, #e74c3c)",fontWeight:700},children:"BLK"}),u.jsx("span",{style:{fontSize:10,color:"var(--text-dim, #666)",flexShrink:0},children:e.sent_at?.slice(11,19)||""})]})})}function d8({message:e,onClose:t}){return u.jsxs("div",{style:{margin:"8px 12px 12px",padding:12,border:"1px solid var(--border, #444)",borderRadius:6,background:"var(--bg-secondary, #262626)",maxHeight:400,overflow:"auto"},children:[u.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:8},children:[u.jsx("strong",{style:{flex:1,fontSize:13},children:e.header.subject||"(no subject)"}),u.jsx("button",{onClick:t,style:{background:"var(--surface, #333)",border:"1px solid var(--border, #444)",color:"var(--text-secondary, #aaa)",fontSize:11,padding:"2px 10px",cursor:"pointer",borderRadius:4},children:"Close"})]}),u.jsxs("div",{style:{fontSize:11,color:"var(--text-secondary, #999)",marginBottom:8,display:"flex",gap:8,flexWrap:"wrap"},children:[u.jsxs("span",{children:["From: ",u.jsx("strong",{children:e.header.from||"?"})]}),u.jsxs("span",{children:["To: ",u.jsx("strong",{children:e.header.to||"?"})]}),u.jsx("span",{children:e.header.sent_at||""}),e.header.blocking&&u.jsx(ju,{color:"var(--red, #e74c3c)",children:"BLOCKING"})]}),u.jsx("pre",{style:{margin:0,fontSize:12,whiteSpace:"pre-wrap",wordBreak:"break-word",color:"var(--text, #ddd)",lineHeight:1.5},children:e.body})]})}function Hg({title:e,children:t}){return u.jsxs("div",{style:{marginBottom:4},children:[u.jsx("div",{style:{fontSize:10,textTransform:"uppercase",letterSpacing:.6,fontWeight:700,color:"var(--text-dim, #777)",padding:"8px 12px 4px"},children:e}),t]})}function ju({color:e,children:t}){return u.jsx("span",{style:{background:e,color:"white",borderRadius:10,padding:"1px 7px",fontSize:10,fontWeight:600,whiteSpace:"nowrap"},children:t})}function Fg({active:e,onClick:t,children:n}){return u.jsx("button",{onClick:t,style:{background:e?"var(--accent-soft, #2c4a6b)":"transparent",border:"none",color:e?"var(--text, #ddd)":"var(--text-secondary, #999)",fontSize:11,padding:"3px 10px",cursor:"pointer",borderRadius:4,fontWeight:e?600:400},children:n})}function Lf({children:e}){return u.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 Qa(e){return Array.isArray(e)?e.filter(t=>t&&typeof t=="object"&&!Array.isArray(t)):[]}function Er(e,t="Pending"){return String(e??"").trim()||t}function Fc(e,t="Team"){const n=String(e??"").trim();return n?n.replace(/[_-]+/g," ").replace(/\b\w/g,i=>i.toUpperCase()):t}function lw(e){return Er(e,"idle").toLowerCase().replace(/[\s_]+/g,"-")}function f8({orgInfoData:e,commsState:t,onStopRun:n,embedded:i=!1}){const r=C.useMemo(()=>Gm(e??null),[e]),o=r.projectRun,a=r.seatDigests,c=a.reduce((b,w)=>{const k=Za(w.manager_digest);return b+Qa(k.pending_decisions).length},0),d=a.reduce((b,w)=>b+Qa(Za(w.manager_digest).actionable_chat).length,0),m=a.reduce((b,w)=>b+Qa(Za(w.manager_digest).protocol_backlog).length,0),h=a.reduce((b,w)=>b+Qa(Za(w.manager_digest).notification_backlog).length,0),p=d+m+h,g=[{label:"Actionable",value:d},{label:"Protocol",value:m},{label:"Notifications",value:h},{label:"Meetings",value:t?.meetings?.length??0},{label:"Failures",value:t?.recent_failures?.length??0}],x=C.useMemo(()=>{const b=new Map;for(const S of a){const j=String(S.seat_id??"").trim();j&&b.set(j,Za(S.manager_digest))}const w=r.runtimeTeams.map(S=>{const j=[String(S.cell_id??"").trim(),String(S.team_id??"").trim(),String(S.team_instance_id??"").trim()].filter(Boolean),N=r.runtimeSeats.filter(D=>j.includes(String(D.team_id??"").trim())||j.includes(String(D.team_instance_id??"").trim())),L=N.reduce((D,O)=>{const T=b.get(String(O.seat_id??"").trim())??{};return D+Qa(T.pending_decisions).length},0),A=N.map(D=>Er(D.latest_notification?.subject??D.latest_notification?.summary,"")).find(Boolean);return{key:String(S.cell_id??S.team_id??S.team_instance_id??S.manager_role_id??"team"),label:Fc(S.team_id??S.cell_id,"Team"),managerLabel:Fc(S.manager_role_id,"Unassigned manager"),status:Er(S.status,"idle"),seatCount:N.length||S.member_role_ids.length,pendingApprovals:L,latestAlert:A,seats:N.map(D=>({key:String(D.seat_id??D.role_session_id??D.role_id),roleLabel:Fc(D.role_id,"Seat"),seatLabel:Er(D.seat_id??D.role_session_id,"Seat"),status:Er(D.resident_status??D.status,"idle")}))}}),k=new Set(w.flatMap(S=>S.seats.map(j=>j.key)));for(const S of r.runtimeSeats){const j=String(S.seat_id??S.role_session_id??S.role_id).trim();if(!j||k.has(j))continue;const N=String(S.team_id??S.team_instance_id??"unassigned").trim()||"unassigned";let L=w.find(D=>D.key===N);L||(L={key:N,label:Fc(N,"Unassigned Team"),managerLabel:"Unassigned manager",status:Er(S.status,"idle"),seatCount:0,pendingApprovals:0,seats:[]},w.push(L));const A=b.get(String(S.seat_id??"").trim())??{};L.pendingApprovals+=Qa(A.pending_decisions).length,L.latestAlert||(L.latestAlert=Er(S.latest_notification?.subject??S.latest_notification?.summary,"")),L.seats.push({key:j,roleLabel:Fc(S.role_id,"Seat"),seatLabel:Er(S.seat_id??S.role_session_id,"Seat"),status:Er(S.resident_status??S.status,"idle")}),L.seatCount=L.seats.length}return w.sort((S,j)=>S.label.localeCompare(j.label))},[r.runtimeTeams,r.runtimeSeats,a]),v=x.map(b=>b.latestAlert).find(Boolean)||"No current alerts";return!o?.run_id&&x.length===0?null:u.jsxs("section",{className:`project-cockpit${i?" embedded":""}`,"aria-label":"Team",children:[u.jsxs("div",{className:"project-cockpit-overview",children:[u.jsxs("div",{className:"project-cockpit-title",children:[u.jsx("span",{className:"project-cockpit-label",children:"Team"}),u.jsx("strong",{children:Er(o?.run_id,"Runtime Team Status")}),n&&u.jsx("button",{className:"project-cockpit-stop-btn",onClick:n,title:"Stop this run",children:"Stop"})]}),u.jsxs("div",{className:"project-cockpit-metrics",children:[u.jsx("span",{children:Er(o?.lifecycle_status,"active")}),u.jsxs("span",{children:["Teams ",x.length]}),u.jsxs("span",{children:["Seats ",r.runtimeSeats.length]}),u.jsxs("span",{children:["Approvals ",c]}),u.jsxs("span",{children:["Unread ",p]}),u.jsxs("span",{children:["Run state ",Er(Za(o?.recovery_pointer).status,"clean")]})]})]}),u.jsxs("div",{className:"project-cockpit-grid project-cockpit-grid--team",children:[u.jsxs("section",{className:"project-cockpit-panel",children:[u.jsxs("header",{children:[u.jsx("h3",{children:"Communication"}),u.jsx("span",{children:g.length})]}),u.jsxs("div",{className:"project-cockpit-summary",children:[g.map(b=>u.jsxs("span",{children:[b.label," ",b.value]},b.label)),u.jsx("div",{className:"project-cockpit-inline-text",children:v})]})]}),u.jsxs("section",{className:"project-cockpit-panel project-cockpit-panel--wide",children:[u.jsxs("header",{children:[u.jsx("h3",{children:"Teams"}),u.jsx("span",{children:x.length})]}),u.jsx("div",{className:"project-cockpit-team-grid",children:x.map(b=>u.jsxs("article",{className:"project-cockpit-team-card",children:[u.jsxs("div",{className:"project-cockpit-team-head",children:[u.jsxs("div",{className:"project-cockpit-team-title",children:[u.jsx("strong",{children:b.label}),u.jsx("span",{children:b.managerLabel})]}),u.jsx("span",{className:`project-cockpit-team-status status-${lw(b.status)}`,children:b.status})]}),u.jsxs("div",{className:"project-cockpit-team-meta",children:[u.jsxs("span",{children:["Seats ",b.seatCount]}),u.jsxs("span",{children:["Approvals ",b.pendingApprovals]}),b.latestAlert&&u.jsx("span",{children:b.latestAlert})]}),u.jsx("div",{className:"project-cockpit-seat-list",children:b.seats.length>0?b.seats.map(w=>u.jsxs("div",{className:"project-cockpit-seat-row",children:[u.jsx("span",{className:"project-cockpit-seat-role",children:w.roleLabel}),u.jsx("span",{className:"project-cockpit-seat-id",children:w.seatLabel}),u.jsx("span",{className:`project-cockpit-seat-status status-${lw(w.status)}`,children:w.status})]},w.key)):u.jsx("div",{className:"project-cockpit-inline-text",children:"No seats assigned yet"})})]},b.key))})]})]})]})}function m8(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 cw={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"}},p8=new Set(["awaiting_human","awaiting_manager_review","awaiting_review","awaiting_peer"]),uw={native:"Native",codex:"Codex",claude_code:"Claude Code",cursor:"Cursor",opencode:"OpenCode"};function h8({session:e,agents:t,onTitleChange:n,onViewOnBoard:i,onStop:r,onComplete:o,onResume:a}){const[c,d]=C.useState(!1),[m,h]=C.useState(e.title),p=C.useRef(null);C.useEffect(()=>{c||h(e.title)},[e.title,c]);const g=C.useCallback(()=>{const V=m.trim();V&&V!==e.title?n(e.taskId,V):h(e.title),d(!1)},[m,e.title,e.taskId,n]),x=C.useCallback(()=>{h(e.title),d(!0),setTimeout(()=>p.current?.select(),0)},[e.title]),v=e.assigneeIds.map(V=>t.find(Q=>Q.agent_id===V)).filter(Boolean),b=String(e.execMode??"").trim().toLowerCase(),w=b==="company"||b==="org"||b==="custom"||!!e.isCompanyRuntime||!!e.workItemProjectionId||!!e.workItemRoleId||!!e.workItemRoleName,k=v.length>0&&!w,S=e.runtimeControlState??(e.status==="running"?"running":"idle"),j=S==="suspending",N=S==="resuming",L=S==="suspended",A=e.status==="running"&&!j&&!L&&!N,D=p8.has(e.status),O=(e.canStop??e.status==="running")&&!j&&!L&&!N,T=(e.canResume??(L||!D&&!A&&e.status!=="done"&&e.status!=="pending"))&&!j&&!N,M=cw[e.status]??cw.pending,I=j?"Stopping":L?"Suspended":N?"Resuming":M.label,H=Cl(e),Y=Om(e),P=ss(e),U=e.displayTool||e.currentTool,[$,G]=C.useState(U||void 0);C.useEffect(()=>{if(!A){G(void 0);return}U&&G(U)},[A,U]);const q=typeof e.pendingPermissionCount=="number"&&e.pendingPermissionCount>0,K=q,W=j?"var(--yellow)":L?"var(--text-secondary)":Y==="tool_active"?"var(--green)":Y==="reflecting"?"var(--yellow)":M.color;return u.jsxs("div",{className:"task-header-shell",children:[u.jsxs("div",{className:"task-header-bar",children:[u.jsxs("div",{className:"task-header-left",children:[c?u.jsx("input",{ref:p,className:"task-title-input",value:m,onChange:V=>h(V.target.value),onBlur:g,onKeyDown:V=>{V.key==="Enter"&&g(),V.key==="Escape"&&(h(e.title),d(!1))}}):u.jsx("span",{className:"task-title",onClick:x,title:"Click to edit",children:e.title}),u.jsxs("span",{className:"task-status-pill","data-status":e.status,"data-working":P?"true":"false",children:[u.jsx("span",{className:"task-status-dot",style:{background:W}}),I]}),A&&$&&u.jsxs("span",{className:"task-tool-pill",children:[u.jsx(Rm,{}),u.jsx("code",{children:$}),e.currentTool&&typeof e.toolElapsedMs=="number"&&e.toolElapsedMs>0&&u.jsxs("span",{children:[e.toolElapsedMs,"ms"]})]}),e.lastToolSummary&&u.jsx("span",{className:"task-projection-pill",title:e.lastToolSummary,children:e.lastToolSummary.slice(0,48)}),H&&u.jsx("span",{className:"task-role-pill",title:`Role: ${H}`,children:H}),e.employeeAssignment?.name&&u.jsxs("span",{className:"task-employee-pill",title:`Employee: ${e.employeeAssignment.name}${e.employeeAssignment.category?` (${e.employeeAssignment.category})`:""}`,children:[u.jsx("span",{className:"task-employee-icon",children:"👤"}),e.employeeAssignment.name]}),e.selectedExecutionAgent&&u.jsxs("span",{className:"task-agent-pill",title:`Execution Agent: ${uw[e.selectedExecutionAgent]??e.selectedExecutionAgent}`,children:[u.jsx("span",{className:"task-agent-icon",children:"⚙"}),uw[e.selectedExecutionAgent]??e.selectedExecutionAgent]})]}),u.jsxs("div",{className:"task-header-right",children:[k&&u.jsx("div",{className:"task-header-avatars",children:v.slice(0,3).map(V=>u.jsx("span",{className:"task-header-avatar",title:V.name,children:V.name.charAt(0).toUpperCase()},V.agent_id))}),u.jsx("span",{className:"task-header-time",title:new Date(e.createdAt).toLocaleString(),children:m8(e.createdAt)}),(O||j)&&r&&u.jsxs("button",{className:"task-stop-btn",onClick:r,title:"Stop task",disabled:!O,children:[u.jsx(pE,{}),u.jsx("span",{children:j?"Stopping...":"Stop"})]}),T&&a&&e.status!=="done"&&u.jsx("button",{className:"task-resume-btn",onClick:a,title:"Resume prior runtime (re-awaken original team, no new plan)",children:u.jsx("span",{children:"Continue"})}),o&&u.jsxs("button",{className:"task-done-btn",onClick:o,title:"Mark task as done",children:[u.jsx($l,{}),u.jsx("span",{children:"Done"})]}),i&&u.jsx("button",{className:"task-board-btn",onClick:i,title:"View on Board",children:u.jsx(V4,{})})]})]}),K&&u.jsx("div",{className:"task-header-metrics",children:q&&u.jsxs("div",{className:"task-runtime-metric task-runtime-metric-approval",title:"Pending approvals",children:[u.jsx("span",{className:"task-runtime-metric-label",children:"Approvals"}),u.jsx("span",{className:"task-runtime-metric-value",children:e.pendingPermissionCount})]})})]})}function Qr(e){return String(e??"").trim().replace(/\s+/g," ").slice(0,96)}function LN(e){const t=e.itemId||e.streamId||e.toolCallId||e.permissionGroupKey;if(t)return`${e.type}:${Qr(e.turnId)}:${Qr(t)}`;if(e.type==="thinking"||e.type==="assistant")return`${e.type}:${Qr(e.turnId)||Qr(e.executionMode)||"stream"}:${Number.isFinite(e.timestamp)?e.timestamp:""}`;if(e.type==="tool_call")return`tool:${Qr(e.turnId)||"turnless"}:${Qr(e.summary)||"tool"}:${Number.isFinite(e.timestamp)?e.timestamp:""}`;if(e.turnId&&typeof e.seq=="number")return`${e.type}:${Qr(e.turnId)}:seq:${e.seq}`;const n=[e.type,Qr(e.turnId)];return typeof e.seq=="number"&&Number.isFinite(e.seq)&&n.push(`seq-${e.seq}`),n.push(Number.isFinite(e.timestamp)?e.timestamp:"",Qr(e.summary),Qr(e.detail)),n.join(":")}const g8=new Set(["done","failed","cancelled"]),dw=new Set(["thinking","tool_call","autonomy","needs_input","verification"]),lm={thinking:{icon:u.jsx(z4,{}),color:"var(--accent)",label:"Thinking"},assistant:{icon:u.jsx(vl,{}),color:"var(--accent)",label:"Reply"},tool_call:{icon:u.jsx(Rm,{}),color:"var(--green)",label:"Tool"},autonomy:{icon:u.jsx(yu,{}),color:"var(--yellow)",label:"Autonomy"},handoff:{icon:u.jsx(gE,{}),color:"var(--accent)",label:"Handoff"},gate_result:{icon:u.jsx(U4,{}),color:"var(--green)",label:"Gate"},status_change:{icon:u.jsx(uS,{}),color:"var(--text-secondary)",label:"Status"},work_item_started:{icon:u.jsx(Mm,{}),color:"var(--accent)",label:"Work item"},gate_approved:{icon:u.jsx(G4,{}),color:"var(--green)",label:"Gate Passed"},gate_rejected:{icon:u.jsx(q4,{}),color:"var(--red)",label:"Rejected"},awaiting_manager_review:{icon:u.jsx(Pc,{}),color:"var(--yellow)",label:"Awaiting Manager Review"},awaiting_human:{icon:u.jsx(Pc,{}),color:"var(--yellow)",label:"Awaiting Human Review"},awaiting_review:{icon:u.jsx(Pc,{}),color:"var(--yellow)",label:"Awaiting Review"},awaiting_peer:{icon:u.jsx(Pc,{}),color:"var(--yellow)",label:"Awaiting Peer"},work_item_failed:{icon:u.jsx(uS,{}),color:"var(--red)",label:"Failed"},deadlock:{icon:u.jsx(qf,{}),color:"var(--red)",label:"Deadlock"},needs_input:{icon:u.jsx(Pc,{}),color:"var(--yellow)",label:"Needs Input"},verification:{icon:u.jsx(yu,{}),color:"var(--accent)",label:"Verification"}},Vg=5;function Vc(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 zf(e){if(typeof e=="string"){const t=e.trim();if(t.startsWith("{")&&t.endsWith("}")||t.startsWith("[")&&t.endsWith("]"))try{return zf(JSON.parse(t))}catch{return e}return e}return Array.isArray(e)?e.map(zf):e&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([t,n])=>[t,zf(n)])):e}function y8(e){const t=e.trim();if(!t||!t.startsWith("{")&&!t.startsWith("["))return e;try{return JSON.stringify(zf(JSON.parse(t)),null,2)}catch{return e}}function El({entries:e,agentStatus:t,currentTool:n,toolElapsedMs:i,lastToolSummary:r,sessionStatus:o,expandedByDefault:a}){const[c,d]=C.useState(!!a),m=!!o&&g8.has(o),h=!m&&t==="reflecting",p=!m&&t==="tool_active",g=h||p,x=C.useMemo(()=>e,[e]),v=C.useMemo(()=>c||x.length<=Vg?x:x.slice(-Vg),[x,c]),b=x.length-v.length;return x.length===0&&!g&&!m?null:u.jsxs("div",{className:"ptl-block",children:[g&&u.jsxs("div",{className:`ptl-live ${p?"ptl-live-tool":"ptl-live-think"}`,children:[u.jsx("span",{className:"ptl-live-icon",children:p?u.jsx(Rm,{}):u.jsx(vl,{})}),u.jsx("span",{className:"ptl-live-text",children:p?"Running":"Thinking"}),p&&n&&u.jsx("code",{className:"ptl-live-tool-name",children:n}),p&&typeof i=="number"&&i>0&&u.jsx("span",{className:"ptl-live-elapsed",children:i<1e3?`${i}ms`:`${(i/1e3).toFixed(1)}s`}),u.jsx("span",{className:"ptl-live-shimmer"})]}),r&&!p&&u.jsxs("div",{className:"ptl-last-tool-summary",children:[u.jsx("span",{className:"ptl-last-tool-label",children:"Last tool result:"}),u.jsx("span",{className:"ptl-last-tool-text",children:r})]}),b>0&&u.jsxs("button",{className:"ptl-expand",onClick:()=>d(!0),children:[u.jsx(rs,{}),u.jsxs("span",{children:[b," earlier step",b>1?"s":""]})]}),v.length>0&&u.jsx("div",{className:"ptl-timeline",children:v.map((w,k)=>{const S=k===v.length-1,j=lm[w.type]||lm.status_change;return u.jsxs("div",{className:`ptl-entry${S?" ptl-entry-last":""}`,children:[u.jsxs("div",{className:"ptl-connector",children:[u.jsx("div",{className:"ptl-dot",style:{color:j.color},children:j.icon}),!S&&u.jsx("div",{className:"ptl-line"})]}),u.jsx("div",{className:"ptl-content",children:u.jsx(zN,{entry:w})})]},LN(w))})}),m&&!g&&u.jsxs("div",{className:`ptl-completion ptl-completion-${o}`,children:[u.jsx("span",{className:"ptl-completion-icon",children:o==="done"?"✓":o==="failed"?"✗":"—"}),u.jsx("span",{className:"ptl-completion-text",children:o==="done"?"Completed":o==="failed"?"Failed":"Cancelled"})]}),c&&x.length>Vg&&u.jsxs("button",{className:"ptl-expand",onClick:()=>d(!1),children:[u.jsx(rs,{down:!0}),u.jsx("span",{children:"Show less"})]}),!c&&b>0&&u.jsxs("button",{className:"ptl-expand",onClick:()=>d(!0),children:[u.jsx(rs,{}),u.jsxs("span",{children:["Show more (",b," earlier step",b>1?"s":"",")"]})]})]})}const zN=Tt.memo(function({entry:t}){const[n,i]=C.useState(!1),r=lm[t.type]||lm.status_change,o=t.type==="tool_call"&&!!t.detail;if(t.type==="tool_call")return u.jsxs("div",{className:`ptl-tool-card${n?" expanded":""}`,children:[u.jsxs("button",{className:`ptl-row ptl-tool-toggle${o?" clickable":""}`,onClick:()=>{o&&i(a=>!a)},type:"button",children:[u.jsx("span",{className:"ptl-label",style:{color:r.color},children:r.label}),u.jsx("code",{className:"ptl-tool-badge",children:t.summary}),u.jsx("span",{className:"ptl-time",children:Vc(t.timestamp)}),o&&u.jsx("span",{className:"ptl-tool-chevron",children:u.jsx(rs,{down:n})})]}),n&&t.detail&&u.jsx("pre",{className:"ptl-tool-card-detail",children:y8(t.detail)})]});if(t.type==="autonomy"){const a=!!t.detail;return u.jsxs("div",{className:`ptl-tool-card ptl-autonomy-card${n?" expanded":""}`,children:[u.jsxs("button",{className:`ptl-row ptl-tool-toggle${a?" clickable":""}`,onClick:()=>{a&&i(c=>!c)},type:"button",children:[u.jsx("span",{className:"ptl-label",style:{color:r.color},children:r.label}),u.jsx("code",{className:"ptl-tool-badge",children:t.summary}),u.jsx("span",{className:"ptl-time",children:Vc(t.timestamp)}),a&&u.jsx("span",{className:"ptl-tool-chevron",children:u.jsx(rs,{down:n})})]}),n&&t.detail&&u.jsx("div",{className:"ptl-tool-card-detail ptl-autonomy-detail",children:t.detail})]})}if(t.type==="thinking"||t.type==="assistant")return u.jsxs("div",{className:"ptl-tool-card",children:[u.jsxs("button",{className:"ptl-row ptl-tool-toggle clickable",onClick:()=>i(a=>!a),type:"button",children:[u.jsx("span",{className:"ptl-label",style:{color:r.color},children:r.label}),u.jsx("span",{className:"ptl-summary",children:t.summary}),u.jsx("span",{className:"ptl-time",children:Vc(t.timestamp)}),u.jsx("span",{className:"ptl-tool-chevron",children:u.jsx(rs,{down:n})})]}),n&&u.jsx("div",{className:"ptl-tool-card-detail ptl-thinking-detail",children:t.detail||t.summary})]});if(t.type==="verification"){const a=!!t.detail;return u.jsxs("div",{className:`ptl-tool-card ptl-verification-card${n?" expanded":""}`,children:[u.jsxs("button",{className:`ptl-row ptl-tool-toggle${a?" clickable":""}`,onClick:()=>{a&&i(c=>!c)},type:"button",children:[u.jsx("span",{className:"ptl-label",style:{color:r.color},children:r.label}),u.jsx("span",{className:"ptl-summary",children:t.summary||"Verification"}),u.jsx("span",{className:"ptl-time",children:Vc(t.timestamp)}),a&&u.jsx("span",{className:"ptl-tool-chevron",children:u.jsx(rs,{down:n})})]}),n&&t.detail&&u.jsx("div",{className:"ptl-tool-card-detail ptl-verification-detail",children:t.detail})]})}return u.jsxs(u.Fragment,{children:[u.jsxs("div",{className:"ptl-row",children:[u.jsx("span",{className:"ptl-label",style:{color:r.color},children:r.label}),u.jsx("span",{className:"ptl-summary",children:t.summary}),u.jsx("span",{className:"ptl-time",children:Vc(t.timestamp)})]}),t.detail&&u.jsx("div",{className:"ptl-detail",children:t.detail})]})});function x8(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const v8=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,b8=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,_8={};function fw(e,t){return(_8.jsx?b8:v8).test(e)}const k8=/[ \t\n\f\r]/g;function S8(e){return typeof e=="object"?e.type==="text"?mw(e.value):!1:mw(e)}function mw(e){return e.replace(k8,"")===""}class Hu{constructor(t,n,i){this.normal=n,this.property=t,i&&(this.space=i)}}Hu.prototype.normal={};Hu.prototype.property={};Hu.prototype.space=void 0;function PN(e,t){const n={},i={};for(const r of e)Object.assign(n,r.property),Object.assign(i,r.normal);return new Hu(n,i,t)}function tv(e){return e.toLowerCase()}class Ji{constructor(t,n){this.attribute=n,this.property=t}}Ji.prototype.attribute="";Ji.prototype.booleanish=!1;Ji.prototype.boolean=!1;Ji.prototype.commaOrSpaceSeparated=!1;Ji.prototype.commaSeparated=!1;Ji.prototype.defined=!1;Ji.prototype.mustUseProperty=!1;Ji.prototype.number=!1;Ji.prototype.overloadedBoolean=!1;Ji.prototype.property="";Ji.prototype.spaceSeparated=!1;Ji.prototype.space=void 0;let w8=0;const Bt=ha(),li=ha(),nv=ha(),Oe=ha(),Rn=ha(),ml=ha(),lr=ha();function ha(){return 2**++w8}const iv=Object.freeze(Object.defineProperty({__proto__:null,boolean:Bt,booleanish:li,commaOrSpaceSeparated:lr,commaSeparated:ml,number:Oe,overloadedBoolean:nv,spaceSeparated:Rn},Symbol.toStringTag,{value:"Module"})),Ug=Object.keys(iv);class y0 extends Ji{constructor(t,n,i,r){let o=-1;if(super(t,n),pw(this,"space",r),typeof i=="number")for(;++o4&&n.slice(0,4)==="data"&&I8.test(t)){if(t.charAt(4)==="-"){const o=t.slice(5).replace(hw,A8);i="data"+o.charAt(0).toUpperCase()+o.slice(1)}else{const o=t.slice(4);if(!hw.test(o)){let a=o.replace(N8,R8);a.charAt(0)!=="-"&&(a="-"+a),t="data"+a}}r=y0}return new r(i,t)}function R8(e){return"-"+e.toLowerCase()}function A8(e){return e.charAt(1).toUpperCase()}const M8=PN([BN,C8,FN,VN,UN],"html"),x0=PN([BN,j8,FN,VN,UN],"svg");function D8(e){return e.join(" ").trim()}var Ja={},Gg,gw;function O8(){if(gw)return Gg;gw=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,t=/\n/g,n=/^\s*/,i=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,r=/^:\s*/,o=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,a=/^[;\s]*/,c=/^\s+|\s+$/g,d=` +`,m="/",h="*",p="",g="comment",x="declaration";function v(w,k){if(typeof w!="string")throw new TypeError("First argument must be a string");if(!w)return[];k=k||{};var S=1,j=1;function N(P){var U=P.match(t);U&&(S+=U.length);var $=P.lastIndexOf(d);j=~$?P.length-$:j+P.length}function L(){var P={line:S,column:j};return function(U){return U.position=new A(P),T(),U}}function A(P){this.start=P,this.end={line:S,column:j},this.source=k.source}A.prototype.content=w;function D(P){var U=new Error(k.source+":"+S+":"+j+": "+P);if(U.reason=P,U.filename=k.source,U.line=S,U.column=j,U.source=w,!k.silent)throw U}function O(P){var U=P.exec(w);if(U){var $=U[0];return N($),w=w.slice($.length),U}}function T(){O(n)}function M(P){var U;for(P=P||[];U=I();)U!==!1&&P.push(U);return P}function I(){var P=L();if(!(m!=w.charAt(0)||h!=w.charAt(1))){for(var U=2;p!=w.charAt(U)&&(h!=w.charAt(U)||m!=w.charAt(U+1));)++U;if(U+=2,p===w.charAt(U-1))return D("End of comment missing");var $=w.slice(2,U-2);return j+=2,N($),w=w.slice(U),j+=2,P({type:g,comment:$})}}function H(){var P=L(),U=O(i);if(U){if(I(),!O(r))return D("property missing ':'");var $=O(o),G=P({type:x,property:b(U[0].replace(e,p)),value:$?b($[0].replace(e,p)):p});return O(a),G}}function Y(){var P=[];M(P);for(var U;U=H();)U!==!1&&(P.push(U),M(P));return P}return T(),Y()}function b(w){return w?w.replace(c,p):p}return Gg=v,Gg}var yw;function L8(){if(yw)return Ja;yw=1;var e=Ja&&Ja.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Ja,"__esModule",{value:!0}),Ja.default=n;const t=e(O8());function n(i,r){let o=null;if(!i||typeof i!="string")return o;const a=(0,t.default)(i),c=typeof r=="function";return a.forEach(d=>{if(d.type!=="declaration")return;const{property:m,value:h}=d;c?r(m,h,d):h&&(o=o||{},o[m]=h)}),o}return Ja}var Uc={},xw;function z8(){if(xw)return Uc;xw=1,Object.defineProperty(Uc,"__esModule",{value:!0}),Uc.camelCase=void 0;var e=/^--[a-zA-Z0-9_-]+$/,t=/-([a-z])/g,n=/^[^-]+$/,i=/^-(webkit|moz|ms|o|khtml)-/,r=/^-(ms)-/,o=function(m){return!m||n.test(m)||e.test(m)},a=function(m,h){return h.toUpperCase()},c=function(m,h){return"".concat(h,"-")},d=function(m,h){return h===void 0&&(h={}),o(m)?m:(m=m.toLowerCase(),h.reactCompat?m=m.replace(r,c):m=m.replace(i,c),m.replace(t,a))};return Uc.camelCase=d,Uc}var Gc,vw;function P8(){if(vw)return Gc;vw=1;var e=Gc&&Gc.__importDefault||function(r){return r&&r.__esModule?r:{default:r}},t=e(L8()),n=z8();function i(r,o){var a={};return!r||typeof r!="string"||(0,t.default)(r,function(c,d){c&&d&&(a[(0,n.camelCase)(c,o)]=d)}),a}return i.default=i,Gc=i,Gc}var B8=P8();const $8=pa(B8),GN=qN("end"),v0=qN("start");function qN(e){return t;function t(n){const i=n&&n.position&&n.position[e]||{};if(typeof i.line=="number"&&i.line>0&&typeof i.column=="number"&&i.column>0)return{line:i.line,column:i.column,offset:typeof i.offset=="number"&&i.offset>-1?i.offset:void 0}}}function H8(e){const t=v0(e),n=GN(e);if(t&&n)return{start:t,end:n}}function uu(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?bw(e.position):"start"in e||"end"in e?bw(e):"line"in e||"column"in e?rv(e):""}function rv(e){return _w(e&&e.line)+":"+_w(e&&e.column)}function bw(e){return rv(e&&e.start)+"-"+rv(e&&e.end)}function _w(e){return e&&typeof e=="number"?e:1}class Li extends Error{constructor(t,n,i){super(),typeof n=="string"&&(i=n,n=void 0);let r="",o={},a=!1;if(n&&("line"in n&&"column"in n?o={place:n}:"start"in n&&"end"in n?o={place:n}:"type"in n?o={ancestors:[n],place:n.position}:o={...n}),typeof t=="string"?r=t:!o.cause&&t&&(a=!0,r=t.message,o.cause=t),!o.ruleId&&!o.source&&typeof i=="string"){const d=i.indexOf(":");d===-1?o.ruleId=i:(o.source=i.slice(0,d),o.ruleId=i.slice(d+1))}if(!o.place&&o.ancestors&&o.ancestors){const d=o.ancestors[o.ancestors.length-1];d&&(o.place=d.position)}const c=o.place&&"start"in o.place?o.place.start:o.place;this.ancestors=o.ancestors||void 0,this.cause=o.cause||void 0,this.column=c?c.column:void 0,this.fatal=void 0,this.file="",this.message=r,this.line=c?c.line:void 0,this.name=uu(o.place)||"1:1",this.place=o.place||void 0,this.reason=this.message,this.ruleId=o.ruleId||void 0,this.source=o.source||void 0,this.stack=a&&o.cause&&typeof o.cause.stack=="string"?o.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}Li.prototype.file="";Li.prototype.name="";Li.prototype.reason="";Li.prototype.message="";Li.prototype.stack="";Li.prototype.column=void 0;Li.prototype.line=void 0;Li.prototype.ancestors=void 0;Li.prototype.cause=void 0;Li.prototype.fatal=void 0;Li.prototype.place=void 0;Li.prototype.ruleId=void 0;Li.prototype.source=void 0;const b0={}.hasOwnProperty,F8=new Map,V8=/[A-Z]/g,U8=new Set(["table","tbody","thead","tfoot","tr"]),G8=new Set(["td","th"]),WN="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function q8(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let i;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");i=eP(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");i=J8(n,t.jsx,t.jsxs)}const r={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:i,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?x0:M8,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},o=YN(r,e,void 0);return o&&typeof o!="string"?o:r.create(e,r.Fragment,{children:o||void 0},void 0)}function YN(e,t,n){if(t.type==="element")return W8(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return Y8(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return K8(e,t,n);if(t.type==="mdxjsEsm")return X8(e,t);if(t.type==="root")return Z8(e,t,n);if(t.type==="text")return Q8(e,t)}function W8(e,t,n){const i=e.schema;let r=i;t.tagName.toLowerCase()==="svg"&&i.space==="html"&&(r=x0,e.schema=r),e.ancestors.push(t);const o=KN(e,t.tagName,!1),a=tP(e,t);let c=k0(e,t);return U8.has(t.tagName)&&(c=c.filter(function(d){return typeof d=="string"?!S8(d):!0})),XN(e,a,o,t),_0(a,c),e.ancestors.pop(),e.schema=i,e.create(t,o,a,n)}function Y8(e,t){if(t.data&&t.data.estree&&e.evaluater){const i=t.data.estree.body[0];return i.type,e.evaluater.evaluateExpression(i.expression)}Eu(e,t.position)}function X8(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);Eu(e,t.position)}function K8(e,t,n){const i=e.schema;let r=i;t.name==="svg"&&i.space==="html"&&(r=x0,e.schema=r),e.ancestors.push(t);const o=t.name===null?e.Fragment:KN(e,t.name,!0),a=nP(e,t),c=k0(e,t);return XN(e,a,o,t),_0(a,c),e.ancestors.pop(),e.schema=i,e.create(t,o,a,n)}function Z8(e,t,n){const i={};return _0(i,k0(e,t)),e.create(t,e.Fragment,i,n)}function Q8(e,t){return t.value}function XN(e,t,n,i){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=i)}function _0(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function J8(e,t,n){return i;function i(r,o,a,c){const m=Array.isArray(a.children)?n:t;return c?m(o,a,c):m(o,a)}}function eP(e,t){return n;function n(i,r,o,a){const c=Array.isArray(o.children),d=v0(i);return t(r,o,a,c,{columnNumber:d?d.column-1:void 0,fileName:e,lineNumber:d?d.line:void 0},void 0)}}function tP(e,t){const n={};let i,r;for(r in t.properties)if(r!=="children"&&b0.call(t.properties,r)){const o=iP(e,r,t.properties[r]);if(o){const[a,c]=o;e.tableCellAlignToStyle&&a==="align"&&typeof c=="string"&&G8.has(t.tagName)?i=c:n[a]=c}}if(i){const o=n.style||(n.style={});o[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=i}return n}function nP(e,t){const n={};for(const i of t.attributes)if(i.type==="mdxJsxExpressionAttribute")if(i.data&&i.data.estree&&e.evaluater){const o=i.data.estree.body[0];o.type;const a=o.expression;a.type;const c=a.properties[0];c.type,Object.assign(n,e.evaluater.evaluateExpression(c.argument))}else Eu(e,t.position);else{const r=i.name;let o;if(i.value&&typeof i.value=="object")if(i.value.data&&i.value.data.estree&&e.evaluater){const c=i.value.data.estree.body[0];c.type,o=e.evaluater.evaluateExpression(c.expression)}else Eu(e,t.position);else o=i.value===null?!0:i.value;n[r]=o}return n}function k0(e,t){const n=[];let i=-1;const r=e.passKeys?new Map:F8;for(;++ir?0:r+t:t=t>r?r:t,n=n>0?n:0,i.length<1e4)a=Array.from(i),a.unshift(t,n),e.splice(...a);else for(n&&e.splice(t,n);o0?(pr(e,e.length,0,t),e):t}const ww={}.hasOwnProperty;function QN(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 $r(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Hi=jo(/[A-Za-z]/),Oi=jo(/[\dA-Za-z]/),fP=jo(/[#-'*+\--9=?A-Z^-~]/);function cm(e){return e!==null&&(e<32||e===127)}const sv=jo(/\d/),mP=jo(/[\dA-Fa-f]/),pP=jo(/[!-/:-@[-`{-~]/);function pt(e){return e!==null&&e<-2}function En(e){return e!==null&&(e<0||e===32)}function Yt(e){return e===-2||e===-1||e===32}const qm=jo(new RegExp("\\p{P}|\\p{S}","u")),ca=jo(/\s/);function jo(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function Gl(e){const t=[];let n=-1,i=0,r=0;for(;++n55295&&o<57344){const c=e.charCodeAt(n+1);o<56320&&c>56319&&c<57344?(a=String.fromCharCode(o,c),r=1):a="�"}else a=String.fromCharCode(o);a&&(t.push(e.slice(i,n),encodeURIComponent(a)),i=n+r+1,a=""),r&&(n+=r,r=0)}return t.join("")+e.slice(i)}function on(e,t,n,i){const r=i?i-1:Number.POSITIVE_INFINITY;let o=0;return a;function a(d){return Yt(d)?(e.enter(n),c(d)):t(d)}function c(d){return Yt(d)&&o++a))return;const D=t.events.length;let O=D,T,M;for(;O--;)if(t.events[O][0]==="exit"&&t.events[O][1].type==="chunkFlow"){if(T){M=t.events[O][1].end;break}T=!0}for(k(i),A=D;Aj;){const L=n[N];t.containerState=L[1],L[0].exit.call(t,e)}n.length=j}function S(){r.write([null]),o=void 0,r=void 0,t.containerState._closeFlow=void 0}}function vP(e,t,n){return on(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Nl(e){if(e===null||En(e)||ca(e))return 1;if(qm(e))return 2}function Wm(e,t,n){const i=[];let r=-1;for(;++r1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const p={...e[i][1].end},g={...e[n][1].start};jw(p,-d),jw(g,d),a={type:d>1?"strongSequence":"emphasisSequence",start:p,end:{...e[i][1].end}},c={type:d>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:g},o={type:d>1?"strongText":"emphasisText",start:{...e[i][1].end},end:{...e[n][1].start}},r={type:d>1?"strong":"emphasis",start:{...a.start},end:{...c.end}},e[i][1].end={...a.start},e[n][1].start={...c.end},m=[],e[i][1].end.offset-e[i][1].start.offset&&(m=Nr(m,[["enter",e[i][1],t],["exit",e[i][1],t]])),m=Nr(m,[["enter",r,t],["enter",a,t],["exit",a,t],["enter",o,t]]),m=Nr(m,Wm(t.parser.constructs.insideSpan.null,e.slice(i+1,n),t)),m=Nr(m,[["exit",o,t],["enter",c,t],["exit",c,t],["exit",r,t]]),e[n][1].end.offset-e[n][1].start.offset?(h=2,m=Nr(m,[["enter",e[n][1],t],["exit",e[n][1],t]])):h=0,pr(e,i-1,n-i+3,m),n=i+m.length-h-2;break}}for(n=-1;++n0&&Yt(A)?on(e,S,"linePrefix",o+1)(A):S(A)}function S(A){return A===null||pt(A)?e.check(Ew,b,N)(A):(e.enter("codeFlowValue"),j(A))}function j(A){return A===null||pt(A)?(e.exit("codeFlowValue"),S(A)):(e.consume(A),j)}function N(A){return e.exit("codeFenced"),t(A)}function L(A,D,O){let T=0;return M;function M(U){return A.enter("lineEnding"),A.consume(U),A.exit("lineEnding"),I}function I(U){return A.enter("codeFencedFence"),Yt(U)?on(A,H,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(U):H(U)}function H(U){return U===c?(A.enter("codeFencedFenceSequence"),Y(U)):O(U)}function Y(U){return U===c?(T++,A.consume(U),Y):T>=a?(A.exit("codeFencedFenceSequence"),Yt(U)?on(A,P,"whitespace")(U):P(U)):O(U)}function P(U){return U===null||pt(U)?(A.exit("codeFencedFence"),D(U)):O(U)}}}function RP(e,t,n){const i=this;return r;function r(a){return a===null?n(a):(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),o)}function o(a){return i.parser.lazy[i.now().line]?n(a):t(a)}}const Wg={name:"codeIndented",tokenize:MP},AP={partial:!0,tokenize:DP};function MP(e,t,n){const i=this;return r;function r(m){return e.enter("codeIndented"),on(e,o,"linePrefix",5)(m)}function o(m){const h=i.events[i.events.length-1];return h&&h[1].type==="linePrefix"&&h[2].sliceSerialize(h[1],!0).length>=4?a(m):n(m)}function a(m){return m===null?d(m):pt(m)?e.attempt(AP,a,d)(m):(e.enter("codeFlowValue"),c(m))}function c(m){return m===null||pt(m)?(e.exit("codeFlowValue"),a(m)):(e.consume(m),c)}function d(m){return e.exit("codeIndented"),t(m)}}function DP(e,t,n){const i=this;return r;function r(a){return i.parser.lazy[i.now().line]?n(a):pt(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),r):on(e,o,"linePrefix",5)(a)}function o(a){const c=i.events[i.events.length-1];return c&&c[1].type==="linePrefix"&&c[2].sliceSerialize(c[1],!0).length>=4?t(a):pt(a)?r(a):n(a)}}const OP={name:"codeText",previous:zP,resolve:LP,tokenize:PP};function LP(e){let t=e.length-4,n=3,i,r;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(i=n;++i=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-i+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-i+this.left.length).reverse())}splice(t,n,i){const r=n||0;this.setCursor(Math.trunc(t));const o=this.right.splice(this.right.length-r,Number.POSITIVE_INFINITY);return i&&qc(this.left,i),o.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),qc(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),qc(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(a):e.interrupt(i.parser.constructs.flow,n,t)(a)}}function rI(e,t,n,i,r,o,a,c,d){const m=d||Number.POSITIVE_INFINITY;let h=0;return p;function p(k){return k===60?(e.enter(i),e.enter(r),e.enter(o),e.consume(k),e.exit(o),g):k===null||k===32||k===41||cm(k)?n(k):(e.enter(i),e.enter(a),e.enter(c),e.enter("chunkString",{contentType:"string"}),b(k))}function g(k){return k===62?(e.enter(o),e.consume(k),e.exit(o),e.exit(r),e.exit(i),t):(e.enter(c),e.enter("chunkString",{contentType:"string"}),x(k))}function x(k){return k===62?(e.exit("chunkString"),e.exit(c),g(k)):k===null||k===60||pt(k)?n(k):(e.consume(k),k===92?v:x)}function v(k){return k===60||k===62||k===92?(e.consume(k),x):x(k)}function b(k){return!h&&(k===null||k===41||En(k))?(e.exit("chunkString"),e.exit(c),e.exit(a),e.exit(i),t(k)):h999||x===null||x===91||x===93&&!d||x===94&&!c&&"_hiddenFootnoteSupport"in a.parser.constructs?n(x):x===93?(e.exit(o),e.enter(r),e.consume(x),e.exit(r),e.exit(i),t):pt(x)?(e.enter("lineEnding"),e.consume(x),e.exit("lineEnding"),h):(e.enter("chunkString",{contentType:"string"}),p(x))}function p(x){return x===null||x===91||x===93||pt(x)||c++>999?(e.exit("chunkString"),h(x)):(e.consume(x),d||(d=!Yt(x)),x===92?g:p)}function g(x){return x===91||x===92||x===93?(e.consume(x),c++,p):p(x)}}function oI(e,t,n,i,r,o){let a;return c;function c(g){return g===34||g===39||g===40?(e.enter(i),e.enter(r),e.consume(g),e.exit(r),a=g===40?41:g,d):n(g)}function d(g){return g===a?(e.enter(r),e.consume(g),e.exit(r),e.exit(i),t):(e.enter(o),m(g))}function m(g){return g===a?(e.exit(o),d(a)):g===null?n(g):pt(g)?(e.enter("lineEnding"),e.consume(g),e.exit("lineEnding"),on(e,m,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),h(g))}function h(g){return g===a||g===null||pt(g)?(e.exit("chunkString"),m(g)):(e.consume(g),g===92?p:h)}function p(g){return g===a||g===92?(e.consume(g),h):h(g)}}function du(e,t){let n;return i;function i(r){return pt(r)?(e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),n=!0,i):Yt(r)?on(e,i,n?"linePrefix":"lineSuffix")(r):t(r)}}const qP={name:"definition",tokenize:YP},WP={partial:!0,tokenize:XP};function YP(e,t,n){const i=this;let r;return o;function o(x){return e.enter("definition"),a(x)}function a(x){return sI.call(i,e,c,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(x)}function c(x){return r=$r(i.sliceSerialize(i.events[i.events.length-1][1]).slice(1,-1)),x===58?(e.enter("definitionMarker"),e.consume(x),e.exit("definitionMarker"),d):n(x)}function d(x){return En(x)?du(e,m)(x):m(x)}function m(x){return rI(e,h,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(x)}function h(x){return e.attempt(WP,p,p)(x)}function p(x){return Yt(x)?on(e,g,"whitespace")(x):g(x)}function g(x){return x===null||pt(x)?(e.exit("definition"),i.parser.defined.push(r),t(x)):n(x)}}function XP(e,t,n){return i;function i(c){return En(c)?du(e,r)(c):n(c)}function r(c){return oI(e,o,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(c)}function o(c){return Yt(c)?on(e,a,"whitespace")(c):a(c)}function a(c){return c===null||pt(c)?t(c):n(c)}}const KP={name:"hardBreakEscape",tokenize:ZP};function ZP(e,t,n){return i;function i(o){return e.enter("hardBreakEscape"),e.consume(o),r}function r(o){return pt(o)?(e.exit("hardBreakEscape"),t(o)):n(o)}}const QP={name:"headingAtx",resolve:JP,tokenize:eB};function JP(e,t){let n=e.length-2,i=3,r,o;return e[i][1].type==="whitespace"&&(i+=2),n-2>i&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(i===n-1||n-4>i&&e[n-2][1].type==="whitespace")&&(n-=i+1===n?2:4),n>i&&(r={type:"atxHeadingText",start:e[i][1].start,end:e[n][1].end},o={type:"chunkText",start:e[i][1].start,end:e[n][1].end,contentType:"text"},pr(e,i,n-i+1,[["enter",r,t],["enter",o,t],["exit",o,t],["exit",r,t]])),e}function eB(e,t,n){let i=0;return r;function r(h){return e.enter("atxHeading"),o(h)}function o(h){return e.enter("atxHeadingSequence"),a(h)}function a(h){return h===35&&i++<6?(e.consume(h),a):h===null||En(h)?(e.exit("atxHeadingSequence"),c(h)):n(h)}function c(h){return h===35?(e.enter("atxHeadingSequence"),d(h)):h===null||pt(h)?(e.exit("atxHeading"),t(h)):Yt(h)?on(e,c,"whitespace")(h):(e.enter("atxHeadingText"),m(h))}function d(h){return h===35?(e.consume(h),d):(e.exit("atxHeadingSequence"),c(h))}function m(h){return h===null||h===35||En(h)?(e.exit("atxHeadingText"),c(h)):(e.consume(h),m)}}const tB=["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"],Iw=["pre","script","style","textarea"],nB={concrete:!0,name:"htmlFlow",resolveTo:sB,tokenize:oB},iB={partial:!0,tokenize:lB},rB={partial:!0,tokenize:aB};function sB(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 oB(e,t,n){const i=this;let r,o,a,c,d;return m;function m(B){return h(B)}function h(B){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(B),p}function p(B){return B===33?(e.consume(B),g):B===47?(e.consume(B),o=!0,b):B===63?(e.consume(B),r=3,i.interrupt?t:W):Hi(B)?(e.consume(B),a=String.fromCharCode(B),w):n(B)}function g(B){return B===45?(e.consume(B),r=2,x):B===91?(e.consume(B),r=5,c=0,v):Hi(B)?(e.consume(B),r=4,i.interrupt?t:W):n(B)}function x(B){return B===45?(e.consume(B),i.interrupt?t:W):n(B)}function v(B){const Z="CDATA[";return B===Z.charCodeAt(c++)?(e.consume(B),c===Z.length?i.interrupt?t:H:v):n(B)}function b(B){return Hi(B)?(e.consume(B),a=String.fromCharCode(B),w):n(B)}function w(B){if(B===null||B===47||B===62||En(B)){const Z=B===47,te=a.toLowerCase();return!Z&&!o&&Iw.includes(te)?(r=1,i.interrupt?t(B):H(B)):tB.includes(a.toLowerCase())?(r=6,Z?(e.consume(B),k):i.interrupt?t(B):H(B)):(r=7,i.interrupt&&!i.parser.lazy[i.now().line]?n(B):o?S(B):j(B))}return B===45||Oi(B)?(e.consume(B),a+=String.fromCharCode(B),w):n(B)}function k(B){return B===62?(e.consume(B),i.interrupt?t:H):n(B)}function S(B){return Yt(B)?(e.consume(B),S):M(B)}function j(B){return B===47?(e.consume(B),M):B===58||B===95||Hi(B)?(e.consume(B),N):Yt(B)?(e.consume(B),j):M(B)}function N(B){return B===45||B===46||B===58||B===95||Oi(B)?(e.consume(B),N):L(B)}function L(B){return B===61?(e.consume(B),A):Yt(B)?(e.consume(B),L):j(B)}function A(B){return B===null||B===60||B===61||B===62||B===96?n(B):B===34||B===39?(e.consume(B),d=B,D):Yt(B)?(e.consume(B),A):O(B)}function D(B){return B===d?(e.consume(B),d=null,T):B===null||pt(B)?n(B):(e.consume(B),D)}function O(B){return B===null||B===34||B===39||B===47||B===60||B===61||B===62||B===96||En(B)?L(B):(e.consume(B),O)}function T(B){return B===47||B===62||Yt(B)?j(B):n(B)}function M(B){return B===62?(e.consume(B),I):n(B)}function I(B){return B===null||pt(B)?H(B):Yt(B)?(e.consume(B),I):n(B)}function H(B){return B===45&&r===2?(e.consume(B),$):B===60&&r===1?(e.consume(B),G):B===62&&r===4?(e.consume(B),V):B===63&&r===3?(e.consume(B),W):B===93&&r===5?(e.consume(B),K):pt(B)&&(r===6||r===7)?(e.exit("htmlFlowData"),e.check(iB,Q,Y)(B)):B===null||pt(B)?(e.exit("htmlFlowData"),Y(B)):(e.consume(B),H)}function Y(B){return e.check(rB,P,Q)(B)}function P(B){return e.enter("lineEnding"),e.consume(B),e.exit("lineEnding"),U}function U(B){return B===null||pt(B)?Y(B):(e.enter("htmlFlowData"),H(B))}function $(B){return B===45?(e.consume(B),W):H(B)}function G(B){return B===47?(e.consume(B),a="",q):H(B)}function q(B){if(B===62){const Z=a.toLowerCase();return Iw.includes(Z)?(e.consume(B),V):H(B)}return Hi(B)&&a.length<8?(e.consume(B),a+=String.fromCharCode(B),q):H(B)}function K(B){return B===93?(e.consume(B),W):H(B)}function W(B){return B===62?(e.consume(B),V):B===45&&r===2?(e.consume(B),W):H(B)}function V(B){return B===null||pt(B)?(e.exit("htmlFlowData"),Q(B)):(e.consume(B),V)}function Q(B){return e.exit("htmlFlow"),t(B)}}function aB(e,t,n){const i=this;return r;function r(a){return pt(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),o):n(a)}function o(a){return i.parser.lazy[i.now().line]?n(a):t(a)}}function lB(e,t,n){return i;function i(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),e.attempt(Fu,t,n)}}const cB={name:"htmlText",tokenize:uB};function uB(e,t,n){const i=this;let r,o,a;return c;function c(W){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(W),d}function d(W){return W===33?(e.consume(W),m):W===47?(e.consume(W),L):W===63?(e.consume(W),j):Hi(W)?(e.consume(W),O):n(W)}function m(W){return W===45?(e.consume(W),h):W===91?(e.consume(W),o=0,v):Hi(W)?(e.consume(W),S):n(W)}function h(W){return W===45?(e.consume(W),x):n(W)}function p(W){return W===null?n(W):W===45?(e.consume(W),g):pt(W)?(a=p,G(W)):(e.consume(W),p)}function g(W){return W===45?(e.consume(W),x):p(W)}function x(W){return W===62?$(W):W===45?g(W):p(W)}function v(W){const V="CDATA[";return W===V.charCodeAt(o++)?(e.consume(W),o===V.length?b:v):n(W)}function b(W){return W===null?n(W):W===93?(e.consume(W),w):pt(W)?(a=b,G(W)):(e.consume(W),b)}function w(W){return W===93?(e.consume(W),k):b(W)}function k(W){return W===62?$(W):W===93?(e.consume(W),k):b(W)}function S(W){return W===null||W===62?$(W):pt(W)?(a=S,G(W)):(e.consume(W),S)}function j(W){return W===null?n(W):W===63?(e.consume(W),N):pt(W)?(a=j,G(W)):(e.consume(W),j)}function N(W){return W===62?$(W):j(W)}function L(W){return Hi(W)?(e.consume(W),A):n(W)}function A(W){return W===45||Oi(W)?(e.consume(W),A):D(W)}function D(W){return pt(W)?(a=D,G(W)):Yt(W)?(e.consume(W),D):$(W)}function O(W){return W===45||Oi(W)?(e.consume(W),O):W===47||W===62||En(W)?T(W):n(W)}function T(W){return W===47?(e.consume(W),$):W===58||W===95||Hi(W)?(e.consume(W),M):pt(W)?(a=T,G(W)):Yt(W)?(e.consume(W),T):$(W)}function M(W){return W===45||W===46||W===58||W===95||Oi(W)?(e.consume(W),M):I(W)}function I(W){return W===61?(e.consume(W),H):pt(W)?(a=I,G(W)):Yt(W)?(e.consume(W),I):T(W)}function H(W){return W===null||W===60||W===61||W===62||W===96?n(W):W===34||W===39?(e.consume(W),r=W,Y):pt(W)?(a=H,G(W)):Yt(W)?(e.consume(W),H):(e.consume(W),P)}function Y(W){return W===r?(e.consume(W),r=void 0,U):W===null?n(W):pt(W)?(a=Y,G(W)):(e.consume(W),Y)}function P(W){return W===null||W===34||W===39||W===60||W===61||W===96?n(W):W===47||W===62||En(W)?T(W):(e.consume(W),P)}function U(W){return W===47||W===62||En(W)?T(W):n(W)}function $(W){return W===62?(e.consume(W),e.exit("htmlTextData"),e.exit("htmlText"),t):n(W)}function G(W){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(W),e.exit("lineEnding"),q}function q(W){return Yt(W)?on(e,K,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(W):K(W)}function K(W){return e.enter("htmlTextData"),a(W)}}const C0={name:"labelEnd",resolveAll:pB,resolveTo:hB,tokenize:gB},dB={tokenize:yB},fB={tokenize:xB},mB={tokenize:vB};function pB(e){let t=-1;const n=[];for(;++t=3&&(m===null||pt(m))?(e.exit("thematicBreak"),t(m)):n(m)}function d(m){return m===r?(e.consume(m),i++,d):(e.exit("thematicBreakSequence"),Yt(m)?on(e,c,"whitespace")(m):c(m))}}const Ki={continuation:{tokenize:IB},exit:RB,name:"list",tokenize:NB},jB={partial:!0,tokenize:AB},EB={partial:!0,tokenize:TB};function NB(e,t,n){const i=this,r=i.events[i.events.length-1];let o=r&&r[1].type==="linePrefix"?r[2].sliceSerialize(r[1],!0).length:0,a=0;return c;function c(x){const v=i.containerState.type||(x===42||x===43||x===45?"listUnordered":"listOrdered");if(v==="listUnordered"?!i.containerState.marker||x===i.containerState.marker:sv(x)){if(i.containerState.type||(i.containerState.type=v,e.enter(v,{_container:!0})),v==="listUnordered")return e.enter("listItemPrefix"),x===42||x===45?e.check(Pf,n,m)(x):m(x);if(!i.interrupt||x===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),d(x)}return n(x)}function d(x){return sv(x)&&++a<10?(e.consume(x),d):(!i.interrupt||a<2)&&(i.containerState.marker?x===i.containerState.marker:x===41||x===46)?(e.exit("listItemValue"),m(x)):n(x)}function m(x){return e.enter("listItemMarker"),e.consume(x),e.exit("listItemMarker"),i.containerState.marker=i.containerState.marker||x,e.check(Fu,i.interrupt?n:h,e.attempt(jB,g,p))}function h(x){return i.containerState.initialBlankLine=!0,o++,g(x)}function p(x){return Yt(x)?(e.enter("listItemPrefixWhitespace"),e.consume(x),e.exit("listItemPrefixWhitespace"),g):n(x)}function g(x){return i.containerState.size=o+i.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(x)}}function IB(e,t,n){const i=this;return i.containerState._closeFlow=void 0,e.check(Fu,r,o);function r(c){return i.containerState.furtherBlankLines=i.containerState.furtherBlankLines||i.containerState.initialBlankLine,on(e,t,"listItemIndent",i.containerState.size+1)(c)}function o(c){return i.containerState.furtherBlankLines||!Yt(c)?(i.containerState.furtherBlankLines=void 0,i.containerState.initialBlankLine=void 0,a(c)):(i.containerState.furtherBlankLines=void 0,i.containerState.initialBlankLine=void 0,e.attempt(EB,t,a)(c))}function a(c){return i.containerState._closeFlow=!0,i.interrupt=void 0,on(e,e.attempt(Ki,t,n),"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(c)}}function TB(e,t,n){const i=this;return on(e,r,"listItemIndent",i.containerState.size+1);function r(o){const a=i.events[i.events.length-1];return a&&a[1].type==="listItemIndent"&&a[2].sliceSerialize(a[1],!0).length===i.containerState.size?t(o):n(o)}}function RB(e){e.exit(this.containerState.type)}function AB(e,t,n){const i=this;return on(e,r,"listItemPrefixWhitespace",i.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function r(o){const a=i.events[i.events.length-1];return!Yt(o)&&a&&a[1].type==="listItemPrefixWhitespace"?t(o):n(o)}}const Tw={name:"setextUnderline",resolveTo:MB,tokenize:DB};function MB(e,t){let n=e.length,i,r,o;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){i=n;break}e[n][1].type==="paragraph"&&(r=n)}else e[n][1].type==="content"&&e.splice(n,1),!o&&e[n][1].type==="definition"&&(o=n);const a={type:"setextHeading",start:{...e[i][1].start},end:{...e[e.length-1][1].end}};return e[r][1].type="setextHeadingText",o?(e.splice(r,0,["enter",a,t]),e.splice(o+1,0,["exit",e[i][1],t]),e[i][1].end={...e[o][1].end}):e[i][1]=a,e.push(["exit",a,t]),e}function DB(e,t,n){const i=this;let r;return o;function o(m){let h=i.events.length,p;for(;h--;)if(i.events[h][1].type!=="lineEnding"&&i.events[h][1].type!=="linePrefix"&&i.events[h][1].type!=="content"){p=i.events[h][1].type==="paragraph";break}return!i.parser.lazy[i.now().line]&&(i.interrupt||p)?(e.enter("setextHeadingLine"),r=m,a(m)):n(m)}function a(m){return e.enter("setextHeadingLineSequence"),c(m)}function c(m){return m===r?(e.consume(m),c):(e.exit("setextHeadingLineSequence"),Yt(m)?on(e,d,"lineSuffix")(m):d(m))}function d(m){return m===null||pt(m)?(e.exit("setextHeadingLine"),t(m)):n(m)}}const OB={tokenize:LB};function LB(e){const t=this,n=e.attempt(Fu,i,e.attempt(this.parser.constructs.flowInitial,r,on(e,e.attempt(this.parser.constructs.flow,r,e.attempt(HP,r)),"linePrefix")));return n;function i(o){if(o===null){e.consume(o);return}return e.enter("lineEndingBlank"),e.consume(o),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function r(o){if(o===null){e.consume(o);return}return e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const zB={resolveAll:lI()},PB=aI("string"),BB=aI("text");function aI(e){return{resolveAll:lI(e==="text"?$B:void 0),tokenize:t};function t(n){const i=this,r=this.parser.constructs[e],o=n.attempt(r,a,c);return a;function a(h){return m(h)?o(h):c(h)}function c(h){if(h===null){n.consume(h);return}return n.enter("data"),n.consume(h),d}function d(h){return m(h)?(n.exit("data"),o(h)):(n.consume(h),d)}function m(h){if(h===null)return!0;const p=r[h];let g=-1;if(p)for(;++g-1){const c=a[0];typeof c=="string"?a[0]=c.slice(i):a.shift()}o>0&&a.push(e[r].slice(0,o))}return a}function JB(e,t){let n=-1;const i=[];let r;for(;++n0){const dt=De.tokenStack[De.tokenStack.length-1];(dt[1]||Aw).call(De,void 0,dt[0])}for(Se.position={start:mo(pe.length>0?pe[0][1].start:{line:1,column:1,offset:0}),end:mo(pe.length>0?pe[pe.length-2][1].end:{line:1,column:1,offset:0})},Je=-1;++Je0&&(i.className=["language-"+r[0]]);let o={type:"element",tagName:"code",properties:i,children:[{type:"text",value:n}]};return t.meta&&(o.data={meta:t.meta}),e.patch(t,o),o=e.applyData(t,o),o={type:"element",tagName:"pre",properties:{},children:[o]},e.patch(t,o),o}function m9(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function p9(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function h9(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",i=String(t.identifier).toUpperCase(),r=Gl(i.toLowerCase()),o=e.footnoteOrder.indexOf(i);let a,c=e.footnoteCounts.get(i);c===void 0?(c=0,e.footnoteOrder.push(i),a=e.footnoteOrder.length):a=o+1,c+=1,e.footnoteCounts.set(i,c);const d={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+r,id:n+"fnref-"+r+(c>1?"-"+c:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(a)}]};e.patch(t,d);const m={type:"element",tagName:"sup",properties:{},children:[d]};return e.patch(t,m),e.applyData(t,m)}function g9(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 y9(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function dI(e,t){const n=t.referenceType;let i="]";if(n==="collapsed"?i+="[]":n==="full"&&(i+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+i}];const r=e.all(t),o=r[0];o&&o.type==="text"?o.value="["+o.value:r.unshift({type:"text",value:"["});const a=r[r.length-1];return a&&a.type==="text"?a.value+=i:r.push({type:"text",value:i}),r}function x9(e,t){const n=String(t.identifier).toUpperCase(),i=e.definitionById.get(n);if(!i)return dI(e,t);const r={src:Gl(i.url||""),alt:t.alt};i.title!==null&&i.title!==void 0&&(r.title=i.title);const o={type:"element",tagName:"img",properties:r,children:[]};return e.patch(t,o),e.applyData(t,o)}function v9(e,t){const n={src:Gl(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const i={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,i),e.applyData(t,i)}function b9(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const i={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,i),e.applyData(t,i)}function _9(e,t){const n=String(t.identifier).toUpperCase(),i=e.definitionById.get(n);if(!i)return dI(e,t);const r={href:Gl(i.url||"")};i.title!==null&&i.title!==void 0&&(r.title=i.title);const o={type:"element",tagName:"a",properties:r,children:e.all(t)};return e.patch(t,o),e.applyData(t,o)}function k9(e,t){const n={href:Gl(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const i={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,i),e.applyData(t,i)}function S9(e,t,n){const i=e.all(t),r=n?w9(n):fI(t),o={},a=[];if(typeof t.checked=="boolean"){const h=i[0];let p;h&&h.type==="element"&&h.tagName==="p"?p=h:(p={type:"element",tagName:"p",properties:{},children:[]},i.unshift(p)),p.children.length>0&&p.children.unshift({type:"text",value:" "}),p.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),o.className=["task-list-item"]}let c=-1;for(;++c1}function C9(e,t){const n={},i=e.all(t);let r=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++r0){const a={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},c=v0(t.children[1]),d=GN(t.children[t.children.length-1]);c&&d&&(a.position={start:c,end:d}),r.push(a)}const o={type:"element",tagName:"table",properties:{},children:e.wrap(r,!0)};return e.patch(t,o),e.applyData(t,o)}function T9(e,t,n){const i=n?n.children:void 0,o=(i?i.indexOf(t):1)===0?"th":"td",a=n&&n.type==="table"?n.align:void 0,c=a?a.length:t.children.length;let d=-1;const m=[];for(;++d0,!0),i[0]),r=i.index+i[0].length,i=n.exec(t);return o.push(Ow(t.slice(r),r>0,!1)),o.join("")}function Ow(e,t,n){let i=0,r=e.length;if(t){let o=e.codePointAt(i);for(;o===Mw||o===Dw;)i++,o=e.codePointAt(i)}if(n){let o=e.codePointAt(r-1);for(;o===Mw||o===Dw;)r--,o=e.codePointAt(r-1)}return r>i?e.slice(i,r):""}function M9(e,t){const n={type:"text",value:A9(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function D9(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const O9={blockquote:u9,break:d9,code:f9,delete:m9,emphasis:p9,footnoteReference:h9,heading:g9,html:y9,imageReference:x9,image:v9,inlineCode:b9,linkReference:_9,link:k9,listItem:S9,list:C9,paragraph:j9,root:E9,strong:N9,table:I9,tableCell:R9,tableRow:T9,text:M9,thematicBreak:D9,toml:cf,yaml:cf,definition:cf,footnoteDefinition:cf};function cf(){}const mI=-1,Ym=0,fu=1,um=2,j0=3,E0=4,N0=5,I0=6,pI=7,hI=8,Lw=typeof self=="object"?self:globalThis,L9=(e,t)=>{const n=(r,o)=>(e.set(o,r),r),i=r=>{if(e.has(r))return e.get(r);const[o,a]=t[r];switch(o){case Ym:case mI:return n(a,r);case fu:{const c=n([],r);for(const d of a)c.push(i(d));return c}case um:{const c=n({},r);for(const[d,m]of a)c[i(d)]=i(m);return c}case j0:return n(new Date(a),r);case E0:{const{source:c,flags:d}=a;return n(new RegExp(c,d),r)}case N0:{const c=n(new Map,r);for(const[d,m]of a)c.set(i(d),i(m));return c}case I0:{const c=n(new Set,r);for(const d of a)c.add(i(d));return c}case pI:{const{name:c,message:d}=a;return n(new Lw[c](d),r)}case hI:return n(BigInt(a),r);case"BigInt":return n(Object(BigInt(a)),r);case"ArrayBuffer":return n(new Uint8Array(a).buffer,a);case"DataView":{const{buffer:c}=new Uint8Array(a);return n(new DataView(c),a)}}return n(new Lw[o](a),r)};return i},zw=e=>L9(new Map,e)(0),el="",{toString:z9}={},{keys:P9}=Object,Wc=e=>{const t=typeof e;if(t!=="object"||!e)return[Ym,t];const n=z9.call(e).slice(8,-1);switch(n){case"Array":return[fu,el];case"Object":return[um,el];case"Date":return[j0,el];case"RegExp":return[E0,el];case"Map":return[N0,el];case"Set":return[I0,el];case"DataView":return[fu,n]}return n.includes("Array")?[fu,n]:n.includes("Error")?[pI,n]:[um,n]},uf=([e,t])=>e===Ym&&(t==="function"||t==="symbol"),B9=(e,t,n,i)=>{const r=(a,c)=>{const d=i.push(a)-1;return n.set(c,d),d},o=a=>{if(n.has(a))return n.get(a);let[c,d]=Wc(a);switch(c){case Ym:{let h=a;switch(d){case"bigint":c=hI,h=a.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+d);h=null;break;case"undefined":return r([mI],a)}return r([c,h],a)}case fu:{if(d){let g=a;return d==="DataView"?g=new Uint8Array(a.buffer):d==="ArrayBuffer"&&(g=new Uint8Array(a)),r([d,[...g]],a)}const h=[],p=r([c,h],a);for(const g of a)h.push(o(g));return p}case um:{if(d)switch(d){case"BigInt":return r([d,a.toString()],a);case"Boolean":case"Number":case"String":return r([d,a.valueOf()],a)}if(t&&"toJSON"in a)return o(a.toJSON());const h=[],p=r([c,h],a);for(const g of P9(a))(e||!uf(Wc(a[g])))&&h.push([o(g),o(a[g])]);return p}case j0:return r([c,a.toISOString()],a);case E0:{const{source:h,flags:p}=a;return r([c,{source:h,flags:p}],a)}case N0:{const h=[],p=r([c,h],a);for(const[g,x]of a)(e||!(uf(Wc(g))||uf(Wc(x))))&&h.push([o(g),o(x)]);return p}case I0:{const h=[],p=r([c,h],a);for(const g of a)(e||!uf(Wc(g)))&&h.push(o(g));return p}}const{message:m}=a;return r([c,{name:d,message:m}],a)};return o},Pw=(e,{json:t,lossy:n}={})=>{const i=[];return B9(!(t||n),!!t,new Map,i)(e),i},dm=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?zw(Pw(e,t)):structuredClone(e):(e,t)=>zw(Pw(e,t));function $9(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 H9(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function F9(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||$9,i=e.options.footnoteBackLabel||H9,r=e.options.footnoteLabel||"Footnotes",o=e.options.footnoteLabelTagName||"h2",a=e.options.footnoteLabelProperties||{className:["sr-only"]},c=[];let d=-1;for(;++d0&&v.push({type:"text",value:" "});let S=typeof n=="string"?n:n(d,x);typeof S=="string"&&(S={type:"text",value:S}),v.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+g+(x>1?"-"+x:""),dataFootnoteBackref:"",ariaLabel:typeof i=="string"?i:i(d,x),className:["data-footnote-backref"]},children:Array.isArray(S)?S:[S]})}const w=h[h.length-1];if(w&&w.type==="element"&&w.tagName==="p"){const S=w.children[w.children.length-1];S&&S.type==="text"?S.value+=" ":w.children.push({type:"text",value:" "}),w.children.push(...v)}else h.push(...v);const k={type:"element",tagName:"li",properties:{id:t+"fn-"+g},children:e.wrap(h,!0)};e.patch(m,k),c.push(k)}if(c.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:o,properties:{...dm(a),id:"footnote-label"},children:[{type:"text",value:r}]},{type:"text",value:` +`},{type:"element",tagName:"ol",properties:{},children:e.wrap(c,!0)},{type:"text",value:` +`}]}}const Xm=(function(e){if(e==null)return q9;if(typeof e=="function")return Km(e);if(typeof e=="object")return Array.isArray(e)?V9(e):U9(e);if(typeof e=="string")return G9(e);throw new Error("Expected function, string, or object as test")});function V9(e){const t=[];let n=-1;for(;++n":""))+")"})}return g;function g(){let x=gI,v,b,w;if((!t||o(d,m,h[h.length-1]||void 0))&&(x=K9(n(d,h)),x[0]===av))return x;if("children"in d&&d.children){const k=d;if(k.children&&x[0]!==X9)for(b=(i?k.children.length:-1)+a,w=h.concat(k);b>-1&&b0&&n.push({type:"text",value:` +`}),n}function Bw(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function $w(e,t){const n=Q9(e,t),i=n.one(e,void 0),r=F9(n),o=Array.isArray(i)?{type:"root",children:i}:i||{type:"root",children:[]};return r&&o.children.push({type:"text",value:` +`},r),o}function i$(e,t){return e&&"run"in e?async function(n,i){const r=$w(n,{file:i,...t});await e.run(r,i)}:function(n,i){return $w(n,{file:i,...e||t})}}function Hw(e){if(e)throw e}var Xg,Fw;function r$(){if(Fw)return Xg;Fw=1;var e=Object.prototype.hasOwnProperty,t=Object.prototype.toString,n=Object.defineProperty,i=Object.getOwnPropertyDescriptor,r=function(m){return typeof Array.isArray=="function"?Array.isArray(m):t.call(m)==="[object Array]"},o=function(m){if(!m||t.call(m)!=="[object Object]")return!1;var h=e.call(m,"constructor"),p=m.constructor&&m.constructor.prototype&&e.call(m.constructor.prototype,"isPrototypeOf");if(m.constructor&&!h&&!p)return!1;var g;for(g in m);return typeof g>"u"||e.call(m,g)},a=function(m,h){n&&h.name==="__proto__"?n(m,h.name,{enumerable:!0,configurable:!0,value:h.newValue,writable:!0}):m[h.name]=h.newValue},c=function(m,h){if(h==="__proto__")if(e.call(m,h)){if(i)return i(m,h).value}else return;return m[h]};return Xg=function d(){var m,h,p,g,x,v,b=arguments[0],w=1,k=arguments.length,S=!1;for(typeof b=="boolean"&&(S=b,b=arguments[1]||{},w=2),(b==null||typeof b!="object"&&typeof b!="function")&&(b={});wa.length;let d;c&&a.push(r);try{d=e.apply(this,a)}catch(m){const h=m;if(c&&n)throw h;return r(h)}c||(d&&d.then&&typeof d.then=="function"?d.then(o,r):d instanceof Error?r(d):o(d))}function r(a,...c){n||(n=!0,t(a,...c))}function o(a){r(null,a)}}const Jr={basename:l$,dirname:c$,extname:u$,join:d$,sep:"/"};function l$(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Vu(e);let n=0,i=-1,r=e.length,o;if(t===void 0||t.length===0||t.length>e.length){for(;r--;)if(e.codePointAt(r)===47){if(o){n=r+1;break}}else i<0&&(o=!0,i=r+1);return i<0?"":e.slice(n,i)}if(t===e)return"";let a=-1,c=t.length-1;for(;r--;)if(e.codePointAt(r)===47){if(o){n=r+1;break}}else a<0&&(o=!0,a=r+1),c>-1&&(e.codePointAt(r)===t.codePointAt(c--)?c<0&&(i=r):(c=-1,i=a));return n===i?i=a:i<0&&(i=e.length),e.slice(n,i)}function c$(e){if(Vu(e),e.length===0)return".";let t=-1,n=e.length,i;for(;--n;)if(e.codePointAt(n)===47){if(i){t=n;break}}else i||(i=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function u$(e){Vu(e);let t=e.length,n=-1,i=0,r=-1,o=0,a;for(;t--;){const c=e.codePointAt(t);if(c===47){if(a){i=t+1;break}continue}n<0&&(a=!0,n=t+1),c===46?r<0?r=t:o!==1&&(o=1):r>-1&&(o=-1)}return r<0||n<0||o===0||o===1&&r===n-1&&r===i+1?"":e.slice(r,n)}function d$(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function m$(e,t){let n="",i=0,r=-1,o=0,a=-1,c,d;for(;++a<=e.length;){if(a2){if(d=n.lastIndexOf("/"),d!==n.length-1){d<0?(n="",i=0):(n=n.slice(0,d),i=n.length-1-n.lastIndexOf("/")),r=a,o=0;continue}}else if(n.length>0){n="",i=0,r=a,o=0;continue}}t&&(n=n.length>0?n+"/..":"..",i=2)}else n.length>0?n+="/"+e.slice(r+1,a):n=e.slice(r+1,a),i=a-r-1;r=a,o=0}else c===46&&o>-1?o++:o=-1}return n}function Vu(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const p$={cwd:h$};function h$(){return"/"}function uv(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function g$(e){if(typeof e=="string")e=new URL(e);else if(!uv(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 y$(e)}function y$(e){if(e.hostname!==""){const i=new TypeError('File URL host must be "localhost" or empty on darwin');throw i.code="ERR_INVALID_FILE_URL_HOST",i}const t=e.pathname;let n=-1;for(;++n0){let[x,...v]=h;const b=i[g][1];cv(b)&&cv(x)&&(x=Kg(!0,b,x)),i[g]=[m,x,...v]}}}}const _$=new R0().freeze();function ey(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function ty(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function ny(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 Uw(e){if(!cv(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function Gw(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function df(e){return k$(e)?e:new xI(e)}function k$(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function S$(e){return typeof e=="string"||w$(e)}function w$(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const C$="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",qw=[],Ww={allowDangerousHtml:!0},j$=/^(https?|ircs?|mailto|xmpp)$/i,E$=[{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 N$(e){const t=I$(e),n=T$(e);return R$(t.runSync(t.parse(n),n),e)}function I$(e){const t=e.rehypePlugins||qw,n=e.remarkPlugins||qw,i=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...Ww}:Ww;return _$().use(c9).use(n).use(i$,i).use(t)}function T$(e){const t=e.children||"",n=new xI;return typeof t=="string"&&(n.value=t),n}function R$(e,t){const n=t.allowedElements,i=t.allowElement,r=t.components,o=t.disallowedElements,a=t.skipHtml,c=t.unwrapDisallowed,d=t.urlTransform||A$;for(const h of E$)Object.hasOwn(t,h.from)&&(""+h.from+(h.to?"use `"+h.to+"` instead":"remove it")+C$+h.id,void 0);return T0(e,m),q8(e,{Fragment:u.Fragment,components:r,ignoreInvalidStyle:!0,jsx:u.jsx,jsxs:u.jsxs,passKeys:!0,passNode:!0});function m(h,p,g){if(h.type==="raw"&&g&&typeof p=="number")return a?g.children.splice(p,1):g.children[p]={type:"text",value:h.value},p;if(h.type==="element"){let x;for(x in qg)if(Object.hasOwn(qg,x)&&Object.hasOwn(h.properties,x)){const v=h.properties[x],b=qg[x];(b===null||b.includes(h.tagName))&&(h.properties[x]=d(String(v||""),x,h))}}if(h.type==="element"){let x=n?!n.includes(h.tagName):o?o.includes(h.tagName):!1;if(!x&&i&&typeof p=="number"&&(x=!i(h,p,g)),x&&g&&typeof p=="number")return c&&h.children?g.children.splice(p,1,...h.children):g.children.splice(p,1),p}}}function A$(e){const t=e.indexOf(":"),n=e.indexOf("?"),i=e.indexOf("#"),r=e.indexOf("/");return t===-1||r!==-1&&t>r||n!==-1&&t>n||i!==-1&&t>i||j$.test(e.slice(0,t))?e:""}function Yw(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let i=0,r=n.indexOf(t);for(;r!==-1;)i++,r=n.indexOf(t,r+t.length);return i}function M$(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function D$(e,t,n){const r=Xm((n||{}).ignore||[]),o=O$(t);let a=-1;for(;++a0?{type:"text",value:A}:void 0),A===!1?g.lastIndex=N+1:(v!==N&&S.push({type:"text",value:m.value.slice(v,N)}),Array.isArray(A)?S.push(...A):A&&S.push(A),v=N+j[0].length,k=!0),!g.global)break;j=g.exec(m.value)}return k?(v?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],i=n.indexOf(")");const r=Yw(e,"(");let o=Yw(e,")");for(;i!==-1&&r>o;)e+=n.slice(0,i+1),n=n.slice(i+1),i=n.indexOf(")"),o++;return[e,n]}function vI(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||ca(n)||qm(n))&&(!t||n!==47)}bI.peek=r7;function K$(){this.buffer()}function Z$(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function Q$(){this.buffer()}function J$(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function e7(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=$r(this.sliceSerialize(e)).toLowerCase(),n.label=t}function t7(e){this.exit(e)}function n7(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=$r(this.sliceSerialize(e)).toLowerCase(),n.label=t}function i7(e){this.exit(e)}function r7(){return"["}function bI(e,t,n,i){const r=n.createTracker(i);let o=r.move("[^");const a=n.enter("footnoteReference"),c=n.enter("reference");return o+=r.move(n.safe(n.associationId(e),{after:"]",before:o})),c(),a(),o+=r.move("]"),o}function s7(){return{enter:{gfmFootnoteCallString:K$,gfmFootnoteCall:Z$,gfmFootnoteDefinitionLabelString:Q$,gfmFootnoteDefinition:J$},exit:{gfmFootnoteCallString:e7,gfmFootnoteCall:t7,gfmFootnoteDefinitionLabelString:n7,gfmFootnoteDefinition:i7}}}function o7(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:bI},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(i,r,o,a){const c=o.createTracker(a);let d=c.move("[^");const m=o.enter("footnoteDefinition"),h=o.enter("label");return d+=c.move(o.safe(o.associationId(i),{before:d,after:"]"})),h(),d+=c.move("]:"),i.children&&i.children.length>0&&(c.shift(4),d+=c.move((t?` +`:" ")+o.indentLines(o.containerFlow(i,c.current()),t?_I:a7))),m(),d}}function a7(e,t,n){return t===0?e:_I(e,t,n)}function _I(e,t,n){return(n?"":" ")+e}const l7=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];kI.peek=m7;function c7(){return{canContainEols:["delete"],enter:{strikethrough:d7},exit:{strikethrough:f7}}}function u7(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:l7}],handlers:{delete:kI}}}function d7(e){this.enter({type:"delete",children:[]},e)}function f7(e){this.exit(e)}function kI(e,t,n,i){const r=n.createTracker(i),o=n.enter("strikethrough");let a=r.move("~~");return a+=n.containerPhrasing(e,{...r.current(),before:a,after:"~"}),a+=r.move("~~"),o(),a}function m7(){return"~"}function p7(e){return e.length}function h7(e,t){const n=t||{},i=(n.align||[]).concat(),r=n.stringLength||p7,o=[],a=[],c=[],d=[];let m=0,h=-1;for(;++hm&&(m=e[h].length);++kd[k])&&(d[k]=j)}b.push(S)}a[h]=b,c[h]=w}let p=-1;if(typeof i=="object"&&"length"in i)for(;++pd[p]&&(d[p]=S),x[p]=S),g[p]=j}a.splice(1,0,g),c.splice(1,0,x),h=-1;const v=[];for(;++h "),o.shift(2);const a=n.indentLines(n.containerFlow(e,o.current()),x7);return r(),a}function x7(e,t,n){return">"+(n?"":" ")+e}function v7(e,t){return Kw(e,t.inConstruct,!0)&&!Kw(e,t.notInConstruct,!1)}function Kw(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let i=-1;for(;++ia&&(a=o):o=1,r=i+t.length,i=n.indexOf(t,r);return a}function _7(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 k7(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 S7(e,t,n,i){const r=k7(n),o=e.value||"",a=r==="`"?"GraveAccent":"Tilde";if(_7(e,n)){const p=n.enter("codeIndented"),g=n.indentLines(o,w7);return p(),g}const c=n.createTracker(i),d=r.repeat(Math.max(b7(o,r)+1,3)),m=n.enter("codeFenced");let h=c.move(d);if(e.lang){const p=n.enter(`codeFencedLang${a}`);h+=c.move(n.safe(e.lang,{before:h,after:" ",encode:["`"],...c.current()})),p()}if(e.lang&&e.meta){const p=n.enter(`codeFencedMeta${a}`);h+=c.move(" "),h+=c.move(n.safe(e.meta,{before:h,after:` +`,encode:["`"],...c.current()})),p()}return h+=c.move(` +`),o&&(h+=c.move(o+` +`)),h+=c.move(d),m(),h}function w7(e,t,n){return(n?"":" ")+e}function A0(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 C7(e,t,n,i){const r=A0(n),o=r==='"'?"Quote":"Apostrophe",a=n.enter("definition");let c=n.enter("label");const d=n.createTracker(i);let m=d.move("[");return m+=d.move(n.safe(n.associationId(e),{before:m,after:"]",...d.current()})),m+=d.move("]: "),c(),!e.url||/[\0- \u007F]/.test(e.url)?(c=n.enter("destinationLiteral"),m+=d.move("<"),m+=d.move(n.safe(e.url,{before:m,after:">",...d.current()})),m+=d.move(">")):(c=n.enter("destinationRaw"),m+=d.move(n.safe(e.url,{before:m,after:e.title?" ":` +`,...d.current()}))),c(),e.title&&(c=n.enter(`title${o}`),m+=d.move(" "+r),m+=d.move(n.safe(e.title,{before:m,after:r,...d.current()})),m+=d.move(r),c()),a(),m}function j7(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 Nu(e){return"&#x"+e.toString(16).toUpperCase()+";"}function fm(e,t,n){const i=Nl(e),r=Nl(t);return i===void 0?r===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:r===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:i===1?r===void 0?{inside:!1,outside:!1}:r===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:r===void 0?{inside:!1,outside:!1}:r===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}SI.peek=E7;function SI(e,t,n,i){const r=j7(n),o=n.enter("emphasis"),a=n.createTracker(i),c=a.move(r);let d=a.move(n.containerPhrasing(e,{after:r,before:c,...a.current()}));const m=d.charCodeAt(0),h=fm(i.before.charCodeAt(i.before.length-1),m,r);h.inside&&(d=Nu(m)+d.slice(1));const p=d.charCodeAt(d.length-1),g=fm(i.after.charCodeAt(0),p,r);g.inside&&(d=d.slice(0,-1)+Nu(p));const x=a.move(r);return o(),n.attentionEncodeSurroundingInfo={after:g.outside,before:h.outside},c+d+x}function E7(e,t,n){return n.options.emphasis||"*"}function N7(e,t){let n=!1;return T0(e,function(i){if("value"in i&&/\r?\n|\r/.test(i.value)||i.type==="break")return n=!0,av}),!!((!e.depth||e.depth<3)&&S0(e)&&(t.options.setext||n))}function I7(e,t,n,i){const r=Math.max(Math.min(6,e.depth||1),1),o=n.createTracker(i);if(N7(e,n)){const h=n.enter("headingSetext"),p=n.enter("phrasing"),g=n.containerPhrasing(e,{...o.current(),before:` +`,after:` +`});return p(),h(),g+` +`+(r===1?"=":"-").repeat(g.length-(Math.max(g.lastIndexOf("\r"),g.lastIndexOf(` +`))+1))}const a="#".repeat(r),c=n.enter("headingAtx"),d=n.enter("phrasing");o.move(a+" ");let m=n.containerPhrasing(e,{before:"# ",after:` +`,...o.current()});return/^[\t ]/.test(m)&&(m=Nu(m.charCodeAt(0))+m.slice(1)),m=m?a+" "+m:a,n.options.closeAtx&&(m+=" "+a),d(),c(),m}wI.peek=T7;function wI(e){return e.value||""}function T7(){return"<"}CI.peek=R7;function CI(e,t,n,i){const r=A0(n),o=r==='"'?"Quote":"Apostrophe",a=n.enter("image");let c=n.enter("label");const d=n.createTracker(i);let m=d.move("![");return m+=d.move(n.safe(e.alt,{before:m,after:"]",...d.current()})),m+=d.move("]("),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter("destinationLiteral"),m+=d.move("<"),m+=d.move(n.safe(e.url,{before:m,after:">",...d.current()})),m+=d.move(">")):(c=n.enter("destinationRaw"),m+=d.move(n.safe(e.url,{before:m,after:e.title?" ":")",...d.current()}))),c(),e.title&&(c=n.enter(`title${o}`),m+=d.move(" "+r),m+=d.move(n.safe(e.title,{before:m,after:r,...d.current()})),m+=d.move(r),c()),m+=d.move(")"),a(),m}function R7(){return"!"}jI.peek=A7;function jI(e,t,n,i){const r=e.referenceType,o=n.enter("imageReference");let a=n.enter("label");const c=n.createTracker(i);let d=c.move("![");const m=n.safe(e.alt,{before:d,after:"]",...c.current()});d+=c.move(m+"]["),a();const h=n.stack;n.stack=[],a=n.enter("reference");const p=n.safe(n.associationId(e),{before:d,after:"]",...c.current()});return a(),n.stack=h,o(),r==="full"||!m||m!==p?d+=c.move(p+"]"):r==="shortcut"?d=d.slice(0,-1):d+=c.move("]"),d}function A7(){return"!"}EI.peek=M7;function EI(e,t,n){let i=e.value||"",r="`",o=-1;for(;new RegExp("(^|[^`])"+r+"([^`]|$)").test(i);)r+="`";for(/[^ \r\n]/.test(i)&&(/^[ \r\n]/.test(i)&&/[ \r\n]$/.test(i)||/^`|`$/.test(i))&&(i=" "+i+" ");++o\u007F]/.test(e.url))}II.peek=D7;function II(e,t,n,i){const r=A0(n),o=r==='"'?"Quote":"Apostrophe",a=n.createTracker(i);let c,d;if(NI(e,n)){const h=n.stack;n.stack=[],c=n.enter("autolink");let p=a.move("<");return p+=a.move(n.containerPhrasing(e,{before:p,after:">",...a.current()})),p+=a.move(">"),c(),n.stack=h,p}c=n.enter("link"),d=n.enter("label");let m=a.move("[");return m+=a.move(n.containerPhrasing(e,{before:m,after:"](",...a.current()})),m+=a.move("]("),d(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(d=n.enter("destinationLiteral"),m+=a.move("<"),m+=a.move(n.safe(e.url,{before:m,after:">",...a.current()})),m+=a.move(">")):(d=n.enter("destinationRaw"),m+=a.move(n.safe(e.url,{before:m,after:e.title?" ":")",...a.current()}))),d(),e.title&&(d=n.enter(`title${o}`),m+=a.move(" "+r),m+=a.move(n.safe(e.title,{before:m,after:r,...a.current()})),m+=a.move(r),d()),m+=a.move(")"),c(),m}function D7(e,t,n){return NI(e,n)?"<":"["}TI.peek=O7;function TI(e,t,n,i){const r=e.referenceType,o=n.enter("linkReference");let a=n.enter("label");const c=n.createTracker(i);let d=c.move("[");const m=n.containerPhrasing(e,{before:d,after:"]",...c.current()});d+=c.move(m+"]["),a();const h=n.stack;n.stack=[],a=n.enter("reference");const p=n.safe(n.associationId(e),{before:d,after:"]",...c.current()});return a(),n.stack=h,o(),r==="full"||!m||m!==p?d+=c.move(p+"]"):r==="shortcut"?d=d.slice(0,-1):d+=c.move("]"),d}function O7(){return"["}function M0(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 L7(e){const t=M0(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 z7(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 RI(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 P7(e,t,n,i){const r=n.enter("list"),o=n.bulletCurrent;let a=e.ordered?z7(n):M0(n);const c=e.ordered?a==="."?")":".":L7(n);let d=t&&n.bulletLastUsed?a===n.bulletLastUsed:!1;if(!e.ordered){const h=e.children?e.children[0]:void 0;if((a==="*"||a==="-")&&h&&(!h.children||!h.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(d=!0),RI(n)===a&&h){let p=-1;for(;++p-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+o);let a=o.length+1;(r==="tab"||r==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(a=Math.ceil(a/4)*4);const c=n.createTracker(i);c.move(o+" ".repeat(a-o.length)),c.shift(a);const d=n.enter("listItem"),m=n.indentLines(n.containerFlow(e,c.current()),h);return d(),m;function h(p,g,x){return g?(x?"":" ".repeat(a))+p:(x?o:o+" ".repeat(a-o.length))+p}}function H7(e,t,n,i){const r=n.enter("paragraph"),o=n.enter("phrasing"),a=n.containerPhrasing(e,i);return o(),r(),a}const F7=Xm(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function V7(e,t,n,i){return(e.children.some(function(a){return F7(a)})?n.containerPhrasing:n.containerFlow).call(n,e,i)}function U7(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}AI.peek=G7;function AI(e,t,n,i){const r=U7(n),o=n.enter("strong"),a=n.createTracker(i),c=a.move(r+r);let d=a.move(n.containerPhrasing(e,{after:r,before:c,...a.current()}));const m=d.charCodeAt(0),h=fm(i.before.charCodeAt(i.before.length-1),m,r);h.inside&&(d=Nu(m)+d.slice(1));const p=d.charCodeAt(d.length-1),g=fm(i.after.charCodeAt(0),p,r);g.inside&&(d=d.slice(0,-1)+Nu(p));const x=a.move(r+r);return o(),n.attentionEncodeSurroundingInfo={after:g.outside,before:h.outside},c+d+x}function G7(e,t,n){return n.options.strong||"*"}function q7(e,t,n,i){return n.safe(e.value,i)}function W7(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 Y7(e,t,n){const i=(RI(n)+(n.options.ruleSpaces?" ":"")).repeat(W7(n));return n.options.ruleSpaces?i.slice(0,-1):i}const MI={blockquote:y7,break:Zw,code:S7,definition:C7,emphasis:SI,hardBreak:Zw,heading:I7,html:wI,image:CI,imageReference:jI,inlineCode:EI,link:II,linkReference:TI,list:P7,listItem:$7,paragraph:H7,root:V7,strong:AI,text:q7,thematicBreak:Y7};function X7(){return{enter:{table:K7,tableData:Qw,tableHeader:Qw,tableRow:Q7},exit:{codeText:J7,table:Z7,tableData:oy,tableHeader:oy,tableRow:oy}}}function K7(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 Z7(e){this.exit(e),this.data.inTable=void 0}function Q7(e){this.enter({type:"tableRow",children:[]},e)}function oy(e){this.exit(e)}function Qw(e){this.enter({type:"tableCell",children:[]},e)}function J7(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,eH));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function eH(e,t){return t==="|"?t:e}function tH(e){const t=e||{},n=t.tableCellPadding,i=t.tablePipeAlign,r=t.stringLength,o=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` +`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:g,table:a,tableCell:d,tableRow:c}};function a(x,v,b,w){return m(h(x,b,w),x.align)}function c(x,v,b,w){const k=p(x,b,w),S=m([k]);return S.slice(0,S.indexOf(` +`))}function d(x,v,b,w){const k=b.enter("tableCell"),S=b.enter("phrasing"),j=b.containerPhrasing(x,{...w,before:o,after:o});return S(),k(),j}function m(x,v){return h7(x,{align:v,alignDelimiters:i,padding:n,stringLength:r})}function h(x,v,b){const w=x.children;let k=-1;const S=[],j=v.enter("table");for(;++k0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const vH={tokenize:EH,partial:!0};function bH(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:wH,continuation:{tokenize:CH},exit:jH}},text:{91:{name:"gfmFootnoteCall",tokenize:SH},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:_H,resolveTo:kH}}}}function _H(e,t,n){const i=this;let r=i.events.length;const o=i.parser.gfmFootnotes||(i.parser.gfmFootnotes=[]);let a;for(;r--;){const d=i.events[r][1];if(d.type==="labelImage"){a=d;break}if(d.type==="gfmFootnoteCall"||d.type==="labelLink"||d.type==="label"||d.type==="image"||d.type==="link")break}return c;function c(d){if(!a||!a._balanced)return n(d);const m=$r(i.sliceSerialize({start:a.end,end:i.now()}));return m.codePointAt(0)!==94||!o.includes(m.slice(1))?n(d):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(d),e.exit("gfmFootnoteCallLabelMarker"),t(d))}}function kH(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const i={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},r={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};r.end.column++,r.end.offset++,r.end._bufferIndex++;const o={type:"gfmFootnoteCallString",start:Object.assign({},r.end),end:Object.assign({},e[e.length-1][1].start)},a={type:"chunkString",contentType:"string",start:Object.assign({},o.start),end:Object.assign({},o.end)},c=[e[n+1],e[n+2],["enter",i,t],e[n+3],e[n+4],["enter",r,t],["exit",r,t],["enter",o,t],["enter",a,t],["exit",a,t],["exit",o,t],e[e.length-2],e[e.length-1],["exit",i,t]];return e.splice(n,e.length-n+1,...c),e}function SH(e,t,n){const i=this,r=i.parser.gfmFootnotes||(i.parser.gfmFootnotes=[]);let o=0,a;return c;function c(p){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),d}function d(p){return p!==94?n(p):(e.enter("gfmFootnoteCallMarker"),e.consume(p),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",m)}function m(p){if(o>999||p===93&&!a||p===null||p===91||En(p))return n(p);if(p===93){e.exit("chunkString");const g=e.exit("gfmFootnoteCallString");return r.includes($r(i.sliceSerialize(g)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(p)}return En(p)||(a=!0),o++,e.consume(p),p===92?h:m}function h(p){return p===91||p===92||p===93?(e.consume(p),o++,m):m(p)}}function wH(e,t,n){const i=this,r=i.parser.gfmFootnotes||(i.parser.gfmFootnotes=[]);let o,a=0,c;return d;function d(v){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(v),e.exit("gfmFootnoteDefinitionLabelMarker"),m}function m(v){return v===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(v),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",h):n(v)}function h(v){if(a>999||v===93&&!c||v===null||v===91||En(v))return n(v);if(v===93){e.exit("chunkString");const b=e.exit("gfmFootnoteDefinitionLabelString");return o=$r(i.sliceSerialize(b)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(v),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),g}return En(v)||(c=!0),a++,e.consume(v),v===92?p:h}function p(v){return v===91||v===92||v===93?(e.consume(v),a++,h):h(v)}function g(v){return v===58?(e.enter("definitionMarker"),e.consume(v),e.exit("definitionMarker"),r.includes(o)||r.push(o),on(e,x,"gfmFootnoteDefinitionWhitespace")):n(v)}function x(v){return t(v)}}function CH(e,t,n){return e.check(Fu,t,e.attempt(vH,t,n))}function jH(e){e.exit("gfmFootnoteDefinition")}function EH(e,t,n){const i=this;return on(e,r,"gfmFootnoteDefinitionIndent",5);function r(o){const a=i.events[i.events.length-1];return a&&a[1].type==="gfmFootnoteDefinitionIndent"&&a[2].sliceSerialize(a[1],!0).length===4?t(o):n(o)}}function NH(e){let n=(e||{}).singleTilde;const i={name:"strikethrough",tokenize:o,resolveAll:r};return n==null&&(n=!0),{text:{126:i},insideSpan:{null:[i]},attentionMarkers:{null:[126]}};function r(a,c){let d=-1;for(;++d1?d(v):(a.consume(v),p++,x);if(p<2&&!n)return d(v);const w=a.exit("strikethroughSequenceTemporary"),k=Nl(v);return w._open=!k||k===2&&!!b,w._close=!b||b===2&&!!k,c(v)}}}class IH{constructor(){this.map=[]}add(t,n,i){TH(this,t,n,i)}consume(t){if(this.map.sort(function(o,a){return o[0]-a[0]}),this.map.length===0)return;let n=this.map.length;const i=[];for(;n>0;)n-=1,i.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];i.push(t.slice()),t.length=0;let r=i.pop();for(;r;){for(const o of r)t.push(o);r=i.pop()}this.map.length=0}}function TH(e,t,n,i){let r=0;if(!(n===0&&i.length===0)){for(;r-1;){const P=i.events[I][1].type;if(P==="lineEnding"||P==="linePrefix")I--;else break}const H=I>-1?i.events[I][1].type:null,Y=H==="tableHead"||H==="tableRow"?A:d;return Y===A&&i.parser.lazy[i.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),h(M)}function h(M){return M===null?n(M):pt(M)?o>1?(o=0,i.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(M),e.exit("lineEnding"),x):n(M):Yt(M)?on(e,h,"whitespace")(M):(o+=1,a&&(a=!1,r+=1),M===124?(e.enter("tableCellDivider"),e.consume(M),e.exit("tableCellDivider"),a=!0,h):(e.enter("data"),p(M)))}function p(M){return M===null||M===124||En(M)?(e.exit("data"),h(M)):(e.consume(M),M===92?g:p)}function g(M){return M===92||M===124?(e.consume(M),p):p(M)}function x(M){return i.interrupt=!1,i.parser.lazy[i.now().line]?n(M):(e.enter("tableDelimiterRow"),a=!1,Yt(M)?on(e,v,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(M):v(M))}function v(M){return M===45||M===58?w(M):M===124?(a=!0,e.enter("tableCellDivider"),e.consume(M),e.exit("tableCellDivider"),b):L(M)}function b(M){return Yt(M)?on(e,w,"whitespace")(M):w(M)}function w(M){return M===58?(o+=1,a=!0,e.enter("tableDelimiterMarker"),e.consume(M),e.exit("tableDelimiterMarker"),k):M===45?(o+=1,k(M)):M===null||pt(M)?N(M):L(M)}function k(M){return M===45?(e.enter("tableDelimiterFiller"),S(M)):L(M)}function S(M){return M===45?(e.consume(M),S):M===58?(a=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(M),e.exit("tableDelimiterMarker"),j):(e.exit("tableDelimiterFiller"),j(M))}function j(M){return Yt(M)?on(e,N,"whitespace")(M):N(M)}function N(M){return M===124?v(M):M===null||pt(M)?!a||r!==o?L(M):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(M)):L(M)}function L(M){return n(M)}function A(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||pt(M)?(e.exit("tableRow"),t(M)):Yt(M)?on(e,D,"whitespace")(M):(e.enter("data"),O(M))}function O(M){return M===null||M===124||En(M)?(e.exit("data"),D(M)):(e.consume(M),M===92?T:O)}function T(M){return M===92||M===124?(e.consume(M),O):O(M)}}function DH(e,t){let n=-1,i=!0,r=0,o=[0,0,0,0],a=[0,0,0,0],c=!1,d=0,m,h,p;const g=new IH;for(;++nn[2]+1){const v=n[2]+1,b=n[3]-n[2]-1;e.add(v,b,[])}}e.add(n[3]+1,0,[["exit",p,t]])}return r!==void 0&&(o.end=Object.assign({},sl(t.events,r)),e.add(r,0,[["exit",o,t]]),o=void 0),o}function eC(e,t,n,i,r){const o=[],a=sl(t.events,n);r&&(r.end=Object.assign({},a),o.push(["exit",r,t])),i.end=Object.assign({},a),o.push(["exit",i,t]),e.add(n+1,0,o)}function sl(e,t){const n=e[t],i=n[0]==="enter"?"start":"end";return n[1][i]}const OH={name:"tasklistCheck",tokenize:zH};function LH(){return{text:{91:OH}}}function zH(e,t,n){const i=this;return r;function r(d){return i.previous!==null||!i._gfmTasklistFirstContentOfListItem?n(d):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(d),e.exit("taskListCheckMarker"),o)}function o(d){return En(d)?(e.enter("taskListCheckValueUnchecked"),e.consume(d),e.exit("taskListCheckValueUnchecked"),a):d===88||d===120?(e.enter("taskListCheckValueChecked"),e.consume(d),e.exit("taskListCheckValueChecked"),a):n(d)}function a(d){return d===93?(e.enter("taskListCheckMarker"),e.consume(d),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),c):n(d)}function c(d){return pt(d)?t(d):Yt(d)?e.check({tokenize:PH},t,n)(d):n(d)}}function PH(e,t,n){return on(e,i,"whitespace");function i(r){return r===null?n(r):t(r)}}function BH(e){return QN([uH(),bH(),NH(e),AH(),LH()])}const $H={};function HH(e){const t=this,n=e||$H,i=t.data(),r=i.micromarkExtensions||(i.micromarkExtensions=[]),o=i.fromMarkdownExtensions||(i.fromMarkdownExtensions=[]),a=i.toMarkdownExtensions||(i.toMarkdownExtensions=[]);r.push(BH(n)),o.push(oH()),a.push(aH(n))}const FH=30,ay=10;function VH({className:e,children:t}){const[n,i]=C.useState(!1),[r,o]=C.useState(!1),a=String(t).replace(/\n$/,""),c=e?.replace("language-","")||"",d=a.split(` +`),m=d.length>FH,h=m?d.length-ay*2:0,p=C.useCallback(()=>{navigator.clipboard.writeText(a),i(!0),setTimeout(()=>i(!1),1500)},[a]);return u.jsxs("div",{className:"code-block-wrap",children:[u.jsxs("div",{className:"code-block-header",children:[u.jsxs("span",{className:"code-block-lang",children:[c||"code",m?` (${d.length} lines)`:""]}),u.jsx("button",{className:"code-block-copy",onClick:p,children:n?u.jsxs(u.Fragment,{children:[u.jsx($l,{})," ",u.jsx("span",{children:"Copied"})]}):u.jsxs(u.Fragment,{children:[u.jsx(Am,{})," ",u.jsx("span",{children:"Copy"})]})})]}),u.jsx("pre",{children:u.jsx("code",{className:e,children:m&&!r?u.jsxs(u.Fragment,{children:[d.slice(0,ay).join(` +`)+` +`,u.jsxs("span",{className:"code-block-omitted",onClick:()=>o(!0),children:["... +",h," lines (click to expand)"]}),` +`+d.slice(-ay).join(` +`)]}):a})}),m&&r&&u.jsxs("button",{className:"code-block-collapse-btn",onClick:()=>o(!1),children:["Collapse (",d.length," lines)"]})]})}const UH={code({className:e,children:t,...n}){return e?.startsWith("language-")?u.jsx(VH,{className:e,children:t}):u.jsx("code",{className:e,...n,children:t})}},GH=3e3,qH=60,ly=800;function tC(e){if(e.length>GH)return!0;let t=0;for(let n=0;n=qH)return!0;return!1}function WH(e){const t=e.lastIndexOf(` +`,ly);return e.slice(0,t>ly/2?t:ly)}const bi=Tt.memo(function({content:t,className:n="msg-content-agent",collapseMode:i="auto"}){const r=i!=="never"&&tC(t),[o,a]=C.useState(r);C.useEffect(()=>{a(i!=="never"&&tC(t))},[i,t]);const c=o?WH(t):t,d=t.split(` +`).length,m=t.length;return u.jsxs("div",{className:n,children:[u.jsx(N$,{remarkPlugins:[HH],components:UH,children:c}),r&&o&&u.jsxs("button",{className:"msg-collapse-toggle",onClick:()=>a(!1),children:["Show more (",d," lines, ",(m/1e3).toFixed(1),"k chars)"]}),r&&!o&&u.jsx("button",{className:"msg-collapse-toggle",onClick:()=>a(!0),children:"Show less"})]})}),nC={native:"OpenOPC Native",codex:"Codex",claude_code:"Claude Code",cursor:"Cursor",opencode:"OpenCode"},Iu="codex",cy="native",YH=["codex","native","claude_code","cursor","opencode"],XH=["native","codex","claude_code","cursor","opencode"];function FI(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 VI(e){const t=FI(e);return t.kind==="fallback"?"fallback:":`${t.kind}:${t.id??""}`}function KH(e,t,n){const i=String(e.role_id??"").trim(),r=String(e.role_label??"").trim(),o=`${i} ${r} ${e.role_responsibility??""}`.toLowerCase(),a=new Set((e.same_role_employee_ids??[]).map(m=>String(m??"").trim()).filter(Boolean)),c=t.map(m=>{const h=String(m.employee_id??"").trim(),p=String(m.employee_name??h).trim()||h,g=String(m.role_id??"").trim(),x=String(m.category??"").trim(),v=[g,x].filter(Boolean).join(" · ")||h;return{kind:"employee",id:h,name:p,subtitle:v,category:x,searchText:`${h} ${p} ${g} ${x} ${(m.domains??[]).join(" ")} ${(m.tags??[]).join(" ")}`.toLowerCase(),rank:a.has(h)||g===i?0:2}}).filter(m=>m.id).sort((m,h)=>m.rank-h.rank||m.name.localeCompare(h.name)),d=n.map(m=>{const h=String(m.template_id??"").trim(),p=String(m.template_name??h).trim()||h,g=String(m.category??"").trim(),x=[g,h].filter(Boolean).join(" · ")||h,v=`${h} ${p} ${g} ${(m.domains??[]).join(" ")} ${(m.tags??[]).join(" ")}`.toLowerCase(),b=o.split(/[^a-z0-9]+/).filter(w=>w.length>=3).reduce((w,k)=>w+(v.includes(k)?1:0),0);return{kind:"template",id:h,name:p,subtitle:x,category:g,searchText:v,rank:b}}).filter(m=>m.id).sort((m,h)=>h.rank-m.rank||m.name.localeCompare(h.name));return[...c,...d,{kind:"fallback",id:"",name:"Fallback role-only",subtitle:"No employee override",category:"fallback",searchText:"fallback role only no employee override"}]}function ZH(e,t){const n=VI(t);return e.find(i=>`${i.kind}:${i.id}`===n)??e[0]}function QH(e,t){const n=t.toLowerCase().split(/\s+/).filter(Boolean);return n.length===0?!0:n.every(i=>e.searchText.includes(i))}function JH(e){return e.map(t=>{const n=String(t.role_id??"").trim(),i=String(t.existing_employee?.employee_id??"").trim(),r=String(t.candidate?.template_id??"").trim(),o=i?{kind:"employee",id:i}:r?{kind:"template",id:r}:{kind:"fallback"};return{role_id:n,role_label:t.role_labels?.[0]??n,role_responsibility:"",default_selection:o,same_role_employee_ids:t.existing_employee_ids??[],fallback_available:!0,default_agent:t.default_agent??Iu,selected_agent:t.selected_agent??t.default_agent??Iu,default_source:"recruitment"}}).filter(t=>t.role_id)}function eF(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 iC(e,t){const n={},i=e.staffing_selections??{};for(const r of t){const o=String(r.role_id??"").trim();o&&(n[o]=FI(i[o]??r.default_selection))}return n}function rC(e,t){const n=e.recruitment_role_agents??{},i={};for(const r of t){const o=String(r.role_id??"").trim();o&&(i[o]=n[o]??r.selected_agent??r.default_agent??Iu)}return i}function tF(e){return!!(String(e.checkpoint_response_message_id??"").trim()||String(e.checkpoint_responded_at??"").trim()||String(e.checkpoint_reply_kind??"").trim())}const nF=Tt.memo(function({meta:t,onReply:n,responded:i}){const r=t.proposals??[],o=C.useMemo(()=>{const T={};for(const M of r){const I=String(M.role_id??"").trim();I&&(T[I]=M)}return T},[r]),a=C.useMemo(()=>t.staffing_roles?.length?t.staffing_roles:JH(r),[t.staffing_roles,r]),c=t.staffing_pool?.employees??[],d=t.staffing_pool?.templates??[],m=t.recruitment_rationales??[],h=C.useMemo(()=>{const T={};for(const M of a){const I=String(M.role_id??"").trim();I&&(T[I]=KH(M,c,d))}return T},[c,a,d]),[p,g]=C.useState({}),[x,v]=C.useState(""),[b,w]=C.useState(()=>iC(t,a)),[k,S]=C.useState(()=>rC(t,a)),[j,N]=C.useState(t.recruitment_agent??cy),L=i;C.useEffect(()=>{!L||!tF(t)||(w(iC(t,a)),S(rC(t,a)),N(t.recruitment_agent??cy))},[L,t,a]),C.useEffect(()=>{N(t.recruitment_agent??cy)},[t.recruitment_agent]);const A=C.useCallback(T=>{const M=String(t.checkpoint_id??"").trim();if(!M)throw new Error("Recruitment checkpoint reply requires checkpoint_id metadata.");const I=String(t.checkpoint_type??"").trim();return{response_to_checkpoint_id:M,response_to_checkpoint_type:I||"company_recruitment_confirmation",checkpoint_reply_kind:T,staffing_selections:b,recruitment_agent:j,recruitment_role_agents:a.reduce((H,Y)=>{const P=String(Y.role_id??"").trim();return P&&(H[P]=k[P]??Y.selected_agent??Y.default_agent??Iu),H},{})}},[t.checkpoint_id,t.checkpoint_type,j,k,a,b]),D=C.useCallback(()=>{L||n("approve",A("approve"))},[A,L,n]),O=C.useCallback(()=>{L||!x.trim()||(n(x.trim(),A("feedback")),v(""))},[A,L,x,n]);return u.jsxs("div",{className:"ckpt-panel ckpt-recruitment",children:[u.jsxs("div",{className:"ckpt-header",children:[u.jsx("div",{className:"ckpt-icon ckpt-icon-recruit",children:u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[u.jsx("circle",{cx:"6",cy:"5",r:"3"}),u.jsx("path",{d:"M2 14c0-2.2 1.8-4 4-4s4 1.8 4 4"}),u.jsx("path",{d:"M12 5v4M10 7h4"})]})}),u.jsx("div",{className:"ckpt-title",children:"Recruitment Review"}),u.jsx("span",{className:"ckpt-badge ckpt-badge-profile",children:t.company_profile||"corporate"}),L&&u.jsx("span",{className:"ckpt-badge ckpt-badge-responded",children:"Responded"})]}),t.summary&&u.jsx("div",{className:"ckpt-summary",children:t.summary}),u.jsxs("div",{className:"ckpt-recruiter-agent",children:[u.jsx("label",{className:"ckpt-agent-label",htmlFor:`recruitment-recruiter-agent-${t.checkpoint_id}`,children:"Recruiter Agent"}),u.jsx("select",{id:`recruitment-recruiter-agent-${t.checkpoint_id}`,className:"ckpt-agent-select",value:j,onChange:T=>N(T.target.value),disabled:L,children:XH.map(T=>u.jsx("option",{value:T,children:nC[T]},T))})]}),m.length>0&&u.jsx("div",{className:"ckpt-recruitment-reasons",children:m.map(T=>u.jsxs("div",{className:"ckpt-recruitment-reason",children:[u.jsxs("div",{className:"ckpt-proposal-header",children:[u.jsx("span",{className:"ckpt-role-name",children:T.role_id}),T.role_label&&T.role_label!==T.role_id&&u.jsx("span",{className:"ckpt-field-tag",children:T.role_label}),T.selection_label&&u.jsx("span",{className:"ckpt-badge ckpt-badge-template",children:T.selection_label})]}),T.rationale&&u.jsx("div",{className:"ckpt-rationale",children:T.rationale})]},T.role_id))}),u.jsx("div",{className:"ckpt-staffing-grid",children:a.map(T=>{const M=String(T.role_id??"").trim(),I=h[M]??[{kind:"fallback",id:"",name:"Fallback role-only",subtitle:"No employee override",category:"fallback",searchText:"fallback role only no employee override"}],H=ZH(I,b[M]),Y=o[M],P=p[M]??"",U=I.filter($=>QH($,P)).slice(0,8);return u.jsxs("div",{className:"ckpt-staffing-card",children:[u.jsxs("div",{className:"ckpt-proposal-header",children:[u.jsx("span",{className:"ckpt-role-name",children:M}),u.jsx("span",{className:`ckpt-badge ckpt-badge-${H.kind}`,children:H.kind})]}),T.role_label&&T.role_label!==M&&u.jsx("div",{className:"ckpt-role-labels",children:u.jsx("span",{className:"ckpt-field-tag",children:T.role_label})}),u.jsxs("div",{className:"ckpt-staffing-selected",children:[u.jsx("div",{className:"ckpt-cand-name",children:eF(Y,H)}),u.jsxs("div",{className:"ckpt-cand-meta",children:[u.jsx("span",{className:"ckpt-cand-category",children:H.category}),u.jsx("span",{className:"ckpt-domain-tag",children:H.subtitle})]})]}),u.jsx("input",{className:"ckpt-staffing-search",value:P,onChange:$=>g(G=>({...G,[M]:$.target.value})),placeholder:"Search employees or templates...",disabled:L}),u.jsx("div",{className:"ckpt-staffing-options",children:U.map($=>{const G=`${$.kind}:${$.id}`===VI(b[M]);return u.jsxs("button",{className:`ckpt-staffing-option${G?" active":""}`,onClick:()=>w(q=>({...q,[M]:{kind:$.kind,id:$.id}})),disabled:L,title:$.subtitle,children:[u.jsx("span",{className:"ckpt-staffing-option-kind",children:$.kind}),u.jsx("span",{className:"ckpt-staffing-option-name",children:$.name})]},`${$.kind}:${$.id}`)})}),u.jsxs("div",{className:"ckpt-agent-picker",children:[u.jsx("label",{className:"ckpt-agent-label",htmlFor:`recruit-agent-${t.checkpoint_id}-${M}`,children:"Execution Agent"}),u.jsx("select",{id:`recruit-agent-${t.checkpoint_id}-${M}`,className:"ckpt-agent-select",value:k[M]??T.selected_agent??T.default_agent??Iu,onChange:$=>S(G=>({...G,[M]:$.target.value})),disabled:L,children:YH.map($=>u.jsx("option",{value:$,children:nC[$]},$))})]})]},M)})}),!L&&u.jsxs("div",{className:"ckpt-actions ckpt-actions-inline-feedback",children:[u.jsx("button",{className:"ckpt-btn ckpt-btn-approve",onClick:D,children:"Approve"}),u.jsx("textarea",{className:"ckpt-feedback-input ckpt-feedback-inline-input",placeholder:"Feedback to refine recruitment...",value:x,onChange:T=>v(T.target.value),rows:2}),u.jsx("button",{className:"ckpt-btn ckpt-btn-feedback",onClick:O,disabled:!x.trim(),children:"Send Feedback"})]})]})}),sC={native:"OpenOPC Native",codex:"Codex",claude_code:"Claude Code",cursor:"Cursor",opencode:"OpenCode"},fv="codex",uy="native",iF=["codex","native","claude_code","cursor","opencode"],rF=["native","codex","claude_code","cursor","opencode"];function UI(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 GI(e){const t=UI(e);return t.kind==="fallback"?"fallback:":`${t.kind}:${t.id??""}`}function sF(e,t,n){const i=String(e.role_id??"").trim(),r=String(e.role_label??"").trim(),o=`${i} ${r} ${e.role_responsibility??""}`.toLowerCase(),a=new Set((e.same_role_employee_ids??[]).map(h=>String(h??"").trim()).filter(Boolean)),c=h=>{const p=`${h.template_id??""} ${h.template_name??""} ${h.category??""} ${(h.domains??[]).join(" ")} ${(h.tags??[]).join(" ")}`.toLowerCase(),g=String(h.category??"").toLowerCase();let x=0;for(const v of o.split(/[^a-z0-9]+/).filter(b=>b.length>=3))(p.includes(v)||g&&v.includes(g))&&(x+=1);return(p.includes(i.replace(/_/g,"-"))||p.includes(i.replace(/_/g," ")))&&(x+=2),x},d=t.map(h=>{const p=String(h.employee_id??"").trim(),g=String(h.employee_name??p).trim()||p,x=String(h.role_id??"").trim(),v=String(h.category??"").trim(),b=[x,v].filter(Boolean).join(" · ")||p;return{kind:"employee",id:p,name:g,subtitle:b,category:v,searchText:`${p} ${g} ${x} ${v} ${(h.domains??[]).join(" ")} ${(h.tags??[]).join(" ")}`.toLowerCase(),rank:a.has(p)||x===i?0:2}}).filter(h=>h.id).sort((h,p)=>h.rank-p.rank||h.name.localeCompare(p.name)),m=n.map(h=>{const p=String(h.template_id??"").trim(),g=String(h.template_name??p).trim()||p,x=String(h.category??"").trim(),v=[x,p].filter(Boolean).join(" · ")||p;return{kind:"template",id:p,name:g,subtitle:v,category:x,searchText:`${p} ${g} ${x} ${(h.domains??[]).join(" ")} ${(h.tags??[]).join(" ")}`.toLowerCase(),rank:c(h)}}).filter(h=>h.id).sort((h,p)=>p.rank-h.rank||h.name.localeCompare(p.name));return[...d,...m,{kind:"fallback",id:"",name:"Fallback role-only",subtitle:"No employee override",category:"fallback",searchText:"fallback role only no employee override"}]}function oF(e,t){const n=GI(t);return e.find(i=>`${i.kind}:${i.id}`===n)??e[0]}function aF(e,t){const n=t.toLowerCase().split(/\s+/).filter(Boolean);return n.length===0?!0:n.every(i=>e.searchText.includes(i))}function oC(e,t){const n={},i=e.staffing_selections??{};for(const r of t){const o=String(r.role_id??"").trim();o&&(n[o]=UI(i[o]??r.default_selection))}return n}function aC(e,t){const n=e.recruitment_role_agents??{},i={};for(const r of t){const o=String(r.role_id??"").trim();o&&(i[o]=n[o]??r.selected_agent??r.default_agent??fv)}return i}function lF(e){return!!(String(e.checkpoint_response_message_id??"").trim()||String(e.checkpoint_responded_at??"").trim()||String(e.staffing_action??"").trim())}const cF=Tt.memo(function({meta:t,onReply:n,responded:i}){const r=C.useMemo(()=>t.staffing_roles??[],[t.staffing_roles]),o=t.staffing_pool?.employees??[],a=t.staffing_pool?.templates??[],c=C.useMemo(()=>{const L={};for(const A of r){const D=String(A.role_id??"").trim();D&&(L[D]=sF(A,o,a))}return L},[o,r,a]),[d,m]=C.useState({}),[h,p]=C.useState(()=>oC(t,r)),[g,x]=C.useState(()=>aC(t,r)),[v,b]=C.useState(t.recruitment_agent??uy),w=i,k=t.recommended_action==="auto_recruit"&&a.length>0;C.useEffect(()=>{!w||!lF(t)||(p(oC(t,r)),x(aC(t,r)),b(t.recruitment_agent??uy))},[w,t,r]),C.useEffect(()=>{b(t.recruitment_agent??uy)},[t.recruitment_agent]);const S=C.useCallback(L=>{const A=String(t.checkpoint_id??"").trim();if(!A)throw new Error("Staffing checkpoint reply requires checkpoint_id metadata.");return{response_to_checkpoint_id:A,response_to_checkpoint_type:"company_staffing_selection",staffing_action:L,staffing_selections:h,recruitment_agent:v,recruitment_role_agents:r.reduce((D,O)=>{const T=String(O.role_id??"").trim();return T&&(D[T]=g[T]??O.selected_agent??O.default_agent??fv),D},{})}},[t.checkpoint_id,v,g,r,h]),j=C.useCallback(()=>{w||n("approve",S("manual_approve"))},[S,w,n]),N=C.useCallback(()=>{w||n("auto recruit",S("auto_recruit"))},[S,w,n]);return u.jsxs("div",{className:"ckpt-panel ckpt-staffing",children:[u.jsxs("div",{className:"ckpt-header",children:[u.jsx("div",{className:"ckpt-icon ckpt-icon-staffing",children:u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[u.jsx("path",{d:"M6 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z"}),u.jsx("path",{d:"M1.5 14c.6-2.5 2.2-4 4.5-4s3.9 1.5 4.5 4"}),u.jsx("path",{d:"M12.5 3.5v5M10 6h5"})]})}),u.jsx("div",{className:"ckpt-title",children:"Manual Staffing"}),u.jsx("span",{className:"ckpt-badge ckpt-badge-profile",children:t.company_profile||"corporate"}),k&&!w&&u.jsx("span",{className:"ckpt-badge ckpt-badge-scope",children:"Recruit recommended"}),w&&u.jsx("span",{className:"ckpt-badge ckpt-badge-responded",children:"Responded"})]}),t.summary&&u.jsx("div",{className:"ckpt-summary",children:t.summary}),u.jsxs("div",{className:"ckpt-recruiter-agent",children:[u.jsx("label",{className:"ckpt-agent-label",htmlFor:`staffing-recruiter-agent-${t.checkpoint_id}`,children:"Recruiter Agent"}),u.jsx("select",{id:`staffing-recruiter-agent-${t.checkpoint_id}`,className:"ckpt-agent-select",value:v,onChange:L=>b(L.target.value),disabled:w,children:rF.map(L=>u.jsx("option",{value:L,children:sC[L]},L))})]}),u.jsx("div",{className:"ckpt-staffing-grid",children:r.map(L=>{const A=String(L.role_id??"").trim(),D=c[A]??[{kind:"fallback",id:"",name:"Fallback role-only",subtitle:"No employee override",category:"fallback",searchText:"fallback role only no employee override"}],O=oF(D,h[A]),T=d[A]??"",M=D.filter(I=>aF(I,T)).slice(0,8);return u.jsxs("div",{className:"ckpt-staffing-card",children:[u.jsxs("div",{className:"ckpt-proposal-header",children:[u.jsx("span",{className:"ckpt-role-name",children:A}),u.jsx("span",{className:`ckpt-badge ckpt-badge-${O.kind}`,children:O.kind})]}),L.role_label&&L.role_label!==A&&u.jsx("div",{className:"ckpt-role-labels",children:u.jsx("span",{className:"ckpt-field-tag",children:L.role_label})}),u.jsxs("div",{className:"ckpt-staffing-selected",children:[u.jsx("div",{className:"ckpt-cand-name",children:O.name}),u.jsxs("div",{className:"ckpt-cand-meta",children:[u.jsx("span",{className:"ckpt-cand-category",children:O.category}),u.jsx("span",{className:"ckpt-domain-tag",children:O.subtitle})]})]}),u.jsx("input",{className:"ckpt-staffing-search",value:T,onChange:I=>m(H=>({...H,[A]:I.target.value})),placeholder:"Search employees or templates...",disabled:w}),u.jsx("div",{className:"ckpt-staffing-options",children:M.map(I=>{const H=`${I.kind}:${I.id}`===GI(h[A]);return u.jsxs("button",{className:`ckpt-staffing-option${H?" active":""}`,onClick:()=>p(Y=>({...Y,[A]:{kind:I.kind,id:I.id}})),disabled:w,title:I.subtitle,children:[u.jsx("span",{className:"ckpt-staffing-option-kind",children:I.kind}),u.jsx("span",{className:"ckpt-staffing-option-name",children:I.name})]},`${I.kind}:${I.id}`)})}),u.jsxs("div",{className:"ckpt-agent-picker",children:[u.jsx("label",{className:"ckpt-agent-label",htmlFor:`staffing-agent-${t.checkpoint_id}-${A}`,children:"Execution Agent"}),u.jsx("select",{id:`staffing-agent-${t.checkpoint_id}-${A}`,className:"ckpt-agent-select",value:g[A]??L.selected_agent??L.default_agent??fv,onChange:I=>x(H=>({...H,[A]:I.target.value})),disabled:w,children:iF.map(I=>u.jsx("option",{value:I,children:sC[I]},I))})]})]},A)})}),!w&&u.jsx("div",{className:"ckpt-actions",children:k?u.jsxs(u.Fragment,{children:[u.jsx("button",{className:"ckpt-btn ckpt-btn-approve",onClick:N,children:"Auto Recruit"}),u.jsx("button",{className:"ckpt-btn ckpt-btn-feedback",onClick:j,children:"Approve Selections"})]}):u.jsxs(u.Fragment,{children:[u.jsx("button",{className:"ckpt-btn ckpt-btn-approve",onClick:j,children:"Approve Selections"}),a.length>0&&u.jsx("button",{className:"ckpt-btn ckpt-btn-feedback",onClick:N,children:"Auto Recruit"})]})})]})}),uF={task_adjustment:"Task Adjustment",runtime_replan:"Runtime Replan",org_mutation:"Org Mutation"},lC={low:"var(--green)",medium:"var(--yellow)",high:"var(--red)"},dF=Tt.memo(function({meta:t,onReply:n,responded:i}){const r=i,o=C.useCallback(()=>{r||n("approve")},[r,n]),a=C.useCallback(()=>{r||n("deny")},[r,n]),c=t.role_changes??[],d=t.work_item_projection_changes??[],m=t.scope||"org_mutation",h=t.risk_level||"medium",p=t.impact_summary||{};return u.jsxs("div",{className:"ckpt-panel ckpt-reorg",children:[u.jsxs("div",{className:"ckpt-header",children:[u.jsx("div",{className:"ckpt-icon ckpt-icon-reorg",children:u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[u.jsx("rect",{x:"1",y:"1",width:"5",height:"5",rx:"1"}),u.jsx("rect",{x:"10",y:"1",width:"5",height:"5",rx:"1"}),u.jsx("rect",{x:"5.5",y:"10",width:"5",height:"5",rx:"1"}),u.jsx("path",{d:"M3.5 6v2.5a1 1 0 001 1h7a1 1 0 001-1V6"}),u.jsx("path",{d:"M8 9.5V10"})]})}),u.jsx("div",{className:"ckpt-title",children:t.title||"Company Reorg"}),r&&u.jsx("span",{className:"ckpt-badge ckpt-badge-responded",children:"Responded"})]}),u.jsxs("div",{className:"ckpt-reorg-badges",children:[u.jsx("span",{className:"ckpt-badge ckpt-badge-scope",children:uF[m]||m}),u.jsxs("span",{className:"ckpt-badge",style:{color:lC[h]||"var(--text-secondary)",borderColor:lC[h]||"var(--border)"},children:["Risk: ",h.charAt(0).toUpperCase()+h.slice(1)]})]}),t.summary&&u.jsx("div",{className:"ckpt-summary",children:t.summary}),t.rationale&&u.jsx("div",{className:"ckpt-rationale",children:t.rationale}),c.length>0&&u.jsxs("div",{className:"ckpt-changes-section",children:[u.jsx("div",{className:"ckpt-changes-title",children:"Role Changes"}),c.map((g,x)=>u.jsxs("div",{className:"ckpt-change-row",children:[u.jsx("span",{className:`ckpt-change-action ckpt-action-${g.action}`,children:g.action}),u.jsx("span",{className:"ckpt-change-id",children:g.role_id}),g.replacement_role_id&&u.jsxs(u.Fragment,{children:[u.jsx("span",{className:"ckpt-change-arrow",children:"→"}),u.jsx("span",{className:"ckpt-change-id",children:g.replacement_role_id})]}),g.reason&&u.jsx("span",{className:"ckpt-change-reason",children:g.reason})]},x))]}),d.length>0&&u.jsxs("div",{className:"ckpt-changes-section",children:[u.jsx("div",{className:"ckpt-changes-title",children:"Work Item Projection Changes"}),d.map((g,x)=>u.jsxs("div",{className:"ckpt-change-row",children:[u.jsx("span",{className:`ckpt-change-action ckpt-action-${g.action}`,children:g.action}),u.jsx("span",{className:"ckpt-change-id",children:g.work_item_projection_id}),g.replacement_work_item_projection_id&&u.jsxs(u.Fragment,{children:[u.jsx("span",{className:"ckpt-change-arrow",children:"→"}),u.jsx("span",{className:"ckpt-change-id",children:g.replacement_work_item_projection_id})]}),g.reason&&u.jsx("span",{className:"ckpt-change-reason",children:g.reason})]},x))]}),Object.keys(p).length>0&&u.jsxs("div",{className:"ckpt-impact",children:[p.affected_tasks!=null&&u.jsxs("span",{children:["Tasks affected: ",p.affected_tasks]}),p.affected_roles!=null&&u.jsxs("span",{children:["Roles affected: ",p.affected_roles]}),p.migration_count!=null&&u.jsxs("span",{children:["Migrations: ",p.migration_count]})]}),!r&&u.jsxs("div",{className:"ckpt-actions",children:[u.jsx("button",{className:"ckpt-btn ckpt-btn-approve",onClick:o,children:"Approve Reorg"}),u.jsx("button",{className:"ckpt-btn ckpt-btn-deny",onClick:a,children:"Deny"})]})]})}),fF=3e4;function mF(e){return e.split(` +`).map(t=>t.trim()).find(Boolean)??e}function pF(e){switch(e){case"timeout":case"timed_out":case"expired":return"Expired";case"stale":case"invalid":return"Inactive";case"cancelled":case"canceled":return"Cancelled";case"resolved":return"Resolved";default:return"Responded"}}const cC=Tt.memo(function({meta:t,onReply:n,responded:i}){const r=i,o=String(t.checkpoint_status??"").trim().toLowerCase(),a=pF(o),c=String(t.prompt??t.summary??""),d=C.useMemo(()=>c.split(` +`).map(L=>L.trim()).filter(Boolean),[c]),m=mF(c).replace(/^\[[^\]]+\]\s*/,"")||"Action Required",h=d.slice(1).join(` +`).trim(),p=String(t.summary??"").trim(),g=(t.options??[]).filter(L=>!!L?.id),x=C.useMemo(()=>(t.active_subagents??[]).filter(L=>!!L&&typeof L=="object"),[t.active_subagents]),v=C.useMemo(()=>(t.permission_requests??[]).filter(L=>!!L&&typeof L=="object"),[t.permission_requests]),b=String(t.worktree_path??"").trim(),w=x.length>0||v.length>0||!!b,[k,S]=C.useState(""),j=!!k&&!r;C.useEffect(()=>{if(!j)return;const L=window.setTimeout(()=>S(""),fF);return()=>window.clearTimeout(L)},[j,k]);const N=C.useCallback(L=>{r||j||(S(L.id),n(L.label||L.id))},[r,j,n]);return u.jsxs("div",{className:"ckpt-panel ckpt-escalation",children:[u.jsxs("div",{className:"ckpt-header",children:[u.jsx("div",{className:"ckpt-icon ckpt-icon-escalation",children:u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[u.jsx("path",{d:"M8 1.5L14.5 13H1.5L8 1.5Z"}),u.jsx("path",{d:"M8 5.5V9"}),u.jsx("circle",{cx:"8",cy:"11.5",r:"0.75",fill:"currentColor",stroke:"none"})]})}),u.jsx("div",{className:"ckpt-title",children:m}),u.jsx("span",{className:"ckpt-badge ckpt-badge-scope",children:String(t.escalation_type??"decision_needed").replace(/_/g," ")}),r&&u.jsx("span",{className:"ckpt-badge ckpt-badge-responded",children:a})]}),p&&p!==m&&u.jsxs("div",{className:"ckpt-section",children:[u.jsx("div",{className:"ckpt-section-title",children:"Summary"}),u.jsx(bi,{content:p,className:"ckpt-markdown"})]}),h&&u.jsxs("div",{className:"ckpt-section",children:[u.jsx("div",{className:"ckpt-section-title",children:"Request"}),u.jsx(bi,{content:h,className:"ckpt-markdown"})]}),w&&u.jsxs("details",{className:"ckpt-runtime-details",children:[u.jsx("summary",{children:"Runtime State"}),u.jsxs("div",{className:"ckpt-runtime-body",children:[b&&u.jsxs("div",{children:["Worktree: ",u.jsx("code",{children:b})]}),x.length>0&&u.jsxs("div",{children:["Active subagents: ",x.length]}),v.length>0&&u.jsxs("div",{children:["Pending permission records: ",v.length]})]})]}),!r&&g.length>0&&u.jsx("div",{className:"ckpt-actions ckpt-escalation-actions",children:g.map(L=>u.jsx("button",{className:`ckpt-btn ${L.id.includes("deny")?"ckpt-btn-deny":"ckpt-btn-approve"}${j?" ckpt-btn-submitting":""}`,onClick:()=>N(L),disabled:j,children:j&&k===L.id?"Submitting…":L.label||L.id},L.id))}),j&&u.jsx("div",{className:"ckpt-escalation-hint",children:"Decision sent — waiting for server confirmation…"}),!r&&t.default_action&&u.jsxs("div",{className:"ckpt-escalation-hint",children:["Default on timeout: ",u.jsx("code",{children:t.default_action})]})]})});function hF(e){return e.split(` +`).map(t=>t.trim()).find(Boolean)??e}function gF(e){switch(e){case"ignored":return"Ignored";case"timeout":case"timed_out":case"expired":return"Expired";case"stale":case"invalid":return"Inactive";case"superseded":return"Superseded";case"cancelled":case"canceled":return"Cancelled";case"resolved":return"Resolved";default:return"Responded"}}const yF=Tt.memo(function({meta:t,onReply:n,responded:i}){const r=i,[o,a]=C.useState(""),[c,d]=C.useState(null),m=String(t.checkpoint_status??"").trim().toLowerCase(),h=gF(m),p=String(t.prompt??t.summary??"").trim(),x=`${String(t.work_item_projection_title??hF(p)??"Human Review").trim()||"Human Review"} (for self-evolution)`,v=String(t.summary??"").trim(),b=C.useMemo(()=>(t.active_subagents??[]).filter(O=>!!O&&typeof O=="object"),[t.active_subagents]),w=C.useMemo(()=>(t.permission_requests??[]).filter(O=>!!O&&typeof O=="object"),[t.permission_requests]),k=String(t.worktree_path??"").trim(),S=b.length>0||w.length>0||!!k,j=r||c!==null,N=C.useCallback((O,T="")=>{const M=String(t.checkpoint_id??"").trim();if(!M)throw new Error("Delivery self-evolution reply requires checkpoint_id metadata.");const I={response_to_checkpoint_id:M,response_to_checkpoint_type:"company_delivery_feedback",checkpoint_reply_kind:O};return(O==="approve"||O==="feedback")&&(I.self_evolution_trigger=!0,I.human_feedback_text=T),I},[t.checkpoint_id]),L=C.useCallback(()=>{if(j)return;const O=N("approve");d("approve"),n("I fully agree with this delivery.",O)},[j,N,n]),A=C.useCallback(()=>{const O=o.trim();if(j||!O)return;const T=N("feedback",O);d("feedback"),n(O,T),a("")},[j,N,o,n]),D=C.useCallback(()=>{if(j)return;const O=N("ignore");d("ignore"),n("Ignore this self-evolution review.",O)},[j,N,n]);return u.jsxs("div",{className:"ckpt-panel ckpt-delivery-feedback",children:[u.jsxs("div",{className:"ckpt-header",children:[u.jsx("div",{className:"ckpt-icon ckpt-icon-user-input",children:u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[u.jsx("path",{d:"M8 1.5L14 5v4.5c0 2.25-1.8 4.25-6 5-4.2-.75-6-2.75-6-5V5L8 1.5Z"}),u.jsx("path",{d:"M5.5 8.25L7.25 10l3.25-4"})]})}),u.jsx("div",{className:"ckpt-title",children:x}),u.jsx("span",{className:"ckpt-badge ckpt-badge-scope",children:String(t.feedback_scope??"final").replace(/_/g," ")}),r&&u.jsx("span",{className:"ckpt-badge ckpt-badge-responded",children:h})]}),v&&v!==x&&u.jsxs("div",{className:"ckpt-section",children:[u.jsx("div",{className:"ckpt-section-title",children:"Summary"}),u.jsx(bi,{content:v,className:"ckpt-markdown"})]}),p&&u.jsxs("div",{className:"ckpt-section",children:[u.jsx("div",{className:"ckpt-section-title",children:"Review Request"}),u.jsx(bi,{content:p,className:"ckpt-markdown"})]}),S&&u.jsxs("details",{className:"ckpt-runtime-details",children:[u.jsx("summary",{children:"Runtime State"}),u.jsxs("div",{className:"ckpt-runtime-body",children:[k&&u.jsxs("div",{children:["Worktree: ",u.jsx("code",{children:k})]}),b.length>0&&u.jsxs("div",{children:["Active subagents: ",b.length]}),w.length>0&&u.jsxs("div",{children:["Pending permission records: ",w.length]})]})]}),!r&&u.jsxs("div",{className:"ckpt-actions ckpt-actions-inline-feedback",children:[u.jsx("button",{className:"ckpt-btn ckpt-btn-approve",onClick:L,disabled:j,children:"Fully Agree"}),u.jsx("button",{className:"ckpt-btn ckpt-btn-cancel",onClick:D,disabled:j,children:"Ignore"}),u.jsx("textarea",{className:"ckpt-feedback-input ckpt-feedback-inline-input",placeholder:"Feedback for self-evolution...",value:o,onChange:O=>a(O.target.value),disabled:j,rows:2}),u.jsx("button",{className:"ckpt-btn ckpt-btn-feedback",onClick:A,disabled:j||!o.trim(),children:"Send Feedback"})]})]})}),mf="__other__",xF=["A","B","C"];function es(e){return String(e??"").trim()}function vF(e,t){const n=es(e.question),i=es(e.header);if(!n&&!i)return null;const r=(e.options??[]).slice(0,3).map((o,a)=>({id:es(o.id)||String.fromCharCode(97+a),label:es(o.label),description:es(o.description)})).filter(o=>o.label);return{id:es(e.id)||`question_${t+1}`,header:i,question:n||i,options:r,allow_freeform:e.allow_freeform!==!1,required:e.required!==!1}}const bF=Tt.memo(function({meta:t,onReply:n,responded:i}){const[r,o]=C.useState(""),[a,c]=C.useState({}),d=i,m=String(t.work_item_projection_title??t.work_item_projection_id??"Input Needed").trim()||"Input Needed",h=String(t.summary??"").trim(),p=String(t.prompt??"").trim(),g=String(t.context_note??"").trim(),x=String(t.resume_hint??"").trim(),v=C.useMemo(()=>(t.questions??[]).map(G=>String(G).trim()).filter(Boolean),[t.questions]),b=C.useMemo(()=>(t.input_questions??[]).map((G,q)=>vF(G,q)).filter(G=>G!==null),[t.input_questions]),w=b.some(G=>(G.options??[]).length>0),k=C.useMemo(()=>(t.required_fields??[]).map(G=>String(G).trim()).filter(Boolean),[t.required_fields]),S=C.useMemo(()=>(t.active_subagents??[]).filter(G=>!!G&&typeof G=="object"),[t.active_subagents]),j=C.useMemo(()=>(t.permission_requests??[]).filter(G=>!!G&&typeof G=="object"),[t.permission_requests]),N=String(t.worktree_path??"").trim(),L=String(t.requesting_role_id??"").trim(),A=String(t.requesting_task_id??"").trim(),D=String(t.requesting_work_item_id??"").trim(),O=String(t.seat_id??"").trim(),M=!!L||!!A||!!D||!!O||S.length>0||j.length>0||!!N,I=C.useCallback((G,q)=>{c(K=>({...K,[G]:{freeformText:K[G]?.freeformText??"",selectedOptionId:q}}))},[]),H=C.useCallback((G,q)=>{c(K=>({...K,[G]:{selectedOptionId:K[G]?.selectedOptionId,freeformText:q}}))},[]),Y=C.useCallback(G=>{if(G.required===!1)return!0;const q=a[G.id],K=q?.selectedOptionId;return!!(K&&K!==mf||G.allow_freeform!==!1&&es(q?.freeformText))},[a]),P=w&&b.every(Y),U=C.useCallback(()=>{const G=r.trim();d||!G||n(G)},[d,n,r]),$=C.useCallback(()=>{if(d||!P)return;const G={},q=[];b.forEach(K=>{const W=a[K.id]??{freeformText:""},V=(K.options??[]).find(ee=>ee.id===W.selectedOptionId),Q=es(W.freeformText),Z=[V?.label??"",Q].filter(Boolean).join("; ");G[K.id]={question_id:K.id,question:K.question,...V?{selected_option_id:V.id,selected_label:V.label}:{},...Q?{freeform_text:Q}:{},answer_text:Z};const te=es(K.header)||es(K.question)||K.id;q.push(`- ${te}: ${Z||"(no answer)"}`)}),n(q.join(` +`),{user_input_answers:G})},[a,P,b,d,n]);return u.jsxs("div",{className:"ckpt-panel ckpt-user-input",children:[u.jsxs("div",{className:"ckpt-header",children:[u.jsx("div",{className:"ckpt-icon ckpt-icon-user-input",children:u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[u.jsx("path",{d:"M3 3.5h10v6H6.5L3 13V3.5Z"}),u.jsx("path",{d:"M5.5 6h5"}),u.jsx("path",{d:"M5.5 8h3.5"})]})}),u.jsx("div",{className:"ckpt-title",children:m}),u.jsx("span",{className:"ckpt-badge ckpt-badge-scope",children:"awaiting input"}),d&&u.jsx("span",{className:"ckpt-badge ckpt-badge-responded",children:"Responded"})]}),h&&u.jsxs("div",{className:"ckpt-section",children:[u.jsx("div",{className:"ckpt-section-title",children:"Summary"}),u.jsx(bi,{content:h,className:"ckpt-markdown"})]}),p&&u.jsxs("div",{className:"ckpt-section",children:[u.jsx("div",{className:"ckpt-section-title",children:"Request"}),u.jsx(bi,{content:p,className:"ckpt-markdown"})]}),w?u.jsxs("div",{className:"ckpt-section",children:[u.jsx("div",{className:"ckpt-section-title",children:"Questions"}),u.jsx("div",{className:"ckpt-choice-list",children:b.map(G=>{const q=a[G.id]??{freeformText:""},K=G.options??[],W=G.allow_freeform!==!1,V=W&&(K.length===0||q.selectedOptionId===mf);return u.jsxs("div",{className:"ckpt-choice-question",children:[G.header&&u.jsx("div",{className:"ckpt-question-header",children:G.header}),u.jsx(bi,{content:G.question,className:"ckpt-markdown"}),K.length>0&&u.jsxs("div",{className:"ckpt-choice-grid",children:[K.map((Q,B)=>{const Z=q.selectedOptionId===Q.id;return u.jsxs("button",{className:`ckpt-choice-option${Z?" is-selected":""}`,onClick:()=>I(G.id,Q.id),children:[u.jsx("span",{className:"ckpt-choice-letter",children:xF[B]??"?"}),u.jsxs("span",{className:"ckpt-choice-copy",children:[u.jsx("span",{className:"ckpt-choice-label",children:Q.label}),Q.description&&u.jsx("span",{className:"ckpt-choice-desc",children:Q.description})]})]},Q.id)}),W&&u.jsxs("button",{className:`ckpt-choice-option${q.selectedOptionId===mf?" is-selected":""}`,onClick:()=>I(G.id,mf),children:[u.jsx("span",{className:"ckpt-choice-letter",children:"D"}),u.jsxs("span",{className:"ckpt-choice-copy",children:[u.jsx("span",{className:"ckpt-choice-label",children:"Other"}),u.jsx("span",{className:"ckpt-choice-desc",children:"Enter a custom answer"})]})]})]}),V&&u.jsx("textarea",{className:"ckpt-feedback-input ckpt-other-field",placeholder:"Type your answer...",value:q.freeformText,onChange:Q=>H(G.id,Q.target.value),rows:3})]},G.id)})})]}):v.length>0&&u.jsxs("div",{className:"ckpt-section",children:[u.jsx("div",{className:"ckpt-section-title",children:"Questions"}),u.jsx("ul",{className:"ckpt-task-list",children:v.map(G=>u.jsx("li",{children:G},G))})]}),k.length>0&&u.jsxs("div",{className:"ckpt-section",children:[u.jsx("div",{className:"ckpt-section-title",children:"Required Fields"}),u.jsx("div",{className:"ckpt-task-tags",children:k.map(G=>u.jsx("span",{className:"ckpt-field-tag",children:G},G))})]}),g&&u.jsxs("div",{className:"ckpt-section",children:[u.jsx("div",{className:"ckpt-section-title",children:"Context"}),u.jsx(bi,{content:g,className:"ckpt-markdown ckpt-markdown-muted"})]}),x&&u.jsx("div",{className:"ckpt-escalation-hint",children:x}),M&&u.jsxs("details",{className:"ckpt-runtime-details",children:[u.jsx("summary",{children:"Runtime State"}),u.jsxs("div",{className:"ckpt-runtime-body",children:[L&&u.jsxs("div",{children:["Requester: ",u.jsx("code",{children:L})]}),D&&u.jsxs("div",{children:["Work item: ",u.jsx("code",{children:D})]}),A&&u.jsxs("div",{children:["Task: ",u.jsx("code",{children:A})]}),O&&u.jsxs("div",{children:["Seat: ",u.jsx("code",{children:O})]}),N&&u.jsxs("div",{children:["Worktree: ",u.jsx("code",{children:N})]}),S.length>0&&u.jsxs("div",{children:["Active subagents: ",S.length]}),j.length>0&&u.jsxs("div",{children:["Pending permission records: ",j.length]})]})]}),!d&&u.jsxs("div",{className:"ckpt-feedback-area",children:[w?null:u.jsx("textarea",{className:"ckpt-feedback-input",placeholder:"Reply with the missing input to continue...",value:r,onChange:G=>o(G.target.value),rows:3}),u.jsx("div",{className:"ckpt-feedback-btns",children:u.jsx("button",{className:"ckpt-btn ckpt-btn-approve",onClick:w?$:U,disabled:w?!P:!r.trim(),children:"Send Reply"})})]})]})}),mv={todo:"To do",in_progress:"In progress",in_review:"In review",done:"Done"};function dy(e,t){if(t&&t in mv)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 pf(e){return mv[e]??mv.todo}const uC={active:0,waiting:1,failed:2,done:3,pending:4};function _F(e){if(e.length===0)return"pending";let t=e[0],n=uC[t]??99;for(const i of e){const r=uC[i]??99;r12&&/^[0-9a-f-]+$/i.test(e.replace(/_/g,""))}function pl(e){return typeof e=="string"?e.trim():""}function fy(...e){for(const t of e){const n=pl(t);if(n)return n}return""}function SF(e){const t=pl(e);return t?kF[t]??g0(t):""}function wF(e){return e==="done"?u.jsx("span",{className:"wi-projection-icon",children:"✓"}):e==="active"?u.jsx("span",{className:"wi-projection-icon wi-projection-pulse",children:"●"}):e==="failed"?u.jsx("span",{className:"wi-projection-icon",children:"✗"}):e==="waiting"?u.jsx("span",{className:"wi-projection-icon",children:"●"}):null}const CF={active:"active",waiting:"waiting",pending:"pending",done:"done",failed:"failed"};function jF(e){return e?e==="in-progress"?"in_progress":e==="in-review"?"in_review":e:"todo"}function EF(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 NF(e){const t=pl(e.status).toLowerCase();return t==="done"||t==="delivered"?"done":t==="failed"||t==="cancelled"?"failed":t==="awaiting_peer"||t==="awaiting_manager_review"||t==="awaiting_human"||t==="awaiting_review"||t==="blocked"||t==="paused"||t==="awaiting_owner"?"waiting":t==="running"||t==="deliverable"||t==="active"||t==="ready"?"active":"pending"}function qI({workItemLog:e,roleWorkItems:t,executorRoleWorkItems:n,childSessions:i,isCompanyRuntime:r=!1,onWorkItemClick:o}){const a=C.useMemo(()=>{const b=new Map;for(const w of i??[]){b.set(w.taskId,w);const k=go(w);k&&b.set(k,w)}return b},[i]),c=C.useMemo(()=>{const b=new Map,w=[];for(const k of e){const S=go(k),j=k.workItemProjectionId??S??"";if(!j)continue;if(!b.has(j)){w.push(j);const L=k.workItemProjectionTitle??j,A=k.roleName||(dC(L)?"Agent":L);b.set(j,{projectionId:j,title:A,roleName:k.roleName,status:"pending",executionTurnId:S})}const N=b.get(j);switch(k.roleName?(N.roleName=k.roleName,N.title=k.roleName):k.workItemProjectionTitle&&!dC(k.workItemProjectionTitle)&&(N.title=k.workItemProjectionTitle),S&&(N.executionTurnId=S),k.type){case"work_item_started":N.status="active";break;case"gate_approved":N.status="done";break;case"gate_rejected":N.status="active";break;case"awaiting_manager_review":case"awaiting_human":case"awaiting_review":case"awaiting_peer":N.status="waiting";break;case"work_item_failed":case"deadlock":N.status="failed";break}}for(const k of b.values()){if(!k.executionTurnId)continue;const S=a.get(k.executionTurnId);if(!S)continue;const j=$g(S);j&&(k.title=j),S.workItemRoleName&&(k.roleName=S.workItemRoleName),S.status==="done"?k.status="done":S.status==="failed"&&(k.status="failed")}return w.map(k=>b.get(k))},[e,a]),d=C.useMemo(()=>{const b=new Map;for(const w of e){const k=go(w);k&&!b.has(k)&&b.set(k,b.size)}return b},[e]),m=n??t,h=C.useMemo(()=>{if(!m)return[];const b=[];for(const w of Object.values(m)){if(!w||!Array.isArray(w.workItems)||w.workItems.length===0)continue;const S=[...w.workItems].sort((D,O)=>D.createdAt-O.createdAt).map(D=>{const O=jF(D.kanbanColumn),T=EF(D.phase);return{executionTurnId:D.executionTurnId??"",title:pl(D.title)||pl(D.executorRoleName)||pl(D.executorRoleId)||"Work item",status:T,statusLabel:pf(O),columnId:O,updatedAt:D.updatedAt,workItemId:D.workItemId,progressLog:D.progressLog,activitySections:D.activitySections??[],isReviewTarget:D.isReviewTarget}}),j=CF[w.aggregatedStatus]??"pending",N=dy(j),L=S[S.length-1],A=[...S].reverse().find(D=>!!D.executionTurnId)?.executionTurnId??"";b.push({roleKey:w.roleKey,executionTurnId:L.executionTurnId||A,title:w.roleName||w.roleId,status:j,statusLabel:pf(N),roleName:w.roleName,updatedAt:S.reduce((D,O)=>Math.max(D,O.updatedAt),0),turns:S,runtimeStatus:w.runtimeStatus})}return b.sort((w,k)=>{const S=w.turns[0]?.updatedAt??Number.POSITIVE_INFINITY,j=k.turns[0]?.updatedAt??Number.POSITIVE_INFINITY;return S-j}),b},[m]),p=C.useMemo(()=>{const b=[...i??[]];if(b.length===0)return[];const w=new Map,k=[];for(const j of b){const N=fy(j.workItemRoleId,j.assigneeIds[0],j.taskId);w.has(N)||(w.set(N,[]),k.push(N)),w.get(N).push(j)}k.sort((j,N)=>{const L=w.get(j)??[],A=w.get(N)??[],D=Math.min(...L.map(I=>d.get(go(I)||I.taskId)??Number.POSITIVE_INFINITY)),O=Math.min(...A.map(I=>d.get(go(I)||I.taskId)??Number.POSITIVE_INFINITY));if(D!==O)return D-O;const T=Math.min(...L.map(I=>I.updatedAt)),M=Math.min(...A.map(I=>I.updatedAt));return T-M});const S=[];for(const j of k){const N=w.get(j)??[];if(N.length===0)continue;const L=N.slice().sort((I,H)=>I.updatedAt-H.updatedAt).map(I=>{const H=NF(I),Y=go(I),P=dy(H,String(I.columnId??"").trim()||void 0);return{executionTurnId:Y||I.taskId,title:fy($g(I),I.title,I.workItemRoleName,I.workItemRoleId,"Turn"),status:H,statusLabel:pf(P),columnId:P,updatedAt:I.updatedAt}}),A=L[L.length-1],D=_F(L.map(I=>I.status)),O=dy(D),T=N[0],M=fy(T.workItemRoleName,T.workItemRoleId,T.assigneeIds[0],$g(T),T.title,"Agent");S.push({roleKey:j,executionTurnId:A.executionTurnId,title:M,status:D,statusLabel:pf(O),executionAgent:SF(T.selectedExecutionAgent??T.preferredAgent),roleName:T.workItemRoleName,updatedAt:Math.max(...N.map(I=>I.updatedAt)),turns:L})}return S},[i,d]),g=C.useMemo(()=>h.length>0?h:r?[]:p,[r,h,p]),x=C.useMemo(()=>g.length>0?g.map(b=>({projectionId:b.roleKey,title:b.title,roleName:b.roleName,status:b.status,executionTurnId:b.executionTurnId})):r?[]:c,[r,g,c]),v=r&&g.length===0;return!r&&e.length===0&&x.length===0&&g.length===0?null:u.jsxs("div",{className:"wi-progress-card",children:[u.jsxs("div",{className:"wi-progress-header",children:[u.jsx(Mm,{}),u.jsx("span",{children:"Execution Progress"})]}),x.length>0&&u.jsx("div",{className:"wi-progress-pipeline",children:x.map((b,w)=>u.jsxs("div",{className:"wi-projection-group",children:[u.jsxs("button",{type:"button",className:`wi-projection-chip wi-projection-${b.status}`,onClick:()=>o?.(b.executionTurnId||""),title:`Open Runtime Session${b.roleName?`: ${b.title} (${b.roleName})`:`: ${b.title}`}`,children:[u.jsx("span",{className:"wi-projection-label",children:b.title}),wF(b.status)]}),wc.mime_type?.startsWith("image/")),i=e.filter(c=>c.mime_type?.startsWith("video/")),r=e.filter(c=>!c.mime_type?.startsWith("image/")&&!c.mime_type?.startsWith("video/")),o=n.length===1?"":(n.length<=3," cols-2"),a=i.length===1?"":(i.length<=3," cols-2");return u.jsxs("div",{className:"msg-attachments",children:[n.length>0&&u.jsx("div",{className:`msg-attachment-grid${o}`,children:n.map(c=>{const d=`/api/attachments/${c.attachment_id}/${c.filename}`;return u.jsx("img",{className:"msg-attachment-image",src:d,alt:c.filename,loading:"lazy",onClick:()=>t?.(d)},c.attachment_id)})}),i.length>0&&u.jsx("div",{className:`msg-attachment-grid${a}`,children:i.map(c=>{const d=`/api/attachments/${c.attachment_id}/${c.filename}`;return u.jsx("video",{className:"msg-attachment-video",src:d,controls:!0,preload:"metadata",playsInline:!0},c.attachment_id)})}),r.length>0&&u.jsx("div",{className:"msg-attachment-files",children:r.map(c=>u.jsxs("a",{className:"msg-attachment-file-chip",href:`/api/attachments/${c.attachment_id}/${c.filename}`,download:!0,title:c.filename,children:["📎 ",c.filename,u.jsx("span",{className:"msg-attachment-file-size",children:c.size_bytes<1024?`${c.size_bytes}B`:c.size_bytes<1048576?`${(c.size_bytes/1024).toFixed(0)}KB`:`${(c.size_bytes/1048576).toFixed(1)}MB`})]},c.attachment_id))})]})}const fC=new WeakMap;function my(e){if(!e||typeof e!="object")return"";const t=fC.get(e);if(t!==void 0)return t;const n=JSON.stringify(e)??"";return fC.set(e,n),n}function TF(e){if(e.kind==="message"){const{msg:n}=e;return[e.kind,e.id,e.timestamp,n.sender,n.senderName,n.senderDeleted,n.content,n.replyToId,my(n.mentions),my(n.metadata)]}if(e.kind==="progress"){const{entry:n}=e;return[e.kind,e.id,e.timestamp,n.type,n.summary,n.detail,n.turnId,n.itemId,n.streamId,n.toolCallId,n.permissionGroupKey,n.seq,n.executionMode]}if(e.kind==="draft")return[e.kind,e.id,e.timestamp,e.text,e.iteration];const t=[e.kind,e.id,e.timestamp];for(const{msg:n,classification:i}of e.events)t.push(n.id,n.timestamp,n.content,my(n.metadata),i.kind,i.label,i.summary,i.tone);return t}function RF(e,t){return!e||e.length!==t.length?!1:t.every((n,i)=>{const r=e[i];return r.length===n.length&&n.every((o,a)=>o===r[a])})}const mC=["#F59E0B","#10B981","#3B82F6","#8B5CF6","#EC4899","#06B6D4","#F97316","#6366F1"],pC=new Map;function WI(e){const t=pC.get(e);if(t)return t;let n=0;for(let r=0;rd.toUpperCase());let a="●",c="active";return r.includes("gate passed")||r.includes("approved")||r.includes("completed")?(a="✓",c="passed"):r.includes("rejected")||r.includes("reworking")?(a="↻",c="rejected"):r.includes("failed")||r.includes("timed out")?(a="✗",c="failed"):r.includes("awaiting")&&(a="⏳",c="waiting"),{projectionId:n,workItemName:o,action:i,icon:a,statusClass:c}}const DF={session:{icon:u.jsx(B4,{}),title:"New Conversation",hint:"Send a message to start working with your OPC system"},activity:{icon:u.jsx(hE,{}),title:"Activity Feed",hint:"Agent activity across all sessions will appear here."},secretary:{icon:u.jsx(yu,{}),title:"Secretary",hint:"Manage policies, rules, and preferences for your agents."}},OF=5*6e4,LF=200,py=200,zF=2;function Qo(e){return e.scrollHeight-e.scrollTop-e.clientHeight<=zF}function hC(e){return!String(e.id??"").startsWith("msg-")}function ra(e){return Uv(e)}function wo(e){return new Date(e).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",hour12:!1})}function Ms(e){return new Date(e).toLocaleString([],{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"})}async function PF(e){if(typeof navigator<"u"&&navigator.clipboard?.writeText)try{return await navigator.clipboard.writeText(e),!0}catch{}if(typeof document>"u"||!document.body)return!1;const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="fixed",t.style.top="0",t.style.left="-9999px",t.style.opacity="0",document.body.appendChild(t);try{return t.focus(),t.select(),t.setSelectionRange(0,t.value.length),document.execCommand("copy")}catch{return!1}finally{document.body.removeChild(t)}}function BF(e){return String(e.metadata?.transcript_kind??"").trim()==="runtime_v2_user_turn"}function hy(e){return e.replace(/\s+/g," ").trim()}function gC(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 $F(e){const t=String(e||"").trim();if(!t)return null;if(t.startsWith("{")&&t.endsWith("}")){const c=gC(t);return c?{obj:c}:null}const n=t.indexOf("{"),i=t.lastIndexOf("}");if(n<=0||i<=n)return null;const o=t.slice(0,n).trim().replace(/\*/g,"").replace(/:\s*$/,"").trim();if(!/\b(report|review)\b/i.test(o))return null;const a=gC(t.slice(n,i+1));return a?{obj:a,title:o||void 0}:null}function hl(e){return typeof e=="string"?e.trim():""}function yC(e,t=4){if(!Array.isArray(e))return[];const n=[];for(const i of e){const r=typeof i=="string"?i.trim():i&&typeof i=="object"&&"summary"in i?hl(i.summary):"";if(r&&n.push(r),n.length>=t)break}return n}function HF(e){if(!Array.isArray(e))return[];const t=[];for(const n of e){if(!n||typeof n!="object")continue;const i=n,r=hl(i.path),o=hl(i.name)||r.split("/").filter(Boolean).pop()||"Artifact";t.push({name:o,path:r,status:hl(i.status)||void 0})}return t}function FF(e){if(!Array.isArray(e))return;const t=e.filter(i=>i&&typeof i=="object").length;return t?`${e.filter(i=>i.met===!0).length}/${t} acceptance checks met`:void 0}function VF(e){const t=$F(e);if(!t)return null;const{obj:n,title:i}=t,r=hl(n.summary),o=hl(n.review_verdict),a=HF(n.deliverables),c=yC(n.risks),d=yC(n.next_actions),m=FF(n.acceptance_status);return!r&&!o&&a.length===0&&!m?null:{kind:o?"review":a.length>0||m?"report":"update",title:i,summary:r,verdict:o||void 0,deliverables:a,risks:c,nextActions:d,acceptanceSummary:m}}const UF=Tt.memo(function({entry:t,showDate:n,dateStr:i,compact:r=!1}){return u.jsxs("div",{children:[n&&u.jsx("div",{className:"msg-date-sep",children:u.jsx("span",{children:i})}),u.jsxs("div",{className:`msg-row agent msg-row-inline-progress${r?" compact":""}`,children:[u.jsx("div",{className:"msg-avatar agent-avatar",children:u.jsx(vl,{})}),u.jsx("div",{className:"msg-body msg-inline-progress-body",children:u.jsx("div",{className:"msg-inline-progress-shell",children:u.jsx(zN,{entry:t})})})]})]})}),GF=Tt.memo(function({msg:t,showDate:n,dateStr:i}){const r=MF(t.content);return r?u.jsxs("div",{children:[n&&u.jsx("div",{className:"msg-date-sep",children:u.jsx("span",{children:i})}),u.jsxs("div",{className:`work-item-divider work-item-divider-${r.statusClass}`,children:[u.jsx("div",{className:"work-item-divider-line"}),u.jsxs("span",{className:"work-item-divider-label",children:[u.jsx("span",{className:"work-item-divider-icon",children:r.icon}),r.workItemName,u.jsx("span",{className:"work-item-divider-action",children:r.action})]}),u.jsx("div",{className:"work-item-divider-line"})]})]}):null}),qF=Tt.memo(function({msg:t,showDate:n,dateStr:i}){return u.jsxs("div",{children:[n&&u.jsx("div",{className:"msg-date-sep",children:u.jsx("span",{children:i})}),u.jsx("div",{className:"msg-system",children:u.jsx("span",{children:t.content})})]})}),WF=Tt.memo(function({msg:t,showDate:n,dateStr:i}){return u.jsxs("div",{children:[n&&u.jsx("div",{className:"msg-date-sep",children:u.jsx("span",{children:i})}),u.jsxs("div",{className:"msg-row agent msg-row-context",children:[u.jsx("div",{className:"msg-avatar agent-avatar msg-avatar-context",children:u.jsx(yu,{})}),u.jsx("div",{className:"msg-body",children:u.jsxs("div",{className:"msg-content-agent-card msg-context-card",children:[u.jsx("div",{className:"msg-context-label",children:"Execution Context"}),u.jsx(bi,{content:t.content})]})})]})]})}),YF=Tt.memo(function({text:t,timestamp:n,iteration:i,showDate:r,dateStr:o}){return u.jsxs("div",{children:[r&&u.jsx("div",{className:"msg-date-sep",children:u.jsx("span",{children:o})}),u.jsxs("div",{className:"msg-row agent msg-row-draft",children:[u.jsx("div",{className:"msg-avatar agent-avatar msg-avatar-draft",children:u.jsx(vl,{})}),u.jsxs("div",{className:"msg-body",children:[u.jsxs("div",{className:"msg-agent-header",children:[u.jsx("span",{className:"msg-sender",children:"Live Reply"}),u.jsx("span",{className:"msg-time",title:Ms(n),children:wo(n)})]}),u.jsxs("div",{className:"msg-content-agent-card msg-draft-card",children:[i?u.jsxs("div",{className:"msg-draft-label",children:["Turn ",i]}):null,u.jsx(bi,{content:t,collapseMode:"never"})]})]})]})]})}),XF=Tt.memo(function({msg:t,showDate:n,dateStr:i,isGrouped:r,isCopied:o,onCopy:a,onImageClick:c,renderUserMarkdown:d}){return u.jsxs("div",{children:[n&&u.jsx("div",{className:"msg-date-sep",children:u.jsx("span",{children:i})}),u.jsx("div",{className:`msg-row user${r?" grouped":""}`,children:u.jsxs("div",{className:"msg-body msg-body-user",children:[u.jsx("div",{className:"msg-content-user",children:d?u.jsx(bi,{content:t.content,className:"msg-content-user-markdown"}):t.content}),u.jsx(IF,{refs:t.metadata?.attachment_refs,onImageClick:c}),u.jsxs("div",{className:"msg-meta-user",children:[u.jsx("span",{className:"msg-time",title:Ms(t.timestamp),children:wo(t.timestamp)}),u.jsx("button",{className:"msg-action-btn",onClick:()=>a(t.id,t.content),title:"Copy",children:o?u.jsx($l,{}):u.jsx(Am,{})})]})]})})]})});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=([^|]+?)(?:\||$)/),h=m?m[1].trim():"";return{kind:"delegation",label:`Delegating to ${d}`,summary:h,tone:"info"}}if(/^\[External resume\]/i.test(t)){const d=t.match(/codex:[a-z0-9-]+:([a-f0-9-]+)/i);return{kind:"external_resume",label:"External resume",summary:d?`Restored session ${d[1].slice(0,8)}…`:"Resumed prior session",tone:"info"}}const i=t.match(/^\[External inbox\]\s*(.+)$/i);if(i)return{kind:"external_status",label:"External inbox",summary:hy(i[1]),tone:"info"};const r=t.match(/^\[External status\]\s*(.+)$/i);if(r)return{kind:"external_status",label:"External status",summary:r[1].split(/\(|;/)[0].trim()||r[1].trim(),tone:"info"};if(/^\[External error\]/i.test(t)||/^\[External failure\]/i.test(t))return{kind:"external_error",label:"External error",summary:t.replace(/^\[[^\]]+\]\s*/,"").split(` +`)[0].slice(0,140),tone:"danger"};const o=t.match(/^\[Company:([^\]]+)\]\s*(.+)$/);if(o){const d=o[1].split("::"),m=d[0]||"company",h=o[2].trim(),p=h.toLowerCase(),g=p.includes("completed")||p.includes("done")?"success":p.includes("blocked")||p.includes("failed")?"warning":"info";return{kind:"company_event",label:`${m.toUpperCase()} · ${d[1]??""}`.replace(/ · $/,""),summary:h,tone:g}}const a=t.match(/^(Review needed|Status digest|Blocked|Completion):\s*(.+)$/i);if(a){const d=a[1].replace(/\b\w/g,h=>h.toUpperCase()),m=hy(a[2]);return{kind:"company_event",label:d,summary:m,tone:/^Blocked$/i.test(a[1])?"warning":"info"}}const c=t.match(/^NO_DELEGATION_JUSTIFICATION:\s*(.+)$/i);return c?{kind:"company_event",label:"Delegation check",summary:hy(c[1]).slice(0,180),tone:"info"}:null}function KF(e,t){const{isCompanyRuntime:n,detailMode:i}=t;if(!n||i==="full"||xu(e.metadata))return null;const r=YI(e.content);if(!r)return null;const o=e.sender==="system"||e.metadata?.type==="system",a=r.kind==="company_event"||e.content.startsWith("[Company:");return!o&&!a?null:{msg:e,classification:r}}function ZF(e,t={}){const{isCompanyRuntime:n=!1,detailMode:i="summary"}=t,r=[];let o=[],a=0;const c=()=>{if(o.length===0)return;const d=o[0].msg;r.push({kind:"ops-bundle",id:`ops:${ra(d)}`,timestamp:d.timestamp,events:o,sortOrder:a}),o=[]};return e.forEach((d,m)=>{const h=m*2+1,p=KF(d,{isCompanyRuntime:n,detailMode:i});if(p){o.length===0&&(a=h),o.push(p);return}c(),r.push({kind:"message",id:ra(d),timestamp:d.timestamp,msg:d,sortOrder:h})}),c(),r}const QF=Tt.memo(function({msg:t,showDate:n,dateStr:i,classification:r}){const[o,a]=C.useState(!1),c=t.content.trim()!==`[${r.label}] ${r.summary}`.trim()&&t.content.trim().length>r.summary.length+4;return u.jsxs("div",{children:[n&&u.jsx("div",{className:"msg-date-sep",children:u.jsx("span",{children:i})}),u.jsxs("div",{className:`msg-ops-row msg-ops-tone-${r.tone}${o?" expanded":""}`,onClick:c?()=>a(d=>!d):void 0,role:c?"button":void 0,tabIndex:c?0:-1,children:[u.jsx("span",{className:"msg-ops-dot","aria-hidden":"true"}),u.jsx("span",{className:"msg-ops-label",children:r.label}),r.summary&&u.jsx("span",{className:"msg-ops-summary",title:r.summary,children:r.summary}),u.jsx("span",{className:"msg-ops-time",title:Ms(t.timestamp),children:wo(t.timestamp)}),c&&u.jsx("span",{className:`msg-ops-chevron${o?" open":""}`,"aria-hidden":"true",children:u.jsx(rs,{down:o})})]}),c&&o&&u.jsx("div",{className:"msg-ops-details",children:u.jsx("pre",{className:"msg-ops-details-pre",children:t.content})})]})}),JF=Tt.memo(function({events:t,showDate:n,dateStr:i}){const[r,o]=C.useState(!1);if(t.length===0)return null;const a=t[0].msg,c=t[t.length-1].msg,d=t.reduce((p,g)=>{const x=g.classification.kind==="company_event"?"company":g.classification.kind.startsWith("external")?"runtime":"delegation";return p[x]=(p[x]??0)+1,p},{}),m=Object.entries(d).map(([p,g])=>`${g} ${p}`).join(" · "),h=`${t.length} technical event${t.length===1?"":"s"} hidden`;return u.jsxs("div",{children:[n&&u.jsx("div",{className:"msg-date-sep",children:u.jsx("span",{children:i})}),u.jsxs("button",{type:"button",className:`msg-ops-bundle${r?" expanded":""}`,onClick:()=>o(p=>!p),title:`${Ms(a.timestamp)} - ${Ms(c.timestamp)}`,children:[u.jsx("span",{className:"msg-ops-bundle-dot"}),u.jsx("span",{className:"msg-ops-bundle-title",children:h}),u.jsx("span",{className:"msg-ops-bundle-summary",children:m}),u.jsx("span",{className:"msg-ops-bundle-time",children:wo(a.timestamp)}),u.jsx("span",{className:"msg-ops-bundle-chevron",children:u.jsx(rs,{down:r})})]}),r&&u.jsx("div",{className:"msg-ops-bundle-details",children:t.map(({msg:p,classification:g})=>u.jsxs("div",{className:`msg-ops-bundle-event msg-ops-tone-${g.tone}`,children:[u.jsx("span",{className:"msg-ops-dot"}),u.jsx("span",{className:"msg-ops-label",children:g.label}),u.jsx("span",{className:"msg-ops-summary",children:g.summary}),u.jsx("span",{className:"msg-ops-time",title:Ms(p.timestamp),children:wo(p.timestamp)})]},p.id))})]})});function eV(e){return e.kind==="review"?`Review · ${e.verdict?e.verdict.replace(/_/g," "):"review"}`:e.kind==="report"?"Report":"Update"}const tV=Tt.memo(function({msg:t,payload:n,showDate:i,dateStr:r,isCopied:o,onCopy:a}){const c=WI(t.sender==="system"?t.senderName||"OPC":t.sender),d=t.senderDeleted?"[Deleted]":t.senderName,m=eV(n),h=n.summary||n.acceptanceSummary||m;return u.jsxs("div",{children:[i&&u.jsx("div",{className:"msg-date-sep",children:u.jsx("span",{children:r})}),u.jsxs("div",{className:"msg-row agent msg-row-project-update",children:[u.jsx("div",{className:"msg-avatar agent-avatar",style:{background:c},children:d.charAt(0).toUpperCase()}),u.jsxs("div",{className:"msg-body",children:[u.jsxs("div",{className:"msg-agent-header",children:[u.jsx("span",{className:"msg-sender",style:{color:c},children:d}),u.jsx("span",{className:"msg-time",title:Ms(t.timestamp),children:wo(t.timestamp)})]}),u.jsxs("div",{className:`msg-project-update-card msg-project-update-${n.kind}`,children:[u.jsxs("div",{className:"msg-project-update-head",children:[u.jsx("span",{className:"msg-project-update-label",children:m}),n.acceptanceSummary&&u.jsx("span",{className:"msg-project-update-chip",children:n.acceptanceSummary})]}),n.title&&u.jsx("div",{className:"msg-project-update-title",children:n.title}),u.jsx(bi,{content:h,className:"msg-project-update-summary"}),n.deliverables.length>0&&u.jsxs("div",{className:"msg-project-update-section",children:[u.jsx("div",{className:"msg-project-update-section-label",children:"Outputs"}),u.jsx("div",{className:"msg-project-update-artifacts",children:n.deliverables.slice(0,6).map((p,g)=>u.jsxs("div",{className:"msg-project-update-artifact",children:[u.jsx("span",{className:"msg-project-update-artifact-name",children:p.name}),p.status&&u.jsx("span",{className:"msg-project-update-artifact-status",children:p.status}),p.path&&u.jsx("code",{className:"msg-project-update-artifact-path",children:p.path})]},`${p.path||p.name}-${g}`))})]}),(n.risks.length>0||n.nextActions.length>0)&&u.jsxs("div",{className:"msg-project-update-grid",children:[n.risks.length>0&&u.jsxs("div",{className:"msg-project-update-section",children:[u.jsx("div",{className:"msg-project-update-section-label",children:"Caveats"}),u.jsx("ul",{className:"msg-project-update-list",children:n.risks.map((p,g)=>u.jsx("li",{children:p},`risk-${g}`))})]}),n.nextActions.length>0&&u.jsxs("div",{className:"msg-project-update-section",children:[u.jsx("div",{className:"msg-project-update-section-label",children:"Next"}),u.jsx("ul",{className:"msg-project-update-list",children:n.nextActions.map((p,g)=>u.jsx("li",{children:p},`next-${g}`))})]})]}),u.jsx("div",{className:"msg-card-actions",children:u.jsx("button",{className:"msg-action-btn",onClick:()=>a(t.id,t.content),title:"Copy raw update",children:o?u.jsxs(u.Fragment,{children:[u.jsx($l,{})," ",u.jsx("span",{children:"Copied"})]}):u.jsxs(u.Fragment,{children:[u.jsx(Am,{})," ",u.jsx("span",{children:"Copy raw"})]})})})]})]})]})]})}),nV=Tt.memo(function({msg:t,showDate:n,dateStr:i,isGrouped:r,isCopied:o,isCheckpointResponded:a,suppressCheckpointPanel:c,keepExpanded:d,onCopy:m,onSend:h}){const p=!!t.senderDeleted,g=p?"[Deleted]":t.senderName,x=WI(t.sender==="system"?t.senderName||"OPC":t.sender),v=t.channelId.startsWith("session:")?t.channelId.slice(8):t.metadata?.taskId??t.metadata?.task_id,b=String(t.metadata?.checkpoint_type??"").trim(),w=SE(t.metadata),k=xu(t.metadata)&&!c;return u.jsxs("div",{children:[n&&u.jsx("div",{className:"msg-date-sep",children:u.jsx("span",{children:i})}),u.jsxs("div",{className:`msg-row agent${r?" grouped":""}${p?" deleted-sender":""}`,children:[r?u.jsx("div",{className:"msg-avatar-spacer"}):u.jsx("div",{className:"msg-avatar agent-avatar",style:{background:x},children:g.charAt(0).toUpperCase()}),u.jsxs("div",{className:"msg-body",children:[!r&&u.jsxs("div",{className:"msg-agent-header",children:[u.jsx("span",{className:`msg-sender${p?" deleted":""}`,style:{color:x},children:g}),u.jsx("span",{className:"msg-time",title:Ms(t.timestamp),children:wo(t.timestamp)})]}),t.replyToId&&u.jsx("div",{className:"msg-reply-indicator",children:"Replying to previous message"}),k?u.jsxs(u.Fragment,{children:[b==="company_recruitment_confirmation"&&u.jsx(nF,{meta:t.metadata,onReply:(S,j)=>h?.(S,v,j),responded:a}),b==="company_staffing_selection"&&u.jsx(cF,{meta:t.metadata,onReply:(S,j)=>h?.(S,v,j),responded:a}),b==="company_work_item_gate"&&u.jsx(cC,{meta:t.metadata,onReply:S=>h?.(S,v,w),responded:a}),b==="company_delivery_feedback"&&u.jsx(yF,{meta:t.metadata,onReply:(S,j)=>h?.(S,v,j??w),responded:a}),b==="company_reorg_pending"&&u.jsx(dF,{meta:t.metadata,onReply:S=>h?.(S,v,w),responded:a}),b==="human_escalation"&&u.jsx(cC,{meta:t.metadata,onReply:S=>h?.(S,v,w),responded:a}),b==="task_user_input"&&u.jsx(bF,{meta:t.metadata,onReply:(S,j)=>h?.(S,v,{...w,...j}),responded:a})]}):u.jsxs("div",{className:"msg-content-agent-card",style:{borderLeftColor:x},children:[u.jsx(bi,{content:t.content,collapseMode:d?"never":"auto"}),u.jsxs("div",{className:"msg-card-actions",children:[u.jsx("button",{className:"msg-action-btn",onClick:()=>m(t.id,t.content),title:"Copy message",children:o?u.jsxs(u.Fragment,{children:[u.jsx($l,{})," ",u.jsx("span",{children:"Copied"})]}):u.jsxs(u.Fragment,{children:[u.jsx(Am,{})," ",u.jsx("span",{children:"Copy"})]})}),r&&u.jsx("span",{className:"msg-time msg-time-inline",title:Ms(t.timestamp),children:wo(t.timestamp)})]})]})]})]})]})}),ol=Tt.memo(function({messages:t,channelName:n,viewKind:i="session",detailMode:r="summary",agentStatus:o,currentTool:a,toolElapsedMs:c,lastToolSummary:d,progressLog:m,draftAssistantText:h,draftUpdatedAt:p,draftIteration:g,draftTurnId:x,isCompanyRuntime:v,workItemLog:b,childSessions:w,roleWorkItems:k,executorRoleWorkItems:S,onSend:j,onWorkItemClick:N,onMarkRead:L,hasOlderHistory:A=!1,totalMessageCount:D,onLoadOlderHistory:O,loadingOlderHistory:T=!1,scrollPolicy:M="follow",scrollScope:I,showWorkItemRuntimeCard:H=!0,showRuntimeProgress:Y=!0,renderUserMarkdown:P=!1}){const U=I??`${i}:${r}:${n}`,$=C.useRef(null),G=C.useRef(null),[q,K]=C.useState(null),[W,V]=C.useState(null),Q=M==="follow"?"following":"browsing",[B,Z]=C.useState(Q),[te,ee]=C.useState(0),[se,ae]=C.useState(!1),ue=C.useRef(Q),ie=C.useRef(M),je=C.useRef(M!=="manual"),we=C.useRef(!1),Re=C.useRef(null),Ve=C.useRef(0),Ge=C.useRef(!1),qe=C.useRef("none"),_t=C.useRef(null),$t=C.useRef(0),Ht=C.useRef(new Set),Gt=C.useRef(null),he=C.useRef(null),$e=C.useRef(L),ut=C.useRef(0),nt=C.useRef(0),Ke=C.useRef(null),pe=C.useRef({active:!1,revision:0}),Se=C.useRef(!1),De=C.useRef(null),Pe=C.useRef(!1),Je=C.useRef(null),dt=C.useRef(null),nn=C.useRef([]),be=C.useRef({scope:U,assignments:new Map}),We=C.useRef({scope:U,owners:new Map}),et=C.useRef({scope:U,keys:new Set});$e.current=L;const Ae=(b?.length??0)+(w?.length??0),jt=C.useMemo(()=>{const ce=t.filter(ke=>Gv(ke,r));return v?ce.filter(ke=>!(ke.metadata?.type==="system"&&ke.content.startsWith("[Company:")||!Y&&ke.content.startsWith("[Company:"))):ce},[r,v,t,Y]),An=C.useMemo(()=>qv(jt),[jt]),qn=C.useMemo(()=>i==="session"&&j?jt.filter(ce=>An.pendingMessageIds.has(ce.id)):[],[An.pendingMessageIds,jt,j,i]),ft=jt,bn=C.useMemo(()=>{const ce=new Set;for(const ke of m??[]){if(ke.type!=="thinking")continue;const Me=String(ke.turnId??"").trim();Me&&ce.add(Me)}return ce},[m]),Nn=C.useMemo(()=>{const ce=[];for(const ke of ft){const Me=String(ke.metadata?.runtime_thinking??"").trim();if(!Me)continue;const Le=Lm(ke.metadata);Le&&bn.has(Le)||ce.push({type:"thinking",summary:"Thinking",detail:Me,timestamp:Math.max(0,ke.timestamp-1),turnId:Le||void 0,itemId:Le?`${Le}:thinking`:`thinking:${ke.id}`,streamId:Le?`${Le}:thinking`:`thinking:${ke.id}`,executionMode:String(ke.metadata?.execution_mode??"").trim()||void 0})}return ce},[bn,ft]),Rt=C.useMemo(()=>Y?[...(m??[]).filter(ce=>dw.has(ce.type)),...Nn].sort((ce,ke)=>ce.timestamp-ke.timestamp):[],[m,Y,Nn]),bt=C.useMemo(()=>Y?(m??[]).filter(ce=>!dw.has(ce.type)):[],[m,Y]),Vn=C.useMemo(()=>Y?r==="full"?m??[]:Rt:[],[r,Rt,m,Y]),St=bt,Ye=C.useMemo(()=>{const ce=new Set;for(const ke of ft){const Me=Wf(ke);Me&&ce.add(Me)}return ce},[ft]),Ft=C.useMemo(()=>{const ce=String(h??"").trim(),ke=String(x??"").trim();return!ce||ke&&Ye.has(ke)?null:{kind:"draft",id:ke?`turn:assistant:${ke}`:"draft:active",timestamp:p??ft[ft.length-1]?.timestamp??0,text:ce,iteration:g,sortOrder:Number.MAX_SAFE_INTEGER}},[Ye,h,g,x,p,ft]);C.useLayoutEffect(()=>{et.current.scope!==U&&(et.current={scope:U,keys:new Set}),Ft&&et.current.keys.add(Ft.id)},[Ft,U]);const zi=!!o&&o!=="idle",Mn=St.length>0,Jt=Y&&r!=="full"&&(zi||Mn),gt=C.useMemo(()=>{const ce=[...ZF(ft,{isCompanyRuntime:v,detailMode:r}),...Vn.map((ot,Cn)=>({kind:"progress",id:`progress:${LN(ot)}`,timestamp:ot.timestamp,entry:ot,sortOrder:Cn*2}))].sort((ot,Cn)=>ot.timestamp-Cn.timestamp||ot.sortOrder-Cn.sortOrder),ke=We.current.scope===U?We.current.owners:new Map,Me=new Map;ce.forEach((ot,Cn)=>{if(ot.kind!=="message")return;const wi=vE(ot.msg);if(!wi)return;const Xn=ke.get(wi)??ot.id;Me.set(wi,Xn),Xn!==ot.id&&(ce[Cn]={...ot,id:Xn})});const Le=new Map;ce.forEach((ot,Cn)=>{if(ot.kind!=="message")return;const wi=`${ot.msg.channelId}\0${ot.msg.id}`,Xn=Le.get(ot.id)??[];Xn.push({index:Cn,identity:wi}),Le.set(ot.id,Xn)});const st=be.current.scope===U?be.current.assignments:new Map,Qe=new Map;for(const[ot,Cn]of Le){const wi=st.get(ot),Xn=new Map,Lt=new Set;for(const Nt of Cn){const fn=wi?.get(Nt.identity);!fn||Lt.has(fn)||(Xn.set(Nt.identity,fn),Lt.add(fn))}for(const Nt of Cn){if(Xn.has(Nt.identity))continue;const fn=Lt.has(ot)?`${ot}:message:${encodeURIComponent(Nt.identity)}`:ot;Xn.set(Nt.identity,fn),Lt.add(fn)}Qe.set(ot,Xn);for(const Nt of Cn){const fn=Xn.get(Nt.identity);if(!fn||fn===ot)continue;const Fi=ce[Nt.index];Fi.kind==="message"&&(ce[Nt.index]={...Fi,id:fn})}}return Ft&&ce.push(Ft),{items:ce,messageKeyAssignments:Qe,resultKeyOwners:Me}},[r,Ft,v,U,ft,Vn]),Vt=gt.items,dn=C.useMemo(()=>Vt.map(TF),[Vt]);C.useLayoutEffect(()=>{be.current={scope:U,assignments:gt.messageKeyAssignments},We.current={scope:U,owners:gt.resultKeyOwners}},[U,gt.messageKeyAssignments,gt.resultKeyOwners]);const Ln=C.useRef(ft);Ln.current=ft,ut.current=ft.reduce((ce,ke)=>Math.max(ce,ke.timestamp),0);const[Wn,At]=C.useState({scope:U,startKey:null}),Ut=Wn.scope===U?Wn.startKey:null,In=Math.max(0,Vt.length-LF),Yn=Ut?Vt.findIndex(ce=>ce.id===Ut):-1;let Te=-1;if(Ut&&Yn<0){const ce=nn.current,ke=ce.indexOf(Ut),Me=new Map(Vt.map((Le,st)=>[Le.id,st]));for(let Le=Math.max(0,ke);Le=0;Le-=1){const st=Me.get(ce[Le]);if(st!==void 0){Te=st;break}}}const kt=Yn>=0?Yn:Te>=0?Te:In,pn=C.useMemo(()=>Vt.slice(kt),[Vt,kt]),Un=kt,Tn=C.useRef(Vt);Tn.current=Vt,C.useLayoutEffect(()=>{const ce=Vt[kt]?.id??null;Wn.scope===U&&Wn.startKey===ce||(Wn.scope===U&&Wn.startKey&&(Pe.current=!0),At({scope:U,startKey:ce}))},[U,Vt,kt,Wn.scope,Wn.startKey]),C.useLayoutEffect(()=>{const ce=De.current;if(!ce||ce.scope!==U)return;const ke=Vt.findIndex(Le=>Le.id===ce.startKey);if(ke<=ce.beforeIndex)return;const Me=Math.max(0,ke-py);De.current=null,Pe.current=!0,At({scope:U,startKey:Vt[Me]?.id??null})},[U,Vt]),C.useLayoutEffect(()=>{nn.current=Vt.map(ce=>ce.id)},[Vt]);const Et=C.useMemo(()=>{let ce="";return pn.map((ke,Me)=>{const Le=new Date(ke.timestamp).toLocaleDateString(),st=Le!==ce;st&&(ce=Le);const Qe=Me>0?pn[Me-1]:null,ot=ke.kind==="message"&&Qe?.kind==="message"&&!st&&Qe.msg.sender===ke.msg.sender&&Qe.msg.senderName===ke.msg.senderName&&ke.msg.metadata?.type!=="system"&&Qe.msg.metadata?.type!=="system"&&!ke.msg.metadata?.is_work_item_event&&!Qe.msg.metadata?.is_work_item_event&&ke.msg.timestamp-Qe.msg.timestamp0),fi=Vt.length>0||gi||Jt;Se.current=fi;const ni=C.useCallback(ce=>{const ke=G.current?.querySelectorAll("[data-timeline-key]");if(!ke)return null;for(const Me of ke)if(Me.dataset.timelineKey===ce)return Me;return null},[]),hn=C.useCallback(ce=>{we.current=ce,ae(ke=>ke===ce?ke:ce)},[]),Xt=C.useCallback(()=>{const ce=he.current,ke=$e.current;!ce||!ke||Gt.current===ce||(Gt.current=ce,ke())},[]),Mt=C.useCallback(()=>{const ce=$.current,ke=G.current;if(!ce||!ke)return;const Me=ce.getBoundingClientRect(),Le=ke.querySelectorAll("[data-timeline-key]");for(const st of Le){const Qe=st.getBoundingClientRect();if(!(Qe.bottom<=Me.top+.5)){Re.current={key:st.dataset.timelineKey??"",viewportOffset:Qe.top-Me.top};return}}Re.current=null},[]),Kt=C.useCallback(()=>{const ce=$.current,ke=Re.current;if(!ce||!ke?.key)return;const Me=ni(ke.key);if(!Me){Mt();return}const Le=Me.getBoundingClientRect().top-ce.getBoundingClientRect().top-ke.viewportOffset;Math.abs(Le)>.5&&(ce.scrollTop+=Le),ke.viewportOffset=Me.getBoundingClientRect().top-ce.getBoundingClientRect().top,Ve.current=ce.scrollTop,hn(Qo(ce))},[Mt,ni,hn]),zn=C.useCallback(ce=>{ue.current=ce,Z(ke=>ke===ce?ke:ce)},[]),Pn=C.useCallback(()=>{pe.current.active=!1,ue.current!=="browsing"&&($t.current=ut.current,ee(0),zn("browsing")),Mt()},[Mt,zn]),Gn=C.useCallback(()=>{const ce=$.current;if(!ce)return;const ke=Math.max(0,ce.scrollHeight-ce.clientHeight);Math.abs(ce.scrollTop-ke)>.5&&(ce.scrollTop=ke),Ve.current=ce.scrollTop,hn(Qo(ce))},[hn]),yi=C.useCallback(()=>{ie.current==="follow"&&(zn("following"),ee(0),Re.current=null,Gn(),Xt())},[Xt,zn,Gn]),_n=C.useCallback(()=>{if(ie.current==="follow"){yi();return}pe.current.active=!1,Gn(),Mt(),ee(0),Xt()},[Mt,Xt,yi,Gn]),ln=C.useCallback(()=>{const ce=$.current;if(!ce||!Se.current)return;if(hn(Qo(ce)),je.current){je.current=!1,ie.current==="initial-bottom"&&(pe.current={active:!0,revision:nt.current}),Gn(),ie.current!=="follow"&&zn("browsing");return}const ke=pe.current;if(ie.current==="initial-bottom"&&ke.active&&ke.revision===nt.current){Gn();return}if(ie.current==="follow"&&ue.current==="following"){Gn();return}Pe.current&&(Pe.current=!1,Kt())},[Kt,zn,hn,Gn]);C.useLayoutEffect(()=>{ie.current=M;const ce=M==="follow"?"following":"browsing";ue.current=ce,Z(ce),je.current=M!=="manual",hn(!1),Re.current=null,De.current=null,Pe.current=!1,Je.current=null,dt.current=null,pe.current={active:!1,revision:nt.current},Ht.current=new Set(Ln.current.filter(hC).map(ra)),$t.current=ut.current,Gt.current=null,ee(0)},[M,U,hn]),C.useLayoutEffect(()=>{const ce=Ke.current;if(RF(ce,dn))return;Ke.current=dn,nt.current+=1;const Me=pe.current;!Me.active||Me.revision===nt.current||(Me.active=!1,Mt())},[Mt,dn]),C.useLayoutEffect(()=>{const ce=$.current,ke=G.current;if(!ce||!ke||(dt.current={width:ce.clientWidth,height:ce.clientHeight},ln(),typeof ResizeObserver>"u"))return;const Me=new ResizeObserver(Le=>{if(Le.find(Qe=>Qe.target===ce)){const Qe=dt.current,ot={width:ce.clientWidth,height:ce.clientHeight};Qe&&(Qe.width!==ot.width||Qe.height!==ot.height)&&(Pe.current=ue.current==="browsing"),dt.current=ot}ln()});return Me.observe(ce),Me.observe(ke),()=>Me.disconnect()},[ln,M,U]),C.useEffect(()=>{const ce=$.current;if(!ce)return;Ve.current=ce.scrollTop;const ke=Lt=>{qe.current=Lt.deltaY<0?"up":Lt.deltaY>0?"down":"none",Lt.deltaY<0&&ce.scrollTop>0&&Pn(),Lt.deltaY>0&&Qo(ce)&&yi()},Me=()=>{Ge.current=!0},Le=()=>{Ge.current=!1,qe.current="none",ue.current==="browsing"&&Mt()},st=Lt=>{_t.current=Lt.touches[0]?.clientY??null,Ge.current=!0},Qe=Lt=>{const Nt=Lt.touches[0]?.clientY,fn=_t.current;Nt===void 0||fn===null||(Nt>fn+1?(qe.current="up",Pn()):Nt{_t.current=null,Le()},Cn=Lt=>{const Nt=Lt.target;Nt&&Nt!==ce&&(Nt.isContentEditable||["INPUT","TEXTAREA","SELECT","BUTTON"].includes(Nt.tagName))||(["ArrowUp","PageUp","Home"].includes(Lt.key)||Lt.key===" "&&Lt.shiftKey?(qe.current="up",Pn()):(["ArrowDown","PageDown","End"].includes(Lt.key)||Lt.key===" ")&&(qe.current="down",Lt.key==="End"&&_n()))},wi=()=>{qe.current="none"},Xn=()=>{const Lt=Ve.current,Nt=ce.scrollTop,fn=Qo(ce),Fi=we.current,mi=Ge.current||qe.current!=="none";NtLt+.5||qe.current==="down")&&yi(),ue.current==="browsing"&&Mt(),Ge.current||(qe.current="none")):Nt>Lt+.5&&fn?yi():ue.current==="browsing"&&Math.abs(Nt-Lt)>.5&&Mt(),Ve.current=Nt,hn(fn),!Fi&&fn&&(mi||Nt>Lt+.5)&&Xt()};return ce.addEventListener("wheel",ke,{passive:!0}),ce.addEventListener("pointerdown",Me),window.addEventListener("pointerup",Le),window.addEventListener("pointercancel",Le),window.addEventListener("blur",Le),ce.addEventListener("touchstart",st,{passive:!0}),ce.addEventListener("touchmove",Qe,{passive:!0}),ce.addEventListener("touchend",ot,{passive:!0}),ce.addEventListener("touchcancel",ot,{passive:!0}),ce.addEventListener("keydown",Cn),ce.addEventListener("keyup",wi),ce.addEventListener("scroll",Xn,{passive:!0}),()=>{ce.removeEventListener("wheel",ke),ce.removeEventListener("pointerdown",Me),window.removeEventListener("pointerup",Le),window.removeEventListener("pointercancel",Le),window.removeEventListener("blur",Le),ce.removeEventListener("touchstart",st),ce.removeEventListener("touchmove",Qe),ce.removeEventListener("touchend",ot),ce.removeEventListener("touchcancel",ot),ce.removeEventListener("keydown",Cn),ce.removeEventListener("keyup",wi),ce.removeEventListener("scroll",Xn)}},[Mt,Pn,Xt,_n,yi,hn]);const Xe=C.useMemo(()=>ft.filter(hC),[ft]),Si=C.useMemo(()=>Xe.map(ra),[Xe]);C.useEffect(()=>{const ce=new Set(Si);if(Ht.current.size===0){Ht.current=ce;return}if(ue.current==="browsing"){let ke=0;for(const Me of Xe){const Le=ra(Me);!Ht.current.has(Le)&&Me.timestamp>=$t.current&&(ke+=1)}ke>0&&ee(Me=>Me+ke)}else ee(0);Ht.current=ce},[Xe,Si]);const rn=Xe.reduce((ce,ke)=>!ce||ke.timestamp>ce.timestamp?ke:ce,void 0),Dt=rn?`${ra(rn)}:${rn.timestamp}`:null;he.current=Dt,C.useEffect(()=>{if(!Dt)return;const ce=$.current,ke=!!ce&&Qo(ce);hn(ke),!(ue.current!=="following"&&!ke)&&Xt()},[Dt,Xt,hn,B]);const Ri=C.useCallback((ce,ke)=>{PF(ke).then(Me=>{Me&&(K(ce),setTimeout(()=>K(null),1500))})},[]),er=C.useCallback(async()=>{if(Mt(),Pe.current=!0,kt>0){const ce=Math.max(0,kt-py);At({scope:U,startKey:Vt[ce]?.id??null});return}!A||T||!O||(De.current=Ut?{scope:U,startKey:Ut,beforeIndex:kt}:null,await O(jt[0]))},[Mt,Ut,jt,A,T,O,U,Vt,kt]),de=_n,_e=C.useCallback(ce=>{const ke=$.current,Me=ni(ce);if(!ke||!Me)return!1;const Le=ke.getBoundingClientRect(),st=Me.getBoundingClientRect();return ke.scrollTop+=st.top-Le.top-Math.max(0,(ke.clientHeight-st.height)/2),Ve.current=ke.scrollTop,hn(Qo(ke)),Mt(),!0},[Mt,ni,hn]);C.useLayoutEffect(()=>{const ce=Je.current;!ce||!_e(ce)||(Je.current=null)},[_e,pn]);const Fe=C.useCallback(()=>{const ce=qn[0];if(!ce)return;Pn(),Pe.current=!1;const ke=ra(ce);if(_e(ke))return;const Me=Vt.findIndex(st=>st.id===ke);if(Me<0)return;Je.current=ke;const Le=Math.max(0,Me-2);At({scope:U,startKey:Vt[Le]?.id??ke})},[_e,Pn,qn,U,Vt]),mt=C.useCallback(ce=>{const{item:ke,showDate:Me,dateStr:Le,isGrouped:st}=ce;if(ke.kind==="progress")return u.jsx(UF,{entry:ke.entry,showDate:Me,dateStr:Le,compact:r!=="full"});if(ke.kind==="draft")return u.jsx(YF,{text:ke.text,timestamp:ke.timestamp,iteration:ke.iteration,showDate:Me,dateStr:Le});if(ke.kind==="ops-bundle")return u.jsx(JF,{events:ke.events,showDate:Me,dateStr:Le});const{msg:Qe}=ke,ot=et.current.scope===U&&et.current.keys.has(ke.id),Cn=Qe.metadata?.type==="system",wi=BF(Qe),Xn=!ot&&(!!Qe.metadata?.is_work_item_event||Qe.content.startsWith("[Company:")),Lt=xu(Qe.metadata),Nt=Qe.sender==="user",fn=!ot&&!Nt&&!Lt?VF(Qe.content):null;if(Xn&&!Lt)return u.jsx(GF,{msg:Qe,showDate:Me,dateStr:Le});if(fn)return u.jsx(tV,{msg:Qe,payload:fn,showDate:Me,dateStr:Le,isCopied:q===Qe.id,onCopy:Ri});if(wi&&!Lt)return u.jsx(WF,{msg:Qe,showDate:Me,dateStr:Le});if(Cn&&!Lt)return u.jsx(qF,{msg:Qe,showDate:Me,dateStr:Le});if(Nt)return u.jsx(XF,{msg:Qe,showDate:Me,dateStr:Le,isGrouped:st,isCopied:q===Qe.id,onCopy:Ri,onImageClick:V,renderUserMarkdown:P});if(Qe.sender==="system"&&!xu(Qe.metadata)){const Fi=YI(Qe.content);if(Fi)return u.jsx(QF,{msg:Qe,showDate:Me,dateStr:Le,isGrouped:st,classification:Fi})}return u.jsx(nV,{msg:Qe,showDate:Me,dateStr:Le,isGrouped:st,isCopied:q===Qe.id,isCheckpointResponded:An.respondedMessageIds.has(Qe.id),suppressCheckpointPanel:An.duplicateMessageIds.has(Qe.id),keepExpanded:ot,onCopy:Ri,onSend:j})},[An,q,Ri,r,j,P,U]),Ot=DF[i];return u.jsxs("div",{className:`msg-list-shell msg-list-shell-${B}`,children:[u.jsx("div",{className:`msg-list msg-list-${B}`,ref:$,tabIndex:0,"data-scroll-policy":M,"data-viewport-mode":B,children:u.jsxs("div",{className:"msg-list-content",ref:G,children:[!fi&&u.jsxs("div",{className:"msg-welcome",children:[u.jsx("div",{className:"msg-welcome-icon",children:Ot.icon}),u.jsx("div",{className:"msg-welcome-title",children:n||Ot.title}),u.jsx("div",{className:"msg-welcome-hint",children:Ot.hint})]}),(Un>0||A)&&u.jsxs("div",{className:"msg-history-hint",children:[u.jsx("button",{className:"msg-history-load-btn",onClick:()=>{er()},disabled:T,children:T?"Loading older messages...":Un>0?`Load ${Math.min(py,Un)} older messages`:"Load older messages"}),u.jsxs("span",{className:"msg-history-meta",children:["Showing ",pn.length," of ",D??Vt.length]})]}),Et.map(ce=>u.jsx("div",{className:"msg-timeline-row","data-timeline-key":ce.item.id,children:mt(ce)},ce.item.id)),gi&&u.jsxs("div",{className:"msg-row agent",children:[u.jsx("div",{className:"msg-avatar agent-avatar",children:u.jsx(vl,{})}),u.jsx("div",{className:"msg-body",children:u.jsx(qI,{workItemLog:b??[],roleWorkItems:k,executorRoleWorkItems:S,childSessions:w,isCompanyRuntime:v,onWorkItemClick:N})})]}),Jt&&u.jsxs("div",{className:"msg-row agent agent-working-row",children:[u.jsx("div",{className:"msg-avatar agent-avatar",children:u.jsx(vl,{})}),u.jsx("div",{className:"msg-body",children:u.jsx(El,{entries:St,agentStatus:o,currentTool:a,toolElapsedMs:c,lastToolSummary:d,expandedByDefault:!0})})]}),u.jsx("div",{className:"msg-end-anchor"})]})}),(qn.length>0||B==="browsing"&&!se)&&u.jsxs("div",{className:"msg-list-floating-actions",children:[qn.length>0&&u.jsxs("button",{type:"button",className:"msg-list-float-btn msg-list-pending-btn",onClick:Fe,children:["Pending actions · ",qn.length]}),B==="browsing"&&!se&&u.jsxs("button",{type:"button",className:"msg-list-float-btn msg-list-latest-btn",onClick:de,children:[te>0?`${te} new · `:"","Back to latest"]})]}),W&&u.jsx("div",{className:"lightbox-overlay",onClick:()=>V(null),children:u.jsx("img",{className:"lightbox-img",src:W,alt:"Preview"})})]})}),iV=10*1024*1024,rV=20*1024*1024,sV="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",hf={native:"OpenOPC Native",codex:"Codex",claude_code:"Claude Code",cursor:"Cursor",opencode:"OpenCode"};function oV(e,t){return new Promise((n,i)=>{const r=new FileReader;r.onprogress=o=>{o.lengthComputable&&t?.(Math.round(o.loaded/o.total*100))},r.onload=()=>{const o=r.result;t?.(100),n(o.split(",")[1]||"")},r.onerror=i,r.readAsDataURL(e)})}function xC(e){return e<1024?`${e}B`:e<1024*1024?`${(e/1024).toFixed(0)}KB`:`${(e/(1024*1024)).toFixed(1)}MB`}function XI(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 aV(e,t){const n=XI(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 lV({progress:e,state:t,error:n}){const r=2*Math.PI*11,o=n||t==="ready"?100:Math.max(0,Math.min(e,100)),a=r*(1-o/100);return u.jsxs("span",{className:`attachment-progress-ring${n?" error":t==="ready"?" ready":""}`,"aria-label":n?"Attachment preparation failed":t==="ready"?"Attachment ready to send":`Preparing attachment ${o}%`,role:"img",children:[u.jsxs("svg",{viewBox:"0 0 28 28","aria-hidden":"true",children:[u.jsx("circle",{className:"attachment-progress-track",cx:"14",cy:"14",r:11}),u.jsx("circle",{className:"attachment-progress-value",cx:"14",cy:"14",r:11,strokeDasharray:r,strokeDashoffset:a})]}),u.jsx("span",{className:"attachment-progress-center",children:n?"!":t==="ready"?u.jsx($l,{}):o})]})}function cV({usedPct:e,usedTokens:t,windowTokens:n}){const r=2*Math.PI*11,o=Math.max(0,Math.min(e,100)),a=r*(1-o/100),c=o>=80,d=o>=90,m=typeof t=="number"&&typeof n=="number"?`${o}% used (${t.toLocaleString()}/${n.toLocaleString()})`:`${o}% used`;return u.jsxs("span",{className:`composer-context-ring${c?" low":""}${d?" critical":""}`,title:`Context window: ${m}`,"aria-label":`Context window ${m}`,role:"img",children:[u.jsxs("svg",{viewBox:"0 0 28 28","aria-hidden":"true",children:[u.jsx("circle",{className:"composer-context-ring-track",cx:"14",cy:"14",r:11}),u.jsx("circle",{className:"composer-context-ring-value",cx:"14",cy:"14",r:11,strokeDasharray:r,strokeDashoffset:a})]}),u.jsx("span",{className:"composer-context-ring-label",children:o})]})}function gy(e){return e.organization_name?.trim()||e.name}function yy({disabled:e,placeholder:t,channelId:n,execMode:i,companyProfile:r,taskPreferredAgent:o="native",agentStatus:a,currentTool:c,displayTool:d,activeAgentCount:m,runtimeControlState:h,canStop:p,autoFocus:g=!0,contextTokens:x,contextWindow:v,contextRemainingPct:b,savedOrgs:w,activeSavedOrg:k,selectedOrgId:S,lockedMode:j=!1,onSend:N,onModeChange:L,onTaskAgentChange:A,onSavedOrgsRefresh:D,onSavedOrgLoad:O,onStop:T,onContinueInNewChat:M}){const[I,H]=C.useState(""),[Y,P]=C.useState(!1),[U,$]=C.useState([]),[G,q]=C.useState(null),K=C.useRef(null),W=C.useRef(null),V=h==="suspending",Q=h==="running"||h==="suspending"||h==="resuming",B=h==="suspended",Z=h!=null,te=Q||!Z&&a!=null&&a!=="idle",ee=(p??!0)&&!V&&!B,se=C.useMemo(()=>yE({contextTokens:x,contextWindow:v,contextRemainingPct:b}),[b,x,v]);C.useEffect(()=>{const be=K.current;be&&(be.style.height="auto",be.style.height=`${Math.min(be.scrollHeight,200)}px`)},[I]),C.useEffect(()=>{H(""),$(be=>(be.forEach(We=>{We.preview_url&&URL.revokeObjectURL(We.preview_url)}),[])),!e&&g&&setTimeout(()=>K.current?.focus(),50)},[n,e,g]);const ae=C.useCallback((be,We)=>{$(et=>et.map(Ue=>Ue.id===be?We(Ue):Ue))},[]),ue=C.useCallback(async(be,We)=>{try{const et=await oV(We,Ue=>{ae(be,Ae=>({...Ae,progress_percent:Ue,transfer_state:"reading"}))});ae(be,Ue=>({...Ue,base64_data:et,progress_percent:100,transfer_state:"ready"}))}catch{ae(be,et=>({...et,error:"Failed to prepare file",progress_percent:0,transfer_state:"error"}))}},[ae]),ie=C.useCallback(be=>{const We=Array.from(be);let et=U.reduce((Ae,jt)=>Ae+jt.size_bytes,0);const Ue=We.map(Ae=>{let jt;return Ae.size>iV?jt=`Too large (${xC(Ae.size)})`:et+Ae.size>rV?jt="Total size exceeds 20MB":et+=Ae.size,{id:crypto.randomUUID(),file:Ae,filename:Ae.name||"upload",mime_type:Ae.type||"application/octet-stream",size_bytes:Ae.size,preview_url:Ae.type.startsWith("image/")?URL.createObjectURL(Ae):"",progress_percent:0,transfer_state:jt?"error":"reading",error:jt}});$(Ae=>[...Ae,...Ue]),Ue.filter(Ae=>!Ae.error).forEach(Ae=>{ue(Ae.id,Ae.file)})},[U,ue]),je=C.useCallback(be=>{$(We=>{const et=We.find(Ue=>Ue.id===be);return et?.preview_url&&URL.revokeObjectURL(et.preview_url),We.filter(Ue=>Ue.id!==be)})},[]),we=C.useCallback(()=>{if(e||te)return;const be=I.trim(),We=U.filter(Ae=>!Ae.error&&Ae.transfer_state==="reading"),et=U.filter(Ae=>!Ae.error&&!!Ae.base64_data);if(We.length>0||!be&&et.length===0)return;const Ue=et.map(Ae=>({filename:Ae.filename,data:Ae.base64_data,mime_type:Ae.mime_type}));N(be||"Sent with attachments",Ue.length?Ue:void 0),H(""),U.forEach(Ae=>{Ae.preview_url&&URL.revokeObjectURL(Ae.preview_url)}),$([])},[e,te,I,U,N]),Re=C.useCallback(be=>{const We=be.clipboardData?.files;We&&We.length>0&&(be.preventDefault(),ie(We))},[ie]),Ve=String(r??"").trim().toLowerCase(),Ge=i==="company"?"company":i==="org"||i==="custom"||Ve==="custom"?"org":"task",qe=C.useMemo(()=>(w??[]).filter(be=>!!be.name&&be.name!=="corporate"),[w]),_t=k?qe.find(be=>be.name===k):void 0,$t=S?qe.find(be=>be.name===S):void 0,Ht=_t?gy(_t):k||"",Gt=$t?gy($t):S||Ht,he=$t?.name||S||_t?.name||"",$e=Ge==="task"?"task":"company",ut=Ge==="org"?he?`org:${he}`:"":"corporate",nt=Ge==="org"?Gt?`Company / ${Gt}`:"Company / Saved org":"Company / Corporate",Ke=$e==="task"?"Task":nt,pe=!!i&&!!L,Se=Ge==="task"&&!!A,De=C.useMemo(()=>{const be=Ge==="task"?"task":Ge==="org"?`org:${he||"selected"}`:"company:corporate",We=he||_t?.name||"",et=Gt||Ht||We,Ue=[{key:"task",mode:"task",label:"Task",description:"A single agent handles the request",icon:u.jsx(W4,{})},{key:"company:corporate",mode:"company",profile:"corporate",label:"Company / Corporate",description:"A team of roles collaborates",icon:u.jsx(Y4,{})}];return We&&Ue.push({key:`org:${We}`,mode:"org",profile:"custom",orgId:We,label:`Company / ${et}`,description:"A saved company architecture collaborates",icon:u.jsx(X4,{})}),Ue.filter(Ae=>Ae.key!==be)},[Ht,_t?.name,Ge,Gt,he]),Pe=U.filter(be=>!be.error&&be.transfer_state==="reading").length,Je=U.filter(be=>!be.error&&be.transfer_state==="ready").length,dt=d||c,nn=te?V?"Stopping...":m&&m>1?`${m} agents working`:dt?`Running ${dt}`:a==="reflecting"?"Thinking...":"Working...":null;return u.jsxs(u.Fragment,{children:[u.jsxs("div",{className:`msg-composer${Y?" focused":""}${te?" working":""}`,children:[te&&nn&&u.jsxs("div",{className:"composer-status",children:[u.jsx("div",{className:"composer-status-indicator"}),u.jsx("span",{className:"composer-status-text",children:nn}),u.jsxs("button",{className:"composer-stop-btn",onClick:T,title:"Stop",disabled:!ee||!T,children:[u.jsx(pE,{}),u.jsx("span",{children:V?"Stopping...":"Stop"})]})]}),U.length>0&&u.jsx("div",{className:"composer-attachments",children:U.map(be=>u.jsxs("div",{className:`attachment-chip${be.error?" error":""}`,children:[be.preview_url?u.jsx("img",{className:"attachment-thumb",src:be.preview_url,alt:be.filename,onClick:()=>q(be.preview_url)}):u.jsx("span",{className:`attachment-file-icon tone-${aV(be.mime_type,be.filename)}`,children:XI(be.mime_type,be.filename)}),u.jsxs("span",{className:"attachment-chip-info",children:[u.jsx("span",{className:"attachment-chip-name",children:be.filename}),u.jsx("span",{className:"attachment-chip-size",children:be.error?be.error:be.transfer_state==="reading"?`Preparing ${be.progress_percent}%`:`${xC(be.size_bytes)} - Ready`})]}),u.jsx(lV,{progress:be.progress_percent,state:be.transfer_state,error:be.error}),u.jsx("button",{className:"attachment-chip-remove",onClick:()=>je(be.id),title:"Remove",children:u.jsx(Dm,{})})]},be.id))}),u.jsxs("div",{className:"composer-input-area",children:[u.jsx("textarea",{ref:K,value:I,onChange:be=>H(be.target.value),onFocus:()=>P(!0),onBlur:()=>P(!1),onPaste:Re,onKeyDown:be=>{be.key==="Enter"&&!be.shiftKey&&(be.preventDefault(),we())},placeholder:t??"Message...",rows:1,disabled:e}),u.jsxs("div",{className:"composer-bottom",children:[u.jsx("button",{className:"composer-attach-btn",onClick:()=>W.current?.click(),title:"Attach files",disabled:e,children:u.jsx($4,{})}),u.jsx("input",{ref:W,type:"file",multiple:!0,accept:sV,style:{display:"none"},onChange:be=>{be.target.files&&ie(be.target.files),be.target.value=""}}),(pe||i)&&u.jsxs("div",{className:"composer-config-group","data-locked":j?"true":void 0,children:[pe&&!j?u.jsxs("label",{className:"composer-mode-inline","data-kind":"mode",title:"Execution mode for this chat and new work started from it",children:[u.jsx("span",{className:"composer-mode-inline-label",children:"Mode"}),u.jsx("span",{className:"composer-mode-select-wrap",children:u.jsxs("select",{className:"composer-mode-select",value:$e,onChange:be=>{if(be.target.value==="task"){L?.("task");return}L?.("company","corporate")},onFocus:()=>D?.(),onPointerDown:()=>D?.(),disabled:e,"aria-label":"Execution mode",children:[u.jsx("option",{value:"task",children:"Task"}),u.jsx("option",{value:"company",children:"Company"})]})})]}):pe&&j?u.jsxs("div",{className:"composer-mode-chip","data-kind":"mode",tabIndex:0,role:"group","aria-label":`Mode locked to ${Ke}.${M?" Use the menu to start a new chat in a different mode.":" Start a new chat to use a different mode."}`,children:[u.jsx("span",{className:"composer-mode-chip-icon","aria-hidden":"true",children:u.jsx(dS,{})}),u.jsx("span",{className:"composer-mode-chip-label",children:Ke}),u.jsxs("div",{className:"composer-mode-chip-popover",role:"dialog","aria-label":"Mode info",children:[u.jsx("div",{className:"composer-mode-chip-popover-title",children:"Mode is fixed for this chat"}),u.jsxs("div",{className:"composer-mode-chip-popover-body",children:["Once the first message is sent, this chat is committed to"," ",u.jsx("strong",{children:Ke}),"."]}),M&&De.length>0&&u.jsxs(u.Fragment,{children:[u.jsx("div",{className:"composer-mode-chip-popover-divider","aria-hidden":"true"}),u.jsx("div",{className:"composer-mode-chip-popover-action-title",children:"Continue in a new chat"}),u.jsx("div",{className:"composer-mode-chip-popover-actions",children:De.map(be=>u.jsxs("button",{type:"button",className:"composer-mode-chip-popover-action",onClick:()=>M(be.mode,be.profile,be.orgId),"aria-label":`Start a new chat in ${be.label}`,children:[u.jsx("span",{className:"composer-mode-chip-popover-action-icon","aria-hidden":"true",children:be.icon}),u.jsxs("span",{className:"composer-mode-chip-popover-action-text",children:[u.jsx("span",{className:"composer-mode-chip-popover-action-label",children:be.label}),u.jsx("span",{className:"composer-mode-chip-popover-action-desc",children:be.description})]}),u.jsx("span",{className:"composer-mode-chip-popover-action-arrow","aria-hidden":"true",children:u.jsx(gE,{})})]},be.key))})]})]})]}):u.jsx("span",{className:"composer-mode","data-kind":"mode",children:Ke}),$e==="company"&&pe&&!j&&u.jsxs(u.Fragment,{children:[u.jsx("span",{className:"composer-config-divider","aria-hidden":"true"}),u.jsxs("label",{className:"composer-mode-inline","data-kind":"org",title:"Company architecture for this chat",children:[u.jsx("span",{className:"composer-mode-inline-label",children:"Company"}),u.jsx("span",{className:"composer-mode-select-wrap",children:u.jsxs("select",{className:"composer-mode-select",value:ut,onChange:be=>{const We=be.target.value;if(We==="corporate"){L?.("company","corporate");return}if(We.startsWith("org:")){const et=We.slice(4);et&&L?.("org","custom",et)}},onFocus:()=>D?.(),onPointerDown:()=>D?.(),disabled:e,"aria-label":"Company architecture",children:[u.jsx("option",{value:"corporate",children:"Corporate"}),!ut&&u.jsx("option",{value:"",disabled:!0,children:"Select saved org"}),ut&&ut!=="corporate"&&!qe.some(be=>`org:${be.name}`===ut)&&u.jsx("option",{value:ut,children:Gt||he}),qe.length===0?u.jsx("option",{value:"",disabled:!0,children:"No saved orgs"}):qe.map(be=>u.jsx("option",{value:`org:${be.name}`,children:gy(be)},be.name))]})})]})]}),Ge==="task"&&u.jsxs(u.Fragment,{children:[u.jsx("span",{className:"composer-config-divider","aria-hidden":"true"}),Se&&!j?u.jsxs("label",{className:"composer-mode-inline","data-kind":"agent",title:"Execution agent for this task-mode chat",children:[u.jsx("span",{className:"composer-mode-inline-label",children:"Agent"}),u.jsx("span",{className:"composer-mode-select-wrap",children:u.jsx("select",{className:"composer-mode-select",value:o,onChange:be=>A?.(be.target.value),disabled:e,"aria-label":"Task mode agent",children:Object.entries(hf).map(([be,We])=>u.jsx("option",{value:be,children:We},be))})})]}):Se&&j?u.jsxs("span",{className:"composer-mode-chip","data-kind":"agent",tabIndex:0,role:"status","aria-label":`Agent locked to ${hf[o]}. Start a new chat to use a different agent.`,children:[u.jsx("span",{className:"composer-mode-chip-icon","aria-hidden":"true",children:u.jsx(dS,{})}),u.jsx("span",{className:"composer-mode-chip-label",children:hf[o]}),u.jsxs("span",{className:"composer-mode-chip-popover",role:"tooltip",children:[u.jsx("span",{className:"composer-mode-chip-popover-title",children:"Agent is fixed for this chat"}),u.jsx("span",{className:"composer-mode-chip-popover-body",children:"The execution agent is committed once the chat starts. Start a new chat to switch agents."})]})]}):u.jsx("span",{className:"composer-mode","data-kind":"agent",children:hf[o]})]})]}),u.jsx("span",{className:"composer-hint",children:Pe>0?`Preparing ${Pe} attachment${Pe>1?"s":""}`:Je>0?`${Je} attachment${Je>1?"s":""} ready`:"Shift+Enter for new line"}),typeof se.usedPct=="number"&&u.jsx(cV,{usedPct:se.usedPct,usedTokens:se.usedTokens,windowTokens:se.windowTokens}),u.jsx("button",{className:"composer-send-btn",onClick:we,disabled:e||Pe>0||!I.trim()&&Je===0||te,children:u.jsx(P4,{})})]})]})]}),G&&u.jsx("div",{className:"lightbox-overlay",onClick:()=>q(null),children:u.jsx("img",{className:"lightbox-img",src:G,alt:"Preview"})})]})}function O0(e){return Om(e)}function vC(e){const t=O0(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 L0(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 uV(e){return e.length===0?"—":L0(e[e.length-1].timestamp)}function dV(e){if(e.status==="done")return"Completed";if(e.status==="failed")return"Failed";if(e.status==="cancelled")return"Cancelled";const t=O0(e);if(t==="tool_active"&&e.currentTool)return e.currentTool;if(t==="reflecting")return"Thinking…";if(e.status==="pending")return"Pending";const n=e.progressLog;if(n.length>0){const i=n[n.length-1];return i.type==="work_item_started"?`Work item: ${i.summary}`:i.type==="tool_call"?i.summary:i.detail?i.detail.replace(/\s+/g," ").trim():i.summary}return"Idle"}function bC(e){return e==="done"?"✓":e==="failed"?"✗":e==="cancelled"?"—":null}function _C(e){return e==="done"?"awp-terminal-done":e==="failed"?"awp-terminal-failed":e==="cancelled"?"awp-terminal-cancelled":""}const fV={native:"Native",codex:"Codex",claude_code:"Claude Code",cursor:"Cursor",opencode:"OpenCode"},xy={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"}},pv={active:"Working",waiting:"Waiting",pending:"Pending",done:"Completed",failed:"Failed"},kC={active:0,waiting:1,pending:2,done:3,failed:4};function mV(e){if(e.runtimeStatus==="tool_active")return"Running tool…";if(e.runtimeStatus==="reflecting")return"Thinking…";const t=pv[e.aggregatedStatus]??"Pending";return e.aggregatedStatus==="done"?`${t} · ${e.workItems.length} work item${e.workItems.length===1?"":"s"}`:t}function pV(e){if(e.workItems.length===0)return"—";const t=e.workItems.reduce((n,i)=>Math.max(n,i.updatedAt),0);return t?L0(t):"—"}function hV(e){if(e.phase==="failed")return"failed";if(e.phase==="cancelled")return"cancelled";if(e.kanbanColumn==="done")return"done"}function gV({sections:e,fallbackEntries:t,sessionStatus:n}){const i=(e??[]).filter(r=>(r.entries?.length??0)>0||!!r.runtimeTaskId);return i.length>0?u.jsx("div",{className:"wf-role-turn-activity-sections",children:i.map((r,o)=>{const a=r.entries??[],c=`${r.runtimeTaskId||r.kind}:${o}`;return u.jsxs("section",{className:"wf-role-turn-activity-section",children:[u.jsxs("div",{className:"wf-role-turn-activity-section-head",children:[u.jsx("span",{className:"wf-role-turn-activity-section-title",children:r.title}),r.roleName&&u.jsx("span",{className:"wf-role-turn-activity-section-role",children:r.roleName}),a.length>0&&u.jsx("span",{className:"wf-role-turn-activity-section-count",children:a.length})]}),a.length>0?u.jsx(El,{entries:a,sessionStatus:n,expandedByDefault:!0}):u.jsx("div",{className:"wf-role-turn-empty-activity",children:"No runtime activity yet"})]},c)})}):!t||t.length===0?u.jsx("div",{className:"wf-role-turn-empty-activity",children:"No runtime activity yet"}):u.jsx(El,{entries:t,sessionStatus:n,expandedByDefault:!0})}function yV({roleWorkItems:e,onOpenChildDetail:t,onOpenExecutionPanel:n}){const[i,r]=C.useState(null),[o,a]=C.useState(null),[c,d]=C.useState("all"),[m,h]=C.useState(""),[p,g]=C.useState(!1),x=C.useMemo(()=>Object.values(e),[e]),v=C.useMemo(()=>{let S=x.slice();if(c==="active"?S=S.filter(j=>j.aggregatedStatus==="active"):c==="idle"?S=S.filter(j=>j.aggregatedStatus==="done"||j.aggregatedStatus==="failed"):c==="pending"&&(S=S.filter(j=>j.aggregatedStatus==="pending"||j.aggregatedStatus==="waiting")),m.trim()){const j=m.toLowerCase();S=S.filter(N=>N.roleName.toLowerCase().includes(j)||N.roleId.toLowerCase().includes(j)||N.workItems.some(L=>L.title.toLowerCase().includes(j)))}return S.sort((j,N)=>{const L=kC[j.aggregatedStatus]??99,A=kC[N.aggregatedStatus]??99;return L!==A?L-A:j.roleName.localeCompare(N.roleName)}),S},[x,c,m]);C.useEffect(()=>{i&&!x.some(S=>S.roleKey===i)&&(r(null),a(null))},[x,i]);const b=x.filter(S=>S.aggregatedStatus==="active").length,w=i?e[i]??null:null,k=w&&o?w.workItems.find(S=>S.workItemId===o)??null:null;return x.length===0?null:u.jsxs("div",{className:"awp",children:[u.jsxs("div",{className:"awp-header",children:[u.jsxs("span",{className:"awp-title",children:["Agents",u.jsx("span",{className:"awp-count",children:b>0?`${b}/${x.length} active`:`${x.length}`})]}),u.jsxs("div",{className:"awp-controls",children:[u.jsxs("select",{className:"awp-filter",value:c,onChange:S=>d(S.target.value),children:[u.jsx("option",{value:"all",children:"All"}),u.jsx("option",{value:"active",children:"Active"}),u.jsx("option",{value:"idle",children:"Idle / Done"}),u.jsx("option",{value:"pending",children:"Pending"})]}),u.jsx("button",{className:`awp-search-toggle${p?" active":""}`,onClick:()=>g(S=>!S),title:"Search agents",children:u.jsx(Vv,{})})]})]}),p&&u.jsx("div",{className:"awp-search-bar",children:u.jsx("input",{className:"awp-search-input",type:"text",placeholder:"Search agents or work items...",value:m,onChange:S=>h(S.target.value),autoFocus:!0})}),u.jsxs("div",{className:"awp-list",children:[v.map(S=>{const j=i===S.roleKey,N=S.aggregatedStatus==="active",L=S.runtimeStatus==="reflecting"||S.runtimeStatus==="tool_active",A=S.aggregatedStatus==="done"||S.aggregatedStatus==="failed";return u.jsxs("button",{className:`awp-row${j?" awp-row-selected":""}${N?" awp-row-active":""}${A?` awp-row-terminal awp-terminal-${S.aggregatedStatus}`:""}`,onClick:()=>{r(D=>D===S.roleKey?null:S.roleKey),a(null)},title:`${S.roleName} — ${pv[S.aggregatedStatus]}`,children:[u.jsx("span",{className:`awp-dot${L?" awp-dot-active":""} awp-dot-${S.aggregatedStatus}`}),u.jsxs("div",{className:"awp-row-info",children:[u.jsx("span",{className:"awp-row-name",children:S.roleName}),u.jsxs("span",{className:"awp-row-projection",children:[S.workItems.length," work item",S.workItems.length===1?"":"s"]})]}),u.jsx("span",{className:"awp-row-activity",children:mV(S)}),u.jsx("span",{className:"awp-row-time",children:pV(S)})]},S.roleKey)}),v.length===0&&u.jsx("div",{className:"awp-empty",children:m?"No matching agents":"No agents in this filter"})]}),w&&u.jsxs("div",{className:"awp-detail",children:[u.jsxs("div",{className:"awp-detail-header",children:[u.jsxs("div",{className:"awp-detail-identity",children:[u.jsx("div",{className:"awp-detail-avatar",children:w.roleName.charAt(0).toUpperCase()}),u.jsxs("div",{className:"awp-detail-meta",children:[u.jsx("span",{className:"awp-detail-name",children:w.roleName}),u.jsx("span",{className:"awp-detail-role",children:pv[w.aggregatedStatus]})]})]}),u.jsx("div",{className:"awp-detail-actions",children:u.jsx("button",{className:"awp-detail-close",onClick:()=>{r(null),a(null)},title:"Close detail",children:u.jsx(Dm,{})})})]}),u.jsxs("div",{className:"awp-detail-body",children:[u.jsxs("div",{className:"awp-detail-section",children:[u.jsxs("div",{className:"awp-detail-section-label",children:[u.jsx(bl,{}),u.jsx("span",{children:"Work items"})]}),u.jsx("ul",{className:"wf-role-turns",children:w.workItems.map(S=>{const j=o===S.workItemId,N=S.kanbanColumn==="in-progress"?"in_progress":S.kanbanColumn==="in-review"?"in_review":S.kanbanColumn;return u.jsxs("li",{className:`wf-role-turn${j?" wf-role-turn-expanded":""}`,children:[u.jsxs("button",{type:"button",className:"wf-role-turn-button",onClick:()=>a(L=>L===S.workItemId?null:S.workItemId),children:[u.jsx("span",{className:`wf-role-turn-column wf-role-turn-column-${N}`,children:S.kanbanColumn.replace("-"," ").replace(/^./,L=>L.toUpperCase())}),u.jsxs("span",{className:"wf-role-turn-title",children:[S.isReviewTarget&&u.jsx("span",{className:"wf-role-turn-tag",children:"Review"}),S.title]}),u.jsx("span",{className:"wf-role-turn-time",children:L0(S.updatedAt)}),u.jsx("span",{className:"wf-role-turn-chevron",children:u.jsx(rs,{down:j})})]}),j&&u.jsxs("div",{className:"wf-role-turn-activity",children:[u.jsx(gV,{sections:S.activitySections,fallbackEntries:S.progressLog,sessionStatus:hV(S)}),S.executionTurnId&&u.jsx("button",{type:"button",className:"wf-role-turn-open-session",onClick:L=>{L.stopPropagation(),S.executionTurnId&&(n??t)?.(S.executionTurnId)},children:"Open runtime session"})]})]},S.workItemId)})})]}),k===null&&w.workItems.length===0&&u.jsx("div",{className:"awp-detail-empty",children:"No work items yet"})]})]})]})}function xV({sessions:e,agents:t,onOpenChildDetail:n,onOpenExecutionPanel:i}){const[r,o]=C.useState(null),[a,c]=C.useState("all"),[d,m]=C.useState(""),[h,p]=C.useState(!1);C.useEffect(()=>{r&&!e.some(k=>k.taskId===r)&&o(null)},[e,r]);const g=C.useMemo(()=>{let k=[...e];if(a==="active"?k=k.filter(ss):a==="idle"?k=k.filter(S=>rl.has(S.status)||O0(S)==="idle"&&S.status!=="pending"):a==="pending"&&(k=k.filter(S=>S.status==="pending")),d.trim()){const S=d.toLowerCase();k=k.filter(j=>(j.assigneeIds[0]??j.title).toLowerCase().includes(S)||j.title.toLowerCase().includes(S))}return k.sort((S,j)=>vC(S)-vC(j)),k},[e,a,d]),x=e.filter(ss).length,v=C.useMemo(()=>r?e.find(k=>k.taskId===r)??null:null,[e,r]),b=C.useMemo(()=>{if(!v)return;const k=v.assigneeIds[0];return k?t.find(S=>S.agent_id===k):void 0},[v,t]),w=C.useCallback(k=>{o(S=>S===k?(n?.(k),S):k)},[n]);return e.length===0?null:u.jsxs("div",{className:"awp",children:[u.jsxs("div",{className:"awp-header",children:[u.jsxs("span",{className:"awp-title",children:["Agents",u.jsx("span",{className:"awp-count",children:x>0?`${x}/${e.length} active`:`${e.length}`})]}),u.jsxs("div",{className:"awp-controls",children:[u.jsxs("select",{className:"awp-filter",value:a,onChange:k=>c(k.target.value),children:[u.jsx("option",{value:"all",children:"All"}),u.jsx("option",{value:"active",children:"Active"}),u.jsx("option",{value:"idle",children:"Idle / Done"}),u.jsx("option",{value:"pending",children:"Pending"})]}),u.jsx("button",{className:`awp-search-toggle${h?" active":""}`,onClick:()=>p(k=>!k),title:"Search agents",children:u.jsx(Vv,{})})]})]}),h&&u.jsx("div",{className:"awp-search-bar",children:u.jsx("input",{className:"awp-search-input",type:"text",placeholder:"Search agents...",value:d,onChange:k=>m(k.target.value),autoFocus:!0})}),u.jsxs("div",{className:"awp-list",children:[g.map(k=>{const S=ss(k),j=rl.has(k.status),N=r===k.taskId,L=k.assigneeIds[0]?.replace(/_/g," ").replace(/\b\w/g,T=>T.toUpperCase())??k.title,A=k.workItemProjectionId?.replace(/_/g," ")??"",D=bC(k.status),O=_C(k.status);return u.jsxs("button",{className:`awp-row${N?" awp-row-selected":""}${S?" awp-row-active":""}${j?` awp-row-terminal ${O}`:""}`,onClick:()=>w(k.taskId),onDoubleClick:()=>n?.(k.taskId),title:n?"Click to inspect, click again or double-click to open full context":void 0,children:[D?u.jsx("span",{className:`awp-terminal-icon ${O}`,children:D}):u.jsx("span",{className:`awp-dot${S?" awp-dot-active":""}`}),u.jsxs("div",{className:"awp-row-info",children:[u.jsx("span",{className:"awp-row-name",children:L}),A&&u.jsx("span",{className:"awp-row-projection",children:A})]}),u.jsx("span",{className:"awp-row-activity",children:dV(k)}),u.jsx("span",{className:"awp-row-time",children:uV(k.progressLog)})]},k.taskId)}),g.length===0&&u.jsx("div",{className:"awp-empty",children:d?"No matching agents":"No agents in this filter"})]}),v&&u.jsxs("div",{className:"awp-detail",children:[u.jsxs("div",{className:"awp-detail-header",children:[u.jsxs("div",{className:"awp-detail-identity",children:[u.jsx("div",{className:`awp-detail-avatar${rl.has(v.status)?` ${_C(v.status)}`:""}`,children:(b?.name??v.assigneeIds[0]??"?").charAt(0).toUpperCase()}),u.jsxs("div",{className:"awp-detail-meta",children:[u.jsx("span",{className:"awp-detail-name",children:b?.name??v.assigneeIds[0]??v.title}),Cl(v)&&u.jsx("span",{className:"awp-detail-role",children:Cl(v)}),v.employeeAssignment?.name&&u.jsx("span",{className:"awp-detail-employee",children:v.employeeAssignment.name}),v.selectedExecutionAgent&&u.jsxs("span",{className:"awp-detail-employee",children:["Agent: ",fV[v.selectedExecutionAgent]??v.selectedExecutionAgent]}),v.workItemProjectionId&&u.jsx("span",{className:"awp-detail-projection",children:v.workItemProjectionId.replace(/_/g," ")})]})]}),u.jsxs("div",{className:"awp-detail-actions",children:[n&&u.jsx("button",{className:"awp-detail-expand",onClick:()=>n(v.taskId),title:"Open full context",children:u.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none","aria-hidden":"true",children:[u.jsx("path",{d:"M2.5 3.25h9a1 1 0 011 1v5.5a1 1 0 01-1 1h-4l-2.75 2v-2h-2.25a1 1 0 01-1-1v-5.5a1 1 0 011-1Z",stroke:"currentColor",strokeWidth:"1.2",strokeLinejoin:"round"}),u.jsx("path",{d:"M4.5 5.5h5M4.5 7.5h3.5",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"})]})}),i&&u.jsx("button",{className:"awp-detail-expand",onClick:()=>i(v.taskId),title:"Open execution panel",children:u.jsx(bl,{})}),u.jsx("button",{className:"awp-detail-close",onClick:()=>o(null),title:"Close detail",children:u.jsx(Dm,{})})]})]}),u.jsxs("div",{className:"awp-detail-body",children:[v.handoffContext&&u.jsxs("div",{className:"awp-detail-section",children:[u.jsxs("div",{className:"awp-detail-section-label",children:[u.jsx(qf,{}),u.jsx("span",{children:"Handoff"})]}),u.jsx("div",{className:"msg-content-agent-card",children:u.jsx(bi,{content:v.handoffContext,className:"awp-detail-handoff awp-detail-handoff-markdown"})})]}),u.jsxs("div",{className:"awp-detail-section",children:[u.jsxs("div",{className:"awp-detail-section-label",children:[u.jsx(bl,{}),u.jsx("span",{children:"Activity"})]}),u.jsx(El,{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&&!rl.has(v.status)&&u.jsx("div",{className:"awp-detail-empty",children:"No activity recorded yet"})]}),rl.has(v.status)&&xy[v.status]&&u.jsxs("div",{className:`awp-result-banner ${xy[v.status].cls}`,children:[u.jsx("span",{className:"awp-result-icon",children:bC(v.status)}),u.jsx("span",{children:xy[v.status].text})]})]})]})]})}function vV({sessions:e,roleWorkItems:t,isCompanyRuntime:n=!1,agents:i,onOpenChildDetail:r,onOpenExecutionPanel:o}){return t&&Object.keys(t).length>0?u.jsx(yV,{roleWorkItems:t,onOpenChildDetail:r,onOpenExecutionPanel:o}):n?null:u.jsx(xV,{sessions:e,agents:i,onOpenChildDetail:r,onOpenExecutionPanel:o})}function KI(e){try{return JSON.stringify(e,null,2)}catch{return String(e??"")}}function vy(e){return(e??[]).map(t=>t.trim()).filter(Boolean)}function SC(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,KI(n)]:[t,String(n)]):[]}function bV({task:e,linkedSession:t,linkedSessionMessages:n,agents:i,onBack:r,onOpenLinkedSession:o,onOpenExecutionPanel:a}){const c=C.useMemo(()=>e.assigneeIds.map(A=>i.find(D=>D.agent_id===A)).filter(Boolean),[i,e.assigneeIds]),d=e.priority?am[e.priority]:null,m=e.residentAssignment??{},h=e.memberSessionState??{},p=e.ownershipContract??{},g=!!(e.agentStatus&&e.agentStatus!=="idle"),x=vy(e.deliverables),v=vy(e.acceptanceCriteria),b=vy(e.dependencies),w=SC({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}),k=SC({status:h.status,current_turn_mode:h.current_turn_mode,manager_role_id:h.manager_role_id,actionable_inbox_count:h.actionable_inbox_count,protocol_backlog_count:h.protocol_backlog_count,notification_backlog_count:h.notification_backlog_count}),S=String(e.employeeAssignment?.promptContext??"").trim(),j=String(e.employeeAssignment?.deltaContext??"").trim(),N=Um(e),L=!!(e.workItemId||e.workItemProjectionId||N);return u.jsxs("div",{className:"ctx-child-detail",children:[u.jsxs("div",{className:"ctx-child-topbar",children:[u.jsxs("button",{className:"ctx-back-btn",onClick:r,children:["←"," Back to board"]}),N&&(o||a)&&u.jsx("button",{className:"ctx-child-stop-btn",onClick:()=>{if(o){o(N);return}a?.(N)},children:"Open Runtime Session"})]}),u.jsxs("div",{className:"ctx-child-header",children:[u.jsx("div",{className:"ctx-child-avatar",children:(e.workItemRoleName??e.title).charAt(0).toUpperCase()}),u.jsxs("div",{className:"ctx-child-meta",children:[u.jsx("span",{className:"ctx-child-name",children:e.title}),u.jsx("span",{className:"ctx-child-work-item",children:[e.workItemRoleName,e.phase].filter(Boolean).join(" · ")})]})]}),g&&u.jsxs("div",{className:`task-detail-runtime status-${e.agentStatus}`,children:[u.jsx("span",{className:"kanban-runtime-dot"}),u.jsx("span",{children:e.agentStatus==="tool_active"&&e.currentTool?e.currentTool:h0[e.agentStatus]??e.agentStatus}),c.length>0&&u.jsx("span",{className:"task-detail-runtime-agent",children:c.map(A=>A.name).join(", ")})]}),u.jsxs("div",{className:"task-detail-body",children:[u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:L?"Work Item":"Task"}),u.jsxs("div",{className:"ctx-task-chip-row",children:[u.jsx("span",{className:"task-detail-dep-id",children:e.displayId}),d&&u.jsx("span",{className:"kanban-tag",children:d.label}),e.workItemRoleName&&u.jsx("span",{className:"kanban-tag",children:e.workItemRoleName}),e.managerRoleId&&u.jsxs("span",{className:"kanban-tag",children:["Manager: ",e.managerRoleId]}),e.scopeKey&&u.jsx("span",{className:"kanban-tag",children:e.scopeKey})]}),e.description&&u.jsx("div",{className:"msg-content-agent-card ctx-task-detail-card",children:u.jsx(bi,{content:e.description})})]}),e.originalMessage&&u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Session Goal"}),u.jsx("pre",{className:"task-detail-handoff",children:e.originalMessage})]}),e.planningContext&&u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Planning Context"}),u.jsx("pre",{className:"task-detail-handoff",children:e.planningContext})]}),x.length>0&&u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Deliverables"}),u.jsx("ul",{className:"task-detail-dep-list",children:x.map(A=>u.jsx("li",{className:"task-detail-dep-item",children:A},A))})]}),v.length>0&&u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Acceptance Criteria"}),u.jsx("ul",{className:"task-detail-dep-list",children:v.map(A=>u.jsx("li",{className:"task-detail-dep-item",children:A},A))})]}),(e.delegationRationale||e.nonOverlapGuard||e.coordinationNotes)&&u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Delegation Notes"}),e.delegationRationale&&u.jsx("pre",{className:"task-detail-handoff",children:e.delegationRationale}),e.nonOverlapGuard&&u.jsx("pre",{className:"task-detail-handoff",children:e.nonOverlapGuard}),e.coordinationNotes&&u.jsx("pre",{className:"task-detail-handoff",children:e.coordinationNotes})]}),b.length>0&&u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Dependencies"}),u.jsx("ul",{className:"task-detail-dep-list",children:b.map(A=>u.jsx("li",{className:"task-detail-dep-item",children:u.jsx("span",{className:"task-detail-dep-id",children:A})},A))})]}),(w.length>0||k.length>0||t)&&u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Role Runtime Context"}),t&&u.jsxs("div",{className:"ctx-task-chip-row",children:[u.jsxs("span",{className:"kanban-tag",children:["Runtime Session: ",t.title]}),u.jsxs("span",{className:"kanban-tag",children:["Status: ",t.status]})]}),w.length>0&&u.jsx("div",{className:"ctx-task-kv-grid",children:w.map(([A,D])=>u.jsxs("div",{className:"ctx-task-kv-item",children:[u.jsx("span",{className:"ctx-task-kv-label",children:A}),u.jsx("span",{className:"ctx-task-kv-value",children:D})]},A))}),k.length>0&&u.jsx("div",{className:"ctx-task-kv-grid",children:k.map(([A,D])=>u.jsxs("div",{className:"ctx-task-kv-item",children:[u.jsx("span",{className:"ctx-task-kv-label",children:A}),u.jsx("span",{className:"ctx-task-kv-value",children:D})]},A))})]}),e.handoffContext&&u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Handoff Context"}),u.jsx("pre",{className:"task-detail-handoff",children:e.handoffContext})]}),S&&u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Role Prompt Context"}),u.jsx("div",{className:"msg-content-agent-card ctx-task-detail-card",children:u.jsx(bi,{content:S})})]}),j&&u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Role Delta Context"}),u.jsx("pre",{className:"task-detail-handoff",children:j})]}),Object.keys(p).length>0&&u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Ownership Contract"}),u.jsx("pre",{className:"task-detail-handoff",children:KI(p)})]}),e.progressLog&&e.progressLog.length>0&&u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Activity"}),u.jsx("ul",{className:"task-detail-progress",children:e.progressLog.map((A,D)=>u.jsxs("li",{className:`progress-entry type-${A.type}`,children:[u.jsx("span",{className:"progress-time",children:new Date(A.timestamp).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}),u.jsx("span",{className:"progress-summary",children:A.summary})]},`${A.timestamp}-${D}`))})]}),u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Runtime Session Activity"}),t&&n&&n.length>0?u.jsx("div",{className:"task-detail-linked-messages",children:u.jsx(ol,{messages:n,channelName:t.title??"Runtime Session",detailMode:"summary",scrollScope:t.channelId},t.channelId)}):t?u.jsx("p",{className:"task-detail-empty-hint",children:"Runtime session has no visible messages yet."}):u.jsx("p",{className:"task-detail-empty-hint",children:"No Runtime Session linked yet."})]})]})]})}function _V(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 kV(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 SV(e){if(!(!e||Object.keys(e).length===0))return Object.values(e).filter(t=>t.aggregatedStatus==="active").length}function wV(e){return new Set(e.filter(ss).map(n=>String(n.workItemRoleId??n.assigneeIds[0]??n.taskId).trim()).filter(Boolean)).size}function wC(e,t){const n=SV(e);return n!==void 0?n||void 0:wV(t)||void 0}function CV(e){const t=hv(e);return t==="org"||t==="custom"?`company/${e.orgId??"org"}`:t==="company"?`company/${e.companyProfile??"corporate"}`:t}function ZI(e){const t=String(e??"").trim().toLowerCase();return t==="company"?"company":t==="org"||t==="custom"?"org":"task"}function QI(e){return!!(e.isCompanyRuntime||e.parentSessionId||e.workItemProjectionId||e.roleWorkItems||e.executorRoleWorkItems)}function CC(e,t=0){if(!e)return!1;const n=String(e.execMode??"").trim().toLowerCase();return t>0||QI(e)||n==="company"||n==="org"||n==="custom"}function tu(e,t){const n=t==="full"?e.fullHasMore:e.summaryHasMore;if(n!==void 0)return n;if(e.summaryHasMore===void 0&&e.fullHasMore===void 0)return e.hasMore}function by(e,t,n,i=!0){const r=e.map(o=>tu(o,n));return r.some(o=>o===!0)?!0:e.length!==1||r[0]===!1?!1:i&&e[0].messageCount>t}function jV(e){const t=String(e.execMode??"").trim().toLowerCase(),n=ZI(e.execMode),i=String(e.companyProfile??"").trim().toLowerCase();return n==="company"?!1:n==="org"?!0:t?!1:i==="custom"||!!e.orgId}function _y(e,t=0){if(!e)return t>0;if(Math.max(e.messageCount??0,t)>0)return!0;const i=String(e.status??"").trim().toLowerCase();return!!(i&&i!=="pending"||e.parentSessionId||e.workItemProjectionId||e.workItemRoleId||e.workItemTurnType||e.pendingRuntimeCheckpointId||e.runtimeControlState&&e.runtimeControlState!=="idle"||(e.progressLog?.length??0)>0||(e.workItemLog?.length??0)>0||e.roleWorkItems&&Object.keys(e.roleWorkItems).length>0||e.executorRoleWorkItems&&Object.keys(e.executorRoleWorkItems).length>0)}function hv(e,t){const i=String(e.execMode??"").trim().toLowerCase().length>0,r=ZI(e.execMode);return jV(e)?"org":!i&&r==="task"&&QI(e)?"company":e.execMode??t??"task"}function jC(e,t,n){return t&&e.selectedExecutionAgent&&e.selectedExecutionAgent!=="native"?e.selectedExecutionAgent:e.preferredAgent??e.selectedExecutionAgent??n}function Yc(e,t){return e?e.execMode==="company"||e.execMode==="org"||e.execMode==="custom"?"summary":"full":"summary"}const EV=new Set(["awaiting_human","awaiting_manager_review","awaiting_review","awaiting_peer"]);function EC(e){const t=String(e.status??"").trim(),n=e.runtimeControlState==="suspended"||!EV.has(t)&&t!=="running"&&t!=="done";return!!(e.canResume??n)}function NV({task:e,agents:t,roleLabel:n}){const[i,r]=C.useState(!1),o=e.priority,a=o&&e.priority in am?am[o]:null,c=e.assigneeIds.map(p=>t.find(g=>g.agent_id===p)?.name??p).filter(Boolean),d=new Date(e.createdAt),m=e.employeeAssignment?.name?`${e.employeeAssignment.name}${e.employeeAssignment.category?` · ${e.employeeAssignment.category}`:""}`:null,h=({label:p,value:g})=>u.jsxs("div",{className:"ctx-info-fact",children:[u.jsx("span",{className:"ctx-info-fact-label",children:p}),u.jsx("span",{className:"ctx-info-fact-value",children:g})]});return u.jsxs("div",{className:"ctx-info-v2",children:[u.jsxs("section",{className:"ctx-info-section",children:[u.jsx("h4",{className:"ctx-info-section-title",children:"Status"}),u.jsxs("div",{className:"ctx-info-card",children:[u.jsxs("div",{className:"ctx-info-status-row",children:[u.jsxs("span",{className:`ctx-info-status-pill status-${e.status}`,children:[u.jsx("span",{className:"ctx-info-status-dot"}),e.status]}),a&&u.jsxs("span",{className:"ctx-info-priority-pill",style:{color:a.color},children:[u.jsx("span",{"aria-hidden":"true",children:a.symbol}),a.label]})]}),e.tags&&e.tags.length>0&&u.jsx("div",{className:"ctx-info-chips",children:e.tags.map(p=>u.jsx("span",{className:"ctx-info-chip",children:p},p))})]})]}),u.jsxs("section",{className:"ctx-info-section",children:[u.jsx("h4",{className:"ctx-info-section-title",children:"People & agent"}),u.jsxs("div",{className:"ctx-info-card",children:[c.length>0&&u.jsx(h,{label:"Assignees",value:u.jsx("div",{className:"ctx-info-chips",children:c.map(p=>u.jsx("span",{className:"ctx-info-chip",children:p},p))})}),n&&u.jsx(h,{label:"Role",value:n}),m&&u.jsx(h,{label:"Employee",value:m}),e.selectedExecutionAgent&&u.jsx(h,{label:"Execution agent",value:u.jsx("span",{className:"ctx-info-mono",children:e.selectedExecutionAgent})})]})]}),u.jsxs("section",{className:"ctx-info-section",children:[u.jsx("h4",{className:"ctx-info-section-title",children:"Timing"}),u.jsx("div",{className:"ctx-info-card",children:u.jsx(h,{label:"Created",value:u.jsx("span",{children:d.toLocaleString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})})})})]}),u.jsxs("section",{className:"ctx-info-section ctx-info-dev-section",children:[u.jsxs("button",{className:`ctx-info-dev-toggle${i?" expanded":""}`,type:"button",onClick:()=>r(p=>!p),"aria-expanded":i,children:[u.jsx("svg",{width:"11",height:"11",viewBox:"0 0 16 16","aria-hidden":"true",children:u.jsx("path",{d:i?"M3 6l5 5 5-5":"M6 3l5 5-5 5",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"})}),u.jsx("span",{children:"Developer details"})]}),i&&u.jsxs("div",{className:"ctx-info-card ctx-info-dev-card",children:[e.workItemProjectionId&&u.jsx(h,{label:"Projection",value:u.jsx("span",{className:"ctx-info-mono ctx-info-mono-break",children:e.workItemProjectionId})}),u.jsx(h,{label:"Task ID",value:u.jsx("span",{className:"ctx-info-mono ctx-info-mono-break",children:e.taskId})}),u.jsx(h,{label:"Channel",value:u.jsx("span",{className:"ctx-info-mono ctx-info-mono-break",children:e.channelId})}),e.sessionId&&u.jsx(h,{label:"Session",value:u.jsx("span",{className:"ctx-info-mono ctx-info-mono-break",children:e.sessionId})})]})]})]})}function IV({panelState:e,width:t,onResizeMouseDown:n,isResizing:i,activeView:r,activeSession:o,activeTask:a,linkedTaskSession:c,linkedTaskSessionMessages:d,childDetailSession:m,messages:h,childDetailMessages:p,allSessions:g,openSessions:x,openSessionMessages:v,openSessionChildren:b,agents:w,childSessions:k,execMode:S,taskPreferredAgent:j,savedOrgsList:N,activeSavedOrg:L,onSavedOrgsList:A,onSavedOrgLoad:D,canShowAgentsTab:O=!1,channelId:T,channelName:M,secretaryChannelId:I,unreadCounts:H,multiSessionView:Y=!1,panelTab:P,onPanelTabChange:U,commsState:$,commsMessage:G,onCommsRefresh:q,onCommsReadMessage:K,orgInfoData:W,canShowTeamTab:V=!1,onTeamStopRun:Q,onTitleChange:B,onSessionConfigChange:Z,onSessionTaskAgentChange:te,onContinueInNewChat:ee,onStop:se,onComplete:ae,onResume:ue,onResumeTask:ie,onStopTask:je,onCompleteTask:we,onLocateOnBoard:Re,onBackToParent:Ve,onCloseTaskDetail:Ge,onOpenChildDetail:qe,onOpenExecutionPanel:_t,onSelectSessionTab:$t,onCloseSessionTab:Ht,onToggleMultiSessionView:Gt,onCollapse:he,onExpand:$e,onMaximize:ut,onComposerSend:nt,onMessageSend:Ke,onSessionSend:pe,onWorkItemClick:Se,onWorkItemOpenSession:De,onMarkRead:Pe,onSessionMarkRead:Je,onLoadSessionHistory:dt,isSessionHistoryLoading:nn}){const be=r.kind==="secretary",We=r.kind==="activity",et=r.kind==="child-detail",Ue=r.kind==="task-detail",Ae=CC(o,k.length),jt=r.kind==="session"&&o,An=be?!0:!!o,qn=!et&&x.length>0,ft=x.length>1,bn=!!(Y&&r.kind==="session"&&o&&ft&&P==="chat"),Nn=C.useRef(null),Rt=C.useMemo(()=>{const Te=Xf(o,g);return Kf(o,[...Te,...k])},[o,k,g]),bt=Rt.displaySession??o,Vn=Yc(bt),St=C.useMemo(()=>vS(o,Rt.runtimeSession,Rt.timelineSessions),[o,Rt.runtimeSession,Rt.timelineSessions]),Ye=C.useMemo(()=>fD(o,Rt.runtimeSession,Rt.timelineSessions),[o,Rt.runtimeSession,Rt.timelineSessions]),Ft=C.useMemo(()=>_S(Rt.timelineSessions),[Rt.timelineSessions]),zi=C.useMemo(()=>St?.workItemLog??o?.workItemLog??[],[St?.workItemLog,o?.workItemLog]),Mn=C.useMemo(()=>gS(St??o,g),[St,o,g]),Jt=C.useMemo(()=>St?.roleWorkItems??o?.roleWorkItems,[St?.roleWorkItems,o?.roleWorkItems]),gt=C.useMemo(()=>St?.executorRoleWorkItems??o?.executorRoleWorkItems,[St?.executorRoleWorkItems,o?.executorRoleWorkItems]),Vt=!!(Jt&&Object.keys(Jt).length>0||gt&&Object.keys(gt).length>0),dn=Mn.length>0?Mn:k,Ln=C.useMemo(()=>Zf(Rt.timelineSessions),[Rt.timelineSessions]),Wn=C.useMemo(()=>Rt.timelineSessions.some(Te=>nn?.(Te.taskId)??!1),[Rt.timelineSessions,nn]),At=C.useCallback(Te=>{if(Te){const pn=Rt.timelineSessions.find(Un=>Un.channelId===Te.channelId);if(pn&&tu(pn,Vn)!==!1)return pn}const kt=Rt.timelineSessions.find(pn=>tu(pn,Vn)===!0);return kt||(bt??o)},[Rt.timelineSessions,Vn,bt,o]),Ut=C.useMemo(()=>{if(!m)return;const Te=m.assigneeIds[0];return Te?w.find(kt=>kt.agent_id===Te):void 0},[m,w]),In=c??(()=>{const Te=Um(a);return Te?g.find(kt=>kt.taskId===Te||kt.runtimeTaskId===Te||kt.executionTurnId===Te)??null:null})();C.useEffect(()=>{!et||!m||Nn.current?.scrollTo({top:0,behavior:"auto"})},[et,m?.taskId]);const Yn=o;return e==="collapsed"?u.jsx("div",{className:"ctx-collapse-strip",onClick:()=>$e(),title:"Open panel",children:"◀"}):u.jsxs(u.Fragment,{children:[u.jsx("div",{className:`ctx-resize-handle${i?" active":""}`,onMouseDown:n}),u.jsx("div",{className:`ctx-panel${e==="maximized"?" maximized":""}`,style:e!=="maximized"?{width:t}:void 0,children:Ue&&a?u.jsx(bV,{task:a,linkedSession:In,linkedSessionMessages:d,agents:w,onBack:Ge??he,onOpenLinkedSession:$t,onOpenExecutionPanel:_t}):et&&m?u.jsxs("div",{className:"ctx-child-detail",ref:Nn,children:[u.jsxs("div",{className:"ctx-child-topbar",children:[u.jsx("button",{className:"ctx-back-btn",onClick:Ve,children:"← Back to parent"}),(m.canStop??m.status==="running")&&m.runtimeControlState!=="suspending"&&je&&u.jsx("button",{className:"ctx-child-stop-btn",onClick:()=>je(m.taskId),title:"Stop this agent",children:"Stop"}),m.runtimeControlState==="suspending"&&u.jsx("button",{className:"ctx-child-stop-btn",disabled:!0,title:"Stopping this agent",children:"Stopping..."}),EC(m)&&ie&&u.jsx("button",{className:"ctx-child-resume-btn",onClick:()=>ie(m.taskId),title:"Continue this agent's runtime",children:"Continue"})]}),u.jsxs("div",{className:"ctx-child-header",children:[Ut&&u.jsx("div",{className:"ctx-child-avatar",children:Ut.name.charAt(0).toUpperCase()}),u.jsxs("div",{className:"ctx-child-meta",children:[u.jsx("span",{className:"ctx-child-name",children:Ut?.name??m.title}),m.workItemRoleName&&u.jsx("span",{className:"ctx-child-work-item",children:m.workItemRoleName}),!m.workItemRoleName&&m.workItemProjectionId&&u.jsx("span",{className:"ctx-child-work-item",children:m.workItemProjectionId.replace(/_/g," ")})]})]}),m.handoffContext&&u.jsxs("div",{className:"exec-section ctx-child-markdown-section",children:[u.jsxs("div",{className:"exec-section-header",children:[u.jsx(qf,{}),u.jsx("span",{children:"Received From"})]}),u.jsx("div",{className:"msg-content-agent-card ctx-child-markdown-card",children:u.jsx(bi,{content:m.handoffContext})})]}),u.jsxs("div",{className:"ctx-child-transcript",children:[u.jsxs("div",{className:"ctx-child-transcript-header",children:[u.jsx(bl,{}),u.jsx("span",{children:"Transcript"})]}),u.jsx(ol,{messages:p,channelName:m.title,viewKind:"session",detailMode:"full",agentStatus:m.agentStatus,currentTool:m.currentTool,toolElapsedMs:m.toolElapsedMs,lastToolSummary:m.lastToolSummary,progressLog:m.progressLog,draftAssistantText:m.draftAssistantText,draftUpdatedAt:m.draftUpdatedAt,draftIteration:m.draftIteration,draftTurnId:m.draftTurnId,onMarkRead:Pe,hasOlderHistory:by([m],p.length,"full",!ss(m)),totalMessageCount:m.messageCount,onLoadOlderHistory:Te=>dt?.(m.taskId,Te,"full"),loadingOlderHistory:nn?.(m.taskId)??!1,scrollPolicy:"initial-bottom",scrollScope:m.channelId,showRuntimeProgress:!0,renderUserMarkdown:!0},m.channelId)]}),m.artifacts&&m.artifacts.length>0&&u.jsxs("div",{className:"ctx-child-artifacts",children:[u.jsxs("div",{className:"ctx-child-section-header",children:[u.jsx(Rm,{}),u.jsx("span",{children:"Artifacts"})]}),u.jsx("ul",{className:"ctx-child-artifact-list",children:m.artifacts.map((Te,kt)=>u.jsx("li",{children:Te},kt))})]}),m.handoffTo&&u.jsxs("div",{className:"ctx-child-markdown-section ctx-child-passed-to",children:[u.jsxs("div",{className:"ctx-child-section-header",children:[u.jsx(qf,{}),u.jsx("span",{children:"Passed To"})]}),u.jsx("div",{className:"msg-content-agent-card ctx-child-markdown-card",children:u.jsx(bi,{content:m.handoffTo})})]})]}):u.jsxs(u.Fragment,{children:[qn&&u.jsxs("div",{className:"ctx-session-strip",children:[u.jsx("div",{className:"ctx-session-strip-scroll",children:x.map(Te=>{const kt=H?.[Te.channelId]??0,pn=o?.taskId===Te.taskId;return u.jsxs("div",{className:`ctx-session-chip${pn?" active":""}`,children:[u.jsxs("button",{className:"ctx-session-chip-main",onClick:()=>$t?.(Te.taskId),title:Te.title,children:[u.jsx("span",{className:`ctx-session-chip-status status-${Te.status}`}),u.jsx("span",{className:"ctx-session-chip-title",children:Te.title}),kt>0&&u.jsx("span",{className:"ctx-session-chip-unread",children:kt>99?"99+":kt})]}),u.jsx("button",{className:"ctx-session-chip-close",onClick:()=>Ht?.(Te.taskId),title:"Close tab",children:"×"})]},Te.taskId)})}),ft&&u.jsx("button",{className:`ctx-session-view-btn${Y?" active":""}`,onClick:Gt,children:Y?"Single View":"Multi View"})]}),u.jsxs("div",{className:"ctx-header",children:[bn?u.jsx("span",{className:"ctx-header-title",children:Ae?"Open Runtime Sessions":"Open Sessions"}):jt?u.jsxs("div",{className:"ctx-header-tabs",role:"tablist","aria-label":"Session view",children:[u.jsx("button",{role:"tab","aria-selected":P==="chat",className:`ctx-tab${P==="chat"?" active":""}`,onClick:()=>U("chat"),children:"Chat"}),O&&u.jsx("button",{role:"tab","aria-selected":P==="agents",className:`ctx-tab${P==="agents"?" active":""}`,onClick:()=>U("agents"),children:"Agents"}),u.jsx("button",{role:"tab","aria-selected":P==="info",className:`ctx-tab${P==="info"?" active":""}`,onClick:()=>U("info"),children:"Info"}),q&&u.jsx("button",{role:"tab","aria-selected":P==="comms",className:`ctx-tab${P==="comms"?" active":""}`,onClick:()=>U("comms"),children:"Comms"}),V&&u.jsx("button",{role:"tab","aria-selected":P==="team",className:`ctx-tab${P==="team"?" active":""}`,onClick:()=>U("team"),children:"Team"})]}):be?u.jsx("span",{style:{fontSize:13,fontWeight:600,padding:"0 4px"},children:"Secretary"}):u.jsx("span",{style:{fontSize:13,fontWeight:600,padding:"0 4px"},children:"Activity"}),u.jsxs("div",{className:"ctx-header-actions",children:[e==="open"&&u.jsx("button",{onClick:ut,title:"Maximize",children:u.jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",children:u.jsx("rect",{x:"2",y:"2",width:"10",height:"10",rx:"1.5",stroke:"currentColor",strokeWidth:"1.3"})})}),e==="maximized"&&u.jsx("button",{onClick:$e,title:"Restore",children:u.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",children:[u.jsx("rect",{x:"1",y:"3",width:"8",height:"8",rx:"1.5",stroke:"currentColor",strokeWidth:"1.3"}),u.jsx("path",{d:"M5 3V1.5A.5.5 0 015.5 1H12.5a.5.5 0 01.5.5V8.5a.5.5 0 01-.5.5H11",stroke:"currentColor",strokeWidth:"1.3"})]})}),u.jsx("button",{onClick:he,title:"Close panel",children:u.jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",children:u.jsx("path",{d:"M3 3l8 8M11 3l-8 8",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})})})]})]}),u.jsxs("div",{className:"ctx-body",children:[!o&&!be&&!We&&u.jsxs("div",{className:"ctx-empty",children:[u.jsx("span",{className:"ctx-empty-icon",children:"📋"}),u.jsx("span",{children:Ae?"Select a Work Item to see details":"Select a task to see details"})]}),bn&&u.jsx("div",{className:"ctx-multi-grid",children:x.map(Te=>{const kt=v[Te.taskId]??[],pn=b[Te.taskId]??[],Un=Xf(Te,g),Tn=Kf(Te,[...Un,...pn]),Et=vS(Te,Tn.runtimeSession,Tn.timelineSessions),gi=gS(Et??Te,g),fi=Et?.roleWorkItems??Te.roleWorkItems,ni=wC(fi,pn)??0,hn=Te.assigneeIds.map(_n=>w.find(ln=>ln.agent_id===_n)?.name??_n).filter(Boolean),Xt=kV(Et??Te,ni),Mt=CC(Te,pn.length),Kt=Tn.displaySession??Te,zn=_S(Tn.timelineSessions),Pn=Zf(Tn.timelineSessions),Gn=_y(Et??Kt,Math.max(Pn,kt.length)),yi=Tn.timelineSessions.some(_n=>nn?.(_n.taskId)??!1);return u.jsxs("section",{className:`ctx-multi-card${o?.taskId===Te.taskId?" focused":""}`,children:[u.jsxs("div",{className:"ctx-multi-card-header",children:[u.jsxs("button",{className:"ctx-multi-card-main",onClick:()=>$t?.(Te.taskId),title:"Focus session",children:[u.jsx("span",{className:`ctx-multi-card-status status-${Te.status}`}),u.jsx("span",{className:"ctx-multi-card-title",children:Te.title})]}),u.jsxs("div",{className:"ctx-multi-card-actions",children:[((Et??Te).canStop??(Et??Te).status==="running")&&(Et??Te).runtimeControlState!=="suspending"&&je&&u.jsx("button",{onClick:()=>je(Tn.runtimeSession?.taskId??Te.taskId),children:"Stop"}),(Et??Te).runtimeControlState==="suspending"&&u.jsx("button",{disabled:!0,children:"Stopping..."}),EC(Et??Te)&&ie&&u.jsx("button",{onClick:()=>ie(Te.taskId),children:"Continue"}),(Et??Te).status!=="done"&&(Et??Te).status!=="cancelled"&&we&&u.jsx("button",{onClick:()=>we(Te.taskId),children:"Done"}),u.jsx("button",{onClick:()=>$t?.(Te.taskId),children:"Focus"}),u.jsx("button",{onClick:()=>Ht?.(Te.taskId),title:"Close tab",children:"×"})]})]}),u.jsxs("div",{className:"ctx-multi-card-meta",children:[u.jsx("span",{children:CV(Te)}),u.jsx("span",{children:Te.status}),Xt&&u.jsx("span",{children:Xt}),hn.length>0&&u.jsx("span",{children:hn.join(", ")}),u.jsx("span",{children:_V(Te.updatedAt)})]}),u.jsx("div",{className:"ctx-multi-card-body",children:u.jsx(ol,{messages:kt,channelName:Kt?.title??Te.title,viewKind:"session",detailMode:Yc(Kt),agentStatus:Mt?void 0:Et?.agentStatus??Kt?.agentStatus,currentTool:Mt?void 0:Et?.currentTool??Kt?.currentTool,toolElapsedMs:Mt?void 0:Et?.toolElapsedMs??Kt?.toolElapsedMs,lastToolSummary:Mt?void 0:Et?.lastToolSummary??Kt?.lastToolSummary,progressLog:Mt?void 0:zn,draftAssistantText:Mt?void 0:Et?.draftAssistantText??Kt?.draftAssistantText,draftUpdatedAt:Mt?void 0:Et?.draftUpdatedAt??Kt?.draftUpdatedAt,draftIteration:Mt?void 0:Et?.draftIteration??Kt?.draftIteration,draftTurnId:Mt?void 0:Et?.draftTurnId??Kt?.draftTurnId,isCompanyRuntime:Mt,workItemLog:Et?.workItemLog??Te.workItemLog,childSessions:gi,showWorkItemRuntimeCard:!Mt,onSend:(_n,ln,Xe)=>pe?.(Te.taskId,_n,void 0,Xe),onWorkItemClick:Se,onWorkItemOpenSession:De,onMarkRead:()=>Je?.(Te.taskId),scrollScope:Te.channelId,hasOlderHistory:by(Tn.timelineSessions,kt.length,Yc(Kt??Te),!Tn.timelineSessions.some(ss)),totalMessageCount:Pn,onLoadOlderHistory:_n=>{const ln=Yc(Kt??Te),Xe=Tn.timelineSessions.find(rn=>rn.channelId===_n?.channelId),Si=(Xe&&tu(Xe,ln)!==!1?Xe:void 0)??Tn.timelineSessions.find(rn=>tu(rn,ln)===!0)??Kt??Te;return dt?.(Si.taskId,_n,ln)},loadingOlderHistory:yi,showRuntimeProgress:Yc(Kt)==="full"},Kt?.channelId??Te.channelId)}),u.jsx(yy,{disabled:!1,channelId:Et?.channelId??Te.channelId,execMode:hv(Te,S),companyProfile:Te.companyProfile,taskPreferredAgent:jC(Te,Gn,j),agentStatus:Et?.agentStatus??Kt?.agentStatus,currentTool:Et?.currentTool??Kt?.currentTool,displayTool:Et?.displayTool??Kt?.displayTool,activeAgentCount:ni||void 0,runtimeControlState:(Et??Kt)?.runtimeControlState,canStop:(Et??Kt)?.canStop,savedOrgs:N??null,activeSavedOrg:L??null,selectedOrgId:Te.orgId??L??null,lockedMode:Gn,autoFocus:!1,contextTokens:Et?.contextTokens??Kt?.contextTokens,contextWindow:Et?.contextWindow??Kt?.contextWindow,contextRemainingPct:Et?.contextRemainingPct??Kt?.contextRemainingPct??100,onSend:(_n,ln)=>pe?.(Te.taskId,_n,ln,wE(qv(kt).latestPendingReplyMetadata)),onModeChange:(_n,ln,Xe)=>Z?.(Te.taskId,_n,ln,Xe),onTaskAgentChange:_n=>te?.(Te.taskId,_n),onContinueInNewChat:ee,onSavedOrgsRefresh:A,onSavedOrgLoad:D,onStop:()=>je?.(Tn.runtimeSession?.taskId??Te.taskId)})]},Te.taskId)})}),We&&u.jsxs(u.Fragment,{children:[u.jsx("div",{style:{padding:"8px 12px",fontSize:12,color:"var(--text-secondary)",borderBottom:"1px solid var(--border)"},children:"Recent activity across all sessions"}),u.jsx(ol,{messages:h,channelName:"Activity",viewKind:"activity",detailMode:"summary",onSend:Ke,onMarkRead:Pe,scrollScope:T},T)]}),be&&u.jsxs(u.Fragment,{children:[u.jsx(ol,{messages:h,channelName:"Secretary",viewKind:"secretary",detailMode:"summary",onSend:Ke,onMarkRead:Pe,scrollScope:I},I),u.jsx(yy,{disabled:!1,channelId:I,placeholder:"Talk to Secretary about policies, rules, preferences...",onSend:nt})]}),o&&!be&&!We&&!bn&&P==="chat"&&u.jsxs(u.Fragment,{children:[u.jsx(h8,{session:Ye??o,agents:w,onTitleChange:B,onViewOnBoard:Re?()=>Re(o.taskId):void 0,onStop:se,onComplete:(Ye??o).status!=="done"&&(Ye??o).status!=="cancelled"?ae:void 0,onResume:ue}),Ae&&u.jsx("div",{className:"ctx-work-item-progress",children:u.jsx(qI,{workItemLog:zi,roleWorkItems:Jt,executorRoleWorkItems:gt,childSessions:Mn,isCompanyRuntime:Ae,onWorkItemClick:Se})}),u.jsx(ol,{messages:h,channelName:M,viewKind:"session",detailMode:Vn,agentStatus:Ae?void 0:St?.agentStatus??bt?.agentStatus,currentTool:Ae?void 0:St?.currentTool??bt?.currentTool,toolElapsedMs:Ae?void 0:St?.toolElapsedMs??bt?.toolElapsedMs,lastToolSummary:Ae?void 0:St?.lastToolSummary??bt?.lastToolSummary,progressLog:Ae?void 0:Ft,draftAssistantText:Ae?void 0:St?.draftAssistantText??bt?.draftAssistantText,draftUpdatedAt:Ae?void 0:St?.draftUpdatedAt??bt?.draftUpdatedAt,draftIteration:Ae?void 0:St?.draftIteration??bt?.draftIteration,draftTurnId:Ae?void 0:St?.draftTurnId??bt?.draftTurnId,isCompanyRuntime:Ae,workItemLog:zi,roleWorkItems:Jt,executorRoleWorkItems:gt,childSessions:Mn,onSend:Ke,onWorkItemClick:Se,onWorkItemOpenSession:De,onMarkRead:Pe,scrollScope:T,hasOlderHistory:by(Rt.timelineSessions,h.length,Vn,!Rt.timelineSessions.some(ss)),totalMessageCount:Ln,onLoadOlderHistory:Te=>{const kt=At(Te);if(kt)return dt?.(kt.taskId,Te,Vn)},loadingOlderHistory:Wn,showWorkItemRuntimeCard:!1,showRuntimeProgress:Vn==="full"},T),u.jsx(yy,{disabled:!An,channelId:St?.channelId??T,execMode:hv(o,S),companyProfile:o.companyProfile,taskPreferredAgent:jC(o,_y(St??bt??o,Math.max(Ln,h.length)),j),agentStatus:St?.agentStatus??bt?.agentStatus,currentTool:St?.currentTool??bt?.currentTool,displayTool:St?.displayTool??bt?.displayTool,runtimeControlState:(St??bt)?.runtimeControlState,canStop:(St??bt)?.canStop,savedOrgs:N??null,activeSavedOrg:L??null,selectedOrgId:o.orgId??L??null,lockedMode:_y(St??bt??o,Math.max(Ln,h.length)),activeAgentCount:wC(Jt,dn),contextTokens:St?.contextTokens??bt?.contextTokens,contextWindow:St?.contextWindow??bt?.contextWindow,contextRemainingPct:St?.contextRemainingPct??bt?.contextRemainingPct??100,onSend:nt,onModeChange:(Te,kt,pn)=>Z?.(o.taskId,Te,kt,pn),onTaskAgentChange:Te=>te?.(o.taskId,Te),onContinueInNewChat:ee,onSavedOrgsRefresh:A,onSavedOrgLoad:D,onStop:se})]}),o&&!be&&!bn&&P==="agents"&&O&&(dn.length>0||Vt?u.jsx(vV,{sessions:dn,roleWorkItems:Jt,isCompanyRuntime:Ae,agents:w,onOpenChildDetail:qe,onOpenExecutionPanel:_t}):u.jsxs("div",{className:"ctx-empty",children:[u.jsx("span",{className:"ctx-empty-icon",children:"🧠"}),u.jsx("span",{children:"No child agents have started for this session yet"})]})),o&&!be&&!bn&&P==="info"&&Yn&&u.jsx(NV,{task:Yn,agents:w,roleLabel:Cl(Yn)}),P==="comms"&&q&&K&&u.jsx("div",{style:{flex:1,overflow:"auto",minHeight:0},children:u.jsx(a8,{state:$??null,message:G??null,onRefresh:q,onReadMessage:K,embedded:!0})}),P==="team"&&V&&u.jsx("div",{style:{flex:1,overflow:"auto",minHeight:0},children:u.jsx(f8,{orgInfoData:W??null,commsState:$??null,onStopRun:Q,embedded:!0})})]})]})})]})}function TV({initialWidth:e,minWidth:t,maxWidth:n,onCollapse:i}){const[r,o]=C.useState(e),[a,c]=C.useState(!1),d=C.useRef(0),m=C.useRef(0),h=C.useRef(e);h.current=r;const p=C.useCallback(g=>{g.preventDefault(),d.current=g.clientX,m.current=h.current,c(!0)},[]);return C.useEffect(()=>{if(!a)return;const g=v=>{const b=d.current-v.clientX,w=m.current+b;if(w{c(!1)};return document.body.style.userSelect="none",document.body.style.cursor="col-resize",document.addEventListener("mousemove",g),document.addEventListener("mouseup",x),()=>{document.body.style.userSelect="",document.body.style.cursor="",document.removeEventListener("mousemove",g),document.removeEventListener("mouseup",x)}},[a,t,n,i]),{width:r,isResizing:a,handleMouseDown:p}}const RV=200;function NC(){const e=globalThis.crypto;return e&&typeof e.randomUUID=="function"?`ui-${e.randomUUID()}`:`ui-${Date.now()}-${Math.random().toString(36).slice(2,9)}`}function AV(e,t,n,i){const r=i??((b,w)=>({"workspace.confirmNoRoles":`Your org has no roles defined. + +Set up at least one role before running a task. + +Go to Org tab now?`,"workspace.confirmNoDecider":`Your organization has multiple top-level roles but no final decider selected. + +Choose one final decider in the Org tab before running a task. + +Go to Org tab now?`,"workspace.warningNoTeams":"No runtime teams defined — the system will auto-generate from your roles","workspace.warningVacantRoles":"{count} role(s) have no employees: {names}","workspace.confirmWarnings":`Before running this task: + +{warnings} + +Run anyway?`}[b]??b).replace(/\{(\w+)\}/g,(j,N)=>String(w?.[N]??`{${N}}`)));if(e!=="org"&&e!=="custom"||!t)return!0;const{roles:o,employees:a}=t,c=Gm(t),d=t.top_level_role_ids??[],m=t.final_decider_role_id??"";if(o.length===0)return confirm(r("workspace.confirmNoRoles"))&&n?.(),!1;if(d.length>1&&!m)return confirm(r("workspace.confirmNoDecider"))&&n?.(),!1;const h=[],p=new Set(o.map(b=>b.role_id));c.runtimeTeams.filter(b=>b.member_role_ids.some(w=>p.has(w))||b.manager_role_id&&p.has(b.manager_role_id)).length===0&&h.push(r("workspace.warningNoTeams"));const x=new Set(a.map(b=>b.role_id)),v=o.filter(b=>!x.has(b.role_id));if(v.length>0){const b=v.map(w=>w.name).join(", ");h.push(r("workspace.warningVacantRoles",{count:v.length,names:b}))}return h.length>0?confirm(r("workspace.confirmWarnings",{warnings:h.map(b=>"• "+b).join(` +`)})):!0}function MV(e){if(!e)return!1;const t=Gm(e);return!!(t.projectRun?.run_id||t.runtimeTeams.length>0||t.runtimeSeats.length>0)}function DV(e,t){return e?e.execMode==="company"||e.execMode==="org"||e.execMode==="custom"?"summary":"full":"summary"}function ky(e,t=0){if(!e)return!1;const n=String(e.execMode??"").trim().toLowerCase();return t>0||!!e.isCompanyRuntime||!!e.roleWorkItems||!!e.executorRoleWorkItems||n==="company"||n==="org"||n==="custom"}function IC(e){return String(e?.originTaskId??e?.taskId??"").trim()||null}function OV({boardColor:e,title:t,onCommit:n}){const{t:i}=Vr(),[r,o]=C.useState(!1),[a,c]=C.useState(t),d=C.useRef(null);C.useEffect(()=>{r||c(t)},[t,r]);const m=C.useCallback(()=>{const p=a.trim();p&&p!==t?n(p):c(t),o(!1)},[a,t,n]),h=C.useCallback(()=>{c(t),o(!0),setTimeout(()=>d.current?.select(),0)},[t]);return u.jsx("div",{className:"board-selector",children:u.jsx("div",{className:"board-tabs",children:u.jsxs("span",{className:"board-tab active board-tab-editable",style:{"--board-color":e},children:[u.jsx("span",{className:"board-tab-dot",style:{background:e}}),r?u.jsx("input",{ref:d,className:"board-tab-title-input",value:a,onChange:p=>c(p.target.value),onBlur:m,onKeyDown:p=>{p.key==="Enter"&&m(),p.key==="Escape"&&(c(t),o(!1))}}):u.jsx("span",{className:"board-tab-title",onClick:h,title:i("workspace.clickEditTitle"),children:t})]})})})}function LV({boardStore:e,agents:t,officeMap:n,execMode:i,companyProfile:r,taskPreferredAgent:o,chatStore:a,sessionStore:c,projectId:d,onRunTask:m,onCreateTask:h,onMoveTask:p,onCreateSession:g,onSessionSend:x,onSecretarySend:v,onDeleteSession:b,onTitleChange:w,onSessionConfigChange:k,onSessionTaskAgentChange:S,onContinueInNewChat:j,onSessionStop:N,onSessionResume:L,onSessionComplete:A,onLoadSessionDetail:D,onOpenExecutionPanel:O,onCollabSync:T,orgInfoData:M,onNavigateToOrg:I,commsState:H,commsMessage:Y,onCommsRefresh:P,onCommsReadMessage:U,savedOrgsList:$,activeSavedOrg:G,onSavedOrgsList:q,onSavedOrgLoad:K}){const{t:W}=Vr(),{sessions:V,activeSessionId:Q,activeSession:B}=c,{markRead:Z}=a,[te,ee]=C.useState("collapsed"),{width:se,isResizing:ae,handleMouseDown:ue}=TV({initialWidth:380,minWidth:300,maxWidth:600,onCollapse:()=>ee("collapsed")}),[ie,je]=C.useState("chat"),[we,Re]=C.useState(null),[Ve,Ge]=C.useState({kind:"activity"}),[qe,_t]=C.useState([]),[$t,Ht]=C.useState(!1),[Gt,he]=C.useState({}),$e=C.useRef(D),ut=C.useRef(V),nt=C.useRef(a.getChannelMessages),Ke=C.useRef({scope:null,active:new Set,child:null}),pe=C.useRef(new Set),Se=C.useRef(0);ut.current=V,nt.current=a.getChannelMessages;const De=i==="company"||i==="org"||i==="custom",Pe=`secretary:${d}`,Je=`activity:${d}`,dt=C.useMemo(()=>we?V.find(de=>de.taskId===we)??null:null,[V,we]),nn=C.useMemo(()=>Ve.kind!=="task-detail"?null:e.tasks.find(de=>de.id===Ve.taskId)??null,[Ve,e.tasks]),be=C.useMemo(()=>{const de=Um(nn);return de?V.find(_e=>_e.taskId===de||_e.runtimeTaskId===de||_e.executionTurnId===de)??null:null},[V,nn]),We=C.useMemo(()=>be?a.getChannelMessages(be.channelId):[],[a.messages,a.getChannelMessages,be]),et=C.useMemo(()=>Df(B,V),[V,B]),Ue=C.useMemo(()=>Xf(B,V),[V,B]),Ae=C.useMemo(()=>Kf(B,[...Ue,...et]),[B,et,Ue]);C.useEffect(()=>{$e.current=D},[D]);const jt=C.useCallback((de,_e,Fe="summary")=>{const mt=$e.current;if(!mt||!de)return;const Ot=Se.current,ke=ut.current.find(Qe=>Qe.taskId===de)?.channelId,Me=_e&&ke&&_e.channelId!==ke?nt.current(ke).find(Qe=>Gv(Qe,Fe)):_e,Le=[Ot,de,Fe,Me?.timestamp??"latest",Me?.id??""].join("|");if(pe.current.has(Le))return;pe.current.add(Le),he(Qe=>Qe[de]?Qe:{...Qe,[de]:!0});let st;try{st=mt(de,{limit:RV,beforeCreatedAt:Me?.timestamp,beforeMessageId:Me?.id,detailLevel:Fe})}catch{pe.current.delete(Le),Se.current===Ot&&(he(ot=>ot[de]?{...ot,[de]:!1}:ot),Ke.current.active.delete(`${de}:${Fe}`),Ke.current.child===de&&(Ke.current.child=null));return}return Promise.resolve(st).catch(()=>{Se.current===Ot&&(Ke.current.active.delete(`${de}:${Fe}`),Ke.current.child===de&&(Ke.current.child=null))}).finally(()=>{if(pe.current.delete(Le),Se.current!==Ot)return;const Qe=`${Ot}|${de}|`;[...pe.current.keys()].some(Cn=>Cn.startsWith(Qe))||he(Cn=>Cn[de]?{...Cn,[de]:!1}:Cn)})},[]),An=C.useCallback(de=>!!Gt[de],[Gt]);C.useLayoutEffect(()=>{Se.current+=1,pe.current.clear(),Ke.current={scope:null,active:new Set,child:null},he({})},[d]),C.useEffect(()=>()=>{Se.current+=1,pe.current.clear()},[]),C.useEffect(()=>{we&&!dt&&Re(null)},[we,dt]),C.useEffect(()=>{Ve.kind==="task-detail"&&!nn&&Ge({kind:"activity"})},[Ve,nn]);const qn=C.useRef(null);C.useEffect(()=>{if(!be){qn.current=null;return}qn.current!==be.taskId&&(qn.current=be.taskId,jt(be.taskId,void 0,"full"))},[be,jt]),C.useEffect(()=>{if(!we){Ke.current.child=null;return}Ke.current.child!==we&&(Ke.current.child=we,jt(we,void 0,"full"))},[we,jt]),C.useEffect(()=>{if(!Q){Ke.current.scope=null,Ke.current.active.clear();return}Ke.current.scope!==Q&&(Ke.current.scope=Q,Ke.current.active.clear());const de=Ae.timelineSessions.length>0?Ae.timelineSessions:V.find(_e=>_e.taskId===Q)?[V.find(_e=>_e.taskId===Q)]:[];if(de.length===0){Ke.current.active.clear();return}for(const _e of de){const Fe=ky(B,et.length)?"summary":DV(_e),mt=`${_e.taskId}:${Fe}`;Ke.current.active.has(mt)||(Ke.current.active.add(mt),jt(_e.taskId,void 0,Fe))}},[Ae.timelineSessions,B,Q,et.length,jt,V]);const ft=C.useMemo(()=>we?{kind:"child-detail"}:Ve.kind==="task-detail"||Ve.kind==="secretary"?Ve:Q?{kind:"session",taskId:Q}:{kind:"activity"},[Ve,Q,we]),bn=C.useMemo(()=>ft.kind==="secretary"?Pe:ft.kind==="child-detail"&&dt?dt.channelId:ft.kind==="session"&&Ae.displaySession?Ae.displaySession.channelId:ft.kind==="session"&&B?B.channelId:Je,[ft,Ae.displaySession,B,dt,Pe,Je]),Nn=C.useMemo(()=>{if(ft.kind==="activity")return[Je];if(ft.kind==="secretary")return[Pe];if(ft.kind==="child-detail"&&dt)return[dt.channelId];if(ft.kind==="session"){const de=Ae.timelineSessions.map(_e=>_e.channelId).filter((_e,Fe,mt)=>!!_e&&mt.indexOf(_e)===Fe);if(de.length>0)return de}return bn?[bn]:[]},[ft.kind,Ae.timelineSessions,dt,Je,Pe,bn]),Rt=C.useMemo(()=>{const de=new Set;for(const _e of V)_e.status!=="cancelled"&&de.add(_e.channelId);return de.add(Je),de.add(Pe),de},[V,Je,Pe]),bt=C.useMemo(()=>{if(ft.kind==="activity")return a.messages.filter(de=>de.sender!=="user"&&Rt.has(de.channelId)).sort((de,_e)=>_e.timestamp-de.timestamp).slice(0,50).reverse();if(ft.kind==="session"&&Nn.length>1){const de=Nn.map(_e=>a.getChannelMessages(_e));return ky(B,et.length)&&B?bS(de.flat(),B.channelId):qx(de)}return a.getChannelMessages(bn)},[a.messages,a.getChannelMessages,bn,ft.kind,Rt,B,et.length,Nn]),Vn=C.useMemo(()=>dt?a.getChannelMessages(dt.channelId):[],[a.messages,a.getChannelMessages,dt]),St=C.useMemo(()=>{if(ft.kind==="session")return wE(qv(bt).latestPendingReplyMetadata)},[bt,ft.kind]),Ye=C.useMemo(()=>[...De?V.filter(_e=>_e.mode!=="child"):V].sort((_e,Fe)=>Fe.updatedAt-_e.updatedAt),[V,De]),Ft=C.useMemo(()=>{if(!De)return null;const de=new Set;for(const _e of V)_e.mode==="child"&&de.add(_e.taskId);return de.size>0?de:null},[V,De]),zi=C.useMemo(()=>{if(!Ft)return e.tasksByColumn;const de={};for(const[_e,Fe]of Object.entries(e.tasksByColumn))de[_e]=Fe.filter(mt=>!Ft.has(mt.id));return de},[e.tasksByColumn,Ft]),Mn=!!(B&&(B.isCompanyRuntime||et.length>0)),Jt=!!(B&&(De||Mn)),gt=!!(B&&De&&MV(M));C.useEffect(()=>{ie==="agents"&&!Jt&&je("chat"),ie==="comms"&&!P&&je("chat"),ie==="team"&&!gt&&je("chat")},[ie,Jt,gt,P]);const Vt=C.useMemo(()=>{const de={};for(const _e of V)de[_e.channelId]=a.getUnreadCount(_e.channelId);return de[Pe]=a.getUnreadCount(Pe),de},[V,a.getUnreadCount,Pe]),dn=C.useMemo(()=>qe.map(de=>V.find(_e=>_e.taskId===de)).filter(de=>!!de&&de.mode!=="child"),[qe,V]),Ln=C.useMemo(()=>{const de={};for(const _e of dn){const Fe=Df(_e,V),mt=Xf(_e,V),ce=Kf(_e,[...mt,...Fe]).timelineSessions.map(ke=>a.getChannelMessages(ke.channelId));de[_e.taskId]=ky(_e,Fe.length)?bS(ce.flat(),_e.channelId):qx(ce)}return de},[dn,V,a.getChannelMessages]),Wn=C.useMemo(()=>{const de={};for(const _e of dn)de[_e.taskId]=Df(_e,V);return de},[dn,V]),At=C.useCallback(de=>{_t(_e=>_e.includes(de)?_e:[..._e,de])},[]),Ut=C.useRef(null);C.useEffect(()=>{Q&&!Ut.current&&te==="collapsed"&&(ee("open"),je("chat")),Ut.current=Q},[Q,te]),C.useEffect(()=>{Q&&At(Q)},[Q,At]),C.useEffect(()=>{const de=new Set(V.map(_e=>_e.taskId));_t(_e=>_e.filter(Fe=>de.has(Fe))),he(_e=>Object.fromEntries(Object.entries(_e).filter(([Fe])=>de.has(Fe))))},[V]),C.useEffect(()=>{$t&&dn.length<2&&Ht(!1)},[$t,dn.length]),C.useEffect(()=>{const de=_e=>{if(_e.key==="Escape"&&te!=="collapsed"){const Fe=_e.target?.tagName;if(Fe==="INPUT"||Fe==="TEXTAREA"||Fe==="SELECT")return;ee("collapsed")}};return document.addEventListener("keydown",de),()=>document.removeEventListener("keydown",de)},[te]);const In=C.useCallback(()=>{for(const de of Nn)Z(de)},[Nn,Z]),Yn=C.useCallback(de=>{const _e=V.find(Fe=>Fe.taskId===de);_e&&Z(_e.channelId)},[V,Z]),Te=C.useCallback(de=>{V.find(Fe=>Fe.taskId===de)&&(At(de),c.setActiveSession(de),Ge({kind:"session",taskId:de}),ee("open"),je("chat"),Re(null))},[V,At,c]),kt=C.useCallback(de=>{const _e=qe.filter(mt=>mt!==de);if(_t(_e),we===de&&Re(null),Q!==de)return;const Fe=_e[_e.length-1]??null;if(c.setActiveSession(Fe),Fe){Ge({kind:"session",taskId:Fe}),je("chat");return}Ge({kind:"activity"})},[qe,we,Q,c]),pn=C.useCallback(de=>{if(!de){Ge({kind:"activity"}),c.setActiveSession(null),Re(null);return}const _e=V.find(Fe=>Fe.taskId===de);if(De&&_e?.mode==="child"){Re(de),ee("open");return}Te(de)},[V,c,De,Te]),Un=C.useCallback(()=>{Ge({kind:"secretary"}),c.setActiveSession(null),Re(null),ee("open")},[c]),Tn=C.useCallback(de=>{const _e=e.tasks.find(mt=>mt.id===de.id);if(De&&_e){Re(null),Ge({kind:"task-detail",taskId:_e.id}),ee("open"),je("info");return}V.find(mt=>mt.taskId===de.id)?Te(de.id):_e&&_e.phase!=="cancelled"&&(c.createSession({projectId:d,taskId:_e.id,channelId:`session:${_e.id}`,sessionId:_e.sessionId,title:_e.title,status:"pending",columnId:_e.columnId,execMode:i,companyProfile:r,assigneeIds:_e.assigneeIds,priority:_e.priority,tags:_e.tags,selectedExecutionAgent:_e.selectedExecutionAgent,createdAt:_e.createdAt,updatedAt:_e.updatedAt,messageCount:0,progressLog:[]}),At(de.id),c.setActiveSession(de.id),Ge({kind:"session",taskId:de.id}),ee("open"),je("chat"),T?.())},[V,e.tasks,c,Te,At,T,De]),Et=C.useCallback(de=>{if(!e.activeBoardId)return;const _e=e.activeBoardColumns.find(mt=>mt.name==="Todo");if(!_e)return;const Fe=e.createTask({boardId:e.activeBoardId,columnId:_e.id,title:de});h(de,e.activeBoardId,_e.id,Fe.id)},[e,h]),gi=C.useCallback(de=>{e.setActiveBoard(de);const _e=V.find(Fe=>Fe.mode!=="child"&&IC(Fe)===de);if(_e){Te(_e.taskId);return}Re(null),Ge({kind:"activity"}),c.setActiveSession(null)},[e,V,Te,c]),fi=C.useMemo(()=>new Set(e.boards.map(de=>de.id)),[e.boards]);C.useEffect(()=>{if(De){const de=nn?.boardId??IC(B)??null;if(!de||!fi.has(de)){e.activeBoardId!==null&&e.setActiveBoard(null);return}e.activeBoardId!==de&&e.setActiveBoard(de);return}e.boards.length>0&&!e.activeBoardId&&e.setActiveBoard(e.boards[0].id)},[De,nn?.boardId,B,fi,e.activeBoardId,e.boards,e.setActiveBoard]);const ni=C.useCallback(de=>{const _e=e.tasks.find(Me=>Me.id===de);if(!_e)return;const Fe=V.find(Me=>Me.taskId===de),mt=Fe?.execMode??i,Ot=Fe?.companyProfile??r,ce=mt==="org"||mt==="custom"?"custom":mt==="company"?Ot:void 0;if(!AV(mt,M,I,W))return;m(de,_e.title,_e.description??"",mt,ce);const ke=e.activeBoardColumns.find(Me=>Me.name==="In Progress");ke&&e.moveTask(de,ke.id,0)},[e,m,V,i,r,M,I,W]),hn=C.useCallback((de,_e,Fe,mt)=>{k?.(de,_e,Fe,mt)},[k]),Xt=C.useCallback(de=>{te==="maximized"&&ee("open"),setTimeout(()=>{document.querySelector(`[data-task-id="${de}"]`)?.scrollIntoView({behavior:"smooth",block:"nearest",inline:"nearest"})},100)},[te]),Mt=C.useCallback(()=>{const _e=(Ae.runtimeSession??Ae.displaySession??B)?.taskId??Q;_e&&N?.(_e)},[Ae.runtimeSession,Ae.displaySession,B,Q,N]),Kt=C.useCallback(()=>{we||Q&&A?.(Q)},[Q,we,A]),zn=C.useCallback(de=>{N?.(de)},[N]),Pn=C.useCallback(()=>{const de=Ae.runtimeSession??Ae.displaySession??B,_e=Q??de?.taskId,Fe=de?.resumeParentSessionId??de?.parentSessionId??de?.sessionId;_e&&L?.(_e,Fe,de?.pendingRuntimeCheckpointId)},[Ae.runtimeSession,Ae.displaySession,B,Q,L]),Gn=C.useCallback(de=>{const _e=V.find(mt=>mt.taskId===de),Fe=_e?.resumeParentSessionId??_e?.parentSessionId??_e?.sessionId;L?.(de,Fe,_e?.pendingRuntimeCheckpointId)},[V,L]),yi=C.useCallback(de=>{A?.(de)},[A]),_n=C.useCallback(()=>{if(!$t&&ft.kind!=="session"){const de=Q??dn[dn.length-1]?.taskId??null;de&&Te(de)}Ht(de=>!de)},[$t,ft.kind,Q,dn,Te]),ln=C.useCallback((de,_e,Fe,mt)=>{const Ot=mt?.ui_message_id?mt:{...mt??{},ui_message_id:NC()};x(de,_e,Fe,Ot)},[x]),Xe=C.useCallback((de,_e)=>{if(ft.kind==="secretary"){v?.(de);return}const Fe=Q;if(!Fe)return;const mt=Ae.runtimeSession??Ae.displaySession??B,Ot=String(mt?.pendingRuntimeCheckpointId??"").trim();let ce=St??(Ot?{response_to_checkpoint_id:Ot}:void 0);if(!String(ce?.response_to_checkpoint_id??"").trim()){const Me=NC();ce={...St??{},ui_message_id:Me};const Le=Ae.displaySession??B;a.sendMessage({channelId:Le?.channelId??`session:${Fe}`,sender:"user",senderName:"You",content:de,metadata:{ui_message_id:Me}})}ln(Fe,de,_e,ce)},[ft.kind,Q,Ae.runtimeSession,Ae.displaySession,B,St,a,ln,v]),Si=C.useCallback((de,_e,Fe)=>{const mt=_e??Q;mt&&ln(mt,de,void 0,Fe)},[Q,ln]),rn=C.useCallback(de=>{const _e=V.find(Fe=>Fe.taskId===de||Fe.runtimeTaskId===de||Fe.executionTurnId===de);_e&&(Re(_e.taskId),ee("open"),je("chat"))},[V]),Dt=C.useCallback(de=>{if(O){O(de);return}rn(de)},[rn,O]),Ri=ft.kind==="secretary",er=Ri?W("workspace.channel.secretary"):B?B.title:W("workspace.channel.activity");return u.jsxs("div",{className:`workspace-page${te==="maximized"?" panel-maximized":""}`,children:[u.jsx(SD,{sessions:Ye,activeSessionId:Ri?null:Q,activeChannel:Ri?Pe:null,secretaryChannelId:Pe,unreadCounts:Vt,onSelect:pn,onCreateSession:g,onDeleteSession:b,onSelectSecretary:v?Un:void 0}),te!=="maximized"&&u.jsxs("div",{className:"workspace-board",children:[t.length>0&&u.jsx(Zz,{agents:t,tasks:e.tasks}),De?e.activeBoard&&B&&u.jsx(OV,{boardColor:e.activeBoard.color,title:e.activeBoard.name,onCommit:de=>w(B.taskId,de)},B.taskId):e.boards.length>1&&u.jsx(Qz,{boards:e.boards,activeBoardId:e.activeBoardId,onSelect:gi}),De&&!e.activeBoard?u.jsx("div",{className:"kanban-empty-state",children:u.jsx("p",{children:W("workspace.selectRuntimeSession")})}):u.jsxs(u.Fragment,{children:[u.jsx(Kz,{columns:e.activeBoardColumns,tasksByColumn:zi,agents:t,officeMap:n,store:e,companyMode:De,selectedTaskId:ft.kind==="task-detail"?ft.taskId:Q,onCardClick:Tn,onStartTask:ni,onQuickCreate:Et,onMoveTask:p}),De&&e.activeBoard&&e.tasks.filter(de=>de.boardId===e.activeBoardId).length===0&&u.jsx("div",{className:"kanban-empty-state kanban-empty-state-inline",children:u.jsx("p",{children:W("workspace.noWorkItems")})})]})]}),u.jsx(IV,{panelState:te,width:se,onResizeMouseDown:ue,isResizing:ae,activeView:ft,activeSession:B,activeTask:nn,linkedTaskSession:be,linkedTaskSessionMessages:We,childDetailSession:dt,messages:bt,childDetailMessages:Vn,allSessions:V,openSessions:dn,openSessionMessages:Ln,openSessionChildren:Wn,agents:t,childSessions:et,execMode:i,taskPreferredAgent:o,savedOrgsList:$??null,activeSavedOrg:G??null,onSavedOrgsList:q,onSavedOrgLoad:K,canShowAgentsTab:Jt,channelId:bn,channelName:er,secretaryChannelId:Pe,unreadCounts:Vt,multiSessionView:$t,panelTab:ie,onPanelTabChange:je,commsState:H??null,commsMessage:Y??null,onCommsRefresh:P?()=>P({session_id:B?.sessionId||void 0,project_id:d||void 0}):void 0,onCommsReadMessage:U,orgInfoData:M??null,canShowTeamTab:gt,onTeamStopRun:Q?()=>N?.(Q):void 0,onTitleChange:w,onSessionConfigChange:hn,onSessionTaskAgentChange:S,onContinueInNewChat:j,onStop:Mt,onComplete:Kt,onResume:Pn,onResumeTask:Gn,onStopTask:zn,onCompleteTask:yi,onLocateOnBoard:Xt,onBackToParent:()=>Re(null),onCloseTaskDetail:()=>Ge({kind:"activity"}),onOpenChildDetail:rn,onOpenExecutionPanel:O,onSelectSessionTab:Te,onCloseSessionTab:kt,onToggleMultiSessionView:_n,onCollapse:()=>ee("collapsed"),onExpand:()=>ee("open"),onMaximize:()=>ee(de=>de==="maximized"?"open":"maximized"),onComposerSend:Xe,onMessageSend:Si,onSessionSend:ln,onWorkItemClick:Dt,onWorkItemOpenSession:rn,onMarkRead:In,onSessionMarkRead:Yn,onLoadSessionHistory:jt,isSessionHistoryLoading:An})]})}function zV(){return`${Date.now()}-${Math.random().toString(36).slice(2,7)}`}const z0=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 Or(e){return e.metadata??{}}function gv(e){return String(e??"").replace(/\r\n/g,` +`).replace(/\r/g,` +`).split(` +`).map(t=>t.trimEnd()).join(` +`).replace(/\n{3,}/g,` + +`).trim()}function RC(e){const t=gv(e),n=PV(t),i=n.split(/\n{2,}/).map(r=>r.trim()).filter(Boolean);return i.length>1&&/^Verification:\s/i.test(i[i.length-1])?i.slice(0,-1).join(` + +`).trim():n}function PV(e){let t=String(e||"").trim();for(;;){const n=t.match(/^\*\*([^\r\n]{8,160}?)\*\*:(?:[ \t]+|\r?\n+)([\s\S]+)$/);if(!n)return t;const i=n[2].trim();if(i.length<80||i===t)return t;t=i}}function BV(e,t,n,i){if(!i)return n.content;const r=gv(e.content),o=gv(t.content);return!r||!o||r===o?n.content:r.endsWith(o)?e.content:o.endsWith(r)?t.content:n.content}function Il(e){const t=Or(e),n=new Set,i=typeof t.checkpoint_type=="string"?t.checkpoint_type.trim():"",r=typeof t.checkpoint_id=="string"?t.checkpoint_id.trim():"";for(const o of[e.id,typeof t.ui_message_id=="string"?t.ui_message_id:"",typeof t.result_delivery_id=="string"&&t.result_delivery_id.trim()?`delivery:${t.result_delivery_id.trim()}`:"",i&&r?`checkpoint:${i}:${r}`:""]){const a=String(o??"").trim();a&&n.add(a)}return n}function ll(e){return new Set([...Il(e)].map(t=>`${e.channelId}\0${t}`))}function $V(e){return e.startsWith("checkpoint:")||e.startsWith("delivery:")}function ci(e){return typeof e.timestamp=="number"?e.timestamp:0}function yv(e){return String(e.id??"").startsWith("msg-")}function JI(e){return!yv(e)}function AC(e){const t={};for(const n of e){if(!JI(n))continue;const i=ci(n);i>(t[n.channelId]??0)&&(t[n.channelId]=i)}return t}function HV(e,t,n){return n<=(e[t]??0)?e:{...e,[t]:n}}function FV(e,t){const n={};for(const i of e){if(!JI(i)||i.sender==="user")continue;const r=t[i.channelId]??0;ci(i)<=r||(n[i.channelId]=(n[i.channelId]??0)+1)}return n}function MC(e){const t=String(e.sender??"").trim().toLowerCase(),n=Or(e),i=typeof n.role=="string"?n.role.trim().toLowerCase():"";return t==="user"||i==="user"?"user":"assistant"}function DC(e){const t=Or(e),n=String(e.sender??"").trim().toLowerCase();let i=0;const r=eT(e);return r&&(i+=1e3+r),t.source==="engine"&&(i+=100),n&&n!=="system"&&(i+=20),n&&!["assistant","system","user"].includes(n)&&(i+=5),e.replyToId&&(i+=2),i+=Math.min(Object.keys(t).length,10),i}function OC(e){return String(Or(e).source??"").trim().toLowerCase()==="engine"}function eT(e){const t=Or(e),n=String(t.transcript_kind??"").trim();if(n)return TC[n]??0;const i=String(t.kind??"").trim();return TC[i]??0}function Tl(e){return eT(e)>0}function tT(e,t){if(e.channelId!==t.channelId)return!1;const n=Il(e),i=Il(t);for(const r of n)if(i.has(r))return!0;return!1}function mm(e,t){if(tT(e,t))return!0;if(e.channelId!==t.channelId||MC(e)!==MC(t)||RC(e.content)!==RC(t.content))return!1;const n=Tl(e)&&Tl(t);if(!n&&String(e.replyToId??"")!==String(t.replyToId??"")||!(OC(e)||OC(t)))return!1;const i=ci(e),r=ci(t);return!(!n&&i&&r&&Math.abs(i-r)>z0)}function pm(e,t,n=!1){let i=e,r=t;const o=yv(e),a=yv(t);o!==a?(i=o?t:e,r=o?e:t):(n||DC(t)>DC(e))&&(i=t,r=e);const c=[];for(const j of[r.mentions,i.mentions])for(const N of j??[])c.includes(N)||c.push(N);const d=Il(e),m=Il(t);let h=!1,p="";for(const j of d)m.has(j)&&($V(j)||(h=!0,p||(p=j)));const g=BV(e,t,i,h),x=String(Or(e).checkpoint_id??"").trim(),v=String(Or(t).checkpoint_id??"").trim(),b=!!x&&x===v,w=Tl(e)&&Tl(t),k=w?String(Or(e).ui_timeline_id??Or(t).ui_timeline_id??Uv(e)).trim():"",S={...Or(r),...Or(i)};return k&&(S.ui_timeline_id=k),{...r,...i,...p?{id:p}:{},content:g,metadata:S,mentions:c,timestamp:b||w?ci(e)||ci(t):ci(i)||ci(r)}}function LC(e){const t=[],n=new Map;for(const i of[...e].sort((r,o)=>ci(r)-ci(o))){const r=ll(i);let o=-1,a=!1;for(const d of r){const m=n.get(d);if(m!==void 0){o=m,a=t[m].id===i.id;break}}if(o===-1){const d=ci(i),m=Tl(i);for(let h=t.length-1;h>=0;h--){const p=ci(t[h]);if(!m&&d>0&&p>0&&d-p>z0)break;if(mm(t[h],i)){o=h;break}}}const c=o===-1?t.length:o;o===-1?t.push(i):t[o]=pm(t[o],i,a);for(const d of ll(t[c]))n.has(d)||n.set(d,c)}return t}function VV(e,t){const n=[...e],i=new Map;n.forEach((r,o)=>{for(const a of ll(r))i.set(a,o)});for(const r of[...t].sort((o,a)=>ci(o)-ci(a))){let o=-1;for(const a of ll(r)){const c=i.get(a);if(c!==void 0){o=c;break}}if(o<0){for(let a=n.length-1;a>=0;a-=1)if(mm(n[a],r)){o=a;break}}if(o<0)o=n.length,n.push(r);else{const a=n[o];n[o]=pm(a,r,a.id===r.id)}for(const a of ll(r))i.set(a,o);for(const a of ll(n[o]))i.set(a,o)}return n.sort((r,o)=>ci(r)===ci(o)?r.id.localeCompare(o.id):ci(r)-ci(o))}function UV(e,t){switch(t.type){case"SET":return t.channels;case"CLEAR":return[];case"ADD":return e.some(n=>n.id===t.channel.id)?e:[...e,t.channel];case"REMOVE":return e.filter(n=>n.id!==t.channelId);case"REMOVE_PARTICIPANT":return e.map(n=>({...n,participants:n.participants.filter(i=>i!==t.agentId)}));default:return e}}function GV(e,t){switch(t.type){case"SET":{const n=LC(t.messages);if(e.length===0)return n;const i=e.filter(r=>typeof r.id=="string"&&r.id.startsWith("msg-")&&!n.some(o=>mm(r,o)));return i.length===0?n:LC([...n,...i])}case"CLEAR":return[];case"ADD":{const n=ci(t.message);Il(t.message);let i=!1;for(let r=e.length-1;r>=0;r--){const o=ci(e[r]);if(!i&&n>0&&o>0&&n-o>z0&&(i=!0),tT(e[r],t.message)){const a=[...e];return a[r]=pm(e[r],t.message,e[r].id===t.message.id),a}if((Tl(t.message)||!i)&&mm(e[r],t.message)){const a=[...e];return a[r]=pm(e[r],t.message),a}}return[...e,t.message]}case"MERGE":return t.messages.length===0?e:VV(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 qV(){const[e,t]=C.useReducer(UV,[]),[n,i]=C.useReducer(GV,[]),[r,o]=C.useState({}),[a,c]=C.useState("default"),d=C.useRef(null),m=C.useMemo(()=>AC(n),[n]),h=C.useRef(m);h.current=m;const p=C.useMemo(()=>{const T={};for(const M of n)T[M.channelId]||(T[M.channelId]=[]),T[M.channelId].push(M);return T},[n]),g=C.useMemo(()=>FV(n,r),[n,r]),x=C.useCallback(T=>{const M={id:`msg-${zV()}`,channelId:T.channelId,sender:T.sender,senderName:T.senderName,content:T.content,timestamp:Date.now(),replyToId:T.replyToId,mentions:[],metadata:T.metadata};return i({type:"ADD",message:M}),M},[]),v=C.useCallback(T=>p[T]??[],[p]),b=C.useCallback(T=>g[T]??0,[g]),w=C.useCallback(T=>{const M=h.current[T]??0;M<=0||o(I=>HV(I,T,M))},[]),k=C.useCallback(T=>{i({type:"MARK_SENDER_DELETED",senderId:T})},[]),S=C.useCallback(T=>{t({type:"REMOVE_PARTICIPANT",agentId:T})},[]),j=C.useCallback(T=>{t({type:"REMOVE",channelId:`session:${T}`}),i({type:"REMOVE_BY_TASK_ID",taskId:T})},[]),N=C.useCallback(()=>{t({type:"CLEAR"}),i({type:"CLEAR"}),d.current=null,o({})},[]),L=C.useCallback((T,M,I)=>{const H=T||"default",Y=H!==a,P=d.current!==H;d.current=H,c(H),t({type:"SET",channels:M}),i(Y?{type:"SET",messages:I}:{type:"MERGE",messages:I}),P&&o(AC(I))},[a]),A=C.useCallback(T=>{i({type:"ADD",message:T})},[]),D=C.useCallback(T=>{i({type:"MERGE",messages:T})},[]),O=C.useCallback(T=>{t({type:"ADD",channel:T})},[]);return C.useMemo(()=>({scopeProjectId:a,channels:e,messages:n,sendMessage:x,getChannelMessages:v,getUnreadCount:b,markRead:w,markSenderDeleted:k,removeParticipant:S,removeSessionData:j,clear:N,initFromBackend:L,addMessageFromBackend:A,mergeMessagesFromBackend:D,addChannelFromBackend:O}),[a,e,n,x,v,b,w,k,S,j,N,L,A,D,O])}const Zm=4e3;function gl(e,t){return e.length>t?e.slice(-t):e}function xv(e,t,n){if(!e)return t;if(!t||e===t)return e;if(t.startsWith(e))return t;if(e.startsWith(t)||e.endsWith(t))return e;if(t.endsWith(e))return t;const i=Math.min(e.length,t.length);for(let r=i;r>0;r-=1)if(e.slice(-r)===t.slice(0,r))return`${e}${t.slice(r)}`;return n==="tool_call"&&/[}\]"]$/.test(e)&&!/^\s/.test(t)?`${e} +${t}`:`${e}${t}`}function WV(e,t){const n=e.trim().replace(/\s+/g," ");return n?n.length>120?`${n.slice(0,120).trimEnd()}...`:n:t||"Thinking"}function YV(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 hm(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 XV(e,t){const n=hm(e),i=hm(t);return n&&i?n===i:t.timestamp-e.timestamp>Zm||e.type!==t.type?!1:e.type==="thinking"||e.type==="assistant"?!0:e.type==="tool_call"?e.summary===t.summary:!1}function KV(e,t){return t.timestamp-e.timestamp<=Zm&&e.type===t.type&&e.summary===t.summary&&(e.detail??"")===(t.detail??"")}function ZV(e,t){if(e.type==="thinking"||e.type==="assistant"){const n=xv(e.detail??"",t.detail??"","thinking");return{timestamp:e.timestamp,type:e.type,summary:WV(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=xv(e.detail??"",t.detail??"","tool_call");return{timestamp:e.timestamp,type:"tool_call",summary:t.summary||e.summary,detail:n||void 0,turnId:t.turnId??e.turnId,itemId:t.itemId??e.itemId,streamId:t.streamId??e.streamId,toolCallId:t.toolCallId??e.toolCallId,permissionGroupKey:t.permissionGroupKey??e.permissionGroupKey,seq:t.seq??e.seq,executionMode:t.executionMode??e.executionMode}}return t}function nT(e,t,n=100){const i=YV(t),r=hm(i),o=r?[...e].reverse().findIndex(d=>hm(d)===r):-1,a=o>=0?e.length-1-o:e.length-1,c=e[a];return c?r&&o>=0&&typeof c.seq=="number"&&typeof i.seq=="number"&&i.seq<=c.seq?e:KV(c,i)?gl([...e.slice(0,a),c,...e.slice(a+1)],n):XV(c,i)?gl([...e.slice(0,a),ZV(c,i),...e.slice(a+1)],n):gl([...e,i],n):[i]}function iT(e,t=100){return(Array.isArray(e)?e:[]).reduce((n,i)=>nT(n,i,t),[])}function QV(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 rT(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 JV(e,t){return t.timestamp-e.timestamp<=Zm&&rT(e,t)&&(e.type==="thinking"||e.type==="tool_call")}function eU(e,t){return rT(e,t)&&(e.detail??"")===(t.detail??"")&&t.timestamp-e.timestamp<=Zm}function tU(e,t){const n=t.type==="tool_call"?"tool_call":"thinking";return{...e,...t,timestamp:t.timestamp,detail:xv(e.detail??"",t.detail??"",n)||void 0}}function sT(e,t,n=100){const i=QV(t),r=e[e.length-1];return r?eU(r,i)?gl([...e.slice(0,-1),{...r,timestamp:i.timestamp}],n):JV(r,i)?gl([...e.slice(0,-1),tU(r,i)],n):gl([...e,i],n):[i]}function oT(e,t=100){return(Array.isArray(e)?e:[]).reduce((n,i)=>sT(n,i,t),[])}function vv(e){const t=String(e??"").trim().toLowerCase();return t==="company"?"company":t==="org"||t==="custom"?"org":"task"}function nU(e){return String(e??"").trim().toLowerCase()==="custom"?"custom":"corporate"}function aT(e){const t=String(e.execMode??"").trim().toLowerCase(),n=String(e.companyProfile??"").trim().toLowerCase(),i=String(e.orgId??"").trim(),o=t.length>0?vv(t):n==="custom"||i?"org":vv(t);return o==="org"?{...e,execMode:"org",companyProfile:"custom",orgId:i||void 0}:o==="company"?{...e,execMode:"company",companyProfile:"corporate",orgId:void 0}:{...e,execMode:"task",companyProfile:void 0,orgId:void 0}}const gf=100,iU=new Set(["done","failed","cancelled"]);function rU(e,t,n){const i=n,r=new Map(t.filter(c=>c.projectId===i).map(c=>[c.taskId,c])),o=new Set,a=[];for(const c of e){if(c.projectId!==i)continue;const d=r.get(c.taskId);d?(a.push(d),o.add(c.taskId)):a.push(c)}for(const c of t)c.projectId!==i||o.has(c.taskId)||(a.push(c),o.add(c.taskId));return a}function sU(e,t){const n=g=>aT({...g,progressLog:iT(g.progressLog??[],gf),workItemLog:oT(g.workItemLog??[],gf)}),i=g=>{const x=String(g.execMode??"").trim().toLowerCase();return x==="company"||x==="org"||x==="custom"||!!g.isCompanyRuntime||!!g.parentSessionId||!!g.workItemProjectionId||!!g.roleWorkItems||!!g.executorRoleWorkItems||!!g.orgId},r=g=>{const x=String(g.execMode??"").trim().toLowerCase(),v=String(g.companyProfile??"").trim().toLowerCase(),b=String(g.orgId??"").trim();return x==="task"&&(!v||v==="corporate")&&!b&&!g.isCompanyRuntime&&!g.parentSessionId&&!g.workItemProjectionId&&!g.workItemRoleId&&!g.roleWorkItems&&!g.executorRoleWorkItems},o=(g,x)=>{const v=g.execMode,b=x.execMode;return!v||v==="task"&&b&&b!=="task"&&!r(g)&&(i(g)||i(x))?b:v},a=(g,x,v)=>{const b=g[v],w=x[v];return!b||b==="native"&&w&&w!=="native"?w:b},c=(g,x)=>Object.prototype.hasOwnProperty.call(g,x),d=(g,x,v)=>c(g,v)?g[v]:x[v],m=(g,x)=>{const v=typeof g.updatedAt=="number"&&Number.isFinite(g.updatedAt)?g.updatedAt:void 0,b=typeof x.updatedAt=="number"&&Number.isFinite(x.updatedAt)?x.updatedAt:void 0;return v===void 0?b??Date.now():b===void 0?v:Math.max(b,v)},h=(g,x)=>g.runtimeControlState==="suspending"&&x.runtimeControlState==="running"?{...x,runtimeControlState:"suspending",canStop:!1,canResume:g.canResume??!1,pendingRuntimeCheckpointId:g.pendingRuntimeCheckpointId??x.pendingRuntimeCheckpointId,stopIntentId:g.stopIntentId??x.stopIntentId}:x,p=(g,x,v)=>{const b=g[v];if(b!=null)return b;if(!(iU.has(g.status)||g.status!=="running"&&g.runtimeControlState!=="running"&&g.runtimeControlState!=="suspending"&&g.runtimeControlState!=="resuming"))return x[v]};switch(t.type){case"SET":{if(t.reset)return t.sessions.map(n);const x=new Map(e.map(v=>[v.taskId,v]));return t.sessions.map(v=>{const b=x.get(v.taskId);if(!b)return n(v);const w=h(b,v);return n({...v,updatedAt:m(v,b),execMode:o(v,b),preferredAgent:a(v,b,"preferredAgent"),draftAssistantText:b.draftAssistantText??v.draftAssistantText,draftUpdatedAt:b.draftUpdatedAt??v.draftUpdatedAt,draftIteration:b.draftIteration??v.draftIteration,draftTurnId:b.draftTurnId??v.draftTurnId,agentStatus:p(v,b,"agentStatus"),currentTool:p(v,b,"currentTool"),displayTool:p(v,b,"displayTool"),toolElapsedMs:p(v,b,"toolElapsedMs"),lastToolSummary:p(v,b,"lastToolSummary"),contextTokens:b.contextTokens??v.contextTokens,contextWindow:b.contextWindow??v.contextWindow,contextRemainingPct:b.contextRemainingPct??v.contextRemainingPct,inputTokens:b.inputTokens??v.inputTokens,outputTokens:b.outputTokens??v.outputTokens,totalTokens:b.totalTokens??v.totalTokens,turnCostUsd:b.turnCostUsd??v.turnCostUsd,sessionCostUsd:b.sessionCostUsd??v.sessionCostUsd,pendingPermissionCount:b.pendingPermissionCount??v.pendingPermissionCount,drainMode:b.drainMode??v.drainMode,workItemProjectionId:v.workItemProjectionId??b.workItemProjectionId,workItemTurnType:v.workItemTurnType??b.workItemTurnType,companyProfile:d(v,b,"companyProfile"),orgId:d(v,b,"orgId"),workItemRoleId:v.workItemRoleId??b.workItemRoleId,workItemRoleName:v.workItemRoleName??b.workItemRoleName,workItemGate:v.workItemGate??b.workItemGate,roleWorkItems:v.roleWorkItems??b.roleWorkItems,executorRoleWorkItems:v.executorRoleWorkItems??b.executorRoleWorkItems,employeeAssignment:v.employeeAssignment??b.employeeAssignment,selectedExecutionAgent:a(v,b,"selectedExecutionAgent"),runtimeControlState:w.runtimeControlState??b.runtimeControlState,canStop:w.canStop??b.canStop,canResume:w.canResume??b.canResume,resumeParentSessionId:v.resumeParentSessionId??b.resumeParentSessionId,pendingRuntimeCheckpointId:w.pendingRuntimeCheckpointId??b.pendingRuntimeCheckpointId,stopIntentId:w.stopIntentId??b.stopIntentId,residentStatus:b.residentStatus??v.residentStatus,actionableInboxCount:b.actionableInboxCount??v.actionableInboxCount,protocolBacklogCount:b.protocolBacklogCount??v.protocolBacklogCount,notificationBacklogCount:b.notificationBacklogCount??v.notificationBacklogCount,latestNotification:b.latestNotification??v.latestNotification,latestPreview:v.latestPreview??b.latestPreview,latestSender:v.latestSender??b.latestSender,latestMessageId:v.latestMessageId??b.latestMessageId,indexLoaded:v.indexLoaded??b.indexLoaded,detailLoaded:b.detailLoaded??v.detailLoaded,fullLoaded:b.fullLoaded??v.fullLoaded,hasMore:v.hasMore??b.hasMore,summaryHasMore:v.summaryHasMore??b.summaryHasMore,fullHasMore:v.fullHasMore??b.fullHasMore,detailLoading:v.detailLoading??b.detailLoading,detailError:v.detailError??b.detailError,viewGeneration:v.viewGeneration??b.viewGeneration,progressLog:b.progressLog&&b.progressLog.length>0?b.progressLog:v.progressLog,workItemLog:b.workItemLog&&b.workItemLog.length>0?b.workItemLog:v.workItemLog,lastRuntimeEventType:b.lastRuntimeEventType??v.lastRuntimeEventType,activeSubagents:b.activeSubagents??v.activeSubagents,permissionRequests:b.permissionRequests??v.permissionRequests,handoffContext:v.handoffContext??b.handoffContext,handoffTo:v.handoffTo??b.handoffTo})})}case"ADD":const g=n(t.session);return e.some(x=>x.taskId===t.session.taskId)?e.map(x=>x.taskId===t.session.taskId?n({...x,...g,progressLog:g.progressLog.length>0?g.progressLog:x.progressLog,workItemLog:(g.workItemLog??[]).length>0?g.workItemLog:x.workItemLog,messageCount:Math.max(x.messageCount??0,g.messageCount??0),updatedAt:Math.max(x.updatedAt??0,g.updatedAt??0),execMode:o(g,x),preferredAgent:a(g,x,"preferredAgent"),workItemProjectionId:g.workItemProjectionId??x.workItemProjectionId,workItemTurnType:g.workItemTurnType??x.workItemTurnType,companyProfile:d(g,x,"companyProfile"),orgId:d(g,x,"orgId"),workItemRoleId:g.workItemRoleId??x.workItemRoleId,workItemRoleName:g.workItemRoleName??x.workItemRoleName,workItemGate:g.workItemGate??x.workItemGate,roleWorkItems:g.roleWorkItems??x.roleWorkItems,executorRoleWorkItems:g.executorRoleWorkItems??x.executorRoleWorkItems,employeeAssignment:g.employeeAssignment??x.employeeAssignment,selectedExecutionAgent:a(g,x,"selectedExecutionAgent"),handoffContext:g.handoffContext??x.handoffContext,handoffTo:g.handoffTo??x.handoffTo,latestPreview:g.latestPreview??x.latestPreview,latestSender:g.latestSender??x.latestSender,latestMessageId:g.latestMessageId??x.latestMessageId,indexLoaded:g.indexLoaded??x.indexLoaded,detailLoaded:g.detailLoaded??x.detailLoaded,fullLoaded:g.fullLoaded??x.fullLoaded,hasMore:g.hasMore??x.hasMore,summaryHasMore:g.summaryHasMore??x.summaryHasMore,fullHasMore:g.fullHasMore??x.fullHasMore,detailLoading:g.detailLoading??x.detailLoading,detailError:g.detailError??x.detailError,viewGeneration:g.viewGeneration??x.viewGeneration}):x):[g,...e];case"UPDATE":return e.map(x=>x.taskId===t.taskId?(()=>{const v=h(x,t.partial);return n({...x,...v,updatedAt:m(v,x),runtimeControlState:v.runtimeControlState??x.runtimeControlState,canStop:v.canStop??x.canStop,canResume:v.canResume??x.canResume,resumeParentSessionId:v.resumeParentSessionId??x.resumeParentSessionId,pendingRuntimeCheckpointId:v.pendingRuntimeCheckpointId??x.pendingRuntimeCheckpointId,stopIntentId:v.stopIntentId??x.stopIntentId,roleWorkItems:v.roleWorkItems??x.roleWorkItems,executorRoleWorkItems:v.executorRoleWorkItems??x.executorRoleWorkItems,execMode:d(v,x,"execMode"),companyProfile:d(v,x,"companyProfile"),orgId:d(v,x,"orgId"),isCompanyRuntime:v.isCompanyRuntime??x.isCompanyRuntime,workItemProjectionId:v.workItemProjectionId??x.workItemProjectionId,workItemTurnType:v.workItemTurnType??x.workItemTurnType,workItemRoleId:v.workItemRoleId??x.workItemRoleId,workItemRoleName:v.workItemRoleName??x.workItemRoleName,workItemGate:v.workItemGate??x.workItemGate,employeeAssignment:v.employeeAssignment??x.employeeAssignment,selectedExecutionAgent:v.selectedExecutionAgent??x.selectedExecutionAgent,activeSubagents:v.activeSubagents??x.activeSubagents,permissionRequests:v.permissionRequests??x.permissionRequests,contextTokens:v.contextTokens??x.contextTokens,contextWindow:v.contextWindow??x.contextWindow,contextRemainingPct:v.contextRemainingPct??x.contextRemainingPct,inputTokens:v.inputTokens??x.inputTokens,outputTokens:v.outputTokens??x.outputTokens,totalTokens:v.totalTokens??x.totalTokens,turnCostUsd:v.turnCostUsd??x.turnCostUsd,sessionCostUsd:v.sessionCostUsd??x.sessionCostUsd,...t.partial.progressLog?{progressLog:t.partial.progressLog}:{},...t.partial.workItemLog?{workItemLog:t.partial.workItemLog}:{}})})():x);case"DELETE":return e.filter(x=>x.taskId!==t.taskId);case"APPEND_PROGRESS":return e.map(x=>x.taskId!==t.taskId?x:{...x,progressLog:nT(x.progressLog,t.entry,gf),updatedAt:Math.max(x.updatedAt,t.entry.timestamp)});case"APPEND_DRAFT":return e.map(x=>{if(x.taskId!==t.taskId)return x;const v=t.turnId??x.draftTurnId,b=!!t.turnId&&!!x.draftTurnId&&t.turnId!==x.draftTurnId;return{...x,draftAssistantText:`${b?"":x.draftAssistantText??""}${t.text}`,draftUpdatedAt:t.timestamp,draftIteration:t.iteration??x.draftIteration,draftTurnId:v,updatedAt:Math.max(x.updatedAt,t.timestamp)}});case"CLEAR_DRAFT":return e.map(x=>x.taskId===t.taskId?{...x,draftAssistantText:void 0,draftUpdatedAt:void 0,draftIteration:void 0,draftTurnId:void 0}:x);case"CLEAR_PROGRESS":return e.map(x=>x.taskId===t.taskId?{...x,progressLog:[]}:x);case"APPEND_WORK_ITEM_PROGRESS":return e.map(x=>x.taskId!==t.taskId?x:{...x,workItemLog:sT(x.workItemLog??[],t.entry,gf)});case"SET_COMPANY_RUNTIME":return e.map(x=>x.taskId===t.taskId?{...x,isCompanyRuntime:t.isCompanyRuntime}:x);default:return e}}function oU(){const[e,t]=C.useReducer(sU,[]),[n,i]=C.useState(null),[r,o]=C.useState("default"),a=C.useMemo(()=>e.find(S=>S.taskId===n)??null,[e,n]),c=C.useCallback(S=>{S.projectId===r&&t({type:"ADD",session:S})},[r]),d=C.useCallback(S=>{t({type:"DELETE",taskId:S})},[]),m=C.useCallback(S=>{i(S)},[]),h=C.useCallback((S,j)=>{t({type:"UPDATE",taskId:S,partial:j})},[]),p=C.useCallback((S,j)=>{t({type:"APPEND_PROGRESS",taskId:S,entry:j})},[]),g=C.useCallback((S,j,N,L)=>{t({type:"APPEND_DRAFT",taskId:S,text:j,iteration:N,turnId:L,timestamp:Date.now()})},[]),x=C.useCallback(S=>{t({type:"CLEAR_DRAFT",taskId:S})},[]),v=C.useCallback(S=>{t({type:"CLEAR_PROGRESS",taskId:S})},[]),b=C.useCallback((S,j)=>{t({type:"APPEND_WORK_ITEM_PROGRESS",taskId:S,entry:j})},[]),w=C.useCallback((S,j)=>{t({type:"SET_COMPANY_RUNTIME",taskId:S,isCompanyRuntime:j})},[]),k=C.useCallback((S,j,N)=>{const L=S||"default",A=L!==r,D=N?.preserveExistingWhenIncomingPartial&&!A?rU(e,j,L):j.filter(O=>O.projectId===L);o(L),t({type:"SET",sessions:D,reset:A}),i(O=>!A&&O&&(D.some(T=>T.taskId===O)||N?.preserveActiveWhenMissing)?O:null)},[r,e]);return C.useMemo(()=>({scopeProjectId:r,sessions:e,activeSessionId:n,activeSession:a,createSession:c,deleteSession:d,setActiveSession:m,updateSession:h,appendProgress:p,appendDraft:g,clearDraft:x,clearProgress:v,appendWorkItemProgress:b,setCompanyRuntime:w,initFromBackend:k}),[r,e,n,a,c,d,m,h,p,g,x,v,b,w,k])}function zC(e){return e.trim()||"default"}function aU(e,t){switch(t.type){case"SET":return{projects:t.projects,activeProjectId:zC(t.activeId)};case"ADD":return e.projects.some(n=>n.id===t.project.id)?e:{...e,projects:[...e.projects,t.project]};case"REMOVE":{const n=e.projects.filter(r=>r.id!==t.id),i=e.activeProjectId===t.id?"default":e.activeProjectId;return{projects:n,activeProjectId:i}}case"SET_ACTIVE":return{...e,activeProjectId:zC(t.id)};default:return e}}function lU(){const[e,t]=C.useReducer(aU,{projects:[{id:"default",name:"default"}],activeProjectId:"default"}),n=C.useCallback((a,c)=>{t({type:"SET",projects:a,activeId:c})},[]),i=C.useCallback(a=>{t({type:"ADD",project:a})},[]),r=C.useCallback(a=>{t({type:"REMOVE",id:a})},[]),o=C.useCallback(a=>{t({type:"SET_ACTIVE",id:a})},[]);return C.useMemo(()=>({projects:e.projects,activeProjectId:e.activeProjectId,initFromBackend:n,addProject:i,removeProject:r,setActiveProject:o}),[e,n,i,r,o])}const PC={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"}},yf={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 cU(e){const t=Math.floor((Date.now()-e)/1e3);if(t<5)return"now";if(t<60)return`${t}s ago`;const n=Math.floor(t/60);if(n<60)return`${n}m ago`;const i=Math.floor(n/60);return i<24?`${i}h ago`:`${Math.floor(i/24)}d ago`}function Sy(e){const t=String(e??"").trim();return t?t.replace(/[_-]/g," ").replace(/\b\w/g,n=>n.toUpperCase()):""}function uU(e){return e.phase==="failed"?yf.failed:e.phase==="cancelled"?yf.cancelled:yf[e.kanbanColumn]??yf.todo}function dU(e){if(e.phase==="failed")return"failed";if(e.phase==="cancelled")return"cancelled";if(e.kanbanColumn==="done")return"done"}function fU(e){const t=e.activitySections??[];return t.length>0?t.reduce((n,i)=>n+(i.entries?.length??0),0):e.progressLog.length}function mU({sections:e,fallbackEntries:t,sessionStatus:n}){const i=(e??[]).filter(r=>(r.entries?.length??0)>0||!!r.runtimeTaskId);return i.length>0?u.jsx("div",{className:"exec-activity-sections",children:i.map((r,o)=>{const a=r.entries??[],c=`${r.runtimeTaskId||r.kind}:${o}`;return u.jsxs("section",{className:"exec-activity-section",children:[u.jsxs("div",{className:"exec-activity-section-head",children:[u.jsx("span",{className:"exec-activity-section-title",children:r.title}),r.roleName&&u.jsx("span",{className:"exec-activity-section-role",children:r.roleName}),a.length>0&&u.jsx("span",{className:"exec-section-count",children:a.length})]}),a.length>0?u.jsx(El,{entries:a,sessionStatus:n,expandedByDefault:!0}):u.jsx("div",{className:"exec-section-empty",children:"No runtime activity yet"})]},c)})}):!t||t.length===0?u.jsx("div",{className:"exec-section-empty",children:"No activity recorded yet"}):u.jsx(El,{entries:t,sessionStatus:n,expandedByDefault:!0})}function BC({role:e,focusedWorkItemId:t,focusedExecutionTurnId:n,agents:i,onClose:r}){const o=C.useMemo(()=>e.workItems.slice().sort((S,j)=>S.createdAt-j.createdAt),[e.workItems]),c=C.useMemo(()=>o.find(S=>!!t&&S.workItemId===t||!!n&&S.executionTurnId===n)??o[o.length-1]??null,[n,t,o])?.workItemId,[d,m]=C.useState(()=>{const S=new Set;return c&&S.add(c),S}),h=C.useRef(new Set);C.useEffect(()=>{!c||h.current.has(c)||(h.current.add(c),m(S=>{if(S.has(c))return S;const j=new Set(S);return j.add(c),j}))},[c]);const p=C.useCallback(S=>{m(j=>{const N=new Set(j);return N.has(S)?N.delete(S):N.add(S),N})},[]),g=C.useRef(null),x=C.useRef(null);C.useEffect(()=>{!c||x.current===c||(x.current=c,g.current?.scrollIntoView({behavior:"smooth",block:"nearest"}))},[c]);const v=C.useCallback(S=>{S.key==="Escape"&&r()},[r]);C.useEffect(()=>(document.addEventListener("keydown",v),()=>document.removeEventListener("keydown",v)),[v]);const b=i.find(S=>S.agent_id===e.roleId),w=e.roleName||b?.name||Sy(e.roleId)||"Role",k=PC[e.aggregatedStatus]??PC.pending;return u.jsxs(u.Fragment,{children:[u.jsx("div",{className:"exec-panel-backdrop",onClick:r}),u.jsxs("div",{className:"exec-panel",children:[u.jsxs("div",{className:"exec-panel-header",children:[u.jsxs("div",{className:"exec-panel-title-row",children:[u.jsx(bl,{}),u.jsx("h3",{className:"exec-panel-title",children:w}),u.jsx("span",{className:`exec-badge ${k.cls}`,children:k.label}),u.jsxs("span",{className:"exec-panel-task-count",children:[o.length," Work Item",o.length===1?"":"s"]})]}),u.jsx("button",{className:"exec-panel-close",onClick:r,title:"Close (Esc)",children:u.jsx(Dm,{})})]}),u.jsxs("div",{className:"exec-panel-identity",children:[u.jsx("div",{className:"exec-panel-avatar",children:w.charAt(0).toUpperCase()}),u.jsxs("div",{className:"exec-panel-agent-info",children:[u.jsx("span",{className:"exec-panel-agent-name",children:w}),u.jsx("span",{className:"exec-panel-agent-role",children:Sy(e.roleId)}),e.roleSessionId&&u.jsx("span",{className:"exec-panel-employee",children:e.roleSessionId})]})]}),u.jsxs("div",{className:"exec-panel-body",children:[o.length===0&&u.jsx("div",{className:"exec-section-empty",children:"No work items yet"}),o.map((S,j)=>{const N=S.workItemId===c,L=d.has(S.workItemId),A=uU(S),D=fU(S);return u.jsxs("div",{ref:N?g:null,className:`exec-task-card${N?" exec-task-card-focused":""}`,children:[u.jsxs("button",{type:"button",className:"exec-task-card-header",onClick:()=>p(S.workItemId),title:L?"Collapse":"Expand",children:[u.jsxs("span",{className:"exec-task-card-index",children:["Work item #",j+1]}),u.jsx("span",{className:"exec-task-card-title",children:S.title||S.workItemId}),u.jsx("span",{className:`exec-badge ${A.cls}`,children:A.label}),u.jsx("span",{className:"exec-task-card-time",children:cU(S.updatedAt)}),u.jsx("span",{className:`exec-task-card-chevron${L?" open":""}`,"aria-hidden":"true",children:"▸"})]}),L&&u.jsxs("div",{className:"exec-task-card-body",children:[u.jsxs("div",{className:"exec-task-card-projection",children:[u.jsx(Mm,{}),u.jsx("span",{children:Sy(S.kind)||"Work item"}),S.workItemProjectionId&&u.jsx("code",{children:S.workItemProjectionId}),S.executionTurnId&&u.jsx("span",{className:"exec-inline-tag",children:"Execution Turn"}),S.isReviewTarget&&u.jsx("span",{className:"exec-inline-tag",children:"Review target"}),S.executorRoleName&&u.jsx("span",{children:S.executorRoleName})]}),u.jsxs("div",{className:"exec-section",children:[u.jsxs("div",{className:"exec-section-header",children:[u.jsx(bl,{}),u.jsx("span",{children:"Activity"}),u.jsx("span",{className:"exec-section-count",children:D})]}),u.jsx("div",{className:"exec-section-content exec-activity-scroll",children:u.jsx(mU,{sections:S.activitySections,fallbackEntries:S.progressLog,sessionStatus:dU(S)})})]})]})]},S.workItemId)})]})]})]})}function pU({projects:e,activeId:t,onSelect:n,onCreate:i,onDelete:r}){const{t:o}=Vr(),[a,c]=C.useState(!1),[d,m]=C.useState(""),[h,p]=C.useState(null),g=C.useCallback(()=>{const v=d.trim().toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-|-$/g,"");v&&(i(v),m(""),c(!1))},[d,i]),x=C.useCallback(()=>{!h||!r||(r(h),p(null))},[h,r]);return u.jsxs("div",{className:"project-selector",style:{display:"flex",alignItems:"center",gap:6},children:[u.jsx("select",{className:"theme-select",value:t,onChange:v=>n(v.target.value),title:o("project.switch"),"aria-label":o("project.switch"),children:e.map(v=>u.jsx("option",{value:v.id,children:v.name},v.id))}),a?u.jsxs("form",{onSubmit:v=>{v.preventDefault(),g()},style:{display:"flex",gap:4},children:[u.jsx("input",{autoFocus:!0,className:"theme-select",value:d,placeholder:o("project.placeholder"),onChange:v=>m(v.target.value),onKeyDown:v=>{v.key==="Escape"&&c(!1)},style:{width:120}}),u.jsx("button",{type:"submit",className:"pill-btn",style:{fontSize:11,padding:"2px 8px"},children:"+"})]}):u.jsx("button",{className:"pill-btn",onClick:()=>c(!0),title:o("project.new"),style:{fontSize:11,padding:"2px 8px"},children:"+"}),r&&t!=="default"&&!h&&u.jsx("button",{className:"pill-btn",onClick:()=>p(t),title:o("project.delete"),style:{fontSize:11,padding:"2px 8px",color:"#ef4444"},children:o("project.deleteButton")}),h&&u.jsx("div",{className:"project-delete-confirm",style:{position:"fixed",inset:0,zIndex:9999,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.5)"},children:u.jsxs("div",{style:{background:"var(--bg-surface, #1e1e2e)",borderRadius:12,padding:"24px 32px",maxWidth:400,boxShadow:"0 8px 32px rgba(0,0,0,0.4)",textAlign:"center"},children:[u.jsx("p",{style:{margin:"0 0 8px",fontWeight:600,fontSize:15},children:o("project.confirmTitle",{name:h})}),u.jsx("p",{style:{margin:"0 0 20px",fontSize:13,opacity:.7},children:o("project.confirmBody")}),u.jsxs("div",{style:{display:"flex",gap:8,justifyContent:"center"},children:[u.jsx("button",{className:"pill-btn",onClick:()=>p(null),style:{padding:"6px 18px",fontSize:13},children:o("common.cancel")}),u.jsx("button",{className:"pill-btn",onClick:x,style:{padding:"6px 18px",fontSize:13,background:"#ef4444",color:"#fff"},children:o("common.delete")})]})]})})]})}const hU=80;function gU(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 $C(e){return(e.organization_name||e.name).trim()||e.name}function yU(e){const t=e.trim();return t.length>0&&t.length<=hU&&!/[\\/]/.test(t)&&!/[\u0000-\u001f]/.test(t)}function xU(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 vU({className:e}){return u.jsxs("svg",{className:e,width:"12",height:"12",viewBox:"0 0 16 16",fill:"none","aria-hidden":!0,children:[u.jsx("path",{d:"M8 1.5L1.5 4.5L8 7.5L14.5 4.5L8 1.5Z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),u.jsx("path",{d:"M2 8L8 10.8L14 8",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round",opacity:"0.6"}),u.jsx("path",{d:"M2 11.5L8 14.2L14 11.5",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round",opacity:"0.35"})]})}function bU({className:e}){return u.jsx("svg",{className:e,width:"10",height:"10",viewBox:"0 0 12 12",fill:"none","aria-hidden":!0,children:u.jsx("path",{d:"M3 4.5L6 7.5L9 4.5",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})})}function _U({className:e}){return u.jsxs("svg",{className:e,width:"11",height:"11",viewBox:"0 0 12 12",fill:"none","aria-hidden":!0,children:[u.jsx("circle",{cx:"5",cy:"5",r:"3.2",stroke:"currentColor",strokeWidth:"1.3"}),u.jsx("path",{d:"M7.5 7.5L10 10",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]})}function kU({savedOrgs:e,activeName:t,isDirty:n,onRefresh:i,onSaveAs:r,onLoad:o,onDelete:a}){const[c,d]=C.useState(!1),[m,h]=C.useState(""),[p,g]=C.useState(0),[x,v]=C.useState(!1),[b,w]=C.useState(""),[k,S]=C.useState(null),[j,N]=C.useState(null),L=C.useRef(null),A=C.useRef(null);C.useEffect(()=>{N(null)},[t,e]);const D=(e??[]).filter(q=>!m.trim()||q.name.toLowerCase().includes(m.trim().toLowerCase())),O=C.useRef(!1);C.useEffect(()=>{c&&!O.current&&(O.current=!0,i())},[c,i]),C.useEffect(()=>{x&&A.current?.focus()},[x]),C.useEffect(()=>{g(q=>Math.min(q,Math.max(0,D.length-1)))},[D.length]),C.useEffect(()=>{if(!c)return;const q=K=>{L.current&&!L.current.contains(K.target)&&T()};return document.addEventListener("mousedown",q),()=>document.removeEventListener("mousedown",q)},[c]);const T=C.useCallback(()=>{d(!1),h(""),g(0),v(!1),w(""),S(null)},[]),M=C.useCallback(q=>{if(q===t){T();return}N(q),o(q),T()},[o,T,t]),I=C.useCallback(q=>{a(q),S(null)},[a]),H=b.trim(),Y=yU(H),P=xU(H),U=(e??[]).some(q=>q.name===P||$C(q).toLowerCase()===H.toLowerCase()),$=C.useCallback(()=>{Y&&(r(H,U),v(!1),w(""),T())},[Y,H,U,r,T]),G=q=>{if(q.key==="Escape"){q.preventDefault(),T();return}if(x){q.key==="Enter"&&(q.preventDefault(),$());return}if(q.key==="ArrowDown")q.preventDefault(),g(K=>Math.min(K+1,Math.max(0,D.length-1)));else if(q.key==="ArrowUp")q.preventDefault(),g(K=>Math.max(0,K-1));else if(q.key==="Enter"){const K=D[p];K&&M(K.name)}else if((q.key==="Backspace"||q.key==="Delete")&&(q.metaKey||q.ctrlKey)){const K=D[p];K&&(q.preventDefault(),S(K.name))}};return u.jsxs("div",{className:"sos-wrap",ref:L,children:[u.jsxs("button",{type:"button",className:"sos-pill","data-open":c?"true":"false",onClick:()=>d(q=>!q),"aria-haspopup":"listbox","aria-expanded":c,title:t?`Active saved architecture: ${t}`:"No saved architecture loaded",children:[u.jsx(vU,{className:"sos-pill-glyph"}),t?u.jsx("span",{className:"sos-pill-name",children:t}):u.jsx("span",{className:"sos-pill-name sos-pill-name--placeholder",children:"draft"}),n&&u.jsx("span",{className:"sos-pill-dirty","aria-label":"Modified since opened"}),u.jsx(bU,{className:"sos-pill-caret"})]}),c&&u.jsxs("div",{className:"sos-popover",role:"listbox",onKeyDown:G,tabIndex:-1,children:[u.jsxs("div",{className:"sos-search-row",children:[u.jsx(_U,{className:"sos-search-glyph"}),u.jsx("input",{type:"text",className:"sos-search-input",placeholder:"Search architectures…",value:m,onChange:q=>{h(q.target.value),g(0)},autoFocus:!0,onKeyDown:G}),u.jsx("kbd",{className:"sos-search-hint",children:"↑↓ ↵"})]}),u.jsx("div",{className:"sos-list",children:e===null?u.jsx("div",{className:"sos-empty",children:"Loading…"}):D.length===0?u.jsx("div",{className:"sos-empty",children:(e??[]).length===0?"No saved architectures.":"No matches."}):D.map((q,K)=>{const W=t===q.name,V=p===K,Q=$C(q);return u.jsxs("div",{className:`sos-row${W?" sos-row--active":""}`,"data-highlighted":V?"true":"false",onMouseEnter:()=>g(K),onClick:()=>M(q.name),role:"option","aria-selected":W,children:[u.jsxs("div",{className:"sos-row-meta",children:[u.jsx("span",{className:"sos-row-name",children:Q}),u.jsxs("span",{className:"sos-row-stats",children:[Q!==q.name&&`${q.name} · `,q.roles_count," ",q.roles_count===1?"role":"roles"," · ",q.employees_count," ",q.employees_count===1?"employee":"employees"," · ",gU(q.saved_at)]})]}),j===q.name?u.jsx("span",{className:"sos-row-loading",children:"loading…"}):W?u.jsx("span",{className:"sos-row-active-chip",children:"active"}):k===q.name?u.jsx("button",{type:"button",className:"sos-row-delete sos-row-delete--confirm",onClick:B=>{B.stopPropagation(),I(q.name)},children:"confirm"}):u.jsx("button",{type:"button",className:"sos-row-delete",onClick:B=>{B.stopPropagation(),S(q.name)},title:"Delete",children:"delete"})]},q.name)})}),u.jsxs("div",{className:"sos-save-as",children:[x?u.jsxs("div",{className:"sos-save-as-form",children:[u.jsx("input",{ref:A,type:"text",className:"sos-save-as-input",placeholder:"Organization name",value:b,onChange:q=>w(q.target.value),onKeyDown:G}),u.jsx("button",{type:"button",className:"btn btn-primary btn-sm",onClick:$,disabled:!Y,children:U?"Overwrite copy":"Save as copy"}),u.jsx("button",{type:"button",className:"btn btn-ghost btn-sm",onClick:()=>{v(!1),w("")},children:"Cancel"})]}):u.jsx("button",{type:"button",className:"sos-save-as-trigger",onClick:()=>v(!0),children:"+ Save as copy..."}),x&&b&&!Y&&u.jsx("div",{className:"sos-save-as-hint sos-save-as-hint--warn",children:"Use up to 80 characters. Slashes are not allowed."}),x&&Y&&U&&u.jsx("div",{className:"sos-save-as-hint sos-save-as-hint--warn",children:"Name exists - this will overwrite that copy."})]})]})]})}const SU=["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"],mu={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 Uu(e){return e?e.startsWith("data:")?e:mu[e]??mu.generic:mu.generic}const Xc=["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"],wU=[{label:"Files",prefix:"file_",tools:Xc.filter(e=>e.startsWith("file_"))},{label:"Shell",prefix:"shell_",tools:Xc.filter(e=>e==="shell_exec")},{label:"Web",prefix:"web_",tools:Xc.filter(e=>e.startsWith("web_"))},{label:"TODOs",prefix:"todo_",tools:Xc.filter(e=>e.startsWith("todo_"))},{label:"Browser",prefix:"browser_",tools:Xc.filter(e=>e.startsWith("browser_"))}],CU=["codex","cursor","claude_code","opencode"],jU=[{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 EU({role:e,allRoles:t,employees:n,readOnly:i,onUpdateRole:r,onDeleteRole:o,onClose:a}){const[c,d]=C.useState(e.name),[m,h]=C.useState(e.responsibility),[p,g]=C.useState(e.reports_to),[x,v]=C.useState(e.icon??null),[b,w]=C.useState(()=>new Set(e.can_spawn)),[k,S]=C.useState(()=>new Set(e.tools)),[j,N]=C.useState(e.runtime_policy?.execution_strategy??"auto"),[L,A]=C.useState(e.preferred_external_agent??null),[D,O]=C.useState((e.prompt_refs??[]).join(` +`)),[T,M]=C.useState(!1),I=C.useRef(e.role_id);C.useEffect(()=>{I.current!==e.role_id&&(I.current=e.role_id,d(e.name),h(e.responsibility),g(e.reports_to),v(e.icon??null),w(new Set(e.can_spawn)),S(new Set(e.tools)),N(e.runtime_policy?.execution_strategy??"auto"),A(e.preferred_external_agent??null),O((e.prompt_refs??[]).join(` +`)),M(!1))},[e]);const H=C.useRef({}),Y=C.useRef(null),P=C.useRef(e.role_id);C.useEffect(()=>{P.current=e.role_id},[e.role_id]);const U=C.useCallback(()=>{Y.current&&(clearTimeout(Y.current),Y.current=null);const ie=H.current;H.current={},Object.keys(ie).length!==0&&r(P.current,ie)},[r]),$=C.useCallback(ie=>{i||(H.current={...H.current,...ie},Y.current&&clearTimeout(Y.current),Y.current=setTimeout(U,500))},[U,i]);C.useEffect(()=>()=>{Y.current&&(clearTimeout(Y.current),Y.current=null);const ie=H.current;Object.keys(ie).length>0&&(H.current={},r(P.current,ie))},[r]);const G=ie=>{d(ie),$({name:ie})},q=ie=>{h(ie),$({responsibility:ie})},K=ie=>{g(ie),$({reports_to:ie})},W=ie=>{v(ie),$({icon:ie})},V=ie=>{N(ie),$({execution_strategy:ie})},Q=ie=>{A(ie),$({preferred_external_agent:ie})},B=ie=>{O(ie);const je=ie.split(` +`).map(we=>we.trim()).filter(Boolean);$({prompt_refs:je})},Z=ie=>{const je=new Set(b);je.has(ie)?je.delete(ie):je.add(ie),w(je),$({can_spawn:Array.from(je)})},te=ie=>{const je=new Set(k);je.has(ie)?je.delete(ie):je.add(ie),S(je),$({tools:Array.from(je)})},ee=C.useMemo(()=>t.filter(ie=>ie.role_id!==e.role_id),[t,e.role_id]),se=C.useMemo(()=>n.filter(ie=>(ie.role_ids?.length?ie.role_ids:[ie.role_id]).includes(e.role_id)).length,[n,e.role_id]),ae=C.useMemo(()=>D.split(` +`).filter(ie=>ie.trim()).length,[D]),ue=()=>{if(!T){M(!0);return}U(),o(e.role_id)};return u.jsxs("aside",{className:"ri-panel","aria-label":`Inspector for role ${e.name}`,children:[u.jsxs("header",{className:"ri-panel-header",children:[u.jsx("img",{src:Uu(x),alt:"",className:"ri-panel-icon"}),u.jsxs("div",{className:"ri-panel-title-wrap",children:[u.jsx("h3",{className:"ri-panel-title",children:c||"(unnamed)"}),u.jsx("code",{className:"ri-panel-id",children:e.role_id})]}),u.jsx("button",{className:"btn btn-ghost btn-sm ri-panel-close",onClick:a,title:"Close (Esc)",children:"✕"})]}),u.jsxs("div",{className:"ri-panel-body",children:[u.jsxs(tl,{title:"Identity",defaultExpanded:!0,children:[u.jsx(jr,{label:"Name",children:u.jsx("input",{className:"ri-text-input",value:c,onChange:ie=>G(ie.target.value),disabled:i})}),u.jsx(jr,{label:"Responsibility",children:u.jsx("textarea",{className:"ri-textarea",rows:3,value:m,onChange:ie=>q(ie.target.value),disabled:i})}),u.jsx(jr,{label:"Icon",children:u.jsx(NU,{value:x,onChange:W,readOnly:i})})]}),u.jsxs(tl,{title:"Hierarchy",defaultExpanded:!0,children:[u.jsx(jr,{label:"Reports to",children:u.jsxs("select",{className:"ri-select",value:p,onChange:ie=>K(ie.target.value),disabled:i,children:[u.jsx("option",{value:"owner",children:"You (Owner)"}),ee.map(ie=>u.jsx("option",{value:ie.role_id,children:ie.name},ie.role_id))]})}),u.jsx(jr,{label:"Can delegate to",children:u.jsx(IU,{allIds:ee.map(ie=>ie.role_id),labelFor:ie=>ee.find(je=>je.role_id===ie)?.name??ie,selected:b,onToggle:Z,readOnly:i})}),u.jsx(jr,{label:"Employees assigned",children:u.jsx("span",{className:"ri-meta-value",children:se})})]}),u.jsx(tl,{title:`Tools (${k.size})`,children:u.jsx(TU,{tools:k,onToggle:te,readOnly:i})}),u.jsx(tl,{title:`Prompts (${ae})`,children:u.jsx(jr,{label:"Prompt refs / inline",children:u.jsx("textarea",{className:"ri-textarea ri-textarea-mono",rows:5,placeholder:"One prompt ref or inline instruction per line",value:D,onChange:ie=>B(ie.target.value),disabled:i})})}),u.jsxs(tl,{title:"Runtime policy",children:[u.jsx(jr,{label:"Execution strategy",children:u.jsx("div",{className:"ri-radio-group",children:jU.map(ie=>u.jsxs("label",{className:"ri-radio",title:ie.hint,children:[u.jsx("input",{type:"radio",name:`exec-strategy-${e.role_id}`,value:ie.value,checked:j===ie.value,onChange:()=>V(ie.value),disabled:i}),ie.label]},ie.value))})}),j==="external"&&u.jsx(jr,{label:"Preferred external agent",children:u.jsxs("select",{className:"ri-select",value:L??"",onChange:ie=>Q(ie.target.value||null),disabled:i,children:[u.jsx("option",{value:"",children:"(any)"}),CU.map(ie=>u.jsx("option",{value:ie,children:ie},ie))]})})]}),u.jsxs(tl,{title:"Advanced",children:[u.jsx(jr,{label:"Role type",children:u.jsx("span",{className:"ri-meta-value",children:e.role_type??"worker"})}),u.jsx(jr,{label:"Skills",children:u.jsx("span",{className:"ri-meta-value",children:e.skill_refs&&e.skill_refs.length>0?e.skill_refs.join(", "):"(none)"})}),u.jsx(jr,{label:"Artifact contract",children:u.jsx("span",{className:"ri-meta-value",children:e.artifact_contract_ref??"(none)"})})]})]}),!i&&u.jsx("footer",{className:"ri-panel-footer",children:u.jsx("button",{className:`btn btn-sm ${T?"btn-danger":"btn-ghost"}`,onClick:ue,onBlur:()=>M(!1),children:T?"Confirm delete?":"Delete role"})})]})}function tl({title:e,defaultExpanded:t=!1,children:n}){const[i,r]=C.useState(t);return u.jsxs("section",{className:`ri-group${i?" is-expanded":""}`,children:[u.jsxs("button",{className:"ri-group-header",onClick:()=>r(o=>!o),children:[u.jsx("span",{className:"ri-group-caret",children:i?"▾":"▸"}),u.jsx("span",{className:"ri-group-title",children:e})]}),i&&u.jsx("div",{className:"ri-group-body",children:n})]})}function jr({label:e,children:t}){return u.jsxs("div",{className:"ri-field",children:[u.jsx("label",{className:"ri-field-label",children:e}),u.jsx("div",{className:"ri-field-control",children:t})]})}function NU({value:e,onChange:t,readOnly:n}){const[i,r]=C.useState(!1);return u.jsxs("div",{className:"ri-icon-picker",children:[u.jsxs("button",{className:"ri-icon-picker-trigger",onClick:()=>!n&&r(o=>!o),disabled:n,children:[u.jsx("img",{src:Uu(e),alt:"",className:"ri-icon-picker-current"}),u.jsx("span",{className:"ri-icon-picker-label",children:e??"generic"})]}),i&&u.jsxs("div",{className:"ri-icon-picker-popover",children:[u.jsx("button",{className:`ri-icon-option${e===null?" is-active":""}`,onClick:()=>{t(null),r(!1)},title:"Default icon",children:u.jsx("img",{src:mu.generic,alt:""})}),SU.filter(o=>o!=="generic").map(o=>u.jsx("button",{className:`ri-icon-option${e===o?" is-active":""}`,onClick:()=>{t(o),r(!1)},title:o,children:u.jsx("img",{src:mu[o],alt:o})},o))]})]})}function IU({allIds:e,labelFor:t,selected:n,onToggle:i,readOnly:r}){const[o,a]=C.useState(!1),c=e.filter(d=>!n.has(d));return u.jsxs("div",{className:"ri-multiselect",children:[u.jsxs("div",{className:"ri-chips",children:[Array.from(n).map(d=>u.jsxs("span",{className:"ri-chip",children:[t(d),!r&&u.jsx("button",{className:"ri-chip-x",onClick:()=>i(d),title:"Remove",children:"×"})]},d)),!r&&c.length>0&&u.jsx("button",{className:"ri-chip-add",onClick:()=>a(d=>!d),children:"+ Add"}),n.size===0&&r&&u.jsx("span",{className:"ri-meta-value",children:"(none)"})]}),o&&!r&&u.jsx("div",{className:"ri-multiselect-popover",children:c.map(d=>u.jsx("button",{className:"ri-multiselect-option",onClick:()=>{i(d),a(!1)},children:t(d)},d))})]})}function TU({tools:e,onToggle:t,readOnly:n}){return u.jsx("div",{className:"ri-toolcheck",children:wU.map(i=>u.jsxs("fieldset",{className:"ri-toolcheck-group",children:[u.jsx("legend",{className:"ri-toolcheck-legend",children:i.label}),u.jsx("div",{className:"ri-toolcheck-items",children:i.tools.map(r=>u.jsxs("label",{className:"ri-toolcheck-item",children:[u.jsx("input",{type:"checkbox",checked:e.has(r),onChange:()=>t(r),disabled:n}),u.jsx("span",{className:"ri-toolcheck-name",children:r.replace(i.prefix,"")||r})]},r))})]},i.prefix))})}function xo(e,t){return typeof e=="function"?e(t):e}function hr(e,t){return n=>{t.setState(i=>({...i,[e]:xo(n,i[e])}))}}function Qm(e){return e instanceof Function}function RU(e){return Array.isArray(e)&&e.every(t=>typeof t=="number")}function AU(e,t){const n=[],i=r=>{r.forEach(o=>{n.push(o);const a=t(o);a!=null&&a.length&&i(a)})};return i(e),n}function xt(e,t,n){let i=[],r;return o=>{let a;n.key&&n.debug&&(a=Date.now());const c=e(o);if(!(c.length!==i.length||c.some((h,p)=>i[p]!==h)))return r;i=c;let m;if(n.key&&n.debug&&(m=Date.now()),r=t(...c),n==null||n.onChange==null||n.onChange(r),n.key&&n.debug&&n!=null&&n.debug()){const h=Math.round((Date.now()-a)*100)/100,p=Math.round((Date.now()-m)*100)/100,g=p/16,x=(v,b)=>{for(v=String(v);v.length{var r;return(r=e?.debugAll)!=null?r:e[t]},key:!1,onChange:i}}function MU(e,t,n,i){const r=()=>{var a;return(a=o.getValue())!=null?a:e.options.renderFallbackValue},o={id:`${t.id}_${n.id}`,row:t,column:n,getValue:()=>t.getValue(i),renderValue:r,getContext:xt(()=>[e,n,t,o],(a,c,d,m)=>({table:a,column:c,row:d,cell:m,getValue:m.getValue,renderValue:m.renderValue}),vt(e.options,"debugCells"))};return e._features.forEach(a=>{a.createCell==null||a.createCell(o,n,t,e)},{}),o}function DU(e,t,n,i){var r,o;const c={...e._getDefaultColumnDef(),...t},d=c.accessorKey;let m=(r=(o=c.id)!=null?o:d?typeof String.prototype.replaceAll=="function"?d.replaceAll(".","_"):d.replace(/\./g,"_"):void 0)!=null?r:typeof c.header=="string"?c.header:void 0,h;if(c.accessorFn?h=c.accessorFn:d&&(d.includes(".")?h=g=>{let x=g;for(const b of d.split(".")){var v;x=(v=x)==null?void 0:v[b]}return x}:h=g=>g[c.accessorKey]),!m)throw new Error;let p={id:`${String(m)}`,accessorFn:h,parent:i,depth:n,columnDef:c,columns:[],getFlatColumns:xt(()=>[!0],()=>{var g;return[p,...(g=p.columns)==null?void 0:g.flatMap(x=>x.getFlatColumns())]},vt(e.options,"debugColumns")),getLeafColumns:xt(()=>[e._getOrderColumnsFn()],g=>{var x;if((x=p.columns)!=null&&x.length){let v=p.columns.flatMap(b=>b.getLeafColumns());return g(v)}return[p]},vt(e.options,"debugColumns"))};for(const g of e._features)g.createColumn==null||g.createColumn(p,e);return p}const Di="debugHeaders";function HC(e,t,n){var i;let o={id:(i=n.id)!=null?i:t.id,column:t,index:n.index,isPlaceholder:!!n.isPlaceholder,placeholderId:n.placeholderId,depth:n.depth,subHeaders:[],colSpan:0,rowSpan:0,headerGroup:null,getLeafHeaders:()=>{const a=[],c=d=>{d.subHeaders&&d.subHeaders.length&&d.subHeaders.map(c),a.push(d)};return c(o),a},getContext:()=>({table:e,header:o,column:t})};return e._features.forEach(a=>{a.createHeader==null||a.createHeader(o,e)}),o}const OU={createTable:e=>{e.getHeaderGroups=xt(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,i,r)=>{var o,a;const c=(o=i?.map(p=>n.find(g=>g.id===p)).filter(Boolean))!=null?o:[],d=(a=r?.map(p=>n.find(g=>g.id===p)).filter(Boolean))!=null?a:[],m=n.filter(p=>!(i!=null&&i.includes(p.id))&&!(r!=null&&r.includes(p.id)));return xf(t,[...c,...m,...d],e)},vt(e.options,Di)),e.getCenterHeaderGroups=xt(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,i,r)=>(n=n.filter(o=>!(i!=null&&i.includes(o.id))&&!(r!=null&&r.includes(o.id))),xf(t,n,e,"center")),vt(e.options,Di)),e.getLeftHeaderGroups=xt(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left],(t,n,i)=>{var r;const o=(r=i?.map(a=>n.find(c=>c.id===a)).filter(Boolean))!=null?r:[];return xf(t,o,e,"left")},vt(e.options,Di)),e.getRightHeaderGroups=xt(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.right],(t,n,i)=>{var r;const o=(r=i?.map(a=>n.find(c=>c.id===a)).filter(Boolean))!=null?r:[];return xf(t,o,e,"right")},vt(e.options,Di)),e.getFooterGroups=xt(()=>[e.getHeaderGroups()],t=>[...t].reverse(),vt(e.options,Di)),e.getLeftFooterGroups=xt(()=>[e.getLeftHeaderGroups()],t=>[...t].reverse(),vt(e.options,Di)),e.getCenterFooterGroups=xt(()=>[e.getCenterHeaderGroups()],t=>[...t].reverse(),vt(e.options,Di)),e.getRightFooterGroups=xt(()=>[e.getRightHeaderGroups()],t=>[...t].reverse(),vt(e.options,Di)),e.getFlatHeaders=xt(()=>[e.getHeaderGroups()],t=>t.map(n=>n.headers).flat(),vt(e.options,Di)),e.getLeftFlatHeaders=xt(()=>[e.getLeftHeaderGroups()],t=>t.map(n=>n.headers).flat(),vt(e.options,Di)),e.getCenterFlatHeaders=xt(()=>[e.getCenterHeaderGroups()],t=>t.map(n=>n.headers).flat(),vt(e.options,Di)),e.getRightFlatHeaders=xt(()=>[e.getRightHeaderGroups()],t=>t.map(n=>n.headers).flat(),vt(e.options,Di)),e.getCenterLeafHeaders=xt(()=>[e.getCenterFlatHeaders()],t=>t.filter(n=>{var i;return!((i=n.subHeaders)!=null&&i.length)}),vt(e.options,Di)),e.getLeftLeafHeaders=xt(()=>[e.getLeftFlatHeaders()],t=>t.filter(n=>{var i;return!((i=n.subHeaders)!=null&&i.length)}),vt(e.options,Di)),e.getRightLeafHeaders=xt(()=>[e.getRightFlatHeaders()],t=>t.filter(n=>{var i;return!((i=n.subHeaders)!=null&&i.length)}),vt(e.options,Di)),e.getLeafHeaders=xt(()=>[e.getLeftHeaderGroups(),e.getCenterHeaderGroups(),e.getRightHeaderGroups()],(t,n,i)=>{var r,o,a,c,d,m;return[...(r=(o=t[0])==null?void 0:o.headers)!=null?r:[],...(a=(c=n[0])==null?void 0:c.headers)!=null?a:[],...(d=(m=i[0])==null?void 0:m.headers)!=null?d:[]].map(h=>h.getLeafHeaders()).flat()},vt(e.options,Di))}};function xf(e,t,n,i){var r,o;let a=0;const c=function(g,x){x===void 0&&(x=1),a=Math.max(a,x),g.filter(v=>v.getIsVisible()).forEach(v=>{var b;(b=v.columns)!=null&&b.length&&c(v.columns,x+1)},0)};c(e);let d=[];const m=(g,x)=>{const v={depth:x,id:[i,`${x}`].filter(Boolean).join("_"),headers:[]},b=[];g.forEach(w=>{const k=[...b].reverse()[0],S=w.column.depth===v.depth;let j,N=!1;if(S&&w.column.parent?j=w.column.parent:(j=w.column,N=!0),k&&k?.column===j)k.subHeaders.push(w);else{const L=HC(n,j,{id:[i,x,j.id,w?.id].filter(Boolean).join("_"),isPlaceholder:N,placeholderId:N?`${b.filter(A=>A.column===j).length}`:void 0,depth:x,index:b.length});L.subHeaders.push(w),b.push(L)}v.headers.push(w),w.headerGroup=v}),d.push(v),x>0&&m(b,x-1)},h=t.map((g,x)=>HC(n,g,{depth:a,index:x}));m(h,a-1),d.reverse();const p=g=>g.filter(v=>v.column.getIsVisible()).map(v=>{let b=0,w=0,k=[0];v.subHeaders&&v.subHeaders.length?(k=[],p(v.subHeaders).forEach(j=>{let{colSpan:N,rowSpan:L}=j;b+=N,k.push(L)})):b=1;const S=Math.min(...k);return w=w+S,v.colSpan=b,v.rowSpan=w,{colSpan:b,rowSpan:w}});return p((r=(o=d[0])==null?void 0:o.headers)!=null?r:[]),d}const LU=(e,t,n,i,r,o,a)=>{let c={id:t,index:i,original:n,depth:r,parentId:a,_valuesCache:{},_uniqueValuesCache:{},getValue:d=>{if(c._valuesCache.hasOwnProperty(d))return c._valuesCache[d];const m=e.getColumn(d);if(m!=null&&m.accessorFn)return c._valuesCache[d]=m.accessorFn(c.original,i),c._valuesCache[d]},getUniqueValues:d=>{if(c._uniqueValuesCache.hasOwnProperty(d))return c._uniqueValuesCache[d];const m=e.getColumn(d);if(m!=null&&m.accessorFn)return m.columnDef.getUniqueValues?(c._uniqueValuesCache[d]=m.columnDef.getUniqueValues(c.original,i),c._uniqueValuesCache[d]):(c._uniqueValuesCache[d]=[c.getValue(d)],c._uniqueValuesCache[d])},renderValue:d=>{var m;return(m=c.getValue(d))!=null?m:e.options.renderFallbackValue},subRows:[],getLeafRows:()=>AU(c.subRows,d=>d.subRows),getParentRow:()=>c.parentId?e.getRow(c.parentId,!0):void 0,getParentRows:()=>{let d=[],m=c;for(;;){const h=m.getParentRow();if(!h)break;d.push(h),m=h}return d.reverse()},getAllCells:xt(()=>[e.getAllLeafColumns()],d=>d.map(m=>MU(e,c,m,m.id)),vt(e.options,"debugRows")),_getAllCellsByColumnId:xt(()=>[c.getAllCells()],d=>d.reduce((m,h)=>(m[h.column.id]=h,m),{}),vt(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()}}},lT=(e,t,n)=>{var i,r;const o=n==null||(i=n.toString())==null?void 0:i.toLowerCase();return!!(!((r=e.getValue(t))==null||(r=r.toString())==null||(r=r.toLowerCase())==null)&&r.includes(o))};lT.autoRemove=e=>Hr(e);const cT=(e,t,n)=>{var i;return!!(!((i=e.getValue(t))==null||(i=i.toString())==null)&&i.includes(n))};cT.autoRemove=e=>Hr(e);const uT=(e,t,n)=>{var i;return((i=e.getValue(t))==null||(i=i.toString())==null?void 0:i.toLowerCase())===n?.toLowerCase()};uT.autoRemove=e=>Hr(e);const dT=(e,t,n)=>{var i;return(i=e.getValue(t))==null?void 0:i.includes(n)};dT.autoRemove=e=>Hr(e);const fT=(e,t,n)=>!n.some(i=>{var r;return!((r=e.getValue(t))!=null&&r.includes(i))});fT.autoRemove=e=>Hr(e)||!(e!=null&&e.length);const mT=(e,t,n)=>n.some(i=>{var r;return(r=e.getValue(t))==null?void 0:r.includes(i)});mT.autoRemove=e=>Hr(e)||!(e!=null&&e.length);const pT=(e,t,n)=>e.getValue(t)===n;pT.autoRemove=e=>Hr(e);const hT=(e,t,n)=>e.getValue(t)==n;hT.autoRemove=e=>Hr(e);const P0=(e,t,n)=>{let[i,r]=n;const o=e.getValue(t);return o>=i&&o<=r};P0.resolveFilterValue=e=>{let[t,n]=e,i=typeof t!="number"?parseFloat(t):t,r=typeof n!="number"?parseFloat(n):n,o=t===null||Number.isNaN(i)?-1/0:i,a=n===null||Number.isNaN(r)?1/0:r;if(o>a){const c=o;o=a,a=c}return[o,a]};P0.autoRemove=e=>Hr(e)||Hr(e[0])&&Hr(e[1]);const Is={includesString:lT,includesStringSensitive:cT,equalsString:uT,arrIncludes:dT,arrIncludesAll:fT,arrIncludesSome:mT,equals:pT,weakEquals:hT,inNumberRange:P0};function Hr(e){return e==null||e===""}const PU={getDefaultColumnDef:()=>({filterFn:"auto"}),getInitialState:e=>({columnFilters:[],...e}),getDefaultOptions:e=>({onColumnFiltersChange:hr("columnFilters",e),filterFromLeafRows:!1,maxLeafRowFilterDepth:100}),createColumn:(e,t)=>{e.getAutoFilterFn=()=>{const n=t.getCoreRowModel().flatRows[0],i=n?.getValue(e.id);return typeof i=="string"?Is.includesString:typeof i=="number"?Is.inNumberRange:typeof i=="boolean"||i!==null&&typeof i=="object"?Is.equals:Array.isArray(i)?Is.arrIncludes:Is.weakEquals},e.getFilterFn=()=>{var n,i;return Qm(e.columnDef.filterFn)?e.columnDef.filterFn:e.columnDef.filterFn==="auto"?e.getAutoFilterFn():(n=(i=t.options.filterFns)==null?void 0:i[e.columnDef.filterFn])!=null?n:Is[e.columnDef.filterFn]},e.getCanFilter=()=>{var n,i,r;return((n=e.columnDef.enableColumnFilter)!=null?n:!0)&&((i=t.options.enableColumnFilters)!=null?i:!0)&&((r=t.options.enableFilters)!=null?r:!0)&&!!e.accessorFn},e.getIsFiltered=()=>e.getFilterIndex()>-1,e.getFilterValue=()=>{var n;return(n=t.getState().columnFilters)==null||(n=n.find(i=>i.id===e.id))==null?void 0:n.value},e.getFilterIndex=()=>{var n,i;return(n=(i=t.getState().columnFilters)==null?void 0:i.findIndex(r=>r.id===e.id))!=null?n:-1},e.setFilterValue=n=>{t.setColumnFilters(i=>{const r=e.getFilterFn(),o=i?.find(h=>h.id===e.id),a=xo(n,o?o.value:void 0);if(FC(r,a,e)){var c;return(c=i?.filter(h=>h.id!==e.id))!=null?c:[]}const d={id:e.id,value:a};if(o){var m;return(m=i?.map(h=>h.id===e.id?d:h))!=null?m:[]}return i!=null&&i.length?[...i,d]:[d]})}},createRow:(e,t)=>{e.columnFilters={},e.columnFiltersMeta={}},createTable:e=>{e.setColumnFilters=t=>{const n=e.getAllLeafColumns(),i=r=>{var o;return(o=xo(t,r))==null?void 0:o.filter(a=>{const c=n.find(d=>d.id===a.id);if(c){const d=c.getFilterFn();if(FC(d,a.value,c))return!1}return!0})};e.options.onColumnFiltersChange==null||e.options.onColumnFiltersChange(i)},e.resetColumnFilters=t=>{var n,i;e.setColumnFilters(t?[]:(n=(i=e.initialState)==null?void 0:i.columnFilters)!=null?n:[])},e.getPreFilteredRowModel=()=>e.getCoreRowModel(),e.getFilteredRowModel=()=>(!e._getFilteredRowModel&&e.options.getFilteredRowModel&&(e._getFilteredRowModel=e.options.getFilteredRowModel(e)),e.options.manualFiltering||!e._getFilteredRowModel?e.getPreFilteredRowModel():e._getFilteredRowModel())}};function FC(e,t,n){return(e&&e.autoRemove?e.autoRemove(t,n):!1)||typeof t>"u"||typeof t=="string"&&!t}const BU=(e,t,n)=>n.reduce((i,r)=>{const o=r.getValue(e);return i+(typeof o=="number"?o:0)},0),$U=(e,t,n)=>{let i;return n.forEach(r=>{const o=r.getValue(e);o!=null&&(i>o||i===void 0&&o>=o)&&(i=o)}),i},HU=(e,t,n)=>{let i;return n.forEach(r=>{const o=r.getValue(e);o!=null&&(i=o)&&(i=o)}),i},FU=(e,t,n)=>{let i,r;return n.forEach(o=>{const a=o.getValue(e);a!=null&&(i===void 0?a>=a&&(i=r=a):(i>a&&(i=a),r{let n=0,i=0;if(t.forEach(r=>{let o=r.getValue(e);o!=null&&(o=+o)>=o&&(++n,i+=o)}),n)return i/n},UU=(e,t)=>{if(!t.length)return;const n=t.map(o=>o.getValue(e));if(!RU(n))return;if(n.length===1)return n[0];const i=Math.floor(n.length/2),r=n.sort((o,a)=>o-a);return n.length%2!==0?r[i]:(r[i-1]+r[i])/2},GU=(e,t)=>Array.from(new Set(t.map(n=>n.getValue(e))).values()),qU=(e,t)=>new Set(t.map(n=>n.getValue(e))).size,WU=(e,t)=>t.length,wy={sum:BU,min:$U,max:HU,extent:FU,mean:VU,median:UU,unique:GU,uniqueCount:qU,count:WU},YU={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:hr("grouping",e),groupedColumnMode:"reorder"}),createColumn:(e,t)=>{e.toggleGrouping=()=>{t.setGrouping(n=>n!=null&&n.includes(e.id)?n.filter(i=>i!==e.id):[...n??[],e.id])},e.getCanGroup=()=>{var n,i;return((n=e.columnDef.enableGrouping)!=null?n:!0)&&((i=t.options.enableGrouping)!=null?i:!0)&&(!!e.accessorFn||!!e.columnDef.getGroupingValue)},e.getIsGrouped=()=>{var n;return(n=t.getState().grouping)==null?void 0:n.includes(e.id)},e.getGroupedIndex=()=>{var n;return(n=t.getState().grouping)==null?void 0:n.indexOf(e.id)},e.getToggleGroupingHandler=()=>{const n=e.getCanGroup();return()=>{n&&e.toggleGrouping()}},e.getAutoAggregationFn=()=>{const n=t.getCoreRowModel().flatRows[0],i=n?.getValue(e.id);if(typeof i=="number")return wy.sum;if(Object.prototype.toString.call(i)==="[object Date]")return wy.extent},e.getAggregationFn=()=>{var n,i;if(!e)throw new Error;return Qm(e.columnDef.aggregationFn)?e.columnDef.aggregationFn:e.columnDef.aggregationFn==="auto"?e.getAutoAggregationFn():(n=(i=t.options.aggregationFns)==null?void 0:i[e.columnDef.aggregationFn])!=null?n:wy[e.columnDef.aggregationFn]}},createTable:e=>{e.setGrouping=t=>e.options.onGroupingChange==null?void 0:e.options.onGroupingChange(t),e.resetGrouping=t=>{var n,i;e.setGrouping(t?[]:(n=(i=e.initialState)==null?void 0:i.grouping)!=null?n:[])},e.getPreGroupedRowModel=()=>e.getFilteredRowModel(),e.getGroupedRowModel=()=>(!e._getGroupedRowModel&&e.options.getGroupedRowModel&&(e._getGroupedRowModel=e.options.getGroupedRowModel(e)),e.options.manualGrouping||!e._getGroupedRowModel?e.getPreGroupedRowModel():e._getGroupedRowModel())},createRow:(e,t)=>{e.getIsGrouped=()=>!!e.groupingColumnId,e.getGroupingValue=n=>{if(e._groupingValuesCache.hasOwnProperty(n))return e._groupingValuesCache[n];const i=t.getColumn(n);return i!=null&&i.columnDef.getGroupingValue?(e._groupingValuesCache[n]=i.columnDef.getGroupingValue(e.original),e._groupingValuesCache[n]):e.getValue(n)},e._groupingValuesCache={}},createCell:(e,t,n,i)=>{e.getIsGrouped=()=>t.getIsGrouped()&&t.id===n.groupingColumnId,e.getIsPlaceholder=()=>!e.getIsGrouped()&&t.getIsGrouped(),e.getIsAggregated=()=>{var r;return!e.getIsGrouped()&&!e.getIsPlaceholder()&&!!((r=n.subRows)!=null&&r.length)}}};function XU(e,t,n){if(!(t!=null&&t.length)||!n)return e;const i=e.filter(o=>!t.includes(o.id));return n==="remove"?i:[...t.map(o=>e.find(a=>a.id===o)).filter(Boolean),...i]}const KU={getInitialState:e=>({columnOrder:[],...e}),getDefaultOptions:e=>({onColumnOrderChange:hr("columnOrder",e)}),createColumn:(e,t)=>{e.getIndex=xt(n=>[pu(t,n)],n=>n.findIndex(i=>i.id===e.id),vt(t.options,"debugColumns")),e.getIsFirstColumn=n=>{var i;return((i=pu(t,n)[0])==null?void 0:i.id)===e.id},e.getIsLastColumn=n=>{var i;const r=pu(t,n);return((i=r[r.length-1])==null?void 0:i.id)===e.id}},createTable:e=>{e.setColumnOrder=t=>e.options.onColumnOrderChange==null?void 0:e.options.onColumnOrderChange(t),e.resetColumnOrder=t=>{var n;e.setColumnOrder(t?[]:(n=e.initialState.columnOrder)!=null?n:[])},e._getOrderColumnsFn=xt(()=>[e.getState().columnOrder,e.getState().grouping,e.options.groupedColumnMode],(t,n,i)=>r=>{let o=[];if(!(t!=null&&t.length))o=r;else{const a=[...t],c=[...r];for(;c.length&&a.length;){const d=a.shift(),m=c.findIndex(h=>h.id===d);m>-1&&o.push(c.splice(m,1)[0])}o=[...o,...c]}return XU(o,n,i)},vt(e.options,"debugTable"))}},Cy=()=>({left:[],right:[]}),ZU={getInitialState:e=>({columnPinning:Cy(),...e}),getDefaultOptions:e=>({onColumnPinningChange:hr("columnPinning",e)}),createColumn:(e,t)=>{e.pin=n=>{const i=e.getLeafColumns().map(r=>r.id).filter(Boolean);t.setColumnPinning(r=>{var o,a;if(n==="right"){var c,d;return{left:((c=r?.left)!=null?c:[]).filter(p=>!(i!=null&&i.includes(p))),right:[...((d=r?.right)!=null?d:[]).filter(p=>!(i!=null&&i.includes(p))),...i]}}if(n==="left"){var m,h;return{left:[...((m=r?.left)!=null?m:[]).filter(p=>!(i!=null&&i.includes(p))),...i],right:((h=r?.right)!=null?h:[]).filter(p=>!(i!=null&&i.includes(p)))}}return{left:((o=r?.left)!=null?o:[]).filter(p=>!(i!=null&&i.includes(p))),right:((a=r?.right)!=null?a:[]).filter(p=>!(i!=null&&i.includes(p)))}})},e.getCanPin=()=>e.getLeafColumns().some(i=>{var r,o,a;return((r=i.columnDef.enablePinning)!=null?r:!0)&&((o=(a=t.options.enableColumnPinning)!=null?a:t.options.enablePinning)!=null?o:!0)}),e.getIsPinned=()=>{const n=e.getLeafColumns().map(c=>c.id),{left:i,right:r}=t.getState().columnPinning,o=n.some(c=>i?.includes(c)),a=n.some(c=>r?.includes(c));return o?"left":a?"right":!1},e.getPinnedIndex=()=>{var n,i;const r=e.getIsPinned();return r?(n=(i=t.getState().columnPinning)==null||(i=i[r])==null?void 0:i.indexOf(e.id))!=null?n:-1:0}},createRow:(e,t)=>{e.getCenterVisibleCells=xt(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,t.getState().columnPinning.right],(n,i,r)=>{const o=[...i??[],...r??[]];return n.filter(a=>!o.includes(a.column.id))},vt(t.options,"debugRows")),e.getLeftVisibleCells=xt(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left],(n,i)=>(i??[]).map(o=>n.find(a=>a.column.id===o)).filter(Boolean).map(o=>({...o,position:"left"})),vt(t.options,"debugRows")),e.getRightVisibleCells=xt(()=>[e._getAllVisibleCells(),t.getState().columnPinning.right],(n,i)=>(i??[]).map(o=>n.find(a=>a.column.id===o)).filter(Boolean).map(o=>({...o,position:"right"})),vt(t.options,"debugRows"))},createTable:e=>{e.setColumnPinning=t=>e.options.onColumnPinningChange==null?void 0:e.options.onColumnPinningChange(t),e.resetColumnPinning=t=>{var n,i;return e.setColumnPinning(t?Cy():(n=(i=e.initialState)==null?void 0:i.columnPinning)!=null?n:Cy())},e.getIsSomeColumnsPinned=t=>{var n;const i=e.getState().columnPinning;if(!t){var r,o;return!!((r=i.left)!=null&&r.length||(o=i.right)!=null&&o.length)}return!!((n=i[t])!=null&&n.length)},e.getLeftLeafColumns=xt(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left],(t,n)=>(n??[]).map(i=>t.find(r=>r.id===i)).filter(Boolean),vt(e.options,"debugColumns")),e.getRightLeafColumns=xt(()=>[e.getAllLeafColumns(),e.getState().columnPinning.right],(t,n)=>(n??[]).map(i=>t.find(r=>r.id===i)).filter(Boolean),vt(e.options,"debugColumns")),e.getCenterLeafColumns=xt(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,i)=>{const r=[...n??[],...i??[]];return t.filter(o=>!r.includes(o.id))},vt(e.options,"debugColumns"))}};function QU(e){return e||(typeof document<"u"?document:null)}const vf={size:150,minSize:20,maxSize:Number.MAX_SAFE_INTEGER},jy=()=>({startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}),JU={getDefaultColumnDef:()=>vf,getInitialState:e=>({columnSizing:{},columnSizingInfo:jy(),...e}),getDefaultOptions:e=>({columnResizeMode:"onEnd",columnResizeDirection:"ltr",onColumnSizingChange:hr("columnSizing",e),onColumnSizingInfoChange:hr("columnSizingInfo",e)}),createColumn:(e,t)=>{e.getSize=()=>{var n,i,r;const o=t.getState().columnSizing[e.id];return Math.min(Math.max((n=e.columnDef.minSize)!=null?n:vf.minSize,(i=o??e.columnDef.size)!=null?i:vf.size),(r=e.columnDef.maxSize)!=null?r:vf.maxSize)},e.getStart=xt(n=>[n,pu(t,n),t.getState().columnSizing],(n,i)=>i.slice(0,e.getIndex(n)).reduce((r,o)=>r+o.getSize(),0),vt(t.options,"debugColumns")),e.getAfter=xt(n=>[n,pu(t,n),t.getState().columnSizing],(n,i)=>i.slice(e.getIndex(n)+1).reduce((r,o)=>r+o.getSize(),0),vt(t.options,"debugColumns")),e.resetSize=()=>{t.setColumnSizing(n=>{let{[e.id]:i,...r}=n;return r})},e.getCanResize=()=>{var n,i;return((n=e.columnDef.enableResizing)!=null?n:!0)&&((i=t.options.enableColumnResizing)!=null?i:!0)},e.getIsResizing=()=>t.getState().columnSizingInfo.isResizingColumn===e.id},createHeader:(e,t)=>{e.getSize=()=>{let n=0;const i=r=>{if(r.subHeaders.length)r.subHeaders.forEach(i);else{var o;n+=(o=r.column.getSize())!=null?o:0}};return i(e),n},e.getStart=()=>{if(e.index>0){const n=e.headerGroup.headers[e.index-1];return n.getStart()+n.getSize()}return 0},e.getResizeHandler=n=>{const i=t.getColumn(e.column.id),r=i?.getCanResize();return o=>{if(!i||!r||(o.persist==null||o.persist(),Ey(o)&&o.touches&&o.touches.length>1))return;const a=e.getSize(),c=e?e.getLeafHeaders().map(k=>[k.column.id,k.column.getSize()]):[[i.id,i.getSize()]],d=Ey(o)?Math.round(o.touches[0].clientX):o.clientX,m={},h=(k,S)=>{typeof S=="number"&&(t.setColumnSizingInfo(j=>{var N,L;const A=t.options.columnResizeDirection==="rtl"?-1:1,D=(S-((N=j?.startOffset)!=null?N:0))*A,O=Math.max(D/((L=j?.startSize)!=null?L:0),-.999999);return j.columnSizingStart.forEach(T=>{let[M,I]=T;m[M]=Math.round(Math.max(I+I*O,0)*100)/100}),{...j,deltaOffset:D,deltaPercentage:O}}),(t.options.columnResizeMode==="onChange"||k==="end")&&t.setColumnSizing(j=>({...j,...m})))},p=k=>h("move",k),g=k=>{h("end",k),t.setColumnSizingInfo(S=>({...S,isResizingColumn:!1,startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,columnSizingStart:[]}))},x=QU(n),v={moveHandler:k=>p(k.clientX),upHandler:k=>{x?.removeEventListener("mousemove",v.moveHandler),x?.removeEventListener("mouseup",v.upHandler),g(k.clientX)}},b={moveHandler:k=>(k.cancelable&&(k.preventDefault(),k.stopPropagation()),p(k.touches[0].clientX),!1),upHandler:k=>{var S;x?.removeEventListener("touchmove",b.moveHandler),x?.removeEventListener("touchend",b.upHandler),k.cancelable&&(k.preventDefault(),k.stopPropagation()),g((S=k.touches[0])==null?void 0:S.clientX)}},w=eG()?{passive:!1}:!1;Ey(o)?(x?.addEventListener("touchmove",b.moveHandler,w),x?.addEventListener("touchend",b.upHandler,w)):(x?.addEventListener("mousemove",v.moveHandler,w),x?.addEventListener("mouseup",v.upHandler,w)),t.setColumnSizingInfo(k=>({...k,startOffset:d,startSize:a,deltaOffset:0,deltaPercentage:0,columnSizingStart:c,isResizingColumn:i.id}))}}},createTable:e=>{e.setColumnSizing=t=>e.options.onColumnSizingChange==null?void 0:e.options.onColumnSizingChange(t),e.setColumnSizingInfo=t=>e.options.onColumnSizingInfoChange==null?void 0:e.options.onColumnSizingInfoChange(t),e.resetColumnSizing=t=>{var n;e.setColumnSizing(t?{}:(n=e.initialState.columnSizing)!=null?n:{})},e.resetHeaderSizeInfo=t=>{var n;e.setColumnSizingInfo(t?jy():(n=e.initialState.columnSizingInfo)!=null?n:jy())},e.getTotalSize=()=>{var t,n;return(t=(n=e.getHeaderGroups()[0])==null?void 0:n.headers.reduce((i,r)=>i+r.getSize(),0))!=null?t:0},e.getLeftTotalSize=()=>{var t,n;return(t=(n=e.getLeftHeaderGroups()[0])==null?void 0:n.headers.reduce((i,r)=>i+r.getSize(),0))!=null?t:0},e.getCenterTotalSize=()=>{var t,n;return(t=(n=e.getCenterHeaderGroups()[0])==null?void 0:n.headers.reduce((i,r)=>i+r.getSize(),0))!=null?t:0},e.getRightTotalSize=()=>{var t,n;return(t=(n=e.getRightHeaderGroups()[0])==null?void 0:n.headers.reduce((i,r)=>i+r.getSize(),0))!=null?t:0}}};let bf=null;function eG(){if(typeof bf=="boolean")return bf;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 bf=e,bf}function Ey(e){return e.type==="touchstart"}const tG={getInitialState:e=>({columnVisibility:{},...e}),getDefaultOptions:e=>({onColumnVisibilityChange:hr("columnVisibility",e)}),createColumn:(e,t)=>{e.toggleVisibility=n=>{e.getCanHide()&&t.setColumnVisibility(i=>({...i,[e.id]:n??!e.getIsVisible()}))},e.getIsVisible=()=>{var n,i;const r=e.columns;return(n=r.length?r.some(o=>o.getIsVisible()):(i=t.getState().columnVisibility)==null?void 0:i[e.id])!=null?n:!0},e.getCanHide=()=>{var n,i;return((n=e.columnDef.enableHiding)!=null?n:!0)&&((i=t.options.enableHiding)!=null?i:!0)},e.getToggleVisibilityHandler=()=>n=>{e.toggleVisibility==null||e.toggleVisibility(n.target.checked)}},createRow:(e,t)=>{e._getAllVisibleCells=xt(()=>[e.getAllCells(),t.getState().columnVisibility],n=>n.filter(i=>i.column.getIsVisible()),vt(t.options,"debugRows")),e.getVisibleCells=xt(()=>[e.getLeftVisibleCells(),e.getCenterVisibleCells(),e.getRightVisibleCells()],(n,i,r)=>[...n,...i,...r],vt(t.options,"debugRows"))},createTable:e=>{const t=(n,i)=>xt(()=>[i(),i().filter(r=>r.getIsVisible()).map(r=>r.id).join("_")],r=>r.filter(o=>o.getIsVisible==null?void 0:o.getIsVisible()),vt(e.options,"debugColumns"));e.getVisibleFlatColumns=t("getVisibleFlatColumns",()=>e.getAllFlatColumns()),e.getVisibleLeafColumns=t("getVisibleLeafColumns",()=>e.getAllLeafColumns()),e.getLeftVisibleLeafColumns=t("getLeftVisibleLeafColumns",()=>e.getLeftLeafColumns()),e.getRightVisibleLeafColumns=t("getRightVisibleLeafColumns",()=>e.getRightLeafColumns()),e.getCenterVisibleLeafColumns=t("getCenterVisibleLeafColumns",()=>e.getCenterLeafColumns()),e.setColumnVisibility=n=>e.options.onColumnVisibilityChange==null?void 0:e.options.onColumnVisibilityChange(n),e.resetColumnVisibility=n=>{var i;e.setColumnVisibility(n?{}:(i=e.initialState.columnVisibility)!=null?i:{})},e.toggleAllColumnsVisible=n=>{var i;n=(i=n)!=null?i:!e.getIsAllColumnsVisible(),e.setColumnVisibility(e.getAllLeafColumns().reduce((r,o)=>({...r,[o.id]:n||!(o.getCanHide!=null&&o.getCanHide())}),{}))},e.getIsAllColumnsVisible=()=>!e.getAllLeafColumns().some(n=>!(n.getIsVisible!=null&&n.getIsVisible())),e.getIsSomeColumnsVisible=()=>e.getAllLeafColumns().some(n=>n.getIsVisible==null?void 0:n.getIsVisible()),e.getToggleAllColumnsVisibilityHandler=()=>n=>{var i;e.toggleAllColumnsVisible((i=n.target)==null?void 0:i.checked)}}};function pu(e,t){return t?t==="center"?e.getCenterVisibleLeafColumns():t==="left"?e.getLeftVisibleLeafColumns():e.getRightVisibleLeafColumns():e.getVisibleLeafColumns()}const nG={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()}}},iG={getInitialState:e=>({globalFilter:void 0,...e}),getDefaultOptions:e=>({onGlobalFilterChange:hr("globalFilter",e),globalFilterFn:"auto",getColumnCanGlobalFilter:t=>{var n;const i=(n=e.getCoreRowModel().flatRows[0])==null||(n=n._getAllCellsByColumnId()[t.id])==null?void 0:n.getValue();return typeof i=="string"||typeof i=="number"}}),createColumn:(e,t)=>{e.getCanGlobalFilter=()=>{var n,i,r,o;return((n=e.columnDef.enableGlobalFilter)!=null?n:!0)&&((i=t.options.enableGlobalFilter)!=null?i:!0)&&((r=t.options.enableFilters)!=null?r:!0)&&((o=t.options.getColumnCanGlobalFilter==null?void 0:t.options.getColumnCanGlobalFilter(e))!=null?o:!0)&&!!e.accessorFn}},createTable:e=>{e.getGlobalAutoFilterFn=()=>Is.includesString,e.getGlobalFilterFn=()=>{var t,n;const{globalFilterFn:i}=e.options;return Qm(i)?i:i==="auto"?e.getGlobalAutoFilterFn():(t=(n=e.options.filterFns)==null?void 0:n[i])!=null?t:Is[i]},e.setGlobalFilter=t=>{e.options.onGlobalFilterChange==null||e.options.onGlobalFilterChange(t)},e.resetGlobalFilter=t=>{e.setGlobalFilter(t?void 0:e.initialState.globalFilter)}}},rG={getInitialState:e=>({expanded:{},...e}),getDefaultOptions:e=>({onExpandedChange:hr("expanded",e),paginateExpandedRows:!0}),createTable:e=>{let t=!1,n=!1;e._autoResetExpanded=()=>{var i,r;if(!t){e._queue(()=>{t=!0});return}if((i=(r=e.options.autoResetAll)!=null?r:e.options.autoResetExpanded)!=null?i:!e.options.manualExpanding){if(n)return;n=!0,e._queue(()=>{e.resetExpanded(),n=!1})}},e.setExpanded=i=>e.options.onExpandedChange==null?void 0:e.options.onExpandedChange(i),e.toggleAllRowsExpanded=i=>{i??!e.getIsAllRowsExpanded()?e.setExpanded(!0):e.setExpanded({})},e.resetExpanded=i=>{var r,o;e.setExpanded(i?{}:(r=(o=e.initialState)==null?void 0:o.expanded)!=null?r:{})},e.getCanSomeRowsExpand=()=>e.getPrePaginationRowModel().flatRows.some(i=>i.getCanExpand()),e.getToggleAllRowsExpandedHandler=()=>i=>{i.persist==null||i.persist(),e.toggleAllRowsExpanded()},e.getIsSomeRowsExpanded=()=>{const i=e.getState().expanded;return i===!0||Object.values(i).some(Boolean)},e.getIsAllRowsExpanded=()=>{const i=e.getState().expanded;return typeof i=="boolean"?i===!0:!(!Object.keys(i).length||e.getRowModel().flatRows.some(r=>!r.getIsExpanded()))},e.getExpandedDepth=()=>{let i=0;return(e.getState().expanded===!0?Object.keys(e.getRowModel().rowsById):Object.keys(e.getState().expanded)).forEach(o=>{const a=o.split(".");i=Math.max(i,a.length)}),i},e.getPreExpandedRowModel=()=>e.getSortedRowModel(),e.getExpandedRowModel=()=>(!e._getExpandedRowModel&&e.options.getExpandedRowModel&&(e._getExpandedRowModel=e.options.getExpandedRowModel(e)),e.options.manualExpanding||!e._getExpandedRowModel?e.getPreExpandedRowModel():e._getExpandedRowModel())},createRow:(e,t)=>{e.toggleExpanded=n=>{t.setExpanded(i=>{var r;const o=i===!0?!0:!!(i!=null&&i[e.id]);let a={};if(i===!0?Object.keys(t.getRowModel().rowsById).forEach(c=>{a[c]=!0}):a=i,n=(r=n)!=null?r:!o,!o&&n)return{...a,[e.id]:!0};if(o&&!n){const{[e.id]:c,...d}=a;return d}return i})},e.getIsExpanded=()=>{var n;const i=t.getState().expanded;return!!((n=t.options.getIsRowExpanded==null?void 0:t.options.getIsRowExpanded(e))!=null?n:i===!0||i?.[e.id])},e.getCanExpand=()=>{var n,i,r;return(n=t.options.getRowCanExpand==null?void 0:t.options.getRowCanExpand(e))!=null?n:((i=t.options.enableExpanding)!=null?i:!0)&&!!((r=e.subRows)!=null&&r.length)},e.getIsAllParentsExpanded=()=>{let n=!0,i=e;for(;n&&i.parentId;)i=t.getRow(i.parentId,!0),n=i.getIsExpanded();return n},e.getToggleExpandedHandler=()=>{const n=e.getCanExpand();return()=>{n&&e.toggleExpanded()}}}},bv=0,_v=10,Ny=()=>({pageIndex:bv,pageSize:_v}),sG={getInitialState:e=>({...e,pagination:{...Ny(),...e?.pagination}}),getDefaultOptions:e=>({onPaginationChange:hr("pagination",e)}),createTable:e=>{let t=!1,n=!1;e._autoResetPageIndex=()=>{var i,r;if(!t){e._queue(()=>{t=!0});return}if((i=(r=e.options.autoResetAll)!=null?r:e.options.autoResetPageIndex)!=null?i:!e.options.manualPagination){if(n)return;n=!0,e._queue(()=>{e.resetPageIndex(),n=!1})}},e.setPagination=i=>{const r=o=>xo(i,o);return e.options.onPaginationChange==null?void 0:e.options.onPaginationChange(r)},e.resetPagination=i=>{var r;e.setPagination(i?Ny():(r=e.initialState.pagination)!=null?r:Ny())},e.setPageIndex=i=>{e.setPagination(r=>{let o=xo(i,r.pageIndex);const a=typeof e.options.pageCount>"u"||e.options.pageCount===-1?Number.MAX_SAFE_INTEGER:e.options.pageCount-1;return o=Math.max(0,Math.min(o,a)),{...r,pageIndex:o}})},e.resetPageIndex=i=>{var r,o;e.setPageIndex(i?bv:(r=(o=e.initialState)==null||(o=o.pagination)==null?void 0:o.pageIndex)!=null?r:bv)},e.resetPageSize=i=>{var r,o;e.setPageSize(i?_v:(r=(o=e.initialState)==null||(o=o.pagination)==null?void 0:o.pageSize)!=null?r:_v)},e.setPageSize=i=>{e.setPagination(r=>{const o=Math.max(1,xo(i,r.pageSize)),a=r.pageSize*r.pageIndex,c=Math.floor(a/o);return{...r,pageIndex:c,pageSize:o}})},e.setPageCount=i=>e.setPagination(r=>{var o;let a=xo(i,(o=e.options.pageCount)!=null?o:-1);return typeof a=="number"&&(a=Math.max(-1,a)),{...r,pageCount:a}}),e.getPageOptions=xt(()=>[e.getPageCount()],i=>{let r=[];return i&&i>0&&(r=[...new Array(i)].fill(null).map((o,a)=>a)),r},vt(e.options,"debugTable")),e.getCanPreviousPage=()=>e.getState().pagination.pageIndex>0,e.getCanNextPage=()=>{const{pageIndex:i}=e.getState().pagination,r=e.getPageCount();return r===-1?!0:r===0?!1:ie.setPageIndex(i=>i-1),e.nextPage=()=>e.setPageIndex(i=>i+1),e.firstPage=()=>e.setPageIndex(0),e.lastPage=()=>e.setPageIndex(e.getPageCount()-1),e.getPrePaginationRowModel=()=>e.getExpandedRowModel(),e.getPaginationRowModel=()=>(!e._getPaginationRowModel&&e.options.getPaginationRowModel&&(e._getPaginationRowModel=e.options.getPaginationRowModel(e)),e.options.manualPagination||!e._getPaginationRowModel?e.getPrePaginationRowModel():e._getPaginationRowModel()),e.getPageCount=()=>{var i;return(i=e.options.pageCount)!=null?i:Math.ceil(e.getRowCount()/e.getState().pagination.pageSize)},e.getRowCount=()=>{var i;return(i=e.options.rowCount)!=null?i:e.getPrePaginationRowModel().rows.length}}},Iy=()=>({top:[],bottom:[]}),oG={getInitialState:e=>({rowPinning:Iy(),...e}),getDefaultOptions:e=>({onRowPinningChange:hr("rowPinning",e)}),createRow:(e,t)=>{e.pin=(n,i,r)=>{const o=i?e.getLeafRows().map(d=>{let{id:m}=d;return m}):[],a=r?e.getParentRows().map(d=>{let{id:m}=d;return m}):[],c=new Set([...a,e.id,...o]);t.setRowPinning(d=>{var m,h;if(n==="bottom"){var p,g;return{top:((p=d?.top)!=null?p:[]).filter(b=>!(c!=null&&c.has(b))),bottom:[...((g=d?.bottom)!=null?g:[]).filter(b=>!(c!=null&&c.has(b))),...Array.from(c)]}}if(n==="top"){var x,v;return{top:[...((x=d?.top)!=null?x:[]).filter(b=>!(c!=null&&c.has(b))),...Array.from(c)],bottom:((v=d?.bottom)!=null?v:[]).filter(b=>!(c!=null&&c.has(b)))}}return{top:((m=d?.top)!=null?m:[]).filter(b=>!(c!=null&&c.has(b))),bottom:((h=d?.bottom)!=null?h:[]).filter(b=>!(c!=null&&c.has(b)))}})},e.getCanPin=()=>{var n;const{enableRowPinning:i,enablePinning:r}=t.options;return typeof i=="function"?i(e):(n=i??r)!=null?n:!0},e.getIsPinned=()=>{const n=[e.id],{top:i,bottom:r}=t.getState().rowPinning,o=n.some(c=>i?.includes(c)),a=n.some(c=>r?.includes(c));return o?"top":a?"bottom":!1},e.getPinnedIndex=()=>{var n,i;const r=e.getIsPinned();if(!r)return-1;const o=(n=r==="top"?t.getTopRows():t.getBottomRows())==null?void 0:n.map(a=>{let{id:c}=a;return c});return(i=o?.indexOf(e.id))!=null?i:-1}},createTable:e=>{e.setRowPinning=t=>e.options.onRowPinningChange==null?void 0:e.options.onRowPinningChange(t),e.resetRowPinning=t=>{var n,i;return e.setRowPinning(t?Iy():(n=(i=e.initialState)==null?void 0:i.rowPinning)!=null?n:Iy())},e.getIsSomeRowsPinned=t=>{var n;const i=e.getState().rowPinning;if(!t){var r,o;return!!((r=i.top)!=null&&r.length||(o=i.bottom)!=null&&o.length)}return!!((n=i[t])!=null&&n.length)},e._getPinnedRows=(t,n,i)=>{var r;return((r=e.options.keepPinnedRows)==null||r?(n??[]).map(a=>{const c=e.getRow(a,!0);return c.getIsAllParentsExpanded()?c:null}):(n??[]).map(a=>t.find(c=>c.id===a))).filter(Boolean).map(a=>({...a,position:i}))},e.getTopRows=xt(()=>[e.getRowModel().rows,e.getState().rowPinning.top],(t,n)=>e._getPinnedRows(t,n,"top"),vt(e.options,"debugRows")),e.getBottomRows=xt(()=>[e.getRowModel().rows,e.getState().rowPinning.bottom],(t,n)=>e._getPinnedRows(t,n,"bottom"),vt(e.options,"debugRows")),e.getCenterRows=xt(()=>[e.getRowModel().rows,e.getState().rowPinning.top,e.getState().rowPinning.bottom],(t,n,i)=>{const r=new Set([...n??[],...i??[]]);return t.filter(o=>!r.has(o.id))},vt(e.options,"debugRows"))}},aG={getInitialState:e=>({rowSelection:{},...e}),getDefaultOptions:e=>({onRowSelectionChange:hr("rowSelection",e),enableRowSelection:!0,enableMultiRowSelection:!0,enableSubRowSelection:!0}),createTable:e=>{e.setRowSelection=t=>e.options.onRowSelectionChange==null?void 0:e.options.onRowSelectionChange(t),e.resetRowSelection=t=>{var n;return e.setRowSelection(t?{}:(n=e.initialState.rowSelection)!=null?n:{})},e.toggleAllRowsSelected=t=>{e.setRowSelection(n=>{t=typeof t<"u"?t:!e.getIsAllRowsSelected();const i={...n},r=e.getPreGroupedRowModel().flatRows;return t?r.forEach(o=>{o.getCanSelect()&&(i[o.id]=!0)}):r.forEach(o=>{delete i[o.id]}),i})},e.toggleAllPageRowsSelected=t=>e.setRowSelection(n=>{const i=typeof t<"u"?t:!e.getIsAllPageRowsSelected(),r={...n};return e.getRowModel().rows.forEach(o=>{kv(r,o.id,i,!0,e)}),r}),e.getPreSelectedRowModel=()=>e.getCoreRowModel(),e.getSelectedRowModel=xt(()=>[e.getState().rowSelection,e.getCoreRowModel()],(t,n)=>Object.keys(t).length?Ty(e,n):{rows:[],flatRows:[],rowsById:{}},vt(e.options,"debugTable")),e.getFilteredSelectedRowModel=xt(()=>[e.getState().rowSelection,e.getFilteredRowModel()],(t,n)=>Object.keys(t).length?Ty(e,n):{rows:[],flatRows:[],rowsById:{}},vt(e.options,"debugTable")),e.getGroupedSelectedRowModel=xt(()=>[e.getState().rowSelection,e.getSortedRowModel()],(t,n)=>Object.keys(t).length?Ty(e,n):{rows:[],flatRows:[],rowsById:{}},vt(e.options,"debugTable")),e.getIsAllRowsSelected=()=>{const t=e.getFilteredRowModel().flatRows,{rowSelection:n}=e.getState();let i=!!(t.length&&Object.keys(n).length);return i&&t.some(r=>r.getCanSelect()&&!n[r.id])&&(i=!1),i},e.getIsAllPageRowsSelected=()=>{const t=e.getPaginationRowModel().flatRows.filter(r=>r.getCanSelect()),{rowSelection:n}=e.getState();let i=!!t.length;return i&&t.some(r=>!n[r.id])&&(i=!1),i},e.getIsSomeRowsSelected=()=>{var t;const n=Object.keys((t=e.getState().rowSelection)!=null?t:{}).length;return n>0&&n{const t=e.getPaginationRowModel().flatRows;return e.getIsAllPageRowsSelected()?!1:t.filter(n=>n.getCanSelect()).some(n=>n.getIsSelected()||n.getIsSomeSelected())},e.getToggleAllRowsSelectedHandler=()=>t=>{e.toggleAllRowsSelected(t.target.checked)},e.getToggleAllPageRowsSelectedHandler=()=>t=>{e.toggleAllPageRowsSelected(t.target.checked)}},createRow:(e,t)=>{e.toggleSelected=(n,i)=>{const r=e.getIsSelected();t.setRowSelection(o=>{var a;if(n=typeof n<"u"?n:!r,e.getCanSelect()&&r===n)return o;const c={...o};return kv(c,e.id,n,(a=i?.selectChildren)!=null?a:!0,t),c})},e.getIsSelected=()=>{const{rowSelection:n}=t.getState();return B0(e,n)},e.getIsSomeSelected=()=>{const{rowSelection:n}=t.getState();return Sv(e,n)==="some"},e.getIsAllSubRowsSelected=()=>{const{rowSelection:n}=t.getState();return Sv(e,n)==="all"},e.getCanSelect=()=>{var n;return typeof t.options.enableRowSelection=="function"?t.options.enableRowSelection(e):(n=t.options.enableRowSelection)!=null?n:!0},e.getCanSelectSubRows=()=>{var n;return typeof t.options.enableSubRowSelection=="function"?t.options.enableSubRowSelection(e):(n=t.options.enableSubRowSelection)!=null?n:!0},e.getCanMultiSelect=()=>{var n;return typeof t.options.enableMultiRowSelection=="function"?t.options.enableMultiRowSelection(e):(n=t.options.enableMultiRowSelection)!=null?n:!0},e.getToggleSelectedHandler=()=>{const n=e.getCanSelect();return i=>{var r;n&&e.toggleSelected((r=i.target)==null?void 0:r.checked)}}}},kv=(e,t,n,i,r)=>{var o;const a=r.getRow(t,!0);n?(a.getCanMultiSelect()||Object.keys(e).forEach(c=>delete e[c]),a.getCanSelect()&&(e[t]=!0)):delete e[t],i&&(o=a.subRows)!=null&&o.length&&a.getCanSelectSubRows()&&a.subRows.forEach(c=>kv(e,c.id,n,i,r))};function Ty(e,t){const n=e.getState().rowSelection,i=[],r={},o=function(a,c){return a.map(d=>{var m;const h=B0(d,n);if(h&&(i.push(d),r[d.id]=d),(m=d.subRows)!=null&&m.length&&(d={...d,subRows:o(d.subRows)}),h)return d}).filter(Boolean)};return{rows:o(t.rows),flatRows:i,rowsById:r}}function B0(e,t){var n;return(n=t[e.id])!=null?n:!1}function Sv(e,t,n){var i;if(!((i=e.subRows)!=null&&i.length))return!1;let r=!0,o=!1;return e.subRows.forEach(a=>{if(!(o&&!r)&&(a.getCanSelect()&&(B0(a,t)?o=!0:r=!1),a.subRows&&a.subRows.length)){const c=Sv(a,t);c==="all"?o=!0:(c==="some"&&(o=!0),r=!1)}}),r?"all":o?"some":!1}const wv=/([0-9]+)/gm,lG=(e,t,n)=>gT(Co(e.getValue(n)).toLowerCase(),Co(t.getValue(n)).toLowerCase()),cG=(e,t,n)=>gT(Co(e.getValue(n)),Co(t.getValue(n))),uG=(e,t,n)=>$0(Co(e.getValue(n)).toLowerCase(),Co(t.getValue(n)).toLowerCase()),dG=(e,t,n)=>$0(Co(e.getValue(n)),Co(t.getValue(n))),fG=(e,t,n)=>{const i=e.getValue(n),r=t.getValue(n);return i>r?1:i$0(e.getValue(n),t.getValue(n));function $0(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 gT(e,t){const n=e.split(wv).filter(Boolean),i=t.split(wv).filter(Boolean);for(;n.length&&i.length;){const r=n.shift(),o=i.shift(),a=parseInt(r,10),c=parseInt(o,10),d=[a,c].sort();if(isNaN(d[0])){if(r>o)return 1;if(o>r)return-1;continue}if(isNaN(d[1]))return isNaN(a)?-1:1;if(a>c)return 1;if(c>a)return-1}return n.length-i.length}const Kc={alphanumeric:lG,alphanumericCaseSensitive:cG,text:uG,textCaseSensitive:dG,datetime:fG,basic:mG},pG={getInitialState:e=>({sorting:[],...e}),getDefaultColumnDef:()=>({sortingFn:"auto",sortUndefined:1}),getDefaultOptions:e=>({onSortingChange:hr("sorting",e),isMultiSortEvent:t=>t.shiftKey}),createColumn:(e,t)=>{e.getAutoSortingFn=()=>{const n=t.getFilteredRowModel().flatRows.slice(10);let i=!1;for(const r of n){const o=r?.getValue(e.id);if(Object.prototype.toString.call(o)==="[object Date]")return Kc.datetime;if(typeof o=="string"&&(i=!0,o.split(wv).length>1))return Kc.alphanumeric}return i?Kc.text:Kc.basic},e.getAutoSortDir=()=>{const n=t.getFilteredRowModel().flatRows[0];return typeof n?.getValue(e.id)=="string"?"asc":"desc"},e.getSortingFn=()=>{var n,i;if(!e)throw new Error;return Qm(e.columnDef.sortingFn)?e.columnDef.sortingFn:e.columnDef.sortingFn==="auto"?e.getAutoSortingFn():(n=(i=t.options.sortingFns)==null?void 0:i[e.columnDef.sortingFn])!=null?n:Kc[e.columnDef.sortingFn]},e.toggleSorting=(n,i)=>{const r=e.getNextSortingOrder(),o=typeof n<"u"&&n!==null;t.setSorting(a=>{const c=a?.find(x=>x.id===e.id),d=a?.findIndex(x=>x.id===e.id);let m=[],h,p=o?n:r==="desc";if(a!=null&&a.length&&e.getCanMultiSort()&&i?c?h="toggle":h="add":a!=null&&a.length&&d!==a.length-1?h="replace":c?h="toggle":h="replace",h==="toggle"&&(o||r||(h="remove")),h==="add"){var g;m=[...a,{id:e.id,desc:p}],m.splice(0,m.length-((g=t.options.maxMultiSortColCount)!=null?g:Number.MAX_SAFE_INTEGER))}else h==="toggle"?m=a.map(x=>x.id===e.id?{...x,desc:p}:x):h==="remove"?m=a.filter(x=>x.id!==e.id):m=[{id:e.id,desc:p}];return m})},e.getFirstSortDir=()=>{var n,i;return((n=(i=e.columnDef.sortDescFirst)!=null?i:t.options.sortDescFirst)!=null?n:e.getAutoSortDir()==="desc")?"desc":"asc"},e.getNextSortingOrder=n=>{var i,r;const o=e.getFirstSortDir(),a=e.getIsSorted();return a?a!==o&&((i=t.options.enableSortingRemoval)==null||i)&&(!(n&&(r=t.options.enableMultiRemove)!=null)||r)?!1:a==="desc"?"asc":"desc":o},e.getCanSort=()=>{var n,i;return((n=e.columnDef.enableSorting)!=null?n:!0)&&((i=t.options.enableSorting)!=null?i:!0)&&!!e.accessorFn},e.getCanMultiSort=()=>{var n,i;return(n=(i=e.columnDef.enableMultiSort)!=null?i:t.options.enableMultiSort)!=null?n:!!e.accessorFn},e.getIsSorted=()=>{var n;const i=(n=t.getState().sorting)==null?void 0:n.find(r=>r.id===e.id);return i?i.desc?"desc":"asc":!1},e.getSortIndex=()=>{var n,i;return(n=(i=t.getState().sorting)==null?void 0:i.findIndex(r=>r.id===e.id))!=null?n:-1},e.clearSorting=()=>{t.setSorting(n=>n!=null&&n.length?n.filter(i=>i.id!==e.id):[])},e.getToggleSortingHandler=()=>{const n=e.getCanSort();return i=>{n&&(i.persist==null||i.persist(),e.toggleSorting==null||e.toggleSorting(void 0,e.getCanMultiSort()?t.options.isMultiSortEvent==null?void 0:t.options.isMultiSortEvent(i):!1))}}},createTable:e=>{e.setSorting=t=>e.options.onSortingChange==null?void 0:e.options.onSortingChange(t),e.resetSorting=t=>{var n,i;e.setSorting(t?[]:(n=(i=e.initialState)==null?void 0:i.sorting)!=null?n:[])},e.getPreSortedRowModel=()=>e.getGroupedRowModel(),e.getSortedRowModel=()=>(!e._getSortedRowModel&&e.options.getSortedRowModel&&(e._getSortedRowModel=e.options.getSortedRowModel(e)),e.options.manualSorting||!e._getSortedRowModel?e.getPreSortedRowModel():e._getSortedRowModel())}},hG=[OU,tG,KU,ZU,zU,PU,nG,iG,pG,YU,rG,sG,oG,aG,JU];function gG(e){var t,n;const i=[...hG,...(t=e._features)!=null?t:[]];let r={_features:i};const o=r._features.reduce((g,x)=>Object.assign(g,x.getDefaultOptions==null?void 0:x.getDefaultOptions(r)),{}),a=g=>r.options.mergeOptions?r.options.mergeOptions(o,g):{...o,...g};let d={...{},...(n=e.initialState)!=null?n:{}};r._features.forEach(g=>{var x;d=(x=g.getInitialState==null?void 0:g.getInitialState(d))!=null?x:d});const m=[];let h=!1;const p={_features:i,options:{...o,...e},initialState:d,_queue:g=>{m.push(g),h||(h=!0,Promise.resolve().then(()=>{for(;m.length;)m.shift()();h=!1}).catch(x=>setTimeout(()=>{throw x})))},reset:()=>{r.setState(r.initialState)},setOptions:g=>{const x=xo(g,r.options);r.options=a(x)},getState:()=>r.options.state,setState:g=>{r.options.onStateChange==null||r.options.onStateChange(g)},_getRowId:(g,x,v)=>{var b;return(b=r.options.getRowId==null?void 0:r.options.getRowId(g,x,v))!=null?b:`${v?[v.id,x].join("."):x}`},getCoreRowModel:()=>(r._getCoreRowModel||(r._getCoreRowModel=r.options.getCoreRowModel(r)),r._getCoreRowModel()),getRowModel:()=>r.getPaginationRowModel(),getRow:(g,x)=>{let v=(x?r.getPrePaginationRowModel():r.getRowModel()).rowsById[g];if(!v&&(v=r.getCoreRowModel().rowsById[g],!v))throw new Error;return v},_getDefaultColumnDef:xt(()=>[r.options.defaultColumn],g=>{var x;return g=(x=g)!=null?x:{},{header:v=>{const b=v.header.column.columnDef;return b.accessorKey?b.accessorKey:b.accessorFn?b.id:null},cell:v=>{var b,w;return(b=(w=v.renderValue())==null||w.toString==null?void 0:w.toString())!=null?b:null},...r._features.reduce((v,b)=>Object.assign(v,b.getDefaultColumnDef==null?void 0:b.getDefaultColumnDef()),{}),...g}},vt(e,"debugColumns")),_getColumnDefs:()=>r.options.columns,getAllColumns:xt(()=>[r._getColumnDefs()],g=>{const x=function(v,b,w){return w===void 0&&(w=0),v.map(k=>{const S=DU(r,k,w,b),j=k;return S.columns=j.columns?x(j.columns,S,w+1):[],S})};return x(g)},vt(e,"debugColumns")),getAllFlatColumns:xt(()=>[r.getAllColumns()],g=>g.flatMap(x=>x.getFlatColumns()),vt(e,"debugColumns")),_getAllFlatColumnsById:xt(()=>[r.getAllFlatColumns()],g=>g.reduce((x,v)=>(x[v.id]=v,x),{}),vt(e,"debugColumns")),getAllLeafColumns:xt(()=>[r.getAllColumns(),r._getOrderColumnsFn()],(g,x)=>{let v=g.flatMap(b=>b.getLeafColumns());return x(v)},vt(e,"debugColumns")),getColumn:g=>r._getAllFlatColumnsById()[g]};Object.assign(r,p);for(let g=0;gxt(()=>[e.options.data],t=>{const n={rows:[],flatRows:[],rowsById:{}},i=function(r,o,a){o===void 0&&(o=0);const c=[];for(let m=0;me._autoResetPageIndex()))}function xG(){return e=>xt(()=>[e.getState().sorting,e.getPreSortedRowModel()],(t,n)=>{if(!n.rows.length||!(t!=null&&t.length))return n;const i=e.getState().sorting,r=[],o=i.filter(d=>{var m;return(m=e.getColumn(d.id))==null?void 0:m.getCanSort()}),a={};o.forEach(d=>{const m=e.getColumn(d.id);m&&(a[d.id]={sortUndefined:m.columnDef.sortUndefined,invertSorting:m.columnDef.invertSorting,sortingFn:m.getSortingFn()})});const c=d=>{const m=d.map(h=>({...h}));return m.sort((h,p)=>{for(let x=0;x{var p;r.push(h),(p=h.subRows)!=null&&p.length&&(h.subRows=c(h.subRows))}),m};return{rows:c(n.rows),flatRows:r,rowsById:n.rowsById}},vt(e.options,"debugTable","getSortedRowModel",()=>e._autoResetPageIndex()))}function VC(e,t){return e?vG(e)?C.createElement(e,t):e:null}function vG(e){return bG(e)||typeof e=="function"||_G(e)}function bG(e){return typeof e=="function"&&(()=>{const t=Object.getPrototypeOf(e);return t.prototype&&t.prototype.isReactComponent})()}function _G(e){return typeof e=="object"&&typeof e.$$typeof=="symbol"&&["react.memo","react.forward_ref"].includes(e.$$typeof.description)}function kG(e){const t={state:{},onStateChange:()=>{},renderFallbackValue:null,...e},[n]=C.useState(()=>({current:gG(t)})),[i,r]=C.useState(()=>n.current.initialState);return n.current.setOptions(o=>({...o,...e,state:{...i,...e.state},onStateChange:a=>{r(a),e.onStateChange==null||e.onStateChange(a)}})),n.current}const UC=["codex","cursor","claude_code","opencode"];function SG({roles:e,employees:t,selectedIds:n,onSelectRow:i,onUpdateRole:r,onDeleteRole:o,readOnly:a}){const[c,d]=C.useState([]),[m,h]=C.useState({}),[p,g]=C.useState(null),[x,v]=C.useState(""),b=C.useMemo(()=>{const O=new Map;for(const T of t){const M=T.role_ids?.length?T.role_ids:[T.role_id];for(const I of M)I&&O.set(I,(O.get(I)??0)+1)}return e.map(T=>({role_id:T.role_id,name:T.name,icon:T.icon??null,reports_to:T.reports_to,toolCount:T.tools?.length??0,agent:T.preferred_external_agent??null,employeeCount:O.get(T.role_id)??0}))},[e,t]),w=C.useMemo(()=>[{id:"owner",name:"Owner"},...e.map(O=>({id:O.role_id,name:O.name}))],[e]),k=O=>{const T=x.trim();T&&T!==e.find(M=>M.role_id===O)?.name&&r(O,{name:T}),g(null),v("")},S=C.useMemo(()=>[{id:"select",header:({table:O})=>u.jsx("input",{type:"checkbox",checked:O.getIsAllRowsSelected(),ref:T=>{T&&(T.indeterminate=O.getIsSomeRowsSelected()&&!O.getIsAllRowsSelected())},onChange:O.getToggleAllRowsSelectedHandler(),disabled:a,"aria-label":"Select all"}),cell:({row:O})=>u.jsx("input",{type:"checkbox",checked:O.getIsSelected(),onChange:O.getToggleSelectedHandler(),disabled:a,"aria-label":`Select ${O.original.role_id}`,onClick:T=>T.stopPropagation()}),size:32,enableSorting:!1},{id:"icon",header:"",cell:({row:O})=>u.jsx("img",{src:Uu(O.original.icon),alt:"",className:"rt-cell-icon"}),size:32,enableSorting:!1},{id:"name",header:"Name",accessorKey:"name",cell:({row:O})=>{const T=O.original;return p?.rowId===T.role_id&&p.col==="name"?u.jsx("input",{autoFocus:!0,className:"rt-inline-input",value:x,onChange:I=>v(I.target.value),onBlur:()=>k(T.role_id),onKeyDown:I=>{I.key==="Enter"?k(T.role_id):I.key==="Escape"&&(g(null),v(""))},onClick:I=>I.stopPropagation()}):u.jsx("span",{className:"rt-cell-name",onDoubleClick:I=>{a||(I.stopPropagation(),v(T.name),g({rowId:T.role_id,col:"name"}))},title:"Double-click to edit",children:T.name})}},{id:"role_id",header:"ID",accessorKey:"role_id",cell:({row:O})=>u.jsx("code",{className:"rt-cell-id",children:O.original.role_id})},{id:"reports_to",header:"Reports to",accessorKey:"reports_to",cell:({row:O})=>{const T=O.original;return u.jsx("select",{className:"rt-cell-select",value:T.reports_to,onChange:M=>r(T.role_id,{reports_to:M.target.value}),disabled:a,onClick:M=>M.stopPropagation(),children:w.filter(M=>M.id!==T.role_id).map(M=>u.jsx("option",{value:M.id,children:M.name},M.id))})}},{id:"toolCount",header:"Tools",accessorKey:"toolCount",cell:({row:O})=>u.jsx("span",{className:"rt-cell-count",children:O.original.toolCount}),size:64},{id:"agent",header:"Agent",accessorKey:"agent",cell:({row:O})=>{const T=O.original;return u.jsxs("select",{className:"rt-cell-select",value:T.agent??"",onChange:M=>r(T.role_id,{preferred_external_agent:M.target.value||null}),disabled:a,onClick:M=>M.stopPropagation(),children:[u.jsx("option",{value:"",children:"(auto)"}),UC.map(M=>u.jsx("option",{value:M,children:M},M))]})}},{id:"employeeCount",header:"People",accessorKey:"employeeCount",cell:({row:O})=>u.jsx("span",{className:"rt-cell-count",children:O.original.employeeCount}),size:64},{id:"actions",header:"",cell:({row:O})=>u.jsx("button",{className:"rt-cell-action",onClick:T=>{T.stopPropagation(),!a&&confirm(`Delete role "${O.original.name}"?`)&&o(O.original.role_id)},disabled:a,title:"Delete",children:"✕"}),size:40,enableSorting:!1}],[p,x,a,w,r,o]),j=kG({data:b,columns:S,state:{sorting:c,rowSelection:m},onSortingChange:d,onRowSelectionChange:h,enableRowSelection:!0,getRowId:O=>O.role_id,getCoreRowModel:yG(),getSortedRowModel:xG()}),N=Object.values(m).filter(Boolean).length,L=Object.keys(m).filter(O=>m[O]),A=O=>{a||(L.forEach(T=>r(T,{preferred_external_agent:O})),h({}))},D=()=>{a||confirm(`Delete ${N} roles? This cannot be undone.`)&&(L.forEach(O=>o(O)),h({}))};return u.jsxs("div",{className:"rt-container",children:[N>0&&!a&&u.jsxs("div",{className:"rt-bulk-bar",children:[u.jsxs("span",{className:"rt-bulk-count",children:[N," selected"]}),u.jsxs("select",{className:"rt-bulk-select",defaultValue:"",onChange:O=>{const T=O.target.value;T&&A(T==="__auto__"?null:T)},children:[u.jsx("option",{value:"",disabled:!0,children:"Change agent…"}),u.jsx("option",{value:"__auto__",children:"(auto)"}),UC.map(O=>u.jsx("option",{value:O,children:O},O))]}),u.jsx("button",{className:"btn btn-danger btn-sm",onClick:D,children:"Delete selected"}),u.jsx("button",{className:"btn btn-ghost btn-sm",onClick:()=>h({}),children:"Clear"})]}),u.jsx("div",{className:"rt-table-wrap",children:u.jsxs("table",{className:"rt-table",children:[u.jsx("thead",{children:j.getHeaderGroups().map(O=>u.jsx("tr",{children:O.headers.map(T=>u.jsxs("th",{style:{width:T.getSize()},className:T.column.getCanSort()?"rt-th-sortable":"",onClick:T.column.getToggleSortingHandler(),children:[VC(T.column.columnDef.header,T.getContext()),T.column.getIsSorted()==="asc"&&u.jsx("span",{className:"rt-sort-caret",children:" ▲"}),T.column.getIsSorted()==="desc"&&u.jsx("span",{className:"rt-sort-caret",children:" ▼"})]},T.id))},O.id))}),u.jsxs("tbody",{children:[j.getRowModel().rows.length===0&&u.jsx("tr",{children:u.jsx("td",{colSpan:9,className:"rt-empty",children:'No roles. Add one via the "+ Add role" button.'})}),j.getRowModel().rows.map(O=>{const T=n.includes(O.original.role_id);return u.jsx("tr",{className:`rt-row${O.getIsSelected()?" rt-row-checked":""}${T?" rt-row-active":""}`,onClick:()=>i(O.original.role_id),children:O.getVisibleCells().map(M=>u.jsx("td",{style:{width:M.column.getSize()},children:VC(M.column.columnDef.cell,M.getContext())},M.id))},O.id)})]})]})})]})}function di(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,i;n{}};function Jm(){for(var e=0,t=arguments.length,n={},i;e=0&&(i=n.slice(r+1),n=n.slice(0,r)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:i}})}Bf.prototype=Jm.prototype={constructor:Bf,on:function(e,t){var n=this._,i=CG(e+"",n),r,o=-1,a=i.length;if(arguments.length<2){for(;++o0)for(var n=new Array(r),i=0,r,o;i=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),qC.hasOwnProperty(t)?{space:qC[t],local:e}:e}function EG(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===Cv&&t.documentElement.namespaceURI===Cv?t.createElement(e):t.createElementNS(n,e)}}function NG(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function yT(e){var t=ep(e);return(t.local?NG:EG)(t)}function IG(){}function H0(e){return e==null?IG:function(){return this.querySelector(e)}}function TG(e){typeof e!="function"&&(e=H0(e));for(var t=this._groups,n=t.length,i=new Array(n),r=0;r=j&&(j=S+1);!(L=w[j])&&++j=0;)(a=i[r])&&(o&&a.compareDocumentPosition(o)^4&&o.parentNode.insertBefore(a,o),o=a);return this}function tq(e){e||(e=nq);function t(p,g){return p&&g?e(p.__data__,g.__data__):!p-!g}for(var n=this._groups,i=n.length,r=new Array(i),o=0;ot?1:e>=t?0:NaN}function iq(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function rq(){return Array.from(this)}function sq(){for(var e=this._groups,t=0,n=e.length;t1?this.each((t==null?gq:typeof t=="function"?xq:yq)(e,t,n??"")):Rl(this.node(),e)}function Rl(e,t){return e.style.getPropertyValue(t)||kT(e).getComputedStyle(e,null).getPropertyValue(t)}function bq(e){return function(){delete this[e]}}function _q(e,t){return function(){this[e]=t}}function kq(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Sq(e,t){return arguments.length>1?this.each((t==null?bq:typeof t=="function"?kq:_q)(e,t)):this.node()[e]}function ST(e){return e.trim().split(/^|\s+/)}function F0(e){return e.classList||new wT(e)}function wT(e){this._node=e,this._names=ST(e.getAttribute("class")||"")}wT.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 CT(e,t){for(var n=F0(e),i=-1,r=t.length;++i=0&&(n=t.slice(i+1),t=t.slice(0,i)),{type:t,name:n}})}function Zq(e){return function(){var t=this.__on;if(t){for(var n=0,i=-1,r=t.length,o;n()=>e;function jv(e,{sourceEvent:t,subject:n,target:i,identifier:r,active:o,x:a,y:c,dx:d,dy:m,dispatch:h}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:i,enumerable:!0,configurable:!0},identifier:{value:r,enumerable:!0,configurable:!0},active:{value:o,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:c,enumerable:!0,configurable:!0},dx:{value:d,enumerable:!0,configurable:!0},dy:{value:m,enumerable:!0,configurable:!0},_:{value:h}})}jv.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function aW(e){return!e.ctrlKey&&!e.button}function lW(){return this.parentNode}function cW(e,t){return t??{x:e.x,y:e.y}}function uW(){return navigator.maxTouchPoints||"ontouchstart"in this}function RT(){var e=aW,t=lW,n=cW,i=uW,r={},o=Jm("start","drag","end"),a=0,c,d,m,h,p=0;function g(N){N.on("mousedown.drag",x).filter(i).on("touchstart.drag",w).on("touchmove.drag",k,oW).on("touchend.drag touchcancel.drag",S).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function x(N,L){if(!(h||!e.call(this,N,L))){var A=j(this,t.call(this,N,L),N,L,"mouse");A&&(cr(N.view).on("mousemove.drag",v,Tu).on("mouseup.drag",b,Tu),IT(N.view),Ry(N),m=!1,c=N.clientX,d=N.clientY,A("start",N))}}function v(N){if(yl(N),!m){var L=N.clientX-c,A=N.clientY-d;m=L*L+A*A>p}r.mouse("drag",N)}function b(N){cr(N.view).on("mousemove.drag mouseup.drag",null),TT(N.view,m),yl(N),r.mouse("end",N)}function w(N,L){if(e.call(this,N,L)){var A=N.changedTouches,D=t.call(this,N,L),O=A.length,T,M;for(T=0;T>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?kf(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?kf(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=fW.exec(e))?new Qi(t[1],t[2],t[3],1):(t=mW.exec(e))?new Qi(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=pW.exec(e))?kf(t[1],t[2],t[3],t[4]):(t=hW.exec(e))?kf(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=gW.exec(e))?JC(t[1],t[2]/100,t[3]/100,1):(t=yW.exec(e))?JC(t[1],t[2]/100,t[3]/100,t[4]):WC.hasOwnProperty(e)?KC(WC[e]):e==="transparent"?new Qi(NaN,NaN,NaN,0):null}function KC(e){return new Qi(e>>16&255,e>>8&255,e&255,1)}function kf(e,t,n,i){return i<=0&&(e=t=n=NaN),new Qi(e,t,n,i)}function bW(e){return e instanceof qu||(e=ua(e)),e?(e=e.rgb(),new Qi(e.r,e.g,e.b,e.opacity)):new Qi}function Ev(e,t,n,i){return arguments.length===1?bW(e):new Qi(e,t,n,i??1)}function Qi(e,t,n,i){this.r=+e,this.g=+t,this.b=+n,this.opacity=+i}V0(Qi,Ev,AT(qu,{brighter(e){return e=e==null?ym:Math.pow(ym,e),new Qi(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Ru:Math.pow(Ru,e),new Qi(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Qi(oa(this.r),oa(this.g),oa(this.b),xm(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:ZC,formatHex:ZC,formatHex8:_W,formatRgb:QC,toString:QC}));function ZC(){return`#${sa(this.r)}${sa(this.g)}${sa(this.b)}`}function _W(){return`#${sa(this.r)}${sa(this.g)}${sa(this.b)}${sa((isNaN(this.opacity)?1:this.opacity)*255)}`}function QC(){const e=xm(this.opacity);return`${e===1?"rgb(":"rgba("}${oa(this.r)}, ${oa(this.g)}, ${oa(this.b)}${e===1?")":`, ${e})`}`}function xm(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function oa(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function sa(e){return e=oa(e),(e<16?"0":"")+e.toString(16)}function JC(e,t,n,i){return i<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Lr(e,t,n,i)}function MT(e){if(e instanceof Lr)return new Lr(e.h,e.s,e.l,e.opacity);if(e instanceof qu||(e=ua(e)),!e)return new Lr;if(e instanceof Lr)return e;e=e.rgb();var t=e.r/255,n=e.g/255,i=e.b/255,r=Math.min(t,n,i),o=Math.max(t,n,i),a=NaN,c=o-r,d=(o+r)/2;return c?(t===o?a=(n-i)/c+(n0&&d<1?0:a,new Lr(a,c,d,e.opacity)}function kW(e,t,n,i){return arguments.length===1?MT(e):new Lr(e,t,n,i??1)}function Lr(e,t,n,i){this.h=+e,this.s=+t,this.l=+n,this.opacity=+i}V0(Lr,kW,AT(qu,{brighter(e){return e=e==null?ym:Math.pow(ym,e),new Lr(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Ru:Math.pow(Ru,e),new Lr(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,i=n+(n<.5?n:1-n)*t,r=2*n-i;return new Qi(Ay(e>=240?e-240:e+120,r,i),Ay(e,r,i),Ay(e<120?e+240:e-120,r,i),this.opacity)},clamp(){return new Lr(e2(this.h),Sf(this.s),Sf(this.l),xm(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=xm(this.opacity);return`${e===1?"hsl(":"hsla("}${e2(this.h)}, ${Sf(this.s)*100}%, ${Sf(this.l)*100}%${e===1?")":`, ${e})`}`}}));function e2(e){return e=(e||0)%360,e<0?e+360:e}function Sf(e){return Math.max(0,Math.min(1,e||0))}function Ay(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 U0=e=>()=>e;function SW(e,t){return function(n){return e+n*t}}function wW(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(i){return Math.pow(e+i*t,n)}}function CW(e){return(e=+e)==1?DT:function(t,n){return n-t?wW(t,n,e):U0(isNaN(t)?n:t)}}function DT(e,t){var n=t-e;return n?SW(e,n):U0(isNaN(e)?t:e)}const vm=(function e(t){var n=CW(t);function i(r,o){var a=n((r=Ev(r)).r,(o=Ev(o)).r),c=n(r.g,o.g),d=n(r.b,o.b),m=DT(r.opacity,o.opacity);return function(h){return r.r=a(h),r.g=c(h),r.b=d(h),r.opacity=m(h),r+""}}return i.gamma=e,i})(1);function jW(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,i=t.slice(),r;return function(o){for(r=0;rn&&(o=t.slice(n,o),c[a]?c[a]+=o:c[++a]=o),(i=i[0])===(r=r[0])?c[a]?c[a]+=r:c[++a]=r:(c[++a]=null,d.push({i:a,x:ts(i,r)})),n=My.lastIndex;return n180?h+=360:h-m>180&&(m+=360),g.push({i:p.push(r(p)+"rotate(",null,i)-2,x:ts(m,h)})):h&&p.push(r(p)+"rotate("+h+i)}function c(m,h,p,g){m!==h?g.push({i:p.push(r(p)+"skewX(",null,i)-2,x:ts(m,h)}):h&&p.push(r(p)+"skewX("+h+i)}function d(m,h,p,g,x,v){if(m!==p||h!==g){var b=x.push(r(x)+"scale(",null,",",null,")");v.push({i:b-4,x:ts(m,p)},{i:b-2,x:ts(h,g)})}else(p!==1||g!==1)&&x.push(r(x)+"scale("+p+","+g+")")}return function(m,h){var p=[],g=[];return m=e(m),h=e(h),o(m.translateX,m.translateY,h.translateX,h.translateY,p,g),a(m.rotate,h.rotate,p,g),c(m.skewX,h.skewX,p,g),d(m.scaleX,m.scaleY,h.scaleX,h.scaleY,p,g),m=h=null,function(x){for(var v=-1,b=g.length,w;++v=0&&e._call.call(void 0,t),e=e._next;--Al}function i2(){da=(_m=Mu.now())+tp,Al=nu=0;try{HW()}finally{Al=0,VW(),da=0}}function FW(){var e=Mu.now(),t=e-_m;t>PT&&(tp-=t,_m=e)}function VW(){for(var e,t=bm,n,i=1/0;t;)t._call?(i>t._time&&(i=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:bm=n);iu=e,Tv(i)}function Tv(e){if(!Al){nu&&(nu=clearTimeout(nu));var t=e-da;t>24?(e<1/0&&(nu=setTimeout(i2,e-Mu.now()-tp)),Zc&&(Zc=clearInterval(Zc))):(Zc||(_m=Mu.now(),Zc=setInterval(FW,PT)),Al=1,BT(i2))}}function r2(e,t,n){var i=new km;return t=t==null?0:+t,i.restart(r=>{i.stop(),e(r+t)},t,n),i}var UW=Jm("start","end","cancel","interrupt"),GW=[],HT=0,s2=1,Rv=2,Hf=3,o2=4,Av=5,Ff=6;function np(e,t,n,i,r,o){var a=e.__transition;if(!a)e.__transition={};else if(n in a)return;qW(e,n,{name:t,index:i,group:r,on:UW,tween:GW,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:HT})}function q0(e,t){var n=Ur(e,t);if(n.state>HT)throw new Error("too late; already scheduled");return n}function cs(e,t){var n=Ur(e,t);if(n.state>Hf)throw new Error("too late; already running");return n}function Ur(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function qW(e,t,n){var i=e.__transition,r;i[t]=n,n.timer=$T(o,0,n.time);function o(m){n.state=s2,n.timer.restart(a,n.delay,n.time),n.delay<=m&&a(m-n.delay)}function a(m){var h,p,g,x;if(n.state!==s2)return d();for(h in i)if(x=i[h],x.name===n.name){if(x.state===Hf)return r2(a);x.state===o2?(x.state=Ff,x.timer.stop(),x.on.call("interrupt",e,e.__data__,x.index,x.group),delete i[h]):+hRv&&i.state=0&&(t=t.slice(0,n)),!t||t==="start"})}function kY(e,t,n){var i,r,o=_Y(t)?q0:cs;return function(){var a=o(this,e),c=a.on;c!==i&&(r=(i=c).copy()).on(t,n),a.on=r}}function SY(e,t){var n=this._id;return arguments.length<2?Ur(this.node(),n).on.on(e):this.each(kY(n,e,t))}function wY(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function CY(){return this.on("end.remove",wY(this._id))}function jY(e){var t=this._name,n=this._id;typeof e!="function"&&(e=H0(e));for(var i=this._groups,r=i.length,o=new Array(r),a=0;a()=>e;function ZY(e,{sourceEvent:t,target:n,transform:i,dispatch:r}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:i,enumerable:!0,configurable:!0},_:{value:r}})}function As(e,t,n){this.k=e,this.x=t,this.y=n}As.prototype={constructor:As,scale:function(e){return e===1?this:new As(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new As(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 ip=new As(1,0,0);GT.prototype=As.prototype;function GT(e){for(;!e.__zoom;)if(!(e=e.parentNode))return ip;return e.__zoom}function Dy(e){e.stopImmediatePropagation()}function Qc(e){e.preventDefault(),e.stopImmediatePropagation()}function QY(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function JY(){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 a2(){return this.__zoom||ip}function eX(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function tX(){return navigator.maxTouchPoints||"ontouchstart"in this}function nX(e,t,n){var i=e.invertX(t[0][0])-n[0][0],r=e.invertX(t[1][0])-n[1][0],o=e.invertY(t[0][1])-n[0][1],a=e.invertY(t[1][1])-n[1][1];return e.translate(r>i?(i+r)/2:Math.min(0,i)||Math.max(0,r),a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a))}function qT(){var e=QY,t=JY,n=nX,i=eX,r=tX,o=[0,1/0],a=[[-1/0,-1/0],[1/0,1/0]],c=250,d=$f,m=Jm("start","zoom","end"),h,p,g,x=500,v=150,b=0,w=10;function k(P){P.property("__zoom",a2).on("wheel.zoom",O,{passive:!1}).on("mousedown.zoom",T).on("dblclick.zoom",M).filter(r).on("touchstart.zoom",I).on("touchmove.zoom",H).on("touchend.zoom touchcancel.zoom",Y).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}k.transform=function(P,U,$,G){var q=P.selection?P.selection():P;q.property("__zoom",a2),P!==q?L(P,U,$,G):q.interrupt().each(function(){A(this,arguments).event(G).start().zoom(null,typeof U=="function"?U.apply(this,arguments):U).end()})},k.scaleBy=function(P,U,$,G){k.scaleTo(P,function(){var q=this.__zoom.k,K=typeof U=="function"?U.apply(this,arguments):U;return q*K},$,G)},k.scaleTo=function(P,U,$,G){k.transform(P,function(){var q=t.apply(this,arguments),K=this.__zoom,W=$==null?N(q):typeof $=="function"?$.apply(this,arguments):$,V=K.invert(W),Q=typeof U=="function"?U.apply(this,arguments):U;return n(j(S(K,Q),W,V),q,a)},$,G)},k.translateBy=function(P,U,$,G){k.transform(P,function(){return n(this.__zoom.translate(typeof U=="function"?U.apply(this,arguments):U,typeof $=="function"?$.apply(this,arguments):$),t.apply(this,arguments),a)},null,G)},k.translateTo=function(P,U,$,G,q){k.transform(P,function(){var K=t.apply(this,arguments),W=this.__zoom,V=G==null?N(K):typeof G=="function"?G.apply(this,arguments):G;return n(ip.translate(V[0],V[1]).scale(W.k).translate(typeof U=="function"?-U.apply(this,arguments):-U,typeof $=="function"?-$.apply(this,arguments):-$),K,a)},G,q)};function S(P,U){return U=Math.max(o[0],Math.min(o[1],U)),U===P.k?P:new As(U,P.x,P.y)}function j(P,U,$){var G=U[0]-$[0]*P.k,q=U[1]-$[1]*P.k;return G===P.x&&q===P.y?P:new As(P.k,G,q)}function N(P){return[(+P[0][0]+ +P[1][0])/2,(+P[0][1]+ +P[1][1])/2]}function L(P,U,$,G){P.on("start.zoom",function(){A(this,arguments).event(G).start()}).on("interrupt.zoom end.zoom",function(){A(this,arguments).event(G).end()}).tween("zoom",function(){var q=this,K=arguments,W=A(q,K).event(G),V=t.apply(q,K),Q=$==null?N(V):typeof $=="function"?$.apply(q,K):$,B=Math.max(V[1][0]-V[0][0],V[1][1]-V[0][1]),Z=q.__zoom,te=typeof U=="function"?U.apply(q,K):U,ee=d(Z.invert(Q).concat(B/Z.k),te.invert(Q).concat(B/te.k));return function(se){if(se===1)se=te;else{var ae=ee(se),ue=B/ae[2];se=new As(ue,Q[0]-ae[0]*ue,Q[1]-ae[1]*ue)}W.zoom(null,se)}})}function A(P,U,$){return!$&&P.__zooming||new D(P,U)}function D(P,U){this.that=P,this.args=U,this.active=0,this.sourceEvent=null,this.extent=t.apply(P,U),this.taps=0}D.prototype={event:function(P){return P&&(this.sourceEvent=P),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(P,U){return this.mouse&&P!=="mouse"&&(this.mouse[1]=U.invert(this.mouse[0])),this.touch0&&P!=="touch"&&(this.touch0[1]=U.invert(this.touch0[0])),this.touch1&&P!=="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(P){var U=cr(this.that).datum();m.call(P,this.that,new ZY(P,{sourceEvent:this.sourceEvent,target:k,transform:this.that.__zoom,dispatch:m}),U)}};function O(P,...U){if(!e.apply(this,arguments))return;var $=A(this,U).event(P),G=this.__zoom,q=Math.max(o[0],Math.min(o[1],G.k*Math.pow(2,i.apply(this,arguments)))),K=Dr(P);if($.wheel)($.mouse[0][0]!==K[0]||$.mouse[0][1]!==K[1])&&($.mouse[1]=G.invert($.mouse[0]=K)),clearTimeout($.wheel);else{if(G.k===q)return;$.mouse=[K,G.invert(K)],Vf(this),$.start()}Qc(P),$.wheel=setTimeout(W,v),$.zoom("mouse",n(j(S(G,q),$.mouse[0],$.mouse[1]),$.extent,a));function W(){$.wheel=null,$.end()}}function T(P,...U){if(g||!e.apply(this,arguments))return;var $=P.currentTarget,G=A(this,U,!0).event(P),q=cr(P.view).on("mousemove.zoom",Q,!0).on("mouseup.zoom",B,!0),K=Dr(P,$),W=P.clientX,V=P.clientY;IT(P.view),Dy(P),G.mouse=[K,this.__zoom.invert(K)],Vf(this),G.start();function Q(Z){if(Qc(Z),!G.moved){var te=Z.clientX-W,ee=Z.clientY-V;G.moved=te*te+ee*ee>b}G.event(Z).zoom("mouse",n(j(G.that.__zoom,G.mouse[0]=Dr(Z,$),G.mouse[1]),G.extent,a))}function B(Z){q.on("mousemove.zoom mouseup.zoom",null),TT(Z.view,G.moved),Qc(Z),G.event(Z).end()}}function M(P,...U){if(e.apply(this,arguments)){var $=this.__zoom,G=Dr(P.changedTouches?P.changedTouches[0]:P,this),q=$.invert(G),K=$.k*(P.shiftKey?.5:2),W=n(j(S($,K),G,q),t.apply(this,U),a);Qc(P),c>0?cr(this).transition().duration(c).call(L,W,G,P):cr(this).call(k.transform,W,G,P)}}function I(P,...U){if(e.apply(this,arguments)){var $=P.touches,G=$.length,q=A(this,U,P.changedTouches.length===G).event(P),K,W,V,Q;for(Dy(P),W=0;W"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:i})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:i}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs."},Du=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],WT=["Enter"," ","Escape"],YT={"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 Ml;(function(e){e.Strict="strict",e.Loose="loose"})(Ml||(Ml={}));var aa;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(aa||(aa={}));var Ou;(function(e){e.Partial="partial",e.Full="full"})(Ou||(Ou={}));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 yo;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(yo||(yo={}));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 l2={[lt.Left]:lt.Right,[lt.Right]:lt.Left,[lt.Top]:lt.Bottom,[lt.Bottom]:lt.Top};function KT(e){return e===null?null:e?"valid":"invalid"}const ZT=e=>"id"in e&&"source"in e&&"target"in e,iX=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),Y0=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),Wu=(e,t=[0,0])=>{const{width:n,height:i}=Ls(e),r=e.origin??t,o=n*r[0],a=i*r[1];return{x:e.position.x-o,y:e.position.y-a}},rX=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((i,r)=>{const o=typeof r=="string";let a=!t.nodeLookup&&!o?r:void 0;t.nodeLookup&&(a=o?t.nodeLookup.get(r):Y0(r)?r:t.nodeLookup.get(r.id));const c=a?wm(a,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return rp(i,c)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return sp(n)},Yu=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},i=!1;return e.forEach(r=>{(t.filter===void 0||t.filter(r))&&(n=rp(n,wm(r)),i=!0)}),i?sp(n):{x:0,y:0,width:0,height:0}},X0=(e,t,[n,i,r]=[0,0,1],o=!1,a=!1)=>{const c={...Ku(t,[n,i,r]),width:t.width/r,height:t.height/r},d=[];for(const m of e.values()){const{measured:h,selectable:p=!0,hidden:g=!1}=m;if(a&&!p||g)continue;const x=h.width??m.width??m.initialWidth??null,v=h.height??m.height??m.initialHeight??null,b=Lu(c,Ol(m)),w=(x??0)*(v??0),k=o&&b>0;(!m.internals.handleBounds||k||b>=w||m.dragging)&&d.push(m)}return d},sX=(e,t)=>{const n=new Set;return e.forEach(i=>{n.add(i.id)}),t.filter(i=>n.has(i.source)||n.has(i.target))};function oX(e,t){const n=new Map,i=t?.nodes?new Set(t.nodes.map(r=>r.id)):null;return e.forEach(r=>{r.measured.width&&r.measured.height&&(t?.includeHiddenNodes||!r.hidden)&&(!i||i.has(r.id))&&n.set(r.id,r)}),n}async function aX({nodes:e,width:t,height:n,panZoom:i,minZoom:r,maxZoom:o},a){if(e.size===0)return Promise.resolve(!0);const c=oX(e,a),d=Yu(c),m=K0(d,t,n,a?.minZoom??r,a?.maxZoom??o,a?.padding??.1);return await i.setViewport(m,{duration:a?.duration,ease:a?.ease,interpolate:a?.interpolate}),Promise.resolve(!0)}function QT({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:i=[0,0],nodeExtent:r,onError:o}){const a=n.get(e),c=a.parentId?n.get(a.parentId):void 0,{x:d,y:m}=c?c.internals.positionAbsolute:{x:0,y:0},h=a.origin??i;let p=a.extent||r;if(a.extent==="parent"&&!a.expandParent)if(!c)o?.("005",as.error005());else{const x=c.measured.width,v=c.measured.height;x&&v&&(p=[[d,m],[d+x,m+v]])}else c&&Ll(a.extent)&&(p=[[a.extent[0][0]+d,a.extent[0][1]+m],[a.extent[1][0]+d,a.extent[1][1]+m]]);const g=Ll(p)?fa(t,p,a.measured):t;return(a.measured.width===void 0||a.measured.height===void 0)&&o?.("015",as.error015()),{position:{x:g.x-d+(a.measured.width??0)*h[0],y:g.y-m+(a.measured.height??0)*h[1]},positionAbsolute:g}}async function lX({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:i,onBeforeDelete:r}){const o=new Set(e.map(g=>g.id)),a=[];for(const g of n){if(g.deletable===!1)continue;const x=o.has(g.id),v=!x&&g.parentId&&a.find(b=>b.id===g.parentId);(x||v)&&a.push(g)}const c=new Set(t.map(g=>g.id)),d=i.filter(g=>g.deletable!==!1),h=sX(a,d);for(const g of d)c.has(g.id)&&!h.find(v=>v.id===g.id)&&h.push(g);if(!r)return{edges:h,nodes:a};const p=await r({nodes:a,edges:h});return typeof p=="boolean"?p?{edges:h,nodes:a}:{edges:[],nodes:[]}:p}const Dl=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),fa=(e={x:0,y:0},t,n)=>({x:Dl(e.x,t[0][0],t[1][0]-(n?.width??0)),y:Dl(e.y,t[0][1],t[1][1]-(n?.height??0))});function JT(e,t,n){const{width:i,height:r}=Ls(n),{x:o,y:a}=n.internals.positionAbsolute;return fa(e,[[o,a],[o+i,a+r]],t)}const c2=(e,t,n)=>en?-Dl(Math.abs(e-n),1,t)/t:0,eR=(e,t,n=15,i=40)=>{const r=c2(e.x,i,t.width-i)*n,o=c2(e.y,i,t.height-i)*n;return[r,o]},rp=(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)}),Mv=({x:e,y:t,width:n,height:i})=>({x:e,y:t,x2:e+n,y2:t+i}),sp=({x:e,y:t,x2:n,y2:i})=>({x:e,y:t,width:n-e,height:i-t}),Ol=(e,t=[0,0])=>{const{x:n,y:i}=Y0(e)?e.internals.positionAbsolute:Wu(e,t);return{x:n,y:i,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},wm=(e,t=[0,0])=>{const{x:n,y:i}=Y0(e)?e.internals.positionAbsolute:Wu(e,t);return{x:n,y:i,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:i+(e.measured?.height??e.height??e.initialHeight??0)}},tR=(e,t)=>sp(rp(Mv(e),Mv(t))),Lu=(e,t)=>{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),i=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*i)},u2=e=>Pr(e.width)&&Pr(e.height)&&Pr(e.x)&&Pr(e.y),Pr=e=>!isNaN(e)&&isFinite(e),cX=(e,t)=>{},Xu=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),Ku=({x:e,y:t},[n,i,r],o=!1,a=[1,1])=>{const c={x:(e-n)/r,y:(t-i)/r};return o?Xu(c,a):c},Cm=({x:e,y:t},[n,i,r])=>({x:e*r+n,y:t*r+i});function nl(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 uX(e,t,n){if(typeof e=="string"||typeof e=="number"){const i=nl(e,n),r=nl(e,t);return{top:i,right:r,bottom:i,left:r,x:r*2,y:i*2}}if(typeof e=="object"){const i=nl(e.top??e.y??0,n),r=nl(e.bottom??e.y??0,n),o=nl(e.left??e.x??0,t),a=nl(e.right??e.x??0,t);return{top:i,right:a,bottom:r,left:o,x:o+a,y:i+r}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function dX(e,t,n,i,r,o){const{x:a,y:c}=Cm(e,[t,n,i]),{x:d,y:m}=Cm({x:e.x+e.width,y:e.y+e.height},[t,n,i]),h=r-d,p=o-m;return{left:Math.floor(a),top:Math.floor(c),right:Math.floor(h),bottom:Math.floor(p)}}const K0=(e,t,n,i,r,o)=>{const a=uX(o,t,n),c=(t-a.x)/e.width,d=(n-a.y)/e.height,m=Math.min(c,d),h=Dl(m,i,r),p=e.x+e.width/2,g=e.y+e.height/2,x=t/2-p*h,v=n/2-g*h,b=dX(e,x,v,h,t,n),w={left:Math.min(b.left-a.left,0),top:Math.min(b.top-a.top,0),right:Math.min(b.right-a.right,0),bottom:Math.min(b.bottom-a.bottom,0)};return{x:x-w.left+w.right,y:v-w.top+w.bottom,zoom:h}},zu=()=>typeof navigator<"u"&&navigator?.userAgent?.indexOf("Mac")>=0;function Ll(e){return e!=null&&e!=="parent"}function Ls(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function nR(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function iR(e,t={width:0,height:0},n,i,r){const o={...e},a=i.get(n);if(a){const c=a.origin||r;o.x+=a.internals.positionAbsolute.x-(t.width??0)*c[0],o.y+=a.internals.positionAbsolute.y-(t.height??0)*c[1]}return o}function d2(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function fX(){let e,t;return{promise:new Promise((i,r)=>{e=i,t=r}),resolve:e,reject:t}}function mX(e){return{...YT,...e||{}}}function gu(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:i,containerBounds:r}){const{x:o,y:a}=Br(e),c=Ku({x:o-(r?.left??0),y:a-(r?.top??0)},i),{x:d,y:m}=n?Xu(c,t):c;return{xSnapped:d,ySnapped:m,...c}}const Z0=e=>({width:e.offsetWidth,height:e.offsetHeight}),rR=e=>e?.getRootNode?.()||window?.document,pX=["INPUT","SELECT","TEXTAREA"];function sR(e){const t=e.composedPath?.()?.[0]||e.target;return t?.nodeType!==1?!1:pX.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const oR=e=>"clientX"in e,Br=(e,t)=>{const n=oR(e),i=n?e.clientX:e.touches?.[0].clientX,r=n?e.clientY:e.touches?.[0].clientY;return{x:i-(t?.left??0),y:r-(t?.top??0)}},f2=(e,t,n,i,r)=>{const o=t.querySelectorAll(`.${e}`);return!o||!o.length?null:Array.from(o).map(a=>{const c=a.getBoundingClientRect();return{id:a.getAttribute("data-handleid"),type:e,nodeId:r,position:a.getAttribute("data-handlepos"),x:(c.left-n.left)/i,y:(c.top-n.top)/i,...Z0(a)}})};function aR({sourceX:e,sourceY:t,targetX:n,targetY:i,sourceControlX:r,sourceControlY:o,targetControlX:a,targetControlY:c}){const d=e*.125+r*.375+a*.375+n*.125,m=t*.125+o*.375+c*.375+i*.125,h=Math.abs(d-e),p=Math.abs(m-t);return[d,m,h,p]}function jf(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function m2({pos:e,x1:t,y1:n,x2:i,y2:r,c:o}){switch(e){case lt.Left:return[t-jf(t-i,o),n];case lt.Right:return[t+jf(i-t,o),n];case lt.Top:return[t,n-jf(n-r,o)];case lt.Bottom:return[t,n+jf(r-n,o)]}}function lR({sourceX:e,sourceY:t,sourcePosition:n=lt.Bottom,targetX:i,targetY:r,targetPosition:o=lt.Top,curvature:a=.25}){const[c,d]=m2({pos:n,x1:e,y1:t,x2:i,y2:r,c:a}),[m,h]=m2({pos:o,x1:i,y1:r,x2:e,y2:t,c:a}),[p,g,x,v]=aR({sourceX:e,sourceY:t,targetX:i,targetY:r,sourceControlX:c,sourceControlY:d,targetControlX:m,targetControlY:h});return[`M${e},${t} C${c},${d} ${m},${h} ${i},${r}`,p,g,x,v]}function cR({sourceX:e,sourceY:t,targetX:n,targetY:i}){const r=Math.abs(n-e)/2,o=n0}const yX=({source:e,sourceHandle:t,target:n,targetHandle:i})=>`xy-edge__${e}${t||""}-${n}${i||""}`,xX=(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)),vX=(e,t,n={})=>{if(!e.source||!e.target)return t;const i=n.getEdgeId||yX;let r;return ZT(e)?r={...e}:r={...e,id:i(e)},xX(r,t)?t:(r.sourceHandle===null&&delete r.sourceHandle,r.targetHandle===null&&delete r.targetHandle,t.concat(r))};function uR({sourceX:e,sourceY:t,targetX:n,targetY:i}){const[r,o,a,c]=cR({sourceX:e,sourceY:t,targetX:n,targetY:i});return[`M ${e},${t}L ${n},${i}`,r,o,a,c]}const p2={[lt.Left]:{x:-1,y:0},[lt.Right]:{x:1,y:0},[lt.Top]:{x:0,y:-1},[lt.Bottom]:{x:0,y:1}},bX=({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 _X({source:e,sourcePosition:t=lt.Bottom,target:n,targetPosition:i=lt.Top,center:r,offset:o,stepPosition:a}){const c=p2[t],d=p2[i],m={x:e.x+c.x*o,y:e.y+c.y*o},h={x:n.x+d.x*o,y:n.y+d.y*o},p=bX({source:m,sourcePosition:t,target:h}),g=p.x!==0?"x":"y",x=p[g];let v=[],b,w;const k={x:0,y:0},S={x:0,y:0},[,,j,N]=cR({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(c[g]*d[g]===-1){g==="x"?(b=r.x??m.x+(h.x-m.x)*a,w=r.y??(m.y+h.y)/2):(b=r.x??(m.x+h.x)/2,w=r.y??m.y+(h.y-m.y)*a);const O=[{x:b,y:m.y},{x:b,y:h.y}],T=[{x:m.x,y:w},{x:h.x,y:w}];c[g]===x?v=g==="x"?O:T:v=g==="x"?T:O}else{const O=[{x:m.x,y:h.y}],T=[{x:h.x,y:m.y}];if(g==="x"?v=c.x===x?T:O:v=c.y===x?O:T,t===i){const P=Math.abs(e[g]-n[g]);if(P<=o){const U=Math.min(o-1,o-P);c[g]===x?k[g]=(m[g]>e[g]?-1:1)*U:S[g]=(h[g]>n[g]?-1:1)*U}}if(t!==i){const P=g==="x"?"y":"x",U=c[g]===d[P],$=m[P]>h[P],G=m[P]=Y?(b=(M.x+I.x)/2,w=v[0].y):(b=v[0].x,w=(M.y+I.y)/2)}const L={x:m.x+k.x,y:m.y+k.y},A={x:h.x+S.x,y:h.y+S.y};return[[e,...L.x!==v[0].x||L.y!==v[0].y?[L]:[],...v,...A.x!==v[v.length-1].x||A.y!==v[v.length-1].y?[A]:[],n],b,w,j,N]}function kX(e,t,n,i){const r=Math.min(h2(e,t)/2,h2(t,n)/2,i),{x:o,y:a}=t;if(e.x===o&&o===n.x||e.y===a&&a===n.y)return`L${o} ${a}`;if(e.y===a){const m=e.xn.id===t):e[0])||null}function Ov(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(i=>`${i}=${e[i]}`).join("&")}`:""}function wX(e,{id:t,defaultColor:n,defaultMarkerStart:i,defaultMarkerEnd:r}){const o=new Set;return e.reduce((a,c)=>([c.markerStart||i,c.markerEnd||r].forEach(d=>{if(d&&typeof d=="object"){const m=Ov(d,t);o.has(m)||(a.push({id:m,color:d.color||n,...d}),o.add(m))}}),a),[]).sort((a,c)=>a.id.localeCompare(c.id))}const dR=1e3,CX=10,Q0={nodeOrigin:[0,0],nodeExtent:Du,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},jX={...Q0,checkEquality:!0};function J0(e,t){const n={...e};for(const i in t)t[i]!==void 0&&(n[i]=t[i]);return n}function EX(e,t,n){const i=J0(Q0,n);for(const r of e.values())if(r.parentId)tb(r,e,t,i);else{const o=Wu(r,i.nodeOrigin),a=Ll(r.extent)?r.extent:i.nodeExtent,c=fa(o,a,Ls(r));r.internals.positionAbsolute=c}}function NX(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;const n=[],i=[];for(const r of e.handles){const o={id:r.id,width:r.width??1,height:r.height??1,nodeId:e.id,x:r.x,y:r.y,position:r.position,type:r.type};r.type==="source"?n.push(o):r.type==="target"&&i.push(o)}return{source:n,target:i}}function eb(e){return e==="manual"}function Lv(e,t,n,i={}){const r=J0(jX,i),o={i:0},a=new Map(t),c=r?.elevateNodesOnSelect&&!eb(r.zIndexMode)?dR:0;let d=e.length>0,m=!1;t.clear(),n.clear();for(const h of e){let p=a.get(h.id);if(r.checkEquality&&h===p?.internals.userNode)t.set(h.id,p);else{const g=Wu(h,r.nodeOrigin),x=Ll(h.extent)?h.extent:r.nodeExtent,v=fa(g,x,Ls(h));p={...r.defaults,...h,measured:{width:h.measured?.width,height:h.measured?.height},internals:{positionAbsolute:v,handleBounds:NX(h,p),z:fR(h,c,r.zIndexMode),userNode:h}},t.set(h.id,p)}(p.measured===void 0||p.measured.width===void 0||p.measured.height===void 0)&&!p.hidden&&(d=!1),h.parentId&&tb(p,t,n,i,o),m||=h.selected??!1}return{nodesInitialized:d,hasSelectedNodes:m}}function IX(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 tb(e,t,n,i,r){const{elevateNodesOnSelect:o,nodeOrigin:a,nodeExtent:c,zIndexMode:d}=J0(Q0,i),m=e.parentId,h=t.get(m);if(!h){console.warn(`Parent node ${m} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}IX(e,n),r&&!h.parentId&&h.internals.rootParentIndex===void 0&&d==="auto"&&(h.internals.rootParentIndex=++r.i,h.internals.z=h.internals.z+r.i*CX),r&&h.internals.rootParentIndex!==void 0&&(r.i=h.internals.rootParentIndex);const p=o&&!eb(d)?dR:0,{x:g,y:x,z:v}=TX(e,h,a,c,p,d),{positionAbsolute:b}=e.internals,w=g!==b.x||x!==b.y;(w||v!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:w?{x:g,y:x}:b,z:v}})}function fR(e,t,n){const i=Pr(e.zIndex)?e.zIndex:0;return eb(n)?i:i+(e.selected?t:0)}function TX(e,t,n,i,r,o){const{x:a,y:c}=t.internals.positionAbsolute,d=Ls(e),m=Wu(e,n),h=Ll(e.extent)?fa(m,e.extent,d):m;let p=fa({x:a+h.x,y:c+h.y},i,d);e.extent==="parent"&&(p=JT(p,d,t));const g=fR(e,r,o),x=t.internals.z??0;return{x:p.x,y:p.y,z:x>=g?x+1:g}}function nb(e,t,n,i=[0,0]){const r=[],o=new Map;for(const a of e){const c=t.get(a.parentId);if(!c)continue;const d=o.get(a.parentId)?.expandedRect??Ol(c),m=tR(d,a.rect);o.set(a.parentId,{expandedRect:m,parent:c})}return o.size>0&&o.forEach(({expandedRect:a,parent:c},d)=>{const m=c.internals.positionAbsolute,h=Ls(c),p=c.origin??i,g=a.x0||x>0||w||k)&&(r.push({id:d,type:"position",position:{x:c.position.x-g+w,y:c.position.y-x+k}}),n.get(d)?.forEach(S=>{e.some(j=>j.id===S.id)||r.push({id:S.id,type:"position",position:{x:S.position.x+g,y:S.position.y+x}})})),(h.width0){const x=nb(g,t,n,r);m.push(...x)}return{changes:m,updatedInternals:d}}async function AX({delta:e,panZoom:t,transform:n,translateExtent:i,width:r,height:o}){if(!t||!e.x&&!e.y)return Promise.resolve(!1);const a=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[r,o]],i),c=!!a&&(a.x!==n[0]||a.y!==n[1]||a.k!==n[2]);return Promise.resolve(c)}function v2(e,t,n,i,r,o){let a=r;const c=i.get(a)||new Map;i.set(a,c.set(n,t)),a=`${r}-${e}`;const d=i.get(a)||new Map;if(i.set(a,d.set(n,t)),o){a=`${r}-${e}-${o}`;const m=i.get(a)||new Map;i.set(a,m.set(n,t))}}function mR(e,t,n){e.clear(),t.clear();for(const i of n){const{source:r,target:o,sourceHandle:a=null,targetHandle:c=null}=i,d={edgeId:i.id,source:r,target:o,sourceHandle:a,targetHandle:c},m=`${r}-${a}--${o}-${c}`,h=`${o}-${c}--${r}-${a}`;v2("source",d,h,e,r,a),v2("target",d,m,e,o,c),t.set(i.id,i)}}function pR(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:pR(n,t):!1}function b2(e,t,n){let i=e;do{if(i?.matches?.(t))return!0;if(i===n)return!1;i=i?.parentElement}while(i);return!1}function MX(e,t,n,i){const r=new Map;for(const[o,a]of e)if((a.selected||a.id===i)&&(!a.parentId||!pR(a,e))&&(a.draggable||t&&typeof a.draggable>"u")){const c=e.get(o);c&&r.set(o,{id:o,position:c.position||{x:0,y:0},distance:{x:n.x-c.internals.positionAbsolute.x,y:n.y-c.internals.positionAbsolute.y},extent:c.extent,parentId:c.parentId,origin:c.origin,expandParent:c.expandParent,internals:{positionAbsolute:c.internals.positionAbsolute||{x:0,y:0}},measured:{width:c.measured.width??0,height:c.measured.height??0}})}return r}function Oy({nodeId:e,dragItems:t,nodeLookup:n,dragging:i=!0}){const r=[];for(const[a,c]of t){const d=n.get(a)?.internals.userNode;d&&r.push({...d,position:c.position,dragging:i})}if(!e)return[r[0],r];const o=n.get(e)?.internals.userNode;return[o?{...o,position:t.get(e)?.position||o.position,dragging:i}:r[0],r]}function DX({dragItems:e,snapGrid:t,x:n,y:i}){const r=e.values().next().value;if(!r)return null;const o={x:n-r.distance.x,y:i-r.distance.y},a=Xu(o,t);return{x:a.x-o.x,y:a.y-o.y}}function OX({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:i,onDragStop:r}){let o={x:null,y:null},a=0,c=new Map,d=!1,m={x:0,y:0},h=null,p=!1,g=null,x=!1,v=!1,b=null;function w({noDragClassName:S,handleSelector:j,domNode:N,isSelectable:L,nodeId:A,nodeClickDistance:D=0}){g=cr(N);function O({x:H,y:Y}){const{nodeLookup:P,nodeExtent:U,snapGrid:$,snapToGrid:G,nodeOrigin:q,onNodeDrag:K,onSelectionDrag:W,onError:V,updateNodePositions:Q}=t();o={x:H,y:Y};let B=!1;const Z=c.size>1,te=Z&&U?Mv(Yu(c)):null,ee=Z&&G?DX({dragItems:c,snapGrid:$,x:H,y:Y}):null;for(const[se,ae]of c){if(!P.has(se))continue;let ue={x:H-ae.distance.x,y:Y-ae.distance.y};G&&(ue=ee?{x:Math.round(ue.x+ee.x),y:Math.round(ue.y+ee.y)}:Xu(ue,$));let ie=null;if(Z&&U&&!ae.extent&&te){const{positionAbsolute:Re}=ae.internals,Ve=Re.x-te.x+U[0][0],Ge=Re.x+ae.measured.width-te.x2+U[1][0],qe=Re.y-te.y+U[0][1],_t=Re.y+ae.measured.height-te.y2+U[1][1];ie=[[Ve,qe],[Ge,_t]]}const{position:je,positionAbsolute:we}=QT({nodeId:se,nextPosition:ue,nodeLookup:P,nodeExtent:ie||U,nodeOrigin:q,onError:V});B=B||ae.position.x!==je.x||ae.position.y!==je.y,ae.position=je,ae.internals.positionAbsolute=we}if(v=v||B,!!B&&(Q(c,!0),b&&(i||K||!A&&W))){const[se,ae]=Oy({nodeId:A,dragItems:c,nodeLookup:P});i?.(b,c,se,ae),K?.(b,se,ae),A||W?.(b,ae)}}async function T(){if(!h)return;const{transform:H,panBy:Y,autoPanSpeed:P,autoPanOnNodeDrag:U}=t();if(!U){d=!1,cancelAnimationFrame(a);return}const[$,G]=eR(m,h,P);($!==0||G!==0)&&(o.x=(o.x??0)-$/H[2],o.y=(o.y??0)-G/H[2],await Y({x:$,y:G})&&O(o)),a=requestAnimationFrame(T)}function M(H){const{nodeLookup:Y,multiSelectionActive:P,nodesDraggable:U,transform:$,snapGrid:G,snapToGrid:q,selectNodesOnDrag:K,onNodeDragStart:W,onSelectionDragStart:V,unselectNodesAndEdges:Q}=t();p=!0,(!K||!L)&&!P&&A&&(Y.get(A)?.selected||Q()),L&&K&&A&&e?.(A);const B=gu(H.sourceEvent,{transform:$,snapGrid:G,snapToGrid:q,containerBounds:h});if(o=B,c=MX(Y,U,B,A),c.size>0&&(n||W||!A&&V)){const[Z,te]=Oy({nodeId:A,dragItems:c,nodeLookup:Y});n?.(H.sourceEvent,c,Z,te),W?.(H.sourceEvent,Z,te),A||V?.(H.sourceEvent,te)}}const I=RT().clickDistance(D).on("start",H=>{const{domNode:Y,nodeDragThreshold:P,transform:U,snapGrid:$,snapToGrid:G}=t();h=Y?.getBoundingClientRect()||null,x=!1,v=!1,b=H.sourceEvent,P===0&&M(H),o=gu(H.sourceEvent,{transform:U,snapGrid:$,snapToGrid:G,containerBounds:h}),m=Br(H.sourceEvent,h)}).on("drag",H=>{const{autoPanOnNodeDrag:Y,transform:P,snapGrid:U,snapToGrid:$,nodeDragThreshold:G,nodeLookup:q}=t(),K=gu(H.sourceEvent,{transform:P,snapGrid:U,snapToGrid:$,containerBounds:h});if(b=H.sourceEvent,(H.sourceEvent.type==="touchmove"&&H.sourceEvent.touches.length>1||A&&!q.has(A))&&(x=!0),!x){if(!d&&Y&&p&&(d=!0,T()),!p){const W=Br(H.sourceEvent,h),V=W.x-m.x,Q=W.y-m.y;Math.sqrt(V*V+Q*Q)>G&&M(H)}(o.x!==K.xSnapped||o.y!==K.ySnapped)&&c&&p&&(m=Br(H.sourceEvent,h),O(K))}}).on("end",H=>{if(!(!p||x)&&(d=!1,p=!1,cancelAnimationFrame(a),c.size>0)){const{nodeLookup:Y,updateNodePositions:P,onNodeDragStop:U,onSelectionDragStop:$}=t();if(v&&(P(c,!1),v=!1),r||U||!A&&$){const[G,q]=Oy({nodeId:A,dragItems:c,nodeLookup:Y,dragging:!1});r?.(H.sourceEvent,c,G,q),U?.(H.sourceEvent,G,q),A||$?.(H.sourceEvent,q)}}}).filter(H=>{const Y=H.target;return!H.button&&(!S||!b2(Y,`.${S}`,N))&&(!j||b2(Y,j,N))});g.call(I)}function k(){g?.on(".drag",null)}return{update:w,destroy:k}}function LX(e,t,n){const i=[],r={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const o of t.values())Lu(r,Ol(o))>0&&i.push(o);return i}const zX=250;function PX(e,t,n,i){let r=[],o=1/0;const a=LX(e,n,t+zX);for(const c of a){const d=[...c.internals.handleBounds?.source??[],...c.internals.handleBounds?.target??[]];for(const m of d){if(i.nodeId===m.nodeId&&i.type===m.type&&i.id===m.id)continue;const{x:h,y:p}=ma(c,m,m.position,!0),g=Math.sqrt(Math.pow(h-e.x,2)+Math.pow(p-e.y,2));g>t||(g1){const c=i.type==="source"?"target":"source";return r.find(d=>d.type===c)??r[0]}return r[0]}function hR(e,t,n,i,r,o=!1){const a=i.get(e);if(!a)return null;const c=r==="strict"?a.internals.handleBounds?.[t]:[...a.internals.handleBounds?.source??[],...a.internals.handleBounds?.target??[]],d=(n?c?.find(m=>m.id===n):c?.[0])??null;return d&&o?{...d,...ma(a,d,d.position,!0)}:d}function gR(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function BX(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const yR=()=>!0;function $X(e,{connectionMode:t,connectionRadius:n,handleId:i,nodeId:r,edgeUpdaterType:o,isTarget:a,domNode:c,nodeLookup:d,lib:m,autoPanOnConnect:h,flowId:p,panBy:g,cancelConnection:x,onConnectStart:v,onConnect:b,onConnectEnd:w,isValidConnection:k=yR,onReconnectEnd:S,updateConnection:j,getTransform:N,getFromHandle:L,autoPanSpeed:A,dragThreshold:D=1,handleDomNode:O}){const T=rR(e.target);let M=0,I;const{x:H,y:Y}=Br(e),P=gR(o,O),U=c?.getBoundingClientRect();let $=!1;if(!U||!P)return;const G=hR(r,P,i,d,t);if(!G)return;let q=Br(e,U),K=!1,W=null,V=!1,Q=null;function B(){if(!h||!U)return;const[je,we]=eR(q,U,A);g({x:je,y:we}),M=requestAnimationFrame(B)}const Z={...G,nodeId:r,type:P,position:G.position},te=d.get(r);let se={inProgress:!0,isValid:null,from:ma(te,Z,lt.Left,!0),fromHandle:Z,fromPosition:Z.position,fromNode:te,to:q,toHandle:null,toPosition:l2[Z.position],toNode:null,pointer:q};function ae(){$=!0,j(se),v?.(e,{nodeId:r,handleId:i,handleType:P})}D===0&&ae();function ue(je){if(!$){const{x:_t,y:$t}=Br(je),Ht=_t-H,Gt=$t-Y;if(!(Ht*Ht+Gt*Gt>D*D))return;ae()}if(!L()||!Z){ie(je);return}const we=N();q=Br(je,U),I=PX(Ku(q,we,!1,[1,1]),n,d,Z),K||(B(),K=!0);const Re=xR(je,{handle:I,connectionMode:t,fromNodeId:r,fromHandleId:i,fromType:a?"target":"source",isValidConnection:k,doc:T,lib:m,flowId:p,nodeLookup:d});Q=Re.handleDomNode,W=Re.connection,V=BX(!!I,Re.isValid);const Ve=d.get(r),Ge=Ve?ma(Ve,Z,lt.Left,!0):se.from,qe={...se,from:Ge,isValid:V,to:Re.toHandle&&V?Cm({x:Re.toHandle.x,y:Re.toHandle.y},we):q,toHandle:Re.toHandle,toPosition:V&&Re.toHandle?Re.toHandle.position:l2[Z.position],toNode:Re.toHandle?d.get(Re.toHandle.nodeId):null,pointer:q};j(qe),se=qe}function ie(je){if(!("touches"in je&&je.touches.length>0)){if($){(I||Q)&&W&&V&&b?.(W);const{inProgress:we,...Re}=se,Ve={...Re,toPosition:se.toHandle?se.toPosition:null};w?.(je,Ve),o&&S?.(je,Ve)}x(),cancelAnimationFrame(M),K=!1,V=!1,W=null,Q=null,T.removeEventListener("mousemove",ue),T.removeEventListener("mouseup",ie),T.removeEventListener("touchmove",ue),T.removeEventListener("touchend",ie)}}T.addEventListener("mousemove",ue),T.addEventListener("mouseup",ie),T.addEventListener("touchmove",ue),T.addEventListener("touchend",ie)}function xR(e,{handle:t,connectionMode:n,fromNodeId:i,fromHandleId:r,fromType:o,doc:a,lib:c,flowId:d,isValidConnection:m=yR,nodeLookup:h}){const p=o==="target",g=t?a.querySelector(`.${c}-flow__handle[data-id="${d}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x,y:v}=Br(e),b=a.elementFromPoint(x,v),w=b?.classList.contains(`${c}-flow__handle`)?b:g,k={handleDomNode:w,isValid:!1,connection:null,toHandle:null};if(w){const S=gR(void 0,w),j=w.getAttribute("data-nodeid"),N=w.getAttribute("data-handleid"),L=w.classList.contains("connectable"),A=w.classList.contains("connectableend");if(!j||!S)return k;const D={source:p?j:i,sourceHandle:p?N:r,target:p?i:j,targetHandle:p?r:N};k.connection=D;const T=L&&A&&(n===Ml.Strict?p&&S==="source"||!p&&S==="target":j!==i||N!==r);k.isValid=T&&m(D),k.toHandle=hR(j,S,N,h,n,!0)}return k}const zv={onPointerDown:$X,isValid:xR};function HX({domNode:e,panZoom:t,getTransform:n,getViewScale:i}){const r=cr(e);function o({translateExtent:c,width:d,height:m,zoomStep:h=1,pannable:p=!0,zoomable:g=!0,inversePan:x=!1}){const v=j=>{if(j.sourceEvent.type!=="wheel"||!t)return;const N=n(),L=j.sourceEvent.ctrlKey&&zu()?10:1,A=-j.sourceEvent.deltaY*(j.sourceEvent.deltaMode===1?.05:j.sourceEvent.deltaMode?1:.002)*h,D=N[2]*Math.pow(2,A*L);t.scaleTo(D)};let b=[0,0];const w=j=>{(j.sourceEvent.type==="mousedown"||j.sourceEvent.type==="touchstart")&&(b=[j.sourceEvent.clientX??j.sourceEvent.touches[0].clientX,j.sourceEvent.clientY??j.sourceEvent.touches[0].clientY])},k=j=>{const N=n();if(j.sourceEvent.type!=="mousemove"&&j.sourceEvent.type!=="touchmove"||!t)return;const L=[j.sourceEvent.clientX??j.sourceEvent.touches[0].clientX,j.sourceEvent.clientY??j.sourceEvent.touches[0].clientY],A=[L[0]-b[0],L[1]-b[1]];b=L;const D=i()*Math.max(N[2],Math.log(N[2]))*(x?-1:1),O={x:N[0]-A[0]*D,y:N[1]-A[1]*D},T=[[0,0],[d,m]];t.setViewportConstrained({x:O.x,y:O.y,zoom:N[2]},T,c)},S=qT().on("start",w).on("zoom",p?k:null).on("zoom.wheel",g?v:null);r.call(S,{})}function a(){r.on("zoom",null)}return{update:o,destroy:a,pointer:Dr}}const op=e=>({x:e.x,y:e.y,zoom:e.k}),Ly=({x:e,y:t,zoom:n})=>ip.translate(e,t).scale(n),cl=(e,t)=>e.target.closest(`.${t}`),vR=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),FX=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,zy=(e,t=0,n=FX,i=()=>{})=>{const r=typeof t=="number"&&t>0;return r||i(),r?e.transition().duration(t).ease(n).on("end",i):e},bR=e=>{const t=e.ctrlKey&&zu()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function VX({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:i,panOnScrollMode:r,panOnScrollSpeed:o,zoomOnPinch:a,onPanZoomStart:c,onPanZoom:d,onPanZoomEnd:m}){return h=>{if(cl(h,t))return h.ctrlKey&&h.preventDefault(),!1;h.preventDefault(),h.stopImmediatePropagation();const p=n.property("__zoom").k||1;if(h.ctrlKey&&a){const w=Dr(h),k=bR(h),S=p*Math.pow(2,k);i.scaleTo(n,S,w,h);return}const g=h.deltaMode===1?20:1;let x=r===aa.Vertical?0:h.deltaX*g,v=r===aa.Horizontal?0:h.deltaY*g;!zu()&&h.shiftKey&&r!==aa.Vertical&&(x=h.deltaY*g,v=0),i.translateBy(n,-(x/p)*o,-(v/p)*o,{internal:!0});const b=op(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(d?.(h,b),e.panScrollTimeout=setTimeout(()=>{m?.(h,b),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,c?.(h,b))}}function UX({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(i,r){const o=i.type==="wheel",a=!t&&o&&!i.ctrlKey,c=cl(i,e);if(i.ctrlKey&&o&&c&&i.preventDefault(),a||c)return null;i.preventDefault(),n.call(this,i,r)}}function GX({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return i=>{if(i.sourceEvent?.internal)return;const r=op(i.transform);e.mouseButton=i.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=r,i.sourceEvent?.type==="mousedown"&&t(!0),n&&n?.(i.sourceEvent,r)}}function qX({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:i,onPanZoom:r}){return o=>{e.usedRightMouseButton=!!(n&&vR(t,e.mouseButton??0)),o.sourceEvent?.sync||i([o.transform.x,o.transform.y,o.transform.k]),r&&!o.sourceEvent?.internal&&r?.(o.sourceEvent,op(o.transform))}}function WX({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:i,onPanZoomEnd:r,onPaneContextMenu:o}){return a=>{if(!a.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,o&&vR(t,e.mouseButton??0)&&!e.usedRightMouseButton&&a.sourceEvent&&o(a.sourceEvent),e.usedRightMouseButton=!1,i(!1),r)){const c=op(a.transform);e.prevViewport=c,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{r?.(a.sourceEvent,c)},n?150:0)}}}function YX({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:i,panOnScroll:r,zoomOnDoubleClick:o,userSelectionActive:a,noWheelClassName:c,noPanClassName:d,lib:m,connectionInProgress:h}){return p=>{const g=e||t,x=n&&p.ctrlKey,v=p.type==="wheel";if(p.button===1&&p.type==="mousedown"&&(cl(p,`${m}-flow__node`)||cl(p,`${m}-flow__edge`)))return!0;if(!i&&!g&&!r&&!o&&!n||a||h&&!v||cl(p,c)&&v||cl(p,d)&&(!v||r&&v&&!e)||!n&&p.ctrlKey&&v)return!1;if(!n&&p.type==="touchstart"&&p.touches?.length>1)return p.preventDefault(),!1;if(!g&&!r&&!x&&v||!i&&(p.type==="mousedown"||p.type==="touchstart")||Array.isArray(i)&&!i.includes(p.button)&&p.type==="mousedown")return!1;const b=Array.isArray(i)&&i.includes(p.button)||!p.button||p.button<=1;return(!p.ctrlKey||v)&&b}}function XX({domNode:e,minZoom:t,maxZoom:n,translateExtent:i,viewport:r,onPanZoom:o,onPanZoomStart:a,onPanZoomEnd:c,onDraggingChange:d}){const m={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},h=e.getBoundingClientRect(),p=qT().scaleExtent([t,n]).translateExtent(i),g=cr(e).call(p);S({x:r.x,y:r.y,zoom:Dl(r.zoom,t,n)},[[0,0],[h.width,h.height]],i);const x=g.on("wheel.zoom"),v=g.on("dblclick.zoom");p.wheelDelta(bR);function b(I,H){return g?new Promise(Y=>{p?.interpolate(H?.interpolate==="linear"?hu:$f).transform(zy(g,H?.duration,H?.ease,()=>Y(!0)),I)}):Promise.resolve(!1)}function w({noWheelClassName:I,noPanClassName:H,onPaneContextMenu:Y,userSelectionActive:P,panOnScroll:U,panOnDrag:$,panOnScrollMode:G,panOnScrollSpeed:q,preventScrolling:K,zoomOnPinch:W,zoomOnScroll:V,zoomOnDoubleClick:Q,zoomActivationKeyPressed:B,lib:Z,onTransformChange:te,connectionInProgress:ee,paneClickDistance:se,selectionOnDrag:ae}){P&&!m.isZoomingOrPanning&&k();const ue=U&&!B&&!P;p.clickDistance(ae?1/0:!Pr(se)||se<0?0:se);const ie=ue?VX({zoomPanValues:m,noWheelClassName:I,d3Selection:g,d3Zoom:p,panOnScrollMode:G,panOnScrollSpeed:q,zoomOnPinch:W,onPanZoomStart:a,onPanZoom:o,onPanZoomEnd:c}):UX({noWheelClassName:I,preventScrolling:K,d3ZoomHandler:x});if(g.on("wheel.zoom",ie,{passive:!1}),!P){const we=GX({zoomPanValues:m,onDraggingChange:d,onPanZoomStart:a});p.on("start",we);const Re=qX({zoomPanValues:m,panOnDrag:$,onPaneContextMenu:!!Y,onPanZoom:o,onTransformChange:te});p.on("zoom",Re);const Ve=WX({zoomPanValues:m,panOnDrag:$,panOnScroll:U,onPaneContextMenu:Y,onPanZoomEnd:c,onDraggingChange:d});p.on("end",Ve)}const je=YX({zoomActivationKeyPressed:B,panOnDrag:$,zoomOnScroll:V,panOnScroll:U,zoomOnDoubleClick:Q,zoomOnPinch:W,userSelectionActive:P,noPanClassName:H,noWheelClassName:I,lib:Z,connectionInProgress:ee});p.filter(je),Q?g.on("dblclick.zoom",v):g.on("dblclick.zoom",null)}function k(){p.on("zoom",null)}async function S(I,H,Y){const P=Ly(I),U=p?.constrain()(P,H,Y);return U&&await b(U),new Promise($=>$(U))}async function j(I,H){const Y=Ly(I);return await b(Y,H),new Promise(P=>P(Y))}function N(I){if(g){const H=Ly(I),Y=g.property("__zoom");(Y.k!==I.zoom||Y.x!==I.x||Y.y!==I.y)&&p?.transform(g,H,null,{sync:!0})}}function L(){const I=g?GT(g.node()):{x:0,y:0,k:1};return{x:I.x,y:I.y,zoom:I.k}}function A(I,H){return g?new Promise(Y=>{p?.interpolate(H?.interpolate==="linear"?hu:$f).scaleTo(zy(g,H?.duration,H?.ease,()=>Y(!0)),I)}):Promise.resolve(!1)}function D(I,H){return g?new Promise(Y=>{p?.interpolate(H?.interpolate==="linear"?hu:$f).scaleBy(zy(g,H?.duration,H?.ease,()=>Y(!0)),I)}):Promise.resolve(!1)}function O(I){p?.scaleExtent(I)}function T(I){p?.translateExtent(I)}function M(I){const H=!Pr(I)||I<0?0:I;p?.clickDistance(H)}return{update:w,destroy:k,setViewport:j,setViewportConstrained:S,getViewport:L,scaleTo:A,scaleBy:D,setScaleExtent:O,setTranslateExtent:T,syncViewport:N,setClickDistance:M}}var zl;(function(e){e.Line="line",e.Handle="handle"})(zl||(zl={}));function KX({width:e,prevWidth:t,height:n,prevHeight:i,affectsX:r,affectsY:o}){const a=e-t,c=n-i,d=[a>0?1:a<0?-1:0,c>0?1:c<0?-1:0];return a&&r&&(d[0]=d[0]*-1),c&&o&&(d[1]=d[1]*-1),d}function _2(e){const t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),i=e.includes("left"),r=e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:i,affectsY:r}}function po(e,t){return Math.max(0,t-e)}function ho(e,t){return Math.max(0,e-t)}function Ef(e,t,n){return Math.max(0,t-e,e-n)}function k2(e,t){return e?!t:t}function ZX(e,t,n,i,r,o,a,c){let{affectsX:d,affectsY:m}=t;const{isHorizontal:h,isVertical:p}=t,g=h&&p,{xSnapped:x,ySnapped:v}=n,{minWidth:b,maxWidth:w,minHeight:k,maxHeight:S}=i,{x:j,y:N,width:L,height:A,aspectRatio:D}=e;let O=Math.floor(h?x-e.pointerX:0),T=Math.floor(p?v-e.pointerY:0);const M=L+(d?-O:O),I=A+(m?-T:T),H=-o[0]*L,Y=-o[1]*A;let P=Ef(M,b,w),U=Ef(I,k,S);if(a){let q=0,K=0;d&&O<0?q=po(j+O+H,a[0][0]):!d&&O>0&&(q=ho(j+M+H,a[1][0])),m&&T<0?K=po(N+T+Y,a[0][1]):!m&&T>0&&(K=ho(N+I+Y,a[1][1])),P=Math.max(P,q),U=Math.max(U,K)}if(c){let q=0,K=0;d&&O>0?q=ho(j+O,c[0][0]):!d&&O<0&&(q=po(j+M,c[1][0])),m&&T>0?K=ho(N+T,c[0][1]):!m&&T<0&&(K=po(N+I,c[1][1])),P=Math.max(P,q),U=Math.max(U,K)}if(r){if(h){const q=Ef(M/D,k,S)*D;if(P=Math.max(P,q),a){let K=0;!d&&!m||d&&!m&&g?K=ho(N+Y+M/D,a[1][1])*D:K=po(N+Y+(d?O:-O)/D,a[0][1])*D,P=Math.max(P,K)}if(c){let K=0;!d&&!m||d&&!m&&g?K=po(N+M/D,c[1][1])*D:K=ho(N+(d?O:-O)/D,c[0][1])*D,P=Math.max(P,K)}}if(p){const q=Ef(I*D,b,w)/D;if(U=Math.max(U,q),a){let K=0;!d&&!m||m&&!d&&g?K=ho(j+I*D+H,a[1][0])/D:K=po(j+(m?T:-T)*D+H,a[0][0])/D,U=Math.max(U,K)}if(c){let K=0;!d&&!m||m&&!d&&g?K=po(j+I*D,c[1][0])/D:K=ho(j+(m?T:-T)*D,c[0][0])/D,U=Math.max(U,K)}}}T=T+(T<0?U:-U),O=O+(O<0?P:-P),r&&(g?M>I*D?T=(k2(d,m)?-O:O)/D:O=(k2(d,m)?-T:T)*D:h?(T=O/D,m=d):(O=T*D,d=m));const $=d?j+O:j,G=m?N+T:N;return{width:L+(d?-O:O),height:A+(m?-T:T),x:o[0]*O*(d?-1:1)+$,y:o[1]*T*(m?-1:1)+G}}const _R={width:0,height:0,x:0,y:0},QX={..._R,pointerX:0,pointerY:0,aspectRatio:1};function JX(e){return[[0,0],[e.measured.width,e.measured.height]]}function eK(e,t,n){const i=t.position.x+e.position.x,r=t.position.y+e.position.y,o=e.measured.width??0,a=e.measured.height??0,c=n[0]*o,d=n[1]*a;return[[i-c,r-d],[i+o-c,r+a-d]]}function tK({domNode:e,nodeId:t,getStoreItems:n,onChange:i,onEnd:r}){const o=cr(e);let a={controlDirection:_2("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function c({controlPosition:m,boundaries:h,keepAspectRatio:p,resizeDirection:g,onResizeStart:x,onResize:v,onResizeEnd:b,shouldResize:w}){let k={..._R},S={...QX};a={boundaries:h,resizeDirection:g,keepAspectRatio:p,controlDirection:_2(m)};let j,N=null,L=[],A,D,O,T=!1;const M=RT().on("start",I=>{const{nodeLookup:H,transform:Y,snapGrid:P,snapToGrid:U,nodeOrigin:$,paneDomNode:G}=n();if(j=H.get(t),!j)return;N=G?.getBoundingClientRect()??null;const{xSnapped:q,ySnapped:K}=gu(I.sourceEvent,{transform:Y,snapGrid:P,snapToGrid:U,containerBounds:N});k={width:j.measured.width??0,height:j.measured.height??0,x:j.position.x??0,y:j.position.y??0},S={...k,pointerX:q,pointerY:K,aspectRatio:k.width/k.height},A=void 0,j.parentId&&(j.extent==="parent"||j.expandParent)&&(A=H.get(j.parentId),D=A&&j.extent==="parent"?JX(A):void 0),L=[],O=void 0;for(const[W,V]of H)if(V.parentId===t&&(L.push({id:W,position:{...V.position},extent:V.extent}),V.extent==="parent"||V.expandParent)){const Q=eK(V,j,V.origin??$);O?O=[[Math.min(Q[0][0],O[0][0]),Math.min(Q[0][1],O[0][1])],[Math.max(Q[1][0],O[1][0]),Math.max(Q[1][1],O[1][1])]]:O=Q}x?.(I,{...k})}).on("drag",I=>{const{transform:H,snapGrid:Y,snapToGrid:P,nodeOrigin:U}=n(),$=gu(I.sourceEvent,{transform:H,snapGrid:Y,snapToGrid:P,containerBounds:N}),G=[];if(!j)return;const{x:q,y:K,width:W,height:V}=k,Q={},B=j.origin??U,{width:Z,height:te,x:ee,y:se}=ZX(S,a.controlDirection,$,a.boundaries,a.keepAspectRatio,B,D,O),ae=Z!==W,ue=te!==V,ie=ee!==q&&ae,je=se!==K&&ue;if(!ie&&!je&&!ae&&!ue)return;if((ie||je||B[0]===1||B[1]===1)&&(Q.x=ie?ee:k.x,Q.y=je?se:k.y,k.x=Q.x,k.y=Q.y,L.length>0)){const Ge=ee-q,qe=se-K;for(const _t of L)_t.position={x:_t.position.x-Ge+B[0]*(Z-W),y:_t.position.y-qe+B[1]*(te-V)},G.push(_t)}if((ae||ue)&&(Q.width=ae&&(!a.resizeDirection||a.resizeDirection==="horizontal")?Z:k.width,Q.height=ue&&(!a.resizeDirection||a.resizeDirection==="vertical")?te:k.height,k.width=Q.width,k.height=Q.height),A&&j.expandParent){const Ge=B[0]*(Q.width??0);Q.x&&Q.x{T&&(b?.(I,{...k}),r?.({...k}),T=!1)});o.call(M)}function d(){o.on(".drag",null)}return{update:c,destroy:d}}var Py={exports:{}},By={},$y={exports:{}},Hy={};var S2;function nK(){if(S2)return Hy;S2=1;var e=Bl();function t(p,g){return p===g&&(p!==0||1/p===1/g)||p!==p&&g!==g}var n=typeof Object.is=="function"?Object.is:t,i=e.useState,r=e.useEffect,o=e.useLayoutEffect,a=e.useDebugValue;function c(p,g){var x=g(),v=i({inst:{value:x,getSnapshot:g}}),b=v[0].inst,w=v[1];return o(function(){b.value=x,b.getSnapshot=g,d(b)&&w({inst:b})},[p,x,g]),r(function(){return d(b)&&w({inst:b}),p(function(){d(b)&&w({inst:b})})},[p]),a(x),x}function d(p){var g=p.getSnapshot;p=p.value;try{var x=g();return!n(p,x)}catch{return!0}}function m(p,g){return g()}var h=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?m:c;return Hy.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:h,Hy}var w2;function iK(){return w2||(w2=1,$y.exports=nK()),$y.exports}var C2;function rK(){if(C2)return By;C2=1;var e=Bl(),t=iK();function n(m,h){return m===h&&(m!==0||1/m===1/h)||m!==m&&h!==h}var i=typeof Object.is=="function"?Object.is:n,r=t.useSyncExternalStore,o=e.useRef,a=e.useEffect,c=e.useMemo,d=e.useDebugValue;return By.useSyncExternalStoreWithSelector=function(m,h,p,g,x){var v=o(null);if(v.current===null){var b={hasValue:!1,value:null};v.current=b}else b=v.current;v=c(function(){function k(A){if(!S){if(S=!0,j=A,A=g(A),x!==void 0&&b.hasValue){var D=b.value;if(x(D,A))return N=D}return N=A}if(D=N,i(j,A))return D;var O=g(A);return x!==void 0&&x(D,O)?(j=A,D):(j=A,N=O)}var S=!1,j,N,L=p===void 0?null:p;return[function(){return k(h())},L===null?void 0:function(){return k(L())}]},[h,p,g,x]);var w=r(m,v[0],v[1]);return a(function(){b.hasValue=!0,b.value=w},[w]),d(w),w},By}var j2;function sK(){return j2||(j2=1,Py.exports=rK()),Py.exports}var oK=sK();const aK=pa(oK),lK={},E2=e=>{let t;const n=new Set,i=(h,p)=>{const g=typeof h=="function"?h(t):h;if(!Object.is(g,t)){const x=t;t=p??(typeof g!="object"||g===null)?g:Object.assign({},t,g),n.forEach(v=>v(t,x))}},r=()=>t,d={setState:i,getState:r,getInitialState:()=>m,subscribe:h=>(n.add(h),()=>n.delete(h)),destroy:()=>{(lK?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},m=t=e(i,r,d);return d},cK=e=>e?E2(e):E2,{useDebugValue:uK}=Tt,{useSyncExternalStoreWithSelector:dK}=aK,fK=e=>e;function kR(e,t=fK,n){const i=dK(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return uK(i),i}const N2=(e,t)=>{const n=cK(e),i=(r,o=t)=>kR(n,r,o);return Object.assign(i,n),i},mK=(e,t)=>e?N2(e,t):N2;function Hn(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[i,r]of e)if(!Object.is(r,t.get(i)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const i of e)if(!t.has(i))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const i of n)if(!Object.prototype.hasOwnProperty.call(t,i)||!Object.is(e[i],t[i]))return!1;return!0}const ap=C.createContext(null),pK=ap.Provider,SR=as.error001();function an(e,t){const n=C.useContext(ap);if(n===null)throw new Error(SR);return kR(n,e,t)}function Fn(){const e=C.useContext(ap);if(e===null)throw new Error(SR);return C.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const I2={display:"none"},hK={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},wR="react-flow__node-desc",CR="react-flow__edge-desc",gK="react-flow__aria-live",yK=e=>e.ariaLiveMessage,xK=e=>e.ariaLabelConfig;function vK({rfId:e}){const t=an(yK);return u.jsx("div",{id:`${gK}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:hK,children:t})}function bK({rfId:e,disableKeyboardA11y:t}){const n=an(xK);return u.jsxs(u.Fragment,{children:[u.jsx("div",{id:`${wR}-${e}`,style:I2,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),u.jsx("div",{id:`${CR}-${e}`,style:I2,children:n["edge.a11yDescription.default"]}),!t&&u.jsx(vK,{rfId:e})]})}const lp=C.forwardRef(({position:e="top-left",children:t,className:n,style:i,...r},o)=>{const a=`${e}`.split("-");return u.jsx("div",{className:di(["react-flow__panel",n,...a]),style:i,ref:o,...r,children:t})});lp.displayName="Panel";function _K({proOptions:e,position:t="bottom-right"}){return e?.hideAttribution?null:u.jsx(lp,{position:t,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev",children:u.jsx("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const kK=e=>{const t=[],n=[];for(const[,i]of e.nodeLookup)i.selected&&t.push(i.internals.userNode);for(const[,i]of e.edgeLookup)i.selected&&n.push(i);return{selectedNodes:t,selectedEdges:n}},Nf=e=>e.id;function SK(e,t){return Hn(e.selectedNodes.map(Nf),t.selectedNodes.map(Nf))&&Hn(e.selectedEdges.map(Nf),t.selectedEdges.map(Nf))}function wK({onSelectionChange:e}){const t=Fn(),{selectedNodes:n,selectedEdges:i}=an(kK,SK);return C.useEffect(()=>{const r={nodes:n,edges:i};e?.(r),t.getState().onSelectionChangeHandlers.forEach(o=>o(r))},[n,i,e]),null}const CK=e=>!!e.onSelectionChangeHandlers;function jK({onSelectionChange:e}){const t=an(CK);return e||t?u.jsx(wK,{onSelectionChange:e}):null}const Pv=typeof window<"u"?C.useLayoutEffect:C.useEffect,jR=[0,0],EK={x:0,y:0,zoom:1},NK=["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=[...NK,"rfId"],IK=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}),R2={translateExtent:Du,nodeOrigin:jR,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function TK(e){const{setNodes:t,setEdges:n,setMinZoom:i,setMaxZoom:r,setTranslateExtent:o,setNodeExtent:a,reset:c,setDefaultNodesAndEdges:d}=an(IK,Hn),m=Fn();Pv(()=>(d(e.defaultNodes,e.defaultEdges),()=>{h.current=R2,c()}),[]);const h=C.useRef(R2);return Pv(()=>{for(const p of T2){const g=e[p],x=h.current[p];g!==x&&(typeof e[p]>"u"||(p==="nodes"?t(g):p==="edges"?n(g):p==="minZoom"?i(g):p==="maxZoom"?r(g):p==="translateExtent"?o(g):p==="nodeExtent"?a(g):p==="ariaLabelConfig"?m.setState({ariaLabelConfig:mX(g)}):p==="fitView"?m.setState({fitViewQueued:g}):p==="fitViewOptions"?m.setState({fitViewOptions:g}):m.setState({[p]:g})))}h.current=e},T2.map(p=>e[p])),null}function A2(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function RK(e){const[t,n]=C.useState(e==="system"?null:e);return C.useEffect(()=>{if(e!=="system"){n(e);return}const i=A2(),r=()=>n(i?.matches?"dark":"light");return r(),i?.addEventListener("change",r),()=>{i?.removeEventListener("change",r)}},[e]),t!==null?t:A2()?.matches?"dark":"light"}const M2=typeof document<"u"?document:null;function Pu(e=null,t={target:M2,actInsideInputWithModifier:!0}){const[n,i]=C.useState(!1),r=C.useRef(!1),o=C.useRef(new Set([])),[a,c]=C.useMemo(()=>{if(e!==null){const m=(Array.isArray(e)?e:[e]).filter(p=>typeof p=="string").map(p=>p.replace("+",` +`).replace(` + +`,` ++`).split(` +`)),h=m.reduce((p,g)=>p.concat(...g),[]);return[m,h]}return[[],[]]},[e]);return C.useEffect(()=>{const d=t?.target??M2,m=t?.actInsideInputWithModifier??!0;if(e!==null){const h=x=>{if(r.current=x.ctrlKey||x.metaKey||x.shiftKey||x.altKey,(!r.current||r.current&&!m)&&sR(x))return!1;const b=O2(x.code,c);if(o.current.add(x[b]),D2(a,o.current,!1)){const w=x.composedPath?.()?.[0]||x.target,k=w?.nodeName==="BUTTON"||w?.nodeName==="A";t.preventDefault!==!1&&(r.current||!k)&&x.preventDefault(),i(!0)}},p=x=>{const v=O2(x.code,c);D2(a,o.current,!0)?(i(!1),o.current.clear()):o.current.delete(x[v]),x.key==="Meta"&&o.current.clear(),r.current=!1},g=()=>{o.current.clear(),i(!1)};return d?.addEventListener("keydown",h),d?.addEventListener("keyup",p),window.addEventListener("blur",g),window.addEventListener("contextmenu",g),()=>{d?.removeEventListener("keydown",h),d?.removeEventListener("keyup",p),window.removeEventListener("blur",g),window.removeEventListener("contextmenu",g)}}},[e,i]),n}function D2(e,t,n){return e.filter(i=>n||i.length===t.size).some(i=>i.every(r=>t.has(r)))}function O2(e,t){return t.includes(e)?"code":"key"}const AK=()=>{const e=Fn();return C.useMemo(()=>({zoomIn:t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):Promise.resolve(!1)},zoomOut:t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):Promise.resolve(!1)},zoomTo:(t,n)=>{const{panZoom:i}=e.getState();return i?i.scaleTo(t,n):Promise.resolve(!1)},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{const{transform:[i,r,o],panZoom:a}=e.getState();return a?(await a.setViewport({x:t.x??i,y:t.y??r,zoom:t.zoom??o},n),Promise.resolve(!0)):Promise.resolve(!1)},getViewport:()=>{const[t,n,i]=e.getState().transform;return{x:t,y:n,zoom:i}},setCenter:async(t,n,i)=>e.getState().setCenter(t,n,i),fitBounds:async(t,n)=>{const{width:i,height:r,minZoom:o,maxZoom:a,panZoom:c}=e.getState(),d=K0(t,i,r,o,a,n?.padding??.1);return c?(await c.setViewport(d,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),Promise.resolve(!0)):Promise.resolve(!1)},screenToFlowPosition:(t,n={})=>{const{transform:i,snapGrid:r,snapToGrid:o,domNode:a}=e.getState();if(!a)return t;const{x:c,y:d}=a.getBoundingClientRect(),m={x:t.x-c,y:t.y-d},h=n.snapGrid??r,p=n.snapToGrid??o;return Ku(m,i,p,h)},flowToScreenPosition:t=>{const{transform:n,domNode:i}=e.getState();if(!i)return t;const{x:r,y:o}=i.getBoundingClientRect(),a=Cm(t,n);return{x:a.x+r,y:a.y+o}}}),[])};function ER(e,t){const n=[],i=new Map,r=[];for(const o of e)if(o.type==="add"){r.push(o);continue}else if(o.type==="remove"||o.type==="replace")i.set(o.id,[o]);else{const a=i.get(o.id);a?a.push(o):i.set(o.id,[o])}for(const o of t){const a=i.get(o.id);if(!a){n.push(o);continue}if(a[0].type==="remove")continue;if(a[0].type==="replace"){n.push({...a[0].item});continue}const c={...o};for(const d of a)MK(d,c);n.push(c)}return r.length&&r.forEach(o=>{o.index!==void 0?n.splice(o.index,0,{...o.item}):n.push({...o.item})}),n}function MK(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 NR(e,t){return ER(e,t)}function DK(e,t){return ER(e,t)}function na(e,t){return{id:e,type:"select",selected:t}}function ul(e,t=new Set,n=!1){const i=[];for(const[r,o]of e){const a=t.has(r);!(o.selected===void 0&&!a)&&o.selected!==a&&(n&&(o.selected=a),i.push(na(o.id,a)))}return i}function L2({items:e=[],lookup:t}){const n=[],i=new Map(e.map(r=>[r.id,r]));for(const[r,o]of e.entries()){const a=t.get(o.id),c=a?.internals?.userNode??a;c!==void 0&&c!==o&&n.push({id:o.id,item:o,type:"replace"}),c===void 0&&n.push({item:o,type:"add",index:r})}for(const[r]of t)i.get(r)===void 0&&n.push({id:r,type:"remove"});return n}function z2(e){return{id:e.id,type:"remove"}}const P2=e=>iX(e),OK=e=>ZT(e);function IR(e){return C.forwardRef(e)}function B2(e){const[t,n]=C.useState(BigInt(0)),[i]=C.useState(()=>LK(()=>n(r=>r+BigInt(1))));return Pv(()=>{const r=i.get();r.length&&(e(r),i.reset())},[t]),i}function LK(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const TR=C.createContext(null);function zK({children:e}){const t=Fn(),n=C.useCallback(c=>{const{nodes:d=[],setNodes:m,hasDefaultNodes:h,onNodesChange:p,nodeLookup:g,fitViewQueued:x,onNodesChangeMiddlewareMap:v}=t.getState();let b=d;for(const k of c)b=typeof k=="function"?k(b):k;let w=L2({items:b,lookup:g});for(const k of v.values())w=k(w);h&&m(b),w.length>0?p?.(w):x&&window.requestAnimationFrame(()=>{const{fitViewQueued:k,nodes:S,setNodes:j}=t.getState();k&&j(S)})},[]),i=B2(n),r=C.useCallback(c=>{const{edges:d=[],setEdges:m,hasDefaultEdges:h,onEdgesChange:p,edgeLookup:g}=t.getState();let x=d;for(const v of c)x=typeof v=="function"?v(x):v;h?m(x):p&&p(L2({items:x,lookup:g}))},[]),o=B2(r),a=C.useMemo(()=>({nodeQueue:i,edgeQueue:o}),[]);return u.jsx(TR.Provider,{value:a,children:e})}function PK(){const e=C.useContext(TR);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const BK=e=>!!e.panZoom;function ib(){const e=AK(),t=Fn(),n=PK(),i=an(BK),r=C.useMemo(()=>{const o=p=>t.getState().nodeLookup.get(p),a=p=>{n.nodeQueue.push(p)},c=p=>{n.edgeQueue.push(p)},d=p=>{const{nodeLookup:g,nodeOrigin:x}=t.getState(),v=P2(p)?p:g.get(p.id),b=v.parentId?iR(v.position,v.measured,v.parentId,g,x):v.position,w={...v,position:b,width:v.measured?.width??v.width,height:v.measured?.height??v.height};return Ol(w)},m=(p,g,x={replace:!1})=>{a(v=>v.map(b=>{if(b.id===p){const w=typeof g=="function"?g(b):g;return x.replace&&P2(w)?w:{...b,...w}}return b}))},h=(p,g,x={replace:!1})=>{c(v=>v.map(b=>{if(b.id===p){const w=typeof g=="function"?g(b):g;return x.replace&&OK(w)?w:{...b,...w}}return b}))};return{getNodes:()=>t.getState().nodes.map(p=>({...p})),getNode:p=>o(p)?.internals.userNode,getInternalNode:o,getEdges:()=>{const{edges:p=[]}=t.getState();return p.map(g=>({...g}))},getEdge:p=>t.getState().edgeLookup.get(p),setNodes:a,setEdges:c,addNodes:p=>{const g=Array.isArray(p)?p:[p];n.nodeQueue.push(x=>[...x,...g])},addEdges:p=>{const g=Array.isArray(p)?p:[p];n.edgeQueue.push(x=>[...x,...g])},toObject:()=>{const{nodes:p=[],edges:g=[],transform:x}=t.getState(),[v,b,w]=x;return{nodes:p.map(k=>({...k})),edges:g.map(k=>({...k})),viewport:{x:v,y:b,zoom:w}}},deleteElements:async({nodes:p=[],edges:g=[]})=>{const{nodes:x,edges:v,onNodesDelete:b,onEdgesDelete:w,triggerNodeChanges:k,triggerEdgeChanges:S,onDelete:j,onBeforeDelete:N}=t.getState(),{nodes:L,edges:A}=await lX({nodesToRemove:p,edgesToRemove:g,nodes:x,edges:v,onBeforeDelete:N}),D=A.length>0,O=L.length>0;if(D){const T=A.map(z2);w?.(A),S(T)}if(O){const T=L.map(z2);b?.(L),k(T)}return(O||D)&&j?.({nodes:L,edges:A}),{deletedNodes:L,deletedEdges:A}},getIntersectingNodes:(p,g=!0,x)=>{const v=u2(p),b=v?p:d(p),w=x!==void 0;return b?(x||t.getState().nodes).filter(k=>{const S=t.getState().nodeLookup.get(k.id);if(S&&!v&&(k.id===p.id||!S.internals.positionAbsolute))return!1;const j=Ol(w?k:S),N=Lu(j,b);return g&&N>0||N>=j.width*j.height||N>=b.width*b.height}):[]},isNodeIntersecting:(p,g,x=!0)=>{const b=u2(p)?p:d(p);if(!b)return!1;const w=Lu(b,g);return x&&w>0||w>=g.width*g.height||w>=b.width*b.height},updateNode:m,updateNodeData:(p,g,x={replace:!1})=>{m(p,v=>{const b=typeof g=="function"?g(v):g;return x.replace?{...v,data:b}:{...v,data:{...v.data,...b}}},x)},updateEdge:h,updateEdgeData:(p,g,x={replace:!1})=>{h(p,v=>{const b=typeof g=="function"?g(v):g;return x.replace?{...v,data:b}:{...v,data:{...v.data,...b}}},x)},getNodesBounds:p=>{const{nodeLookup:g,nodeOrigin:x}=t.getState();return rX(p,{nodeLookup:g,nodeOrigin:x})},getHandleConnections:({type:p,id:g,nodeId:x})=>Array.from(t.getState().connectionLookup.get(`${x}-${p}${g?`-${g}`:""}`)?.values()??[]),getNodeConnections:({type:p,handleId:g,nodeId:x})=>Array.from(t.getState().connectionLookup.get(`${x}${p?g?`-${p}-${g}`:`-${p}`:""}`)?.values()??[]),fitView:async p=>{const g=t.getState().fitViewResolver??fX();return t.setState({fitViewQueued:!0,fitViewOptions:p,fitViewResolver:g}),n.nodeQueue.push(x=>[...x]),g.promise}}},[]);return C.useMemo(()=>({...r,...e,viewportInitialized:i}),[i])}const $2=e=>e.selected,$K=typeof window<"u"?window:void 0;function HK({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=Fn(),{deleteElements:i}=ib(),r=Pu(e,{actInsideInputWithModifier:!1}),o=Pu(t,{target:$K});C.useEffect(()=>{if(r){const{edges:a,nodes:c}=n.getState();i({nodes:c.filter($2),edges:a.filter($2)}),n.setState({nodesSelectionActive:!1})}},[r]),C.useEffect(()=>{n.setState({multiSelectionActive:o})},[o])}function FK(e){const t=Fn();C.useEffect(()=>{const n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;const i=Z0(e.current);(i.height===0||i.width===0)&&t.getState().onError?.("004",as.error004()),t.setState({width:i.width||500,height:i.height||500})};if(e.current){n(),window.addEventListener("resize",n);const i=new ResizeObserver(()=>n());return i.observe(e.current),()=>{window.removeEventListener("resize",n),i&&e.current&&i.unobserve(e.current)}}},[])}const cp={position:"absolute",width:"100%",height:"100%",top:0,left:0},VK=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function UK({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:i=!1,panOnScrollSpeed:r=.5,panOnScrollMode:o=aa.Free,zoomOnDoubleClick:a=!0,panOnDrag:c=!0,defaultViewport:d,translateExtent:m,minZoom:h,maxZoom:p,zoomActivationKeyCode:g,preventScrolling:x=!0,children:v,noWheelClassName:b,noPanClassName:w,onViewportChange:k,isControlledViewport:S,paneClickDistance:j,selectionOnDrag:N}){const L=Fn(),A=C.useRef(null),{userSelectionActive:D,lib:O,connectionInProgress:T}=an(VK,Hn),M=Pu(g),I=C.useRef();FK(A);const H=C.useCallback(Y=>{k?.({x:Y[0],y:Y[1],zoom:Y[2]}),S||L.setState({transform:Y})},[k,S]);return C.useEffect(()=>{if(A.current){I.current=XX({domNode:A.current,minZoom:h,maxZoom:p,translateExtent:m,viewport:d,onDraggingChange:$=>L.setState(G=>G.paneDragging===$?G:{paneDragging:$}),onPanZoomStart:($,G)=>{const{onViewportChangeStart:q,onMoveStart:K}=L.getState();K?.($,G),q?.(G)},onPanZoom:($,G)=>{const{onViewportChange:q,onMove:K}=L.getState();K?.($,G),q?.(G)},onPanZoomEnd:($,G)=>{const{onViewportChangeEnd:q,onMoveEnd:K}=L.getState();K?.($,G),q?.(G)}});const{x:Y,y:P,zoom:U}=I.current.getViewport();return L.setState({panZoom:I.current,transform:[Y,P,U],domNode:A.current.closest(".react-flow")}),()=>{I.current?.destroy()}}},[]),C.useEffect(()=>{I.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:i,panOnScrollSpeed:r,panOnScrollMode:o,zoomOnDoubleClick:a,panOnDrag:c,zoomActivationKeyPressed:M,preventScrolling:x,noPanClassName:w,userSelectionActive:D,noWheelClassName:b,lib:O,onTransformChange:H,connectionInProgress:T,selectionOnDrag:N,paneClickDistance:j})},[e,t,n,i,r,o,a,c,M,x,w,D,b,O,H,T,N,j]),u.jsx("div",{className:"react-flow__renderer",ref:A,style:cp,children:v})}const GK=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function qK(){const{userSelectionActive:e,userSelectionRect:t}=an(GK,Hn);return e&&t?u.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}const Fy=(e,t)=>n=>{n.target===t.current&&e?.(n)},WK=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging});function YK({isSelecting:e,selectionKeyPressed:t,selectionMode:n=Ou.Full,panOnDrag:i,paneClickDistance:r,selectionOnDrag:o,onSelectionStart:a,onSelectionEnd:c,onPaneClick:d,onPaneContextMenu:m,onPaneScroll:h,onPaneMouseEnter:p,onPaneMouseMove:g,onPaneMouseLeave:x,children:v}){const b=Fn(),{userSelectionActive:w,elementsSelectable:k,dragging:S,connectionInProgress:j}=an(WK,Hn),N=k&&(e||w),L=C.useRef(null),A=C.useRef(),D=C.useRef(new Set),O=C.useRef(new Set),T=C.useRef(!1),M=q=>{if(T.current||j){T.current=!1;return}d?.(q),b.getState().resetSelectedElements(),b.setState({nodesSelectionActive:!1})},I=q=>{if(Array.isArray(i)&&i?.includes(2)){q.preventDefault();return}m?.(q)},H=h?q=>h(q):void 0,Y=q=>{T.current&&(q.stopPropagation(),T.current=!1)},P=q=>{const{domNode:K}=b.getState();if(A.current=K?.getBoundingClientRect(),!A.current)return;const W=q.target===L.current;if(!W&&!!q.target.closest(".nokey")||!e||!(o&&W||t)||q.button!==0||!q.isPrimary)return;q.target?.setPointerCapture?.(q.pointerId),T.current=!1;const{x:B,y:Z}=Br(q.nativeEvent,A.current);b.setState({userSelectionRect:{width:0,height:0,startX:B,startY:Z,x:B,y:Z}}),W||(q.stopPropagation(),q.preventDefault())},U=q=>{const{userSelectionRect:K,transform:W,nodeLookup:V,edgeLookup:Q,connectionLookup:B,triggerNodeChanges:Z,triggerEdgeChanges:te,defaultEdgeOptions:ee,resetSelectedElements:se}=b.getState();if(!A.current||!K)return;const{x:ae,y:ue}=Br(q.nativeEvent,A.current),{startX:ie,startY:je}=K;if(!T.current){const qe=t?0:r;if(Math.hypot(ae-ie,ue-je)<=qe)return;se(),a?.(q)}T.current=!0;const we={startX:ie,startY:je,x:aeqe.id)),O.current=new Set;const Ge=ee?.selectable??!0;for(const qe of D.current){const _t=B.get(qe);if(_t)for(const{edgeId:$t}of _t.values()){const Ht=Q.get($t);Ht&&(Ht.selectable??Ge)&&O.current.add($t)}}if(!d2(Re,D.current)){const qe=ul(V,D.current,!0);Z(qe)}if(!d2(Ve,O.current)){const qe=ul(Q,O.current);te(qe)}b.setState({userSelectionRect:we,userSelectionActive:!0,nodesSelectionActive:!1})},$=q=>{q.button===0&&(q.target?.releasePointerCapture?.(q.pointerId),!w&&q.target===L.current&&b.getState().userSelectionRect&&M?.(q),b.setState({userSelectionActive:!1,userSelectionRect:null}),T.current&&(c?.(q),b.setState({nodesSelectionActive:D.current.size>0})))},G=i===!0||Array.isArray(i)&&i.includes(0);return u.jsxs("div",{className:di(["react-flow__pane",{draggable:G,dragging:S,selection:e}]),onClick:N?void 0:Fy(M,L),onContextMenu:Fy(I,L),onWheel:Fy(H,L),onPointerEnter:N?void 0:p,onPointerMove:N?U:g,onPointerUp:N?$:void 0,onPointerDownCapture:N?P:void 0,onClickCapture:N?Y:void 0,onPointerLeave:x,ref:L,style:cp,children:[v,u.jsx(qK,{})]})}function Bv({id:e,store:t,unselect:n=!1,nodeRef:i}){const{addSelectedNodes:r,unselectNodesAndEdges:o,multiSelectionActive:a,nodeLookup:c,onError:d}=t.getState(),m=c.get(e);if(!m){d?.("012",as.error012(e));return}t.setState({nodesSelectionActive:!1}),m.selected?(n||m.selected&&a)&&(o({nodes:[m],edges:[]}),requestAnimationFrame(()=>i?.current?.blur())):r([e])}function RR({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:i,nodeId:r,isSelectable:o,nodeClickDistance:a}){const c=Fn(),[d,m]=C.useState(!1),h=C.useRef();return C.useEffect(()=>{h.current=OX({getStoreItems:()=>c.getState(),onNodeMouseDown:p=>{Bv({id:p,store:c,nodeRef:e})},onDragStart:()=>{m(!0)},onDragStop:()=>{m(!1)}})},[]),C.useEffect(()=>{if(!(t||!e.current||!h.current))return h.current.update({noDragClassName:n,handleSelector:i,domNode:e.current,isSelectable:o,nodeId:r,nodeClickDistance:a}),()=>{h.current?.destroy()}},[n,i,t,o,e,r,a]),d}const XK=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function AR(){const e=Fn();return C.useCallback(n=>{const{nodeExtent:i,snapToGrid:r,snapGrid:o,nodesDraggable:a,onError:c,updateNodePositions:d,nodeLookup:m,nodeOrigin:h}=e.getState(),p=new Map,g=XK(a),x=r?o[0]:5,v=r?o[1]:5,b=n.direction.x*x*n.factor,w=n.direction.y*v*n.factor;for(const[,k]of m){if(!g(k))continue;let S={x:k.internals.positionAbsolute.x+b,y:k.internals.positionAbsolute.y+w};r&&(S=Xu(S,o));const{position:j,positionAbsolute:N}=QT({nodeId:k.id,nextPosition:S,nodeLookup:m,nodeExtent:i,nodeOrigin:h,onError:c});k.position=j,k.internals.positionAbsolute=N,p.set(k.id,k)}d(p)},[])}const rb=C.createContext(null),KK=rb.Provider;rb.Consumer;const MR=()=>C.useContext(rb),ZK=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),QK=(e,t,n)=>i=>{const{connectionClickStartHandle:r,connectionMode:o,connection:a}=i,{fromHandle:c,toHandle:d,isValid:m}=a,h=d?.nodeId===e&&d?.id===t&&d?.type===n;return{connectingFrom:c?.nodeId===e&&c?.id===t&&c?.type===n,connectingTo:h,clickConnecting:r?.nodeId===e&&r?.id===t&&r?.type===n,isPossibleEndHandle:o===Ml.Strict?c?.type!==n:e!==c?.nodeId||t!==c?.id,connectionInProcess:!!c,clickConnectionInProcess:!!r,valid:h&&m}};function JK({type:e="source",position:t=lt.Top,isValidConnection:n,isConnectable:i=!0,isConnectableStart:r=!0,isConnectableEnd:o=!0,id:a,onConnect:c,children:d,className:m,onMouseDown:h,onTouchStart:p,...g},x){const v=a||null,b=e==="target",w=Fn(),k=MR(),{connectOnClick:S,noPanClassName:j,rfId:N}=an(ZK,Hn),{connectingFrom:L,connectingTo:A,clickConnecting:D,isPossibleEndHandle:O,connectionInProcess:T,clickConnectionInProcess:M,valid:I}=an(QK(k,v,e),Hn);k||w.getState().onError?.("010",as.error010());const H=U=>{const{defaultEdgeOptions:$,onConnect:G,hasDefaultEdges:q}=w.getState(),K={...$,...U};if(q){const{edges:W,setEdges:V}=w.getState();V(vX(K,W))}G?.(K),c?.(K)},Y=U=>{if(!k)return;const $=oR(U.nativeEvent);if(r&&($&&U.button===0||!$)){const G=w.getState();zv.onPointerDown(U.nativeEvent,{handleDomNode:U.currentTarget,autoPanOnConnect:G.autoPanOnConnect,connectionMode:G.connectionMode,connectionRadius:G.connectionRadius,domNode:G.domNode,nodeLookup:G.nodeLookup,lib:G.lib,isTarget:b,handleId:v,nodeId:k,flowId:G.rfId,panBy:G.panBy,cancelConnection:G.cancelConnection,onConnectStart:G.onConnectStart,onConnectEnd:(...q)=>w.getState().onConnectEnd?.(...q),updateConnection:G.updateConnection,onConnect:H,isValidConnection:n||((...q)=>w.getState().isValidConnection?.(...q)??!0),getTransform:()=>w.getState().transform,getFromHandle:()=>w.getState().connection.fromHandle,autoPanSpeed:G.autoPanSpeed,dragThreshold:G.connectionDragThreshold})}$?h?.(U):p?.(U)},P=U=>{const{onClickConnectStart:$,onClickConnectEnd:G,connectionClickStartHandle:q,connectionMode:K,isValidConnection:W,lib:V,rfId:Q,nodeLookup:B,connection:Z}=w.getState();if(!k||!q&&!r)return;if(!q){$?.(U.nativeEvent,{nodeId:k,handleId:v,handleType:e}),w.setState({connectionClickStartHandle:{nodeId:k,type:e,id:v}});return}const te=rR(U.target),ee=n||W,{connection:se,isValid:ae}=zv.isValid(U.nativeEvent,{handle:{nodeId:k,id:v,type:e},connectionMode:K,fromNodeId:q.nodeId,fromHandleId:q.id||null,fromType:q.type,isValidConnection:ee,flowId:Q,doc:te,lib:V,nodeLookup:B});ae&&se&&H(se);const ue=structuredClone(Z);delete ue.inProgress,ue.toPosition=ue.toHandle?ue.toHandle.position:null,G?.(U,ue),w.setState({connectionClickStartHandle:null})};return u.jsx("div",{"data-handleid":v,"data-nodeid":k,"data-handlepos":t,"data-id":`${N}-${k}-${v}-${e}`,className:di(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",j,m,{source:!b,target:b,connectable:i,connectablestart:r,connectableend:o,clickconnecting:D,connectingfrom:L,connectingto:A,valid:I,connectionindicator:i&&(!T||O)&&(T||M?o:r)}]),onMouseDown:Y,onTouchStart:Y,onClick:S?P:void 0,ref:x,...g,children:d})}const Pl=C.memo(IR(JK));function eZ({data:e,isConnectable:t,sourcePosition:n=lt.Bottom}){return u.jsxs(u.Fragment,{children:[e?.label,u.jsx(Pl,{type:"source",position:n,isConnectable:t})]})}function tZ({data:e,isConnectable:t,targetPosition:n=lt.Top,sourcePosition:i=lt.Bottom}){return u.jsxs(u.Fragment,{children:[u.jsx(Pl,{type:"target",position:n,isConnectable:t}),e?.label,u.jsx(Pl,{type:"source",position:i,isConnectable:t})]})}function nZ(){return null}function iZ({data:e,isConnectable:t,targetPosition:n=lt.Top}){return u.jsxs(u.Fragment,{children:[u.jsx(Pl,{type:"target",position:n,isConnectable:t}),e?.label]})}const jm={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},H2={input:eZ,default:tZ,output:iZ,group:nZ};function rZ(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 sZ=e=>{const{width:t,height:n,x:i,y:r}=Yu(e.nodeLookup,{filter:o=>!!o.selected});return{width:Pr(t)?t:null,height:Pr(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${i}px,${r}px)`}};function oZ({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const i=Fn(),{width:r,height:o,transformString:a,userSelectionActive:c}=an(sZ,Hn),d=AR(),m=C.useRef(null);C.useEffect(()=>{n||m.current?.focus({preventScroll:!0})},[n]);const h=!c&&r!==null&&o!==null;if(RR({nodeRef:m,disabled:!h}),!h)return null;const p=e?x=>{const v=i.getState().nodes.filter(b=>b.selected);e(x,v)}:void 0,g=x=>{Object.prototype.hasOwnProperty.call(jm,x.key)&&(x.preventDefault(),d({direction:jm[x.key],factor:x.shiftKey?4:1}))};return u.jsx("div",{className:di(["react-flow__nodesselection","react-flow__container",t]),style:{transform:a},children:u.jsx("div",{ref:m,className:"react-flow__nodesselection-rect",onContextMenu:p,tabIndex:n?void 0:-1,onKeyDown:n?void 0:g,style:{width:r,height:o}})})}const F2=typeof window<"u"?window:void 0,aZ=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function DR({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:i,onPaneMouseLeave:r,onPaneContextMenu:o,onPaneScroll:a,paneClickDistance:c,deleteKeyCode:d,selectionKeyCode:m,selectionOnDrag:h,selectionMode:p,onSelectionStart:g,onSelectionEnd:x,multiSelectionKeyCode:v,panActivationKeyCode:b,zoomActivationKeyCode:w,elementsSelectable:k,zoomOnScroll:S,zoomOnPinch:j,panOnScroll:N,panOnScrollSpeed:L,panOnScrollMode:A,zoomOnDoubleClick:D,panOnDrag:O,defaultViewport:T,translateExtent:M,minZoom:I,maxZoom:H,preventScrolling:Y,onSelectionContextMenu:P,noWheelClassName:U,noPanClassName:$,disableKeyboardA11y:G,onViewportChange:q,isControlledViewport:K}){const{nodesSelectionActive:W,userSelectionActive:V}=an(aZ,Hn),Q=Pu(m,{target:F2}),B=Pu(b,{target:F2}),Z=B||O,te=B||N,ee=h&&Z!==!0,se=Q||V||ee;return HK({deleteKeyCode:d,multiSelectionKeyCode:v}),u.jsx(UK,{onPaneContextMenu:o,elementsSelectable:k,zoomOnScroll:S,zoomOnPinch:j,panOnScroll:te,panOnScrollSpeed:L,panOnScrollMode:A,zoomOnDoubleClick:D,panOnDrag:!Q&&Z,defaultViewport:T,translateExtent:M,minZoom:I,maxZoom:H,zoomActivationKeyCode:w,preventScrolling:Y,noWheelClassName:U,noPanClassName:$,onViewportChange:q,isControlledViewport:K,paneClickDistance:c,selectionOnDrag:ee,children:u.jsxs(YK,{onSelectionStart:g,onSelectionEnd:x,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:i,onPaneMouseLeave:r,onPaneContextMenu:o,onPaneScroll:a,panOnDrag:Z,isSelecting:!!se,selectionMode:p,selectionKeyPressed:Q,paneClickDistance:c,selectionOnDrag:ee,children:[e,W&&u.jsx(oZ,{onSelectionContextMenu:P,noPanClassName:$,disableKeyboardA11y:G})]})})}DR.displayName="FlowRenderer";const lZ=C.memo(DR),cZ=e=>t=>e?X0(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 uZ(e){return an(C.useCallback(cZ(e),[e]),Hn)}const dZ=e=>e.updateNodeInternals;function fZ(){const e=an(dZ),[t]=C.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const i=new Map;n.forEach(r=>{const o=r.target.getAttribute("data-id");i.set(o,{id:o,nodeElement:r.target,force:!0})}),e(i)}));return C.useEffect(()=>()=>{t?.disconnect()},[t]),t}function mZ({node:e,nodeType:t,hasDimensions:n,resizeObserver:i}){const r=Fn(),o=C.useRef(null),a=C.useRef(null),c=C.useRef(e.sourcePosition),d=C.useRef(e.targetPosition),m=C.useRef(t),h=n&&!!e.internals.handleBounds;return C.useEffect(()=>{o.current&&!e.hidden&&(!h||a.current!==o.current)&&(a.current&&i?.unobserve(a.current),i?.observe(o.current),a.current=o.current)},[h,e.hidden]),C.useEffect(()=>()=>{a.current&&(i?.unobserve(a.current),a.current=null)},[]),C.useEffect(()=>{if(o.current){const p=m.current!==t,g=c.current!==e.sourcePosition,x=d.current!==e.targetPosition;(p||g||x)&&(m.current=t,c.current=e.sourcePosition,d.current=e.targetPosition,r.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:o.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),o}function pZ({id:e,onClick:t,onMouseEnter:n,onMouseMove:i,onMouseLeave:r,onContextMenu:o,onDoubleClick:a,nodesDraggable:c,elementsSelectable:d,nodesConnectable:m,nodesFocusable:h,resizeObserver:p,noDragClassName:g,noPanClassName:x,disableKeyboardA11y:v,rfId:b,nodeTypes:w,nodeClickDistance:k,onError:S}){const{node:j,internals:N,isParent:L}=an(ae=>{const ue=ae.nodeLookup.get(e),ie=ae.parentLookup.has(e);return{node:ue,internals:ue.internals,isParent:ie}},Hn);let A=j.type||"default",D=w?.[A]||H2[A];D===void 0&&(S?.("003",as.error003(A)),A="default",D=w?.default||H2.default);const O=!!(j.draggable||c&&typeof j.draggable>"u"),T=!!(j.selectable||d&&typeof j.selectable>"u"),M=!!(j.connectable||m&&typeof j.connectable>"u"),I=!!(j.focusable||h&&typeof j.focusable>"u"),H=Fn(),Y=nR(j),P=mZ({node:j,nodeType:A,hasDimensions:Y,resizeObserver:p}),U=RR({nodeRef:P,disabled:j.hidden||!O,noDragClassName:g,handleSelector:j.dragHandle,nodeId:e,isSelectable:T,nodeClickDistance:k}),$=AR();if(j.hidden)return null;const G=Ls(j),q=rZ(j),K=T||O||t||n||i||r,W=n?ae=>n(ae,{...N.userNode}):void 0,V=i?ae=>i(ae,{...N.userNode}):void 0,Q=r?ae=>r(ae,{...N.userNode}):void 0,B=o?ae=>o(ae,{...N.userNode}):void 0,Z=a?ae=>a(ae,{...N.userNode}):void 0,te=ae=>{const{selectNodesOnDrag:ue,nodeDragThreshold:ie}=H.getState();T&&(!ue||!O||ie>0)&&Bv({id:e,store:H,nodeRef:P}),t&&t(ae,{...N.userNode})},ee=ae=>{if(!(sR(ae.nativeEvent)||v)){if(WT.includes(ae.key)&&T){const ue=ae.key==="Escape";Bv({id:e,store:H,unselect:ue,nodeRef:P})}else if(O&&j.selected&&Object.prototype.hasOwnProperty.call(jm,ae.key)){ae.preventDefault();const{ariaLabelConfig:ue}=H.getState();H.setState({ariaLiveMessage:ue["node.a11yDescription.ariaLiveMessage"]({direction:ae.key.replace("Arrow","").toLowerCase(),x:~~N.positionAbsolute.x,y:~~N.positionAbsolute.y})}),$({direction:jm[ae.key],factor:ae.shiftKey?4:1})}}},se=()=>{if(v||!P.current?.matches(":focus-visible"))return;const{transform:ae,width:ue,height:ie,autoPanOnNodeFocus:je,setCenter:we}=H.getState();if(!je)return;X0(new Map([[e,j]]),{x:0,y:0,width:ue,height:ie},ae,!0).length>0||we(j.position.x+G.width/2,j.position.y+G.height/2,{zoom:ae[2]})};return u.jsx("div",{className:di(["react-flow__node",`react-flow__node-${A}`,{[x]:O},j.className,{selected:j.selected,selectable:T,parent:L,draggable:O,dragging:U}]),ref:P,style:{zIndex:N.z,transform:`translate(${N.positionAbsolute.x}px,${N.positionAbsolute.y}px)`,pointerEvents:K?"all":"none",visibility:Y?"visible":"hidden",...j.style,...q},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:W,onMouseMove:V,onMouseLeave:Q,onContextMenu:B,onClick:te,onDoubleClick:Z,onKeyDown:I?ee:void 0,tabIndex:I?0:void 0,onFocus:I?se:void 0,role:j.ariaRole??(I?"group":void 0),"aria-roledescription":"node","aria-describedby":v?void 0:`${wR}-${b}`,"aria-label":j.ariaLabel,...j.domAttributes,children:u.jsx(KK,{value:e,children:u.jsx(D,{id:e,data:j.data,type:A,positionAbsoluteX:N.positionAbsolute.x,positionAbsoluteY:N.positionAbsolute.y,selected:j.selected??!1,selectable:T,draggable:O,deletable:j.deletable??!0,isConnectable:M,sourcePosition:j.sourcePosition,targetPosition:j.targetPosition,dragging:U,dragHandle:j.dragHandle,zIndex:N.z,parentId:j.parentId,...G})})})}var hZ=C.memo(pZ);const gZ=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function OR(e){const{nodesDraggable:t,nodesConnectable:n,nodesFocusable:i,elementsSelectable:r,onError:o}=an(gZ,Hn),a=uZ(e.onlyRenderVisibleElements),c=fZ();return u.jsx("div",{className:"react-flow__nodes",style:cp,children:a.map(d=>u.jsx(hZ,{id:d,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:c,nodesDraggable:t,nodesConnectable:n,nodesFocusable:i,elementsSelectable:r,nodeClickDistance:e.nodeClickDistance,onError:o},d))})}OR.displayName="NodeRenderer";const yZ=C.memo(OR);function xZ(e){return an(C.useCallback(n=>{if(!e)return n.edges.map(r=>r.id);const i=[];if(n.width&&n.height)for(const r of n.edges){const o=n.nodeLookup.get(r.source),a=n.nodeLookup.get(r.target);o&&a&&gX({sourceNode:o,targetNode:a,width:n.width,height:n.height,transform:n.transform})&&i.push(r.id)}return i},[e]),Hn)}const vZ=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e}};return u.jsx("polyline",{className:"arrow",style:n,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},bZ=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e,fill:e}};return u.jsx("polyline",{className:"arrowclosed",style:n,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},V2={[Sm.Arrow]:vZ,[Sm.ArrowClosed]:bZ};function _Z(e){const t=Fn();return C.useMemo(()=>Object.prototype.hasOwnProperty.call(V2,e)?V2[e]:(t.getState().onError?.("009",as.error009(e)),null),[e])}const kZ=({id:e,type:t,color:n,width:i=12.5,height:r=12.5,markerUnits:o="strokeWidth",strokeWidth:a,orient:c="auto-start-reverse"})=>{const d=_Z(t);return d?u.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${i}`,markerHeight:`${r}`,viewBox:"-10 -10 20 20",markerUnits:o,orient:c,refX:"0",refY:"0",children:u.jsx(d,{color:n,strokeWidth:a})}):null},LR=({defaultColor:e,rfId:t})=>{const n=an(o=>o.edges),i=an(o=>o.defaultEdgeOptions),r=C.useMemo(()=>wX(n,{id:t,defaultColor:e,defaultMarkerStart:i?.markerStart,defaultMarkerEnd:i?.markerEnd}),[n,i,t,e]);return r.length?u.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:u.jsx("defs",{children:r.map(o=>u.jsx(kZ,{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};LR.displayName="MarkerDefinitions";var SZ=C.memo(LR);function zR({x:e,y:t,label:n,labelStyle:i,labelShowBg:r=!0,labelBgStyle:o,labelBgPadding:a=[2,4],labelBgBorderRadius:c=2,children:d,className:m,...h}){const[p,g]=C.useState({x:1,y:0,width:0,height:0}),x=di(["react-flow__edge-textwrapper",m]),v=C.useRef(null);return C.useEffect(()=>{if(v.current){const b=v.current.getBBox();g({x:b.x,y:b.y,width:b.width,height:b.height})}},[n]),n?u.jsxs("g",{transform:`translate(${e-p.width/2} ${t-p.height/2})`,className:x,visibility:p.width?"visible":"hidden",...h,children:[r&&u.jsx("rect",{width:p.width+2*a[0],x:-a[0],y:-a[1],height:p.height+2*a[1],className:"react-flow__edge-textbg",style:o,rx:c,ry:c}),u.jsx("text",{className:"react-flow__edge-text",y:p.height/2,dy:"0.3em",ref:v,style:i,children:n}),d]}):null}zR.displayName="EdgeText";const wZ=C.memo(zR);function up({path:e,labelX:t,labelY:n,label:i,labelStyle:r,labelShowBg:o,labelBgStyle:a,labelBgPadding:c,labelBgBorderRadius:d,interactionWidth:m=20,...h}){return u.jsxs(u.Fragment,{children:[u.jsx("path",{...h,d:e,fill:"none",className:di(["react-flow__edge-path",h.className])}),m?u.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:m,className:"react-flow__edge-interaction"}):null,i&&Pr(t)&&Pr(n)?u.jsx(wZ,{x:t,y:n,label:i,labelStyle:r,labelShowBg:o,labelBgStyle:a,labelBgPadding:c,labelBgBorderRadius:d}):null]})}function U2({pos:e,x1:t,y1:n,x2:i,y2:r}){return e===lt.Left||e===lt.Right?[.5*(t+i),n]:[t,.5*(n+r)]}function PR({sourceX:e,sourceY:t,sourcePosition:n=lt.Bottom,targetX:i,targetY:r,targetPosition:o=lt.Top}){const[a,c]=U2({pos:n,x1:e,y1:t,x2:i,y2:r}),[d,m]=U2({pos:o,x1:i,y1:r,x2:e,y2:t}),[h,p,g,x]=aR({sourceX:e,sourceY:t,targetX:i,targetY:r,sourceControlX:a,sourceControlY:c,targetControlX:d,targetControlY:m});return[`M${e},${t} C${a},${c} ${d},${m} ${i},${r}`,h,p,g,x]}function BR(e){return C.memo(({id:t,sourceX:n,sourceY:i,targetX:r,targetY:o,sourcePosition:a,targetPosition:c,label:d,labelStyle:m,labelShowBg:h,labelBgStyle:p,labelBgPadding:g,labelBgBorderRadius:x,style:v,markerEnd:b,markerStart:w,interactionWidth:k})=>{const[S,j,N]=PR({sourceX:n,sourceY:i,sourcePosition:a,targetX:r,targetY:o,targetPosition:c}),L=e.isInternal?void 0:t;return u.jsx(up,{id:L,path:S,labelX:j,labelY:N,label:d,labelStyle:m,labelShowBg:h,labelBgStyle:p,labelBgPadding:g,labelBgBorderRadius:x,style:v,markerEnd:b,markerStart:w,interactionWidth:k})})}const CZ=BR({isInternal:!1}),$R=BR({isInternal:!0});CZ.displayName="SimpleBezierEdge";$R.displayName="SimpleBezierEdgeInternal";function HR(e){return C.memo(({id:t,sourceX:n,sourceY:i,targetX:r,targetY:o,label:a,labelStyle:c,labelShowBg:d,labelBgStyle:m,labelBgPadding:h,labelBgBorderRadius:p,style:g,sourcePosition:x=lt.Bottom,targetPosition:v=lt.Top,markerEnd:b,markerStart:w,pathOptions:k,interactionWidth:S})=>{const[j,N,L]=Dv({sourceX:n,sourceY:i,sourcePosition:x,targetX:r,targetY:o,targetPosition:v,borderRadius:k?.borderRadius,offset:k?.offset,stepPosition:k?.stepPosition}),A=e.isInternal?void 0:t;return u.jsx(up,{id:A,path:j,labelX:N,labelY:L,label:a,labelStyle:c,labelShowBg:d,labelBgStyle:m,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:b,markerStart:w,interactionWidth:S})})}const FR=HR({isInternal:!1}),VR=HR({isInternal:!0});FR.displayName="SmoothStepEdge";VR.displayName="SmoothStepEdgeInternal";function UR(e){return C.memo(({id:t,...n})=>{const i=e.isInternal?void 0:t;return u.jsx(FR,{...n,id:i,pathOptions:C.useMemo(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}const jZ=UR({isInternal:!1}),GR=UR({isInternal:!0});jZ.displayName="StepEdge";GR.displayName="StepEdgeInternal";function qR(e){return C.memo(({id:t,sourceX:n,sourceY:i,targetX:r,targetY:o,label:a,labelStyle:c,labelShowBg:d,labelBgStyle:m,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:x,markerStart:v,interactionWidth:b})=>{const[w,k,S]=uR({sourceX:n,sourceY:i,targetX:r,targetY:o}),j=e.isInternal?void 0:t;return u.jsx(up,{id:j,path:w,labelX:k,labelY:S,label:a,labelStyle:c,labelShowBg:d,labelBgStyle:m,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:x,markerStart:v,interactionWidth:b})})}const EZ=qR({isInternal:!1}),WR=qR({isInternal:!0});EZ.displayName="StraightEdge";WR.displayName="StraightEdgeInternal";function YR(e){return C.memo(({id:t,sourceX:n,sourceY:i,targetX:r,targetY:o,sourcePosition:a=lt.Bottom,targetPosition:c=lt.Top,label:d,labelStyle:m,labelShowBg:h,labelBgStyle:p,labelBgPadding:g,labelBgBorderRadius:x,style:v,markerEnd:b,markerStart:w,pathOptions:k,interactionWidth:S})=>{const[j,N,L]=lR({sourceX:n,sourceY:i,sourcePosition:a,targetX:r,targetY:o,targetPosition:c,curvature:k?.curvature}),A=e.isInternal?void 0:t;return u.jsx(up,{id:A,path:j,labelX:N,labelY:L,label:d,labelStyle:m,labelShowBg:h,labelBgStyle:p,labelBgPadding:g,labelBgBorderRadius:x,style:v,markerEnd:b,markerStart:w,interactionWidth:S})})}const NZ=YR({isInternal:!1}),XR=YR({isInternal:!0});NZ.displayName="BezierEdge";XR.displayName="BezierEdgeInternal";const G2={default:XR,straight:WR,step:GR,smoothstep:VR,simplebezier:$R},q2={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},IZ=(e,t,n)=>n===lt.Left?e-t:n===lt.Right?e+t:e,TZ=(e,t,n)=>n===lt.Top?e-t:n===lt.Bottom?e+t:e,W2="react-flow__edgeupdater";function Y2({position:e,centerX:t,centerY:n,radius:i=10,onMouseDown:r,onMouseEnter:o,onMouseOut:a,type:c}){return u.jsx("circle",{onMouseDown:r,onMouseEnter:o,onMouseOut:a,className:di([W2,`${W2}-${c}`]),cx:IZ(t,i,e),cy:TZ(n,i,e),r:i,stroke:"transparent",fill:"transparent"})}function RZ({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:i,sourceY:r,targetX:o,targetY:a,sourcePosition:c,targetPosition:d,onReconnect:m,onReconnectStart:h,onReconnectEnd:p,setReconnecting:g,setUpdateHover:x}){const v=Fn(),b=(N,L)=>{if(N.button!==0)return;const{autoPanOnConnect:A,domNode:D,connectionMode:O,connectionRadius:T,lib:M,onConnectStart:I,cancelConnection:H,nodeLookup:Y,rfId:P,panBy:U,updateConnection:$}=v.getState(),G=L.type==="target",q=(V,Q)=>{g(!1),p?.(V,n,L.type,Q)},K=V=>m?.(n,V),W=(V,Q)=>{g(!0),h?.(N,n,L.type),I?.(V,Q)};zv.onPointerDown(N.nativeEvent,{autoPanOnConnect:A,connectionMode:O,connectionRadius:T,domNode:D,handleId:L.id,nodeId:L.nodeId,nodeLookup:Y,isTarget:G,edgeUpdaterType:L.type,lib:M,flowId:P,cancelConnection:H,panBy:U,isValidConnection:(...V)=>v.getState().isValidConnection?.(...V)??!0,onConnect:K,onConnectStart:W,onConnectEnd:(...V)=>v.getState().onConnectEnd?.(...V),onReconnectEnd:q,updateConnection:$,getTransform:()=>v.getState().transform,getFromHandle:()=>v.getState().connection.fromHandle,dragThreshold:v.getState().connectionDragThreshold,handleDomNode:N.currentTarget})},w=N=>b(N,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),k=N=>b(N,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),S=()=>x(!0),j=()=>x(!1);return u.jsxs(u.Fragment,{children:[(e===!0||e==="source")&&u.jsx(Y2,{position:c,centerX:i,centerY:r,radius:t,onMouseDown:w,onMouseEnter:S,onMouseOut:j,type:"source"}),(e===!0||e==="target")&&u.jsx(Y2,{position:d,centerX:o,centerY:a,radius:t,onMouseDown:k,onMouseEnter:S,onMouseOut:j,type:"target"})]})}function AZ({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:i,onClick:r,onDoubleClick:o,onContextMenu:a,onMouseEnter:c,onMouseMove:d,onMouseLeave:m,reconnectRadius:h,onReconnect:p,onReconnectStart:g,onReconnectEnd:x,rfId:v,edgeTypes:b,noPanClassName:w,onError:k,disableKeyboardA11y:S}){let j=an(we=>we.edgeLookup.get(e));const N=an(we=>we.defaultEdgeOptions);j=N?{...N,...j}:j;let L=j.type||"default",A=b?.[L]||G2[L];A===void 0&&(k?.("011",as.error011(L)),L="default",A=b?.default||G2.default);const D=!!(j.focusable||t&&typeof j.focusable>"u"),O=typeof p<"u"&&(j.reconnectable||n&&typeof j.reconnectable>"u"),T=!!(j.selectable||i&&typeof j.selectable>"u"),M=C.useRef(null),[I,H]=C.useState(!1),[Y,P]=C.useState(!1),U=Fn(),{zIndex:$,sourceX:G,sourceY:q,targetX:K,targetY:W,sourcePosition:V,targetPosition:Q}=an(C.useCallback(we=>{const Re=we.nodeLookup.get(j.source),Ve=we.nodeLookup.get(j.target);if(!Re||!Ve)return{zIndex:j.zIndex,...q2};const Ge=SX({id:e,sourceNode:Re,targetNode:Ve,sourceHandle:j.sourceHandle||null,targetHandle:j.targetHandle||null,connectionMode:we.connectionMode,onError:k});return{zIndex:hX({selected:j.selected,zIndex:j.zIndex,sourceNode:Re,targetNode:Ve,elevateOnSelect:we.elevateEdgesOnSelect,zIndexMode:we.zIndexMode}),...Ge||q2}},[j.source,j.target,j.sourceHandle,j.targetHandle,j.selected,j.zIndex]),Hn),B=C.useMemo(()=>j.markerStart?`url('#${Ov(j.markerStart,v)}')`:void 0,[j.markerStart,v]),Z=C.useMemo(()=>j.markerEnd?`url('#${Ov(j.markerEnd,v)}')`:void 0,[j.markerEnd,v]);if(j.hidden||G===null||q===null||K===null||W===null)return null;const te=we=>{const{addSelectedEdges:Re,unselectNodesAndEdges:Ve,multiSelectionActive:Ge}=U.getState();T&&(U.setState({nodesSelectionActive:!1}),j.selected&&Ge?(Ve({nodes:[],edges:[j]}),M.current?.blur()):Re([e])),r&&r(we,j)},ee=o?we=>{o(we,{...j})}:void 0,se=a?we=>{a(we,{...j})}:void 0,ae=c?we=>{c(we,{...j})}:void 0,ue=d?we=>{d(we,{...j})}:void 0,ie=m?we=>{m(we,{...j})}:void 0,je=we=>{if(!S&&WT.includes(we.key)&&T){const{unselectNodesAndEdges:Re,addSelectedEdges:Ve}=U.getState();we.key==="Escape"?(M.current?.blur(),Re({edges:[j]})):Ve([e])}};return u.jsx("svg",{style:{zIndex:$},children:u.jsxs("g",{className:di(["react-flow__edge",`react-flow__edge-${L}`,j.className,w,{selected:j.selected,animated:j.animated,inactive:!T&&!r,updating:I,selectable:T}]),onClick:te,onDoubleClick:ee,onContextMenu:se,onMouseEnter:ae,onMouseMove:ue,onMouseLeave:ie,onKeyDown:D?je:void 0,tabIndex:D?0:void 0,role:j.ariaRole??(D?"group":"img"),"aria-roledescription":"edge","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":j.ariaLabel===null?void 0:j.ariaLabel||`Edge from ${j.source} to ${j.target}`,"aria-describedby":D?`${CR}-${v}`:void 0,ref:M,...j.domAttributes,children:[!Y&&u.jsx(A,{id:e,source:j.source,target:j.target,type:j.type,selected:j.selected,animated:j.animated,selectable:T,deletable:j.deletable??!0,label:j.label,labelStyle:j.labelStyle,labelShowBg:j.labelShowBg,labelBgStyle:j.labelBgStyle,labelBgPadding:j.labelBgPadding,labelBgBorderRadius:j.labelBgBorderRadius,sourceX:G,sourceY:q,targetX:K,targetY:W,sourcePosition:V,targetPosition:Q,data:j.data,style:j.style,sourceHandleId:j.sourceHandle,targetHandleId:j.targetHandle,markerStart:B,markerEnd:Z,pathOptions:"pathOptions"in j?j.pathOptions:void 0,interactionWidth:j.interactionWidth}),O&&u.jsx(RZ,{edge:j,isReconnectable:O,reconnectRadius:h,onReconnect:p,onReconnectStart:g,onReconnectEnd:x,sourceX:G,sourceY:q,targetX:K,targetY:W,sourcePosition:V,targetPosition:Q,setUpdateHover:H,setReconnecting:P})]})})}var MZ=C.memo(AZ);const DZ=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function KR({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:i,noPanClassName:r,onReconnect:o,onEdgeContextMenu:a,onEdgeMouseEnter:c,onEdgeMouseMove:d,onEdgeMouseLeave:m,onEdgeClick:h,reconnectRadius:p,onEdgeDoubleClick:g,onReconnectStart:x,onReconnectEnd:v,disableKeyboardA11y:b}){const{edgesFocusable:w,edgesReconnectable:k,elementsSelectable:S,onError:j}=an(DZ,Hn),N=xZ(t);return u.jsxs("div",{className:"react-flow__edges",children:[u.jsx(SZ,{defaultColor:e,rfId:n}),N.map(L=>u.jsx(MZ,{id:L,edgesFocusable:w,edgesReconnectable:k,elementsSelectable:S,noPanClassName:r,onReconnect:o,onContextMenu:a,onMouseEnter:c,onMouseMove:d,onMouseLeave:m,onClick:h,reconnectRadius:p,onDoubleClick:g,onReconnectStart:x,onReconnectEnd:v,rfId:n,onError:j,edgeTypes:i,disableKeyboardA11y:b},L))]})}KR.displayName="EdgeRenderer";const OZ=C.memo(KR),LZ=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function zZ({children:e}){const t=an(LZ);return u.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}function PZ(e){const t=ib(),n=C.useRef(!1);C.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const BZ=e=>e.panZoom?.syncViewport;function $Z(e){const t=an(BZ),n=Fn();return C.useEffect(()=>{e&&(t?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function HZ(e){return e.connection.inProgress?{...e.connection,to:Ku(e.connection.to,e.transform)}:{...e.connection}}function FZ(e){return HZ}function VZ(e){const t=FZ();return an(t,Hn)}const UZ=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function GZ({containerStyle:e,style:t,type:n,component:i}){const{nodesConnectable:r,width:o,height:a,isValid:c,inProgress:d}=an(UZ,Hn);return!(o&&r&&d)?null:u.jsx("svg",{style:e,width:o,height:a,className:"react-flow__connectionline react-flow__container",children:u.jsx("g",{className:di(["react-flow__connection",KT(c)]),children:u.jsx(ZR,{style:t,type:n,CustomComponent:i,isValid:c})})})}const ZR=({style:e,type:t=yo.Bezier,CustomComponent:n,isValid:i})=>{const{inProgress:r,from:o,fromNode:a,fromHandle:c,fromPosition:d,to:m,toNode:h,toHandle:p,toPosition:g,pointer:x}=VZ();if(!r)return;if(n)return u.jsx(n,{connectionLineType:t,connectionLineStyle:e,fromNode:a,fromHandle:c,fromX:o.x,fromY:o.y,toX:m.x,toY:m.y,fromPosition:d,toPosition:g,connectionStatus:KT(i),toNode:h,toHandle:p,pointer:x});let v="";const b={sourceX:o.x,sourceY:o.y,sourcePosition:d,targetX:m.x,targetY:m.y,targetPosition:g};switch(t){case yo.Bezier:[v]=lR(b);break;case yo.SimpleBezier:[v]=PR(b);break;case yo.Step:[v]=Dv({...b,borderRadius:0});break;case yo.SmoothStep:[v]=Dv(b);break;default:[v]=uR(b)}return u.jsx("path",{d:v,fill:"none",className:"react-flow__connection-path",style:e})};ZR.displayName="ConnectionLine";const qZ={};function X2(e=qZ){C.useRef(e),Fn(),C.useEffect(()=>{},[e])}function WZ(){Fn(),C.useRef(!1),C.useEffect(()=>{},[])}function QR({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:i,onEdgeClick:r,onNodeDoubleClick:o,onEdgeDoubleClick:a,onNodeMouseEnter:c,onNodeMouseMove:d,onNodeMouseLeave:m,onNodeContextMenu:h,onSelectionContextMenu:p,onSelectionStart:g,onSelectionEnd:x,connectionLineType:v,connectionLineStyle:b,connectionLineComponent:w,connectionLineContainerStyle:k,selectionKeyCode:S,selectionOnDrag:j,selectionMode:N,multiSelectionKeyCode:L,panActivationKeyCode:A,zoomActivationKeyCode:D,deleteKeyCode:O,onlyRenderVisibleElements:T,elementsSelectable:M,defaultViewport:I,translateExtent:H,minZoom:Y,maxZoom:P,preventScrolling:U,defaultMarkerColor:$,zoomOnScroll:G,zoomOnPinch:q,panOnScroll:K,panOnScrollSpeed:W,panOnScrollMode:V,zoomOnDoubleClick:Q,panOnDrag:B,onPaneClick:Z,onPaneMouseEnter:te,onPaneMouseMove:ee,onPaneMouseLeave:se,onPaneScroll:ae,onPaneContextMenu:ue,paneClickDistance:ie,nodeClickDistance:je,onEdgeContextMenu:we,onEdgeMouseEnter:Re,onEdgeMouseMove:Ve,onEdgeMouseLeave:Ge,reconnectRadius:qe,onReconnect:_t,onReconnectStart:$t,onReconnectEnd:Ht,noDragClassName:Gt,noWheelClassName:he,noPanClassName:$e,disableKeyboardA11y:ut,nodeExtent:nt,rfId:Ke,viewport:pe,onViewportChange:Se}){return X2(e),X2(t),WZ(),PZ(n),$Z(pe),u.jsx(lZ,{onPaneClick:Z,onPaneMouseEnter:te,onPaneMouseMove:ee,onPaneMouseLeave:se,onPaneContextMenu:ue,onPaneScroll:ae,paneClickDistance:ie,deleteKeyCode:O,selectionKeyCode:S,selectionOnDrag:j,selectionMode:N,onSelectionStart:g,onSelectionEnd:x,multiSelectionKeyCode:L,panActivationKeyCode:A,zoomActivationKeyCode:D,elementsSelectable:M,zoomOnScroll:G,zoomOnPinch:q,zoomOnDoubleClick:Q,panOnScroll:K,panOnScrollSpeed:W,panOnScrollMode:V,panOnDrag:B,defaultViewport:I,translateExtent:H,minZoom:Y,maxZoom:P,onSelectionContextMenu:p,preventScrolling:U,noDragClassName:Gt,noWheelClassName:he,noPanClassName:$e,disableKeyboardA11y:ut,onViewportChange:Se,isControlledViewport:!!pe,children:u.jsxs(zZ,{children:[u.jsx(OZ,{edgeTypes:t,onEdgeClick:r,onEdgeDoubleClick:a,onReconnect:_t,onReconnectStart:$t,onReconnectEnd:Ht,onlyRenderVisibleElements:T,onEdgeContextMenu:we,onEdgeMouseEnter:Re,onEdgeMouseMove:Ve,onEdgeMouseLeave:Ge,reconnectRadius:qe,defaultMarkerColor:$,noPanClassName:$e,disableKeyboardA11y:ut,rfId:Ke}),u.jsx(GZ,{style:b,type:v,component:w,containerStyle:k}),u.jsx("div",{className:"react-flow__edgelabel-renderer"}),u.jsx(yZ,{nodeTypes:e,onNodeClick:i,onNodeDoubleClick:o,onNodeMouseEnter:c,onNodeMouseMove:d,onNodeMouseLeave:m,onNodeContextMenu:h,nodeClickDistance:je,onlyRenderVisibleElements:T,noPanClassName:$e,noDragClassName:Gt,disableKeyboardA11y:ut,nodeExtent:nt,rfId:Ke}),u.jsx("div",{className:"react-flow__viewport-portal"})]})})}QR.displayName="GraphView";const YZ=C.memo(QR),K2=({nodes:e,edges:t,defaultNodes:n,defaultEdges:i,width:r,height:o,fitView:a,fitViewOptions:c,minZoom:d=.5,maxZoom:m=2,nodeOrigin:h,nodeExtent:p,zIndexMode:g="basic"}={})=>{const x=new Map,v=new Map,b=new Map,w=new Map,k=i??t??[],S=n??e??[],j=h??[0,0],N=p??Du;mR(b,w,k);const{nodesInitialized:L}=Lv(S,x,v,{nodeOrigin:j,nodeExtent:N,zIndexMode:g});let A=[0,0,1];if(a&&r&&o){const D=Yu(x,{filter:I=>!!((I.width||I.initialWidth)&&(I.height||I.initialHeight))}),{x:O,y:T,zoom:M}=K0(D,r,o,d,m,c?.padding??.1);A=[O,T,M]}return{rfId:"1",width:r??0,height:o??0,transform:A,nodes:S,nodesInitialized:L,nodeLookup:x,parentLookup:v,edges:k,edgeLookup:w,connectionLookup:b,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:i!==void 0,panZoom:null,minZoom:d,maxZoom:m,translateExtent:Du,nodeExtent:N,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:Ml.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:j,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:a??!1,fitViewOptions:c,fitViewResolver:null,connection:{...XT},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:cX,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:YT,zIndexMode:g,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},XZ=({nodes:e,edges:t,defaultNodes:n,defaultEdges:i,width:r,height:o,fitView:a,fitViewOptions:c,minZoom:d,maxZoom:m,nodeOrigin:h,nodeExtent:p,zIndexMode:g})=>mK((x,v)=>{async function b(){const{nodeLookup:w,panZoom:k,fitViewOptions:S,fitViewResolver:j,width:N,height:L,minZoom:A,maxZoom:D}=v();k&&(await aX({nodes:w,width:N,height:L,panZoom:k,minZoom:A,maxZoom:D},S),j?.resolve(!0),x({fitViewResolver:null}))}return{...K2({nodes:e,edges:t,width:r,height:o,fitView:a,fitViewOptions:c,minZoom:d,maxZoom:m,nodeOrigin:h,nodeExtent:p,defaultNodes:n,defaultEdges:i,zIndexMode:g}),setNodes:w=>{const{nodeLookup:k,parentLookup:S,nodeOrigin:j,elevateNodesOnSelect:N,fitViewQueued:L,zIndexMode:A,nodesSelectionActive:D}=v(),{nodesInitialized:O,hasSelectedNodes:T}=Lv(w,k,S,{nodeOrigin:j,nodeExtent:p,elevateNodesOnSelect:N,checkEquality:!0,zIndexMode:A}),M=D&&T;L&&O?(b(),x({nodes:w,nodesInitialized:O,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:M})):x({nodes:w,nodesInitialized:O,nodesSelectionActive:M})},setEdges:w=>{const{connectionLookup:k,edgeLookup:S}=v();mR(k,S,w),x({edges:w})},setDefaultNodesAndEdges:(w,k)=>{if(w){const{setNodes:S}=v();S(w),x({hasDefaultNodes:!0})}if(k){const{setEdges:S}=v();S(k),x({hasDefaultEdges:!0})}},updateNodeInternals:w=>{const{triggerNodeChanges:k,nodeLookup:S,parentLookup:j,domNode:N,nodeOrigin:L,nodeExtent:A,debug:D,fitViewQueued:O,zIndexMode:T}=v(),{changes:M,updatedInternals:I}=RX(w,S,j,N,L,A,T);I&&(EX(S,j,{nodeOrigin:L,nodeExtent:A,zIndexMode:T}),O?(b(),x({fitViewQueued:!1,fitViewOptions:void 0})):x({}),M?.length>0&&(D&&console.log("React Flow: trigger node changes",M),k?.(M)))},updateNodePositions:(w,k=!1)=>{const S=[];let j=[];const{nodeLookup:N,triggerNodeChanges:L,connection:A,updateConnection:D,onNodesChangeMiddlewareMap:O}=v();for(const[T,M]of w){const I=N.get(T),H=!!(I?.expandParent&&I?.parentId&&M?.position),Y={id:T,type:"position",position:H?{x:Math.max(0,M.position.x),y:Math.max(0,M.position.y)}:M.position,dragging:k};if(I&&A.inProgress&&A.fromNode.id===I.id){const P=ma(I,A.fromHandle,lt.Left,!0);D({...A,from:P})}H&&I.parentId&&S.push({id:T,parentId:I.parentId,rect:{...M.internals.positionAbsolute,width:M.measured.width??0,height:M.measured.height??0}}),j.push(Y)}if(S.length>0){const{parentLookup:T,nodeOrigin:M}=v(),I=nb(S,N,T,M);j.push(...I)}for(const T of O.values())j=T(j);L(j)},triggerNodeChanges:w=>{const{onNodesChange:k,setNodes:S,nodes:j,hasDefaultNodes:N,debug:L}=v();if(w?.length){if(N){const A=NR(w,j);S(A)}L&&console.log("React Flow: trigger node changes",w),k?.(w)}},triggerEdgeChanges:w=>{const{onEdgesChange:k,setEdges:S,edges:j,hasDefaultEdges:N,debug:L}=v();if(w?.length){if(N){const A=DK(w,j);S(A)}L&&console.log("React Flow: trigger edge changes",w),k?.(w)}},addSelectedNodes:w=>{const{multiSelectionActive:k,edgeLookup:S,nodeLookup:j,triggerNodeChanges:N,triggerEdgeChanges:L}=v();if(k){const A=w.map(D=>na(D,!0));N(A);return}N(ul(j,new Set([...w]),!0)),L(ul(S))},addSelectedEdges:w=>{const{multiSelectionActive:k,edgeLookup:S,nodeLookup:j,triggerNodeChanges:N,triggerEdgeChanges:L}=v();if(k){const A=w.map(D=>na(D,!0));L(A);return}L(ul(S,new Set([...w]))),N(ul(j,new Set,!0))},unselectNodesAndEdges:({nodes:w,edges:k}={})=>{const{edges:S,nodes:j,nodeLookup:N,triggerNodeChanges:L,triggerEdgeChanges:A}=v(),D=w||j,O=k||S,T=[];for(const I of D){if(!I.selected)continue;const H=N.get(I.id);H&&(H.selected=!1),T.push(na(I.id,!1))}const M=[];for(const I of O)I.selected&&M.push(na(I.id,!1));L(T),A(M)},setMinZoom:w=>{const{panZoom:k,maxZoom:S}=v();k?.setScaleExtent([w,S]),x({minZoom:w})},setMaxZoom:w=>{const{panZoom:k,minZoom:S}=v();k?.setScaleExtent([S,w]),x({maxZoom:w})},setTranslateExtent:w=>{v().panZoom?.setTranslateExtent(w),x({translateExtent:w})},resetSelectedElements:()=>{const{edges:w,nodes:k,triggerNodeChanges:S,triggerEdgeChanges:j,elementsSelectable:N}=v();if(!N)return;const L=k.reduce((D,O)=>O.selected?[...D,na(O.id,!1)]:D,[]),A=w.reduce((D,O)=>O.selected?[...D,na(O.id,!1)]:D,[]);S(L),j(A)},setNodeExtent:w=>{const{nodes:k,nodeLookup:S,parentLookup:j,nodeOrigin:N,elevateNodesOnSelect:L,nodeExtent:A,zIndexMode:D}=v();w[0][0]===A[0][0]&&w[0][1]===A[0][1]&&w[1][0]===A[1][0]&&w[1][1]===A[1][1]||(Lv(k,S,j,{nodeOrigin:N,nodeExtent:w,elevateNodesOnSelect:L,checkEquality:!1,zIndexMode:D}),x({nodeExtent:w}))},panBy:w=>{const{transform:k,width:S,height:j,panZoom:N,translateExtent:L}=v();return AX({delta:w,panZoom:N,transform:k,translateExtent:L,width:S,height:j})},setCenter:async(w,k,S)=>{const{width:j,height:N,maxZoom:L,panZoom:A}=v();if(!A)return Promise.resolve(!1);const D=typeof S?.zoom<"u"?S.zoom:L;return await A.setViewport({x:j/2-w*D,y:N/2-k*D,zoom:D},{duration:S?.duration,ease:S?.ease,interpolate:S?.interpolate}),Promise.resolve(!0)},cancelConnection:()=>{x({connection:{...XT}})},updateConnection:w=>{x({connection:w})},reset:()=>x({...K2()})}},Object.is);function JR({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:i,initialWidth:r,initialHeight:o,initialMinZoom:a,initialMaxZoom:c,initialFitViewOptions:d,fitView:m,nodeOrigin:h,nodeExtent:p,zIndexMode:g,children:x}){const[v]=C.useState(()=>XZ({nodes:e,edges:t,defaultNodes:n,defaultEdges:i,width:r,height:o,fitView:m,minZoom:a,maxZoom:c,fitViewOptions:d,nodeOrigin:h,nodeExtent:p,zIndexMode:g}));return u.jsx(pK,{value:v,children:u.jsx(zK,{children:x})})}function KZ({children:e,nodes:t,edges:n,defaultNodes:i,defaultEdges:r,width:o,height:a,fitView:c,fitViewOptions:d,minZoom:m,maxZoom:h,nodeOrigin:p,nodeExtent:g,zIndexMode:x}){return C.useContext(ap)?u.jsx(u.Fragment,{children:e}):u.jsx(JR,{initialNodes:t,initialEdges:n,defaultNodes:i,defaultEdges:r,initialWidth:o,initialHeight:a,fitView:c,initialFitViewOptions:d,initialMinZoom:m,initialMaxZoom:h,nodeOrigin:p,nodeExtent:g,zIndexMode:x,children:e})}const ZZ={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function QZ({nodes:e,edges:t,defaultNodes:n,defaultEdges:i,className:r,nodeTypes:o,edgeTypes:a,onNodeClick:c,onEdgeClick:d,onInit:m,onMove:h,onMoveStart:p,onMoveEnd:g,onConnect:x,onConnectStart:v,onConnectEnd:b,onClickConnectStart:w,onClickConnectEnd:k,onNodeMouseEnter:S,onNodeMouseMove:j,onNodeMouseLeave:N,onNodeContextMenu:L,onNodeDoubleClick:A,onNodeDragStart:D,onNodeDrag:O,onNodeDragStop:T,onNodesDelete:M,onEdgesDelete:I,onDelete:H,onSelectionChange:Y,onSelectionDragStart:P,onSelectionDrag:U,onSelectionDragStop:$,onSelectionContextMenu:G,onSelectionStart:q,onSelectionEnd:K,onBeforeDelete:W,connectionMode:V,connectionLineType:Q=yo.Bezier,connectionLineStyle:B,connectionLineComponent:Z,connectionLineContainerStyle:te,deleteKeyCode:ee="Backspace",selectionKeyCode:se="Shift",selectionOnDrag:ae=!1,selectionMode:ue=Ou.Full,panActivationKeyCode:ie="Space",multiSelectionKeyCode:je=zu()?"Meta":"Control",zoomActivationKeyCode:we=zu()?"Meta":"Control",snapToGrid:Re,snapGrid:Ve,onlyRenderVisibleElements:Ge=!1,selectNodesOnDrag:qe,nodesDraggable:_t,autoPanOnNodeFocus:$t,nodesConnectable:Ht,nodesFocusable:Gt,nodeOrigin:he=jR,edgesFocusable:$e,edgesReconnectable:ut,elementsSelectable:nt=!0,defaultViewport:Ke=EK,minZoom:pe=.5,maxZoom:Se=2,translateExtent:De=Du,preventScrolling:Pe=!0,nodeExtent:Je,defaultMarkerColor:dt="#b1b1b7",zoomOnScroll:nn=!0,zoomOnPinch:be=!0,panOnScroll:We=!1,panOnScrollSpeed:et=.5,panOnScrollMode:Ue=aa.Free,zoomOnDoubleClick:Ae=!0,panOnDrag:jt=!0,onPaneClick:An,onPaneMouseEnter:qn,onPaneMouseMove:ft,onPaneMouseLeave:bn,onPaneScroll:Nn,onPaneContextMenu:Rt,paneClickDistance:bt=1,nodeClickDistance:Vn=0,children:St,onReconnect:Ye,onReconnectStart:Ft,onReconnectEnd:zi,onEdgeContextMenu:Mn,onEdgeDoubleClick:Jt,onEdgeMouseEnter:gt,onEdgeMouseMove:Vt,onEdgeMouseLeave:dn,reconnectRadius:Ln=10,onNodesChange:Wn,onEdgesChange:At,noDragClassName:Ut="nodrag",noWheelClassName:In="nowheel",noPanClassName:Yn="nopan",fitView:Te,fitViewOptions:kt,connectOnClick:pn,attributionPosition:Un,proOptions:Tn,defaultEdgeOptions:Et,elevateNodesOnSelect:gi=!0,elevateEdgesOnSelect:fi=!1,disableKeyboardA11y:ni=!1,autoPanOnConnect:hn,autoPanOnNodeDrag:Xt,autoPanSpeed:Mt,connectionRadius:Kt,isValidConnection:zn,onError:Pn,style:Gn,id:yi,nodeDragThreshold:_n,connectionDragThreshold:ln,viewport:Xe,onViewportChange:Si,width:rn,height:Dt,colorMode:Ri="light",debug:er,onScroll:de,ariaLabelConfig:_e,zIndexMode:Fe="basic",...mt},Ot){const ce=yi||"1",ke=RK(Ri),Me=C.useCallback(Le=>{Le.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),de?.(Le)},[de]);return u.jsx("div",{"data-testid":"rf__wrapper",...mt,onScroll:Me,style:{...Gn,...ZZ},ref:Ot,className:di(["react-flow",r,ke]),id:yi,role:"application",children:u.jsxs(KZ,{nodes:e,edges:t,width:rn,height:Dt,fitView:Te,fitViewOptions:kt,minZoom:pe,maxZoom:Se,nodeOrigin:he,nodeExtent:Je,zIndexMode:Fe,children:[u.jsx(TK,{nodes:e,edges:t,defaultNodes:n,defaultEdges:i,onConnect:x,onConnectStart:v,onConnectEnd:b,onClickConnectStart:w,onClickConnectEnd:k,nodesDraggable:_t,autoPanOnNodeFocus:$t,nodesConnectable:Ht,nodesFocusable:Gt,edgesFocusable:$e,edgesReconnectable:ut,elementsSelectable:nt,elevateNodesOnSelect:gi,elevateEdgesOnSelect:fi,minZoom:pe,maxZoom:Se,nodeExtent:Je,onNodesChange:Wn,onEdgesChange:At,snapToGrid:Re,snapGrid:Ve,connectionMode:V,translateExtent:De,connectOnClick:pn,defaultEdgeOptions:Et,fitView:Te,fitViewOptions:kt,onNodesDelete:M,onEdgesDelete:I,onDelete:H,onNodeDragStart:D,onNodeDrag:O,onNodeDragStop:T,onSelectionDrag:U,onSelectionDragStart:P,onSelectionDragStop:$,onMove:h,onMoveStart:p,onMoveEnd:g,noPanClassName:Yn,nodeOrigin:he,rfId:ce,autoPanOnConnect:hn,autoPanOnNodeDrag:Xt,autoPanSpeed:Mt,onError:Pn,connectionRadius:Kt,isValidConnection:zn,selectNodesOnDrag:qe,nodeDragThreshold:_n,connectionDragThreshold:ln,onBeforeDelete:W,debug:er,ariaLabelConfig:_e,zIndexMode:Fe}),u.jsx(YZ,{onInit:m,onNodeClick:c,onEdgeClick:d,onNodeMouseEnter:S,onNodeMouseMove:j,onNodeMouseLeave:N,onNodeContextMenu:L,onNodeDoubleClick:A,nodeTypes:o,edgeTypes:a,connectionLineType:Q,connectionLineStyle:B,connectionLineComponent:Z,connectionLineContainerStyle:te,selectionKeyCode:se,selectionOnDrag:ae,selectionMode:ue,deleteKeyCode:ee,multiSelectionKeyCode:je,panActivationKeyCode:ie,zoomActivationKeyCode:we,onlyRenderVisibleElements:Ge,defaultViewport:Ke,translateExtent:De,minZoom:pe,maxZoom:Se,preventScrolling:Pe,zoomOnScroll:nn,zoomOnPinch:be,zoomOnDoubleClick:Ae,panOnScroll:We,panOnScrollSpeed:et,panOnScrollMode:Ue,panOnDrag:jt,onPaneClick:An,onPaneMouseEnter:qn,onPaneMouseMove:ft,onPaneMouseLeave:bn,onPaneScroll:Nn,onPaneContextMenu:Rt,paneClickDistance:bt,nodeClickDistance:Vn,onSelectionContextMenu:G,onSelectionStart:q,onSelectionEnd:K,onReconnect:Ye,onReconnectStart:Ft,onReconnectEnd:zi,onEdgeContextMenu:Mn,onEdgeDoubleClick:Jt,onEdgeMouseEnter:gt,onEdgeMouseMove:Vt,onEdgeMouseLeave:dn,reconnectRadius:Ln,defaultMarkerColor:dt,noDragClassName:Ut,noWheelClassName:In,noPanClassName:Yn,rfId:ce,disableKeyboardA11y:ni,nodeExtent:Je,viewport:Xe,onViewportChange:Si}),u.jsx(jK,{onSelectionChange:Y}),St,u.jsx(_K,{proOptions:Tn,position:Un}),u.jsx(bK,{rfId:ce,disableKeyboardA11y:ni})]})})}var JZ=IR(QZ);function eQ({dimensions:e,lineWidth:t,variant:n,className:i}){return u.jsx("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:di(["react-flow__background-pattern",n,i])})}function tQ({radius:e,className:t}){return u.jsx("circle",{cx:e,cy:e,r:e,className:di(["react-flow__background-pattern","dots",t])})}var _o;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(_o||(_o={}));const nQ={[_o.Dots]:1,[_o.Lines]:1,[_o.Cross]:6},iQ=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function eA({id:e,variant:t=_o.Dots,gap:n=20,size:i,lineWidth:r=1,offset:o=0,color:a,bgColor:c,style:d,className:m,patternClassName:h}){const p=C.useRef(null),{transform:g,patternId:x}=an(iQ,Hn),v=i||nQ[t],b=t===_o.Dots,w=t===_o.Cross,k=Array.isArray(n)?n:[n,n],S=[k[0]*g[2]||1,k[1]*g[2]||1],j=v*g[2],N=Array.isArray(o)?o:[o,o],L=w?[j,j]:S,A=[N[0]*g[2]||1+L[0]/2,N[1]*g[2]||1+L[1]/2],D=`${x}${e||""}`;return u.jsxs("svg",{className:di(["react-flow__background",m]),style:{...d,...cp,"--xy-background-color-props":c,"--xy-background-pattern-color-props":a},ref:p,"data-testid":"rf__background",children:[u.jsx("pattern",{id:D,x:g[0]%S[0],y:g[1]%S[1],width:S[0],height:S[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${A[0]},-${A[1]})`,children:b?u.jsx(tQ,{radius:j/2,className:h}):u.jsx(eQ,{dimensions:L,lineWidth:r,variant:t,className:h})}),u.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${D})`})]})}eA.displayName="Background";const rQ=C.memo(eA);function sQ(){return u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:u.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function oQ(){return u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:u.jsx("path",{d:"M0 0h32v4.2H0z"})})}function aQ(){return u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:u.jsx("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function lQ(){return u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:u.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function cQ(){return u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:u.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}function If({children:e,className:t,...n}){return u.jsx("button",{type:"button",className:di(["react-flow__controls-button",t]),...n,children:e})}const uQ=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function tA({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:i=!0,fitViewOptions:r,onZoomIn:o,onZoomOut:a,onFitView:c,onInteractiveChange:d,className:m,children:h,position:p="bottom-left",orientation:g="vertical","aria-label":x}){const v=Fn(),{isInteractive:b,minZoomReached:w,maxZoomReached:k,ariaLabelConfig:S}=an(uQ,Hn),{zoomIn:j,zoomOut:N,fitView:L}=ib(),A=()=>{j(),o?.()},D=()=>{N(),a?.()},O=()=>{L(r),c?.()},T=()=>{v.setState({nodesDraggable:!b,nodesConnectable:!b,elementsSelectable:!b}),d?.(!b)},M=g==="horizontal"?"horizontal":"vertical";return u.jsxs(lp,{className:di(["react-flow__controls",M,m]),position:p,style:e,"data-testid":"rf__controls","aria-label":x??S["controls.ariaLabel"],children:[t&&u.jsxs(u.Fragment,{children:[u.jsx(If,{onClick:A,className:"react-flow__controls-zoomin",title:S["controls.zoomIn.ariaLabel"],"aria-label":S["controls.zoomIn.ariaLabel"],disabled:k,children:u.jsx(sQ,{})}),u.jsx(If,{onClick:D,className:"react-flow__controls-zoomout",title:S["controls.zoomOut.ariaLabel"],"aria-label":S["controls.zoomOut.ariaLabel"],disabled:w,children:u.jsx(oQ,{})})]}),n&&u.jsx(If,{className:"react-flow__controls-fitview",onClick:O,title:S["controls.fitView.ariaLabel"],"aria-label":S["controls.fitView.ariaLabel"],children:u.jsx(aQ,{})}),i&&u.jsx(If,{className:"react-flow__controls-interactive",onClick:T,title:S["controls.interactive.ariaLabel"],"aria-label":S["controls.interactive.ariaLabel"],children:b?u.jsx(cQ,{}):u.jsx(lQ,{})}),h]})}tA.displayName="Controls";const dQ=C.memo(tA);function fQ({id:e,x:t,y:n,width:i,height:r,style:o,color:a,strokeColor:c,strokeWidth:d,className:m,borderRadius:h,shapeRendering:p,selected:g,onClick:x}){const{background:v,backgroundColor:b}=o||{},w=a||v||b;return u.jsx("rect",{className:di(["react-flow__minimap-node",{selected:g},m]),x:t,y:n,rx:h,ry:h,width:i,height:r,style:{fill:w,stroke:c,strokeWidth:d},shapeRendering:p,onClick:x?k=>x(k,e):void 0})}const mQ=C.memo(fQ),pQ=e=>e.nodes.map(t=>t.id),Vy=e=>e instanceof Function?e:()=>e;function hQ({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:i=5,nodeStrokeWidth:r,nodeComponent:o=mQ,onClick:a}){const c=an(pQ,Hn),d=Vy(t),m=Vy(e),h=Vy(n),p=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return u.jsx(u.Fragment,{children:c.map(g=>u.jsx(yQ,{id:g,nodeColorFunc:d,nodeStrokeColorFunc:m,nodeClassNameFunc:h,nodeBorderRadius:i,nodeStrokeWidth:r,NodeComponent:o,onClick:a,shapeRendering:p},g))})}function gQ({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:i,nodeBorderRadius:r,nodeStrokeWidth:o,shapeRendering:a,NodeComponent:c,onClick:d}){const{node:m,x:h,y:p,width:g,height:x}=an(v=>{const b=v.nodeLookup.get(e);if(!b)return{node:void 0,x:0,y:0,width:0,height:0};const w=b.internals.userNode,{x:k,y:S}=b.internals.positionAbsolute,{width:j,height:N}=Ls(w);return{node:w,x:k,y:S,width:j,height:N}},Hn);return!m||m.hidden||!nR(m)?null:u.jsx(c,{x:h,y:p,width:g,height:x,style:m.style,selected:!!m.selected,className:i(m),color:t(m),borderRadius:r,strokeColor:n(m),strokeWidth:o,shapeRendering:a,onClick:d,id:m.id})}const yQ=C.memo(gQ);var xQ=C.memo(hQ);const vQ=200,bQ=150,_Q=e=>!e.hidden,kQ=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?tR(Yu(e.nodeLookup,{filter:_Q}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},SQ="react-flow__minimap-desc";function nA({style:e,className:t,nodeStrokeColor:n,nodeColor:i,nodeClassName:r="",nodeBorderRadius:o=5,nodeStrokeWidth:a,nodeComponent:c,bgColor:d,maskColor:m,maskStrokeColor:h,maskStrokeWidth:p,position:g="bottom-right",onClick:x,onNodeClick:v,pannable:b=!1,zoomable:w=!1,ariaLabel:k,inversePan:S,zoomStep:j=1,offsetScale:N=5}){const L=Fn(),A=C.useRef(null),{boundingRect:D,viewBB:O,rfId:T,panZoom:M,translateExtent:I,flowWidth:H,flowHeight:Y,ariaLabelConfig:P}=an(kQ,Hn),U=e?.width??vQ,$=e?.height??bQ,G=D.width/U,q=D.height/$,K=Math.max(G,q),W=K*U,V=K*$,Q=N*K,B=D.x-(W-D.width)/2-Q,Z=D.y-(V-D.height)/2-Q,te=W+Q*2,ee=V+Q*2,se=`${SQ}-${T}`,ae=C.useRef(0),ue=C.useRef();ae.current=K,C.useEffect(()=>{if(A.current&&M)return ue.current=HX({domNode:A.current,panZoom:M,getTransform:()=>L.getState().transform,getViewScale:()=>ae.current}),()=>{ue.current?.destroy()}},[M]),C.useEffect(()=>{ue.current?.update({translateExtent:I,width:H,height:Y,inversePan:S,pannable:b,zoomStep:j,zoomable:w})},[b,w,S,j,I,H,Y]);const ie=x?Re=>{const[Ve,Ge]=ue.current?.pointer(Re)||[0,0];x(Re,{x:Ve,y:Ge})}:void 0,je=v?C.useCallback((Re,Ve)=>{const Ge=L.getState().nodeLookup.get(Ve).internals.userNode;v(Re,Ge)},[]):void 0,we=k??P["minimap.ariaLabel"];return u.jsx(lp,{position:g,style:{...e,"--xy-minimap-background-color-props":typeof d=="string"?d:void 0,"--xy-minimap-mask-background-color-props":typeof m=="string"?m:void 0,"--xy-minimap-mask-stroke-color-props":typeof h=="string"?h:void 0,"--xy-minimap-mask-stroke-width-props":typeof p=="number"?p*K:void 0,"--xy-minimap-node-background-color-props":typeof i=="string"?i:void 0,"--xy-minimap-node-stroke-color-props":typeof n=="string"?n:void 0,"--xy-minimap-node-stroke-width-props":typeof a=="number"?a:void 0},className:di(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:u.jsxs("svg",{width:U,height:$,viewBox:`${B} ${Z} ${te} ${ee}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":se,ref:A,onClick:ie,children:[we&&u.jsx("title",{id:se,children:we}),u.jsx(xQ,{onClick:je,nodeColor:i,nodeStrokeColor:n,nodeBorderRadius:o,nodeClassName:r,nodeStrokeWidth:a,nodeComponent:c}),u.jsx("path",{className:"react-flow__minimap-mask",d:`M${B-Q},${Z-Q}h${te+Q*2}v${ee+Q*2}h${-te-Q*2}z + M${O.x},${O.y}h${O.width}v${O.height}h${-O.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}nA.displayName="MiniMap";const wQ=C.memo(nA),CQ=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,jQ={[zl.Line]:"right",[zl.Handle]:"bottom-right"};function EQ({nodeId:e,position:t,variant:n=zl.Handle,className:i,style:r=void 0,children:o,color:a,minWidth:c=10,minHeight:d=10,maxWidth:m=Number.MAX_VALUE,maxHeight:h=Number.MAX_VALUE,keepAspectRatio:p=!1,resizeDirection:g,autoScale:x=!0,shouldResize:v,onResizeStart:b,onResize:w,onResizeEnd:k}){const S=MR(),j=typeof e=="string"?e:S,N=Fn(),L=C.useRef(null),A=n===zl.Handle,D=an(C.useCallback(CQ(A&&x),[A,x]),Hn),O=C.useRef(null),T=t??jQ[n];C.useEffect(()=>{if(!(!L.current||!j))return O.current||(O.current=tK({domNode:L.current,nodeId:j,getStoreItems:()=>{const{nodeLookup:I,transform:H,snapGrid:Y,snapToGrid:P,nodeOrigin:U,domNode:$}=N.getState();return{nodeLookup:I,transform:H,snapGrid:Y,snapToGrid:P,nodeOrigin:U,paneDomNode:$}},onChange:(I,H)=>{const{triggerNodeChanges:Y,nodeLookup:P,parentLookup:U,nodeOrigin:$}=N.getState(),G=[],q={x:I.x,y:I.y},K=P.get(j);if(K&&K.expandParent&&K.parentId){const W=K.origin??$,V=I.width??K.measured.width??0,Q=I.height??K.measured.height??0,B={id:K.id,parentId:K.parentId,rect:{width:V,height:Q,...iR({x:I.x??K.position.x,y:I.y??K.position.y},{width:V,height:Q},K.parentId,P,W)}},Z=nb([B],P,U,$);G.push(...Z),q.x=I.x?Math.max(W[0]*V,I.x):void 0,q.y=I.y?Math.max(W[1]*Q,I.y):void 0}if(q.x!==void 0&&q.y!==void 0){const W={id:j,type:"position",position:{...q}};G.push(W)}if(I.width!==void 0&&I.height!==void 0){const V={id:j,type:"dimensions",resizing:!0,setAttributes:g?g==="horizontal"?"width":"height":!0,dimensions:{width:I.width,height:I.height}};G.push(V)}for(const W of H){const V={...W,type:"position"};G.push(V)}Y(G)},onEnd:({width:I,height:H})=>{const Y={id:j,type:"dimensions",resizing:!1,dimensions:{width:I,height:H}};N.getState().triggerNodeChanges([Y])}})),O.current.update({controlPosition:T,boundaries:{minWidth:c,minHeight:d,maxWidth:m,maxHeight:h},keepAspectRatio:p,resizeDirection:g,onResizeStart:b,onResize:w,onResizeEnd:k,shouldResize:v}),()=>{O.current?.destroy()}},[T,c,d,m,h,p,b,w,k,v]);const M=T.split("-");return u.jsx("div",{className:di(["react-flow__resize-control","nodrag",...M,n,i]),ref:L,style:{...r,scale:D,...a&&{[A?"backgroundColor":"borderColor"]:a}},children:o})}C.memo(EQ);const NQ=C.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(" "),i=Uu(t.icon);return u.jsxs("div",{className:n,children:[u.jsx(Pl,{type:"target",position:lt.Top,className:"oc-canvas-handle"}),u.jsxs("div",{className:"oc-canvas-node-row",children:[u.jsx("div",{className:"oc-canvas-node-chip",children:u.jsx("span",{className:"oc-canvas-node-chip-icon",style:{WebkitMaskImage:`url("${i}")`,maskImage:`url("${i}")`},"aria-hidden":!0})}),u.jsxs("div",{className:"oc-canvas-node-text",children:[u.jsx("span",{className:"oc-canvas-node-name",children:t.name}),u.jsxs("div",{className:"oc-canvas-node-meta",children:[t.employeeNames.length>0?u.jsxs("span",{className:"oc-canvas-node-person",title:t.employeeNames.join(", "),children:[t.employeeNames[0],t.employeeNames.length>1?` +${t.employeeNames.length-1}`:""]}):u.jsx("span",{className:"oc-canvas-node-id",children:t.roleId}),t.employeeCount>0&&u.jsx("span",{className:"oc-canvas-node-badge",children:t.employeeCount})]})]})]}),u.jsx(Pl,{type:"source",position:lt.Bottom,className:"oc-canvas-handle"})]})});var Uy,Z2;function sb(){if(Z2)return Uy;Z2=1;var e="\0",t="\0",n="";class i{_isDirected=!0;_isMultigraph=!1;_isCompound=!1;_label;_defaultNodeLabelFn=()=>{};_defaultEdgeLabelFn=()=>{};_nodes={};_in={};_preds={};_out={};_sucs={};_edgeObjs={};_edgeLabels={};_nodeCount=0;_edgeCount=0;_parent;_children;constructor(h){h&&(this._isDirected=Object.hasOwn(h,"directed")?h.directed:!0,this._isMultigraph=Object.hasOwn(h,"multigraph")?h.multigraph:!1,this._isCompound=Object.hasOwn(h,"compound")?h.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children[t]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(h){return this._label=h,this}graph(){return this._label}setDefaultNodeLabel(h){return this._defaultNodeLabelFn=h,typeof h!="function"&&(this._defaultNodeLabelFn=()=>h),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var h=this;return this.nodes().filter(p=>Object.keys(h._in[p]).length===0)}sinks(){var h=this;return this.nodes().filter(p=>Object.keys(h._out[p]).length===0)}setNodes(h,p){var g=arguments,x=this;return h.forEach(function(v){g.length>1?x.setNode(v,p):x.setNode(v)}),this}setNode(h,p){return Object.hasOwn(this._nodes,h)?(arguments.length>1&&(this._nodes[h]=p),this):(this._nodes[h]=arguments.length>1?p:this._defaultNodeLabelFn(h),this._isCompound&&(this._parent[h]=t,this._children[h]={},this._children[t][h]=!0),this._in[h]={},this._preds[h]={},this._out[h]={},this._sucs[h]={},++this._nodeCount,this)}node(h){return this._nodes[h]}hasNode(h){return Object.hasOwn(this._nodes,h)}removeNode(h){var p=this;if(Object.hasOwn(this._nodes,h)){var g=x=>p.removeEdge(p._edgeObjs[x]);delete this._nodes[h],this._isCompound&&(this._removeFromParentsChildList(h),delete this._parent[h],this.children(h).forEach(function(x){p.setParent(x)}),delete this._children[h]),Object.keys(this._in[h]).forEach(g),delete this._in[h],delete this._preds[h],Object.keys(this._out[h]).forEach(g),delete this._out[h],delete this._sucs[h],--this._nodeCount}return this}setParent(h,p){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(p===void 0)p=t;else{p+="";for(var g=p;g!==void 0;g=this.parent(g))if(g===h)throw new Error("Setting "+p+" as parent of "+h+" would create a cycle");this.setNode(p)}return this.setNode(h),this._removeFromParentsChildList(h),this._parent[h]=p,this._children[p][h]=!0,this}_removeFromParentsChildList(h){delete this._children[this._parent[h]][h]}parent(h){if(this._isCompound){var p=this._parent[h];if(p!==t)return p}}children(h=t){if(this._isCompound){var p=this._children[h];if(p)return Object.keys(p)}else{if(h===t)return this.nodes();if(this.hasNode(h))return[]}}predecessors(h){var p=this._preds[h];if(p)return Object.keys(p)}successors(h){var p=this._sucs[h];if(p)return Object.keys(p)}neighbors(h){var p=this.predecessors(h);if(p){const x=new Set(p);for(var g of this.successors(h))x.add(g);return Array.from(x.values())}}isLeaf(h){var p;return this.isDirected()?p=this.successors(h):p=this.neighbors(h),p.length===0}filterNodes(h){var p=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});p.setGraph(this.graph());var g=this;Object.entries(this._nodes).forEach(function([b,w]){h(b)&&p.setNode(b,w)}),Object.values(this._edgeObjs).forEach(function(b){p.hasNode(b.v)&&p.hasNode(b.w)&&p.setEdge(b,g.edge(b))});var x={};function v(b){var w=g.parent(b);return w===void 0||p.hasNode(w)?(x[b]=w,w):w in x?x[w]:v(w)}return this._isCompound&&p.nodes().forEach(b=>p.setParent(b,v(b))),p}setDefaultEdgeLabel(h){return this._defaultEdgeLabelFn=h,typeof h!="function"&&(this._defaultEdgeLabelFn=()=>h),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(h,p){var g=this,x=arguments;return h.reduce(function(v,b){return x.length>1?g.setEdge(v,b,p):g.setEdge(v,b),b}),this}setEdge(){var h,p,g,x,v=!1,b=arguments[0];typeof b=="object"&&b!==null&&"v"in b?(h=b.v,p=b.w,g=b.name,arguments.length===2&&(x=arguments[1],v=!0)):(h=b,p=arguments[1],g=arguments[3],arguments.length>2&&(x=arguments[2],v=!0)),h=""+h,p=""+p,g!==void 0&&(g=""+g);var w=a(this._isDirected,h,p,g);if(Object.hasOwn(this._edgeLabels,w))return v&&(this._edgeLabels[w]=x),this;if(g!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(h),this.setNode(p),this._edgeLabels[w]=v?x:this._defaultEdgeLabelFn(h,p,g);var k=c(this._isDirected,h,p,g);return h=k.v,p=k.w,Object.freeze(k),this._edgeObjs[w]=k,r(this._preds[p],h),r(this._sucs[h],p),this._in[p][w]=k,this._out[h][w]=k,this._edgeCount++,this}edge(h,p,g){var x=arguments.length===1?d(this._isDirected,arguments[0]):a(this._isDirected,h,p,g);return this._edgeLabels[x]}edgeAsObj(){const h=this.edge(...arguments);return typeof h!="object"?{label:h}:h}hasEdge(h,p,g){var x=arguments.length===1?d(this._isDirected,arguments[0]):a(this._isDirected,h,p,g);return Object.hasOwn(this._edgeLabels,x)}removeEdge(h,p,g){var x=arguments.length===1?d(this._isDirected,arguments[0]):a(this._isDirected,h,p,g),v=this._edgeObjs[x];return v&&(h=v.v,p=v.w,delete this._edgeLabels[x],delete this._edgeObjs[x],o(this._preds[p],h),o(this._sucs[h],p),delete this._in[p][x],delete this._out[h][x],this._edgeCount--),this}inEdges(h,p){var g=this._in[h];if(g){var x=Object.values(g);return p?x.filter(v=>v.v===p):x}}outEdges(h,p){var g=this._out[h];if(g){var x=Object.values(g);return p?x.filter(v=>v.w===p):x}}nodeEdges(h,p){var g=this.inEdges(h,p);if(g)return g.concat(this.outEdges(h,p))}}function r(m,h){m[h]?m[h]++:m[h]=1}function o(m,h){--m[h]||delete m[h]}function a(m,h,p,g){var x=""+h,v=""+p;if(!m&&x>v){var b=x;x=v,v=b}return x+n+v+n+(g===void 0?e:g)}function c(m,h,p,g){var x=""+h,v=""+p;if(!m&&x>v){var b=x;x=v,v=b}var w={v:x,w:v};return g&&(w.name=g),w}function d(m,h){return a(m,h.v,h.w,h.name)}return Uy=i,Uy}var Gy,Q2;function IQ(){return Q2||(Q2=1,Gy="2.2.4"),Gy}var qy,J2;function TQ(){return J2||(J2=1,qy={Graph:sb(),version:IQ()}),qy}var Wy,ej;function RQ(){if(ej)return Wy;ej=1;var e=sb();Wy={write:t,read:r};function t(o){var a={options:{directed:o.isDirected(),multigraph:o.isMultigraph(),compound:o.isCompound()},nodes:n(o),edges:i(o)};return o.graph()!==void 0&&(a.value=structuredClone(o.graph())),a}function n(o){return o.nodes().map(function(a){var c=o.node(a),d=o.parent(a),m={v:a};return c!==void 0&&(m.value=c),d!==void 0&&(m.parent=d),m})}function i(o){return o.edges().map(function(a){var c=o.edge(a),d={v:a.v,w:a.w};return a.name!==void 0&&(d.name=a.name),c!==void 0&&(d.value=c),d})}function r(o){var a=new e(o.options).setGraph(o.value);return o.nodes.forEach(function(c){a.setNode(c.v,c.value),c.parent&&a.setParent(c.v,c.parent)}),o.edges.forEach(function(c){a.setEdge({v:c.v,w:c.w,name:c.name},c.value)}),a}return Wy}var Yy,tj;function AQ(){if(tj)return Yy;tj=1,Yy=e;function e(t){var n={},i=[],r;function o(a){Object.hasOwn(n,a)||(n[a]=!0,r.push(a),t.successors(a).forEach(o),t.predecessors(a).forEach(o))}return t.nodes().forEach(function(a){r=[],o(a),r.length&&i.push(r)}),i}return Yy}var Xy,nj;function iA(){if(nj)return Xy;nj=1;class e{_arr=[];_keyIndices={};size(){return this._arr.length}keys(){return this._arr.map(function(n){return n.key})}has(n){return Object.hasOwn(this._keyIndices,n)}priority(n){var i=this._keyIndices[n];if(i!==void 0)return this._arr[i].priority}min(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key}add(n,i){var r=this._keyIndices;if(n=String(n),!Object.hasOwn(r,n)){var o=this._arr,a=o.length;return r[n]=a,o.push({key:n,priority:i}),this._decrease(a),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);var n=this._arr.pop();return delete this._keyIndices[n.key],this._heapify(0),n.key}decrease(n,i){var r=this._keyIndices[n];if(i>this._arr[r].priority)throw new Error("New priority is greater than current priority. Key: "+n+" Old: "+this._arr[r].priority+" New: "+i);this._arr[r].priority=i,this._decrease(r)}_heapify(n){var i=this._arr,r=2*n,o=r+1,a=n;r>1,!(i[o].priority1;function n(r,o,a,c){return i(r,String(o),a||t,c||function(d){return r.outEdges(d)})}function i(r,o,a,c){var d={},m=new e,h,p,g=function(x){var v=x.v!==h?x.v:x.w,b=d[v],w=a(x),k=p.distance+w;if(w<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+x+" Weight: "+w);k0&&(h=m.removeMin(),p=d[h],p.distance!==Number.POSITIVE_INFINITY);)c(h).forEach(g);return d}return Ky}var Zy,rj;function MQ(){if(rj)return Zy;rj=1;var e=rA();Zy=t;function t(n,i,r){return n.nodes().reduce(function(o,a){return o[a]=e(n,a,i,r),o},{})}return Zy}var Qy,sj;function sA(){if(sj)return Qy;sj=1,Qy=e;function e(t){var n=0,i=[],r={},o=[];function a(c){var d=r[c]={onStack:!0,lowlink:n,index:n++};if(i.push(c),t.successors(c).forEach(function(p){Object.hasOwn(r,p)?r[p].onStack&&(d.lowlink=Math.min(d.lowlink,r[p].index)):(a(p),d.lowlink=Math.min(d.lowlink,r[p].lowlink))}),d.lowlink===d.index){var m=[],h;do h=i.pop(),r[h].onStack=!1,m.push(h);while(c!==h);o.push(m)}}return t.nodes().forEach(function(c){Object.hasOwn(r,c)||a(c)}),o}return Qy}var Jy,oj;function DQ(){if(oj)return Jy;oj=1;var e=sA();Jy=t;function t(n){return e(n).filter(function(i){return i.length>1||i.length===1&&n.hasEdge(i[0],i[0])})}return Jy}var ex,aj;function OQ(){if(aj)return ex;aj=1,ex=t;var e=()=>1;function t(i,r,o){return n(i,r||e,o||function(a){return i.outEdges(a)})}function n(i,r,o){var a={},c=i.nodes();return c.forEach(function(d){a[d]={},a[d][d]={distance:0},c.forEach(function(m){d!==m&&(a[d][m]={distance:Number.POSITIVE_INFINITY})}),o(d).forEach(function(m){var h=m.v===d?m.w:m.v,p=r(m);a[d][h]={distance:p,predecessor:d}})}),c.forEach(function(d){var m=a[d];c.forEach(function(h){var p=a[h];c.forEach(function(g){var x=p[d],v=m[g],b=p[g],w=x.distance+v.distance;wr.successors(p):p=>r.neighbors(p),d=a==="post"?t:n,m=[],h={};return o.forEach(p=>{if(!r.hasNode(p))throw new Error("Graph does not have node: "+p);d(p,c,h,m)}),m}function t(r,o,a,c){for(var d=[[r,!1]];d.length>0;){var m=d.pop();m[1]?c.push(m[0]):Object.hasOwn(a,m[0])||(a[m[0]]=!0,d.push([m[0],!0]),i(o(m[0]),h=>d.push([h,!1])))}}function n(r,o,a,c){for(var d=[r];d.length>0;){var m=d.pop();Object.hasOwn(a,m)||(a[m]=!0,c.push(m),i(o(m),h=>d.push(h)))}}function i(r,o){for(var a=r.length;a--;)o(r[a],a,r);return r}return ix}var rx,dj;function zQ(){if(dj)return rx;dj=1;var e=aA();rx=t;function t(n,i){return e(n,i,"post")}return rx}var sx,fj;function PQ(){if(fj)return sx;fj=1;var e=aA();sx=t;function t(n,i){return e(n,i,"pre")}return sx}var ox,mj;function BQ(){if(mj)return ox;mj=1;var e=sb(),t=iA();ox=n;function n(i,r){var o=new e,a={},c=new t,d;function m(p){var g=p.v===d?p.w:p.v,x=c.priority(g);if(x!==void 0){var v=r(p);v0;){if(d=c.removeMin(),Object.hasOwn(a,d))o.setEdge(d,a[d]);else{if(h)throw new Error("Input graph is not connected: "+i);h=!0}i.nodeEdges(d).forEach(m)}return o}return ox}var ax,pj;function $Q(){return pj||(pj=1,ax={components:AQ(),dijkstra:rA(),dijkstraAll:MQ(),findCycles:DQ(),floydWarshall:OQ(),isAcyclic:LQ(),postorder:zQ(),preorder:PQ(),prim:BQ(),tarjan:sA(),topsort:oA()}),ax}var lx,hj;function Fr(){if(hj)return lx;hj=1;var e=TQ();return lx={Graph:e.Graph,json:RQ(),alg:$Q(),version:e.version},lx}var cx,gj;function HQ(){if(gj)return cx;gj=1;class e{constructor(){let r={};r._next=r._prev=r,this._sentinel=r}dequeue(){let r=this._sentinel,o=r._prev;if(o!==r)return t(o),o}enqueue(r){let o=this._sentinel;r._prev&&r._next&&t(r),r._next=o._next,o._next._prev=r,o._next=r,r._prev=o}toString(){let r=[],o=this._sentinel,a=o._prev;for(;a!==o;)r.push(JSON.stringify(a,n)),a=a._prev;return"["+r.join(", ")+"]"}}function t(i){i._prev._next=i._next,i._next._prev=i._prev,delete i._next,delete i._prev}function n(i,r){if(i!=="_next"&&i!=="_prev")return r}return cx=e,cx}var ux,yj;function FQ(){if(yj)return ux;yj=1;let e=Fr().Graph,t=HQ();ux=i;let n=()=>1;function i(m,h){if(m.nodeCount()<=1)return[];let p=a(m,h||n);return r(p.graph,p.buckets,p.zeroIdx).flatMap(x=>m.outEdges(x.v,x.w))}function r(m,h,p){let g=[],x=h[h.length-1],v=h[0],b;for(;m.nodeCount();){for(;b=v.dequeue();)o(m,h,p,b);for(;b=x.dequeue();)o(m,h,p,b);if(m.nodeCount()){for(let w=h.length-2;w>0;--w)if(b=h[w].dequeue(),b){g=g.concat(o(m,h,p,b,!0));break}}}return g}function o(m,h,p,g,x){let v=x?[]:void 0;return m.inEdges(g.v).forEach(b=>{let w=m.edge(b),k=m.node(b.v);x&&v.push({v:b.v,w:b.w}),k.out-=w,c(h,p,k)}),m.outEdges(g.v).forEach(b=>{let w=m.edge(b),k=b.w,S=m.node(k);S.in-=w,c(h,p,S)}),m.removeNode(g.v),v}function a(m,h){let p=new e,g=0,x=0;m.nodes().forEach(w=>{p.setNode(w,{v:w,in:0,out:0})}),m.edges().forEach(w=>{let k=p.edge(w.v,w.w)||0,S=h(w),j=k+S;p.setEdge(w.v,w.w,j),x=Math.max(x,p.node(w.v).out+=S),g=Math.max(g,p.node(w.w).in+=S)});let v=d(x+g+3).map(()=>new t),b=g+1;return p.nodes().forEach(w=>{c(v,b,p.node(w))}),{graph:p,buckets:v,zeroIdx:b}}function c(m,h,p){p.out?p.in?m[p.out-p.in+h].enqueue(p):m[m.length-1].enqueue(p):m[0].enqueue(p)}function d(m){const h=[];for(let p=0;pT.setNode(M,O.node(M))),O.edges().forEach(M=>{let I=T.edge(M.v,M.w)||{weight:0,minlen:1},H=O.edge(M);T.setEdge(M.v,M.w,{weight:I.weight+H.weight,minlen:Math.max(I.minlen,H.minlen)})}),T}function i(O){let T=new e({multigraph:O.isMultigraph()}).setGraph(O.graph());return O.nodes().forEach(M=>{O.children(M).length||T.setNode(M,O.node(M))}),O.edges().forEach(M=>{T.setEdge(M,O.edge(M))}),T}function r(O){let T=O.nodes().map(M=>{let I={};return O.outEdges(M).forEach(H=>{I[H.w]=(I[H.w]||0)+O.edge(H).weight}),I});return D(O.nodes(),T)}function o(O){let T=O.nodes().map(M=>{let I={};return O.inEdges(M).forEach(H=>{I[H.v]=(I[H.v]||0)+O.edge(H).weight}),I});return D(O.nodes(),T)}function a(O,T){let M=O.x,I=O.y,H=T.x-M,Y=T.y-I,P=O.width/2,U=O.height/2;if(!H&&!Y)throw new Error("Not possible to find intersection inside of the rectangle");let $,G;return Math.abs(Y)*P>Math.abs(H)*U?(Y<0&&(U=-U),$=U*H/Y,G=U):(H<0&&(P=-P),$=P,G=P*Y/H),{x:M+$,y:I+G}}function c(O){let T=N(v(O)+1).map(()=>[]);return O.nodes().forEach(M=>{let I=O.node(M),H=I.rank;H!==void 0&&(T[H][I.order]=M)}),T}function d(O){let T=O.nodes().map(I=>{let H=O.node(I).rank;return H===void 0?Number.MAX_VALUE:H}),M=x(Math.min,T);O.nodes().forEach(I=>{let H=O.node(I);Object.hasOwn(H,"rank")&&(H.rank-=M)})}function m(O){let T=O.nodes().map(P=>O.node(P).rank),M=x(Math.min,T),I=[];O.nodes().forEach(P=>{let U=O.node(P).rank-M;I[U]||(I[U]=[]),I[U].push(P)});let H=0,Y=O.graph().nodeRankFactor;Array.from(I).forEach((P,U)=>{P===void 0&&U%Y!==0?--H:P!==void 0&&H&&P.forEach($=>O.node($).rank+=H)})}function h(O,T,M,I){let H={width:0,height:0};return arguments.length>=4&&(H.rank=M,H.order=I),t(O,"border",H,T)}function p(O,T=g){const M=[];for(let I=0;Ig){const M=p(T);return O.apply(null,M.map(I=>O.apply(null,I)))}else return O.apply(null,T)}function v(O){const M=O.nodes().map(I=>{let H=O.node(I).rank;return H===void 0?Number.MIN_VALUE:H});return x(Math.max,M)}function b(O,T){let M={lhs:[],rhs:[]};return O.forEach(I=>{T(I)?M.lhs.push(I):M.rhs.push(I)}),M}function w(O,T){let M=Date.now();try{return T()}finally{console.log(O+" time: "+(Date.now()-M)+"ms")}}function k(O,T){return T()}let S=0;function j(O){var T=++S;return O+(""+T)}function N(O,T,M=1){T==null&&(T=O,O=0);let I=Y=>YTI[T]),Object.entries(O).reduce((I,[H,Y])=>(I[H]=M(Y,H),I),{})}function D(O,T){return O.reduce((M,I,H)=>(M[I]=T[H],M),{})}return dx}var fx,vj;function VQ(){if(vj)return fx;vj=1;let e=FQ(),t=ui().uniqueId;fx={run:n,undo:r};function n(o){(o.graph().acyclicer==="greedy"?e(o,c(o)):i(o)).forEach(d=>{let m=o.edge(d);o.removeEdge(d),m.forwardName=d.name,m.reversed=!0,o.setEdge(d.w,d.v,m,t("rev"))});function c(d){return m=>d.edge(m).weight}}function i(o){let a=[],c={},d={};function m(h){Object.hasOwn(d,h)||(d[h]=!0,c[h]=!0,o.outEdges(h).forEach(p=>{Object.hasOwn(c,p.w)?a.push(p):m(p.w)}),delete c[h])}return o.nodes().forEach(m),a}function r(o){o.edges().forEach(a=>{let c=o.edge(a);if(c.reversed){o.removeEdge(a);let d=c.forwardName;delete c.reversed,delete c.forwardName,o.setEdge(a.w,a.v,c,d)}})}return fx}var mx,bj;function UQ(){if(bj)return mx;bj=1;let e=ui();mx={run:t,undo:i};function t(r){r.graph().dummyChains=[],r.edges().forEach(o=>n(r,o))}function n(r,o){let a=o.v,c=r.node(a).rank,d=o.w,m=r.node(d).rank,h=o.name,p=r.edge(o),g=p.labelRank;if(m===c+1)return;r.removeEdge(o);let x,v,b;for(b=0,++c;c{let a=r.node(o),c=a.edgeLabel,d;for(r.setEdge(a.edgeObj,c);a.dummy;)d=r.successors(o)[0],r.removeNode(o),c.points.push({x:a.x,y:a.y}),a.dummy==="edge-label"&&(c.x=a.x,c.y=a.y,c.width=a.width,c.height=a.height),o=d,a=r.node(o)})}return mx}var px,_j;function Em(){if(_j)return px;_j=1;const{applyWithChunking:e}=ui();px={longestPath:t,slack:n};function t(i){var r={};function o(a){var c=i.node(a);if(Object.hasOwn(r,a))return c.rank;r[a]=!0;let d=i.outEdges(a).map(h=>h==null?Number.POSITIVE_INFINITY:o(h.w)-i.edge(h).minlen);var m=e(Math.min,d);return m===Number.POSITIVE_INFINITY&&(m=0),c.rank=m}i.sources().forEach(o)}function n(i,r){return i.node(r.w).rank-i.node(r.v).rank-i.edge(r).minlen}return px}var hx,kj;function lA(){if(kj)return hx;kj=1;var e=Fr().Graph,t=Em().slack;hx=n;function n(a){var c=new e({directed:!1}),d=a.nodes()[0],m=a.nodeCount();c.setNode(d,{});for(var h,p;i(c,a){var p=h.v,g=m===p?h.w:p;!a.hasNode(g)&&!t(c,h)&&(a.setNode(g,{}),a.setEdge(m,g,{}),d(g))})}return a.nodes().forEach(d),a.nodeCount()}function r(a,c){return c.edges().reduce((m,h)=>{let p=Number.POSITIVE_INFINITY;return a.hasNode(h.v)!==a.hasNode(h.w)&&(p=t(c,h)),pc.node(m).rank+=d)}return hx}var gx,Sj;function GQ(){if(Sj)return gx;Sj=1;var e=lA(),t=Em().slack,n=Em().longestPath,i=Fr().alg.preorder,r=Fr().alg.postorder,o=ui().simplify;gx=a,a.initLowLimValues=h,a.initCutValues=c,a.calcCutValue=m,a.leaveEdge=g,a.enterEdge=x,a.exchangeEdges=v;function a(S){S=o(S),n(S);var j=e(S);h(j),c(j,S);for(var N,L;N=g(j);)L=x(j,S,N),v(j,S,N,L)}function c(S,j){var N=r(S,S.nodes());N=N.slice(0,N.length-1),N.forEach(L=>d(S,j,L))}function d(S,j,N){var L=S.node(N),A=L.parent;S.edge(N,A).cutvalue=m(S,j,N)}function m(S,j,N){var L=S.node(N),A=L.parent,D=!0,O=j.edge(N,A),T=0;return O||(D=!1,O=j.edge(A,N)),T=O.weight,j.nodeEdges(N).forEach(M=>{var I=M.v===N,H=I?M.w:M.v;if(H!==A){var Y=I===D,P=j.edge(M).weight;if(T+=Y?P:-P,w(S,N,H)){var U=S.edge(N,H).cutvalue;T+=Y?-U:U}}}),T}function h(S,j){arguments.length<2&&(j=S.nodes()[0]),p(S,{},1,j)}function p(S,j,N,L,A){var D=N,O=S.node(L);return j[L]=!0,S.neighbors(L).forEach(T=>{Object.hasOwn(j,T)||(N=p(S,j,N,T,L))}),O.low=D,O.lim=N++,A?O.parent=A:delete O.parent,N}function g(S){return S.edges().find(j=>S.edge(j).cutvalue<0)}function x(S,j,N){var L=N.v,A=N.w;j.hasEdge(L,A)||(L=N.w,A=N.v);var D=S.node(L),O=S.node(A),T=D,M=!1;D.lim>O.lim&&(T=O,M=!0);var I=j.edges().filter(H=>M===k(S,S.node(H.v),T)&&M!==k(S,S.node(H.w),T));return I.reduce((H,Y)=>t(j,Y)!j.node(A).parent),L=i(S,N);L=L.slice(1),L.forEach(A=>{var D=S.node(A).parent,O=j.edge(A,D),T=!1;O||(O=j.edge(D,A),T=!0),j.node(A).rank=j.node(D).rank+(T?O.minlen:-O.minlen)})}function w(S,j,N){return S.hasEdge(j,N)}function k(S,j,N){return N.low<=j.lim&&j.lim<=N.lim}return gx}var yx,wj;function qQ(){if(wj)return yx;wj=1;var e=Em(),t=e.longestPath,n=lA(),i=GQ();yx=r;function r(d){var m=d.graph().ranker;if(m instanceof Function)return m(d);switch(d.graph().ranker){case"network-simplex":c(d);break;case"tight-tree":a(d);break;case"longest-path":o(d);break;case"none":break;default:c(d)}}var o=t;function a(d){t(d),n(d)}function c(d){i(d)}return yx}var xx,Cj;function WQ(){if(Cj)return xx;Cj=1,xx=e;function e(i){let r=n(i);i.graph().dummyChains.forEach(o=>{let a=i.node(o),c=a.edgeObj,d=t(i,r,c.v,c.w),m=d.path,h=d.lca,p=0,g=m[p],x=!0;for(;o!==c.w;){if(a=i.node(o),x){for(;(g=m[p])!==h&&i.node(g).maxRankm||h>r[p].lim));for(g=p,p=a;(p=i.parent(p))!==g;)d.push(p);return{path:c.concat(d.reverse()),lca:g}}function n(i){let r={},o=0;function a(c){let d=o;i.children(c).forEach(a),r[c]={low:d,lim:o++}}return i.children().forEach(a),r}return xx}var vx,jj;function YQ(){if(jj)return vx;jj=1;let e=ui();vx={run:t,cleanup:o};function t(a){let c=e.addDummyNode(a,"root",{},"_root"),d=i(a),m=Object.values(d),h=e.applyWithChunking(Math.max,m)-1,p=2*h+1;a.graph().nestingRoot=c,a.edges().forEach(x=>a.edge(x).minlen*=p);let g=r(a)+1;a.children().forEach(x=>n(a,c,p,g,h,d,x)),a.graph().nodeRankFactor=p}function n(a,c,d,m,h,p,g){let x=a.children(g);if(!x.length){g!==c&&a.setEdge(c,g,{weight:0,minlen:d});return}let v=e.addBorderNode(a,"_bt"),b=e.addBorderNode(a,"_bb"),w=a.node(g);a.setParent(v,g),w.borderTop=v,a.setParent(b,g),w.borderBottom=b,x.forEach(k=>{n(a,c,d,m,h,p,k);let S=a.node(k),j=S.borderTop?S.borderTop:k,N=S.borderBottom?S.borderBottom:k,L=S.borderTop?m:2*m,A=j!==N?1:h-p[g]+1;a.setEdge(v,j,{weight:L,minlen:A,nestingEdge:!0}),a.setEdge(N,b,{weight:L,minlen:A,nestingEdge:!0})}),a.parent(g)||a.setEdge(c,v,{weight:0,minlen:h+p[g]})}function i(a){var c={};function d(m,h){var p=a.children(m);p&&p.length&&p.forEach(g=>d(g,h+1)),c[m]=h}return a.children().forEach(m=>d(m,1)),c}function r(a){return a.edges().reduce((c,d)=>c+a.edge(d).weight,0)}function o(a){var c=a.graph();a.removeNode(c.nestingRoot),delete c.nestingRoot,a.edges().forEach(d=>{var m=a.edge(d);m.nestingEdge&&a.removeEdge(d)})}return vx}var bx,Ej;function XQ(){if(Ej)return bx;Ej=1;let e=ui();bx=t;function t(i){function r(o){let a=i.children(o),c=i.node(o);if(a.length&&a.forEach(r),Object.hasOwn(c,"minRank")){c.borderLeft=[],c.borderRight=[];for(let d=c.minRank,m=c.maxRank+1;di(d.node(m))),d.edges().forEach(m=>i(d.edge(m)))}function i(d){let m=d.width;d.width=d.height,d.height=m}function r(d){d.nodes().forEach(m=>o(d.node(m))),d.edges().forEach(m=>{let h=d.edge(m);h.points.forEach(o),Object.hasOwn(h,"y")&&o(h)})}function o(d){d.y=-d.y}function a(d){d.nodes().forEach(m=>c(d.node(m))),d.edges().forEach(m=>{let h=d.edge(m);h.points.forEach(c),Object.hasOwn(h,"x")&&c(h)})}function c(d){let m=d.x;d.x=d.y,d.y=m}return _x}var kx,Ij;function ZQ(){if(Ij)return kx;Ij=1;let e=ui();kx=t;function t(n){let i={},r=n.nodes().filter(h=>!n.children(h).length),o=r.map(h=>n.node(h).rank),a=e.applyWithChunking(Math.max,o),c=e.range(a+1).map(()=>[]);function d(h){if(i[h])return;i[h]=!0;let p=n.node(h);c[p.rank].push(h),n.successors(h).forEach(d)}return r.sort((h,p)=>n.node(h).rank-n.node(p).rank).forEach(d),c}return kx}var Sx,Tj;function QQ(){if(Tj)return Sx;Tj=1;let e=ui().zipObject;Sx=t;function t(i,r){let o=0;for(let a=1;ax)),c=r.flatMap(g=>i.outEdges(g).map(x=>({pos:a[x.w],weight:i.edge(x).weight})).sort((x,v)=>x.pos-v.pos)),d=1;for(;d{let x=g.pos+d;h[x]+=g.weight;let v=0;for(;x>0;)x%2&&(v+=h[x+1]),x=x-1>>1,h[x]+=g.weight;p+=g.weight*v}),p}return Sx}var wx,Rj;function JQ(){if(Rj)return wx;Rj=1,wx=e;function e(t,n=[]){return n.map(i=>{let r=t.inEdges(i);if(r.length){let o=r.reduce((a,c)=>{let d=t.edge(c),m=t.node(c.v);return{sum:a.sum+d.weight*m.order,weight:a.weight+d.weight}},{sum:0,weight:0});return{v:i,barycenter:o.sum/o.weight,weight:o.weight}}else return{v:i}})}return wx}var Cx,Aj;function eJ(){if(Aj)return Cx;Aj=1;let e=ui();Cx=t;function t(r,o){let a={};r.forEach((d,m)=>{let h=a[d.v]={indegree:0,in:[],out:[],vs:[d.v],i:m};d.barycenter!==void 0&&(h.barycenter=d.barycenter,h.weight=d.weight)}),o.edges().forEach(d=>{let m=a[d.v],h=a[d.w];m!==void 0&&h!==void 0&&(h.indegree++,m.out.push(a[d.w]))});let c=Object.values(a).filter(d=>!d.indegree);return n(c)}function n(r){let o=[];function a(d){return m=>{m.merged||(m.barycenter===void 0||d.barycenter===void 0||m.barycenter>=d.barycenter)&&i(d,m)}}function c(d){return m=>{m.in.push(d),--m.indegree===0&&r.push(m)}}for(;r.length;){let d=r.pop();o.push(d),d.in.reverse().forEach(a(d)),d.out.forEach(c(d))}return o.filter(d=>!d.merged).map(d=>e.pick(d,["vs","i","barycenter","weight"]))}function i(r,o){let a=0,c=0;r.weight&&(a+=r.barycenter*r.weight,c+=r.weight),o.weight&&(a+=o.barycenter*o.weight,c+=o.weight),r.vs=o.vs.concat(r.vs),r.barycenter=a/c,r.weight=c,r.i=Math.min(o.i,r.i),o.merged=!0}return Cx}var jx,Mj;function tJ(){if(Mj)return jx;Mj=1;let e=ui();jx=t;function t(r,o){let a=e.partition(r,v=>Object.hasOwn(v,"barycenter")),c=a.lhs,d=a.rhs.sort((v,b)=>b.i-v.i),m=[],h=0,p=0,g=0;c.sort(i(!!o)),g=n(m,d,g),c.forEach(v=>{g+=v.vs.length,m.push(v.vs),h+=v.barycenter*v.weight,p+=v.weight,g=n(m,d,g)});let x={vs:m.flat(!0)};return p&&(x.barycenter=h/p,x.weight=p),x}function n(r,o,a){let c;for(;o.length&&(c=o[o.length-1]).i<=a;)o.pop(),r.push(c.vs),a++;return a}function i(r){return(o,a)=>o.barycentera.barycenter?1:r?a.i-o.i:o.i-a.i}return jx}var Ex,Dj;function nJ(){if(Dj)return Ex;Dj=1;let e=JQ(),t=eJ(),n=tJ();Ex=i;function i(a,c,d,m){let h=a.children(c),p=a.node(c),g=p?p.borderLeft:void 0,x=p?p.borderRight:void 0,v={};g&&(h=h.filter(S=>S!==g&&S!==x));let b=e(a,h);b.forEach(S=>{if(a.children(S.v).length){let j=i(a,S.v,d,m);v[S.v]=j,Object.hasOwn(j,"barycenter")&&o(S,j)}});let w=t(b,d);r(w,v);let k=n(w,m);if(g&&(k.vs=[g,k.vs,x].flat(!0),a.predecessors(g).length)){let S=a.node(a.predecessors(g)[0]),j=a.node(a.predecessors(x)[0]);Object.hasOwn(k,"barycenter")||(k.barycenter=0,k.weight=0),k.barycenter=(k.barycenter*k.weight+S.order+j.order)/(k.weight+2),k.weight+=2}return k}function r(a,c){a.forEach(d=>{d.vs=d.vs.flatMap(m=>c[m]?c[m].vs:m)})}function o(a,c){a.barycenter!==void 0?(a.barycenter=(a.barycenter*a.weight+c.barycenter*c.weight)/(a.weight+c.weight),a.weight+=c.weight):(a.barycenter=c.barycenter,a.weight=c.weight)}return Ex}var Nx,Oj;function iJ(){if(Oj)return Nx;Oj=1;let e=Fr().Graph,t=ui();Nx=n;function n(r,o,a,c){c||(c=r.nodes());let d=i(r),m=new e({compound:!0}).setGraph({root:d}).setDefaultNodeLabel(h=>r.node(h));return c.forEach(h=>{let p=r.node(h),g=r.parent(h);(p.rank===o||p.minRank<=o&&o<=p.maxRank)&&(m.setNode(h),m.setParent(h,g||d),r[a](h).forEach(x=>{let v=x.v===h?x.w:x.v,b=m.edge(v,h),w=b!==void 0?b.weight:0;m.setEdge(v,h,{weight:r.edge(x).weight+w})}),Object.hasOwn(p,"minRank")&&m.setNode(h,{borderLeft:p.borderLeft[o],borderRight:p.borderRight[o]}))}),m}function i(r){for(var o;r.hasNode(o=t.uniqueId("_root")););return o}return Nx}var Ix,Lj;function rJ(){if(Lj)return Ix;Lj=1,Ix=e;function e(t,n,i){let r={},o;i.forEach(a=>{let c=t.parent(a),d,m;for(;c;){if(d=t.parent(c),d?(m=r[d],r[d]=c):(m=o,o=c),m&&m!==c){n.setEdge(m,c);return}c=d}})}return Ix}var Tx,zj;function sJ(){if(zj)return Tx;zj=1;let e=ZQ(),t=QQ(),n=nJ(),i=iJ(),r=rJ(),o=Fr().Graph,a=ui();Tx=c;function c(p,g){if(g&&typeof g.customOrder=="function"){g.customOrder(p,c);return}let x=a.maxRank(p),v=d(p,a.range(1,x+1),"inEdges"),b=d(p,a.range(x-1,-1,-1),"outEdges"),w=e(p);if(h(p,w),g&&g.disableOptimalOrderHeuristic)return;let k=Number.POSITIVE_INFINITY,S;for(let j=0,N=0;N<4;++j,++N){m(j%2?v:b,j%4>=2),w=a.buildLayerMatrix(p);let L=t(p,w);L{v.has(w)||v.set(w,[]),v.get(w).push(k)};for(const w of p.nodes()){const k=p.node(w);if(typeof k.rank=="number"&&b(k.rank,w),typeof k.minRank=="number"&&typeof k.maxRank=="number")for(let S=k.minRank;S<=k.maxRank;S++)S!==k.rank&&b(S,w)}return g.map(function(w){return i(p,w,x,v.get(w)||[])})}function m(p,g){let x=new o;p.forEach(function(v){let b=v.graph().root,w=n(v,b,x,g);w.vs.forEach((k,S)=>v.node(k).order=S),r(v,x,w.vs)})}function h(p,g){Object.values(g).forEach(x=>x.forEach((v,b)=>p.node(v).order=b))}return Tx}var Rx,Pj;function oJ(){if(Pj)return Rx;Pj=1;let e=Fr().Graph,t=ui();Rx={positionX:x,findType1Conflicts:n,findType2Conflicts:i,addConflict:o,hasConflict:a,verticalAlignment:c,horizontalCompaction:d,alignCoordinates:p,findSmallestWidthAlignment:h,balance:g};function n(w,k){let S={};function j(N,L){let A=0,D=0,O=N.length,T=L[L.length-1];return L.forEach((M,I)=>{let H=r(w,M),Y=H?w.node(H).order:O;(H||M===T)&&(L.slice(D,I+1).forEach(P=>{w.predecessors(P).forEach(U=>{let $=w.node(U),G=$.order;(G{M=L[I],w.node(M).dummy&&w.predecessors(M).forEach(H=>{let Y=w.node(H);Y.dummy&&(Y.orderT)&&o(S,H,M)})})}function N(L,A){let D=-1,O,T=0;return A.forEach((M,I)=>{if(w.node(M).dummy==="border"){let H=w.predecessors(M);H.length&&(O=w.node(H[0]).order,j(A,T,I,D,O),T=I,D=O)}j(A,T,A.length,O,L.length)}),A}return k.length&&k.reduce(N),S}function r(w,k){if(w.node(k).dummy)return w.predecessors(k).find(S=>w.node(S).dummy)}function o(w,k,S){if(k>S){let N=k;k=S,S=N}let j=w[k];j||(w[k]=j={}),j[S]=!0}function a(w,k,S){if(k>S){let j=k;k=S,S=j}return!!w[k]&&Object.hasOwn(w[k],S)}function c(w,k,S,j){let N={},L={},A={};return k.forEach(D=>{D.forEach((O,T)=>{N[O]=O,L[O]=O,A[O]=T})}),k.forEach(D=>{let O=-1;D.forEach(T=>{let M=j(T);if(M.length){M=M.sort((H,Y)=>A[H]-A[Y]);let I=(M.length-1)/2;for(let H=Math.floor(I),Y=Math.ceil(I);H<=Y;++H){let P=M[H];L[T]===T&&OMath.max(H,L[Y.v]+A.edge(Y)),0)}function M(I){let H=A.outEdges(I).reduce((P,U)=>Math.min(P,L[U.w]-A.edge(U)),Number.POSITIVE_INFINITY),Y=w.node(I);H!==Number.POSITIVE_INFINITY&&Y.borderType!==D&&(L[I]=Math.max(L[I],H))}return O(T,A.predecessors.bind(A)),O(M,A.successors.bind(A)),Object.keys(j).forEach(I=>L[I]=L[S[I]]),L}function m(w,k,S,j){let N=new e,L=w.graph(),A=v(L.nodesep,L.edgesep,j);return k.forEach(D=>{let O;D.forEach(T=>{let M=S[T];if(N.setNode(M),O){var I=S[O],H=N.edge(I,M);N.setEdge(I,M,Math.max(A(w,T,O),H||0))}O=T})}),N}function h(w,k){return Object.values(k).reduce((S,j)=>{let N=Number.NEGATIVE_INFINITY,L=Number.POSITIVE_INFINITY;Object.entries(j).forEach(([D,O])=>{let T=b(w,D)/2;N=Math.max(O+T,N),L=Math.min(O-T,L)});const A=N-L;return A{["l","r"].forEach(A=>{let D=L+A,O=w[D];if(O===k)return;let T=Object.values(O),M=j-t.applyWithChunking(Math.min,T);A!=="l"&&(M=N-t.applyWithChunking(Math.max,T)),M&&(w[D]=t.mapValues(O,I=>I+M))})})}function g(w,k){return t.mapValues(w.ul,(S,j)=>{if(k)return w[k.toLowerCase()][j];{let N=Object.values(w).map(L=>L[j]).sort((L,A)=>L-A);return(N[1]+N[2])/2}})}function x(w){let k=t.buildLayerMatrix(w),S=Object.assign(n(w,k),i(w,k)),j={},N;["u","d"].forEach(A=>{N=A==="u"?k:Object.values(k).reverse(),["l","r"].forEach(D=>{D==="r"&&(N=N.map(I=>Object.values(I).reverse()));let O=(A==="u"?w.predecessors:w.successors).bind(w),T=c(w,N,S,O),M=d(w,N,T.root,T.align,D==="r");D==="r"&&(M=t.mapValues(M,I=>-I)),j[A+D]=M})});let L=h(w,j);return p(j,L),g(j,w.graph().align)}function v(w,k,S){return(j,N,L)=>{let A=j.node(N),D=j.node(L),O=0,T;if(O+=A.width/2,Object.hasOwn(A,"labelpos"))switch(A.labelpos.toLowerCase()){case"l":T=-A.width/2;break;case"r":T=A.width/2;break}if(T&&(O+=S?T:-T),T=0,O+=(A.dummy?k:w)/2,O+=(D.dummy?k:w)/2,O+=D.width/2,Object.hasOwn(D,"labelpos"))switch(D.labelpos.toLowerCase()){case"l":T=D.width/2;break;case"r":T=-D.width/2;break}return T&&(O+=S?T:-T),T=0,O}}function b(w,k){return w.node(k).width}return Rx}var Ax,Bj;function aJ(){if(Bj)return Ax;Bj=1;let e=ui(),t=oJ().positionX;Ax=n;function n(r){r=e.asNonCompoundGraph(r),i(r),Object.entries(t(r)).forEach(([o,a])=>r.node(o).x=a)}function i(r){let o=e.buildLayerMatrix(r),a=r.graph().ranksep,c=0;o.forEach(d=>{const m=d.reduce((h,p)=>{const g=r.node(p).height;return h>g?h:g},0);d.forEach(h=>r.node(h).y=c+m/2),c+=m+a})}return Ax}var Mx,$j;function lJ(){if($j)return Mx;$j=1;let e=VQ(),t=UQ(),n=qQ(),i=ui().normalizeRanks,r=WQ(),o=ui().removeEmptyRanks,a=YQ(),c=XQ(),d=KQ(),m=sJ(),h=aJ(),p=ui(),g=Fr().Graph;Mx=x;function x(B,Z){let te=Z&&Z.debugTiming?p.time:p.notime;te("layout",()=>{let ee=te(" buildLayoutGraph",()=>O(B));te(" runLayout",()=>v(ee,te,Z)),te(" updateInputGraph",()=>b(B,ee))})}function v(B,Z,te){Z(" makeSpaceForEdgeLabels",()=>T(B)),Z(" removeSelfEdges",()=>q(B)),Z(" acyclic",()=>e.run(B)),Z(" nestingGraph.run",()=>a.run(B)),Z(" rank",()=>n(p.asNonCompoundGraph(B))),Z(" injectEdgeLabelProxies",()=>M(B)),Z(" removeEmptyRanks",()=>o(B)),Z(" nestingGraph.cleanup",()=>a.cleanup(B)),Z(" normalizeRanks",()=>i(B)),Z(" assignRankMinMax",()=>I(B)),Z(" removeEdgeLabelProxies",()=>H(B)),Z(" normalize.run",()=>t.run(B)),Z(" parentDummyChains",()=>r(B)),Z(" addBorderSegments",()=>c(B)),Z(" order",()=>m(B,te)),Z(" insertSelfEdges",()=>K(B)),Z(" adjustCoordinateSystem",()=>d.adjust(B)),Z(" position",()=>h(B)),Z(" positionSelfEdges",()=>W(B)),Z(" removeBorderNodes",()=>G(B)),Z(" normalize.undo",()=>t.undo(B)),Z(" fixupEdgeLabelCoords",()=>U(B)),Z(" undoCoordinateSystem",()=>d.undo(B)),Z(" translateGraph",()=>Y(B)),Z(" assignNodeIntersects",()=>P(B)),Z(" reversePoints",()=>$(B)),Z(" acyclic.undo",()=>e.undo(B))}function b(B,Z){B.nodes().forEach(te=>{let ee=B.node(te),se=Z.node(te);ee&&(ee.x=se.x,ee.y=se.y,ee.rank=se.rank,Z.children(te).length&&(ee.width=se.width,ee.height=se.height))}),B.edges().forEach(te=>{let ee=B.edge(te),se=Z.edge(te);ee.points=se.points,Object.hasOwn(se,"x")&&(ee.x=se.x,ee.y=se.y)}),B.graph().width=Z.graph().width,B.graph().height=Z.graph().height}let w=["nodesep","edgesep","ranksep","marginx","marginy"],k={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},S=["acyclicer","ranker","rankdir","align"],j=["width","height","rank"],N={width:0,height:0},L=["minlen","weight","width","height","labeloffset"],A={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},D=["labelpos"];function O(B){let Z=new g({multigraph:!0,compound:!0}),te=Q(B.graph());return Z.setGraph(Object.assign({},k,V(te,w),p.pick(te,S))),B.nodes().forEach(ee=>{let se=Q(B.node(ee));const ae=V(se,j);Object.keys(N).forEach(ue=>{ae[ue]===void 0&&(ae[ue]=N[ue])}),Z.setNode(ee,ae),Z.setParent(ee,B.parent(ee))}),B.edges().forEach(ee=>{let se=Q(B.edge(ee));Z.setEdge(ee,Object.assign({},A,V(se,L),p.pick(se,D)))}),Z}function T(B){let Z=B.graph();Z.ranksep/=2,B.edges().forEach(te=>{let ee=B.edge(te);ee.minlen*=2,ee.labelpos.toLowerCase()!=="c"&&(Z.rankdir==="TB"||Z.rankdir==="BT"?ee.width+=ee.labeloffset:ee.height+=ee.labeloffset)})}function M(B){B.edges().forEach(Z=>{let te=B.edge(Z);if(te.width&&te.height){let ee=B.node(Z.v),ae={rank:(B.node(Z.w).rank-ee.rank)/2+ee.rank,e:Z};p.addDummyNode(B,"edge-proxy",ae,"_ep")}})}function I(B){let Z=0;B.nodes().forEach(te=>{let ee=B.node(te);ee.borderTop&&(ee.minRank=B.node(ee.borderTop).rank,ee.maxRank=B.node(ee.borderBottom).rank,Z=Math.max(Z,ee.maxRank))}),B.graph().maxRank=Z}function H(B){B.nodes().forEach(Z=>{let te=B.node(Z);te.dummy==="edge-proxy"&&(B.edge(te.e).labelRank=te.rank,B.removeNode(Z))})}function Y(B){let Z=Number.POSITIVE_INFINITY,te=0,ee=Number.POSITIVE_INFINITY,se=0,ae=B.graph(),ue=ae.marginx||0,ie=ae.marginy||0;function je(we){let Re=we.x,Ve=we.y,Ge=we.width,qe=we.height;Z=Math.min(Z,Re-Ge/2),te=Math.max(te,Re+Ge/2),ee=Math.min(ee,Ve-qe/2),se=Math.max(se,Ve+qe/2)}B.nodes().forEach(we=>je(B.node(we))),B.edges().forEach(we=>{let Re=B.edge(we);Object.hasOwn(Re,"x")&&je(Re)}),Z-=ue,ee-=ie,B.nodes().forEach(we=>{let Re=B.node(we);Re.x-=Z,Re.y-=ee}),B.edges().forEach(we=>{let Re=B.edge(we);Re.points.forEach(Ve=>{Ve.x-=Z,Ve.y-=ee}),Object.hasOwn(Re,"x")&&(Re.x-=Z),Object.hasOwn(Re,"y")&&(Re.y-=ee)}),ae.width=te-Z+ue,ae.height=se-ee+ie}function P(B){B.edges().forEach(Z=>{let te=B.edge(Z),ee=B.node(Z.v),se=B.node(Z.w),ae,ue;te.points?(ae=te.points[0],ue=te.points[te.points.length-1]):(te.points=[],ae=se,ue=ee),te.points.unshift(p.intersectRect(ee,ae)),te.points.push(p.intersectRect(se,ue))})}function U(B){B.edges().forEach(Z=>{let te=B.edge(Z);if(Object.hasOwn(te,"x"))switch((te.labelpos==="l"||te.labelpos==="r")&&(te.width-=te.labeloffset),te.labelpos){case"l":te.x-=te.width/2+te.labeloffset;break;case"r":te.x+=te.width/2+te.labeloffset;break}})}function $(B){B.edges().forEach(Z=>{let te=B.edge(Z);te.reversed&&te.points.reverse()})}function G(B){B.nodes().forEach(Z=>{if(B.children(Z).length){let te=B.node(Z),ee=B.node(te.borderTop),se=B.node(te.borderBottom),ae=B.node(te.borderLeft[te.borderLeft.length-1]),ue=B.node(te.borderRight[te.borderRight.length-1]);te.width=Math.abs(ue.x-ae.x),te.height=Math.abs(se.y-ee.y),te.x=ae.x+te.width/2,te.y=ee.y+te.height/2}}),B.nodes().forEach(Z=>{B.node(Z).dummy==="border"&&B.removeNode(Z)})}function q(B){B.edges().forEach(Z=>{if(Z.v===Z.w){var te=B.node(Z.v);te.selfEdges||(te.selfEdges=[]),te.selfEdges.push({e:Z,label:B.edge(Z)}),B.removeEdge(Z)}})}function K(B){var Z=p.buildLayerMatrix(B);Z.forEach(te=>{var ee=0;te.forEach((se,ae)=>{var ue=B.node(se);ue.order=ae+ee,(ue.selfEdges||[]).forEach(ie=>{p.addDummyNode(B,"selfedge",{width:ie.label.width,height:ie.label.height,rank:ue.rank,order:ae+ ++ee,e:ie.e,label:ie.label},"_se")}),delete ue.selfEdges})})}function W(B){B.nodes().forEach(Z=>{var te=B.node(Z);if(te.dummy==="selfedge"){var ee=B.node(te.e.v),se=ee.x+ee.width/2,ae=ee.y,ue=te.x-se,ie=ee.height/2;B.setEdge(te.e,te.label),B.removeNode(Z),te.label.points=[{x:se+2*ue/3,y:ae-ie},{x:se+5*ue/6,y:ae-ie},{x:se+ue,y:ae},{x:se+5*ue/6,y:ae+ie},{x:se+2*ue/3,y:ae+ie}],te.label.x=te.x,te.label.y=te.y}})}function V(B,Z){return p.mapValues(p.pick(B,Z),Number)}function Q(B){var Z={};return B&&Object.entries(B).forEach(([te,ee])=>{typeof te=="string"&&(te=te.toLowerCase()),Z[te]=ee}),Z}return Mx}var Dx,Hj;function cJ(){if(Hj)return Dx;Hj=1;let e=ui(),t=Fr().Graph;Dx={debugOrdering:n};function n(i){let r=e.buildLayerMatrix(i),o=new t({compound:!0,multigraph:!0}).setGraph({});return i.nodes().forEach(a=>{o.setNode(a,{label:a}),o.setParent(a,"layer"+i.node(a).rank)}),i.edges().forEach(a=>o.setEdge(a.v,a.w,{},a.name)),r.forEach((a,c)=>{let d="layer"+c;o.setNode(d,{rank:"same"}),a.reduce((m,h)=>(o.setEdge(m,h,{style:"invis"}),h))}),o}return Dx}var Ox,Fj;function uJ(){return Fj||(Fj=1,Ox="1.1.8"),Ox}var Lx,Vj;function dJ(){return Vj||(Vj=1,Lx={graphlib:Fr(),layout:lJ(),debug:cJ(),util:{time:ui().time,notime:ui().notime},version:uJ()}),Lx}var fJ=dJ();const Uj=pa(fJ);function mJ(e,t,n={}){const i=new Uj.graphlib.Graph;i.setDefaultEdgeLabel(()=>({})),i.setGraph({rankdir:"TB",ranksep:60,nodesep:36,marginx:24,marginy:24});const r=n.nodeWidth??220,o=n.nodeHeight??80;return e.forEach(a=>i.setNode(a.id,{width:r,height:o})),t.forEach(a=>i.setEdge(a.source,a.target)),Uj.layout(i),e.map(a=>{const{x:c,y:d}=i.node(a.id);return{...a,position:{x:c-r/2,y:d-o/2}}})}const pJ={roleNode:NQ},hJ=C.forwardRef(function(t,n){return u.jsx(JR,{children:u.jsx(gJ,{...t,forwardedRef:n})})});function gJ({roles:e,employees:t,sessionRecruitmentByRole:n,selectedRoleId:i,onSelectRole:r,onReparent:o,readOnly:a,forwardedRef:c}){const d=C.useMemo(()=>{const M=new Map;for(const I of t){const H=I.role_ids?.length?I.role_ids:[I.role_id];for(const Y of H){if(!Y)continue;const P=M.get(Y)??[];P.push(I),M.set(Y,P)}}return M},[t]),m=C.useCallback(M=>n?n[M]??[]:(d.get(M)??[]).filter(I=>!I.is_default_employee).map(I=>I.name).filter(Boolean),[d,n]),[h,p]=C.useState(0),g=C.useMemo(()=>e.map(M=>M.role_id).sort().join("|"),[e]),x=C.useRef(g);C.useEffect(()=>{x.current!==g&&(x.current=g,p(M=>M+1))},[g]),C.useImperativeHandle(c,()=>({autoLayout:()=>p(M=>M+1)}),[]);const[v,b]=C.useState(null),[w,k]=C.useState({});C.useEffect(()=>{k({})},[h]);const S=C.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}},I=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}})),H=[M,...I],Y=e.map(U=>({id:`e-${U.reports_to}-${U.role_id}`,source:U.reports_to,target:U.role_id,type:"smoothstep"}));return{nodes:mJ(H,Y),edges:Y}},[h,a]),j=C.useMemo(()=>S.nodes.map(M=>{if(M.id==="owner")return M;const I=e.find(Y=>Y.role_id===M.id);if(!I)return M;const H=w[M.id];return{...M,position:H??M.position,draggable:!0,data:{...M.data,name:I.name,responsibility:I.responsibility,icon:I.icon??null,employeeCount:m(I.role_id).length,employeeNames:m(I.role_id),isSelected:I.role_id===i,isDropTarget:I.role_id===v}}}),[S.nodes,e,d,m,i,v,a,w]),[N,L]=C.useState(j);C.useEffect(()=>{L(j)},[j]);const A=C.useCallback(M=>{L(I=>NR(M,I))},[]),D=C.useCallback((M,I)=>{if(a)return;const H=220,Y=80,P={x:I.position.x+H/2,y:I.position.y+Y/2},U=N.find($=>$.id===I.id?!1:P.x>=$.position.x&&P.x<=$.position.x+H&&P.y>=$.position.y&&P.y<=$.position.y+Y);b(U?.id??null)},[N,a]),O=C.useCallback((M,I)=>{const H=v;b(null);const Y=()=>k(P=>({...P,[I.id]:{x:I.position.x,y:I.position.y}}));if(a||!H||H===I.id||cA(e,I.id,H)){Y();return}o(I.id,H),p(P=>P+1)},[v,e,a,o]),T=C.useCallback((M,I)=>{r(I.id==="owner"?null:I.id)},[r]);return u.jsx("div",{style:{width:"100%",height:"100%"},children:u.jsxs(JZ,{nodes:N,edges:S.edges,nodeTypes:pJ,onNodesChange:A,onNodeDrag:D,onNodeDragStop:O,onNodeClick:T,fitView:!0,fitViewOptions:{padding:.32,minZoom:.45,maxZoom:1.2},nodesConnectable:!1,edgesFocusable:!1,style:{width:"100%",height:"100%"},children:[u.jsx(rQ,{gap:28,size:1,color:"rgba(240, 237, 232, 0.10)"}),u.jsx(dQ,{showInteractive:!1}),u.jsx(wQ,{pannable:!0,nodeStrokeWidth:0,maskColor:"rgba(12, 17, 27, 0.6)"})]})})}function cA(e,t,n){const i=e.filter(r=>r.reports_to===t).map(r=>r.role_id);for(const r of i)if(r===n||cA(e,r,n))return!0;return!1}function yJ({roles:e,employees:t,sessionRecruitmentByRole:n,isCustomMode:i,onAddRole:r,onUpdateRole:o,onDeleteRole:a,savedOrgsList:c,activeSavedOrg:d,currentOrgVersion:m,versionAtLoad:h,onSavedOrgsList:p,onSavedOrgSaveAs:g,onSavedOrgLoad:x,onSavedOrgDelete:v}){const[b,w]=C.useState("canvas"),[k,S]=C.useState(null),j=C.useRef(null),N=C.useMemo(()=>e.find(M=>M.role_id===k)??null,[e,k]),L=C.useCallback((M,I)=>{i&&o(M,{reports_to:I})},[o,i]),A=C.useCallback(()=>{j.current?.autoLayout()},[]),D=C.useCallback(()=>{if(!i)return;const M=new Set(e.map(Y=>Y.role_id));let I="new_role",H=1;for(;M.has(I);)H+=1,I=`new_role_${H}`;r(I,"New Role","","owner",null),S(I)},[e,r,i]),O=C.useCallback(()=>{if(!i||!N)return;const M=new Set(e.map(Y=>Y.role_id));let I=`${N.role_id}_copy`,H=1;for(;M.has(I);)H+=1,I=`${N.role_id}_copy_${H}`;r(I,`${N.name} (copy)`,N.responsibility,N.reports_to,N.icon),S(I)},[e,r,N,i]),T=C.useRef(null);return C.useEffect(()=>{const M=I=>{const H=I.target;if(!(H&&(H.tagName==="INPUT"||H.tagName==="TEXTAREA"||H.tagName==="SELECT"||H.isContentEditable))&&!(T.current&&!T.current.contains(H))){if(I.key==="Escape"&&k){S(null),I.preventDefault();return}if(I.key==="Delete"&&k&&i){a(k),S(null),I.preventDefault();return}if((I.metaKey||I.ctrlKey)&&I.key.toLowerCase()==="d"&&k&&i){O(),I.preventDefault();return}if(I.key.toLowerCase()==="f"&&b==="canvas"){A(),I.preventDefault();return}}};return window.addEventListener("keydown",M),()=>window.removeEventListener("keydown",M)},[k,i,b,a,A,O]),u.jsxs("div",{className:"se-container",ref:T,children:[u.jsxs("div",{className:"se-toolbar",children:[u.jsxs("div",{className:"se-view-switcher",role:"tablist","aria-label":"Editor view",children:[u.jsx("button",{role:"tab","aria-selected":b==="canvas",className:`se-view-btn${b==="canvas"?" is-active":""}`,onClick:()=>w("canvas"),children:"Canvas"}),u.jsx("button",{role:"tab","aria-selected":b==="table",className:`se-view-btn${b==="table"?" is-active":""}`,onClick:()=>w("table"),children:"Table"})]}),u.jsxs("div",{className:`se-toolbar-actions${i?"":" se-toolbar-actions--readonly"}`,children:[i?u.jsxs("div",{className:"se-saved-org-control",children:[u.jsx("span",{className:"se-toolbar-label",children:"Saved org"}),u.jsx(kU,{savedOrgs:c??null,activeName:d??null,isDirty:h!=null&&(m??0)!==h,onRefresh:p??(()=>{}),onSaveAs:g??(()=>{}),onLoad:x??(()=>{}),onDelete:v??(()=>{})})]}):u.jsx("span",{className:"se-readonly-pill",children:"Read-only corporate"}),u.jsx("div",{className:"se-toolbar-divider","aria-hidden":!0}),b==="canvas"&&u.jsx("button",{className:"btn btn-ghost btn-sm",onClick:A,children:"Auto-layout"}),i&&u.jsx("button",{className:"btn btn-primary btn-sm",onClick:D,children:"+ Add role"})]})]}),u.jsxs("div",{className:"se-body",children:[b==="canvas"?u.jsx(hJ,{ref:j,roles:e,employees:t,sessionRecruitmentByRole:n,selectedRoleId:k,onSelectRole:S,onReparent:L,readOnly:!i}):u.jsx(SG,{roles:e,employees:t,selectedIds:k?[k]:[],onSelectRow:M=>S(M),onUpdateRole:o,onDeleteRole:a,readOnly:!i}),N&&u.jsx(EU,{role:N,allRoles:e,employees:t,readOnly:!i,onUpdateRole:o,onDeleteRole:M=>{a(M),S(null)},onClose:()=>S(null)})]})]})}const is={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 xJ({onComplete:e,onSwitchToTab:t}){const[n,i]=C.useState(1),[r,o]=C.useState([{name:"",resp:"",parent:"owner"}]),a=()=>o([...r,{name:"",resp:"",parent:"owner"}]),c=(g,x,v)=>{const b=[...r];b[g][x]=v,o(b)},d=g=>{r.length<=1||o(r.filter((x,v)=>v!==g))},m=r.filter(g=>g.name.trim()),h=m.map(g=>g.name.trim()).filter(Boolean),p=()=>{e(m.map(g=>({name:g.name.trim(),responsibility:g.resp.trim(),reportsTo:g.parent})))};return u.jsxs("div",{className:"qs-wizard",children:[u.jsxs("div",{className:"qs-header",children:[u.jsx("img",{src:is.rocket,alt:"",className:"qs-header-icon"}),u.jsxs("div",{children:[u.jsx("h3",{className:"qs-header-title",children:"Build Your Team"}),u.jsxs("p",{className:"qs-header-sub",children:["Create an org team in a few steps, or ",u.jsx("button",{className:"qs-link-btn",onClick:()=>t("architecture"),children:"use a template"})]})]})]}),u.jsx("div",{className:"qs-progress",children:[{n:1,icon:is.people,label:"Team Members"},{n:2,icon:is.check,label:"Preview"}].map(g=>u.jsxs("div",{className:`qs-step${n===g.n?" qs-step-active":n>g.n?" qs-step-done":""}`,children:[u.jsx("img",{src:g.icon,alt:"",className:"qs-step-icon"}),u.jsx("span",{children:g.label})]},g.n))}),n===1&&u.jsxs("div",{className:"qs-panel",children:[u.jsx("h4",{children:"Who's on your team?"}),u.jsx("p",{className:"qs-hint",children:"Add each team member with their name and what they do."}),u.jsx("div",{className:"qs-members",children:r.map((g,x)=>u.jsxs("div",{className:"qs-member-row",children:[u.jsx("input",{className:"qs-member-name",value:g.name,placeholder:"Role name (e.g. Engineer)",onChange:v=>c(x,"name",v.target.value)}),u.jsx("input",{className:"qs-member-resp",value:g.resp,placeholder:"What do they do?",onChange:v=>c(x,"resp",v.target.value)}),u.jsxs("select",{className:"qs-member-parent",value:g.parent,onChange:v=>c(x,"parent",v.target.value),children:[u.jsx("option",{value:"owner",children:"Reports to you"}),h.filter(v=>v!==g.name.trim()).map(v=>u.jsx("option",{value:v,children:`Managed by ${v}`},v))]}),r.length>1&&u.jsx("button",{className:"qs-remove-btn",onClick:()=>d(x),title:"Remove",children:u.jsx("img",{src:is.trash,alt:"",className:"qs-remove-icon"})})]},x))}),u.jsxs("button",{className:"qs-add-member",onClick:a,children:[u.jsx("img",{src:is.addPerson,alt:"",className:"qs-add-icon"})," Add another member"]}),u.jsxs("div",{className:"qs-nav",children:[u.jsx("span",{}),u.jsx("button",{className:"oc-btn-primary",onClick:()=>i(2),disabled:m.length===0,children:"Next: Preview →"})]})]}),n===2&&u.jsxs("div",{className:"qs-panel",children:[u.jsx("h4",{children:"Your team at a glance"}),u.jsxs("div",{className:"qs-preview",children:[u.jsxs("div",{className:"qs-preview-section",children:[u.jsxs("h5",{children:["Team (",m.length," members)"]}),m.map((g,x)=>u.jsxs("div",{className:"qs-preview-member",children:[u.jsx("strong",{children:g.name}),g.resp&&u.jsxs("span",{className:"qs-preview-resp",children:[" — ",g.resp]}),u.jsx("span",{className:"qs-preview-parent",children:g.parent==="owner"?" (reports to you)":` (managed by ${g.parent})`})]},x))]}),u.jsxs("div",{className:"qs-preview-section",children:[u.jsx("h5",{children:"Actor Runtime"}),u.jsx("p",{children:"Seat routing and delegation will be derived from your reporting structure and any team seats you configure later."})]})]}),u.jsxs("div",{className:"qs-nav",children:[u.jsx("button",{className:"oc-btn-ghost",onClick:()=>i(1),children:"← Back"}),u.jsx("button",{className:"oc-btn-primary qs-create-btn",onClick:p,children:"Create Team"})]})]})]})}function vJ({roles:e,employees:t,sessionRecruitmentByRole:n,isCustomMode:i,onAddRole:r,onBulkAddRoles:o,onUpdateRole:a,onDeleteRole:c,onExport:d,onImportEmployee:m,onResetArchitecture:h,onSwitchToTab:p,savedOrgsList:g,activeSavedOrg:x,currentOrgVersion:v,versionAtLoad:b,onSavedOrgsList:w,onSavedOrgSaveAs:k,onSavedOrgLoad:S,onSavedOrgDelete:j}){const[N,L]=C.useState(!1),[A,D]=C.useState(!1),[O,T]=C.useState(""),[M,I]=C.useState(""),[H,Y]=C.useState(""),[P,U]=C.useState("1.0.0"),$=C.useMemo(()=>{const Z=new Map;for(const te of t){const ee=te.role_ids?.length?te.role_ids:[te.role_id];for(const se of ee){if(!se)continue;const ae=Z.get(se)||[];ae.push(te),Z.set(se,ae)}}return Z},[t]),G=()=>{!O.trim()||!M.trim()||(d({package_id:O.trim(),name:M.trim(),description:H,version:P}),D(!1),T(""),I(""),Y(""),U("1.0.0"))},q=C.useRef(null);C.useEffect(()=>{N&&e.length>0&&(L(!1),q.current&&(clearTimeout(q.current),q.current=null))},[e.length,N]),C.useEffect(()=>{if(N)return q.current=setTimeout(()=>L(!1),1e4),()=>{q.current&&clearTimeout(q.current)}},[N]);const K=Z=>{const te=new Map,ee=new Set,se=[];for(const ae of Z){let ue=ae.name.toLowerCase().replace(/\s+/g,"-").replace(/[^a-z0-9-]/g,"").replace(/^-+|-+$/g,"");if(!ue)continue;let ie=ue,je=2;for(;ee.has(ie);)ie=`${ue}-${je++}`;ee.add(ie),te.set(ae.name,ie);const we=ae.reportsTo==="owner"?"owner":te.get(ae.reportsTo)||"owner";se.push({role_id:ie,name:ae.name,responsibility:ae.responsibility,reports_to:we})}if(se.length!==0)if(o)L(!0),o(se);else{for(const ae of se)r(ae.role_id,ae.name,ae.responsibility,ae.reports_to);L(!0)}},W=()=>{confirm("This will remove all org roles, employees, and work-item templates. Continue?")&&h?.()},V=C.useMemo(()=>{let Z=0;for(const te of e)($.get(te.role_id)??[]).length>0&&(Z+=1);return Z},[e,$]),Q=C.useMemo(()=>t.filter(Z=>Z.linked_agent_id).length,[t]),B=Math.max(0,e.length-V);return i&&e.length===0?u.jsx("div",{className:"team-view",children:N?u.jsx("div",{className:"qs-wizard",children:u.jsxs("div",{className:"qs-loading",children:[u.jsx("span",{className:"spinner-inline"})," Setting up your team..."]})}):u.jsx(xJ,{onComplete:K,onSwitchToTab:p})}):u.jsxs("div",{className:"team-view",children:[u.jsxs("div",{className:`team-command-bar${i?" team-command-bar--editable":" team-command-bar--readonly"}`,children:[u.jsxs("div",{className:"team-command-copy",children:[u.jsx("span",{className:"team-command-eyebrow",children:i?"Saved org workspace":"Corporate baseline"}),u.jsx("span",{className:"team-command-title",children:i?"Editable company architecture":"Built-in company architecture"})]}),u.jsxs("div",{className:"team-command-metrics",children:[u.jsxs("span",{children:[u.jsx("b",{children:V})," staffed roles"]}),u.jsxs("span",{children:[u.jsx("b",{children:B})," vacant"]}),u.jsxs("span",{children:[u.jsx("b",{children:Q})," in office"]})]}),i&&u.jsxs("div",{className:"team-command-actions",children:[u.jsxs("button",{className:"myorg-inline-btn",onClick:()=>p("employees"),children:[u.jsx("img",{src:is.addPerson,alt:"",className:"myorg-inline-icon"})," Hire Talent"]}),u.jsx("button",{className:"btn btn-ghost btn-sm",onClick:()=>D(!0),children:"Export Package"}),h&&u.jsxs("button",{className:"myorg-reset-btn",onClick:W,children:[u.jsx("img",{src:is.trash,alt:"",className:"myorg-reset-icon"})," Reset"]})]})]}),!i&&u.jsx("div",{className:"team-readonly-strip",children:"Corporate is fixed and read-only; saved company architectures are edited separately."}),u.jsx(yJ,{roles:e,employees:t,sessionRecruitmentByRole:n,isCustomMode:i,onAddRole:r,onUpdateRole:a,onDeleteRole:c,savedOrgsList:g??null,activeSavedOrg:x??null,currentOrgVersion:v??0,versionAtLoad:b??null,onSavedOrgsList:w,onSavedOrgSaveAs:k,onSavedOrgLoad:S,onSavedOrgDelete:j}),A&&u.jsxs("div",{className:"myorg-form",children:[u.jsx("h4",{className:"myorg-form-title",children:"Export as .opcpkg"}),u.jsxs("div",{className:"oc-form-row",children:[u.jsx("label",{children:"Package ID"}),u.jsx("input",{value:O,onChange:Z=>T(Z.target.value),placeholder:"my-architecture"})]}),u.jsxs("div",{className:"oc-form-row",children:[u.jsx("label",{children:"Name"}),u.jsx("input",{value:M,onChange:Z=>I(Z.target.value),placeholder:"My Architecture"})]}),u.jsxs("div",{className:"oc-form-row",children:[u.jsx("label",{children:"Description"}),u.jsx("input",{value:H,onChange:Z=>Y(Z.target.value),placeholder:"An org team structure"})]}),u.jsxs("div",{className:"oc-form-row",children:[u.jsx("label",{children:"Version"}),u.jsx("input",{value:P,onChange:Z=>U(Z.target.value)})]}),u.jsxs("div",{className:"oc-form-actions",children:[u.jsx("button",{className:"oc-btn-primary",onClick:G,disabled:!O.trim()||!M.trim(),children:"Export"}),u.jsx("button",{className:"oc-btn-ghost",onClick:()=>D(!1),children:"Cancel"})]})]}),u.jsxs("div",{className:"myorg-section",children:[u.jsxs("div",{className:"myorg-section-header",children:[u.jsx("img",{src:is.team,alt:"",className:"myorg-section-icon"}),u.jsx("h3",{className:"myorg-section-title",children:"Team Roster"}),u.jsxs("span",{className:"myorg-section-count",children:[t.length," members"]}),u.jsx("span",{className:"myorg-section-spacer"}),u.jsxs("span",{className:"myorg-section-note",children:[V,"/",e.length," staffed"]})]}),u.jsx("div",{className:"team-roster-grid",children:e.map(Z=>{const te=$.get(Z.role_id)||[];return u.jsxs("div",{className:"team-roster-card",children:[u.jsxs("div",{className:"team-roster-card-header",children:[u.jsx("img",{src:Uu(Z.icon),alt:"",className:"team-roster-card-icon"}),u.jsx("span",{className:"team-roster-role-name",children:Z.name}),u.jsx("span",{className:"team-roster-count",children:te.length||"vacant"})]}),te.length>0?te.map(ee=>u.jsxs("div",{className:"team-roster-emp",children:[u.jsx("img",{src:is.person,alt:"",className:"team-roster-emp-avatar"}),u.jsxs("div",{className:"team-roster-emp-info",children:[u.jsx("span",{className:"team-roster-emp-name",children:ee.name}),u.jsx("span",{className:`team-roster-seniority team-roster-seniority--${ee.seniority}`,children:ee.seniority})]}),ee.linked_agent_id?u.jsx("span",{className:"team-roster-badge team-roster-badge--active",children:"In Office"}):m&&ee.role_id?u.jsxs("button",{className:"team-roster-deploy-btn",onClick:()=>m(ee.employee_id),title:"Add this employee to the office workspace",children:[u.jsx("img",{src:is.deploy,alt:"",className:"team-roster-deploy-icon"})," Deploy"]}):null]},ee.employee_id)):u.jsxs("div",{className:"team-roster-vacant",children:[u.jsx("span",{className:"team-roster-vacant-text",children:"No members yet"}),i&&u.jsx("button",{className:"team-roster-hire-btn",onClick:()=>p("employees"),children:"Hire"})]})]},Z.role_id)})})]})]})}function dp(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 bJ(e){const t=dp(e);return(Array.isArray(t?.signals)?t.signals:[]).filter(i=>i&&typeof i=="object").filter(i=>!!(i.required??!0)&&!i.satisfied).map(i=>String(i.name??"").trim()).filter(Boolean)}function _J(e){const n=dp(e)?.work_item_profile;return n&&typeof n=="object"?String(n.gate_owner_role_id??"").trim():""}function kJ(e){const t=dp(e),n=typeof t?.confidence=="number"?t.confidence:void 0;return typeof n=="number"?`${Math.round(n*100)}%`:""}function SJ({roles:e,runtimeTeams:t,runtimeSeats:n,workItems:i,frontier:r,companyProfile:o,runtimePolicy:a,finalDeciderRoleId:c,topLevelRoleIds:d,readOnly:m=!1,onUpdateOrgStrategy:h,onUpdateRuntimePolicy:p}){const g=e.filter(w=>(d??[]).includes(w.role_id)),x=c||(g.length===1?g[0]?.role_id:""),v=g.length>1&&!x,b=new Map(e.map(w=>[w.role_id,w.name]));return u.jsxs("div",{className:"wfe-container",children:[u.jsxs("div",{className:"wfe-header",children:[u.jsx("h3",{className:"wfe-title",children:"Actor Runtime"}),u.jsx("span",{className:"wfe-profile-badge",children:o})]}),u.jsx("div",{className:"myorg-collapsible",style:{margin:"0 0 8px"},children:u.jsxs("div",{className:"myorg-collapsible-body",style:{display:"block"},children:[u.jsxs("div",{className:"oc-form-row",children:[u.jsx("label",{children:"Final decider"}),u.jsxs("select",{value:x,disabled:m,onChange:w=>{m||h?.({final_decider_role_id:w.target.value||null})},children:[u.jsx("option",{value:"",children:g.length>1?"Select top-level role":"Auto-select only top-level role"}),g.map(w=>u.jsx("option",{value:w.role_id,children:w.name},w.role_id))]})]}),u.jsx("div",{style:{fontSize:12,color:"var(--text-secondary)"},children:"Runtime wakeups, delegation, approvals, and recovery are seat-scoped."}),v&&u.jsx("div",{className:"org-toast org-toast--warn",style:{margin:"0 0 8px"},children:"Multiple top-level roles exist. Select one final decider before company execution can start."})]})}),t.length||n.length||i.length?u.jsx("div",{className:"myorg-collapsible",style:{margin:"0 0 8px"},children:u.jsxs("div",{className:"myorg-collapsible-body",style:{display:"block"},children:[u.jsxs("div",{className:"oc-form-row",children:[u.jsx("label",{children:"Runtime"}),u.jsxs("div",{children:[r.status||"running",r.run_id?` (${r.run_id.slice(0,8)})`:""]})]}),u.jsxs("div",{className:"oc-form-row",children:[u.jsx("label",{children:"Frontier"}),u.jsxs("div",{children:[r.running_count??0," running, ",r.ready_count??0," ready, ",r.blocked_count??0," blocked, ",r.waiting_count??0," waiting"]})]}),u.jsxs("div",{className:"oc-form-row",children:[u.jsx("label",{children:"Teams"}),u.jsx("div",{children:t.length})]}),u.jsxs("div",{className:"oc-form-row",children:[u.jsx("label",{children:"Seats"}),u.jsx("div",{children:n.length})]}),u.jsxs("div",{className:"oc-form-row",children:[u.jsx("label",{children:"Work items"}),u.jsx("div",{children:i.length})]}),i.length>0&&u.jsx("div",{style:{fontSize:12,color:"var(--text-secondary)"},children:i.slice(0,6).map(w=>{const k=dp(w),S=typeof k?.normalized_state=="string"?k.normalized_state:"",j=typeof k?.blocked_reason=="string"?k.blocked_reason:w.blocked_reason??"",N=_J(w),L=bJ(w),A=kJ(w),D=[j?`waiting ${j}`:"",N?`gate ${b.get(N)??N}`:"",L.length?`signals ${L.join(", ")}`:"",A?`confidence ${A}`:"",S==="invalidated"?"invalidated":""].filter(Boolean);return u.jsxs("div",{style:{marginBottom:6},children:[u.jsxs("div",{children:[b.get(w.role_id)??w.role_id,": ",w.title," [",w.phase,"]",w.kanban_column&&u.jsxs("span",{style:{opacity:.5},children:[" · ",w.kanban_column]}),w.batch_id&&u.jsxs("span",{style:{opacity:.5},children:[" batch:",w.batch_id]}),S&&S!==w.phase&&u.jsxs("span",{style:{opacity:.7},children:[" state:",S]})]}),D.length>0&&u.jsx("div",{style:{marginLeft:12,opacity:.85},children:D.join(" • ")})]},w.work_item_id)})})]})}):null]})}function wJ({pkg:e,onUninstall:t,uninstallingId:n}){const i=n===e.package_id;return u.jsxs("div",{className:"pkg-card",children:[u.jsxs("div",{className:"pkg-card-header",children:[u.jsx("img",{src:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M20.54 5.23l-1.39-1.68C18.88 3.21 18.47 3 18 3H6c-.47 0-.88.21-1.16.55L3.46 5.23C3.17 5.57 3 6.02 3 6.5V19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6.5c0-.48-.17-.93-.46-1.27zM12 17.5L6.5 12H10v-2h4v2h3.5L12 17.5zM5.12 5l.81-1h12l.94 1H5.12z'/%3E%3C/svg%3E",alt:"package",className:"pkg-card-icon"}),u.jsxs("div",{className:"pkg-card-title-wrap",children:[u.jsx("span",{className:"pkg-card-name",children:e.name||e.package_id}),u.jsxs("span",{className:"pkg-card-version",children:["v",e.version]})]})]}),u.jsxs("div",{className:"pkg-card-stats",children:[u.jsxs("span",{className:"pkg-card-stat",children:[u.jsx("img",{src:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z'/%3E%3C/svg%3E",alt:"roles",className:"pkg-stat-icon"}),e.role_ids.length," roles"]}),u.jsxs("span",{className:"pkg-card-stat",children:[u.jsx("img",{src:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.11-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z'/%3E%3C/svg%3E",alt:"templates",className:"pkg-stat-icon"}),e.template_ids.length," templates"]})]}),e.installed_at&&u.jsxs("div",{className:"pkg-card-date",children:["Installed ",new Date(e.installed_at).toLocaleDateString()]}),t&&u.jsx("div",{className:"pkg-card-actions",children:u.jsx("button",{className:"pkg-btn pkg-btn-danger",disabled:i,onClick:r=>{r.stopPropagation(),t(e.package_id)},children:i?"Removing...":"Uninstall"})})]})}function zx({icon:e,title:t,count:n,extra:i,children:r,defaultExpanded:o=!1}){const[a,c]=C.useState(o);return u.jsxs("div",{className:"myorg-collapsible",children:[u.jsxs("button",{className:"myorg-collapsible-toggle",onClick:()=>c(!a),children:[u.jsx("span",{className:"myorg-toggle-icon",children:a?"▾":"▸"}),u.jsx("img",{src:e,alt:"",className:"myorg-section-icon"}),u.jsx("span",{className:"myorg-collapsible-title",children:t}),u.jsx("span",{className:"myorg-collapsible-count",children:n}),i&&u.jsx("span",{className:"myorg-collapsible-extra",onClick:d=>d.stopPropagation(),children:i})]}),a&&u.jsx("div",{className:"myorg-collapsible-body",children:r})]})}const ns={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"},$v={pipeline:"Pipeline",hub_spoke:"Hub & Spoke",review_loop:"Review Loop",hierarchical:"Hierarchical",flat:"Flat Team"};function CJ({presets:e,installedIds:t,previewData:n,applyingPresetId:i,readOnly:r,onPreview:o,onApplyPreset:a,onClearPreview:c,installedPackages:d,channels:m,reorgProposals:h,isCustomMode:p,onReorgDecide:g,onMarketInstall:x,onMarketUninstall:v}){const[b,w]=C.useState(""),[k,S]=C.useState(null),[j,N]=C.useState(null),[L,A]=C.useState(!1),[D,O]=C.useState(""),[T,M]=C.useState(null),I=C.useMemo(()=>{const $=new Set;for(const G of e)G.category&&$.add(G.category);return Array.from($).sort()},[e]),H=C.useMemo(()=>{const $=new Set;for(const G of e)G.collaboration_pattern&&$.add(G.collaboration_pattern);return Array.from($).sort()},[e]),Y=C.useMemo(()=>{let $=e;if(k&&($=$.filter(G=>G.category===k)),j&&($=$.filter(G=>G.collaboration_pattern===j)),b.trim()){const G=b.trim().toLowerCase();$=$.filter(q=>q.name.toLowerCase().includes(G)||q.description.toLowerCase().includes(G)||q.tags.some(K=>K.toLowerCase().includes(G))||($v[q.collaboration_pattern]||"").toLowerCase().includes(G))}return $},[e,k,j,b]),P=()=>{D.trim()&&(x(D.trim(),"namespace"),A(!1),O(""))},U=$=>{confirm("Uninstall this package? Roles and work-item templates from this package will be removed.")&&(M($),v($),setTimeout(()=>M(null),3e3))};return u.jsxs("div",{className:"mkt-container","data-testid":"architecture-marketplace",children:[u.jsxs("div",{className:"mkt-toolbar",children:[u.jsxs("div",{className:"mkt-search-wrap",children:[u.jsx("img",{src:ns.search,alt:"",className:"mkt-search-icon"}),u.jsx("input",{className:"mkt-search",placeholder:"Search architectures...",value:b,onChange:$=>w($.target.value)})]}),u.jsxs("span",{className:"mkt-count",children:[Y.length," architectures"]})]}),u.jsxs("div",{className:"mkt-filters",children:[I.length>0&&u.jsxs("div",{className:"mkt-pill-row",children:[u.jsx("button",{className:`mkt-pill${k?"":" active"}`,onClick:()=>S(null),children:"All"}),I.map($=>u.jsx("button",{className:`mkt-pill${k===$?" active":""}`,onClick:()=>S(k===$?null:$),children:$},$))]}),H.length>0&&u.jsxs("div",{className:"mkt-pill-row",children:[u.jsx("button",{className:`mkt-pill mkt-pill-pattern${j?"":" active"}`,onClick:()=>N(null),children:"All Patterns"}),H.map($=>u.jsx("button",{className:`mkt-pill mkt-pill-pattern${j===$?" active":""}`,onClick:()=>N(j===$?null:$),children:$v[$]||$},$))]})]}),Y.length>0?u.jsxs("div",{className:"mkt-section",children:[u.jsxs("div",{className:"mkt-section-header",children:[u.jsx("img",{src:ns.arch,alt:"",className:"mkt-section-icon"}),u.jsx("h3",{className:"mkt-section-title",children:"Architecture Blueprints"}),u.jsx("span",{className:"mkt-section-count",children:Y.length})]}),u.jsx("div",{className:"mkt-arch-grid",children:Y.map($=>u.jsx(jJ,{preset:$,isInstalled:t.has($.id),isApplying:i===$.id,readOnly:r,onPreview:()=>o($.id),onApply:()=>a($.id,"namespace")},$.id))})]}):u.jsx("div",{className:"mkt-empty",children:u.jsx("p",{children:"No architectures match your search."})}),u.jsxs(zx,{icon:ns.packages,title:"Installed Packages",count:d.length,extra:p?u.jsxs("button",{className:"myorg-inline-btn",onClick:()=>A(!L),children:[u.jsx("img",{src:ns.importPkg,alt:"",className:"myorg-inline-icon"})," Import"]}):void 0,children:[p&&L&&u.jsxs("div",{className:"myorg-form",children:[u.jsxs("div",{className:"oc-form-row",children:[u.jsx("label",{children:"Path"}),u.jsx("input",{value:D,onChange:$=>O($.target.value),placeholder:"/path/to/package.opcpkg"})]}),u.jsxs("div",{className:"oc-form-actions",children:[u.jsx("button",{className:"oc-btn-primary",onClick:P,disabled:!D.trim(),children:"Install"}),u.jsx("button",{className:"oc-btn-ghost",onClick:()=>A(!1),children:"Cancel"})]})]}),d.length>0?u.jsx("div",{className:"pkg-grid",children:d.map($=>u.jsx(wJ,{pkg:$,onUninstall:p?U:void 0,uninstallingId:T},$.package_id))}):u.jsx("div",{className:"myorg-empty-hint",children:"No packages installed."})]}),u.jsx(zx,{icon:ns.channels,title:"Channels & Connectors",count:m.length,children:m.length>0?u.jsx("div",{className:"org-channels-grid",children:m.map($=>u.jsxs("div",{className:`org-channel-card${$.running?" org-ch-running":""}${$.enabled?"":" org-ch-disabled"}`,children:[u.jsxs("div",{className:"org-ch-header",children:[u.jsx("span",{className:`org-ch-dot${$.running?" running":$.ready?" ready":$.configured?" configured":""}`}),u.jsx("span",{className:"org-ch-name",children:$.name})]}),u.jsxs("div",{className:"org-ch-status-row",children:[$.enabled&&u.jsx("span",{className:"org-ch-badge org-ch-enabled",children:"enabled"}),$.running&&u.jsx("span",{className:"org-ch-badge org-ch-running-badge",children:"running"}),!$.enabled&&u.jsx("span",{className:"org-ch-badge org-ch-off",children:"disabled"})]})]},$.name))}):u.jsx("div",{className:"myorg-empty-hint",children:"No channels configured."})}),h.length>0&&u.jsx(zx,{icon:ns.reorg,title:"Reorg Proposals",count:h.length,children:u.jsx("div",{className:"org-reorg-list",children:h.map($=>{const G=$.status==="proposed";return u.jsxs("div",{className:`org-reorg-card org-reorg-${$.status}`,children:[u.jsxs("div",{className:"org-reorg-header",children:[u.jsx("span",{className:"org-reorg-title",children:$.title||$.summary||"Untitled"}),u.jsx("span",{className:"org-reorg-status",children:$.status})]}),$.summary&&u.jsx("div",{className:"org-reorg-summary",children:$.summary}),G&&p&&u.jsxs("div",{className:"org-reorg-actions",children:[u.jsx("button",{className:"org-reorg-approve",onClick:()=>g($.proposal_id,!0),children:"Approve"}),u.jsx("button",{className:"org-reorg-deny",onClick:()=>g($.proposal_id,!1),children:"Deny"})]})]},$.proposal_id)})})}),n&&u.jsx(EJ,{data:n,isInstalled:t.has(n.id),isApplying:i===n.id,onApply:()=>a(n.id,"namespace"),onClose:c})]})}function jJ({preset:e,isInstalled:t,isApplying:n,readOnly:i,onPreview:r,onApply:o}){const a=$v[e.collaboration_pattern]||e.collaboration_pattern;return u.jsxs("div",{className:"mkt-arch-card",style:{borderLeftColor:e.color||"var(--accent)"},onClick:r,children:[u.jsxs("div",{className:"mkt-arch-header",children:[u.jsx("span",{className:"mkt-arch-emoji",children:e.emoji}),u.jsxs("div",{className:"mkt-arch-title-wrap",children:[u.jsx("span",{className:"mkt-arch-name",children:e.name}),u.jsxs("div",{className:"mkt-arch-badges",children:[u.jsx("span",{className:"mkt-arch-category",children:e.category}),e.collaboration_pattern&&u.jsx("span",{className:"mkt-arch-pattern",children:a})]})]})]}),e.dag_summary&&u.jsx("div",{className:"mkt-arch-dag-summary",children:e.dag_summary}),u.jsx("div",{className:"mkt-arch-desc",children:e.description}),u.jsxs("div",{className:"mkt-arch-stats",children:[u.jsxs("span",{className:"mkt-arch-stat",children:[e.roles_count," roles"]}),u.jsxs("span",{className:"mkt-arch-stat",children:[e.work_item_templates_count," templates"]}),e.gates_count>0&&u.jsxs("span",{className:"mkt-arch-stat",children:[e.gates_count," checkpoints"]}),e.team_size&&u.jsxs("span",{className:"mkt-arch-stat",children:[e.team_size," people"]})]}),e.tags.length>0&&u.jsx("div",{className:"mkt-arch-tags",children:e.tags.slice(0,4).map(c=>u.jsx("span",{className:"mkt-tag",children:c},c))}),u.jsxs("div",{className:"mkt-arch-actions",children:[t?u.jsx("span",{className:"mkt-installed-badge",children:"Installed"}):i?null:u.jsx("button",{className:"mkt-btn mkt-btn-primary mkt-btn-sm",disabled:n,onClick:c=>{c.stopPropagation(),o()},children:n?"Applying...":"Use This"}),u.jsx("button",{className:"mkt-btn mkt-btn-ghost mkt-btn-sm",onClick:c=>{c.stopPropagation(),r()},children:"Preview"})]})]})}function EJ({data:e,isInstalled:t,isApplying:n,onApply:i,onClose:r}){return u.jsx("div",{className:"mkt-modal-overlay",onClick:r,children:u.jsxs("div",{className:"mkt-modal",onClick:o=>o.stopPropagation(),children:[u.jsxs("div",{className:"mkt-modal-header",style:{borderBottomColor:e.color||"var(--border)"},children:[u.jsx("span",{className:"mkt-modal-emoji",children:e.emoji}),u.jsxs("div",{children:[u.jsx("h2",{className:"mkt-modal-name",children:e.name}),u.jsx("span",{className:"mkt-modal-category",children:e.category})]}),u.jsx("button",{className:"mkt-modal-close",onClick:r,children:"×"})]}),u.jsxs("div",{className:"mkt-modal-body",children:[u.jsx("p",{className:"mkt-modal-desc",children:e.description}),e.tags.length>0&&u.jsxs("div",{className:"mkt-modal-section",children:[u.jsx("div",{className:"mkt-modal-label",children:"Tags"}),u.jsx("div",{className:"mkt-modal-tags",children:e.tags.map(o=>u.jsx("span",{className:"mkt-tag",children:o},o))})]}),u.jsxs("div",{className:"mkt-modal-section",children:[u.jsxs("div",{className:"mkt-modal-label",children:["Roles (",e.roles.length,")"]}),u.jsx("div",{className:"mkt-role-list",children:e.roles.map(o=>u.jsxs("div",{className:"mkt-role-item",children:[u.jsxs("div",{className:"mkt-role-name",children:[o.name," ",u.jsx("code",{children:o.id})]}),u.jsx("div",{className:"mkt-role-resp",children:o.responsibility}),u.jsxs("div",{className:"mkt-role-meta",children:["reports to: ",u.jsx("code",{children:o.reports_to}),o.can_spawn&&o.can_spawn.length>0&&u.jsxs(u.Fragment,{children:[" · spawns: ",o.can_spawn.map(a=>u.jsx("code",{children:a},a))]})]})]},o.id))})]}),u.jsxs("div",{className:"mkt-modal-section",children:[u.jsxs("div",{className:"mkt-modal-label",children:["Work item templates (",e.work_item_templates.length," templates)"]}),u.jsx("div",{className:"mkt-dag-wrap",children:u.jsx(NJ,{templates:e.work_item_templates})})]})]}),u.jsx("div",{className:"mkt-modal-footer",children:t?u.jsx("span",{className:"mkt-installed-badge",children:"Already Installed"}):u.jsx("button",{className:"mkt-btn mkt-btn-primary",disabled:n,onClick:i,children:n?"Applying...":"Use This Architecture"})})]})})}function NJ({templates:e}){const t=[];let n="__init__",i=[];for(const r of e)r.parallel_group!==n?(i.length>0&&t.push({group:n,templates:i}),n=r.parallel_group,i=[r]):i.push(r);return i.length>0&&t.push({group:n,templates:i}),u.jsx("div",{className:"org-dag",children:t.map((r,o)=>u.jsxs("div",{className:"org-dag-group-wrap",children:[o>0&&u.jsx("div",{className:"org-dag-arrow",children:u.jsx("img",{src:ns.arrow,alt:"→",className:"org-dag-arrow-icon"})}),u.jsxs("div",{className:`org-dag-group${r.templates.length>1?" org-dag-parallel":""}`,children:[r.templates.length>1&&u.jsx("div",{className:"org-dag-parallel-label",children:"parallel"}),r.templates.map(a=>u.jsxs("div",{className:"org-dag-node",children:[u.jsxs("div",{className:"org-dag-node-header",children:[u.jsx("span",{className:"org-dag-node-title",children:a.title}),u.jsx("span",{className:"org-dag-node-role",children:a.role_id})]}),u.jsx("div",{className:"org-dag-node-id",children:a.id}),a.gate&&u.jsxs("div",{className:`org-dag-gate org-gate-${a.gate.type}`,children:[u.jsx("img",{src:a.gate.type==="review"?ns.gateReview:a.gate.type==="approval"?ns.gateApproval:ns.gateHold,alt:"",className:"org-gate-icon"}),u.jsx("span",{children:a.gate.type}),a.gate.reviewer_role&&u.jsxs("span",{className:"org-gate-reviewer",children:["by ",a.gate.reviewer_role]})]})]},a.id))]})]},o))})}function IJ(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 TJ({template:e,hiringId:t,onHire:n,onClick:i}){const r=t===e.template_id,o=e.color?{background:`color-mix(in srgb, ${e.color} 18%, transparent)`,color:e.color,boxShadow:`inset 0 0 0 1px color-mix(in srgb, ${e.color} 28%, transparent)`}:void 0,a=[],c=new Set;for(const h of[...e.tags,...e.domains])c.has(h)||(c.add(h),a.push(h));const d=a.slice(0,3),m=a.length-d.length;return u.jsxs("div",{className:"tm-card",onClick:()=>i(e),children:[u.jsxs("div",{className:"tm-card-head",children:[u.jsx("div",{className:"tm-card-avatar",style:o,"aria-hidden":!0,children:e.emoji?u.jsx("span",{className:"tm-card-avatar-emoji",children:e.emoji}):u.jsx("span",{className:"tm-card-avatar-mono",children:IJ(e.name)})}),u.jsxs("div",{className:"tm-card-head-text",children:[u.jsxs("div",{className:"tm-card-name-row",children:[u.jsx("span",{className:"tm-card-name",title:e.name,children:e.name}),e.preferred_external_agent&&u.jsx("span",{className:"tm-card-agent-badge",title:`Agent: ${e.preferred_external_agent}`,children:e.preferred_external_agent})]}),e.category&&u.jsx("span",{className:"tm-card-category",children:e.category})]})]}),u.jsxs("div",{className:"tm-card-body",children:[e.vibe&&u.jsxs("div",{className:"tm-card-vibe",children:['"',e.vibe,'"']}),e.description&&u.jsx("div",{className:"tm-card-desc",children:e.description})]}),d.length>0&&u.jsxs("div",{className:"tm-card-chips",children:[d.map(h=>u.jsx("span",{className:"tm-card-chip",children:h},h)),m>0&&u.jsxs("span",{className:"tm-card-chip tm-card-chip-more",children:["+",m]})]}),u.jsx("div",{className:"tm-card-footer",children:u.jsx("button",{className:"tm-card-hire-btn",disabled:r,onClick:h=>{h.stopPropagation(),n(e.template_id)},children:r?u.jsxs(u.Fragment,{children:[u.jsx("span",{className:"spinner-inline"})," Hiring"]}):"Hire →"})})]})}const uA=e=>e,dA=e=>e;function RJ({template:e,vacantRoles:t,hiringId:n,readOnly:i,onHire:r,onClose:o}){const[a,c]=C.useState(""),d=n===e.template_id,m=t.length===0,h=!i&&!d&&!m&&a!=="";C.useEffect(()=>{c("")},[e.template_id]);const p=()=>{h&&r(dA(e.template_id),uA(a))};return u.jsx("div",{className:"tm-detail-overlay",onClick:o,children:u.jsxs("div",{className:"tm-detail-modal",onClick:g=>g.stopPropagation(),children:[u.jsxs("div",{className:"tm-detail-header",style:{borderBottomColor:e.color||"var(--border)"},children:[e.emoji&&u.jsx("span",{className:"tm-detail-emoji",children:e.emoji}),u.jsxs("div",{children:[u.jsx("h2",{className:"tm-detail-name",children:e.name}),u.jsx("span",{className:"tm-detail-category",children:e.category})]}),u.jsx("button",{className:"tm-detail-close",onClick:o,children:"×"})]}),u.jsxs("div",{className:"tm-detail-body",children:[e.vibe&&u.jsxs("blockquote",{className:"tm-detail-vibe",children:['"',e.vibe,'"']}),e.description&&u.jsx("p",{className:"tm-detail-desc",children:e.description}),e.domains.length>0&&u.jsxs("div",{className:"tm-detail-section",children:[u.jsx("div",{className:"tm-detail-label",children:"Domains"}),u.jsx("div",{className:"tm-detail-tags",children:e.domains.map(g=>u.jsx("span",{className:"org-domain-tag",children:g},g))})]}),e.tags.length>0&&u.jsxs("div",{className:"tm-detail-section",children:[u.jsx("div",{className:"tm-detail-label",children:"Tags"}),u.jsx("div",{className:"tm-detail-tags",children:e.tags.map(g=>u.jsx("span",{className:"org-tool-tag",children:g},g))})]}),e.preferred_external_agent&&u.jsxs("div",{className:"tm-detail-section",children:[u.jsx("div",{className:"tm-detail-label",children:"Recommended Agent"}),u.jsx("span",{className:"tm-card-agent-badge",children:e.preferred_external_agent})]}),!i&&u.jsxs("div",{className:"tm-detail-section",children:[u.jsx("div",{className:"tm-detail-label",children:"Hire into role"}),m?u.jsx("p",{className:"tm-detail-vacancy-empty",children:"No vacant roles. Create a role in the Team tab first."}):u.jsx("div",{className:"tm-detail-role-list",role:"listbox","aria-label":"Vacant roles",children:t.map(g=>{const x=g.role_id===a;return u.jsxs("button",{type:"button",role:"option","aria-selected":x,className:`tm-detail-role-row${x?" is-selected":""}`,onClick:()=>c(g.role_id),children:[u.jsx("span",{className:"tm-detail-role-name",children:g.name}),g.responsibility&&u.jsx("span",{className:"tm-detail-role-resp",children:g.responsibility})]},g.role_id)})})]})]}),!i&&u.jsx("div",{className:"tm-detail-footer",children:u.jsx("button",{className:"tm-detail-hire-btn",disabled:!h,onClick:p,children:d?u.jsxs(u.Fragment,{children:[u.jsx("span",{className:"spinner-inline"})," Hiring..."]}):"Hire to selected role"})})]})})}function AJ({open:e,template:t,vacantRoles:n,onConfirm:i,onClose:r}){const[o,a]=C.useState("");if(C.useEffect(()=>{e&&a("")},[e,t?.template_id]),C.useEffect(()=>{if(!e)return;const h=p=>{p.key==="Escape"&&r()};return window.addEventListener("keydown",h),()=>window.removeEventListener("keydown",h)},[e,r]),!e||!t)return null;const c=n.length===0,d=!c&&o!=="",m=()=>{d&&i(dA(t.template_id),uA(o))};return u.jsx("div",{className:"htr-overlay",role:"dialog","aria-modal":"true",onMouseDown:r,children:u.jsxs("div",{className:"htr-modal",onMouseDown:h=>h.stopPropagation(),children:[u.jsxs("header",{className:"htr-header",children:[u.jsxs("div",{children:[u.jsxs("h3",{className:"htr-title",children:["Hire ",t.name]}),u.jsx("p",{className:"htr-subtitle",children:"Pick the role to fill with this employee."})]}),u.jsx("button",{className:"htr-close",type:"button",onClick:r,"aria-label":"Close",children:"x"})]}),u.jsx("div",{className:"htr-body",children:c?u.jsxs("div",{className:"htr-empty",children:[u.jsx("p",{className:"htr-empty-title",children:"No vacant roles."}),u.jsx("p",{className:"htr-empty-hint",children:"Add a role in the Team tab first, then come back to hire."})]}):u.jsx("div",{className:"htr-role-list",role:"listbox","aria-label":"Vacant roles",children:n.map(h=>{const p=h.role_id===o;return u.jsxs("button",{type:"button",role:"option","aria-selected":p,className:`htr-role-row${p?" is-selected":""}`,onClick:()=>a(h.role_id),children:[u.jsx("span",{className:"htr-role-name",children:h.name}),h.responsibility&&u.jsx("span",{className:"htr-role-resp",children:h.responsibility})]},h.role_id)})})}),u.jsxs("footer",{className:"htr-footer",children:[u.jsx("button",{type:"button",className:"btn btn-ghost",onClick:r,children:c?"Close":"Cancel"}),!c&&u.jsx("button",{type:"button",className:"btn btn-primary",onClick:m,disabled:!d,children:"Hire to selected role"})]})]})})}const 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 MJ({templates:e,vacantRoles:t,hiringTemplateId:n,readOnly:i,onHireTalent:r}){const[o,a]=C.useState(""),[c,d]=C.useState(null),[m,h]=C.useState(null),[p,g]=C.useState(null),x=C.useMemo(()=>{const w=new Set;for(const k of e)k.category&&w.add(k.category);return Array.from(w).sort()},[e]),v=C.useMemo(()=>{let w=e;if(c&&(w=w.filter(k=>k.category===c)),o.trim()){const k=o.trim().toLowerCase();w=w.filter(S=>S.name.toLowerCase().includes(k)||S.description.toLowerCase().includes(k)||S.domains.some(j=>j.toLowerCase().includes(k))||S.tags.some(j=>j.toLowerCase().includes(k))||(S.vibe??"").toLowerCase().includes(k))}return w},[e,c,o]),b=w=>{if(i)return;const k=e.find(S=>S.template_id===w);k&&g(k)};return u.jsxs("div",{className:"mkt-container","data-testid":"employees-marketplace",children:[u.jsxs("div",{className:"mkt-toolbar",children:[u.jsxs("div",{className:"mkt-search-wrap",children:[u.jsx("img",{src:Gj.search,alt:"",className:"mkt-search-icon"}),u.jsx("input",{className:"mkt-search",placeholder:"Search talent templates...",value:o,onChange:w=>a(w.target.value)})]}),u.jsxs("span",{className:"mkt-count",children:[v.length," employees",t.length>0&&u.jsxs(u.Fragment,{children:[" · ",t.length," vacant role",t.length===1?"":"s"]})]})]}),x.length>0&&u.jsx("div",{className:"mkt-filters",children:u.jsxs("div",{className:"mkt-pill-row",children:[u.jsx("button",{className:`mkt-pill${c?"":" active"}`,onClick:()=>d(null),children:"All"}),x.map(w=>u.jsx("button",{className:`mkt-pill${c===w?" active":""}`,onClick:()=>d(c===w?null:w),children:w},w))]})}),v.length>0?u.jsxs("div",{className:"mkt-section",children:[u.jsxs("div",{className:"mkt-section-header",children:[u.jsx("img",{src:Gj.talent,alt:"",className:"mkt-section-icon"}),u.jsx("h3",{className:"mkt-section-title",children:"Talent Templates"}),u.jsx("span",{className:"mkt-section-count",children:v.length})]}),u.jsx("div",{className:"tm-grid",children:v.map(w=>u.jsx(TJ,{template:w,hiringId:n,onHire:b,onClick:h},w.template_id))})]}):u.jsx("div",{className:"mkt-empty",children:u.jsx("p",{children:e.length===0?"No talent templates available.":"No employees match your search."})}),m&&u.jsx(RJ,{template:m,vacantRoles:t,hiringId:n,readOnly:i,onHire:(w,k)=>{i||(r(w,k),h(null))},onClose:()=>h(null)}),u.jsx(AJ,{open:p!==null,template:p,vacantRoles:t,onConfirm:(w,k)=>{r(w,k),g(null)},onClose:()=>g(null)})]})}const Jc={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 DJ({onExport:e,onImport:t,configExportYaml:n,importPreview:i,importError:r}){const[o,a]=C.useState(""),[c,d]=C.useState(null),[m,h]=C.useState(!1),p=C.useRef(!1),g=C.useRef(null);C.useEffect(()=>{if(!p.current||!n||n===g.current)return;g.current=n,p.current=!1;const S=new Blob([n],{type:"application/x-yaml"}),j=URL.createObjectURL(S),N=document.createElement("a");N.href=j;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(j)},[n]),C.useEffect(()=>{h(!1)},[o]),C.useEffect(()=>{i&&!r&&h(!0)},[i,r]);const x=()=>{p.current=!0,e()},v=S=>{const j=S.target.files?.[0];if(!j)return;d(j.name);const N=new FileReader;N.onload=()=>{const L=N.result;typeof L=="string"&&a(L)},N.readAsText(j),S.target.value=""},b=()=>{o.trim()&&t(o,!0)},w=()=>{!m||!o.trim()||confirm("Apply this config? The current company architecture will be overwritten.")&&(t(o,!1),h(!1),a(""),d(null))},k=()=>{a(""),d(null),h(!1)};return u.jsxs("div",{className:"cfg-io-panel","data-testid":"config-import-export-panel",children:[u.jsxs("div",{className:"cfg-io-header",children:[u.jsx("h3",{className:"cfg-io-title",children:"Config Import / Export"}),u.jsx("p",{className:"cfg-io-subtitle",children:"Download the current company architecture as YAML, or upload one to replace it."})]}),u.jsxs("div",{className:"cfg-io-section",children:[u.jsxs("div",{className:"cfg-io-section-header",children:[u.jsx("img",{src:Jc.download,alt:"",className:"cfg-io-section-icon"}),u.jsx("span",{className:"cfg-io-section-title",children:"Download current config"})]}),u.jsxs("button",{className:"cfg-io-btn cfg-io-btn-primary",onClick:x,children:[u.jsx("img",{src:Jc.download,alt:"",className:"cfg-io-btn-icon"})," Download YAML"]})]}),u.jsxs("div",{className:"cfg-io-section",children:[u.jsxs("div",{className:"cfg-io-section-header",children:[u.jsx("img",{src:Jc.upload,alt:"",className:"cfg-io-section-icon"}),u.jsx("span",{className:"cfg-io-section-title",children:"Upload config"})]}),u.jsx("div",{className:"cfg-io-upload-row",children:u.jsxs("label",{className:"cfg-io-file-label",children:[u.jsx("input",{type:"file",accept:".yaml,.yml",onChange:v,className:"cfg-io-file-input"}),u.jsx("span",{className:"cfg-io-file-btn",children:"Choose file…"}),u.jsx("span",{className:"cfg-io-file-name",children:c??"no file selected"})]})}),u.jsx("textarea",{className:"cfg-io-textarea",placeholder:"…or paste YAML here",value:o,onChange:S=>a(S.target.value),spellCheck:!1,rows:10}),u.jsxs("div",{className:"cfg-io-actions",children:[u.jsx("button",{className:"cfg-io-btn cfg-io-btn-ghost",onClick:b,disabled:!o.trim(),children:"Dry run"}),u.jsx("button",{className:"cfg-io-btn cfg-io-btn-primary",onClick:w,disabled:!m||!o.trim(),children:"Apply"}),o&&u.jsx("button",{className:"cfg-io-btn cfg-io-btn-ghost",onClick:k,children:"Clear"})]}),i&&!r&&u.jsxs("div",{className:"cfg-io-preview",children:[u.jsx("img",{src:Jc.check,alt:"",className:"cfg-io-preview-icon"}),u.jsxs("div",{className:"cfg-io-preview-body",children:[u.jsx("div",{className:"cfg-io-preview-title",children:"Dry run OK — ready to apply"}),u.jsxs("div",{className:"cfg-io-preview-stats",children:[u.jsxs("span",{className:"cfg-io-preview-stat",children:[u.jsx("span",{className:"cfg-io-stat-label",children:"Roles added"}),u.jsx("span",{className:"cfg-io-stat-value",children:i.roles_added})]}),u.jsxs("span",{className:"cfg-io-preview-stat",children:[u.jsx("span",{className:"cfg-io-stat-label",children:"Roles removed"}),u.jsx("span",{className:"cfg-io-stat-value",children:i.roles_removed})]}),u.jsxs("span",{className:"cfg-io-preview-stat",children:[u.jsx("span",{className:"cfg-io-stat-label",children:"Employees changed"}),u.jsx("span",{className:"cfg-io-stat-value",children:i.employees_changed})]})]})]})]}),r&&u.jsxs("div",{className:"cfg-io-error",children:[u.jsx("img",{src:Jc.warn,alt:"",className:"cfg-io-error-icon"}),u.jsxs("div",{className:"cfg-io-error-body",children:[u.jsx("div",{className:"cfg-io-error-title",children:"Validation failed"}),u.jsx("pre",{className:"cfg-io-error-text",children:r})]})]})]})]})}const qj=[{name:"",responsibility:"",prompt:"",reportsToIndex:null},{name:"",responsibility:"",prompt:"",reportsToIndex:0}];function Px(e){return e.trim()||"Member"}function OJ({open:e,pending:t,result:n,onClose:i,onCreate:r}){const[o,a]=C.useState(1),[c,d]=C.useState(""),[m,h]=C.useState(qj),[p,g]=C.useState("");C.useEffect(()=>{e&&(a(1),d(""),h(qj),g(""))},[e]),C.useEffect(()=>{if(!(!e||!n)){if(n.ok){i();return}g(n.error||"Failed to create organization")}},[e,n,i]);const x=c.trim().length>0,v=C.useMemo(()=>m.map((D,O)=>({member:D,index:O})).filter(D=>D.member.name.trim()),[m]),b=C.useMemo(()=>new Map(v.map((D,O)=>[D.index,O])),[v]),w=v.length>=2,k=x&&w&&!t,S=C.useMemo(()=>v.map(({member:D,index:O},T)=>{const M=D.reportsToIndex==null?null:b.get(D.reportsToIndex);return{...D,roleName:Px(D.name),managerName:M!=null&&M{h(T=>T.map((M,I)=>I===D?{...M,...O}:M))},N=()=>{h(D=>[...D,{name:"",responsibility:"",prompt:"",reportsToIndex:0}])},L=D=>{h(O=>O.filter((M,I)=>I!==D).map((M,I)=>({...M,reportsToIndex:M.reportsToIndex==null?null:M.reportsToIndex>=D?Math.max(0,M.reportsToIndex-1):M.reportsToIndex})).map((M,I)=>I===0?{...M,reportsToIndex:null}:M))},A=()=>{k&&(g(""),r(c.trim(),v.map(({member:D},O)=>{const T=D.reportsToIndex==null?null:b.get(D.reportsToIndex);return{name:D.name.trim(),responsibility:D.responsibility.trim(),prompt:D.prompt.trim(),reports_to_index:T!=null&&TD.stopPropagation(),children:[u.jsxs("div",{className:"org-create-header",children:[u.jsxs("div",{children:[u.jsx("span",{className:"org-create-eyebrow",children:"New organization"}),u.jsx("h3",{id:"org-create-title",className:"org-create-title",children:"Create a saved org"})]}),u.jsx("button",{type:"button",className:"org-create-close",onClick:i,"aria-label":"Close",children:"x"})]}),u.jsx("div",{className:"org-create-steps","aria-label":"Create organization steps",children:[["1","Name"],["2","Members"],["3","Review"]].map(([D,O])=>u.jsxs("span",{className:`org-create-step${o===Number(D)?" org-create-step--active":o>Number(D)?" org-create-step--done":""}`,children:[u.jsx("span",{children:D}),O]},D))}),o===1&&u.jsx("div",{className:"org-create-panel",children:u.jsxs("label",{className:"org-create-field",children:[u.jsx("span",{children:"Organization name"}),u.jsx("input",{value:c,onChange:D=>d(D.target.value),placeholder:"HKU Research Lab",autoFocus:!0})]})}),o===2&&u.jsxs("div",{className:"org-create-panel",children:[u.jsx("div",{className:"org-create-member-list",children:m.map((D,O)=>u.jsxs("div",{className:"org-create-member-row",children:[u.jsx("input",{value:D.name,onChange:T=>j(O,{name:T.target.value}),placeholder:O===0?"Lead role":"Member role"}),u.jsx("input",{value:D.responsibility,onChange:T=>j(O,{responsibility:T.target.value}),placeholder:"Responsibility"}),u.jsxs("select",{value:D.reportsToIndex==null?"owner":String(D.reportsToIndex),onChange:T=>j(O,{reportsToIndex:T.target.value==="owner"?null:Number(T.target.value)}),disabled:O===0,"aria-label":"Reports to",children:[u.jsx("option",{value:"owner",children:"Owner"}),m.slice(0,O).map((T,M)=>u.jsx("option",{value:M,children:Px(T.name)},M))]}),u.jsx("button",{type:"button",className:"org-create-icon-btn",onClick:()=>L(O),disabled:m.length<=2,title:"Remove member","aria-label":"Remove member",children:"-"}),u.jsx("textarea",{value:D.prompt,onChange:T=>j(O,{prompt:T.target.value}),placeholder:"Prompt optional","aria-label":`${O===0?"Lead role":"Member role"} prompt optional`})]},O))}),u.jsx("button",{type:"button",className:"org-create-add",onClick:N,children:"+ Add member"})]}),o===3&&u.jsx("div",{className:"org-create-panel",children:u.jsxs("div",{className:"org-create-review",children:[u.jsxs("div",{className:"org-create-review-head",children:[u.jsx("span",{children:c.trim()}),u.jsxs("b",{children:[v.length," members"]})]}),S.map(D=>u.jsxs("div",{className:"org-create-review-row",children:[u.jsx("strong",{children:D.roleName}),u.jsxs("span",{children:[D.managerName,D.prompt.trim()?u.jsx("em",{children:"Prompt"}):null]})]},D.index))]})}),p&&u.jsx("div",{className:"org-create-error",children:p}),u.jsxs("div",{className:"org-create-actions",children:[u.jsx("button",{type:"button",className:"btn btn-ghost",onClick:o===1?i:()=>a(o-1),children:o===1?"Cancel":"Back"}),o<3?u.jsx("button",{type:"button",className:"btn btn-primary",onClick:()=>a(o+1),disabled:o===1?!x:!w,children:"Next"}):u.jsx("button",{type:"button",className:"btn btn-primary",onClick:A,disabled:!k,children:t?"Creating...":"Create organization"})]})]})})}const il={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"},Wj={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 LJ(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 zJ({data:e,sessionRecruitmentByRole:t,talents:n,employeeDetail:i,reorgProposals:r,isCustomMode:o,onRequestData:a,onRequestTalents:c,onRequestEmployeeDetail:d,onHireTalent:m,hiringTemplateId:h,onImportEmployee:p,onRequestReorgList:g,onReorgDecide:x,onMarketExport:v,onMarketInstall:b,onMarketUninstall:w,marketPresets:k,marketPreviewData:S,onMarketBrowse:j,onMarketPreview:N,onMarketApplyPreset:L,onMarketClearPreview:A,onAddRole:D,onBulkAddRoles:O,onUpdateRole:T,onDeleteRole:M,onUpdateOrgStrategy:I,onUpdateRuntimePolicy:H,onResetArchitecture:Y,onConfigExport:P,onConfigImport:U,configExportYaml:$,configImportPreview:G,configImportError:q,onSavedOrgsList:K,onSavedOrgSaveAs:W,onSavedOrgCreate:V,onSavedOrgLoad:Q,onSavedOrgDelete:B,savedOrgsList:Z,activeSavedOrg:te,activeSavedOrgVersionAtLoad:ee,orgCreatePending:se,orgCreateResult:ae,onSelectCorporate:ue}){const{t:ie}=Vr(),[je,we]=C.useState("team"),[Re,Ve]=C.useState(!1),Ge=C.useCallback(Ye=>{we(Ye)},[]),[qe,_t]=C.useState(null),$t=C.useRef(-1),[Ht,Gt]=C.useState(null),he=C.useRef(null),$e=C.useCallback((Ye,Ft="info")=>{Gt({msg:Ye,type:Ft}),he.current&&clearTimeout(he.current),he.current=setTimeout(()=>Gt(null),3e3)},[]);C.useEffect(()=>()=>{he.current&&clearTimeout(he.current)},[]);const ut=C.useRef(a),nt=C.useRef(c),Ke=C.useRef(g),pe=C.useRef(j),Se=C.useRef(K);ut.current=a,nt.current=c,Ke.current=g,pe.current=j,Se.current=K,C.useEffect(()=>{ut.current(),nt.current(),Ke.current(),pe.current?.(),Se.current?.()},[]),C.useEffect(()=>{!ae||!ae.ok||(Ve(!1),we("team"),$e(ie("org.createdToast",{name:ae.organization_name||ae.name})))},[ae,$e,ie]);const De=e?.roles??[],Pe=C.useMemo(()=>o?De.filter(Ye=>!Ye.is_builtin):De,[De,o]),Je=C.useMemo(()=>e?.employees??[],[e?.employees]),dt=C.useMemo(()=>Gm(e),[e]),nn=C.useMemo(()=>Je.filter(Ye=>Ye.linked_agent_id),[Je]),We=e?.organization_name?.trim()||LJ(te)||ie(o?"org.customOrg":"org.corporateCompany"),et=(o?e?.organization_id||te:"corporate")||"",Ue=ie(o?"org.kind.saved":"org.kind.corporate"),Ae=ie(o?te?"org.state.editableSaved":"org.state.editableDraft":"org.state.readOnly"),jt=dt.frontier.status||dt.projectRun?.status||dt.projectRun?.lifecycle_status||ie("common.ready"),An=C.useMemo(()=>{const Ye=new Set;for(const Ft of Je){if(Ft.is_default_employee)continue;const zi=Ft.role_ids?.length?Ft.role_ids:[Ft.role_id];for(const Mn of zi)Mn&&Ye.add(Mn)}return Ye},[Je]),qn=C.useMemo(()=>Pe.filter(Ye=>!An.has(Ye.role_id)),[Pe,An]),ft=C.useMemo(()=>new Set((e?.installed_packages??[]).map(Ye=>Ye.package_id)),[e?.installed_packages]),bn=e?.org_version??0;C.useEffect(()=>{qe&&$t.current>=0&&bn!==$t.current&&(_t(null),$t.current=-1,we("team"),$e(ie("org.architectureApplied")))},[bn,qe,$e,ie]);const Nn=(Ye,Ft)=>{$t.current=bn,_t(Ye),L?.(Ye,Ft)},Rt=Ye=>{if(Ye==="corporate"){ue?.();return}if(Ye.startsWith("org:")){const Ft=Ye.slice(4);Ft&&Q?.(Ft)}};if(!e)return u.jsx("div",{className:"org-tab",children:u.jsx("div",{className:"org-loading",children:ie("org.loading")})});const bt=e.installed_packages??[],Vn=Z??[],St=o&&te?`org:${te}`:"corporate";return u.jsxs("div",{className:"org-tab",children:[u.jsxs("div",{className:`org-header${o?" org-header--custom":" org-header--corporate"}`,children:[u.jsxs("div",{className:"org-header-main",children:[u.jsxs("div",{className:"org-eyebrow",children:[u.jsx("span",{children:ie("org.company")}),u.jsx("span",{className:"org-eyebrow-separator",children:"/"}),u.jsx("span",{children:Ue})]}),u.jsxs("div",{className:"org-title-row",children:[u.jsx("h2",{className:"org-title",children:We}),u.jsxs("span",{className:"org-version-badge",children:["v",e.org_version]}),u.jsx("span",{className:`org-state-badge${o?" org-state-badge--editable":" org-state-badge--readonly"}`,children:Ae})]}),u.jsxs("div",{className:"org-header-meta",children:[u.jsx("span",{className:"org-meta-pill",children:e.company_profile||(o?"custom":"corporate")}),et&&u.jsx("code",{className:"org-meta-code",children:et}),u.jsx("span",{className:"org-meta-pill org-meta-pill--runtime",children:jt}),u.jsx("span",{className:"org-meta-pill org-meta-pill--saved",children:ie("common.autoSaved")})]})]}),u.jsxs("div",{className:"org-control-panel",children:[u.jsxs("label",{className:"org-switcher",children:[u.jsx("span",{className:"org-switcher-label",children:ie("org.organization")}),u.jsx("span",{className:"org-switcher-select-wrap",children:u.jsxs("select",{className:"org-switcher-select",value:St,onChange:Ye=>Rt(Ye.target.value),onFocus:()=>K?.(),onPointerDown:()=>K?.(),"aria-label":ie("org.organization"),children:[u.jsx("option",{value:"corporate",children:ie("org.corporate")}),Vn.map(Ye=>u.jsx("option",{value:`org:${Ye.name}`,children:(Ye.organization_name||Ye.name).trim()||Ye.name},Ye.name))]})})]}),u.jsxs("button",{type:"button",className:"org-create-trigger",onClick:()=>Ve(!0),children:[u.jsx("span",{className:"org-create-trigger-icon","aria-hidden":!0,children:"+"}),ie("org.newOrganization")]})]}),u.jsxs("div",{className:"org-stats-strip",children:[u.jsxs("span",{className:"org-stat",children:[u.jsx("img",{src:Wj.agents,alt:"",className:"org-stat-icon"}),u.jsx("b",{children:Pe.length})," ",ie("org.roles")]}),u.jsxs("span",{className:"org-stat",children:[u.jsx("img",{src:il.employees,alt:"",className:"org-stat-icon"}),u.jsx("b",{children:Je.length})," ",ie("org.employees")]}),u.jsxs("span",{className:"org-stat",children:[u.jsx("img",{src:il.runtime,alt:"",className:"org-stat-icon"}),u.jsx("b",{children:dt.runtimeTeams.length})," ",ie("org.runtimeTeams")]}),u.jsxs("span",{className:"org-stat",children:[u.jsx("img",{src:Wj.active,alt:"",className:"org-stat-icon"}),u.jsx("b",{children:nn.length})," ",ie("common.active")]})]})]}),u.jsx("div",{className:"org-subtabs",children:[{id:"team",icon:il.team,label:ie("org.tab.team"),count:Pe.length},{id:"runtime",icon:il.runtime,label:ie("org.tab.runtime"),count:dt.runtimeTeams.length},{id:"architecture",icon:il.architecture,label:ie("org.tab.architecture"),count:k?.length??0},{id:"employees",icon:il.employees,label:ie("org.tab.employees"),count:n.length}].map(Ye=>u.jsxs("button",{className:`org-subtab${je===Ye.id?" org-subtab--active":""}`,onClick:()=>Ge(Ye.id),children:[u.jsx("img",{src:Ye.icon,alt:"",className:"org-subtab-icon"}),u.jsx("span",{className:"org-subtab-label",children:Ye.label}),u.jsx("span",{className:"org-subtab-count",children:Ye.count})]},Ye.id))}),Ht&&u.jsx("div",{className:`org-toast org-toast--${Ht.type}`,onClick:()=>Gt(null),children:Ht.msg}),u.jsxs("div",{className:"org-tab-content",children:[je==="team"&&u.jsx(vJ,{roles:Pe,employees:Je,sessionRecruitmentByRole:t,isCustomMode:o,onAddRole:D??(()=>{}),onBulkAddRoles:O,onUpdateRole:T??(()=>{}),onDeleteRole:M??(()=>{}),onExport:v??(()=>{}),onImportEmployee:p,onResetArchitecture:Y,onSwitchToTab:Ye=>we(Ye),savedOrgsList:Z,activeSavedOrg:te??null,currentOrgVersion:e?.org_version??0,versionAtLoad:ee??null,onSavedOrgsList:K,onSavedOrgSaveAs:W,onSavedOrgLoad:Q,onSavedOrgDelete:B}),je==="runtime"&&u.jsx(SJ,{roles:Pe,runtimeTeams:dt.runtimeTeams,runtimeSeats:dt.runtimeSeats,workItems:dt.workItems,frontier:dt.frontier,companyProfile:e.company_profile,runtimePolicy:e.runtime_policy,finalDeciderRoleId:e.final_decider_role_id,topLevelRoleIds:e.top_level_role_ids,readOnly:!o,onUpdateOrgStrategy:I,onUpdateRuntimePolicy:H}),je==="architecture"&&u.jsxs(u.Fragment,{children:[u.jsx(CJ,{presets:k??[],installedIds:ft,previewData:S??null,applyingPresetId:qe,readOnly:!o,onPreview:N??(()=>{}),onApplyPreset:Nn,onClearPreview:A??(()=>{}),installedPackages:bt,channels:e.channels,reorgProposals:r,isCustomMode:!!o,onReorgDecide:x,onMarketInstall:(Ye,Ft)=>b?.(Ye,Ft),onMarketUninstall:Ye=>w?.(Ye)}),o&&u.jsx(DJ,{onExport:P??(()=>{}),onImport:U??(()=>{}),configExportYaml:$??null,importPreview:G??null,importError:q??null})]}),je==="employees"&&u.jsx(MJ,{templates:n,vacantRoles:qn,hiringTemplateId:h??null,readOnly:!o,onHireTalent:m})]}),u.jsx(OJ,{open:Re,pending:se,result:ae??null,onClose:()=>Ve(!1),onCreate:(Ye,Ft)=>V?.(Ye,Ft)})]})}function PJ(e,t,n,i){const r=n.join(", "),o=`session:${t.id}`,a=e.channels.find(c=>c.id===o)??e.channels.find(c=>c.type==="activity");a&&e.sendMessage({channelId:a.id,sender:"system",senderName:"System",content:`Task **${t.displayId}** assigned to ${r}`,metadata:{type:"task_assigned",taskId:t.id,boardId:t.boardId}})}const BJ=1e12,$J=/^\[Company:([^\]]+)\]\s*(.*)$/,HJ=/^\[Company\]\s*(.*)$/;function FJ(e,t,n){return!n&&e===!1?!1:t}function fA(e,t){return t==="idle"||t==="reflecting"||t==="tool_active"?t:e==="running"?"reflecting":void 0}function Nm(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:Nm(t.timestamp),type:t.type??"status_change",summary:typeof t.summary=="string"?t.summary:"",detail:typeof t.detail=="string"?t.detail:void 0,turnId:typeof t.turn_id=="string"?t.turn_id:typeof t.turnId=="string"?t.turnId:void 0,itemId:typeof t.item_id=="string"?t.item_id:typeof t.itemId=="string"?t.itemId:void 0,streamId:typeof t.stream_id=="string"?t.stream_id:typeof t.streamId=="string"?t.streamId:void 0,toolCallId:typeof t.tool_call_id=="string"?t.tool_call_id:typeof t.toolCallId=="string"?t.toolCallId:void 0,permissionGroupKey:typeof t.permission_group_key=="string"?t.permission_group_key:typeof t.permissionGroupKey=="string"?t.permissionGroupKey:void 0,seq:typeof t.seq=="number"&&Number.isFinite(t.seq)?t.seq:void 0,executionMode:typeof t.execution_mode=="string"?t.execution_mode:typeof t.executionMode=="string"?t.executionMode:void 0}))):[]}function VJ(e){return Array.isArray(e)?oT(e.filter(t=>!!t&&typeof t=="object").map(t=>{const n=typeof t.runtime_task_id=="string"?t.runtime_task_id:typeof t.runtimeTaskId=="string"?t.runtimeTaskId:typeof t.execution_turn_id=="string"?t.execution_turn_id:typeof t.executionTurnId=="string"?t.executionTurnId:void 0,i=typeof t.execution_turn_id=="string"?t.execution_turn_id:typeof t.executionTurnId=="string"?t.executionTurnId:n;return{timestamp:Nm(t.timestamp),type:t.type??"gate_result",workItemProjectionId:typeof t.work_item_projection_id=="string"?t.work_item_projection_id:typeof t.workItemProjectionId=="string"?t.workItemProjectionId:void 0,workItemTurnType:typeof t.work_item_turn_type=="string"?t.work_item_turn_type:typeof t.workItemTurnType=="string"?t.workItemTurnType:void 0,workItemProjectionTitle:typeof t.work_item_projection_title=="string"?t.work_item_projection_title:typeof t.workItemProjectionTitle=="string"?t.workItemProjectionTitle:void 0,runtimeTaskId:n,executionTurnId:i,roleName:typeof t.role_name=="string"?t.role_name:typeof t.roleName=="string"?t.roleName:void 0,detail:typeof t.detail=="string"?t.detail:void 0}})):[]}function UJ(e){return e.replace(/[_-]/g," ").replace(/\b\w/g,t=>t.toUpperCase())}function Yj(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 GJ(e){const t=e.content.trim(),n=e.metadata??{},i=e.sender!=="system"&&e.sender!=="assistant"?e.senderName:void 0,r=typeof n.forwarded_from=="string"?n.forwarded_from:typeof n.task_id=="string"?n.task_id:typeof n.taskId=="string"?n.taskId:void 0,o=$J.exec(t);if(o){const[,c,d]=o,m=d.trim();return{timestamp:e.timestamp,type:Yj(m),workItemProjectionId:c,workItemProjectionTitle:UJ(c),roleName:i,detail:m||void 0,runtimeTaskId:r,executionTurnId:r}}const a=HJ.exec(t);if(a){const c=a[1].trim();return{timestamp:e.timestamp,type:Yj(c),workItemProjectionId:"company_runtime",workItemProjectionTitle:"Company Runtime",roleName:i,detail:c||void 0,runtimeTaskId:r,executionTurnId:r}}return null}function qJ(e){return e.map(GJ).filter(t=>t!=null).sort((t,n)=>t.timestamp-n.timestamp)}function WJ(e,t){if(e.length===0||t.length===0)return e;const n=new Map;for(const i of t){const r=n.get(i.channelId);r?r.push(i):n.set(i.channelId,[i])}return e.map(i=>{const r=qJ(n.get(i.channelId)??[]),o=i.workItemLog&&i.workItemLog.length>0?i.workItemLog:r,a=[...o].reverse().find(m=>{const h=m.workItemProjectionId;return h&&h!=="company_runtime"}),c=i.mode==="primary"?a?.workItemProjectionId??i.workItemProjectionId:i.workItemProjectionId??a?.workItemProjectionId,d=i.isCompanyRuntime||i.mode==="primary"&&o.length>0;return o.length===0&&c===i.workItemProjectionId&&d===i.isCompanyRuntime?i:{...i,isCompanyRuntime:d,workItemProjectionId:c,...o.length>0?{workItemLog:o}:{}}})}function YJ(e,t){if(e.length===0||t.length===0)return e;const n=new Map(t.map(i=>[i.taskId,i]));return e.map(i=>{const r=n.get(i.id);if(!r)return i;const o=r.workItemProjectionId??i.workItemProjectionId,a=r.companyProfile??i.companyProfile,c=r.workItemRoleId??i.workItemRoleId,d=r.workItemRoleName??i.workItemRoleName;return o===i.workItemProjectionId&&a===i.companyProfile&&c===i.workItemRoleId&&d===i.workItemRoleName?i:{...i,workItemProjectionId:o,companyProfile:a,workItemRoleId:c,workItemRoleName:d}})}function mA(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 Uf(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 pA(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 hA(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 gA(e){const t=fA(e.status,e.agent_status??e.agentStatus),n=e.kanban_column??e.column_id??e.columnId??"",i=e.work_item_id??e.workItemId??e.task_id??e.id??"",r=e.runtime_task_id??e.runtimeTaskId??e.execution_turn_id??e.executionTurnId??(e.work_item_id??e.workItemId?void 0:e.task_id??e.id),o=e.execution_turn_id??e.executionTurnId??r,a=e.execution_mode??e.executionMode,c=e.work_item_projection_id??e.workItemProjectionId,d=a==="task_mode"||c==="task_mode_execution";return{id:i,displayId:e.display_id??e.displayId??"",boardId:e.board_id??e.boardId??"",columnId:n,title:e.title??"",description:e.description,priority:e.priority??null,assigneeIds:e.assignee_ids??e.assigneeIds??[],tags:e.tags??[],sortOrder:e.sort_order??e.sortOrder??0,sessionId:e.session_id??e.sessionId,workItemId:e.work_item_id??e.workItemId,runtimeTaskId:r,executionTurnId:o,createdAt:typeof e.created_at=="number"?e.created_at*1e3:e.createdAt??Date.now(),updatedAt:typeof e.updated_at=="number"?e.updated_at*1e3:e.updatedAt??Date.now(),agentStatus:t,currentTool:e.current_tool??e.currentTool,displayTool:e.display_tool??e.displayTool??e.current_tool??e.currentTool,toolElapsedMs:e.tool_elapsed_ms??e.toolElapsedMs,lastToolSummary:e.last_tool_summary??e.lastToolSummary,contextTokens:e.context_tokens??e.contextTokens,contextWindow:e.context_window??e.contextWindow,contextRemainingPct:e.context_remaining_pct??e.contextRemainingPct,inputTokens:e.input_tokens??e.inputTokens,outputTokens:e.output_tokens??e.outputTokens,totalTokens:e.total_tokens??e.totalTokens,turnCostUsd:e.turn_cost_usd??e.turnCostUsd,sessionCostUsd:e.session_cost_usd??e.sessionCostUsd,pendingPermissionCount:e.pending_permission_count??e.pendingPermissionCount,drainMode:e.drain_mode??e.drainMode,residentStatus:e.resident_status??e.residentStatus,actionableInboxCount:e.actionable_inbox_count??e.actionableInboxCount,protocolBacklogCount:e.protocol_backlog_count??e.protocolBacklogCount,notificationBacklogCount:e.notification_backlog_count??e.notificationBacklogCount,latestNotification:e.latest_notification??e.latestNotification,workItemProjectionId:d?void 0:c,workItemTurnType:d?void 0:e.work_item_turn_type??e.workItemTurnType,companyProfile:d?void 0:e.company_profile??e.companyProfile,orgId:d?void 0:e.org_id??e.organization_id??e.orgId??e.organizationId,workItemRoleId:d?void 0:e.work_item_role_id??e.workItemRoleId,workItemRoleName:d?void 0:e.work_item_role_name??e.workItemRoleName,workItemGate:d?void 0:xA(e.work_item_gate??e.workItemGate),employeeAssignment:yA(e.employee_assignment??e.employeeAssignment),selectedExecutionAgent:e.selected_execution_agent??e.selectedExecutionAgent,originChannel:e.origin_channel??e.originChannel,dependencies:e.dependencies,progressLog:fp(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 yA(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 xA(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 XJ=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"]),KJ=new Set(["active","waiting","pending","done","failed"]);function ZJ(e){return typeof e=="string"&&XJ.has(e)?e:"queued"}function QJ(e){return typeof e=="string"&&KJ.has(e)?e:"pending"}function JJ(e){return e==="reflecting"||e==="tool_active"||e==="idle"?e:"idle"}function eee(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:fp(e.entries)}}function tee(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:ZJ(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:Nm(e.created_at??e.createdAt),updatedAt:Nm(e.updated_at??e.updatedAt),executionTurnId:e.execution_turn_id??e.executionTurnId??void 0,activitySections:t.filter(n=>!!n&&typeof n=="object").map(eee),progressLog:fp(e.progress_log??e.progressLog)}}function Xj(e){if(!e||typeof e!="object")return;const t={};for(const[n,i]of Object.entries(e)){if(!i||typeof i!="object")continue;const r=i,a=(Array.isArray(r.work_items)?r.work_items:Array.isArray(r.workItems)?r.workItems:[]).map(tee).sort((d,m)=>d.createdAt-m.createdAt),c=typeof r.role_key=="string"?r.role_key:typeof r.roleKey=="string"?r.roleKey:n;t[n]={roleKey:c,roleId:typeof r.role_id=="string"?r.role_id:typeof r.roleId=="string"?r.roleId:n,roleName:typeof r.role_name=="string"?r.role_name:typeof r.roleName=="string"?r.roleName:n,roleSessionId:typeof r.role_session_id=="string"?r.role_session_id:typeof r.roleSessionId=="string"?r.roleSessionId:void 0,teamInstanceId:typeof r.team_instance_id=="string"?r.team_instance_id:typeof r.teamInstanceId=="string"?r.teamInstanceId:void 0,runtimeStatus:JJ(r.runtime_status??r.runtimeStatus),aggregatedStatus:QJ(r.aggregated_status??r.aggregatedStatus),workItems:a}}return Object.keys(t).length>0?t:void 0}function vA(e){const t=fA(e.status,e.agent_status??e.agentStatus),n=e.task_id??e.taskId??"",i=e.runtime_task_id??e.runtimeTaskId??e.execution_turn_id??e.executionTurnId??n,r=e.execution_turn_id??e.executionTurnId??i,o=e.execution_mode??e.executionMode,a=String(e.exec_mode??e.execMode??"").trim().toLowerCase(),c=e.work_item_projection_id??e.workItemProjectionId,d=a==="task"||a==="project"||a==="single"||o==="task_mode"||c==="task_mode_execution",m=d?void 0:e.parent_session_id??e.parentSessionId,h={projectId:e.project_id??e.projectId??"",taskId:n,runtimeTaskId:i,executionTurnId:r,channelId:e.channel_id??e.channelId??"",sessionId:e.session_id??e.sessionId,parentSessionId:m,mode:d?"primary":e.mode??(m?"child":"primary"),title:e.title??"Untitled",status:e.status??"pending",columnId:e.column_id??e.columnId??"todo",assigneeIds:e.assignee_ids??e.assigneeIds??[],priority:e.priority??null,tags:e.tags??[],agentStatus:t,currentTool:e.current_tool??e.currentTool,displayTool:e.display_tool??e.displayTool??e.current_tool??e.currentTool,toolElapsedMs:e.tool_elapsed_ms??e.toolElapsedMs,lastToolSummary:e.last_tool_summary??e.lastToolSummary,contextTokens:e.context_tokens??e.contextTokens,contextWindow:e.context_window??e.contextWindow,contextRemainingPct:e.context_remaining_pct??e.contextRemainingPct,inputTokens:e.input_tokens??e.inputTokens,outputTokens:e.output_tokens??e.outputTokens,totalTokens:e.total_tokens??e.totalTokens,turnCostUsd:e.turn_cost_usd??e.turnCostUsd,sessionCostUsd:e.session_cost_usd??e.sessionCostUsd,pendingPermissionCount:e.pending_permission_count??e.pendingPermissionCount,drainMode:e.drain_mode??e.drainMode,progressLog:fp(e.progress_log??e.progressLog),createdAt:typeof e.created_at=="number"?e.created_at*1e3:e.createdAt??Date.now(),updatedAt:typeof e.updated_at=="number"?e.updated_at*1e3:e.updatedAt??Date.now(),messageCount:e.message_count??e.messageCount??0,latestPreview:e.latest_preview??e.latestPreview,latestSender:e.latest_sender??e.latestSender,latestMessageId:e.latest_message_id??e.latestMessageId,indexLoaded:e.index_loaded??e.indexLoaded,detailLoaded:e.detail_loaded??e.detailLoaded,fullLoaded:e.full_loaded??e.fullLoaded,hasMore:e.has_more??e.hasMore,summaryHasMore:e.summary_has_more??e.summaryHasMore,fullHasMore:e.full_has_more??e.fullHasMore,detailLoading:e.detail_loading??e.detailLoading,detailError:e.detail_error??e.detailError,viewGeneration:e.view_generation??e.viewGeneration,execMode:e.exec_mode??e.execMode,companyProfile:d?void 0:e.company_profile??e.companyProfile,orgId:d?void 0:e.org_id??e.organization_id??e.orgId??e.organizationId,preferredAgent:e.preferred_agent??e.preferredAgent,workItemProjectionId:d?void 0:c,workItemTurnType:d?void 0:e.work_item_turn_type??e.workItemTurnType,workItemRoleId:d?void 0:e.work_item_role_id??e.workItemRoleId,workItemRoleName:d?void 0:e.work_item_role_name??e.workItemRoleName,workItemGate:d?void 0:xA(e.work_item_gate??e.workItemGate),employeeAssignment:yA(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,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?[]:VJ(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 aT(h)}function Kj(e){const t=(e.channels??[]).map(mA),n=(e.messages??[]).map(Uf),i=(e.boards??[]).map(pA),r=(e.columns??[]).map(hA),o=WJ((e.sessions??[]).map(vA),n),a=YJ((e.tasks??[]).map(gA),o);return{channels:t,messages:n,boards:i,columns:r,tasks:a,sessions:o}}function nee(e){return`session:${e}`}const iee=new Set(["company_recruitment_confirmation","company_staffing_selection"]);function ree(e){let t=null;for(const o of e){const a=o.metadata?.checkpoint_type;!a||!iee.has(a)||(!t||(o.timestamp??0)>=(t.timestamp??0))&&(t=o)}if(!t?.metadata)return null;const n=t.metadata,i={},r=(o,a)=>{const c=String(o??"").trim(),d=String(a??"").trim();if(!c||!d)return;const m=i[c]??(i[c]=[]);m.includes(d)||m.push(d)};for(const o of n.recruitment_rationales??[])o?.selection_label&&r(o.role_id,o.selection_label);if(Object.keys(i).length===0)for(const o of n.proposals??[]){const a=o?.existing_employee?.employee_name||o?.candidate?.proposed_name||o?.candidate?.template_name||"";r(o?.role_id,a)}return Object.keys(i).length?i:null}function see(){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 Zj=80,oee=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"]),aee=new Set(["member_inbox_updated"]);function lee(){return`${window.location.protocol==="https:"?"wss":"ws"}://${window.location.hostname}:${window.location.port||"8765"}/ws`}function cee(e){return e==="connected"?"ok":e==="connecting"?"warn":e==="error"?"error":"off"}function eu(e){return nU(e)}function Ns(e){return vv(e)}function Bx(e,t){if(e!=="task")return e==="org"?"custom":"corporate"}function Jo(e,t){return e!=="org"?void 0:String(t??"").trim()||void 0}function Rs(e){const t=String(e??"").trim().toLowerCase().replace("-","_");return t==="codex"||t==="claude_code"||t==="cursor"||t==="opencode"?t:"native"}function uee(e,t=120){const n=JSON.stringify(e)??"";return n.length<=t?n:n.slice(0,t)+"…"}function dee(e,t){const n=typeof e.runtime_status=="string"?e.runtime_status:typeof e.status=="string"?e.status:t?.runtime_status??t?.status??"idle",i=e.appearance&&typeof e.appearance=="object"?e.appearance:t?.appearance??{palette:0,hue_shift:0,seat_zone:"work_area"},r=Array.isArray(e.specialties)?e.specialties.filter(a=>typeof a=="string"):t?.specialties??[],o=typeof e.agent_id=="string"?e.agent_id:t?.agent_id??"";return{agent_id:o,name:typeof e.name=="string"&&e.name?e.name:typeof e.role_name=="string"&&e.role_name?e.role_name:t?.name??o,description:typeof e.description=="string"?e.description:t?.description??"",specialties:r,status:n,office_id:typeof e.office_id=="string"?e.office_id:t?.office_id,appearance:i,employee_id:typeof e.employee_id=="string"?e.employee_id:t?.employee_id,opc_role_id:typeof e.opc_role_id=="string"?e.opc_role_id:t?.opc_role_id,runtime_status:n,current_tool:typeof e.current_tool=="string"?e.current_tool:e.current_tool==null?void 0:t?.current_tool,current_task_id:typeof e.current_task_id=="string"?e.current_task_id:e.current_task_id==null?void 0:t?.current_task_id}}function Qj(e,t=[]){const n=new Map(t.map(i=>[i.agent_id,i]));return e.filter(i=>!!i&&typeof i=="object").map(i=>{const r=typeof i.agent_id=="string"?i.agent_id:"";return dee(i,n.get(r))}).filter(i=>!!i.agent_id)}function Jj(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 Tf(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function eE(e){const t=String(e??"").trim().toLowerCase();return t==="idle"||t==="done"||t==="failed"||t==="cancelled"}function $x(e){const t={};if((typeof e.execution_mode=="string"?e.execution_mode:"")==="task_mode"||e.work_item_projection_id==="task_mode_execution"){const o=Jj(e.employee_assignment??e.employeeAssignment);return o&&(t.employeeAssignment=o),typeof e.selected_execution_agent=="string"?t.selectedExecutionAgent=Rs(e.selected_execution_agent):typeof e.selectedExecutionAgent=="string"&&(t.selectedExecutionAgent=Rs(e.selectedExecutionAgent)),t}typeof e.work_item_projection_id=="string"?t.workItemProjectionId=e.work_item_projection_id:typeof e.workItemProjectionId=="string"&&(t.workItemProjectionId=e.workItemProjectionId),typeof e.work_item_turn_type=="string"?t.workItemTurnType=e.work_item_turn_type:typeof e.workItemTurnType=="string"&&(t.workItemTurnType=e.workItemTurnType),typeof e.work_item_role_id=="string"?t.workItemRoleId=e.work_item_role_id:typeof e.workItemRoleId=="string"&&(t.workItemRoleId=e.workItemRoleId),typeof e.work_item_role_name=="string"?t.workItemRoleName=e.work_item_role_name:typeof e.workItemRoleName=="string"&&(t.workItemRoleName=e.workItemRoleName);const r=Jj(e.employee_assignment??e.employeeAssignment);return r&&(t.employeeAssignment=r),typeof e.selected_execution_agent=="string"?t.selectedExecutionAgent=Rs(e.selected_execution_agent):typeof e.selectedExecutionAgent=="string"&&(t.selectedExecutionAgent=Rs(e.selectedExecutionAgent)),t}function Hx(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 Fx(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 tE(e,t){if(!t||!e)return!1;if(t.activeSessionId===e)return!0;const n=t.activeSession;if(!n)return!1;if(n.taskId===e||n.parentSessionId===e||n.sessionId===e)return!0;const i=t.sessions.find(c=>c.taskId===e);if(!i)return!1;const r=new Set([String(n.taskId??"").trim(),String(n.sessionId??"").trim()].filter(Boolean)),o=String(i.parentSessionId??"").trim();if(o&&r.has(o))return!0;const a=String(n.parentSessionId??"").trim();return a?String(i.taskId??"").trim()===a||String(i.sessionId??"").trim()===a:!1}function fee(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 mee(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 pee(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 hee(e){return e==="reflecting"||e==="tool_active"||e==="idle"?e:"idle"}function gee(e){const t=go(e)||e.taskId,n=e.workItemRoleId||e.assigneeIds[0]||e.taskId,i=e.workItemRoleName||n.replace(/[_-]/g," ").replace(/\b\w/g,o=>o.toUpperCase()),r=fee(e.status);return{roleKey:n,roleId:n,roleName:i,runtimeStatus:hee(e.agentStatus),aggregatedStatus:pee(e.status),workItems:[{workItemId:e.workItemProjectionId||t,workItemProjectionId:e.workItemProjectionId,phase:r,kanbanColumn:mee(r),title:e.title||i,kind:e.workItemTurnType,executorRoleId:n,executorRoleName:i,createdAt:e.createdAt,updatedAt:e.updatedAt,executionTurnId:t,progressLog:e.progressLog,activitySections:e.progressLog.length>0?[{kind:"activity",title:"Runtime activity",roleName:i,runtimeTaskId:t,entries:e.progressLog}]:[]}]}}function yee({taskId:e,sessions:t,agents:n,onClose:i}){if(!e)return null;for(const a of t){const c=a.roleWorkItems;if(c)for(const d of Object.values(c)){const m=d.workItems.find(h=>h.executionTurnId===e);if(m)return u.jsx(BC,{role:d,focusedWorkItemId:m.workItemId,focusedExecutionTurnId:m.executionTurnId,agents:n,onClose:i})}}const r=t.find(a=>a.taskId===e||go(a)===e);if(!r)return null;const o=gee(r);return u.jsx(BC,{role:o,focusedExecutionTurnId:e,agents:n,onClose:i})}function xee(){const{locale:e,setLocale:t,t:n,translateMaybe:i}=Vr(),r=C.useRef(new d4);C.useMemo(()=>g4(r.current),[]);const o=C.useRef(null),a=lee(),[c,d]=C.useState(a),[m,h]=C.useState(a),[p,g]=C.useState("disconnected"),[x,v]=C.useState(""),[b,w]=C.useState(null),[k,S]=C.useState([]),[j,N]=C.useState(0),[L,A]=C.useState(null),[D,O]=C.useState("openopc"),[T,M]=C.useState(!0),[I,H]=C.useState(()=>{try{return localStorage.getItem("opc_office_sidebar_collapsed")==="1"}catch{return!1}}),Y=()=>H(J=>{const z=!J;try{localStorage.setItem("opc_office_sidebar_collapsed",z?"1":"0")}catch{}return z}),[P,U]=C.useState("all"),[$,G]=C.useState("workspace"),[q,K]=C.useState([]),[W,V]=C.useState(!1),[Q,B]=C.useState(null),[Z,te]=C.useState("task"),[ee,se]=C.useState("corporate"),[ae,ue]=C.useState("native"),[ie,je]=C.useState(null),[we,Re]=C.useState(null),[Ve,Ge]=C.useState(null),[qe,_t]=C.useState([]),[$t,Ht]=C.useState(""),[Gt,he]=C.useState(null),[$e,ut]=C.useState([]),[nt,Ke]=C.useState([]),[pe,Se]=C.useState(null),[De,Pe]=C.useState(null),[Je,dt]=C.useState(null),[nn,be]=C.useState(null),[We,et]=C.useState(null),[Ue,Ae]=C.useState(null),[jt,An]=C.useState(null),[qn,ft]=C.useState(!1),[bn,Nn]=C.useState(null),[Rt,bt]=C.useState(null),Vn=C.useRef(new Set),St=C.useRef(new Set),Ye=C.useRef([]),Ft=C.useRef("task"),zi=C.useRef(null),Mn=C.useRef(null),Jt=C.useRef(null),gt=C.useRef(null),Vt=C.useRef(null),dn=C.useRef("default"),Ln=C.useRef(null),Wn=C.useRef(""),At=C.useRef(0),Ut=C.useRef(!1),In=C.useRef(!1),Yn=C.useRef(0),Te=C.useRef(!1),kt=C.useRef(null),pn=C.useRef(null),Un=C.useRef(new Map),[Tn,Et]=C.useState(null),[gi,fi]=C.useState(null),[ni,hn]=C.useState("success"),[Xt,Mt]=C.useState(null),[Kt,zn]=C.useState(null),[Pn,Gn]=C.useState(null),[yi,_n]=C.useState(()=>see()),ln=C.useCallback(J=>(typeof J=="string"?J.trim():"")||"default",[]),Xe=C.useCallback(()=>ln(dn.current),[ln]),Si=C.useCallback(()=>`${Date.now()}-${Math.random().toString(36).slice(2,9)}`,[]),rn=C.useCallback(J=>{if(!J||typeof J!="object")return"";for(const ne of["project_id","projectId","active_project_id","activeProjectId"]){const oe=J[ne];if(typeof oe=="string"&&oe.trim())return oe.trim()}const z=J.data;if(z&&typeof z=="object")for(const ne of["project_id","projectId"]){const oe=z[ne];if(typeof oe=="string"&&oe.trim())return oe.trim()}return""},[]),Dt=C.useCallback((J,z=!1)=>{const ne=rn(J);return ne?ne===Xe():z},[Xe,rn]),Ri=C.useCallback(J=>{if(!J||typeof J!="object")return"";const z=J.switch_seq??J.switchSeq;return typeof z=="string"?z.trim():""},[]),er=C.useCallback(J=>{if(!J||typeof J!="object")return null;const z=J.view_generation??J.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},[]),de=C.useCallback(J=>{const z=rn(J);if(!z)return!1;const ne=Ln.current;if(z!==Xe()&&z!==ne)return!1;const oe=er(J);if(oe!==null&&oe!==At.current)return!1;const fe=Ri(J);return!fe||!Wn.current||fe===Wn.current},[Xe,Ri,er,rn]),_e=C.useCallback(J=>{if(!J||J.error!=="task_not_found")return!1;if(!Dt(J,!1))return!0;if((typeof J.action=="string"?J.action:"")!=="session_detail")return!1;const ne=er(J);if(ne!==null&&ne!==At.current)return!0;const oe=typeof J.task_id=="string"?J.task_id:"";return oe?!(gt.current?.sessions??[]).some(Ne=>Ne.taskId===oe):!0},[Dt,er]),Fe=C.useCallback(()=>{for(const J of Un.current.values())clearTimeout(J);Un.current.clear()},[]),mt=C.useCallback((J,z="full",ne=!1,oe)=>{if(!J)return;const fe=oe||Xe(),Ne=At.current;if(!ne&&!tE(J,gt.current))return;const He=`${fe}:${Ne}:${J}`,ze=Un.current.get(He);ze&&(clearTimeout(ze),Un.current.delete(He));const it=setTimeout(()=>{if(Un.current.delete(He),fe!==Xe()||Ne!==At.current||!ne&&!tE(J,gt.current))return;const wt=o.current;if(gt.current?.updateSession(J,{detailLoading:!0,detailError:void 0,viewGeneration:Ne}),!wt){gt.current?.updateSession(J,{detailLoading:!1,detailError:"connection_unavailable"});return}wt.sessionDetail(fe,J,{limit:200,detailLevel:z,include:z==="full"?["messages","session_state","progress","work_items","runtime_context"]:["messages","session_state"],viewGeneration:Ne}).then(yt=>{yt.ok===!1&&fe===Xe()&&Ne===At.current&>.current?.updateSession(J,{detailLoading:!1,detailError:String(yt.error??"request_failed")})})},180);Un.current.set(He,it)},[Xe]),Ot=C.useCallback((J,z="success")=>{fi(J),hn(z),setTimeout(()=>fi(null),3e3)},[]),ce=C.useCallback(()=>{pn.current&&(clearTimeout(pn.current),pn.current=null),Te.current=!1,kt.current=null},[]),ke=C.useCallback(J=>{ce(),Te.current=!0,kt.current=J,pn.current=setTimeout(()=>{!Te.current||kt.current!==J||(ce(),v("create_session_timeout"),Ot("Session creation timed out. Please try again.","error"))},3e4)},[ce,Ot]),Me=S4(),Le=qV(),st=oU(),Qe=lU(),ot=st.activeSessionId,Cn=C.useMemo(()=>ot?ree(Le.getChannelMessages(nee(ot))):null,[ot,Le]);C.useCallback(J=>{const z=ln(J);dn.current=z,Fe(),Le.initFromBackend(z,[],[]),Me.initFromBackend(z,[],[],[]),st.initFromBackend(z,[]),ce(),Gn(null),Re(null),Ge(null)},[Me,Le,ce,Fe,ln,st]);const wi=C.useCallback(J=>{const z=ln(J),ne=Si();return Ut.current=!0,Wn.current=ne,At.current+=1,Ln.current=z,Fe(),v(`Switching to ${z}...`),ne},[Fe,Si,ln]),Xn=C.useRef(!1);C.useLayoutEffect(()=>{Mn.current=Le,Jt.current=Me,gt.current=st,Vt.current=Qe,zi.current=J=>{if(!Me.activeBoardId||Me.activeBoardColumns.length===0)return;const ne=Me.activeBoardColumns.find(oe=>oe.name==="Todo")?.id??Me.activeBoardColumns[0].id;Me.createTask({boardId:Me.activeBoardId,columnId:ne,title:J.title,priority:J.priority,assigneeIds:J.assignee_id?[J.assignee_id]:[]})},Xn.current=!0}),C.useEffect(()=>{Ye.current=q},[q]),C.useEffect(()=>{Ft.current=Z},[Z]),C.useEffect(()=>{const J=r.current,z=ne=>{A(ne),N(oe=>oe+1)};return J.on("agentSelected",z),()=>{J.off("agentSelected",z)}},[]);const Lt=C.useRef(new Map),Nt=C.useRef(null),fn=C.useCallback(J=>{const z=Lt.current;if(z.size===0)return;const ne=J?[J]:Array.from(z.keys());for(const oe of ne){const fe=z.get(oe);if(!fe)continue;z.delete(oe);const Ne=gt.current;fe.draftText&&Ne?.appendDraft(oe,fe.draftText,fe.draftIteration,fe.draftTurnId),Ne?.updateSession(oe,fe.sessionPatch),Object.keys(fe.kanbanPatch).length>0&&Jt.current?.updateTask(oe,fe.kanbanPatch)}z.size===0&&Nt.current!==null&&(window.clearTimeout(Nt.current),Nt.current=null)},[]),Fi=C.useCallback(()=>{Nt.current===null&&(Nt.current=window.setTimeout(()=>{Nt.current=null,fn()},80))},[fn]),mi=C.useRef(null),ql=C.useCallback(()=>{mi.current===null&&(mi.current=window.setTimeout(()=>{mi.current=null,N(J=>J+1)},300))},[]);C.useEffect(()=>{const J=new y3(c,{onSnapshot:z=>{if(!de(z))return;w(z);const ne=z.timeline.slice(-Zj);S(ne);const oe=new Set;for(const Ne of ne)oe.add(Ne.event_id);St.current=oe,r.current.pushSnapshot(z);const fe=Object.entries(z.agents??{});if(fe.length>0){const Ne=Qj(fe.map(([He,ze])=>({...ze&&typeof ze=="object"?ze:{},agent_id:He})),Ye.current);Ye.current=Ne,K(Ne)}z.exec_mode&&te(Ns(z.exec_mode)),z.company_profile&&se(eu(z.company_profile)),z.task_preferred_agent&&ue(Rs(z.task_preferred_agent)),N(Ne=>Ne+1)},onEvent:z=>{try{if(!Dt(z,!1))return;if(St.current.has(z.event_id)){St.current.delete(z.event_id);return}if(S(ne=>[...ne.slice(-Zj+1),z]),r.current.pushEvent(z),z.type==="task_routed"&&z.agent_id){if(Ft.current==="company"||Ft.current==="org")return;const ne=z.data?.task_id;if(ne&&!Jt.current?.tasks.find(oe=>oe.id===ne)){const oe=typeof z.data?.content_preview=="string"?z.data.content_preview.slice(0,80):"Task";zi.current?.({title:oe,priority:null,assignee_id:z.agent_id})}}if(z.type==="task_done"&&z.agent_id&&B(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,oe=typeof ne.task_id=="string"?ne.task_id:"";if(oe){const fe=z.type==="assistant_delta"||z.type==="thinking_delta",Ne=Lt.current.get(oe)?.draftTurnId;fe||fn(oe);const He=gt.current,ze=Jt.current,it=He?.sessions.find(ds=>ds.taskId===oe),wt=typeof ne.work_item_projection_id=="string"?ne.work_item_projection_id:"",en=(typeof ne.execution_mode=="string"?ne.execution_mode:"")==="task_mode"||wt==="task_mode_execution",zt=Lm(ne)||void 0,Vi=!!wt&&wt!=="task_mode_execution"&&!en;Vi&&!fe&&it?.isCompanyRuntime!==!0&&He?.setCompanyRuntime(oe,!0);const Ui={lastRuntimeEventType:z.type,...z.type==="member_inbox_updated"?{}:{updatedAt:Date.now()},...Hx(ne)},Fs=typeof ne.tool_name=="string"?ne.tool_name:void 0,Vs={...Fx(ne),...Fs!==void 0?{currentTool:Fs||void 0}:{},...Fs?{displayTool:Fs}:{}};if(fe){const ds=Lt.current;let ii=ds.get(oe);const Zl=z.type==="assistant_delta"&&typeof ne.text=="string"?ne.text:"";ii&&Zl&&ii.draftText&&ii.draftTurnId!==void 0&&zt!==void 0&&ii.draftTurnId!==zt&&(fn(oe),ii=void 0),ii||(ii={draftText:"",sessionPatch:{},kanbanPatch:{}},ds.set(oe,ii)),Zl&&(ii.draftText+=Zl,ii.draftIteration=typeof ne.iteration=="number"?ne.iteration:ii.draftIteration??it?.draftIteration,zt!==void 0&&(ii.draftTurnId=zt)),ii.sessionPatch={...ii.sessionPatch,...Ui,...Vi?{isCompanyRuntime:!0}:{}},ii.kanbanPatch={...ii.kanbanPatch,...Vs},Fi()}else{const ds=String(Ne??it?.draftTurnId??"").trim(),ii=z.type==="turn_started"&&!!zt&&!!ds&&zt!==ds;(z.type==="turn_failed"||ii)&&He?.clearDraft(oe),He?.updateSession(oe,Ui),ze?.updateTask(oe,Vs)}const yp=en&&oee.has(z.type)||aee.has(z.type);z.type!=="assistant_delta"&&!yp&&mt(oe)}}if(z.type==="agent_removed"&&z.agent_id){const ne=z.agent_id;H3(ne);const oe=Mn.current;oe&&(oe.markSenderDeleted(ne),oe.removeParticipant(ne))}ql()}catch(ne){console.error("[onEvent] Error:",ne,z)}},onAck:z=>{try{if(z.ok===!1){if(z.action==="create_session"&&ce(),_e(z))return;z.action==="session_detail"&&typeof z.task_id=="string"&>.current?.updateSession(z.task_id,{detailLoading:!1,detailError:String(z.error??"request_failed")}),v(String(z.error??"request_failed")),zn(null),Mt(null),Ot(String(z.error??"Request failed"),"error")}if(z.ok&&z.action==="employee_imported"&&Ot("Employee deployed to office!"),z.ok&&z.action==="talent_imported"&&Ot(`Imported ${z.count??0} templates!`),z.ok&&z.action==="talent_hired"&&(Et(null),Ot(`${z.name??"Agent"} hired and added to office!`)),z.ok&&z.action==="architecture_reset"&&(Ae(null),An(null)),z.ok&&z.action==="session_detail"){if(!Dt(z,!1))return;const ne=er(z);if(ne!==null&&ne!==At.current)return;const oe=typeof z.task_id=="string"?z.task_id:"",fe=Array.isArray(z.messages)?z.messages.map(Uf):[],Ne=typeof z.message_count=="number"?z.message_count:fe.length,He=z.detail_level==="full"?"full":"summary",ze=Mn.current;ze&&fe.length>0&&ze.mergeMessagesFromBackend(fe);const it=gt.current;if(it&&oe){const wt=it.sessions.find(Vs=>Vs.taskId===oe),yt=He==="full"?wt?.fullHasMore:wt?.summaryHasMore,en=FJ(yt,z.has_more===!0,z.client_history_page===!0),zt=String(wt?.draftTurnId??"").trim();zt&&ze&&fe.some(Vs=>Wf(Vs)===zt)&&it.clearDraft(oe);const Ui=z.session_state,Fs=Ui&&typeof Ui=="object"?vA(Ui):null;it.updateSession(oe,{...Fs??{},...typeof z.handoff_context=="string"?{handoffContext:z.handoff_context}:{},...typeof z.handoff_to=="string"?{handoffTo:z.handoff_to}:{},messageCount:Ne,detailLoaded:!0,...He==="full"?{fullLoaded:!en}:{},hasMore:en,...He==="full"?{fullHasMore:en}:{summaryHasMore:en},detailLoading:!1,detailError:void 0,viewGeneration:ne??At.current})}}if(Array.isArray(z.agents)){const ne=Qj(z.agents,Ye.current);Ye.current=ne,K(ne);for(const oe of ne)r.current.ensureAgent(oe.agent_id,oe.name,oe.office_id,oe.appearance?.palette,oe.appearance?.desk_id);N(oe=>oe+1)}if(z.ok&&(z.agent_id||z.deleted)&&(z.deleted&&(zn(null),Mt(null),Ot("Agent removed")),z.agent_id&&!z.deleted&&Ot("Agent created!"),o.current?.listAgents()),z.ok&&Array.isArray(z.projects)){const ne=Vt.current;if(ne){const oe=Xe(),fe=!In.current,Ne=!In.current&&!Ut.current,He=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():"",it=Ne?ln(ze||He||dn.current):ze?ln(ze):Xe();if(ze&&(Ut.current=!0),In.current=!0,dn.current=it,ne.initFromBackend(z.projects,it),it!==oe||fe){const wt=Si();Wn.current=wt,Ln.current=it,At.current+=1,v(`Switching to ${it}...`),o.current?.switchProject(it,wt)}}}if(z.ok&&Array.isArray(z.channels)){if(!de(z))return;const ne=Kj(z),oe=rn(z);if(!oe)return;const fe=Ln.current===oe||Xe()!==oe;dn.current=oe,Ln.current=null,Vt.current?.setActiveProject(oe),fe&&(Fe(),Gn(null),Re(null),Ge(null)),v("");const Ne=Mn.current;Ne&&Ne.initFromBackend(oe,ne.channels,ne.messages);const He=Jt.current;He&&He.initFromBackend(oe,ne.boards,ne.columns,ne.tasks);const ze=gt.current;if(ze){ze.initFromBackend(oe,ne.sessions);const it=ze.activeSessionId;it&&mt(it,"full",!0)}}}catch(ne){console.error("[onAck] Error:",ne)}},onStatus:(z,ne)=>{if(g(z),v(ne??""),z==="connected"){const oe=Xe();J.listProjects(),J.orgInfo(),J.orgSavedList(),J.collabSync(oe,void 0,At.current)}},onCollabMessage:(z,ne)=>{try{if(z==="project_index_push"){if(!de(ne))return}else if(!Dt(ne,!1))return;const oe=Mn.current;if(z==="chat_new_message")oe&&oe.addMessageFromBackend(Uf(ne));else if(z==="chat_channel_created")oe&&oe.addChannelFromBackend(mA(ne));else if(z==="session_runtime_control"){const fe=gt.current;if(fe){const Ne=Array.isArray(ne.task_ids)?ne.task_ids.map(String).filter(Boolean):[],He={runtimeControlState:String(ne.runtime_control_state??ne.runtimeControlState??"idle"),canStop:!!(ne.can_stop??ne.canStop),canResume:!!(ne.can_resume??ne.canResume),resumeParentSessionId:String(ne.resume_parent_session_id??ne.resumeParentSessionId??""),pendingRuntimeCheckpointId:String(ne.pending_runtime_checkpoint_id??ne.pendingRuntimeCheckpointId??""),stopIntentId:String(ne.stop_intent_id??ne.stopIntentId??"")};for(const ze of Ne)fe.updateSession(ze,He)}}else if(z==="board_task_status_changed"){const fe=String(ne.task_id??""),Ne=String(ne.column_id??""),He=String(ne.status??""),ze=["done","failed","cancelled"].includes(He);if(fe&&Ne){const it=Jt.current;if(it){const yt=it.tasks.find(en=>en.id===fe);if(yt){const en={};yt.columnId!==Ne&&it.moveTask(fe,Ne,0),He==="running"?(!yt.agentStatus||yt.agentStatus==="idle")&&(en.agentStatus="reflecting"):(yt.agentStatus||yt.currentTool||yt.displayTool)&&(en.agentStatus=void 0,en.currentTool=void 0,en.displayTool=void 0),Object.keys(en).length>0&&it.updateTask(fe,en)}}const wt=gt.current;if(wt){const yt=wt.sessions.find(zt=>zt.taskId===fe),en={columnId:Ne,status:He||Ne};He==="running"?(!yt?.agentStatus||yt.agentStatus==="idle")&&(en.agentStatus="reflecting"):(yt?.agentStatus||yt?.currentTool||yt?.displayTool||ze)&&(en.agentStatus=void 0,en.currentTool=void 0,en.displayTool=void 0),Object.assign(en,J4(yt,He)),wt.updateSession(fe,{...en})}}}else if(z==="execution_mode_resolved"){const fe=String(ne.mode??""),Ne=String(ne.profile??"");if(fe){const He=Ns(fe);te(He),se(He==="org"?"custom":He==="company"?eu(Ne):"corporate")}else Ne&&se(eu(Ne))}else if(z==="project_run_updated"||z==="seat_digest_updated"||z==="work_item_batch_updated")o.current?.collabSync(Xe(),void 0,At.current);else if(z==="collab_sync_push"||z==="project_index_push"){const fe=String(ne.sync_scope??ne.syncScope??"").toLowerCase(),Ne=z==="project_index_push"||fe==="index";if(!de(ne))return;const He=Kj(ne),ze=rn(ne);if(!ze)return;const it=Ln.current===ze||Xe()!==ze;if(dn.current=ze,Ln.current=null,Vt.current?.setActiveProject(ze),it&&(Fe(),Gn(null),Re(null),Ge(null)),v(""),Ne){const zt=gt.current;zt&&zt.initFromBackend(ze,He.sessions,{preserveExistingWhenIncomingPartial:!0,preserveActiveWhenMissing:!0}),o.current?.collabSync(ze,void 0,At.current);return}const wt=Mn.current;wt&&wt.initFromBackend(ze,He.channels,He.messages);const yt=Jt.current;yt&&yt.initFromBackend(ze,He.boards,He.columns,He.tasks);const en=gt.current;if(en){en.initFromBackend(ze,He.sessions);const zt=en.activeSessionId;zt&&mt(zt,"full",!0)}}}catch(oe){console.error("[onCollabMessage] Error:",oe)}},onAgentRuntimeUpdate:z=>{if(!Dt(z,!1))return;z.agent_id&&K(oe=>{const fe=oe.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 Ye.current=fe,fe});const ne=Jt.current;if(ne&&z.task_id){const oe=z,fe=Fx(oe),Ne=Hx(oe);if(Tf(oe,"current_tool")){const ze=typeof oe.current_tool=="string"&&oe.current_tool.trim()?oe.current_tool:void 0;fe.currentTool=ze,Ne.currentTool=ze,ze&&(fe.displayTool=ze,Ne.displayTool=ze)}if(Tf(oe,"display_tool")){const ze=typeof oe.display_tool=="string"&&oe.display_tool.trim()?oe.display_tool:void 0;ze&&(fe.displayTool=ze,Ne.displayTool=ze)}if(eE(z.status)&&(fe.displayTool=void 0,Ne.displayTool=void 0),Tf(oe,"tool_elapsed_ms")){const ze=typeof oe.tool_elapsed_ms=="number"?oe.tool_elapsed_ms:void 0;fe.toolElapsedMs=ze,Ne.toolElapsedMs=ze}if(Tf(oe,"last_tool_summary")){const ze=typeof oe.last_tool_summary=="string"?oe.last_tool_summary:void 0;fe.lastToolSummary=ze,Ne.lastToolSummary=ze}typeof z.iteration=="number"&&(fe.iterationCount=z.iteration),ne.updateTask(z.task_id,{agentStatus:z.status,...fe});const He=gt.current;He&&He.updateSession(z.task_id,{agentStatus:z.status,...Ne,updatedAt:Date.now()}),mt(z.task_id)}},onRuntimeStatusSync:z=>{if(!Dt(z,!1))return;const ne=gt.current,oe=Jt.current;if(ne)for(const fe of z.sessions??[]){const Ne=String(fe.task_id??"").trim();if(!Ne)continue;const He=ne.sessions.find(yt=>yt.taskId===Ne);if(!He)continue;const ze=String(fe.status??"").trim(),it={};ze&&ze!==He.status&&(it.status=ze);const wt=typeof fe.agent_status=="string"?fe.agent_status.trim():"";if(wt==="idle"||wt==="reflecting"||wt==="tool_active"){wt!==He.agentStatus&&(it.agentStatus=wt);const yt=typeof fe.current_tool=="string"&&fe.current_tool.trim()?fe.current_tool:void 0;yt!==He.currentTool&&(it.currentTool=yt),eE(wt)&&He.displayTool!==void 0&&(it.displayTool=void 0)}else{const yt=He.runtimeControlState==="running"||He.runtimeControlState==="suspending"||He.runtimeControlState==="resuming";ze&&ze!=="running"&&!yt&&(He.agentStatus!==void 0&&(it.agentStatus=void 0),He.currentTool!==void 0&&(it.currentTool=void 0),He.displayTool!==void 0&&(it.displayTool=void 0))}if(Object.keys(it).length!==0&&(ne.updateSession(Ne,it),oe&&("agentStatus"in it||"currentTool"in it||"displayTool"in it))){const yt={};"agentStatus"in it&&(yt.agentStatus=it.agentStatus),"currentTool"in it&&(yt.currentTool=it.currentTool),"displayTool"in it&&(yt.displayTool=it.displayTool),oe.updateTask(Ne,yt)}}},onWorkerNotification:z=>{if(!Dt(z,!1))return;const ne=z,oe=typeof z.task_id=="string"?z.task_id:"";if(!oe)return;const fe=ne;gt.current?.updateSession(oe,{...Hx(ne),latestNotification:fe,updatedAt:Date.now()}),Jt.current?.updateTask(oe,{...Fx(ne),latestNotification:fe}),mt(oe)},onKanbanViewData:z=>{if(!Dt(z,!1))return;const ne=Jt.current;ne&&ne.initFromBackend(rn(z)||Xe(),(z.boards??[]).map(pA),(z.columns??[]).map(hA),(z.tasks??[]).map(gA))},onSessionProgress:z=>{if(!Dt(z,!1))return;const ne=gt.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 oe=String(z.entry.summary??"").trim();ne.updateSession(z.task_id,{...oe?{currentTool:oe,displayTool:oe}:{},updatedAt:z.entry.timestamp*1e3})}z.entry.type!=="thinking"&&z.entry.type!=="verification"&&mt(z.task_id)}},onBoardEvent:z=>{if(!Dt(z,!1))return;const ne=Jt.current;if(!ne)return;const oe=String(z.task_id??"");if(!oe)return;const fe=gt.current;if(fe&&fe.sessions.find(Vi=>Vi.taskId===oe)?.mode==="child")return;const Ne=Array.isArray(z.assignee_ids)?z.assignee_ids.map(String):[],He=$x(z);if(ne.tasks.find(zt=>zt.id===oe)){const zt={};z.title&&(zt.title=String(z.title)),z.display_id&&(zt.displayId=String(z.display_id)),Ne.length>0&&(zt.assigneeIds=Ne),Object.assign(zt,He),Object.keys(zt).length>0&&ne.updateTask(oe,zt);return}const it=String(z.board_id??ne.activeBoardId??"default"),wt=ne.columns.filter(zt=>zt.boardId===it),en=wt.find(zt=>zt.name==="Todo")?.id??wt[0]?.id??"";en&&(ne.createTask({boardId:it,columnId:en,title:String(z.title??"Untitled"),taskId:oe,displayId:z.display_id?String(z.display_id):void 0,assigneeIds:Ne}),Object.keys(He).length>0&&ne.updateTask(oe,He))},onSessionCreated:z=>{try{if(!Dt(z,!1))return;const ne=gt.current;if(!ne)return;const oe=String(z.task_id??"");if(!oe)return;const fe=rn(z);if(!fe)return;const Ne=oe?ne.sessions.find(zt=>zt.taskId===oe):void 0,He=$x(z),ze=Ns(z.exec_mode??Ne?.execMode),it=Bx(ze,z.company_profile??Ne?.companyProfile),wt=Jo(ze,z.org_id??z.organization_id??Ne?.orgId);ze==="org"&&wt&&Ae(wt),ne.createSession({projectId:fe,taskId:oe,channelId:z.channel_id,sessionId:z.session_id,parentSessionId:z.parent_session_id,originTaskId:z.origin_task_id??Ne?.originTaskId??oe,mode:z.parent_session_id?"child":"primary",execMode:ze,companyProfile:it,orgId:wt,preferredAgent:Rs(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,...He});const yt=Jt.current;if(yt&&ze==="task"&&!z.parent_session_id&&oe&&!yt.tasks.find(zt=>zt.id===oe)&&yt.activeBoardId){const Vi=yt.columns.filter(Ui=>Ui.boardId===yt.activeBoardId).find(Ui=>Ui.name==="Todo");Vi&&yt.createTask({boardId:yt.activeBoardId,columnId:Vi.id,title:z.title,taskId:oe,assigneeIds:Ne?.assigneeIds??[]})}if(Te.current){if(kt.current!==fe)return;ce(),ne.setActiveSession(z.task_id),mt(z.task_id,"full",!0)}}catch(ne){console.error("[onSessionCreated] Error:",ne)}},onSessionUpdated:z=>{try{if(!Dt(z,!1))return;const ne=gt.current;if(!ne||!z.task_id)return;const oe=Ns(z.exec_mode??ne.sessions.find(fe=>fe.taskId===z.task_id)?.execMode);ne.updateSession(z.task_id,{...z.exec_mode?{execMode:oe}:{},...z.exec_mode||z.company_profile?{companyProfile:Bx(oe,z.company_profile)}:{},..."org_id"in z||"organization_id"in z?{orgId:Jo(oe,z.org_id??z.organization_id)}:{},...z.preferred_agent?{preferredAgent:Rs(z.preferred_agent)}:{},...z.selected_execution_agent?{selectedExecutionAgent:Rs(z.selected_execution_agent)}:{}}),(z.exec_mode==="org"||z.exec_mode==="custom")&&(z.org_id||z.organization_id)&&Ae(String(z.org_id??z.organization_id))}catch(ne){console.error("[onSessionUpdated] Error:",ne)}},onSessionMessage:z=>{try{if(!Dt(z,!1))return;const ne=Mn.current;if(!ne)return;const oe=Uf(z);console.debug("[onSessionMessage]",oe.sender,oe.channelId,oe.content?.slice(0,60)),ne.addMessageFromBackend(oe);const fe=oe.channelId.startsWith("session:")?oe.channelId.slice(8):"",Ne=Wf(oe),He=String(gt.current?.sessions.find(ze=>ze.taskId===fe)?.draftTurnId??"").trim();fe&&oe.sender!=="user"&&(Ne&&Ne===He&>.current?.clearDraft(fe),mt(fe,"full",!0))}catch(ne){console.error("[onSessionMessage] Error:",ne)}},onSessionTitleUpdated:z=>{try{if(!Dt(z,!1))return;const ne=gt.current;ne&&ne.updateSession(z.task_id,{title:z.title});const oe=Jt.current;if(oe){const Ne=ne?.sessions.find(ze=>ze.taskId===z.task_id)?.originTaskId??z.task_id,He=oe.boards.find(ze=>ze.id===Ne);He&&He.name!==z.title&&oe.updateBoardName(Ne,z.title)}}catch(ne){console.error("[onSessionTitleUpdated] Error:",ne)}},onSessionDeleted:z=>{try{if(!Dt(z,!1))return;const ne=gt.current;if(!ne)return;ne.activeSessionId===z.task_id&&ne.setActiveSession(null),ne.deleteSession(z.task_id);const oe=Jt.current;oe&&oe.deleteTask(z.task_id);const fe=Mn.current;fe&&fe.removeSessionData(z.task_id)}catch(ne){console.error("[onSessionDeleted] Error:",ne)}},onProjectSwitched:z=>{if(!de(z))return;const ne=typeof z.project_id=="string"?z.project_id.trim():"";ne&&(Ln.current=ne,v(`Switching to ${ne}...`))},onProjectDeleted:z=>{const ne=Vt.current;ne&&ne.removeProject(z.project_id)},onOrgInfo:z=>{const ne=ON(z);je(ne),An(oe=>oe===null?ne?.org_version??0:oe),(z?.project_run?.execution_model==="multi_team_org"||Array.isArray(z?.work_items)&&z.work_items.length>0)&&o.current?.collabSync(Xe(),void 0,At.current)},onCommsState:z=>{Dt(z,!1)&&Re(z)},onCommsMessage:z=>{Dt(z,!0)&&Ge(z)},onTalentList:z=>{_t(z.templates??[]),z.talent_dir&&Ht(z.talent_dir)},onEmployeeDetail:z=>{he(z)},onReorgList:z=>{ut(z.proposals??[])},onOrgConfigExport:z=>{Pe(z.yaml??"")},onOrgConfigImport:z=>{z.ok?(dt(z.preview??null),be(null),z.dry_run||(Ae(null),An(null))):(be(z.error??"Import failed"),dt(null))},onOrgSavedList:z=>{et(z.orgs??[]),"active_name"in z&&Ae(z.active_name??null)},onOrgSavedSaveAs:z=>{z.ok?(o.current?.orgSavedList(),Ae(z.name),An(null),bt({kind:"ok",text:`Saved "${z.name}"`})):bt({kind:"error",text:`Save failed: ${z.error??"unknown"}`})},onOrgSavedCreate:z=>{if(ft(!1),Nn({...z,nonce:Date.now()}),z.ok){const ne=z.organization_id||z.name;Ae(ne),te("org"),se("custom"),o.current?.orgSavedList(),o.current?.orgInfo(),An(null),bt({kind:"ok",text:`Created "${z.organization_name||ne}"`})}else bt({kind:"error",text:`Create failed: ${z.error??"unknown"}`})},onOrgSavedLoad:z=>{z.ok?(Ae(z.name),te("org"),se("custom"),o.current?.orgSavedList(),An(null),bt({kind:"ok",text:`Loaded "${z.name}"`})):bt({kind:"error",text:`Load failed: ${z.error??"unknown"}`})},onOrgSavedDelete:z=>{z.ok?(o.current?.orgSavedList(),Ae(ne=>ne===z.name?(An(null),null):ne),bt({kind:"ok",text:`Deleted "${z.name}"`})):bt({kind:"error",text:`Delete failed: ${z.error??"unknown"}`})},onMarketBrowse:z=>{Ke(z.presets??[])},onMarketPreview:z=>{Se(z)},onChildSessionCreated:z=>{if(!Dt(z,!1))return;const ne=gt.current;if(!ne)return;const oe=$x(z),fe=rn(z);if(fe&&(ne.createSession({projectId:fe,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:[],...oe}),z.parent_session_id)){const Ne=ne.sessions.find(He=>He.sessionId===z.parent_session_id||He.taskId===z.parent_session_id);Ne&&!Ne.isCompanyRuntime&&ne.setCompanyRuntime(Ne.taskId,!0)}},onWorkItemProgress:z=>{if(!Dt(z,!1))return;const ne=gt.current;if(!ne||!z.task_id||!z.entry)return;const oe=typeof z.entry.work_item_projection_id=="string"?z.entry.work_item_projection_id:"",fe=oe&&oe!=="company_runtime"?oe: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,He=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,...fe?{workItemProjectionId:fe}:{}});const ze=Jt.current;ze&&fe&&ze.updateTask(z.task_id,{workItemProjectionId:fe}),ne.appendWorkItemProgress(z.task_id,{timestamp:z.entry.timestamp*1e3,type:z.entry.type,workItemProjectionId:fe,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:He,roleName:z.entry.role_name,detail:z.entry.detail})}});return o.current=J,J.connect(),()=>{J.disconnect();for(const z of Vn.current)clearTimeout(z);Vn.current.clear();for(const z of Un.current.values())clearTimeout(z);Un.current.clear(),Nt.current!==null&&(window.clearTimeout(Nt.current),Nt.current=null),Lt.current.clear(),mi.current!==null&&(window.clearTimeout(mi.current),mi.current=null)}},[c]),C.useEffect(()=>{const J=()=>{if(typeof document<"u"&&document.visibilityState==="hidden")return;const ne=Date.now();ne-Yn.current<1500||(Yn.current=ne,o.current?.collabSync(Xe(),void 0,At.current))},z=()=>{document.visibilityState==="visible"&&J()};return window.addEventListener("focus",J),document.addEventListener("visibilitychange",z),()=>{window.removeEventListener("focus",J),document.removeEventListener("visibilitychange",z)}},[Xe]),C.useEffect(()=>{if(!Rt)return;const J=setTimeout(()=>bt(null),3e3);return()=>clearTimeout(J)},[Rt]);const ga=C.useCallback(()=>{o.current?.orgSavedList()},[]),zs=C.useCallback((J,z)=>{o.current?.orgSavedSaveAs(J,z)},[]),Ps=C.useCallback((J,z)=>{ft(!0),Nn(null),o.current?.orgSavedCreate(J,z)},[]),Wl=C.useCallback(J=>{o.current?.orgSavedLoad(J)},[]),Yl=C.useCallback(J=>{o.current?.orgSavedDelete(J)},[]),Zu=C.useCallback(()=>{te("company"),se("corporate"),An(null),o.current?.setExecutionMode("company","corporate",ae),o.current?.orgInfo()},[ae]);C.useEffect(()=>{if(!Q)return;const J=Q;r.current.setAgentBubble(J,"Done!");const z=setTimeout(()=>{Vn.current.delete(z),r.current.setAgentBubble(J,null)},3e3);Vn.current.add(z),B(null)},[Q]),C.useCallback((J,z,ne)=>{const oe=Me.tasks.find(fe=>fe.id===J);for(const fe of z)r.current.sendToSeat(fe),r.current.setAgentActive(fe,!0),r.current.setAgentBubble(fe,`Task: ${ne.slice(0,22)}`),o.current?.assignTaskToAgent(Xe(),J,fe,ne);if(oe){const fe=z.map(Ne=>q.find(He=>He.agent_id===Ne)?.name??Ne);PJ(Le,oe,fe)}N(fe=>fe+1)},[Me.tasks,Le,q,Xe]);const Bs=C.useMemo(()=>{const J=b?Object.keys(b.agents).length:0,z=b?.skills.total??0;return{totalAgents:J,totalSkills:z}},[b]),xi=C.useMemo(()=>{const J=r.current.getCharacterCards();return(T?J:J.filter(ne=>!ne.isSubagent)).slice().sort((ne,oe)=>ne.displayName.localeCompare(oe.displayName))},[T,j]),$s=C.useMemo(()=>Jn(),[j]),Eo=C.useMemo(()=>{const J={};for(const z of xi)z.officeId&&(J[z.id]=z.officeId);return J},[xi]),[Gr,No]=C.useState(null),[Hs,Xl]=C.useState(""),Io=J=>{Hs.trim()&&(r.current.renameOffice(J,Hs.trim()),N(z=>z+1)),No(null)},To=(J,z)=>{r.current.assignAgentToOffice(z,J),o.current?.moveAgent(z,J),N(ne=>ne+1)},Qu=(J,z)=>{r.current.changeAgentSeat(J,z),N(ne=>ne+1)},gn=xi.find(J=>J.id===L)??null,us=C.useMemo(()=>gn?r.current.getSeatsForOffice(gn.officeId):[],[gn?.officeId,j]),Ro=C.useMemo(()=>{const J=k.slice(-40);return{trace:J.some(z=>z.type==="tool_start"||z.type==="tool_done"),reflect:J.some(z=>z.type==="reflect_start"||z.type==="reflect_done"),synthesize:J.some(z=>z.type==="skill_synthesized")}},[k]),Ao=C.useMemo(()=>["all",...Array.from(new Set(k.map(z=>z.type)))],[k]),mp=C.useMemo(()=>(P==="all"?k:k.filter(z=>z.type===P)).slice().reverse(),[P,k]),Kl=()=>{const J=m.trim();!J||J===c||d(J)},Mo=C.useCallback(J=>{A(J),N(z=>z+1)},[]),Do=C.useCallback((J,z,ne,oe)=>{const fe=st.sessions.find(Ui=>Ui.taskId===J),Ne=Ns(z),He=eu(fe?.companyProfile??ee),ze=Ne==="org"?"custom":"corporate",it=String(fe?.orgId??Ue??"").trim(),wt=Jo(Ne,oe??fe?.orgId??Ue),yt=Ns(fe?.execMode),en=eu(ee);if(yt===Ne&&He===ze&&it===String(wt??"").trim()&&Z===Ne&&en===ze)return;st.updateSession(J,{execMode:Ne,companyProfile:ze,orgId:wt,preferredAgent:fe?.preferredAgent??ae}),te(Ne),se(ze),Ne==="org"&&wt&&Ae(wt);const zt=fe?.preferredAgent??ae,Vi=Ne==="task"?void 0:ze;o.current?.sessionUpdateConfig(Xe(),J,Ne,Vi,zt,wt),o.current?.setExecutionMode(Ne,Vi,zt,wt)},[st,Z,ee,ae,Ue,Xe]),ya=C.useCallback((J,z)=>{const ne=st.sessions.find(it=>it.taskId===J),oe=Rs(z),fe=Ns(ne?.execMode),Ne=fe==="org"?"custom":"corporate";st.updateSession(J,{preferredAgent:oe,selectedExecutionAgent:oe}),ue(oe);const He=fe==="task"?void 0:Ne,ze=Jo(fe,ne?.orgId??Ue);o.current?.sessionUpdateConfig(Xe(),J,fe,He,oe,ze),o.current?.setExecutionMode(fe,He,oe,ze)},[st,ee,Ue,Xe]),Ju=C.useCallback((J,z,ne)=>{if(Ln.current||Te.current)return;const oe=Xe();ke(oe);const fe=Ns(J),Ne=fe==="org"?"custom":fe==="company"?"corporate":void 0;o.current?.createSession(oe,void 0,fe,Ne,ae,Jo(fe,ne??Ue)),G("workspace")},[Xe,ke,ae,Ue]),xa=C.useCallback((J,z)=>{const ne=st.sessions.find(fe=>fe.taskId===J),oe=ne?.resumeParentSessionId??ne?.parentSessionId??ne?.sessionId;for(const fe of st.sessions)(fe.taskId===J||oe&&(fe.parentSessionId===oe||fe.sessionId===oe))&&st.updateSession(fe.taskId,{...z,resumeParentSessionId:oe})},[st]),pp=C.useCallback(J=>{const z=st.sessions.find(oe=>oe.taskId===J);(z?.execMode==="company"||z?.execMode==="org"||z?.execMode==="custom"||z?.isCompanyRuntime||z?.parentSessionId||z?.companyProfile)&&xa(J,{runtimeControlState:"suspending",canStop:!1,canResume:!1}),o.current?.sessionStop(Xe(),J)},[st.sessions,xa,Xe]),hp=C.useCallback((J,z,ne)=>{const oe=st.sessions.find(Ne=>Ne.taskId===J);(oe?.execMode==="company"||oe?.execMode==="org"||oe?.execMode==="custom"||oe?.isCompanyRuntime||oe?.parentSessionId||oe?.companyProfile)&&xa(J,{runtimeControlState:"resuming",canStop:!1,canResume:!1}),o.current?.sessionResume(Xe(),J,z??oe?.resumeParentSessionId??oe?.parentSessionId??oe?.sessionId,ne??oe?.pendingRuntimeCheckpointId)},[st.sessions,xa,Xe]);C.useCallback((J,z,ne)=>{const oe=Ns(J),fe=oe==="org"?"custom":"corporate",Ne=Jo(oe,ne??Ue);te(oe),se(fe),Ne&&Ae(Ne),o.current?.setExecutionMode(oe,oe==="task"?void 0:fe,ae,Ne)},[ee,ae,Ue]);const qr=Z==="org",gp=Z==="task"?"task":Z==="org"?`company/${Ue??"org"}`:`company/${ee}`;return u.jsxs("div",{className:`app-shell theme-${D}`,children:[Rt&&u.jsx("div",{className:`org-toast org-toast--${Rt.kind}`,role:"status","aria-live":"polite",children:Rt.text}),u.jsxs("header",{className:"topbar",children:[u.jsxs("div",{className:"topbar-left",children:[u.jsxs("span",{className:"logo-text",children:["Open",u.jsx("span",{className:"logo-accent",children:"OPC"})]}),u.jsx("div",{className:`conn-dot ${cee(p)}`,title:`${p}${x?` — ${x}`:""} +${c}`}),u.jsx(pU,{projects:Qe.projects,activeId:Qe.activeProjectId,onSelect:J=>{const z=wi(J);o.current?.switchProject(J,z)},onCreate:J=>{o.current?.createProject(J)},onDelete:J=>o.current?.deleteProject(J)})]}),u.jsxs("div",{className:"topbar-center",children:[u.jsxs("div",{className:"page-nav",children:[u.jsxs("button",{className:`page-nav-btn${$==="workspace"?" active":""}`,onClick:()=>G("workspace"),children:[n("app.page.workspace"),(()=>{const J=Le.channels.reduce((z,ne)=>z+Le.getUnreadCount(ne.id),0);return J>0?u.jsx("span",{className:"nav-unread-badge",children:J>99?"99+":J}):null})()]}),u.jsx("button",{className:`page-nav-btn${$==="office"?" active":""}`,onClick:()=>G("office"),children:n("app.page.office")}),u.jsx("button",{className:`page-nav-btn${$==="org"?" active":""}`,onClick:()=>G("org"),children:n("app.page.org")})]}),u.jsxs("div",{className:"stat-chips",children:[u.jsxs("span",{className:"stat-chip",children:[u.jsx("b",{children:Bs.totalAgents})," ",n("app.metric.agents")]}),u.jsxs("span",{className:"stat-chip",children:[u.jsx("b",{children:Bs.totalSkills})," ",n("app.metric.skills")]}),u.jsxs("span",{className:"stat-chip",children:[u.jsx("b",{children:Me.getOpenTaskCount()})," ",n("app.metric.tasks")]})]})]}),u.jsxs("div",{className:"topbar-right",children:[u.jsxs("div",{className:"language-toggle",role:"group","aria-label":n("language.label"),title:n("language.label"),children:[u.jsx("button",{type:"button","data-locale":"en","aria-pressed":e==="en",className:`language-toggle-btn${e==="en"?" active":""}`,onClick:()=>t("en"),children:n("language.english")}),u.jsx("button",{type:"button","data-locale":"zh-CN","aria-pressed":e==="zh-CN",className:`language-toggle-btn${e==="zh-CN"?" active":""}`,onClick:()=>t("zh-CN"),children:n("language.chinese")})]}),u.jsxs("select",{className:"theme-select",value:yi,title:n("outdoor.title"),"aria-label":n("outdoor.title"),onChange:J=>{const z=J.target.value;_n(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{}r.current.syncOutdoorLighting()},children:[u.jsx("option",{value:"auto",children:n("outdoor.auto")}),u.jsx("option",{value:"day",children:n("outdoor.day")}),u.jsx("option",{value:"night",children:n("outdoor.night")})]}),u.jsxs("select",{className:"theme-select",value:D,onChange:J=>O(J.target.value),children:[u.jsx("option",{value:"midnight",children:n("theme.midnight")}),u.jsx("option",{value:"neon",children:n("theme.neon")}),u.jsx("option",{value:"paper",children:n("theme.paper")}),u.jsx("option",{value:"retro",children:n("theme.retro")}),u.jsx("option",{value:"terminal",children:n("theme.terminal")}),u.jsx("option",{value:"cozy",children:n("theme.cozy")}),u.jsx("option",{value:"openopc",children:n("theme.openopc")})]}),u.jsx("button",{className:`icon-btn ${W?"active":""}`,onClick:()=>V(J=>!J),title:n("dev.tools"),"aria-label":n("dev.tools"),children:u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:[u.jsx("path",{d:"M5.5 2L2 5.5 5.5 9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M10.5 7L14 10.5 10.5 14",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})})]})]}),$==="workspace"&&u.jsx(LV,{boardStore:Me,chatStore:Le,sessionStore:st,agents:q,officeMap:Eo,execMode:Z,companyProfile:ee,taskPreferredAgent:ae,projectId:Qe.activeProjectId,orgInfoData:ie,onNavigateToOrg:()=>G("org"),savedOrgsList:We,activeSavedOrg:Ue,onSavedOrgsList:ga,onSavedOrgLoad:Wl,commsState:we,commsMessage:Ve,onCommsRefresh:J=>{const{project_id:z,...ne}=J??{};o.current?.commsState(Xe(),ne)},onCommsReadMessage:J=>o.current?.commsReadMessage(Xe(),J),onRunTask:(J,z,ne,oe,fe)=>{o.current?.send({type:"run_task",project_id:Xe(),task_id:J,title:z,description:ne,mode:oe,profile:fe})},onCreateTask:(J,z,ne,oe)=>{o.current?.send({type:"kanban_create_task",project_id:Xe(),title:J,board_id:z,column_id:ne,task_id:oe})},onMoveTask:(J,z)=>{o.current?.send({type:"kanban_move_task",project_id:Xe(),task_id:J,column_id:z})},onCreateSession:()=>{if(Ln.current||Te.current)return;const J=Xe();ke(J),o.current?.createSession(J,void 0,Z,Bx(Z),ae,Jo(Z,Ue))},onSessionSend:(J,z,ne,oe)=>o.current?.sessionSend(Xe(),J,z,ne,oe),onSecretarySend:J=>o.current?.secretarySend(Xe(),J),onDeleteSession:J=>o.current?.deleteSession(Xe(),J),onTitleChange:(J,z)=>o.current?.sessionUpdateTitle(Xe(),J,z),onSessionConfigChange:Do,onSessionTaskAgentChange:ya,onContinueInNewChat:Ju,onSessionStop:pp,onSessionResume:hp,onSessionComplete:J=>o.current?.sessionComplete(Xe(),J),onLoadSessionDetail:(J,z)=>{const ne=o.current;if(ne)return ne.sessionDetail(Xe(),J,{...z,include:z?.detailLevel==="full"?["messages","session_state","progress","work_items","runtime_context"]:["messages","session_state"],viewGeneration:At.current}).then(oe=>{if(oe.ok===!1)throw new Error(String(oe.error??"session_detail failed"))})},onOpenExecutionPanel:J=>Gn(J),onCollabSync:()=>o.current?.collabSync(Xe(),void 0,At.current)}),$==="org"&&u.jsx("div",{className:"org-page",children:u.jsx(zJ,{data:ie,sessionRecruitmentByRole:Cn,talents:qe,employeeDetail:Gt,reorgProposals:$e,isCustomMode:qr,onRequestData:()=>o.current?.orgInfo(),onRequestTalents:()=>o.current?.talentList(),onRequestEmployeeDetail:J=>o.current?.employeeDetail(J),onHireTalent:(J,z)=>{Et(J),o.current?.talentHire(J,z,void 0,ie?.organization_id||Ue||void 0)},hiringTemplateId:Tn,onImportEmployee:J=>o.current?.importEmployeeAsAgent(J),onRequestReorgList:()=>o.current?.reorgList(),onReorgDecide:(J,z,ne)=>o.current?.reorgDecide(J,z,ne),onMarketExport:J=>o.current?.marketExport(J),onMarketInstall:(J,z)=>o.current?.marketInstall(J,z),onMarketUninstall:J=>o.current?.marketUninstall(J),marketPresets:nt,marketPreviewData:pe,onMarketBrowse:()=>o.current?.marketBrowse(),onMarketPreview:J=>o.current?.marketPreview(J),onMarketApplyPreset:(J,z)=>o.current?.marketApplyPreset(J,z),onMarketClearPreview:()=>Se(null),onAddRole:(J,z,ne,oe,fe)=>o.current?.addRole(J,z,ne,oe,fe),onBulkAddRoles:J=>o.current?.bulkAddRoles(J),onUpdateRole:(J,z)=>o.current?.updateRole(J,z),onDeleteRole:J=>o.current?.deleteRole(J),onUpdateOrgStrategy:J=>o.current?.updateOrgStrategy(J),onUpdateRuntimePolicy:J=>o.current?.updateRuntimePolicy(J),onResetArchitecture:()=>o.current?.resetArchitecture(),onConfigExport:()=>o.current?.orgConfigExport(),onConfigImport:(J,z)=>o.current?.orgConfigImport(J,z),configExportYaml:De,configImportPreview:Je,configImportError:nn,onSavedOrgsList:ga,onSavedOrgSaveAs:zs,onSavedOrgCreate:Ps,onSavedOrgLoad:Wl,onSavedOrgDelete:Yl,savedOrgsList:We,activeSavedOrg:Ue,activeSavedOrgVersionAtLoad:jt,orgCreatePending:qn,orgCreateResult:bn,onSelectCorporate:Zu})}),$==="mapEditor"&&u.jsx("div",{className:"editor-page",children:u.jsx(m4,{bridge:r.current})}),u.jsxs("main",{className:`main-grid${$!=="office"?" hidden":""}${I?" sidebar-collapsed":""}`,children:[u.jsxs("section",{className:"canvas-wrap",children:[u.jsx(u4,{bridge:r.current,active:$==="office"}),u.jsx("button",{className:"canvas-float-btn",onClick:()=>M(J=>!J),title:n(T?"office.hideSubagents":"office.showSubagents"),children:T?"👥":"👤"}),u.jsx("button",{className:"sidebar-collapse-btn",onClick:Y,title:n(I?"office.showSidePanel":"office.hideSidePanel"),"aria-label":n(I?"office.showSidePanel":"office.hideSidePanel"),children:u.jsx("span",{className:"collapse-glyph",children:I?"❮":"❯"})})]}),u.jsx("aside",{className:"sidebar",children:u.jsx("div",{className:"sidebar-body",children:u.jsxs("div",{className:"team-panel",children:[u.jsxs("div",{className:"mode-info-bar",children:[u.jsx("span",{className:"mode-badge",children:Z==="company"?`${Z}/${ee}`:gp}),qr?u.jsx("span",{className:"mode-hint",children:n("office.modeHint.org")}):u.jsx("span",{className:"mode-hint",children:n("office.modeHint.switch")})]}),u.jsxs("div",{className:"section-label",children:[n("office.offices")," ",u.jsx("span",{className:"count-badge",children:$s.length})]}),u.jsx("div",{className:"office-cards",children:$s.map(J=>{const z=fE(J.id).length,ne=xi.filter(fe=>fe.officeId===J.id),oe=xi.filter(fe=>fe.officeId!==J.id&&!fe.isSubagent);return u.jsxs("div",{className:"office-card",onClick:()=>r.current.panToOffice(J.id),children:[u.jsxs("div",{className:"office-card-header",children:[Gr===J.id?u.jsx("input",{className:"office-name-input",value:Hs,onChange:fe=>Xl(fe.target.value),onBlur:()=>Io(J.id),onKeyDown:fe=>{fe.key==="Enter"&&Io(J.id),fe.key==="Escape"&&No(null)},autoFocus:!0,onClick:fe=>fe.stopPropagation()}):u.jsxs(u.Fragment,{children:[u.jsx("span",{className:"office-name",children:J.name}),u.jsx("button",{className:"office-edit-btn",title:n("office.rename"),onClick:fe=>{fe.stopPropagation(),No(J.id),Xl(J.name)},children:"✎"})]}),u.jsxs("span",{className:"office-capacity",children:[ne.length,"/",z]})]}),u.jsxs("div",{className:"office-agents",children:[ne.map(fe=>u.jsx("span",{className:"office-agent-chip",title:`${fe.displayName} — ${fe.seatId??n("office.noSeat")}`,onClick:Ne=>{Ne.stopPropagation(),Mo(fe.id)},children:fe.displayName.slice(0,8)},fe.id)),qr&&ne.length0&&u.jsxs("select",{className:"assign-dropdown",value:"",onClick:fe=>fe.stopPropagation(),onChange:fe=>{fe.target.value&&To(J.id,fe.target.value)},children:[u.jsx("option",{value:"",children:n("office.moveHere")}),oe.map(fe=>u.jsxs("option",{value:fe.id,children:[fe.displayName," (",$s.find(Ne=>Ne.id===xi.find(He=>He.id===fe.id)?.officeId)?.name??"?",")"]},fe.id))]})]})]},J.id)})}),u.jsxs("div",{className:"section-label",children:[n("office.activeAgents")," ",u.jsx("span",{className:"count-badge",children:q.length})]}),u.jsxs("div",{className:"agent-list",children:[q.map(J=>u.jsxs("div",{className:`agent-row ${L===J.agent_id?"selected":""}`,children:[u.jsxs("button",{className:"agent-row-main",onClick:()=>Mo(J.agent_id),children:[u.jsx("span",{className:`dot ${J.status}`}),u.jsxs("div",{className:"agent-info",children:[u.jsx("span",{className:"agent-name",children:J.name}),u.jsx("span",{className:"agent-spec",children:J.specialties.slice(0,2).join(" · ")||n("common.general")})]})]}),qr&&(Kt===J.agent_id?u.jsx("span",{className:"agent-del",style:{pointerEvents:"none"},children:u.jsx("span",{className:"spinner-inline"})}):Xt===J.agent_id?u.jsxs("span",{className:"del-confirm",children:[u.jsx("span",{className:"del-confirm-label",children:n("office.deleteQuestion")}),u.jsx("button",{className:"del-confirm-yes",onClick:()=>{zn(J.agent_id),Mt(null),o.current?.deleteAgent(J.agent_id)},children:n("common.yes")}),u.jsx("button",{className:"del-confirm-no",onClick:()=>Mt(null),children:n("common.no")})]}):u.jsx("button",{className:"agent-del",title:n("office.removeAgent",{name:J.name}),onClick:()=>Mt(J.agent_id),children:"×"}))]},J.agent_id)),q.length===0&&u.jsx("div",{className:"empty-state",children:n("office.emptyAgents")})]}),gn&&u.jsxs("div",{className:"agent-detail",children:[u.jsx("div",{className:"agent-detail-name",children:gn.displayName}),u.jsxs("div",{className:"agent-detail-row",children:[u.jsx("span",{className:"detail-label",children:n("common.state")}),u.jsx("span",{className:"detail-value",children:i("agent.status",gn.state)||gn.state})]}),u.jsxs("div",{className:"agent-detail-row",children:[u.jsx("span",{className:"detail-label",children:n("common.tool")}),u.jsx("span",{className:"detail-value",children:gn.currentTool??"—"})]}),u.jsxs("div",{className:"agent-detail-row",children:[u.jsx("span",{className:"detail-label",children:n("common.task")}),u.jsx("span",{className:"detail-value",children:gn.taskSummary??"—"})]}),u.jsxs("div",{className:"agent-detail-row",children:[u.jsx("span",{className:"detail-label",children:n("app.page.office")}),u.jsx("select",{className:"detail-select",value:gn.officeId,onChange:J=>{To(J.target.value,gn.id)},disabled:!qr,children:$s.map(J=>u.jsx("option",{value:J.id,children:J.name},J.id))})]}),u.jsxs("div",{className:"agent-detail-row",children:[u.jsx("span",{className:"detail-label",children:n("common.seat")}),u.jsxs("select",{className:"detail-select",value:gn.seatId??"",onChange:J=>{J.target.value&&Qu(gn.id,J.target.value)},disabled:!qr,children:[u.jsx("option",{value:"",children:"—"}),us.map(J=>{const z=J.id.replace(/^office-\d+-/,"").replace("-"," ").replace(/\b\w/g,oe=>oe.toUpperCase()),ne=J.assigned&&J.assignedTo!==gn.id;return u.jsxs("option",{value:J.id,disabled:ne,children:[z,ne?` (${J.assignedTo})`:J.assignedTo===gn.id?" ✓":""]},J.id)})]})]})]}),xi.length>q.length&&u.jsxs(u.Fragment,{children:[u.jsxs("div",{className:"section-label",children:[n("office.characters"),u.jsx("button",{className:"inline-btn",onClick:()=>M(J=>!J),children:n(T?"office.hideSub":"office.showSub")})]}),u.jsx("div",{className:"agent-list",children:xi.filter(J=>!q.some(z=>z.agent_id===J.id)).map(J=>u.jsxs("button",{className:`agent-row-simple ${L===J.id?"selected":""}`,onClick:()=>Mo(J.id),children:[J.isSubagent&&u.jsx("span",{className:"sub-badge",children:"SUB"}),u.jsx("span",{className:"agent-name",children:J.displayName}),u.jsxs("span",{className:"agent-spec",children:[J.state,J.currentTool?` · ${J.currentTool}`:""]})]},J.id))})]})]})})})]}),W&&u.jsxs("div",{className:"dev-overlay",children:[u.jsxs("div",{className:"dev-header",children:[u.jsx("span",{className:"dev-title",children:n("dev.tools")}),u.jsx("button",{className:"icon-btn",onClick:()=>V(!1),children:"✕"})]}),u.jsxs("div",{className:"dev-group",children:[u.jsx("div",{className:"dev-label",children:n("dev.connection")}),u.jsxs("div",{className:"input-row",children:[u.jsx("input",{value:m,onChange:J=>h(J.target.value),placeholder:"ws://..."}),u.jsx("button",{className:"send-btn",onClick:Kl,children:"↩"})]})]}),u.jsxs("div",{className:"dev-group",children:[u.jsx("div",{className:"dev-label",children:n("dev.evolution")}),u.jsx("div",{className:"evo-pipeline",children:["Trace","Reflect","Synthesize","Practice","Lifecycle"].map((J,z)=>{const ne=J.toLowerCase(),oe=ne in Ro?Ro[ne]:!1,fe=`dev.phase.${ne}`;return u.jsxs("div",{className:"evo-phase-group",children:[z>0&&u.jsx("div",{className:"evo-connector"}),u.jsxs("div",{className:`evo-node ${oe?"active":""}`,children:[u.jsx("div",{className:"evo-dot"}),u.jsx("span",{className:"evo-label",children:n(fe)})]})]},J)})}),u.jsx("div",{className:"list",children:(b?.skills.recent??[]).slice(-6).reverse().map((J,z)=>u.jsxs("div",{className:"list-row",children:[u.jsx("span",{children:J.skill_name}),u.jsx("span",{className:"muted mono",children:J.version})]},`${J.skill_name}-${J.timestamp}-${z}`))})]}),u.jsxs("div",{className:"dev-group",children:[u.jsxs("div",{className:"dev-label",children:[n("dev.events"),u.jsx("select",{className:"inline-select",value:P,onChange:J=>U(J.target.value),children:Ao.map(J=>u.jsx("option",{value:J,children:J},J))})]}),u.jsx("div",{className:"event-log",children:mp.slice(0,30).map(J=>u.jsxs("div",{className:"log-row",children:[u.jsx("span",{className:"log-time",children:new Date(J.timestamp*1e3).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}),u.jsx("span",{className:"log-type",children:J.type}),u.jsx("span",{className:"log-agent",children:J.agent_id}),u.jsx("span",{className:"log-data",children:uee(J.data)})]},J.event_id))})]}),Object.keys(b?.channels??{}).length>0&&u.jsxs("div",{className:"dev-group",children:[u.jsx("div",{className:"dev-label",children:n("dev.channels")}),Object.entries(b?.channels??{}).map(([J,z])=>u.jsxs("div",{className:"list-row",children:[u.jsx("span",{children:J}),u.jsx("span",{className:"muted",children:String(z.last_type??"idle")})]},J))]})]}),gi&&u.jsx("div",{className:ni==="error"?"toast-error":"toast-success",children:gi}),u.jsx(yee,{taskId:Pn,sessions:st.sessions,agents:q,onClose:()=>Gn(null)})]})}class vee extends Tt.Component{constructor(){super(...arguments),this.state={error:null,info:""}}static getDerivedStateFromError(t){return{error:t}}componentDidCatch(t,n){console.error("[ErrorBoundary] React crashed:",t,n),this.setState({info:n.componentStack??""})}render(){return this.state.error?u.jsxs("div",{style:{padding:32,color:"#ff6b6b",background:"#1a1a2e",minHeight:"100vh",fontFamily:"monospace"},children:[u.jsx("h2",{children:"UI Error — React crashed"}),u.jsx("pre",{style:{whiteSpace:"pre-wrap",fontSize:13},children:this.state.error.message}),u.jsxs("details",{open:!0,style:{marginTop:12,fontSize:12,color:"#ccc"},children:[u.jsx("summary",{children:"Stack trace"}),u.jsx("pre",{style:{whiteSpace:"pre-wrap"},children:this.state.error.stack})]}),this.state.info&&u.jsxs("details",{style:{marginTop:12,fontSize:12,color:"#888"},children:[u.jsx("summary",{children:"Component stack"}),u.jsx("pre",{style:{whiteSpace:"pre-wrap"},children:this.state.info})]}),u.jsx("button",{onClick:()=>{this.setState({error:null,info:""})},style:{marginTop:16,padding:"8px 16px",background:"#6366f1",color:"#fff",border:"none",borderRadius:6,cursor:"pointer"},children:"Try to recover"})]}):this.props.children}}window.addEventListener("error",e=>{console.error("[Global] Uncaught error:",e.error??e.message)});window.addEventListener("unhandledrejection",e=>{console.error("[Global] Unhandled promise rejection:",e.reason)});const Hv=document.getElementById("root");if(!Hv)throw document.body.innerHTML='

Root element not found

',new Error("Root element #root not found");try{l3.createRoot(Hv).render(u.jsx(vee,{children:u.jsx(yD,{children:u.jsx(xee,{})})}))}catch(e){console.error("React render error:",e),Hv.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 3f277b0..11f3195 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 2208a88..7e5aaa7 100644 --- a/opc/plugins/office_ui/frontend_src/App.tsx +++ b/opc/plugins/office_ui/frontend_src/App.tsx @@ -27,6 +27,7 @@ import { extractSessionRecruitmentByRole, sessionChannelId } from './lib/session import { resolveCanonicalTurnId, terminalAssistantTurnId } from './lib/turnIdentity' import { unassignAgent } from './game/map/OfficeStore' import type { AgentAnimStatus, EmployeeAssignment, KanbanPhase, KanbanTask, RoleAggregatedStatus, RoleWorkItemSummary, Session, TaskPreferredAgent } from './types/kanban' +import { useI18n } from './i18n' function readOutdoorOverrideUi(): 'auto' | 'day' | 'night' { try { @@ -444,6 +445,7 @@ function MaybeExecutionPanel({ taskId, sessions, agents, onClose }: { } export default function App() { + const { locale, setLocale, t, translateMaybe } = useI18n() const bridgeRef = useRef(new GameBridge()) useMemo(() => registerTestRunner(bridgeRef.current), []) const clientRef = useRef(null) @@ -2397,26 +2399,47 @@ export default function App() {
- - + +
- {metrics.totalAgents} agents - {metrics.totalSkills} skills - {boardStore.getOpenTaskCount()} tasks + {metrics.totalAgents} {t('app.metric.agents')} + {metrics.totalSkills} {t('app.metric.skills')} + {boardStore.getOpenTaskCount()} {t('app.metric.tasks')}
+
+ + +
-
@@ -2602,14 +2625,14 @@ export default function App() { {/* Phaser Game Canvas */}
- @@ -2624,13 +2647,13 @@ export default function App() {
{globalExecMode === 'company' ? `${globalExecMode}/${globalCompanyProfile}` : globalModeLabel} {isOrgMode ? ( - Manage your team in the Org tab + {t('office.modeHint.org')} ) : ( - Switch to Org mode to create or manage agents + {t('office.modeHint.switch')} )}
-
Offices {offices.length}
+
{t('office.offices')} {offices.length}
{offices.map((office) => { const deskCount = getOfficeDeskSeats(office.id).length @@ -2652,14 +2675,14 @@ export default function App() { ) : ( <> {office.name} - + )} {assignedCards.length}/{deskCount}
{assignedCards.map(c => ( - { e.stopPropagation(); selectAgent(c.id) }}> + { e.stopPropagation(); selectAgent(c.id) }}> {c.displayName.slice(0, 8)} ))} @@ -2670,7 +2693,7 @@ export default function App() { onClick={e => e.stopPropagation()} onChange={e => { if (e.target.value) handleAssignAgent(office.id, e.target.value) }} > - + {otherAgents.map(a => ( ))} @@ -2682,7 +2705,7 @@ export default function App() { })}
-
Active Agents {swarmAgents.length}
+
{t('office.activeAgents')} {swarmAgents.length}
{swarmAgents.map((agent) => (
@@ -2690,7 +2713,7 @@ export default function App() {
{agent.name} - {agent.specialties.slice(0, 2).join(' · ') || 'general'} + {agent.specialties.slice(0, 2).join(' · ') || t('common.general')}
{isOrgMode && ( @@ -2698,27 +2721,27 @@ export default function App() { ? : confirmDeleteId === agent.agent_id ? - Delete? - - + {t('office.deleteQuestion')} + + - : + : )}
))} {swarmAgents.length === 0 && ( -
No agents yet — click a template above to spawn one.
+
{t('office.emptyAgents')}
)}
{selectedCard && ( -
-
{selectedCard.displayName}
-
State{selectedCard.state}
-
Tool{selectedCard.currentTool ?? '—'}
-
Task{selectedCard.taskSummary ?? '—'}
+
+
{selectedCard.displayName}
+
{t('common.state')}{translateMaybe('agent.status', selectedCard.state) || selectedCard.state}
+
{t('common.tool')}{selectedCard.currentTool ?? '—'}
+
{t('common.task')}{selectedCard.taskSummary ?? '—'}
- Office + {t('app.page.office')} swarmAgents.length && ( <>
- Characters - + {t('office.characters')} +
{cards.filter((c) => !swarmAgents.some((a) => a.agent_id === c.id)).map((card) => ( @@ -2777,28 +2800,29 @@ export default function App() { {showDevTools && (
- Developer Tools + {t('dev.tools')}
-
Connection
+
{t('dev.connection')}
setWsUrlInput(e.target.value)} placeholder="ws://..." />
-
Evolution Pipeline
+
{t('dev.evolution')}
{(['Trace', 'Reflect', 'Synthesize', 'Practice', 'Lifecycle'] as const).map((phase, i) => { const key = phase.toLowerCase() as keyof typeof evolutionPhases const active = key in evolutionPhases ? evolutionPhases[key as 'trace' | 'reflect' | 'synthesize'] : false + const phaseLabelKey = `dev.phase.${key}` as Parameters[0] return (
{i > 0 &&
}
- {phase} + {t(phaseLabelKey)}
) @@ -2815,7 +2839,7 @@ export default function App() {
- Events + {t('dev.events')} @@ -2833,7 +2857,7 @@ export default function App() {
{Object.keys(snapshot?.channels ?? {}).length > 0 && (
-
Channels
+
{t('dev.channels')}
{Object.entries(snapshot?.channels ?? {}).map(([name, info]) => (
{name} diff --git a/opc/plugins/office_ui/frontend_src/chat/SessionSidebar.tsx b/opc/plugins/office_ui/frontend_src/chat/SessionSidebar.tsx index 045854b..c9de152 100644 --- a/opc/plugins/office_ui/frontend_src/chat/SessionSidebar.tsx +++ b/opc/plugins/office_ui/frontend_src/chat/SessionSidebar.tsx @@ -4,6 +4,7 @@ import type { Session } from '../types/kanban' import { IconPlus, IconSearch, IconActivity, IconShield, IconTrash, IconWorkItem } from './SvgIcons' import { getSessionRuntimeStatus } from '../lib/sessionRuntime' import { deriveCompanyRuntimeDisplayStatus } from '../lib/workItemSessions' +import { useI18n } from '../i18n' interface SessionSidebarProps { sessions: Session[] @@ -35,12 +36,14 @@ function sessionDotClass(session: Session): string { return STATUS_DOT[displayStatus] ?? 'status-pending' } -function relativeTime(ts: number): string { +type TFunction = ReturnType['t'] + +function relativeTime(ts: number, t: TFunction): string { const diff = Date.now() - ts - if (diff < 60_000) return 'just now' - if (diff < 3_600_000) return `${Math.floor(diff / 60_000)}m` - if (diff < 86_400_000) return `${Math.floor(diff / 3_600_000)}h` - return `${Math.floor(diff / 86_400_000)}d` + if (diff < 60_000) return t('session.justNow') + if (diff < 3_600_000) return t('session.minutes', { count: Math.floor(diff / 60_000) }) + if (diff < 86_400_000) return t('session.hours', { count: Math.floor(diff / 3_600_000) }) + return t('session.days', { count: Math.floor(diff / 86_400_000) }) } function dateGroup(ts: number): string { @@ -53,6 +56,15 @@ function dateGroup(ts: number): string { return 'Earlier' } +function groupLabel(group: 'Today' | 'Yesterday' | 'Earlier', hasRuntimeSessions: boolean, t: TFunction): string { + const label = group === 'Today' + ? t('session.today') + : group === 'Yesterday' + ? t('session.yesterday') + : t('session.earlier') + return hasRuntimeSessions ? `${label} ${t('session.runtimeSuffix')}` : label +} + interface SessionTree { session: Session children: Session[] @@ -104,6 +116,7 @@ function SessionItem({ onSelect: () => void onDelete: () => void }) { + const { t, translateMaybe } = useI18n() const [showDelete, setShowDelete] = useState(false) const [confirming, setConfirming] = useState(false) const agentLabel = session.assigneeIds.length > 0 @@ -134,12 +147,12 @@ function SessionItem({ {agentLabel} )} {!isChild && session.isCompanyRuntime && ( - + )} {session.title} - {displayStatus} · {relativeTime(session.updatedAt)} + {translateMaybe('kanban.status', displayStatus) || displayStatus} · {relativeTime(session.updatedAt, t)}
{!!unreadCount && unreadCount > 0 && ( @@ -149,15 +162,15 @@ function SessionItem({ )} {confirming && ( e.stopPropagation()}> - - + + )} @@ -165,6 +178,7 @@ function SessionItem({ } export function SessionSidebar({ sessions, activeSessionId, activeChannel, secretaryChannelId, unreadCounts, onSelect, onCreateSession, onDeleteSession, onSelectSecretary }: SessionSidebarProps) { + const { t } = useI18n() const [search, setSearch] = useState('') const [collapsed, setCollapsed] = useState>(new Set()) const hasRuntimeSessions = sessions.some(session => @@ -256,7 +270,7 @@ export function SessionSidebar({ sessions, activeSessionId, activeChannel, secre e.stopPropagation() toggleCollapse(node.session.taskId) }} - aria-label={isCollapsed ? 'Expand' : 'Collapse'} + aria-label={isCollapsed ? t('session.expand') : t('session.collapse')} /> )}
) - }, [activeSessionId, collapsed, onDeleteSession, onSelect, toggleCollapse, unreadCounts]) + }, [activeSessionId, collapsed, onDeleteSession, onSelect, toggleCollapse, unreadCounts, t]) const renderVirtualRow = useCallback((row: SidebarRow) => { if (row.kind === 'group') { return (
- {hasRuntimeSessions ? `${row.group} Runtime Sessions` : row.group} + {groupLabel(row.group, hasRuntimeSessions, t)}
) } @@ -288,7 +302,7 @@ export function SessionSidebar({ sessions, activeSessionId, activeChannel, secre className="session-child-count" onClick={() => toggleCollapse(row.node.session.taskId)} > - {row.node.children.length} sub-task{row.node.children.length > 1 ? 's' : ''} + {t(row.node.children.length > 1 ? 'session.subTasks' : 'session.subTask', { count: row.node.children.length })} ) } @@ -305,13 +319,13 @@ export function SessionSidebar({ sessions, activeSessionId, activeChannel, secre />
) - }, [activeSessionId, hasRuntimeSessions, onDeleteSession, onSelect, renderPrimaryRow, toggleCollapse, unreadCounts]) + }, [activeSessionId, hasRuntimeSessions, onDeleteSession, onSelect, renderPrimaryRow, toggleCollapse, unreadCounts, t]) return (
{onSelectSecretary && ( @@ -320,7 +334,7 @@ export function SessionSidebar({ sessions, activeSessionId, activeChannel, secre onClick={onSelectSecretary} > - Secretary + {t('session.secretary')} {!!(secretaryChannelId && unreadCounts?.[secretaryChannelId]) && unreadCounts![secretaryChannelId!] > 0 && ( {unreadCounts![secretaryChannelId!] > 99 ? '99+' : unreadCounts![secretaryChannelId!]} )} @@ -331,7 +345,7 @@ export function SessionSidebar({ sessions, activeSessionId, activeChannel, secre setSearch(e.target.value)} /> @@ -368,7 +382,7 @@ export function SessionSidebar({ sessions, activeSessionId, activeChannel, secre if (!items || items.length === 0) return null return (
-
{hasRuntimeSessions ? `${group} Runtime Sessions` : group}
+
{groupLabel(group, hasRuntimeSessions, t)}
{items.map(node => { const hasChildren = node.children.length > 0 const isCollapsed = collapsed.has(node.session.taskId) @@ -382,7 +396,7 @@ export function SessionSidebar({ sessions, activeSessionId, activeChannel, secre e.stopPropagation() toggleCollapse(node.session.taskId) }} - aria-label={isCollapsed ? 'Expand' : 'Collapse'} + aria-label={isCollapsed ? t('session.expand') : t('session.collapse')} /> )} toggleCollapse(node.session.taskId)} > - {node.children.length} sub-task{node.children.length > 1 ? 's' : ''} + {t(node.children.length > 1 ? 'session.subTasks' : 'session.subTask', { count: node.children.length })} )}
@@ -427,7 +441,7 @@ export function SessionSidebar({ sessions, activeSessionId, activeChannel, secre })} {filtered.length === 0 && ( -
No sessions yet
+
{t('session.noSessions')}
)}
@@ -436,7 +450,7 @@ export function SessionSidebar({ sessions, activeSessionId, activeChannel, secre onClick={() => onSelect(null)} > - Activity + {t('session.activity')}
) diff --git a/opc/plugins/office_ui/frontend_src/components/ProjectSelector.tsx b/opc/plugins/office_ui/frontend_src/components/ProjectSelector.tsx index 64232c1..2b50172 100644 --- a/opc/plugins/office_ui/frontend_src/components/ProjectSelector.tsx +++ b/opc/plugins/office_ui/frontend_src/components/ProjectSelector.tsx @@ -1,5 +1,6 @@ import { useState, useCallback } from 'react' import type { Project } from '../types/kanban' +import { useI18n } from '../i18n' interface ProjectSelectorProps { projects: Project[] @@ -10,6 +11,7 @@ interface ProjectSelectorProps { } export function ProjectSelector({ projects, activeId, onSelect, onCreate, onDelete }: ProjectSelectorProps) { + const { t } = useI18n() const [creating, setCreating] = useState(false) const [newName, setNewName] = useState('') const [confirmDelete, setConfirmDelete] = useState(null) @@ -34,7 +36,8 @@ export function ProjectSelector({ projects, activeId, onSelect, onCreate, onDele className="theme-select" value={activeId} onChange={e => onSelect(e.target.value)} - title="Switch project" + title={t('project.switch')} + aria-label={t('project.switch')} > {projects.map(p => ( @@ -49,7 +52,7 @@ export function ProjectSelector({ projects, activeId, onSelect, onCreate, onDele autoFocus className="theme-select" value={newName} - placeholder="project-name" + placeholder={t('project.placeholder')} onChange={e => setNewName(e.target.value)} onKeyDown={e => { if (e.key === 'Escape') setCreating(false) }} style={{ width: 120 }} @@ -60,7 +63,7 @@ export function ProjectSelector({ projects, activeId, onSelect, onCreate, onDele )} @@ -88,10 +91,10 @@ export function ProjectSelector({ projects, activeId, onSelect, onCreate, onDele maxWidth: 400, boxShadow: '0 8px 32px rgba(0,0,0,0.4)', textAlign: 'center', }}>

- Delete project "{confirmDelete}"? + {t('project.confirmTitle', { name: confirmDelete })}

- All sessions, messages, tasks, and agent data in this project will be permanently deleted. This action cannot be undone. + {t('project.confirmBody')}

diff --git a/opc/plugins/office_ui/frontend_src/i18n/index.tsx b/opc/plugins/office_ui/frontend_src/i18n/index.tsx new file mode 100644 index 0000000..8203699 --- /dev/null +++ b/opc/plugins/office_ui/frontend_src/i18n/index.tsx @@ -0,0 +1,403 @@ +import { createContext, useCallback, useContext, useEffect, useMemo, useState, type ReactNode } from 'react' + +export type Locale = 'en' | 'zh-CN' + +const STORAGE_KEY = 'openopc_locale' + +const en = { + 'app.page.workspace': 'Workspace', + 'app.page.office': 'Office', + 'app.page.org': 'Org', + 'app.page.mapEditor': 'Map editor', + 'app.metric.agents': 'agents', + 'app.metric.skills': 'skills', + 'app.metric.tasks': 'tasks', + 'language.label': 'Language', + 'language.english': 'EN', + 'language.chinese': '简', + 'outdoor.title': 'Outdoor lighting override', + 'outdoor.auto': 'Outdoor auto', + 'outdoor.day': 'Outdoor day', + 'outdoor.night': 'Outdoor night', + 'theme.midnight': 'Midnight', + 'theme.neon': 'Neon', + 'theme.paper': 'Paper', + 'theme.retro': 'Retro', + 'theme.terminal': 'Terminal', + 'theme.cozy': 'Cozy', + 'theme.openopc': 'OpenOPC', + 'dev.tools': 'Developer Tools', + 'dev.connection': 'Connection', + 'dev.evolution': 'Evolution Pipeline', + 'dev.events': 'Events', + 'dev.channels': 'Channels', + 'dev.phase.trace': 'Trace', + 'dev.phase.reflect': 'Reflect', + 'dev.phase.synthesize': 'Synthesize', + 'dev.phase.practice': 'Practice', + 'dev.phase.lifecycle': 'Lifecycle', + 'project.switch': 'Switch project', + 'project.new': 'New project', + 'project.delete': 'Delete project', + 'project.deleteButton': 'Del', + 'project.placeholder': 'project-name', + 'project.confirmTitle': 'Delete project "{name}"?', + 'project.confirmBody': 'All sessions, messages, tasks, and agent data in this project will be permanently deleted. This action cannot be undone.', + 'common.cancel': 'Cancel', + 'common.delete': 'Delete', + 'common.yes': 'Yes', + 'common.no': 'No', + 'common.loading': 'Loading...', + 'common.ready': 'ready', + 'common.autoSaved': 'Auto-saved', + 'common.active': 'active', + 'common.idle': 'idle', + 'common.general': 'general', + 'common.state': 'State', + 'common.tool': 'Tool', + 'common.task': 'Task', + 'common.seat': 'Seat', + 'common.role': 'Role', + 'common.employee': 'Employee', + 'common.manager': 'Manager', + 'common.origin': 'Origin', + 'common.projection': 'Projection', + 'common.gate': 'Gate', + 'common.runtime': 'Runtime', + 'office.modeHint.org': 'Manage your team in the Org tab', + 'office.modeHint.switch': 'Switch to Org mode to create or manage agents', + 'office.offices': 'Offices', + 'office.activeAgents': 'Active Agents', + 'office.rename': 'Rename', + 'office.noSeat': 'no seat', + 'office.moveHere': '+ Move here', + 'office.characters': 'Characters', + 'office.hideSub': 'hide sub', + 'office.showSub': 'show sub', + 'office.hideSubagents': 'Hide sub-agents', + 'office.showSubagents': 'Show sub-agents', + 'office.showSidePanel': 'Show side panel', + 'office.hideSidePanel': 'Hide side panel', + 'office.removeAgent': 'Remove {name}', + 'office.deleteQuestion': 'Delete?', + 'office.emptyAgents': 'No agents yet — click a template above to spawn one.', + 'session.newChat': 'New Chat', + 'session.secretary': 'Secretary', + 'session.search': 'Search...', + 'session.activity': 'Activity', + 'session.noSessions': 'No sessions yet', + 'session.today': 'Today', + 'session.yesterday': 'Yesterday', + 'session.earlier': 'Earlier', + 'session.runtimeSuffix': 'Runtime Sessions', + 'session.justNow': 'just now', + 'session.minutes': '{count}m', + 'session.hours': '{count}h', + 'session.days': '{count}d', + 'session.companyRuntime': 'Company runtime', + 'session.expand': 'Expand', + 'session.collapse': 'Collapse', + 'session.subTask': '{count} sub-task', + 'session.subTasks': '{count} sub-tasks', + 'workspace.selectRuntimeSession': 'Select a Runtime Session on the left to view its Work Item board.', + 'workspace.noWorkItems': 'No work items yet — start delegation to populate this board.', + 'workspace.clickEditTitle': 'Click to edit session title', + 'workspace.channel.secretary': 'Secretary', + 'workspace.channel.activity': 'Activity', + 'workspace.confirmNoRoles': 'Your org has no roles defined.\n\nSet up at least one role before running a task.\n\nGo to Org tab now?', + 'workspace.confirmNoDecider': 'Your organization has multiple top-level roles but no final decider selected.\n\nChoose one final decider in the Org tab before running a task.\n\nGo to Org tab now?', + 'workspace.warningNoTeams': 'No runtime teams defined — the system will auto-generate from your roles', + 'workspace.warningVacantRoles': '{count} role(s) have no employees: {names}', + 'workspace.confirmWarnings': 'Before running this task:\n\n{warnings}\n\nRun anyway?', + 'kanban.addTask': 'Add task', + 'kanban.taskTitle': 'Task title...', + 'kanban.startTask': 'Start task', + 'kanban.startWorkItem': 'Start Work Item', + 'kanban.upstreamDeps': '{count} upstream dep(s)', + 'kanban.dep': '{count} dep', + 'kanban.crossOffice': 'Cross-office', + 'kanban.executionTurn': 'Execution Turn: {id}', + 'kanban.column.Todo': 'Todo', + 'kanban.column.In Progress': 'In Progress', + 'kanban.column.Done': 'Done', + 'kanban.column.Ready': 'Ready', + 'kanban.column.Running': 'Running', + 'kanban.column.Review': 'Review', + 'kanban.column.Approved': 'Approved', + 'kanban.status.todo': 'To do', + 'kanban.status.in_progress': 'In progress', + 'kanban.status.in_review': 'In review', + 'kanban.status.done': 'Done', + 'kanban.status.running': 'Running', + 'kanban.status.idle': 'Idle', + 'kanban.status.blocked': 'Blocked', + 'kanban.status.awaiting_peer': 'Awaiting', + 'kanban.status.awaiting_manager_review': 'Mgr Review', + 'kanban.status.awaiting_human': 'Human Review', + 'kanban.status.awaiting_review': 'In Review', + 'kanban.status.failed': 'Failed', + 'kanban.status.cancelled': 'Cancelled', + 'agent.status.idle': 'Idle', + 'agent.status.reflecting': 'Thinking...', + 'agent.status.tool_active': 'Running tool', + 'agent.summary.active': '{active}/{total} active', + 'agent.summary.count': '{count} agent', + 'agent.summary.countPlural': '{count} agents', + 'org.loading': 'Loading organization data...', + 'org.company': 'Company', + 'org.customOrg': 'Custom org', + 'org.corporateCompany': 'Corporate company', + 'org.kind.saved': 'Saved org', + 'org.kind.corporate': 'Corporate', + 'org.state.editableSaved': 'Editable saved architecture', + 'org.state.editableDraft': 'Editable draft architecture', + 'org.state.readOnly': 'Built-in read-only architecture', + 'org.organization': 'Organization', + 'org.corporate': 'Corporate', + 'org.newOrganization': 'New organization', + 'org.roles': 'roles', + 'org.employees': 'employees', + 'org.runtimeTeams': 'runtime teams', + 'org.tab.team': 'Team', + 'org.tab.runtime': 'Runtime', + 'org.tab.architecture': 'Architecture', + 'org.tab.employees': 'Employees', + 'org.createdToast': 'Created {name} and saved automatically', + 'org.architectureApplied': 'Architecture applied successfully', +} + +type MessageKey = keyof typeof en + +const zh: Record = { + 'app.page.workspace': '工作台', + 'app.page.office': '办公室', + 'app.page.org': '组织', + 'app.page.mapEditor': '地图编辑', + 'app.metric.agents': 'Agent', + 'app.metric.skills': '技能', + 'app.metric.tasks': '任务', + 'language.label': '语言', + 'language.english': 'EN', + 'language.chinese': '简', + 'outdoor.title': '户外光照', + 'outdoor.auto': '户外自动', + 'outdoor.day': '户外白天', + 'outdoor.night': '户外夜晚', + 'theme.midnight': '午夜', + 'theme.neon': '霓虹', + 'theme.paper': '纸张', + 'theme.retro': '复古', + 'theme.terminal': '终端', + 'theme.cozy': '舒适', + 'theme.openopc': 'OpenOPC', + 'dev.tools': '开发工具', + 'dev.connection': '连接', + 'dev.evolution': '进化流水线', + 'dev.events': '事件', + 'dev.channels': '频道', + 'dev.phase.trace': '追踪', + 'dev.phase.reflect': '反思', + 'dev.phase.synthesize': '合成', + 'dev.phase.practice': '练习', + 'dev.phase.lifecycle': '生命周期', + 'project.switch': '切换项目', + 'project.new': '新建项目', + 'project.delete': '删除项目', + 'project.deleteButton': '删', + 'project.placeholder': '项目名', + 'project.confirmTitle': '删除项目“{name}”?', + 'project.confirmBody': '此项目中的所有会话、消息、任务和 Agent 数据都会被永久删除。此操作无法撤销。', + 'common.cancel': '取消', + 'common.delete': '删除', + 'common.yes': '是', + 'common.no': '否', + 'common.loading': '加载中...', + 'common.ready': '就绪', + 'common.autoSaved': '已自动保存', + 'common.active': '活跃', + 'common.idle': '空闲', + 'common.general': '通用', + 'common.state': '状态', + 'common.tool': '工具', + 'common.task': '任务', + 'common.seat': '座位', + 'common.role': '角色', + 'common.employee': '员工', + 'common.manager': '经理', + 'common.origin': '来源', + 'common.projection': '投影', + 'common.gate': '关卡', + 'common.runtime': '运行时', + 'office.modeHint.org': '在“组织”页管理你的团队', + 'office.modeHint.switch': '切换到“组织”模式以创建或管理 Agent', + 'office.offices': '办公室', + 'office.activeAgents': '活跃 Agent', + 'office.rename': '重命名', + 'office.noSeat': '未分配座位', + 'office.moveHere': '+ 移到这里', + 'office.characters': '角色', + 'office.hideSub': '隐藏子项', + 'office.showSub': '显示子项', + 'office.hideSubagents': '隐藏子 Agent', + 'office.showSubagents': '显示子 Agent', + 'office.showSidePanel': '显示侧栏', + 'office.hideSidePanel': '隐藏侧栏', + 'office.removeAgent': '移除 {name}', + 'office.deleteQuestion': '删除?', + 'office.emptyAgents': '还没有 Agent,点击上方模板生成一个。', + 'session.newChat': '新聊天', + 'session.secretary': '秘书', + 'session.search': '搜索...', + 'session.activity': '动态', + 'session.noSessions': '还没有会话', + 'session.today': '今天', + 'session.yesterday': '昨天', + 'session.earlier': '更早', + 'session.runtimeSuffix': '运行时会话', + 'session.justNow': '刚刚', + 'session.minutes': '{count} 分钟', + 'session.hours': '{count} 小时', + 'session.days': '{count} 天', + 'session.companyRuntime': '公司运行时', + 'session.expand': '展开', + 'session.collapse': '折叠', + 'session.subTask': '{count} 个子任务', + 'session.subTasks': '{count} 个子任务', + 'workspace.selectRuntimeSession': '在左侧选择一个运行时会话来查看它的工作项看板。', + 'workspace.noWorkItems': '还没有工作项,开始委派后会填充此看板。', + 'workspace.clickEditTitle': '点击编辑会话标题', + 'workspace.channel.secretary': '秘书', + 'workspace.channel.activity': '动态', + 'workspace.confirmNoRoles': '你的组织还没有定义角色。\n\n运行任务前请至少设置一个角色。\n\n现在前往“组织”页吗?', + 'workspace.confirmNoDecider': '你的组织有多个顶层角色,但尚未选择最终决策者。\n\n运行任务前请在“组织”页选择一个最终决策者。\n\n现在前往“组织”页吗?', + 'workspace.warningNoTeams': '尚未定义运行时团队,系统会根据角色自动生成', + 'workspace.warningVacantRoles': '{count} 个角色没有员工:{names}', + 'workspace.confirmWarnings': '运行此任务前:\n\n{warnings}\n\n仍然运行吗?', + 'kanban.addTask': '添加任务', + 'kanban.taskTitle': '任务标题...', + 'kanban.startTask': '启动任务', + 'kanban.startWorkItem': '启动工作项', + 'kanban.upstreamDeps': '{count} 个上游依赖', + 'kanban.dep': '{count} 依赖', + 'kanban.crossOffice': '跨办公室', + 'kanban.executionTurn': '执行轮次:{id}', + 'kanban.column.Todo': '待办', + 'kanban.column.In Progress': '进行中', + 'kanban.column.Done': '完成', + 'kanban.column.Ready': '就绪', + 'kanban.column.Running': '运行中', + 'kanban.column.Review': '评审', + 'kanban.column.Approved': '已批准', + 'kanban.status.todo': '待办', + 'kanban.status.in_progress': '进行中', + 'kanban.status.in_review': '评审中', + 'kanban.status.done': '完成', + 'kanban.status.running': '运行中', + 'kanban.status.idle': '空闲', + 'kanban.status.blocked': '阻塞', + 'kanban.status.awaiting_peer': '等待同伴', + 'kanban.status.awaiting_manager_review': '经理评审', + 'kanban.status.awaiting_human': '人工评审', + 'kanban.status.awaiting_review': '评审中', + 'kanban.status.failed': '失败', + 'kanban.status.cancelled': '已取消', + 'agent.status.idle': '空闲', + 'agent.status.reflecting': '思考中...', + 'agent.status.tool_active': '运行工具', + 'agent.summary.active': '{active}/{total} 活跃', + 'agent.summary.count': '{count} 个 Agent', + 'agent.summary.countPlural': '{count} 个 Agent', + 'org.loading': '正在加载组织数据...', + 'org.company': '公司', + 'org.customOrg': '自定义组织', + 'org.corporateCompany': '企业公司', + 'org.kind.saved': '已保存组织', + 'org.kind.corporate': '企业', + 'org.state.editableSaved': '可编辑的已保存架构', + 'org.state.editableDraft': '可编辑草稿架构', + 'org.state.readOnly': '内置只读架构', + 'org.organization': '组织', + 'org.corporate': '企业', + 'org.newOrganization': '新建组织', + 'org.roles': '角色', + 'org.employees': '员工', + 'org.runtimeTeams': '运行时团队', + 'org.tab.team': '团队', + 'org.tab.runtime': '运行时', + 'org.tab.architecture': '架构', + 'org.tab.employees': '员工', + 'org.createdToast': '已创建 {name} 并自动保存', + 'org.architectureApplied': '架构已成功应用', +} + +const dictionaries = { en, 'zh-CN': zh } satisfies Record> + +interface I18nContextValue { + locale: Locale + setLocale: (locale: Locale) => void + t: (key: MessageKey, params?: Record) => string + translateMaybe: (namespace: string, value: string | undefined | null) => string +} + +const I18nContext = createContext(null) + +function readInitialLocale(): Locale { + try { + const stored = localStorage.getItem(STORAGE_KEY) + if (stored === 'en' || stored === 'zh-CN') return stored + } catch { + // private mode + } + try { + return navigator.language.toLowerCase().startsWith('zh') ? 'zh-CN' : 'en' + } catch { + return 'en' + } +} + +function interpolate(template: string, params?: Record): string { + if (!params) return template + return template.replace(/\{(\w+)\}/g, (_, key: string) => ( + Object.prototype.hasOwnProperty.call(params, key) ? String(params[key]) : `{${key}}` + )) +} + +export function I18nProvider({ children }: { children: ReactNode }) { + const [locale, setLocaleState] = useState(() => readInitialLocale()) + + useEffect(() => { + document.documentElement.lang = locale === 'zh-CN' ? 'zh-CN' : 'en' + }, [locale]) + + const setLocale = useCallback((next: Locale) => { + setLocaleState(next) + try { + localStorage.setItem(STORAGE_KEY, next) + document.documentElement.lang = next === 'zh-CN' ? 'zh-CN' : 'en' + } catch { + // private mode + } + }, []) + + const t = useCallback((key, params) => { + const template = dictionaries[locale][key] ?? dictionaries.en[key] ?? key + return interpolate(template, params) + }, [locale]) + + const translateMaybe = useCallback((namespace, value) => { + const normalized = String(value ?? '').trim() + if (!normalized) return '' + const key = `${namespace}.${normalized}` as MessageKey + return dictionaries[locale][key] ?? normalized + }, [locale]) + + const value = useMemo(() => ({ locale, setLocale, t, translateMaybe }), [locale, setLocale, t, translateMaybe]) + + return {children} +} + +export function useI18n(): I18nContextValue { + const ctx = useContext(I18nContext) + if (!ctx) throw new Error('useI18n must be used within I18nProvider') + return ctx +} diff --git a/opc/plugins/office_ui/frontend_src/index.css b/opc/plugins/office_ui/frontend_src/index.css index eeec3f5..1a6899c 100644 --- a/opc/plugins/office_ui/frontend_src/index.css +++ b/opc/plugins/office_ui/frontend_src/index.css @@ -426,6 +426,41 @@ html, body, #root { gap: 6px; } +.language-toggle { + display: inline-flex; + align-items: center; + flex: 0 0 auto; + height: 30px; + padding: 2px; + border: 1px solid var(--border); + border-radius: var(--radius-sm); + background: var(--surface); +} + +.language-toggle-btn { + flex: 0 0 auto; + min-width: 34px; + height: 24px; + padding: 0 8px; + border: 0; + border-radius: calc(var(--radius-sm) - 2px); + background: transparent; + color: var(--text-secondary); + font-size: 11px; + line-height: 1; + cursor: pointer; +} + +.language-toggle-btn:hover { + color: var(--text); + background: var(--surface-hover); +} + +.language-toggle-btn.active { + color: var(--accent); + background: var(--accent-soft); +} + .theme-select { font-size: 11px; padding: 4px 8px; diff --git a/opc/plugins/office_ui/frontend_src/kanban/AgentStatusBar.tsx b/opc/plugins/office_ui/frontend_src/kanban/AgentStatusBar.tsx index 38e1c9c..e0d6039 100644 --- a/opc/plugins/office_ui/frontend_src/kanban/AgentStatusBar.tsx +++ b/opc/plugins/office_ui/frontend_src/kanban/AgentStatusBar.tsx @@ -1,7 +1,8 @@ import { useMemo } from 'react' -import type { AgentInfo } from '../types/visual' -import type { AgentAnimStatus, KanbanTask } from '../types/kanban' -import { AGENT_STATUS_LABEL } from '../types/kanban' +import type { AgentInfo } from '../types/visual' +import type { AgentAnimStatus, KanbanTask } from '../types/kanban' +import { AGENT_STATUS_LABEL } from '../types/kanban' +import { useI18n } from '../i18n' interface AgentStatusBarProps { agents: AgentInfo[] @@ -15,8 +16,9 @@ interface AgentState { taskDisplayId?: string } -export function AgentStatusBar({ agents, tasks }: AgentStatusBarProps) { - const agentStates = useMemo(() => { +export function AgentStatusBar({ agents, tasks }: AgentStatusBarProps) { + const { t, translateMaybe } = useI18n() + const agentStates = useMemo(() => { const tasksById = new Map(tasks.map((task) => [task.id, task])) return agents.map(agent => { // Find the first active (non-idle) task for this agent @@ -38,36 +40,41 @@ export function AgentStatusBar({ agents, tasks }: AgentStatusBarProps) { const activeCount = agentStates.filter(s => s.status !== 'idle').length - return ( -
- - {activeCount > 0 - ? `${activeCount}/${agents.length} active` - : `${agents.length} agent${agents.length !== 1 ? 's' : ''}`} - -
- {agentStates.map(({ agent, status, currentTool, taskDisplayId }) => ( -
- {agent.name.charAt(0).toUpperCase()} - {agent.name} - {status !== 'idle' && ( - <> - - - {status === 'tool_active' && currentTool ? currentTool : AGENT_STATUS_LABEL[status]} - - - )} - {taskDisplayId && ( - {taskDisplayId} - )} -
- ))} -
-
- ) -} + return ( +
+ + {activeCount > 0 + ? t('agent.summary.active', { active: activeCount, total: agents.length }) + : t(agents.length !== 1 ? 'agent.summary.countPlural' : 'agent.summary.count', { count: agents.length })} + +
+ {agentStates.map(({ agent, status, currentTool, taskDisplayId }) => { + const statusLabel = status === 'tool_active' && currentTool + ? currentTool + : translateMaybe('agent.status', status) || AGENT_STATUS_LABEL[status] + return ( +
+ {agent.name.charAt(0).toUpperCase()} + {agent.name} + {status !== 'idle' && ( + <> + + + {statusLabel} + + + )} + {taskDisplayId && ( + {taskDisplayId} + )} +
+ ) + })} +
+
+ ) +} diff --git a/opc/plugins/office_ui/frontend_src/kanban/BoardSelector.tsx b/opc/plugins/office_ui/frontend_src/kanban/BoardSelector.tsx index d7df5d6..ecae4a0 100644 --- a/opc/plugins/office_ui/frontend_src/kanban/BoardSelector.tsx +++ b/opc/plugins/office_ui/frontend_src/kanban/BoardSelector.tsx @@ -1,4 +1,5 @@ import type { KanbanBoard } from '../types/kanban' +import { useI18n } from '../i18n' interface BoardSelectorProps { boards: KanbanBoard[] @@ -7,6 +8,7 @@ interface BoardSelectorProps { } export function BoardSelector({ boards, activeBoardId, onSelect }: BoardSelectorProps) { + const { translateMaybe } = useI18n() return (
@@ -18,7 +20,7 @@ export function BoardSelector({ boards, activeBoardId, onSelect }: BoardSelector onClick={() => onSelect(b.id)} > - {b.name} + {translateMaybe('kanban.column', b.name) || b.name} ))}
diff --git a/opc/plugins/office_ui/frontend_src/kanban/KanbanCard.tsx b/opc/plugins/office_ui/frontend_src/kanban/KanbanCard.tsx index aa03b15..5d83abe 100644 --- a/opc/plugins/office_ui/frontend_src/kanban/KanbanCard.tsx +++ b/opc/plugins/office_ui/frontend_src/kanban/KanbanCard.tsx @@ -3,6 +3,7 @@ import type { AgentInfo } from '../types/visual' import { PRIORITY_META, AGENT_STATUS_LABEL, type KanbanTask } from '../types/kanban' import { getWorkItemRoleLabel, humanizeWorkItemRoleId } from '../lib/workItemIdentity' import { getLinkedRuntimeTaskId } from '../lib/workItemRuntimeIds' +import { useI18n } from '../i18n' const STATUS_BADGE: Record = { todo: { label: 'To do', color: '#9ca3af' }, @@ -32,7 +33,8 @@ interface KanbanCardProps { } export function KanbanCard({ task, index, agents, officeMap, companyMode, isSelected, onClick, onStart }: KanbanCardProps) { - const assignees = task.assigneeIds + const { t, translateMaybe } = useI18n() + const assignees = task.assigneeIds .map(id => agents.find(a => a.agent_id === id)) .filter(Boolean) as AgentInfo[] const priority = task.priority ? PRIORITY_META[task.priority] : null @@ -54,6 +56,9 @@ export function KanbanCard({ task, index, agents, officeMap, companyMode, isSele const blockerLabel = (task.blockedReason ?? '').trim() const reworkLabel = (task.reworkFeedback ?? '').trim() const linkedRuntimeTaskId = getLinkedRuntimeTaskId(task) + const runtimeStatusLabel = task.agentStatus + ? (translateMaybe('agent.status', task.agentStatus) || AGENT_STATUS_LABEL[task.agentStatus] || task.agentStatus) + : '' return ( @@ -66,22 +71,22 @@ export function KanbanCard({ task, index, agents, officeMap, companyMode, isSele data-task-id={task.id} onMouseUp={e => { if (e.button === 0 && !snapshot.isDragging) onClick(task) }} > -
- {task.displayId} - {statusBadge && ( - - - {statusBadge.label} - - )} - {depCount > 0 && ( - {depCount} dep - )} - {crossOffice && } +
+ {task.displayId} + {statusBadge && ( + + + {translateMaybe('kanban.status', phaseBadge) || statusBadge.label} + + )} + {depCount > 0 && ( + {t('kanban.dep', { count: depCount })} + )} + {crossOffice && } {onStart && ( - )} + + {translateMaybe('kanban.column', column.name) || column.name} + {tasks.length} + {onQuickCreate && ( + + )}
{adding && ( @@ -54,7 +56,7 @@ export function KanbanColumn({ column, tasks, agents, officeMap, companyMode, se if (e.key === 'Escape') { committedRef.current = true; setDraft(''); setAdding(false) } }} onBlur={commitAdd} - placeholder="Task title..." + placeholder={t('kanban.taskTitle')} autoFocus />
diff --git a/opc/plugins/office_ui/frontend_src/main.tsx b/opc/plugins/office_ui/frontend_src/main.tsx index 0a2e7d1..8f27679 100644 --- a/opc/plugins/office_ui/frontend_src/main.tsx +++ b/opc/plugins/office_ui/frontend_src/main.tsx @@ -1,6 +1,7 @@ import React from 'react' import { createRoot } from 'react-dom/client' import App from './App' +import { I18nProvider } from './i18n' import './index.css' class ErrorBoundary extends React.Component< @@ -66,7 +67,9 @@ if (!root) { try { createRoot(root).render( - + + + ) } catch (err) { diff --git a/opc/plugins/office_ui/frontend_src/org/OrgTab.tsx b/opc/plugins/office_ui/frontend_src/org/OrgTab.tsx index 3d8e363..76cf07e 100644 --- a/opc/plugins/office_ui/frontend_src/org/OrgTab.tsx +++ b/opc/plugins/office_ui/frontend_src/org/OrgTab.tsx @@ -18,6 +18,7 @@ import { EmployeesMarketplace } from './EmployeesMarketplace' import { ConfigImportExportPanel } from './ConfigImportExportPanel' import { OrgCreateModal } from './OrgCreateModal' import { getRuntimeOrgView } from '../lib/runtimeOrg' +import { useI18n } from '../i18n' import './org.css' import './team.css' import './marketplace.css' @@ -122,6 +123,7 @@ export function OrgTab({ onSavedOrgsList, onSavedOrgSaveAs, onSavedOrgCreate, onSavedOrgLoad, onSavedOrgDelete, savedOrgsList, activeSavedOrg, activeSavedOrgVersionAtLoad, orgCreatePending, orgCreateResult, onSelectCorporate, }: OrgTabProps) { + const { t } = useI18n() const [activeTab, setActiveTab] = useState('team') const [createOpen, setCreateOpen] = useState(false) @@ -166,8 +168,8 @@ export function OrgTab({ if (!orgCreateResult || !orgCreateResult.ok) return setCreateOpen(false) setActiveTab('team') - showToast(`Created ${orgCreateResult.organization_name || orgCreateResult.name} and saved automatically`) - }, [orgCreateResult, showToast]) + showToast(t('org.createdToast', { name: orgCreateResult.organization_name || orgCreateResult.name })) + }, [orgCreateResult, showToast, t]) // In org mode: show only user-owned roles. In company mode: show all roles read-only. const allRoles = data?.roles ?? [] @@ -176,13 +178,13 @@ export function OrgTab({ const runtimeView = useMemo(() => getRuntimeOrgView(data), [data]) const activeAgents = useMemo(() => displayEmployees.filter(e => e.linked_agent_id), [displayEmployees]) const configuredOrgName = data?.organization_name?.trim() - const activeOrgLabel = configuredOrgName || humanizeOrgName(activeSavedOrg) || (isCustomMode ? 'Custom org' : 'Corporate company') + const activeOrgLabel = configuredOrgName || humanizeOrgName(activeSavedOrg) || (isCustomMode ? t('org.customOrg') : t('org.corporateCompany')) const activeOrgId = (isCustomMode ? (data?.organization_id || activeSavedOrg) : 'corporate') || '' - const architectureKindLabel = isCustomMode ? 'Saved org' : 'Corporate' + const architectureKindLabel = isCustomMode ? t('org.kind.saved') : t('org.kind.corporate') const architectureStateLabel = isCustomMode - ? activeSavedOrg ? 'Editable saved architecture' : 'Editable draft architecture' - : 'Built-in read-only architecture' - const runtimeStateLabel = runtimeView.frontier.status || runtimeView.projectRun?.status || runtimeView.projectRun?.lifecycle_status || 'ready' + ? activeSavedOrg ? t('org.state.editableSaved') : t('org.state.editableDraft') + : t('org.state.readOnly') + const runtimeStateLabel = runtimeView.frontier.status || runtimeView.projectRun?.status || runtimeView.projectRun?.lifecycle_status || t('common.ready') // Roles that already have at least one non-placeholder employee. const filledRoleIds = useMemo( @@ -210,9 +212,9 @@ export function OrgTab({ setApplyingPresetId(null) versionAtApply.current = -1 setActiveTab('team') - showToast('Architecture applied successfully') + showToast(t('org.architectureApplied')) } - }, [orgVersion, applyingPresetId, showToast]) + }, [orgVersion, applyingPresetId, showToast, t]) const handleApplyPreset = (presetId: string, strategy: string) => { versionAtApply.current = orgVersion // snapshot current version @@ -232,7 +234,7 @@ export function OrgTab({ } if (!data) { - return
Loading organization data...
+ return
{t('org.loading')}
} const installedPackages = data.installed_packages ?? [] @@ -244,7 +246,7 @@ export function OrgTab({
- Company + {t('org.company')} / {architectureKindLabel}
@@ -259,13 +261,13 @@ export function OrgTab({ {data.company_profile || (isCustomMode ? 'custom' : 'corporate')} {activeOrgId && {activeOrgId}} {runtimeStateLabel} - Auto-saved + {t('common.autoSaved')}