leedab 0.7.0 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/apps/console/.next/standalone/.next/BUILD_ID +1 -1
- package/apps/console/.next/standalone/.next/app-build-manifest.json +160 -160
- package/apps/console/.next/standalone/.next/app-path-routes-manifest.json +53 -53
- package/apps/console/.next/standalone/.next/build-manifest.json +2 -2
- package/apps/console/.next/standalone/.next/prerender-manifest.json +12 -12
- package/apps/console/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/apps/console/.next/standalone/.next/server/app/_not-found.rsc +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/agent/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/approvals/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/approvals/stream/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/automation/workflow-blueprint/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/backend/endpoint-spec/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/bootstrap-admin-token/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/brand/brand-audit/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/campaigns/campaign-brief/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/champion/confidence/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/champion/customer/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/champion/dispatches/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/champion/engagement/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/champion/escalate/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/champion/profile/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/champion/screenshare/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/champion/track-question/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/champion/use-case-wiki/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/chat/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/compliance/risk-register-seed/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/computer-use/[id]/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/computer-use/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/concierge/morning-brief/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/contacts/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/content/seo-brief/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/conversations/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/coo/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/cx/escalation-triage/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/cx/health-score/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/data/cohort-brief/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/delivery/qbr-brief/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/delivery/weekly-brief/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/dev/invalidate-cache/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/devops/runbook/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/email/sequence-brief/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/engineering/adr-draft/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/finance/runway-snapshot/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/frontend/component-spec/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/implementation/brief/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/implementation/scaffold-migration-script/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/implementation/scaffold-n8n-workflow/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/implementation/scaffold-skill-override/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/inbox/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/inbox/stream/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/investor/kpi-tracker/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/leedab/channels/status/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/leedab/channels/telegram/connect/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/leedab/channels/whatsapp/connect/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/leedab/gtm/leads/[id]/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/leedab/gtm/leads/[id]/status/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/leedab/gtm/templates/[name]/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/leedab/license/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/leedab/models/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/leedab/providers/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/leedab/sessions/[id]/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/leedab/sessions/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/leedab/team/[id]/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/leedab/team/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/leedab/vault/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/leedab/workflows/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/legal/clause-template/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/manifest/agents/custom/draft/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/manifest/agents/custom/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/manifest/agents/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/marketing/cadence-planner/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/marketing/competitive-snapshot/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/marketplace/catalogue/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/onboarding/engagement-plan/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/onboarding/kickoff-brief/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/openclaw/status/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/ops/dispatch-brief/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/pack/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/people/job-brief/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/preferences/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/procurement/po-brief/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/product/prd-draft/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/research/prospect-intel/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/research/search/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/routing/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/runs/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/sales/pipeline-summary/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/sales/prospect-brief/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/solutions/build/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/solutions/quickstart-regenerate/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/solutions/refine/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/strategy/market-pulse/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/telegram/[customerId]/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/templates/regenerate/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/uploads/[id]/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/uploads/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/usage/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/video/video-script/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/webhooks/workflow/[id]/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/workflows/[id]/history/[runId]/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/workflows/[id]/history/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/workflows/[id]/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/workflows/[id]/run/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/workflows/route_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/gtm/page_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/index.html +1 -1
- package/apps/console/.next/standalone/.next/server/app/index.rsc +2 -2
- package/apps/console/.next/standalone/.next/server/app/page.js +2 -2
- package/apps/console/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/apps/console/.next/standalone/.next/server/app-paths-manifest.json +53 -53
- package/apps/console/.next/standalone/.next/server/functions-config-manifest.json +46 -46
- package/apps/console/.next/standalone/.next/server/pages/404.html +1 -1
- package/apps/console/.next/standalone/.next/server/pages/500.html +1 -1
- package/apps/console/.next/standalone/.next/static/chunks/7973-072db1a3857a8fe9.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/page-bdfdbf7b657f4722.js +1 -0
- package/apps/console/.next/standalone/package.json +1 -0
- package/apps/console/.next/static/chunks/7973-072db1a3857a8fe9.js +1 -0
- package/apps/console/.next/static/chunks/app/page-bdfdbf7b657f4722.js +1 -0
- package/package.json +1 -1
- package/apps/console/.next/standalone/.next/static/chunks/8118-681f2688832ccc66.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/page-99cabbb2e5f97301.js +0 -1
- package/apps/console/.next/static/chunks/8118-681f2688832ccc66.js +0 -1
- package/apps/console/.next/static/chunks/app/page-99cabbb2e5f97301.js +0 -1
- /package/apps/console/.next/standalone/.next/static/{LfJRNktHTtwdMlKYf7HF4 → B4g4e91OJP29sEqgIs76V}/_buildManifest.js +0 -0
- /package/apps/console/.next/standalone/.next/static/{LfJRNktHTtwdMlKYf7HF4 → B4g4e91OJP29sEqgIs76V}/_ssgManifest.js +0 -0
- /package/apps/console/.next/static/{LfJRNktHTtwdMlKYf7HF4 → B4g4e91OJP29sEqgIs76V}/_buildManifest.js +0 -0
- /package/apps/console/.next/static/{LfJRNktHTtwdMlKYf7HF4 → B4g4e91OJP29sEqgIs76V}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8974],{5086:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>tT});var a=n(5155),i=n(2115),r=n(856);let l={coo:{id:"coo",name:"COO",tagline:"Org coordination, daily briefs",description:"Cross-team coordination, priority calls, daily ops briefs, delegation recommendations.",defaultModel:"claude-opus-4-7",availableModels:["claude-opus-4-7","claude-sonnet-4-6"],accent:"#10b981",team:"executive",contextFiles:["context/product-brief.md","context/metrics.md","context/roadmap.md","context/skills/ops-skills.md","context/skills/dashboard-ops.md"],agentFile:"agents/coo-agent.md",code:"COO",section:"\xa7 00",status:"active",tasks:["Drafted weekly ops brief","Flagged 2 cross-team blockers"]},marketing:{id:"marketing",name:"Marketing",tagline:"Team lead, brand, ICP, strategy",description:"Marketing team lead. Brand voice, ICP definition, marketing strategy, and cross-channel oversight.",defaultModel:"claude-sonnet-4-6",availableModels:["claude-sonnet-4-6","claude-opus-4-7","claude-haiku-4-5"],accent:"#f59e0b",team:"marketing",contextFiles:["context/product-brief.md","context/brand-guide.md","context/customer-personas.md","context/competitor-landscape.md","context/skills/marketing-skills.md","context/skills/content-skills.md"],agentFile:"agents/marketing-agent.md",code:"MKT",section:"\xa7 10",status:"active",tasks:["Drafted 3 email sequences","Updated ICP scoring"]},content:{id:"content",name:"Content",tagline:"Copywriting, SEO, social, newsletters",description:"Conversion copywriting, SEO blog posts, social media content, newsletters, and case studies.",defaultModel:"claude-sonnet-4-6",availableModels:["claude-sonnet-4-6","claude-opus-4-7","claude-haiku-4-5"],accent:"#f59e0b",team:"marketing",contextFiles:["context/product-brief.md","context/brand-guide.md","context/customer-personas.md","context/skills/content-skills.md"],agentFile:"agents/content-agent.md",code:"CNT",section:"\xa7 11",status:"active",tasks:["Published 2 SEO blog posts","Drafted newsletter #8"]},video:{id:"video",name:"Video",tagline:"AI video, scripts, programmatic production",description:"Video production using AI tools: Hyperframes, HeyGen, Veo, Runway. Scripts, storyboards, and demo walkthroughs.",defaultModel:"claude-sonnet-4-6",availableModels:["claude-sonnet-4-6","claude-opus-4-7"],accent:"#f59e0b",team:"marketing",contextFiles:["context/product-brief.md","context/brand-guide.md","context/customer-personas.md","context/skills/video-skills.md"],agentFile:"agents/video-agent.md",code:"VDO",section:"\xa7 12",status:"idle",tasks:["Scripted demo walkthrough","LinkedIn video brief"]},campaigns:{id:"campaigns",name:"Campaigns",tagline:"Paid ads, A/B tests, growth experiments",description:"Paid acquisition on Google/Meta/LinkedIn, A/B test programs, UTM taxonomy, CAC/LTV analysis, ad copy variants.",defaultModel:"claude-sonnet-4-6",availableModels:["claude-sonnet-4-6","claude-opus-4-7"],accent:"#f59e0b",team:"marketing",contextFiles:["context/product-brief.md","context/customer-personas.md","context/competitor-landscape.md","context/metrics.md","context/skills/campaigns-skills.md"],agentFile:"agents/campaigns-agent.md",code:"CMP",section:"\xa7 13",status:"active",tasks:["Launched Google Search test","A/B test plan for headlines"]},email:{id:"email",name:"Email",tagline:"Sequences, cold outreach, nurture flows",description:"Email sequences, cold outreach campaigns, lifecycle drips, and re-engagement flows.",defaultModel:"claude-sonnet-4-6",availableModels:["claude-sonnet-4-6","claude-opus-4-7","claude-haiku-4-5"],accent:"#f59e0b",team:"marketing",contextFiles:["context/product-brief.md","context/brand-guide.md","context/customer-personas.md","context/skills/email-skills.md"],agentFile:"agents/email-agent.md",code:"EML",section:"\xa7 14",status:"active",tasks:["Wrote 5-email welcome sequence","Cold outreach drafted for 3 segments"]},product:{id:"product",name:"Product",tagline:"Specs, PRDs, release notes",description:"Turns fuzzy ideas into implementable specs. Feature docs, user stories, release notes.",defaultModel:"claude-sonnet-4-6",availableModels:["claude-sonnet-4-6","claude-opus-4-7"],accent:"#fbbf24",team:"product",contextFiles:["context/product-brief.md","context/roadmap.md","context/skills/product-skills.md"],agentFile:"agents/product-agent.md",code:"PRD",section:"\xa7 30",status:"active",tasks:["Summarised 47 user tickets","Updated roadmap priorities"]},engineering:{id:"engineering",name:"Engineering",tagline:"Tech lead, architecture, code review",description:"Engineering team lead. Architecture decisions, code review, technical documentation, ADRs.",defaultModel:"claude-opus-4-7",availableModels:["claude-opus-4-7","claude-sonnet-4-6","claude-opus-4-6"],accent:"#d97706",team:"engineering",contextFiles:["context/product-brief.md"],agentFile:"agents/engineering-agent.md",code:"ENG",section:"\xa7 40",status:"active",tasks:["Reviewed 4 PRs","Provider abstraction ADR"]},frontend:{id:"frontend",name:"Frontend",tagline:"React, UI, design implementation",description:"React/Next.js/Tailwind specialist. Component specs, UI implementation, accessibility, performance.",defaultModel:"claude-sonnet-4-6",availableModels:["claude-sonnet-4-6","claude-opus-4-7"],accent:"#d97706",team:"engineering",contextFiles:["context/product-brief.md"],agentFile:"agents/frontend-agent.md",code:"FE",section:"\xa7 41",status:"active",tasks:["Shipped agent belt redesign","Accessibility audit pass"]},backend:{id:"backend",name:"Backend",tagline:"APIs, databases, server architecture",description:"Node.js/TypeScript specialist. API design, database schemas, server architecture, security.",defaultModel:"claude-opus-4-7",availableModels:["claude-opus-4-7","claude-sonnet-4-6"],accent:"#d97706",team:"engineering",contextFiles:["context/product-brief.md"],agentFile:"agents/backend-agent.md",code:"BE",section:"\xa7 42",status:"idle",tasks:["Built SSE streaming endpoint","Added Zod validation layer"]},devops:{id:"devops",name:"DevOps",tagline:"CI/CD, infra, monitoring, runbooks",description:"GitHub Actions, Docker, deployment pipelines, uptime monitoring, incident runbooks.",defaultModel:"claude-sonnet-4-6",availableModels:["claude-sonnet-4-6","claude-opus-4-7"],accent:"#d97706",team:"engineering",contextFiles:["context/product-brief.md"],agentFile:"agents/devops-agent.md",code:"DVP",section:"\xa7 43",status:"idle",tasks:["Set up CI pipeline","Deploy runbook written"]},strategy:{id:"strategy",name:"Strategy",tagline:"GTM, competitive, pricing",description:"GTM plans, competitive analysis, pricing strategy, roadmap prioritization, OKRs.",defaultModel:"claude-opus-4-7",availableModels:["claude-opus-4-7","claude-sonnet-4-6"],accent:"#f59e0b",team:"strategy",contextFiles:["context/product-brief.md","context/competitor-landscape.md","context/customer-personas.md","context/metrics.md","context/roadmap.md","context/skills/strategy-investor-skills.md"],agentFile:"agents/strategy-agent.md",code:"STR",section:"\xa7 50",status:"active",tasks:["Scanned 12 competitor updates","TAM model draft"]},sales:{id:"sales",name:"Sales",tagline:"Deals, proposals, outreach, pipeline",description:"Deal-stage work: proposal decks, outreach sequences, demo scripts, objection handling, CRM notes.",defaultModel:"claude-sonnet-4-6",availableModels:["claude-sonnet-4-6","claude-opus-4-7"],accent:"#10b981",team:"sales",contextFiles:["context/product-brief.md","context/customer-personas.md","context/competitor-landscape.md","context/skills/sales-skills.md"],agentFile:"agents/sales-agent.md",code:"SLS",section:"\xa7 20",status:"active",tasks:["3 outreach sequences ready","Demo script v2 done"]},finance:{id:"finance",name:"Finance",tagline:"Runway, burn, scenario planning",description:"Internal financial ops: runway models, burn analysis, scenario planning, budget vs actuals.",defaultModel:"claude-opus-4-7",availableModels:["claude-opus-4-7","claude-sonnet-4-6"],accent:"#10b981",team:"finance",contextFiles:["context/product-brief.md","context/metrics.md","context/skills/finance-skills.md"],agentFile:"agents/finance-agent.md",code:"CFN",section:"\xa7 70",status:"active",tasks:["Runway model updated","Q2 budget vs actuals"]},cx:{id:"cx",name:"Customer Success",tagline:"Onboarding, health scores, churn",description:"Customer health scoring, onboarding playbooks, churn risk memos, QBR decks, escalation templates.",defaultModel:"claude-sonnet-4-6",availableModels:["claude-sonnet-4-6","claude-opus-4-7"],accent:"#10b981",team:"cx",contextFiles:["context/product-brief.md","context/customer-personas.md","context/metrics.md","context/skills/cx-skills.md"],agentFile:"agents/cx-agent.md",code:"CXS",section:"\xa7 80",status:"active",tasks:["Onboarding playbook v1","Health score framework"]},investor:{id:"investor",name:"Investor",tagline:"Deck, updates, fundraising",description:"Pitch decks, investor updates, financial models, due diligence prep.",defaultModel:"claude-opus-4-7",availableModels:["claude-opus-4-7","claude-sonnet-4-6"],accent:"#fde68a",team:"investor",contextFiles:["context/product-brief.md","context/metrics.md","context/competitor-landscape.md","context/customer-personas.md","context/skills/strategy-investor-skills.md"],agentFile:"agents/investor-agent.md",code:"INV",section:"\xa7 71",status:"active",tasks:["Board memo draft ready","KPI tracker updated"]},legal:{id:"legal",name:"Legal",tagline:"Contracts, privacy, compliance",description:"Customer contracts, privacy policy, data handling compliance, term sheets, due diligence.",defaultModel:"claude-opus-4-7",availableModels:["claude-opus-4-7","claude-sonnet-4-6"],accent:"#6366f1",team:"legal",contextFiles:["context/product-brief.md"],agentFile:"agents/legal-agent.md",code:"LGL",section:"\xa7 90",status:"idle",tasks:["Reviewed customer MSA","Privacy policy gap analysis"]},automation:{id:"automation",name:"Automation",tagline:"Build & manage n8n workflows",description:"Build, deploy, and manage n8n workflows from natural language. Connect any app, trigger any automation, inspect execution history.",defaultModel:"claude-opus-4-7",availableModels:["claude-opus-4-7","claude-sonnet-4-6"],accent:"#f97316",team:"automation",contextFiles:["context/product-brief.md","context/skills/n8n-skills.md","context/skills/dashboard-ops.md"],agentFile:"agents/automation-agent.md",code:"N8N",section:"\xa7 45",status:"active",tasks:["Built 3 n8n workflows","Lead capture → Sheets live"]},data:{id:"data",name:"Data",tagline:"Metrics, cohorts, retention",description:"Product analytics, cohort analysis, funnel metrics, retention modeling, growth instrumentation.",defaultModel:"claude-opus-4-7",availableModels:["claude-opus-4-7","claude-sonnet-4-6"],accent:"#06b6d4",team:"data",contextFiles:["context/product-brief.md","context/metrics.md"],agentFile:"agents/data-agent.md",code:"DAT",section:"\xa7 72",status:"active",tasks:["D7/D30 retention model","Funnel drop-off analysis"]},ops:{id:"ops",name:"Operations",tagline:"Hiring, internal, partnerships",description:"Hiring posts, internal processes, support templates, partner outreach.",defaultModel:"claude-sonnet-4-6",availableModels:["claude-sonnet-4-6","claude-opus-4-7","claude-haiku-4-5"],accent:"#fbbf24",team:"ops",contextFiles:["context/product-brief.md","context/brand-guide.md","context/skills/ops-skills.md"],agentFile:"agents/ops-agent.md",code:"OPS",section:"\xa7 60",status:"active",tasks:["Drafted 2 job posts","Payroll files sent"]},concierge:{id:"concierge",name:"Concierge",tagline:"Calendar, travel, life logistics",description:"Founder-only personal assistant. Calendar defence, travel, expenses, meeting prep.",defaultModel:"claude-sonnet-4-6",availableModels:["claude-sonnet-4-6","claude-opus-4-7","claude-haiku-4-5"],accent:"#10b981",team:"executive",contextFiles:["context/skills/concierge-skills.md"],agentFile:"agents/concierge-agent.md",code:"CON",section:"\xa7 01",status:"active",tasks:["Daily brief sent 07:00","Booked Sydney→Melbourne flights"]},brand:{id:"brand",name:"Brand",tagline:"Visual identity, decks, guardrails",description:"Brand consistency, deck design, visual identity, asset briefs, brand audits.",defaultModel:"claude-sonnet-4-6",availableModels:["claude-sonnet-4-6","claude-opus-4-7","claude-haiku-4-5"],accent:"#f59e0b",team:"marketing",contextFiles:["context/brand-guide.md","context/skills/brand-skills.md","context/skills/marketing-skills.md"],agentFile:"agents/brand-agent.md",code:"BR",section:"\xa7 15",status:"active",tasks:["Audited investor deck v3","Drafted social card spec"]},research:{id:"research",name:"Research",tagline:"Cited findings, prospect briefs, intel",description:"Competitive intel, market sizing, prospect briefs, vendor evaluation. Cite or shut up.",defaultModel:"claude-opus-4-7",availableModels:["claude-opus-4-7","claude-sonnet-4-6"],accent:"#4a7c8a",team:"strategy",contextFiles:["context/product-brief.md","context/competitor-landscape.md","context/skills/research-skills.md"],agentFile:"agents/research-agent.md",code:"RES",section:"\xa7 51",status:"active",tasks:["Prospect brief: Acme Logistics","Vendor eval: EU payroll tools"]},people:{id:"people",name:"People",tagline:"Hiring, onboarding, leave, performance",description:"HR for SMBs. Job descriptions, onboarding plans, performance reviews, employee comms.",defaultModel:"claude-sonnet-4-6",availableModels:["claude-sonnet-4-6","claude-opus-4-7","claude-haiku-4-5"],accent:"#8a5e7a",team:"people",contextFiles:["context/product-brief.md","context/brand-guide.md","context/skills/people-skills.md"],agentFile:"agents/people-agent.md",code:"PPL",section:"\xa7 55",status:"active",tasks:["Drafted senior BE engineer JD","Q2 review template ready"]},procurement:{id:"procurement",name:"Procurement",tagline:"Suppliers, POs, freight, disputes",description:"Purchase orders, supplier scoring, freight rate sourcing, deduction disputes.",defaultModel:"claude-sonnet-4-6",availableModels:["claude-sonnet-4-6","claude-opus-4-7","claude-haiku-4-5"],accent:"#7a6248",team:"ops",contextFiles:["context/product-brief.md","context/skills/procurement-skills.md","context/skills/finance-skills.md"],agentFile:"agents/procurement-agent.md",code:"PRC",section:"\xa7 61",status:"active",tasks:["Negotiated SYD→MEL rate","Coles deduction dispute drafted"]},compliance:{id:"compliance",name:"Compliance",tagline:"SOC 2, ISO, insurance, risk register",description:"Compliance frameworks, audit prep, insurance tracking, vendor due diligence, risk register.",defaultModel:"claude-sonnet-4-6",availableModels:["claude-sonnet-4-6","claude-opus-4-7"],accent:"#5a6b80",team:"legal",contextFiles:["context/product-brief.md","context/skills/compliance-skills.md"],agentFile:"agents/compliance-agent.md",code:"RSK",section:"\xa7 91",status:"active",tasks:["SOC 2 gap analysis v1","Risk register Q2 review"]},delivery:{id:"delivery",name:"Delivery",tagline:"Lifecycle ownership, 30/60/90, escalations",description:"Head of Delivery. Owns paying-client engagements signature → first 90 days. Delegates to Solutions, Onboarding, Implementation. Surfaces what needs founders.",defaultModel:"claude-opus-4-7",availableModels:["claude-opus-4-7","claude-sonnet-4-6"],accent:"#9b6e2a",team:"lifecycle",contextFiles:["context/product-brief.md","context/metrics.md","context/skills/cx-skills.md"],agentFile:"agents/delivery-agent.md",code:"DEL",section:"\xa7 95",status:"active",tasks:["30/60/90 plan drafted for new pilot","Weekly delivery brief sent to founders"]},solutions:{id:"solutions",name:"Solutions",tagline:"Pre-sale prospect demos, /build trigger",description:"Pre-sale prospect demos. Mina sends `/build <slug>` from Telegram → drafts manifest preview → on `go`, commits to private prospect repo with shareable demo URL.",defaultModel:"claude-sonnet-4-6",availableModels:["claude-sonnet-4-6","claude-opus-4-7"],accent:"#9b6e2a",team:"lifecycle",contextFiles:["context/product-brief.md","context/customer-personas.md","context/skills/sales-skills.md"],agentFile:"agents/solutions-agent.md",code:"SOL",section:"\xa7 96",status:"active",tasks:["Built 3 prospect demos via /build","Logistics use-case wiki updated"]},onboarding:{id:"onboarding",name:"Onboarding",tagline:"Day 0–90 lifecycle, kickoff briefs, milestones",description:"Owns the first 30–90 days of a paying client's life. Goal: 'replaced a real task' by Day 7, 'I'd be sad to lose this' by Day 30. Reports to Delivery.",defaultModel:"claude-sonnet-4-6",availableModels:["claude-sonnet-4-6","claude-opus-4-7","claude-haiku-4-5"],accent:"#9b6e2a",team:"lifecycle",contextFiles:["context/product-brief.md","context/skills/cx-skills.md"],agentFile:"agents/onboarding-agent.md",code:"ONB",section:"\xa7 97",status:"active",tasks:["Day 7 check-in scheduled","Kickoff brief drafted for new client"]},implementation:{id:"implementation",name:"Implementation",tagline:"Custom integrations, data migrations, technical bring-up",description:"Technical bring-up beyond the standard install. Custom integrations, data migrations, bespoke workflows. Writes a one-page implementation brief before code.",defaultModel:"claude-sonnet-4-6",availableModels:["claude-sonnet-4-6","claude-opus-4-7"],accent:"#9b6e2a",team:"lifecycle",contextFiles:["context/product-brief.md","context/skills/devops-skills.md"],agentFile:"agents/implementation-agent.md",code:"IMP",section:"\xa7 98",status:"active",tasks:["Custom Cario TMS integration spec drafted","Xero pull integration scoped"]},champion:{id:"champion",name:"Champion",tagline:"Customer-side enablement coach, 1:1 with the Champion",description:"Customer-side enablement. Serves the customer's designated Champion 1:1 — Telegram-first, always-on. Goal: Champion self-sufficiency. Escalates to Implementation/Onboarding, never directly to founders.",defaultModel:"claude-sonnet-4-6",availableModels:["claude-sonnet-4-6","claude-opus-4-7"],accent:"#9b6e2a",team:"lifecycle",contextFiles:["context/product-brief.md","context/skills/cx-skills.md"],agentFile:"agents/champion-agent.md",code:"CHM",section:"\xa7 99",status:"active",tasks:["Day 30 milestone walkthrough delivered","Workflow-of-the-week DM sent"]}},o=["coo","concierge","procurement","cx","finance","sales","people"],s=[{label:"EXECUTIVE",color:"#c95c0a",ids:["coo","concierge"]},{label:"SUPPLY",color:"#7a6248",ids:["procurement"]},{label:"SUPPORT",color:"#8a4a3a",ids:["cx"]},{label:"MONEY",color:"#7a8e5a",ids:["finance"]},{label:"SALES",color:"#b8633a",ids:["sales"]},{label:"PEOPLE",color:"#8a5e7a",ids:["people"]}],d="leedab_admin_token",c="x-leedab-admin-token";class p extends Error{constructor(){super("admin token not present in sessionStorage"),this.name="AdminTokenMissingError"}}function u(){try{return window.sessionStorage.getItem(d)}catch(e){return null}}function h(e){let t=e.trim();if(t)try{window.sessionStorage.setItem(d,t)}catch(e){}}function g(){try{window.sessionStorage.removeItem(d)}catch(e){}}function m(){return null!==u()}async function f(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=u();if(!n)throw new p;let a=new Headers(t.headers);return a.set(c,n),fetch(e,{...t,headers:a})}async function x(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=u();if(!n)return null;let a=new Headers(t.headers);return a.set(c,n),fetch(e,{...t,headers:a})}async function y(e){if(401!==e.status&&503!==e.status)return!1;try{let t=await e.clone().json();return"admin_required"===t.error||"admin_not_configured"===t.error}catch(e){return!1}}let v=(0,i.createContext)({pack:null,loading:!0,refresh:async()=>{}});function b(e){let{children:t}=e,[n,r]=(0,i.useState)(null),[l,o]=(0,i.useState)(!0),s=(0,i.useCallback)(async()=>{try{let e=window.location.search,t=await fetch("/api/pack".concat(e));if(!t.ok)throw Error("pack ".concat(t.status));let n=await t.json();r(n)}catch(e){r(null)}finally{o(!1)}},[]);return(0,i.useEffect)(()=>{let e=!1;return(async()=>{let t=new AbortController,n=setTimeout(()=>t.abort(),3e3);try{await x("/api/leedab/license",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"revalidate"}),signal:t.signal})}catch(e){}finally{clearTimeout(n)}e||await s()})(),()=>{e=!0}},[s]),(0,a.jsx)(v.Provider,{value:{pack:n,loading:l,refresh:s},children:t})}function j(){return(0,i.useContext)(v)}let k="var(--paper)",S="var(--paper-2)",w="var(--paper-3)",T="var(--hair)",C="var(--hair-2)",F="#B8540B",R="#B8540B33",E="var(--f-mono)",z="var(--f-body)",B="var(--f-display)",M="var(--f-serif)",I=Object.fromEntries(Object.entries(l).map(e=>{let[t,n]=e;return[t,n.code]})),A=Object.fromEntries(Object.entries(l).map(e=>{let[t,n]=e;return[t,n.section]})),D=Object.fromEntries(Object.entries(l).map(e=>{let[t,n]=e;return[t,n.status]})),W=Object.fromEntries(Object.entries(l).map(e=>{let[t,n]=e;return[t,n.tasks]})),O={coo:["Draft today's ops brief — what's moving, what's blocked, what needs founder input.","We're launching a new campaign next week. Build a cross-team plan for Marketing, Product, and Engineering.","Which team is most bottlenecked right now and what should we do about it?"],marketing:["Write a LinkedIn post about why local-first AI beats cloud for SMBs.","Draft 3 subject line variants for a cold outreach email to logistics companies.","Write a one-paragraph product description for our website hero section."],content:["Write a 1000-word SEO post targeting 'how to automate payroll deductions without APIs'.","Draft newsletter #8 — main story: our new computer-use workflow. Two short items.","Write a case study for a 12-truck logistics fleet that cut payroll time by 80%."],video:["Write a 90-second LinkedIn video script: the problem with manual ops reconciliation.","Storyboard a 4-minute YouTube demo: LeedAB automating a driver hours workflow.","Write a talking-head outline for the founder: 'why we built LeedAB locally-first'."],campaigns:["Design a Google Search campaign targeting SMB ops managers. ICP, ad groups, copy variants.","Write an A/B test plan for our LinkedIn headline: pain-first vs outcome-first.","Build a UTM taxonomy for Q2. Channels: Google, LinkedIn, newsletter, referral."],email:["Write a 5-email welcome sequence for a new SMB customer who just signed up to LeedAB.","Write a cold outreach sequence targeting ops managers at 10-50 person logistics companies.","Build a re-engagement sequence for customers who haven't logged in for 30 days."],automation:["Build me a workflow: when a new lead fills out our contact form, add them to Google Sheets and send a Slack notification.","Create a daily 9am workflow that fetches our top metrics and sends a summary email.","List all my active n8n workflows and show me which ones have run in the last 24 hours."],product:["Draft a feature spec for voice message tasks via WhatsApp.","Write user stories for the onboarding flow for a new SMB customer.","Create acceptance criteria for computer-use task execution."],engineering:["Write an ADR for the provider abstraction layer (Anthropic / OpenAI / local).","Review the streaming architecture and suggest reliability improvements.","Design the data model for multi-tenant task queues."],frontend:["Write a component spec for the AgentCard — props, variants, hover/selected states.","Review our current Tailwind setup and flag performance or accessibility issues.","Design the empty state for a new agent with no messages yet."],backend:["Design the API for multi-agent broadcast: one prompt → all 18 agents in parallel.","Write a Zod schema for the /api/chat request body with full validation.","ADR: when should we migrate from SQLite to Postgres? What's the trigger?"],devops:["Write a GitHub Actions CI pipeline: typecheck → lint → test → build → deploy.","Write a runbook for: deploy failed on Railway, dashboard is down, it's 2am.","Design the Docker build for the Next.js dashboard — multi-stage, minimal image."],strategy:["Build a one-page competitive battlecard: LeedAB vs Zapier.","What's our ideal ICP and why? Give me a crisp two-paragraph answer.","Suggest three pricing tiers with rationale for each."],sales:["Write a 3-email cold outreach sequence for ops managers at 10–50 person logistics SMBs.","Write a demo script: one workflow, 6 minutes, maximum impact.","Build an objection handling guide for 'we already use Zapier'."],finance:["Build a runway model: $180k cash, $22k monthly burn. Three scenarios.","Calculate CAC and LTV: $8k/month spend, 4 new customers, $400 ACV, 24-month lifetime.","Write a budget vs actuals template for a 6-category monthly review."],"customer success":["Write an onboarding playbook for a new SMB customer — Day 1, Week 1, Month 1.","Design a customer health score framework for our ICP (5–50 person logistics SMB).","Write a QBR deck template for a quarterly review with a mid-tier customer."],investor:["Draft the April investor update. Wins: 30 customers. Ask: senior Node engineer hire.","Write a two-sentence answer to 'What makes LeedAB defensible?'","Summarise our traction story for a seed-stage VC intro email."],operations:["Write a job post for a senior Node.js engineer, AU remote, $160-200k + equity.","Draft a partnership outreach email to a WhatsApp Business API reseller.","Write an internal onboarding doc for a new founding team member."],legal:["Review our standard customer MSA — flag any clauses that expose us given our local-first data model.","Draft a privacy policy for a local-first AI agent that stores all data on the customer's machine.","What should we have in order before a seed raise? Give me a legal due diligence checklist."],data:["Design a retention dashboard for a local-first SMB tool. What D1/D7/D30 metrics matter most?","We have 30 customers. Build a cohort analysis framework to identify which segments stick longest.","Map our full activation funnel from install → first workflow live. What are the drop-off points?"],concierge:["Send my morning brief — schedule, top priority, one decision to make today.","I'm flying Sydney → Melbourne next Tuesday for a 2pm meeting. Build the trip itinerary.","Categorise my last 30 days of expenses and flag anything unusual."],brand:["Audit slide 4 of our investor deck — three things to fix, one to keep.","Write an asset brief for a launch banner: 1200\xd7630, ICP = logistics SMB, tone confident-direct.","Review our marketing site visuals and flag anything off-brand."],delivery:["Draft a 30/60/90 engagement plan for a new logistics customer signed yesterday.","Build this week's delivery brief — what's moving, what's at risk, what needs founders.","Score our active customers on health (red/amber/green) and propose one action per amber/red."],solutions:["/build north-shore-freight, NSW logistics co, 200 dispatches/day, similar to Tarheel","/build hudson-fab, fabless designer, advanced packaging allocation pain","Show me the last three prospects you built and which ones converted."],onboarding:["Draft the Day 0 kickoff brief for a new logistics client — three week-1 wins, calendar invite.","Run the Day 30 check-in template against this client's recent activity and flag anything drifting.","Write a one-paragraph 'first task replaced' celebration message for a Day 7 milestone."],implementation:["Write a one-page implementation brief for pulling Cario TMS dispatches into the ops workflow.","Scope a Xero direct-read integration for the finance agent — risks, effort, in/out of scope.","Three customers want the same MYOB sync — frame this as a reusable integration, not a one-off."],champion:["The Champion at Tarheel hasn't messaged in 8 days — draft a check-in DM.","Walk a Champion through adding their first n8n workflow without doing it for them.","The Champion is asking the same routing question for the third time — surface a pattern + adjust pacing."],research:["Build a prospect brief on Acme Logistics — recent moves, tech stack signals, decision-makers.","Compare 3 competitor agentic ops platforms across deployment, voice channels, computer-use, pricing.","Size the AU SMB logistics ops automation market — TAM/SAM/SOM with sources."],people:["Write a job description for a senior backend engineer, Sydney remote, $160-200k + 0.25-0.75% equity.","Build an onboarding plan for a new ops hire starting Monday — day 1, week 1, month 1.","Draft a Q2 performance review template — quarterly cadence, 15-min written + 15-min call."],procurement:["Compare these 3 freight quotes for SYD→MEL 32 pallets and recommend one.","Build a supplier scorecard for our top carrier this quarter — on-time, defects, response time, pricing.","Coles deducted $2,400 against PO 8821. Draft the dispute response with evidence."],compliance:["Run a SOC 2 Type 1 gap analysis for us — top 5 gaps blocking certification today.","Build a risk register starter — 8-10 likely operational risks for a 12-person SaaS.","Draft an Acceptable Use Policy in plain English — one page, examples on every rule."]};function L(e){let{toasts:t,onDismiss:n}=e;return 0===t.length?null:(0,a.jsx)("div",{style:{position:"fixed",bottom:24,right:24,zIndex:2e3,display:"flex",flexDirection:"column",gap:8},children:t.map(e=>{let t="error"===e.type?{bg:"#fef2f2",border:"#fca5a5",icon:"⚠",fg:"#1a1713"}:"success"===e.type?{bg:"#f0fdf4",border:"#86efac",icon:"✓",fg:"#1a1713"}:{bg:"var(--paper-2)",border:"var(--hair)",icon:"ⓘ",fg:"var(--ink)"};return(0,a.jsxs)("div",{className:"animate-fade-up",style:{display:"flex",alignItems:"center",gap:10,padding:"10px 14px",borderRadius:4,background:t.bg,border:"1px solid ".concat(t.border),boxShadow:"0 4px 16px rgba(26,23,19,0.1)",fontFamily:z,fontSize:13,color:t.fg,maxWidth:420},children:[(0,a.jsx)("span",{style:{fontSize:14,flexShrink:0},children:t.icon}),(0,a.jsx)("span",{style:{flex:1},children:e.message}),e.action&&(0,a.jsx)("button",{onClick:()=>{e.action.onClick(),n(e.id)},style:{background:"none",border:"none",cursor:"pointer",color:F,fontFamily:E,fontSize:10,letterSpacing:"0.1em",textTransform:"uppercase",padding:"2px 6px",flexShrink:0},children:e.action.label}),(0,a.jsx)("button",{onClick:()=>n(e.id),style:{background:"none",border:"none",cursor:"pointer",color:"var(--ink-5)",fontSize:16,lineHeight:1,padding:0,flexShrink:0},children:"\xd7"})]},e.id)})})}function N(e){let{onClose:t}=e;return(0,a.jsx)("div",{onClick:t,style:{position:"fixed",inset:0,background:"rgba(0,0,0,0.7)",zIndex:1100,display:"flex",alignItems:"center",justifyContent:"center",WebkitBackdropFilter:"blur(4px)",backdropFilter:"blur(4px)"},children:(0,a.jsxs)("div",{onClick:e=>e.stopPropagation(),className:"animate-palette-drop",style:{width:520,maxHeight:"80vh",background:"var(--paper-3)",border:"1px solid ".concat(T),borderRadius:6,overflow:"hidden",display:"flex",flexDirection:"column",boxShadow:"0 24px 80px rgba(0,0,0,0.6)"},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 18px",borderBottom:"1px solid ".concat(T)},children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{style:{fontFamily:E,fontSize:9,color:F,letterSpacing:"0.16em"},children:"SHORTCUTS"}),(0,a.jsx)("div",{style:{fontFamily:B,fontSize:22,fontWeight:500,color:"var(--ink)",letterSpacing:"-0.01em"},children:"Keyboard reference."})]}),(0,a.jsx)("button",{onClick:t,style:{background:"none",border:"none",color:"var(--ink-5)",cursor:"pointer",fontSize:20,lineHeight:1},children:"\xd7"})]}),(0,a.jsx)("div",{style:{overflowY:"auto",padding:"16px 18px"},children:[{title:"Navigation",rows:[{keys:["⌘","L"],label:"Open command palette / search"},{keys:["?"],label:"Show this keyboard shortcuts panel"},{keys:["Esc"],label:"Close any open overlay / drawer"}]},{title:"Chat",rows:[{keys:["/"],label:"Focus the message input"},{keys:["b"],label:"Toggle broadcast mode"},{keys:["Enter"],label:"Send the message"},{keys:["Shift","Enter"],label:"New line in the message"}]},{title:"Files",rows:[{keys:["Drop"],label:"Drop files anywhere on the input to attach"},{keys:["⌘","V"],label:"Paste an image to attach inline"}]}].map(e=>(0,a.jsxs)("div",{style:{marginBottom:18},children:[(0,a.jsx)("div",{style:{fontFamily:E,fontSize:9,color:"var(--ink-5)",letterSpacing:"0.14em",marginBottom:8},children:e.title.toUpperCase()}),e.rows.map((t,n)=>(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,padding:"6px 0",borderBottom:n===e.rows.length-1?"none":"1px solid ".concat(C)},children:[(0,a.jsx)("div",{style:{display:"flex",gap:4},children:t.keys.map((e,t)=>(0,a.jsx)("kbd",{style:{fontFamily:E,fontSize:10,padding:"2px 6px",background:"var(--paper-2)",border:"1px solid ".concat(T),borderRadius:3,color:"var(--ink-2)",minWidth:18,textAlign:"center"},children:e},t))}),(0,a.jsx)("div",{style:{fontSize:13,color:"var(--ink-3)"},children:t.label})]},n))]},e.title))})]})})}function P(e){let t,n=new Set,a=[],i=new Set(["I","We","You","They","It","He","She","Our","My","The","A","An","Just","Yes","No","OK","Hi","Hey","Hello","Draft","Write","Send","Email","Schedule","Create","Build","List","Show","Tell","Make","Find","Plan","Get","Series","Mac","API","URL","ID","PR","QBR","AI","Day","Week","Month"]),r=/\b[A-Z][a-z]+(?:[.\-][A-Z][a-z]+)*(?:\s[A-Z][a-z]+){0,2}\b/g;for(;null!==(t=r.exec(e));){let e=t[0];n.has(e)||!e.includes(" ")&&i.has(e)||(n.add(e),a.push({id:"cand-".concat(a.length),literal:e,suggestedName:U(e),suggestedLabel:e.length<=30?"".concat(e.split(" ")[0]," (override)"):"Subject",type:"text",accepted:!0}))}let l=/"([^"\n]{2,80})"|'([^'\n]{2,80})'/g;for(;null!==(t=l.exec(e));){var o;let e=t[0],i=null!=(o=t[1])?o:t[2];n.has(e)||n.has(i)||(n.add(e),a.push({id:"cand-".concat(a.length),literal:e,suggestedName:U(i)||"value_".concat(a.length),suggestedLabel:i.length<=30?i:"Quoted text",type:i.length>60?"textarea":"text",accepted:!0}))}let s=/\$\s?[\d,.]+\s?[KkMm]?|\b(?:AUD|USD|EUR|GBP)\s?[\d,.]+/g;for(;null!==(t=s.exec(e));){let e=t[0];n.has(e)||(n.add(e),a.push({id:"cand-".concat(a.length),literal:e,suggestedName:"amount_".concat(a.length),suggestedLabel:"Amount",type:"text",accepted:!1}))}let d=/\b\d{4}-\d{2}-\d{2}\b|\b(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun)(?:day)?\b|\b(?:tomorrow|today|yesterday|next week|this week)\b/gi;for(;null!==(t=d.exec(e));){let e=t[0];n.has(e)||(n.add(e),a.push({id:"cand-".concat(a.length),literal:e,suggestedName:e.match(/^\d{4}-\d{2}-\d{2}$/)?"date":"when",suggestedLabel:"When",type:"text",accepted:!1}))}return a}function U(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"").slice(0,32)||"value"}function H(e,t){let n=e,a=[],i=new Set;for(let e of t){if(!e.accepted)continue;let t=e.suggestedName.trim();t||(t="value_".concat(a.length));let r=t,l=2;for(;i.has(r);)r="".concat(t,"_").concat(l++);i.add(r);let o=e.literal,s="{{".concat(r,"}}");n=n.split(o).join(s),a.push({name:r,label:e.suggestedLabel||r,type:e.type,required:!0})}return{template:n,inputs:a}}function q(e){let{draft:t,agentName:n,onCancel:r,onSave:l}=e,[o,s]=(0,i.useState)(t.name),[d,c]=(0,i.useState)(t.description),[p,u]=(0,i.useState)(t.promptTemplate),[h,g]=(0,i.useState)(!1),[m,f]=(0,i.useState)(()=>P(t.promptTemplate)),x=m.filter(e=>e.accepted).length,y=(0,i.useMemo)(()=>H(p,m),[p,m]),v=o.trim().length>0&&p.trim().length>0&&!h;return(0,a.jsx)("div",{onClick:r,style:{position:"fixed",inset:0,background:"rgba(0,0,0,0.7)",zIndex:1100,display:"flex",alignItems:"center",justifyContent:"center",WebkitBackdropFilter:"blur(4px)",backdropFilter:"blur(4px)"},children:(0,a.jsxs)("div",{onClick:e=>e.stopPropagation(),className:"animate-palette-drop",style:{width:680,maxWidth:"94vw",maxHeight:"88vh",background:"var(--paper-3)",border:"1px solid ".concat(T),borderRadius:6,overflow:"hidden",display:"flex",flexDirection:"column",boxShadow:"0 24px 80px rgba(0,0,0,0.6)"},children:[(0,a.jsxs)("div",{style:{padding:"16px 20px",borderBottom:"1px solid ".concat(T)},children:[(0,a.jsx)("div",{style:{fontFamily:E,fontSize:9,color:F,letterSpacing:"0.16em",marginBottom:4},children:"SAVE AS WORKFLOW"}),(0,a.jsx)("div",{style:{fontFamily:B,fontSize:22,fontWeight:500,color:"var(--ink)",letterSpacing:"-0.01em"},children:"Promote this chat into a reusable template."}),(0,a.jsxs)("div",{style:{fontSize:12,color:"var(--ink-4)",marginTop:4,fontFamily:z},children:["Lives in the ",n," AB's templates. Variables get prompted at run time."]})]}),(0,a.jsxs)("div",{style:{flex:1,overflowY:"auto",padding:"18px 20px",display:"flex",flexDirection:"column",gap:14},children:[(0,a.jsx)(K,{label:"Name",children:(0,a.jsx)("input",{value:o,onChange:e=>s(e.target.value),autoFocus:!0,onKeyDown:e=>{(e.metaKey||e.ctrlKey)&&"Enter"===e.key&&v&&(e.preventDefault(),b())},style:Y})}),(0,a.jsx)(K,{label:"Description",children:(0,a.jsx)("input",{value:d,onChange:e=>c(e.target.value),style:Y})}),(0,a.jsx)(K,{label:"Prompt template",children:(0,a.jsx)("textarea",{value:p,onChange:e=>u(e.target.value),rows:6,onKeyDown:e=>{(e.metaKey||e.ctrlKey)&&"Enter"===e.key&&v&&(e.preventDefault(),b())},style:{...Y,resize:"vertical",minHeight:110,fontFamily:z,fontSize:13,lineHeight:1.55}})}),m.length>0&&(0,a.jsxs)("div",{style:{background:"var(--paper-2)",border:"1px solid ".concat(T),borderRadius:4,padding:"12px 14px"},children:[(0,a.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"baseline",marginBottom:10},children:[(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{style:{fontFamily:E,fontSize:9,color:F,letterSpacing:"0.14em",textTransform:"uppercase",marginBottom:2},children:["Detected variables \xb7 ",x," of ",m.length," accepted"]}),(0,a.jsxs)("div",{style:{fontSize:11,color:"var(--ink-5)",fontFamily:z,fontStyle:"italic"},children:["Accepted entries become ","{{placeholders}}"," prompting at run time. Edit names below."]})]}),(0,a.jsx)("button",{onClick:function(){f(P(p))},style:{padding:"4px 10px",border:"1px solid ".concat(T),background:"transparent",color:"var(--ink-4)",borderRadius:3,fontFamily:E,fontSize:9,letterSpacing:"0.1em",cursor:"pointer",textTransform:"uppercase"},children:"↻ rescan"})]}),(0,a.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:m.map(e=>(0,a.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:10,padding:"6px 8px",background:e.accepted?"var(--paper-3)":"transparent",border:"1px solid ".concat(e.accepted?F:T),borderRadius:3,cursor:"pointer",transition:"all 0.15s"},children:[(0,a.jsx)("input",{type:"checkbox",checked:e.accepted,onChange:()=>{var t;return t=e.id,void f(e=>e.map(e=>e.id===t?{...e,accepted:!e.accepted}:e))},style:{accentColor:F,cursor:"pointer",flexShrink:0}}),(0,a.jsx)("span",{style:{fontFamily:z,fontSize:12,color:"var(--ink-3)",flexShrink:0,maxWidth:180,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.literal}),(0,a.jsx)("span",{style:{color:"var(--ink-6)",fontFamily:E,fontSize:11},children:"→"}),(0,a.jsx)("span",{style:{fontFamily:E,fontSize:11,color:"var(--ink-5)",flexShrink:0},children:"{{"}),(0,a.jsx)("input",{value:e.suggestedName,onChange:t=>{var n,a;return n=e.id,a=t.target.value,void f(e=>e.map(e=>e.id===n?{...e,suggestedName:U(a)||e.suggestedName}:e))},disabled:!e.accepted,style:{flex:1,minWidth:80,background:"transparent",border:"none",borderBottom:"1px dashed ".concat(T),fontFamily:E,fontSize:12,color:e.accepted?F:"var(--ink-6)",outline:"none",padding:"2px 0"}}),(0,a.jsx)("span",{style:{fontFamily:E,fontSize:11,color:"var(--ink-5)",flexShrink:0},children:"}}"})]},e.id))})]}),x>0&&(0,a.jsxs)("div",{style:{background:"var(--paper-input)",border:"1px solid ".concat(T),borderRadius:4,padding:"10px 12px"},children:[(0,a.jsx)("div",{style:{fontFamily:E,fontSize:9,color:"var(--ink-5)",letterSpacing:"0.14em",textTransform:"uppercase",marginBottom:6},children:"Will save as"}),(0,a.jsx)("pre",{style:{fontFamily:E,fontSize:12,color:"var(--ink-2)",margin:0,whiteSpace:"pre-wrap",wordBreak:"break-word",lineHeight:1.5},children:y.template})]}),(0,a.jsxs)("div",{style:{fontSize:11,color:"var(--ink-5)",fontFamily:E,letterSpacing:"0.08em"},children:["Tip: wrap variables manually with ",(0,a.jsx)("span",{style:{color:F},children:"{{name}}"})," if the auto-detector misses any."]})]}),(0,a.jsxs)("div",{style:{padding:"12px 20px",borderTop:"1px solid ".concat(T),display:"flex",gap:8,justifyContent:"flex-end"},children:[(0,a.jsx)("button",{onClick:r,style:{padding:"6px 14px",border:"1px solid ".concat(T),background:"transparent",color:"var(--ink-4)",borderRadius:3,fontFamily:E,fontSize:11,letterSpacing:"0.08em",cursor:"pointer",textTransform:"uppercase"},children:"Cancel"}),(0,a.jsx)("button",{onClick:b,disabled:!v,style:{padding:"6px 14px",border:"1px solid ".concat(F),background:v?F:"var(--paper-2)",color:v?"#000":"var(--ink-6)",borderRadius:3,fontFamily:E,fontSize:11,letterSpacing:"0.08em",cursor:v?"pointer":"not-allowed",textTransform:"uppercase"},children:h?"Saving…":"Save".concat(x>0?" \xb7 ".concat(x," var").concat(1===x?"":"s"):""," \xb7 ⌘↵")})]})]})});async function b(){if(v){g(!0);try{let{template:e,inputs:t}=H(p,m);await l({name:o.trim(),description:d.trim(),promptTemplate:e,inputs:t})}finally{g(!1)}}}}let Y={width:"100%",padding:"9px 12px",background:"var(--paper-2)",border:"1px solid ".concat(T),borderRadius:3,color:"var(--ink)",fontFamily:z,fontSize:13,outline:"none"};function K(e){let{label:t,children:n}=e;return(0,a.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,a.jsx)("span",{style:{fontFamily:E,fontSize:9,color:"var(--ink-5)",letterSpacing:"0.14em",textTransform:"uppercase"},children:t}),n]})}function J(e){var t;let{onClose:n}=e,{refresh:r}=j(),[l,o]=(0,i.useState)(0),[s,d]=(0,i.useState)(""),[c,u]=(0,i.useState)(!1),[g,x]=(0,i.useState)(null),[y,v]=(0,i.useState)(""),[b,k]=(0,i.useState)({}),[S,w]=(0,i.useState)([]),[R,M]=(0,i.useState)([]),[I,A]=(0,i.useState)(""),D=async()=>{let e=y.trim(),t=s.trim();if(!e)return!1;if(!t)return k({error:"Admin token required. Run `leedab start` once to generate one, or paste it manually."}),!1;h(t),k({loading:!0});try{let t=await f("/api/leedab/license",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"set-key",key:e})}),i=await t.json();if(!t.ok){if("admin_not_configured"===i.error)k({error:"Server has no admin token configured. Run `leedab start` once — it auto-generates the token at ~/.leedab/admin-token."});else if("admin_required"===i.error)k({error:"Admin token rejected by server. The pasted value doesn't match ~/.leedab/admin-token — copy the current one and try again."});else if(t.status>=500)k({error:"Licensing service unavailable (".concat(t.status,"). Try again in a moment.")});else{var n,a;k({error:null!=(a=null!=(n=i.message)?n:i.error)?a:"Invalid key (HTTP ".concat(t.status,")")})}return!1}return k({tier:i.tier,orgName:i.orgName}),await r(),!0}catch(e){if(e instanceof p)return k({error:"Admin token cleared. Paste it again from ~/.leedab/admin-token."}),!1;return k({error:"Could not reach licensing service. Check your network."}),!1}};(0,i.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await fetch("/api/leedab/license");if(!t.ok)return;let n=await t.json();if(e)return;n.valid&&n.tier&&(k({tier:n.tier,orgName:n.orgName}),m()&&o(1))}catch(e){}})(),()=>{e=!0}},[]),(0,i.useEffect)(()=>{let e=!1;return m()?void u(!0):((async()=>{try{let t=await fetch("/api/bootstrap-admin-token");if(e)return;if(t.ok){let{token:e}=await t.json();if(e){d(e),h(e),u(!0);return}}try{let{error:e}=await t.clone().json();e&&x(function(e){switch(e){case"bootstrap_missing":return"No admin token on disk. Run `leedab start` once in a terminal — it generates one automatically.";case"bootstrap_perms_too_open":return"Token file ~/.leedab/admin-token is readable by others. Fix with: chmod 600 ~/.leedab/admin-token";case"bootstrap_not_local":return"Auto-fill is only available on a localhost browser. Paste the token from ~/.leedab/admin-token.";case"bootstrap_empty":return"Token file at ~/.leedab/admin-token is empty. Delete it and run `leedab start` to regenerate.";default:return"Auto-fill unavailable. Paste the operator admin token below."}}(e))}catch(e){}}catch(e){}})(),()=>{e=!0})},[]);let W=(e,t,n)=>t(e.includes(n)?e.filter(e=>e!==n):[...e,n]),O=()=>o(e=>Math.min(e+1,4)),L=async()=>{let e="Just me"===I?50:"2–5"===I?200:"6–20"===I?400:"20+"===I?800:void 0;try{if(await f("/api/preferences",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({channels:S,workflows:R,teamSize:I,monthlyBudgetUsd:e})}),e)try{localStorage.setItem("leedab-budget",String(e))}catch(e){}}catch(e){}};return(0,a.jsx)("div",{style:{position:"fixed",inset:0,background:"rgba(0,0,0,0.7)",zIndex:1200,display:"flex",alignItems:"center",justifyContent:"center",backdropFilter:"blur(4px)"},children:(0,a.jsxs)("div",{className:"animate-palette-drop",style:{width:600,maxWidth:"92vw",maxHeight:"86vh",background:"var(--paper-3)",border:"1px solid ".concat(T),borderRadius:6,overflow:"hidden",display:"flex",flexDirection:"column",boxShadow:"0 24px 80px rgba(0,0,0,0.6)"},children:[(0,a.jsxs)("div",{style:{padding:"18px 22px",borderBottom:"1px solid ".concat(T)},children:[(0,a.jsx)("div",{style:{fontFamily:E,fontSize:9,color:F,letterSpacing:"0.16em",marginBottom:4},children:"WELCOME TO LEEDAB"}),(0,a.jsxs)("div",{style:{fontFamily:B,fontSize:26,fontWeight:500,color:"var(--ink)",letterSpacing:"-0.01em"},children:[0===l&&"Got a license key?",1===l&&"Three quick questions, then you're in.",2===l&&"Where do messages come from?",3===l&&"What should agents handle?",4===l&&"How many of you?"]})]}),(0,a.jsxs)("div",{style:{flex:1,overflowY:"auto",padding:"20px 22px"},children:[0===l&&(0,a.jsxs)("div",{style:{fontSize:13,color:"var(--ink-3)",lineHeight:1.6,fontFamily:z},children:[(0,a.jsxs)("p",{style:{marginBottom:14},children:[c?(0,a.jsxs)(a.Fragment,{children:["Enter your LeedAB license key to unlock the dashboard."," "]}):(0,a.jsxs)(a.Fragment,{children:["Paste your admin token (from ",(0,a.jsx)("code",{style:{background:"var(--paper-2)",padding:"1px 5px",borderRadius:3,fontSize:11},children:"~/.leedab/admin-token"}),"), then your LeedAB license key."," "]}),"Don't have a license key yet? ",(0,a.jsx)("a",{href:"https://leedab.com/contact",target:"_blank",rel:"noopener noreferrer",style:{color:F,textDecoration:"underline"},children:"Request access"}),"."]}),c?(0,a.jsx)("div",{style:{marginBottom:14,padding:"8px 12px",border:"1px solid ".concat(F,"44"),background:"".concat(F,"0a"),borderRadius:3,fontSize:11,color:F,fontFamily:E,letterSpacing:"0.04em"},children:"✓ Admin token auto-loaded from ~/.leedab/admin-token"}):(0,a.jsxs)(a.Fragment,{children:[g&&(0,a.jsx)("div",{style:{marginBottom:10,padding:"8px 12px",border:"1px solid ".concat(C),background:"var(--paper-2)",borderRadius:3,fontSize:11,color:"var(--ink-3)",fontFamily:z},children:g}),(0,a.jsx)("div",{style:{fontSize:10,color:F,fontFamily:E,letterSpacing:"0.12em",marginBottom:4},children:"ADMIN TOKEN"}),(0,a.jsx)("input",{type:"password",value:s,onChange:e=>{d(e.target.value),k({})},placeholder:"paste admin token",spellCheck:!1,autoFocus:!0,style:{width:"100%",padding:"10px 12px",background:"var(--paper-2)",border:"1px solid ".concat(T),color:"var(--ink)",fontFamily:E,fontSize:13,borderRadius:3,outline:"none",letterSpacing:"0.04em",marginBottom:12}})]}),(0,a.jsx)("div",{style:{fontSize:10,color:F,fontFamily:E,letterSpacing:"0.12em",marginBottom:4},children:"LICENSE KEY"}),(0,a.jsx)("input",{type:"text",value:y,onChange:e=>{v(e.target.value),k({})},placeholder:"am_live_...",spellCheck:!1,style:{width:"100%",padding:"10px 12px",background:"var(--paper-2)",border:"1px solid ".concat(T),color:"var(--ink)",fontFamily:E,fontSize:13,borderRadius:3,outline:"none",letterSpacing:"0.04em"}}),b.error&&(0,a.jsx)("div",{style:{marginTop:10,fontSize:12,color:"#a52a1a",fontFamily:z},children:b.error}),b.tier&&(0,a.jsxs)("div",{style:{marginTop:10,fontSize:12,color:F,fontFamily:z},children:["✓ Unlocked ",(0,a.jsx)("strong",{children:b.tier}),b.orgName?" for ".concat(b.orgName):"","."]})]}),1===l&&(0,a.jsxs)("div",{style:{fontSize:13,color:"var(--ink-3)",lineHeight:1.6,fontFamily:z},children:["logistics-pro"===b.tier&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("p",{children:["You're on the ",(0,a.jsx)("strong",{style:{color:F},children:"Logistics Pro"})," tier. LeedAB just unlocked your 7 logistics-shaped agents — COO, Concierge, Procurement, CX, Finance, Sales, People — pre-loaded with logistics playbooks (HVNL, Chain of Responsibility, freight terminology)."]}),(0,a.jsx)("p",{children:"The next 60 seconds wires your channels (Telegram, WhatsApp, email), picks your day-1 workflows, and seeds enough demo data that the views aren't empty when you land."})]}),"founder"===b.tier&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("p",{children:["You're on the ",(0,a.jsx)("strong",{style:{color:F},children:"Founder"}),' tier — LeedAB-internal full-roster install. All 31 agents are unlocked, organised across "Today\'s company" (Executive \xb7 Operations \xb7 Finance \xb7 Product \xb7 People) and "Tomorrow\'s growth" (Activation \xb7 Intel \xb7 Brand \xb7 Sales).']}),(0,a.jsx)("p",{children:"Wizard sets sensible defaults; you can change everything in the Roster and Admin views once you're in."})]}),"starter"===b.tier&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("p",{children:["You're on the ",(0,a.jsx)("strong",{style:{color:F},children:"Starter"})," tier — COO + Concierge only. Useful for trialling the orchestration shape; upgrade when you want the full vertical roster."]}),(0,a.jsx)("p",{children:"This wizard sets up sensible defaults so you can see the system working in 60 seconds."})]}),!["logistics-pro","founder","starter"].includes(null!=(t=b.tier)?t:"")&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("p",{children:"LeedAB connects messaging channels (Telegram, WhatsApp, email) to a team of specialised AI agents. Inbound messages route to the right agent; the agent drafts replies; you approve and ship."}),(0,a.jsx)("p",{children:"This wizard sets up sensible defaults so you can see the system working in 60 seconds. You can change everything later in the Roster and Admin views."})]})]}),2===l&&(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{style:{fontSize:12,color:"var(--ink-4)",marginBottom:12,fontFamily:z},children:"Pick the channels your team uses today."}),(0,a.jsx)("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:["Telegram","WhatsApp","Email","Slack"].map(e=>{let t=S.includes(e);return(0,a.jsx)("button",{onClick:()=>W(S,w,e),style:{padding:"8px 14px",background:t?"".concat(F,"1a"):"var(--paper-2)",border:"1px solid ".concat(t?F:T),color:t?F:"var(--ink-3)",borderRadius:3,cursor:"pointer",fontFamily:E,fontSize:11,letterSpacing:"0.06em"},children:e},e)})})]}),3===l&&(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{style:{fontSize:12,color:"var(--ink-4)",marginBottom:12,fontFamily:z},children:"Pick the work you want agents to do. We'll surface relevant templates next."}),(0,a.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:["Customer support replies","Logistics dispatch & ETA updates","Cold sales outreach","Finance reconciliation","Internal ops briefings","Hiring / recruiting"].map(e=>{let t=R.includes(e);return(0,a.jsxs)("button",{onClick:()=>W(R,M,e),style:{padding:"10px 14px",textAlign:"left",background:t?"".concat(F,"10"):"var(--paper-2)",border:"1px solid ".concat(t?F:T),color:t?F:"var(--ink-3)",borderRadius:3,cursor:"pointer",fontFamily:z,fontSize:13,display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,a.jsx)("span",{children:e}),t&&(0,a.jsx)("span",{style:{color:F,fontFamily:E,fontSize:12},children:"✓"})]},e)})})]}),4===l&&(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{style:{fontSize:12,color:"var(--ink-4)",marginBottom:12,fontFamily:z},children:"Roughly how many people are on the operations team?"}),(0,a.jsx)("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:["Just me","2–5","6–20","20+"].map(e=>{let t=I===e;return(0,a.jsx)("button",{onClick:()=>A(e),style:{padding:"8px 14px",background:t?"".concat(F,"1a"):"var(--paper-2)",border:"1px solid ".concat(t?F:T),color:t?F:"var(--ink-3)",borderRadius:3,cursor:"pointer",fontFamily:E,fontSize:11,letterSpacing:"0.06em"},children:e},e)})}),(0,a.jsx)("div",{style:{marginTop:22,padding:14,background:"var(--paper-2)",border:"1px solid ".concat(C),borderRadius:3,fontSize:12,color:"var(--ink-3)",fontFamily:z,lineHeight:1.55},children:"Want to see the dashboard with realistic logistics activity right now? We'll seed sample inbound messages, pending approvals, and runs. You can clear it anytime from the DEMO toggle."})]})]}),(0,a.jsxs)("div",{style:{padding:"14px 22px",borderTop:"1px solid ".concat(T),display:"flex",gap:8,alignItems:"center"},children:[(0,a.jsxs)("span",{style:{fontFamily:E,fontSize:9,color:"var(--ink-6)",letterSpacing:"0.12em"},children:["STEP ",l+1," OF 5"]}),(0,a.jsxs)("div",{style:{marginLeft:"auto",display:"flex",gap:8},children:[l>0&&(0,a.jsx)("button",{onClick:()=>o(e=>Math.max(e-1,0)),style:{padding:"6px 12px",border:"1px solid ".concat(T),background:"transparent",color:"var(--ink-4)",borderRadius:3,fontFamily:E,fontSize:11,letterSpacing:"0.08em",cursor:"pointer",textTransform:"uppercase"},children:"Back"}),l>0&&(0,a.jsx)("button",{onClick:n,style:{padding:"6px 12px",border:"1px solid ".concat(T),background:"transparent",color:"var(--ink-5)",borderRadius:3,fontFamily:E,fontSize:11,letterSpacing:"0.08em",cursor:"pointer",textTransform:"uppercase"},children:"Skip"}),l<4?(0,a.jsx)("button",{onClick:async()=>{if(0===l&&!b.tier)return void await D();if(0===l&&b.tier&&!m()){let e=s.trim();return e?(h(e),k({tier:b.tier,orgName:b.orgName}),void O()):void k({...b,error:"Admin token required. Run `leedab start` to auto-generate it, or paste it from ~/.leedab/admin-token."})}O()},disabled:!!(b.loading||0===l&&!b.tier&&(!y.trim()||!s.trim())||0===l&&b.tier&&!m()&&!s.trim()),style:{padding:"6px 14px",border:"1px solid ".concat(F),background:F,color:"#000",borderRadius:3,fontFamily:E,fontSize:11,letterSpacing:"0.08em",cursor:b.loading?"wait":"pointer",textTransform:"uppercase",opacity:!b.loading&&(0!==l||b.tier||y.trim()&&s.trim())&&(0!==l||!b.tier||m()||s.trim())?1:.4},children:0!==l||b.tier?"Next →":"Validate →"}):(0,a.jsx)("button",{onClick:async()=>{await L(),n()},style:{padding:"6px 14px",border:"1px solid ".concat(F),background:F,color:"#000",borderRadius:3,fontFamily:E,fontSize:11,letterSpacing:"0.08em",cursor:"pointer",textTransform:"uppercase"},children:"Finish →"})]})]})]})})}function V(e){let{notifs:t,onMarkAllRead:n,onClose:i}=e,r={success:F,warn:"#f59e0b",info:"#6366f1"};return(0,a.jsxs)("div",{className:"animate-slide-left no-scrollbar",style:{position:"fixed",top:0,right:0,bottom:0,width:320,background:"var(--paper-input)",borderLeft:"1px solid ".concat(T),zIndex:500,display:"flex",flexDirection:"column",overflowY:"auto"},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"16px 20px",borderBottom:"1px solid ".concat(T),flexShrink:0},children:[(0,a.jsx)("span",{style:{fontFamily:E,fontSize:12,fontWeight:700,color:"var(--ink)",letterSpacing:"0.04em"},children:"FEED"}),(0,a.jsxs)("div",{style:{display:"flex",gap:8,alignItems:"center"},children:[(0,a.jsx)("button",{onClick:n,style:{fontFamily:E,fontSize:9,color:"var(--ink-5)",background:"none",border:"none",cursor:"pointer",letterSpacing:"0.08em"},children:"MARK ALL READ"}),(0,a.jsx)("button",{onClick:i,style:{background:"none",border:"none",cursor:"pointer",color:"var(--ink-5)",fontSize:18,lineHeight:1,padding:4},children:"\xd7"})]})]}),(0,a.jsxs)("div",{style:{flex:1,padding:"8px 0"},children:[0===t.length&&(0,a.jsx)("div",{style:{padding:"32px 20px",textAlign:"center",fontFamily:E,fontSize:10,color:"var(--ink-6)",letterSpacing:"0.08em"},children:"All quiet. Activity from your channels and approvals will land here."}),t.map(e=>(0,a.jsx)("div",{style:{padding:"12px 20px",borderBottom:"1px solid ".concat(C),background:e.read?"transparent":"var(--paper-3)",opacity:e.read?.6:1,transition:"opacity 0.2s"},children:(0,a.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:10},children:[(0,a.jsx)("span",{style:{width:6,height:6,borderRadius:"50%",background:r[e.level],flexShrink:0,marginTop:4}}),(0,a.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:3},children:[(0,a.jsx)("span",{style:{fontFamily:E,fontSize:9,color:r[e.level],letterSpacing:"0.08em"},children:I[e.agent]}),(0,a.jsx)("span",{style:{fontFamily:E,fontSize:9,color:"var(--ink-6)"},children:e.ts})]}),(0,a.jsx)("div",{style:{fontSize:12,color:e.read?"var(--ink-5)":"var(--ink-2)",fontFamily:z,lineHeight:1.5},children:e.msg})]})]})},e.id))]})]})}let G=[{id:"o1",name:"runway-model-apr-2026.csv",agent:"finance",type:"model",date:"Apr 22",size:"4.2 KB"},{id:"o2",name:"linkedin-post-local-first.txt",agent:"marketing",type:"draft",date:"Apr 19",size:"1.8 KB"},{id:"o3",name:"adr-0001-provider-abstraction.md",agent:"engineering",type:"spec",date:"Apr 18",size:"3.1 KB"},{id:"o4",name:"onboarding-playbook-template.html",agent:"cx",type:"template",date:"Apr 17",size:"5.6 KB"},{id:"o5",name:"retention-cohort-model-2026-04-22.csv",agent:"data",type:"report",date:"Apr 22",size:"7.3 KB"},{id:"o6",name:"cold-sequence-logistics-smbs.txt",agent:"sales",type:"draft",date:"Apr 20",size:"2.4 KB"},{id:"o7",name:"privacy-policy-draft.html",agent:"legal",type:"draft",date:"Apr 22",size:"8.1 KB"},{id:"o8",name:"seed-due-diligence-checklist.md",agent:"legal",type:"template",date:"Apr 22",size:"3.7 KB"},{id:"o9",name:"unit-economics-q2-2026.csv",agent:"finance",type:"model",date:"Apr 21",size:"5.2 KB"},{id:"o10",name:"competitor-battlecard-zapier.html",agent:"strategy",type:"report",date:"Apr 20",size:"4.8 KB"},{id:"o11",name:"blog-post-why-apis-failed-smbs.html",agent:"content",type:"draft",date:"Apr 19",size:"6.2 KB"},{id:"o12",name:"tracking-plan-v1.md",agent:"data",type:"spec",date:"Apr 22",size:"4.5 KB"}];function _(e){var t;let{agent:n,agentId:i,conversations:r,onClose:l}=e,o=null!=(t=r[i])?t:[],s=G.filter(e=>e.agent===i).slice(0,4);return(0,a.jsxs)("div",{className:"animate-slide-left no-scrollbar",style:{position:"fixed",top:0,right:0,bottom:0,width:300,background:"var(--paper-input)",borderLeft:"1px solid ".concat(T),zIndex:500,display:"flex",flexDirection:"column",overflowY:"auto"},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"16px 20px",borderBottom:"1px solid ".concat(T),flexShrink:0},children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{style:{fontFamily:E,fontSize:10,color:F,letterSpacing:"0.1em",marginBottom:2},children:A[i]}),(0,a.jsx)("div",{style:{fontFamily:E,fontSize:14,fontWeight:700,color:"var(--ink)"},children:I[i]})]}),(0,a.jsx)("button",{onClick:l,style:{background:"none",border:"none",cursor:"pointer",color:"var(--ink-5)",fontSize:18,lineHeight:1,padding:4},children:"\xd7"})]}),(0,a.jsxs)("div",{style:{padding:"16px 20px",borderBottom:"1px solid ".concat(C)},children:[(0,a.jsx)("div",{style:{fontFamily:E,fontSize:9,color:"var(--ink-6)",letterSpacing:"0.12em",marginBottom:8},children:"AGENT"}),(0,a.jsx)("div",{style:{fontSize:13,color:"var(--ink-3)",fontFamily:z,lineHeight:1.6},children:n.description})]}),(0,a.jsxs)("div",{style:{padding:"16px 20px",borderBottom:"1px solid ".concat(C)},children:[(0,a.jsx)("div",{style:{fontFamily:E,fontSize:9,color:"var(--ink-6)",letterSpacing:"0.12em",marginBottom:8},children:"STATUS"}),(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:6},children:[(0,a.jsx)("span",{style:{width:6,height:6,borderRadius:"50%",background:"active"===D[i]?F:"var(--ink-5)",boxShadow:"active"===D[i]?"0 0 8px ".concat(F):"none",display:"inline-block"}}),(0,a.jsx)("span",{style:{fontFamily:E,fontSize:10,color:"active"===D[i]?F:"var(--ink-5)"},children:D[i].toUpperCase()})]}),(0,a.jsxs)("div",{style:{fontFamily:E,fontSize:10,color:"var(--ink-6)"},children:[o.length," messages \xb7 ",o.filter(e=>"user"===e.role).length," exchanges"]})]}),(0,a.jsxs)("div",{style:{padding:"16px 20px",borderBottom:"1px solid ".concat(C)},children:[(0,a.jsx)("div",{style:{fontFamily:E,fontSize:9,color:"var(--ink-6)",letterSpacing:"0.12em",marginBottom:8},children:"DEFAULT MODEL"}),(0,a.jsx)("div",{style:{fontFamily:E,fontSize:11,color:"var(--ink-4)"},children:n.defaultModel.replace("claude-","").replace("-20251001","").toUpperCase()})]}),s.length>0&&(0,a.jsxs)("div",{style:{padding:"16px 20px",borderBottom:"1px solid ".concat(C)},children:[(0,a.jsx)("div",{style:{fontFamily:E,fontSize:9,color:"var(--ink-6)",letterSpacing:"0.12em",marginBottom:8},children:"RECENT OUTPUTS"}),(0,a.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:s.map(e=>(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"6px 8px",background:S,borderRadius:3,border:"1px solid ".concat(C)},children:[(0,a.jsx)("span",{style:{fontSize:11,color:"var(--ink-4)",fontFamily:z,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},children:e.name}),(0,a.jsx)("span",{style:{fontFamily:E,fontSize:9,color:"var(--ink-6)",marginLeft:8,flexShrink:0},children:e.date})]},e.id))})]}),(0,a.jsxs)("div",{style:{padding:"16px 20px"},children:[(0,a.jsx)("div",{style:{fontFamily:E,fontSize:9,color:"var(--ink-6)",letterSpacing:"0.12em",marginBottom:8},children:"RECENT TASKS"}),(0,a.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:W[i].map((e,t)=>(0,a.jsxs)("div",{style:{fontSize:11,color:"var(--ink-5)",fontFamily:z},children:["→ ",e]},t))})]})]})}function $(e){var t,n;let{onChannelClick:r}=e,[l,o]=(0,i.useState)(null),[s,d]=(0,i.useState)(!0);(0,i.useEffect)(()=>{let e=!1;function t(){fetch("/api/openclaw/status").then(e=>e.json()).then(t=>{e||(o(t),d(!1))}).catch(()=>{e||d(!1)})}t();let n=setInterval(t,15e3);return()=>{e=!0,clearInterval(n)}},[]);let c=null!=(t=null==l?void 0:l.ok)&&t,p=(null!=(n=null==l?void 0:l.channels)?n:[]).filter(e=>e.enabled&&!0===e.connected);return(0,a.jsxs)("div",{"data-mobile-hide":!0,style:{display:"flex",alignItems:"center",gap:8},children:[(0,a.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4},children:[(0,a.jsx)("span",{style:{width:6,height:6,borderRadius:"50%",background:s?"var(--hair)":c?F:"#a52a1a",boxShadow:c?"0 0 4px ".concat(F,"88"):"none",display:"inline-block"}}),(0,a.jsx)("span",{style:{fontFamily:E,fontSize:9,color:c?"var(--ink-4)":"#a52a1a",letterSpacing:"0.08em",whiteSpace:"nowrap"},children:s?"...":c?"LIVE":"OFFLINE"})]}),p.map(e=>(0,a.jsxs)(r?"button":"div",{onClick:r?()=>r(e.name):void 0,title:r?"Manage ".concat(e.name):void 0,style:{display:"flex",alignItems:"center",gap:4,padding:0,border:"none",background:"transparent",color:"inherit",cursor:r?"pointer":"default",fontFamily:"inherit"},children:[(0,a.jsx)("span",{style:{width:6,height:6,borderRadius:"50%",background:F,boxShadow:"0 0 4px ".concat(F,"88"),display:"inline-block"}}),(0,a.jsx)("span",{style:{fontFamily:E,fontSize:9,color:"var(--ink-4)",letterSpacing:"0.08em",whiteSpace:"nowrap",textTransform:"uppercase"},children:e.name})]},e.name))]})}function X(e){var t,n;let{query:r,onQueryChange:s,inputRef:d,conversations:c,onSelectAgent:p,onSelectView:u,onClose:h}=e,[g,m]=(0,i.useState)(0),[f,x]=(0,i.useState)([]),[y,v]=(0,i.useState)([]),[b,k]=(0,i.useState)([]);(0,i.useEffect)(()=>{let e=!1;return async function(){try{var t,n,a;let[i,r,l]=await Promise.all([fetch("/api/inbox?limit=200").then(e=>e.ok?e.json():{messages:[]}),fetch("/api/approvals?limit=200").then(e=>e.ok?e.json():{approvals:[]}),fetch("/api/runs?limit=100").then(e=>e.ok?e.json():{runs:[]})]);if(e)return;x(null!=(t=i.messages)?t:[]),v(null!=(n=r.approvals)?n:[]),k(null!=(a=l.runs)?a:[])}catch(e){}}(),()=>{e=!0}},[]);let S=r.toLowerCase().trim(),w=e=>!S||(null!=e?e:"").toLowerCase().includes(S),{pack:R}=j(),B=null!=(t=null==R?void 0:R.agentOrder)?t:o,M=null!=(n=null==R?void 0:R.agents)?n:l,W=B.filter(e=>{let t=M[e];return w(I[e])||w(null==t?void 0:t.name)||w(null==t?void 0:t.tagline)}),O=[{label:"Workflows",sub:"Pre-built workflows",view:"workflows"}].filter(e=>{let{label:t,sub:n}=e;return w(t)||w(n)}),L=S?f.filter(e=>w(e.fromName)||w(e.text)||w(e.channel)).slice(0,8):[],N=S?y.filter(e=>w(e.title)||w(e.body)||w(e.agentId)||w(e.meta.to)).slice(0,8):[],P=S?b.filter(e=>w(e.agentId)||w(e.triggerType)||w(e.status)).slice(0,8):[],U=O.length+W.length+L.length+N.length+P.length;(0,i.useEffect)(()=>{m(0)},[r]);let H={views:0,agents:O.length,inbox:O.length+W.length,approvals:O.length+W.length+L.length,runs:O.length+W.length+L.length+N.length},q=e=>{try{let t=new URL(window.location.href);t.searchParams.set("id",e),window.history.replaceState({},"",t.toString())}catch(e){}},Y=e=>{if(e<H.agents)return void u(O[e].view);if(e<H.inbox)return void p(W[e-H.agents]);if(e<H.approvals){let t=L[e-H.inbox];t&&q(t.id),u("inbox");return}if(e<H.runs){let t=N[e-H.approvals];t&&q(t.id),u("approvals");return}let t=P[e-H.runs];t&&q(t.id),u("runs")};return(0,a.jsx)("div",{onClick:h,style:{position:"fixed",inset:0,background:"rgba(0,0,0,0.7)",zIndex:1e3,display:"flex",alignItems:"flex-start",justifyContent:"center",paddingTop:"12vh",WebkitBackdropFilter:"blur(4px)",backdropFilter:"blur(4px)"},children:(0,a.jsxs)("div",{onClick:e=>e.stopPropagation(),className:"animate-palette-drop",style:{width:580,maxHeight:"60vh",background:"var(--paper-3)",border:"1px solid #404040",borderRadius:6,overflow:"hidden",display:"flex",flexDirection:"column",boxShadow:"0 24px 80px rgba(0,0,0,0.8)"},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,padding:"14px 16px",borderBottom:"1px solid ".concat(T)},children:[(0,a.jsx)("span",{style:{color:"var(--ink-5)",fontSize:14},children:"⌕"}),(0,a.jsx)("input",{ref:d,value:r,onChange:e=>s(e.target.value),onKeyDown:e=>{"ArrowDown"===e.key&&(e.preventDefault(),m(e=>Math.min(e+1,U-1))),"ArrowUp"===e.key&&(e.preventDefault(),m(e=>Math.max(e-1,0))),"Enter"===e.key&&Y(g)},placeholder:"Search agents, views, actions…",style:{flex:1,background:"transparent",border:"none",outline:"none",fontSize:14,color:"var(--ink)",fontFamily:z}}),(0,a.jsx)("span",{style:{fontFamily:E,fontSize:9,color:"var(--ink-6)",border:"1px solid ".concat(T),borderRadius:2,padding:"2px 5px"},children:"ESC"})]}),(0,a.jsxs)("div",{className:"no-scrollbar",style:{overflowY:"auto"},children:[O.length>0&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{style:{padding:"8px 16px 4px",fontFamily:E,fontSize:9,color:"var(--ink-6)",letterSpacing:"0.12em"},children:"VIEWS"}),O.map((e,t)=>{let{label:n,sub:i,view:r}=e;return(0,a.jsxs)("div",{onClick:()=>u(r),style:{display:"flex",alignItems:"center",gap:12,padding:"10px 16px",cursor:"pointer",background:g===t?"".concat(F,"0a"):"transparent",borderLeft:"2px solid ".concat(g===t?F:"transparent"),transition:"all 0.1s"},children:[(0,a.jsx)("div",{style:{width:32,height:32,borderRadius:3,background:"var(--paper-input)",border:"1px solid ".concat(T),display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:(0,a.jsx)("span",{style:{fontSize:13},children:"workflows"===r?"⊞":"\xb7"})}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{style:{fontSize:13,color:"var(--ink)",fontFamily:z},children:n}),(0,a.jsx)("div",{style:{fontSize:11,color:"var(--ink-5)"},children:i})]})]},r)})]}),W.length>0&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{style:{padding:"8px 16px 4px",fontFamily:E,fontSize:9,color:"var(--ink-6)",letterSpacing:"0.12em"},children:"OPERATORS"}),W.map((e,t)=>{var n,i,r,l;let o=O.length+t,s=null==(n=c[e])?void 0:n.slice(-1)[0];return(0,a.jsxs)("div",{onClick:()=>p(e),style:{display:"flex",alignItems:"center",gap:12,padding:"10px 16px",cursor:"pointer",background:g===o?"".concat(F,"0a"):"transparent",borderLeft:"2px solid ".concat(g===o?F:"transparent"),transition:"all 0.1s"},children:[(0,a.jsxs)("div",{style:{width:32,height:32,borderRadius:"50%",flexShrink:0,background:"radial-gradient(circle at 35% 28%, #f5f0e6 0%, #ebe2d3 50%, #d8ccb8 100%)",border:"1px solid ".concat(T),boxShadow:"inset 0 1px 0 rgba(255,255,255,0.8), 0 1px 4px rgba(26,23,19,0.10)",display:"flex",alignItems:"center",justifyContent:"center",position:"relative"},children:[(0,a.jsx)("span",{style:{fontFamily:E,fontSize:8,fontWeight:700,color:"active"===D[e]?F:"var(--ink-5)"},children:I[e]}),(0,a.jsx)("span",{style:{position:"absolute",bottom:0,right:0,width:7,height:7,borderRadius:"50%",background:"active"===D[e]?F:"var(--ink-7)",border:"1.5px solid #ebe5d7"}})]}),(0,a.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:8},children:[(0,a.jsx)("span",{style:{fontSize:13,color:"var(--ink)",fontFamily:z},children:null==(i=M[e])?void 0:i.name}),(0,a.jsx)("span",{style:{fontSize:9,color:"var(--ink-6)",fontFamily:E},children:A[e]})]}),(0,a.jsx)("div",{style:{fontSize:11,color:"var(--ink-5)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:s?s.content.slice(0,60)+(s.content.length>60?"…":""):null!=(l=null==(r=M[e])?void 0:r.tagline)?l:""})]}),(0,a.jsx)("span",{style:{fontFamily:E,fontSize:9,color:"var(--ink-6)",whiteSpace:"nowrap"},children:A[e]})]},e)})]}),L.length>0&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{style:{padding:"8px 16px 4px",fontFamily:E,fontSize:9,color:"var(--ink-6)",letterSpacing:"0.12em"},children:"INBOX"}),L.map((e,t)=>{let n=H.inbox+t;return(0,a.jsxs)("div",{onClick:()=>Y(n),style:{display:"flex",alignItems:"center",gap:12,padding:"10px 16px",cursor:"pointer",background:g===n?"".concat(F,"0a"):"transparent",borderLeft:"2px solid ".concat(g===n?F:"transparent"),transition:"all 0.1s"},children:[(0,a.jsx)("div",{style:{width:32,height:32,borderRadius:3,background:"var(--paper-input)",border:"1px solid ".concat(T),display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,fontFamily:E,fontSize:8,color:"var(--ink-3)"},children:"telegram"===e.channel?"TG":"whatsapp"===e.channel?"WA":"EM"}),(0,a.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,a.jsx)("div",{style:{fontSize:13,color:"var(--ink)",fontFamily:z},children:e.fromName}),(0,a.jsx)("div",{style:{fontSize:11,color:"var(--ink-5)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:e.text})]}),e.agentId&&(0,a.jsxs)("span",{style:{fontFamily:E,fontSize:9,color:F,whiteSpace:"nowrap"},children:["→ ",e.agentId]})]},e.id)})]}),N.length>0&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{style:{padding:"8px 16px 4px",fontFamily:E,fontSize:9,color:"var(--ink-6)",letterSpacing:"0.12em"},children:"APPROVALS"}),N.map((e,t)=>{let n=H.approvals+t;return(0,a.jsxs)("div",{onClick:()=>Y(n),style:{display:"flex",alignItems:"center",gap:12,padding:"10px 16px",cursor:"pointer",background:g===n?"".concat(F,"0a"):"transparent",borderLeft:"2px solid ".concat(g===n?F:"transparent"),transition:"all 0.1s"},children:[(0,a.jsx)("div",{style:{width:32,height:32,borderRadius:3,background:"var(--paper-input)",border:"1px solid ".concat(T),display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:(0,a.jsx)("span",{style:{fontSize:13},children:"✓"})}),(0,a.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,a.jsx)("div",{style:{fontSize:13,color:"var(--ink)",fontFamily:z,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:e.title}),(0,a.jsxs)("div",{style:{fontSize:11,color:"var(--ink-5)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:[e.agentId," \xb7 ",e.status]})]})]},e.id)})]}),P.length>0&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{style:{padding:"8px 16px 4px",fontFamily:E,fontSize:9,color:"var(--ink-6)",letterSpacing:"0.12em"},children:"RUNS"}),P.map((e,t)=>{let n=H.runs+t;return(0,a.jsxs)("div",{onClick:()=>Y(n),style:{display:"flex",alignItems:"center",gap:12,padding:"10px 16px",cursor:"pointer",background:g===n?"".concat(F,"0a"):"transparent",borderLeft:"2px solid ".concat(g===n?F:"transparent"),transition:"all 0.1s"},children:[(0,a.jsx)("div",{style:{width:32,height:32,borderRadius:3,background:"var(--paper-input)",border:"1px solid ".concat(T),display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:(0,a.jsx)("span",{style:{fontSize:13},children:"◌"})}),(0,a.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,a.jsxs)("div",{style:{fontSize:13,color:"var(--ink)",fontFamily:z},children:[e.agentId," \xb7 ",e.triggerType]}),(0,a.jsxs)("div",{style:{fontSize:11,color:"var(--ink-5)"},children:[e.status," \xb7 ",new Date(e.startedAt).toLocaleString()]})]})]},e.id)})]}),0===U&&(0,a.jsxs)("div",{style:{padding:"32px 16px",textAlign:"center",fontFamily:E,fontSize:11,color:"var(--ink-6)"},children:['No results for "',r,'"']})]}),(0,a.jsxs)("div",{style:{padding:"8px 16px",borderTop:"1px solid ".concat(C),display:"flex",gap:16,fontFamily:E,fontSize:9,color:"var(--ink-6)"},children:[(0,a.jsx)("span",{children:"↑↓ navigate"}),(0,a.jsx)("span",{children:"↵ open"}),(0,a.jsx)("span",{children:"esc close"})]})]})})}function Q(e){let{disabled:t,onExport:n}=e,[r,l]=(0,i.useState)(!1),o=(0,i.useRef)(null);return(0,i.useEffect)(()=>{if(!r)return;let e=e=>{o.current&&!o.current.contains(e.target)&&l(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[r]),(0,a.jsxs)("div",{ref:o,style:{position:"relative"},children:[(0,a.jsx)("button",{onClick:()=>!t&&l(e=>!e),disabled:t,style:{fontFamily:E,fontSize:10,letterSpacing:"0.08em",padding:"5px 10px",border:"1px solid ".concat(T),background:"transparent",color:"var(--ink-5)",borderRadius:3,cursor:t?"not-allowed":"pointer",opacity:t?.3:1,transition:"all 0.15s"},children:"EXPORT ↗"}),r&&(0,a.jsx)("div",{style:{position:"absolute",top:"calc(100% + 4px)",right:0,background:w,border:"1px solid ".concat(T),borderRadius:4,boxShadow:"0 4px 16px rgba(26,23,19,0.12)",zIndex:100,minWidth:140,overflow:"hidden"},children:[{fmt:"md",label:".MD",desc:"Markdown"},{fmt:"html",label:".HTML",desc:"Webpage"},{fmt:"txt",label:".TXT",desc:"Plain text"},{fmt:"csv",label:".CSV",desc:"Spreadsheet"},{fmt:"json",label:".JSON",desc:"Structured"}].map(e=>{let{fmt:t,label:i,desc:r}=e;return(0,a.jsxs)("button",{onClick:()=>{n(t),l(!1)},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"7px 12px",background:"transparent",border:"none",cursor:"pointer",textAlign:"left",transition:"background 0.1s"},onMouseEnter:e=>{e.currentTarget.style.background=S},onMouseLeave:e=>{e.currentTarget.style.background="transparent"},children:[(0,a.jsx)("span",{style:{fontFamily:E,fontSize:9,color:F,letterSpacing:"0.06em",width:36},children:i}),(0,a.jsx)("span",{style:{fontFamily:z,fontSize:11,color:"var(--ink-5)"},children:r})]},t)})})]})}function Z(e){let{label:t,active:n,disabled:i,onClick:r}=e;return(0,a.jsx)("button",{onClick:r,disabled:i,style:{fontFamily:E,fontSize:10,letterSpacing:"0.08em",padding:"5px 10px",border:"1px solid ".concat(n?F:T),background:n?"".concat(R):"transparent",color:n?F:"var(--ink-5)",borderRadius:3,cursor:i?"not-allowed":"pointer",opacity:i?.3:1,transition:"all 0.15s"},children:t})}function ee(e){let{label:t,active:n,onClick:i}=e;return(0,a.jsx)("button",{onClick:i,style:{fontFamily:E,fontSize:9,padding:"3px 8px",border:"1px solid ".concat(n?F:T),background:n?"".concat(R):"transparent",color:n?F:"var(--ink-5)",borderRadius:3,cursor:"pointer",letterSpacing:"0.06em",transition:"all 0.15s"},children:t})}function et(e){let{value:t,options:n,onChange:i}=e,r=n.map(e=>"string"==typeof e?{value:e,label:e.replace("claude-","").replace("-20251001","").toUpperCase()}:e);return(0,a.jsxs)("div",{style:{position:"relative"},children:[(0,a.jsx)("select",{value:t,onChange:e=>i(e.target.value),style:{appearance:"none",background:"var(--paper-input)",border:"1px solid ".concat(T),color:"var(--ink-4)",fontSize:10,letterSpacing:"0.08em",padding:"5px 24px 5px 10px",borderRadius:3,cursor:"pointer",outline:"none",fontFamily:E},children:r.map(e=>(0,a.jsx)("option",{value:e.value,children:e.label},e.value))}),(0,a.jsx)("span",{style:{position:"absolute",right:8,top:"50%",transform:"translateY(-50%)",color:"var(--ink-5)",fontSize:10,pointerEvents:"none"},children:"▾"})]})}function en(e){var t;let{agentName:n,agentCode:i,agentSection:r,tagline:l,onChipClick:o,customQuickStart:s}=e,d=s&&s.length>0?s:null!=(t=O[n.toLowerCase()])?t:[];return(0,a.jsxs)("div",{className:"animate-fade-up",style:{padding:"40px 0",textAlign:"center"},children:[(0,a.jsx)("div",{style:{fontFamily:E,fontSize:9,color:"var(--ink-6)",letterSpacing:"0.12em",marginBottom:8},children:r}),(0,a.jsx)("div",{style:{fontFamily:E,fontSize:28,fontWeight:700,color:"var(--ink)",letterSpacing:"-0.02em",marginBottom:4},children:i}),(0,a.jsx)("div",{style:{fontSize:14,color:"var(--ink-4)",marginBottom:32},children:l}),(0,a.jsxs)("div",{style:{maxWidth:480,margin:"0 auto",textAlign:"left"},children:[(0,a.jsx)("div",{style:{fontFamily:E,fontSize:10,color:"var(--ink-6)",letterSpacing:"0.14em",marginBottom:12,textAlign:"center"},children:"QUICK START"}),(0,a.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:d.map(e=>(0,a.jsx)("button",{onClick:()=>o(e),style:{textAlign:"left",fontSize:13,color:"var(--ink-4)",border:"1px solid ".concat(T),background:"transparent",borderRadius:3,padding:"10px 14px",cursor:"pointer",lineHeight:1.5,transition:"all 0.15s"},onMouseEnter:e=>{let t=e.currentTarget;t.style.borderColor=F,t.style.color="var(--ink)"},onMouseLeave:e=>{let t=e.currentTarget;t.style.borderColor=T,t.style.color="var(--ink-4)"},children:e},e))})]})]})}function ea(e){let t=Date.now()-e;return t<6e4?"just now":t<36e5?"".concat(Math.floor(t/6e4),"m ago"):t<864e5?"".concat(Math.floor(t/36e5),"h ago"):new Date(e).toLocaleDateString()}let ei=null;function er(e){let{message:t,agentCode:n,onRunTemplate:l,conversationContext:o}=e,[s,d]=(0,i.useState)(!1),[c,p]=(0,i.useState)([]),u="user"===t.role;return((0,i.useEffect)(()=>{if(u||!t.content)return;let e=!1;return(ei?Promise.resolve(ei):fetch("/api/templates").then(e=>e.json()).then(e=>(ei=e.templates,e.templates)).catch(()=>[])).then(n=>{e||p(n.filter(e=>RegExp("\\b".concat(e.name.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"\\b"),"i").test(t.content)).map(e=>({id:e.id,name:e.name})))}),()=>{e=!0}},[t.content,u]),u)?(0,a.jsxs)("div",{className:"animate-fade-up",style:{display:"flex",gap:12,alignItems:"flex-start",flexDirection:"row-reverse"},children:[(0,a.jsx)("div",{style:{width:24,height:24,borderRadius:2,flexShrink:0,marginTop:1,background:"var(--user-bg)",border:"1px solid ".concat(F,"44"),display:"flex",alignItems:"center",justifyContent:"center"},children:(0,a.jsx)("span",{style:{fontFamily:E,fontSize:7,color:F,fontWeight:700},children:"ME"})}),(0,a.jsxs)("div",{style:{maxWidth:"72%",padding:"10px 14px",background:"var(--user-bg)",borderRadius:"4px 0 4px 4px",border:"1px solid ".concat(F,"22")},children:[(0,a.jsx)("pre",{style:{fontFamily:z,fontSize:13,color:"var(--ink)",lineHeight:1.65,margin:0,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:t.content}),(0,a.jsx)("time",{style:{fontFamily:E,fontSize:9,color:"var(--ink-6)",display:"block",marginTop:6},children:ea(t.timestamp)})]})]}):t.content?(0,a.jsxs)("div",{className:"animate-fade-up",style:{display:"flex",gap:12,alignItems:"flex-start"},children:[(0,a.jsx)("div",{style:{width:24,height:24,borderRadius:2,flexShrink:0,marginTop:1,background:"var(--paper-input)",border:"1px solid ".concat(T),display:"flex",alignItems:"center",justifyContent:"center"},children:(0,a.jsx)("span",{style:{fontFamily:E,fontSize:7,color:F,fontWeight:700},children:"AI"})}),(0,a.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,a.jsx)("div",{style:{maxWidth:"80%",padding:"10px 14px",background:"var(--paper-input)",borderRadius:"0 4px 4px 4px",border:"1px solid ".concat(T)},children:(0,a.jsx)("div",{className:"prose-agent",children:(0,a.jsx)(r.oz,{children:t.content||""})})}),t.content&&(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:6,fontFamily:E},children:[(0,a.jsx)("time",{style:{fontSize:9,color:"var(--ink-6)"},children:ea(t.timestamp)}),(0,a.jsx)("div",{style:{display:"flex",gap:4,marginLeft:"auto"},children:(0,a.jsx)(ee,{label:s?"✓ COPIED":"COPY",active:s,onClick:()=>{navigator.clipboard.writeText(t.content),d(!0),setTimeout(()=>d(!1),1500)}})})]}),c.length>0&&l&&(0,a.jsx)("div",{style:{marginTop:8,display:"flex",flexWrap:"wrap",gap:6},children:c.map(e=>(0,a.jsxs)("button",{onClick:()=>l(e.id,null!=o?o:t.content),style:{fontFamily:E,fontSize:9,letterSpacing:"0.08em",textTransform:"uppercase",padding:"5px 10px",border:"1px solid ".concat(F),background:"".concat(F,"1a"),color:F,borderRadius:2,cursor:"pointer"},children:['↳ Run "',e.name,'"']},e.id))})]})]}):null}let el=(0,i.forwardRef)(function(e,t){let{value:n,onChange:r,onSubmit:l,onVoice:o,onBroadcast:s,onAttach:d,hasAttachments:c,disabled:p,isListening:u,broadcastMode:h,agentName:g}=e,m=(0,i.useRef)(null),f=h?F:u?"#ef4444":T,x=(n.trim().length>0||!0===c)&&!p;return(0,a.jsxs)("div",{style:{position:"relative",border:"1px solid ".concat(f),borderRadius:3,background:"var(--paper-input)",transition:"border-color 0.15s"},children:[(0,a.jsx)("input",{ref:m,type:"file",multiple:!0,style:{display:"none"},onChange:e=>{e.target.files&&d&&(d(e.target.files),e.target.value="")}}),(0,a.jsx)("span",{style:{position:"absolute",left:12,top:"50%",transform:"translateY(-50%)",fontFamily:E,fontSize:11,color:"var(--ink-6)",pointerEvents:"none",zIndex:1},children:"→"}),(0,a.jsx)("button",{onClick:o,disabled:p,style:{position:"absolute",left:36,top:7,width:28,height:28,borderRadius:2,display:"flex",alignItems:"center",justifyContent:"center",background:u?"rgba(239,68,68,0.15)":S,border:"1px solid ".concat(u?"#ef4444":T),cursor:p?"not-allowed":"pointer",opacity:p?.3:1,color:u?"#ef4444":"var(--ink-5)",transition:"all 0.15s"},children:(0,a.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("rect",{x:"9",y:"2",width:"6",height:"11",rx:"3"}),(0,a.jsx)("path",{d:"M5 10a7 7 0 0 0 14 0"}),(0,a.jsx)("line",{x1:"12",y1:"19",x2:"12",y2:"22"}),(0,a.jsx)("line",{x1:"8",y1:"22",x2:"16",y2:"22"})]})}),d&&(0,a.jsx)("button",{onClick:()=>{var e;return null==(e=m.current)?void 0:e.click()},disabled:p,title:"Attach file",style:{position:"absolute",left:70,top:7,width:28,height:28,borderRadius:2,display:"flex",alignItems:"center",justifyContent:"center",background:S,border:"1px solid ".concat(T),cursor:p?"not-allowed":"pointer",opacity:p?.3:1,color:"var(--ink-5)",transition:"all 0.15s"},children:(0,a.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,a.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.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48"})})}),(0,a.jsx)("textarea",{ref:t,value:n,onChange:e=>r(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),l())},onPaste:e=>{var t;if(!d)return;let n=null==(t=e.clipboardData)?void 0:t.items;if(!n)return;let a=[];for(let e=0;e<n.length;e++){let t=n[e];if("file"===t.kind){let e=t.getAsFile();e&&a.push(e)}}a.length>0&&(e.preventDefault(),d(a))},placeholder:h?"Broadcast to all agents…":"Message ".concat(g.toLowerCase()," agent…"),disabled:p,rows:1,style:{width:"100%",background:"transparent",border:"none",outline:"none",padding:"12px 132px 12px ".concat(d?106:72,"px"),fontSize:13,color:"var(--ink)",fontFamily:z,resize:"none",lineHeight:1.5,minHeight:44,maxHeight:240,cursor:p?"not-allowed":"text"},onInput:e=>{let t=e.currentTarget;t.style.height="auto",t.style.height=Math.min(t.scrollHeight,240)+"px"}}),(0,a.jsxs)("div",{style:{position:"absolute",right:10,top:7,display:"flex",alignItems:"center",gap:6},children:[(0,a.jsx)("button",{onClick:s,disabled:p,title:"Broadcast to all agents",style:{width:28,height:28,borderRadius:2,display:"flex",alignItems:"center",justifyContent:"center",background:h?F:S,border:"1px solid ".concat(h?F:T),cursor:p?"not-allowed":"pointer",opacity:p?.3:1,fontSize:13,transition:"all 0.15s",flexShrink:0},children:"\uD83D\uDCE2"}),(0,a.jsx)("button",{onClick:l,disabled:!x,style:{padding:"7px 12px",borderRadius:3,background:x?F:"var(--paper-input)",border:"1px solid ".concat(x?F:T),color:x?"#000":"var(--ink-6)",fontFamily:E,fontSize:10,letterSpacing:"0.08em",cursor:x?"pointer":"not-allowed",transition:"all 0.15s",whiteSpace:"nowrap",flexShrink:0},children:"SEND →"})]})]})});function eo(e){var t,n;let{selectedAgent:r,chatOpen:o,conversations:d,onSelectAgent:c,onOpenMarketplace:p}=e,{pack:u}=j(),h=null!=(t=null==u?void 0:u.agentTeams)?t:s,g=null!=(n=null==u?void 0:u.agents)?n:l,[m,f]=(0,i.useState)(new Set),[x,y]=(0,i.useState)(""),v=(0,i.useRef)(null),[b,k]=(0,i.useState)({}),[w,R]=(0,i.useState)(()=>{try{let e=window.localStorage.getItem("leedab:agent:seen-len");return e?JSON.parse(e):{}}catch(e){return{}}});(0,i.useEffect)(()=>{var e,t,n;if(!o)return;let a=null!=(t=null==(e=d[r])?void 0:e.length)?t:0;if((null!=(n=w[r])?n:0)===a)return;let i={...w,[r]:a};R(i);try{window.localStorage.setItem("leedab:agent:seen-len",JSON.stringify(i))}catch(e){}},[r,o,d,w]),(0,i.useEffect)(()=>{let e=e=>{let t=["TEXTAREA","INPUT"].includes(e.target.tagName);"/"!==e.key||t||!v.current||o||(e.preventDefault(),v.current.focus())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[o]);let B=e=>{var t,n,a;if(!x.trim())return!0;let i=x.toLowerCase(),r=g[e];return null!=(t=null==r?void 0:r.code.toLowerCase().includes(i))&&t||null!=(n=null==r?void 0:r.name.toLowerCase().includes(i))&&n||null!=(a=null==r?void 0:r.tagline.toLowerCase().includes(i))&&a};return(0,i.useEffect)(()=>{let e=!1,t=async()=>{try{let t=await fetch("/api/runs?limit=500");if(!t.ok)return;let n=await t.json(),a=Date.now(),i={};for(let e of n.runs){let t=a-e.startedAt;if(t>864e5)continue;let n=11-Math.floor(t/72e5);!(n<0)&&!(n>11)&&(i[e.agentId]||(i[e.agentId]=Array(12).fill(0)),i[e.agentId][n]++)}e||k(i)}catch(e){}};t();let n=setInterval(t,3e4);return()=>{e=!0,clearInterval(n)}},[]),(0,a.jsxs)("div",{style:{width:220,flexShrink:0,borderRight:"1px solid ".concat(T),background:S,display:"flex",flexDirection:"column",overflow:"hidden"},children:[(0,a.jsx)("div",{style:{padding:"8px 10px",borderBottom:"1px solid ".concat(C),flexShrink:0},children:(0,a.jsx)("input",{ref:v,value:x,onChange:e=>y(e.target.value),onKeyDown:e=>{"Escape"===e.key&&(y(""),e.currentTarget.blur())},placeholder:"Find…",style:{width:"100%",padding:"4px 8px",background:"var(--paper-input)",border:"1px solid ".concat(C),borderRadius:2,color:"var(--ink)",fontFamily:E,fontSize:10,outline:"none"}})}),(0,a.jsx)("div",{style:{flex:1,overflowY:"auto"},children:h.map((e,t)=>{let{label:n,ids:i,color:l}=e,s=i.filter(B);if(0===s.length)return null;let p=!m.has(n),u=i.filter(e=>{var t,n;return(null!=(n=null==(t=b[e])?void 0:t.reduce((e,t)=>e+t,0))?n:0)>0}).length;return(0,a.jsxs)("div",{style:{borderTop:0===t?"none":"1px solid ".concat(C),background:"linear-gradient(90deg, ".concat(l,"0a 0%, transparent 60%)")},children:[(0,a.jsxs)("button",{onClick:()=>f(e=>{let t=new Set(e);return t.has(n)?t.delete(n):t.add(n),t}),style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"8px 10px 7px",background:"transparent",borderTop:"none",borderRight:"none",borderBottom:"none",borderLeft:"3px solid ".concat(l),cursor:"pointer",textAlign:"left",transition:"background 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="".concat(l,"14")},onMouseLeave:e=>{e.currentTarget.style.background="transparent"},children:[(0,a.jsx)("span",{style:{fontFamily:E,fontSize:9,color:l,opacity:.7,display:"inline-block",transition:"transform 0.15s",transform:p?"rotate(90deg)":"none",lineHeight:1,width:8},children:"›"}),(0,a.jsx)("span",{style:{fontFamily:E,fontSize:10,fontWeight:600,color:l,letterSpacing:"0.14em",flex:1,overflow:"hidden",textOverflow:"ellipsis"},children:n}),u>0&&(0,a.jsx)("span",{title:"".concat(u," agent").concat(1===u?"":"s"," active in last 24h"),style:{width:6,height:6,borderRadius:"50%",background:l,boxShadow:"0 0 5px ".concat(l,"aa"),flexShrink:0}})]}),p&&s.map(e=>{var t;let n=g[e];if(!n)return null;let i=function(e){var t,n,a;let i=null!=(n=null==(t=d[e])?void 0:t.length)?n:0,r=null!=(a=w[e])?a:i;return Math.min(99,Math.max(0,i-r))}(e),s=e===r&&o,p=D[e];return(0,a.jsxs)("button",{onClick:()=>c(e),style:{display:"flex",alignItems:"center",gap:7,width:"100%",padding:"5px 10px 5px 22px",background:s?"".concat(l,"1c"):"transparent",borderTop:"none",borderRight:"none",borderBottom:"none",borderLeft:"2px solid ".concat(s?l:"transparent"),cursor:"pointer",textAlign:"left",transition:"background 0.1s"},onMouseEnter:e=>{s||(e.currentTarget.style.background="".concat(l,"10"))},onMouseLeave:e=>{s||(e.currentTarget.style.background="transparent")},children:[(0,a.jsx)("span",{style:{width:5,height:5,borderRadius:"50%",flexShrink:0,background:"active"===p?l:"var(--ink-7)",boxShadow:"active"===p?"0 0 4px ".concat(l,"88"):"none"}}),(0,a.jsx)("span",{style:{fontFamily:E,fontSize:8,color:s?l:"var(--ink-5)",flex:"0 0 26px",letterSpacing:"0.04em",fontVariantNumeric:"tabular-nums",textAlign:"left"},children:n.code}),(0,a.jsx)("span",{title:"".concat(n.name," — ").concat(n.tagline),style:{fontSize:11,fontFamily:z,color:s?"var(--ink)":"var(--ink-3)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontWeight:s?500:400},children:n.name}),(0,a.jsx)(es,{buckets:null!=(t=b[e])?t:[],accent:l}),i>0&&(0,a.jsx)("span",{style:{background:l,color:"var(--paper)",borderRadius:8,fontSize:9,lineHeight:1,padding:"2px 6px",fontFamily:E,fontWeight:600,flexShrink:0,minWidth:16,textAlign:"center"},children:i})]},e)})]},n)})}),(0,a.jsxs)("button",{onClick:()=>null==p?void 0:p(),onMouseEnter:e=>{e.currentTarget.style.background="".concat(F,"14")},onMouseLeave:e=>{e.currentTarget.style.background="transparent"},style:{flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",gap:6,padding:"10px 12px",background:"transparent",border:"none",borderTop:"1px dashed ".concat(T),color:"var(--ink-5)",fontFamily:E,fontSize:10,letterSpacing:"0.16em",cursor:"pointer",textTransform:"uppercase",transition:"background 0.15s, color 0.15s"},children:[(0,a.jsx)("span",{style:{color:F,fontSize:13,lineHeight:1},children:"+"})," ADD OPERATOR"]})]})}function es(e){let{buckets:t,accent:n}=e;if(0===t.length)return(0,a.jsx)("div",{style:{width:36,height:14,flexShrink:0},"aria-hidden":!0});let i=null!=n?n:F,r=Math.max(1,...t);return(0,a.jsx)("svg",{width:36,height:14,style:{flexShrink:0},"aria-label":"last 24h activity",children:Array.from({length:12}).map((e,n)=>{var l;let o=null!=(l=t[n])?l:0,s=0===o?1:Math.max(1,Math.round(o/r*12));return(0,a.jsx)("rect",{x:3*n,y:14-s,width:2.5,height:s,fill:0===o?"var(--ink-7)":i,opacity:0===o?.3:.85},n)})})}function ed(e){return"".concat("leedab-dashboard-layout-").concat(e)}var ec=n(7787),ep=n(9027),eu=n(7587);function eh(e){var t,n,r,o;let{selectedAgent:d,chatOpen:c,conversations:p,onSelectAgent:u,broadcastTargets:h=[],onOpenMarketplace:g}=e,[m,f]=(0,i.useState)(new Set);(0,i.useEffect)(()=>{let e=!1;async function t(){try{let t=await fetch("/api/runs?limit=200");if(!t.ok)return;let n=await t.json(),a=Date.now()-36e5,i=new Set(n.runs.filter(e=>e.startedAt>a).map(e=>e.agentId));e||f(i)}catch(e){}}t();let n=setInterval(t,3e4);return()=>{e=!0,clearInterval(n)}},[]);let{pack:x}=j(),y=null!=(t=null==x?void 0:x.agentTeams)?t:s,v=null!=(n=null==x?void 0:x.agents)?n:l,b=null!=(r=null==x?void 0:x.customer)?r:null,k=null!=(o=null==b?void 0:b.clientId)?o:null,[S,w]=(0,i.useState)(null);(0,i.useEffect)(()=>{if(!k)return void w(null);w(function(e){try{let t=window.localStorage.getItem(ed(e));if(!t)return null;let n=JSON.parse(t);if(!n||!Array.isArray(n.teamOrder))return null;return n}catch(e){return null}}(k))},[k]);let T=(0,i.useMemo)(()=>(function(e,t){if(!t)return e;let n=new Map(e.map(e=>[e.label,e])),a=[];for(let t of e){var i;let e=null!=(i=t.group)?i:null,n=a[a.length-1];n&&n.group===e?n.labels.push(t.label):a.push({group:e,labels:[t.label]})}let r=[];for(let e of a){let n=new Set(e.labels),a=new Set;for(let e of t.teamOrder)n.has(e)&&!a.has(e)&&(r.push(e),a.add(e));for(let t of e.labels)a.has(t)||(r.push(t),a.add(t))}return r.map(e=>n.get(e))})(y,S),[y,S]),C=T.length,R=T.reduce((e,t)=>e+t.ids.length,0),[z,I]=(0,i.useState)(!1),A=(0,ec.FR)((0,ec.MS)(ec.AN,{activationConstraint:{distance:5}}),(0,ec.MS)(ec.uN,{coordinateGetter:ep.JR})),D=e=>{let{active:t,over:n}=e;if(!n||!k)return;let a=String(t.id),i=String(n.id);if(a===i)return;let r=function(e,t,n){var a,i;if(t===n)return e;let r=e.findIndex(e=>e.label===t),l=e.findIndex(e=>e.label===n);if(r<0||l<0||(null!=(a=e[r].group)?a:null)!==(null!=(i=e[l].group)?i:null))return e;let o=e.slice(),[s]=o.splice(r,1);return o.splice(l,0,s),o}(T,a,i);if(r===T)return;let l={teamOrder:r.map(e=>e.label),updatedAt:Date.now()};w(l);try{window.localStorage.setItem(ed(k),JSON.stringify(l))}catch(e){}},W=(e,t)=>{var n,a;return{id:e,agent:v[e],isOpen:e===d&&c,isInBroadcast:h.includes(e),hasMessages:(null!=(a=null==(n=p[e])?void 0:n.length)?a:0)>0,ranRecently:m.has(e),floatDelay:t,onClick:t=>{u(e,{multi:t.metaKey||t.ctrlKey||t.shiftKey})}}},O=R<=10?108:R<=14?98:R<=24?88:R<=40?78:68,L=T.reduce((e,t)=>e+t.ids.filter(e=>m.has(e)).length,0),N=R<=10?420:R<=18?380:340;return(0,a.jsx)("div",{style:{flex:1,overflow:"auto",background:"radial-gradient(ellipse 70% 40% at 50% 0%, ".concat(F,"06 0%, transparent 70%), var(--paper)")},children:(0,a.jsxs)("div",{style:{maxWidth:1320,margin:"0 auto",padding:"32px 32px 96px"},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"flex-end",gap:24,paddingBottom:22,marginBottom:32,borderBottom:"1px solid var(--ink-7)",position:"relative",flexWrap:"wrap"},children:[(0,a.jsx)("div",{style:{fontFamily:E,fontSize:10,color:F,letterSpacing:"0.2em",lineHeight:1,paddingBottom:4,flexShrink:0},children:"\xa7 00"}),(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6,flexShrink:0},children:[(0,a.jsxs)("div",{style:{fontFamily:M,fontStyle:"italic",fontSize:38,fontWeight:400,color:"var(--ink)",letterSpacing:"-0.025em",lineHeight:.95},children:["The ",(0,a.jsx)("span",{style:{color:F},children:"workforce"}),"."]}),b&&(0,a.jsxs)("div",{style:{fontFamily:E,fontSize:10,color:"var(--ink-4)",letterSpacing:"0.16em",textTransform:"uppercase"},children:[(0,a.jsx)("span",{style:{color:"var(--ink-2)"},children:b.displayName}),b.industry?(0,a.jsxs)("span",{children:[" \xb7 ",b.industry]}):null,b.tier?(0,a.jsxs)("span",{children:[" \xb7 ",b.tier]}):null]})]}),(0,a.jsxs)("div",{style:{fontFamily:E,fontSize:10,color:"var(--ink-5)",letterSpacing:"0.14em",textTransform:"uppercase",paddingBottom:6,lineHeight:1.5,flex:1,minWidth:180,display:"flex",flexDirection:"column",alignItems:"flex-end",gap:3},children:[(0,a.jsxs)("span",{children:[(0,a.jsx)("span",{style:{color:"var(--ink-2)",fontSize:14,fontFamily:B,fontWeight:500,letterSpacing:"-0.01em",marginRight:4},children:R})," ",1===R?"AB":"AB's"," \xb7 ",C," teams"]}),L>0&&(0,a.jsxs)("span",{style:{color:F},children:["● ",L," active last hour"]}),k&&(0,a.jsxs)("span",{style:{display:"flex",gap:6,marginTop:4},children:[g&&(0,a.jsxs)("button",{type:"button",onClick:g,title:"Add, remove, or spawn a custom operator",style:{fontFamily:E,fontSize:9,letterSpacing:"0.14em",textTransform:"uppercase",padding:"4px 10px",borderRadius:3,border:"1px solid var(--ink-7)",background:"transparent",color:"var(--ink-4)",cursor:"pointer",transition:"all 0.18s",display:"inline-flex",alignItems:"center",gap:5},onMouseEnter:e=>{e.currentTarget.style.background="".concat(F,"14"),e.currentTarget.style.borderColor=F},onMouseLeave:e=>{e.currentTarget.style.background="transparent",e.currentTarget.style.borderColor="var(--ink-7)"},children:[(0,a.jsx)("span",{style:{color:F,fontSize:11,lineHeight:1},children:"+"}),"Add operator"]}),(0,a.jsx)("button",{type:"button",onClick:()=>I(e=>!e),title:z?"Exit layout edit mode":"Drag team cards to rearrange",style:{fontFamily:E,fontSize:9,letterSpacing:"0.14em",textTransform:"uppercase",padding:"4px 10px",borderRadius:3,border:"1px solid ".concat(z?F:"var(--ink-7)"),background:z?"".concat(F,"14"):"transparent",color:z?F:"var(--ink-4)",cursor:"pointer",transition:"all 0.18s"},children:z?"Done":"Edit layout"}),z&&S&&(0,a.jsx)("button",{type:"button",onClick:()=>{if(k){try{window.localStorage.removeItem(ed(k))}catch(e){}w(null),I(!1)}},title:"Restore default team order",style:{fontFamily:E,fontSize:9,letterSpacing:"0.14em",textTransform:"uppercase",padding:"4px 10px",borderRadius:3,border:"1px solid var(--ink-7)",background:"transparent",color:"var(--ink-5)",cursor:"pointer"},children:"Reset"})]})]})]}),(()=>{let e=[];for(let n of T){var t;let a=null!=(t=n.group)?t:null,i=e[e.length-1];i&&i.group===a?i.teams.push(n):e.push({group:a,teams:[n]})}let n=0;return(0,a.jsx)(ec.Mp,{sensors:A,collisionDetection:ec.fp,onDragEnd:D,children:e.map((e,t)=>(0,a.jsxs)("div",{children:[e.group&&(0,a.jsxs)("div",{style:{fontFamily:E,fontSize:11,color:"var(--ink-4)",letterSpacing:"0.22em",textTransform:"uppercase",paddingBottom:8,marginTop:36*(0!==t),marginBottom:18,borderBottom:"1px dashed var(--ink-7)",display:"flex",alignItems:"baseline",gap:12},children:[(0,a.jsx)("span",{style:{color:F,letterSpacing:"0.18em"},children:"—"}),(0,a.jsx)("span",{children:e.group})]}),(0,a.jsx)(ep.gB,{items:e.teams.map(e=>e.label),strategy:ep.kL,children:(0,a.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(".concat(N,"px, 1fr))"),gap:20},children:e.teams.map(e=>{let t=n++;return(0,a.jsx)(eg,{team:e,teamIndex:t,orbSize:O,agentMap:v,recentIds:m,orbProps:W,editMode:z},e.label)})})})]},"group-".concat(t)))})})()]})})}function eg(e){var t;let{team:n,teamIndex:i,orbSize:r,agentMap:l,recentIds:o,orbProps:s,editMode:d}=e,{label:c,ids:p,color:u}=n,h=u||(null==(t=l[p[0]])?void 0:t.accent)||F,g=p.some(e=>o.has(e)),{attributes:m,listeners:f,setNodeRef:x,transform:y,transition:v,isDragging:b}=(0,ep.gl)({id:c,disabled:!d}),j={transform:eu.Ks.Transform.toString(y),transition:v,opacity:b?.55:1,cursor:d?b?"grabbing":"grab":"default",boxShadow:b?"0 1px 0 rgba(255,255,255,0.6) inset, 0 18px 40px -10px ".concat(h,"99, 0 4px 12px rgba(26,23,19,0.18)"):"0 1px 0 rgba(255,255,255,0.6) inset, 0 6px 18px -10px ".concat(h,"55, 0 1px 3px rgba(26, 23, 19, 0.06)")},k=d?{outline:"1px dashed ".concat(h,"88"),outlineOffset:4}:void 0;return(0,a.jsxs)("div",{ref:x,...d?m:{},...d?f:{},style:{border:"1px solid ".concat(h,"40"),borderRadius:8,background:"linear-gradient(160deg, ".concat(h,"0d 0%, var(--paper) 55%)"),padding:"18px 18px 22px",position:"relative",overflow:"hidden",transition:"transform 0.3s cubic-bezier(.22,1,.36,1), box-shadow 0.3s",...k,...j},onMouseEnter:e=>{d||b||(e.currentTarget.style.transform="translateY(-2px)",e.currentTarget.style.boxShadow="0 1px 0 rgba(255,255,255,0.6) inset, 0 14px 32px -14px ".concat(h,"88, 0 2px 6px rgba(26, 23, 19, 0.08)"))},onMouseLeave:e=>{d||b||(e.currentTarget.style.transform="translateY(0)",e.currentTarget.style.boxShadow="0 1px 0 rgba(255,255,255,0.6) inset, 0 6px 18px -10px ".concat(h,"55, 0 1px 3px rgba(26, 23, 19, 0.06)"))},children:[(0,a.jsx)("div",{style:{position:"absolute",top:0,left:0,right:0,height:2,background:"linear-gradient(90deg, ".concat(h,"aa 0%, ").concat(h,"33 100%)")}}),(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,paddingBottom:14,marginBottom:18,borderBottom:"1px dashed ".concat(h,"33")},children:[(0,a.jsx)("span",{style:{fontFamily:E,fontSize:13,fontWeight:700,color:h,letterSpacing:"0.16em"},children:c}),g&&(0,a.jsx)("span",{title:"active in last hour",className:"orb-recent-halo",style:{width:7,height:7,borderRadius:"50%",background:h,boxShadow:"0 0 7px ".concat(h,"cc")}}),(0,a.jsxs)("span",{style:{marginLeft:"auto",fontFamily:E,fontSize:10,color:h,padding:"3px 9px",border:"1px solid ".concat(h,"55"),borderRadius:999,lineHeight:1.5,letterSpacing:"0.06em"},children:[p.length," \xb7 ",1===p.length?"AB":"AB's"]})]}),(0,a.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"32px 26px",justifyContent:"flex-start",alignItems:"flex-start",paddingTop:4,pointerEvents:d?"none":"auto"},children:p.map((e,t)=>{let[n,l]=function(e){let t=0x811c9dc5;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,0x1000193);return[(t>>>0)%29-14,(t>>>8)%29-12]}(e);return(0,a.jsx)("div",{style:{transform:"translate(".concat(.2*n,"px, ").concat(.2*l,"px)")},children:(0,a.jsx)(em,{...s(e,-(1.2*i+.3*t)),orbSize:r})},e)})})]})}function em(e){var t;let{id:n,agent:r,isOpen:l,isInBroadcast:o=!1,hasMessages:s,ranRecently:d=!1,floatDelay:c,orbSize:p=80,onClick:u}=e,[h,g]=(0,i.useState)(!1),m=D[n],f=null!=(t=r.accent)?t:F,x=Math.round(.1375*p),y="#9aa37a",v=l?"radial-gradient(circle at 35% 28%, ".concat(f,"30 0%, ").concat(f,"14 35%, #ebe2d3 65%, #d8ccb8 100%)"):o?"radial-gradient(circle at 35% 28%, ".concat(y,"26 0%, ").concat(y,"10 40%, #ece4d0 70%, #d8ccb8 100%)"):h?"radial-gradient(circle at 35% 28%, #f0e8d8 0%, #e3d6c2 50%, #cfc0a5 100%)":"radial-gradient(circle at 35% 28%, #f5f0e6 0%, #ebe2d3 50%, #d8ccb8 100%)",b=l?"0 0 0 1.5px ".concat(f,"44, 0 0 20px ").concat(f,"22, 0 6px 24px rgba(26,23,19,0.14), inset 0 1px 0 rgba(255,255,255,0.75)"):o?"0 0 0 2px ".concat(y,", 0 0 0 4px ").concat(y,"30, 0 4px 16px rgba(26,23,19,0.12), inset 0 1px 0 rgba(255,255,255,0.78)"):h?"0 0 0 1px #b5a892, 0 4px 20px rgba(26,23,19,0.16), inset 0 1px 0 rgba(255,255,255,0.85), inset 0 0 14px rgba(26,23,19,0.05)":"0 0 0 1px #c9bea6, 0 2px 12px rgba(26,23,19,0.10), inset 0 1px 0 rgba(255,255,255,0.80), inset 0 0 12px rgba(26,23,19,0.04)";return(0,a.jsxs)("div",{onClick:u,onMouseEnter:()=>g(!0),onMouseLeave:()=>g(!1),style:{display:"flex",flexDirection:"column",alignItems:"center",gap:0,cursor:"pointer",transform:"scale(".concat(l?1.15:h?1.08:1,")"),transition:"transform 0.22s cubic-bezier(0.4, 0, 0.2, 1)"},children:[(0,a.jsxs)("div",{style:{position:"relative",width:p,height:p,animation:"orb-float 4s ease-in-out ".concat(c,"s infinite"),willChange:"transform"},children:[l&&(0,a.jsx)("div",{style:{position:"absolute",inset:-12,borderRadius:"50%",background:"radial-gradient(ellipse, ".concat(f,"28 0%, transparent 70%)"),pointerEvents:"none"}}),"active"===m&&(0,a.jsx)("div",{className:"orb-pulse-ring",style:{position:"absolute",inset:-4,borderRadius:"50%",border:"1px solid ".concat(l?f+"44":f+"22"),pointerEvents:"none"}}),d&&!l&&(0,a.jsx)("div",{className:"orb-recent-halo",style:{position:"absolute",inset:-8,borderRadius:"50%",background:"radial-gradient(ellipse, ".concat(f,"24 0%, transparent 65%)"),pointerEvents:"none"}}),(0,a.jsxs)("div",{style:{width:p,height:p,borderRadius:"50%",background:v,boxShadow:b,display:"flex",alignItems:"center",justifyContent:"center",position:"relative",overflow:"hidden",transition:"background 0.3s, box-shadow 0.3s"},children:[(0,a.jsx)("div",{style:{position:"absolute",top:"12%",left:"18%",width:"38%",height:"26%",borderRadius:"50%",background:"radial-gradient(ellipse, rgba(255,255,255,0.80) 0%, transparent 75%)",pointerEvents:"none"}}),(0,a.jsx)("div",{style:{position:"absolute",bottom:"8%",right:"10%",width:"44%",height:"34%",borderRadius:"50%",background:"radial-gradient(ellipse, rgba(0,0,0,0.10) 0%, transparent 70%)",pointerEvents:"none"}}),(0,a.jsx)("div",{style:{position:"absolute",inset:0,borderRadius:"50%",background:"radial-gradient(ellipse at 50% 0%, rgba(255,255,255,0.45) 0%, transparent 55%)",pointerEvents:"none"}}),(0,a.jsx)("span",{style:{fontFamily:E,fontSize:x,fontWeight:700,color:l?f:h?"var(--ink-3)":"var(--ink-5)",letterSpacing:"0.04em",textShadow:l?"0 0 12px ".concat(f,"55"):"none",position:"relative",zIndex:1,transition:"color 0.25s, text-shadow 0.25s"},children:r.code})]}),(0,a.jsxs)("div",{style:{position:"absolute",bottom:1,right:1,display:"flex",alignItems:"center",gap:3},children:[s&&!l&&(0,a.jsx)("span",{style:{width:5,height:5,borderRadius:"50%",background:F,display:"inline-block",boxShadow:"0 0 6px ".concat(F)}}),(0,a.jsx)("span",{style:{width:8,height:8,borderRadius:"50%",display:"inline-block",background:"active"===m?F:"var(--ink-7)",boxShadow:"active"===m?"0 0 8px ".concat(F,"aa"):"none",border:"1.5px solid ".concat(k),transition:"all 0.3s"}})]})]}),(0,a.jsx)("div",{style:{width:.7*p,height:6,borderRadius:"50%",background:"radial-gradient(ellipse, #00000077 0%, transparent 80%)",marginTop:6,animation:"orb-shadow 4s ease-in-out ".concat(c,"s infinite"),willChange:"transform, opacity"}}),(0,a.jsx)("div",{style:{marginTop:10,fontFamily:E,fontSize:11,letterSpacing:"0.1em",textAlign:"center",color:l?"var(--ink-2)":h?"var(--ink-4)":"var(--ink-6)",transition:"color 0.2s",whiteSpace:"nowrap",textTransform:"uppercase"},children:r.name})]})}var ef=n(9462);function ex(e){let{agents:t,agentOrder:n,onSelectAgent:r}=e,l=n[0],o=l?t[l]:void 0,[s,d]=(0,i.useState)(null),[c,p]=(0,i.useState)(0);(0,i.useEffect)(()=>{let e=!1;async function t(){try{let t=await fetch("/api/runs?limit=10");if(!t.ok)return;let n=await t.json();if(e)return;let a=new Date;a.setHours(0,0,0,0);let i=n.runs.filter(e=>e.startedAt>=a.getTime()).length;p(i);let r=n.runs[0];d(r?{agentId:r.agentId,startedAt:r.startedAt}:null)}catch(e){}}t();let n=setInterval(t,3e4);return()=>{e=!0,clearInterval(n)}},[]);let u=(0,i.useMemo)(()=>{var e,n;if(!s)return{line:"All quiet. The workforce is ready.",attribution:"the brain"};let a=null!=(n=null==(e=t[s.agentId])?void 0:e.name)?n:s.agentId,i=function(e){let t=Date.now()-e;return t<6e4?"just now":t<36e5?"".concat(Math.floor(t/6e4),"m ago"):t<864e5?"".concat(Math.floor(t/36e5),"h ago"):"".concat(Math.floor(t/864e5),"d ago")}(s.startedAt);return c>1?{line:"".concat(c," runs closed while you were away."),attribution:"the brain, ".concat(i)}:{line:"".concat(a," finished a thread ").concat(i,"."),attribution:"the brain"}},[s,c,t]);return(0,a.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",padding:"40px 32px",gap:0},children:[(0,a.jsx)("div",{style:{fontFamily:E,fontSize:10,color:"var(--ink-6)",letterSpacing:"0.14em",marginBottom:28},children:"\xa7 00 / OPERATORS"}),(0,a.jsx)(ey,{}),(0,a.jsx)("div",{style:{marginTop:30,fontFamily:M,fontStyle:"italic",fontSize:26,color:"var(--ink-2)",textAlign:"center",maxWidth:460,letterSpacing:"-0.01em",lineHeight:1.25},children:u.line}),(0,a.jsxs)("div",{style:{marginTop:8,fontFamily:E,fontSize:9,color:"var(--ink-5)",letterSpacing:"0.14em",textTransform:"uppercase"},children:["— ",u.attribution]}),o&&(0,a.jsxs)("button",{type:"button",onClick:()=>r(o.id),style:{marginTop:32,padding:"10px 22px",background:"transparent",border:"1px solid ".concat(F,"88"),borderRadius:3,color:F,fontFamily:E,fontSize:11,letterSpacing:"0.12em",textTransform:"uppercase",cursor:"pointer",transition:"all 0.18s"},onMouseEnter:e=>{e.currentTarget.style.background="".concat(F,"14"),e.currentTarget.style.borderColor=F},onMouseLeave:e=>{e.currentTarget.style.background="transparent",e.currentTarget.style.borderColor="".concat(F,"88")},children:["→ Start with ",o.name]}),(0,a.jsx)("div",{style:{marginTop:36,fontFamily:z,fontSize:10,color:"var(--ink-6)",letterSpacing:"0.06em"},children:"⌘L to search"})]})}function ey(){return(0,a.jsxs)("svg",{width:280,height:140,viewBox:"0 0 ".concat(280," ").concat(140),"aria-hidden":"true",style:{display:"block"},children:[(0,a.jsx)(ef.P.circle,{cx:140,cy:70,r:28,fill:"".concat(F,"14"),animate:{opacity:[.5,.9,.5],scale:[1,1.06,1]},transition:{duration:3.6,repeat:1/0,ease:"easeInOut"},style:{transformOrigin:"".concat(140,"px ").concat(70,"px")}}),(0,a.jsx)(ef.P.circle,{cx:140,cy:70,r:5,fill:F,animate:{opacity:[.85,1,.85]},transition:{duration:2.4,repeat:1/0,ease:"easeInOut"}}),[{x:28,y:30,r:1.8,dur:3.4,delay:0},{x:64,y:18,r:1.5,dur:4.1,delay:.6},{x:108,y:26,r:1.7,dur:3.6,delay:1.2},{x:172,y:22,r:1.5,dur:4.3,delay:.3},{x:220,y:32,r:1.8,dur:3.2,delay:.9},{x:256,y:50,r:1.5,dur:4.5,delay:1.5},{x:22,y:78,r:1.7,dur:3.8,delay:.4},{x:256,y:92,r:1.7,dur:3.5,delay:1.1},{x:36,y:116,r:1.5,dur:4,delay:.7},{x:80,y:122,r:1.8,dur:3.3,delay:1.4},{x:140,y:128,r:1.5,dur:4.2,delay:.2},{x:200,y:122,r:1.7,dur:3.7,delay:.8},{x:240,y:114,r:1.5,dur:4.4,delay:1},{x:96,y:60,r:1.4,dur:4.6,delay:1.3}].map((e,t)=>(0,a.jsx)(ef.P.circle,{cx:e.x,cy:e.y,r:e.r+.4,fill:F,animate:{opacity:[.28,.78,.28]},transition:{duration:e.dur,delay:e.delay,repeat:1/0,ease:"easeInOut"}},t))]})}function ev(e){let{open:t,context:n,onSubmit:r,onCancel:l}=e,[o,s]=(0,i.useState)(""),[d,c]=(0,i.useState)(null),[p,u]=(0,i.useState)(!0);if((0,i.useEffect)(()=>{if(!t)return void u(!0);let e=!1;return(async()=>{try{let n=await fetch("/api/bootstrap-admin-token",{cache:"no-store"});if(e)return;if(n.ok){var t;let e=await n.json(),a=null==e||null==(t=e.token)?void 0:t.trim();if(a){h(a),r();return}}}catch(e){}e||u(!1)})(),()=>{e=!0}},[t]),!t||p)return null;let g=()=>{let e=o.trim();if(!e)return void c("Token is required");h(e),s(""),c(null),r()};return(0,a.jsx)("div",{style:{position:"fixed",inset:0,background:"rgba(0,0,0,0.7)",zIndex:1300,display:"flex",alignItems:"center",justifyContent:"center",backdropFilter:"blur(4px)"},children:(0,a.jsxs)("div",{style:{width:460,maxWidth:"92vw",background:"var(--paper-3)",border:"1px solid ".concat(T),borderRadius:6,padding:"22px 24px",boxShadow:"0 24px 80px rgba(0,0,0,0.6)"},children:[(0,a.jsx)("div",{style:{fontFamily:E,fontSize:9,color:F,letterSpacing:"0.16em",marginBottom:6},children:"ADMIN TOKEN REQUIRED"}),(0,a.jsx)("div",{style:{fontFamily:B,fontSize:20,fontWeight:500,color:"var(--ink)",marginBottom:12,letterSpacing:"-0.01em"},children:n?"Paste your admin token ".concat(n,"."):"Paste your admin token to continue."}),(0,a.jsxs)("div",{style:{fontSize:12,color:"var(--ink-3)",lineHeight:1.6,fontFamily:z,marginBottom:14},children:["The token is in ",(0,a.jsx)("code",{style:{background:"var(--paper-2)",padding:"1px 5px",borderRadius:3},children:"apps/console/.env.local"})," as"," ",(0,a.jsx)("code",{style:{background:"var(--paper-2)",padding:"1px 5px",borderRadius:3},children:"LEEDAB_ADMIN_TOKEN"}),". Stored in this tab only — closing the tab clears it."]}),(0,a.jsx)("input",{type:"password",value:o,onChange:e=>{s(e.target.value),c(null)},onKeyDown:e=>{"Enter"===e.key&&g(),"Escape"===e.key&&l()},placeholder:"paste token here",spellCheck:!1,autoFocus:!0,style:{width:"100%",padding:"10px 12px",background:"var(--paper-2)",border:"1px solid ".concat(d?"#c44":T),color:"var(--ink)",fontFamily:E,fontSize:12,borderRadius:3,outline:"none",letterSpacing:"0.04em",marginBottom:d?6:14}}),d&&(0,a.jsx)("div",{style:{fontSize:11,color:"#e58",marginBottom:12,fontFamily:E},children:d}),(0,a.jsxs)("div",{style:{display:"flex",gap:10,justifyContent:"flex-end"},children:[(0,a.jsx)("button",{type:"button",onClick:l,style:{padding:"8px 16px",background:"transparent",border:"1px solid ".concat(T),color:"var(--ink-2)",fontFamily:E,fontSize:12,borderRadius:3,cursor:"pointer",letterSpacing:"0.04em"},children:"Cancel"}),(0,a.jsx)("button",{type:"button",onClick:g,style:{padding:"8px 18px",background:F,border:"1px solid ".concat(F),color:"var(--paper-3)",fontFamily:E,fontSize:12,borderRadius:3,cursor:"pointer",letterSpacing:"0.04em",fontWeight:600},children:"Save for tab"})]})]})})}function eb(e){let{onClose:t}=e,[n,r]=(0,i.useState)("catalogue"),[l,o]=(0,i.useState)(null);return(0,a.jsxs)("div",{onClick:t,style:{position:"fixed",inset:0,background:"rgba(0,0,0,0.7)",zIndex:1100,display:"flex",alignItems:"center",justifyContent:"center",WebkitBackdropFilter:"blur(4px)",backdropFilter:"blur(4px)"},children:[(0,a.jsxs)("div",{onClick:e=>e.stopPropagation(),className:"animate-palette-drop",style:{width:860,maxWidth:"94vw",height:640,maxHeight:"88vh",background:"var(--paper-3)",border:"1px solid ".concat(T),borderRadius:6,overflow:"hidden",display:"flex",flexDirection:"column",boxShadow:"0 24px 80px rgba(0,0,0,0.6)"},children:[(0,a.jsxs)("div",{style:{padding:"16px 20px",borderBottom:"1px solid ".concat(T),display:"flex",alignItems:"baseline",justifyContent:"space-between"},children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{style:{fontFamily:E,fontSize:9,color:F,letterSpacing:"0.16em",marginBottom:4},children:"OPERATOR LAB"}),(0,a.jsx)("div",{style:{fontFamily:B,fontSize:22,fontWeight:500,color:"var(--ink)",letterSpacing:"-0.01em"},children:"Add, remove, or spawn a custom operator."})]}),(0,a.jsx)("button",{onClick:t,style:{background:"transparent",border:"1px solid ".concat(T),color:"var(--ink-4)",padding:"4px 10px",borderRadius:3,fontFamily:E,fontSize:10,letterSpacing:"0.1em",cursor:"pointer"},children:"ESC"})]}),(0,a.jsxs)("div",{style:{display:"flex",borderBottom:"1px solid ".concat(T)},children:[(0,a.jsx)(ej,{label:"CATALOGUE",active:"catalogue"===n,onClick:()=>r("catalogue")}),(0,a.jsx)(ej,{label:"BUILD CUSTOM",active:"custom"===n,onClick:()=>r("custom")})]}),(0,a.jsx)("div",{style:{flex:1,overflowY:"auto"},children:"catalogue"===n?(0,a.jsx)(ek,{requestAdminToken:(e,t)=>o({context:e,retry:t})}):(0,a.jsx)(eT,{onSaved:t,requestAdminToken:(e,t)=>o({context:e,retry:t})})})]}),(0,a.jsx)(ev,{open:null!==l,context:null==l?void 0:l.context,onSubmit:()=>{let e=null==l?void 0:l.retry;o(null),e&&e()},onCancel:()=>o(null)})]})}function ej(e){let{label:t,active:n,onClick:i}=e;return(0,a.jsx)("button",{onClick:i,style:{flex:1,padding:"10px 16px",background:n?"var(--paper-2)":"transparent",border:"none",borderBottom:n?"2px solid ".concat(F):"2px solid transparent",color:n?"var(--ink)":"var(--ink-5)",fontFamily:E,fontSize:10,letterSpacing:"0.14em",cursor:"pointer"},children:t})}function ek(e){let{requestAdminToken:t}=e,{pack:n,refresh:r}=j(),[l,o]=(0,i.useState)(null),[s,d]=(0,i.useState)(null),[c,u]=(0,i.useState)(null),[h,m]=(0,i.useState)(null),x=(0,i.useCallback)(async()=>{try{let e=await fetch("/api/marketplace/catalogue");if(!e.ok)throw Error("catalogue ".concat(e.status));let t=await e.json();o(t.agents)}catch(e){u(e instanceof Error?e.message:"failed to load catalogue")}},[]);(0,i.useEffect)(()=>{x()},[x]);let v=(0,i.useCallback)(async e=>{u(null),d(e.id);try{let i=e.inUse?"DELETE":"POST",l=await f("/api/manifest/agents",{method:i,headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e.id})});if(!l.ok){var n,a;if(await y(l)){g(),t("to ".concat(e.inUse?"remove":"add"," this operator"),()=>v(e));return}let r=await l.json().catch(()=>({}));u(null!=(a=null!=(n=r.message)?n:r.error)?a:"".concat(i," failed (").concat(l.status,")"));return}await Promise.all([x(),r()])}catch(n){if(n instanceof p)return void t("to ".concat(e.inUse?"remove":"add"," this operator"),()=>v(e));u(n instanceof Error?n.message:"request failed")}finally{d(null)}},[x,r,t]),b=(0,i.useMemo)(()=>{var e;let t=new Map;for(let a of null!=(e=null==n?void 0:n.agentTeams)?e:[])t.set(a.label.toUpperCase(),a.color);return t},[null==n?void 0:n.agentTeams]),k=(0,i.useMemo)(()=>{var e,t,a,i;if(!l)return[];let r=new Map,o=new Map;for(let n of l){let a=(null!=(e=n.team)?e:"—").toUpperCase();r.set(a,(null!=(t=r.get(a))?t:0)+1),o.has(a)||o.set(a,n.accent)}let s=[],d=new Set;for(let e of null!=(a=null==n?void 0:n.agentTeams)?a:[]){let t=e.label.toUpperCase(),n=r.get(t);void 0!==n&&(s.push({label:t,count:n,color:e.color}),d.add(t))}for(let[e,t]of r)d.has(e)||s.push({label:e,count:t,color:null!=(i=o.get(e))?i:F});return s},[l,null==n?void 0:n.agentTeams]),S=(0,i.useMemo)(()=>l&&h?l.filter(e=>{var t;return(null!=(t=e.team)?t:"—").toUpperCase()===h}):l,[l,h]);return l||c?(0,a.jsxs)("div",{style:{padding:18},children:[c&&(0,a.jsx)("div",{style:{marginBottom:12,padding:"8px 12px",background:"".concat(F,"14"),border:"1px solid ".concat(F),color:F,fontFamily:E,fontSize:11,borderRadius:3},children:c}),l&&l.length>0&&(0,a.jsxs)("div",{className:"marketplace-team-slider",style:{display:"flex",flexWrap:"nowrap",gap:6,marginBottom:14,paddingBottom:6,overflowX:"auto",overflowY:"hidden",WebkitOverflowScrolling:"touch",scrollbarWidth:"thin"},children:[(0,a.jsx)(eS,{label:"ALL",count:l.length,color:F,active:null===h,onClick:()=>m(null)}),k.map(e=>{var t;return(0,a.jsx)(eS,{label:e.label,count:e.count,color:null!=(t=b.get(e.label))?t:e.color,active:h===e.label,onClick:()=>m(e.label===h?null:e.label)},e.label)})]}),(0,a.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(260px, 1fr))",gap:10},children:null==S?void 0:S.map(e=>(0,a.jsx)(ew,{entry:e,pending:s===e.id,onToggle:()=>v(e)},e.id))}),S&&0===S.length&&(0,a.jsxs)("div",{style:{padding:"32px 12px",textAlign:"center",color:"var(--ink-5)",fontFamily:z,fontSize:13},children:["No operators in ",(0,a.jsx)("span",{style:{color:F,fontFamily:E,fontSize:11,letterSpacing:"0.1em"},children:h}),"."]})]}):(0,a.jsx)("div",{style:{padding:24,color:"var(--ink-5)",fontFamily:z,fontSize:13},children:"Loading catalogue…"})}function eS(e){let{label:t,count:n,color:i,active:r,onClick:l}=e;return(0,a.jsxs)("button",{onClick:l,title:"Filter by ".concat(t),style:{flexShrink:0,display:"inline-flex",alignItems:"center",gap:6,padding:"4px 10px",border:"1px solid ".concat(T),background:r?"var(--paper-2)":"transparent",color:r?"var(--ink)":"var(--ink-4)",borderRadius:2,fontFamily:E,fontSize:10,letterSpacing:"0.12em",textTransform:"uppercase",cursor:"pointer",whiteSpace:"nowrap",transition:"background 0.15s, color 0.15s"},onMouseEnter:e=>{r||(e.currentTarget.style.background="var(--paper-input)",e.currentTarget.style.color="var(--ink-2)")},onMouseLeave:e=>{r||(e.currentTarget.style.background="transparent",e.currentTarget.style.color="var(--ink-4)")},children:[(0,a.jsx)("span",{style:{width:6,height:6,borderRadius:"50%",background:i,opacity:r?1:.7,flexShrink:0}}),(0,a.jsx)("span",{children:t}),(0,a.jsx)("span",{style:{color:"var(--ink-6)",opacity:.7},children:"\xb7"}),(0,a.jsx)("span",{style:{color:"var(--ink-6)",fontVariantNumeric:"tabular-nums"},children:n})]})}function ew(e){var t;let{entry:n,pending:i,onToggle:r}=e,l=n.accent;return(0,a.jsxs)("div",{style:{border:"1px solid ".concat(T),borderRadius:3,padding:"11px 13px",background:n.inUse?"var(--paper-2)":"var(--paper-3)",display:"flex",flexDirection:"column",gap:8,opacity:i?.6:1,borderLeft:n.inUse?"2px solid ".concat(l):"1px solid ".concat(T)},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,a.jsx)("span",{style:{width:5,height:5,borderRadius:"50%",background:n.inUse?l:"var(--ink-7)",boxShadow:n.inUse?"0 0 4px ".concat(l,"66"):"none",flexShrink:0}}),(0,a.jsx)("span",{style:{fontFamily:E,fontSize:9,color:l,opacity:.85,padding:"1px 6px",border:"1px solid ".concat(l,"55"),borderRadius:2,letterSpacing:"0.08em",flexShrink:0},children:n.code}),(0,a.jsxs)("div",{style:{flex:1,overflow:"hidden"},children:[(0,a.jsx)("div",{style:{fontFamily:z,fontSize:13,color:"var(--ink)",fontWeight:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:n.name}),(0,a.jsx)("div",{style:{fontFamily:E,fontSize:9,color:"var(--ink-6)",letterSpacing:"0.12em",textTransform:"uppercase"},children:null!=(t=n.team)?t:"—"})]})]}),(0,a.jsx)("div",{style:{fontFamily:z,fontSize:12,color:"var(--ink-4)",lineHeight:1.4,minHeight:32},children:n.tagline}),(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8},children:[n.hidden&&(0,a.jsx)("span",{title:"Conversation history preserved",style:{fontFamily:E,fontSize:9,color:"var(--ink-6)",letterSpacing:"0.1em"},children:"HISTORY KEPT"}),(0,a.jsx)("button",{onClick:r,disabled:i,style:{marginLeft:"auto",padding:"4px 10px",border:"1px solid ".concat(n.inUse?T:"".concat(F,"88")),background:"transparent",color:n.inUse?"var(--ink-5)":F,borderRadius:2,fontFamily:E,fontSize:9,letterSpacing:"0.12em",cursor:i?"wait":"pointer",textTransform:"uppercase",transition:"all 0.15s"},onMouseEnter:e=>{i||(e.currentTarget.style.background=n.inUse?"var(--paper-input)":"".concat(F,"14"),e.currentTarget.style.borderColor=n.inUse?"var(--ink-5)":F)},onMouseLeave:e=>{e.currentTarget.style.background="transparent",e.currentTarget.style.borderColor=n.inUse?T:"".concat(F,"88")},children:i?"…":n.inUse?"Remove":"Add"})]})]})}function eT(e){let{onSaved:t,requestAdminToken:n}=e,{pack:r,refresh:l}=j(),[o,s]=(0,i.useState)(""),[d,c]=(0,i.useState)(!1),[u,h]=(0,i.useState)(null),[m,x]=(0,i.useState)(!1),[v,b]=(0,i.useState)(!1),[k,S]=(0,i.useState)(null),w=(0,i.useRef)(null),C=(0,i.useMemo)(()=>{var e;return(null!=(e=null==r?void 0:r.agentTeams)?e:[]).map(e=>({label:e.label,color:e.color}))},[r]),R=(0,i.useMemo)(()=>{var e;if(!u)return"#9b6e2a";let t=C.find(e=>e.label.toUpperCase()===u.team.toUpperCase());return null!=(e=null==t?void 0:t.color)?e:"#9b6e2a"},[u,C]),[B,M]=(0,i.useState)(null);async function I(){S(null),c(!0),h(null),x(!1);try{let a=await f("/api/manifest/agents/custom/draft",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jobDescription:o})});if(!a.ok){var e,t;if(await y(a)){g(),n("to draft a custom operator",()=>I());return}let i=await a.json().catch(()=>({}));S(null!=(t=null!=(e=i.message)?e:i.error)?t:"draft failed (".concat(a.status,")"));return}let i=await a.json();h(i.spec),x(i.suggestedTeamIsNew),M(null)}catch(e){if(e instanceof p)return void n("to draft a custom operator",()=>I());S(e instanceof Error?e.message:"request failed")}finally{c(!1)}}async function A(){if(u){S(null),b(!0);try{let o={label:u.team.trim().toUpperCase(),color:null!=B?B:R,isNew:m},s=await f("/api/manifest/agents/custom",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({spec:u,team:o})});if(!s.ok){var e,a,i,r;if(await y(s)){g(),n("to save this custom operator",()=>A());return}let t=await s.json().catch(()=>({}));S(null!=(r=null!=(i=null!=(a=null==(e=t.errors)?void 0:e.join("; "))?a:t.message)?i:t.error)?r:"save failed (".concat(s.status,")"));return}await l(),t()}catch(e){if(e instanceof p)return void n("to save this custom operator",()=>A());S(e instanceof Error?e.message:"request failed")}finally{b(!1)}}}function D(e,t){h(n=>n?{...n,[e]:t}:n)}return(0,a.jsxs)("div",{style:{padding:18,display:"flex",flexDirection:"column",gap:14},children:[k&&(0,a.jsx)("div",{style:{padding:"8px 12px",background:"".concat(F,"14"),border:"1px solid ".concat(F),color:F,fontFamily:E,fontSize:11,borderRadius:3},children:k}),(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"baseline",justifyContent:"space-between"},children:[(0,a.jsx)("label",{style:{fontFamily:E,fontSize:9,color:"var(--ink-5)",letterSpacing:"0.14em",textTransform:"uppercase"},children:"Paste or upload a job description"}),(0,a.jsx)("button",{type:"button",onClick:()=>{var e;return null==(e=w.current)?void 0:e.click()},style:{fontFamily:E,fontSize:9,letterSpacing:"0.12em",padding:"3px 8px",borderRadius:3,border:"1px solid ".concat(T),background:"transparent",color:"var(--ink-5)",cursor:"pointer",textTransform:"uppercase"},onMouseEnter:e=>{e.currentTarget.style.color=F,e.currentTarget.style.borderColor=F},onMouseLeave:e=>{e.currentTarget.style.color="var(--ink-5)",e.currentTarget.style.borderColor=T},children:"Upload .txt / .md"}),(0,a.jsx)("input",{ref:w,type:"file",accept:".txt,.md,text/plain,text/markdown",onChange:e=>{var t;let n=null==(t=e.target.files)?void 0:t[0];if(n){if(!/\.(txt|md)$/i.test(n.name)){S("Upload a .txt or .md file. For PDF or DOCX, paste the text in."),e.target.value="";return}n.text().then(e=>{s(e),S(null)}).catch(e=>S(e instanceof Error?e.message:"could not read file")),e.target.value=""}},style:{display:"none"}})]}),(0,a.jsx)("textarea",{value:o,onChange:e=>s(e.target.value),placeholder:"Paste a role here, or upload a .txt / .md file. The more concrete the responsibilities and constraints, the sharper the operator.",rows:6,style:{width:"100%",padding:"10px 12px",background:"var(--paper-2)",border:"1px solid ".concat(T),borderRadius:3,color:"var(--ink)",fontFamily:z,fontSize:13,lineHeight:1.5,outline:"none",resize:"vertical",minHeight:120}}),(0,a.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,a.jsxs)("div",{style:{fontFamily:E,fontSize:10,color:"var(--ink-6)",letterSpacing:"0.08em"},children:[o.trim().length," chars"]}),(0,a.jsx)("button",{onClick:I,disabled:d||o.trim().length<40,style:{padding:"6px 14px",border:"1px solid ".concat(F),background:d||o.trim().length<40?"var(--paper-2)":F,color:d||o.trim().length<40?"var(--ink-6)":"#fff",borderRadius:3,fontFamily:E,fontSize:11,letterSpacing:"0.1em",cursor:d?"wait":o.trim().length<40?"not-allowed":"pointer",textTransform:"uppercase"},children:d?"Drafting…":"Draft operator"})]})]}),u&&(0,a.jsxs)("div",{style:{border:"1px solid ".concat(T),borderRadius:4,padding:14,display:"flex",flexDirection:"column",gap:10,background:"var(--paper-2)"},children:[(0,a.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"baseline"},children:[(0,a.jsx)("div",{style:{fontFamily:E,fontSize:9,color:F,letterSpacing:"0.14em"},children:"PREVIEW \xb7 EDIT BEFORE SAVING"}),m&&(0,a.jsx)("div",{style:{fontFamily:E,fontSize:9,color:"var(--ink-6)",letterSpacing:"0.1em"},children:"NEW TEAM"})]}),(0,a.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"2fr 1fr",gap:10},children:[(0,a.jsx)(eF,{label:"Name",children:(0,a.jsx)("input",{value:u.name,onChange:e=>D("name",e.target.value),style:eC})}),(0,a.jsx)(eF,{label:"Code \xb7 3 letters",hint:"Ticker shown on orbs, lists, and workflow nodes (e.g. GTE). The first 2 letters serve as the compact glyph.",children:(0,a.jsx)("input",{value:u.code,maxLength:3,onChange:e=>D("code",e.target.value.toUpperCase()),style:eC})})]}),(0,a.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 2fr",gap:10},children:[(0,a.jsx)(eF,{label:"Team",children:(0,a.jsx)("input",{value:u.team,onChange:e=>D("team",e.target.value.toUpperCase()),style:eC})}),(0,a.jsx)(eF,{label:"Tagline",children:(0,a.jsx)("input",{value:u.tagline,onChange:e=>D("tagline",e.target.value),style:eC})})]}),(0,a.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:10},children:[(0,a.jsx)(eF,{label:"Accent",children:(0,a.jsx)(eE,{value:u.accent,onChange:e=>D("accent",e)})}),(0,a.jsx)(eF,{label:"Team color",children:(0,a.jsx)(eE,{value:null!=B?B:R,onChange:e=>M(e)})})]}),(0,a.jsx)(eF,{label:"Instructions",children:(0,a.jsx)("textarea",{value:u.systemPrompt,onChange:e=>D("systemPrompt",e.target.value),rows:8,style:{...eC,resize:"vertical",minHeight:160,fontFamily:z,fontSize:12,lineHeight:1.55}})}),(0,a.jsxs)("div",{style:{display:"flex",gap:8,justifyContent:"flex-end"},children:[(0,a.jsx)("button",{onClick:()=>h(null),style:{padding:"6px 14px",border:"1px solid ".concat(T),background:"transparent",color:"var(--ink-4)",borderRadius:3,fontFamily:E,fontSize:11,letterSpacing:"0.08em",cursor:"pointer",textTransform:"uppercase"},children:"Discard"}),(0,a.jsx)("button",{onClick:A,disabled:v,style:{padding:"6px 14px",border:"1px solid ".concat(F),background:v?"var(--paper-2)":F,color:v?"var(--ink-6)":"#fff",borderRadius:3,fontFamily:E,fontSize:11,letterSpacing:"0.08em",cursor:v?"wait":"pointer",textTransform:"uppercase"},children:v?"Saving…":"Save operator"})]})]})]})}let eC={width:"100%",padding:"8px 10px",background:"var(--paper-3)",border:"1px solid ".concat(T),borderRadius:3,color:"var(--ink)",fontFamily:z,fontSize:12,outline:"none"};function eF(e){let{label:t,hint:n,children:i}=e;return(0,a.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,a.jsx)("span",{style:{fontFamily:E,fontSize:9,color:"var(--ink-5)",letterSpacing:"0.14em",textTransform:"uppercase"},children:t}),i,n&&(0,a.jsx)("span",{style:{fontFamily:z,fontSize:11,color:"var(--ink-5)",lineHeight:1.35},children:n})]})}let eR=["#B8540B","#7A4C2F","#B27A0E","#2F6A3E","#4A7A78","#4A6FA5","#6E4F8A","#A8455B"];function eE(e){let{value:t,onChange:n}=e,r=(t||"").trim().toLowerCase(),l=!!r&&!eR.some(e=>e.toLowerCase()===r),[o,s]=(0,i.useState)(!1);return(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[(0,a.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:6,alignItems:"center"},children:[eR.map(e=>{let t=e.toLowerCase()===r;return(0,a.jsx)("button",{type:"button",onClick:()=>n(e),title:e,"aria-label":"Pick ".concat(e),style:{width:22,height:22,padding:0,borderRadius:"50%",background:e,border:t?"2px solid var(--ink)":"1px solid ".concat(T),boxShadow:t?"0 0 0 2px var(--paper-3), 0 0 0 3px ".concat(F):"none",cursor:"pointer",flexShrink:0}},e)}),l&&(0,a.jsx)("span",{title:t,style:{width:22,height:22,borderRadius:"50%",background:t,border:"2px solid var(--ink)",boxShadow:"0 0 0 2px var(--paper-3), 0 0 0 3px ".concat(F),flexShrink:0}}),(0,a.jsx)("button",{type:"button",onClick:()=>s(e=>!e),title:o?"Hide custom hex input":"Pick a custom hex colour","aria-label":o?"Hide custom hex":"Pick a custom hex colour","aria-expanded":o,style:{width:22,height:22,padding:0,borderRadius:"50%",background:"transparent",border:"1px dashed ".concat(o?F:T),color:o?F:"var(--ink-5)",cursor:"pointer",flexShrink:0,display:"inline-flex",alignItems:"center",justifyContent:"center",fontFamily:E,fontSize:12,lineHeight:1,transition:"color 0.15s, border-color 0.15s"},children:"+"})]}),o&&(0,a.jsx)("input",{value:t,onChange:e=>n(e.target.value),placeholder:"#hex",style:{...eC,fontFamily:E,fontSize:11,letterSpacing:"0.04em",padding:"6px 10px"}})]})}function ez(){let e=(0,i.useRef)(null),[t,n]=(0,i.useState)(0);return(0,i.useEffect)(()=>{let t=e.current;if(!t||(n(t.getBoundingClientRect().width),"undefined"==typeof ResizeObserver))return;let a=new ResizeObserver(e=>{for(let t of e)n(t.contentRect.width)});return a.observe(t),()=>a.disconnect()},[]),{ref:e,width:t}}function eB(e){return{showAddAgent:e>=360,showSaveAsWorkflow:e>=480,showContext:e>=600,showExport:e>=760,showClear:e>=900}}function eM(e){let{index:t,weights:n,onResize:r,containerWidth:l}=e,[o,s]=(0,i.useState)(null),d=(0,i.useRef)(n);return d.current=n,(0,i.useEffect)(()=>{if(o)return document.body.style.cursor="col-resize",document.body.style.userSelect="none",window.addEventListener("mousemove",e),window.addEventListener("mouseup",n),()=>{window.removeEventListener("mousemove",e),window.removeEventListener("mouseup",n),document.body.style.cursor="",document.body.style.userSelect=""};function e(e){e.preventDefault();let{startX:n,startA:a,startB:i}=o,s=e.clientX-n,c=a+i,p=d.current.reduce((e,t)=>e+t,0),u=p>0?c/p*l:0;if(u<=0)return;let h=s/u,g=a+h*c,m=i-h*c;g<.15*c&&(g=.15*c,m=c-g),m<.15*c&&(m=.15*c,g=c-m);let f=[...d.current];f[t]=g,f[t+1]=m,r(f)}function n(){s(null)}},[o,l,t,r]),(0,a.jsx)("div",{onMouseDown:function(e){e.preventDefault(),s({startX:e.clientX,startA:n[t],startB:n[t+1]})},title:"Drag to resize panes",style:{width:5,flexShrink:0,cursor:"col-resize",background:T,position:"relative",transition:"background 0.15s"},onMouseEnter:e=>{e.currentTarget.style.background=F},onMouseLeave:e=>{e.currentTarget.style.background=T},children:(0,a.jsx)("div",{style:{position:"absolute",top:0,bottom:0,left:-3,right:-3,cursor:"col-resize"}})})}function eI(e){var t,n,r,l;let{agentId:o,agent:s,agentCode:d,agentSection:c,messages:p,modelOverride:u,onModelChange:h,onMessagesUpdate:g,onClose:m,clientId:f,modelOptions:x,openclawDefaultModel:y}=e,[v,b]=(0,i.useState)(""),[k,S]=(0,i.useState)(!1),[w,C]=(0,i.useState)(null),R=(0,i.useRef)(null),B=(0,i.useRef)(null),{pack:M}=j(),{ref:I,width:A}=ez(),D=eB(A),W=null!=(l=null!=u?u:y)?l:s.defaultModel;async function O(){let e=v.trim();if(!e||k)return;b("");let t={id:crypto.randomUUID(),role:"user",content:e,timestamp:Date.now()},n={id:crypto.randomUUID(),role:"assistant",content:"",timestamp:Date.now(),model:W},a=[...p,t,n];g(a),S(!0);try{let t=f?"/api/chat?client=".concat(encodeURIComponent(f)):"/api/chat",r=await fetch(t,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({agentId:o,model:W,messages:[...p.map(e=>({role:e.role,content:e.content})),{role:"user",content:e}]})});if(!r.ok||!r.body)throw Error(await r.text()||"HTTP ".concat(r.status));let l=r.body.getReader(),s=new TextDecoder,d="",c="";for(;;){var i;let{value:e,done:t}=await l.read();if(t)break;let r=(d+=s.decode(e,{stream:!0})).split("\n\n");for(let e of(d=null!=(i=r.pop())?i:"",r))if(e.startsWith("data:"))try{let t=JSON.parse(e.slice(5).trim());if("tool_call"===t.type)C(t.tool);else if("text"===t.type){C(null),c+=t.value;let e=[...a.slice(0,-1),{...n,content:c}];g(e)}else if("error"===t.type){C(null);let e=[...a.slice(0,-1),{...n,content:"[Error] ".concat(t.value)}];g(e)}}catch(e){}}}catch(t){let e=t instanceof Error?t.message:"Unknown error";g([...a.slice(0,-1),{...n,content:"[Error] ".concat(e)}])}finally{S(!1),C(null)}}return(0,i.useEffect)(()=>{R.current&&(R.current.scrollTop=R.current.scrollHeight)},[p,k]),(0,a.jsxs)("div",{ref:I,style:{flex:1,display:"flex",flexDirection:"column",minWidth:0,minHeight:0,overflow:"hidden"},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 20px",borderBottom:"1px solid ".concat(T),flexShrink:0},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,fontFamily:E,minWidth:0,flex:1},children:[(0,a.jsx)("span",{style:{fontSize:10,color:F,letterSpacing:"0.1em",flexShrink:0},children:c}),(0,a.jsx)("span",{style:{fontSize:12,fontWeight:700,color:"var(--ink)",letterSpacing:"0.06em",flexShrink:0},children:d}),A>=320&&(0,a.jsxs)("span",{style:{fontSize:13,color:"var(--ink-4)",fontFamily:z,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:["/ ",s.name," AB"]})]}),(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexShrink:0},children:[D.showSaveAsWorkflow&&null,(0,a.jsx)(et,{value:W,options:x&&x.length>0?x:s.availableModels,onChange:h}),(0,a.jsx)("button",{onClick:m,title:"Close pane",style:{background:"none",border:"none",cursor:"pointer",color:"var(--ink-5)",fontSize:18,lineHeight:1,padding:"0 2px",fontFamily:E,transition:"color 0.15s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--ink)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--ink-5)"},children:"\xd7"})]})]}),(0,a.jsx)("div",{ref:R,style:{flex:1,overflowY:"auto",minHeight:0},children:(0,a.jsx)("div",{style:{maxWidth:720,margin:"0 auto",padding:"20px 24px",display:"flex",flexDirection:"column",gap:16},children:0===p.length?(0,a.jsx)(en,{agentName:s.name,agentCode:d,agentSection:c,tagline:s.tagline,onChipClick:e=>{var t;b(e),null==(t=B.current)||t.focus()},customQuickStart:null==M||null==(n=M.customer)||null==(t=n.quickstartByAgent)?void 0:t[o]}):(0,a.jsxs)(a.Fragment,{children:[p.map((e,t)=>k&&t===p.length-1&&"assistant"===e.role&&""===e.content?null:(0,a.jsx)(er,{message:e,agentCode:d,conversationContext:p.slice(-4).map(e=>e.content).join("\n\n")},e.id)),k&&(null==(r=p[p.length-1])?void 0:r.content)===""&&(0,a.jsxs)("div",{style:{display:"flex",gap:12,alignItems:"flex-start"},children:[(0,a.jsx)("div",{style:{width:24,height:24,borderRadius:2,background:"var(--paper-input)",border:"1px solid ".concat(T),display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:(0,a.jsx)("span",{style:{fontFamily:E,fontSize:7,color:F,fontWeight:700},children:d})}),(0,a.jsx)("div",{style:{padding:"10px 14px",background:"var(--paper-input)",borderRadius:"0 4px 4px 4px",border:"1px solid ".concat(T)},children:w?(0,a.jsxs)("span",{style:{fontFamily:E,fontSize:10,color:"var(--ink-5)",letterSpacing:"0.06em"},children:["⟳ ",w.replace(/_/g," "),"…"]}):(0,a.jsx)("div",{style:{display:"flex",gap:4,alignItems:"center",height:14},children:[0,1,2].map(e=>(0,a.jsx)("span",{className:"typing-dot",style:{width:5,height:5,borderRadius:"50%",background:F,display:"inline-block"}},e))})})]})]})})}),(0,a.jsxs)("div",{style:{padding:"12px 20px",borderTop:"1px solid ".concat(T),flexShrink:0,position:"relative"},children:[(0,a.jsx)(el,{ref:B,value:v,onChange:b,onSubmit:O,onVoice:()=>{},onBroadcast:()=>{},disabled:k,isListening:!1,broadcastMode:!1,agentName:s.name}),(0,a.jsxs)("div",{style:{marginTop:8,display:"flex",justifyContent:"space-between",fontFamily:E,fontSize:10,color:"var(--ink-6)",letterSpacing:"0.08em"},children:[(0,a.jsx)("span",{children:"ENTER TO SEND \xb7 SHIFT+ENTER NEWLINE \xb7 \xd7 TO CLOSE PANE"}),(0,a.jsx)("span",{children:W.replace("claude-","").replace("-20251001","").toUpperCase()})]})]})]})}class eA extends i.Component{static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){var n;console.error("[ErrorBoundary]",null!=(n=this.props.fallbackLabel)?n:"subtree",e,t)}render(){if(this.state.error){var e,t,n;return(0,a.jsxs)("div",{style:{flex:1,minWidth:280,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",padding:20,background:"var(--paper)",color:"var(--ink-4)",fontFamily:z,fontSize:13,gap:12,borderLeft:"1px solid ".concat(T)},children:[(0,a.jsx)("div",{style:{fontFamily:E,fontSize:10,color:"var(--ink-5)",letterSpacing:"0.18em",textTransform:"uppercase"},children:null!=(t=this.props.fallbackLabel)?t:"Pane error"}),(0,a.jsx)("div",{style:{fontFamily:B,fontSize:18,color:"var(--ink-2)",textAlign:"center",maxWidth:280,lineHeight:1.3},children:"This pane hit a render error."}),(0,a.jsx)("pre",{style:{fontFamily:E,fontSize:10,color:"var(--ink-5)",maxWidth:320,whiteSpace:"pre-wrap",wordBreak:"break-word",textAlign:"center",margin:0},children:null!=(n=null==(e=this.state.error.message)?void 0:e.slice(0,200))?n:"Unknown error"}),(0,a.jsx)("button",{onClick:this.reset,style:{padding:"6px 14px",border:"1px solid ".concat(T),background:"transparent",color:"var(--ink-3)",borderRadius:3,fontFamily:E,fontSize:10,letterSpacing:"0.12em",cursor:"pointer",textTransform:"uppercase"},children:"↻ Retry"})]})}return this.props.children}constructor(...e){super(...e),this.state={error:null},this.reset=()=>{var e,t;this.setState({error:null}),null==(e=(t=this.props).onReset)||e.call(t)}}}let eD={B:"var(--paper)",S:"var(--paper-2)",P:"var(--paper-3)",BR:"var(--hair)",BR2:"var(--hair-2)",EM:"#B8540B",EM3:"#B8540B33",EM6:"#B8540B66",T1:"var(--ink)",T2:"var(--ink-2)",T3:"var(--ink-3)",T4:"var(--ink-4)",T5:"var(--ink-5)",T6:"var(--ink-6)",T7:"var(--ink-7)",FM:"var(--f-mono)",FB:"var(--f-body)",FD:"var(--f-display)",FS:"var(--f-serif)"};function eW(e){let t=Date.now()-e;return t<6e4?"just now":t<36e5?"".concat(Math.floor(t/6e4),"m ago"):t<864e5?"".concat(Math.floor(t/36e5),"h ago"):t<6048e5?"".concat(Math.floor(t/864e5),"d ago"):new Date(e).toLocaleDateString()}function eO(e){let{section:t,title:n,subtitle:i,actions:r}=e;return(0,a.jsxs)("div",{"data-mobile-flat-header":!0,style:{borderBottom:"1px solid ".concat(eD.BR2),padding:"20px 28px 18px",display:"grid",gridTemplateColumns:"200px 1fr auto",gap:20,alignItems:"start",flexShrink:0},children:[(0,a.jsxs)("div",{style:{display:"inline-flex",alignItems:"center",gap:10,fontFamily:eD.FM,fontSize:12,color:eD.T3,letterSpacing:"0.12em",textTransform:"uppercase"},children:[(0,a.jsx)("span",{style:{width:6,height:6,background:eD.EM,borderRadius:"50%",flex:"none"}}),t]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{style:{fontFamily:eD.FD,fontSize:32,fontWeight:500,letterSpacing:"-0.02em",color:eD.T1,lineHeight:1.05},children:n}),i&&(0,a.jsx)("div",{style:{marginTop:6,fontSize:13,color:eD.T3,fontFamily:eD.FB},children:i})]}),r&&(0,a.jsx)("div",{style:{display:"flex",gap:8,alignItems:"center"},children:r})]})}function eL(e){let{children:t,color:n,bg:i}=e;return(0,a.jsx)("span",{style:{display:"inline-block",padding:"2px 8px",fontFamily:eD.FM,fontSize:9,letterSpacing:"0.1em",textTransform:"uppercase",border:"1px solid ".concat(null!=n?n:eD.T4),color:null!=n?n:eD.T4,background:null!=i?i:"transparent",borderRadius:2,whiteSpace:"nowrap"},children:t})}function eN(e){let{children:t,onClick:n,variant:i="secondary",disabled:r,size:l="md"}=e,o={primary:{background:eD.EM,color:"#fff",borderColor:eD.EM},secondary:{background:"transparent",color:eD.T2,borderColor:eD.BR},danger:{background:"transparent",color:"#a52a1a",borderColor:"#a52a1a"},ghost:{background:"transparent",color:eD.T4,borderColor:"transparent"}};return(0,a.jsx)("button",{onClick:n,disabled:r,style:{...o[i],border:"1px solid ".concat(o[i].borderColor),padding:"sm"===l?"5px 10px":"8px 14px",fontFamily:eD.FM,fontSize:"sm"===l?10:11,letterSpacing:"0.12em",textTransform:"uppercase",borderRadius:2,cursor:r?"not-allowed":"pointer",opacity:r?.4:1,transition:"all 0.15s"},children:t})}function eP(e){let{channel:t}=e,n={telegram:"#0088cc",whatsapp:"#25d366",email:eD.T4};return(0,a.jsx)("span",{style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:22,height:22,borderRadius:2,fontFamily:eD.FM,fontSize:8,fontWeight:700,background:"".concat(n[t],"22"),color:n[t],border:"1px solid ".concat(n[t],"66"),flexShrink:0},children:{telegram:"TG",whatsapp:"WA",email:"EM"}[t]})}function eU(e){let{variant:t="row",count:n=5}=e,i=Array.from({length:n});return"row"===t?(0,a.jsx)("div",{style:{display:"flex",flexDirection:"column"},children:i.map((e,t)=>(0,a.jsxs)("div",{style:{padding:"12px 16px",borderBottom:"1px solid ".concat(eD.BR2),display:"flex",flexDirection:"column",gap:6},children:[(0,a.jsx)(eH,{w:"40%",h:10}),(0,a.jsx)(eH,{w:"85%",h:9}),(0,a.jsx)(eH,{w:"60%",h:9})]},t))}):"card"===t?(0,a.jsx)("div",{style:{display:"grid",gap:16,maxWidth:880,margin:"0 auto"},children:i.map((e,t)=>(0,a.jsxs)("div",{style:{border:"1px solid ".concat(eD.BR),background:eD.S,borderRadius:3,padding:"18px 22px",display:"flex",flexDirection:"column",gap:10},children:[(0,a.jsx)(eH,{w:"55%",h:14}),(0,a.jsx)(eH,{w:"30%",h:9}),(0,a.jsxs)("div",{style:{marginTop:6,padding:"12px 14px",background:eD.B,border:"1px solid ".concat(eD.BR2),borderRadius:2,display:"flex",flexDirection:"column",gap:6},children:[(0,a.jsx)(eH,{w:"100%",h:10}),(0,a.jsx)(eH,{w:"92%",h:10}),(0,a.jsx)(eH,{w:"78%",h:10})]})]},t))}):"list-row"===t?(0,a.jsx)("div",{children:i.map((e,t)=>(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,padding:"10px 24px",borderBottom:"1px solid ".concat(eD.BR2)},children:[(0,a.jsx)(eH,{w:26,h:9}),(0,a.jsx)(eH,{w:"30%",h:10}),(0,a.jsx)(eH,{w:"20%",h:9}),(0,a.jsx)(eH,{w:"15%",h:9})]},t))}):(0,a.jsxs)("div",{style:{padding:28,maxWidth:760},children:[(0,a.jsxs)("div",{style:{display:"flex",gap:10,marginBottom:14},children:[(0,a.jsx)(eH,{w:22,h:22,radius:2}),(0,a.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:6},children:[(0,a.jsx)(eH,{w:"40%",h:14}),(0,a.jsx)(eH,{w:"55%",h:9})]})]}),(0,a.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:i.map((e,t)=>(0,a.jsxs)("div",{style:{padding:"12px 16px",background:eD.S,border:"1px solid ".concat(eD.BR),borderRadius:3,display:"flex",flexDirection:"column",gap:8},children:[(0,a.jsx)(eH,{w:"100%",h:10}),(0,a.jsx)(eH,{w:"80%",h:10})]},t))})]})}function eH(e){let{w:t,h:n,radius:i=2}=e;return(0,a.jsx)("span",{className:"skel-shimmer",style:{display:"block",width:t,height:n,borderRadius:i,background:"var(--paper-2)"}})}function eq(e){let{icon:t,title:n,body:i}=e;return(0,a.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",padding:48,color:eD.T4},children:[t&&(0,a.jsx)("div",{style:{fontSize:44,marginBottom:12,color:eD.T7},children:t}),(0,a.jsx)("div",{style:{fontFamily:eD.FS,fontStyle:"italic",fontSize:22,fontWeight:400,color:eD.T2,marginBottom:6},children:n}),i&&(0,a.jsx)("div",{style:{fontSize:13,fontFamily:eD.FB,maxWidth:380,textAlign:"center"},children:i})]})}function eY(e,t,n){let a=(0,i.useRef)(n);a.current=n,(0,i.useEffect)(()=>{if(!e)return;let n=null,i=()=>{for(let i of(null==n||n.close(),n=new EventSource(e),t))n.addEventListener(i,e=>{let t=e.data;try{t=JSON.parse(e.data)}catch(e){}a.current(i,t)});n.onerror=()=>{}};i();let r=()=>{"visible"===document.visibilityState&&i()};return document.addEventListener("visibilitychange",r),()=>{document.removeEventListener("visibilitychange",r),null==n||n.close()}},[e,t.join("|")])}function eK(e){let{toast:t}=e,[n,r]=(0,i.useState)(null),[l,o]=(0,i.useState)("pending"),[s,d]=(0,i.useState)(null),[c,p]=(0,i.useState)(null),[u,h]=(0,i.useState)(new Set),[g,m]=(0,i.useState)(!1),[f,x]=(0,i.useState)(new Set),[y,v]=(0,i.useState)({});(0,i.useEffect)(()=>{if(!n)return;let e=n.map(e=>e.inboxMessageId).filter(e=>!!e&&!y[e]);0!==e.length&&fetch("/api/inbox?limit=500").then(e=>e.json()).then(t=>{let n={...y},a=0;for(let i of t.messages)e.includes(i.id)&&!n[i.id]&&(n[i.id]=i,a++);a>0&&v(n)}).catch(()=>{})},[n]);let b=(0,i.useCallback)(e=>{x(t=>{let n=new Set(t);return n.add(e),n}),setTimeout(()=>{x(t=>{if(!t.has(e))return t;let n=new Set(t);return n.delete(e),n})},1700)},[]);eY("/api/approvals/stream",["snapshot","created","updated"],(0,i.useCallback)((e,t)=>{if("snapshot"===e){let{approvals:e}=t;r(e);return}if("created"===e){r(e=>e?e.some(e=>e.id===t.id)?e:[t,...e]:[t]),b(t.id);return}if("updated"===e)return void r(e=>e?e.map(e=>e.id===t.id?t:e):e)},[])),(0,i.useEffect)(()=>{if(!n||0===n.length)return;let e=new URL(window.location.href),t=e.searchParams.get("id");t&&n.some(e=>e.id===t)&&(b(t),requestAnimationFrame(()=>{let e=document.getElementById("approval-".concat(t));e&&e.scrollIntoView({behavior:"smooth",block:"center"})}),e.searchParams.delete("id"),window.history.replaceState({},"",e.toString()))},[n,b]);let j=(null!=n?n:[]).filter(e=>"all"===l||"pending"===e.status),k=(null!=n?n:[]).filter(e=>"pending"===e.status).length;async function S(e,a,i){p(e);try{var r;let l=await fetch("/api/approvals",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,action:a,editedBody:i})}),o=await l.json();if(!l.ok)throw Error(null!=(r=o.error)?r:"HTTP ".concat(l.status));"reject"===a?t.info("Rejected.",{ttlMs:6e3,action:{label:"Undo",onClick:async()=>{try{let a=(null!=n?n:[]).find(t=>t.id===e);if(!a)return;await fetch("/api/approvals",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({type:a.type,agentId:a.agentId,title:a.title,body:a.body,meta:a.meta,inboxMessageId:a.inboxMessageId})}),t.success("Restored as pending.")}catch(e){t.error(e instanceof Error?e.message:"undo failed")}}}}):t.success("edit"===a?"Edited & sent.":"Approved & sent."),d(null)}catch(e){t.error(e instanceof Error?e.message:"action failed")}finally{p(null)}}async function w(e){let a=(null!=n?n:[]).filter(e=>u.has(e.id)&&"pending"===e.status);if(0===a.length||"reject"===e&&!confirm("Reject ".concat(a.length," approval").concat(1===a.length?"":"s","?")))return;m(!0);let i=0,r=0;await Promise.all(a.map(async t=>{try{(await fetch("/api/approvals",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:t.id,action:e})})).ok?i++:r++}catch(e){r++}})),m(!1),h(new Set),0===r?t.success("".concat(i," ").concat(e,"d.")):t.error("".concat(i," ok \xb7 ").concat(r," failed"))}return(0,a.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden",background:eD.B},children:[(0,a.jsx)(eO,{section:"\xa7 APPROVALS".concat(k>0?" \xb7 ".concat(k," PENDING"):""),title:"One tap to ship.",subtitle:"Drafts, replies, and actions waiting for your sign-off.",actions:(0,a.jsx)("div",{style:{display:"flex",gap:4},children:["pending","all"].map(e=>(0,a.jsx)("button",{onClick:()=>o(e),style:{padding:"5px 10px",fontFamily:eD.FM,fontSize:9,letterSpacing:"0.1em",textTransform:"uppercase",border:"1px solid ".concat(l===e?eD.EM:eD.BR),background:l===e?eD.EM3:"transparent",color:l===e?eD.EM:eD.T4,cursor:"pointer",borderRadius:2},children:e},e))})}),u.size>0&&(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,flexWrap:"wrap",padding:"10px 28px",background:eD.S,borderBottom:"1px solid ".concat(eD.BR),fontFamily:eD.FM,fontSize:11,color:eD.T2},children:[(0,a.jsxs)("span",{style:{color:eD.EM},children:[u.size," selected"]}),(0,a.jsxs)("div",{style:{marginLeft:"auto",display:"flex",gap:8,flexWrap:"wrap"},children:[(0,a.jsx)(eN,{size:"sm",variant:"primary",disabled:g,onClick:()=>w("approve"),children:"Approve selected"}),(0,a.jsx)(eN,{size:"sm",variant:"danger",disabled:g,onClick:()=>w("reject"),children:"Reject selected"}),(0,a.jsx)(eN,{size:"sm",onClick:()=>h(new Set),children:"Clear"})]})]}),(null!=n?n:[]).filter(e=>"pending"===e.status).length>1&&"pending"===l&&(0,a.jsx)("div",{style:{padding:"8px 28px",fontFamily:eD.FM,fontSize:10,color:eD.T5,borderBottom:"1px solid ".concat(eD.BR2)},children:(0,a.jsx)("button",{onClick:function(){let e=(null!=n?n:[]).filter(e=>"pending"===e.status).map(e=>e.id);h(t=>e.every(e=>t.has(e))?new Set:new Set(e))},style:{background:"none",border:"none",color:eD.T4,cursor:"pointer",textTransform:"uppercase",letterSpacing:"0.1em",padding:0},children:u.size===(null!=n?n:[]).filter(e=>"pending"===e.status).length?"Unselect all":"Select all pending"})}),(0,a.jsxs)("div",{style:{flex:1,overflowY:"auto",padding:"24px 28px"},children:[null===n&&(0,a.jsx)(eU,{variant:"card",count:3}),null!==n&&0===j.length&&(0,a.jsx)(eq,{icon:"✓",title:"Inbox zero.",body:"No drafts pending right now. New work from your agents lands here for review."}),(0,a.jsx)("div",{"data-mobile-grid-stack":!0,style:{display:"grid",gap:16,maxWidth:880,margin:"0 auto"},children:j.map(e=>{let t="pending"===e.status,n=(null==s?void 0:s.id)===e.id,i="pending"===e.status?eD.EM:"sent"===e.status?"#2f5b3b":"rejected"===e.status?"#a52a1a":eD.T4,r=f.has(e.id);return(0,a.jsxs)("div",{id:"approval-".concat(e.id),className:r?"sse-flash":void 0,style:{border:"1px solid ".concat(r?eD.EM:eD.BR),background:eD.S,borderRadius:3,padding:"18px 22px",position:"relative",transition:"border-color 1.6s ease-out"},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,marginBottom:12},children:[t&&(0,a.jsx)("input",{type:"checkbox",checked:u.has(e.id),onChange:()=>{var t;return t=e.id,void h(e=>{let n=new Set(e);return n.has(t)?n.delete(t):n.add(t),n})},"aria-label":"select for bulk action",style:{width:16,height:16,accentColor:eD.EM,cursor:"pointer",flexShrink:0}}),e.meta.channel&&(0,a.jsx)(eP,{channel:e.meta.channel}),(0,a.jsxs)("div",{style:{flex:1},children:[(0,a.jsx)("div",{title:e.title,style:{fontFamily:eD.FD,fontSize:18,fontWeight:500,color:eD.T1,letterSpacing:"-0.01em",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.title}),(0,a.jsxs)("div",{style:{fontFamily:eD.FM,fontSize:10,color:eD.T5,marginTop:2},children:[e.agentId," \xb7 ",e.type," \xb7 ",eW(e.createdAt)]})]}),(0,a.jsx)(eL,{color:i,children:e.status})]}),e.inboxMessageId&&y[e.inboxMessageId]&&(0,a.jsx)(eJ,{msg:y[e.inboxMessageId],defaultOpen:t}),n?(0,a.jsx)("textarea",{value:s.body,onChange:t=>d({id:e.id,body:t.target.value}),onKeyDown:t=>{(t.metaKey||t.ctrlKey)&&"Enter"===t.key&&(t.preventDefault(),c!==e.id&&S(e.id,"edit",s.body)),"Escape"===t.key&&(t.preventDefault(),d(null))},rows:Math.max(6,s.body.split("\n").length+1),autoFocus:!0,style:{width:"100%",padding:"12px 14px",background:eD.B,border:"1px solid ".concat(eD.BR),borderRadius:2,color:eD.T1,fontFamily:eD.FB,fontSize:13,lineHeight:1.55,resize:"vertical"}}):(0,a.jsx)("div",{style:{padding:"12px 14px",background:eD.B,border:"1px solid ".concat(eD.BR2),borderRadius:2,fontSize:13,lineHeight:1.55,color:eD.T2,fontFamily:eD.FB,whiteSpace:"pre-wrap",maxHeight:280,overflowY:"auto"},children:e.body}),e.meta.to&&(0,a.jsxs)("div",{style:{fontFamily:eD.FM,fontSize:10,color:eD.T5,marginTop:8},children:["to: ",e.meta.to]}),e.meta.subject&&(0,a.jsxs)("div",{style:{fontFamily:eD.FM,fontSize:10,color:eD.T5,marginTop:2},children:["subject: ",e.meta.subject]}),t&&(0,a.jsx)("div",{style:{marginTop:14,display:"flex",gap:8,flexWrap:"wrap"},children:n?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(eN,{variant:"primary",disabled:c===e.id,onClick:()=>S(e.id,"edit",s.body),children:"Save & send \xb7 ⌘↵"}),(0,a.jsx)(eN,{onClick:()=>d(null),children:"Cancel \xb7 esc"})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(eN,{variant:"primary",disabled:c===e.id,onClick:()=>S(e.id,"approve"),children:"Approve & send"}),(0,a.jsx)(eN,{onClick:()=>d({id:e.id,body:e.body}),children:"Edit"}),(0,a.jsx)(eN,{variant:"danger",disabled:c===e.id,onClick:()=>S(e.id,"reject"),children:"Reject"})]})})]},e.id)})})]})]})}function eJ(e){let{msg:t,defaultOpen:n}=e,[r,l]=(0,i.useState)(n);return(0,a.jsxs)("div",{style:{marginBottom:10,border:"1px dashed ".concat(eD.BR),borderRadius:2,background:eD.B},children:[(0,a.jsxs)("button",{onClick:()=>l(e=>!e),style:{display:"flex",alignItems:"center",gap:10,width:"100%",padding:"8px 12px",background:"transparent",border:"none",cursor:"pointer",fontFamily:eD.FM,fontSize:9,letterSpacing:"0.12em",color:eD.T4,textTransform:"uppercase",textAlign:"left"},children:[(0,a.jsx)(eP,{channel:t.channel}),(0,a.jsxs)("span",{children:["From ",t.fromName,t.fromHandle?" \xb7 ".concat(t.fromHandle):""]}),(0,a.jsx)("span",{style:{marginLeft:"auto",fontSize:11},children:r?"▾":"▸"})]}),r&&(0,a.jsx)("div",{style:{padding:"10px 14px",borderTop:"1px solid ".concat(eD.BR2),fontSize:13,lineHeight:1.55,color:eD.T2,fontFamily:eD.FB,whiteSpace:"pre-wrap",maxHeight:200,overflowY:"auto"},children:t.text})]})}function eV(e){let{toast:t,requestAdminToken:n}=e,[r,l]=(0,i.useState)(null),o=null!=n?n:(e,t)=>l({context:e,retry:t}),[s,d]=(0,i.useState)(null),[c,u]=(0,i.useState)(null),[h,m]=(0,i.useState)("contacts"),[x,v]=(0,i.useState)(null),[b,j]=(0,i.useState)(null),k=(0,i.useCallback)(async()=>{try{let[e,t]=await Promise.all([fetch("/api/contacts").then(e=>e.json()),fetch("/api/routing").then(e=>e.json())]);d(e.contacts),u(t.rules)}catch(e){t.error(e instanceof Error?e.message:"load failed"),d([]),u([])}},[t]);async function S(e){try{let n=await f("/api/contacts",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({contacts:e})});if(await y(n)){g(),o("to save contacts",()=>S(e));return}if(!n.ok)throw Error("HTTP ".concat(n.status));d(e),t.success("Saved.")}catch(n){if(n instanceof p)return void o("to save contacts",()=>S(e));t.error(n instanceof Error?n.message:"save failed")}}async function w(e){try{let n=await f("/api/routing",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({rules:e})});if(await y(n)){g(),o("to save routing rules",()=>w(e));return}if(!n.ok)throw Error("HTTP ".concat(n.status));u(e),t.success("Saved.")}catch(n){if(n instanceof p)return void o("to save routing rules",()=>w(e));t.error(n instanceof Error?n.message:"save failed")}}return(0,i.useEffect)(()=>{k()},[k]),(0,a.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden",background:eD.B},children:[(0,a.jsx)(eO,{section:"\xa7 ROSTER & ROUTING",title:"Who talks to whom.",subtitle:"Drivers, clients, and the rules that point their messages at the right agent.",actions:(0,a.jsx)("div",{style:{display:"flex",gap:4},children:["contacts","routing"].map(e=>(0,a.jsx)("button",{onClick:()=>m(e),style:{padding:"5px 10px",fontFamily:eD.FM,fontSize:9,letterSpacing:"0.1em",textTransform:"uppercase",border:"1px solid ".concat(h===e?eD.EM:eD.BR),background:h===e?eD.EM3:"transparent",color:h===e?eD.EM:eD.T4,cursor:"pointer",borderRadius:2},children:e},e))})}),(0,a.jsx)("div",{style:{flex:1,overflowY:"auto",padding:"24px 28px"},children:"contacts"===h?(0,a.jsxs)("div",{style:{maxWidth:880,margin:"0 auto"},children:[(0,a.jsx)("div",{style:{marginBottom:16,display:"flex",justifyContent:"flex-end"},children:(0,a.jsx)(eN,{variant:"primary",onClick:()=>v({id:crypto.randomUUID(),clientId:"",name:"",channels:{},tags:[],createdAt:Date.now()}),children:"+ Add contact"})}),null===s&&(0,a.jsx)(eU,{variant:"row",count:4}),null!==s&&0===s.length&&!x&&(0,a.jsx)(eq,{icon:"◇",title:"No contacts yet.",body:"Add your drivers, dispatch leads, and clients here so the dashboard knows who's messaging."}),(0,a.jsx)("div",{style:{display:"grid",gap:12},children:null==s?void 0:s.map(e=>(0,a.jsxs)("div",{style:{background:eD.S,border:"1px solid ".concat(eD.BR),borderRadius:3,padding:"14px 18px",display:"grid",gridTemplateColumns:"1fr auto",alignItems:"center",gap:16},children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{style:{fontFamily:eD.FB,fontSize:14,fontWeight:600,color:eD.T1},children:e.name}),(0,a.jsxs)("div",{style:{fontFamily:eD.FM,fontSize:10,color:eD.T5,marginTop:2},children:[e.role&&"".concat(e.role," \xb7 "),e.company]}),(0,a.jsxs)("div",{style:{marginTop:6,display:"flex",gap:6,flexWrap:"wrap"},children:[e.channels.telegram&&(0,a.jsxs)(eL,{color:"#0088cc",children:["TG ",e.channels.telegram]}),e.channels.whatsapp&&(0,a.jsxs)(eL,{color:"#25d366",children:["WA ",e.channels.whatsapp]}),e.channels.email&&(0,a.jsxs)(eL,{children:["EM ",e.channels.email]}),e.tags.map(e=>(0,a.jsx)(eL,{children:e},e))]})]}),(0,a.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,a.jsx)(eN,{size:"sm",onClick:()=>v(e),children:"Edit"}),(0,a.jsx)(eN,{size:"sm",variant:"danger",onClick:()=>S(s.filter(t=>t.id!==e.id)),children:"Remove"})]})]},e.id))}),x&&(0,a.jsx)(eG,{contact:x,onCancel:()=>v(null),onSave:async e=>{let t=null!=s?s:[],n=t.find(t=>t.id===e.id);await S(n?t.map(t=>t.id===e.id?e:t):[...t,e]),v(null)}})]}):(0,a.jsxs)("div",{style:{maxWidth:880,margin:"0 auto"},children:[(0,a.jsx)("div",{style:{marginBottom:16,display:"flex",justifyContent:"flex-end"},children:(0,a.jsx)(eN,{variant:"primary",onClick:()=>j({id:crypto.randomUUID(),clientId:"",channel:"telegram",match:{},agentId:"coo",requireApproval:!0,enabled:!0,createdAt:Date.now()}),children:"+ Add rule"})}),null===c&&(0,a.jsx)(eU,{variant:"row",count:3}),null!==c&&0===c.length&&!b&&(0,a.jsx)(eq,{icon:"⤳",title:"No routing rules yet.",body:"Tell the dashboard which Telegram chats go to which agent. Without a rule, messages sit in the inbox unrouted."}),(0,a.jsx)("div",{style:{display:"grid",gap:12},children:null==c?void 0:c.map(e=>(0,a.jsxs)("div",{style:{background:eD.S,border:"1px solid ".concat(e.enabled?eD.BR:eD.BR2),borderRadius:3,padding:"14px 18px",display:"grid",gridTemplateColumns:"1fr auto",alignItems:"center",gap:16,opacity:e.enabled?1:.55},children:[(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{style:{fontFamily:eD.FM,fontSize:11,color:eD.T1,letterSpacing:"0.04em"},children:[e.channel.toUpperCase(),e.match.chatId&&(0,a.jsxs)("span",{style:{color:eD.T3},children:[" \xb7 chat ",e.match.chatId]}),e.match.keyword&&(0,a.jsxs)("span",{style:{color:eD.T3},children:[' \xb7 keyword "',e.match.keyword,'"']}),(0,a.jsx)("span",{style:{color:eD.T4},children:" → "}),(0,a.jsx)("span",{style:{color:eD.EM},children:e.agentId})]}),(0,a.jsxs)("div",{style:{marginTop:6,display:"flex",gap:6},children:[(0,a.jsx)(eL,{color:e.requireApproval?eD.EM:"#2f5b3b",children:e.requireApproval?"approval gate":"auto-send"}),(0,a.jsx)(eL,{children:e.enabled?"enabled":"disabled"})]})]}),(0,a.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,a.jsx)(eN,{size:"sm",onClick:()=>j(e),children:"Edit"}),(0,a.jsx)(eN,{size:"sm",onClick:()=>w(c.map(t=>t.id===e.id?{...t,enabled:!t.enabled}:t)),children:e.enabled?"Disable":"Enable"}),(0,a.jsx)(eN,{size:"sm",variant:"danger",onClick:()=>w(c.filter(t=>t.id!==e.id)),children:"Remove"})]})]},e.id))}),b&&(0,a.jsx)(e_,{rule:b,onCancel:()=>j(null),onSave:async e=>{let t=null!=c?c:[],n=t.find(t=>t.id===e.id);await w(n?t.map(t=>t.id===e.id?e:t):[...t,e]),j(null)}})]})}),!n&&(0,a.jsx)(ev,{open:null!==r,context:null==r?void 0:r.context,onSubmit:()=>{let e=null==r?void 0:r.retry;l(null),e&&e()},onCancel:()=>l(null)})]})}function eG(e){var t,n,r,l,o;let{contact:s,onCancel:d,onSave:c}=e,[p,u]=(0,i.useState)(s);return(0,a.jsxs)("div",{style:{marginTop:18,padding:20,background:eD.S,border:"1px solid ".concat(eD.EM),borderRadius:3},children:[(0,a.jsx)("div",{style:{fontFamily:eD.FD,fontSize:18,color:eD.T1,marginBottom:14,letterSpacing:"-0.01em"},children:s.name?"Edit contact":"New contact"}),(0,a.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:12},children:[(0,a.jsx)(e$,{label:"Name",children:(0,a.jsx)("input",{value:p.name,onChange:e=>u({...p,name:e.target.value}),style:eX})}),(0,a.jsx)(e$,{label:"Role",children:(0,a.jsx)("input",{value:null!=(t=p.role)?t:"",onChange:e=>u({...p,role:e.target.value}),style:eX})}),(0,a.jsx)(e$,{label:"Company",children:(0,a.jsx)("input",{value:null!=(n=p.company)?n:"",onChange:e=>u({...p,company:e.target.value}),style:eX})}),(0,a.jsx)(e$,{label:"Tags (comma-separated)",children:(0,a.jsx)("input",{value:p.tags.join(", "),onChange:e=>u({...p,tags:e.target.value.split(",").map(e=>e.trim()).filter(Boolean)}),style:eX})}),(0,a.jsx)(e$,{label:"Telegram (@handle)",children:(0,a.jsx)("input",{value:null!=(r=p.channels.telegram)?r:"",onChange:e=>u({...p,channels:{...p.channels,telegram:e.target.value}}),style:eX,placeholder:"@username"})}),(0,a.jsx)(e$,{label:"WhatsApp (+ number)",children:(0,a.jsx)("input",{value:null!=(l=p.channels.whatsapp)?l:"",onChange:e=>u({...p,channels:{...p.channels,whatsapp:e.target.value}}),style:eX,placeholder:"+61..."})}),(0,a.jsx)(e$,{label:"Email",children:(0,a.jsx)("input",{value:null!=(o=p.channels.email)?o:"",onChange:e=>u({...p,channels:{...p.channels,email:e.target.value}}),style:eX})})]}),(0,a.jsxs)("div",{style:{marginTop:14,display:"flex",gap:8},children:[(0,a.jsx)(eN,{variant:"primary",onClick:()=>c(p),disabled:!p.name.trim(),children:"Save"}),(0,a.jsx)(eN,{onClick:d,children:"Cancel"})]})]})}function e_(e){var t,n;let{rule:r,onCancel:s,onSave:d}=e,[c,p]=(0,i.useState)(r);return(0,a.jsxs)("div",{style:{marginTop:18,padding:20,background:eD.S,border:"1px solid ".concat(eD.EM),borderRadius:3},children:[(0,a.jsx)("div",{style:{fontFamily:eD.FD,fontSize:18,color:eD.T1,marginBottom:14,letterSpacing:"-0.01em"},children:r.match.chatId||r.match.keyword?"Edit rule":"New rule"}),(0,a.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:12},children:[(0,a.jsx)(e$,{label:"Channel",children:(0,a.jsxs)("select",{value:c.channel,onChange:e=>p({...c,channel:e.target.value}),style:eX,children:[(0,a.jsx)("option",{value:"telegram",children:"Telegram"}),(0,a.jsx)("option",{value:"whatsapp",children:"WhatsApp"}),(0,a.jsx)("option",{value:"email",children:"Email"})]})}),(0,a.jsx)(e$,{label:"Route to agent",children:(0,a.jsx)("select",{value:c.agentId,onChange:e=>p({...c,agentId:e.target.value}),style:eX,children:o.map(e=>(0,a.jsx)("option",{value:e,children:l[e].name},e))})}),(0,a.jsx)(e$,{label:"Match: chat ID (optional)",children:(0,a.jsx)("input",{value:null!=(t=c.match.chatId)?t:"",onChange:e=>p({...c,match:{...c.match,chatId:e.target.value||void 0}}),style:eX,placeholder:"e.g. 1663098725"})}),(0,a.jsx)(e$,{label:"Match: keyword (optional)",children:(0,a.jsx)("input",{value:null!=(n=c.match.keyword)?n:"",onChange:e=>p({...c,match:{...c.match,keyword:e.target.value||void 0}}),style:eX,placeholder:"e.g. delay"})}),(0,a.jsx)(e$,{label:"Approval gate",children:(0,a.jsxs)("select",{value:c.requireApproval?"yes":"no",onChange:e=>p({...c,requireApproval:"yes"===e.target.value}),style:eX,children:[(0,a.jsx)("option",{value:"yes",children:"Yes — require approval before reply"}),(0,a.jsx)("option",{value:"no",children:"No — auto-send the reply"})]})}),(0,a.jsx)(e$,{label:"Enabled",children:(0,a.jsxs)("select",{value:c.enabled?"yes":"no",onChange:e=>p({...c,enabled:"yes"===e.target.value}),style:eX,children:[(0,a.jsx)("option",{value:"yes",children:"Yes"}),(0,a.jsx)("option",{value:"no",children:"No"})]})})]}),(0,a.jsxs)("div",{style:{marginTop:14,display:"flex",gap:8},children:[(0,a.jsx)(eN,{variant:"primary",onClick:()=>d(c),children:"Save"}),(0,a.jsx)(eN,{onClick:s,children:"Cancel"})]})]})}function e$(e){let{label:t,children:n}=e;return(0,a.jsxs)("label",{style:{display:"block"},children:[(0,a.jsx)("div",{style:{fontFamily:eD.FM,fontSize:9,color:eD.T5,letterSpacing:"0.12em",textTransform:"uppercase",marginBottom:4},children:t}),n]})}let eX={width:"100%",padding:"8px 10px",background:eD.B,border:"1px solid ".concat(eD.BR),color:eD.T1,fontFamily:eD.FB,fontSize:13,borderRadius:2,outline:"none"},eQ={"chip-pro":"One-click runs for the things your procurement team does every week.","logistics-pro":"One-click runs for the things logistics ops do every day.",founder:"Every workflow LeedAB ships. Pick a card, fill in the blanks, run.",starter:"A taste of what your team can run with the full pack."},eZ={"chip-pro":["chip","admin","general"],"logistics-pro":["logistics","admin","general"],founder:["chip","logistics","sales","admin","general"],starter:["admin","general"]},e0={chip:"Chip supply chain",logistics:"Logistics back office",sales:"Sales",admin:"Admin",general:"General"};function e1(e){var t,n,l,o,s,d;let{toast:c,onSelectAgent:p}=e,{pack:u}=j(),[h,g]=(0,i.useState)(null),[m,f]=(0,i.useState)(null),x=new URLSearchParams(window.location.search).get("client"),y=x?"?client=".concat(encodeURIComponent(x)):"";(0,i.useEffect)(()=>{fetch("/api/templates".concat(y)).then(e=>e.json()).then(e=>{g(e.templates);try{let t=localStorage.getItem("leedab-pending-template"),n=localStorage.getItem("leedab-pending-template-context");if(t){let a=e.templates.find(e=>e.id===t);if(a){let e={},t=a.inputs.find(e=>"textarea"===e.type);t&&n&&(e[t.name]=n),f({template:a,vars:e})}localStorage.removeItem("leedab-pending-template"),localStorage.removeItem("leedab-pending-template-context")}}catch(e){}}).catch(e=>{var t;c.error(null!=(t=e.message)?t:"load failed"),g([])})},[c]);let v=null==u||null==(t=u.templates[0])?void 0:t.id,b=(0,i.useMemo)(()=>{var e;return h&&v&&null!=(e=h.find(e=>e.id===v))?e:null},[h,v]),k=(0,i.useMemo)(()=>{if(!h)return{};let e={};for(let a of h){var t,n;v&&a.id===v||(null!=(n=e[t=a.category])?n:e[t]=[]).push(a)}return e},[h,v]),S=(0,i.useMemo)(()=>(function(e,t){var n;let a=null!=(n=e&&eZ[e])?n:[],i=e=>{let n=a.indexOf(e);return -1===n?a.length+t.indexOf(e):n};return[...t].sort((e,t)=>i(e)-i(t))})(null==u?void 0:u.id,Object.keys(k)),[null==u?void 0:u.id,k]),w=null!=(n=(null==u?void 0:u.id)&&eQ[u.id])?n:"Pre-built workflows your agents can run end-to-end.",T=null!=(l=null==u?void 0:u.name)?l:"LeedAB";async function C(){if(m){f({...m,loading:!0});try{var e;let t=m.template.promptTemplate.replace(/\{\{(\w+)\}\}/g,(e,t)=>{var n;return null!=(n=m.vars[t])?n:"{{".concat(t,"}}")});t=t.replace(/\{(\w+)\}/g,(e,t)=>{var n;return null!=(n=m.vars[t])?n:"{".concat(t,"}")});let n=await fetch("/api/agent",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:m.template.agentId,message:t})}),a=await n.json();if(!n.ok)throw Error(null!=(e=a.error)?e:"HTTP ".concat(n.status));f({...m,output:a.response,loading:!1})}catch(e){c.error(e instanceof Error?e.message:"run failed"),f({...m,loading:!1})}}}return(0,a.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden",background:eD.B},children:[(0,a.jsx)(eO,{section:"\xa7 WORKFLOWS",title:"Pre-built workflows.",subtitle:w}),(0,a.jsxs)("div",{style:{flex:1,overflowY:"auto",padding:"24px 28px"},children:[u&&(0,a.jsxs)("div",{style:{maxWidth:1100,margin:"0 auto 24px",padding:"14px 18px",border:"1px solid ".concat(eD.BR),background:eD.S,borderRadius:4,display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:12,fontFamily:eD.FM,fontSize:11,letterSpacing:"0.08em",textTransform:"uppercase",color:eD.T3},children:[(0,a.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:10},children:[(0,a.jsx)("span",{"aria-hidden":!0,style:{width:6,height:6,borderRadius:"50%",background:eD.EM,boxShadow:"0 0 0 3px ".concat(eD.EM3)}}),(0,a.jsx)("span",{style:{color:eD.T1,fontWeight:600},children:T}),(0,a.jsx)("span",{style:{color:eD.T4},children:"\xb7"}),(0,a.jsxs)("span",{children:[null!=(o=null==h?void 0:h.length)?o:0," workflows"]}),(0,a.jsx)("span",{style:{color:eD.T4},children:"\xb7"}),(0,a.jsx)("span",{children:"Brain + AB’s"})]}),(0,a.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:6},children:[(0,a.jsx)("span",{"aria-hidden":!0,style:{width:6,height:6,borderRadius:"50%",background:"var(--ok)"}}),(0,a.jsx)("span",{children:"Local \xb7 No cloud transfer"})]})]}),null===h&&(0,a.jsx)("div",{style:{maxWidth:1100,margin:"0 auto"},children:(0,a.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(320px, 1fr))",gap:12},children:Array.from({length:6}).map((e,t)=>(0,a.jsxs)("div",{style:{padding:18,background:eD.S,border:"1px solid ".concat(eD.BR),borderRadius:3,display:"flex",flexDirection:"column",gap:8},children:[(0,a.jsx)("span",{className:"skel-shimmer",style:{display:"block",width:"55%",height:14,borderRadius:2,background:"var(--paper-2)"}}),(0,a.jsx)("span",{className:"skel-shimmer",style:{display:"block",width:"100%",height:9,borderRadius:2,background:"var(--paper-2)"}}),(0,a.jsx)("span",{className:"skel-shimmer",style:{display:"block",width:"80%",height:9,borderRadius:2,background:"var(--paper-2)"}})]},t))})}),null!==h&&0===h.length&&(0,a.jsx)(eq,{title:"No workflows yet."}),b&&(0,a.jsxs)("button",{onClick:()=>f({template:b,vars:{}}),style:{maxWidth:1100,width:"100%",margin:"0 auto 28px",textAlign:"left",padding:"28px 32px",background:"linear-gradient(180deg, ".concat(eD.EM3," 0%, ").concat(eD.S," 100%)"),border:"1px solid ".concat(eD.BR),borderRadius:4,cursor:"pointer",color:eD.T1,position:"relative",display:"block"},children:[(0,a.jsxs)("span",{style:{position:"absolute",top:18,right:22,display:"inline-flex",alignItems:"center",gap:5,fontFamily:eD.FM,fontSize:9,letterSpacing:"0.14em",color:eD.T3,textTransform:"uppercase",opacity:.85},children:[(0,a.jsx)("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none","aria-hidden":"true",children:(0,a.jsx)("path",{d:"M6 1.2 7 4.4l3.4.3L7.8 6.8l.8 3.3L6 8.4 3.4 10l.8-3.2L1.6 4.7 5 4.4z",stroke:"currentColor",strokeWidth:"0.9",strokeLinejoin:"round"})}),"Pinned"]}),(0,a.jsx)("div",{style:{fontFamily:eD.FM,fontSize:11,letterSpacing:"0.14em",color:eD.EM,textTransform:"uppercase",marginBottom:14},children:null!=(s=e0[b.category])?s:b.category}),(0,a.jsx)("div",{style:{fontFamily:eD.FD,fontSize:30,fontWeight:500,color:eD.T1,marginBottom:10,letterSpacing:"-0.02em",lineHeight:1.1,maxWidth:720},children:b.name}),(0,a.jsx)("div",{style:{fontSize:14,color:eD.T2,lineHeight:1.55,marginBottom:18,fontFamily:eD.FB,maxWidth:720},children:b.description}),(0,a.jsxs)("div",{style:{display:"flex",gap:6,flexWrap:"wrap"},children:[(0,a.jsx)(eL,{color:eD.EM,children:b.agentId}),(0,a.jsxs)(eL,{children:["→ ",b.outputType]})]})]}),S.map(e=>{var t;let n=k[e];return n&&0!==n.length?(0,a.jsxs)("div",{style:{marginBottom:32,maxWidth:1100,margin:"0 auto 32px"},children:[(0,a.jsx)("div",{style:{fontFamily:eD.FM,fontSize:11,color:eD.EM,letterSpacing:"0.14em",marginBottom:10,textTransform:"uppercase"},children:null!=(t=e0[e])?t:e}),(0,a.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(320px, 1fr))",gap:12},children:n.map(e=>(0,a.jsxs)("button",{onClick:()=>f({template:e,vars:{}}),style:{textAlign:"left",padding:18,background:eD.S,border:"1px solid ".concat(eD.BR),borderRadius:3,cursor:"pointer",color:eD.T1,transition:"all 0.15s"},children:[(0,a.jsx)("div",{style:{fontFamily:eD.FD,fontSize:18,fontWeight:500,color:eD.T1,marginBottom:6,letterSpacing:"-0.01em"},children:e.name}),(0,a.jsx)("div",{style:{fontSize:12,color:eD.T3,lineHeight:1.5,marginBottom:12,fontFamily:eD.FB},children:e.description}),(0,a.jsxs)("div",{style:{display:"flex",gap:6,flexWrap:"wrap"},children:[(0,a.jsx)(eL,{color:eD.EM,children:e.agentId}),(0,a.jsxs)(eL,{children:["→ ",e.outputType]})]})]},e.id))})]},e):null}),null!==h&&h.length>0&&(0,a.jsx)("div",{style:{maxWidth:1100,margin:"0 auto"},children:(0,a.jsxs)("a",{href:"https://leedab.com/contact",target:"_blank",rel:"noopener noreferrer",style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:18,background:"transparent",border:"1px dashed ".concat(eD.BR),borderRadius:3,color:eD.T3,textDecoration:"none",transition:"all 0.15s"},onMouseEnter:e=>{e.currentTarget.style.borderColor=eD.EM,e.currentTarget.style.color=eD.T1},onMouseLeave:e=>{e.currentTarget.style.borderColor=eD.BR,e.currentTarget.style.color=eD.T3},children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{style:{fontFamily:eD.FD,fontSize:18,fontWeight:500,letterSpacing:"-0.01em"},children:"Request more workflows"}),(0,a.jsx)("div",{style:{fontSize:12,color:eD.T4,marginTop:4,fontFamily:eD.FB},children:"Tell us what you need built. We’ll ship it for your team."})]}),(0,a.jsx)("span",{style:{fontFamily:eD.FM,fontSize:11,letterSpacing:"0.14em",color:eD.EM},children:"leedab.com/contact →"})]})})]}),m&&(0,a.jsx)("div",{onClick:()=>m.loading||f(null),style:{position:"fixed",inset:0,background:"rgba(0,0,0,0.5)",zIndex:1e3,display:"flex",alignItems:"center",justifyContent:"center",padding:24},children:(0,a.jsxs)("div",{onClick:e=>e.stopPropagation(),style:{width:"100%",maxWidth:720,maxHeight:"85vh",overflowY:"auto",background:eD.B,border:"1px solid ".concat(eD.BR),borderRadius:4,padding:28},children:[(0,a.jsx)("div",{style:{fontFamily:eD.FD,fontSize:26,fontWeight:500,color:eD.T1,letterSpacing:"-0.02em",marginBottom:6},children:m.template.name}),(0,a.jsx)("div",{style:{fontSize:13,color:eD.T3,marginBottom:22,fontFamily:eD.FB},children:m.template.description}),m.output?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{style:{fontFamily:eD.FM,fontSize:10,color:eD.EM,letterSpacing:"0.12em",marginBottom:8,textTransform:"uppercase"},children:"Result"}),(0,a.jsx)("div",{className:"prose-agent",style:{padding:"16px 20px",background:eD.S,border:"1px solid ".concat(eD.BR),borderRadius:2,fontSize:14,color:eD.T1,fontFamily:eD.FB,lineHeight:1.6,maxHeight:420,overflowY:"auto",marginBottom:16},children:(0,a.jsx)(r.oz,{children:null!=(d=m.output)?d:""})}),(0,a.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,a.jsx)(eN,{onClick:()=>{var e;return navigator.clipboard.writeText(null!=(e=m.output)?e:"")},children:"Copy"}),(0,a.jsx)(eN,{onClick:()=>f({template:m.template,vars:m.vars}),children:"Run again"}),(0,a.jsx)(eN,{onClick:()=>f(null),children:"Close"})]})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{style:{display:"grid",gap:12,marginBottom:18},children:[m.template.inputs.map(e=>{var t,n;return(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"baseline",justifyContent:"space-between",marginBottom:4},children:[(0,a.jsxs)("div",{style:{fontFamily:eD.FM,fontSize:9,color:eD.T5,letterSpacing:"0.12em",textTransform:"uppercase"},children:[e.label,e.required&&" *"]}),"textarea"===e.type&&(0,a.jsx)(e2,{onText:(t,n)=>{var a;let i="[file: ".concat(t,"]\n"),r=null!=(a=m.vars[e.name])?a:"",l=r?"".concat(r,"\n\n").concat(i).concat(n):"".concat(i).concat(n);f(t=>t?{...t,vars:{...t.vars,[e.name]:l}}:t)}})]}),"textarea"===e.type?(0,a.jsx)("textarea",{value:null!=(t=m.vars[e.name])?t:"",onChange:t=>f({...m,vars:{...m.vars,[e.name]:t.target.value}}),rows:5,placeholder:"Paste rows here, or drop a .csv / .tsv / .txt above",style:{width:"100%",padding:"10px 12px",background:eD.S,border:"1px solid ".concat(eD.BR),color:eD.T1,fontFamily:eD.FB,fontSize:13,borderRadius:2,outline:"none",resize:"vertical"}}):(0,a.jsx)("input",{value:null!=(n=m.vars[e.name])?n:"",onChange:t=>f({...m,vars:{...m.vars,[e.name]:t.target.value}}),style:{width:"100%",padding:"8px 12px",background:eD.S,border:"1px solid ".concat(eD.BR),color:eD.T1,fontFamily:eD.FB,fontSize:13,borderRadius:2,outline:"none"}})]},e.name)}),0===m.template.inputs.length&&(0,a.jsx)("div",{style:{fontSize:13,color:eD.T4,fontFamily:eD.FB},children:"This template takes no inputs — just hit Run."})]}),(0,a.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,a.jsx)(eN,{variant:"primary",disabled:m.loading,onClick:C,children:m.loading?"Running…":"Run"}),(0,a.jsx)(eN,{onClick:()=>f(null),disabled:m.loading,children:"Close"}),(0,a.jsx)(eN,{onClick:()=>p(m.template.agentId),disabled:m.loading,children:"Open in chat"})]})]})]})})]})}function e2(e){let{onText:t}=e,n=(0,i.useRef)(null),[r,l]=(0,i.useState)(!1);async function o(e){if(e&&e.length){l(!0);try{for(let n of Array.from(e)){let e=await n.text();t(n.name,e)}}finally{l(!1),n.current&&(n.current.value="")}}}return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("button",{type:"button",onClick:()=>{var e;return null==(e=n.current)?void 0:e.click()},disabled:r,style:{fontFamily:eD.FM,fontSize:10,letterSpacing:"0.1em",textTransform:"uppercase",color:eD.EM,background:"transparent",border:"1px dashed ".concat(eD.EM6),borderRadius:2,padding:"3px 8px",cursor:r?"wait":"pointer"},children:r?"Reading…":"+ Upload file"}),(0,a.jsx)("input",{ref:n,type:"file",accept:".csv,.tsv,.txt,.md,.json,.log,.eml,text/csv,text/plain,application/json",multiple:!0,style:{display:"none"},onChange:e=>o(e.target.files)})]})}function e4(){let{onOpenSession:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},[t,n]=(0,i.useState)(null),[r,l]=(0,i.useState)(null),[o,s]=(0,i.useState)(200),[d,c]=(0,i.useState)(!1),p=(0,i.useCallback)(async()=>{try{let e=await fetch("/api/runs?limit=".concat(o));if(!e.ok)throw Error("HTTP ".concat(e.status));let t=await e.json();n(t.runs),l(t.metrics)}catch(e){n([]),l(null)}},[o]);(0,i.useEffect)(()=>{p()},[p]),(0,i.useEffect)(()=>{let e=setInterval(p,8e3);return()=>clearInterval(e)},[p]);let u=t&&d?t.filter(e=>"error"===e.status):t,h=r&&t?Math.max(0,r.totalRuns-t.length):0;return(0,a.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden",background:eD.B},children:[(0,a.jsx)(eO,{section:"\xa7 RUNS",title:"Every action, logged.",subtitle:"What ran, when, how long, how much it cost."}),r&&(0,a.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",borderBottom:"1px solid ".concat(eD.BR),flexShrink:0},children:[{label:"TOTAL RUNS",value:r.totalRuns.toString(),interactive:!1,active:!1,sub:void 0},{label:d?"FAILURES":"SUCCESS RATE",value:d?r.errorRuns.toString():"".concat((100*r.successRate).toFixed(0),"%"),interactive:r.errorRuns>0||d,active:d,sub:d?"Click to clear filter":r.errorRuns>0?"Click to review ".concat(r.errorRuns," failure").concat(1===r.errorRuns?"":"s"):void 0},{label:"AVG DURATION",value:"".concat((r.avgDurationMs/1e3).toFixed(1),"s"),interactive:!1,active:!1,sub:void 0},{label:"EST. COST",value:"$".concat(r.totalCost.toFixed(2)),interactive:!1,active:!1,sub:void 0}].map(e=>(0,a.jsxs)("div",{onClick:e.interactive?()=>c(e=>!e):void 0,title:e.interactive&&!e.active?"Show only failed runs":e.interactive?"Show all runs":void 0,style:{padding:"20px 24px",borderRight:"1px solid ".concat(eD.BR2),cursor:e.interactive?"pointer":"default",background:e.active?eD.S:"transparent"},children:[(0,a.jsx)("div",{style:{fontFamily:eD.FM,fontSize:9,color:e.active?"#a52a1a":eD.T5,letterSpacing:"0.14em"},children:e.label}),(0,a.jsx)("div",{style:{fontFamily:eD.FD,fontSize:32,fontWeight:500,color:e.active?"#a52a1a":eD.T1,letterSpacing:"-0.02em",marginTop:4},children:e.value}),e.sub&&(0,a.jsx)("div",{style:{fontFamily:eD.FM,fontSize:10,color:eD.T5,marginTop:4,letterSpacing:"0.04em"},children:e.sub})]},e.label))}),(0,a.jsxs)("div",{style:{flex:1,overflowY:"auto"},children:[null===t&&(0,a.jsx)(eU,{variant:"list-row",count:6}),null!==t&&0===t.length&&(0,a.jsx)(eq,{icon:"◌",title:"No runs yet.",body:"Each agent task or workflow execution will appear here with timing and cost."}),null!==t&&t.length>0&&d&&u&&0===u.length&&(0,a.jsx)(eq,{icon:"✓",title:"No failures.",body:"All runs in the current page succeeded. Click SUCCESS RATE again to clear the filter."}),u&&u.length>0&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("table",{style:{width:"100%",borderCollapse:"collapse",fontFamily:eD.FM,fontSize:12},children:[(0,a.jsx)("thead",{children:(0,a.jsx)("tr",{style:{borderBottom:"1px solid ".concat(eD.BR)},children:["TIME","AGENT","TRIGGER","STATUS","DURATION","TOKENS","COST"].map(e=>(0,a.jsx)("th",{style:{textAlign:"left",padding:"12px 18px",fontSize:9,color:eD.T5,letterSpacing:"0.14em",fontWeight:400},children:e},e))})}),(0,a.jsx)("tbody",{children:u.map(t=>{var n;let i="success"===t.status?"#2f5b3b":"error"===t.status?"#a52a1a":"running"===t.status?eD.EM:eD.T4,r=!!(t.sessionId&&e);return(0,a.jsxs)("tr",{onClick:r?()=>e(t.sessionId,t.startedAt):void 0,title:r?"Open session for this run":void 0,style:{borderBottom:"1px solid ".concat(eD.BR2),color:eD.T2,cursor:r?"pointer":"default"},children:[(0,a.jsx)("td",{style:{padding:"10px 18px"},children:eW(t.startedAt)}),(0,a.jsx)("td",{style:{padding:"10px 18px",color:eD.T1,fontWeight:500},children:t.agentId}),(0,a.jsx)("td",{style:{padding:"10px 18px"},children:t.triggerType}),(0,a.jsx)("td",{style:{padding:"10px 18px"},children:(0,a.jsx)(eL,{color:i,children:t.status})}),(0,a.jsx)("td",{style:{padding:"10px 18px"},children:t.durationMs?"".concat((t.durationMs/1e3).toFixed(1),"s"):"—"}),(0,a.jsx)("td",{style:{padding:"10px 18px"},children:t.inputTokens?"".concat(t.inputTokens,"/").concat(null!=(n=t.outputTokens)?n:0):"—"}),(0,a.jsx)("td",{style:{padding:"10px 18px",color:eD.EM},children:t.estimatedCost?"$".concat(t.estimatedCost.toFixed(4)):"—"})]},t.id)})})]}),h>0&&(0,a.jsx)("div",{style:{padding:"16px 18px",textAlign:"center",borderTop:"1px solid ".concat(eD.BR)},children:(0,a.jsxs)("button",{type:"button",onClick:()=>s(e=>e+200),style:{fontFamily:eD.FM,fontSize:11,letterSpacing:"0.14em",color:eD.T2,background:"transparent",border:"1px solid ".concat(eD.BR),padding:"8px 18px",cursor:"pointer",textTransform:"uppercase"},children:["Show more \xb7 ",h," remaining"]})})]})]})]})}function e6(){var e;let{onOpenSession:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},[n,r]=(0,i.useState)([]),{pack:o}=j(),s=null!=(e=null==o?void 0:o.agents)?e:l;return((0,i.useEffect)(()=>{let e=!1,t=e=>{var t,n;return null!=(n=null==(t=s[e])?void 0:t.code)?n:e.toUpperCase()};async function n(){try{let[a,i,l]=await Promise.all([fetch("/api/runs?limit=5").then(e=>e.json()),fetch("/api/inbox?limit=5").then(e=>e.json()),fetch("/api/approvals?status=pending&limit=5").then(e=>e.json())]);if(e)return;let o=[];for(let e of a.runs){var n;o.push({id:"run-".concat(e.id),ts:e.startedAt,kind:"run",text:"".concat(t(e.agentId)," ran via ").concat(e.triggerType," — ").concat("success"===e.status?"".concat((null!=(n=e.durationMs)?n:0)/1e3,"s"):e.status),tone:"error"===e.status?"warn":"running"===e.status?"live":"ok",sessionId:e.sessionId})}for(let e of i.messages)o.push({id:"in-".concat(e.id),ts:e.timestamp,kind:"inbox",text:"".concat(e.channel.toUpperCase()," message from ").concat(e.fromName," — ").concat(e.text.slice(0,60)).concat(e.text.length>60?"…":""),tone:"new"===e.status?"live":"ok"});for(let e of l.approvals)o.push({id:"app-".concat(e.id),ts:e.createdAt,kind:"approval",text:"Approval pending — ".concat(e.title),tone:"warn"});o.sort((e,t)=>t.ts-e.ts),r(o.slice(0,12))}catch(e){}}n();let a=setInterval(n,8e3);return()=>{e=!0,clearInterval(a)}},[s]),0===n.length)?null:(0,a.jsx)("div",{"data-mobile-hide":!0,style:{display:"flex",alignItems:"center",gap:0,padding:"0 28px",height:28,borderBottom:"1px solid ".concat(eD.BR2),background:eD.B,flexShrink:0,overflow:"hidden",whiteSpace:"nowrap",fontFamily:eD.FM,fontSize:11},children:(0,a.jsx)("div",{style:{display:"inline-flex",gap:28,animation:"tick 60s linear infinite",paddingLeft:0},children:[...n,...n].map((e,n)=>{let i=!!(e.sessionId&&t);return(0,a.jsxs)("span",{onClick:i?()=>t(e.sessionId,e.ts):void 0,title:i?"Open session for this event":void 0,style:{display:"inline-flex",alignItems:"center",gap:8,color:eD.T3,cursor:i?"pointer":"default"},children:[(0,a.jsx)("span",{style:{fontSize:8,padding:"1px 6px",border:"1px solid ".concat("live"===e.tone?eD.EM:"warn"===e.tone?"#a52a1a":"#2f5b3b"),color:"live"===e.tone?eD.EM:"warn"===e.tone?"#a52a1a":"#2f5b3b",letterSpacing:"0.1em",textTransform:"uppercase"},children:e.kind}),(0,a.jsx)("span",{children:e.text}),(0,a.jsxs)("span",{style:{color:eD.T6},children:["\xb7 ",eW(e.ts)]}),(0,a.jsx)("span",{style:{color:eD.T7},children:"◆"})]},"".concat(e.id,"-").concat(n))})})})}let e5={click:"CLICK",type:"TYPE",scroll:"SCROLL",extract:"EXTRACT",wait:"WAIT",navigate:"NAVIGATE"},e8={click:"#6b85a0",type:"#8a6e9e",scroll:"#7a8e5a",extract:eD.EM,wait:"#9a9081",navigate:"#4a7c8a"};function e3(e){let{toast:t,onSelectAgent:n}=e,[r,l]=(0,i.useState)(null),[o,s]=(0,i.useState)(null),[d,c]=(0,i.useState)(0),p=(0,i.useCallback)((e,t)=>{if("snapshot"===e){let{sessions:e}=t;l(e);return}return"created"===e?void l(e=>e?[t,...e.filter(e=>e.id!==t.id)]:[t]):"updated"===e?void l(e=>e?e.map(e=>e.id===t.id?t:e):e):void 0},[]);(0,i.useEffect)(()=>{fetch("/api/computer-use?limit=50").then(e=>e.json()).then(e=>l(e.sessions)).catch(()=>l([]))},[]),eY(null,["snapshot","created","updated"],p);let u=(0,i.useMemo)(()=>{var e;return null!=(e=(null!=r?r:[]).find(e=>e.id===o))?e:null},[r,o]);(0,i.useEffect)(()=>{!o&&r&&r.length>0&&s(r[0].id)},[r,o]),(0,i.useEffect)(()=>{c(0)},[o]);let h=(null!=r?r:[]).filter(e=>"running"===e.status).length;return(0,a.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden",background:eD.B},children:[(0,a.jsx)(eO,{section:"\xa7 COMPUTER USE".concat(h>0?" \xb7 ".concat(h," LIVE"):""),title:"What the agent actually did.",subtitle:"Step-by-step replay of every action the agent took on your customer's software."}),(0,a.jsxs)("div",{"data-mobile-stack":!0,style:{flex:1,display:"flex",overflow:"hidden"},children:[(0,a.jsxs)("div",{"data-mobile-fullwidth":!0,style:{width:360,borderRight:"1px solid ".concat(eD.BR),overflowY:"auto",flexShrink:0},children:[null===r&&(0,a.jsx)(eU,{variant:"row",count:4}),null!==r&&0===r.length&&(0,a.jsx)(eq,{icon:"◫",title:"No sessions yet.",body:"Computer-use sessions appear here as agents drive your tools. Try the DEMO toggle to load a few."}),null==r?void 0:r.map(e=>{var t,n;let i=null==(t=[...e.steps].reverse().find(e=>e.screenshotUrl))?void 0:t.screenshotUrl,r=o===e.id;return(0,a.jsxs)("button",{onClick:()=>s(e.id),style:{display:"block",width:"100%",textAlign:"left",padding:"12px 16px",background:r?eD.EM3:"transparent",borderTop:"none",borderRight:"none",borderBottom:"1px solid ".concat(eD.BR2),borderLeft:"3px solid ".concat("running"===e.status?eD.EM:"error"===e.status?"#a52a1a":"transparent"),cursor:"pointer",color:eD.T1},children:[(0,a.jsxs)("div",{style:{display:"flex",gap:10,marginBottom:6},children:[i&&(0,a.jsx)("img",{src:i,alt:"",style:{width:56,height:36,objectFit:"cover",borderRadius:2,border:"1px solid ".concat(eD.BR2),flexShrink:0}}),(0,a.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,a.jsx)("div",{title:e.taskTitle,style:{fontSize:12,fontWeight:600,fontFamily:eD.FB,color:eD.T1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.taskTitle}),(0,a.jsxs)("div",{style:{fontFamily:eD.FM,fontSize:9,color:eD.T5,marginTop:2},children:[e.agentId," \xb7 ",null!=(n=e.surface)?n:"—"," \xb7 ",eW(e.startedAt)]})]})]}),(0,a.jsxs)("div",{style:{display:"flex",gap:6,alignItems:"center"},children:[(0,a.jsx)(eL,{color:"running"===e.status?eD.EM:"error"===e.status?"#a52a1a":"#2f5b3b",children:e.status}),(0,a.jsxs)("span",{style:{fontFamily:eD.FM,fontSize:9,color:eD.T5},children:[e.steps.length," step",1===e.steps.length?"":"s"]}),e.finishedAt&&(0,a.jsxs)("span",{style:{fontFamily:eD.FM,fontSize:9,color:eD.T5},children:["\xb7 ",Math.round((e.finishedAt-e.startedAt)/1e3),"s"]})]})]},e.id)})]}),(0,a.jsx)("div",{style:{flex:1,overflowY:"auto"},children:u?(0,a.jsx)(e9,{session:u,stepIdx:d,onStepChange:c}):(0,a.jsx)(eq,{icon:"◫",title:"Select a session.",body:"Pick a session on the left to scrub through it."})})]})]})}function e9(e){var t;let{session:n,stepIdx:i,onStepChange:r}=e,l=Math.min(i,n.steps.length-1),o=n.steps[l];return(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%"},children:[(0,a.jsxs)("div",{style:{padding:"20px 28px 14px",borderBottom:"1px solid ".concat(eD.BR),flexShrink:0},children:[(0,a.jsx)("div",{style:{fontFamily:eD.FD,fontSize:22,fontWeight:500,color:eD.T1,letterSpacing:"-0.01em"},children:n.taskTitle}),n.taskDescription&&(0,a.jsx)("div",{style:{fontSize:13,color:eD.T3,marginTop:4,fontFamily:eD.FB,lineHeight:1.55},children:n.taskDescription}),(0,a.jsxs)("div",{style:{display:"flex",gap:10,marginTop:10,fontFamily:eD.FM,fontSize:9,color:eD.T5,letterSpacing:"0.1em"},children:[(0,a.jsxs)("span",{children:["AGENT \xb7 ",n.agentId.toUpperCase()]}),(0,a.jsxs)("span",{children:["SURFACE \xb7 ",(null!=(t=n.surface)?t:"—").toUpperCase()]}),(0,a.jsxs)("span",{children:["STARTED \xb7 ",new Date(n.startedAt).toLocaleString()]}),n.finishedAt&&(0,a.jsxs)("span",{children:["DURATION \xb7 ",Math.round((n.finishedAt-n.startedAt)/1e3),"S"]})]})]}),(0,a.jsxs)("div",{style:{flex:1,padding:"20px 28px",overflowY:"auto",display:"flex",flexDirection:"column",gap:14},children:[(null==o?void 0:o.screenshotUrl)?(0,a.jsx)("img",{src:o.screenshotUrl,alt:o.description,style:{width:"100%",maxWidth:880,alignSelf:"center",borderRadius:4,border:"1px solid ".concat(eD.BR),boxShadow:"0 4px 24px rgba(26,23,19,0.10)",background:eD.S}}):(0,a.jsx)("div",{style:{width:"100%",maxWidth:880,alignSelf:"center",height:360,borderRadius:4,border:"1px dashed ".concat(eD.BR),display:"flex",alignItems:"center",justifyContent:"center",color:eD.T5,fontFamily:eD.FM,fontSize:11,letterSpacing:"0.1em"},children:"NO SCREENSHOT FOR THIS STEP"}),o&&(0,a.jsxs)("div",{style:{maxWidth:880,alignSelf:"center",width:"100%",display:"flex",gap:10,alignItems:"flex-start"},children:[(0,a.jsx)("span",{style:{fontFamily:eD.FM,fontSize:9,letterSpacing:"0.12em",color:e8[o.action],padding:"3px 8px",border:"1px solid ".concat(e8[o.action],"66"),borderRadius:2,flexShrink:0,lineHeight:1.4},children:e5[o.action]}),(0,a.jsx)("span",{style:{fontSize:14,color:eD.T1,fontFamily:eD.FB,lineHeight:1.55},children:o.description}),(0,a.jsxs)("span",{style:{fontFamily:eD.FM,fontSize:9,color:eD.T5,marginLeft:"auto",flexShrink:0},children:["+",(o.ts/1e3).toFixed(1),"s"]})]}),n.outcome&&l===n.steps.length-1&&(0,a.jsxs)("div",{style:{maxWidth:880,alignSelf:"center",width:"100%",padding:"12px 16px",marginTop:6,background:"".concat(eD.EM3),border:"1px solid ".concat(eD.EM),borderRadius:3,fontSize:13,color:eD.T1,fontFamily:eD.FB,lineHeight:1.55},children:[(0,a.jsx)("div",{style:{fontFamily:eD.FM,fontSize:9,color:eD.EM,letterSpacing:"0.14em",marginBottom:4},children:"OUTCOME"}),n.outcome]})]}),(0,a.jsxs)("div",{style:{borderTop:"1px solid ".concat(eD.BR),background:eD.S,flexShrink:0},children:[(0,a.jsxs)("div",{style:{padding:"10px 28px",display:"flex",alignItems:"center",gap:12},children:[(0,a.jsx)("button",{onClick:()=>r(Math.max(0,l-1)),disabled:0===l,style:{fontFamily:eD.FM,fontSize:11,padding:"4px 10px",border:"1px solid ".concat(eD.BR),background:"transparent",color:0===l?eD.T6:eD.T3,borderRadius:2,cursor:0===l?"not-allowed":"pointer"},children:"← PREV"}),(0,a.jsx)("input",{type:"range",min:0,max:Math.max(0,n.steps.length-1),value:l,onChange:e=>r(Number(e.target.value)),"aria-label":"Scrub through session",style:{flex:1,accentColor:eD.EM}}),(0,a.jsx)("button",{onClick:()=>r(Math.min(n.steps.length-1,l+1)),disabled:l>=n.steps.length-1,style:{fontFamily:eD.FM,fontSize:11,padding:"4px 10px",border:"1px solid ".concat(eD.BR),background:"transparent",color:l>=n.steps.length-1?eD.T6:eD.T3,borderRadius:2,cursor:l>=n.steps.length-1?"not-allowed":"pointer"},children:"NEXT →"}),(0,a.jsxs)("span",{style:{fontFamily:eD.FM,fontSize:10,color:eD.T5,letterSpacing:"0.08em",minWidth:60,textAlign:"right"},children:[l+1," / ",n.steps.length]})]}),(0,a.jsx)("div",{style:{borderTop:"1px solid ".concat(eD.BR2),maxHeight:180,overflowY:"auto"},children:n.steps.map((e,t)=>{let n=t===l;return(0,a.jsxs)("button",{onClick:()=>r(t),style:{display:"flex",alignItems:"center",gap:10,width:"100%",padding:"6px 28px",textAlign:"left",background:n?"".concat(eD.EM,"1a"):"transparent",borderTop:"none",borderRight:"none",borderBottom:"none",borderLeft:"2px solid ".concat(n?eD.EM:"transparent"),cursor:"pointer"},children:[(0,a.jsxs)("span",{style:{fontFamily:eD.FM,fontSize:9,color:eD.T6,width:40,flexShrink:0},children:[(e.ts/1e3).toFixed(1),"s"]}),(0,a.jsx)("span",{style:{fontFamily:eD.FM,fontSize:8,letterSpacing:"0.12em",color:e8[e.action],padding:"1px 5px",border:"1px solid ".concat(e8[e.action],"55"),borderRadius:2,width:64,textAlign:"center",flexShrink:0},children:e5[e.action]}),(0,a.jsx)("span",{style:{fontSize:12,color:n?eD.T1:eD.T3,fontFamily:eD.FB,flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.description})]},t)})})]})]})}function e7(e){var t;let{toast:n,onSelectAgent:r}=e,[l,o]=(0,i.useState)(null),[s,d]=(0,i.useState)("all"),[c,p]=(0,i.useState)(null),[u,h]=(0,i.useState)(new Set),g=(0,i.useCallback)(e=>{h(t=>{let n=new Set(t);return n.add(e),n}),setTimeout(()=>{h(t=>{if(!t.has(e))return t;let n=new Set(t);return n.delete(e),n})},1700)},[]);eY("/api/inbox/stream",["snapshot","created","updated"],(0,i.useCallback)((e,t)=>{if("snapshot"===e){let{messages:e}=t;o(e);return}if("created"===e){o(e=>e?e.some(e=>e.id===t.id)?e:[t,...e]:[t]),g(t.threadId);return}if("updated"===e)return void o(e=>e?e.map(e=>e.id===t.id?t:e):e)},[g])),(0,i.useEffect)(()=>{if(!l||0===l.length)return;let e=new URL(window.location.href),t=e.searchParams.get("id");if(!t)return;let n=l.find(e=>e.id===t);n&&(p(n.threadId),e.searchParams.delete("id"),window.history.replaceState({},"",e.toString()))},[l]);let m=(0,i.useMemo)(()=>{var e=(null!=l?l:[]).filter(e=>"all"===s||e.status===s);let t=new Map;for(let n of e){let e=t.get(n.threadId);e?(e.messages.push(n),"new"===n.status&&e.newCount++):t.set(n.threadId,{id:n.threadId,channel:n.channel,chatId:n.chatId,fromName:n.fromName,fromHandle:n.fromHandle,agentId:n.agentId,messages:[n],newCount:+("new"===n.status),latestStatus:n.status,latestTimestamp:n.timestamp})}return Array.from(t.values()).sort((e,t)=>t.latestTimestamp-e.latestTimestamp)},[l,s]),f=(null!=l?l:[]).filter(e=>"new"===e.status).length,x=c&&null!=(t=m.find(e=>e.id===c))?t:null;async function y(e,t){try{let n=await fetch("/api/inbox",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,patch:{status:t}})});if(!n.ok)throw Error("HTTP ".concat(n.status))}catch(e){n.error(e instanceof Error?e.message:"update failed")}}async function v(e){let t=e.messages.map(e=>({id:e.id,status:e.status}));for(let t of e.messages)await y(t.id,"archived");n.info("Archived ".concat(e.fromName,"."),{ttlMs:6e3,action:{label:"Undo",onClick:async()=>{for(let e of t)await y(e.id,e.status)}}})}async function b(e){for(let t of e.messages)await y(t.id,"read")}return(0,a.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden",background:eD.B},children:[(0,a.jsx)(eO,{section:"\xa7 INBOX".concat(f>0?" \xb7 ".concat(f," NEW"):""),title:"The signal in your channels.",subtitle:"Incoming messages from Telegram, WhatsApp, and email — grouped by conversation.",actions:(0,a.jsx)("div",{style:{display:"flex",gap:4},children:["all","new","replied","archived"].map(e=>(0,a.jsx)("button",{onClick:()=>d(e),style:{padding:"5px 10px",fontFamily:eD.FM,fontSize:9,letterSpacing:"0.1em",textTransform:"uppercase",border:"1px solid ".concat(s===e?eD.EM:eD.BR),background:s===e?eD.EM3:"transparent",color:s===e?eD.EM:eD.T4,cursor:"pointer",borderRadius:2},children:e},e))})}),(0,a.jsxs)("div",{"data-mobile-stack":!0,style:{flex:1,display:"flex",overflow:"hidden"},children:[(0,a.jsxs)("div",{"data-mobile-fullwidth":!0,style:{width:360,borderRight:"1px solid ".concat(eD.BR),overflowY:"auto",flexShrink:0},children:[null===l&&(0,a.jsx)(eU,{variant:"row",count:6}),null!==l&&0===m.length&&(0,a.jsx)(eq,{title:"new"===s?"Nothing new.":"No conversations yet.",body:"Connect Telegram or WhatsApp and route a chat to an agent to see incoming messages here."}),m.map(e=>{let t=e.messages[0],n=e.newCount>0,i=u.has(e.id)&&c!==e.id;return(0,a.jsxs)("button",{onClick:()=>(function(e){for(let t of(p(e.id),e.messages))"new"===t.status&&y(t.id,"read")})(e),className:i?"sse-flash":void 0,style:{display:"block",width:"100%",textAlign:"left",padding:"12px 16px",background:c===e.id?eD.EM3:"transparent",borderTop:"none",borderRight:"none",borderBottom:"1px solid ".concat(eD.BR2),borderLeft:"3px solid ".concat(n?eD.EM:"transparent"),cursor:"pointer",color:eD.T1},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:4},children:[(0,a.jsx)(eP,{channel:e.channel}),(0,a.jsx)("span",{title:e.fromName,style:{fontSize:12,fontWeight:600,fontFamily:eD.FB,color:eD.T1,flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.fromName}),e.messages.length>1&&(0,a.jsx)("span",{style:{fontFamily:eD.FM,fontSize:9,color:eD.T4,padding:"1px 5px",border:"1px solid ".concat(eD.BR),borderRadius:2},children:e.messages.length}),(0,a.jsx)("span",{style:{fontFamily:eD.FM,fontSize:9,color:eD.T5},children:eW(e.latestTimestamp)})]}),(0,a.jsx)("div",{title:t.text,style:{fontSize:12,color:eD.T3,lineHeight:1.4,fontFamily:eD.FB,overflow:"hidden",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical"},children:t.text}),(0,a.jsxs)("div",{style:{marginTop:6,display:"flex",gap:6,alignItems:"center"},children:[n&&(0,a.jsxs)(eL,{color:eD.EM,children:[e.newCount," new"]}),!n&&"new"!==e.latestStatus&&(0,a.jsx)(eL,{children:e.latestStatus}),e.agentId&&(0,a.jsxs)(eL,{color:eD.EM,children:["→ ",e.agentId]})]})]},e.id)})]}),(0,a.jsx)("div",{style:{flex:1,overflowY:"auto"},children:x?(0,a.jsx)(te,{thread:x,toast:n,onSelectAgent:r,onArchiveThread:()=>v(x),onUnarchiveThread:()=>b(x)}):(0,a.jsx)(eq,{icon:"✉",title:"Select a conversation.",body:"Pick a thread on the left to read it."})})]})]})}function te(e){let{thread:t,toast:n,onSelectAgent:i,onArchiveThread:r,onUnarchiveThread:l}=e,o=[...t.messages].sort((e,t)=>e.timestamp-t.timestamp);return(0,a.jsxs)("div",{style:{padding:28,maxWidth:760},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,marginBottom:14},children:[(0,a.jsx)(eP,{channel:t.channel}),(0,a.jsxs)("div",{style:{flex:1},children:[(0,a.jsx)("div",{style:{fontSize:16,fontWeight:600,color:eD.T1,fontFamily:eD.FB},children:t.fromName}),(0,a.jsxs)("div",{style:{fontFamily:eD.FM,fontSize:11,color:eD.T5},children:[t.fromHandle?"".concat(t.fromHandle," \xb7 "):"","chat ",t.chatId," \xb7 ",t.messages.length," message",1===t.messages.length?"":"s"]})]}),t.agentId&&(0,a.jsxs)(eL,{color:eD.EM,children:["routed → ",t.agentId]})]}),(0,a.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:10,marginBottom:24},children:o.map(e=>(0,a.jsxs)("div",{style:{padding:"12px 16px",background:eD.S,border:"1px solid ".concat(eD.BR),borderLeft:"3px solid ".concat("new"===e.status?eD.EM:eD.BR),borderRadius:3,fontSize:14,lineHeight:1.6,color:eD.T1,fontFamily:eD.FB,whiteSpace:"pre-wrap"},children:[(0,a.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:6,fontSize:11,color:eD.T5,fontFamily:eD.FM},children:[(0,a.jsx)("span",{children:new Date(e.timestamp).toLocaleString()}),(0,a.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,a.jsx)(eL,{children:e.status}),e.approvalId&&(0,a.jsx)(eL,{color:"#a52a1a",children:"awaiting approval"})]})]}),e.text]},e.id))}),(0,a.jsxs)("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:[t.agentId&&(0,a.jsxs)(eN,{variant:"primary",onClick:()=>i(t.agentId),children:["Open in ",t.agentId," chat"]}),"archived"!==t.latestStatus&&(0,a.jsx)(eN,{onClick:r,children:"Archive thread"}),"archived"===t.latestStatus&&(0,a.jsx)(eN,{onClick:l,children:"Unarchive thread"})]})]})}function tt(e){var t;if(e.senderName)return e.senderName;let n=null!=(t=e.key)?t:"",a=n.match(/:default:([a-z][a-z0-9-]*)$/);if(a){let e=a[1];return"Chat \xb7 ".concat(e)}return"agent:main:main"===n?"Direct session":"".concat(e.sessionId.slice(0,8),"…")}function tn(e){let{toast:t,onSelectAgent:n,initialTab:r,initialSelectedId:l,initialTargetTimestamp:o}=e,[s,d]=(0,i.useState)(l?"transcripts":null!=r?r:"transcripts"),[c,p]=(0,i.useState)(null),[u,h]=(0,i.useState)(null!=l?l:null),[g,m]=(0,i.useState)("all");return(0,i.useEffect)(()=>{l&&(h(l),d("transcripts"))},[l]),(0,i.useEffect)(()=>{if("transcripts"!==s)return;let e=!1;function t(){fetch("/api/leedab/sessions").then(e=>e.json()).then(t=>{var n,a;!e&&(p(null!=(a=t.sessions)?a:[]),!u&&(null==(n=t.sessions)?void 0:n.length)&&h(t.sessions[0].sessionId))}).catch(()=>{e||p([])})}t();let n=setInterval(t,1e4);return()=>{e=!0,clearInterval(n)}},[u,s]),(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,a.jsx)(eO,{section:"sessions",title:"Sessions",subtitle:"inbox"===s?"Inbound messages from your channels — operator inbox with status.":"Per-peer conversation threads. Each Telegram / WhatsApp user has their own.",actions:(0,a.jsx)("div",{style:{display:"flex",gap:4},children:["inbox","transcripts"].map(e=>(0,a.jsx)("button",{onClick:()=>d(e),style:{padding:"5px 12px",fontFamily:eD.FM,fontSize:10,letterSpacing:"0.1em",textTransform:"uppercase",border:"1px solid ".concat(s===e?eD.EM:eD.BR),background:s===e?eD.EM3:"transparent",color:s===e?eD.EM:eD.T4,cursor:"pointer",borderRadius:2},children:e},e))})}),"inbox"===s?(0,a.jsx)(e7,{toast:t,onSelectAgent:n}):(0,a.jsx)(ta,{sessions:c,filter:g,setFilter:m,selectedId:u,setSelectedId:h,targetTimestamp:o,toast:t})]})}function ta(e){var t,n,i;let{sessions:r,filter:l,setFilter:o,selectedId:s,setSelectedId:d,targetTimestamp:c,toast:p}=e,u=e=>"telegram"===e.channel?"telegram":"whatsapp"===e.channel?"whatsapp":"console",h=(null!=r?r:[]).filter(e=>"all"===l||u(e)===l),g=null!=(n=null!=(t=h.find(e=>e.sessionId===s))?t:h[0])?n:null,m={};for(let e of null!=r?r:[]){let t=u(e);m[t]=(null!=(i=m[t])?i:0)+1}let f=["all",...["telegram","whatsapp","console"].filter(e=>{var t;return(null!=(t=m[e])?t:0)>0})];return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{style:{display:"flex",gap:8,padding:"10px 28px",borderBottom:"1px solid ".concat(eD.BR),background:eD.S,flexShrink:0,overflowX:"auto"},children:f.map(e=>{var t,n;let i="all"===e?null!=(t=null==r?void 0:r.length)?t:0:null!=(n=m[e])?n:0,s=l===e;return(0,a.jsxs)("button",{onClick:()=>o(e),style:{fontFamily:eD.FM,fontSize:10,letterSpacing:"0.08em",padding:"5px 10px",background:s?eD.EM:"transparent",color:s?"#fff":eD.T4,border:"1px solid ".concat(s?eD.EM:eD.BR),borderRadius:3,cursor:"pointer",textTransform:"uppercase",whiteSpace:"nowrap"},children:[e," ",i>0&&(0,a.jsx)("span",{style:{opacity:.6},children:i})]},e)})}),(0,a.jsxs)("div",{"data-mobile-grid-stack":!0,style:{flex:1,display:"grid",gridTemplateColumns:"320px 1fr",overflow:"hidden",minHeight:0},children:[(0,a.jsx)("div",{style:{borderRight:"1px solid ".concat(eD.BR),overflow:"auto",background:eD.S},children:null===r?(0,a.jsx)("div",{style:{padding:16},children:(0,a.jsx)(eU,{count:5})}):0===h.length?(0,a.jsx)("div",{style:{padding:28},children:(0,a.jsx)(eq,{title:"No sessions",body:"Channel traffic will appear here once a paired user messages the bot."})}):h.map(e=>{let t=e.sessionId===s;return(0,a.jsxs)("button",{onClick:()=>d(e.sessionId),style:{width:"100%",display:"flex",flexDirection:"column",gap:4,padding:"12px 16px",background:t?eD.P:"transparent",border:"none",borderBottom:"1px solid ".concat(eD.BR2),borderLeft:"3px solid ".concat(t?eD.EM:"transparent"),cursor:"pointer",textAlign:"left",color:eD.T1},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8},children:[(0,a.jsx)("span",{style:{fontFamily:eD.FB,fontSize:13,fontWeight:600,color:eD.T1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:tt(e)}),(0,a.jsx)("span",{style:{fontFamily:eD.FM,fontSize:9,color:eD.T6,flexShrink:0},children:eW(e.updatedAt)})]}),e.summary&&(0,a.jsx)("span",{style:{fontFamily:eD.FB,fontSize:11,color:eD.T5,lineHeight:1.4,display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden"},children:e.summary}),(0,a.jsxs)("div",{style:{display:"flex",gap:6,alignItems:"center",marginTop:2},children:[e.channel&&(0,a.jsx)("span",{style:{fontFamily:eD.FM,fontSize:9,color:eD.T6,letterSpacing:"0.08em",textTransform:"uppercase"},children:e.channel}),(0,a.jsx)("span",{style:{fontFamily:eD.FM,fontSize:9,color:eD.T7},children:"\xb7"}),(0,a.jsxs)("span",{style:{fontFamily:eD.FM,fontSize:9,color:eD.T6},children:[e.messageCount," msg",1===e.messageCount?"":"s"]})]})]},e.sessionId)})}),(0,a.jsx)("div",{style:{overflow:"auto",padding:28},children:g?(0,a.jsx)(tl,{session:g,toast:p,targetTimestamp:c}):(0,a.jsx)(eq,{title:"Select a session",body:"Pick a conversation on the left to see the full transcript."})})]})]})}function ti(e){let t,n=[],i=/\*\*([^*\n]+)\*\*|\*([^*\n]+)\*|`([^`\n]+)`/g,r=0;for(;null!==(t=i.exec(e));)t.index>r&&n.push(e.slice(r,t.index)),void 0!==t[1]?n.push((0,a.jsx)("strong",{children:t[1]},n.length)):void 0!==t[2]?n.push((0,a.jsx)("em",{children:t[2]},n.length)):void 0!==t[3]&&n.push((0,a.jsx)("code",{style:{fontFamily:eD.FM,fontSize:12,padding:"1px 4px",background:eD.S,borderRadius:2},children:t[3]},n.length)),r=i.lastIndex;return r<e.length&&n.push(e.slice(r)),n}function tr(e){let{text:t}=e,n=t.replace(/\[\[reply_to_current\]\]\s*/g,"").replace(/^\s*\[Chat messages since your last reply[^\]]*\]\s*$/gm,"").replace(/^\s*\[Current message[^\]]*\]\s*$/gm,"").trimStart().split(/\n{2,}/);return(0,a.jsx)(a.Fragment,{children:n.map((e,t)=>{let n=e.split("\n"),i=n.every(e=>/^\s*[-*]\s+/.test(e)),r=n.every(e=>/^\s*\d+\.\s+/.test(e)),l=0===t?0:"8px 0 0";return i||r?(0,a.jsx)(i?"ul":"ol",{style:{margin:l,paddingLeft:22},children:n.map((e,t)=>(0,a.jsx)("li",{children:ti(e.replace(/^\s*(?:[-*]|\d+\.)\s+/,""))},t))},t):(0,a.jsx)("p",{style:{margin:l,whiteSpace:"pre-wrap"},children:ti(e)},t)})})}function tl(e){let{session:t,toast:n,targetTimestamp:r}=e,[l,o]=(0,i.useState)(null),s=(0,i.useRef)(null),d=(0,i.useRef)([]),c=(()=>{if(!r||!l||0===l.length)return -1;let e=-1,t=3e3;for(let n=0;n<l.length;n++){let a=l[n].timestamp;if(!a)continue;let i=new Date(a).getTime();if(!Number.isFinite(i))continue;let o=Math.abs(i-r);o<t&&(t=o,e=n)}return e})();return(0,i.useEffect)(()=>{o(null)},[t.sessionId]),(0,i.useEffect)(()=>{var e;if(l&&0!==l.length){if(c>=0&&d.current[c])return void d.current[c].scrollIntoView({block:"center",behavior:"auto"});null==(e=s.current)||e.scrollIntoView({block:"end",behavior:"auto"})}},[t.sessionId,l,c]),(0,i.useEffect)(()=>{let e=!1;return fetch("/api/leedab/sessions/".concat(encodeURIComponent(t.sessionId))).then(e=>e.json()).then(t=>{if(!e)if(t.error)n.error(t.error),o([]);else{var a;o(null!=(a=t.messages)?a:[])}}).catch(()=>{e||o([])}),()=>{e=!0}},[t.sessionId,t.updatedAt,n]),(0,a.jsxs)("div",{style:{maxWidth:760,margin:"0 auto"},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,marginBottom:14,flexWrap:"wrap"},children:[(0,a.jsx)("h3",{style:{fontFamily:eD.FB,fontSize:16,fontWeight:600,color:eD.T1,margin:0},children:tt(t)}),t.channel&&(0,a.jsx)(eL,{children:t.channel}),t.chatType&&"direct"!==t.chatType&&(0,a.jsx)(eL,{children:t.chatType}),(0,a.jsx)("span",{style:{fontFamily:eD.FM,fontSize:10,color:eD.T5,letterSpacing:"0.08em"},children:eW(t.updatedAt)})]}),(0,a.jsxs)("div",{style:{fontFamily:eD.FM,fontSize:9,color:eD.T7,marginBottom:18,letterSpacing:"0.06em"},children:["SESSION ID ",t.sessionId]}),null===l?(0,a.jsx)(eU,{count:4}):0===l.length?(0,a.jsx)(eq,{title:"No messages",body:"The session exists but has no parsed user/assistant turns yet."}):(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[l.map((e,t)=>(0,a.jsxs)("div",{ref:e=>{d.current[t]=e},style:{padding:"12px 16px",background:t===c?eD.EM3:"user"===e.role?eD.B:eD.S,border:"1px solid ".concat(t===c?eD.EM:eD.BR),borderLeft:"3px solid ".concat(t===c?eD.EM:"user"===e.role?eD.T7:eD.EM),borderRadius:3,fontSize:14,lineHeight:1.6,color:eD.T1,fontFamily:eD.FB,boxShadow:t===c?"0 0 0 2px ".concat(eD.EM,"33"):"none",transition:"background 0.4s ease, box-shadow 0.4s ease"},children:[(0,a.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:6},children:[(0,a.jsx)("span",{style:{fontFamily:eD.FM,fontSize:9,color:eD.T5,letterSpacing:"0.12em",textTransform:"uppercase"},children:e.role}),e.timestamp&&(0,a.jsx)("span",{style:{fontFamily:eD.FM,fontSize:9,color:eD.T6},children:new Date(e.timestamp).toLocaleString()})]}),e.thoughts&&e.thoughts.length>0&&(0,a.jsxs)("details",{style:{marginBottom:8,fontFamily:eD.FM,fontSize:11,color:eD.T5},children:[(0,a.jsxs)("summary",{style:{cursor:"pointer",letterSpacing:"0.08em",textTransform:"uppercase",fontSize:9},children:["Thinking (",e.thoughts.length,")"]}),(0,a.jsx)("div",{style:{marginTop:6,padding:"8px 10px",background:eD.S,borderRadius:3,lineHeight:1.55},children:e.thoughts.map((t,n)=>(0,a.jsx)("div",{style:{marginBottom:8*(n<e.thoughts.length-1),whiteSpace:"pre-wrap"},children:t},n))})]}),(0,a.jsx)(tr,{text:e.text})]},t)),(0,a.jsx)("div",{ref:s})]})]})}let to=[{id:"channels",label:"Channels"},{id:"team",label:"Team"},{id:"roster",label:"Roster + Routing"},{id:"providers",label:"Providers"},{id:"vault",label:"Vault"},{id:"license",label:"License"}];function ts(e){let{toast:t,initialChannel:n}=e,[r,l]=(0,i.useState)("channels"),[o,s]=(0,i.useState)(null),d=(e,t)=>s({context:e,retry:t});return(0,i.useEffect)(()=>{n&&l("channels")},[n]),(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,a.jsx)(eO,{section:"admin",title:"Admin",subtitle:"Channel allowlists, team members, credential vault, license"}),(0,a.jsx)("div",{className:"no-scrollbar",style:{display:"flex",gap:0,padding:"0 28px",borderBottom:"1px solid ".concat(eD.BR),background:eD.S,flexShrink:0,overflowX:"auto",WebkitOverflowScrolling:"touch"},children:to.map(e=>(0,a.jsx)("button",{onClick:()=>l(e.id),style:{fontFamily:eD.FM,fontSize:10,letterSpacing:"0.08em",padding:"10px 16px",background:"transparent",color:r===e.id?eD.EM:eD.T5,borderTop:"none",borderRight:"none",borderLeft:"none",borderBottom:"2px solid ".concat(r===e.id?eD.EM:"transparent"),cursor:"pointer",textTransform:"uppercase",whiteSpace:"nowrap",flexShrink:0},children:e.label},e.id))}),(0,a.jsxs)("div",{style:{flex:1,overflow:"auto"},children:["channels"===r&&(0,a.jsx)(td,{toast:t,initialChannel:n,onJumpToTeam:()=>l("team"),requestAdminToken:d}),"team"===r&&(0,a.jsx)(tu,{toast:t,requestAdminToken:d}),"roster"===r&&(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{style:{padding:"16px 28px 0",fontFamily:eD.FM,fontSize:10,color:eD.T5,letterSpacing:"0.06em",lineHeight:1.6,maxWidth:720},children:["Source of truth for who and what reaches the agent layer.",(0,a.jsx)("strong",{style:{color:eD.T3,fontWeight:500},children:" Contacts"})," are the people the dashboard knows about (chatIds, phone numbers, email handles). ",(0,a.jsx)("strong",{style:{color:eD.T3,fontWeight:500},children:"Routing"}),' rules map an inbound channel + sender to a specific agent. Edit one of these and the runtime config reloads — there\'s no separate "deploy."']}),(0,a.jsx)(eV,{toast:t,requestAdminToken:d})]}),"providers"===r&&(0,a.jsx)(tx,{toast:t,requestAdminToken:d}),"vault"===r&&(0,a.jsx)(tm,{toast:t,requestAdminToken:d}),"license"===r&&(0,a.jsx)(tv,{toast:t,requestAdminToken:d})]}),(0,a.jsx)(ev,{open:null!==o,context:null==o?void 0:o.context,onSubmit:()=>{let e=null==o?void 0:o.retry;s(null),e&&e()},onCancel:()=>s(null)})]})}function td(e){let{toast:t,initialChannel:n,onJumpToTeam:r,requestAdminToken:l}=e,[o,s]=(0,i.useState)(null),[d,c]=(0,i.useState)(null!=n?n:null);async function p(){try{let e=await fetch("/api/leedab/channels/status"),t=await e.json();s(t.channels),!d&&t.channels.length>0&&c(t.channels[0].name)}catch(e){s([])}}if((0,i.useEffect)(()=>{p()},[]),(0,i.useEffect)(()=>{n&&c(n)},[n]),null===o)return(0,a.jsx)("div",{style:{padding:28},children:(0,a.jsx)(eU,{count:3})});if(0===o.length)return(0,a.jsx)("div",{style:{padding:28},children:(0,a.jsx)(eq,{title:"No channels configured",body:"Run `leedab onboard` to add Telegram, WhatsApp, or other channels."})});let u=o.find(e=>e.name===d);return(0,a.jsxs)("div",{"data-mobile-grid-stack":!0,style:{display:"grid",gridTemplateColumns:"260px 1fr",height:"100%",overflow:"hidden"},children:[(0,a.jsx)("div",{style:{borderRight:"1px solid ".concat(eD.BR),overflow:"auto",background:eD.S},children:o.map(e=>{let t=e.name===d;return(0,a.jsxs)("button",{onClick:()=>c(e.name),style:{width:"100%",display:"flex",alignItems:"center",gap:10,padding:"12px 16px",background:t?eD.P:"transparent",border:"none",borderBottom:"1px solid ".concat(eD.BR2),borderLeft:"3px solid ".concat(t?eD.EM:"transparent"),cursor:"pointer",textAlign:"left",color:eD.T1},children:[("telegram"===e.name||"whatsapp"===e.name||"email"===e.name)&&(0,a.jsx)(eP,{channel:e.name}),(0,a.jsxs)("div",{style:{flex:1},children:[(0,a.jsx)("div",{style:{fontFamily:eD.FB,fontSize:13,fontWeight:600,textTransform:"capitalize"},children:e.name}),(0,a.jsxs)("div",{style:{fontFamily:eD.FM,fontSize:10,color:eD.T5,marginTop:2},children:[e.connected?"connected":"not connected"," \xb7 ",e.allowFromCount," allowed"]})]}),e.connected&&(0,a.jsx)("span",{style:{width:6,height:6,borderRadius:"50%",background:eD.EM,boxShadow:"0 0 6px ".concat(eD.EM6)}})]},e.name)})}),(0,a.jsx)("div",{style:{overflow:"auto",padding:28},children:u?(0,a.jsx)(tc,{channel:u,onJumpToTeam:r,onChanged:p,toast:t,requestAdminToken:l}):null})]})}function tc(e){let{channel:t,onJumpToTeam:n,onChanged:r,toast:l,requestAdminToken:o}=e,[s,d]=(0,i.useState)(null);return(0,i.useEffect)(()=>{let e=!1;return d(null),fetch("/api/leedab/team").then(e=>e.json()).then(n=>{var a;e||d((null!=(a=n.members)?a:[]).filter(e=>{var n;return(null!=(n=e.allowedChannels)?n:[]).includes(t.name)}).map(e=>{var n,a;return{id:e.id,name:e.name,email:e.email,role:e.role,handle:null!=(a=(null!=(n=e.handles)?n:{})[t.name])?a:""}}))}).catch(()=>{e||d([])}),()=>{e=!0}},[t.name]),(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:12,alignItems:"center",marginBottom:18},children:[(0,a.jsx)("h3",{style:{fontFamily:eD.FB,fontSize:16,fontWeight:600,color:eD.T1,margin:0,textTransform:"capitalize"},children:t.name}),(0,a.jsx)(eL,{color:t.connected?eD.EM:"#a52a1a",children:t.connected?"connected":"disconnected"}),t.dmPolicy&&(0,a.jsx)(eL,{children:t.dmPolicy}),(0,a.jsx)("span",{style:{fontFamily:eD.FM,fontSize:10,color:eD.T5,letterSpacing:"0.08em"},children:t.enabled?"ENABLED":"DISABLED"})]}),("telegram"===t.name||"whatsapp"===t.name)&&(0,a.jsx)(tk,{channel:t,toast:l,onChanged:r,requestAdminToken:o}),(0,a.jsxs)("div",{style:{marginTop:18},children:[(0,a.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"baseline",marginBottom:10},children:[(0,a.jsx)("div",{style:{fontFamily:eD.FM,fontSize:9,color:eD.T5,letterSpacing:"0.14em",textTransform:"uppercase"},children:"Allowed members"}),(0,a.jsx)(eN,{size:"sm",onClick:n,children:"Manage in Team →"})]}),(0,a.jsxs)("p",{style:{fontFamily:eD.FB,fontSize:12,color:eD.T4,lineHeight:1.5,marginTop:0,marginBottom:14},children:["The ",t.name," allowlist is derived from team members who have a ",t.name," handle and ",t.name," access. To add or remove someone, edit the team in the Team tab — the runtime config rebuilds automatically."]}),null===s?(0,a.jsx)(eU,{count:2}):0===s.length?(0,a.jsx)("div",{style:{fontFamily:eD.FM,fontSize:11,color:eD.T6,padding:"8px 0"},children:"no members allowed yet"}):(0,a.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:s.map(e=>(0,a.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"8px 12px",background:eD.S,border:"1px solid ".concat(eD.BR),borderRadius:3},children:(0,a.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,a.jsxs)("div",{style:{fontFamily:eD.FB,fontSize:13,fontWeight:600,color:eD.T1},children:[e.name," ",(0,a.jsx)("span",{style:{fontFamily:eD.FM,fontSize:10,color:eD.T5,fontWeight:400,marginLeft:6},children:e.role})]}),(0,a.jsxs)("div",{style:{fontFamily:eD.FM,fontSize:11,color:eD.T5,marginTop:2},children:[e.handle,e.email&&(0,a.jsxs)("span",{children:[" \xb7 ",e.email]})]})]})},e.id))})]})]})}let tp=["whatsapp","telegram","teams","dashboard"];function tu(e){let{toast:t,requestAdminToken:n}=e,[r,l]=(0,i.useState)(null),[o,s]=(0,i.useState)([]),[d,c]=(0,i.useState)(!1),[u,h]=(0,i.useState)(null);async function m(){var e,t;let[n,a]=await Promise.all([fetch("/api/leedab/team").then(e=>e.json()).catch(()=>({members:[]})),fetch("/api/leedab/workflows").then(e=>e.json()).catch(()=>({workflows:[]}))]);l(null!=(e=n.members)?e:[]),s(null!=(t=a.workflows)?t:[])}async function x(e,a,i){try{var r;let l=await f("/api/leedab/team",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e,email:a||void 0,role:i})});if(await y(l)){g(),n("to add a team member",()=>x(e,a,i));return}let o=await l.json();if(!l.ok)throw Error(null!=(r=o.error)?r:"HTTP ".concat(l.status));t.success("Added ".concat(e)),c(!1),m()}catch(r){if(r instanceof p)return void n("to add a team member",()=>x(e,a,i));t.error(r instanceof Error?r.message:"add failed")}}async function v(e,a){if(confirm("Remove ".concat(a," from the team?")))try{var i;let r=await f("/api/leedab/team/".concat(encodeURIComponent(e)),{method:"DELETE"});if(await y(r)){g(),n("to remove a team member",()=>v(e,a));return}let l=await r.json();if(!r.ok)throw Error(null!=(i=l.error)?i:"HTTP ".concat(r.status));t.info("Removed ".concat(a)),m()}catch(i){if(i instanceof p)return void n("to remove a team member",()=>v(e,a));t.error(i instanceof Error?i.message:"remove failed")}}async function b(e,a){try{var i;let t=await f("/api/leedab/team/".concat(encodeURIComponent(e)),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(await y(t)){g(),n("to update a team member",()=>b(e,a));return}let r=await t.json();if(!t.ok)throw Error(null!=(i=r.error)?i:"HTTP ".concat(t.status));m()}catch(i){if(i instanceof p)return void n("to update a team member",()=>b(e,a));t.error(i instanceof Error?i.message:"update failed")}}return(0,i.useEffect)(()=>{m()},[]),(0,a.jsxs)("div",{style:{padding:28,maxWidth:920},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:18},children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{style:{fontFamily:eD.FB,fontSize:16,fontWeight:600,color:eD.T1,margin:0},children:"Team"}),(0,a.jsx)("p",{style:{fontFamily:eD.FB,fontSize:12,color:eD.T4,lineHeight:1.5,marginTop:8,marginBottom:0},children:"Each member lists their per-channel handle and which channels + workflows they can use. Channel allowlists rebuild automatically when you save."})]}),(0,a.jsx)(eN,{variant:"primary",onClick:()=>c(!0),children:"Add member"})]}),d&&(0,a.jsx)("div",{style:{marginBottom:14},children:(0,a.jsx)(th,{onCancel:()=>c(!1),onSave:x})}),null===r?(0,a.jsx)(eU,{count:3}):0!==r.length||d?(0,a.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:null==r?void 0:r.map(e=>(0,a.jsx)(tg,{member:e,workflows:o,editing:u===e.id,onEdit:()=>h(e.id),onCancel:()=>h(null),onRemove:()=>v(e.id,e.name),onSave:async t=>{await b(e.id,t),h(null)}},e.id))}):(0,a.jsx)(eq,{title:"No team members",body:"Add yourself as the first member to set up channel access."})]})}function th(e){let{onCancel:t,onSave:n}=e,[r,l]=(0,i.useState)(""),[o,s]=(0,i.useState)(""),[d,c]=(0,i.useState)("member");return(0,a.jsxs)("div",{style:{padding:14,background:eD.S,border:"1px solid ".concat(eD.BR),borderRadius:3,display:"flex",flexDirection:"column",gap:8},children:[(0,a.jsx)("input",{value:r,onChange:e=>l(e.target.value),placeholder:"Name",style:tf}),(0,a.jsx)("input",{value:o,onChange:e=>s(e.target.value),placeholder:"Email (optional)",style:tf}),(0,a.jsxs)("select",{value:d,onChange:e=>c(e.target.value),style:tf,children:[(0,a.jsx)("option",{value:"member",children:"member"}),(0,a.jsx)("option",{value:"admin",children:"admin"}),(0,a.jsx)("option",{value:"owner",children:"owner"})]}),(0,a.jsxs)("div",{style:{display:"flex",gap:6,justifyContent:"flex-end"},children:[(0,a.jsx)(eN,{onClick:t,children:"Cancel"}),(0,a.jsx)(eN,{variant:"primary",onClick:()=>n(r,o,d),disabled:!r.trim(),children:"Add member"})]}),(0,a.jsx)("p",{style:{fontFamily:eD.FM,fontSize:10,color:eD.T6,margin:0},children:"After adding, edit the member to set channel handles + permissions."})]})}function tg(e){var t,n,r,l;let{member:o,workflows:s,editing:d,onEdit:c,onCancel:p,onRemove:u,onSave:h}=e,[g,m]=(0,i.useState)(o.name),[f,x]=(0,i.useState)(null!=(t=o.email)?t:""),[y,v]=(0,i.useState)(o.role),[b,j]=(0,i.useState)({...o.handles}),[k,S]=(0,i.useState)([...o.allowedChannels]),[w,T]=(0,i.useState)([...o.allowedWorkflows]),[C,F]=(0,i.useState)(!1);async function R(){F(!0);try{await h({name:g,email:f||void 0,role:y,handles:b,allowedChannels:k,allowedWorkflows:w})}finally{F(!1)}}return(0,i.useEffect)(()=>{if(d){var e;m(o.name),x(null!=(e=o.email)?e:""),v(o.role),j({...o.handles}),S([...o.allowedChannels]),T([...o.allowedWorkflows])}},[d,o]),d?(0,a.jsxs)("div",{style:{padding:14,background:eD.S,border:"1px solid ".concat(eD.EM),borderRadius:3,display:"flex",flexDirection:"column",gap:12},children:[(0,a.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr 140px",gap:8},children:[(0,a.jsx)("input",{value:g,onChange:e=>m(e.target.value),placeholder:"Name",style:tf}),(0,a.jsx)("input",{value:f,onChange:e=>x(e.target.value),placeholder:"Email (optional)",style:tf}),(0,a.jsxs)("select",{value:y,onChange:e=>v(e.target.value),style:tf,children:[(0,a.jsx)("option",{value:"member",children:"member"}),(0,a.jsx)("option",{value:"admin",children:"admin"}),(0,a.jsx)("option",{value:"owner",children:"owner"})]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{style:{fontFamily:eD.FM,fontSize:9,color:eD.T5,letterSpacing:"0.14em",textTransform:"uppercase",marginBottom:6},children:"Channel handles"}),(0,a.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gap:8},children:[(0,a.jsx)("input",{value:null!=(n=b.telegram)?n:"",onChange:e=>j({...b,telegram:e.target.value}),placeholder:"Telegram user id",style:tf}),(0,a.jsx)("input",{value:null!=(r=b.whatsapp)?r:"",onChange:e=>j({...b,whatsapp:e.target.value}),placeholder:"WhatsApp number",style:tf}),(0,a.jsx)("input",{value:null!=(l=b.teams)?l:"",onChange:e=>j({...b,teams:e.target.value}),placeholder:"Teams username",style:tf})]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{style:{fontFamily:eD.FM,fontSize:9,color:eD.T5,letterSpacing:"0.14em",textTransform:"uppercase",marginBottom:6},children:"Allowed channels"}),(0,a.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:8},children:tp.map(e=>{let t=k.includes(e);return(0,a.jsx)("button",{onClick:()=>{S(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},style:{fontFamily:eD.FM,fontSize:11,padding:"4px 10px",background:t?eD.EM:"transparent",color:t?"#fff":eD.T4,border:"1px solid ".concat(t?eD.EM:eD.BR),borderRadius:3,cursor:"pointer",textTransform:"uppercase",letterSpacing:"0.06em"},children:e},e)})})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{style:{fontFamily:eD.FM,fontSize:9,color:eD.T5,letterSpacing:"0.14em",textTransform:"uppercase",marginBottom:6},children:"Allowed workflows"}),0===s.length?(0,a.jsx)("span",{style:{fontFamily:eD.FM,fontSize:10,color:eD.T6},children:"no workflows registered"}):(0,a.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:s.map(e=>{let t=w.includes(e.id);return(0,a.jsxs)("label",{style:{display:"flex",alignItems:"flex-start",gap:8,padding:"6px 8px",background:t?"".concat(eD.EM,"11"):"transparent",border:"1px solid ".concat(t?eD.EM3:eD.BR2),borderRadius:3,cursor:"pointer",fontFamily:eD.FB,fontSize:12},children:[(0,a.jsx)("input",{type:"checkbox",checked:t,onChange:()=>{var t;return t=e.id,void T(e=>e.includes(t)?e.filter(e=>e!==t):[...e,t])},style:{marginTop:2}}),(0,a.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,a.jsxs)("div",{style:{color:eD.T1,fontWeight:600},children:[e.title,e.isFinancial&&(0,a.jsx)("span",{style:{fontFamily:eD.FM,fontSize:9,color:"#a52a1a",marginLeft:8,letterSpacing:"0.06em"},children:"$"})]}),(0,a.jsx)("div",{style:{fontFamily:eD.FB,fontSize:11,color:eD.T5,marginTop:2},children:e.description})]})]},e.id)})})]}),(0,a.jsxs)("div",{style:{display:"flex",gap:6,justifyContent:"flex-end"},children:[(0,a.jsx)(eN,{onClick:p,disabled:C,children:"Cancel"}),(0,a.jsx)(eN,{variant:"primary",onClick:R,disabled:!g.trim()||C,children:C?"Saving...":"Save changes"})]})]}):(0,a.jsx)("div",{style:{padding:14,background:eD.S,border:"1px solid ".concat(eD.BR),borderRadius:3},children:(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,a.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,a.jsxs)("div",{style:{fontFamily:eD.FB,fontSize:14,fontWeight:600,color:eD.T1},children:[o.name,(0,a.jsx)(eL,{children:o.role})]}),(0,a.jsxs)("div",{style:{fontFamily:eD.FM,fontSize:11,color:eD.T5,marginTop:4,display:"flex",flexWrap:"wrap",gap:12},children:[o.email&&(0,a.jsx)("span",{children:o.email}),o.allowedChannels.length>0&&(0,a.jsxs)("span",{children:["channels: ",o.allowedChannels.join(", ")]}),o.allowedWorkflows.length>0&&(0,a.jsxs)("span",{children:["workflows: ",o.allowedWorkflows.length]})]}),(o.handles.telegram||o.handles.whatsapp||o.handles.teams)&&(0,a.jsxs)("div",{style:{fontFamily:eD.FM,fontSize:10,color:eD.T6,marginTop:4},children:[o.handles.telegram&&(0,a.jsxs)("span",{children:["tg:",o.handles.telegram," "]}),o.handles.whatsapp&&(0,a.jsxs)("span",{children:["wa:",o.handles.whatsapp," "]}),o.handles.teams&&(0,a.jsxs)("span",{children:["teams:",o.handles.teams]})]})]}),(0,a.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,a.jsx)(eN,{size:"sm",onClick:c,children:"Edit"}),(0,a.jsx)(eN,{size:"sm",onClick:u,children:"Remove"})]})]})})}function tm(e){let{toast:t,requestAdminToken:n}=e,[r,l]=(0,i.useState)(null),[o,s]=(0,i.useState)(!1),[d,c]=(0,i.useState)(null),[u,h]=(0,i.useState)(!1),[m,x]=(0,i.useState)(!1),[v,b]=(0,i.useState)({service:"",url:"",username:"",password:"",notes:""});async function j(){try{var e,t;let n=await fetch("/api/leedab/vault"),a=await n.json();if(!n.ok)throw Error(null!=(e=a.error)?e:"HTTP ".concat(n.status));l(null!=(t=a.entries)?t:[]),s(!!a.encrypted),c(null)}catch(e){l([]),c(e instanceof Error?e.message:"vault read failed")}}async function k(){if(v.service.trim()&&!m){x(!0);try{var e;let a=await f("/api/leedab/vault",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(v)});if(await y(a)){g(),n("to save vault credentials",()=>k());return}let i=await a.json();if(!a.ok)throw Error(null!=(e=i.error)?e:"HTTP ".concat(a.status));t.success("Saved credentials for ".concat(v.service)),b({service:"",url:"",username:"",password:"",notes:""}),h(!1),j()}catch(e){if(e instanceof p)return void n("to save vault credentials",()=>k());t.error(e instanceof Error?e.message:"save failed")}finally{x(!1)}}}async function S(e){if(!m&&confirm('Remove credentials for "'.concat(e,'"?'))){x(!0);try{var a;let i=await f("/api/leedab/vault?service=".concat(encodeURIComponent(e)),{method:"DELETE"});if(await y(i)){g(),n("to remove vault credentials",()=>S(e));return}let r=await i.json();if(!i.ok)throw Error(null!=(a=r.error)?a:"HTTP ".concat(i.status));t.info("Removed ".concat(e)),j()}catch(a){if(a instanceof p)return void n("to remove vault credentials",()=>S(e));t.error(a instanceof Error?a.message:"remove failed")}finally{x(!1)}}}return(0,i.useEffect)(()=>{j()},[]),(0,a.jsxs)("div",{style:{padding:28,maxWidth:760},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:18},children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{style:{fontFamily:eD.FB,fontSize:16,fontWeight:600,color:eD.T1,margin:0},children:"Credential vault"}),(0,a.jsx)("p",{style:{fontFamily:eD.FB,fontSize:12,color:eD.T4,lineHeight:1.5,marginTop:8,marginBottom:0},children:"Stored credentials the browser tool uses for auto-login (Coles supplier portal, Xero, etc). Reads stay local; passwords never reach the browser UI."})]}),(0,a.jsx)(eN,{variant:"primary",onClick:()=>h(!0),children:"Add credential"})]}),o&&(0,a.jsxs)("div",{style:{padding:"8px 12px",background:eD.S,border:"1px solid ".concat(eD.BR),borderRadius:3,marginBottom:14,fontFamily:eD.FM,fontSize:11,color:eD.T4},children:["Vault is encrypted. ",(0,a.jsx)("code",{children:"LEEDAB_VAULT_KEY"})," is set; reads + writes pass through transparently."]}),d&&(0,a.jsx)("div",{style:{padding:"8px 12px",background:"#a52a1a22",border:"1px solid #a52a1a",borderRadius:3,marginBottom:14,fontFamily:eD.FM,fontSize:11,color:"#a52a1a"},children:d}),u&&(0,a.jsxs)("div",{style:{padding:14,background:eD.S,border:"1px solid ".concat(eD.BR),borderRadius:3,marginBottom:14,display:"flex",flexDirection:"column",gap:8},children:[(0,a.jsx)("input",{value:v.service,onChange:e=>b({...v,service:e.target.value}),placeholder:"Service name (e.g. coles)",style:tf}),(0,a.jsx)("input",{value:v.url,onChange:e=>b({...v,url:e.target.value}),placeholder:"Login URL (optional)",style:tf}),(0,a.jsx)("input",{value:v.username,onChange:e=>b({...v,username:e.target.value}),placeholder:"Username / email (optional)",style:tf}),(0,a.jsx)("input",{value:v.password,onChange:e=>b({...v,password:e.target.value}),placeholder:"Password (optional)",type:"password",style:tf}),(0,a.jsx)("textarea",{value:v.notes,onChange:e=>b({...v,notes:e.target.value}),placeholder:"Notes (optional)",rows:2,style:{...tf,resize:"vertical"}}),(0,a.jsxs)("div",{style:{display:"flex",gap:6,justifyContent:"flex-end"},children:[(0,a.jsx)(eN,{onClick:()=>{h(!1),b({service:"",url:"",username:"",password:"",notes:""})},children:"Cancel"}),(0,a.jsx)(eN,{variant:"primary",onClick:k,disabled:!v.service.trim()||m,children:m?"...":"Save"})]})]}),null===r?(0,a.jsx)(eU,{count:3}):0===r.length?(0,a.jsx)(eq,{title:"No credentials",body:"Add one above, or use `leedab vault add <service>`."}):(0,a.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:r.map(e=>(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 14px",background:eD.S,border:"1px solid ".concat(eD.BR),borderRadius:3},children:[(0,a.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,a.jsx)("div",{style:{fontFamily:eD.FB,fontSize:13,fontWeight:600,color:eD.T1},children:e.service}),(0,a.jsxs)("div",{style:{fontFamily:eD.FM,fontSize:10,color:eD.T5,marginTop:2,display:"flex",gap:10,flexWrap:"wrap"},children:[e.url&&(0,a.jsx)("span",{children:e.url}),e.username&&(0,a.jsxs)("span",{children:["\xb7 ",e.username]}),e.hasPassword&&(0,a.jsx)("span",{children:"\xb7 password set"}),e.hasNotes&&(0,a.jsx)("span",{children:"\xb7 notes"})]})]}),(0,a.jsx)(eN,{size:"sm",onClick:()=>S(e.service),disabled:m,children:"Remove"})]},e.service))})]})}let tf={width:"100%",padding:"8px 12px",background:eD.B,border:"1px solid ".concat(eD.BR),borderRadius:3,fontFamily:eD.FM,fontSize:12,color:eD.T1,outline:"none"};function tx(e){var t;let{toast:n,requestAdminToken:r}=e,[l,o]=(0,i.useState)(null),[s,d]=(0,i.useState)(null),[c,u]=(0,i.useState)(null),[h,m]=(0,i.useState)(""),[x,v]=(0,i.useState)(!1);async function b(){try{var e;let t=await fetch("/api/leedab/providers"),n=await t.json();if(!t.ok)throw Error(null!=(e=n.error)?e:"HTTP ".concat(t.status));o(n),d(null)}catch(e){d(e instanceof Error?e.message:"providers read failed")}}async function j(e){if(h.trim()&&!x){v(!0);try{var t;let a=await f("/api/leedab/providers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"set-key",provider:e,apiKey:h.trim()})});if(await y(a)){g(),r("to save the ".concat(e," key"),()=>j(e));return}let i=await a.json();if(!a.ok)throw Error(null!=(t=i.error)?t:"HTTP ".concat(a.status));n.success("Saved ".concat(e," key")),u(null),m(""),b()}catch(t){if(t instanceof p)return void r("to save the ".concat(e," key"),()=>j(e));n.error(t instanceof Error?t.message:"save failed")}finally{v(!1)}}}async function k(e){if(!x&&confirm("Remove ".concat(e," auth profile? You'll need to re-add a key to use it."))){v(!0);try{var t;let a=await f("/api/leedab/providers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"remove-key",provider:e})});if(await y(a)){g(),r("to remove the ".concat(e," key"),()=>k(e));return}let i=await a.json();if(!a.ok)throw Error(null!=(t=i.error)?t:"HTTP ".concat(a.status));n.info("Removed ".concat(e)),b()}catch(t){if(t instanceof p)return void r("to remove the ".concat(e," key"),()=>k(e));n.error(t instanceof Error?t.message:"remove failed")}finally{v(!1)}}}async function S(e){if(!x){v(!0);try{var t;let a=await f("/api/leedab/providers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"set-default-model",openclawId:e})});if(await y(a)){g(),r("to change the default model",()=>S(e));return}let i=await a.json();if(!a.ok)throw Error(null!=(t=i.error)?t:"HTTP ".concat(a.status));n.success("Default model set to ".concat(e)),b()}catch(t){if(t instanceof p)return void r("to change the default model",()=>S(e));n.error(t instanceof Error?t.message:"set default failed")}finally{v(!1)}}}if((0,i.useEffect)(()=>{b()},[]),!l)return(0,a.jsx)("div",{style:{padding:28},children:s?(0,a.jsx)(ty,{children:s}):(0,a.jsx)(eU,{count:3})});let w=l.providers.filter(e=>e.configured||e.envDetected||e.keyless).flatMap(e=>e.models);return(0,a.jsxs)("div",{style:{padding:28,maxWidth:760},children:[(0,a.jsx)("h3",{style:{fontFamily:eD.FB,fontSize:16,fontWeight:600,color:eD.T1,margin:0,marginBottom:6},children:"LLM providers"}),(0,a.jsxs)("p",{style:{fontFamily:eD.FB,fontSize:12,color:eD.T4,lineHeight:1.5,marginTop:0,marginBottom:18},children:["API keys live in the OpenClaw credential store, never in this UI. Adding a key here writes through the same path as ",(0,a.jsx)("code",{style:{fontFamily:eD.FM},children:"leedab onboard"}),". Restart the gateway after changes."]}),(0,a.jsxs)("div",{style:{padding:14,background:eD.S,border:"1px solid ".concat(eD.BR),borderRadius:3,marginBottom:18},children:[(0,a.jsx)("div",{style:{fontFamily:eD.FM,fontSize:9,color:eD.T5,letterSpacing:"0.14em",textTransform:"uppercase",marginBottom:8},children:"Default model"}),0===w.length?(0,a.jsx)("div",{style:{fontFamily:eD.FB,fontSize:12,color:eD.T4},children:"Configure at least one provider below to pick a default model."}):(0,a.jsxs)("select",{value:null!=(t=l.defaultModel)?t:"",onChange:e=>S(e.target.value),disabled:x,style:{...tf,maxWidth:420},children:[(0,a.jsx)("option",{value:"",disabled:!0,children:"Select a model."}),w.map(e=>(0,a.jsxs)("option",{value:e.openclawId,children:[e.label," . ",e.openclawId]},e.openclawId))]})]}),s&&(0,a.jsx)(ty,{children:s}),(0,a.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:l.providers.map(e=>{let t=c===e.id;return(0,a.jsxs)("div",{style:{padding:"12px 14px",background:eD.S,border:"1px solid ".concat(eD.BR),borderRadius:3},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12},children:[(0,a.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,a.jsx)("div",{style:{fontFamily:eD.FB,fontSize:13,fontWeight:600,color:eD.T1},children:e.label}),(0,a.jsxs)("div",{style:{fontFamily:eD.FM,fontSize:10,color:eD.T5,marginTop:4,display:"flex",gap:10,flexWrap:"wrap"},children:[(0,a.jsx)(eL,{color:e.configured?eD.EM:"#7a6248",children:e.configured?"configured":"not configured"}),e.envDetected&&e.envVarName&&(0,a.jsxs)(eL,{color:eD.EM,children:[e.envVarName," in env"]}),e.keyless&&(0,a.jsx)(eL,{color:"#7a6248",children:"keyless . uses AWS env"})]})]}),(0,a.jsxs)("div",{style:{display:"flex",gap:6,flexShrink:0},children:[!e.keyless&&(0,a.jsx)(eN,{size:"sm",onClick:()=>{u(t?null:e.id),m("")},disabled:x,children:t?"Cancel":e.configured?"Rotate key":"Add key"}),e.configured&&(0,a.jsx)(eN,{size:"sm",onClick:()=>k(e.id),disabled:x,children:"Remove"})]})]}),t&&(0,a.jsxs)("div",{style:{marginTop:10,display:"flex",gap:6},children:[(0,a.jsx)("input",{value:h,onChange:e=>m(e.target.value),placeholder:"".concat(e.label," API key"),type:"password",style:{...tf,flex:1},autoFocus:!0}),(0,a.jsx)(eN,{variant:"primary",onClick:()=>j(e.id),disabled:!h.trim()||x,children:x?"...":"Save"})]})]},e.id)})})]})}function ty(e){let{children:t}=e;return(0,a.jsx)("div",{style:{padding:"8px 12px",background:"#a52a1a22",border:"1px solid #a52a1a",borderRadius:3,marginBottom:14,fontFamily:eD.FM,fontSize:11,color:"#a52a1a"},children:t})}function tv(e){let{toast:t,requestAdminToken:n}=e,[r,l]=(0,i.useState)(null),[o,s]=(0,i.useState)(!1),[d,c]=(0,i.useState)(""),[u,h]=(0,i.useState)(!1),[m,x]=(0,i.useState)(null);async function v(){if(d.trim()&&!u){h(!0),x(null);try{var e;let a=await f("/api/leedab/license",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"set-key",key:d.trim()})});if(await y(a)){g(),n("to set the license key",()=>v());return}let i=await a.json();if(!a.ok)throw Error(null!=(e=i.error)?e:"HTTP ".concat(a.status));null==t||t.success("License ".concat(i.status," . tier ").concat(i.tier)),l(i),s(!1),c("")}catch(a){if(a instanceof p)return void n("to set the license key",()=>v());let e=a instanceof Error?a.message:"save failed";x(e),null==t||t.error(e)}finally{h(!1)}}}async function b(){if(!u){h(!0),x(null);try{var e;let a=await f("/api/leedab/license",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"revalidate"})});if(await y(a)){g(),n("to revalidate the license",()=>b());return}let i=await a.json();if(!a.ok)throw Error(null!=(e=i.error)?e:"HTTP ".concat(a.status));null==t||t.info("Revalidated . ".concat(i.status)),l(i)}catch(a){if(a instanceof p)return void n("to revalidate the license",()=>b());let e=a instanceof Error?a.message:"revalidate failed";x(e),null==t||t.error(e)}finally{h(!1)}}}if((0,i.useEffect)(()=>{fetch("/api/leedab/license").then(e=>e.json()).then(e=>{l(e),x(null)}).catch(()=>l({valid:!1,tier:"none",status:"missing",seatsUsed:0,maxSeats:0}))},[]),!r)return(0,a.jsx)("div",{style:{padding:28},children:(0,a.jsx)(eU,{count:2})});let j=r.maxSeats>0?Math.min(100,r.seatsUsed/r.maxSeats*100):0,k=!!r.keyMasked;return(0,a.jsxs)("div",{style:{padding:28,maxWidth:600},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:6},children:[(0,a.jsx)("h3",{style:{fontFamily:eD.FB,fontSize:16,fontWeight:600,color:eD.T1,margin:0},children:"License"}),(0,a.jsxs)("div",{style:{display:"flex",gap:6},children:[k&&(0,a.jsx)(eN,{size:"sm",onClick:b,disabled:u,children:"Revalidate"}),(0,a.jsx)(eN,{size:"sm",variant:"primary",onClick:()=>{s(!o),c(""),x(null)},disabled:u,children:o?"Cancel":k?"Replace key":"Enter key"})]})]}),o&&(0,a.jsxs)("div",{style:{padding:12,background:eD.S,border:"1px solid ".concat(eD.BR),borderRadius:3,marginBottom:18,display:"flex",gap:6},children:[(0,a.jsx)("input",{value:d,onChange:e=>c(e.target.value),placeholder:"License key (sk-leedab-...)",type:"password",style:{...tf,flex:1},autoFocus:!0}),(0,a.jsx)(eN,{variant:"primary",onClick:v,disabled:!d.trim()||u,children:u?"...":"Validate & save"})]}),m&&(0,a.jsx)(ty,{children:m}),(0,a.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"120px 1fr",rowGap:10,columnGap:16,fontFamily:eD.FM,fontSize:12},children:[(0,a.jsx)(tb,{children:"Status"}),(0,a.jsx)("div",{style:{display:"flex",alignItems:"center",gap:8},children:(0,a.jsx)(eL,{color:r.valid?eD.EM:"#a52a1a",children:r.status})}),(0,a.jsx)(tb,{children:"Tier"}),(0,a.jsx)(tj,{children:r.tier}),(0,a.jsx)(tb,{children:"Seats"}),(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{style:{color:eD.T1},children:[r.seatsUsed," / ",r.maxSeats||"∞"]}),r.maxSeats>0&&(0,a.jsx)("div",{style:{width:"100%",maxWidth:260,height:4,background:eD.BR2,marginTop:6,borderRadius:2,overflow:"hidden"},children:(0,a.jsx)("div",{style:{width:"".concat(j,"%"),height:"100%",background:j>80?"#a52a1a":eD.EM}})})]}),r.keyMasked&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(tb,{children:"Key"}),(0,a.jsx)(tj,{mono:!0,children:r.keyMasked})]}),r.email&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(tb,{children:"Email"}),(0,a.jsx)(tj,{children:r.email})]}),r.orgName&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(tb,{children:"Org"}),(0,a.jsx)(tj,{children:r.orgName})]}),r.validatedAt&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(tb,{children:"Validated"}),(0,a.jsx)(tj,{children:new Date(r.validatedAt).toLocaleDateString()})]})]})]})}function tb(e){let{children:t}=e;return(0,a.jsx)("div",{style:{fontFamily:eD.FM,fontSize:9,color:eD.T5,letterSpacing:"0.14em",textTransform:"uppercase",paddingTop:2},children:t})}function tj(e){let{children:t,mono:n}=e;return(0,a.jsx)("div",{style:{fontFamily:n?eD.FM:eD.FB,fontSize:13,color:eD.T1},children:t})}function tk(e){let{channel:t,toast:n,onChanged:r,requestAdminToken:l}=e,[o,s]=(0,i.useState)(!1);return(0,a.jsxs)("div",{style:{marginBottom:18},children:[(0,a.jsxs)("button",{onClick:()=>s(e=>!e),style:{fontFamily:eD.FM,fontSize:10,letterSpacing:"0.08em",padding:"6px 12px",background:"transparent",color:eD.T4,border:"1px solid ".concat(eD.BR),borderRadius:3,cursor:"pointer",textTransform:"uppercase"},children:[t.connected?"Re-pair":"Connect"," ▾"]}),o&&(0,a.jsx)("div",{style:{marginTop:10,padding:14,background:eD.S,border:"1px solid ".concat(eD.BR),borderRadius:3},children:"telegram"===t.name?(0,a.jsx)(tS,{toast:n,onSuccess:()=>{s(!1),r()},requestAdminToken:l}):(0,a.jsx)(tw,{toast:n,onSuccess:()=>{s(!1),r()},requestAdminToken:l})})]})}function tS(e){let{toast:t,onSuccess:n,requestAdminToken:r}=e,[l,o]=(0,i.useState)(""),[s,d]=(0,i.useState)(!1);async function c(){if(l.trim()&&!s){d(!0);try{var e;let a=await f("/api/leedab/channels/telegram/connect",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:l.trim()})});if(await y(a)){g(),r("to connect Telegram",()=>c());return}let i=await a.json();if(!a.ok)throw Error(null!=(e=i.error)?e:"HTTP ".concat(a.status));t.success(i.username?"Connected @".concat(i.username):"Telegram connected"),o(""),n()}catch(e){if(e instanceof p)return void r("to connect Telegram",()=>c());t.error(e instanceof Error?e.message:"telegram connect failed")}finally{d(!1)}}}return(0,a.jsxs)("div",{children:[(0,a.jsxs)("p",{style:{fontFamily:eD.FB,fontSize:12,color:eD.T4,lineHeight:1.5,marginTop:0,marginBottom:10},children:["Paste the bot token from ",(0,a.jsx)("code",{children:"@BotFather"}),". We validate via Telegram's getMe before saving."]}),(0,a.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,a.jsx)("input",{value:l,onChange:e=>o(e.target.value),onKeyDown:e=>{"Enter"===e.key&&c()},placeholder:"123456789:ABC-DEF...",disabled:s,style:tf}),(0,a.jsx)(eN,{variant:"primary",onClick:c,disabled:!l.trim()||s,children:s?"Validating...":"Connect"})]})]})}function tw(e){let{toast:t,onSuccess:n,requestAdminToken:r}=e,[l,o]=(0,i.useState)(null),[s,d]=(0,i.useState)(!1);async function c(){if(!s){d(!0),o(null);try{var e;let n=await f("/api/leedab/channels/whatsapp/connect",{method:"POST"});if(await y(n)){g(),r("to start WhatsApp pairing",()=>c());return}let a=await n.json();if(!n.ok)throw Error(null!=(e=a.error)?e:"HTTP ".concat(n.status));a.qr?(o(a.qr),t.info("Scan the QR with WhatsApp on your phone (Linked Devices).",{ttlMs:8e3})):t.error("No QR returned. Check the gateway log.")}catch(e){if(e instanceof p)return void r("to start WhatsApp pairing",()=>c());t.error(e instanceof Error?e.message:"whatsapp pairing failed")}finally{d(!1)}}}return(0,a.jsxs)("div",{children:[(0,a.jsxs)("p",{style:{fontFamily:eD.FB,fontSize:12,color:eD.T4,lineHeight:1.5,marginTop:0,marginBottom:10},children:["Click ",(0,a.jsx)("em",{children:"Get QR"}),", then on your phone open WhatsApp → Settings → Linked Devices → Link a device, and scan."]}),(0,a.jsx)(eN,{variant:"primary",onClick:c,disabled:s,children:s?"Spawning pairing...":l?"Get new QR":"Get QR"}),l&&(0,a.jsx)("pre",{style:{marginTop:12,padding:10,background:eD.B,border:"1px solid ".concat(eD.BR),borderRadius:3,fontFamily:eD.FM,fontSize:8,lineHeight:1,color:eD.T1,overflowX:"auto",whiteSpace:"pre"},children:l}),(0,a.jsx)("p",{style:{fontFamily:eD.FM,fontSize:10,color:eD.T6,marginTop:8},children:"This page won't auto-refresh after the scan. Click off the channel and back to refresh status."})]})}function tT(){return(0,a.jsx)(b,{children:(0,a.jsx)(tC,{})})}function tC(){var e,t,n,s,d,c,u,h,m,x,v,b,R,M,I,W,O,P,U;let{pack:H,loading:Y}=j(),K=null!=(h=null==H?void 0:H.agentOrder)?h:o;null==H||H.agentTeams;let G=null!=(m=null==H?void 0:H.agents)?m:l,[ee,ea]=(0,i.useState)("marketing"),[ei,es]=(0,i.useState)(()=>{let e={};for(let t of o)e[t]=[];return e}),[ed,ec]=(0,i.useState)({}),[ep,eu]=(0,i.useState)(!1),[eg,em]=(0,i.useState)([]),[ef,ey]=(0,i.useState)(null);(0,i.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await fetch("/api/leedab/models",{cache:"no-store"});if(!t.ok||e)return;let n=await t.json();if(e)return;em(n.models.map(e=>({value:e.modelId,label:e.providerLabel?"".concat(e.providerLabel.split(" ")[0].toUpperCase()," . ").concat(e.modelId.toUpperCase()):e.modelId.toUpperCase()}))),ey(n.defaultModel)}catch(e){}})(),()=>{e=!0}},[]);let[ej,ek]=(0,i.useState)(""),[eS,ew]=(0,i.useState)(!1),[eT,eC]=(0,i.useState)(!1),[eF,eR]=(0,i.useState)(!1),[eE,eD]=(0,i.useState)(null),[eW,eO]=(0,i.useState)(!1),[eL,eN]=(0,i.useState)(!1),[eP,eU]=(0,i.useState)(()=>Object.fromEntries(o.map(e=>[e,""]))),[eH,eq]=(0,i.useState)([]),[eY,eJ]=(0,i.useState)([]),[eG,e_]=(0,i.useState)(!1),[e$,eX]=(0,i.useState)([1]);function eQ(e){eX(e);try{localStorage.setItem("leedab-pane-weights",JSON.stringify(e))}catch(e){}}(0,i.useEffect)(()=>{let e=1+eY.length;if(e$.length!==e){try{let t=localStorage.getItem("leedab-pane-weights");if(t){let n=JSON.parse(t);if(Array.isArray(n)&&n.length===e&&n.every(e=>"number"==typeof e&&e>0))return void eX(n)}}catch(e){}eX(Array(e).fill(1))}},[eY.length]);let{ref:eZ,width:e0}=ez(),e2=eB(e0),[e5,e8]=(0,i.useState)(!1),[e9,e7]=(0,i.useState)(340),[te,tt]=(0,i.useState)("agents"),[ta,ti]=(0,i.useState)(!1),[tr,tl]=(0,i.useState)(null),[to,td]=(0,i.useState)(null),[tc,tp]=(0,i.useState)(null),tu=(0,i.useCallback)((e,t)=>{td(e),tp(null!=t?t:null),tt("sessions")},[]),[th,tg]=(0,i.useState)(!1),[tm,tf]=(0,i.useState)(""),[tx,ty]=(0,i.useState)(!1),[tv,tb]=(0,i.useState)(!1),[tj,tk]=(0,i.useState)([]),[tS,tw]=(0,i.useState)(0);(0,i.useEffect)(()=>{let e=[],t=Date.now(),n=(e,t,n)=>{let a={id:crypto.randomUUID(),agent:t,msg:n,level:e,ts:"just now",read:!1,createdAt:Date.now()};tk(e=>[a,...e].slice(0,30))},a=new EventSource("/api/inbox/stream");a.addEventListener("created",e=>{try{var a;let i=JSON.parse(e.data);if(i.timestamp<t-5e3)return;n("info",null!=(a=i.agentId)?a:"ops","New ".concat(i.channel," from ").concat(i.fromName))}catch(e){}}),e.push(a);let i=new EventSource("/api/approvals/stream");return i.addEventListener("snapshot",e=>{try{let{approvals:t}=JSON.parse(e.data);tw(t.filter(e=>"pending"===e.status).length)}catch(e){}}),i.addEventListener("created",e=>{try{let a=JSON.parse(e.data);if("pending"===a.status&&tw(e=>e+1),a.createdAt<t-5e3)return;n("warn",a.agentId,"Approval pending: ".concat(a.title))}catch(e){}}),i.addEventListener("updated",e=>{try{let t=JSON.parse(e.data);"pending"!==t.status&&tw(e=>Math.max(0,e-1))}catch(e){}}),e.push(i),()=>{e.forEach(e=>e.close())}},[]),(0,i.useEffect)(()=>{let e="agents"===te?"Operators":te.charAt(0).toUpperCase()+te.slice(1),t="LeedAB OS | ".concat(e);document.title=tS>0?"(".concat(tS,") ").concat(t):t},[tS,te]),(0,i.useEffect)(()=>{let e=setInterval(()=>{tk(e=>e.map(e=>({...e,ts:function(e){let t=Date.now()-e;return t<6e4?"just now":t<36e5?"".concat(Math.floor(t/6e4),"m ago"):t<864e5?"".concat(Math.floor(t/36e5),"h ago"):"".concat(Math.floor(t/864e5),"d ago")}(e.createdAt)})))},3e4);return()=>clearInterval(e)},[]);let[tT,tC]=(0,i.useState)(null),[tF,tR]=(0,i.useState)(!1),[tE,tz]=(0,i.useState)("light"),[tB,tM]=(0,i.useState)("orb"),[tI,tA]=(0,i.useState)([]),[tD,tW]=(0,i.useState)(!1),[tO,tL]=(0,i.useState)(!1),[tN,tP]=(0,i.useState)(!1),[tU,tH]=(0,i.useState)(!1),[tq,tY]=(0,i.useState)(!1),[tK,tJ]=(0,i.useState)(null),[tV,tG]=(0,i.useState)(null),{toasts:t_,toast:t$,dismiss:tX}=function(){let[e,t]=(0,i.useState)([]),n=(0,i.useCallback)((e,n,a)=>{var i;let r=crypto.randomUUID(),l=null!=(i=null==a?void 0:a.ttlMs)?i:5e3;return t(t=>[...t,{id:r,type:e,message:n,action:null==a?void 0:a.action,ttlMs:l}]),setTimeout(()=>t(e=>e.filter(e=>e.id!==r)),l),r},[]);return{toasts:e,toast:{error:(e,t)=>n("error",e,t),success:(e,t)=>n("success",e,t),info:(e,t)=>n("info",e,t)},dismiss:e=>t(t=>t.filter(t=>t.id!==e))}}(),[tQ,tZ]=(0,i.useState)(!1);(0,i.useEffect)(()=>{if("1"===new URLSearchParams(window.location.search).get("onboarding")){try{localStorage.removeItem("leedab-onboarded")}catch(e){}tZ(!0);return}"1"!==localStorage.getItem("leedab-onboarded")&&Promise.all([fetch("/api/routing").then(e=>e.json()).catch(()=>({rules:[]})),fetch("/api/contacts").then(e=>e.json()).catch(()=>({contacts:[]}))]).then(e=>{let[t,n]=e;t.rules&&0!==t.rules.length||n.contacts&&0!==n.contacts.length||tZ(!0)})},[]),(0,i.useEffect)(()=>{let e=window.matchMedia("(max-width: 900px)"),t=()=>tP(e.matches);return t(),e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[]);let t0=(0,i.useCallback)(async e=>{if(e&&0!==e.length){tW(!0);try{let n=Array.from(e),a=[];for(let e of n){let n=new FormData;n.append("file",e);let i=await fetch("/api/uploads",{method:"POST",body:n});if(!i.ok){var t;let e=await i.json().catch(()=>({}));throw Error(null!=(t=e.error)?t:"HTTP ".concat(i.status))}let r=await i.json();a.push(r)}tA(e=>[...e,...a])}catch(e){t$.error(e instanceof Error?e.message:"upload failed")}finally{tW(!1)}}},[t$]),t1=(0,i.useCallback)(e=>{tA(t=>t.filter(t=>t.id!==e))},[]);(0,i.useEffect)(()=>{!K.includes(ee)&&K.length>0&&ea(K[0])},[K,ee]),(0,i.useEffect)(()=>{var e,t;let n=localStorage.getItem("leedab-theme"),a=localStorage.getItem("leedab-view");"dark"===n||"light"===n?tz(n):(null==(e=(t=window).matchMedia)?void 0:e.call(t,"(prefers-color-scheme: dark)").matches)&&tz("dark"),"list"===a&&tM("list")},[]),(0,i.useEffect)(()=>{document.documentElement.setAttribute("data-theme","dark"===tE?"dark":"light");try{localStorage.setItem("leedab-theme",tE)}catch(e){}},[tE]),(0,i.useEffect)(()=>{try{localStorage.setItem("leedab-view",tB)}catch(e){}},[tB]);let t2=(0,i.useRef)(null);(0,i.useRef)(!1);let t4=(0,i.useRef)(null),t6=(0,i.useRef)(null),t5=(0,i.useRef)(null),t8=null!=(v=null!=(x=G[ee])?x:G[K[0]])?v:l.marketing,t3=null!=(b=ei[ee])?b:[],t9=null!=(M=null!=(R=ed[ee])?R:ef)?M:t8.defaultModel;K.indexOf(ee);let t7=K.filter(e=>"active"===D[e]).length,ne=tj.filter(e=>!e.read).length,nt=new Date().toLocaleDateString("en-US",{month:"short",day:"2-digit"}).toUpperCase(),nn=new Date().getFullYear();(0,i.useEffect)(()=>{let e=!1;return tR(!0),(async()=>{try{let t=await fetch("/api/conversations?agentId=".concat(ee));if(e)return;if(!t.ok)throw Error("HTTP ".concat(t.status));let n=await t.json();!e&&Array.isArray(n.messages)&&es(e=>({...e,[ee]:n.messages}))}catch(t){e||t$.error(t instanceof Error?t.message:"Failed to load conversation")}finally{e||tR(!1)}})(),()=>{e=!0}},[ee]),(0,i.useEffect)(()=>{var e;null==(e=t2.current)||e.scrollTo({top:t2.current.scrollHeight,behavior:"smooth"})},[t3,eS]),(0,i.useEffect)(()=>{eF&&fetch("/api/usage").then(e=>e.json()).then(eD).catch(e=>{var t;return t$.error(null!=(t=e.message)?t:"Failed to load usage")})},[eF]),(0,i.useEffect)(()=>{th&&setTimeout(()=>{var e;return null==(e=t6.current)?void 0:e.focus()},50)},[th]),(0,i.useEffect)(()=>{let e=e=>{var t,n;let a=["TEXTAREA","INPUT"].includes(e.target.tagName);if((e.metaKey||e.ctrlKey)&&"l"===e.key){e.preventDefault(),tg(e=>!e),tf("");return}if("Escape"===e.key)return tq?void tY(!1):th?void tg(!1):tx?void ty(!1):tv?void tb(!1):eG?void e_(!1):eH.length>0?void eq([]):(eL&&(eN(!1),eO(!1)),e8(!1),void(null==(t=document.activeElement)||t.blur()));if("?"===e.key&&!a&&!th){e.preventDefault(),tY(e=>!e);return}if("/"===e.key&&!a&&!th){e.preventDefault(),null==(n=t4.current)||n.focus();return}if("b"===e.key&&!a&&!th)return void eO(e=>!e)};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[eL,eH,th,tx,tv,tq,eG]),(0,i.useEffect)(()=>{if(!eG)return;let e=e=>{e.target.closest("[data-extra-pane-adder]")||e_(!1)};return window.addEventListener("mousedown",e),()=>window.removeEventListener("mousedown",e)},[eG]),(0,i.useEffect)(()=>{e5&&"agents"===te||e_(!1)},[e5,te]);let na=(0,i.useCallback)((e,t)=>{if(null==t?void 0:t.multi){eq(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e]),tt("agents"),e8(!0),setTimeout(()=>{var e;return null==(e=t4.current)?void 0:e.focus()},0);return}eq([]),e===ee?e8(e=>!e):(ea(e),e8(!0),eN(!1),eO(!1)),tt("agents"),setTimeout(()=>{var e;return null==(e=t4.current)?void 0:e.focus()},0)},[ee]),ni=(0,i.useCallback)(async()=>{let e=ej.trim();if(!e&&0===tI.length||eS)return;ek(""),tA([]);let t=eW?K:eH.length>0?eH:[];if(t.length>0){eN(!0),eU(Object.fromEntries(t.map(e=>[e,""]))),t.forEach(async t=>{var n,a;let i=l[t],r=null!=(n=ed[t])?n:i.defaultModel;try{let n=await fetch("/api/chat",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({agentId:t,model:r,messages:[{role:"user",content:e}]})});if(!n.ok||!n.body)return;let i=n.body.getReader(),l=new TextDecoder,o="";for(;;){let{value:e,done:n}=await i.read();if(n)break;let r=(o+=l.decode(e,{stream:!0})).split("\n\n");for(let e of(o=null!=(a=r.pop())?a:"",r))if(e.startsWith("data:"))try{let n=JSON.parse(e.slice(5).trim());"text"===n.type&&eU(e=>({...e,[t]:e[t]+n.value}))}catch(e){}}}catch(e){}}),eH.length>0&&eq([]);return}let n=tI.length?"\n\n"+tI.map(e=>"[Attached: ".concat(e.name,"]")).join("\n"):"",a={id:crypto.randomUUID(),role:"user",content:e+n,timestamp:Date.now()},i={id:crypto.randomUUID(),role:"assistant",content:"",timestamp:Date.now(),model:t9};es(e=>({...e,[ee]:[...e[ee],a,i]})),ew(!0);try{let t=await fetch("/api/chat",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({agentId:ee,model:t9,messages:[...t3.map(e=>({role:e.role,content:e.content})),{role:"user",content:e}],attachments:tI})});if(!t.ok||!t.body)throw Error(await t.text()||"HTTP ".concat(t.status));let n=t.body.getReader(),a=new TextDecoder,i="";for(;;){var r;let{value:e,done:t}=await n.read();if(t)break;let l=(i+=a.decode(e,{stream:!0})).split("\n\n");for(let e of(i=null!=(r=l.pop())?r:"",l))if(e.startsWith("data:"))try{let t=JSON.parse(e.slice(5).trim());"tool_call"===t.type?tC(t.tool):"text"===t.type?(tC(null),es(e=>{let n=e[ee],a=n[n.length-1];return(null==a?void 0:a.role)!=="assistant"?e:{...e,[ee]:[...n.slice(0,-1),{...a,content:a.content+t.value}]}})):"error"===t.type&&(tC(null),es(e=>{let n=e[ee],a=n[n.length-1];return(null==a?void 0:a.role)!=="assistant"?e:{...e,[ee]:[...n.slice(0,-1),{...a,content:"[Error] ".concat(t.value)}]}}))}catch(e){}}}catch(t){let e=t instanceof Error?t.message:"Unknown error";es(t=>{let n=t[ee],a=n[n.length-1];return(null==a?void 0:a.role)!=="assistant"?t:{...t,[ee]:[...n.slice(0,-1),{...a,content:"[Error] ".concat(e)}]}})}finally{ew(!1),tC(null)}},[ej,eS,ee,t9,t3,eW,ed,tI]),nr=(0,i.useCallback)(async()=>{confirm("Clear conversation with ".concat(t8.name," AB?"))&&(await fetch("/api/conversations?agentId=".concat(ee),{method:"DELETE"}),es(e=>({...e,[ee]:[]})))},[ee,t8.name]),nl=(0,i.useCallback)(e=>{var t,n,a,i;if(0===t3.length)return;let r=new Date().toISOString().slice(0,10),l=t3.filter(e=>"assistant"===e.role).map(e=>e.content),o="",s="text/plain";if("md"===e)o=t3.map(e=>"user"===e.role?"**You:** ".concat(e.content):"**".concat(t8.name,":** ").concat(e.content)).join("\n\n---\n\n"),s="text/markdown";else if("txt"===e)o=(null!=(t=l.at(-1))?t:t3.map(e=>"user"===e.role?"You: ".concat(e.content):"".concat(t8.name,": ").concat(e.content)).join("\n\n")).replace(/#{1,6}\s+/g,"").replace(/\*\*(.+?)\*\*/g,"$1").replace(/\*(.+?)\*/g,"$1").replace(/`{3}[\s\S]*?`{3}/g,e=>e.replace(/`{3}[^\n]*\n?/,"").replace(/\n?`{3}/,"")).replace(/`(.+?)`/g,"$1").replace(/\[(.+?)\]\(.+?\)/g,"$1").replace(/^[-*]\s+/gm,"• ").replace(/^\d+\.\s+/gm,e=>e);else if("html"===e){let e=(null!=(n=l.at(-1))?n:"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/#{3}\s+(.+)/g,"<h3>$1</h3>").replace(/#{2}\s+(.+)/g,"<h2>$1</h2>").replace(/#{1}\s+(.+)/g,"<h1>$1</h1>").replace(/\*\*(.+?)\*\*/g,"<strong>$1</strong>").replace(/\*(.+?)\*/g,"<em>$1</em>").replace(/`(.+?)`/g,"<code>$1</code>").replace(/\[(.+?)\]\((.+?)\)/g,'<a href="$2">$1</a>').replace(/^[-*]\s+(.+)/gm,"<li>$1</li>").replace(/(<li>[\s\S]+?<\/li>)/g,"<ul>$1</ul>").replace(/\n\n/g,"</p><p>").replace(/\n/g,"<br>");o='<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>'.concat(t8.name," — LeedAB</title><style>body{font-family:system-ui,sans-serif;max-width:720px;margin:40px auto;padding:0 24px;color:#1a1713;line-height:1.7;background:#efe9dd}h1,h2,h3{font-weight:600;margin-top:2em}code{background:#e6dfcf;padding:2px 6px;border-radius:3px;font-size:.9em}pre{background:#e6dfcf;padding:16px;border-radius:4px;overflow-x:auto}ul{padding-left:1.5em}a{color:#10b981}</style></head><body><p>").concat(e,"</p></body></html>"),s="text/html"}else if("json"===e)o=JSON.stringify({agent:t8.name,exportedAt:new Date().toISOString(),messages:t3},null,2),s="application/json";else if("csv"===e){let e=[["role","content","timestamp"]];for(let t of t3)e.push([t.role,'"'.concat((null!=(a=t.content)?a:"").replace(/"/g,'""'),'"'),String(null!=(i=t.timestamp)?i:"")]);o=e.map(e=>e.join(",")).join("\n"),s="text/csv"}let d=new Blob([o],{type:s}),c=URL.createObjectURL(d),p=document.createElement("a");p.href=c,p.download="leedab-".concat(ee,"-").concat(r,".").concat(e),p.click(),URL.revokeObjectURL(c)},[t3,ee,t8.name]),no=(0,i.useCallback)(()=>{var e;let t=window,n=null!=(e=t.SpeechRecognition)?e:t.webkitSpeechRecognition;if(!n)return void alert("Use your WhisperFlow shortcut to dictate into the text field.");if(eT&&t5.current){t5.current.stop(),eC(!1);return}let a=new n;a.continuous=!1,a.interimResults=!0,a.lang="en-US",a.onstart=()=>eC(!0),a.onend=()=>eC(!1),a.onerror=()=>eC(!1),a.onresult=e=>ek(Array.from(e.results).map(e=>e[0].transcript).join("")),t5.current=a,a.start()},[eT]);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(L,{toasts:t_,onDismiss:tX}),tq&&(0,a.jsx)(N,{onClose:()=>tY(!1)}),ep&&(0,a.jsx)(eb,{onClose:()=>eu(!1)}),tK&&(0,a.jsx)(q,{draft:tK,agentId:ee,agentName:t8.name,onCancel:()=>tJ(null),onSave:async function e(t){var n,a,i,r;let l=(null==H||null==(n=H.customer)?void 0:n.clientId)?"?client=".concat(encodeURIComponent(H.customer.clientId)):"",o=JSON.stringify({name:t.name,description:t.description,category:"general",agentId:ee,promptTemplate:t.promptTemplate,inputs:null!=(a=t.inputs)?a:[],outputType:"message"});try{let n=await f("/api/templates".concat(l),{method:"POST",headers:{"Content-Type":"application/json"},body:o});if(await y(n)){g(),tG({context:"to save this workflow",retry:()=>e(t)});return}if(!n.ok)throw Error(null!=(i=(await n.json()).error)?i:"HTTP ".concat(n.status));let a=(null!=(r=t.inputs)?r:[]).length;t$.success('Saved "'.concat(t.name,'"').concat(a>0?" (".concat(a," variable").concat(1===a?"":"s",")"):""," to Templates.")),tJ(null)}catch(n){if(n instanceof p)return void tG({context:"to save this workflow",retry:()=>e(t)});t$.error(n instanceof Error?n.message:"save failed")}}}),(0,a.jsx)(ev,{open:null!==tV,context:null==tV?void 0:tV.context,onSubmit:()=>{let e=null==tV?void 0:tV.retry;tG(null),e&&e()},onCancel:()=>tG(null)}),tQ&&(0,a.jsx)(J,{onClose:()=>{tZ(!1);try{localStorage.setItem("leedab-onboarded","1")}catch(e){}}}),th&&(0,a.jsx)(X,{query:tm,onQueryChange:tf,inputRef:t6,conversations:ei,onSelectAgent:e=>{na(e),tg(!1),tf("")},onSelectView:e=>{tt(e),tg(!1),tf("")},onClose:()=>{tg(!1),tf("")}}),tx&&(0,a.jsx)(_,{agent:t8,agentId:ee,conversations:ei,onClose:()=>ty(!1)}),tv&&(0,a.jsx)(V,{notifs:tj,onMarkAllRead:()=>tk(e=>e.map(e=>({...e,read:!0}))),onClose:()=>tb(!1)}),(0,a.jsxs)("div",{style:{minHeight:"100svh",height:"100dvh",display:"flex",flexDirection:"column",overflow:"hidden",background:k,color:"var(--ink)"},children:[(0,a.jsxs)("nav",{"data-app-nav":!0,style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"0 28px",height:52,borderBottom:"1px solid ".concat(T),background:w,flexShrink:0,fontFamily:E,gap:12,minWidth:0},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:16,flex:1,minWidth:0},children:[tN&&(0,a.jsx)("button",{onClick:()=>{"agents"!==te&&tt("agents"),tH(!0)},"aria-label":"Open team rail",style:{background:"none",border:"1px solid ".concat(T),color:"var(--ink-3)",padding:"4px 8px",borderRadius:3,cursor:"pointer",fontSize:14},children:"☰"}),(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:0,lineHeight:1},children:[(0,a.jsxs)("span",{style:{display:"inline-flex",alignItems:"baseline",gap:1,fontFamily:z,fontSize:18,fontWeight:500,letterSpacing:"-0.02em",color:"var(--ink)"},children:["LeedAB",(0,a.jsx)("span",{style:{width:6,height:6,background:F,borderRadius:"50%",display:"inline-block",marginLeft:2,transform:"translateY(-1px)",flex:"none"}})]}),(0,a.jsx)("span",{"data-mobile-condense":!0,style:{fontFamily:E,fontSize:10,fontWeight:500,textTransform:"uppercase",letterSpacing:"0.14em",color:"var(--ink-3)",marginTop:3},children:"agentic OS"})]}),(0,a.jsx)("div",{"data-mobile-tabs":!0,className:"no-scrollbar",style:{display:"flex",gap:2,overflowX:"auto",flex:1,minWidth:0,WebkitOverflowScrolling:"touch"},children:["agents","workflows","sessions","runs","admin"].map(e=>(0,a.jsx)("button",{onClick:()=>{te===e?ti(e=>!e):(tt(e),ti(!1))},style:{fontFamily:E,fontSize:10,letterSpacing:"0.08em",padding:"4px 10px",background:"transparent",color:te===e?F:"var(--ink-5)",borderTop:"none",borderRight:"none",borderLeft:"none",borderBottom:"2px solid ".concat(te===e?F:"transparent"),cursor:"pointer",transition:"all 0.15s",textTransform:"uppercase",flexShrink:0,whiteSpace:"nowrap"},children:"agents"===e?"operators":e},e))})]}),(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexShrink:0},children:["agents"===te&&(0,a.jsx)("div",{style:{display:"flex",border:"1px solid ".concat(T),borderRadius:3,overflow:"hidden"},children:["list","orb"].map(e=>(0,a.jsx)("button",{onClick:()=>{e!==tB&&(tM(e),e8(!1),eJ([]),e_(!1),eq([]),eO(!1),eN(!1))},style:{fontFamily:E,fontSize:9,letterSpacing:"0.08em",padding:"4px 8px",border:"none",background:tB===e?F:"transparent",color:tB===e?"var(--paper)":"var(--ink-5)",cursor:"pointer",textTransform:"uppercase",transition:"all 0.15s"},children:e},e))}),(0,a.jsx)($,{onChannelClick:e=>{tl(e),tt("admin")}}),(0,a.jsxs)("span",{"data-mobile-hide":!0,style:{fontSize:10,color:F,letterSpacing:"0.1em"},children:["● ",t7," ACTIVE"]}),(0,a.jsxs)("span",{"data-mobile-hide":!0,style:{fontSize:10,color:"var(--ink-6)"},children:[nt," \xb7 ",nn]}),(0,a.jsx)("button",{onClick:()=>tz("dark"===tE?"light":"dark"),title:"Toggle theme",style:{background:"transparent",border:"1px solid ".concat(T),color:"var(--ink-4)",borderRadius:3,padding:"4px 8px",cursor:"pointer",fontFamily:E,fontSize:11,display:"flex",alignItems:"center",justifyContent:"center",width:28,height:24},children:"dark"===tE?"☀":"☾"}),(0,a.jsxs)("button",{onClick:()=>{tg(!0),tf("")},style:{background:S,border:"1px solid ".concat(T),color:"var(--ink-5)",borderRadius:3,padding:"4px 10px",cursor:"pointer",display:"flex",alignItems:"center",gap:6,fontFamily:E,fontSize:10},children:[(0,a.jsx)("span",{style:{fontSize:11},children:"⌘"}),"L"]}),(0,a.jsx)("span",{"data-mobile-hide":!0,style:{display:"inline-flex"},children:(0,a.jsx)(Z,{label:"USAGE",active:eF,onClick:()=>eR(e=>!e)})}),(0,a.jsxs)("button",{onClick:()=>{tb(e=>!e),tv||tk(e=>e.map(e=>({...e,read:!0})))},style:{position:"relative",background:"none",border:"none",cursor:"pointer",color:ne>0?F:"var(--ink-5)",fontSize:14,padding:"4px 6px",transition:"color 0.15s"},children:["◎",ne>0&&(0,a.jsx)("span",{style:{position:"absolute",top:0,right:0,width:8,height:8,borderRadius:"50%",background:F,border:"2px solid ".concat(w),display:"block"}})]})]})]}),!ta&&(0,a.jsx)(e6,{onOpenSession:tu}),eF&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{onClick:()=>eR(!1),style:{position:"fixed",inset:0,background:"rgba(0,0,0,0.18)",zIndex:480}}),(0,a.jsx)("div",{className:"animate-fade-in",style:{position:"fixed",top:56,left:"50%",transform:"translateX(-50%)",width:"min(940px, calc(100vw - 32px))",maxHeight:"calc(100vh - 96px)",border:"1px solid ".concat(T),borderRadius:4,boxShadow:"0 18px 48px rgba(0,0,0,0.18)",background:w,padding:"20px 28px",overflowY:"auto",zIndex:490},children:eE?(0,a.jsxs)("div",{style:{maxWidth:900,margin:"0 auto"},children:[(0,a.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:12,marginBottom:20},children:[{label:"Today \xb7 Requests",value:eE.todayTotals.requests.toString()},{label:"Today \xb7 Input",value:eE.todayTotals.inputTokens.toLocaleString()},{label:"Today \xb7 Output",value:eE.todayTotals.outputTokens.toLocaleString()},{label:"Today \xb7 Est. cost",value:"$".concat(eE.todayTotals.estimatedCost.toFixed(4))}].map(e=>{let{label:t,value:n}=e;return(0,a.jsxs)("div",{style:{background:S,border:"1px solid ".concat(T),borderRadius:3,padding:"12px 16px"},children:[(0,a.jsx)("div",{style:{fontSize:9,color:"var(--ink-5)",letterSpacing:"0.14em",marginBottom:6,fontFamily:E},children:t.toUpperCase()}),(0,a.jsx)("div",{style:{fontSize:20,fontWeight:700,color:"var(--ink)",fontFamily:E},children:n})]},t)})}),(0,a.jsx)("div",{style:{fontSize:9,color:"var(--ink-5)",letterSpacing:"0.14em",marginBottom:8,fontFamily:E},children:"ALL-TIME \xb7 BY AGENT"}),(0,a.jsxs)("table",{style:{width:"100%",fontSize:12,fontFamily:E,borderCollapse:"collapse"},children:[(0,a.jsx)("thead",{children:(0,a.jsx)("tr",{style:{color:"var(--ink-5)",borderBottom:"1px solid ".concat(T)},children:["Agent","Requests","Input","Output","Est. Cost"].map(e=>(0,a.jsx)("th",{style:{textAlign:"Agent"!==e?"right":"left",paddingBottom:8,paddingRight:16,fontWeight:400},children:e},e))})}),(0,a.jsxs)("tbody",{children:[K.map(e=>{var t,n,i,r,l;let o=null!=(i=eE.byAgent[e])?i:{requests:0,inputTokens:0,outputTokens:0,estimatedCost:0};return(0,a.jsxs)("tr",{style:{borderBottom:"1px solid ".concat(C)},children:[(0,a.jsxs)("td",{style:{padding:"8px 16px 8px 0",color:"var(--ink-3)"},children:[(0,a.jsx)("span",{style:{color:"var(--ink)",marginRight:8},children:null!=(r=null==(t=G[e])?void 0:t.code)?r:""}),null!=(l=null==(n=G[e])?void 0:n.name)?l:e]}),(0,a.jsx)("td",{style:{padding:"8px 16px 8px 0",textAlign:"right",color:"var(--ink-5)"},children:o.requests}),(0,a.jsx)("td",{style:{padding:"8px 16px 8px 0",textAlign:"right",color:"var(--ink-5)"},children:o.inputTokens.toLocaleString()}),(0,a.jsx)("td",{style:{padding:"8px 16px 8px 0",textAlign:"right",color:"var(--ink-5)"},children:o.outputTokens.toLocaleString()}),(0,a.jsxs)("td",{style:{padding:"8px 0",textAlign:"right",color:F},children:["$",o.estimatedCost.toFixed(4)]})]},e)}),(0,a.jsxs)("tr",{style:{color:"var(--ink)"},children:[(0,a.jsx)("td",{style:{paddingTop:12,paddingRight:16},children:"Total"}),(0,a.jsx)("td",{style:{paddingTop:12,paddingRight:16,textAlign:"right"},children:eE.totals.requests}),(0,a.jsx)("td",{style:{paddingTop:12,paddingRight:16,textAlign:"right"},children:eE.totals.inputTokens.toLocaleString()}),(0,a.jsx)("td",{style:{paddingTop:12,paddingRight:16,textAlign:"right"},children:eE.totals.outputTokens.toLocaleString()}),(0,a.jsxs)("td",{style:{paddingTop:12,textAlign:"right",color:F,fontWeight:700},children:["$",eE.totals.estimatedCost.toFixed(4)]})]})]})]})]}):(0,a.jsx)("div",{style:{fontSize:12,color:"var(--ink-5)",fontFamily:E},children:"Loading…"})})]}),"inbox"===te&&(0,a.jsx)(tn,{toast:t$,onSelectAgent:na,initialTab:"inbox"}),"approvals"===te&&(0,a.jsx)(eK,{toast:t$}),"roster"===te&&(0,a.jsx)(eV,{toast:t$}),"workflows"===te&&(0,a.jsx)(e1,{toast:t$,onSelectAgent:na}),"runs"===te&&(0,a.jsx)(e4,{onOpenSession:tu}),"compute"===te&&(0,a.jsx)(e3,{toast:t$,onSelectAgent:na}),"sessions"===te&&(0,a.jsx)(tn,{toast:t$,onSelectAgent:na,initialTab:"transcripts",initialSelectedId:null!=to?to:void 0,initialTargetTimestamp:null!=tc?tc:void 0}),"admin"===te&&(0,a.jsx)(ts,{toast:t$,initialChannel:tr}),"agents"===te&&Y&&(0,a.jsxs)("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",gap:10},children:[(0,a.jsx)("span",{className:"orb-pulse-ring",style:{width:8,height:8,borderRadius:"50%",background:F,display:"inline-block"}}),(0,a.jsx)("span",{style:{fontFamily:E,fontSize:10,color:"var(--ink-5)",letterSpacing:"0.14em",textTransform:"uppercase"},children:"loading ABs"})]}),"agents"===te&&!Y&&(0,a.jsxs)("div",{className:"animate-fade-in",style:{flex:1,display:"flex",overflow:"hidden"},children:["list"===tB&&!tN&&(0,a.jsx)(eo,{selectedAgent:ee,chatOpen:e5,conversations:ei,onSelectAgent:na,onOpenMarketplace:()=>eu(!0)}),tN&&tU&&(0,a.jsx)("div",{className:"team-rail-drawer",onClick:()=>tH(!1),children:(0,a.jsx)("div",{className:"team-rail-drawer-panel",onClick:e=>e.stopPropagation(),children:(0,a.jsx)(eo,{selectedAgent:ee,chatOpen:e5,conversations:ei,onSelectAgent:e=>{na(e),tH(!1)},onOpenMarketplace:()=>{eu(!0),tH(!1)}})})}),(0,a.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"row",overflow:"hidden",minWidth:0,padding:"16px 20px 16px 0"},children:[(0,a.jsx)("div",{ref:eZ,style:{flex:null!=(I=e$[0])?I:1,display:"flex",flexDirection:"column",overflow:"hidden",minWidth:280},children:e5?(0,a.jsxs)("div",{className:"animate-fade-up",style:{flex:1,marginLeft:20,borderRadius:4,border:"1px solid ".concat(T),background:"var(--paper-3)",display:"flex",flexDirection:"column",overflow:"hidden",minHeight:0},children:[eL?(0,a.jsxs)("div",{style:{flex:1,overflow:"hidden",background:"var(--paper-3)",display:"flex",flexDirection:"column"},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"16px 24px",borderBottom:"1px solid ".concat(T),flexShrink:0},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:14},children:[(0,a.jsx)("span",{style:{fontFamily:E,fontSize:10,color:F,letterSpacing:"0.14em"},children:"\xa7 BROADCAST"}),(0,a.jsxs)("span",{style:{fontFamily:B,fontSize:22,fontWeight:500,color:"var(--ink)",letterSpacing:"-0.01em"},children:[Object.values(eP).filter(Boolean).length,"/",K.length," responded"]})]}),(0,a.jsx)("button",{onClick:()=>{eN(!1),eO(!1)},style:{fontFamily:E,fontSize:10,letterSpacing:"0.08em",padding:"5px 10px",border:"1px solid ".concat(T),background:"transparent",color:"var(--ink-5)",borderRadius:3,cursor:"pointer"},children:"CLOSE"})]}),(0,a.jsx)("div",{style:{flex:1,overflowX:"auto",overflowY:"hidden"},children:(0,a.jsx)("div",{style:{display:"flex",gap:12,padding:18,height:"100%"},children:[...K].sort((e,t)=>{var n,a,i,r;return(null!=(i=null==(n=eP[t])?void 0:n.length)?i:0)-(null!=(r=null==(a=eP[e])?void 0:a.length)?r:0)}).map(e=>{var t,n,i,l,o;let s=null!=(i=eP[e])?i:"",d=s.length>0;return(0,a.jsxs)("div",{className:"animate-broadcast-slide",style:{width:360,flexShrink:0,background:"var(--paper-input)",border:"1px solid ".concat(d?"".concat(F,"66"):T),borderRadius:4,display:"flex",flexDirection:"column",overflow:"hidden"},children:[(0,a.jsxs)("div",{style:{padding:"10px 14px",borderBottom:"1px solid ".concat(C),display:"flex",alignItems:"center",gap:10,background:"var(--paper-2)",flexShrink:0},children:[(0,a.jsx)("span",{style:{fontFamily:E,fontWeight:700,fontSize:11,color:d?F:"var(--ink-5)",letterSpacing:"0.04em",width:28},children:null!=(l=null==(t=G[e])?void 0:t.code)?l:""}),(0,a.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,a.jsx)("div",{style:{fontSize:13,color:"var(--ink)",fontFamily:z,fontWeight:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:null!=(o=null==(n=G[e])?void 0:n.name)?o:e}),(0,a.jsx)("div",{style:{fontFamily:E,fontSize:9,color:"var(--ink-6)",letterSpacing:"0.08em"},children:d?"".concat(s.length," chars"):"waiting…"})]}),!d&&(0,a.jsx)("span",{style:{display:"flex",gap:3,alignItems:"center"},children:[0,1,2].map(e=>(0,a.jsx)("span",{className:"typing-dot",style:{width:4,height:4,borderRadius:"50%",background:F,display:"inline-block"}},e))})]}),(0,a.jsx)("div",{className:"prose-agent",style:{flex:1,padding:"12px 14px",fontSize:12,overflowY:"auto"},children:s?(0,a.jsx)(r.oz,{children:s}):(0,a.jsx)("span",{style:{color:"var(--ink-7)"},children:"waiting…"})})]},e)})})})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 20px",borderBottom:"1px solid ".concat(T),flexShrink:0},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,fontFamily:E,minWidth:0,flex:1},children:[(0,a.jsx)("span",{style:{fontSize:10,color:F,letterSpacing:"0.1em",flexShrink:0},children:A[ee]}),(0,a.jsx)("span",{style:{fontSize:12,fontWeight:700,color:"var(--ink)",letterSpacing:"0.06em",flexShrink:0},children:null!=(W=null==(e=G[ee])?void 0:e.code)?W:""}),(0,a.jsxs)("span",{"data-mobile-hide":!0,style:{fontSize:13,color:"var(--ink-4)",fontFamily:z,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:["/ ",t8.name," AB"]})]}),(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexShrink:0},children:[(0,a.jsx)("span",{"data-mobile-hide":!0,style:{display:"inline-flex"},children:(0,a.jsx)(et,{value:t9,options:eg.length>0?eg:t8.availableModels,onChange:e=>ec(t=>({...t,[ee]:e}))})}),e2.showContext&&(0,a.jsx)("span",{"data-mobile-hide":!0,style:{display:"inline-flex"},children:(0,a.jsx)(Z,{label:"CONTEXT",active:tx,onClick:()=>ty(e=>!e)})}),e2.showExport&&(0,a.jsx)("span",{"data-mobile-hide":!0,style:{display:"inline-flex"},children:(0,a.jsx)(Q,{disabled:0===t3.length,onExport:nl})}),e2.showAddAgent&&(0,a.jsxs)("span",{"data-mobile-hide":!0,"data-extra-pane-adder":!0,style:{display:"inline-flex",position:"relative"},children:[(0,a.jsx)(Z,{label:"+ AGENT",onClick:()=>e_(e=>!e)}),eG&&(0,a.jsxs)("div",{style:{position:"absolute",top:"100%",right:0,marginTop:6,background:"var(--paper-3)",border:"1px solid ".concat(T),borderRadius:4,boxShadow:"0 8px 32px rgba(0,0,0,0.4)",zIndex:100,minWidth:220,maxHeight:360,overflowY:"auto"},children:[(0,a.jsx)("div",{style:{padding:"8px 10px",borderBottom:"1px solid ".concat(T),fontFamily:E,fontSize:9,color:"var(--ink-5)",letterSpacing:"0.16em"},children:"OPEN PARALLEL PANE"}),K.filter(e=>e!==ee&&!eY.includes(e)).map(e=>{var t,n;let i=l[e];return(0,a.jsxs)("button",{onClick:()=>{eJ(t=>[...t,e]),e_(!1)},style:{display:"block",width:"100%",textAlign:"left",padding:"8px 12px",border:"none",background:"transparent",cursor:"pointer",fontFamily:z,fontSize:12,color:"var(--ink)",borderBottom:"1px dashed ".concat(T)},onMouseEnter:e=>{e.currentTarget.style.background="var(--paper-2)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent"},children:[(0,a.jsx)("span",{style:{fontFamily:E,fontSize:9,color:F,letterSpacing:"0.1em",marginRight:6},children:null!=(n=null==(t=G[e])?void 0:t.code)?n:""}),i.name]},e)}),0===K.filter(e=>e!==ee&&!eY.includes(e)).length&&(0,a.jsx)("div",{style:{padding:"10px 12px",fontSize:11,color:"var(--ink-5)",fontStyle:"italic"},children:"All agents already open."})]})]}),e2.showSaveAsWorkflow&&(0,a.jsx)("span",{"data-mobile-hide":!0,style:{display:"inline-flex"},children:(0,a.jsx)(Z,{label:"SAVE AS WORKFLOW",disabled:0===t3.filter(e=>"user"===e.role).length,onClick:()=>{let e=[...t3].reverse().find(e=>"user"===e.role);if(!e)return void t$.error("Need at least one of your messages.");tJ({name:e.content.slice(0,60),description:"Saved from a ".concat(t8.name," chat thread."),promptTemplate:e.content})}})}),e2.showClear&&(0,a.jsx)("span",{"data-mobile-hide":!0,style:{display:"inline-flex"},children:(0,a.jsx)(Z,{label:"CLEAR",disabled:0===t3.length,onClick:nr})}),(0,a.jsx)("button",{onClick:()=>e8(!1),style:{background:"none",border:"none",cursor:"pointer",color:"var(--ink-5)",fontSize:18,lineHeight:1,padding:"0 2px",fontFamily:E,transition:"color 0.15s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--ink)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--ink-5)"},children:"\xd7"})]})]}),(0,a.jsx)("div",{ref:t2,style:{flex:1,overflowY:"auto",minHeight:0},children:(0,a.jsx)("div",{style:{maxWidth:720,margin:"0 auto",padding:"20px 24px",display:"flex",flexDirection:"column",gap:16},children:tF?(0,a.jsxs)("div",{style:{display:"flex",gap:12,alignItems:"flex-start"},children:[(0,a.jsx)("div",{style:{width:24,height:24,borderRadius:2,background:"var(--paper-input)",border:"1px solid ".concat(T),display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:(0,a.jsx)("span",{style:{fontFamily:E,fontSize:7,color:F,fontWeight:700},children:null!=(O=null==(t=G[ee])?void 0:t.code)?O:""})}),(0,a.jsx)("div",{style:{padding:"10px 14px",background:"var(--paper-input)",borderRadius:"0 4px 4px 4px",border:"1px solid ".concat(T)},children:(0,a.jsx)("div",{style:{display:"flex",gap:4,alignItems:"center",height:14},children:[0,1,2].map(e=>(0,a.jsx)("span",{className:"typing-dot",style:{width:5,height:5,borderRadius:"50%",background:T,display:"inline-block"}},e))})})]}):0===t3.length?(0,a.jsx)(en,{agentName:t8.name,agentCode:null!=(P=null==(n=G[ee])?void 0:n.code)?P:"",agentSection:A[ee],tagline:t8.tagline,onChipClick:e=>{var t;ek(e),null==(t=t4.current)||t.focus()},customQuickStart:null==H||null==(d=H.customer)||null==(s=d.quickstartByAgent)?void 0:s[ee]}):(0,a.jsxs)(a.Fragment,{children:[t3.map((e,t)=>{var n,i;return eS&&t===t3.length-1&&"assistant"===e.role&&""===e.content?null:(0,a.jsx)(er,{message:e,agentCode:null!=(i=null==(n=G[ee])?void 0:n.code)?i:"",onRunTemplate:(e,t)=>{try{localStorage.setItem("leedab-pending-template",e),localStorage.setItem("leedab-pending-template-context",t)}catch(e){}tt("workflows")},conversationContext:t3.slice(-4).map(e=>e.content).join("\n\n")},e.id)}),eS&&(null==(c=t3[t3.length-1])?void 0:c.content)===""&&(0,a.jsxs)("div",{style:{display:"flex",gap:12,alignItems:"flex-start"},children:[(0,a.jsx)("div",{style:{width:24,height:24,borderRadius:2,background:"var(--paper-input)",border:"1px solid ".concat(T),display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:(0,a.jsx)("span",{style:{fontFamily:E,fontSize:7,color:F,fontWeight:700},children:null!=(U=null==(u=G[ee])?void 0:u.code)?U:""})}),(0,a.jsx)("div",{style:{padding:"10px 14px",background:"var(--paper-input)",borderRadius:"0 4px 4px 4px",border:"1px solid ".concat(T)},children:tT?(0,a.jsxs)("span",{style:{fontFamily:E,fontSize:10,color:"var(--ink-5)",letterSpacing:"0.06em"},children:["⟳ ",tT.replace(/_/g," "),"…"]}):(0,a.jsx)("div",{style:{display:"flex",gap:4,alignItems:"center",height:14},children:[0,1,2].map(e=>(0,a.jsx)("span",{className:"typing-dot",style:{width:5,height:5,borderRadius:"50%",background:F,display:"inline-block"}},e))})})]})]})})})]}),(0,a.jsxs)("div",{onDragEnter:e=>{e.preventDefault(),tL(!0)},onDragOver:e=>{e.preventDefault(),tL(!0)},onDragLeave:e=>{e.currentTarget===e.target&&tL(!1)},onDrop:e=>{var t;e.preventDefault(),tL(!1),(null==(t=e.dataTransfer.files)?void 0:t.length)&&t0(e.dataTransfer.files)},style:{padding:"12px 20px",borderTop:"1px solid ".concat(T),flexShrink:0,position:"relative"},children:[tO&&(0,a.jsx)("div",{style:{position:"absolute",inset:0,background:"".concat(F,"22"),border:"2px dashed ".concat(F),display:"flex",alignItems:"center",justifyContent:"center",fontFamily:E,fontSize:12,color:F,letterSpacing:"0.12em",pointerEvents:"none",zIndex:10},children:"DROP TO ATTACH"}),tI.length>0&&(0,a.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:6,marginBottom:8},children:[tI.map(e=>{let t=e.mimeType.startsWith("image/");return(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"4px 8px",background:S,border:"1px solid ".concat(T),borderRadius:3,fontFamily:E,fontSize:10,color:"var(--ink-3)"},children:[t?(0,a.jsx)("img",{src:"/api/uploads/".concat(e.id),alt:"",style:{width:18,height:18,objectFit:"cover",borderRadius:2}}):(0,a.jsx)("span",{style:{fontSize:11},children:"\uD83D\uDCC4"}),(0,a.jsx)("span",{style:{maxWidth:180,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),(0,a.jsx)("button",{onClick:()=>t1(e.id),"aria-label":"remove",style:{background:"none",border:"none",color:"var(--ink-5)",cursor:"pointer",fontSize:13,lineHeight:1,padding:0},children:"\xd7"})]},e.id)}),tD&&(0,a.jsx)("div",{style:{fontSize:10,color:"var(--ink-5)",fontFamily:E,alignSelf:"center"},children:"uploading…"})]}),eH.length>0&&(0,a.jsxs)("div",{style:{marginBottom:10,padding:"10px 14px",background:"rgba(154,163,122,0.10)",border:"1px solid #9aa37a",borderRadius:6,display:"flex",justifyContent:"space-between",alignItems:"center",fontFamily:E,fontSize:11,color:"#5d6a44",letterSpacing:"0.04em"},children:[(0,a.jsxs)("span",{children:["● BROADCASTING TO ",eH.length," AGENTS:"," ",(0,a.jsx)("span",{style:{color:"var(--ink-2)"},children:eH.map(e=>{var t,n;return null!=(n=null==(t=l[e])?void 0:t.name)?n:e}).join(" \xb7 ")})]}),(0,a.jsx)("button",{onClick:()=>eq([]),style:{background:"transparent",border:"1px solid #9aa37a",color:"#5d6a44",borderRadius:3,padding:"3px 10px",fontFamily:"inherit",fontSize:10,letterSpacing:"0.1em",cursor:"pointer"},title:"Clear broadcast selection",children:"CLEAR"})]}),(0,a.jsx)(el,{ref:t4,value:ej,onChange:ek,onSubmit:ni,onVoice:no,onBroadcast:()=>eO(e=>!e),onAttach:t0,hasAttachments:tI.length>0,disabled:eS,isListening:eT,broadcastMode:eW||eH.length>0,agentName:t8.name}),(0,a.jsxs)("div",{style:{marginTop:8,display:"flex",justifyContent:"space-between",fontFamily:E,fontSize:10,color:"var(--ink-6)",letterSpacing:"0.08em"},children:[(0,a.jsxs)("span",{children:["ENTER TO SEND \xb7 ESC TO CLOSE \xb7 ⌘L SEARCH \xb7 ⌘-CLICK ORB FOR MULTI \xb7 DROP FILES",eT&&(0,a.jsx)("span",{style:{color:"#ef4444",marginLeft:8},children:"● REC"}),eW&&(0,a.jsx)("span",{style:{color:F,marginLeft:8},children:"● BROADCAST-ALL"}),!eW&&eH.length>0&&(0,a.jsxs)("span",{style:{color:"#5d6a44",marginLeft:8},children:["● MULTI (",eH.length,")"]})]}),(0,a.jsx)("span",{children:t9.replace("claude-","").replace("-20251001","").toUpperCase()})]})]})]}):"orb"===tB?(0,a.jsx)(eh,{selectedAgent:ee,chatOpen:e5,conversations:ei,onSelectAgent:na,broadcastTargets:eH,onOpenMarketplace:()=>eu(!0)}):(0,a.jsx)(ex,{agents:G,agentOrder:K,onSelectAgent:e=>na(e)})}),eY.map((e,t)=>{var n,i,r,o,s;let d=l[e];if(!d)return null;let c=t+1;return(0,a.jsxs)("div",{style:{display:"contents"},children:[(0,a.jsx)(eM,{index:c-1,weights:e$,onResize:eQ,containerWidth:window.innerWidth}),(0,a.jsx)("div",{className:"animate-fade-up",style:{flex:null!=(r=e$[c])?r:1,minWidth:280,borderRadius:4,border:"1px solid ".concat(T),background:"var(--paper-3)",display:"flex",flexDirection:"column",overflow:"hidden",minHeight:0},children:(0,a.jsx)(eA,{fallbackLabel:"".concat(d.name," pane"),onReset:()=>eJ(t=>t.filter(t=>t!==e)),children:(0,a.jsx)(eI,{agentId:e,agent:d,agentCode:null!=(o=null==(n=G[e])?void 0:n.code)?o:"",agentSection:A[e],messages:null!=(s=ei[e])?s:[],modelOverride:ed[e],onModelChange:t=>ec(n=>({...n,[e]:t})),onMessagesUpdate:t=>es(n=>({...n,[e]:t})),onClose:()=>eJ(t=>t.filter(t=>t!==e)),clientId:null==H||null==(i=H.customer)?void 0:i.clientId,modelOptions:eg,openclawDefaultModel:ef})})})]},"pane-".concat(e))})]})]},"agents-loaded")]})]})}},7659:(e,t,n)=>{Promise.resolve().then(n.bind(n,5086))}},e=>{e.O(0,[7973,8441,1255,7358],()=>e(e.s=7659)),_N_E=e.O()}]);
|