leedab 0.6.1 → 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/README.md +23 -13
- package/apps/console/.next/standalone/.next/BUILD_ID +1 -1
- package/apps/console/.next/standalone/.next/app-build-manifest.json +206 -171
- package/apps/console/.next/standalone/.next/app-path-routes-manifest.json +56 -51
- package/apps/console/.next/standalone/.next/build-manifest.json +2 -2
- package/apps/console/.next/standalone/.next/prerender-manifest.json +3 -3
- package/apps/console/.next/standalone/.next/server/app/_not-found/page.js +1 -1
- 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 +3 -3
- package/apps/console/.next/standalone/.next/server/app/api/agent/route.js +2 -2
- 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.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.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.js +1 -3
- package/apps/console/.next/standalone/.next/server/app/api/champion/confidence/route.js.nft.json +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.js +1 -3
- package/apps/console/.next/standalone/.next/server/app/api/champion/customer/route.js.nft.json +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.js +1 -3
- package/apps/console/.next/standalone/.next/server/app/api/champion/dispatches/route.js.nft.json +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.js +1 -3
- package/apps/console/.next/standalone/.next/server/app/api/champion/engagement/route.js.nft.json +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.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.js +2 -2
- 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.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.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.js +2 -2
- 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.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.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.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.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.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.js +4 -2
- package/apps/console/.next/standalone/.next/server/app/api/finance/runway-snapshot/route.js.nft.json +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.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.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.js +4 -2
- package/apps/console/.next/standalone/.next/server/app/api/investor/kpi-tracker/route.js.nft.json +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.js +1 -0
- package/apps/console/.next/standalone/.next/server/app/api/leedab/models/route.js.nft.json +1 -0
- package/apps/console/.next/standalone/.next/server/app/api/leedab/models/route_client-reference-manifest.js +1 -0
- package/apps/console/.next/standalone/.next/server/app/api/leedab/providers/route.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.js +20 -0
- package/apps/console/.next/standalone/.next/server/app/api/manifest/agents/custom/draft/route.js.nft.json +1 -0
- package/apps/console/.next/standalone/.next/server/app/api/manifest/agents/custom/draft/route_client-reference-manifest.js +1 -0
- package/apps/console/.next/standalone/.next/server/app/api/manifest/agents/custom/route.js +3 -0
- package/apps/console/.next/standalone/.next/server/app/api/manifest/agents/custom/route.js.nft.json +1 -0
- package/apps/console/.next/standalone/.next/server/app/api/manifest/agents/custom/route_client-reference-manifest.js +1 -0
- package/apps/console/.next/standalone/.next/server/app/api/manifest/agents/route.js +3 -0
- package/apps/console/.next/standalone/.next/server/app/api/manifest/agents/route.js.nft.json +1 -0
- package/apps/console/.next/standalone/.next/server/app/api/manifest/agents/route_client-reference-manifest.js +1 -0
- 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.js +3 -0
- package/apps/console/.next/standalone/.next/server/app/api/marketplace/catalogue/route.js.nft.json +1 -0
- package/apps/console/.next/standalone/.next/server/app/api/marketplace/catalogue/route_client-reference-manifest.js +1 -0
- 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.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.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.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/runs/route.js.nft.json +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.js +4 -2
- package/apps/console/.next/standalone/.next/server/app/api/sales/pipeline-summary/route.js.nft.json +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.js +2 -2
- 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.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.js +4 -4
- 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.js +4 -2
- package/apps/console/.next/standalone/.next/server/app/api/templates/regenerate/route.js.nft.json +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.js +1 -1
- package/apps/console/.next/standalone/.next/server/app/api/templates/route.js.nft.json +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.js +2 -2
- 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.js +2 -2
- 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.js +2 -2
- 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.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.js +2 -2
- 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 +4 -4
- 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 +56 -51
- package/apps/console/.next/standalone/.next/server/chunks/1558.js +9 -9
- package/apps/console/.next/standalone/.next/server/chunks/{5670.js → 2576.js} +1 -3
- package/apps/console/.next/standalone/.next/server/chunks/381.js +19 -0
- package/apps/console/.next/standalone/.next/server/chunks/4768.js +5 -5
- package/apps/console/.next/standalone/.next/server/chunks/6255.js +1 -1
- package/apps/console/.next/standalone/.next/server/chunks/7087.js +1 -1
- package/apps/console/.next/standalone/.next/server/chunks/897.js +1 -1
- package/apps/console/.next/standalone/.next/server/functions-config-manifest.json +40 -35
- package/apps/console/.next/standalone/.next/server/instrumentation.js +1 -1
- 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/server/pages-manifest.json +1 -1
- package/apps/console/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/apps/console/.next/standalone/.next/static/B4g4e91OJP29sEqgIs76V/_buildManifest.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/7973-072db1a3857a8fe9.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/agent/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/approvals/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/approvals/stream/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/automation/workflow-blueprint/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/backend/endpoint-spec/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/bootstrap-admin-token/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/brand/brand-audit/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/campaigns/campaign-brief/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/confidence/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/customer/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/dispatches/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/engagement/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/escalate/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/profile/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/screenshare/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/track-question/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/use-case-wiki/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/chat/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/compliance/risk-register-seed/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/computer-use/[id]/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/computer-use/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/concierge/morning-brief/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/contacts/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/content/seo-brief/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/conversations/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/coo/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/cx/escalation-triage/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/cx/health-score/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/data/cohort-brief/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/delivery/qbr-brief/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/delivery/weekly-brief/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/dev/invalidate-cache/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/devops/runbook/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/email/sequence-brief/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/engineering/adr-draft/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/finance/runway-snapshot/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/frontend/component-spec/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/health/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/implementation/brief/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/implementation/scaffold-migration-script/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/implementation/scaffold-n8n-workflow/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/implementation/scaffold-skill-override/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/inbox/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/inbox/stream/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/investor/kpi-tracker/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/channels/status/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/channels/telegram/connect/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/channels/whatsapp/connect/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/gtm/leads/[id]/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/gtm/leads/[id]/status/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/gtm/templates/[name]/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/license/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/models/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/providers/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/sessions/[id]/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/sessions/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/team/[id]/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/team/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/vault/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/workflows/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/legal/clause-template/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/manifest/agents/custom/draft/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/manifest/agents/custom/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/manifest/agents/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/marketing/cadence-planner/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/marketing/competitive-snapshot/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/marketplace/catalogue/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/onboarding/engagement-plan/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/onboarding/kickoff-brief/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/openclaw/status/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/ops/dispatch-brief/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/pack/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/people/job-brief/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/preferences/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/procurement/po-brief/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/product/prd-draft/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/research/prospect-intel/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/research/search/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/routing/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/runs/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/sales/pipeline-summary/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/sales/prospect-brief/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/solutions/build/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/solutions/quickstart-regenerate/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/solutions/refine/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/strategy/market-pulse/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/telegram/[customerId]/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/templates/regenerate/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/templates/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/uploads/[id]/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/uploads/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/usage/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/video/video-script/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/webhooks/workflow/[id]/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/workflows/[id]/history/[runId]/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/workflows/[id]/history/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/workflows/[id]/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/workflows/[id]/run/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/api/workflows/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/standalone/.next/static/chunks/app/page-bdfdbf7b657f4722.js +1 -0
- package/apps/console/.next/standalone/.next/static/css/{4bdbd0680d42c54d.css → b2a91ecca3bf1487.css} +1 -1
- package/apps/console/.next/standalone/package.json +1 -0
- package/apps/console/.next/static/B4g4e91OJP29sEqgIs76V/_buildManifest.js +1 -0
- package/apps/console/.next/static/chunks/7973-072db1a3857a8fe9.js +1 -0
- package/apps/console/.next/static/chunks/app/api/agent/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/approvals/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/approvals/stream/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/automation/workflow-blueprint/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/backend/endpoint-spec/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/bootstrap-admin-token/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/brand/brand-audit/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/campaigns/campaign-brief/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/champion/confidence/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/champion/customer/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/champion/dispatches/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/champion/engagement/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/champion/escalate/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/champion/profile/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/champion/screenshare/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/champion/track-question/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/champion/use-case-wiki/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/chat/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/compliance/risk-register-seed/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/computer-use/[id]/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/computer-use/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/concierge/morning-brief/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/contacts/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/content/seo-brief/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/conversations/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/coo/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/cx/escalation-triage/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/cx/health-score/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/data/cohort-brief/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/delivery/qbr-brief/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/delivery/weekly-brief/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/dev/invalidate-cache/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/devops/runbook/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/email/sequence-brief/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/engineering/adr-draft/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/finance/runway-snapshot/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/frontend/component-spec/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/health/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/implementation/brief/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/implementation/scaffold-migration-script/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/implementation/scaffold-n8n-workflow/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/implementation/scaffold-skill-override/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/inbox/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/inbox/stream/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/investor/kpi-tracker/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/leedab/channels/status/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/leedab/channels/telegram/connect/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/leedab/channels/whatsapp/connect/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/leedab/gtm/leads/[id]/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/leedab/gtm/leads/[id]/status/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/leedab/gtm/templates/[name]/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/leedab/license/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/leedab/models/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/leedab/providers/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/leedab/sessions/[id]/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/leedab/sessions/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/leedab/team/[id]/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/leedab/team/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/leedab/vault/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/leedab/workflows/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/legal/clause-template/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/manifest/agents/custom/draft/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/manifest/agents/custom/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/manifest/agents/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/marketing/cadence-planner/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/marketing/competitive-snapshot/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/marketplace/catalogue/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/onboarding/engagement-plan/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/onboarding/kickoff-brief/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/openclaw/status/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/ops/dispatch-brief/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/pack/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/people/job-brief/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/preferences/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/procurement/po-brief/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/product/prd-draft/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/research/prospect-intel/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/research/search/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/routing/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/runs/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/sales/pipeline-summary/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/sales/prospect-brief/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/solutions/build/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/solutions/quickstart-regenerate/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/solutions/refine/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/strategy/market-pulse/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/telegram/[customerId]/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/templates/regenerate/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/templates/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/uploads/[id]/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/uploads/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/usage/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/video/video-script/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/webhooks/workflow/[id]/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/workflows/[id]/history/[runId]/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/workflows/[id]/history/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/workflows/[id]/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/workflows/[id]/run/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/api/workflows/route-2d8162b887d31980.js +1 -0
- package/apps/console/.next/static/chunks/app/page-bdfdbf7b657f4722.js +1 -0
- package/apps/console/.next/static/css/{4bdbd0680d42c54d.css → b2a91ecca3bf1487.css} +1 -1
- package/bin/leedab-auto-pr.sh +108 -0
- package/bin/leedab.js +123 -1
- package/clients/default/manifest.json +47 -2
- package/dist/console-launcher.js +6 -2
- package/dist/gateway.js +111 -52
- package/package.json +2 -2
- package/apps/console/.next/standalone/.next/server/chunks/697.js +0 -19
- package/apps/console/.next/standalone/.next/static/cSGyydhlqn2VGaYXt0uuW/_buildManifest.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/8118-681f2688832ccc66.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/agent/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/approvals/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/approvals/stream/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/automation/workflow-blueprint/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/backend/endpoint-spec/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/bootstrap-admin-token/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/brand/brand-audit/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/campaigns/campaign-brief/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/confidence/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/customer/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/dispatches/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/engagement/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/escalate/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/profile/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/screenshare/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/track-question/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/use-case-wiki/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/chat/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/compliance/risk-register-seed/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/computer-use/[id]/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/computer-use/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/concierge/morning-brief/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/contacts/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/content/seo-brief/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/conversations/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/coo/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/cx/escalation-triage/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/cx/health-score/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/data/cohort-brief/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/delivery/qbr-brief/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/delivery/weekly-brief/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/dev/invalidate-cache/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/devops/runbook/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/email/sequence-brief/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/engineering/adr-draft/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/finance/runway-snapshot/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/frontend/component-spec/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/health/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/implementation/brief/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/implementation/scaffold-migration-script/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/implementation/scaffold-n8n-workflow/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/implementation/scaffold-skill-override/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/inbox/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/inbox/stream/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/investor/kpi-tracker/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/channels/status/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/channels/telegram/connect/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/channels/whatsapp/connect/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/gtm/leads/[id]/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/gtm/leads/[id]/status/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/gtm/templates/[name]/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/license/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/providers/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/sessions/[id]/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/sessions/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/team/[id]/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/team/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/vault/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/workflows/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/legal/clause-template/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/marketing/cadence-planner/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/marketing/competitive-snapshot/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/onboarding/engagement-plan/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/onboarding/kickoff-brief/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/openclaw/status/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/ops/dispatch-brief/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/pack/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/people/job-brief/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/preferences/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/procurement/po-brief/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/product/prd-draft/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/research/prospect-intel/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/research/search/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/routing/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/runs/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/sales/pipeline-summary/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/sales/prospect-brief/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/solutions/build/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/solutions/quickstart-regenerate/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/solutions/refine/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/strategy/market-pulse/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/telegram/[customerId]/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/templates/regenerate/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/templates/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/uploads/[id]/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/uploads/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/usage/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/video/video-script/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/webhooks/workflow/[id]/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/workflows/[id]/history/[runId]/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/workflows/[id]/history/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/workflows/[id]/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/workflows/[id]/run/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/api/workflows/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/standalone/.next/static/chunks/app/page-01558715b1be9361.js +0 -1
- package/apps/console/.next/static/cSGyydhlqn2VGaYXt0uuW/_buildManifest.js +0 -1
- package/apps/console/.next/static/chunks/8118-681f2688832ccc66.js +0 -1
- package/apps/console/.next/static/chunks/app/api/agent/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/approvals/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/approvals/stream/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/automation/workflow-blueprint/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/backend/endpoint-spec/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/bootstrap-admin-token/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/brand/brand-audit/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/campaigns/campaign-brief/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/champion/confidence/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/champion/customer/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/champion/dispatches/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/champion/engagement/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/champion/escalate/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/champion/profile/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/champion/screenshare/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/champion/track-question/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/champion/use-case-wiki/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/chat/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/compliance/risk-register-seed/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/computer-use/[id]/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/computer-use/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/concierge/morning-brief/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/contacts/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/content/seo-brief/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/conversations/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/coo/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/cx/escalation-triage/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/cx/health-score/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/data/cohort-brief/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/delivery/qbr-brief/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/delivery/weekly-brief/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/dev/invalidate-cache/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/devops/runbook/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/email/sequence-brief/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/engineering/adr-draft/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/finance/runway-snapshot/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/frontend/component-spec/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/health/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/implementation/brief/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/implementation/scaffold-migration-script/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/implementation/scaffold-n8n-workflow/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/implementation/scaffold-skill-override/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/inbox/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/inbox/stream/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/investor/kpi-tracker/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/leedab/channels/status/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/leedab/channels/telegram/connect/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/leedab/channels/whatsapp/connect/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/leedab/gtm/leads/[id]/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/leedab/gtm/leads/[id]/status/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/leedab/gtm/templates/[name]/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/leedab/license/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/leedab/providers/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/leedab/sessions/[id]/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/leedab/sessions/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/leedab/team/[id]/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/leedab/team/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/leedab/vault/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/leedab/workflows/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/legal/clause-template/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/marketing/cadence-planner/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/marketing/competitive-snapshot/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/onboarding/engagement-plan/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/onboarding/kickoff-brief/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/openclaw/status/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/ops/dispatch-brief/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/pack/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/people/job-brief/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/preferences/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/procurement/po-brief/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/product/prd-draft/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/research/prospect-intel/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/research/search/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/routing/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/runs/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/sales/pipeline-summary/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/sales/prospect-brief/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/solutions/build/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/solutions/quickstart-regenerate/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/solutions/refine/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/strategy/market-pulse/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/telegram/[customerId]/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/templates/regenerate/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/templates/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/uploads/[id]/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/uploads/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/usage/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/video/video-script/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/webhooks/workflow/[id]/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/workflows/[id]/history/[runId]/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/workflows/[id]/history/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/workflows/[id]/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/workflows/[id]/run/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/api/workflows/route-4178c1913c80eb12.js +0 -1
- package/apps/console/.next/static/chunks/app/page-01558715b1be9361.js +0 -1
- /package/apps/console/.next/standalone/.next/static/{cSGyydhlqn2VGaYXt0uuW → B4g4e91OJP29sEqgIs76V}/_ssgManifest.js +0 -0
- /package/apps/console/.next/static/{cSGyydhlqn2VGaYXt0uuW → B4g4e91OJP29sEqgIs76V}/_ssgManifest.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8974],{1062:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>td});var a=n(5155),i=n(2115),o=n(856);let r={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",glyph:"CO",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-20251001"],accent:"#f59e0b",glyph:"MK",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-20251001"],accent:"#f59e0b",glyph:"CN",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",glyph:"VD",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",glyph:"CM",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-20251001"],accent:"#f59e0b",glyph:"EM",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",glyph:"PR",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",glyph:"EN",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",glyph:"FE",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",glyph:"BE",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",glyph:"DV",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",glyph:"ST",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",glyph:"SL",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",glyph:"FN",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",glyph:"CX",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",glyph:"IN",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",glyph:"LG",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",glyph:"N8",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",glyph:"DT",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-20251001"],accent:"#fbbf24",glyph:"OP",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-20251001"],accent:"#10b981",glyph:"CC",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-20251001"],accent:"#f59e0b",glyph:"BR",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",glyph:"RS",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-20251001"],accent:"#8a5e7a",glyph:"PE",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-20251001"],accent:"#7a6248",glyph:"PR",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",glyph:"CP",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",glyph:"DL",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",glyph:"SO",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-20251001"],accent:"#9b6e2a",glyph:"ON",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",glyph:"IM",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",glyph:"CH",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"]}},l=["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 m(){try{window.sessionStorage.removeItem(d)}catch(e){}}function g(){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,o]=(0,i.useState)(null),[r,l]=(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();o(n)}catch(e){o(null)}finally{l(!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:r,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)",F="var(--hair-2)",C="#c95c0a",B="#c95c0a33",M="#c95c0a",R='"JetBrains Mono", ui-monospace, monospace',E='"Inter", system-ui, sans-serif',z='"Fraunces", Georgia, serif',I=Object.fromEntries(Object.entries(r).map(e=>{let[t,n]=e;return[t,n.code]})),A=Object.fromEntries(Object.entries(r).map(e=>{let[t,n]=e;return[t,n.section]})),D=Object.fromEntries(Object.entries(r).map(e=>{let[t,n]=e;return[t,n.status]})),W=Object.fromEntries(Object.entries(r).map(e=>{let[t,n]=e;return[t,n.tasks]})),L={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 O(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:'"Inter", sans-serif',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:C,fontFamily:'"JetBrains Mono", monospace',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:R,fontSize:9,color:C,letterSpacing:"0.16em"},children:"SHORTCUTS"}),(0,a.jsx)("div",{style:{fontFamily:z,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:R,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(F)},children:[(0,a.jsx)("div",{style:{display:"flex",gap:4},children:t.keys.map((e,t)=>(0,a.jsx)("kbd",{style:{fontFamily:R,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"]),o=/\b[A-Z][a-z]+(?:[.\-][A-Z][a-z]+)*(?:\s[A-Z][a-z]+){0,2}\b/g;for(;null!==(t=o.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:H(e),suggestedLabel:e.length<=30?"".concat(e.split(" ")[0]," (override)"):"Subject",type:"text",accepted:!0}))}let r=/"([^"\n]{2,80})"|'([^'\n]{2,80})'/g;for(;null!==(t=r.exec(e));){var l;let e=t[0],i=null!=(l=t[1])?l:t[2];n.has(e)||n.has(i)||(n.add(e),a.push({id:"cand-".concat(a.length),literal:e,suggestedName:H(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 H(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"").slice(0,32)||"value"}function J(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 o=t,r=2;for(;i.has(o);)o="".concat(t,"_").concat(r++);i.add(o);let l=e.literal,s="{{".concat(o,"}}");n=n.split(l).join(s),a.push({name:o,label:e.suggestedLabel||o,type:e.type,required:!0})}return{template:n,inputs:a}}function U(e){let{draft:t,agentName:n,onCancel:o,onSave:r}=e,[l,s]=(0,i.useState)(t.name),[d,c]=(0,i.useState)(t.description),[p,u]=(0,i.useState)(t.promptTemplate),[h,m]=(0,i.useState)(!1),[g,f]=(0,i.useState)(()=>P(t.promptTemplate)),x=g.filter(e=>e.accepted).length,y=(0,i.useMemo)(()=>J(p,g),[p,g]),v=l.trim().length>0&&p.trim().length>0&&!h;return(0,a.jsx)("div",{onClick:o,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:R,fontSize:9,color:C,letterSpacing:"0.16em",marginBottom:4},children:"SAVE AS WORKFLOW"}),(0,a.jsx)("div",{style:{fontFamily:z,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:E},children:["Lives in the ",n," agent'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:l,onChange:e=>s(e.target.value),autoFocus:!0,onKeyDown:e=>{(e.metaKey||e.ctrlKey)&&"Enter"===e.key&&v&&(e.preventDefault(),b())},style:q})}),(0,a.jsx)(K,{label:"Description",children:(0,a.jsx)("input",{value:d,onChange:e=>c(e.target.value),style:q})}),(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:{...q,resize:"vertical",minHeight:110,fontFamily:E,fontSize:13,lineHeight:1.55}})}),g.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:R,fontSize:9,color:C,letterSpacing:"0.14em",textTransform:"uppercase",marginBottom:2},children:["Detected variables \xb7 ",x," of ",g.length," accepted"]}),(0,a.jsxs)("div",{style:{fontSize:11,color:"var(--ink-5)",fontFamily:E,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:R,fontSize:9,letterSpacing:"0.1em",cursor:"pointer",textTransform:"uppercase"},children:"↻ rescan"})]}),(0,a.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:g.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?C: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:C,cursor:"pointer",flexShrink:0}}),(0,a.jsx)("span",{style:{fontFamily:E,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:R,fontSize:11},children:"→"}),(0,a.jsx)("span",{style:{fontFamily:R,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:H(a)||e.suggestedName}:e))},disabled:!e.accepted,style:{flex:1,minWidth:80,background:"transparent",border:"none",borderBottom:"1px dashed ".concat(T),fontFamily:R,fontSize:12,color:e.accepted?C:"var(--ink-6)",outline:"none",padding:"2px 0"}}),(0,a.jsx)("span",{style:{fontFamily:R,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:R,fontSize:9,color:"var(--ink-5)",letterSpacing:"0.14em",textTransform:"uppercase",marginBottom:6},children:"Will save as"}),(0,a.jsx)("pre",{style:{fontFamily:'"JetBrains Mono", monospace',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:R,letterSpacing:"0.08em"},children:["Tip: wrap variables manually with ",(0,a.jsx)("span",{style:{color:C},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:o,style:{padding:"6px 14px",border:"1px solid ".concat(T),background:"transparent",color:"var(--ink-4)",borderRadius:3,fontFamily:R,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(C),background:v?C:"var(--paper-2)",color:v?"#000":"var(--ink-6)",borderRadius:3,fontFamily:R,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){m(!0);try{let{template:e,inputs:t}=J(p,g);await r({name:l.trim(),description:d.trim(),promptTemplate:e,inputs:t})}finally{m(!1)}}}}let q={width:"100%",padding:"9px 12px",background:"var(--paper-2)",border:"1px solid ".concat(T),borderRadius:3,color:"var(--ink)",fontFamily:E,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:R,fontSize:9,color:"var(--ink-5)",letterSpacing:"0.14em",textTransform:"uppercase"},children:t}),n]})}function Y(e){var t;let{onClose:n}=e,{refresh:o}=j(),[r,l]=(0,i.useState)(0),[s,d]=(0,i.useState)(""),[c,u]=(0,i.useState)(!1),[m,x]=(0,i.useState)(null),[y,v]=(0,i.useState)(""),[b,k]=(0,i.useState)({}),[S,w]=(0,i.useState)([]),[B,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 o(),!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}),g()&&l(1))}catch(e){}})(),()=>{e=!0}},[]),(0,i.useEffect)(()=>{let e=!1;return g()?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]),L=()=>l(e=>Math.min(e+1,4)),O=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:B,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:R,fontSize:9,color:C,letterSpacing:"0.16em",marginBottom:4},children:"WELCOME TO LEEDAB"}),(0,a.jsxs)("div",{style:{fontFamily:z,fontSize:26,fontWeight:500,color:"var(--ink)",letterSpacing:"-0.01em"},children:[0===r&&"Got a license key?",1===r&&"Three quick questions, then you're in.",2===r&&"Where do messages come from?",3===r&&"What should agents handle?",4===r&&"How many of you?"]})]}),(0,a.jsxs)("div",{style:{flex:1,overflowY:"auto",padding:"20px 22px"},children:[0===r&&(0,a.jsxs)("div",{style:{fontSize:13,color:"var(--ink-3)",lineHeight:1.6,fontFamily:E},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:C,textDecoration:"underline"},children:"Request access"}),"."]}),c?(0,a.jsx)("div",{style:{marginBottom:14,padding:"8px 12px",border:"1px solid ".concat(C,"44"),background:"".concat(C,"0a"),borderRadius:3,fontSize:11,color:C,fontFamily:R,letterSpacing:"0.04em"},children:"✓ Admin token auto-loaded from ~/.leedab/admin-token"}):(0,a.jsxs)(a.Fragment,{children:[m&&(0,a.jsx)("div",{style:{marginBottom:10,padding:"8px 12px",border:"1px solid ".concat(F),background:"var(--paper-2)",borderRadius:3,fontSize:11,color:"var(--ink-3)",fontFamily:E},children:m}),(0,a.jsx)("div",{style:{fontSize:10,color:C,fontFamily:R,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:R,fontSize:13,borderRadius:3,outline:"none",letterSpacing:"0.04em",marginBottom:12}})]}),(0,a.jsx)("div",{style:{fontSize:10,color:C,fontFamily:R,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:R,fontSize:13,borderRadius:3,outline:"none",letterSpacing:"0.04em"}}),b.error&&(0,a.jsx)("div",{style:{marginTop:10,fontSize:12,color:"#a52a1a",fontFamily:E},children:b.error}),b.tier&&(0,a.jsxs)("div",{style:{marginTop:10,fontSize:12,color:C,fontFamily:E},children:["✓ Unlocked ",(0,a.jsx)("strong",{children:b.tier}),b.orgName?" for ".concat(b.orgName):"","."]})]}),1===r&&(0,a.jsxs)("div",{style:{fontSize:13,color:"var(--ink-3)",lineHeight:1.6,fontFamily:E},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:C},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:C},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:C},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===r&&(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{style:{fontSize:12,color:"var(--ink-4)",marginBottom:12,fontFamily:E},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(C,"1a"):"var(--paper-2)",border:"1px solid ".concat(t?C:T),color:t?C:"var(--ink-3)",borderRadius:3,cursor:"pointer",fontFamily:R,fontSize:11,letterSpacing:"0.06em"},children:e},e)})})]}),3===r&&(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{style:{fontSize:12,color:"var(--ink-4)",marginBottom:12,fontFamily:E},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=B.includes(e);return(0,a.jsxs)("button",{onClick:()=>W(B,M,e),style:{padding:"10px 14px",textAlign:"left",background:t?"".concat(C,"10"):"var(--paper-2)",border:"1px solid ".concat(t?C:T),color:t?C:"var(--ink-3)",borderRadius:3,cursor:"pointer",fontFamily:E,fontSize:13,display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,a.jsx)("span",{children:e}),t&&(0,a.jsx)("span",{style:{color:C,fontFamily:R,fontSize:12},children:"✓"})]},e)})})]}),4===r&&(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{style:{fontSize:12,color:"var(--ink-4)",marginBottom:12,fontFamily:E},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(C,"1a"):"var(--paper-2)",border:"1px solid ".concat(t?C:T),color:t?C:"var(--ink-3)",borderRadius:3,cursor:"pointer",fontFamily:R,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(F),borderRadius:3,fontSize:12,color:"var(--ink-3)",fontFamily:E,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:R,fontSize:9,color:"var(--ink-6)",letterSpacing:"0.12em"},children:["STEP ",r+1," OF 5"]}),(0,a.jsxs)("div",{style:{marginLeft:"auto",display:"flex",gap:8},children:[r>0&&(0,a.jsx)("button",{onClick:()=>l(e=>Math.max(e-1,0)),style:{padding:"6px 12px",border:"1px solid ".concat(T),background:"transparent",color:"var(--ink-4)",borderRadius:3,fontFamily:R,fontSize:11,letterSpacing:"0.08em",cursor:"pointer",textTransform:"uppercase"},children:"Back"}),r>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:R,fontSize:11,letterSpacing:"0.08em",cursor:"pointer",textTransform:"uppercase"},children:"Skip"}),r<4?(0,a.jsx)("button",{onClick:async()=>{if(0===r&&!b.tier)return void await D();if(0===r&&b.tier&&!g()){let e=s.trim();return e?(h(e),k({tier:b.tier,orgName:b.orgName}),void L()):void k({...b,error:"Admin token required. Run `leedab start` to auto-generate it, or paste it from ~/.leedab/admin-token."})}L()},disabled:!!(b.loading||0===r&&!b.tier&&(!y.trim()||!s.trim())||0===r&&b.tier&&!g()&&!s.trim()),style:{padding:"6px 14px",border:"1px solid ".concat(C),background:C,color:"#000",borderRadius:3,fontFamily:R,fontSize:11,letterSpacing:"0.08em",cursor:b.loading?"wait":"pointer",textTransform:"uppercase",opacity:!b.loading&&(0!==r||b.tier||y.trim()&&s.trim())&&(0!==r||!b.tier||g()||s.trim())?1:.4},children:0!==r||b.tier?"Next →":"Validate →"}):(0,a.jsx)("button",{onClick:async()=>{await O(),n()},style:{padding:"6px 14px",border:"1px solid ".concat(C),background:C,color:"#000",borderRadius:3,fontFamily:R,fontSize:11,letterSpacing:"0.08em",cursor:"pointer",textTransform:"uppercase"},children:"Finish →"})]})]})]})})}function V(e){let{notifs:t,onMarkAllRead:n,onClose:i}=e,o={success:C,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:'"JetBrains Mono", monospace',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:'"JetBrains Mono", monospace',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:'"JetBrains Mono", monospace',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(F),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:o[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:'"JetBrains Mono", monospace',fontSize:9,color:o[e.level],letterSpacing:"0.08em"},children:I[e.agent]}),(0,a.jsx)("span",{style:{fontFamily:'"JetBrains Mono", monospace',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:'"Inter", sans-serif',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:o,onClose:r}=e,l=null!=(t=o[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:'"JetBrains Mono", monospace',fontSize:10,color:C,letterSpacing:"0.1em",marginBottom:2},children:A[i]}),(0,a.jsx)("div",{style:{fontFamily:'"JetBrains Mono", monospace',fontSize:14,fontWeight:700,color:"var(--ink)"},children:I[i]})]}),(0,a.jsx)("button",{onClick:r,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(F)},children:[(0,a.jsx)("div",{style:{fontFamily:'"JetBrains Mono", monospace',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:'"Inter", sans-serif',lineHeight:1.6},children:n.description})]}),(0,a.jsxs)("div",{style:{padding:"16px 20px",borderBottom:"1px solid ".concat(F)},children:[(0,a.jsx)("div",{style:{fontFamily:'"JetBrains Mono", monospace',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]?C:"var(--ink-5)",boxShadow:"active"===D[i]?"0 0 8px ".concat(C):"none",display:"inline-block"}}),(0,a.jsx)("span",{style:{fontFamily:'"JetBrains Mono", monospace',fontSize:10,color:"active"===D[i]?C:"var(--ink-5)"},children:D[i].toUpperCase()})]}),(0,a.jsxs)("div",{style:{fontFamily:'"JetBrains Mono", monospace',fontSize:10,color:"var(--ink-6)"},children:[l.length," messages \xb7 ",l.filter(e=>"user"===e.role).length," exchanges"]})]}),(0,a.jsxs)("div",{style:{padding:"16px 20px",borderBottom:"1px solid ".concat(F)},children:[(0,a.jsx)("div",{style:{fontFamily:'"JetBrains Mono", monospace',fontSize:9,color:"var(--ink-6)",letterSpacing:"0.12em",marginBottom:8},children:"DEFAULT MODEL"}),(0,a.jsx)("div",{style:{fontFamily:'"JetBrains Mono", monospace',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(F)},children:[(0,a.jsx)("div",{style:{fontFamily:'"JetBrains Mono", monospace',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(F)},children:[(0,a.jsx)("span",{style:{fontSize:11,color:"var(--ink-4)",fontFamily:'"Inter", sans-serif',overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},children:e.name}),(0,a.jsx)("span",{style:{fontFamily:'"JetBrains Mono", monospace',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:'"JetBrains Mono", monospace',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:'"Inter", sans-serif'},children:["→ ",e]},t))})]})]})}function $(e){var t,n;let{onChannelClick:o}=e,[r,l]=(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||(l(t),d(!1))}).catch(()=>{e||d(!1)})}t();let n=setInterval(t,15e3);return()=>{e=!0,clearInterval(n)}},[]);let c=null!=(t=null==r?void 0:r.ok)&&t,p=(null!=(n=null==r?void 0:r.channels)?n:[]).filter(e=>e.enabled);return(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:0,padding:"0 28px",height:32,borderBottom:"1px solid ".concat(F),background:w,flexShrink:0,overflowX:"auto"},children:[(0,a.jsx)("span",{style:{fontFamily:'"JetBrains Mono", monospace',fontSize:9,color:"var(--ink-6)",letterSpacing:"0.12em",marginRight:16,whiteSpace:"nowrap"},children:"CHANNELS"}),(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"0 12px",borderLeft:"1px solid ".concat(F),borderRight:"1px solid ".concat(F),height:"100%"},children:[(0,a.jsx)("span",{style:{width:6,height:6,borderRadius:"50%",background:s?"var(--hair)":c?C:"#a52a1a",boxShadow:c?"0 0 6px ".concat(C,"88"):"none",display:"inline-block",flexShrink:0}}),(0,a.jsx)("span",{style:{fontFamily:'"JetBrains Mono", monospace',fontSize:9,color:c?"var(--ink-4)":"#a52a1a",letterSpacing:"0.08em",whiteSpace:"nowrap"},children:s?"...":c?"LIVE":"OFFLINE"})]}),p.map(e=>{let t=!0===e.connected,n=!c,i="#a52a1a",r=c&&t?C:"transparent",l=n?"1px solid var(--hair)":t?"1px solid ".concat(C):"1px solid ".concat(i),s=c&&t?"0 0 6px ".concat(C,"88"):"none",d=c&&t?"var(--ink-4)":n?"var(--ink-6)":i;return(0,a.jsxs)(o?"button":"div",{onClick:o?()=>o(e.name):void 0,title:o?"Manage ".concat(e.name).concat(c&&!t?" — not connected":""):void 0,style:{display:"flex",alignItems:"center",gap:6,padding:"0 12px",borderTop:"none",borderBottom:"none",borderLeft:"none",borderRight:"1px solid ".concat(F),height:"100%",background:"transparent",color:"inherit",cursor:o?"pointer":"default",fontFamily:"inherit"},children:[(0,a.jsx)("span",{style:{width:6,height:6,borderRadius:"50%",background:r,border:l,boxSizing:"border-box",boxShadow:s,display:"inline-block",flexShrink:0}}),(0,a.jsx)("span",{style:{fontFamily:'"JetBrains Mono", monospace',fontSize:9,color:d,letterSpacing:"0.08em",whiteSpace:"nowrap",textTransform:"uppercase",opacity:c&&!t?.85:1},children:e.name})]},e.name)}),(0,a.jsxs)("div",{style:{marginLeft:"auto",fontFamily:'"JetBrains Mono", monospace',fontSize:9,color:"var(--ink-6)",letterSpacing:"0.1em",whiteSpace:"nowrap"},children:[p.length," CHANNEL",1===p.length?"":"S"]})]})}function X(e){var t,n;let{query:o,onQueryChange:s,inputRef:d,conversations:c,onSelectAgent:p,onSelectView:u,onClose:h}=e,[m,g]=(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,o,r]=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=o.approvals)?n:[]),k(null!=(a=r.runs)?a:[])}catch(e){}}(),()=>{e=!0}},[]);let S=o.toLowerCase().trim(),w=e=>!S||(null!=e?e:"").toLowerCase().includes(S),{pack:B}=j(),M=null!=(t=null==B?void 0:B.agentOrder)?t:l,E=null!=(n=null==B?void 0:B.agents)?n:r,z=M.filter(e=>{let t=E[e];return w(I[e])||w(null==t?void 0:t.name)||w(null==t?void 0:t.tagline)}),W=[{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):[],O=S?y.filter(e=>w(e.title)||w(e.body)||w(e.agentId)||w(e.meta.to)).slice(0,8):[],N=S?b.filter(e=>w(e.agentId)||w(e.triggerType)||w(e.status)).slice(0,8):[],P=W.length+z.length+L.length+O.length+N.length;(0,i.useEffect)(()=>{g(0)},[o]);let H={views:0,agents:W.length,inbox:W.length+z.length,approvals:W.length+z.length+L.length,runs:W.length+z.length+L.length+O.length},J=e=>{try{let t=new URL(window.location.href);t.searchParams.set("id",e),window.history.replaceState({},"",t.toString())}catch(e){}},U=e=>{if(e<H.agents)return void u(W[e].view);if(e<H.inbox)return void p(z[e-H.agents]);if(e<H.approvals){let t=L[e-H.inbox];t&&J(t.id),u("inbox");return}if(e<H.runs){let t=O[e-H.approvals];t&&J(t.id),u("approvals");return}let t=N[e-H.runs];t&&J(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:o,onChange:e=>s(e.target.value),onKeyDown:e=>{"ArrowDown"===e.key&&(e.preventDefault(),g(e=>Math.min(e+1,P-1))),"ArrowUp"===e.key&&(e.preventDefault(),g(e=>Math.max(e-1,0))),"Enter"===e.key&&U(m)},placeholder:"Search agents, views, actions…",style:{flex:1,background:"transparent",border:"none",outline:"none",fontSize:14,color:"var(--ink)",fontFamily:'"Inter", sans-serif'}}),(0,a.jsx)("span",{style:{fontFamily:'"JetBrains Mono", monospace',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:[W.length>0&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{style:{padding:"8px 16px 4px",fontFamily:'"JetBrains Mono", monospace',fontSize:9,color:"var(--ink-6)",letterSpacing:"0.12em"},children:"VIEWS"}),W.map((e,t)=>{let{label:n,sub:i,view:o}=e;return(0,a.jsxs)("div",{onClick:()=>u(o),style:{display:"flex",alignItems:"center",gap:12,padding:"10px 16px",cursor:"pointer",background:m===t?"".concat(C,"0a"):"transparent",borderLeft:"2px solid ".concat(m===t?C:"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"===o?"⊞":"\xb7"})}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{style:{fontSize:13,color:"var(--ink)",fontFamily:'"Inter", sans-serif'},children:n}),(0,a.jsx)("div",{style:{fontSize:11,color:"var(--ink-5)"},children:i})]})]},o)})]}),z.length>0&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{style:{padding:"8px 16px 4px",fontFamily:'"JetBrains Mono", monospace',fontSize:9,color:"var(--ink-6)",letterSpacing:"0.12em"},children:"OPERATORS"}),z.map((e,t)=>{var n,i,o,r;let l=W.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:m===l?"".concat(C,"0a"):"transparent",borderLeft:"2px solid ".concat(m===l?C:"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:'"JetBrains Mono", monospace',fontSize:8,fontWeight:700,color:"active"===D[e]?C:"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]?C:"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:'"Inter", sans-serif'},children:null==(i=E[e])?void 0:i.name}),(0,a.jsx)("span",{style:{fontSize:9,color:"var(--ink-6)",fontFamily:'"JetBrains Mono", monospace'},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!=(r=null==(o=E[e])?void 0:o.tagline)?r:""})]}),(0,a.jsx)("span",{style:{fontFamily:'"JetBrains Mono", monospace',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:'"JetBrains Mono", monospace',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:()=>U(n),style:{display:"flex",alignItems:"center",gap:12,padding:"10px 16px",cursor:"pointer",background:m===n?"".concat(C,"0a"):"transparent",borderLeft:"2px solid ".concat(m===n?C:"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:R,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:'"Inter", sans-serif'},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:R,fontSize:9,color:C,whiteSpace:"nowrap"},children:["→ ",e.agentId]})]},e.id)})]}),O.length>0&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{style:{padding:"8px 16px 4px",fontFamily:'"JetBrains Mono", monospace',fontSize:9,color:"var(--ink-6)",letterSpacing:"0.12em"},children:"APPROVALS"}),O.map((e,t)=>{let n=H.approvals+t;return(0,a.jsxs)("div",{onClick:()=>U(n),style:{display:"flex",alignItems:"center",gap:12,padding:"10px 16px",cursor:"pointer",background:m===n?"".concat(C,"0a"):"transparent",borderLeft:"2px solid ".concat(m===n?C:"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:'"Inter", sans-serif',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)})]}),N.length>0&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{style:{padding:"8px 16px 4px",fontFamily:'"JetBrains Mono", monospace',fontSize:9,color:"var(--ink-6)",letterSpacing:"0.12em"},children:"RUNS"}),N.map((e,t)=>{let n=H.runs+t;return(0,a.jsxs)("div",{onClick:()=>U(n),style:{display:"flex",alignItems:"center",gap:12,padding:"10px 16px",cursor:"pointer",background:m===n?"".concat(C,"0a"):"transparent",borderLeft:"2px solid ".concat(m===n?C:"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:'"Inter", sans-serif'},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===P&&(0,a.jsxs)("div",{style:{padding:"32px 16px",textAlign:"center",fontFamily:'"JetBrains Mono", monospace',fontSize:11,color:"var(--ink-6)"},children:['No results for "',o,'"']})]}),(0,a.jsxs)("div",{style:{padding:"8px 16px",borderTop:"1px solid ".concat(F),display:"flex",gap:16,fontFamily:'"JetBrains Mono", monospace',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,[o,r]=(0,i.useState)(!1),l=(0,i.useRef)(null);return(0,i.useEffect)(()=>{if(!o)return;let e=e=>{l.current&&!l.current.contains(e.target)&&r(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[o]),(0,a.jsxs)("div",{ref:l,style:{position:"relative"},children:[(0,a.jsx)("button",{onClick:()=>!t&&r(e=>!e),disabled:t,style:{fontFamily:'"JetBrains Mono", monospace',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 ↗"}),o&&(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:o}=e;return(0,a.jsxs)("button",{onClick:()=>{n(t),r(!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:'"JetBrains Mono", monospace',fontSize:9,color:C,letterSpacing:"0.06em",width:36},children:i}),(0,a.jsx)("span",{style:{fontFamily:'"Inter", sans-serif',fontSize:11,color:"var(--ink-5)"},children:o})]},t)})})]})}function Z(e){let{label:t,active:n,disabled:i,onClick:o}=e;return(0,a.jsx)("button",{onClick:o,disabled:i,style:{fontFamily:'"JetBrains Mono", monospace',fontSize:10,letterSpacing:"0.08em",padding:"5px 10px",border:"1px solid ".concat(n?C:T),background:n?"".concat(B):"transparent",color:n?C:"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:'"JetBrains Mono", monospace',fontSize:9,padding:"3px 8px",border:"1px solid ".concat(n?C:T),background:n?"".concat(B):"transparent",color:n?C:"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;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:'"JetBrains Mono", monospace'},children:n.map(e=>(0,a.jsx)("option",{value:e,children:e.replace("claude-","").replace("-20251001","").toUpperCase()},e))}),(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:o,tagline:r,onChipClick:l,customQuickStart:s}=e,d=s&&s.length>0?s:null!=(t=L[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:'"JetBrains Mono", monospace',fontSize:9,color:"var(--ink-6)",letterSpacing:"0.12em",marginBottom:8},children:o}),(0,a.jsx)("div",{style:{fontFamily:'"JetBrains Mono", monospace',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:r}),(0,a.jsxs)("div",{style:{maxWidth:480,margin:"0 auto",textAlign:"left"},children:[(0,a.jsx)("div",{style:{fontFamily:'"JetBrains Mono", monospace',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:()=>l(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=C,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 eo(e){let{message:t,agentCode:n,onRunTemplate:r,conversationContext:l}=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(C,"44"),display:"flex",alignItems:"center",justifyContent:"center"},children:(0,a.jsx)("span",{style:{fontFamily:'"JetBrains Mono", monospace',fontSize:7,color:C,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(C,"22")},children:[(0,a.jsx)("pre",{style:{fontFamily:'"Inter", sans-serif',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:'"JetBrains Mono", monospace',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:'"JetBrains Mono", monospace',fontSize:7,color:C,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)(o.oz,{children:t.content||""})})}),t.content&&(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:6,fontFamily:'"JetBrains Mono", monospace'},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&&r&&(0,a.jsx)("div",{style:{marginTop:8,display:"flex",flexWrap:"wrap",gap:6},children:c.map(e=>(0,a.jsxs)("button",{onClick:()=>r(e.id,null!=l?l:t.content),style:{fontFamily:'"JetBrains Mono", monospace',fontSize:9,letterSpacing:"0.08em",textTransform:"uppercase",padding:"5px 10px",border:"1px solid ".concat(C),background:"".concat(C,"1a"),color:C,borderRadius:2,cursor:"pointer"},children:['↳ Run "',e.name,'"']},e.id))})]})]}):null}let er=(0,i.forwardRef)(function(e,t){let{value:n,onChange:o,onSubmit:r,onVoice:l,onBroadcast:s,onAttach:d,hasAttachments:c,disabled:p,isListening:u,broadcastMode:h,agentName:m}=e,g=(0,i.useRef)(null),f=h?C: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:g,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:'"JetBrains Mono", monospace',fontSize:11,color:"var(--ink-6)",pointerEvents:"none",zIndex:1},children:"→"}),(0,a.jsx)("button",{onClick:l,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=g.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=>o(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),r())},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(m.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:'"Inter", sans-serif',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?C:S,border:"1px solid ".concat(h?C: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:r,disabled:!x,style:{padding:"7px 12px",borderRadius:3,background:x?C:"var(--paper-input)",border:"1px solid ".concat(x?C:T),color:x?"#000":"var(--ink-6)",fontFamily:'"JetBrains Mono", monospace',fontSize:10,letterSpacing:"0.08em",cursor:x?"pointer":"not-allowed",transition:"all 0.15s",whiteSpace:"nowrap",flexShrink:0},children:"SEND →"})]})]})});function el(e){var t,n;let{selectedAgent:o,chatOpen:l,conversations:d,onSelectAgent:c}=e,{pack:p}=j(),u=null!=(t=null==p?void 0:p.agentTeams)?t:s,h=null!=(n=null==p?void 0:p.agents)?n:r,[m,g]=(0,i.useState)(new Set),[f,x]=(0,i.useState)(""),y=(0,i.useRef)(null),[v,b]=(0,i.useState)({});(0,i.useEffect)(()=>{let e=e=>{let t=["TEXTAREA","INPUT"].includes(e.target.tagName);"/"!==e.key||t||!y.current||l||(e.preventDefault(),y.current.focus())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[l]);let k=e=>{var t,n;if(!f.trim())return!0;let a=f.toLowerCase(),i=h[e];return I[e].toLowerCase().includes(a)||null!=(t=null==i?void 0:i.name.toLowerCase().includes(a))&&t||null!=(n=null==i?void 0:i.tagline.toLowerCase().includes(a))&&n};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||b(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),overflowY:"auto",background:S,display:"flex",flexDirection:"column"},children:[(0,a.jsxs)("div",{style:{padding:"8px 10px",borderBottom:"1px solid ".concat(F),flexShrink:0},children:[(0,a.jsx)("div",{style:{fontFamily:'"JetBrains Mono", monospace',fontSize:9,color:"var(--ink-6)",letterSpacing:"0.14em",marginBottom:6},children:"OPERATORS"}),(0,a.jsx)("input",{ref:y,value:f,onChange:e=>x(e.target.value),onKeyDown:e=>{"Escape"===e.key&&(x(""),e.currentTarget.blur())},placeholder:"filter… ( / )",style:{width:"100%",padding:"4px 8px",background:"var(--paper-input)",border:"1px solid ".concat(F),borderRadius:2,color:"var(--ink)",fontFamily:'"JetBrains Mono", monospace',fontSize:10,outline:"none"}})]}),u.map((e,t)=>{let{label:n,ids:i,color:r}=e,s=i.filter(k);if(0===s.length)return null;let p=!m.has(n),u=i.filter(e=>{var t,n;return(null!=(n=null==(t=v[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(F),background:"linear-gradient(90deg, ".concat(r,"0a 0%, transparent 60%)")},children:[(0,a.jsxs)("button",{onClick:()=>g(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(r),cursor:"pointer",textAlign:"left",transition:"background 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="".concat(r,"14")},onMouseLeave:e=>{e.currentTarget.style.background="transparent"},children:[(0,a.jsx)("span",{style:{fontFamily:'"JetBrains Mono", monospace',fontSize:9,color:r,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:'"JetBrains Mono", monospace',fontSize:10,fontWeight:600,color:r,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:r,boxShadow:"0 0 5px ".concat(r,"aa"),flexShrink:0}}),(0,a.jsx)("span",{style:{fontFamily:'"JetBrains Mono", monospace',fontSize:8,color:r,opacity:.7,padding:"1px 6px",border:"1px solid ".concat(r,"55"),borderRadius:2,lineHeight:1.4,flexShrink:0},children:i.length})]}),p&&s.map(e=>{var t,n,i;let s=h[e];if(!s)return null;let p=null!=(n=null==(t=d[e])?void 0:t.length)?n:0,u=e===o&&l,m=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:u?"".concat(r,"1c"):"transparent",borderTop:"none",borderRight:"none",borderBottom:"none",borderLeft:"2px solid ".concat(u?r:"transparent"),cursor:"pointer",textAlign:"left",transition:"background 0.1s"},onMouseEnter:e=>{u||(e.currentTarget.style.background="".concat(r,"10"))},onMouseLeave:e=>{u||(e.currentTarget.style.background="transparent")},children:[(0,a.jsx)("span",{style:{width:5,height:5,borderRadius:"50%",flexShrink:0,background:"active"===m?r:"var(--ink-7)",boxShadow:"active"===m?"0 0 4px ".concat(r,"88"):"none"}}),(0,a.jsx)("span",{style:{fontFamily:'"JetBrains Mono", ui-monospace, Menlo, monospace',fontSize:8,color:u?r:"var(--ink-5)",flex:"0 0 26px",letterSpacing:"0.04em",fontVariantNumeric:"tabular-nums",textAlign:"left"},children:I[e]}),(0,a.jsx)("span",{title:"".concat(s.name," — ").concat(s.tagline),style:{fontSize:11,fontFamily:'"Inter", sans-serif',color:u?"var(--ink)":"var(--ink-3)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontWeight:u?500:400},children:s.name}),(0,a.jsx)(es,{buckets:null!=(i=v[e])?i:[],accent:r}),p>0&&(0,a.jsx)("span",{style:{background:r,color:"var(--paper)",borderRadius:8,fontSize:9,lineHeight:1,padding:"2px 6px",fontFamily:'"JetBrains Mono", monospace',fontWeight:600,flexShrink:0,minWidth:16,textAlign:"center"},children:p})]},e)})]},n)})]})}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:C,o=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 r;let l=null!=(r=t[n])?r:0,s=0===l?1:Math.max(1,Math.round(l/o*12));return(0,a.jsx)("rect",{x:3*n,y:14-s,width:2.5,height:s,fill:0===l?"var(--ink-7)":i,opacity:0===l?.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,o,l;let{selectedAgent:d,chatOpen:c,conversations:p,onSelectAgent:u,broadcastTargets:h=[]}=e,[m,g]=(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||g(i)}catch(e){}}t();let n=setInterval(t,3e4);return()=>{e=!0,clearInterval(n)}},[]);let{pack:f}=j(),x=null!=(t=null==f?void 0:f.agentTeams)?t:s,y=null!=(n=null==f?void 0:f.agents)?n:r,v=null!=(o=null==f?void 0:f.customer)?o:null,b=null!=(l=null==v?void 0:v.clientId)?l:null,[k,S]=(0,i.useState)(null);(0,i.useEffect)(()=>{if(!b)return void S(null);S(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}}(b))},[b]);let w=(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 o=[];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)&&(o.push(e),a.add(e));for(let t of e.labels)a.has(t)||(o.push(t),a.add(t))}return o.map(e=>n.get(e))})(x,k),[x,k]),T=w.length,F=w.reduce((e,t)=>e+t.ids.length,0),[B,M]=(0,i.useState)(!1),E=(0,ec.FR)((0,ec.MS)(ec.AN,{activationConstraint:{distance:5}}),(0,ec.MS)(ec.uN,{coordinateGetter:ep.JR})),I=e=>{let{active:t,over:n}=e;if(!n||!b)return;let a=String(t.id),i=String(n.id);if(a===i)return;let o=function(e,t,n){var a,i;if(t===n)return e;let o=e.findIndex(e=>e.label===t),r=e.findIndex(e=>e.label===n);if(o<0||r<0||(null!=(a=e[o].group)?a:null)!==(null!=(i=e[r].group)?i:null))return e;let l=e.slice(),[s]=l.splice(o,1);return l.splice(r,0,s),l}(w,a,i);if(o===w)return;let r={teamOrder:o.map(e=>e.label),updatedAt:Date.now()};S(r);try{window.localStorage.setItem(ed(b),JSON.stringify(r))}catch(e){}},A=(e,t)=>{var n,a;return{id:e,agent:y[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})}}},D=F<=10?88:F<=14?80:F<=24?72:F<=40?64:56,W=w.reduce((e,t)=>e+t.ids.filter(e=>m.has(e)).length,0),L=F<=10?360:F<=18?320:300;return(0,a.jsx)("div",{style:{flex:1,overflow:"auto",background:"radial-gradient(ellipse 70% 40% at 50% 0%, ".concat(C,"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:R,fontSize:10,color:C,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:z,fontStyle:"italic",fontSize:38,fontWeight:500,color:"var(--ink)",letterSpacing:"-0.025em",lineHeight:.95},children:["The ",(0,a.jsx)("span",{style:{color:C},children:"workforce"}),"."]}),v&&(0,a.jsxs)("div",{style:{fontFamily:R,fontSize:10,color:"var(--ink-4)",letterSpacing:"0.16em",textTransform:"uppercase"},children:[(0,a.jsx)("span",{style:{color:"var(--ink-2)"},children:v.displayName}),v.industry?(0,a.jsxs)("span",{children:[" \xb7 ",v.industry]}):null,v.tier?(0,a.jsxs)("span",{children:[" \xb7 ",v.tier]}):null]})]}),(0,a.jsxs)("div",{style:{fontFamily:R,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:z,fontWeight:500,letterSpacing:"-0.01em",marginRight:4},children:F})," agents \xb7 ",T," teams"]}),W>0&&(0,a.jsxs)("span",{style:{color:C},children:["● ",W," active last hour"]}),b&&(0,a.jsxs)("span",{style:{display:"flex",gap:6,marginTop:4},children:[(0,a.jsx)("button",{type:"button",onClick:()=>M(e=>!e),title:B?"Exit layout edit mode":"Drag team cards to rearrange",style:{fontFamily:R,fontSize:9,letterSpacing:"0.14em",textTransform:"uppercase",padding:"4px 10px",borderRadius:3,border:"1px solid ".concat(B?C:"var(--ink-7)"),background:B?"".concat(C,"14"):"transparent",color:B?C:"var(--ink-4)",cursor:"pointer",transition:"all 0.18s"},children:B?"Done":"Edit layout"}),B&&k&&(0,a.jsx)("button",{type:"button",onClick:()=>{if(b){try{window.localStorage.removeItem(ed(b))}catch(e){}S(null),M(!1)}},title:"Restore default team order",style:{fontFamily:R,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 w){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:E,collisionDetection:ec.fp,onDragEnd:I,children:e.map((e,t)=>(0,a.jsxs)("div",{children:[e.group&&(0,a.jsxs)("div",{style:{fontFamily:R,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:C,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(L,"px, 1fr))"),gap:20},children:e.teams.map(e=>{let t=n++;return(0,a.jsx)(em,{team:e,teamIndex:t,orbSize:D,agentMap:y,recentIds:m,orbProps:A,editMode:B},e.label)})})})]},"group-".concat(t)))})})()]})})}function em(e){var t;let{team:n,teamIndex:i,orbSize:o,agentMap:r,recentIds:l,orbProps:s,editMode:d}=e,{label:c,ids:p,color:u}=n,h=u||(null==(t=r[p[0]])?void 0:t.accent)||C,m=p.some(e=>l.has(e)),{attributes:g,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?g:{},...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:R,fontSize:11,fontWeight:700,color:h,letterSpacing:"0.16em"},children:c}),m&&(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:R,fontSize:9,color:h,padding:"2px 8px",border:"1px solid ".concat(h,"55"),borderRadius:999,lineHeight:1.5,letterSpacing:"0.06em"},children:[p.length," \xb7 ",1===p.length?"agent":"agents"]})]}),(0,a.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"26px 22px",justifyContent:"flex-start",alignItems:"flex-start",paddingTop:4,pointerEvents:d?"none":"auto"},children:p.map((e,t)=>{let[n,r]=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*r,"px)")},children:(0,a.jsx)(eg,{...s(e,-(1.2*i+.3*t)),orbSize:o})},e)})})]})}function eg(e){var t;let{id:n,agent:o,isOpen:r,isInBroadcast:l=!1,hasMessages:s,ranRecently:d=!1,floatDelay:c,orbSize:p=80,onClick:u}=e,[h,m]=(0,i.useState)(!1),g=D[n],f=null!=(t=o.accent)?t:C,x=Math.round(.1375*p),y="#9aa37a",v=r?"radial-gradient(circle at 35% 28%, ".concat(f,"30 0%, ").concat(f,"14 35%, #ebe2d3 65%, #d8ccb8 100%)"):l?"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=r?"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)"):l?"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:()=>m(!0),onMouseLeave:()=>m(!1),style:{display:"flex",flexDirection:"column",alignItems:"center",gap:0,cursor:"pointer",transform:"scale(".concat(r?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:[r&&(0,a.jsx)("div",{style:{position:"absolute",inset:-12,borderRadius:"50%",background:"radial-gradient(ellipse, ".concat(f,"28 0%, transparent 70%)"),pointerEvents:"none"}}),"active"===g&&(0,a.jsx)("div",{className:"orb-pulse-ring",style:{position:"absolute",inset:-4,borderRadius:"50%",border:"1px solid ".concat(r?f+"44":f+"22"),pointerEvents:"none"}}),d&&!r&&(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:'"JetBrains Mono", monospace',fontSize:x,fontWeight:700,color:r?f:h?"var(--ink-3)":"var(--ink-5)",letterSpacing:"0.04em",textShadow:r?"0 0 12px ".concat(f,"55"):"none",position:"relative",zIndex:1,transition:"color 0.25s, text-shadow 0.25s"},children:I[n]})]}),(0,a.jsxs)("div",{style:{position:"absolute",bottom:1,right:1,display:"flex",alignItems:"center",gap:3},children:[s&&!r&&(0,a.jsx)("span",{style:{width:5,height:5,borderRadius:"50%",background:C,display:"inline-block",boxShadow:"0 0 6px ".concat(C)}}),(0,a.jsx)("span",{style:{width:8,height:8,borderRadius:"50%",display:"inline-block",background:"active"===g?C:"var(--ink-7)",boxShadow:"active"===g?"0 0 8px ".concat(C,"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:8,fontFamily:'"JetBrains Mono", monospace',fontSize:9,letterSpacing:"0.1em",textAlign:"center",color:r?"var(--ink-2)":h?"var(--ink-4)":"var(--ink-6)",transition:"color 0.2s",whiteSpace:"nowrap",textTransform:"uppercase"},children:o.name})]})}function ef(){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 ex(e){return{showAddAgent:e>=360,showSaveAsWorkflow:e>=480,showContext:e>=600,showExport:e>=760,showClear:e>=900}}function ey(e){let{index:t,weights:n,onResize:o,containerWidth:r}=e,[l,s]=(0,i.useState)(null),d=(0,i.useRef)(n);return d.current=n,(0,i.useEffect)(()=>{if(l)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}=l,s=e.clientX-n,c=a+i,p=d.current.reduce((e,t)=>e+t,0),u=p>0?c/p*r:0;if(u<=0)return;let h=s/u,m=a+h*c,g=i-h*c;m<.15*c&&(m=.15*c,g=c-m),g<.15*c&&(g=.15*c,m=c-g);let f=[...d.current];f[t]=m,f[t+1]=g,o(f)}function n(){s(null)}},[l,r,t,o]),(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=C},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 ev(e){var t,n,o;let{agentId:r,agent:l,agentCode:s,agentSection:d,messages:c,modelOverride:p,onModelChange:u,onMessagesUpdate:h,onClose:m,clientId:g}=e,[f,x]=(0,i.useState)(""),[y,v]=(0,i.useState)(!1),[b,k]=(0,i.useState)(null),S=(0,i.useRef)(null),w=(0,i.useRef)(null),{pack:F}=j(),{ref:B,width:M}=ef(),R=ex(M),E=null!=p?p:l.defaultModel;async function z(){let e=f.trim();if(!e||y)return;x("");let t={id:crypto.randomUUID(),role:"user",content:e,timestamp:Date.now()},n={id:crypto.randomUUID(),role:"assistant",content:"",timestamp:Date.now(),model:E},a=[...c,t,n];h(a),v(!0);try{let t=g?"/api/chat?client=".concat(encodeURIComponent(g)):"/api/chat",o=await fetch(t,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({agentId:r,model:E,messages:[...c.map(e=>({role:e.role,content:e.content})),{role:"user",content:e}]})});if(!o.ok||!o.body)throw Error(await o.text()||"HTTP ".concat(o.status));let l=o.body.getReader(),s=new TextDecoder,d="",p="";for(;;){var i;let{value:e,done:t}=await l.read();if(t)break;let o=(d+=s.decode(e,{stream:!0})).split("\n\n");for(let e of(d=null!=(i=o.pop())?i:"",o))if(e.startsWith("data:"))try{let t=JSON.parse(e.slice(5).trim());if("tool_call"===t.type)k(t.tool);else if("text"===t.type){k(null),p+=t.value;let e=[...a.slice(0,-1),{...n,content:p}];h(e)}else if("error"===t.type){k(null);let e=[...a.slice(0,-1),{...n,content:"[Error] ".concat(t.value)}];h(e)}}catch(e){}}}catch(t){let e=t instanceof Error?t.message:"Unknown error";h([...a.slice(0,-1),{...n,content:"[Error] ".concat(e)}])}finally{v(!1),k(null)}}return(0,i.useEffect)(()=>{S.current&&(S.current.scrollTop=S.current.scrollHeight)},[c,y]),(0,a.jsxs)("div",{ref:B,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:'"JetBrains Mono", monospace',minWidth:0,flex:1},children:[(0,a.jsx)("span",{style:{fontSize:10,color:C,letterSpacing:"0.1em",flexShrink:0},children:d}),(0,a.jsx)("span",{style:{fontSize:12,fontWeight:700,color:"var(--ink)",letterSpacing:"0.06em",flexShrink:0},children:s}),M>=320&&(0,a.jsxs)("span",{style:{fontSize:13,color:"var(--ink-4)",fontFamily:'"Inter", sans-serif',overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:["/ ",l.name," agent"]})]}),(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexShrink:0},children:[R.showSaveAsWorkflow&&null,(0,a.jsx)(et,{value:E,options:l.availableModels,onChange:u}),(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:'"JetBrains Mono", monospace',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:S,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===c.length?(0,a.jsx)(en,{agentName:l.name,agentCode:s,agentSection:d,tagline:l.tagline,onChipClick:e=>{var t;x(e),null==(t=w.current)||t.focus()},customQuickStart:null==F||null==(n=F.customer)||null==(t=n.quickstartByAgent)?void 0:t[r]}):(0,a.jsxs)(a.Fragment,{children:[c.map((e,t)=>y&&t===c.length-1&&"assistant"===e.role&&""===e.content?null:(0,a.jsx)(eo,{message:e,agentCode:s,conversationContext:c.slice(-4).map(e=>e.content).join("\n\n")},e.id)),y&&(null==(o=c[c.length-1])?void 0:o.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:'"JetBrains Mono", monospace',fontSize:7,color:C,fontWeight:700},children:s})}),(0,a.jsx)("div",{style:{padding:"10px 14px",background:"var(--paper-input)",borderRadius:"0 4px 4px 4px",border:"1px solid ".concat(T)},children:b?(0,a.jsxs)("span",{style:{fontFamily:'"JetBrains Mono", monospace',fontSize:10,color:"var(--ink-5)",letterSpacing:"0.06em"},children:["⟳ ",b.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:C,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)(er,{ref:w,value:f,onChange:x,onSubmit:z,onVoice:()=>{},onBroadcast:()=>{},disabled:y,isListening:!1,broadcastMode:!1,agentName:l.name}),(0,a.jsxs)("div",{style:{marginTop:8,display:"flex",justifyContent:"space-between",fontFamily:'"JetBrains Mono", monospace',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:E.replace("claude-","").replace("-20251001","").toUpperCase()})]})]})]})}class eb 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:'"Inter", sans-serif',fontSize:13,gap:12,borderLeft:"1px solid ".concat(T)},children:[(0,a.jsx)("div",{style:{fontFamily:'"JetBrains Mono", monospace',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:'"Fraunces", serif',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:'"JetBrains Mono", monospace',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:'"JetBrains Mono", monospace',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 ej={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)"};function ek(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 eS(e){let{section:t,title:n,subtitle:i,actions:o}=e;return(0,a.jsxs)("div",{"data-mobile-flat-header":!0,style:{borderBottom:"1px solid ".concat(ej.BR2),padding:"20px 28px 18px",display:"grid",gridTemplateColumns:"200px 1fr auto",gap:20,alignItems:"start",flexShrink:0},children:[(0,a.jsx)("div",{style:{fontFamily:ej.FM,fontSize:12,color:ej.EM,letterSpacing:"0.14em"},children:t}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{style:{fontFamily:ej.FD,fontSize:32,fontWeight:500,letterSpacing:"-0.02em",color:ej.T1,lineHeight:1.05},children:n}),i&&(0,a.jsx)("div",{style:{marginTop:6,fontSize:13,color:ej.T3,fontFamily:ej.FB},children:i})]}),o&&(0,a.jsx)("div",{style:{display:"flex",gap:8,alignItems:"center"},children:o})]})}function ew(e){let{children:t,color:n,bg:i}=e;return(0,a.jsx)("span",{style:{display:"inline-block",padding:"2px 8px",fontFamily:ej.FM,fontSize:9,letterSpacing:"0.1em",textTransform:"uppercase",border:"1px solid ".concat(null!=n?n:ej.T4),color:null!=n?n:ej.T4,background:null!=i?i:"transparent",borderRadius:2,whiteSpace:"nowrap"},children:t})}function eT(e){let{children:t,onClick:n,variant:i="secondary",disabled:o,size:r="md"}=e,l={primary:{background:ej.EM,color:"#fff",borderColor:ej.EM},secondary:{background:"transparent",color:ej.T2,borderColor:ej.BR},danger:{background:"transparent",color:"#a52a1a",borderColor:"#a52a1a"},ghost:{background:"transparent",color:ej.T4,borderColor:"transparent"}};return(0,a.jsx)("button",{onClick:n,disabled:o,style:{...l[i],border:"1px solid ".concat(l[i].borderColor),padding:"sm"===r?"5px 10px":"8px 14px",fontFamily:ej.FM,fontSize:"sm"===r?10:11,letterSpacing:"0.12em",textTransform:"uppercase",borderRadius:2,cursor:o?"not-allowed":"pointer",opacity:o?.4:1,transition:"all 0.15s"},children:t})}function eF(e){let{channel:t}=e,n={telegram:"#0088cc",whatsapp:"#25d366",email:ej.T4};return(0,a.jsx)("span",{style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:22,height:22,borderRadius:2,fontFamily:ej.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 eC(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(ej.BR2),display:"flex",flexDirection:"column",gap:6},children:[(0,a.jsx)(eB,{w:"40%",h:10}),(0,a.jsx)(eB,{w:"85%",h:9}),(0,a.jsx)(eB,{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(ej.BR),background:ej.S,borderRadius:3,padding:"18px 22px",display:"flex",flexDirection:"column",gap:10},children:[(0,a.jsx)(eB,{w:"55%",h:14}),(0,a.jsx)(eB,{w:"30%",h:9}),(0,a.jsxs)("div",{style:{marginTop:6,padding:"12px 14px",background:ej.B,border:"1px solid ".concat(ej.BR2),borderRadius:2,display:"flex",flexDirection:"column",gap:6},children:[(0,a.jsx)(eB,{w:"100%",h:10}),(0,a.jsx)(eB,{w:"92%",h:10}),(0,a.jsx)(eB,{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(ej.BR2)},children:[(0,a.jsx)(eB,{w:26,h:9}),(0,a.jsx)(eB,{w:"30%",h:10}),(0,a.jsx)(eB,{w:"20%",h:9}),(0,a.jsx)(eB,{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)(eB,{w:22,h:22,radius:2}),(0,a.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:6},children:[(0,a.jsx)(eB,{w:"40%",h:14}),(0,a.jsx)(eB,{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:ej.S,border:"1px solid ".concat(ej.BR),borderRadius:3,display:"flex",flexDirection:"column",gap:8},children:[(0,a.jsx)(eB,{w:"100%",h:10}),(0,a.jsx)(eB,{w:"80%",h:10})]},t))})]})}function eB(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 eM(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:ej.T4},children:[t&&(0,a.jsx)("div",{style:{fontSize:44,marginBottom:12,color:ej.T7},children:t}),(0,a.jsx)("div",{style:{fontFamily:ej.FD,fontStyle:"italic",fontSize:22,color:ej.T2,marginBottom:6},children:n}),i&&(0,a.jsx)("div",{style:{fontSize:13,fontFamily:ej.FB,maxWidth:380,textAlign:"center"},children:i})]})}function eR(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 o=()=>{"visible"===document.visibilityState&&i()};return document.addEventListener("visibilitychange",o),()=>{document.removeEventListener("visibilitychange",o),null==n||n.close()}},[e,t.join("|")])}function eE(e){let{toast:t}=e,[n,o]=(0,i.useState)(null),[r,l]=(0,i.useState)("pending"),[s,d]=(0,i.useState)(null),[c,p]=(0,i.useState)(null),[u,h]=(0,i.useState)(new Set),[m,g]=(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)},[]);eR("/api/approvals/stream",["snapshot","created","updated"],(0,i.useCallback)((e,t)=>{if("snapshot"===e){let{approvals:e}=t;o(e);return}if("created"===e){o(e=>e?e.some(e=>e.id===t.id)?e:[t,...e]:[t]),b(t.id);return}if("updated"===e)return void o(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"===r||"pending"===e.status),k=(null!=n?n:[]).filter(e=>"pending"===e.status).length;async function S(e,a,i){p(e);try{var o;let r=await fetch("/api/approvals",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,action:a,editedBody:i})}),l=await r.json();if(!r.ok)throw Error(null!=(o=l.error)?o:"HTTP ".concat(r.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;g(!0);let i=0,o=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++:o++}catch(e){o++}})),g(!1),h(new Set),0===o?t.success("".concat(i," ").concat(e,"d.")):t.error("".concat(i," ok \xb7 ").concat(o," failed"))}return(0,a.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden",background:ej.B},children:[(0,a.jsx)(eS,{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:()=>l(e),style:{padding:"5px 10px",fontFamily:ej.FM,fontSize:9,letterSpacing:"0.1em",textTransform:"uppercase",border:"1px solid ".concat(r===e?ej.EM:ej.BR),background:r===e?ej.EM3:"transparent",color:r===e?ej.EM:ej.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:ej.S,borderBottom:"1px solid ".concat(ej.BR),fontFamily:ej.FM,fontSize:11,color:ej.T2},children:[(0,a.jsxs)("span",{style:{color:ej.EM},children:[u.size," selected"]}),(0,a.jsxs)("div",{style:{marginLeft:"auto",display:"flex",gap:8,flexWrap:"wrap"},children:[(0,a.jsx)(eT,{size:"sm",variant:"primary",disabled:m,onClick:()=>w("approve"),children:"Approve selected"}),(0,a.jsx)(eT,{size:"sm",variant:"danger",disabled:m,onClick:()=>w("reject"),children:"Reject selected"}),(0,a.jsx)(eT,{size:"sm",onClick:()=>h(new Set),children:"Clear"})]})]}),(null!=n?n:[]).filter(e=>"pending"===e.status).length>1&&"pending"===r&&(0,a.jsx)("div",{style:{padding:"8px 28px",fontFamily:ej.FM,fontSize:10,color:ej.T5,borderBottom:"1px solid ".concat(ej.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:ej.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)(eC,{variant:"card",count:3}),null!==n&&0===j.length&&(0,a.jsx)(eM,{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?ej.EM:"sent"===e.status?"#2f5b3b":"rejected"===e.status?"#a52a1a":ej.T4,o=f.has(e.id);return(0,a.jsxs)("div",{id:"approval-".concat(e.id),className:o?"sse-flash":void 0,style:{border:"1px solid ".concat(o?ej.EM:ej.BR),background:ej.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:ej.EM,cursor:"pointer",flexShrink:0}}),e.meta.channel&&(0,a.jsx)(eF,{channel:e.meta.channel}),(0,a.jsxs)("div",{style:{flex:1},children:[(0,a.jsx)("div",{title:e.title,style:{fontFamily:ej.FD,fontSize:18,fontWeight:500,color:ej.T1,letterSpacing:"-0.01em",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.title}),(0,a.jsxs)("div",{style:{fontFamily:ej.FM,fontSize:10,color:ej.T5,marginTop:2},children:[e.agentId," \xb7 ",e.type," \xb7 ",ek(e.createdAt)]})]}),(0,a.jsx)(ew,{color:i,children:e.status})]}),e.inboxMessageId&&y[e.inboxMessageId]&&(0,a.jsx)(ez,{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:ej.B,border:"1px solid ".concat(ej.BR),borderRadius:2,color:ej.T1,fontFamily:ej.FB,fontSize:13,lineHeight:1.55,resize:"vertical"}}):(0,a.jsx)("div",{style:{padding:"12px 14px",background:ej.B,border:"1px solid ".concat(ej.BR2),borderRadius:2,fontSize:13,lineHeight:1.55,color:ej.T2,fontFamily:ej.FB,whiteSpace:"pre-wrap",maxHeight:280,overflowY:"auto"},children:e.body}),e.meta.to&&(0,a.jsxs)("div",{style:{fontFamily:ej.FM,fontSize:10,color:ej.T5,marginTop:8},children:["to: ",e.meta.to]}),e.meta.subject&&(0,a.jsxs)("div",{style:{fontFamily:ej.FM,fontSize:10,color:ej.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)(eT,{variant:"primary",disabled:c===e.id,onClick:()=>S(e.id,"edit",s.body),children:"Save & send \xb7 ⌘↵"}),(0,a.jsx)(eT,{onClick:()=>d(null),children:"Cancel \xb7 esc"})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(eT,{variant:"primary",disabled:c===e.id,onClick:()=>S(e.id,"approve"),children:"Approve & send"}),(0,a.jsx)(eT,{onClick:()=>d({id:e.id,body:e.body}),children:"Edit"}),(0,a.jsx)(eT,{variant:"danger",disabled:c===e.id,onClick:()=>S(e.id,"reject"),children:"Reject"})]})})]},e.id)})})]})]})}function ez(e){let{msg:t,defaultOpen:n}=e,[o,r]=(0,i.useState)(n);return(0,a.jsxs)("div",{style:{marginBottom:10,border:"1px dashed ".concat(ej.BR),borderRadius:2,background:ej.B},children:[(0,a.jsxs)("button",{onClick:()=>r(e=>!e),style:{display:"flex",alignItems:"center",gap:10,width:"100%",padding:"8px 12px",background:"transparent",border:"none",cursor:"pointer",fontFamily:ej.FM,fontSize:9,letterSpacing:"0.12em",color:ej.T4,textTransform:"uppercase",textAlign:"left"},children:[(0,a.jsx)(eF,{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:o?"▾":"▸"})]}),o&&(0,a.jsx)("div",{style:{padding:"10px 14px",borderTop:"1px solid ".concat(ej.BR2),fontSize:13,lineHeight:1.55,color:ej.T2,fontFamily:ej.FB,whiteSpace:"pre-wrap",maxHeight:200,overflowY:"auto"},children:t.text})]})}function eI(e){let{open:t,context:n,onSubmit:o,onCancel:r}=e,[l,s]=(0,i.useState)(""),[d,c]=(0,i.useState)(null);if(!t)return null;let p=()=>{let e=l.trim();if(!e)return void c("Token is required");h(e),s(""),c(null),o()};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:R,fontSize:9,color:C,letterSpacing:"0.16em",marginBottom:6},children:"ADMIN TOKEN REQUIRED"}),(0,a.jsx)("div",{style:{fontFamily:z,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:E,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:l,onChange:e=>{s(e.target.value),c(null)},onKeyDown:e=>{"Enter"===e.key&&p(),"Escape"===e.key&&r()},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:R,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:R},children:d}),(0,a.jsxs)("div",{style:{display:"flex",gap:10,justifyContent:"flex-end"},children:[(0,a.jsx)("button",{type:"button",onClick:r,style:{padding:"8px 16px",background:"transparent",border:"1px solid ".concat(T),color:"var(--ink-2)",fontFamily:R,fontSize:12,borderRadius:3,cursor:"pointer",letterSpacing:"0.04em"},children:"Cancel"}),(0,a.jsx)("button",{type:"button",onClick:p,style:{padding:"8px 18px",background:C,border:"1px solid ".concat(C),color:"var(--paper-3)",fontFamily:R,fontSize:12,borderRadius:3,cursor:"pointer",letterSpacing:"0.04em",fontWeight:600},children:"Save for tab"})]})]})})}function eA(e){let{toast:t,requestAdminToken:n}=e,[o,r]=(0,i.useState)(null),l=null!=n?n:(e,t)=>r({context:e,retry:t}),[s,d]=(0,i.useState)(null),[c,u]=(0,i.useState)(null),[h,g]=(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)){m(),l("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 l("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)){m(),l("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 l("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:ej.B},children:[(0,a.jsx)(eS,{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:()=>g(e),style:{padding:"5px 10px",fontFamily:ej.FM,fontSize:9,letterSpacing:"0.1em",textTransform:"uppercase",border:"1px solid ".concat(h===e?ej.EM:ej.BR),background:h===e?ej.EM3:"transparent",color:h===e?ej.EM:ej.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)(eT,{variant:"primary",onClick:()=>v({id:crypto.randomUUID(),clientId:"",name:"",channels:{},tags:[],createdAt:Date.now()}),children:"+ Add contact"})}),null===s&&(0,a.jsx)(eC,{variant:"row",count:4}),null!==s&&0===s.length&&!x&&(0,a.jsx)(eM,{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:ej.S,border:"1px solid ".concat(ej.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:ej.FB,fontSize:14,fontWeight:600,color:ej.T1},children:e.name}),(0,a.jsxs)("div",{style:{fontFamily:ej.FM,fontSize:10,color:ej.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)(ew,{color:"#0088cc",children:["TG ",e.channels.telegram]}),e.channels.whatsapp&&(0,a.jsxs)(ew,{color:"#25d366",children:["WA ",e.channels.whatsapp]}),e.channels.email&&(0,a.jsxs)(ew,{children:["EM ",e.channels.email]}),e.tags.map(e=>(0,a.jsx)(ew,{children:e},e))]})]}),(0,a.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,a.jsx)(eT,{size:"sm",onClick:()=>v(e),children:"Edit"}),(0,a.jsx)(eT,{size:"sm",variant:"danger",onClick:()=>S(s.filter(t=>t.id!==e.id)),children:"Remove"})]})]},e.id))}),x&&(0,a.jsx)(eD,{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)(eT,{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)(eC,{variant:"row",count:3}),null!==c&&0===c.length&&!b&&(0,a.jsx)(eM,{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:ej.S,border:"1px solid ".concat(e.enabled?ej.BR:ej.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:ej.FM,fontSize:11,color:ej.T1,letterSpacing:"0.04em"},children:[e.channel.toUpperCase(),e.match.chatId&&(0,a.jsxs)("span",{style:{color:ej.T3},children:[" \xb7 chat ",e.match.chatId]}),e.match.keyword&&(0,a.jsxs)("span",{style:{color:ej.T3},children:[' \xb7 keyword "',e.match.keyword,'"']}),(0,a.jsx)("span",{style:{color:ej.T4},children:" → "}),(0,a.jsx)("span",{style:{color:ej.EM},children:e.agentId})]}),(0,a.jsxs)("div",{style:{marginTop:6,display:"flex",gap:6},children:[(0,a.jsx)(ew,{color:e.requireApproval?ej.EM:"#2f5b3b",children:e.requireApproval?"approval gate":"auto-send"}),(0,a.jsx)(ew,{children:e.enabled?"enabled":"disabled"})]})]}),(0,a.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,a.jsx)(eT,{size:"sm",onClick:()=>j(e),children:"Edit"}),(0,a.jsx)(eT,{size:"sm",onClick:()=>w(c.map(t=>t.id===e.id?{...t,enabled:!t.enabled}:t)),children:e.enabled?"Disable":"Enable"}),(0,a.jsx)(eT,{size:"sm",variant:"danger",onClick:()=>w(c.filter(t=>t.id!==e.id)),children:"Remove"})]})]},e.id))}),b&&(0,a.jsx)(eW,{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)(eI,{open:null!==o,context:null==o?void 0:o.context,onSubmit:()=>{let e=null==o?void 0:o.retry;r(null),e&&e()},onCancel:()=>r(null)})]})}function eD(e){var t,n,o,r,l;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:ej.S,border:"1px solid ".concat(ej.EM),borderRadius:3},children:[(0,a.jsx)("div",{style:{fontFamily:ej.FD,fontSize:18,color:ej.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)(eL,{label:"Name",children:(0,a.jsx)("input",{value:p.name,onChange:e=>u({...p,name:e.target.value}),style:eO})}),(0,a.jsx)(eL,{label:"Role",children:(0,a.jsx)("input",{value:null!=(t=p.role)?t:"",onChange:e=>u({...p,role:e.target.value}),style:eO})}),(0,a.jsx)(eL,{label:"Company",children:(0,a.jsx)("input",{value:null!=(n=p.company)?n:"",onChange:e=>u({...p,company:e.target.value}),style:eO})}),(0,a.jsx)(eL,{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:eO})}),(0,a.jsx)(eL,{label:"Telegram (@handle)",children:(0,a.jsx)("input",{value:null!=(o=p.channels.telegram)?o:"",onChange:e=>u({...p,channels:{...p.channels,telegram:e.target.value}}),style:eO,placeholder:"@username"})}),(0,a.jsx)(eL,{label:"WhatsApp (+ number)",children:(0,a.jsx)("input",{value:null!=(r=p.channels.whatsapp)?r:"",onChange:e=>u({...p,channels:{...p.channels,whatsapp:e.target.value}}),style:eO,placeholder:"+61..."})}),(0,a.jsx)(eL,{label:"Email",children:(0,a.jsx)("input",{value:null!=(l=p.channels.email)?l:"",onChange:e=>u({...p,channels:{...p.channels,email:e.target.value}}),style:eO})})]}),(0,a.jsxs)("div",{style:{marginTop:14,display:"flex",gap:8},children:[(0,a.jsx)(eT,{variant:"primary",onClick:()=>c(p),disabled:!p.name.trim(),children:"Save"}),(0,a.jsx)(eT,{onClick:d,children:"Cancel"})]})]})}function eW(e){var t,n;let{rule:o,onCancel:s,onSave:d}=e,[c,p]=(0,i.useState)(o);return(0,a.jsxs)("div",{style:{marginTop:18,padding:20,background:ej.S,border:"1px solid ".concat(ej.EM),borderRadius:3},children:[(0,a.jsx)("div",{style:{fontFamily:ej.FD,fontSize:18,color:ej.T1,marginBottom:14,letterSpacing:"-0.01em"},children:o.match.chatId||o.match.keyword?"Edit rule":"New rule"}),(0,a.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:12},children:[(0,a.jsx)(eL,{label:"Channel",children:(0,a.jsxs)("select",{value:c.channel,onChange:e=>p({...c,channel:e.target.value}),style:eO,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)(eL,{label:"Route to agent",children:(0,a.jsx)("select",{value:c.agentId,onChange:e=>p({...c,agentId:e.target.value}),style:eO,children:l.map(e=>(0,a.jsx)("option",{value:e,children:r[e].name},e))})}),(0,a.jsx)(eL,{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:eO,placeholder:"e.g. 1663098725"})}),(0,a.jsx)(eL,{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:eO,placeholder:"e.g. delay"})}),(0,a.jsx)(eL,{label:"Approval gate",children:(0,a.jsxs)("select",{value:c.requireApproval?"yes":"no",onChange:e=>p({...c,requireApproval:"yes"===e.target.value}),style:eO,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)(eL,{label:"Enabled",children:(0,a.jsxs)("select",{value:c.enabled?"yes":"no",onChange:e=>p({...c,enabled:"yes"===e.target.value}),style:eO,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)(eT,{variant:"primary",onClick:()=>d(c),children:"Save"}),(0,a.jsx)(eT,{onClick:s,children:"Cancel"})]})]})}function eL(e){let{label:t,children:n}=e;return(0,a.jsxs)("label",{style:{display:"block"},children:[(0,a.jsx)("div",{style:{fontFamily:ej.FM,fontSize:9,color:ej.T5,letterSpacing:"0.12em",textTransform:"uppercase",marginBottom:4},children:t}),n]})}let eO={width:"100%",padding:"8px 10px",background:ej.B,border:"1px solid ".concat(ej.BR),color:ej.T1,fontFamily:ej.FB,fontSize:13,borderRadius:2,outline:"none"},eN={"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."},eP={"chip-pro":["chip","admin","general"],"logistics-pro":["logistics","admin","general"],founder:["chip","logistics","sales","admin","general"],starter:["admin","general"]},eH={chip:"Chip supply chain",logistics:"Logistics back office",sales:"Sales",admin:"Admin",general:"General"};function eJ(e){var t,n,r,l,s,d;let{toast:c,onSelectAgent:p}=e,{pack:u}=j(),[h,m]=(0,i.useState)(null),[g,f]=(0,i.useState)(null),[x,y]=(0,i.useState)(!1),v=new URLSearchParams(window.location.search).get("client"),b=v?"?client=".concat(encodeURIComponent(v)):"";async function k(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=!!e.customise;if(confirm(t?"Re-seed industry workflows AND ask Solutions to write 2-3 customer-specific additions (uses LLM, ~$0.05). Existing customer-saved workflows preserved.":"Re-seed this customer's workflows from the industry library. Existing customer-saved workflows are preserved.")){y(!0);try{var n,a,i,o,r;let e=await fetch("/api/templates/regenerate".concat(b).concat(t?b?"&customise=true":"?customise=true":""),{method:"POST"}),l=await e.json();if(!e.ok||!l.ok)throw Error(null!=(n=l.error)?n:"HTTP ".concat(e.status));let s="Re-seeded ".concat(null!=(a=l.industrySeeded)?a:l.written," industry workflow").concat((null!=(i=l.industrySeeded)?i:l.written)===1?"":"s");t&&((null==(o=l.customised)?void 0:o.ok)?s+=" + ".concat(l.customised.written," customer-specific additions"):(null==(r=l.customised)?void 0:r.error)&&(s+=" (LLM customisation failed: ".concat(l.customised.error,")"))),c.success(s+".");let d=await fetch("/api/templates".concat(b)).then(e=>e.json());m(d.templates)}catch(e){c.error(e instanceof Error?e.message:"regenerate failed")}finally{y(!1)}}}(0,i.useEffect)(()=>{fetch("/api/templates".concat(b)).then(e=>e.json()).then(e=>{m(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"),m([])})},[c]);let S=null==u||null==(t=u.templates[0])?void 0:t.id,w=(0,i.useMemo)(()=>{var e;return h&&S&&null!=(e=h.find(e=>e.id===S))?e:null},[h,S]),T=(0,i.useMemo)(()=>{if(!h)return{};let e={};for(let a of h){var t,n;S&&a.id===S||(null!=(n=e[t=a.category])?n:e[t]=[]).push(a)}return e},[h,S]),F=(0,i.useMemo)(()=>(function(e,t){var n;let a=null!=(n=e&&eP[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(T)),[null==u?void 0:u.id,T]),C=null!=(n=(null==u?void 0:u.id)&&eN[u.id])?n:"Pre-built workflows your agents can run end-to-end.",B=null!=(r=null==u?void 0:u.name)?r:"LeedAB";async function M(){if(g){f({...g,loading:!0});try{var e;let t=g.template.promptTemplate.replace(/\{\{(\w+)\}\}/g,(e,t)=>{var n;return null!=(n=g.vars[t])?n:"{{".concat(t,"}}")});t=t.replace(/\{(\w+)\}/g,(e,t)=>{var n;return null!=(n=g.vars[t])?n:"{".concat(t,"}")});let n=await fetch("/api/agent",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:g.template.agentId,message:t})}),a=await n.json();if(!n.ok)throw Error(null!=(e=a.error)?e:"HTTP ".concat(n.status));f({...g,output:a.response,loading:!1})}catch(e){c.error(e instanceof Error?e.message:"run failed"),f({...g,loading:!1})}}}return(0,a.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden",background:ej.B},children:[(0,a.jsx)(eS,{section:"\xa7 WORKFLOWS",title:"Pre-built workflows.",subtitle:C,actions:(0,a.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,a.jsx)(eT,{onClick:()=>k({customise:!1}),disabled:x,children:x?"…":"↻ Industry"}),(0,a.jsx)(eT,{onClick:()=>k({customise:!0}),disabled:x,children:x?"…":"↻ Industry + Customise (LLM)"})]})}),(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(ej.BR),background:ej.S,borderRadius:4,display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:12,fontFamily:ej.FM,fontSize:11,letterSpacing:"0.08em",textTransform:"uppercase",color:ej.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:ej.EM,boxShadow:"0 0 0 3px ".concat(ej.EM3)}}),(0,a.jsx)("span",{style:{color:ej.T1,fontWeight:600},children:B}),(0,a.jsx)("span",{style:{color:ej.T4},children:"\xb7"}),(0,a.jsxs)("span",{children:[null!=(l=null==h?void 0:h.length)?l:0," workflows"]}),(0,a.jsx)("span",{style:{color:ej.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:ej.S,border:"1px solid ".concat(ej.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)(eM,{title:"No workflows yet."}),w&&(0,a.jsxs)("button",{onClick:()=>f({template:w,vars:{}}),style:{maxWidth:1100,width:"100%",margin:"0 auto 28px",textAlign:"left",padding:"28px 32px",background:"linear-gradient(180deg, ".concat(ej.EM3," 0%, ").concat(ej.S," 100%)"),border:"1px solid ".concat(ej.BR),borderRadius:4,cursor:"pointer",color:ej.T1,position:"relative",display:"block"},children:[(0,a.jsx)("span",{style:{position:"absolute",top:18,right:22,fontFamily:ej.FM,fontSize:10,letterSpacing:"0.16em",padding:"4px 10px",border:"1px solid ".concat(ej.EM),color:ej.EM,textTransform:"uppercase",borderRadius:2},children:"Flagship"}),(0,a.jsx)("div",{style:{fontFamily:ej.FM,fontSize:11,letterSpacing:"0.14em",color:ej.EM,textTransform:"uppercase",marginBottom:14},children:null!=(s=eH[w.category])?s:w.category}),(0,a.jsx)("div",{style:{fontFamily:ej.FD,fontSize:30,fontWeight:500,color:ej.T1,marginBottom:10,letterSpacing:"-0.02em",lineHeight:1.1,maxWidth:720},children:w.name}),(0,a.jsx)("div",{style:{fontSize:14,color:ej.T2,lineHeight:1.55,marginBottom:18,fontFamily:ej.FB,maxWidth:720},children:w.description}),(0,a.jsxs)("div",{style:{display:"flex",gap:6,flexWrap:"wrap"},children:[(0,a.jsx)(ew,{color:ej.EM,children:w.agentId}),(0,a.jsxs)(ew,{children:["→ ",w.outputType]})]})]}),F.map(e=>{var t;let n=T[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:ej.FM,fontSize:11,color:ej.EM,letterSpacing:"0.14em",marginBottom:10,textTransform:"uppercase"},children:null!=(t=eH[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:ej.S,border:"1px solid ".concat(ej.BR),borderRadius:3,cursor:"pointer",color:ej.T1,transition:"all 0.15s"},children:[(0,a.jsx)("div",{style:{fontFamily:ej.FD,fontSize:18,fontWeight:500,color:ej.T1,marginBottom:6,letterSpacing:"-0.01em"},children:e.name}),(0,a.jsx)("div",{style:{fontSize:12,color:ej.T3,lineHeight:1.5,marginBottom:12,fontFamily:ej.FB},children:e.description}),(0,a.jsxs)("div",{style:{display:"flex",gap:6,flexWrap:"wrap"},children:[(0,a.jsx)(ew,{color:ej.EM,children:e.agentId}),(0,a.jsxs)(ew,{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(ej.BR),borderRadius:3,color:ej.T3,textDecoration:"none",transition:"all 0.15s"},onMouseEnter:e=>{e.currentTarget.style.borderColor=ej.EM,e.currentTarget.style.color=ej.T1},onMouseLeave:e=>{e.currentTarget.style.borderColor=ej.BR,e.currentTarget.style.color=ej.T3},children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{style:{fontFamily:ej.FD,fontSize:18,fontWeight:500,letterSpacing:"-0.01em"},children:"Request more workflows"}),(0,a.jsx)("div",{style:{fontSize:12,color:ej.T4,marginTop:4,fontFamily:ej.FB},children:"Tell us what you need built. We’ll ship it for your team."})]}),(0,a.jsx)("span",{style:{fontFamily:ej.FM,fontSize:11,letterSpacing:"0.14em",color:ej.EM},children:"leedab.com/contact →"})]})})]}),g&&(0,a.jsx)("div",{onClick:()=>g.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:ej.B,border:"1px solid ".concat(ej.BR),borderRadius:4,padding:28},children:[(0,a.jsx)("div",{style:{fontFamily:ej.FD,fontSize:26,fontWeight:500,color:ej.T1,letterSpacing:"-0.02em",marginBottom:6},children:g.template.name}),(0,a.jsx)("div",{style:{fontSize:13,color:ej.T3,marginBottom:22,fontFamily:ej.FB},children:g.template.description}),g.output?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{style:{fontFamily:ej.FM,fontSize:10,color:ej.EM,letterSpacing:"0.12em",marginBottom:8,textTransform:"uppercase"},children:"Result"}),(0,a.jsx)("div",{className:"prose-agent",style:{padding:"16px 20px",background:ej.S,border:"1px solid ".concat(ej.BR),borderRadius:2,fontSize:14,color:ej.T1,fontFamily:ej.FB,lineHeight:1.6,maxHeight:420,overflowY:"auto",marginBottom:16},children:(0,a.jsx)(o.oz,{children:null!=(d=g.output)?d:""})}),(0,a.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,a.jsx)(eT,{onClick:()=>{var e;return navigator.clipboard.writeText(null!=(e=g.output)?e:"")},children:"Copy"}),(0,a.jsx)(eT,{onClick:()=>f({template:g.template,vars:g.vars}),children:"Run again"}),(0,a.jsx)(eT,{onClick:()=>f(null),children:"Close"})]})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{style:{display:"grid",gap:12,marginBottom:18},children:[g.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:ej.FM,fontSize:9,color:ej.T5,letterSpacing:"0.12em",textTransform:"uppercase"},children:[e.label,e.required&&" *"]}),"textarea"===e.type&&(0,a.jsx)(eU,{onText:(t,n)=>{var a;let i="[file: ".concat(t,"]\n"),o=null!=(a=g.vars[e.name])?a:"",r=o?"".concat(o,"\n\n").concat(i).concat(n):"".concat(i).concat(n);f(t=>t?{...t,vars:{...t.vars,[e.name]:r}}:t)}})]}),"textarea"===e.type?(0,a.jsx)("textarea",{value:null!=(t=g.vars[e.name])?t:"",onChange:t=>f({...g,vars:{...g.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:ej.S,border:"1px solid ".concat(ej.BR),color:ej.T1,fontFamily:ej.FB,fontSize:13,borderRadius:2,outline:"none",resize:"vertical"}}):(0,a.jsx)("input",{value:null!=(n=g.vars[e.name])?n:"",onChange:t=>f({...g,vars:{...g.vars,[e.name]:t.target.value}}),style:{width:"100%",padding:"8px 12px",background:ej.S,border:"1px solid ".concat(ej.BR),color:ej.T1,fontFamily:ej.FB,fontSize:13,borderRadius:2,outline:"none"}})]},e.name)}),0===g.template.inputs.length&&(0,a.jsx)("div",{style:{fontSize:13,color:ej.T4,fontFamily:ej.FB},children:"This template takes no inputs — just hit Run."})]}),(0,a.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,a.jsx)(eT,{variant:"primary",disabled:g.loading,onClick:M,children:g.loading?"Running…":"Run"}),(0,a.jsx)(eT,{onClick:()=>f(null),disabled:g.loading,children:"Close"}),(0,a.jsx)(eT,{onClick:()=>p(g.template.agentId),disabled:g.loading,children:"Open in chat"})]})]})]})})]})}function eU(e){let{onText:t}=e,n=(0,i.useRef)(null),[o,r]=(0,i.useState)(!1);async function l(e){if(e&&e.length){r(!0);try{for(let n of Array.from(e)){let e=await n.text();t(n.name,e)}}finally{r(!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:o,style:{fontFamily:ej.FM,fontSize:10,letterSpacing:"0.1em",textTransform:"uppercase",color:ej.EM,background:"transparent",border:"1px dashed ".concat(ej.EM6),borderRadius:2,padding:"3px 8px",cursor:o?"wait":"pointer"},children:o?"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=>l(e.target.files)})]})}function eq(){let[e,t]=(0,i.useState)(null),[n,o]=(0,i.useState)(null),r=(0,i.useCallback)(async()=>{try{let e=await fetch("/api/runs");if(!e.ok)throw Error("HTTP ".concat(e.status));let n=await e.json();t(n.runs),o(n.metrics)}catch(e){t([]),o(null)}},[]);return(0,i.useEffect)(()=>{r()},[r]),(0,i.useEffect)(()=>{let e=setInterval(r,8e3);return()=>clearInterval(e)},[r]),(0,a.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden",background:ej.B},children:[(0,a.jsx)(eS,{section:"\xa7 RUNS",title:"Every action, logged.",subtitle:"What ran, when, how long, how much it cost, how much time it saved."}),n&&(0,a.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(5, 1fr)",borderBottom:"1px solid ".concat(ej.BR),flexShrink:0},children:[{label:"TOTAL RUNS",value:n.totalRuns.toString()},{label:"SUCCESS RATE",value:"".concat((100*n.successRate).toFixed(0),"%")},{label:"AVG DURATION",value:"".concat((n.avgDurationMs/1e3).toFixed(1),"s")},{label:"EST. COST",value:"$".concat(n.totalCost.toFixed(2))},{label:"TIME SAVED",value:"".concat(Math.round(n.totalMinutesSaved),"m")}].map(e=>(0,a.jsxs)("div",{style:{padding:"20px 24px",borderRight:"1px solid ".concat(ej.BR2)},children:[(0,a.jsx)("div",{style:{fontFamily:ej.FM,fontSize:9,color:ej.T5,letterSpacing:"0.14em"},children:e.label}),(0,a.jsx)("div",{style:{fontFamily:ej.FD,fontSize:32,fontWeight:500,color:ej.T1,letterSpacing:"-0.02em",marginTop:4},children:e.value})]},e.label))}),(0,a.jsxs)("div",{style:{flex:1,overflowY:"auto"},children:[null===e&&(0,a.jsx)(eC,{variant:"list-row",count:6}),null!==e&&0===e.length&&(0,a.jsx)(eM,{icon:"◌",title:"No runs yet.",body:"Each agent task or workflow execution will appear here with timing and cost."}),e&&e.length>0&&(0,a.jsxs)("table",{style:{width:"100%",borderCollapse:"collapse",fontFamily:ej.FM,fontSize:12},children:[(0,a.jsx)("thead",{children:(0,a.jsx)("tr",{style:{borderBottom:"1px solid ".concat(ej.BR)},children:["TIME","AGENT","TRIGGER","STATUS","DURATION","TOKENS","COST"].map(e=>(0,a.jsx)("th",{style:{textAlign:"left",padding:"12px 18px",fontSize:9,color:ej.T5,letterSpacing:"0.14em",fontWeight:400},children:e},e))})}),(0,a.jsx)("tbody",{children:e.map(e=>{var t;let n="success"===e.status?"#2f5b3b":"error"===e.status?"#a52a1a":"running"===e.status?ej.EM:ej.T4;return(0,a.jsxs)("tr",{style:{borderBottom:"1px solid ".concat(ej.BR2),color:ej.T2},children:[(0,a.jsx)("td",{style:{padding:"10px 18px"},children:ek(e.startedAt)}),(0,a.jsx)("td",{style:{padding:"10px 18px",color:ej.T1,fontWeight:500},children:e.agentId}),(0,a.jsx)("td",{style:{padding:"10px 18px"},children:e.triggerType}),(0,a.jsx)("td",{style:{padding:"10px 18px"},children:(0,a.jsx)(ew,{color:n,children:e.status})}),(0,a.jsx)("td",{style:{padding:"10px 18px"},children:e.durationMs?"".concat((e.durationMs/1e3).toFixed(1),"s"):"—"}),(0,a.jsx)("td",{style:{padding:"10px 18px"},children:e.inputTokens?"".concat(e.inputTokens,"/").concat(null!=(t=e.outputTokens)?t:0):"—"}),(0,a.jsx)("td",{style:{padding:"10px 18px",color:ej.EM},children:e.estimatedCost?"$".concat(e.estimatedCost.toFixed(4)):"—"})]},e.id)})})]})]})]})}function eK(){let[e,t]=(0,i.useState)([]);return((0,i.useEffect)(()=>{let e=!1;async function n(){try{let[a,i,o]=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 r=[];for(let e of a.runs){var n;r.push({id:"run-".concat(e.id),ts:e.startedAt,kind:"run",text:"".concat(e.agentId.toUpperCase()," 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"})}for(let e of i.messages)r.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 o.approvals)r.push({id:"app-".concat(e.id),ts:e.createdAt,kind:"approval",text:"Approval pending — ".concat(e.title),tone:"warn"});r.sort((e,t)=>t.ts-e.ts),t(r.slice(0,12))}catch(e){}}n();let a=setInterval(n,8e3);return()=>{e=!0,clearInterval(a)}},[]),0===e.length)?null:(0,a.jsxs)("div",{"data-mobile-hide":!0,style:{display:"flex",alignItems:"center",gap:0,padding:"0 28px",height:28,borderBottom:"1px solid ".concat(ej.BR2),background:ej.B,flexShrink:0,overflow:"hidden",whiteSpace:"nowrap",fontFamily:ej.FM,fontSize:11},children:[(0,a.jsx)("span",{style:{fontSize:9,color:ej.T6,letterSpacing:"0.14em",marginRight:14,textTransform:"uppercase",flexShrink:0},children:"● LIVE"}),(0,a.jsx)("div",{style:{display:"inline-flex",gap:28,animation:"tick 60s linear infinite",paddingLeft:0},children:[...e,...e].map((e,t)=>(0,a.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:8,color:ej.T3},children:[(0,a.jsx)("span",{style:{fontSize:8,padding:"1px 6px",border:"1px solid ".concat("live"===e.tone?ej.EM:"warn"===e.tone?"#a52a1a":"#2f5b3b"),color:"live"===e.tone?ej.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:ej.T6},children:["\xb7 ",ek(e.ts)]}),(0,a.jsx)("span",{style:{color:ej.T7},children:"◆"})]},"".concat(e.id,"-").concat(t)))})]})}let eY={click:"CLICK",type:"TYPE",scroll:"SCROLL",extract:"EXTRACT",wait:"WAIT",navigate:"NAVIGATE"},eV={click:"#6b85a0",type:"#8a6e9e",scroll:"#7a8e5a",extract:ej.EM,wait:"#9a9081",navigate:"#4a7c8a"};function eG(e){let{toast:t,onSelectAgent:n}=e,[o,r]=(0,i.useState)(null),[l,s]=(0,i.useState)(null),[d,c]=(0,i.useState)(0),p=(0,i.useCallback)((e,t)=>{if("snapshot"===e){let{sessions:e}=t;r(e);return}return"created"===e?void r(e=>e?[t,...e.filter(e=>e.id!==t.id)]:[t]):"updated"===e?void r(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=>r(e.sessions)).catch(()=>r([]))},[]),eR(null,["snapshot","created","updated"],p);let u=(0,i.useMemo)(()=>{var e;return null!=(e=(null!=o?o:[]).find(e=>e.id===l))?e:null},[o,l]);(0,i.useEffect)(()=>{!l&&o&&o.length>0&&s(o[0].id)},[o,l]),(0,i.useEffect)(()=>{c(0)},[l]);let h=(null!=o?o:[]).filter(e=>"running"===e.status).length;return(0,a.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden",background:ej.B},children:[(0,a.jsx)(eS,{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(ej.BR),overflowY:"auto",flexShrink:0},children:[null===o&&(0,a.jsx)(eC,{variant:"row",count:4}),null!==o&&0===o.length&&(0,a.jsx)(eM,{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==o?void 0:o.map(e=>{var t,n;let i=null==(t=[...e.steps].reverse().find(e=>e.screenshotUrl))?void 0:t.screenshotUrl,o=l===e.id;return(0,a.jsxs)("button",{onClick:()=>s(e.id),style:{display:"block",width:"100%",textAlign:"left",padding:"12px 16px",background:o?ej.EM3:"transparent",borderTop:"none",borderRight:"none",borderBottom:"1px solid ".concat(ej.BR2),borderLeft:"3px solid ".concat("running"===e.status?ej.EM:"error"===e.status?"#a52a1a":"transparent"),cursor:"pointer",color:ej.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(ej.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:ej.FB,color:ej.T1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.taskTitle}),(0,a.jsxs)("div",{style:{fontFamily:ej.FM,fontSize:9,color:ej.T5,marginTop:2},children:[e.agentId," \xb7 ",null!=(n=e.surface)?n:"—"," \xb7 ",ek(e.startedAt)]})]})]}),(0,a.jsxs)("div",{style:{display:"flex",gap:6,alignItems:"center"},children:[(0,a.jsx)(ew,{color:"running"===e.status?ej.EM:"error"===e.status?"#a52a1a":"#2f5b3b",children:e.status}),(0,a.jsxs)("span",{style:{fontFamily:ej.FM,fontSize:9,color:ej.T5},children:[e.steps.length," step",1===e.steps.length?"":"s"]}),e.finishedAt&&(0,a.jsxs)("span",{style:{fontFamily:ej.FM,fontSize:9,color:ej.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)(e_,{session:u,stepIdx:d,onStepChange:c}):(0,a.jsx)(eM,{icon:"◫",title:"Select a session.",body:"Pick a session on the left to scrub through it."})})]})]})}function e_(e){var t;let{session:n,stepIdx:i,onStepChange:o}=e,r=Math.min(i,n.steps.length-1),l=n.steps[r];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(ej.BR),flexShrink:0},children:[(0,a.jsx)("div",{style:{fontFamily:ej.FD,fontSize:22,fontWeight:500,color:ej.T1,letterSpacing:"-0.01em"},children:n.taskTitle}),n.taskDescription&&(0,a.jsx)("div",{style:{fontSize:13,color:ej.T3,marginTop:4,fontFamily:ej.FB,lineHeight:1.55},children:n.taskDescription}),(0,a.jsxs)("div",{style:{display:"flex",gap:10,marginTop:10,fontFamily:ej.FM,fontSize:9,color:ej.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==l?void 0:l.screenshotUrl)?(0,a.jsx)("img",{src:l.screenshotUrl,alt:l.description,style:{width:"100%",maxWidth:880,alignSelf:"center",borderRadius:4,border:"1px solid ".concat(ej.BR),boxShadow:"0 4px 24px rgba(26,23,19,0.10)",background:ej.S}}):(0,a.jsx)("div",{style:{width:"100%",maxWidth:880,alignSelf:"center",height:360,borderRadius:4,border:"1px dashed ".concat(ej.BR),display:"flex",alignItems:"center",justifyContent:"center",color:ej.T5,fontFamily:ej.FM,fontSize:11,letterSpacing:"0.1em"},children:"NO SCREENSHOT FOR THIS STEP"}),l&&(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:ej.FM,fontSize:9,letterSpacing:"0.12em",color:eV[l.action],padding:"3px 8px",border:"1px solid ".concat(eV[l.action],"66"),borderRadius:2,flexShrink:0,lineHeight:1.4},children:eY[l.action]}),(0,a.jsx)("span",{style:{fontSize:14,color:ej.T1,fontFamily:ej.FB,lineHeight:1.55},children:l.description}),(0,a.jsxs)("span",{style:{fontFamily:ej.FM,fontSize:9,color:ej.T5,marginLeft:"auto",flexShrink:0},children:["+",(l.ts/1e3).toFixed(1),"s"]})]}),n.outcome&&r===n.steps.length-1&&(0,a.jsxs)("div",{style:{maxWidth:880,alignSelf:"center",width:"100%",padding:"12px 16px",marginTop:6,background:"".concat(ej.EM3),border:"1px solid ".concat(ej.EM),borderRadius:3,fontSize:13,color:ej.T1,fontFamily:ej.FB,lineHeight:1.55},children:[(0,a.jsx)("div",{style:{fontFamily:ej.FM,fontSize:9,color:ej.EM,letterSpacing:"0.14em",marginBottom:4},children:"OUTCOME"}),n.outcome]})]}),(0,a.jsxs)("div",{style:{borderTop:"1px solid ".concat(ej.BR),background:ej.S,flexShrink:0},children:[(0,a.jsxs)("div",{style:{padding:"10px 28px",display:"flex",alignItems:"center",gap:12},children:[(0,a.jsx)("button",{onClick:()=>o(Math.max(0,r-1)),disabled:0===r,style:{fontFamily:ej.FM,fontSize:11,padding:"4px 10px",border:"1px solid ".concat(ej.BR),background:"transparent",color:0===r?ej.T6:ej.T3,borderRadius:2,cursor:0===r?"not-allowed":"pointer"},children:"← PREV"}),(0,a.jsx)("input",{type:"range",min:0,max:Math.max(0,n.steps.length-1),value:r,onChange:e=>o(Number(e.target.value)),"aria-label":"Scrub through session",style:{flex:1,accentColor:ej.EM}}),(0,a.jsx)("button",{onClick:()=>o(Math.min(n.steps.length-1,r+1)),disabled:r>=n.steps.length-1,style:{fontFamily:ej.FM,fontSize:11,padding:"4px 10px",border:"1px solid ".concat(ej.BR),background:"transparent",color:r>=n.steps.length-1?ej.T6:ej.T3,borderRadius:2,cursor:r>=n.steps.length-1?"not-allowed":"pointer"},children:"NEXT →"}),(0,a.jsxs)("span",{style:{fontFamily:ej.FM,fontSize:10,color:ej.T5,letterSpacing:"0.08em",minWidth:60,textAlign:"right"},children:[r+1," / ",n.steps.length]})]}),(0,a.jsx)("div",{style:{borderTop:"1px solid ".concat(ej.BR2),maxHeight:180,overflowY:"auto"},children:n.steps.map((e,t)=>{let n=t===r;return(0,a.jsxs)("button",{onClick:()=>o(t),style:{display:"flex",alignItems:"center",gap:10,width:"100%",padding:"6px 28px",textAlign:"left",background:n?"".concat(ej.EM,"1a"):"transparent",borderTop:"none",borderRight:"none",borderBottom:"none",borderLeft:"2px solid ".concat(n?ej.EM:"transparent"),cursor:"pointer"},children:[(0,a.jsxs)("span",{style:{fontFamily:ej.FM,fontSize:9,color:ej.T6,width:40,flexShrink:0},children:[(e.ts/1e3).toFixed(1),"s"]}),(0,a.jsx)("span",{style:{fontFamily:ej.FM,fontSize:8,letterSpacing:"0.12em",color:eV[e.action],padding:"1px 5px",border:"1px solid ".concat(eV[e.action],"55"),borderRadius:2,width:64,textAlign:"center",flexShrink:0},children:eY[e.action]}),(0,a.jsx)("span",{style:{fontSize:12,color:n?ej.T1:ej.T3,fontFamily:ej.FB,flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.description})]},t)})})]})]})}function e$(e){var t;let{toast:n,onSelectAgent:o}=e,[r,l]=(0,i.useState)(null),[s,d]=(0,i.useState)("all"),[c,p]=(0,i.useState)(null),[u,h]=(0,i.useState)(new Set),m=(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)},[]);eR("/api/inbox/stream",["snapshot","created","updated"],(0,i.useCallback)((e,t)=>{if("snapshot"===e){let{messages:e}=t;l(e);return}if("created"===e){l(e=>e?e.some(e=>e.id===t.id)?e:[t,...e]:[t]),m(t.threadId);return}if("updated"===e)return void l(e=>e?e.map(e=>e.id===t.id?t:e):e)},[m])),(0,i.useEffect)(()=>{if(!r||0===r.length)return;let e=new URL(window.location.href),t=e.searchParams.get("id");if(!t)return;let n=r.find(e=>e.id===t);n&&(p(n.threadId),e.searchParams.delete("id"),window.history.replaceState({},"",e.toString()))},[r]);let g=(0,i.useMemo)(()=>{var e=(null!=r?r:[]).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)},[r,s]),f=(null!=r?r:[]).filter(e=>"new"===e.status).length,x=c&&null!=(t=g.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:ej.B},children:[(0,a.jsx)(eS,{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:ej.FM,fontSize:9,letterSpacing:"0.1em",textTransform:"uppercase",border:"1px solid ".concat(s===e?ej.EM:ej.BR),background:s===e?ej.EM3:"transparent",color:s===e?ej.EM:ej.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(ej.BR),overflowY:"auto",flexShrink:0},children:[null===r&&(0,a.jsx)(eC,{variant:"row",count:6}),null!==r&&0===g.length&&(0,a.jsx)(eM,{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."}),g.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?ej.EM3:"transparent",borderTop:"none",borderRight:"none",borderBottom:"1px solid ".concat(ej.BR2),borderLeft:"3px solid ".concat(n?ej.EM:"transparent"),cursor:"pointer",color:ej.T1},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:4},children:[(0,a.jsx)(eF,{channel:e.channel}),(0,a.jsx)("span",{title:e.fromName,style:{fontSize:12,fontWeight:600,fontFamily:ej.FB,color:ej.T1,flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.fromName}),e.messages.length>1&&(0,a.jsx)("span",{style:{fontFamily:ej.FM,fontSize:9,color:ej.T4,padding:"1px 5px",border:"1px solid ".concat(ej.BR),borderRadius:2},children:e.messages.length}),(0,a.jsx)("span",{style:{fontFamily:ej.FM,fontSize:9,color:ej.T5},children:ek(e.latestTimestamp)})]}),(0,a.jsx)("div",{title:t.text,style:{fontSize:12,color:ej.T3,lineHeight:1.4,fontFamily:ej.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)(ew,{color:ej.EM,children:[e.newCount," new"]}),!n&&"new"!==e.latestStatus&&(0,a.jsx)(ew,{children:e.latestStatus}),e.agentId&&(0,a.jsxs)(ew,{color:ej.EM,children:["→ ",e.agentId]})]})]},e.id)})]}),(0,a.jsx)("div",{style:{flex:1,overflowY:"auto"},children:x?(0,a.jsx)(eX,{thread:x,toast:n,onSelectAgent:o,onArchiveThread:()=>v(x),onUnarchiveThread:()=>b(x)}):(0,a.jsx)(eM,{icon:"✉",title:"Select a conversation.",body:"Pick a thread on the left to read it."})})]})]})}function eX(e){let{thread:t,toast:n,onSelectAgent:i,onArchiveThread:o,onUnarchiveThread:r}=e,l=[...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)(eF,{channel:t.channel}),(0,a.jsxs)("div",{style:{flex:1},children:[(0,a.jsx)("div",{style:{fontSize:16,fontWeight:600,color:ej.T1,fontFamily:ej.FB},children:t.fromName}),(0,a.jsxs)("div",{style:{fontFamily:ej.FM,fontSize:11,color:ej.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)(ew,{color:ej.EM,children:["routed → ",t.agentId]})]}),(0,a.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:10,marginBottom:24},children:l.map(e=>(0,a.jsxs)("div",{style:{padding:"12px 16px",background:ej.S,border:"1px solid ".concat(ej.BR),borderLeft:"3px solid ".concat("new"===e.status?ej.EM:ej.BR),borderRadius:3,fontSize:14,lineHeight:1.6,color:ej.T1,fontFamily:ej.FB,whiteSpace:"pre-wrap"},children:[(0,a.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:6,fontSize:11,color:ej.T5,fontFamily:ej.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)(ew,{children:e.status}),e.approvalId&&(0,a.jsx)(ew,{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)(eT,{variant:"primary",onClick:()=>i(t.agentId),children:["Open in ",t.agentId," chat"]}),"archived"!==t.latestStatus&&(0,a.jsx)(eT,{onClick:o,children:"Archive thread"}),"archived"===t.latestStatus&&(0,a.jsx)(eT,{onClick:r,children:"Unarchive thread"})]})]})}function eQ(e){let{toast:t,onSelectAgent:n,initialTab:o}=e,[r,l]=(0,i.useState)(null!=o?o:"transcripts"),[s,d]=(0,i.useState)(null),[c,p]=(0,i.useState)(null),[u,h]=(0,i.useState)("all");return(0,i.useEffect)(()=>{if("transcripts"!==r)return;let e=!1;function t(){fetch("/api/leedab/sessions").then(e=>e.json()).then(t=>{var n,a;!e&&(d(null!=(a=t.sessions)?a:[]),!c&&(null==(n=t.sessions)?void 0:n.length)&&p(t.sessions[0].sessionId))}).catch(()=>{e||d([])})}t();let n=setInterval(t,1e4);return()=>{e=!0,clearInterval(n)}},[c,r]),(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,a.jsx)(eS,{section:"sessions",title:"Sessions",subtitle:"inbox"===r?"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:()=>l(e),style:{padding:"5px 12px",fontFamily:ej.FM,fontSize:10,letterSpacing:"0.1em",textTransform:"uppercase",border:"1px solid ".concat(r===e?ej.EM:ej.BR),background:r===e?ej.EM3:"transparent",color:r===e?ej.EM:ej.T4,cursor:"pointer",borderRadius:2},children:e},e))})}),"inbox"===r?(0,a.jsx)(e$,{toast:t,onSelectAgent:n}):(0,a.jsx)(eZ,{sessions:s,filter:u,setFilter:h,selectedId:c,setSelectedId:p,toast:t})]})}function eZ(e){var t,n,i,o;let{sessions:r,filter:l,setFilter:s,selectedId:d,setSelectedId:c,toast:p}=e,u=(null!=r?r:[]).filter(e=>"all"===l||e.channel===l),h=null!=(n=null!=(t=u.find(e=>e.sessionId===d))?t:u[0])?n:null,m={};for(let e of null!=r?r:[]){let t=null!=(i=e.channel)?i:"other";m[t]=(null!=(o=m[t])?o:0)+1}return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{style:{display:"flex",gap:8,padding:"10px 28px",borderBottom:"1px solid ".concat(ej.BR),background:ej.S,flexShrink:0,overflowX:"auto"},children:["all","telegram","whatsapp","direct"].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,o=l===e;return(0,a.jsxs)("button",{onClick:()=>s(e),style:{fontFamily:ej.FM,fontSize:10,letterSpacing:"0.08em",padding:"5px 10px",background:o?ej.EM:"transparent",color:o?"#fff":ej.T4,border:"1px solid ".concat(o?ej.EM:ej.BR),borderRadius:3,cursor:"pointer",textTransform:"uppercase",whiteSpace:"nowrap"},children:["direct"===e?"console":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(ej.BR),overflow:"auto",background:ej.S},children:null===r?(0,a.jsx)("div",{style:{padding:16},children:(0,a.jsx)(eC,{count:5})}):0===u.length?(0,a.jsx)("div",{style:{padding:28},children:(0,a.jsx)(eM,{title:"No sessions",body:"Channel traffic will appear here once a paired user messages the bot."})}):u.map(e=>{var t;let n=e.sessionId===d;return(0,a.jsxs)("button",{onClick:()=>c(e.sessionId),style:{width:"100%",display:"flex",flexDirection:"column",gap:4,padding:"12px 16px",background:n?ej.P:"transparent",border:"none",borderBottom:"1px solid ".concat(ej.BR2),borderLeft:"3px solid ".concat(n?ej.EM:"transparent"),cursor:"pointer",textAlign:"left",color:ej.T1},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8},children:[(0,a.jsx)("span",{style:{fontFamily:ej.FB,fontSize:13,fontWeight:600,color:ej.T1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:null!=(t=e.senderName)?t:(0,a.jsxs)("span",{style:{fontFamily:ej.FM,fontSize:11,color:ej.T5},children:[e.sessionId.slice(0,8),"…"]})}),(0,a.jsx)("span",{style:{fontFamily:ej.FM,fontSize:9,color:ej.T6,flexShrink:0},children:ek(e.updatedAt)})]}),e.summary&&(0,a.jsx)("span",{style:{fontFamily:ej.FB,fontSize:11,color:ej.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:ej.FM,fontSize:9,color:ej.T6,letterSpacing:"0.08em",textTransform:"uppercase"},children:e.channel}),(0,a.jsx)("span",{style:{fontFamily:ej.FM,fontSize:9,color:ej.T7},children:"\xb7"}),(0,a.jsxs)("span",{style:{fontFamily:ej.FM,fontSize:9,color:ej.T6},children:[e.messageCount," msg",1===e.messageCount?"":"s"]})]})]},e.sessionId)})}),(0,a.jsx)("div",{style:{overflow:"auto",padding:28},children:h?(0,a.jsx)(e0,{session:h,toast:p}):(0,a.jsx)(eM,{title:"Select a session",body:"Pick a conversation on the left to see the full transcript."})})]})]})}function e0(e){var t;let{session:n,toast:o}=e,[r,l]=(0,i.useState)(null);return(0,i.useEffect)(()=>{let e=!1;return l(null),fetch("/api/leedab/sessions/".concat(encodeURIComponent(n.sessionId))).then(e=>e.json()).then(t=>{if(!e)if(t.error)o.error(t.error),l([]);else{var n;l(null!=(n=t.messages)?n:[])}}).catch(()=>{e||l([])}),()=>{e=!0}},[n.sessionId,o]),(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:ej.FB,fontSize:16,fontWeight:600,color:ej.T1,margin:0},children:null!=(t=n.senderName)?t:n.sessionId.slice(0,8)+"…"}),n.channel&&(0,a.jsx)(ew,{children:n.channel}),n.chatType&&"direct"!==n.chatType&&(0,a.jsx)(ew,{children:n.chatType}),(0,a.jsx)("span",{style:{fontFamily:ej.FM,fontSize:10,color:ej.T5,letterSpacing:"0.08em"},children:ek(n.updatedAt)})]}),(0,a.jsxs)("div",{style:{fontFamily:ej.FM,fontSize:9,color:ej.T7,marginBottom:18,letterSpacing:"0.06em"},children:["SESSION ID ",n.sessionId]}),null===r?(0,a.jsx)(eC,{count:4}):0===r.length?(0,a.jsx)(eM,{title:"No messages",body:"The session exists but has no parsed user/assistant turns yet."}):(0,a.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:r.map((e,t)=>(0,a.jsxs)("div",{style:{padding:"12px 16px",background:"user"===e.role?ej.S:ej.B,border:"1px solid ".concat(ej.BR),borderLeft:"3px solid ".concat("user"===e.role?ej.T7:ej.EM),borderRadius:3,fontSize:14,lineHeight:1.6,color:ej.T1,fontFamily:ej.FB,whiteSpace:"pre-wrap"},children:[(0,a.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:6},children:[(0,a.jsx)("span",{style:{fontFamily:ej.FM,fontSize:9,color:ej.T5,letterSpacing:"0.12em",textTransform:"uppercase"},children:e.role}),e.timestamp&&(0,a.jsx)("span",{style:{fontFamily:ej.FM,fontSize:9,color:ej.T6},children:new Date(e.timestamp).toLocaleString()})]}),e.thoughts&&e.thoughts.length>0&&(0,a.jsxs)("details",{style:{marginBottom:8,fontFamily:ej.FM,fontSize:11,color:ej.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:ej.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))})]}),e.text]},t))})]})}let e1=[{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 e2(e){let{toast:t,initialChannel:n}=e,[o,r]=(0,i.useState)("channels"),[l,s]=(0,i.useState)(null),d=(e,t)=>s({context:e,retry:t});return(0,i.useEffect)(()=>{n&&r("channels")},[n]),(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,a.jsx)(eS,{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(ej.BR),background:ej.S,flexShrink:0,overflowX:"auto",WebkitOverflowScrolling:"touch"},children:e1.map(e=>(0,a.jsx)("button",{onClick:()=>r(e.id),style:{fontFamily:ej.FM,fontSize:10,letterSpacing:"0.08em",padding:"10px 16px",background:"transparent",color:o===e.id?ej.EM:ej.T5,borderTop:"none",borderRight:"none",borderLeft:"none",borderBottom:"2px solid ".concat(o===e.id?ej.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"===o&&(0,a.jsx)(e4,{toast:t,initialChannel:n,onJumpToTeam:()=>r("team"),requestAdminToken:d}),"team"===o&&(0,a.jsx)(e8,{toast:t,requestAdminToken:d}),"roster"===o&&(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{style:{padding:"16px 28px 0",fontFamily:ej.FM,fontSize:10,color:ej.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:ej.T3,fontWeight:500},children:" Contacts"})," are the people the dashboard knows about (chatIds, phone numbers, email handles). ",(0,a.jsx)("strong",{style:{color:ej.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)(eA,{toast:t,requestAdminToken:d})]}),"providers"===o&&(0,a.jsx)(tt,{toast:t,requestAdminToken:d}),"vault"===o&&(0,a.jsx)(e7,{toast:t,requestAdminToken:d}),"license"===o&&(0,a.jsx)(ta,{toast:t,requestAdminToken:d})]}),(0,a.jsx)(eI,{open:null!==l,context:null==l?void 0:l.context,onSubmit:()=>{let e=null==l?void 0:l.retry;s(null),e&&e()},onCancel:()=>s(null)})]})}function e4(e){let{toast:t,initialChannel:n,onJumpToTeam:o,requestAdminToken:r}=e,[l,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===l)return(0,a.jsx)("div",{style:{padding:28},children:(0,a.jsx)(eC,{count:3})});if(0===l.length)return(0,a.jsx)("div",{style:{padding:28},children:(0,a.jsx)(eM,{title:"No channels configured",body:"Run `leedab onboard` to add Telegram, WhatsApp, or other channels."})});let u=l.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(ej.BR),overflow:"auto",background:ej.S},children:l.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?ej.P:"transparent",border:"none",borderBottom:"1px solid ".concat(ej.BR2),borderLeft:"3px solid ".concat(t?ej.EM:"transparent"),cursor:"pointer",textAlign:"left",color:ej.T1},children:[("telegram"===e.name||"whatsapp"===e.name||"email"===e.name)&&(0,a.jsx)(eF,{channel:e.name}),(0,a.jsxs)("div",{style:{flex:1},children:[(0,a.jsx)("div",{style:{fontFamily:ej.FB,fontSize:13,fontWeight:600,textTransform:"capitalize"},children:e.name}),(0,a.jsxs)("div",{style:{fontFamily:ej.FM,fontSize:10,color:ej.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:ej.EM,boxShadow:"0 0 6px ".concat(ej.EM6)}})]},e.name)})}),(0,a.jsx)("div",{style:{overflow:"auto",padding:28},children:u?(0,a.jsx)(e6,{channel:u,onJumpToTeam:o,onChanged:p,toast:t,requestAdminToken:r}):null})]})}function e6(e){let{channel:t,onJumpToTeam:n,onChanged:o,toast:r,requestAdminToken:l}=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:ej.FB,fontSize:16,fontWeight:600,color:ej.T1,margin:0,textTransform:"capitalize"},children:t.name}),(0,a.jsx)(ew,{color:t.connected?ej.EM:"#a52a1a",children:t.connected?"connected":"disconnected"}),t.dmPolicy&&(0,a.jsx)(ew,{children:t.dmPolicy}),(0,a.jsx)("span",{style:{fontFamily:ej.FM,fontSize:10,color:ej.T5,letterSpacing:"0.08em"},children:t.enabled?"ENABLED":"DISABLED"})]}),("telegram"===t.name||"whatsapp"===t.name)&&(0,a.jsx)(tr,{channel:t,toast:r,onChanged:o,requestAdminToken:l}),(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:ej.FM,fontSize:9,color:ej.T5,letterSpacing:"0.14em",textTransform:"uppercase"},children:"Allowed members"}),(0,a.jsx)(eT,{size:"sm",onClick:n,children:"Manage in Team →"})]}),(0,a.jsxs)("p",{style:{fontFamily:ej.FB,fontSize:12,color:ej.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)(eC,{count:2}):0===s.length?(0,a.jsx)("div",{style:{fontFamily:ej.FM,fontSize:11,color:ej.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:ej.S,border:"1px solid ".concat(ej.BR),borderRadius:3},children:(0,a.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,a.jsxs)("div",{style:{fontFamily:ej.FB,fontSize:13,fontWeight:600,color:ej.T1},children:[e.name," ",(0,a.jsx)("span",{style:{fontFamily:ej.FM,fontSize:10,color:ej.T5,fontWeight:400,marginLeft:6},children:e.role})]}),(0,a.jsxs)("div",{style:{fontFamily:ej.FM,fontSize:11,color:ej.T5,marginTop:2},children:[e.handle,e.email&&(0,a.jsxs)("span",{children:[" \xb7 ",e.email]})]})]})},e.id))})]})]})}let e5=["whatsapp","telegram","teams","dashboard"];function e8(e){let{toast:t,requestAdminToken:n}=e,[o,r]=(0,i.useState)(null),[l,s]=(0,i.useState)([]),[d,c]=(0,i.useState)(!1),[u,h]=(0,i.useState)(null);async function g(){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:[]}))]);r(null!=(e=n.members)?e:[]),s(null!=(t=a.workflows)?t:[])}async function x(e,a,i){try{var o;let r=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(r)){m(),n("to add a team member",()=>x(e,a,i));return}let l=await r.json();if(!r.ok)throw Error(null!=(o=l.error)?o:"HTTP ".concat(r.status));t.success("Added ".concat(e)),c(!1),g()}catch(o){if(o instanceof p)return void n("to add a team member",()=>x(e,a,i));t.error(o instanceof Error?o.message:"add failed")}}async function v(e,a){if(confirm("Remove ".concat(a," from the team?")))try{var i;let o=await f("/api/leedab/team/".concat(encodeURIComponent(e)),{method:"DELETE"});if(await y(o)){m(),n("to remove a team member",()=>v(e,a));return}let r=await o.json();if(!o.ok)throw Error(null!=(i=r.error)?i:"HTTP ".concat(o.status));t.info("Removed ".concat(a)),g()}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)){m(),n("to update a team member",()=>b(e,a));return}let o=await t.json();if(!t.ok)throw Error(null!=(i=o.error)?i:"HTTP ".concat(t.status));g()}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)(()=>{g()},[]),(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:ej.FB,fontSize:16,fontWeight:600,color:ej.T1,margin:0},children:"Team"}),(0,a.jsx)("p",{style:{fontFamily:ej.FB,fontSize:12,color:ej.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)(eT,{variant:"primary",onClick:()=>c(!0),children:"Add member"})]}),d&&(0,a.jsx)("div",{style:{marginBottom:14},children:(0,a.jsx)(e3,{onCancel:()=>c(!1),onSave:x})}),null===o?(0,a.jsx)(eC,{count:3}):0!==o.length||d?(0,a.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:null==o?void 0:o.map(e=>(0,a.jsx)(e9,{member:e,workflows:l,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)(eM,{title:"No team members",body:"Add yourself as the first member to set up channel access."})]})}function e3(e){let{onCancel:t,onSave:n}=e,[o,r]=(0,i.useState)(""),[l,s]=(0,i.useState)(""),[d,c]=(0,i.useState)("member");return(0,a.jsxs)("div",{style:{padding:14,background:ej.S,border:"1px solid ".concat(ej.BR),borderRadius:3,display:"flex",flexDirection:"column",gap:8},children:[(0,a.jsx)("input",{value:o,onChange:e=>r(e.target.value),placeholder:"Name",style:te}),(0,a.jsx)("input",{value:l,onChange:e=>s(e.target.value),placeholder:"Email (optional)",style:te}),(0,a.jsxs)("select",{value:d,onChange:e=>c(e.target.value),style:te,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)(eT,{onClick:t,children:"Cancel"}),(0,a.jsx)(eT,{variant:"primary",onClick:()=>n(o,l,d),disabled:!o.trim(),children:"Add member"})]}),(0,a.jsx)("p",{style:{fontFamily:ej.FM,fontSize:10,color:ej.T6,margin:0},children:"After adding, edit the member to set channel handles + permissions."})]})}function e9(e){var t,n,o,r;let{member:l,workflows:s,editing:d,onEdit:c,onCancel:p,onRemove:u,onSave:h}=e,[m,g]=(0,i.useState)(l.name),[f,x]=(0,i.useState)(null!=(t=l.email)?t:""),[y,v]=(0,i.useState)(l.role),[b,j]=(0,i.useState)({...l.handles}),[k,S]=(0,i.useState)([...l.allowedChannels]),[w,T]=(0,i.useState)([...l.allowedWorkflows]),[F,C]=(0,i.useState)(!1);async function B(){C(!0);try{await h({name:m,email:f||void 0,role:y,handles:b,allowedChannels:k,allowedWorkflows:w})}finally{C(!1)}}return(0,i.useEffect)(()=>{if(d){var e;g(l.name),x(null!=(e=l.email)?e:""),v(l.role),j({...l.handles}),S([...l.allowedChannels]),T([...l.allowedWorkflows])}},[d,l]),d?(0,a.jsxs)("div",{style:{padding:14,background:ej.S,border:"1px solid ".concat(ej.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:m,onChange:e=>g(e.target.value),placeholder:"Name",style:te}),(0,a.jsx)("input",{value:f,onChange:e=>x(e.target.value),placeholder:"Email (optional)",style:te}),(0,a.jsxs)("select",{value:y,onChange:e=>v(e.target.value),style:te,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:ej.FM,fontSize:9,color:ej.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:te}),(0,a.jsx)("input",{value:null!=(o=b.whatsapp)?o:"",onChange:e=>j({...b,whatsapp:e.target.value}),placeholder:"WhatsApp number",style:te}),(0,a.jsx)("input",{value:null!=(r=b.teams)?r:"",onChange:e=>j({...b,teams:e.target.value}),placeholder:"Teams username",style:te})]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{style:{fontFamily:ej.FM,fontSize:9,color:ej.T5,letterSpacing:"0.14em",textTransform:"uppercase",marginBottom:6},children:"Allowed channels"}),(0,a.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:8},children:e5.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:ej.FM,fontSize:11,padding:"4px 10px",background:t?ej.EM:"transparent",color:t?"#fff":ej.T4,border:"1px solid ".concat(t?ej.EM:ej.BR),borderRadius:3,cursor:"pointer",textTransform:"uppercase",letterSpacing:"0.06em"},children:e},e)})})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{style:{fontFamily:ej.FM,fontSize:9,color:ej.T5,letterSpacing:"0.14em",textTransform:"uppercase",marginBottom:6},children:"Allowed workflows"}),0===s.length?(0,a.jsx)("span",{style:{fontFamily:ej.FM,fontSize:10,color:ej.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(ej.EM,"11"):"transparent",border:"1px solid ".concat(t?ej.EM3:ej.BR2),borderRadius:3,cursor:"pointer",fontFamily:ej.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:ej.T1,fontWeight:600},children:[e.title,e.isFinancial&&(0,a.jsx)("span",{style:{fontFamily:ej.FM,fontSize:9,color:"#a52a1a",marginLeft:8,letterSpacing:"0.06em"},children:"$"})]}),(0,a.jsx)("div",{style:{fontFamily:ej.FB,fontSize:11,color:ej.T5,marginTop:2},children:e.description})]})]},e.id)})})]}),(0,a.jsxs)("div",{style:{display:"flex",gap:6,justifyContent:"flex-end"},children:[(0,a.jsx)(eT,{onClick:p,disabled:F,children:"Cancel"}),(0,a.jsx)(eT,{variant:"primary",onClick:B,disabled:!m.trim()||F,children:F?"Saving...":"Save changes"})]})]}):(0,a.jsx)("div",{style:{padding:14,background:ej.S,border:"1px solid ".concat(ej.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:ej.FB,fontSize:14,fontWeight:600,color:ej.T1},children:[l.name,(0,a.jsx)(ew,{children:l.role})]}),(0,a.jsxs)("div",{style:{fontFamily:ej.FM,fontSize:11,color:ej.T5,marginTop:4,display:"flex",flexWrap:"wrap",gap:12},children:[l.email&&(0,a.jsx)("span",{children:l.email}),l.allowedChannels.length>0&&(0,a.jsxs)("span",{children:["channels: ",l.allowedChannels.join(", ")]}),l.allowedWorkflows.length>0&&(0,a.jsxs)("span",{children:["workflows: ",l.allowedWorkflows.length]})]}),(l.handles.telegram||l.handles.whatsapp||l.handles.teams)&&(0,a.jsxs)("div",{style:{fontFamily:ej.FM,fontSize:10,color:ej.T6,marginTop:4},children:[l.handles.telegram&&(0,a.jsxs)("span",{children:["tg:",l.handles.telegram," "]}),l.handles.whatsapp&&(0,a.jsxs)("span",{children:["wa:",l.handles.whatsapp," "]}),l.handles.teams&&(0,a.jsxs)("span",{children:["teams:",l.handles.teams]})]})]}),(0,a.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,a.jsx)(eT,{size:"sm",onClick:c,children:"Edit"}),(0,a.jsx)(eT,{size:"sm",onClick:u,children:"Remove"})]})]})})}function e7(e){let{toast:t,requestAdminToken:n}=e,[o,r]=(0,i.useState)(null),[l,s]=(0,i.useState)(!1),[d,c]=(0,i.useState)(null),[u,h]=(0,i.useState)(!1),[g,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));r(null!=(t=a.entries)?t:[]),s(!!a.encrypted),c(null)}catch(e){r([]),c(e instanceof Error?e.message:"vault read failed")}}async function k(){if(v.service.trim()&&!g){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)){m(),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(!g&&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)){m(),n("to remove vault credentials",()=>S(e));return}let o=await i.json();if(!i.ok)throw Error(null!=(a=o.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:ej.FB,fontSize:16,fontWeight:600,color:ej.T1,margin:0},children:"Credential vault"}),(0,a.jsx)("p",{style:{fontFamily:ej.FB,fontSize:12,color:ej.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)(eT,{variant:"primary",onClick:()=>h(!0),children:"Add credential"})]}),l&&(0,a.jsxs)("div",{style:{padding:"8px 12px",background:ej.S,border:"1px solid ".concat(ej.BR),borderRadius:3,marginBottom:14,fontFamily:ej.FM,fontSize:11,color:ej.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:ej.FM,fontSize:11,color:"#a52a1a"},children:d}),u&&(0,a.jsxs)("div",{style:{padding:14,background:ej.S,border:"1px solid ".concat(ej.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:te}),(0,a.jsx)("input",{value:v.url,onChange:e=>b({...v,url:e.target.value}),placeholder:"Login URL (optional)",style:te}),(0,a.jsx)("input",{value:v.username,onChange:e=>b({...v,username:e.target.value}),placeholder:"Username / email (optional)",style:te}),(0,a.jsx)("input",{value:v.password,onChange:e=>b({...v,password:e.target.value}),placeholder:"Password (optional)",type:"password",style:te}),(0,a.jsx)("textarea",{value:v.notes,onChange:e=>b({...v,notes:e.target.value}),placeholder:"Notes (optional)",rows:2,style:{...te,resize:"vertical"}}),(0,a.jsxs)("div",{style:{display:"flex",gap:6,justifyContent:"flex-end"},children:[(0,a.jsx)(eT,{onClick:()=>{h(!1),b({service:"",url:"",username:"",password:"",notes:""})},children:"Cancel"}),(0,a.jsx)(eT,{variant:"primary",onClick:k,disabled:!v.service.trim()||g,children:g?"...":"Save"})]})]}),null===o?(0,a.jsx)(eC,{count:3}):0===o.length?(0,a.jsx)(eM,{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:o.map(e=>(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 14px",background:ej.S,border:"1px solid ".concat(ej.BR),borderRadius:3},children:[(0,a.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,a.jsx)("div",{style:{fontFamily:ej.FB,fontSize:13,fontWeight:600,color:ej.T1},children:e.service}),(0,a.jsxs)("div",{style:{fontFamily:ej.FM,fontSize:10,color:ej.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)(eT,{size:"sm",onClick:()=>S(e.service),disabled:g,children:"Remove"})]},e.service))})]})}let te={width:"100%",padding:"8px 12px",background:ej.B,border:"1px solid ".concat(ej.BR),borderRadius:3,fontFamily:ej.FM,fontSize:12,color:ej.T1,outline:"none"};function tt(e){var t;let{toast:n,requestAdminToken:o}=e,[r,l]=(0,i.useState)(null),[s,d]=(0,i.useState)(null),[c,u]=(0,i.useState)(null),[h,g]=(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));l(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)){m(),o("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),g(""),b()}catch(t){if(t instanceof p)return void o("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)){m(),o("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 o("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)){m(),o("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 o("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()},[]),!r)return(0,a.jsx)("div",{style:{padding:28},children:s?(0,a.jsx)(tn,{children:s}):(0,a.jsx)(eC,{count:3})});let w=r.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:ej.FB,fontSize:16,fontWeight:600,color:ej.T1,margin:0,marginBottom:6},children:"LLM providers"}),(0,a.jsxs)("p",{style:{fontFamily:ej.FB,fontSize:12,color:ej.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:ej.FM},children:"leedab onboard"}),". Restart the gateway after changes."]}),(0,a.jsxs)("div",{style:{padding:14,background:ej.S,border:"1px solid ".concat(ej.BR),borderRadius:3,marginBottom:18},children:[(0,a.jsx)("div",{style:{fontFamily:ej.FM,fontSize:9,color:ej.T5,letterSpacing:"0.14em",textTransform:"uppercase",marginBottom:8},children:"Default model"}),0===w.length?(0,a.jsx)("div",{style:{fontFamily:ej.FB,fontSize:12,color:ej.T4},children:"Configure at least one provider below to pick a default model."}):(0,a.jsxs)("select",{value:null!=(t=r.defaultModel)?t:"",onChange:e=>S(e.target.value),disabled:x,style:{...te,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)(tn,{children:s}),(0,a.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:r.providers.map(e=>{let t=c===e.id;return(0,a.jsxs)("div",{style:{padding:"12px 14px",background:ej.S,border:"1px solid ".concat(ej.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:ej.FB,fontSize:13,fontWeight:600,color:ej.T1},children:e.label}),(0,a.jsxs)("div",{style:{fontFamily:ej.FM,fontSize:10,color:ej.T5,marginTop:4,display:"flex",gap:10,flexWrap:"wrap"},children:[(0,a.jsx)(ew,{color:e.configured?ej.EM:"#7a6248",children:e.configured?"configured":"not configured"}),e.envDetected&&e.envVarName&&(0,a.jsxs)(ew,{color:ej.EM,children:[e.envVarName," in env"]}),e.keyless&&(0,a.jsx)(ew,{color:"#7a6248",children:"keyless . uses AWS env"})]})]}),(0,a.jsxs)("div",{style:{display:"flex",gap:6,flexShrink:0},children:[!e.keyless&&(0,a.jsx)(eT,{size:"sm",onClick:()=>{u(t?null:e.id),g("")},disabled:x,children:t?"Cancel":e.configured?"Rotate key":"Add key"}),e.configured&&(0,a.jsx)(eT,{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=>g(e.target.value),placeholder:"".concat(e.label," API key"),type:"password",style:{...te,flex:1},autoFocus:!0}),(0,a.jsx)(eT,{variant:"primary",onClick:()=>j(e.id),disabled:!h.trim()||x,children:x?"...":"Save"})]})]},e.id)})})]})}function tn(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:ej.FM,fontSize:11,color:"#a52a1a"},children:t})}function ta(e){let{toast:t,requestAdminToken:n}=e,[o,r]=(0,i.useState)(null),[l,s]=(0,i.useState)(!1),[d,c]=(0,i.useState)(""),[u,h]=(0,i.useState)(!1),[g,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)){m(),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)),r(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)){m(),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)),r(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=>{r(e),x(null)}).catch(()=>r({valid:!1,tier:"none",status:"missing",seatsUsed:0,maxSeats:0}))},[]),!o)return(0,a.jsx)("div",{style:{padding:28},children:(0,a.jsx)(eC,{count:2})});let j=o.maxSeats>0?Math.min(100,o.seatsUsed/o.maxSeats*100):0,k=!!o.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:ej.FB,fontSize:16,fontWeight:600,color:ej.T1,margin:0},children:"License"}),(0,a.jsxs)("div",{style:{display:"flex",gap:6},children:[k&&(0,a.jsx)(eT,{size:"sm",onClick:b,disabled:u,children:"Revalidate"}),(0,a.jsx)(eT,{size:"sm",variant:"primary",onClick:()=>{s(!l),c(""),x(null)},disabled:u,children:l?"Cancel":k?"Replace key":"Enter key"})]})]}),l&&(0,a.jsxs)("div",{style:{padding:12,background:ej.S,border:"1px solid ".concat(ej.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:{...te,flex:1},autoFocus:!0}),(0,a.jsx)(eT,{variant:"primary",onClick:v,disabled:!d.trim()||u,children:u?"...":"Validate & save"})]}),g&&(0,a.jsx)(tn,{children:g}),(0,a.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"120px 1fr",rowGap:10,columnGap:16,fontFamily:ej.FM,fontSize:12},children:[(0,a.jsx)(ti,{children:"Status"}),(0,a.jsx)("div",{style:{display:"flex",alignItems:"center",gap:8},children:(0,a.jsx)(ew,{color:o.valid?ej.EM:"#a52a1a",children:o.status})}),(0,a.jsx)(ti,{children:"Tier"}),(0,a.jsx)(to,{children:o.tier}),(0,a.jsx)(ti,{children:"Seats"}),(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{style:{color:ej.T1},children:[o.seatsUsed," / ",o.maxSeats||"∞"]}),o.maxSeats>0&&(0,a.jsx)("div",{style:{width:"100%",maxWidth:260,height:4,background:ej.BR2,marginTop:6,borderRadius:2,overflow:"hidden"},children:(0,a.jsx)("div",{style:{width:"".concat(j,"%"),height:"100%",background:j>80?"#a52a1a":ej.EM}})})]}),o.keyMasked&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(ti,{children:"Key"}),(0,a.jsx)(to,{mono:!0,children:o.keyMasked})]}),o.email&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(ti,{children:"Email"}),(0,a.jsx)(to,{children:o.email})]}),o.orgName&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(ti,{children:"Org"}),(0,a.jsx)(to,{children:o.orgName})]}),o.validatedAt&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(ti,{children:"Validated"}),(0,a.jsx)(to,{children:new Date(o.validatedAt).toLocaleDateString()})]})]})]})}function ti(e){let{children:t}=e;return(0,a.jsx)("div",{style:{fontFamily:ej.FM,fontSize:9,color:ej.T5,letterSpacing:"0.14em",textTransform:"uppercase",paddingTop:2},children:t})}function to(e){let{children:t,mono:n}=e;return(0,a.jsx)("div",{style:{fontFamily:n?ej.FM:ej.FB,fontSize:13,color:ej.T1},children:t})}function tr(e){let{channel:t,toast:n,onChanged:o,requestAdminToken:r}=e,[l,s]=(0,i.useState)(!1);return(0,a.jsxs)("div",{style:{marginBottom:18},children:[(0,a.jsxs)("button",{onClick:()=>s(e=>!e),style:{fontFamily:ej.FM,fontSize:10,letterSpacing:"0.08em",padding:"6px 12px",background:"transparent",color:ej.T4,border:"1px solid ".concat(ej.BR),borderRadius:3,cursor:"pointer",textTransform:"uppercase"},children:[t.connected?"Re-pair":"Connect"," ▾"]}),l&&(0,a.jsx)("div",{style:{marginTop:10,padding:14,background:ej.S,border:"1px solid ".concat(ej.BR),borderRadius:3},children:"telegram"===t.name?(0,a.jsx)(tl,{toast:n,onSuccess:()=>{s(!1),o()},requestAdminToken:r}):(0,a.jsx)(ts,{toast:n,onSuccess:()=>{s(!1),o()},requestAdminToken:r})})]})}function tl(e){let{toast:t,onSuccess:n,requestAdminToken:o}=e,[r,l]=(0,i.useState)(""),[s,d]=(0,i.useState)(!1);async function c(){if(r.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:r.trim()})});if(await y(a)){m(),o("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"),l(""),n()}catch(e){if(e instanceof p)return void o("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:ej.FB,fontSize:12,color:ej.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:r,onChange:e=>l(e.target.value),onKeyDown:e=>{"Enter"===e.key&&c()},placeholder:"123456789:ABC-DEF...",disabled:s,style:te}),(0,a.jsx)(eT,{variant:"primary",onClick:c,disabled:!r.trim()||s,children:s?"Validating...":"Connect"})]})]})}function ts(e){let{toast:t,onSuccess:n,requestAdminToken:o}=e,[r,l]=(0,i.useState)(null),[s,d]=(0,i.useState)(!1);async function c(){if(!s){d(!0),l(null);try{var e;let n=await f("/api/leedab/channels/whatsapp/connect",{method:"POST"});if(await y(n)){m(),o("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?(l(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 o("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:ej.FB,fontSize:12,color:ej.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)(eT,{variant:"primary",onClick:c,disabled:s,children:s?"Spawning pairing...":r?"Get new QR":"Get QR"}),r&&(0,a.jsx)("pre",{style:{marginTop:12,padding:10,background:ej.B,border:"1px solid ".concat(ej.BR),borderRadius:3,fontFamily:ej.FM,fontSize:8,lineHeight:1,color:ej.T1,overflowX:"auto",whiteSpace:"pre"},children:r}),(0,a.jsx)("p",{style:{fontFamily:ej.FM,fontSize:10,color:ej.T6,marginTop:8},children:"This page won't auto-refresh after the scan. Click off the channel and back to refresh status."})]})}function td(){return(0,a.jsx)(b,{children:(0,a.jsx)(tc,{})})}function tc(){var e,t,n,s,d,c,p;let{pack:u}=j(),h=null!=(s=null==u?void 0:u.agentOrder)?s:l;null==u||u.agentTeams,null==u||u.agents;let[m,g]=(0,i.useState)("marketing"),[f,x]=(0,i.useState)(()=>{let e={};for(let t of l)e[t]=[];return e}),[y,v]=(0,i.useState)({}),[b,B]=(0,i.useState)(""),[W,L]=(0,i.useState)(!1),[P,H]=(0,i.useState)(!1),[J,q]=(0,i.useState)(!1),[K,G]=(0,i.useState)(null),[ee,ea]=(0,i.useState)(!1),[ei,es]=(0,i.useState)(!1),[ed,ec]=(0,i.useState)(()=>Object.fromEntries(l.map(e=>[e,""]))),[ep,eu]=(0,i.useState)([]),[em,eg]=(0,i.useState)([]),[ej,ek]=(0,i.useState)(!1),[eS,ew]=(0,i.useState)([1]);function eT(e){ew(e);try{localStorage.setItem("leedab-pane-weights",JSON.stringify(e))}catch(e){}}(0,i.useEffect)(()=>{let e=1+em.length;if(eS.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 ew(n)}}catch(e){}ew(Array(e).fill(1))}},[em.length]);let{ref:eF,width:eC}=ef(),eB=ex(eC),[eM,eR]=(0,i.useState)(!1),[ez,eI]=(0,i.useState)(340),[eD,eW]=(0,i.useState)("agents"),[eL,eO]=(0,i.useState)(!1),[eN,eP]=(0,i.useState)(null),[eH,eU]=(0,i.useState)(!1),[eY,eV]=(0,i.useState)(""),[e_,e$]=(0,i.useState)(!1),[eX,eZ]=(0,i.useState)(!1),[e0,e1]=(0,i.useState)([]),[e4,e6]=(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()};e1(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);e6(t.filter(e=>"pending"===e.status).length)}catch(e){}}),i.addEventListener("created",e=>{try{let a=JSON.parse(e.data);if("pending"===a.status&&e6(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&&e6(e=>Math.max(0,e-1))}catch(e){}}),e.push(i),()=>{e.forEach(e=>e.close())}},[]),(0,i.useEffect)(()=>{let e="LeedAB — Operations Room";document.title=e4>0?"(".concat(e4,") ").concat(e):e},[e4]),(0,i.useEffect)(()=>{let e=setInterval(()=>{e1(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[e5,e8]=(0,i.useState)(null),[e3,e9]=(0,i.useState)(!1),[e7,te]=(0,i.useState)("light"),[tt,tn]=(0,i.useState)("orb"),[ta,ti]=(0,i.useState)([]),[to,tr]=(0,i.useState)(!1),[tl,ts]=(0,i.useState)(!1),[td,tc]=(0,i.useState)(!1),[tp,tu]=(0,i.useState)(!1),[th,tm]=(0,i.useState)(!1),[tg,tf]=(0,i.useState)(null),{toasts:tx,toast:ty,dismiss:tv}=function(){let[e,t]=(0,i.useState)([]),n=(0,i.useCallback)((e,n,a)=>{var i;let o=crypto.randomUUID(),r=null!=(i=null==a?void 0:a.ttlMs)?i:5e3;return t(t=>[...t,{id:o,type:e,message:n,action:null==a?void 0:a.action,ttlMs:r}]),setTimeout(()=>t(e=>e.filter(e=>e.id!==o)),r),o},[]);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))}}(),[tb,tj]=(0,i.useState)(!1);(0,i.useEffect)(()=>{if("1"===new URLSearchParams(window.location.search).get("onboarding")){try{localStorage.removeItem("leedab-onboarded")}catch(e){}tj(!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||tj(!0)})},[]),(0,i.useEffect)(()=>{let e=window.matchMedia("(max-width: 900px)"),t=()=>tc(e.matches);return t(),e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[]);let tk=(0,i.useCallback)(async e=>{if(e&&0!==e.length){tr(!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 o=await i.json();a.push(o)}ti(e=>[...e,...a])}catch(e){ty.error(e instanceof Error?e.message:"upload failed")}finally{tr(!1)}}},[ty]),tS=(0,i.useCallback)(e=>{ti(t=>t.filter(t=>t.id!==e))},[]);(0,i.useEffect)(()=>{!h.includes(m)&&h.length>0&&g(h[0])},[h,m]),(0,i.useEffect)(()=>{var e,t;let n=localStorage.getItem("leedab-theme"),a=localStorage.getItem("leedab-view");"dark"===n||"light"===n?te(n):(null==(e=(t=window).matchMedia)?void 0:e.call(t,"(prefers-color-scheme: dark)").matches)&&te("dark"),"list"===a&&tn("list")},[]),(0,i.useEffect)(()=>{document.documentElement.setAttribute("data-theme","dark"===e7?"dark":"light");try{localStorage.setItem("leedab-theme",e7)}catch(e){}},[e7]),(0,i.useEffect)(()=>{try{localStorage.setItem("leedab-view",tt)}catch(e){}},[tt]);let tw=(0,i.useRef)(null);(0,i.useRef)(!1);let tT=(0,i.useRef)(null),tF=(0,i.useRef)(null),tC=(0,i.useRef)(null),tB=r[m],tM=null!=(d=f[m])?d:[],tR=null!=(c=y[m])?c:tB.defaultModel;h.indexOf(m);let tE=h.filter(e=>"active"===D[e]).length,tz=e0.filter(e=>!e.read).length,tI=new Date().toLocaleDateString("en-US",{month:"short",day:"2-digit"}).toUpperCase(),tA=new Date().getFullYear();(0,i.useEffect)(()=>{let e=!1;return e9(!0),(async()=>{try{let t=await fetch("/api/conversations?agentId=".concat(m));if(e)return;if(!t.ok)throw Error("HTTP ".concat(t.status));let n=await t.json();!e&&Array.isArray(n.messages)&&x(e=>({...e,[m]:n.messages}))}catch(t){e||ty.error(t instanceof Error?t.message:"Failed to load conversation")}finally{e||e9(!1)}})(),()=>{e=!0}},[m]),(0,i.useEffect)(()=>{var e;null==(e=tw.current)||e.scrollTo({top:tw.current.scrollHeight,behavior:"smooth"})},[tM,W]),(0,i.useEffect)(()=>{J&&fetch("/api/usage").then(e=>e.json()).then(G).catch(e=>{var t;return ty.error(null!=(t=e.message)?t:"Failed to load usage")})},[J]),(0,i.useEffect)(()=>{eH&&setTimeout(()=>{var e;return null==(e=tF.current)?void 0:e.focus()},50)},[eH]),(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(),eU(e=>!e),eV("");return}if("Escape"===e.key)return th?void tm(!1):eH?void eU(!1):e_?void e$(!1):eX?void eZ(!1):ej?void ek(!1):ep.length>0?void eu([]):(ei&&(es(!1),ea(!1)),eR(!1),void(null==(t=document.activeElement)||t.blur()));if("?"===e.key&&!a&&!eH){e.preventDefault(),tm(e=>!e);return}if("/"===e.key&&!a&&!eH){e.preventDefault(),null==(n=tT.current)||n.focus();return}if("b"===e.key&&!a&&!eH)return void ea(e=>!e)};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[ei,ep,eH,e_,eX,th,ej]),(0,i.useEffect)(()=>{if(!ej)return;let e=e=>{e.target.closest("[data-extra-pane-adder]")||ek(!1)};return window.addEventListener("mousedown",e),()=>window.removeEventListener("mousedown",e)},[ej]),(0,i.useEffect)(()=>{eM&&"agents"===eD||ek(!1)},[eM,eD]);let tD=(0,i.useCallback)((e,t)=>{if(null==t?void 0:t.multi){eu(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e]),eW("agents"),eR(!0),setTimeout(()=>{var e;return null==(e=tT.current)?void 0:e.focus()},0);return}eu([]),e===m?eR(e=>!e):(g(e),eR(!0),es(!1),ea(!1)),eW("agents"),setTimeout(()=>{var e;return null==(e=tT.current)?void 0:e.focus()},0)},[m]),tW=(0,i.useCallback)(async()=>{let e=b.trim();if(!e&&0===ta.length||W)return;B(""),ti([]);let t=ee?h:ep.length>0?ep:[];if(t.length>0){es(!0),ec(Object.fromEntries(t.map(e=>[e,""]))),t.forEach(async t=>{var n,a;let i=r[t],o=null!=(n=y[t])?n:i.defaultModel;try{let n=await fetch("/api/chat",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({agentId:t,model:o,messages:[{role:"user",content:e}]})});if(!n.ok||!n.body)return;let i=n.body.getReader(),r=new TextDecoder,l="";for(;;){let{value:e,done:n}=await i.read();if(n)break;let o=(l+=r.decode(e,{stream:!0})).split("\n\n");for(let e of(l=null!=(a=o.pop())?a:"",o))if(e.startsWith("data:"))try{let n=JSON.parse(e.slice(5).trim());"text"===n.type&&ec(e=>({...e,[t]:e[t]+n.value}))}catch(e){}}}catch(e){}}),ep.length>0&&eu([]);return}let n=ta.length?"\n\n"+ta.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:tR};x(e=>({...e,[m]:[...e[m],a,i]})),L(!0);try{let t=await fetch("/api/chat",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({agentId:m,model:tR,messages:[...tM.map(e=>({role:e.role,content:e.content})),{role:"user",content:e}],attachments:ta})});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 o;let{value:e,done:t}=await n.read();if(t)break;let r=(i+=a.decode(e,{stream:!0})).split("\n\n");for(let e of(i=null!=(o=r.pop())?o:"",r))if(e.startsWith("data:"))try{let t=JSON.parse(e.slice(5).trim());"tool_call"===t.type?e8(t.tool):"text"===t.type?(e8(null),x(e=>{let n=e[m],a=n[n.length-1];return(null==a?void 0:a.role)!=="assistant"?e:{...e,[m]:[...n.slice(0,-1),{...a,content:a.content+t.value}]}})):"error"===t.type&&(e8(null),x(e=>{let n=e[m],a=n[n.length-1];return(null==a?void 0:a.role)!=="assistant"?e:{...e,[m]:[...n.slice(0,-1),{...a,content:"[Error] ".concat(t.value)}]}}))}catch(e){}}}catch(t){let e=t instanceof Error?t.message:"Unknown error";x(t=>{let n=t[m],a=n[n.length-1];return(null==a?void 0:a.role)!=="assistant"?t:{...t,[m]:[...n.slice(0,-1),{...a,content:"[Error] ".concat(e)}]}})}finally{L(!1),e8(null)}},[b,W,m,tR,tM,ee,y,ta]),tL=(0,i.useCallback)(async()=>{confirm("Clear conversation with ".concat(tB.name," agent?"))&&(await fetch("/api/conversations?agentId=".concat(m),{method:"DELETE"}),x(e=>({...e,[m]:[]})))},[m,tB.name]),tO=(0,i.useCallback)(e=>{var t,n,a,i;if(0===tM.length)return;let o=new Date().toISOString().slice(0,10),r=tM.filter(e=>"assistant"===e.role).map(e=>e.content),l="",s="text/plain";if("md"===e)l=tM.map(e=>"user"===e.role?"**You:** ".concat(e.content):"**".concat(tB.name,":** ").concat(e.content)).join("\n\n---\n\n"),s="text/markdown";else if("txt"===e)l=(null!=(t=r.at(-1))?t:tM.map(e=>"user"===e.role?"You: ".concat(e.content):"".concat(tB.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=r.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>");l='<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>'.concat(tB.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)l=JSON.stringify({agent:tB.name,exportedAt:new Date().toISOString(),messages:tM},null,2),s="application/json";else if("csv"===e){let e=[["role","content","timestamp"]];for(let t of tM)e.push([t.role,'"'.concat((null!=(a=t.content)?a:"").replace(/"/g,'""'),'"'),String(null!=(i=t.timestamp)?i:"")]);l=e.map(e=>e.join(",")).join("\n"),s="text/csv"}let d=new Blob([l],{type:s}),c=URL.createObjectURL(d),p=document.createElement("a");p.href=c,p.download="leedab-".concat(m,"-").concat(o,".").concat(e),p.click(),URL.revokeObjectURL(c)},[tM,m,tB.name]),tN=(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(P&&tC.current){tC.current.stop(),H(!1);return}let a=new n;a.continuous=!1,a.interimResults=!0,a.lang="en-US",a.onstart=()=>H(!0),a.onend=()=>H(!1),a.onerror=()=>H(!1),a.onresult=e=>B(Array.from(e.results).map(e=>e[0].transcript).join("")),tC.current=a,a.start()},[P]);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(O,{toasts:tx,onDismiss:tv}),th&&(0,a.jsx)(N,{onClose:()=>tm(!1)}),tg&&(0,a.jsx)(U,{draft:tg,agentId:m,agentName:tB.name,onCancel:()=>tf(null),onSave:async e=>{try{var t,n,a,i;let o=(null==u||null==(t=u.customer)?void 0:t.clientId)?"?client=".concat(encodeURIComponent(u.customer.clientId)):"",r=await fetch("/api/templates".concat(o),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e.name,description:e.description,category:"general",agentId:m,promptTemplate:e.promptTemplate,inputs:null!=(n=e.inputs)?n:[],outputType:"message"})});if(!r.ok)throw Error(null!=(a=(await r.json()).error)?a:"HTTP ".concat(r.status));let l=(null!=(i=e.inputs)?i:[]).length;ty.success('Saved "'.concat(e.name,'"').concat(l>0?" (".concat(l," variable").concat(1===l?"":"s",")"):""," to Templates.")),tf(null)}catch(e){ty.error(e instanceof Error?e.message:"save failed")}}}),tb&&(0,a.jsx)(Y,{onClose:()=>{tj(!1);try{localStorage.setItem("leedab-onboarded","1")}catch(e){}}}),eH&&(0,a.jsx)(X,{query:eY,onQueryChange:eV,inputRef:tF,conversations:f,onSelectAgent:e=>{tD(e),eU(!1),eV("")},onSelectView:e=>{eW(e),eU(!1),eV("")},onClose:()=>{eU(!1),eV("")}}),e_&&(0,a.jsx)(_,{agent:tB,agentId:m,conversations:f,onClose:()=>e$(!1)}),eX&&(0,a.jsx)(V,{notifs:e0,onMarkAllRead:()=>e1(e=>e.map(e=>({...e,read:!0}))),onClose:()=>eZ(!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:'"JetBrains Mono", monospace',gap:12,minWidth:0},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:16,flex:1,minWidth:0},children:[td&&(0,a.jsx)("button",{onClick:()=>{"agents"!==eD&&eW("agents"),tu(!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:{fontSize:18,fontFamily:z,fontStyle:"italic",fontWeight:500,letterSpacing:"-0.02em",color:"var(--ink)"},children:["LeedAB",(0,a.jsx)("span",{style:{color:M},children:"."})]}),(0,a.jsxs)("span",{"data-mobile-condense":!0,style:{fontSize:10,fontFamily:z,fontStyle:"italic",fontWeight:500,letterSpacing:"-0.02em",color:"var(--ink-5)",marginTop:1},children:["agentic ",(0,a.jsx)("span",{style:{color:M},children:"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","sessions","workflows","runs","admin"].map(e=>(0,a.jsx)("button",{onClick:()=>{eD===e?eO(e=>!e):(eW(e),eO(!1))},style:{fontFamily:'"JetBrains Mono", monospace',fontSize:10,letterSpacing:"0.08em",padding:"4px 10px",background:"transparent",color:eD===e?C:"var(--ink-5)",borderTop:"none",borderRight:"none",borderLeft:"none",borderBottom:"2px solid ".concat(eD===e?C:"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:[(0,a.jsxs)("span",{"data-mobile-hide":!0,style:{fontSize:10,color:C,letterSpacing:"0.1em"},children:["● ",tE," ACTIVE"]}),(0,a.jsxs)("span",{"data-mobile-hide":!0,style:{fontSize:10,color:"var(--ink-6)"},children:[tI," \xb7 ",tA]}),(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:()=>tn(e),style:{fontFamily:R,fontSize:9,letterSpacing:"0.08em",padding:"4px 8px",border:"none",background:tt===e?C:"transparent",color:tt===e?"var(--paper)":"var(--ink-5)",cursor:"pointer",textTransform:"uppercase",transition:"all 0.15s"},children:e},e))}),(0,a.jsx)("button",{onClick:()=>te("dark"===e7?"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:R,fontSize:11,display:"flex",alignItems:"center",justifyContent:"center",width:28,height:24},children:"dark"===e7?"☀":"☾"}),(0,a.jsxs)("button",{onClick:()=>{eU(!0),eV("")},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:'"JetBrains Mono", monospace',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:J,onClick:()=>q(e=>!e)})}),(0,a.jsxs)("button",{onClick:()=>{eZ(e=>!e),eX||e1(e=>e.map(e=>({...e,read:!0})))},style:{position:"relative",background:"none",border:"none",cursor:"pointer",color:tz>0?C:"var(--ink-5)",fontSize:14,padding:"4px 6px",transition:"color 0.15s"},children:["◎",tz>0&&(0,a.jsx)("span",{style:{position:"absolute",top:0,right:0,width:8,height:8,borderRadius:"50%",background:C,border:"2px solid ".concat(w),display:"block"}})]})]})]}),!eL&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)($,{onChannelClick:e=>{eP(e),eW("admin")}}),(0,a.jsx)(eK,{})]}),J&&(0,a.jsx)("div",{className:"animate-fade-up",style:{borderBottom:"1px solid ".concat(T),background:w,padding:"20px 28px",flexShrink:0},children:K?(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:K.todayTotals.requests.toString()},{label:"Today \xb7 Input",value:K.todayTotals.inputTokens.toLocaleString()},{label:"Today \xb7 Output",value:K.todayTotals.outputTokens.toLocaleString()},{label:"Today \xb7 Est. cost",value:"$".concat(K.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:'"JetBrains Mono", monospace'},children:t.toUpperCase()}),(0,a.jsx)("div",{style:{fontSize:20,fontWeight:700,color:"var(--ink)",fontFamily:'"JetBrains Mono", monospace'},children:n})]},t)})}),(0,a.jsx)("div",{style:{fontSize:9,color:"var(--ink-5)",letterSpacing:"0.14em",marginBottom:8,fontFamily:'"JetBrains Mono", monospace'},children:"ALL-TIME \xb7 BY AGENT"}),(0,a.jsxs)("table",{style:{width:"100%",fontSize:12,fontFamily:'"JetBrains Mono", monospace',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:[h.map(e=>{let t=K.byAgent[e];return(0,a.jsxs)("tr",{style:{borderBottom:"1px solid ".concat(F)},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:I[e]}),r[e].name]}),(0,a.jsx)("td",{style:{padding:"8px 16px 8px 0",textAlign:"right",color:"var(--ink-5)"},children:t.requests}),(0,a.jsx)("td",{style:{padding:"8px 16px 8px 0",textAlign:"right",color:"var(--ink-5)"},children:t.inputTokens.toLocaleString()}),(0,a.jsx)("td",{style:{padding:"8px 16px 8px 0",textAlign:"right",color:"var(--ink-5)"},children:t.outputTokens.toLocaleString()}),(0,a.jsxs)("td",{style:{padding:"8px 0",textAlign:"right",color:C},children:["$",t.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:K.totals.requests}),(0,a.jsx)("td",{style:{paddingTop:12,paddingRight:16,textAlign:"right"},children:K.totals.inputTokens.toLocaleString()}),(0,a.jsx)("td",{style:{paddingTop:12,paddingRight:16,textAlign:"right"},children:K.totals.outputTokens.toLocaleString()}),(0,a.jsxs)("td",{style:{paddingTop:12,textAlign:"right",color:C,fontWeight:700},children:["$",K.totals.estimatedCost.toFixed(4)]})]})]})]})]}):(0,a.jsx)("div",{style:{fontSize:12,color:"var(--ink-5)",fontFamily:'"JetBrains Mono", monospace'},children:"Loading…"})}),"inbox"===eD&&(0,a.jsx)(eQ,{toast:ty,onSelectAgent:tD,initialTab:"inbox"}),"approvals"===eD&&(0,a.jsx)(eE,{toast:ty}),"roster"===eD&&(0,a.jsx)(eA,{toast:ty}),"workflows"===eD&&(0,a.jsx)(eJ,{toast:ty,onSelectAgent:tD}),"runs"===eD&&(0,a.jsx)(eq,{}),"compute"===eD&&(0,a.jsx)(eG,{toast:ty,onSelectAgent:tD}),"sessions"===eD&&(0,a.jsx)(eQ,{toast:ty,onSelectAgent:tD,initialTab:"transcripts"}),"admin"===eD&&(0,a.jsx)(e2,{toast:ty,initialChannel:eN}),"agents"===eD&&(0,a.jsxs)("div",{style:{flex:1,display:"flex",overflow:"hidden"},children:["list"===tt&&!td&&(0,a.jsx)(el,{selectedAgent:m,chatOpen:eM,conversations:f,onSelectAgent:tD}),td&&tp&&(0,a.jsx)("div",{className:"team-rail-drawer",onClick:()=>tu(!1),children:(0,a.jsx)("div",{className:"team-rail-drawer-panel",onClick:e=>e.stopPropagation(),children:(0,a.jsx)(el,{selectedAgent:m,chatOpen:eM,conversations:f,onSelectAgent:e=>{tD(e),tu(!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:eF,style:{flex:null!=(p=eS[0])?p:1,display:"flex",flexDirection:"column",overflow:"hidden",minWidth:280},children:eM?(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:[ei?(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:R,fontSize:10,color:C,letterSpacing:"0.14em"},children:"\xa7 BROADCAST"}),(0,a.jsxs)("span",{style:{fontFamily:z,fontSize:22,fontWeight:500,color:"var(--ink)",letterSpacing:"-0.01em"},children:[Object.values(ed).filter(Boolean).length,"/",h.length," responded"]})]}),(0,a.jsx)("button",{onClick:()=>{es(!1),ea(!1)},style:{fontFamily:R,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:[...h].sort((e,t)=>{var n,a,i,o;return(null!=(i=null==(n=ed[t])?void 0:n.length)?i:0)-(null!=(o=null==(a=ed[e])?void 0:a.length)?o:0)}).map(e=>{var t;let n=null!=(t=ed[e])?t:"",i=n.length>0;return(0,a.jsxs)("div",{className:"animate-broadcast-slide",style:{width:360,flexShrink:0,background:"var(--paper-input)",border:"1px solid ".concat(i?"".concat(C,"66"):T),borderRadius:4,display:"flex",flexDirection:"column",overflow:"hidden"},children:[(0,a.jsxs)("div",{style:{padding:"10px 14px",borderBottom:"1px solid ".concat(F),display:"flex",alignItems:"center",gap:10,background:"var(--paper-2)",flexShrink:0},children:[(0,a.jsx)("span",{style:{fontFamily:R,fontWeight:700,fontSize:11,color:i?C:"var(--ink-5)",letterSpacing:"0.04em",width:28},children:I[e]}),(0,a.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,a.jsx)("div",{style:{fontSize:13,color:"var(--ink)",fontFamily:E,fontWeight:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:r[e].name}),(0,a.jsx)("div",{style:{fontFamily:R,fontSize:9,color:"var(--ink-6)",letterSpacing:"0.08em"},children:i?"".concat(n.length," chars"):"waiting…"})]}),!i&&(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:C,display:"inline-block"}},e))})]}),(0,a.jsx)("div",{className:"prose-agent",style:{flex:1,padding:"12px 14px",fontSize:12,overflowY:"auto"},children:n?(0,a.jsx)(o.oz,{children:n}):(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:'"JetBrains Mono", monospace',minWidth:0,flex:1},children:[(0,a.jsx)("span",{style:{fontSize:10,color:C,letterSpacing:"0.1em",flexShrink:0},children:A[m]}),(0,a.jsx)("span",{style:{fontSize:12,fontWeight:700,color:"var(--ink)",letterSpacing:"0.06em",flexShrink:0},children:I[m]}),(0,a.jsxs)("span",{"data-mobile-hide":!0,style:{fontSize:13,color:"var(--ink-4)",fontFamily:'"Inter", sans-serif',overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:["/ ",tB.name," agent"]})]}),(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:tR,options:tB.availableModels,onChange:e=>v(t=>({...t,[m]:e}))})}),eB.showContext&&(0,a.jsx)("span",{"data-mobile-hide":!0,style:{display:"inline-flex"},children:(0,a.jsx)(Z,{label:"CONTEXT",active:e_,onClick:()=>e$(e=>!e)})}),eB.showExport&&(0,a.jsx)("span",{"data-mobile-hide":!0,style:{display:"inline-flex"},children:(0,a.jsx)(Q,{disabled:0===tM.length,onExport:tO})}),eB.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:()=>ek(e=>!e)}),ej&&(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:'"JetBrains Mono", monospace',fontSize:9,color:"var(--ink-5)",letterSpacing:"0.16em"},children:"OPEN PARALLEL PANE"}),h.filter(e=>e!==m&&!em.includes(e)).map(e=>{let t=r[e];return(0,a.jsxs)("button",{onClick:()=>{eg(t=>[...t,e]),ek(!1)},style:{display:"block",width:"100%",textAlign:"left",padding:"8px 12px",border:"none",background:"transparent",cursor:"pointer",fontFamily:'"Inter", sans-serif',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:'"JetBrains Mono", monospace',fontSize:9,color:C,letterSpacing:"0.1em",marginRight:6},children:I[e]}),t.name]},e)}),0===h.filter(e=>e!==m&&!em.includes(e)).length&&(0,a.jsx)("div",{style:{padding:"10px 12px",fontSize:11,color:"var(--ink-5)",fontStyle:"italic"},children:"All agents already open."})]})]}),eB.showSaveAsWorkflow&&(0,a.jsx)("span",{"data-mobile-hide":!0,style:{display:"inline-flex"},children:(0,a.jsx)(Z,{label:"SAVE AS WORKFLOW",disabled:0===tM.filter(e=>"user"===e.role).length,onClick:()=>{let e=[...tM].reverse().find(e=>"user"===e.role);if(!e)return void ty.error("Need at least one of your messages.");tf({name:e.content.slice(0,60),description:"Saved from a ".concat(tB.name," chat thread."),promptTemplate:e.content})}})}),eB.showClear&&(0,a.jsx)("span",{"data-mobile-hide":!0,style:{display:"inline-flex"},children:(0,a.jsx)(Z,{label:"CLEAR",disabled:0===tM.length,onClick:tL})}),(0,a.jsx)("button",{onClick:()=>eR(!1),style:{background:"none",border:"none",cursor:"pointer",color:"var(--ink-5)",fontSize:18,lineHeight:1,padding:"0 2px",fontFamily:'"JetBrains Mono", monospace',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:tw,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:e3?(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:'"JetBrains Mono", monospace',fontSize:7,color:C,fontWeight:700},children:I[m]})}),(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===tM.length?(0,a.jsx)(en,{agentName:tB.name,agentCode:I[m],agentSection:A[m],tagline:tB.tagline,onChipClick:e=>{var t;B(e),null==(t=tT.current)||t.focus()},customQuickStart:null==u||null==(t=u.customer)||null==(e=t.quickstartByAgent)?void 0:e[m]}):(0,a.jsxs)(a.Fragment,{children:[tM.map((e,t)=>W&&t===tM.length-1&&"assistant"===e.role&&""===e.content?null:(0,a.jsx)(eo,{message:e,agentCode:I[m],onRunTemplate:(e,t)=>{try{localStorage.setItem("leedab-pending-template",e),localStorage.setItem("leedab-pending-template-context",t)}catch(e){}eW("workflows")},conversationContext:tM.slice(-4).map(e=>e.content).join("\n\n")},e.id)),W&&(null==(n=tM[tM.length-1])?void 0:n.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:'"JetBrains Mono", monospace',fontSize:7,color:C,fontWeight:700},children:I[m]})}),(0,a.jsx)("div",{style:{padding:"10px 14px",background:"var(--paper-input)",borderRadius:"0 4px 4px 4px",border:"1px solid ".concat(T)},children:e5?(0,a.jsxs)("span",{style:{fontFamily:'"JetBrains Mono", monospace',fontSize:10,color:"var(--ink-5)",letterSpacing:"0.06em"},children:["⟳ ",e5.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:C,display:"inline-block"}},e))})})]})]})})})]}),(0,a.jsxs)("div",{onDragEnter:e=>{e.preventDefault(),ts(!0)},onDragOver:e=>{e.preventDefault(),ts(!0)},onDragLeave:e=>{e.currentTarget===e.target&&ts(!1)},onDrop:e=>{var t;e.preventDefault(),ts(!1),(null==(t=e.dataTransfer.files)?void 0:t.length)&&tk(e.dataTransfer.files)},style:{padding:"12px 20px",borderTop:"1px solid ".concat(T),flexShrink:0,position:"relative"},children:[tl&&(0,a.jsx)("div",{style:{position:"absolute",inset:0,background:"".concat(C,"22"),border:"2px dashed ".concat(C),display:"flex",alignItems:"center",justifyContent:"center",fontFamily:R,fontSize:12,color:C,letterSpacing:"0.12em",pointerEvents:"none",zIndex:10},children:"DROP TO ATTACH"}),ta.length>0&&(0,a.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:6,marginBottom:8},children:[ta.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:R,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:()=>tS(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)}),to&&(0,a.jsx)("div",{style:{fontSize:10,color:"var(--ink-5)",fontFamily:R,alignSelf:"center"},children:"uploading…"})]}),ep.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:'"JetBrains Mono", monospace',fontSize:11,color:"#5d6a44",letterSpacing:"0.04em"},children:[(0,a.jsxs)("span",{children:["● BROADCASTING TO ",ep.length," AGENTS:"," ",(0,a.jsx)("span",{style:{color:"var(--ink-2)"},children:ep.map(e=>{var t,n;return null!=(n=null==(t=r[e])?void 0:t.name)?n:e}).join(" \xb7 ")})]}),(0,a.jsx)("button",{onClick:()=>eu([]),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)(er,{ref:tT,value:b,onChange:B,onSubmit:tW,onVoice:tN,onBroadcast:()=>ea(e=>!e),onAttach:tk,hasAttachments:ta.length>0,disabled:W,isListening:P,broadcastMode:ee||ep.length>0,agentName:tB.name}),(0,a.jsxs)("div",{style:{marginTop:8,display:"flex",justifyContent:"space-between",fontFamily:'"JetBrains Mono", monospace',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",P&&(0,a.jsx)("span",{style:{color:"#ef4444",marginLeft:8},children:"● REC"}),ee&&(0,a.jsx)("span",{style:{color:C,marginLeft:8},children:"● BROADCAST-ALL"}),!ee&&ep.length>0&&(0,a.jsxs)("span",{style:{color:"#5d6a44",marginLeft:8},children:["● MULTI (",ep.length,")"]})]}),(0,a.jsx)("span",{children:tR.replace("claude-","").replace("-20251001","").toUpperCase()})]})]})]}):"orb"===tt?(0,a.jsx)(eh,{selectedAgent:m,chatOpen:eM,conversations:f,onSelectAgent:tD,broadcastTargets:ep}):(0,a.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",padding:"40px 32px"},children:[(0,a.jsx)("div",{style:{fontFamily:'"JetBrains Mono", monospace',fontSize:10,color:"var(--ink-6)",letterSpacing:"0.14em",marginBottom:6},children:"\xa7 00 / OPERATORS"}),(0,a.jsxs)("div",{style:{fontFamily:z,fontStyle:"italic",fontSize:36,fontWeight:500,color:"var(--ink-2)",letterSpacing:"-0.02em",marginBottom:8},children:["Select an ",(0,a.jsx)("span",{style:{color:C},children:"operator"}),"."]}),(0,a.jsx)("div",{style:{fontSize:13,color:"var(--ink-4)",marginBottom:40,fontFamily:E},children:"The AI workforce, ready when you are."}),(0,a.jsx)("div",{style:{display:"flex",gap:16,flexWrap:"wrap",justifyContent:"center"},children:[{label:"OPERATORS ACTIVE",value:"".concat(tE,"/").concat(h.length)},{label:"CONVERSATIONS",value:"".concat(Object.values(f).filter(e=>e.length>0).length)}].map(e=>{let{label:t,value:n}=e;return(0,a.jsxs)("div",{style:{background:S,border:"1px solid ".concat(T),borderRadius:3,padding:"14px 24px",textAlign:"center",minWidth:140},children:[(0,a.jsx)("div",{style:{fontFamily:'"JetBrains Mono", monospace',fontSize:8,color:"var(--ink-6)",letterSpacing:"0.14em",marginBottom:8},children:t}),(0,a.jsx)("div",{style:{fontFamily:'"JetBrains Mono", monospace',fontSize:22,fontWeight:700,color:"var(--ink)"},children:n})]},t)})}),(0,a.jsx)("p",{className:"animate-fade-in",style:{marginTop:40,fontSize:11,color:"var(--ink-6)",fontFamily:'"JetBrains Mono", monospace',letterSpacing:"0.1em"},children:"← select an agent \xb7 ⌘L to search"})]})}),em.map((e,t)=>{var n,i,o;let l=r[e];if(!l)return null;let s=t+1;return(0,a.jsxs)("div",{style:{display:"contents"},children:[(0,a.jsx)(ey,{index:s-1,weights:eS,onResize:eT,containerWidth:window.innerWidth}),(0,a.jsx)("div",{className:"animate-fade-up",style:{flex:null!=(i=eS[s])?i: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)(eb,{fallbackLabel:"".concat(l.name," pane"),onReset:()=>eg(t=>t.filter(t=>t!==e)),children:(0,a.jsx)(ev,{agentId:e,agent:l,agentCode:I[e],agentSection:A[e],messages:null!=(o=f[e])?o:[],modelOverride:y[e],onModelChange:t=>v(n=>({...n,[e]:t})),onMessagesUpdate:t=>x(n=>({...n,[e]:t})),onClose:()=>eg(t=>t.filter(t=>t!==e)),clientId:null==u||null==(n=u.customer)?void 0:n.clientId})})})]},"pane-".concat(e))})]})]})]})]})}},7659:(e,t,n)=>{Promise.resolve().then(n.bind(n,1062))}},e=>{e.O(0,[8118,8441,1255,7358],()=>e(e.s=7659)),_N_E=e.O()}]);
|