@aitne/dashboard 0.1.10 → 0.1.11
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/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +6 -9
- package/.next/build-manifest.json +3 -3
- package/.next/diagnostics/route-bundle-stats.json +592 -614
- package/.next/fallback-build-manifest.json +3 -3
- package/.next/prerender-manifest.json +54 -126
- package/.next/routes-manifest.json +27 -45
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page/next-font-manifest.json +4 -2
- package/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +15 -15
- package/.next/server/app/_not-found.segments/_full.segment.rsc +15 -15
- package/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
- package/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/activity/page/next-font-manifest.json +4 -2
- package/.next/server/app/activity/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/activity/page.js.nft.json +1 -1
- package/.next/server/app/activity/page_client-reference-manifest.js +1 -1
- package/.next/server/app/activity.html +1 -1
- package/.next/server/app/activity.rsc +27 -25
- package/.next/server/app/activity.segments/_full.segment.rsc +27 -25
- package/.next/server/app/activity.segments/_head.segment.rsc +4 -4
- package/.next/server/app/activity.segments/_index.segment.rsc +10 -10
- package/.next/server/app/activity.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/activity.segments/activity/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/activity.segments/activity.segment.rsc +4 -4
- package/.next/server/app/agents/[slug]/executions/page/next-font-manifest.json +4 -2
- package/.next/server/app/agents/[slug]/executions/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/agents/[slug]/executions/page.js.nft.json +1 -1
- package/.next/server/app/agents/[slug]/executions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/agents/[slug]/page/next-font-manifest.json +4 -2
- package/.next/server/app/agents/[slug]/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/agents/[slug]/page.js.nft.json +1 -1
- package/.next/server/app/agents/[slug]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/agents/page/next-font-manifest.json +4 -2
- package/.next/server/app/agents/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/agents/page.js.nft.json +1 -1
- package/.next/server/app/agents/page_client-reference-manifest.js +1 -1
- package/.next/server/app/agents.html +1 -1
- package/.next/server/app/agents.rsc +18 -17
- package/.next/server/app/agents.segments/_full.segment.rsc +18 -17
- package/.next/server/app/agents.segments/_head.segment.rsc +4 -4
- package/.next/server/app/agents.segments/_index.segment.rsc +10 -10
- package/.next/server/app/agents.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/agents.segments/agents.segment.rsc +3 -3
- package/.next/server/app/analytics/page/next-font-manifest.json +4 -2
- package/.next/server/app/analytics/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/analytics/page.js.nft.json +1 -1
- package/.next/server/app/analytics/page_client-reference-manifest.js +1 -1
- package/.next/server/app/analytics.html +1 -1
- package/.next/server/app/analytics.rsc +25 -23
- package/.next/server/app/analytics.segments/_full.segment.rsc +25 -23
- package/.next/server/app/analytics.segments/_head.segment.rsc +4 -4
- package/.next/server/app/analytics.segments/_index.segment.rsc +10 -10
- package/.next/server/app/analytics.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/analytics.segments/analytics/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/analytics.segments/analytics.segment.rsc +4 -4
- package/.next/server/app/browser/page/app-paths-manifest.json +3 -0
- package/.next/server/app/browser/page/next-font-manifest.json +8 -0
- package/.next/server/app/{settings/advanced → browser}/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/browser/page.js +15 -0
- package/.next/server/app/browser/page.js.nft.json +1 -0
- package/.next/server/app/browser/page_client-reference-manifest.js +3 -0
- package/.next/server/app/browser-tasks/[id]/page/next-font-manifest.json +4 -2
- package/.next/server/app/browser-tasks/[id]/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/browser-tasks/[id]/page.js.nft.json +1 -1
- package/.next/server/app/browser-tasks/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/browser-tasks/page/next-font-manifest.json +4 -2
- package/.next/server/app/browser-tasks/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/browser-tasks/page.js.nft.json +1 -1
- package/.next/server/app/browser-tasks/page_client-reference-manifest.js +1 -1
- package/.next/server/app/browser-tasks.html +1 -1
- package/.next/server/app/browser-tasks.rsc +18 -17
- package/.next/server/app/browser-tasks.segments/_full.segment.rsc +18 -17
- package/.next/server/app/browser-tasks.segments/_head.segment.rsc +4 -4
- package/.next/server/app/browser-tasks.segments/_index.segment.rsc +10 -10
- package/.next/server/app/browser-tasks.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/browser-tasks.segments/browser-tasks/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/browser-tasks.segments/browser-tasks.segment.rsc +3 -3
- package/.next/server/app/browser.html +1 -0
- package/.next/server/app/browser.meta +15 -0
- package/.next/server/app/browser.rsc +27 -0
- package/.next/server/app/browser.segments/_full.segment.rsc +27 -0
- package/.next/server/app/browser.segments/_head.segment.rsc +6 -0
- package/.next/server/app/browser.segments/_index.segment.rsc +11 -0
- package/.next/server/app/browser.segments/_tree.segment.rsc +3 -0
- package/.next/server/app/browser.segments/browser/__PAGE__.segment.rsc +9 -0
- package/.next/server/app/browser.segments/browser.segment.rsc +5 -0
- package/.next/server/app/chat/page/next-font-manifest.json +4 -2
- package/.next/server/app/chat/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/chat/page.js.nft.json +1 -1
- package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
- package/.next/server/app/chat.html +1 -1
- package/.next/server/app/chat.rsc +18 -17
- package/.next/server/app/chat.segments/_full.segment.rsc +18 -17
- package/.next/server/app/chat.segments/_head.segment.rsc +4 -4
- package/.next/server/app/chat.segments/_index.segment.rsc +10 -10
- package/.next/server/app/chat.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/chat.segments/chat/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/chat.segments/chat.segment.rsc +3 -3
- package/.next/server/app/connections/calendar/page/next-font-manifest.json +4 -2
- package/.next/server/app/connections/calendar/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/connections/calendar/page.js.nft.json +1 -1
- package/.next/server/app/connections/calendar/page_client-reference-manifest.js +1 -1
- package/.next/server/app/connections/calendar.html +1 -1
- package/.next/server/app/connections/calendar.rsc +19 -18
- package/.next/server/app/connections/calendar.segments/_full.segment.rsc +19 -18
- package/.next/server/app/connections/calendar.segments/_head.segment.rsc +4 -4
- package/.next/server/app/connections/calendar.segments/_index.segment.rsc +10 -10
- package/.next/server/app/connections/calendar.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/connections/calendar.segments/connections/calendar/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/connections/calendar.segments/connections/calendar.segment.rsc +3 -3
- package/.next/server/app/connections/calendar.segments/connections.segment.rsc +4 -4
- package/.next/server/app/connections/journal/page/next-font-manifest.json +4 -2
- package/.next/server/app/connections/journal/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/connections/journal/page.js.nft.json +1 -1
- package/.next/server/app/connections/journal/page_client-reference-manifest.js +1 -1
- package/.next/server/app/connections/journal.html +1 -1
- package/.next/server/app/connections/journal.rsc +18 -17
- package/.next/server/app/connections/journal.segments/_full.segment.rsc +18 -17
- package/.next/server/app/connections/journal.segments/_head.segment.rsc +4 -4
- package/.next/server/app/connections/journal.segments/_index.segment.rsc +10 -10
- package/.next/server/app/connections/journal.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/connections/journal.segments/connections/journal/__PAGE__.segment.rsc +3 -3
- package/.next/server/app/connections/journal.segments/connections/journal.segment.rsc +3 -3
- package/.next/server/app/connections/journal.segments/connections.segment.rsc +4 -4
- package/.next/server/app/connections/mail/page/next-font-manifest.json +4 -2
- package/.next/server/app/connections/mail/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/connections/mail/page.js.nft.json +1 -1
- package/.next/server/app/connections/mail/page_client-reference-manifest.js +1 -1
- package/.next/server/app/connections/mail.html +1 -1
- package/.next/server/app/connections/mail.rsc +19 -18
- package/.next/server/app/connections/mail.segments/_full.segment.rsc +19 -18
- package/.next/server/app/connections/mail.segments/_head.segment.rsc +4 -4
- package/.next/server/app/connections/mail.segments/_index.segment.rsc +10 -10
- package/.next/server/app/connections/mail.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/connections/mail.segments/connections/mail/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/connections/mail.segments/connections/mail.segment.rsc +3 -3
- package/.next/server/app/connections/mail.segments/connections.segment.rsc +4 -4
- package/.next/server/app/connections/mcp/page/next-font-manifest.json +4 -2
- package/.next/server/app/connections/mcp/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/connections/mcp/page.js.nft.json +1 -1
- package/.next/server/app/connections/mcp/page_client-reference-manifest.js +1 -1
- package/.next/server/app/connections/mcp.html +1 -1
- package/.next/server/app/connections/mcp.rsc +19 -18
- package/.next/server/app/connections/mcp.segments/_full.segment.rsc +19 -18
- package/.next/server/app/connections/mcp.segments/_head.segment.rsc +4 -4
- package/.next/server/app/connections/mcp.segments/_index.segment.rsc +10 -10
- package/.next/server/app/connections/mcp.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/connections/mcp.segments/connections/mcp/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/connections/mcp.segments/connections/mcp.segment.rsc +3 -3
- package/.next/server/app/connections/mcp.segments/connections.segment.rsc +4 -4
- package/.next/server/app/connections/messaging/page/next-font-manifest.json +4 -2
- package/.next/server/app/connections/messaging/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/connections/messaging/page.js.nft.json +1 -1
- package/.next/server/app/connections/messaging/page_client-reference-manifest.js +1 -1
- package/.next/server/app/connections/messaging.html +1 -1
- package/.next/server/app/connections/messaging.rsc +19 -18
- package/.next/server/app/connections/messaging.segments/_full.segment.rsc +19 -18
- package/.next/server/app/connections/messaging.segments/_head.segment.rsc +4 -4
- package/.next/server/app/connections/messaging.segments/_index.segment.rsc +10 -10
- package/.next/server/app/connections/messaging.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/connections/messaging.segments/connections/messaging/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/connections/messaging.segments/connections/messaging.segment.rsc +3 -3
- package/.next/server/app/connections/messaging.segments/connections.segment.rsc +4 -4
- package/.next/server/app/connections/notes/page/app-paths-manifest.json +3 -0
- package/.next/server/app/connections/notes/page/next-font-manifest.json +8 -0
- package/.next/server/app/{settings/backends → connections/notes}/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/connections/{knowledge → notes}/page.js +6 -6
- package/.next/server/app/{settings/schedule → connections/notes}/page.js.nft.json +1 -1
- package/.next/server/app/connections/notes/page_client-reference-manifest.js +3 -0
- package/.next/server/app/connections/notes.html +1 -0
- package/.next/server/app/connections/{knowledge.meta → notes.meta} +3 -3
- package/.next/server/app/connections/notes.rsc +28 -0
- package/.next/server/app/connections/notes.segments/_full.segment.rsc +28 -0
- package/.next/server/app/connections/notes.segments/_head.segment.rsc +6 -0
- package/.next/server/app/connections/notes.segments/_index.segment.rsc +11 -0
- package/.next/server/app/connections/notes.segments/_tree.segment.rsc +3 -0
- package/.next/server/app/connections/notes.segments/connections/notes/__PAGE__.segment.rsc +9 -0
- package/.next/server/app/connections/notes.segments/connections/notes.segment.rsc +5 -0
- package/.next/server/app/connections/notes.segments/connections.segment.rsc +5 -0
- package/.next/server/app/connections/page/next-font-manifest.json +4 -2
- package/.next/server/app/connections/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/connections/page.js.nft.json +1 -1
- package/.next/server/app/connections/page_client-reference-manifest.js +1 -1
- package/.next/server/app/connections/repositories/page/next-font-manifest.json +4 -2
- package/.next/server/app/connections/repositories/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/connections/repositories/page.js.nft.json +1 -1
- package/.next/server/app/connections/repositories/page_client-reference-manifest.js +1 -1
- package/.next/server/app/connections/repositories.html +1 -1
- package/.next/server/app/connections/repositories.rsc +23 -21
- package/.next/server/app/connections/repositories.segments/_full.segment.rsc +23 -21
- package/.next/server/app/connections/repositories.segments/_head.segment.rsc +4 -4
- package/.next/server/app/connections/repositories.segments/_index.segment.rsc +10 -10
- package/.next/server/app/connections/repositories.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/connections/repositories.segments/connections/repositories/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/connections/repositories.segments/connections/repositories.segment.rsc +3 -3
- package/.next/server/app/connections/repositories.segments/connections.segment.rsc +4 -4
- package/.next/server/app/connections/routines/page/next-font-manifest.json +4 -2
- package/.next/server/app/connections/routines/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/connections/routines/page.js.nft.json +1 -1
- package/.next/server/app/connections/routines/page_client-reference-manifest.js +1 -1
- package/.next/server/app/connections/routines.html +1 -1
- package/.next/server/app/connections/routines.rsc +18 -17
- package/.next/server/app/connections/routines.segments/_full.segment.rsc +18 -17
- package/.next/server/app/connections/routines.segments/_head.segment.rsc +4 -4
- package/.next/server/app/connections/routines.segments/_index.segment.rsc +10 -10
- package/.next/server/app/connections/routines.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/connections/routines.segments/connections/routines/__PAGE__.segment.rsc +3 -3
- package/.next/server/app/connections/routines.segments/connections/routines.segment.rsc +3 -3
- package/.next/server/app/connections/routines.segments/connections.segment.rsc +4 -4
- package/.next/server/app/connections.html +1 -1
- package/.next/server/app/connections.rsc +17 -16
- package/.next/server/app/connections.segments/_full.segment.rsc +17 -16
- package/.next/server/app/connections.segments/_head.segment.rsc +4 -4
- package/.next/server/app/connections.segments/_index.segment.rsc +10 -10
- package/.next/server/app/connections.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/connections.segments/connections/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/connections.segments/connections.segment.rsc +4 -4
- package/.next/server/app/conversations/[id]/page/next-font-manifest.json +4 -2
- package/.next/server/app/conversations/[id]/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/conversations/[id]/page.js.nft.json +1 -1
- package/.next/server/app/conversations/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/conversations/page/next-font-manifest.json +4 -2
- package/.next/server/app/conversations/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/conversations/page.js.nft.json +1 -1
- package/.next/server/app/conversations/page_client-reference-manifest.js +1 -1
- package/.next/server/app/conversations.html +1 -1
- package/.next/server/app/conversations.rsc +16 -15
- package/.next/server/app/conversations.segments/_full.segment.rsc +16 -15
- package/.next/server/app/conversations.segments/_head.segment.rsc +4 -4
- package/.next/server/app/conversations.segments/_index.segment.rsc +10 -10
- package/.next/server/app/conversations.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/conversations.segments/conversations/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/conversations.segments/conversations.segment.rsc +3 -3
- package/.next/server/app/docs/[[...slug]]/page/next-font-manifest.json +4 -2
- package/.next/server/app/docs/[[...slug]]/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/docs/[[...slug]]/page.js.nft.json +1 -1
- package/.next/server/app/docs/[[...slug]]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/finance/page/next-font-manifest.json +4 -2
- package/.next/server/app/finance/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/finance/page.js.nft.json +1 -1
- package/.next/server/app/finance/page_client-reference-manifest.js +1 -1
- package/.next/server/app/finance.html +1 -1
- package/.next/server/app/finance.rsc +18 -17
- package/.next/server/app/finance.segments/_full.segment.rsc +18 -17
- package/.next/server/app/finance.segments/_head.segment.rsc +4 -4
- package/.next/server/app/finance.segments/_index.segment.rsc +10 -10
- package/.next/server/app/finance.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/finance.segments/finance/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/finance.segments/finance.segment.rsc +3 -3
- package/.next/server/app/git/page/next-font-manifest.json +4 -2
- package/.next/server/app/git/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/git/page.js.nft.json +1 -1
- package/.next/server/app/git/page_client-reference-manifest.js +1 -1
- package/.next/server/app/git.html +1 -1
- package/.next/server/app/git.rsc +18 -17
- package/.next/server/app/git.segments/_full.segment.rsc +18 -17
- package/.next/server/app/git.segments/_head.segment.rsc +4 -4
- package/.next/server/app/git.segments/_index.segment.rsc +10 -10
- package/.next/server/app/git.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/git.segments/git/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/git.segments/git.segment.rsc +3 -3
- package/.next/server/app/health/page/next-font-manifest.json +4 -2
- package/.next/server/app/health/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/health/page.js.nft.json +1 -1
- package/.next/server/app/health/page_client-reference-manifest.js +1 -1
- package/.next/server/app/health.html +1 -1
- package/.next/server/app/health.rsc +18 -17
- package/.next/server/app/health.segments/_full.segment.rsc +18 -17
- package/.next/server/app/health.segments/_head.segment.rsc +4 -4
- package/.next/server/app/health.segments/_index.segment.rsc +10 -10
- package/.next/server/app/health.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/health.segments/health/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/health.segments/health.segment.rsc +3 -3
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +18 -17
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/index.segments/_full.segment.rsc +18 -17
- package/.next/server/app/index.segments/_head.segment.rsc +4 -4
- package/.next/server/app/index.segments/_index.segment.rsc +10 -10
- package/.next/server/app/index.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/knowledge/page/next-font-manifest.json +4 -2
- package/.next/server/app/knowledge/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/knowledge/page.js.nft.json +1 -1
- package/.next/server/app/knowledge/page_client-reference-manifest.js +1 -1
- package/.next/server/app/knowledge.html +1 -1
- package/.next/server/app/knowledge.rsc +19 -18
- package/.next/server/app/knowledge.segments/_full.segment.rsc +19 -18
- package/.next/server/app/knowledge.segments/_head.segment.rsc +4 -4
- package/.next/server/app/knowledge.segments/_index.segment.rsc +10 -10
- package/.next/server/app/knowledge.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/knowledge.segments/knowledge/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/knowledge.segments/knowledge.segment.rsc +4 -4
- package/.next/server/app/page/next-font-manifest.json +4 -2
- package/.next/server/app/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/reading/page/next-font-manifest.json +4 -2
- package/.next/server/app/reading/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/reading/page.js.nft.json +1 -1
- package/.next/server/app/reading/page_client-reference-manifest.js +1 -1
- package/.next/server/app/reading.html +1 -1
- package/.next/server/app/reading.rsc +18 -17
- package/.next/server/app/reading.segments/_full.segment.rsc +18 -17
- package/.next/server/app/reading.segments/_head.segment.rsc +4 -4
- package/.next/server/app/reading.segments/_index.segment.rsc +10 -10
- package/.next/server/app/reading.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/reading.segments/reading/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/reading.segments/reading.segment.rsc +3 -3
- package/.next/server/app/schedule/page/next-font-manifest.json +4 -2
- package/.next/server/app/schedule/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/schedule/page.js.nft.json +1 -1
- package/.next/server/app/schedule/page_client-reference-manifest.js +1 -1
- package/.next/server/app/schedule.html +1 -1
- package/.next/server/app/schedule.rsc +18 -17
- package/.next/server/app/schedule.segments/_full.segment.rsc +18 -17
- package/.next/server/app/schedule.segments/_head.segment.rsc +4 -4
- package/.next/server/app/schedule.segments/_index.segment.rsc +10 -10
- package/.next/server/app/schedule.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/schedule.segments/schedule/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/schedule.segments/schedule.segment.rsc +3 -3
- package/.next/server/app/settings/commands/page/next-font-manifest.json +4 -2
- package/.next/server/app/settings/commands/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/settings/commands/page.js.nft.json +1 -1
- package/.next/server/app/settings/commands/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/commands.html +1 -1
- package/.next/server/app/settings/commands.rsc +19 -18
- package/.next/server/app/settings/commands.segments/_full.segment.rsc +19 -18
- package/.next/server/app/settings/commands.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/commands.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/commands.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/settings/commands.segments/settings/commands/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/commands.segments/settings/commands.segment.rsc +3 -3
- package/.next/server/app/settings/commands.segments/settings.segment.rsc +4 -4
- package/.next/server/app/settings/danger-zone/page/app-paths-manifest.json +3 -0
- package/.next/server/app/settings/danger-zone/page/next-font-manifest.json +8 -0
- package/.next/server/app/{connections/knowledge → settings/danger-zone}/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/settings/{advanced → danger-zone}/page.js +6 -6
- package/.next/server/app/settings/{connections → danger-zone}/page.js.nft.json +1 -1
- package/.next/server/app/settings/danger-zone/page_client-reference-manifest.js +3 -0
- package/.next/server/app/settings/danger-zone.html +1 -0
- package/.next/server/app/settings/{advanced.meta → danger-zone.meta} +3 -3
- package/.next/server/app/settings/danger-zone.rsc +28 -0
- package/.next/server/app/settings/danger-zone.segments/_full.segment.rsc +28 -0
- package/.next/server/app/settings/danger-zone.segments/_head.segment.rsc +6 -0
- package/.next/server/app/settings/danger-zone.segments/_index.segment.rsc +11 -0
- package/.next/server/app/settings/danger-zone.segments/_tree.segment.rsc +3 -0
- package/.next/server/app/settings/danger-zone.segments/settings/danger-zone/__PAGE__.segment.rsc +9 -0
- package/.next/server/app/settings/danger-zone.segments/settings/danger-zone.segment.rsc +5 -0
- package/.next/server/app/settings/danger-zone.segments/settings.segment.rsc +5 -0
- package/.next/server/app/settings/hours/page/app-paths-manifest.json +3 -0
- package/.next/server/app/settings/hours/page/next-font-manifest.json +8 -0
- package/.next/server/app/settings/{connections → hours}/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/settings/{routines → hours}/page.js +6 -6
- package/.next/server/app/settings/{journal → hours}/page.js.nft.json +1 -1
- package/.next/server/app/settings/hours/page_client-reference-manifest.js +3 -0
- package/.next/server/app/settings/hours.html +1 -0
- package/.next/server/app/settings/{journal.meta → hours.meta} +3 -3
- package/.next/server/app/settings/hours.rsc +28 -0
- package/.next/server/app/settings/hours.segments/_full.segment.rsc +28 -0
- package/.next/server/app/settings/hours.segments/_head.segment.rsc +6 -0
- package/.next/server/app/settings/hours.segments/_index.segment.rsc +11 -0
- package/.next/server/app/settings/hours.segments/_tree.segment.rsc +3 -0
- package/.next/server/app/settings/hours.segments/settings/hours/__PAGE__.segment.rsc +9 -0
- package/.next/server/app/settings/hours.segments/settings/hours.segment.rsc +5 -0
- package/.next/server/app/settings/hours.segments/settings.segment.rsc +5 -0
- package/.next/server/app/settings/infrastructure/page/app-paths-manifest.json +3 -0
- package/.next/server/app/settings/infrastructure/page/next-font-manifest.json +8 -0
- package/.next/server/app/settings/infrastructure/page/react-loadable-manifest.json +8 -0
- package/.next/server/app/settings/{schedule → infrastructure}/page.js +6 -6
- package/.next/server/app/settings/{backends → infrastructure}/page.js.nft.json +1 -1
- package/.next/server/app/settings/infrastructure/page_client-reference-manifest.js +3 -0
- package/.next/server/app/settings/infrastructure.html +1 -0
- package/.next/server/app/settings/{connections.meta → infrastructure.meta} +3 -3
- package/.next/server/app/settings/infrastructure.rsc +28 -0
- package/.next/server/app/settings/infrastructure.segments/_full.segment.rsc +28 -0
- package/.next/server/app/settings/infrastructure.segments/_head.segment.rsc +6 -0
- package/.next/server/app/settings/infrastructure.segments/_index.segment.rsc +11 -0
- package/.next/server/app/settings/infrastructure.segments/_tree.segment.rsc +3 -0
- package/.next/server/app/settings/infrastructure.segments/settings/infrastructure/__PAGE__.segment.rsc +9 -0
- package/.next/server/app/settings/infrastructure.segments/settings/infrastructure.segment.rsc +5 -0
- package/.next/server/app/settings/infrastructure.segments/settings.segment.rsc +5 -0
- package/.next/server/app/settings/integrations/browser-history/page/next-font-manifest.json +4 -2
- package/.next/server/app/settings/integrations/browser-history/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/settings/integrations/browser-history/page.js.nft.json +1 -1
- package/.next/server/app/settings/integrations/browser-history/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/integrations/browser-history-managed/b4/page/next-font-manifest.json +4 -2
- package/.next/server/app/settings/integrations/browser-history-managed/b4/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/settings/integrations/browser-history-managed/b4/page.js.nft.json +1 -1
- package/.next/server/app/settings/integrations/browser-history-managed/b4/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/integrations/browser-history-managed/b4.html +1 -1
- package/.next/server/app/settings/integrations/browser-history-managed/b4.rsc +19 -18
- package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/_full.segment.rsc +19 -18
- package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/settings/integrations/browser-history-managed/b4/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/settings/integrations/browser-history-managed/b4.segment.rsc +3 -3
- package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/settings/integrations/browser-history-managed.segment.rsc +3 -3
- package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/settings/integrations.segment.rsc +3 -3
- package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/settings.segment.rsc +4 -4
- package/.next/server/app/settings/integrations/browser-history-managed/page/next-font-manifest.json +4 -2
- package/.next/server/app/settings/integrations/browser-history-managed/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/settings/integrations/browser-history-managed/page.js.nft.json +1 -1
- package/.next/server/app/settings/integrations/browser-history-managed/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/integrations/browser-history-managed.html +1 -1
- package/.next/server/app/settings/integrations/browser-history-managed.rsc +19 -18
- package/.next/server/app/settings/integrations/browser-history-managed.segments/_full.segment.rsc +19 -18
- package/.next/server/app/settings/integrations/browser-history-managed.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/integrations/browser-history-managed.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/integrations/browser-history-managed.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/settings/integrations/browser-history-managed.segments/settings/integrations/browser-history-managed/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/integrations/browser-history-managed.segments/settings/integrations/browser-history-managed.segment.rsc +3 -3
- package/.next/server/app/settings/integrations/browser-history-managed.segments/settings/integrations.segment.rsc +3 -3
- package/.next/server/app/settings/integrations/browser-history-managed.segments/settings.segment.rsc +4 -4
- package/.next/server/app/settings/integrations/browser-history.html +1 -1
- package/.next/server/app/settings/integrations/browser-history.rsc +19 -18
- package/.next/server/app/settings/integrations/browser-history.segments/_full.segment.rsc +19 -18
- package/.next/server/app/settings/integrations/browser-history.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/integrations/browser-history.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/integrations/browser-history.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/settings/integrations/browser-history.segments/settings/integrations/browser-history/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/integrations/browser-history.segments/settings/integrations/browser-history.segment.rsc +3 -3
- package/.next/server/app/settings/integrations/browser-history.segments/settings/integrations.segment.rsc +3 -3
- package/.next/server/app/settings/integrations/browser-history.segments/settings.segment.rsc +4 -4
- package/.next/server/app/settings/lessons/page/next-font-manifest.json +4 -2
- package/.next/server/app/settings/lessons/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/settings/lessons/page.js.nft.json +1 -1
- package/.next/server/app/settings/lessons/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/lessons.html +1 -1
- package/.next/server/app/settings/lessons.rsc +19 -18
- package/.next/server/app/settings/lessons.segments/_full.segment.rsc +19 -18
- package/.next/server/app/settings/lessons.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/lessons.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/lessons.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/settings/lessons.segments/settings/lessons/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/lessons.segments/settings/lessons.segment.rsc +3 -3
- package/.next/server/app/settings/lessons.segments/settings.segment.rsc +4 -4
- package/.next/server/app/settings/management/page/next-font-manifest.json +4 -2
- package/.next/server/app/settings/management/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/settings/management/page.js.nft.json +1 -1
- package/.next/server/app/settings/management/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/management.html +1 -1
- package/.next/server/app/settings/management.rsc +19 -18
- package/.next/server/app/settings/management.segments/_full.segment.rsc +19 -18
- package/.next/server/app/settings/management.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/management.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/management.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/settings/management.segments/settings/management/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/management.segments/settings/management.segment.rsc +3 -3
- package/.next/server/app/settings/management.segments/settings.segment.rsc +4 -4
- package/.next/server/app/settings/models/page/next-font-manifest.json +4 -2
- package/.next/server/app/settings/models/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/settings/models/page.js.nft.json +1 -1
- package/.next/server/app/settings/models/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/models.html +1 -1
- package/.next/server/app/settings/models.rsc +19 -18
- package/.next/server/app/settings/models.segments/_full.segment.rsc +19 -18
- package/.next/server/app/settings/models.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/models.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/models.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/settings/models.segments/settings/models/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/models.segments/settings/models.segment.rsc +3 -3
- package/.next/server/app/settings/models.segments/settings.segment.rsc +4 -4
- package/.next/server/app/settings/page/next-font-manifest.json +4 -2
- package/.next/server/app/settings/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/safety/page/app-paths-manifest.json +3 -0
- package/.next/server/app/settings/safety/page/next-font-manifest.json +8 -0
- package/.next/server/app/settings/safety/page/react-loadable-manifest.json +8 -0
- package/.next/server/app/settings/{journal → safety}/page.js +6 -6
- package/.next/server/app/settings/{processes → safety}/page.js.nft.json +1 -1
- package/.next/server/app/settings/safety/page_client-reference-manifest.js +3 -0
- package/.next/server/app/settings/safety.html +1 -0
- package/.next/server/app/settings/{backends.meta → safety.meta} +3 -3
- package/.next/server/app/settings/safety.rsc +28 -0
- package/.next/server/app/settings/safety.segments/_full.segment.rsc +28 -0
- package/.next/server/app/settings/safety.segments/_head.segment.rsc +6 -0
- package/.next/server/app/settings/safety.segments/_index.segment.rsc +11 -0
- package/.next/server/app/settings/safety.segments/_tree.segment.rsc +3 -0
- package/.next/server/app/settings/safety.segments/settings/safety/__PAGE__.segment.rsc +9 -0
- package/.next/server/app/settings/safety.segments/settings/safety.segment.rsc +5 -0
- package/.next/server/app/settings/safety.segments/settings.segment.rsc +5 -0
- package/.next/server/app/settings/self-learning/page/next-font-manifest.json +4 -2
- package/.next/server/app/settings/self-learning/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/settings/self-learning/page.js.nft.json +1 -1
- package/.next/server/app/settings/self-learning/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/self-learning.html +1 -1
- package/.next/server/app/settings/self-learning.rsc +19 -18
- package/.next/server/app/settings/self-learning.segments/_full.segment.rsc +19 -18
- package/.next/server/app/settings/self-learning.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/self-learning.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/self-learning.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/settings/self-learning.segments/settings/self-learning/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/self-learning.segments/settings/self-learning.segment.rsc +3 -3
- package/.next/server/app/settings/self-learning.segments/settings.segment.rsc +4 -4
- package/.next/server/app/settings/wiki/page/next-font-manifest.json +4 -2
- package/.next/server/app/settings/wiki/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/settings/wiki/page.js.nft.json +1 -1
- package/.next/server/app/settings/wiki/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/wiki/timeline/page/next-font-manifest.json +4 -2
- package/.next/server/app/settings/wiki/timeline/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/settings/wiki/timeline/page.js.nft.json +1 -1
- package/.next/server/app/settings/wiki/timeline/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/wiki/timeline.html +1 -1
- package/.next/server/app/settings/wiki/timeline.rsc +17 -16
- package/.next/server/app/settings/wiki/timeline.segments/_full.segment.rsc +17 -16
- package/.next/server/app/settings/wiki/timeline.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/wiki/timeline.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/wiki/timeline.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/settings/wiki/timeline.segments/settings/wiki/timeline/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/settings/wiki/timeline.segments/settings/wiki/timeline.segment.rsc +3 -3
- package/.next/server/app/settings/wiki/timeline.segments/settings/wiki.segment.rsc +3 -3
- package/.next/server/app/settings/wiki/timeline.segments/settings.segment.rsc +4 -4
- package/.next/server/app/settings/wiki.html +1 -1
- package/.next/server/app/settings/wiki.rsc +19 -18
- package/.next/server/app/settings/wiki.segments/_full.segment.rsc +19 -18
- package/.next/server/app/settings/wiki.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/wiki.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/wiki.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/settings/wiki.segments/settings/wiki/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/wiki.segments/settings/wiki.segment.rsc +3 -3
- package/.next/server/app/settings/wiki.segments/settings.segment.rsc +4 -4
- package/.next/server/app/settings.html +1 -1
- package/.next/server/app/settings.rsc +19 -18
- package/.next/server/app/settings.segments/_full.segment.rsc +19 -18
- package/.next/server/app/settings.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings.segments/settings.segment.rsc +4 -4
- package/.next/server/app/setup/page/next-font-manifest.json +4 -2
- package/.next/server/app/setup/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/setup/page.js.nft.json +1 -1
- package/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/.next/server/app/setup.html +1 -1
- package/.next/server/app/setup.rsc +18 -17
- package/.next/server/app/setup.segments/_full.segment.rsc +18 -17
- package/.next/server/app/setup.segments/_head.segment.rsc +4 -4
- package/.next/server/app/setup.segments/_index.segment.rsc +10 -10
- package/.next/server/app/setup.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/setup.segments/setup.segment.rsc +3 -3
- package/.next/server/app/trip/page/next-font-manifest.json +4 -2
- package/.next/server/app/trip/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/trip/page.js.nft.json +1 -1
- package/.next/server/app/trip/page_client-reference-manifest.js +1 -1
- package/.next/server/app/trip.html +1 -1
- package/.next/server/app/trip.rsc +18 -17
- package/.next/server/app/trip.segments/_full.segment.rsc +18 -17
- package/.next/server/app/trip.segments/_head.segment.rsc +4 -4
- package/.next/server/app/trip.segments/_index.segment.rsc +10 -10
- package/.next/server/app/trip.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/trip.segments/trip/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/trip.segments/trip.segment.rsc +3 -3
- package/.next/server/app/wiki/page/next-font-manifest.json +4 -2
- package/.next/server/app/wiki/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/wiki/page.js.nft.json +1 -1
- package/.next/server/app/wiki/page_client-reference-manifest.js +1 -1
- package/.next/server/app/wiki/timeline/page/next-font-manifest.json +4 -2
- package/.next/server/app/wiki/timeline/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/wiki/timeline/page.js.nft.json +1 -1
- package/.next/server/app/wiki/timeline/page_client-reference-manifest.js +1 -1
- package/.next/server/app/wiki/timeline.html +1 -1
- package/.next/server/app/wiki/timeline.rsc +18 -17
- package/.next/server/app/wiki/timeline.segments/_full.segment.rsc +18 -17
- package/.next/server/app/wiki/timeline.segments/_head.segment.rsc +4 -4
- package/.next/server/app/wiki/timeline.segments/_index.segment.rsc +10 -10
- package/.next/server/app/wiki/timeline.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/wiki/timeline.segments/wiki/timeline/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/wiki/timeline.segments/wiki/timeline.segment.rsc +3 -3
- package/.next/server/app/wiki/timeline.segments/wiki.segment.rsc +3 -3
- package/.next/server/app/wiki.html +1 -1
- package/.next/server/app/wiki.rsc +18 -17
- package/.next/server/app/wiki.segments/_full.segment.rsc +18 -17
- package/.next/server/app/wiki.segments/_head.segment.rsc +4 -4
- package/.next/server/app/wiki.segments/_index.segment.rsc +10 -10
- package/.next/server/app/wiki.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/wiki.segments/wiki/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/wiki.segments/wiki.segment.rsc +3 -3
- package/.next/server/app-paths-manifest.json +6 -9
- package/.next/server/chunks/0z~i_next_dist_esm_build_templates_app-route_0o_o_hp.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__02gp4s0._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0gckkni._.js +1 -1
- package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_connections_notes_page_actions_04zn1-i.js +3 -0
- package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_danger-zone_page_actions_0mp3gc-.js +3 -0
- package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_safety_page_actions_05rsfax.js +3 -0
- package/.next/server/chunks/ssr/0juq_dashboard_src_app_settings_integrations_browser-history_page_tsx_0.30t~j._.js +1 -1
- package/.next/server/chunks/ssr/0x9-__next-internal_server_app_settings_infrastructure_page_actions_0u8fwic.js +3 -0
- package/.next/server/chunks/ssr/0x9-_src_app_settings_integrations_browser-history-managed_b4_page_tsx_03zkdyv._.js +1 -1
- package/.next/server/chunks/ssr/0x9-_src_app_settings_integrations_browser-history-managed_page_tsx_0q.v5ph._.js +1 -1
- package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0-xf3nq.js +1 -1
- package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_05t.o5v.js +4 -0
- package/.next/server/chunks/ssr/{0z~i_next_dist_esm_build_templates_app-page_0rzk_wb.js → 0z~i_next_dist_esm_build_templates_app-page_07tjgqy.js} +3 -3
- package/.next/server/chunks/ssr/{0z~i_next_dist_esm_build_templates_app-page_0dgjd77.js → 0z~i_next_dist_esm_build_templates_app-page_08-8pml.js} +3 -3
- package/.next/server/chunks/ssr/{0z~i_next_dist_esm_build_templates_app-page_0~l1-oo.js → 0z~i_next_dist_esm_build_templates_app-page_0_hw.~x.js} +3 -3
- package/.next/server/chunks/ssr/{0z~i_next_dist_esm_build_templates_app-page_0i5nfg6.js → 0z~i_next_dist_esm_build_templates_app-page_0gja0sp.js} +3 -3
- package/.next/server/chunks/ssr/{0z~i_next_dist_esm_build_templates_app-page_0i3pbzc.js → 0z~i_next_dist_esm_build_templates_app-page_0xk7dvj.js} +3 -3
- package/.next/server/chunks/ssr/{[root-of-the-server]__0.oq_nd._.js → [root-of-the-server]__064iw-m._.js} +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__0bcu47h._.js +3 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__0hxae6t._.js → [root-of-the-server]__0dz8grn._.js} +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__0e3togs._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0own5qk._.js +7 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__0k4~6v4._.js → [root-of-the-server]__0p.rqkz._.js} +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__0twuzim._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0v.2-w_._.js +9 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__0ku1mlh._.js → [root-of-the-server]__0x90fri._.js} +2 -2
- package/.next/server/chunks/ssr/{[root-of-the-server]__138v34b._.js → [root-of-the-server]__12ocbb6._.js} +2 -2
- package/.next/server/chunks/ssr/_0-fa0e6._.js +3 -0
- package/.next/server/chunks/ssr/_0-fv_sr._.js +1 -1
- package/.next/server/chunks/ssr/_0.83~vc._.js +3 -0
- package/.next/server/chunks/ssr/_0.buz~z._.js +3 -0
- package/.next/server/chunks/ssr/_00m~lu3._.js +3 -0
- package/.next/server/chunks/ssr/_00yd82b._.js +3 -0
- package/.next/server/chunks/ssr/_01u8_20._.js +1 -1
- package/.next/server/chunks/ssr/_02-~4_x._.js +3 -0
- package/.next/server/chunks/ssr/_03ylkmo._.js +1 -1
- package/.next/server/chunks/ssr/_042qll3._.js +3 -0
- package/.next/server/chunks/ssr/_05-nasq._.js +3 -0
- package/.next/server/chunks/ssr/_052c-d8._.js +1 -1
- package/.next/server/chunks/ssr/_05etcnw._.js +3 -0
- package/.next/server/chunks/ssr/_06pfh8i._.js +3 -0
- package/.next/server/chunks/ssr/_07y8~wo._.js +3 -0
- package/.next/server/chunks/ssr/_0837jo1._.js +1 -1
- package/.next/server/chunks/ssr/_095g5nv._.js +3 -0
- package/.next/server/chunks/ssr/_0_59iz5._.js +3 -0
- package/.next/server/chunks/ssr/_0_mohhy._.js +3 -0
- package/.next/server/chunks/ssr/_0_qa7ix._.js +3 -0
- package/.next/server/chunks/ssr/_0a0gitj._.js +3 -0
- package/.next/server/chunks/ssr/_0bbgll1._.js +3 -0
- package/.next/server/chunks/ssr/_0bsns8f._.js +3 -0
- package/.next/server/chunks/ssr/_0cus~q3._.js +3 -0
- package/.next/server/chunks/ssr/_0cwcz17._.js +1 -1
- package/.next/server/chunks/ssr/_0do3r93._.js +3 -0
- package/.next/server/chunks/ssr/_0eoqkp.._.js +3 -0
- package/.next/server/chunks/ssr/_0fse1qi._.js +3 -0
- package/.next/server/chunks/ssr/_0g7_r5i._.js +1 -1
- package/.next/server/chunks/ssr/_0h-mq6i._.js +3 -0
- package/.next/server/chunks/ssr/_0h7l~qt._.js +3 -0
- package/.next/server/chunks/ssr/_0hojxqy._.js +1 -1
- package/.next/server/chunks/ssr/_0jlpcde._.js +3 -0
- package/.next/server/chunks/ssr/_0kn1u4v._.js +3 -0
- package/.next/server/chunks/ssr/_0l7uzol._.js +3 -0
- package/.next/server/chunks/ssr/_0m~vcd.._.js +3 -0
- package/.next/server/chunks/ssr/_0n2_n8d._.js +3 -0
- package/.next/server/chunks/ssr/_0p4ugyq._.js +3 -0
- package/.next/server/chunks/ssr/_0pbcc~c._.js +3 -0
- package/.next/server/chunks/ssr/_0q6ga5s._.js +3 -0
- package/.next/server/chunks/ssr/_0rcvmzk._.js +3 -0
- package/.next/server/chunks/ssr/_0tl98en._.js +1 -1
- package/.next/server/chunks/ssr/_0vtof91._.js +3 -0
- package/.next/server/chunks/ssr/_0wj-xi-._.js +1 -1
- package/.next/server/chunks/ssr/_0y-w3is._.js +1 -1
- package/.next/server/chunks/ssr/_0ys19k1._.js +3 -0
- package/.next/server/chunks/ssr/_0zegd8c._.js +3 -0
- package/.next/server/chunks/ssr/_0zskdhg._.js +3 -0
- package/.next/server/chunks/ssr/_0~5jogr._.js +3 -0
- package/.next/server/chunks/ssr/_10t~mm1._.js +5 -0
- package/.next/server/chunks/ssr/_12yrbbd._.js +3 -0
- package/.next/server/chunks/ssr/_12~voz0._.js +3 -0
- package/.next/server/chunks/ssr/_13x8vt3._.js +3 -0
- package/.next/server/chunks/ssr/node_modules__pnpm_0hiwu9~._.js +3 -0
- package/.next/server/chunks/ssr/packages_dashboard__next-internal_server_app_browser_page_actions_09ozuw5.js +3 -0
- package/.next/server/chunks/ssr/packages_dashboard__next-internal_server_app_settings_hours_page_actions_090o.uf.js +3 -0
- package/.next/server/chunks/ssr/packages_dashboard_src_08ni3k2._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_0dzu4m3._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_0l-df62._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_0somi_b._.js +3 -0
- package/.next/server/chunks/ssr/packages_dashboard_src_0uxs9-.._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_0wg3sud._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_0yi7124._.js +3 -0
- package/.next/server/chunks/ssr/packages_dashboard_src_0zhdaa4._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_13g~g03._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_activity_loading_tsx_0rzsqef._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_activity_page_tsx_08yep46._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_agents_[slug]_page_tsx_038yph.._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_agents_page_tsx_0simg3k._.js +2 -2
- package/.next/server/chunks/ssr/packages_dashboard_src_app_analytics_page_tsx_0tb_amd._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_browser-tasks_[id]_page_tsx_0.80q8e._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_chat_page_tsx_0i0_8pw._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_connections_mcp_page_tsx_0lc.low._.js +2 -2
- package/.next/server/chunks/ssr/packages_dashboard_src_app_connections_repositories_page_tsx_08y6paq._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_git_page_tsx_0ah19-6._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_knowledge_page_tsx_0uf4..4._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_page_tsx_0.p6n1a._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_schedule_page_tsx_0znc404._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_commands_page_tsx_0nacqrh._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_hours_page_tsx_0shgzxo._.js +3 -0
- package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_infrastructure_page_tsx_0c9oi1c._.js +3 -0
- package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_management_page_tsx_09mnin5._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_models_page_tsx_0djsx88._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_page_tsx_13_rdav._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_self-learning_page_tsx_0noj6fo._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_wiki_page_tsx_0..1tkb._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_setup_page_tsx_06k3via._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_components_0c08h~y._.js +3 -0
- package/.next/server/chunks/ssr/packages_dashboard_src_components_agents_AgentEditor_tsx_1379k-6._.js +2 -2
- package/.next/server/chunks/ssr/packages_dashboard_src_components_connections_integration-card_tsx_0yh1a-~._.js +2 -2
- package/.next/server/chunks/ssr/packages_dashboard_src_components_connections_slack-card_tsx_0mahejj._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_components_logs_event-row_tsx_0gwfgqo._.js +3 -0
- package/.next/server/chunks/ssr/packages_dashboard_src_components_mail_gmail-card_tsx_0kpway8._.js +1 -1
- package/.next/server/chunks/ssr/packages_shared_dist_index_0kuvow-.js +1 -1
- package/.next/server/edge/chunks/[root-of-the-server]__0iap10r._.js +1 -1
- package/.next/server/middleware/middleware-manifest.json +29 -5
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/middleware-manifest.json +29 -5
- package/.next/server/next-font-manifest.js +1 -1
- package/.next/server/next-font-manifest.json +51 -2
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/{i_QR0WWkZFeICcOMbfuUs → 4Wu33OvzutxPxXUu1PWPC}/_clientMiddlewareManifest.js +24 -0
- package/.next/static/chunks/0-sq9td.e1huw.js +1 -0
- package/.next/static/chunks/0-~s5n1hsw0xz.css +1 -0
- package/.next/static/chunks/0.1mo3ft90qg_.js +1 -0
- package/.next/static/chunks/0.eu.rxoo07x6.js +1 -0
- package/.next/static/chunks/0147tjztlthxv.js +1 -0
- package/.next/static/chunks/01~5c-.ttg~hv.js +1 -0
- package/.next/static/chunks/02jrxwgg0c4jp.js +1 -0
- package/.next/static/chunks/02tb-nh0a2y6t.js +1 -0
- package/.next/static/chunks/03ndokpk6o0.5.js +1 -0
- package/.next/static/chunks/03qz~hx5zgr~d.js +1 -0
- package/.next/static/chunks/042u~0qpgty0o.js +10 -0
- package/.next/static/chunks/050-z9-4lo_4l.js +1 -0
- package/.next/static/chunks/051m0t~qz1jvu.js +1 -0
- package/.next/static/chunks/0755mii5h~0jr.js +1 -0
- package/.next/static/chunks/07_-k85izz7.j.js +1 -0
- package/.next/static/chunks/07qdiaq4h1bev.js +1 -0
- package/.next/static/chunks/07w_f8nwejvtm.js +1 -0
- package/.next/static/chunks/087m534nojkn2.js +1 -0
- package/.next/static/chunks/08tuvmjn9p090.js +1 -0
- package/.next/static/chunks/09k746-3cizz1.js +19 -0
- package/.next/static/chunks/09sekcnc01we8.js +1 -0
- package/.next/static/chunks/0_-a6t77lnxg4.js +1 -0
- package/.next/static/chunks/0_b4esx30vjxq.js +1 -0
- package/.next/static/chunks/0_r~att41ue.r.js +1 -0
- package/.next/static/chunks/0cj6iorqj7he_.js +1 -0
- package/.next/static/chunks/0c~_onh_gv7zj.js +1 -0
- package/.next/static/chunks/0d13hqow~d37h.js +1 -0
- package/.next/static/chunks/0drk956_8nbwg.js +1 -0
- package/.next/static/chunks/0e-txs97b3.x9.js +1 -0
- package/.next/static/chunks/0ezl44_wv~csn.js +1 -0
- package/.next/static/chunks/0g-eqp3qwkojl.js +1 -0
- package/.next/static/chunks/0h5rf~pu59~hu.js +1 -0
- package/.next/static/chunks/0i8.oj~1w~u~..js +1 -0
- package/.next/static/chunks/0iichp621kqto.js +1 -0
- package/.next/static/chunks/{0afrwc5vvwfx4.js → 0iscxmienbk2m.js} +1 -1
- package/.next/static/chunks/0iv9k-z7~xtww.js +1 -0
- package/.next/static/chunks/0k6jf41ge3u~8.js +1 -0
- package/.next/static/chunks/0k9-e5pear~t4.js +3 -0
- package/.next/static/chunks/0kib-9vm23r0j.js +1 -0
- package/.next/static/chunks/0kj.5xdofdrz7.js +1 -0
- package/.next/static/chunks/0lbnukk03a8nv.js +1 -0
- package/.next/static/chunks/0m8e4hy-r8y-4.js +1 -0
- package/.next/static/chunks/{02k085x_j4_bz.js → 0mkryl3ctt_xh.js} +1 -1
- package/.next/static/chunks/0mxp..4l7j1dn.js +1 -0
- package/.next/static/chunks/0o61x2xdye~o2.js +1 -0
- package/.next/static/chunks/0os-c6-aqwq4d.js +1 -0
- package/.next/static/chunks/0pxjn_pm269cw.js +1 -0
- package/.next/static/chunks/0qyxjj5z_is.d.js +1 -0
- package/.next/static/chunks/0s.cyrhyscm8x.js +1 -0
- package/.next/static/chunks/0wvyy~m_e1q5c.js +3 -0
- package/.next/static/chunks/0x96~upcinv2_.js +1 -0
- package/.next/static/chunks/0zo_ws6shrfnh.js +1 -0
- package/.next/static/chunks/0~kj3qxs7kx58.js +1 -0
- package/.next/static/chunks/10rtk-h9y-705.js +2 -0
- package/.next/static/chunks/115_4xjsk0jzh.js +1 -0
- package/.next/static/chunks/12zmqqk8p-b.~.js +1 -0
- package/.next/static/chunks/135nkfxk7so9p.js +1 -0
- package/.next/static/chunks/153z3m3.a2ubk.js +5 -0
- package/.next/static/chunks/15fpord4hyosp.js +1 -0
- package/.next/static/chunks/15~h2wegwdbf4.js +1 -0
- package/.next/static/chunks/16-i4p1ipmpts.js +1 -0
- package/.next/static/chunks/171j55n_9gyxb.js +1 -0
- package/.next/static/chunks/17c6~kld51ls5.js +11 -0
- package/.next/static/chunks/17tv5jbg2hiup.js +1 -0
- package/.next/static/chunks/187a-majiuj8r.js +1 -0
- package/.next/static/media/fraunces-latin-ext-wght-normal.08-a-oz-atsnn.woff2 +0 -0
- package/.next/static/media/fraunces-latin-wght-normal.0l9v6sgnyeoq8.woff2 +0 -0
- package/.next/static/media/fraunces-vietnamese-wght-normal.05ntv1..6v~z7.woff2 +0 -0
- package/.next/static/media/instrument-sans-latin-ext-wght-normal.0td0--1m0lec9.woff2 +0 -0
- package/.next/static/media/instrument-sans-latin-wght-normal.10bj0-z630vnn.woff2 +0 -0
- package/.next/types/routes.d.ts +7 -10
- package/.next/types/validator.ts +33 -60
- package/package.json +4 -2
- package/.next/server/app/connections/knowledge/page/app-paths-manifest.json +0 -3
- package/.next/server/app/connections/knowledge/page/next-font-manifest.json +0 -6
- package/.next/server/app/connections/knowledge/page.js.nft.json +0 -1
- package/.next/server/app/connections/knowledge/page_client-reference-manifest.js +0 -3
- package/.next/server/app/connections/knowledge.html +0 -1
- package/.next/server/app/connections/knowledge.rsc +0 -27
- package/.next/server/app/connections/knowledge.segments/_full.segment.rsc +0 -27
- package/.next/server/app/connections/knowledge.segments/_head.segment.rsc +0 -6
- package/.next/server/app/connections/knowledge.segments/_index.segment.rsc +0 -11
- package/.next/server/app/connections/knowledge.segments/_tree.segment.rsc +0 -2
- package/.next/server/app/connections/knowledge.segments/connections/knowledge/__PAGE__.segment.rsc +0 -9
- package/.next/server/app/connections/knowledge.segments/connections/knowledge.segment.rsc +0 -5
- package/.next/server/app/connections/knowledge.segments/connections.segment.rsc +0 -5
- package/.next/server/app/settings/advanced/page/app-paths-manifest.json +0 -3
- package/.next/server/app/settings/advanced/page/next-font-manifest.json +0 -6
- package/.next/server/app/settings/advanced/page.js.nft.json +0 -1
- package/.next/server/app/settings/advanced/page_client-reference-manifest.js +0 -3
- package/.next/server/app/settings/advanced.html +0 -1
- package/.next/server/app/settings/advanced.rsc +0 -27
- package/.next/server/app/settings/advanced.segments/_full.segment.rsc +0 -27
- package/.next/server/app/settings/advanced.segments/_head.segment.rsc +0 -6
- package/.next/server/app/settings/advanced.segments/_index.segment.rsc +0 -11
- package/.next/server/app/settings/advanced.segments/_tree.segment.rsc +0 -2
- package/.next/server/app/settings/advanced.segments/settings/advanced/__PAGE__.segment.rsc +0 -9
- package/.next/server/app/settings/advanced.segments/settings/advanced.segment.rsc +0 -5
- package/.next/server/app/settings/advanced.segments/settings.segment.rsc +0 -5
- package/.next/server/app/settings/backends/page/app-paths-manifest.json +0 -3
- package/.next/server/app/settings/backends/page/next-font-manifest.json +0 -6
- package/.next/server/app/settings/backends/page.js +0 -17
- package/.next/server/app/settings/backends/page_client-reference-manifest.js +0 -3
- package/.next/server/app/settings/backends.html +0 -1
- package/.next/server/app/settings/backends.rsc +0 -24
- package/.next/server/app/settings/backends.segments/_full.segment.rsc +0 -24
- package/.next/server/app/settings/backends.segments/_head.segment.rsc +0 -6
- package/.next/server/app/settings/backends.segments/_index.segment.rsc +0 -11
- package/.next/server/app/settings/backends.segments/_tree.segment.rsc +0 -2
- package/.next/server/app/settings/backends.segments/settings/backends/__PAGE__.segment.rsc +0 -6
- package/.next/server/app/settings/backends.segments/settings/backends.segment.rsc +0 -5
- package/.next/server/app/settings/backends.segments/settings.segment.rsc +0 -5
- package/.next/server/app/settings/connections/page/app-paths-manifest.json +0 -3
- package/.next/server/app/settings/connections/page/next-font-manifest.json +0 -6
- package/.next/server/app/settings/connections/page.js +0 -17
- package/.next/server/app/settings/connections/page_client-reference-manifest.js +0 -3
- package/.next/server/app/settings/connections.html +0 -1
- package/.next/server/app/settings/connections.rsc +0 -24
- package/.next/server/app/settings/connections.segments/_full.segment.rsc +0 -24
- package/.next/server/app/settings/connections.segments/_head.segment.rsc +0 -6
- package/.next/server/app/settings/connections.segments/_index.segment.rsc +0 -11
- package/.next/server/app/settings/connections.segments/_tree.segment.rsc +0 -2
- package/.next/server/app/settings/connections.segments/settings/connections/__PAGE__.segment.rsc +0 -6
- package/.next/server/app/settings/connections.segments/settings/connections.segment.rsc +0 -5
- package/.next/server/app/settings/connections.segments/settings.segment.rsc +0 -5
- package/.next/server/app/settings/journal/page/app-paths-manifest.json +0 -3
- package/.next/server/app/settings/journal/page/next-font-manifest.json +0 -6
- package/.next/server/app/settings/journal/page/react-loadable-manifest.json +0 -8
- package/.next/server/app/settings/journal/page_client-reference-manifest.js +0 -3
- package/.next/server/app/settings/journal.html +0 -1
- package/.next/server/app/settings/journal.rsc +0 -27
- package/.next/server/app/settings/journal.segments/_full.segment.rsc +0 -27
- package/.next/server/app/settings/journal.segments/_head.segment.rsc +0 -6
- package/.next/server/app/settings/journal.segments/_index.segment.rsc +0 -11
- package/.next/server/app/settings/journal.segments/_tree.segment.rsc +0 -2
- package/.next/server/app/settings/journal.segments/settings/journal/__PAGE__.segment.rsc +0 -9
- package/.next/server/app/settings/journal.segments/settings/journal.segment.rsc +0 -5
- package/.next/server/app/settings/journal.segments/settings.segment.rsc +0 -5
- package/.next/server/app/settings/messaging/page/app-paths-manifest.json +0 -3
- package/.next/server/app/settings/messaging/page/next-font-manifest.json +0 -6
- package/.next/server/app/settings/messaging/page/react-loadable-manifest.json +0 -8
- package/.next/server/app/settings/messaging/page.js +0 -17
- package/.next/server/app/settings/messaging/page.js.nft.json +0 -1
- package/.next/server/app/settings/messaging/page_client-reference-manifest.js +0 -3
- package/.next/server/app/settings/messaging.html +0 -1
- package/.next/server/app/settings/messaging.meta +0 -16
- package/.next/server/app/settings/messaging.rsc +0 -24
- package/.next/server/app/settings/messaging.segments/_full.segment.rsc +0 -24
- package/.next/server/app/settings/messaging.segments/_head.segment.rsc +0 -6
- package/.next/server/app/settings/messaging.segments/_index.segment.rsc +0 -11
- package/.next/server/app/settings/messaging.segments/_tree.segment.rsc +0 -2
- package/.next/server/app/settings/messaging.segments/settings/messaging/__PAGE__.segment.rsc +0 -6
- package/.next/server/app/settings/messaging.segments/settings/messaging.segment.rsc +0 -5
- package/.next/server/app/settings/messaging.segments/settings.segment.rsc +0 -5
- package/.next/server/app/settings/processes/page/app-paths-manifest.json +0 -3
- package/.next/server/app/settings/processes/page/build-manifest.json +0 -18
- package/.next/server/app/settings/processes/page/next-font-manifest.json +0 -6
- package/.next/server/app/settings/processes/page/react-loadable-manifest.json +0 -8
- package/.next/server/app/settings/processes/page/server-reference-manifest.json +0 -4
- package/.next/server/app/settings/processes/page.js +0 -17
- package/.next/server/app/settings/processes/page_client-reference-manifest.js +0 -3
- package/.next/server/app/settings/processes.html +0 -1
- package/.next/server/app/settings/processes.meta +0 -16
- package/.next/server/app/settings/processes.rsc +0 -24
- package/.next/server/app/settings/processes.segments/_full.segment.rsc +0 -24
- package/.next/server/app/settings/processes.segments/_head.segment.rsc +0 -6
- package/.next/server/app/settings/processes.segments/_index.segment.rsc +0 -11
- package/.next/server/app/settings/processes.segments/_tree.segment.rsc +0 -2
- package/.next/server/app/settings/processes.segments/settings/processes/__PAGE__.segment.rsc +0 -6
- package/.next/server/app/settings/processes.segments/settings/processes.segment.rsc +0 -5
- package/.next/server/app/settings/processes.segments/settings.segment.rsc +0 -5
- package/.next/server/app/settings/routines/page/app-paths-manifest.json +0 -3
- package/.next/server/app/settings/routines/page/build-manifest.json +0 -18
- package/.next/server/app/settings/routines/page/next-font-manifest.json +0 -6
- package/.next/server/app/settings/routines/page/react-loadable-manifest.json +0 -8
- package/.next/server/app/settings/routines/page/server-reference-manifest.json +0 -4
- package/.next/server/app/settings/routines/page.js.nft.json +0 -1
- package/.next/server/app/settings/routines/page_client-reference-manifest.js +0 -3
- package/.next/server/app/settings/routines.html +0 -1
- package/.next/server/app/settings/routines.meta +0 -16
- package/.next/server/app/settings/routines.rsc +0 -27
- package/.next/server/app/settings/routines.segments/_full.segment.rsc +0 -27
- package/.next/server/app/settings/routines.segments/_head.segment.rsc +0 -6
- package/.next/server/app/settings/routines.segments/_index.segment.rsc +0 -11
- package/.next/server/app/settings/routines.segments/_tree.segment.rsc +0 -2
- package/.next/server/app/settings/routines.segments/settings/routines/__PAGE__.segment.rsc +0 -9
- package/.next/server/app/settings/routines.segments/settings/routines.segment.rsc +0 -5
- package/.next/server/app/settings/routines.segments/settings.segment.rsc +0 -5
- package/.next/server/app/settings/schedule/page/app-paths-manifest.json +0 -3
- package/.next/server/app/settings/schedule/page/build-manifest.json +0 -18
- package/.next/server/app/settings/schedule/page/next-font-manifest.json +0 -6
- package/.next/server/app/settings/schedule/page/react-loadable-manifest.json +0 -8
- package/.next/server/app/settings/schedule/page/server-reference-manifest.json +0 -4
- package/.next/server/app/settings/schedule/page_client-reference-manifest.js +0 -3
- package/.next/server/app/settings/schedule.html +0 -1
- package/.next/server/app/settings/schedule.meta +0 -16
- package/.next/server/app/settings/schedule.rsc +0 -27
- package/.next/server/app/settings/schedule.segments/_full.segment.rsc +0 -27
- package/.next/server/app/settings/schedule.segments/_head.segment.rsc +0 -6
- package/.next/server/app/settings/schedule.segments/_index.segment.rsc +0 -11
- package/.next/server/app/settings/schedule.segments/_tree.segment.rsc +0 -2
- package/.next/server/app/settings/schedule.segments/settings/schedule/__PAGE__.segment.rsc +0 -9
- package/.next/server/app/settings/schedule.segments/settings/schedule.segment.rsc +0 -5
- package/.next/server/app/settings/schedule.segments/settings.segment.rsc +0 -5
- package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_connections_knowledge_page_actions_06w7ski.js +0 -3
- package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_advanced_page_actions_0x06bjx.js +0 -3
- package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_backends_page_actions_0z3vipu.js +0 -3
- package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_connections_page_actions_0n0b1rb.js +0 -3
- package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_journal_page_actions_0_.h.-y.js +0 -3
- package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_messaging_page_actions_0czehcp.js +0 -3
- package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_processes_page_actions_0zbumx3.js +0 -3
- package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_routines_page_actions_0-37ia4.js +0 -3
- package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_schedule_page_actions_045j4zv.js +0 -3
- package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0s6jb_7.js +0 -4
- package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0wu80v6.js +0 -4
- package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0~yic40.js +0 -4
- package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_113c8xj.js +0 -4
- package/.next/server/chunks/ssr/[root-of-the-server]__00ch_ms._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__00s5z4o._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__03yuq_v._.js +0 -7
- package/.next/server/chunks/ssr/[root-of-the-server]__0kcivrd._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0kvyeu1._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0t-9jvt._.js +0 -3
- package/.next/server/chunks/ssr/_0-3uzu1._.js +0 -3
- package/.next/server/chunks/ssr/_0.yhrky._.js +0 -3
- package/.next/server/chunks/ssr/_0.zct4p._.js +0 -3
- package/.next/server/chunks/ssr/_00_--i0._.js +0 -3
- package/.next/server/chunks/ssr/_00ej8j9._.js +0 -3
- package/.next/server/chunks/ssr/_03bq.de._.js +0 -3
- package/.next/server/chunks/ssr/_04jkn8c._.js +0 -3
- package/.next/server/chunks/ssr/_04kt9.8._.js +0 -3
- package/.next/server/chunks/ssr/_05jfize._.js +0 -3
- package/.next/server/chunks/ssr/_06_m-vp._.js +0 -3
- package/.next/server/chunks/ssr/_09-o1vq._.js +0 -3
- package/.next/server/chunks/ssr/_095u19_._.js +0 -3
- package/.next/server/chunks/ssr/_0_qwmiz._.js +0 -3
- package/.next/server/chunks/ssr/_0bzj8lx._.js +0 -3
- package/.next/server/chunks/ssr/_0cccma-._.js +0 -3
- package/.next/server/chunks/ssr/_0da0k2u._.js +0 -3
- package/.next/server/chunks/ssr/_0evcd7w._.js +0 -3
- package/.next/server/chunks/ssr/_0e~4oah._.js +0 -3
- package/.next/server/chunks/ssr/_0ibeuw6._.js +0 -3
- package/.next/server/chunks/ssr/_0ixicrb._.js +0 -3
- package/.next/server/chunks/ssr/_0jg6hy0._.js +0 -3
- package/.next/server/chunks/ssr/_0jrxrig._.js +0 -3
- package/.next/server/chunks/ssr/_0mbbas-._.js +0 -3
- package/.next/server/chunks/ssr/_0n5nlcq._.js +0 -3
- package/.next/server/chunks/ssr/_0nvpv18._.js +0 -3
- package/.next/server/chunks/ssr/_0o~hk.m._.js +0 -3
- package/.next/server/chunks/ssr/_0pdbiu.._.js +0 -9
- package/.next/server/chunks/ssr/_0pg6_56._.js +0 -3
- package/.next/server/chunks/ssr/_0q8o~q1._.js +0 -3
- package/.next/server/chunks/ssr/_0r1lb0f._.js +0 -3
- package/.next/server/chunks/ssr/_0r25vcp._.js +0 -3
- package/.next/server/chunks/ssr/_0r9.4nv._.js +0 -3
- package/.next/server/chunks/ssr/_0tf7hjz._.js +0 -3
- package/.next/server/chunks/ssr/_0xmdrbq._.js +0 -3
- package/.next/server/chunks/ssr/_0zz58.-._.js +0 -5
- package/.next/server/chunks/ssr/_0~62r4-._.js +0 -3
- package/.next/server/chunks/ssr/_0~fi8o-._.js +0 -3
- package/.next/server/chunks/ssr/_10s6iy.._.js +0 -3
- package/.next/server/chunks/ssr/_11pdc0s._.js +0 -3
- package/.next/server/chunks/ssr/_12u1eq4._.js +0 -3
- package/.next/server/chunks/ssr/_12~0n.1._.js +0 -3
- package/.next/server/chunks/ssr/_139rl~~._.js +0 -3
- package/.next/server/chunks/ssr/node_modules__pnpm_0ehnn5t._.js +0 -3
- package/.next/server/chunks/ssr/packages_dashboard_src_0ylj~og._.js +0 -3
- package/.next/server/chunks/ssr/packages_dashboard_src_0z~3g5n._.js +0 -3
- package/.next/server/chunks/ssr/packages_dashboard_src_app_connections_knowledge_page_tsx_027jwd3._.js +0 -3
- package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_advanced_page_tsx_0o~_885._.js +0 -3
- package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_routines_page_tsx_0wcgtqz._.js +0 -27
- package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_schedule_page_tsx_0b8zr2l._.js +0 -3
- package/.next/static/chunks/0-7buty0ytvtv.js +0 -1
- package/.next/static/chunks/0-dw-4a8vg9m8.js +0 -1
- package/.next/static/chunks/0.42rv-zt_0x9.js +0 -1
- package/.next/static/chunks/0.za~0o8~5n1~.css +0 -1
- package/.next/static/chunks/0.~7m9beb0bmp.js +0 -11
- package/.next/static/chunks/00bnu7r6428v0.js +0 -5
- package/.next/static/chunks/00w3emoohg-8r.js +0 -1
- package/.next/static/chunks/01v7jn283j2tm.js +0 -1
- package/.next/static/chunks/04l41qp5lpt_e.js +0 -1
- package/.next/static/chunks/04ufv2_7i_b6..js +0 -1
- package/.next/static/chunks/053f~_moi~csx.js +0 -2
- package/.next/static/chunks/05xugzf8sfrxt.js +0 -1
- package/.next/static/chunks/05z4egti~pj9t.js +0 -1
- package/.next/static/chunks/073hnld9_qq5g.js +0 -1
- package/.next/static/chunks/08ql4siwtlgpn.js +0 -1
- package/.next/static/chunks/08wmxlql_xq.d.js +0 -1
- package/.next/static/chunks/0e3ds9mkx7.~v.js +0 -1
- package/.next/static/chunks/0eaf903zc7v~5.js +0 -1
- package/.next/static/chunks/0fri59ogcsfbl.js +0 -1
- package/.next/static/chunks/0gj-lf~wlbr8e.js +0 -1
- package/.next/static/chunks/0gurc-kqffso6.js +0 -1
- package/.next/static/chunks/0gyst06ap~-n~.js +0 -19
- package/.next/static/chunks/0g~py-0sje~1m.js +0 -1
- package/.next/static/chunks/0hk8v-849puw8.js +0 -1
- package/.next/static/chunks/0hlvfkk1o66wf.js +0 -1
- package/.next/static/chunks/0hog4tqr3.skm.js +0 -10
- package/.next/static/chunks/0igwe6jdxslbt.js +0 -1
- package/.next/static/chunks/0ikm~jl5uiw6-.js +0 -1
- package/.next/static/chunks/0j15hn~z~i56..js +0 -1
- package/.next/static/chunks/0jffu_yb.90.i.js +0 -1
- package/.next/static/chunks/0mfem_s.3s4r-.js +0 -1
- package/.next/static/chunks/0n3b0fpsgml2x.js +0 -1
- package/.next/static/chunks/0p.w04inifyq..js +0 -1
- package/.next/static/chunks/0qqty6t-yyty4.js +0 -3
- package/.next/static/chunks/0q~dvm61tpf3~.js +0 -1
- package/.next/static/chunks/0rt76ki54i~hm.js +0 -1
- package/.next/static/chunks/0scggusqhhid7.js +0 -1
- package/.next/static/chunks/0t.xvj-t_vtrp.js +0 -25
- package/.next/static/chunks/0t9rda60_m-vk.js +0 -1
- package/.next/static/chunks/0u9qsqnsm-skj.js +0 -1
- package/.next/static/chunks/0urw8_v9f97en.js +0 -1
- package/.next/static/chunks/0vcwfsuf878wc.js +0 -1
- package/.next/static/chunks/0vivqt8njmkpv.js +0 -1
- package/.next/static/chunks/0vktbjh2e4xpg.js +0 -1
- package/.next/static/chunks/0v~gg~hn-8_k2.js +0 -1
- package/.next/static/chunks/0ws8mq3rp~572.js +0 -1
- package/.next/static/chunks/0x..-zi0av524.js +0 -1
- package/.next/static/chunks/0xsb_r_t_1r-u.js +0 -1
- package/.next/static/chunks/0zaa6zhrjsaik.js +0 -1
- package/.next/static/chunks/0zimhqr6r4xlz.js +0 -1
- package/.next/static/chunks/0~7d6m~du_b.d.js +0 -1
- package/.next/static/chunks/0~nct--xt2~bi.js +0 -1
- package/.next/static/chunks/1121be2-kv8g~.js +0 -1
- package/.next/static/chunks/1257_06cutyq_.js +0 -1
- package/.next/static/chunks/12ee4r9-orwi8.js +0 -1
- package/.next/static/chunks/13kdqs0pmjqy5.js +0 -1
- package/.next/static/chunks/13tf0oa.w743m.js +0 -1
- package/.next/static/chunks/16s5r16k361sd.js +0 -1
- package/.next/static/chunks/16tqshshex~qk.js +0 -1
- package/.next/static/chunks/17846-azlpszq.js +0 -1
- package/.next/static/chunks/17b2~cmid8qeu.js +0 -3
- package/.next/static/chunks/17rcecfesskxn.js +0 -1
- /package/.next/server/app/{connections/knowledge → browser}/page/build-manifest.json +0 -0
- /package/.next/server/app/{connections/knowledge → browser}/page/server-reference-manifest.json +0 -0
- /package/.next/server/app/{settings/advanced → connections/notes}/page/build-manifest.json +0 -0
- /package/.next/server/app/{settings/advanced → connections/notes}/page/server-reference-manifest.json +0 -0
- /package/.next/server/app/settings/{backends → danger-zone}/page/build-manifest.json +0 -0
- /package/.next/server/app/settings/{backends → danger-zone}/page/server-reference-manifest.json +0 -0
- /package/.next/server/app/settings/{connections → hours}/page/build-manifest.json +0 -0
- /package/.next/server/app/settings/{connections → hours}/page/server-reference-manifest.json +0 -0
- /package/.next/server/app/settings/{journal → infrastructure}/page/build-manifest.json +0 -0
- /package/.next/server/app/settings/{journal → infrastructure}/page/server-reference-manifest.json +0 -0
- /package/.next/server/app/settings/{messaging → safety}/page/build-manifest.json +0 -0
- /package/.next/server/app/settings/{messaging → safety}/page/server-reference-manifest.json +0 -0
- /package/.next/static/{i_QR0WWkZFeICcOMbfuUs → 4Wu33OvzutxPxXUu1PWPC}/_buildManifest.js +0 -0
- /package/.next/static/{i_QR0WWkZFeICcOMbfuUs → 4Wu33OvzutxPxXUu1PWPC}/_ssgManifest.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,52387,e=>{"use strict";let t=(0,e.i(77379).default)("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["ExternalLink",0,t],52387)},75750,e=>{"use strict";let t=(0,e.i(77379).default)("CircleX",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);e.s(["XCircle",0,t],75750)},2745,e=>{"use strict";let t=(0,e.i(77379).default)("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["ShieldCheck",0,t],2745)},58436,e=>{"use strict";var t=e.i(54710),r=e.i(34416),a=e.i(55575),n=e.i(72740),s=e.i(20014),i=e.i(8652),l=e.i(66127),o=e.i(81471);e.s(["DirectoryPickerField",0,function({id:e,value:c,onChange:d,title:u,placeholder:h="Choose a folder...",defaultPath:m,disabled:p=!1,className:x,inputClassName:f,buttonLabel:g="Choose"}){let[b,v]=(0,r.useState)(!1),[y,w]=(0,r.useState)(null),j=async()=>{v(!0),w(null);try{let e=await (0,l.pickDirectoryFromDesktop)({title:u,defaultPath:c.trim()||m});e&&d(e)}catch(e){w(e instanceof Error?e.message:"Folder picker is unavailable.")}finally{v(!1)}};return(0,t.jsxs)("div",{className:(0,o.cn)("space-y-1",x),children:[(0,t.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row",children:[(0,t.jsx)(i.Input,{id:e,value:c,onChange:e=>{d(e.target.value),w(null)},placeholder:h,className:(0,o.cn)("font-mono text-sm",f),disabled:p||b}),(0,t.jsxs)(s.Button,{type:"button",variant:"outline",onClick:j,disabled:p||b,className:"shrink-0 gap-2",children:[b?(0,t.jsx)(n.Loader2,{className:"h-4 w-4 animate-spin"}):(0,t.jsx)(a.FolderOpen,{className:"h-4 w-4"}),b?"Opening...":g]})]}),y&&(0,t.jsx)("p",{className:"text-xs text-destructive",children:y})]})}])},7663,e=>{"use strict";let t=(0,e.i(77379).default)("Save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]);e.s(["Save",0,t],7663)},24756,e=>{"use strict";var t=e.i(14260),r=e.i(65268);e.s(["useBackends",0,function(e){return(0,t.useQuery)({queryKey:["backends"],queryFn:()=>r.api.get("/backends"),enabled:e?.enabled??!0,staleTime:6e4})}])},70986,e=>{"use strict";var t=e.i(34416),r=e.i(91967),a=e.i(9413),n=e.i(36567),s=e.i(18731),i=e.i(22353),l=e.i(85565),o=e.i(90816),c=e.i(11207),d=e.i(54710),u="Collapsible",[h,m]=(0,a.createContextScope)(u),[p,x]=h(u),f=t.forwardRef((e,r)=>{let{__scopeCollapsible:a,open:s,defaultOpen:i,disabled:o,onOpenChange:h,...m}=e,[x,f]=(0,n.useControllableState)({prop:s,defaultProp:i??!1,onChange:h,caller:u});return(0,d.jsx)(p,{scope:a,disabled:o,contentId:(0,c.useId)(),open:x,onOpenToggle:t.useCallback(()=>f(e=>!e),[f]),children:(0,d.jsx)(l.Primitive.div,{"data-state":j(x),"data-disabled":o?"":void 0,...m,ref:r})})});f.displayName=u;var g="CollapsibleTrigger",b=t.forwardRef((e,t)=>{let{__scopeCollapsible:a,...n}=e,s=x(g,a);return(0,d.jsx)(l.Primitive.button,{type:"button","aria-controls":s.contentId,"aria-expanded":s.open||!1,"data-state":j(s.open),"data-disabled":s.disabled?"":void 0,disabled:s.disabled,...n,ref:t,onClick:(0,r.composeEventHandlers)(e.onClick,s.onOpenToggle)})});b.displayName=g;var v="CollapsibleContent",y=t.forwardRef((e,t)=>{let{forceMount:r,...a}=e,n=x(v,e.__scopeCollapsible);return(0,d.jsx)(o.Presence,{present:r||n.open,children:({present:e})=>(0,d.jsx)(w,{...a,ref:t,present:e})})});y.displayName=v;var w=t.forwardRef((e,r)=>{let{__scopeCollapsible:a,present:n,children:o,...c}=e,u=x(v,a),[h,m]=t.useState(n),p=t.useRef(null),f=(0,i.useComposedRefs)(r,p),g=t.useRef(0),b=g.current,y=t.useRef(0),w=y.current,k=u.open||h,C=t.useRef(k),N=t.useRef(void 0);return t.useEffect(()=>{let e=requestAnimationFrame(()=>C.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,s.useLayoutEffect)(()=>{let e=p.current;if(e){N.current=N.current||{transitionDuration:e.style.transitionDuration,animationName:e.style.animationName},e.style.transitionDuration="0s",e.style.animationName="none";let t=e.getBoundingClientRect();g.current=t.height,y.current=t.width,C.current||(e.style.transitionDuration=N.current.transitionDuration,e.style.animationName=N.current.animationName),m(n)}},[u.open,n]),(0,d.jsx)(l.Primitive.div,{"data-state":j(u.open),"data-disabled":u.disabled?"":void 0,id:u.contentId,hidden:!k,...c,ref:f,style:{"--radix-collapsible-content-height":b?`${b}px`:void 0,"--radix-collapsible-content-width":w?`${w}px`:void 0,...e.style},children:k&&o})});function j(e){return e?"open":"closed"}e.s(["Collapsible",0,f,"CollapsibleContent",0,y,"CollapsibleTrigger",0,b],70986)},76176,e=>{"use strict";e.i(18446);var t=e.i(38082);let r={claude:"Claude Code",codex:"OpenAI Codex",gemini:"Gemini CLI",opencode:"OpenCode"},a=new Set(["opencode"]);function n(e){return a.has(e)}let s={gemini:{badgeLabel:"Vendor deprecation",shortSuffix:" (deprecated)",reason:"Google announced Gemini CLI will stop serving free, Pro, and Ultra requests on 2026-06-18 in favor of Antigravity CLI. Standard / Enterprise licenses keep access. Avoid binding new processes to Gemini if you rely on consumer-tier auth."}},i={claude:"Claude",codex:"Codex",gemini:"Gemini",opencode:"OpenCode"},l={claude:["#7C2D12","#B54B2D","#E15B40","#F97316","#FDBA74"],codex:["#86198F","#A21CAF","#D946EF","#E879F9","#F5D0FE"],gemini:["#1E3A8A","#1D4ED8","#1C69FF","#60A5FA","#93C5FD"],opencode:["#7C2D12","#C2410C","#FF7300","#F59E0B","#FCD34D"]},o=["#6b7280","#9ca3af","#4b5563","#374151"],c={claude:"orange",codex:"pink",gemini:"blue",opencode:"orange"},d={"routine.morning_routine":"Morning Routine","routine.evening_review":"Evening Review","routine.weekly_review":"Weekly Review","routine.monthly_review":"Monthly Review","routine.hourly_check":"Hourly Check","routine.roadmap_refresh":"Roadmap Refresh","message.dm":"Direct Messages","message.mention":"Mentions","dashboard.chat":"Dashboard Chat","agent.task":"Scheduled Tasks","calendar.change":"Calendar Events",gmail_classify:"Gmail Classification","github.pull_request.review_requested":"GitHub Review Requests","github.assigned":"GitHub Assignments","github.security_alert":"GitHub Security Alerts","github.workflow_run.failed":"GitHub CI Failures","wiki.ingest_url":"Wiki URL Ingest","wiki.compile":"Wiki Compile","wiki.ask":"Wiki Ask"};function u(e){let t;if(!e)return[];try{t=JSON.parse(e)}catch{return[]}if(!t||"object"!=typeof t)return[];let r=[];for(let[e,a]of Object.entries(t))a&&"object"==typeof a&&r.push({modelId:e,inputTokens:"number"==typeof a.inputTokens?a.inputTokens:0,outputTokens:"number"==typeof a.outputTokens?a.outputTokens:0,costUsd:"number"==typeof a.costUsd?a.costUsd:0});return r.sort((e,t)=>t.costUsd-e.costUsd)}function h(e){if(!e)return null;let t=e.toLowerCase();return/^[a-z0-9_.-]+\/[a-z0-9_.-]+/.test(t)?"opencode":t.includes("claude")||t.includes("sonnet")||t.includes("opus")||t.includes("haiku")?"claude":t.includes("gemini")?"gemini":t.includes("gpt")||t.includes("codex")||t.includes("o3")||t.includes("o4")?"codex":null}e.s(["BACKEND_BADGE_VARIANTS",0,c,"BACKEND_COLORS",0,{claude:"#E15B40",codex:"#D946EF",gemini:"#1C69FF",opencode:"#FF7300"},"BACKEND_LABELS",0,r,"BACKEND_PROVIDER_LABELS",0,{claude:"Claude (Anthropic)",codex:"ChatGPT (OpenAI)",gemini:"Gemini (Google)",opencode:"OpenCode (sst/opencode)"},"BACKEND_PROVIDER_SHORT",0,{claude:"Claude",codex:"ChatGPT",gemini:"Gemini",opencode:"OpenCode"},"BACKEND_WEB_SEARCH_DESCRIPTIONS",0,{claude:"Lets the agent call Anthropic's built-in WebSearch tool.",codex:"Lets the agent call OpenAI's web_search tool. Works in safe (sandbox) mode — the tool runs at OpenAI, not as a local shell command.",gemini:"Lets the agent call Gemini's google_web_search tool.",opencode:"Lets the agent call the configured OpenCode provider's web-search tool when the OpenCode runtime is enabled."},"CHART_CATEGORY_PALETTE",0,["#3b82f6","#10b981","#f59e0b","#8b5cf6","#ec4899","#14b8a6","#f97316","#6366f1","#ef4444","#22c55e"],"UI_PREVIEW_ONLY_BADGE_SUFFIX",0," (coming soon)","UI_PREVIEW_ONLY_REASON",0,"Coming soon — OpenCode is wired internally but not yet ready for selection in this release. The card stays visible so you can see what is on the roadmap.","assignModelColors",0,function(e){let t=new Map;for(let r of e){if(!r)continue;let e=h(r)??"other",a=t.get(e)??[];a.push(r),t.set(e,a)}let r={};for(let[e,a]of t){a.sort((e,t)=>e.localeCompare(t));let t="other"===e?o:l[e],n=a.length;a.forEach((e,a)=>{let s;s=n>=t.length?a%t.length:1===n?Math.floor(t.length/2):Math.floor((a+.5)*t.length/n),r[e]=t[s]})}return r},"detectBackendFromModel",0,h,"formatModelName",0,function(e){return e?e.replace(/^[a-z0-9_.-]+\//i,"").replace(/^claude-/,"Claude ").replace(/^gpt-/,"GPT-").replace(/^gemini-/,"Gemini ").replace(/-/g," ").replace(/\bpreview\b/gi,"(preview)").replace(/\bpro\b/gi,"Pro").replace(/\bflash\b/gi,"Flash").replace(/\blite\b/gi,"Lite").replace(/\bmini\b/gi,"Mini").replace(/\bcodex\b/gi,"Codex").replace(/\bopus\b/gi,"Opus").replace(/\bsonnet\b/gi,"Sonnet").replace(/\bhaiku\b/gi,"Haiku").replace(/\s+/g," ").trim():"Not set"},"formatShortModelName",0,function(e){if(!e)return"unknown";if("opus"===e)return"Opus";if("sonnet"===e)return"Sonnet";let t=e.replace(/^[a-z0-9_.-]+\//i,""),r=t.replace(/-\d{8,}$/,"").replace(/^claude-/,"").replace(/(\d+)-(\d+)(?![-\d])/g,"$1.$2").replace(/-/g," ");return t.startsWith("gpt-")&&(r=`GPT-${r.replace(/^gpt\s*/i,"")}`),t.startsWith("gemini-")&&(r=r.replace(/^gemini\s*/i,"Gemini ")),r.replace(/\bopus\b/gi,"Opus").replace(/\bsonnet\b/gi,"Sonnet").replace(/\bhaiku\b/gi,"Haiku").replace(/\bpro\b/gi,"Pro").replace(/\bflash\b/gi,"Flash").replace(/\blite\b/gi,"Lite").replace(/\bmini\b/gi,"Mini").replace(/\s+/g," ").trim()},"getBackendDeprecation",0,function(e){return s[e]??null},"getBackendLabel",0,function(e){return r[e]},"getBackendShortLabel",0,function(e){return i[e]},"getProcessGroup",0,function(e){return e.startsWith("wiki.")?"Wiki":e.startsWith("message.")||e.startsWith("dashboard.")?"Conversation":e.startsWith("routine.")?"Routines":e.startsWith("git.")||e.startsWith("github.")?"Git & GitHub":e.startsWith("calendar.")||"gmail_classify"===e?"Integrations":"Tasks"},"getProcessLabel",0,function(e){return d[e]??e},"isBackendSelectionDisabled",0,function(e){return!(0,t.isRuntimeAvailableBackendId)(e)||n(e)},"isUiPreviewOnlyBackend",0,n,"modelBadgeVariant",0,function(e){if(!e)return"gray";let t=h(e);return t?c[t]:"gray"},"parseModelUsage",0,u,"pickDisplayModel",0,function(e,t){let r=u(t);return r.length>0&&r[0]?r[0].modelId:e??null}])},59134,e=>{"use strict";let t=(0,e.i(77379).default)("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);e.s(["RefreshCw",0,t],59134)},13707,e=>{"use strict";var t=e.i(54710),r=e.i(34416),a=e.i(85565),n=e.i(90816),s=e.i(9413),i=e.i(22353),l=e.i(88248),o=e.i(75649),c=e.i(18731),d=e.i(27069),u=e.i(91967),h="ScrollArea",[m,p]=(0,s.createContextScope)(h),[x,f]=m(h),g=r.forwardRef((e,n)=>{let{__scopeScrollArea:s,type:l="hover",dir:c,scrollHideDelay:d=600,...u}=e,[h,m]=r.useState(null),[p,f]=r.useState(null),[g,b]=r.useState(null),[v,y]=r.useState(null),[w,j]=r.useState(null),[k,C]=r.useState(0),[N,S]=r.useState(0),[E,A]=r.useState(!1),[R,I]=r.useState(!1),T=(0,i.useComposedRefs)(n,e=>m(e)),D=(0,o.useDirection)(c);return(0,t.jsx)(x,{scope:s,type:l,dir:D,scrollHideDelay:d,scrollArea:h,viewport:p,onViewportChange:f,content:g,onContentChange:b,scrollbarX:v,onScrollbarXChange:y,scrollbarXEnabled:E,onScrollbarXEnabledChange:A,scrollbarY:w,onScrollbarYChange:j,scrollbarYEnabled:R,onScrollbarYEnabledChange:I,onCornerWidthChange:C,onCornerHeightChange:S,children:(0,t.jsx)(a.Primitive.div,{dir:D,...u,ref:T,style:{position:"relative","--radix-scroll-area-corner-width":k+"px","--radix-scroll-area-corner-height":N+"px",...e.style}})})});g.displayName=h;var b="ScrollAreaViewport",v=r.forwardRef((e,n)=>{let{__scopeScrollArea:s,children:l,nonce:o,...c}=e,d=f(b,s),u=r.useRef(null),h=(0,i.useComposedRefs)(n,u,d.onViewportChange);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:o}),(0,t.jsx)(a.Primitive.div,{"data-radix-scroll-area-viewport":"",...c,ref:h,style:{overflowX:d.scrollbarXEnabled?"scroll":"hidden",overflowY:d.scrollbarYEnabled?"scroll":"hidden",...e.style},children:(0,t.jsx)("div",{ref:d.onContentChange,style:{minWidth:"100%",display:"table"},children:l})})]})});v.displayName=b;var y="ScrollAreaScrollbar",w=r.forwardRef((e,a)=>{let{forceMount:n,...s}=e,i=f(y,e.__scopeScrollArea),{onScrollbarXEnabledChange:l,onScrollbarYEnabledChange:o}=i,c="horizontal"===e.orientation;return r.useEffect(()=>(c?l(!0):o(!0),()=>{c?l(!1):o(!1)}),[c,l,o]),"hover"===i.type?(0,t.jsx)(j,{...s,ref:a,forceMount:n}):"scroll"===i.type?(0,t.jsx)(k,{...s,ref:a,forceMount:n}):"auto"===i.type?(0,t.jsx)(C,{...s,ref:a,forceMount:n}):"always"===i.type?(0,t.jsx)(N,{...s,ref:a}):null});w.displayName=y;var j=r.forwardRef((e,a)=>{let{forceMount:s,...i}=e,l=f(y,e.__scopeScrollArea),[o,c]=r.useState(!1);return r.useEffect(()=>{let e=l.scrollArea,t=0;if(e){let r=()=>{window.clearTimeout(t),c(!0)},a=()=>{t=window.setTimeout(()=>c(!1),l.scrollHideDelay)};return e.addEventListener("pointerenter",r),e.addEventListener("pointerleave",a),()=>{window.clearTimeout(t),e.removeEventListener("pointerenter",r),e.removeEventListener("pointerleave",a)}}},[l.scrollArea,l.scrollHideDelay]),(0,t.jsx)(n.Presence,{present:s||o,children:(0,t.jsx)(C,{"data-state":o?"visible":"hidden",...i,ref:a})})}),k=r.forwardRef((e,a)=>{var s;let{forceMount:i,...l}=e,o=f(y,e.__scopeScrollArea),c="horizontal"===e.orientation,d=H(()=>m("SCROLL_END"),100),[h,m]=(s={hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}},r.useReducer((e,t)=>s[e][t]??e,"hidden"));return r.useEffect(()=>{if("idle"===h){let e=window.setTimeout(()=>m("HIDE"),o.scrollHideDelay);return()=>window.clearTimeout(e)}},[h,o.scrollHideDelay,m]),r.useEffect(()=>{let e=o.viewport,t=c?"scrollLeft":"scrollTop";if(e){let r=e[t],a=()=>{let a=e[t];r!==a&&(m("SCROLL"),d()),r=a};return e.addEventListener("scroll",a),()=>e.removeEventListener("scroll",a)}},[o.viewport,c,m,d]),(0,t.jsx)(n.Presence,{present:i||"hidden"!==h,children:(0,t.jsx)(N,{"data-state":"hidden"===h?"hidden":"visible",...l,ref:a,onPointerEnter:(0,u.composeEventHandlers)(e.onPointerEnter,()=>m("POINTER_ENTER")),onPointerLeave:(0,u.composeEventHandlers)(e.onPointerLeave,()=>m("POINTER_LEAVE"))})})}),C=r.forwardRef((e,a)=>{let s=f(y,e.__scopeScrollArea),{forceMount:i,...l}=e,[o,c]=r.useState(!1),d="horizontal"===e.orientation,u=H(()=>{if(s.viewport){let e=s.viewport.offsetWidth<s.viewport.scrollWidth,t=s.viewport.offsetHeight<s.viewport.scrollHeight;c(d?e:t)}},10);return U(s.viewport,u),U(s.content,u),(0,t.jsx)(n.Presence,{present:i||o,children:(0,t.jsx)(N,{"data-state":o?"visible":"hidden",...l,ref:a})})}),N=r.forwardRef((e,a)=>{let{orientation:n="vertical",...s}=e,i=f(y,e.__scopeScrollArea),l=r.useRef(null),o=r.useRef(0),[c,d]=r.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),u=_(c.viewport,c.content),h={...s,sizes:c,onSizesChange:d,hasThumb:!!(u>0&&u<1),onThumbChange:e=>l.current=e,onThumbPointerUp:()=>o.current=0,onThumbPointerDown:e=>o.current=e};function m(e,t){return function(e,t,r,a="ltr"){let n=B(r),s=t||n/2,i=r.scrollbar.paddingStart+s,l=r.scrollbar.size-r.scrollbar.paddingEnd-(n-s),o=r.content-r.viewport;return z([i,l],"ltr"===a?[0,o]:[-1*o,0])(e)}(e,o.current,c,t)}return"horizontal"===n?(0,t.jsx)(S,{...h,ref:a,onThumbPositionChange:()=>{if(i.viewport&&l.current){let e=q(i.viewport.scrollLeft,c,i.dir);l.current.style.transform=`translate3d(${e}px, 0, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollLeft=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollLeft=m(e,i.dir))}}):"vertical"===n?(0,t.jsx)(E,{...h,ref:a,onThumbPositionChange:()=>{if(i.viewport&&l.current){let e=q(i.viewport.scrollTop,c);l.current.style.transform=`translate3d(0, ${e}px, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollTop=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollTop=m(e))}}):null}),S=r.forwardRef((e,a)=>{let{sizes:n,onSizesChange:s,...l}=e,o=f(y,e.__scopeScrollArea),[c,d]=r.useState(),u=r.useRef(null),h=(0,i.useComposedRefs)(a,u,o.onScrollbarXChange);return r.useEffect(()=>{u.current&&d(getComputedStyle(u.current))},[u]),(0,t.jsx)(I,{"data-orientation":"horizontal",...l,ref:h,sizes:n,style:{bottom:0,left:"rtl"===o.dir?"var(--radix-scroll-area-corner-width)":0,right:"ltr"===o.dir?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":B(n)+"px",...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,r)=>{if(o.viewport){var a,n;let s=o.viewport.scrollLeft+t.deltaX;e.onWheelScroll(s),a=s,n=r,a>0&&a<n&&t.preventDefault()}},onResize:()=>{u.current&&o.viewport&&c&&s({content:o.viewport.scrollWidth,viewport:o.viewport.offsetWidth,scrollbar:{size:u.current.clientWidth,paddingStart:O(c.paddingLeft),paddingEnd:O(c.paddingRight)}})}})}),E=r.forwardRef((e,a)=>{let{sizes:n,onSizesChange:s,...l}=e,o=f(y,e.__scopeScrollArea),[c,d]=r.useState(),u=r.useRef(null),h=(0,i.useComposedRefs)(a,u,o.onScrollbarYChange);return r.useEffect(()=>{u.current&&d(getComputedStyle(u.current))},[u]),(0,t.jsx)(I,{"data-orientation":"vertical",...l,ref:h,sizes:n,style:{top:0,right:"ltr"===o.dir?0:void 0,left:"rtl"===o.dir?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":B(n)+"px",...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,r)=>{if(o.viewport){var a,n;let s=o.viewport.scrollTop+t.deltaY;e.onWheelScroll(s),a=s,n=r,a>0&&a<n&&t.preventDefault()}},onResize:()=>{u.current&&o.viewport&&c&&s({content:o.viewport.scrollHeight,viewport:o.viewport.offsetHeight,scrollbar:{size:u.current.clientHeight,paddingStart:O(c.paddingTop),paddingEnd:O(c.paddingBottom)}})}})}),[A,R]=m(y),I=r.forwardRef((e,n)=>{let{__scopeScrollArea:s,sizes:o,hasThumb:c,onThumbChange:d,onThumbPointerUp:h,onThumbPointerDown:m,onThumbPositionChange:p,onDragScroll:x,onWheelScroll:g,onResize:b,...v}=e,w=f(y,s),[j,k]=r.useState(null),C=(0,i.useComposedRefs)(n,e=>k(e)),N=r.useRef(null),S=r.useRef(""),E=w.viewport,R=o.content-o.viewport,I=(0,l.useCallbackRef)(g),T=(0,l.useCallbackRef)(p),D=H(b,10);function P(e){N.current&&x({x:e.clientX-N.current.left,y:e.clientY-N.current.top})}return r.useEffect(()=>{let e=e=>{let t=e.target;j?.contains(t)&&I(e,R)};return document.addEventListener("wheel",e,{passive:!1}),()=>document.removeEventListener("wheel",e,{passive:!1})},[E,j,R,I]),r.useEffect(T,[o,T]),U(j,D),U(w.content,D),(0,t.jsx)(A,{scope:s,scrollbar:j,hasThumb:c,onThumbChange:(0,l.useCallbackRef)(d),onThumbPointerUp:(0,l.useCallbackRef)(h),onThumbPositionChange:T,onThumbPointerDown:(0,l.useCallbackRef)(m),children:(0,t.jsx)(a.Primitive.div,{...v,ref:C,style:{position:"absolute",...v.style},onPointerDown:(0,u.composeEventHandlers)(e.onPointerDown,e=>{0===e.button&&(e.target.setPointerCapture(e.pointerId),N.current=j.getBoundingClientRect(),S.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",w.viewport&&(w.viewport.style.scrollBehavior="auto"),P(e))}),onPointerMove:(0,u.composeEventHandlers)(e.onPointerMove,P),onPointerUp:(0,u.composeEventHandlers)(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=S.current,w.viewport&&(w.viewport.style.scrollBehavior=""),N.current=null})})})}),T="ScrollAreaThumb",D=r.forwardRef((e,r)=>{let{forceMount:a,...s}=e,i=R(T,e.__scopeScrollArea);return(0,t.jsx)(n.Presence,{present:a||i.hasThumb,children:(0,t.jsx)(P,{ref:r,...s})})}),P=r.forwardRef((e,n)=>{let{__scopeScrollArea:s,style:l,...o}=e,c=f(T,s),d=R(T,s),{onThumbPositionChange:h}=d,m=(0,i.useComposedRefs)(n,e=>d.onThumbChange(e)),p=r.useRef(void 0),x=H(()=>{p.current&&(p.current(),p.current=void 0)},100);return r.useEffect(()=>{let e=c.viewport;if(e){let t=()=>{x(),p.current||(p.current=$(e,h),h())};return h(),e.addEventListener("scroll",t),()=>e.removeEventListener("scroll",t)}},[c.viewport,x,h]),(0,t.jsx)(a.Primitive.div,{"data-state":d.hasThumb?"visible":"hidden",...o,ref:m,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...l},onPointerDownCapture:(0,u.composeEventHandlers)(e.onPointerDownCapture,e=>{let t=e.target.getBoundingClientRect(),r=e.clientX-t.left,a=e.clientY-t.top;d.onThumbPointerDown({x:r,y:a})}),onPointerUp:(0,u.composeEventHandlers)(e.onPointerUp,d.onThumbPointerUp)})});D.displayName=T;var M="ScrollAreaCorner",L=r.forwardRef((e,r)=>{let a=f(M,e.__scopeScrollArea),n=!!(a.scrollbarX&&a.scrollbarY);return"scroll"!==a.type&&n?(0,t.jsx)(F,{...e,ref:r}):null});L.displayName=M;var F=r.forwardRef((e,n)=>{let{__scopeScrollArea:s,...i}=e,l=f(M,s),[o,c]=r.useState(0),[d,u]=r.useState(0),h=!!(o&&d);return U(l.scrollbarX,()=>{let e=l.scrollbarX?.offsetHeight||0;l.onCornerHeightChange(e),u(e)}),U(l.scrollbarY,()=>{let e=l.scrollbarY?.offsetWidth||0;l.onCornerWidthChange(e),c(e)}),h?(0,t.jsx)(a.Primitive.div,{...i,ref:n,style:{width:o,height:d,position:"absolute",right:"ltr"===l.dir?0:void 0,left:"rtl"===l.dir?0:void 0,bottom:0,...e.style}}):null});function O(e){return e?parseInt(e,10):0}function _(e,t){let r=e/t;return isNaN(r)?0:r}function B(e){let t=_(e.viewport,e.content),r=e.scrollbar.paddingStart+e.scrollbar.paddingEnd;return Math.max((e.scrollbar.size-r)*t,18)}function q(e,t,r="ltr"){let a=B(t),n=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,s=t.scrollbar.size-n,i=t.content-t.viewport,l=(0,d.clamp)(e,"ltr"===r?[0,i]:[-1*i,0]);return z([0,i],[0,s-a])(l)}function z(e,t){return r=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let a=(t[1]-t[0])/(e[1]-e[0]);return t[0]+a*(r-e[0])}}var $=(e,t=()=>{})=>{let r={left:e.scrollLeft,top:e.scrollTop},a=0;return!function n(){let s={left:e.scrollLeft,top:e.scrollTop},i=r.left!==s.left,l=r.top!==s.top;(i||l)&&t(),r=s,a=window.requestAnimationFrame(n)}(),()=>window.cancelAnimationFrame(a)};function H(e,t){let a=(0,l.useCallbackRef)(e),n=r.useRef(0);return r.useEffect(()=>()=>window.clearTimeout(n.current),[]),r.useCallback(()=>{window.clearTimeout(n.current),n.current=window.setTimeout(a,t)},[a,t])}function U(e,t){let r=(0,l.useCallbackRef)(t);(0,c.useLayoutEffect)(()=>{let t=0;if(e){let a=new ResizeObserver(()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(r)});return a.observe(e),()=>{window.cancelAnimationFrame(t),a.unobserve(e)}}},[e,r])}var W=e.i(81471);let G=(0,r.forwardRef)(({className:e,children:r,...a},n)=>(0,t.jsxs)(g,{className:(0,W.cn)("relative overflow-hidden",e),...a,children:[(0,t.jsx)(v,{ref:n,className:"h-full w-full rounded-[inherit]",children:r}),(0,t.jsx)(w,{orientation:"vertical",className:"flex h-full w-2.5 touch-none select-none border-l border-l-transparent p-[1px] transition-colors",children:(0,t.jsx)(D,{className:"relative flex-1 rounded-full bg-border"})}),(0,t.jsx)(w,{orientation:"horizontal",className:"flex h-2.5 w-full flex-col touch-none select-none border-t border-t-transparent p-[1px] transition-colors",children:(0,t.jsx)(D,{className:"relative flex-1 rounded-full bg-border"})}),(0,t.jsx)(L,{})]}));G.displayName="ScrollArea",e.s(["ScrollArea",0,G],13707)},36413,e=>{"use strict";var t=e.i(34416);let r=(0,t.createContext)(null);e.s(["DirtyFieldsProvider",0,function({children:e}){let[a,n]=(0,t.useState)(()=>new Map),[s,i]=(0,t.useState)(0),l=(0,t.useCallback)((e,t,r)=>{n(a=>{if(void 0!==r&&(t===r||Array.isArray(t)&&Array.isArray(r)&&t.length===r.length&&t.every((e,t)=>e===r[t]))){if(!a.has(e))return a;let t=new Map(a);return t.delete(e),t}let n=new Map(a);return n.set(e,t),n})},[]),o=(0,t.useCallback)(e=>{n(t=>{if(!t.has(e))return t;let r=new Map(t);return r.delete(e),r})},[]),c=(0,t.useCallback)(e=>{0!==e.length&&n(t=>{if(!e.some(e=>t.has(e)))return t;let r=new Map(t);for(let t of e)r.delete(t);return r})},[]),d=(0,t.useCallback)(()=>{n(new Map),i(e=>e+1)},[]),u=a.size>0,h=a.size,m=(0,t.useMemo)(()=>({dirtyFields:a,setDirty:l,clearDirty:o,clearDirtyKeys:c,discardAll:d,discardGeneration:s,isDirty:u,dirtyCount:h}),[a,l,o,c,d,s,u,h]);return(0,t.createElement)(r.Provider,{value:m},e)},"useDirtyFields",0,function(){let e=(0,t.useContext)(r);if(!e)throw Error("useDirtyFields must be used inside DirtyFieldsProvider");let{setDirty:a,dirtyFields:n}=e,s=(0,t.useCallback)(e=>async(t,r)=>{let n=e[t];a(t,r,n)},[a]),i=(0,t.useCallback)((e,t)=>n.has(e)?n.get(e):t,[n]);return{...e,deferSaveFor:s,dv:i}},"useDiscardGeneration",0,function(){let e=(0,t.useContext)(r);return e?.discardGeneration??0}])},28444,e=>{"use strict";e.s(["RESTART_REQUIRED_KEY_TUPLE",0,["apiPort","externalObsidianVaultName","externalObsidianVaultPath","externalObsidianWatch","primaryVaultPath","primaryVaultName","slackOwnerUserId","telegramOwnerChatId","discordOwnerUserId","whatsappEnabled","whatsappOwnerPhone","whatsappAuthDir","notionDatabaseIds","gmailPollIntervalSeconds","delegatedProbeIntervalMinutes","gitPollIntervalSeconds","githubPollIntervalSeconds","voiceTranscriptionEnabled","observationSummarizerEnabled","observationSummarizerConcurrency","observationSummarizerMaxCallsPerMinute","observationSummarizerQueueLimit","observationSummarizerTimeoutMs"]])},74490,e=>{"use strict";var t=e.i(54710),r=e.i(81471);let a=(0,e.i(94237).cva)("rounded-xl border p-5 shadow-[0_1px_3px_rgb(0_0_0/0.04)]",{variants:{tone:{default:"border-border bg-card",warning:"border-amber-200 bg-amber-50/50 dark:border-amber-900 dark:bg-amber-950/30",success:"border-emerald-200 bg-emerald-50/50 dark:border-emerald-900 dark:bg-emerald-950/30",error:"border-red-200 bg-red-50/50 dark:border-red-900 dark:bg-red-950/30"},interactive:{true:"transition-shadow duration-150 hover:shadow-[0_4px_6px_rgb(0_0_0/0.06)]",false:""}},defaultVariants:{tone:"default",interactive:!1}});e.s(["Card",0,function({className:e,tone:n,interactive:s,...i}){return(0,t.jsx)("div",{className:(0,r.cn)(a({tone:n,interactive:s}),e),...i})},"CardHeader",0,function({className:e,...a}){return(0,t.jsx)("div",{className:(0,r.cn)("mb-3 flex items-center justify-between",e),...a})},"CardStatLabel",0,function({className:e,...a}){return(0,t.jsx)("h3",{className:(0,r.cn)("text-sm font-medium text-muted-foreground",e),...a})},"CardTitle",0,function({className:e,...a}){return(0,t.jsx)("h3",{className:(0,r.cn)("text-lg font-semibold text-foreground",e),...a})},"CardValue",0,function({className:e,...a}){return(0,t.jsx)("div",{className:(0,r.cn)("text-3xl font-bold text-foreground",e),...a})}])},90925,e=>{"use strict";let t=(0,e.i(77379).default)("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);e.s(["Trash2",0,t],90925)},60168,e=>{"use strict";let t=(0,e.i(77379).default)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",0,t],60168)},99758,e=>{"use strict";let t=(0,e.i(77379).default)("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",0,t],99758)},21682,e=>{"use strict";let t=(0,e.i(77379).default)("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);e.s(["Pencil",0,t],21682)},55575,e=>{"use strict";let t=(0,e.i(77379).default)("FolderOpen",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);e.s(["FolderOpen",0,t],55575)},66127,e=>{"use strict";var t=e.i(65268);async function r({title:e,defaultPath:a}){let n=await t.api.post("/system/pick-directory",{title:e,...a?{defaultPath:a}:{}});if("selected"===n.status&&n.path)return n.path;if("cancelled"===n.status)return null;throw Error(n.message??"Folder picker is unavailable.")}e.s(["pickDirectoryFromDesktop",0,r])},25795,e=>{"use strict";let t=(0,e.i(77379).default)("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);e.s(["RotateCcw",0,t],25795)},82239,e=>{"use strict";var t=e.i(54710),r=e.i(25795),a=e.i(10628);e.s(["RestartRequiredBadge",0,function(){return(0,t.jsxs)(a.Tooltip,{children:[(0,t.jsx)(a.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("span",{className:"inline-flex items-center gap-0.5 rounded-sm bg-amber-100 px-1 py-0.5 text-[10px] font-medium text-amber-700 dark:bg-amber-900/40 dark:text-amber-300",children:[(0,t.jsx)(r.RotateCcw,{className:"h-2.5 w-2.5"}),"restart"]})}),(0,t.jsx)(a.TooltipContent,{side:"top",className:"max-w-[220px] text-xs",children:"Changing this value requires a daemon restart to take effect."})]})}])},49681,e=>{"use strict";var t=e.i(54710),r=e.i(7771),a=e.i(95486),n=e.i(8011),s=e.i(10628),i=e.i(81471);e.s(["DocsHelpInline",0,function({docId:e,anchor:l=null,label:o,className:c}){let d=(0,a.useQueryClient)(),u=o??"Help";return(0,t.jsx)(s.TooltipProvider,{delayDuration:300,children:(0,t.jsxs)(s.Tooltip,{children:[(0,t.jsx)(s.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:t=>{t.preventDefault(),t.stopPropagation(),(0,n.openDocsHelpSlideover)(d,{docId:e,anchor:l,autoFocusComposer:!1})},className:(0,i.cn)("inline-flex h-5 w-5 items-center justify-center rounded-full text-muted-foreground/70 transition hover:bg-accent hover:text-foreground",c),"aria-label":`Open help — ${u}`,"data-testid":"docs-help-inline",children:(0,t.jsx)(r.HelpCircle,{className:"h-3.5 w-3.5","aria-hidden":"true"})})}),(0,t.jsx)(s.TooltipContent,{side:"top",children:(0,t.jsx)("span",{children:u})})]})})}])},88,e=>{"use strict";var t=e.i(54710),r=e.i(34416),a=e.i(99758),n=e.i(55575),s=e.i(21682),i=e.i(60168),l=e.i(25795),o=e.i(90925),c=e.i(36451);e.i(18446);var d=e.i(28444),u=e.i(48467),h=e.i(20014),m=e.i(74490),p=e.i(8652),x=e.i(82239),f=e.i(49681),g=e.i(66127),b=e.i(36413);let v=new Set(d.RESTART_REQUIRED_KEY_TUPLE);function y(e){return null===e?"":String(e)}e.s(["ConfigSection",0,function({title:e,children:r,helpDocId:a,helpAnchor:n}){return(0,t.jsxs)(m.Card,{children:[(0,t.jsx)(m.CardHeader,{children:(0,t.jsxs)(m.CardTitle,{className:"flex items-center gap-1.5",children:[(0,t.jsx)("span",{children:e}),a&&(0,t.jsx)(f.DocsHelpInline,{docId:a,anchor:n??null,label:e})]})}),(0,t.jsx)("div",{className:"space-y-0.5 [&>p]:max-w-prose",children:r})]})},"EditableArrayField",0,function({label:e,values:a,configKey:s,variant:l="gray",placeholder:o="Add item...",directoryPicker:d,modified:m,onSave:f}){let b=v.has(s),[y,w]=(0,r.useState)(""),[j,k]=(0,r.useState)(!1),[C,N]=(0,r.useState)(null),S=async()=>{let e=y.trim();if(!(!e||a.includes(e))){k(!0),N(null);try{await f(s,[...a,e]),w("")}catch{}finally{k(!1)}}},E=async e=>{k(!0);try{await f(s,a.filter(t=>t!==e))}finally{k(!1)}},A=async()=>{if(d){k(!0),N(null);try{let e=await (0,g.pickDirectoryFromDesktop)({title:d.title,defaultPath:y.trim()||d.defaultPath});if(!e)return;if(a.includes(e)){w(e),N("That directory is already in the list.");return}await f(s,[...a,e]),w("")}catch(e){N(e instanceof Error?e.message:"Folder picker is unavailable.")}finally{k(!1)}}};return(0,t.jsxs)("div",{className:`py-2${m?" border-l-2 border-blue-500 pl-2 -ml-1 rounded":""}`,"data-config-key":s,children:[(0,t.jsxs)("p",{className:"text-sm text-muted-foreground mb-2 inline-flex items-center gap-1.5",children:[e,b&&(0,t.jsx)(x.RestartRequiredBadge,{}),m&&(0,t.jsx)("span",{className:"text-[10px] font-medium text-blue-600 dark:text-blue-400",children:"modified"})]}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-1.5 mb-2",children:[a.map(e=>(0,t.jsxs)(u.Badge,{variant:l,className:"gap-1 pr-1",children:[e,(0,t.jsx)("button",{onClick:()=>E(e),disabled:j,className:"ml-0.5 rounded-sm hover:bg-black/10 dark:hover:bg-white/10 p-0.5 transition-colors",children:(0,t.jsx)(c.X,{className:"h-3 w-3"})})]},e)),0===a.length&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground italic",children:"No items"})]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(p.Input,{value:y,onChange:e=>w(e.target.value),onKeyDown:e=>{"Enter"===e.key&&S()},placeholder:o,className:"max-w-[320px]",disabled:j}),d&&(0,t.jsxs)(h.Button,{size:"sm",variant:"outline",onClick:A,disabled:j,children:[(0,t.jsx)(n.FolderOpen,{className:"h-3.5 w-3.5 mr-1"}),d.buttonLabel??"Choose"]}),(0,t.jsxs)(h.Button,{size:"sm",variant:"outline",onClick:S,disabled:!y.trim()||j,children:[(0,t.jsx)(i.Plus,{className:"h-3.5 w-3.5 mr-1"}),"Add"]})]}),C&&(0,t.jsx)("p",{className:"mt-1 text-xs text-destructive",children:C})]})},"EditableBooleanField",0,function({label:e,value:a,configKey:n,description:s,modified:i,defaultValue:o,onSave:c}){let[d,u]=(0,r.useState)(!1),m=v.has(n),p=void 0!==o&&a===o,f=async()=>{u(!0);try{await c(n,!a)}finally{u(!1)}},g=async()=>{if(void 0!==o){u(!0);try{await c(n,o)}finally{u(!1)}}};return(0,t.jsx)("div",{className:`py-1.5 group${i?" border-l-2 border-blue-500 pl-2 -ml-1 rounded":""}`,"data-config-key":n,children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("p",{className:"text-sm text-muted-foreground inline-flex items-center gap-1.5",children:[e,m&&(0,t.jsx)(x.RestartRequiredBadge,{}),i&&(0,t.jsx)("span",{className:"text-[10px] font-medium text-blue-600 dark:text-blue-400",children:"modified"}),void 0!==o&&!p&&!i&&(0,t.jsxs)("button",{type:"button",onClick:g,className:"text-[10px] text-muted-foreground hover:text-foreground transition-colors inline-flex items-center gap-0.5 opacity-0 group-hover:opacity-100",children:[(0,t.jsx)(l.RotateCcw,{className:"h-2.5 w-2.5"}),"reset"]})]}),s&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:s})]}),(0,t.jsx)(h.Button,{variant:a?"default":"outline",size:"sm",onClick:f,disabled:d,children:a?"Enabled":"Disabled"})]})})},"EditableField",0,function({label:e,value:n,configKey:i,type:d="text",suffix:u,description:m,min:f,max:g,nullable:w=!1,emptyLabel:j="Not set",modified:k,defaultValue:C,onSave:N}){let S=v.has(i),[E,A]=(0,r.useState)(!1),[R,I]=(0,r.useState)(y(n)),[T,D]=(0,r.useState)(!1),[P,M]=(0,r.useState)(null),L=(0,r.useRef)(null),F=(0,b.useDiscardGeneration)(),O=(0,r.useRef)(F);(0,r.useEffect)(()=>{F!==O.current&&(O.current=F,A(!1),M(null))},[F]),(0,r.useEffect)(()=>{E&&L.current?.focus()},[E]),(0,r.useEffect)(()=>{E||I(y(n))},[n,E]);let _=void 0!==C&&n===C,B=async e=>{if(e.stopPropagation(),void 0!==C){D(!0);try{await N(i,C)}finally{D(!1)}}},q=async e=>{e.stopPropagation(),D(!0);try{await N(i,null)}finally{D(!1)}},z=async()=>{let e=R.trim(),t=w&&""===e?null:"number"===d?Number(R):R;if(t===n)return void A(!1);if(null!==t&&"number"===d&&(void 0!==f||void 0!==g)&&(void 0!==f&&t<f||void 0!==g&&t>g))return void M(`Must be ${f??""}–${g??""}`);M(null),D(!0);try{await N(i,t),A(!1)}catch{}finally{D(!1)}};return E?(0,t.jsxs)("div",{className:"py-1.5","data-config-key":i,children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("span",{className:"text-sm text-muted-foreground shrink-0 min-w-[140px] inline-flex items-center gap-1.5",children:[e,S&&(0,t.jsx)(x.RestartRequiredBadge,{})]}),(0,t.jsx)(p.Input,{ref:L,type:d,value:R,onChange:e=>{I(e.target.value),M(null)},onKeyDown:e=>{"Enter"===e.key&&z(),"Escape"===e.key&&(I(y(n)),A(!1))},className:"max-w-[240px]",disabled:T,min:f,max:g}),u&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:u}),(0,t.jsx)(h.Button,{size:"sm",variant:"ghost",onClick:z,disabled:T,className:"h-7 w-7 p-0",children:(0,t.jsx)(a.Check,{className:"h-3.5 w-3.5"})}),(0,t.jsx)(h.Button,{size:"sm",variant:"ghost",onClick:()=>{I(y(n)),M(null),A(!1)},className:"h-7 w-7 p-0",children:(0,t.jsx)(c.X,{className:"h-3.5 w-3.5"})})]}),P&&(0,t.jsx)("p",{className:"text-xs text-destructive mt-1 ml-[148px]",children:P}),m&&!P&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-1 ml-[148px]",children:m})]}):(0,t.jsxs)("div",{className:`py-1.5 group cursor-pointer rounded px-1 -mx-1 hover:bg-muted/50 transition-colors${k?" border-l-2 border-blue-500 pl-2":""}`,"data-config-key":i,onClick:()=>A(!0),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("span",{className:"text-sm text-muted-foreground inline-flex items-center gap-1.5",children:[e,S&&(0,t.jsx)(x.RestartRequiredBadge,{})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[k&&(0,t.jsx)("span",{className:"text-[10px] font-medium text-blue-600 dark:text-blue-400",children:"modified"}),void 0!==C&&!_&&!k&&(0,t.jsxs)("button",{type:"button",onClick:B,className:"text-[10px] text-muted-foreground hover:text-foreground transition-colors inline-flex items-center gap-0.5 opacity-0 group-hover:opacity-100",children:[(0,t.jsx)(l.RotateCcw,{className:"h-2.5 w-2.5"}),"reset"]}),w&&null!==n&&!k&&(0,t.jsxs)("button",{type:"button",onClick:q,title:`Clear — sets ${e} to ${j}`,className:"text-[10px] text-muted-foreground hover:text-destructive transition-colors inline-flex items-center gap-0.5 opacity-0 group-hover:opacity-100",children:[(0,t.jsx)(o.Trash2,{className:"h-2.5 w-2.5"}),"clear"]}),(0,t.jsx)("span",{className:"text-sm font-medium text-foreground",children:null===n?j:"$"===u?`$${n}`:u?`${n} ${u}`:String(n)}),(0,t.jsx)(s.Pencil,{className:"h-3 w-3 text-muted-foreground opacity-0 group-hover:opacity-100 transition-opacity"})]})]}),m&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:m})]})}])},12077,e=>{"use strict";let t=(0,e.i(77379).default)("Terminal",[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]]);e.s(["Terminal",0,t],12077)},13451,e=>{"use strict";var t=e.i(34416),r=e.i(95486),a=e.i(65268);e.s(["useSaveConfig",0,function(){let e=(0,r.useQueryClient)(),[n,s]=(0,t.useState)(null),i=(0,t.useCallback)((e,t)=>{s({type:e,message:t}),setTimeout(()=>s(null),4e3)},[]),l=(0,t.useCallback)((e,t)=>{let r=Object.values(e.errors??{});r.length>0?i("warning",r.join(" ")):e.requiresRestart?.length>0?i("warning",`Updated. Restart daemon for: ${e.requiresRestart.join(", ")}`):i("success",t)},[i]),o=(0,t.useCallback)(async(t,r)=>{try{let n=await a.api.patch("/config",{[t]:r});e.invalidateQueries({queryKey:["config"]}),l(n,"Setting updated")}catch(e){throw i("error",`Failed to save: ${e instanceof Error?e.message:"Unknown error"}`),e}},[e,l,i]),c=(0,t.useCallback)(async t=>{try{let r=await a.api.patch("/config",t);e.invalidateQueries({queryKey:["config"]}),l(r,"Settings updated")}catch(e){throw i("error",`Failed to save: ${e instanceof Error?e.message:"Unknown error"}`),e}},[e,l,i]);return{toast:n,showToast:i,saveField:o,saveMultipleFields:c,patchConfig:(0,t.useCallback)(async t=>{let r=await a.api.patch("/config",t);return e.invalidateQueries({queryKey:["config"]}),r},[e])}}])},76610,e=>{"use strict";let t=(0,e.i(77379).default)("KeyRound",[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]);e.s(["KeyRound",0,t],76610)},78927,e=>{"use strict";let t=(0,e.i(77379).default)("Upload",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]]);e.s(["Upload",0,t],78927)},73550,e=>{"use strict";let t=(0,e.i(77379).default)("Hash",[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]]);e.s(["Hash",0,t],73550)},89883,e=>{"use strict";let t=(0,e.i(77379).default)("Mail",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}]]);e.s(["Mail",0,t],89883)},88175,e=>{"use strict";let t=(0,e.i(77379).default)("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);e.s(["Download",0,t],88175)},20870,e=>{"use strict";var t=e.i(54710),r=e.i(48467),a=e.i(74490),n=e.i(81471);let s={connected:{variant:"green",label:"Connected"},configured:{variant:"amber",label:"Configured"},connecting:{variant:"amber",label:"Connecting…"},"needs-setup":{variant:"gray",label:"Not Configured"},error:{variant:"red",label:"Error"},disabled:{variant:"gray",label:"Disabled"}};e.s(["ConnectionCard",0,function({name:e,icon:i,status:l,error:o,metadata:c,children:d,className:u}){let h=s[l];return(0,t.jsxs)(a.Card,{tone:"connected"===l?"success":"error"===l?"error":"default",className:(0,n.cn)("relative",u),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:i}),(0,t.jsx)("h3",{className:"text-sm font-medium text-foreground",children:e})]}),(0,t.jsx)(r.Badge,{variant:h.variant,children:h.label})]}),o&&"connecting"!==l&&(0,t.jsx)("p",{className:"mb-2 text-xs text-red-600 dark:text-red-400",children:o}),c&&c.length>0&&(0,t.jsx)("div",{className:"mb-3 space-y-0.5",children:c.map(e=>(0,t.jsxs)("div",{className:"flex items-center justify-between text-xs",children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:e.label}),(0,t.jsx)("span",{className:"text-foreground",children:e.value})]},e.label))}),d]})},"deriveConfiguredStatus",0,function(e){return e?"configured":"needs-setup"},"deriveIntegrationStatus",0,function(e){return e&&e.configured?e.error?"error":e.connected?"connected":"configured":"needs-setup"},"deriveMessagingStatus",0,function(e){return e&&"not_configured"!==e.runtimeState?"connecting"===e.runtimeState?"connecting":"error"===e.runtimeState?"error":"ok"===e.runtimeState?"connected":"configured":"needs-setup"},"messagingMetadata",0,function(e){if(e)return[{label:"Owner configured",value:e.ownerConfigured?"yes":"no"},{label:"Owner channel known",value:e.ownerChannelKnown?"yes":"no"},{label:"Reminder eligible",value:e.notificationEligible?"yes":"no"},{label:"Last inbound",value:e.lastInboundAt??"—"}]}])},40974,e=>{"use strict";let t=(0,e.i(77379).default)("Lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);e.s(["Lock",0,t],40974)},67490,e=>{"use strict";var t=e.i(14260),r=e.i(57415),a=e.i(95486),n=e.i(65268);e.s(["useIntegrationProbeLive",0,function(){let e=(0,a.useQueryClient)();return(0,r.useMutation)({mutationFn:e=>{let{key:t}=e,r={};return"liveProbe"in e?(r.liveProbe=!0,e.backend&&(r.backend=e.backend)):(r.backend=e.backend,r.tools=e.tools),n.api.post(`/integrations/${t}/probe`,r)},onSuccess:(t,r)=>{e.invalidateQueries({queryKey:["integration-probe",r.key]}),e.invalidateQueries({queryKey:["health"]})}})},"useIntegrations",0,function(){return(0,t.useQuery)({queryKey:["integrations"],queryFn:()=>n.api.get("/integrations"),staleTime:3e4})},"useNativeUnboundActions",0,function(e={}){let r=e.sinceHours??168;return(0,t.useQuery)({queryKey:["agent-actions","native_unbound",r],queryFn:async()=>{let e=new URLSearchParams({since:new Date(Date.now()-60*r*6e4).toISOString(),limit:"50"});e.append("kind","integration.native_unbound");let t=await n.api.get(`/agent/actions?${e.toString()}`),a=[];for(let e of t.actions)if(e.detail)try{let t=JSON.parse(e.detail);if("string"!=typeof t.key)continue;a.push({id:e.id,key:t.key,priorNativeBackend:t.priorNativeBackend??null,newMainBackend:t.newMainBackend??null,priorDeniedTools:t.priorDeniedTools??[],startedAt:e.startedAt})}catch{continue}return a},staleTime:6e4})},"usePatchIntegration",0,function(){let e=(0,a.useQueryClient)();return(0,r.useMutation)({mutationFn:({key:e,body:t})=>n.api.patch(`/integrations/${e}`,t),onSuccess:()=>{e.invalidateQueries({queryKey:["integrations"]}),e.invalidateQueries({queryKey:["health"]})}})},"useProxyModels",0,function(e){return(0,t.useQuery)({queryKey:["proxy-models",e??null],queryFn:()=>n.api.get(`/integrations/proxy-models/${e}`),enabled:null!=e,staleTime:6e4})},"useRecentProxyCalls",0,function(e,r={}){let{limit:a,enabled:s=!0}=r;return(0,t.useQuery)({queryKey:["recent-proxy-calls",e,a??null],queryFn:()=>{let t=void 0!==a?`?limit=${a}`:"";return n.api.get(`/integrations/${e}/recent-proxy-calls${t}`)},enabled:s&&null!==e,staleTime:1e4})}])},18518,e=>{"use strict";let t=(0,e.i(77379).default)("ClipboardCopy",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2",key:"4jdomd"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v4",key:"3hqy98"}],["path",{d:"M21 14H11",key:"1bme5i"}],["path",{d:"m15 10-4 4 4 4",key:"5dvupr"}]]);e.s(["ClipboardCopy",0,t],18518)},62452,64387,58692,e=>{"use strict";let t=(0,e.i(77379).default)("FolderSymlink",[["path",{d:"M2 9V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h7",key:"x1c07l"}],["path",{d:"m8 16 3-3-3-3",key:"rlqrt1"}]]);function r(e){return/^[A-Za-z]:[\\/]/.test(e)||/^\\\\/.test(e)||/^\/\/[^/]+\/[^/]+/.test(e)||e.includes("\\")}function a(e,t){let r=e.trim().replace(/[\\/]+$/g,"");return t&&(r=r.replace(/[\\/]+/g,"/").toLowerCase()),r}e.s(["FolderSymlink",0,t],62452),e.s(["hasPathTraversalSegment",0,function(e){return e.trim().split(/[\\/]+/).some(e=>".."===e)},"isClientAbsolutePath",0,function(e){let t=e.trim();return t.startsWith("/")||t.startsWith("~/")||t.startsWith("~\\")||/^[A-Za-z]:[\\/]/.test(t)||/^\\\\[^\\/]+[\\/][^\\/]+/.test(t)||/^\/\/[^/]+\/[^/]+/.test(t)},"isClientPathInsideOrEqual",0,function(e,t){if(0===e.trim().length||0===t.trim().length)return!1;let n=r(e)||r(t),s=a(e,n),i=a(t,n);return i===s||i.startsWith(`${s}/`)}],64387);var n=e.i(54710),s=e.i(81471);e.s(["CHARACTER_MAX_LENGTH",0,1e3,"CharacterEditor",0,function({value:e,onChange:t,disabled:r=!1,placeholder:a,rows:i=6}){let l=e.length,o=l>1e3,c=1e3===l;return(0,n.jsxs)("div",{className:"space-y-1",children:[(0,n.jsx)("textarea",{"data-testid":"character-editor-textarea",className:"w-full rounded border border-input bg-background p-3 text-sm font-mono resize-y focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",style:{minHeight:`${24*i}px`},value:e,onChange:e=>t(e.target.value),disabled:r,placeholder:a??"How should the agent talk to you? E.g. 'Speak casually. Tight bullets, no emoji. Use plain language for technical terms.'"}),(0,n.jsx)("div",{className:"flex justify-end",children:(0,n.jsxs)("span",{"data-testid":"character-editor-counter","aria-live":"polite",className:(0,s.cn)("text-xs tabular-nums",o?"font-semibold text-destructive":c?"text-amber-600":"text-muted-foreground"),children:[l,"/",1e3]})})]})},"isCharacterOverCap",0,function(e){return e.length>1e3}],58692)},85090,e=>{"use strict";var t=e.i(54710),r=e.i(34416),a=e.i(95486),n=e.i(88423),s=e.i(75187),i=e.i(13451),l=e.i(65268),o=e.i(20014),c=e.i(79634),d=e.i(70986),u=e.i(16047),h=e.i(78927),m=e.i(59546),p=e.i(52387),x=e.i(81471),f=e.i(88),g=e.i(20870);function b({label:e,accept:a,onUpload:n,configured:s}){let[i,l]=(0,r.useState)(!1),[d,u]=(0,r.useState)(null),p=(0,r.useRef)(null),x=(0,r.useCallback)(async e=>{l(!0),u(null);try{await n(e),u({type:"success",fileName:e.name})}catch(e){u({type:"error",message:e instanceof Error?e.message:"Upload failed"})}finally{l(!1)}},[n]);return(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("input",{ref:p,type:"file",accept:a,className:"hidden",onChange:e=>{let t=e.target.files?.[0];t&&x(t),e.target.value=""}}),(0,t.jsxs)(o.Button,{size:"sm",variant:s?"outline":"default",onClick:()=>p.current?.click(),disabled:i,className:"text-xs",children:[(0,t.jsx)(h.Upload,{className:"h-3.5 w-3.5 mr-1"}),i?"Uploading...":e]}),s&&(0,t.jsx)(m.CheckCircle2,{className:"h-4 w-4 text-emerald-500"})]}),d&&(0,t.jsx)(c.Alert,{variant:"success"===d.type?"success":"error",children:"success"===d.type?(0,t.jsxs)("span",{className:"block break-all",title:d.fileName,children:[function(e,t=36){if(e.length<=t)return e;let r=Math.floor((t-1)/2);return`${e.slice(0,t-1-r)}…${e.slice(-r)}`}(d.fileName)," uploaded"]}):(0,t.jsx)("span",{className:"block break-all",children:d.message})})]})}function v(){return(0,t.jsxs)("svg",{className:"h-4 w-4",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,t.jsx)("path",{d:"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92a5.06 5.06 0 0 1-2.2 3.32v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.1Z",fill:"#4285F4"}),(0,t.jsx)("path",{d:"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23Z",fill:"#34A853"}),(0,t.jsx)("path",{d:"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18A10.96 10.96 0 0 0 1 12c0 1.77.42 3.45 1.18 4.93l3.66-2.84Z",fill:"#FBBC05"}),(0,t.jsx)("path",{d:"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53Z",fill:"#EA4335"})]})}e.s(["GoogleCard",0,function(){let{data:e}=(0,n.useConfig)(),{data:h}=(0,s.useHealth)(),{toast:y,saveField:w}=(0,i.useSaveConfig)(),j=(0,a.useQueryClient)(),k=h?.integrations?.google,[C,N]=(0,r.useState)(!1),[S,E]=(0,r.useState)(null),A=(0,r.useRef)(null),R=e?.googleCalendarCredentialsConfigured??!1,I=e?.googleCalendarTokenConfigured??!1,T=e?.googleCredentialType==="service_account",D=async e=>{await l.api.upload("/config/upload/google-credentials",e),j.invalidateQueries({queryKey:["config"]}),j.invalidateQueries({queryKey:["health"]})};(0,r.useEffect)(()=>()=>{A.current&&clearInterval(A.current)},[]),(0,r.useEffect)(()=>{let e=e=>{e.origin.startsWith("http://localhost")&&e.data?.type==="google-auth-success"&&(A.current&&(clearInterval(A.current),A.current=null),N(!1),j.invalidateQueries({queryKey:["config"]}),j.invalidateQueries({queryKey:["health"]}))};return window.addEventListener("message",e),()=>window.removeEventListener("message",e)},[j]);let P=async()=>{N(!0),E(null);try{let e=await l.api.post("/config/google-auth/start"),t=window.open(e.authUrl,"google-auth","width=600,height=700");if(!t){E("Popup blocked. Allow popups for this site and try again."),N(!1);return}A.current=setInterval(()=>{t.closed&&(A.current&&(clearInterval(A.current),A.current=null),N(!1),j.invalidateQueries({queryKey:["config"]}),j.invalidateQueries({queryKey:["health"]}))},1e3)}catch(e){E(e instanceof Error?e.message:"Failed to start authorization"),N(!1)}};if(!e||!h)return null;let M=k?.services?.calendar,L=k?.services?.gmail,F=C?"connecting":(0,g.deriveIntegrationStatus)(k);return(0,t.jsxs)(g.ConnectionCard,{name:"Google",icon:(0,t.jsx)(v,{}),status:F,error:k?.error,children:[k?.configured&&(0,t.jsxs)("div",{className:"flex gap-4 mb-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5 text-xs",children:[(0,t.jsx)("span",{className:(0,x.cn)("inline-block h-2 w-2 rounded-full",M?.connected?"bg-emerald-500":"bg-gray-300 dark:bg-gray-600")}),(0,t.jsx)("span",{className:"text-muted-foreground",children:"Calendar"}),(0,t.jsx)("span",{className:M?.connected?"text-emerald-600 dark:text-emerald-400":"text-muted-foreground",children:M?.connected?"Active":"Inactive"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5 text-xs",children:[(0,t.jsx)("span",{className:(0,x.cn)("inline-block h-2 w-2 rounded-full",L?.connected?"bg-emerald-500":"bg-gray-300 dark:bg-gray-600")}),(0,t.jsx)("span",{className:"text-muted-foreground",children:"Gmail"}),(0,t.jsx)("span",{className:L?.connected?"text-emerald-600 dark:text-emerald-400":"text-muted-foreground",children:L?.connected?"Active":"Not yet implemented"})]})]}),(0,t.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2",children:[(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("p",{className:"text-xs font-medium text-muted-foreground",children:"1. Upload credentials"}),(0,t.jsx)(b,{label:"Credentials JSON",accept:".json,application/json",onUpload:D,configured:R})]}),!T&&(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("p",{className:"text-xs font-medium text-muted-foreground",children:"2. Authorize"}),(0,t.jsxs)(o.Button,{size:"sm",variant:I?"outline":"default",onClick:P,disabled:!R||C,className:"text-xs",children:[(0,t.jsx)(p.ExternalLink,{className:"h-3.5 w-3.5 mr-1"}),C?"Waiting...":I?"Re-authorize":"Authorize with Google"]}),I&&(0,t.jsx)(m.CheckCircle2,{className:"inline-block ml-2 h-4 w-4 text-emerald-500"}),S&&(0,t.jsx)(c.Alert,{variant:"error",className:"mt-1",children:S}),!R&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:"Upload credentials first"})]})]}),!k?.connected&&R&&(T||I)&&(0,t.jsxs)(c.Alert,{variant:"warning",className:"mt-3",children:[T?"Service account configured.":"Authorized."," Restart the daemon to connect."]}),(0,t.jsxs)(d.Collapsible,{children:[(0,t.jsxs)(d.CollapsibleTrigger,{className:"flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground mt-3",children:["Advanced setup notes ",(0,t.jsx)(u.ChevronDown,{className:"h-3 w-3"})]}),(0,t.jsx)(d.CollapsibleContent,{children:(0,t.jsxs)("div",{className:"mt-2 rounded bg-muted/50 p-2 space-y-1 text-xs",children:[(0,t.jsx)("p",{className:"font-medium text-muted-foreground",children:"Secrets are stored in the macOS Keychain."}),(0,t.jsx)("p",{className:"text-muted-foreground",children:"Use the upload button above for credentials JSON, then complete OAuth in the browser."}),(0,t.jsx)("p",{className:"text-muted-foreground mt-1",children:"Same credentials are used for Calendar and Gmail (scopes: calendar, gmail.modify, gmail.send)."}),(0,t.jsx)("p",{className:"text-muted-foreground",children:'Calendar ID defaults to "primary" and can be changed below.'})]})})]}),k?.configured&&(0,t.jsxs)("div",{className:"mt-3 pt-3 border-t border-border",children:[y&&(0,t.jsx)(c.Alert,{variant:y.type,className:"mb-2",children:y.message}),(0,t.jsx)(f.EditableField,{label:"Calendar ID",value:e.googleCalendarId,configKey:"googleCalendarId",description:'Use "primary" for your main calendar, or paste a full calendar ID (e.g. abc123@group.calendar.google.com) for a secondary or shared calendar.',onSave:w})]})]})}])},89480,33586,e=>{"use strict";var t=e.i(54710),r=e.i(34416),a=e.i(40807),n=e.i(12878),s=e.i(81471),i=e.i(79634),l=e.i(29086),o=e.i(77379);let c=(0,o.default)("Paperclip",[["path",{d:"M13.234 20.252 21 12.3",key:"1cbrk9"}],["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 0 2.828 2 2 0 0 0 2.828 0l8.414-8.586a4 4 0 0 0 0-5.656 4 4 0 0 0-5.656 0l-8.415 8.585a6 6 0 1 0 8.486 8.486",key:"1pkts6"}]]);e.s(["Paperclip",0,c],33586);let d=(0,o.default)("FileImage",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["circle",{cx:"10",cy:"12",r:"2",key:"737tya"}],["path",{d:"m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22",key:"wt3hpn"}]]),u=(0,o.default)("FileSpreadsheet",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M8 13h2",key:"yr2amv"}],["path",{d:"M14 13h2",key:"un5t4a"}],["path",{d:"M8 17h2",key:"2yhykz"}],["path",{d:"M14 17h2",key:"10kma7"}]]);var h=e.i(52387);function m({mimeType:e,className:r}){return e.startsWith("image/")?(0,t.jsx)(d,{className:r}):"application/pdf"===e?(0,t.jsx)(l.FileText,{className:r}):e.includes("spreadsheet")||"text/csv"===e||e.includes("excel")?(0,t.jsx)(u,{className:r}):(0,t.jsx)(c,{className:r})}function p({id:e,alt:a}){let[n,s]=(0,r.useState)(null),[i,l]=(0,r.useState)(!1);return((0,r.useEffect)(()=>{let t=!1,r=null;return(async()=>{try{let a=await fetch(`/api/chat/attachments/${e}`);if(!a.ok)throw Error(`status ${a.status}`);let n=await a.blob();if(t)return;r=URL.createObjectURL(n),s(r)}catch{t||l(!0)}})(),()=>{t=!0,r&&URL.revokeObjectURL(r)}},[e]),i)?null:n?(0,t.jsx)("img",{src:n,alt:a,className:"max-h-64 max-w-full rounded-md border border-border"}):(0,t.jsx)("div",{className:"flex h-32 w-full max-w-xs items-center justify-center rounded-md border border-border bg-muted/20 text-xs text-muted-foreground",children:"loading…"})}function x({attachment:e,isOwn:r}){var a;let n=`/api/chat/attachments/${e.id}`,i=e.mimeType.startsWith("image/")&&"image/svg+xml"!==e.mimeType&&e.sizeBytes<2097152;return(0,t.jsxs)("div",{className:"space-y-1",children:[i&&(0,t.jsx)(p,{id:e.id,alt:e.originalFilename}),(0,t.jsxs)("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:(0,s.cn)("inline-flex items-center gap-2 rounded-md border px-2 py-1 text-xs hover:bg-muted/40",r?"border-primary-foreground/30 bg-primary-foreground/10 text-primary-foreground":"border-border bg-muted/30 text-foreground"),title:e.caption??e.originalFilename,children:[(0,t.jsx)(m,{mimeType:e.mimeType,className:"h-3 w-3 flex-shrink-0"}),(0,t.jsx)("span",{className:"max-w-[160px] truncate",children:e.originalFilename}),(0,t.jsx)("span",{className:"text-muted-foreground",children:(a=e.sizeBytes)<1024?`${a} B`:a<1048576?`${(a/1024).toFixed(0)} KB`:`${(a/1024/1024).toFixed(1)} MB`}),(0,t.jsx)(h.ExternalLink,{className:"h-3 w-3 flex-shrink-0 opacity-60"})]}),e.caption&&(0,t.jsx)("p",{className:"px-1 text-[10px] text-muted-foreground italic",children:e.caption})]})}function f({attachments:e,isOwn:r}){return 0===e.length?null:(0,t.jsx)("div",{className:"flex flex-col gap-2",children:e.map(e=>(0,t.jsx)(x,{attachment:e,isOwn:r},e.id))})}let g=[n.default],b={a:({children:e,href:r,...a})=>(0,t.jsx)("a",{href:r,target:"_blank",rel:"noopener noreferrer",...a,children:e})},v=(0,r.memo)(function({message:e,assistantLabel:r="Assistant"}){if("error"===e.role)return(0,t.jsx)(i.Alert,{variant:"error",className:"mx-auto max-w-md rounded-lg px-4 py-2 text-sm",children:e.content});let n="user"===e.role;return(0,t.jsx)("div",{className:(0,s.cn)("flex",n?"justify-end":"justify-start"),children:(0,t.jsxs)("div",{className:"max-w-[80%] space-y-1",children:[!n&&(0,t.jsx)("p",{className:"px-1 text-[11px] font-medium text-muted-foreground",children:r}),e.content&&(0,t.jsx)("div",{className:(0,s.cn)("rounded-2xl px-4 py-2.5 text-sm",n?"whitespace-pre-wrap rounded-br-md bg-primary text-primary-foreground [overflow-wrap:anywhere]":"markdown-body markdown-bubble rounded-bl-md border border-border bg-card text-foreground"),children:n?e.content:(0,t.jsx)(a.default,{remarkPlugins:g,components:b,children:e.content})}),e.attachments&&e.attachments.length>0&&(0,t.jsx)("div",{className:"px-1",children:(0,t.jsx)(f,{attachments:e.attachments,isOwn:n})}),!n&&e.meta&&(0,t.jsx)("p",{className:"px-1 text-[10px] text-muted-foreground/60",children:[e.meta.backend&&e.meta.model?`${e.meta.backend} \xb7 ${e.meta.model}`:e.meta.backend||e.meta.model,null!=e.meta.durationMs?`${(e.meta.durationMs/1e3).toFixed(1)}s`:null,null!=e.meta.costUsd?`$${e.meta.costUsd.toFixed(4)}`:null].filter(Boolean).join(" · ")})]})})});e.s(["MessageBubble",0,v],89480)},76,27779,e=>{"use strict";var t=e.i(34416),r=e.i(95486);function a({fetchedMessageCount:e,currentRestoredCount:t,currentLiveCount:r}){return e>0||t+r===0}function n(e){return`${e.role}\u0000${e.content}`}function s(e,t,r){let a=e.slice(-Math.max(t.length+4,4)),s=new Map;for(let e of a){let t=n(e);s.set(t,(s.get(t)??0)+1)}return t.filter(e=>{if("error"===e.role)return!0;if(e.id.startsWith("stream-")||e.timestamp.getTime()<=r)return!1;let t=n(e),a=s.get(t)??0;return!(a>0)||(s.set(t,a-1),!1)})}async function i(e,t){let r,a=t?.fetchImpl??fetch,n=[];for(;;){let s=await a(function(e,t){let r=new URLSearchParams({limit:String(200)});return void 0!==t&&r.set("before",String(t)),`/api/conversations/${e}/messages?${r.toString()}`}(e,r),{signal:t?.signal});if(!s.ok)throw Error(`Failed to load conversation ${e} history`);let i=await s.json();if(0===i.messages.length||(n.push(i.messages),!i.hasMore))break;let l=i.messages[0]?.id;if(!l||l===r)break;r=l}return n.reverse().flat()}e.s(["fetchConversationHistory",0,i],27779);var l=e.i(81471);let o="pa-chat-sessionId";function c(e){try{localStorage.setItem(o,String(e))}catch{}}function d(){try{localStorage.removeItem(o)}catch{}}async function u(e,t){return(await i(e,{signal:t})).filter(e=>"user"===e.role||"assistant"===e.role).map(e=>({id:`restored-${e.id}`,role:e.role,content:e.content,timestamp:(0,l.parseUtcDate)(e.timestamp),...e.attachments&&e.attachments.length>0?{attachments:e.attachments.map(e=>({id:e.id,originalFilename:e.originalFilename,mimeType:e.mimeType,sizeBytes:e.sizeBytes,direction:e.direction,...e.caption?{caption:e.caption}:{}}))}:{}}))}async function h(e){let t=new URLSearchParams({scope:"dashboard_chat",status:"active",limit:"1"}),r=await fetch(`/api/conversations?${t.toString()}`,{signal:e});if(!r.ok)throw Error("Failed to load active dashboard session");let a=await r.json(),n=a.conversations[0]?.id;return"number"==typeof n&&n>0?n:null}e.s(["fetchSessionMessages",0,u,"useChat",0,function({disableHistory:e=!1}={}){let n=(0,r.useQueryClient)(),[i,l]=(0,t.useState)([]),[m,p]=(0,t.useState)(!1),[x,f]=(0,t.useState)(!1),[g,b]=(0,t.useState)([]),[v,y]=(0,t.useState)(null),[w,j]=(0,t.useState)(!1),[k,C]=(0,t.useState)(0),[N,S]=(0,t.useState)([]),E=(0,t.useRef)(""),A=(0,t.useRef)(0),R=(0,t.useRef)(null),I=(0,t.useRef)(null),T=(0,t.useRef)([]),D=(0,t.useRef)([]),P=(0,t.useRef)(null),M=()=>`msg-${++A.current}`,L=(0,t.useCallback)((e,t)=>"string"==typeof e?.message?e.message:"string"==typeof e?.error?e.error:t,[]),F=(0,t.useCallback)(()=>{I.current&&(clearTimeout(I.current),I.current=null)},[]),O=(0,t.useCallback)(()=>{f(!0),F(),I.current=setTimeout(()=>{f(!1)},12e4)},[F]),_=(0,t.useCallback)(()=>{f(!1),F()},[F]),B=(0,t.useCallback)(e=>{"number"==typeof e?.resumeSessionId&&e.resumeSessionId>0?c(e.resumeSessionId):d(),E.current="",T.current=[],D.current=[],P.current=e?.resumeSessionId??null,_(),l([]),S([]),b([]),y(null),p(!1),j(!1),R.current&&(R.current.close(),R.current=null),C(e=>e+1)},[_]);(0,t.useEffect)(()=>{P.current=v?.sessionId??null},[v]),(0,t.useEffect)(()=>{T.current=i},[i]),(0,t.useEffect)(()=>{D.current=N},[N]),(0,t.useEffect)(()=>{let t=e?null:function(){try{let e=localStorage.getItem(o);if(!e)return null;let t=Number(e);return Number.isFinite(t)&&t>0?t:null}catch{return null}}(),r=new AbortController,n=new EventSource(t?`/api/chat/stream?sessionId=${t}`:"/api/chat/stream");R.current=n;let i=0;return e||h(r.signal).then(e=>{if(!e)return void d();c(e);let t=Date.now();return u(e,r.signal).then(e=>{a({fetchedMessageCount:e.length,currentRestoredCount:D.current.length,currentLiveCount:T.current.length})&&(S(e),l(r=>s(e,r,t)))})}).catch(()=>{}),n.onopen=()=>{i++,j(!0),i>1?console.debug("[chat] SSE reconnected"):console.debug("[chat] SSE connected")},n.onerror=()=>{j(!1),p(!1),_(),E.current="",console.warn("[chat] SSE connection lost — will auto-reconnect")},n.addEventListener("session_info",r=>{try{let n=JSON.parse(r.data),o="channelId"in n;y(e=>o?{...n}:{...e,...n}),!e&&("number"==typeof n.sessionId&&n.sessionId>0&&c(n.sessionId),t&&"channelId"in n&&!("sessionId"in n)&&d());let h=i>1,m="number"==typeof n.sessionId?n.sessionId:null;if(!e&&function({isInitialBinding:e,isReconnect:t,confirmedSessionId:r}){return null!==r&&(e||t)}({isInitialBinding:o,isReconnect:h,confirmedSessionId:m})&&null!==m){let e=Date.now();u(m).then(t=>{a({fetchedMessageCount:t.length,currentRestoredCount:D.current.length,currentLiveCount:T.current.length})&&(S(t),l(r=>s(t,r,e)))}).catch(()=>{})}}catch{}}),n.addEventListener("chat",e=>{try{let t=JSON.parse(e.data);l(e=>[...e,{id:M(),role:t.role,content:t.content,timestamp:new Date,...t.attachments&&t.attachments.length>0?{attachments:t.attachments.map(e=>({...e,direction:"outbound"}))}:{}}]),b([]),_()}catch{}}),n.addEventListener("chat_attachments",e=>{try{let{attachments:t}=JSON.parse(e.data);if(!Array.isArray(t)||0===t.length)return;l(e=>{for(let r=e.length-1;r>=0;r--)if("assistant"===e[r].role){let a=[...e];return a[r]={...a[r],attachments:t.map(e=>({...e,direction:"outbound"}))},a}return e})}catch{}}),n.addEventListener("chat_stream",e=>{try{let{chunk:t}=JSON.parse(e.data);p(!0),_(),E.current+=t,l(e=>{let t=e[e.length-1];return t?.role==="assistant"&&t.id.startsWith("stream-")?[...e.slice(0,-1),{...t,content:E.current}]:[...e,{id:`stream-${A.current}`,role:"assistant",content:E.current,timestamp:new Date}]})}catch{}}),n.addEventListener("stream_end",()=>{p(!1),E.current=""}),n.addEventListener("tool_progress",e=>{try{let t=JSON.parse(e.data);b(e=>{let r=e.findIndex(e=>e.tool===t.tool);if(r>=0){let a=[...e];return a[r]=t,a}return[...e,t]})}catch{}}),n.addEventListener("chat_meta",e=>{try{let t=JSON.parse(e.data);l(e=>{for(let r=e.length-1;r>=0;r--)if("assistant"===e[r].role){let a=[...e];return a[r]={...a[r],meta:t},a}return e});let r=P.current;if(r){let e=Date.now();u(r).then(t=>{a({fetchedMessageCount:t.length,currentRestoredCount:D.current.length,currentLiveCount:T.current.length})&&(S(t),l(r=>s(t,r,e)))}).catch(()=>{})}}catch{}}),n.addEventListener("chat_error",e=>{try{let{message:t}=JSON.parse(e.data);l(e=>[...e,{id:M(),role:"error",content:t,timestamp:new Date}]),p(!1),_()}catch{}}),n.addEventListener("ping",()=>{}),()=>{r.abort(),n.close(),R.current=null,j(!1),F()}},[_,F,k,e]);let q=(0,t.useCallback)(async(e,t)=>{if(v?.channelId){O(),l(r=>[...r,{id:M(),role:"user",content:e,timestamp:new Date,...t?.attachments&&t.attachments.length>0?{attachments:t.attachments.map(e=>({...e,direction:"inbound"}))}:{}}]);try{let r=await fetch("/api/chat/messages",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({channelId:v.channelId,content:e,...t?.requestedModel?{requestedModel:t.requestedModel}:{},...t?.requestedBackendId&&t?.requestedModelId?{requestedBackendId:t.requestedBackendId,requestedModelId:t.requestedModelId}:{},...t?.attachments&&t.attachments.length>0?{attachmentIds:t.attachments.map(e=>e.id)}:{}})});if(!r.ok){let e=await r.json().catch(()=>null);l(t=>[...t,{id:M(),role:"error",content:L(e,"send failed"),timestamp:new Date}]),_()}}catch(t){let e=t instanceof TypeError?t.message:String(t);console.error("[chat] POST /api/chat/messages failed:",e),l(t=>[...t,{id:M(),role:"error",content:`Failed to send message: ${e}`,timestamp:new Date}]),_()}}},[L,v,O,_]),z=(0,t.useCallback)(async()=>{if(v?.channelId)try{let e=await fetch("/api/chat/end-session",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({channelId:v.channelId})});if(!e.ok){let t=await e.json().catch(()=>null);l(e=>[...e,{id:M(),role:"error",content:L(t,"failed to end session"),timestamp:new Date}]);return}n.invalidateQueries({queryKey:["conversations"]}).catch(()=>{}),n.invalidateQueries({queryKey:["chat-current-binding"]}).catch(()=>{}),B()}catch(t){let e=t instanceof TypeError?t.message:String(t);console.error("[chat] POST /api/chat/end-session failed:",e),l(t=>[...t,{id:M(),role:"error",content:`Failed to end session: ${e}`,timestamp:new Date}])}},[L,n,B,v]),$=(0,t.useCallback)(async e=>{console.debug("[chat] continueSession()",{sessionId:e});try{let t=await fetch("/api/chat/continue-session",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionId:e})});if(!t.ok){let e=await t.json().catch(()=>null);return l(t=>[...t,{id:M(),role:"error",content:L(e,"failed to continue session"),timestamp:new Date}]),!1}let r=await t.json().catch(()=>null),a="number"==typeof r?.sessionId&&r.sessionId>0?r.sessionId:e;return n.invalidateQueries({queryKey:["conversations"]}).catch(()=>{}),n.invalidateQueries({queryKey:["chat-current-binding"]}).catch(()=>{}),B({resumeSessionId:a}),!0}catch(t){let e=t instanceof TypeError?t.message:String(t);return console.error("[chat] POST /api/chat/continue-session failed:",e),l(t=>[...t,{id:M(),role:"error",content:`Failed to continue session: ${e}`,timestamp:new Date}]),!1}},[L,n,B]),H=w&&!!v?.channelId;return{messages:i,setMessages:l,restoredMessages:N,setRestoredMessages:S,streaming:m,waiting:x,busy:x||m,toolProgress:g,sessionInfo:v,sendMessage:q,endSession:z,continueSession:$,connected:w,ready:H}}],76)},34098,e=>{"use strict";var t=e.i(54710),r=e.i(99758),a=e.i(72740);e.s(["ToolProgress",0,function({items:e}){return 0===e.length?null:(0,t.jsx)("div",{className:"flex flex-wrap gap-2 px-2",children:e.map(e=>{let n="done"===e.status||"completed"===e.status;return(0,t.jsxs)("div",{className:"flex items-center gap-1.5 rounded-md bg-muted px-2.5 py-1 text-xs text-muted-foreground",children:[n?(0,t.jsx)(r.Check,{className:"h-3 w-3 text-emerald-500"}):(0,t.jsx)(a.Loader2,{className:"h-3 w-3 animate-spin"}),(0,t.jsx)("span",{children:e.tool})]},e.tool)})})}])},53756,e=>{"use strict";var t=e.i(54710),r=e.i(34416);let a=(0,e.i(77379).default)("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);var n=e.i(72740),s=e.i(33586),i=e.i(36451),l=e.i(20014),o=e.i(81471);e.s(["ChatInput",0,function({onSend:e,disabled:c,disabledMessage:d,placeholder:u,className:h}){let[m,p]=(0,r.useState)(""),x=(0,r.useRef)(null),f=(0,r.useRef)(null),[g,b]=(0,r.useState)(!1),{pending:v,ready:y,uploading:w,addFiles:j,remove:k,clear:C,error:N}=function(){let[e,t]=(0,r.useState)([]),[a,n]=(0,r.useState)(null),s=(0,r.useRef)(new Map),i=(0,r.useCallback)((e,r)=>{t(t=>t.map(t=>t.clientId===e?{...t,...r}:t))},[]),l=(0,r.useCallback)((e,t=0)=>e.reduce((e,t)=>e+t.sizeBytes,0)+t,[]),o=(0,r.useCallback)(e=>{let r=s.current.get(e);r&&(r.abort(),s.current.delete(e)),t(t=>t.filter(t=>t.clientId!==e)),t(t=>{let r=t.find(t=>t.clientId===e);return r?.serverId&&fetch(`/api/chat/attachments/${r.serverId}`,{method:"DELETE"}).catch(()=>{}),t})},[]),c=(0,r.useCallback)(()=>{for(let e of s.current.values())e.abort();s.current.clear(),t([]),n(null)},[]),d=(0,r.useCallback)(e=>{let t=new XMLHttpRequest;s.current.set(e.clientId,t),t.open("POST","/api/chat/attachments"),t.upload.onprogress=t=>{t.lengthComputable&&i(e.clientId,{progress:Math.round(t.loaded/t.total*100)})},t.onload=()=>{if(s.current.delete(e.clientId),t.status>=200&&t.status<300)try{let r=JSON.parse(t.responseText);i(e.clientId,{serverId:r.id,mimeType:r.mimeType,progress:100,status:"uploaded"})}catch{i(e.clientId,{status:"error",error:"Malformed response from server"})}else{let r=`Upload failed (${t.status})`;try{let e=JSON.parse(t.responseText);e.message&&(r=e.message)}catch{}i(e.clientId,{status:"error",error:r})}},t.onerror=()=>{s.current.delete(e.clientId),i(e.clientId,{status:"error",error:"Network error during upload"})};let r=new FormData;r.append("file",e.file,e.file.name),t.send(r)},[i]),u=(0,r.useCallback)(e=>{n(null);let r=Array.from(e);0!==r.length&&t(e=>{if(e.filter(e=>"uploading"===e.status).length+r.length>5)return n("At most 5 concurrent uploads"),e;let t=l(e),a=[];for(let e of r){let r=e.type.startsWith("image/")?5242880:0x1900000;if(e.size>r){n(`"${e.name}" is ${(e.size/1024/1024).toFixed(1)} MB — over the ${(r/1024/1024).toFixed(0)} MB limit`);continue}if(t+e.size>0x6400000){n("Per-turn cap is 100 MB — skipping the rest");break}t+=e.size;let s={clientId:`pending-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,serverId:null,file:e,progress:0,status:"uploading",sizeBytes:e.size};a.push(s)}for(let e of a)queueMicrotask(()=>d(e));return[...e,...a]})},[l,d]),h=e.some(e=>"uploading"===e.status),m=e.filter(e=>"uploaded"===e.status&&null!==e.serverId).map(e=>({id:e.serverId,originalFilename:e.file.name,mimeType:e.mimeType??(e.file.type||"application/octet-stream"),sizeBytes:e.sizeBytes}));return{pending:e,ready:m,uploading:h,addFiles:u,remove:o,clear:c,error:a}}(),S=!c&&!w&&(m.trim().length>0||y.length>0),E=(0,r.useCallback)(()=>{S&&(e(m.trim(),y),p(""),C(),x.current&&(x.current.style.height="auto"))},[S,C,e,y,m]);return(0,r.useEffect)(()=>{let e=x.current;if(!e)return;let t=e=>{if(c)return;let t=e.clipboardData?.items;if(!t)return;let r=[];for(let e of t)if("file"===e.kind){let t=e.getAsFile();t&&r.push(t)}r.length>0&&(e.preventDefault(),j(r))};return e.addEventListener("paste",t),()=>e.removeEventListener("paste",t)},[j,c]),(0,t.jsxs)("div",{className:(0,o.cn)("border-t border-border bg-background px-4 pt-3 pb-4",g&&"bg-primary/5",h),onDragOver:e=>{c||(e.preventDefault(),b(!0))},onDragLeave:()=>b(!1),onDrop:e=>{if(e.preventDefault(),b(!1),c)return;let t=e.dataTransfer.files;t.length>0&&j(t)},children:[c&&(0,t.jsxs)("div",{className:"mb-2 flex items-center gap-1.5 text-xs text-muted-foreground",children:[(0,t.jsx)(n.Loader2,{className:"h-3 w-3 animate-spin"}),(0,t.jsx)("span",{children:d??"Agent is generating a response — please wait"})]}),v.length>0&&(0,t.jsx)("div",{className:"mb-2 flex flex-wrap gap-2",children:v.map(e=>{var r;return(0,t.jsxs)("div",{className:(0,o.cn)("flex items-center gap-2 rounded-md border px-2 py-1 text-xs","error"===e.status?"border-destructive/40 bg-destructive/5 text-destructive":"border-border bg-muted/40"),children:[(0,t.jsx)(s.Paperclip,{className:"h-3 w-3 flex-shrink-0"}),(0,t.jsx)("span",{className:"max-w-[160px] truncate",title:e.file.name,children:e.file.name}),(0,t.jsx)("span",{className:"text-muted-foreground",children:(r=e.sizeBytes)<1024?`${r} B`:r<1048576?`${(r/1024).toFixed(0)} KB`:`${(r/1024/1024).toFixed(1)} MB`}),"uploading"===e.status&&(0,t.jsxs)("span",{className:"text-muted-foreground",children:[e.progress,"%"]}),"error"===e.status&&e.error&&(0,t.jsx)("span",{className:"text-muted-foreground/80",title:e.error,children:"failed"}),(0,t.jsx)("button",{type:"button",onClick:()=>k(e.clientId),className:"ml-1 text-muted-foreground hover:text-foreground","aria-label":`Remove ${e.file.name}`,children:(0,t.jsx)(i.X,{className:"h-3 w-3"})})]},e.clientId)})}),N&&(0,t.jsx)("div",{className:"mb-2 text-xs text-destructive",role:"alert",children:N}),(0,t.jsxs)("div",{className:"flex items-end gap-2",children:[(0,t.jsx)("input",{ref:f,type:"file",multiple:!0,className:"hidden",onChange:e=>{var t;(t=e.target.files)&&0!==t.length&&j(t),e.target.value=""}}),(0,t.jsx)(l.Button,{type:"button",size:"icon",variant:"ghost",onClick:()=>f.current?.click(),disabled:c,"aria-label":"Attach files",title:"Attach files",children:(0,t.jsx)(s.Paperclip,{className:"h-4 w-4"})}),(0,t.jsx)("textarea",{ref:x,value:m,onChange:e=>p(e.target.value),onKeyDown:e=>{(e.metaKey||e.ctrlKey)&&"Enter"===e.key&&(e.preventDefault(),E())},onInput:()=>{let e=x.current;e&&(e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)},placeholder:u??(c?"Waiting for response…":"Message the agent..."),disabled:c,rows:1,className:"flex-1 resize-none rounded-lg border border-input bg-background px-3 py-2 text-sm placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50"}),(0,t.jsx)(l.Button,{size:"icon",onClick:E,disabled:!S,children:c||w?(0,t.jsx)(n.Loader2,{className:"h-4 w-4 animate-spin"}):(0,t.jsx)(a,{className:"h-4 w-4"})})]})]})}],53756)},86567,6423,86704,29472,e=>{"use strict";var t=e.i(54710),r=e.i(34416),a=e.i(45958),n=e.i(52387),s=e.i(20014),i=e.i(90826),l=e.i(81187),o=e.i(89883),c=e.i(90925),d=e.i(65268),u=e.i(8652),h=e.i(48467),m=e.i(79634),p=e.i(81471),x=e.i(14260),f=e.i(95486);function g(e,t){return(0,x.useQuery)({queryKey:["mail-health",e],queryFn:()=>d.api.get(`/mail/${encodeURIComponent(e)}/health`),refetchInterval:1e4,enabled:t})}function b(){let e=(0,f.useQueryClient)();return()=>{e.invalidateQueries({queryKey:["mail-providers"]}),e.invalidateQueries({queryKey:["mail-accounts"]}),e.invalidateQueries({queryKey:["mail-health"]})}}async function v(e,t,r){let a=new Set(e);r?a.add(t):a.delete(t);let n=["gmail","outlook","yahoo","icloud"].filter(e=>a.has(e));return await d.api.patch("/mail/providers",{enabledKinds:n}),n}e.s(["toggleProviderEnabled",0,v,"useInvalidateMail",0,b,"useMailAccountHealth",0,g,"useMailAccounts",0,function(){return(0,x.useQuery)({queryKey:["mail-accounts"],queryFn:()=>d.api.get("/mail/accounts"),refetchInterval:1e4})},"useMailProviders",0,function(){return(0,x.useQuery)({queryKey:["mail-providers"],queryFn:()=>d.api.get("/mail/providers"),refetchInterval:3e4})}],6423);let y={healthy:{variant:"green",label:"Healthy"},requires_consent:{variant:"amber",label:"Re-authenticate"},degraded:{variant:"red",label:"Degraded"}};function w({account:e,highlight:a=!1,hideActive:n=!1,hideHealth:l=!1,onReauthenticate:u,isLastOfKind:p=!1,onAfterRemove:x}){let f=(0,r.useRef)(null),v=(0,i.useConfirm)(),C=b(),[N,S]=(0,r.useState)(!1),[E,A]=(0,r.useState)(null);(0,r.useEffect)(()=>{a&&f.current&&f.current.scrollIntoView({behavior:"smooth",block:"center"})},[a]);let R=g(e.id,!l).data??null,I="yahoo"===e.kind||"icloud"===e.kind,[T,D]=(0,r.useState)(!1),P=async()=>{A(null),S(!0);try{await d.api.patch(`/mail/accounts/${encodeURIComponent(e.id)}`,{active:!e.active}),C()}catch(e){A(e instanceof Error?e.message:"Failed to update")}finally{S(!1)}},M=async()=>{if(await v({title:`Remove ${e.email}?`,description:"Local credentials are revoked and the account is removed from this app. The mailbox itself is untouched at the provider."+(p?" This is the last account of its kind, so the provider will also be disabled — re-authenticate and toggle Enable to bring it back.":""),confirmLabel:"Remove",variant:"destructive"})){A(null),S(!0);try{await d.api.delete(`/mail/accounts/${encodeURIComponent(e.id)}`),x&&await x(),C()}catch(e){A(e instanceof Error?e.message:"Failed to remove")}finally{S(!1)}}},L=y[e.authStatus],F=l||!e.idleEnabled?null:R?.idleFallbackUntilUtc?{label:"polling (IDLE down)",variant:"amber"}:{label:"IDLE",variant:"green"};return(0,t.jsxs)("div",{ref:f,id:`account-${e.id}`,className:"rounded-md border p-3 transition-colors "+(a?"border-amber-400 ring-1 ring-amber-300/60":"border-border"),children:[(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[(0,t.jsx)(o.Mail,{className:"mt-0.5 h-4 w-4 shrink-0 text-muted-foreground"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-foreground truncate",children:e.email}),e.label&&(0,t.jsxs)("span",{className:"text-xs text-muted-foreground",children:["(",e.label,")"]}),(0,t.jsx)(h.Badge,{variant:L.variant,children:L.label}),F&&(0,t.jsx)(h.Badge,{variant:F.variant,children:F.label})]}),!l&&(0,t.jsx)(k,{health:R})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[!n&&(0,t.jsxs)("label",{className:"flex items-center gap-1 text-xs cursor-pointer select-none",children:[(0,t.jsx)("input",{type:"checkbox",checked:e.active,disabled:N,onChange:()=>void P(),className:"h-3.5 w-3.5 rounded border-border"}),"Active"]}),"requires_consent"===e.authStatus&&(I?(0,t.jsx)(s.Button,{size:"sm",variant:"outline",disabled:N,onClick:()=>D(e=>!e),className:"h-7 text-xs px-2",children:T?"Cancel":"Re-authenticate"}):u&&(0,t.jsx)(s.Button,{size:"sm",variant:"outline",disabled:N,onClick:()=>void u(),className:"h-7 text-xs px-2",children:"Re-authenticate"})),(0,t.jsx)(s.Button,{size:"sm",variant:"outline",onClick:()=>void M(),disabled:N,className:"h-7 px-2",title:"Remove account",children:(0,t.jsx)(c.Trash2,{className:"h-3.5 w-3.5"})})]})]}),E&&(0,t.jsx)(m.Alert,{variant:"error",className:"mt-2",children:E}),I&&T&&(0,t.jsx)(j,{accountId:e.id,onSuccess:()=>{D(!1),C()}})]})}function j({accountId:e,onSuccess:a}){let[n,i]=(0,r.useState)(""),[l,o]=(0,r.useState)(!1),[c,h]=(0,r.useState)(null),p=async()=>{o(!0),h(null);try{await d.api.post(`/config/mail/app-password/${encodeURIComponent(e)}/refresh`,{appPassword:n.trim()}),i(""),a()}catch(e){h(e instanceof Error?e.message:"Failed to refresh")}finally{o(!1)}};return(0,t.jsxs)("div",{className:"mt-2 rounded-md border border-amber-200 bg-amber-50/50 p-3 dark:border-amber-900 dark:bg-amber-950/30 space-y-2",children:[(0,t.jsx)("p",{className:"text-xs text-foreground",children:"Generate a new app password at the provider, paste it here, and the daemon will swap it in place — the polling cursor and account ID stay intact."}),(0,t.jsx)(u.Input,{type:"password",value:n,onChange:e=>i(e.target.value),placeholder:"paste new app password",className:"h-8 text-xs"}),(0,t.jsx)("div",{className:"flex gap-2",children:(0,t.jsx)(s.Button,{size:"sm",onClick:()=>void p(),disabled:l||0===n.trim().length,className:"h-7 text-xs px-3",children:l?"Verifying…":"Update password"})}),c&&(0,t.jsx)(m.Alert,{variant:"error",children:c})]})}function k({health:e}){if(!e)return(0,t.jsx)("p",{className:"mt-1 text-[11px] text-muted-foreground",children:"Waiting for first poll…"});let r=e.lastPollAtUtc,a=null!=r&&Date.now()-(0,p.parseUtcDate)(r).getTime()>9e5;return(0,t.jsxs)("div",{className:"mt-1 flex flex-wrap items-center gap-x-3 gap-y-1 text-[11px] text-muted-foreground",children:[(0,t.jsxs)("span",{children:["last poll:"," ",r?(0,t.jsxs)("span",{title:(0,p.formatAbsoluteTime)(r),className:a?"text-amber-600 dark:text-amber-400":void 0,children:[(0,p.formatRelativeTime)(r),a?" · stale":""]}):(0,t.jsx)("span",{children:"never"})]}),e.consecutiveErrorCount>0&&(0,t.jsxs)("span",{className:"text-amber-600 dark:text-amber-400",children:[e.consecutiveErrorCount," consecutive errors"]}),e.lastError&&(0,t.jsxs)("span",{className:"flex items-center gap-1 text-red-600 dark:text-red-400 max-w-full truncate",title:e.lastError,children:[(0,t.jsx)(l.AlertTriangle,{className:"h-3 w-3 shrink-0"}),e.lastError]})]})}var C=e.i(74490),N=e.i(57628);let S={"not-connected":{variant:"gray",label:"Not connected"},"needs-setup":{variant:"gray",label:"Needs setup"},disabled:{variant:"amber",label:"Ready to enable"},enabled:{variant:"green",label:"Enabled"},attention:{variant:"red",label:"Needs attention"}};function E(e){return e.accounts.some(e=>"healthy"!==e.authStatus)?"attention":0===e.accounts.length?e.awaitingProviderSetup?"needs-setup":"not-connected":e.enabled?"enabled":"disabled"}function A(e){let r=S[e.status],a="attention"===e.status?"warning":"enabled"===e.status?"success":"default";return(0,t.jsxs)(C.Card,{tone:a,children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,t.jsx)(o.Mail,{className:"h-4 w-4 text-muted-foreground shrink-0"}),(0,t.jsx)("h3",{className:"text-base font-semibold text-foreground truncate",children:e.name})]}),(0,t.jsx)(h.Badge,{variant:r.variant,children:r.label})]}),(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:e.description}),(0,t.jsx)("div",{className:"mt-3 space-y-3",children:e.setupSection}),e.accountsSection&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(N.Separator,{className:"my-4"}),(0,t.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground mb-2",children:"Authenticated accounts"}),(0,t.jsx)("div",{className:"space-y-2",children:e.accountsSection})]}),(0,t.jsx)(N.Separator,{className:"my-4"}),(0,t.jsx)(R,{toggle:e.enableToggle})]})}function R({toggle:e}){let[a,n]=(0,r.useState)(null),s=async t=>{n(null);try{await e.onChange(t)}catch(e){n(e instanceof Error?e.message:"Failed to update")}};return(0,t.jsxs)("div",{children:[(0,t.jsxs)("label",{className:"flex items-center gap-2 text-sm select-none "+(e.disabled||e.busy?"cursor-not-allowed opacity-60":"cursor-pointer"),title:e.disabled?e.disabledReason:void 0,children:[(0,t.jsx)("input",{type:"checkbox",checked:e.enabled,disabled:e.disabled||e.busy,onChange:e=>void s(e.target.checked),className:"h-4 w-4 rounded border-border"}),(0,t.jsx)("span",{className:"font-medium text-foreground",children:"Enable for the agent"}),e.busy&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:"saving…"})]}),e.disabled&&e.disabledReason&&(0,t.jsx)("p",{className:"mt-1 ml-6 text-xs text-muted-foreground",children:e.disabledReason}),!e.disabled&&e.explainer&&(0,t.jsx)("p",{className:"mt-1 ml-6 text-xs text-muted-foreground",children:e.explainer}),a&&(0,t.jsx)(m.Alert,{variant:"error",className:"mt-2",children:a})]})}e.s(["GmailCard",0,function({accounts:e,enabledKinds:l,focusAccountId:o,hideExternalGoogleLink:c=!1}){let d=b(),u=(0,i.useConfirm)(),[h,m]=(0,r.useState)(!1),p=l.includes("gmail"),x=E({accounts:e,enabled:p}),f=async e=>{if(e||await u({title:"Disable Gmail for the agent?",description:"This stops the unified mail poller from observing Gmail — receipts, travel bookings, and Kindle highlights will not be classified until you re-enable Gmail. Tokens stay in the keychain and the integration resumes the moment you flip the switch back on.",confirmLabel:"Disable Gmail",variant:"destructive"})){m(!0);try{await v(l,"gmail",e),d()}finally{m(!1)}}};return(0,t.jsx)(A,{name:"Gmail / Google Workspace",description:(0,t.jsx)(t.Fragment,{children:"Authenticated through your existing Google connection (it is shared with Calendar). Manage Google OAuth on the Connections page."}),status:x,setupSection:0===e.length?(0,t.jsxs)("div",{className:"rounded-md border border-dashed border-border p-3 text-xs",children:[(0,t.jsx)("p",{className:"text-foreground font-medium mb-1",children:"No Gmail account connected yet."}),(0,t.jsx)("p",{className:"text-muted-foreground mb-2",children:c?"Switch the Mode above to Direct and complete the Google connection step on this page — the daemon detects your Gmail address from the OAuth response and registers it here.":"Authenticate Google in Connections — the daemon detects your Gmail address from the OAuth response and registers it here."}),!c&&(0,t.jsx)(a.default,{href:"/connections/calendar#google",children:(0,t.jsxs)(s.Button,{size:"sm",variant:"outline",className:"h-7 text-xs px-3",children:["Open Google connection",(0,t.jsx)(n.ExternalLink,{className:"ml-1 h-3 w-3"})]})})]}):c?null:(0,t.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Re-authentication, scope changes, or revoking access live on the"," ",(0,t.jsx)(a.default,{href:"/connections/calendar#google",className:"underline underline-offset-2",children:"Google connection card"}),"."]}),accountsSection:e.length>0?e.map(r=>(0,t.jsx)(w,{account:r,highlight:o===r.id,hideActive:!0,hideHealth:!0,isLastOfKind:1===e.length,onAfterRemove:async()=>{1===e.length&&p&&await v(l,"gmail",!1)}},r.id)):void 0,enableToggle:{enabled:p,disabled:0===e.length,disabledReason:0===e.length?"Connect a Google account first.":void 0,busy:h,onChange:f,explainer:"When enabled, the legacy Gmail poller observes your inbox and the agent can read, draft, and send messages."}})}],86567),e.i(18446);var I=e.i(49445);function T({index:e,title:r,completed:a=!1,disabled:n=!1,children:s}){return(0,t.jsxs)("div",{className:"rounded-md border border-dashed p-3 "+(n?"border-border opacity-50":a?"border-emerald-300 dark:border-emerald-800":"border-border"),children:[(0,t.jsxs)("p",{className:"text-xs font-semibold text-foreground mb-2",children:["Step ",e,": ",r,a&&(0,t.jsx)("span",{className:"ml-2 text-emerald-600 dark:text-emerald-400",children:"✓"})]}),s]})}e.s(["OutlookCard",0,function({accounts:e,enabledKinds:a,focusAccountId:l}){let o=b(),c=(0,i.useConfirm)(),h=a.includes("outlook"),p=(0,x.useQuery)({queryKey:["outlook-client-config"],queryFn:()=>d.api.get("/config/mail/outlook/client-config"),staleTime:3e4}),f=p.data?.configured===!0,g=E({accounts:e,enabled:h,awaitingProviderSetup:!f}),[y,j]=(0,r.useState)(!1),[k,C]=(0,r.useState)(""),[N,S]=(0,r.useState)("common"),[R,D]=(0,r.useState)(""),[P,M]=(0,r.useState)(!1),[L,F]=(0,r.useState)(null),[O,_]=(0,r.useState)(null),[B,q]=(0,r.useState)(null),[z,$]=(0,r.useState)(!1),H=async e=>{$(!0);try{await v(a,"outlook",e),o()}finally{$(!1)}},U=async()=>{M(!0),F(null);try{await d.api.put("/config/mail/outlook/client-config",{clientId:k.trim(),tenant:N.trim()||"common"}),await p.refetch(),j(!1)}catch(e){F(e instanceof Error?e.message:"Failed to save client config")}finally{M(!1)}},W=async()=>{if(await c({title:"Reset Azure app registration?",description:"Existing Outlook accounts keep working until their tokens expire. You'll need to re-enter the client ID before adding new accounts.",confirmLabel:"Reset",variant:"destructive"})){M(!0),F(null);try{await d.api.delete("/config/mail/outlook/client-config"),await p.refetch()}catch(e){F(e instanceof Error?e.message:"Failed to reset")}finally{M(!1)}}},G=async()=>{if(await c({title:"Open Microsoft sign-in?",description:"The daemon will open your browser to sign in to Microsoft. macOS or Windows may show a one-time firewall prompt — accept it so the loopback callback can complete.",confirmLabel:"Continue"})){M(!0),F(null),_(null);try{await d.api.post("/mail/accounts",{kind:"outlook",label:R.trim()||void 0}),_("Outlook account authenticated. Toggle the switch below to start using it."),D(""),o()}catch(e){F(e instanceof Error?e.message:"OAuth failed")}finally{M(!1)}}},K=async()=>{M(!0),F(null),_(null),q(null);try{let e=await fetch("/api/mail/accounts/device-code",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({kind:"outlook",label:R.trim()||void 0})});if(!e.ok||!e.body)throw Error(`HTTP ${e.status}`);let t=e.body.getReader(),r=new TextDecoder,a="";for(;;){let{value:e,done:n}=await t.read();if(n)break;let s=(a+=r.decode(e,{stream:!0})).split("\n\n");for(let e of(a=s.pop()??"",s)){let t=e.split("\n"),r="",a="";for(let e of t)e.startsWith("event:")&&(r=e.slice(6).trim()),e.startsWith("data:")&&(a+=e.slice(5).trim());if(r){if("prompt"===r)q(JSON.parse(a));else if("completed"===r)_("Outlook account authenticated. Toggle the switch below to start using it."),q(null),D(""),o();else if("failed"===r){let e=JSON.parse(a);throw Error(e.message??"device-code failed")}}}}}catch(e){F(e instanceof Error?e.message:"Device-code OAuth failed"),q(null)}finally{M(!1)}},Q=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(T,{index:1,title:"Register an Azure app (one-time)",completed:f,children:[!f&&!y&&(0,t.jsxs)("div",{className:"space-y-3 text-xs",children:[(0,t.jsxs)("p",{className:"text-muted-foreground",children:["One-time setup: you'll tell Microsoft that the ",I.APP_NAME,"daemon on your computer is allowed to read and send mail on your behalf. Follow every sub-step — two of them are easy to miss and will make sign-in fail with ",(0,t.jsx)("code",{children:"server_error"})," later."]}),(0,t.jsxs)("ol",{className:"list-decimal list-outside pl-4 space-y-2 text-muted-foreground",children:[(0,t.jsxs)("li",{children:["Open the"," ",(0,t.jsxs)("a",{href:"https://portal.azure.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade",target:"_blank",rel:"noreferrer",className:"underline inline-flex items-center gap-0.5",children:["Azure portal — App registrations"," ",(0,t.jsx)(n.ExternalLink,{className:"h-3 w-3"})]}),". Sign in with the Microsoft account you want the agent to use."]}),(0,t.jsxs)("li",{children:["Click ",(0,t.jsx)("strong",{children:"+ New registration"})," at the top of the page."]}),(0,t.jsxs)("li",{children:["Fill in the form:",(0,t.jsxs)("ul",{className:"list-disc list-outside pl-4 mt-1 space-y-1",children:[(0,t.jsxs)("li",{children:[(0,t.jsx)("strong",{children:"Name"}),": anything, e.g. ",(0,t.jsx)("code",{children:I.APP_NAME}),"."]}),(0,t.jsxs)("li",{children:[(0,t.jsx)("strong",{children:"Supported account types"}),": pick"," ",(0,t.jsx)("em",{children:"Accounts in any organizational directory (Any Microsoft Entra ID tenant – Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox)"}),"."]}),(0,t.jsxs)("li",{children:[(0,t.jsx)("strong",{children:"Redirect URI"}),": in the left-hand dropdown choose ",(0,t.jsx)("code",{children:"Public client/native (mobile & desktop)"})," ",(0,t.jsx)("strong",{children:"— not"})," ",(0,t.jsx)("code",{children:"Web"}),". Then type"," ",(0,t.jsx)("code",{children:"http://127.0.0.1/callback"})," in the box on the right."]})]}),(0,t.jsxs)("p",{className:"mt-1 rounded-md border border-amber-400/60 bg-amber-400/10 px-2 py-1 text-amber-700 dark:text-amber-300",children:["⚠ Trap #1: if you leave ",(0,t.jsx)("code",{children:"Web"})," selected, Microsoft will later return ",(0,t.jsx)("code",{children:"Authorization failed: server_error"}),". Use the Public client/native option."]})]}),(0,t.jsxs)("li",{children:["Click ",(0,t.jsx)("strong",{children:"Register"})," at the bottom of the form."]}),(0,t.jsxs)("li",{children:["You'll land on the ",(0,t.jsx)("em",{children:"Overview"})," page. Copy the value labelled ",(0,t.jsx)("strong",{children:"Application (client) ID"}),"— you'll paste it into the form below in a moment."]}),(0,t.jsxs)("li",{children:["In the left sidebar click ",(0,t.jsx)("strong",{children:"Authentication"}),". Scroll to the very bottom, find ",(0,t.jsx)("em",{children:"Advanced settings"})," →"," ",(0,t.jsx)("strong",{children:"Allow public client flows"}),", flip the toggle to"," ",(0,t.jsx)("strong",{children:"Yes"}),", then click ",(0,t.jsx)("strong",{children:"Save"})," at the top of the page.",(0,t.jsxs)("p",{className:"mt-1 rounded-md border border-amber-400/60 bg-amber-400/10 px-2 py-1 text-amber-700 dark:text-amber-300",children:["⚠ Trap #2: this toggle is off by default. Without it sign-in also fails with ",(0,t.jsx)("code",{children:"server_error"}),"."]})]}),(0,t.jsxs)("li",{children:["In the left sidebar click ",(0,t.jsx)("strong",{children:"API permissions"})," →"," ",(0,t.jsx)("strong",{children:"+ Add a permission"})," →"," ",(0,t.jsx)("strong",{children:"Microsoft Graph"})," →"," ",(0,t.jsx)("strong",{children:"Delegated permissions"}),". Use the search box to find and tick each of:",(0,t.jsxs)("ul",{className:"list-disc list-outside pl-4 mt-1",children:[(0,t.jsx)("li",{children:(0,t.jsx)("code",{children:"offline_access"})}),(0,t.jsx)("li",{children:(0,t.jsx)("code",{children:"User.Read"})}),(0,t.jsx)("li",{children:(0,t.jsx)("code",{children:"Mail.ReadWrite"})}),(0,t.jsx)("li",{children:(0,t.jsx)("code",{children:"Mail.Send"})})]}),"Then click ",(0,t.jsx)("strong",{children:"Add permissions"})," at the bottom."]}),(0,t.jsxs)("li",{children:["(Work/school tenant only) If your org requires admin consent for these scopes, click ",(0,t.jsx)("strong",{children:"Grant admin consent"}),". Personal Microsoft accounts don't need this step."]}),(0,t.jsxs)("li",{children:["Come back here and click ",(0,t.jsx)("strong",{children:"I have a client ID"}),". Paste the Application (client) ID you copied in step 5; leave Tenant as ",(0,t.jsx)("code",{children:"common"})," unless your admin told you otherwise."]})]}),(0,t.jsx)(s.Button,{size:"sm",variant:"outline",onClick:()=>j(!0),className:"h-7 text-xs px-3",children:"I have a client ID"})]}),y&&(0,t.jsxs)("div",{className:"space-y-2 rounded-md border border-border p-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-xs text-muted-foreground mb-1",htmlFor:"outlook-client-id",children:"Application (client) ID"}),(0,t.jsx)(u.Input,{id:"outlook-client-id",value:k,onChange:e=>C(e.target.value),placeholder:"00000000-0000-0000-0000-000000000000",className:"h-8 text-xs"})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("label",{className:"block text-xs text-muted-foreground mb-1",htmlFor:"outlook-tenant",children:["Tenant (default ",(0,t.jsx)("code",{children:"common"}),")"]}),(0,t.jsx)(u.Input,{id:"outlook-tenant",value:N,onChange:e=>S(e.target.value),placeholder:"common / organizations / <tenant-guid>",className:"h-8 text-xs"})]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(s.Button,{size:"sm",variant:"outline",onClick:()=>void U(),disabled:P||0===k.trim().length,className:"h-7 text-xs px-3",children:P?"Saving…":"Save"}),(0,t.jsx)(s.Button,{size:"sm",variant:"outline",onClick:()=>j(!1),disabled:P,className:"h-7 text-xs px-3",children:"Cancel"})]})]}),f&&!y&&(0,t.jsxs)("div",{className:"text-xs text-muted-foreground",children:["Application ID:"," ",(0,t.jsx)("code",{className:"font-mono",children:p.data?.clientId})," ","(tenant ",(0,t.jsx)("code",{children:p.data?.tenant}),")."," ",(0,t.jsx)("button",{type:"button",className:"underline",onClick:()=>void W(),disabled:P,children:"reset"})]})]}),(0,t.jsx)(T,{index:2,title:"Authenticate an Outlook account",disabled:!f,children:f?(0,t.jsxs)("div",{className:"space-y-2 rounded-md border border-border p-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-xs text-muted-foreground mb-1",htmlFor:"outlook-label",children:"Label (optional)"}),(0,t.jsx)(u.Input,{id:"outlook-label",value:R,onChange:e=>D(e.target.value),placeholder:"work, personal, …",className:"h-8 text-xs"})]}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,t.jsx)(s.Button,{size:"sm",onClick:()=>void G(),disabled:P,className:"h-7 text-xs px-3",children:P?"Waiting for consent…":"Authenticate (browser)"}),(0,t.jsx)(s.Button,{size:"sm",variant:"outline",onClick:()=>void K(),disabled:P,className:"h-7 text-xs px-3",title:"Use if the daemon runs headless (SSH / WSL)",children:"Authenticate (device code)"})]}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"The browser flow may trigger a one-time macOS / Windows firewall prompt — accept it so the loopback callback can complete."})]}):(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"Save the client ID first."})}),B&&(0,t.jsx)(m.Alert,{variant:"warning",children:(0,t.jsxs)("div",{className:"text-xs",children:["Visit"," ",(0,t.jsx)("a",{href:B.verificationUri,target:"_blank",rel:"noreferrer",className:"underline",children:B.verificationUri})," ","and enter code"," ",(0,t.jsx)("code",{className:"font-mono",children:B.userCode}),". Expires in ",Math.round(B.expiresIn/60)," min."]})}),O&&(0,t.jsx)(m.Alert,{variant:"success",children:O}),L&&(0,t.jsx)(m.Alert,{variant:"error",children:L})]});return(0,t.jsx)(A,{name:"Outlook / Microsoft 365",description:(0,t.jsx)(t.Fragment,{children:"One-time Azure app registration, then connect as many Outlook / outlook.com / Microsoft 365 accounts as you need."}),status:g,setupSection:Q,accountsSection:e.length>0?e.map(r=>(0,t.jsx)(w,{account:r,highlight:l===r.id,onReauthenticate:()=>void G(),isLastOfKind:1===e.length,onAfterRemove:async()=>{1===e.length&&h&&await v(a,"outlook",!1)}},r.id)):void 0,enableToggle:{enabled:h,disabled:0===e.length,disabledReason:0===e.length?"Authenticate an Outlook account first.":void 0,busy:z,onChange:H,explainer:"When enabled, the agent observes your Outlook inbox via Microsoft Graph and can read, draft, and send messages."}})}],86704);let D={yahoo:{name:"Yahoo Mail",description:"App-password login over IMAP/SMTP. Generate the password in Yahoo Account Security, paste it once, and the daemon stores it in the OS keychain.",setupUrl:"https://login.yahoo.com/account/security",setupLabel:"Yahoo Account Security",passwordLabel:"Yahoo app password",defaultDomain:"yahoo.com",prerequisite:"Yahoo requires two-step verification on the account before it lets you create app passwords. If you haven't enabled it yet, turn it on first from the same Account Security page.",passwordSteps:[(0,t.jsxs)(t.Fragment,{children:["Open the"," ",(0,t.jsx)("strong",{children:"Yahoo Account Security"})," page and sign in with the Yahoo account you want to connect."]}),(0,t.jsxs)(t.Fragment,{children:["Scroll to ",(0,t.jsx)("strong",{children:"Other ways to sign in"})," and click"," ",(0,t.jsx)("strong",{children:"Generate and manage app passwords"}),". (If the link is missing, enable two-step verification first.)"]}),(0,t.jsxs)(t.Fragment,{children:["In the ",(0,t.jsx)("em",{children:"App name"})," field type ",(0,t.jsx)("code",{children:I.APP_NAME})," (any name works; this is just a label Yahoo shows in your account), then click ",(0,t.jsx)("strong",{children:"Generate password"}),"."]}),(0,t.jsxs)(t.Fragment,{children:["Yahoo shows a 16-character password with spaces. Copy it exactly as shown — ",(0,t.jsx)("strong",{children:"do not type it by hand"}),". Spaces are part of the password."]}),(0,t.jsx)(t.Fragment,{children:"Paste it into the password field below, then click Authenticate."})],passwordHint:"16 characters from Yahoo, spaces included. Do not retype — paste."},icloud:{name:"iCloud Mail",description:"App-specific-password login over IMAP/SMTP. Create the password in Apple Account → Sign-In and Security, paste it once, and the daemon stores it in the OS keychain.",setupUrl:"https://account.apple.com",setupLabel:"Apple Account",passwordLabel:"Apple app-specific password",defaultDomain:"icloud.com",prerequisite:"Apple only allows app-specific passwords on Apple IDs that have two-factor authentication turned on. If your Apple ID doesn't have 2FA yet, enable it first at appleid.apple.com.",passwordSteps:[(0,t.jsxs)(t.Fragment,{children:["Open ",(0,t.jsx)("strong",{children:"Apple Account"})," and sign in with the Apple ID whose iCloud mailbox you want to connect."]}),(0,t.jsxs)(t.Fragment,{children:["In the left sidebar click ",(0,t.jsx)("strong",{children:"Sign-In and Security"}),", then click ",(0,t.jsx)("strong",{children:"App-Specific Passwords"}),"."]}),(0,t.jsxs)(t.Fragment,{children:["Click ",(0,t.jsx)("strong",{children:"+ Generate an app-specific password"}),". Apple may ask you to re-enter your Apple ID password."]}),(0,t.jsxs)(t.Fragment,{children:["In the label field type ",(0,t.jsx)("code",{children:I.APP_NAME})," (any name works), then click ",(0,t.jsx)("strong",{children:"Create"}),"."]}),(0,t.jsxs)(t.Fragment,{children:["Apple shows a 19-character password in the form"," ",(0,t.jsx)("code",{children:"xxxx-xxxx-xxxx-xxxx"}),". Copy it exactly —"," ",(0,t.jsx)("strong",{children:"the dashes are required"}),"."]}),(0,t.jsx)(t.Fragment,{children:"Paste it into the password field below, then click Authenticate."})],passwordHint:"Format: xxxx-xxxx-xxxx-xxxx. Dashes are required — paste, don't retype."}};e.s(["ImapCard",0,function({kind:e,accounts:a,enabledKinds:i,focusAccountId:l}){let o=b(),c=D[e],h=i.includes(e),p=E({accounts:a,enabled:h}),[x,f]=(0,r.useState)(""),[g,y]=(0,r.useState)(""),[j,k]=(0,r.useState)(""),[C,N]=(0,r.useState)(!1),[S,R]=(0,r.useState)(null),[I,T]=(0,r.useState)(null),[P,M]=(0,r.useState)(!1),L=async t=>{M(!0);try{await v(i,e,t),o()}finally{M(!1)}},F=async()=>{N(!0),R(null),T(null);try{await d.api.post("/config/mail/app-password",{kind:e,email:`${x.trim()}@${c.defaultDomain}`,appPassword:g.trim(),label:j.trim()||void 0}),T(`${c.name} authenticated. Toggle the switch below to start using it.`),f(""),y(""),k(""),o()}catch(e){R(e instanceof Error?e.message:"Failed to connect")}finally{N(!1)}},O=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"rounded-md border border-dashed border-border p-3 text-xs space-y-2",children:[(0,t.jsx)("p",{className:"text-foreground font-medium",children:"Step 1: Generate an app password"}),(0,t.jsxs)("p",{className:"text-muted-foreground",children:[c.prerequisite," ",(0,t.jsxs)("a",{href:c.setupUrl,target:"_blank",rel:"noreferrer",className:"underline inline-flex items-center gap-0.5",children:["Open ",c.setupLabel," ",(0,t.jsx)(n.ExternalLink,{className:"h-3 w-3"})]}),"."]}),(0,t.jsx)("ol",{className:"list-decimal list-outside pl-4 space-y-1 text-muted-foreground",children:c.passwordSteps.map((e,r)=>(0,t.jsx)("li",{children:e},r))})]}),(0,t.jsxs)("div",{className:"rounded-md border border-border p-3 space-y-2",children:[(0,t.jsx)("p",{className:"text-xs font-semibold text-foreground",children:"Step 2: Authenticate the account"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-xs text-muted-foreground mb-1",htmlFor:`${e}-email`,children:"Account email"}),(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)(u.Input,{id:`${e}-email`,value:x,onChange:e=>f(e.target.value),placeholder:"username",className:"h-8 text-xs rounded-r-none"}),(0,t.jsxs)("span",{className:"inline-flex h-8 items-center rounded-r-md border border-l-0 border-input bg-muted px-3 text-xs text-muted-foreground select-none",children:["@",c.defaultDomain]})]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-xs text-muted-foreground mb-1",htmlFor:`${e}-app-password`,children:c.passwordLabel}),(0,t.jsx)(u.Input,{id:`${e}-app-password`,type:"password",value:g,onChange:e=>y(e.target.value),placeholder:"paste generated password",className:"h-8 text-xs"}),(0,t.jsx)("p",{className:"mt-1 text-[11px] text-muted-foreground",children:c.passwordHint})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-xs text-muted-foreground mb-1",htmlFor:`${e}-label`,children:"Label (optional)"}),(0,t.jsx)(u.Input,{id:`${e}-label`,value:j,onChange:e=>k(e.target.value),placeholder:"personal, family, …",className:"h-8 text-xs"})]}),(0,t.jsx)(s.Button,{size:"sm",onClick:()=>void F(),disabled:C||0===x.trim().length||0===g.trim().length,className:"h-7 text-xs px-3",children:C?"Authenticating…":"Authenticate"})]}),I&&(0,t.jsx)(m.Alert,{variant:"success",children:I}),S&&(0,t.jsx)(m.Alert,{variant:"error",children:S})]});return(0,t.jsx)(A,{name:c.name,description:c.description,status:p,setupSection:O,accountsSection:a.length>0?a.map(r=>(0,t.jsx)(w,{account:r,highlight:l===r.id,isLastOfKind:1===a.length,onAfterRemove:async()=>{1===a.length&&h&&await v(i,e,!1)}},r.id)):void 0,enableToggle:{enabled:h,disabled:0===a.length,disabledReason:0===a.length?`Authenticate a ${c.name} account first.`:void 0,busy:P,onChange:L,explainer:`When enabled, the agent observes your ${c.name} inbox via IMAP IDLE and can read, draft, and send messages.`}})}],29472)}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,44791,66665,45764,49578,2126,e=>{"use strict";var a=e.i(54710),i=e.i(34416),t=e.i(95486),s=e.i(88423),n=e.i(75187),l=e.i(65268);function r(e,a,s=2e3){let n=(0,t.useQueryClient)(),o=(0,i.useRef)(null),d=(0,i.useRef)(a),[c,m]=(0,i.useState)(null),[u,p]=(0,i.useState)(!1);(0,i.useEffect)(()=>{d.current=a});let h=(0,i.useCallback)(()=>{o.current&&(clearInterval(o.current),o.current=null),p(!1)},[]),g=(0,i.useCallback)(()=>{o.current||(p(!0),o.current=setInterval(async()=>{try{let a=await l.api.get(e);m(a),d.current(a)&&(o.current&&(clearInterval(o.current),o.current=null),p(!1),await n.invalidateQueries({queryKey:["config"]}),await n.invalidateQueries({queryKey:["health"]}))}catch{}},s))},[e,s,n]),x=(0,i.useCallback)(()=>{h(),m(null)},[h]);return(0,i.useEffect)(()=>()=>{o.current&&(clearInterval(o.current),o.current=null)},[]),{status:c,active:u,start:g,stop:h,reset:x}}var o=e.i(20014),d=e.i(8652),c=e.i(79634),m=e.i(81471);let u={none:"",sm:"space-y-2",md:"space-y-3"};function p({className:e,heading:i,spacing:t="none",children:s,...n}){return(0,a.jsxs)("div",{className:(0,m.cn)("rounded-lg border border-dashed border-input bg-background/50 p-3",u[t],e),...n,children:[null!=i&&(0,a.jsx)("p",{className:"text-xs font-medium",children:i}),s]})}var h=e.i(73550),g=e.i(20870);e.s(["SlackCard",0,function(){let{data:e}=(0,s.useConfig)(),{data:m}=(0,n.useHealth)(),u=(0,t.useQueryClient)(),x=m?.messaging?.slack,[f,v]=(0,i.useState)(""),[y,j]=(0,i.useState)(""),[w,S]=(0,i.useState)(!1),[C,b]=(0,i.useState)(null),[k,N]=(0,i.useState)(null),[A,B]=(0,i.useState)(null),[M,E]=(0,i.useState)(null),[T,R]=(0,i.useState)(null),[P,D]=(0,i.useState)(null),U=r("/messaging/slack/pairing-status",e=>e.paired||!e.pairingActive);if(U.status?.paired&&P&&D(null),U.status&&!U.status.pairingActive&&P&&D(null),!e||!m)return null;let G=async()=>{S(!0),b(null),N(null);try{await l.api.put("/secrets/slack",{...f?{botToken:f}:{},...y?{appToken:y}:{}}),await u.invalidateQueries({queryKey:["config"]}),await u.invalidateQueries({queryKey:["health"]}),N("Updated."),v(""),j("")}catch(e){b(e instanceof Error?e.message:"Failed to save")}finally{S(!1)}},I=async()=>{R("test"),b(null);try{let e=f||void 0,a=await l.api.post("/messaging/slack/test-token",e?{token:e}:void 0);E(a),N(`Token OK — bot: ${a.botName??"(unknown)"}${a.team?` @ ${a.team}`:""}`)}catch(e){b(e instanceof Error?e.message:"Token test failed")}finally{R(null)}},K=async()=>{R("pair"),b(null);try{let e=await l.api.post("/messaging/slack/start-pairing");D(e),U.start()}catch(e){b(e instanceof Error?e.message:"Failed to start pairing")}finally{R(null)}},L=async()=>{U.reset(),D(null);try{await l.api.post("/messaging/slack/cancel-pairing")}catch{}};return(0,a.jsx)(g.ConnectionCard,{name:"Slack",icon:(0,a.jsx)(h.Hash,{className:"h-4 w-4"}),status:(0,g.deriveMessagingStatus)(x),error:x?.error,metadata:(0,g.messagingMetadata)(x),children:(0,a.jsxs)("div",{className:"space-y-4 mt-2",children:[C&&(0,a.jsx)(c.Alert,{variant:"error",children:C}),k&&(0,a.jsx)(c.Alert,{variant:"success",children:k}),(0,a.jsxs)(p,{heading:"Step 1 — Create the Slack app",children:[(0,a.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:"We'll pre-fill the manifest with the right scopes and Socket Mode enabled."}),(0,a.jsxs)("div",{className:"mt-2 flex flex-wrap gap-2",children:[(0,a.jsx)(o.Button,{size:"sm",variant:"outline",disabled:"manifest"===T,onClick:async()=>{R("manifest"),b(null);try{let e=await l.api.get("/messaging/slack/manifest");B(e),window.open(e.createAppUrl,"_blank","noopener")}catch(e){b(e instanceof Error?e.message:"Failed to load manifest")}finally{R(null)}},children:"manifest"===T?"Loading...":"Open Slack app builder"}),A&&(0,a.jsx)(o.Button,{size:"sm",variant:"ghost",onClick:()=>{navigator.clipboard?.writeText(A.manifestJson),N("Manifest copied.")},children:"Copy manifest JSON"})]}),A&&(0,a.jsx)("ol",{className:"mt-3 list-inside list-decimal space-y-1 text-xs text-muted-foreground",children:A.instructions.map(e=>(0,a.jsx)("li",{children:e.replace(/^\d+\.\s*/,"")},e))})]}),(0,a.jsxs)(p,{heading:"Step 2 — Paste tokens",spacing:"md",children:[(0,a.jsxs)("div",{className:"space-y-1",children:[(0,a.jsx)("label",{className:"text-xs text-muted-foreground",children:"Bot token"}),(0,a.jsx)(d.Input,{type:"password",value:f,placeholder:e.slackConfigured?"Configured. Enter a new token to replace it.":"xoxb-...",onChange:e=>v(e.target.value)})]}),(0,a.jsxs)("div",{className:"space-y-1",children:[(0,a.jsx)("label",{className:"text-xs text-muted-foreground",children:"App token"}),(0,a.jsx)(d.Input,{type:"password",value:y,placeholder:e.slackConfigured?"Configured. Enter a new token to replace it.":"xapp-...",onChange:e=>j(e.target.value)})]}),(0,a.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,a.jsx)(o.Button,{size:"sm",variant:"outline",disabled:w,onClick:G,children:w?"Saving...":"Save"}),(0,a.jsx)(o.Button,{size:"sm",variant:"outline",disabled:"test"===T,onClick:I,children:"test"===T?"Testing...":"Test token"})]}),M&&(0,a.jsxs)("p",{className:"text-xs text-emerald-700 dark:text-emerald-300",children:["✓ Bot: ",(0,a.jsx)("code",{className:"font-mono",children:M.botName}),M.team&&(0,a.jsxs)(a.Fragment,{children:[" · workspace: ",(0,a.jsx)("code",{className:"font-mono",children:M.team})]}),M.botUserId&&(0,a.jsxs)(a.Fragment,{children:[" · id: ",(0,a.jsx)("code",{className:"font-mono",children:M.botUserId})]})]})]}),(0,a.jsxs)(p,{heading:"Step 3 — Pair with magic phrase",spacing:"sm",children:[(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:"Click below to generate a one-time phrase. Send your bot a DM in Slack containing that exact phrase — only that DM will capture your user ID."}),(0,a.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,a.jsx)(o.Button,{size:"sm",variant:"outline",disabled:!e.slackConfigured||"pair"===T,title:e.slackConfigured?void 0:"Save your tokens first",onClick:K,children:"pair"===T?"Generating...":"Generate pairing phrase"}),U.active&&(0,a.jsx)(o.Button,{size:"sm",variant:"ghost",onClick:L,children:"Cancel"})]}),P&&(0,a.jsxs)("div",{className:"rounded-md bg-muted p-3 text-center",children:[(0,a.jsx)("p",{className:"text-xs text-muted-foreground mb-1",children:"Send this phrase to your bot in Slack:"}),(0,a.jsx)("code",{className:"font-mono text-base font-semibold tracking-wide",children:P.phrase}),(0,a.jsxs)("p",{className:"mt-2 text-[11px] text-muted-foreground",children:["Expires ",new Date(P.expiresAt).toLocaleTimeString()," · punctuation and case are ignored."]})]}),U.status&&(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:U.status.paired?(0,a.jsxs)(a.Fragment,{children:["✓ Owner paired: ",(0,a.jsx)("code",{className:"font-mono",children:U.status.ownerUserId})]}):U.active?"Waiting for the phrase...":null})]})]})})}],44791);var x=e.i(77379);let f=(0,x.default)("MessageCircle",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}]]);e.s(["TelegramCard",0,function(){let{data:e}=(0,s.useConfig)(),{data:m}=(0,n.useHealth)(),u=(0,t.useQueryClient)(),h=m?.messaging?.telegram,[x,v]=(0,i.useState)(""),[y,j]=(0,i.useState)(!1),[w,S]=(0,i.useState)(null),[C,b]=(0,i.useState)(null),[k,N]=(0,i.useState)(null),[A,B]=(0,i.useState)(null),[M,E]=(0,i.useState)(null),T=r("/messaging/telegram/pairing-status",e=>e.paired);if(!e||!m)return null;let R=async()=>{j(!0),S(null),b(null);try{await l.api.put("/secrets/telegram",{...x?{botToken:x}:{}}),await u.invalidateQueries({queryKey:["config"]}),await u.invalidateQueries({queryKey:["health"]}),b("Updated."),v("")}catch(e){S(e instanceof Error?e.message:"Failed to save")}finally{j(!1)}},P=async()=>{B("test"),S(null);try{let e=x||void 0,a=await l.api.post("/messaging/telegram/test-token",e?{token:e}:void 0);N(a),b(`Token OK — bot: ${a.firstName??a.username??a.id}`)}catch(e){S(e instanceof Error?e.message:"Token test failed")}finally{B(null)}},D=async()=>{B("pair"),S(null);try{let e=await l.api.post("/messaging/telegram/start-pairing");E(e),T.start()}catch(e){S(e instanceof Error?e.message:"Failed to start pairing")}finally{B(null)}},U=async()=>{T.reset(),E(null);try{await l.api.post("/messaging/telegram/cancel-pairing")}catch{}};return(0,a.jsx)(g.ConnectionCard,{name:"Telegram",icon:(0,a.jsx)(f,{className:"h-4 w-4"}),status:(0,g.deriveMessagingStatus)(h),error:h?.error,metadata:(0,g.messagingMetadata)(h),children:(0,a.jsxs)("div",{className:"space-y-4 mt-2",children:[w&&(0,a.jsx)(c.Alert,{variant:"error",children:w}),C&&(0,a.jsx)(c.Alert,{variant:"success",children:C}),(0,a.jsx)(p,{heading:"Step 1 — Create the bot",spacing:"sm",children:(0,a.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Open ",(0,a.jsx)("a",{className:"underline",href:"https://t.me/botfather",target:"_blank",rel:"noopener noreferrer",children:"@BotFather"}),", send ",(0,a.jsx)("code",{className:"font-mono",children:"/newbot"}),", give it a name and username, then copy the token."]})}),(0,a.jsxs)(p,{heading:"Step 2 — Paste token",spacing:"md",children:[(0,a.jsxs)("div",{className:"space-y-1",children:[(0,a.jsx)("label",{className:"text-xs text-muted-foreground",children:"Bot token"}),(0,a.jsx)(d.Input,{type:"password",value:x,placeholder:e.telegramConfigured?"Configured. Enter a new token to replace it.":"123456:ABC-DEF…",onChange:e=>v(e.target.value)})]}),(0,a.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,a.jsx)(o.Button,{size:"sm",variant:"outline",disabled:y,onClick:R,children:y?"Saving...":"Save"}),(0,a.jsx)(o.Button,{size:"sm",variant:"outline",disabled:"test"===A,onClick:P,children:"test"===A?"Testing...":"Test token"})]}),k&&(0,a.jsxs)("p",{className:"text-xs text-emerald-700 dark:text-emerald-300",children:["✓ Bot: ",(0,a.jsxs)("code",{className:"font-mono",children:["@",k.username??k.id]})]})]}),(0,a.jsxs)(p,{heading:"Step 3 — Pair with QR",spacing:"sm",children:[(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:"Generate a QR code that opens your bot in Telegram and sends a one-shot pairing token."}),(0,a.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,a.jsx)(o.Button,{size:"sm",variant:"outline",disabled:!e.telegramConfigured||"pair"===A,title:e.telegramConfigured?void 0:"Save your token first",onClick:D,children:"pair"===A?"Generating...":"Pair with QR"}),M&&(0,a.jsx)(o.Button,{size:"sm",variant:"ghost",onClick:U,children:"Cancel"})]}),M&&(0,a.jsxs)("div",{className:"flex flex-col items-center gap-2 rounded-lg bg-muted p-4",children:[(0,a.jsx)("img",{src:M.qrDataUrl,alt:"Telegram pairing QR",width:320,height:320,className:"rounded bg-white p-2"}),(0,a.jsxs)("p",{className:"text-xs text-muted-foreground text-center",children:["Scan with your phone — Telegram will open ",(0,a.jsxs)("code",{className:"font-mono",children:["@",M.botUsername]})," and send the pairing token automatically."]}),(0,a.jsx)("a",{className:"text-xs underline",href:M.deepLink,target:"_blank",rel:"noopener noreferrer",children:"Or open the link directly"})]}),T.status?.paired&&(0,a.jsxs)("p",{className:"text-xs text-emerald-700 dark:text-emerald-300",children:["✓ Paired with chat ID ",(0,a.jsx)("code",{className:"font-mono",children:T.status.ownerChatId})]})]})]})})}],66665);let v=(0,x.default)("Gamepad2",[["line",{x1:"6",x2:"10",y1:"11",y2:"11",key:"1gktln"}],["line",{x1:"8",x2:"8",y1:"9",y2:"13",key:"qnk9ow"}],["line",{x1:"15",x2:"15.01",y1:"12",y2:"12",key:"krot7o"}],["line",{x1:"18",x2:"18.01",y1:"10",y2:"10",key:"1lcuu1"}],["path",{d:"M17.32 5H6.68a4 4 0 0 0-3.978 3.59c-.006.052-.01.101-.017.152C2.604 9.416 2 14.456 2 16a3 3 0 0 0 3 3c1 0 1.5-.5 2-1l1.414-1.414A2 2 0 0 1 9.828 16h4.344a2 2 0 0 1 1.414.586L17 18c.5.5 1 1 2 1a3 3 0 0 0 3-3c0-1.545-.604-6.584-.685-7.258-.007-.05-.011-.1-.017-.151A4 4 0 0 0 17.32 5z",key:"mfqc10"}]]);e.s(["DiscordCard",0,function(){let{data:e}=(0,s.useConfig)(),{data:m}=(0,n.useHealth)(),u=(0,t.useQueryClient)(),h=m?.messaging?.discord,[x,f]=(0,i.useState)(""),[y,j]=(0,i.useState)(!1),[w,S]=(0,i.useState)(null),[C,b]=(0,i.useState)(null),[k,N]=(0,i.useState)(null),[A,B]=(0,i.useState)(null),[M,E]=(0,i.useState)(null),T=r("/messaging/discord/pairing-status",e=>e.paired||!e.pairingActive);if(T.status?.paired&&M&&E(null),T.status&&!T.status.pairingActive&&M&&E(null),!e||!m)return null;let R=async()=>{j(!0),S(null),b(null);try{await l.api.put("/secrets/discord",{...x?{botToken:x}:{}}),await u.invalidateQueries({queryKey:["config"]}),await u.invalidateQueries({queryKey:["health"]}),b("Updated."),f("")}catch(e){S(e instanceof Error?e.message:"Failed to save")}finally{j(!1)}},P=async()=>{B("test"),S(null);try{let e=x||void 0,a=await l.api.post("/messaging/discord/test-token",e?{token:e}:void 0);N(a),b(`Token OK — bot: ${a.username}`)}catch(e){S(e instanceof Error?e.message:"Token test failed")}finally{B(null)}},D=async()=>{B("pair"),S(null);try{let e=await l.api.post("/messaging/discord/start-pairing");E(e),T.start()}catch(e){S(e instanceof Error?e.message:"Failed to start pairing")}finally{B(null)}},U=async()=>{T.reset(),E(null);try{await l.api.post("/messaging/discord/cancel-pairing")}catch{}};return(0,a.jsx)(g.ConnectionCard,{name:"Discord",icon:(0,a.jsx)(v,{className:"h-4 w-4"}),status:(0,g.deriveMessagingStatus)(h),error:h?.error,metadata:(0,g.messagingMetadata)(h),children:(0,a.jsxs)("div",{className:"space-y-4 mt-2",children:[w&&(0,a.jsx)(c.Alert,{variant:"error",children:w}),C&&(0,a.jsx)(c.Alert,{variant:"success",children:C}),(0,a.jsx)(p,{heading:"Step 1 — Create the bot",spacing:"sm",children:(0,a.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Open the ",(0,a.jsx)("a",{className:"underline",href:"https://discord.com/developers/applications",target:"_blank",rel:"noopener noreferrer",children:"Discord Developer Portal"}),', create an application, add a Bot, enable "Message Content Intent", and copy the token.']})}),(0,a.jsxs)(p,{heading:"Step 2 — Paste token",spacing:"md",children:[(0,a.jsxs)("div",{className:"space-y-1",children:[(0,a.jsx)("label",{className:"text-xs text-muted-foreground",children:"Bot token"}),(0,a.jsx)(d.Input,{type:"password",value:x,placeholder:e.discordConfigured?"Configured. Enter a new token to replace it.":"Discord bot token",onChange:e=>f(e.target.value)})]}),(0,a.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,a.jsx)(o.Button,{size:"sm",variant:"outline",disabled:y,onClick:R,children:y?"Saving...":"Save"}),(0,a.jsx)(o.Button,{size:"sm",variant:"outline",disabled:"test"===A,onClick:P,children:"test"===A?"Testing...":"Test token"})]}),k&&(0,a.jsxs)("p",{className:"text-xs text-emerald-700 dark:text-emerald-300 flex items-center gap-2",children:["✓ Bot: ",(0,a.jsx)("code",{className:"font-mono",children:k.username}),k.avatarUrl&&(0,a.jsx)("img",{src:k.avatarUrl,alt:"",width:16,height:16,className:"rounded-full"})]})]}),(0,a.jsxs)(p,{heading:"Step 3 — Pair with magic phrase",spacing:"sm",children:[(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:"Add the bot to a server, then click below to generate a one-time phrase. DM the bot with that phrase — only that DM captures your user ID."}),(0,a.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,a.jsx)(o.Button,{size:"sm",variant:"outline",disabled:!e.discordConfigured||"pair"===A,title:e.discordConfigured?void 0:"Save your token first",onClick:D,children:"pair"===A?"Generating...":"Generate pairing phrase"}),T.active&&(0,a.jsx)(o.Button,{size:"sm",variant:"ghost",onClick:U,children:"Cancel"})]}),M&&(0,a.jsxs)("div",{className:"rounded-md bg-muted p-3 text-center",children:[(0,a.jsx)("p",{className:"text-xs text-muted-foreground mb-1",children:"Send this phrase to your bot in Discord:"}),(0,a.jsx)("code",{className:"font-mono text-base font-semibold tracking-wide",children:M.phrase}),(0,a.jsxs)("p",{className:"mt-2 text-[11px] text-muted-foreground",children:["Expires ",new Date(M.expiresAt).toLocaleTimeString()," · punctuation and case are ignored."]})]}),T.status&&(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:T.status.paired?(0,a.jsxs)(a.Fragment,{children:["✓ Owner paired: ",(0,a.jsx)("code",{className:"font-mono",children:T.status.ownerUserId})]}):T.active?"Waiting for the phrase...":null})]})]})})}],45764);var y=e.i(58436),j=e.i(57628),w=e.i(10427);let S=[{iso2:"AF",name:"Afghanistan",dial:"93"},{iso2:"AL",name:"Albania",dial:"355"},{iso2:"DZ",name:"Algeria",dial:"213"},{iso2:"AD",name:"Andorra",dial:"376"},{iso2:"AO",name:"Angola",dial:"244"},{iso2:"AR",name:"Argentina",dial:"54"},{iso2:"AM",name:"Armenia",dial:"374"},{iso2:"AU",name:"Australia",dial:"61"},{iso2:"AT",name:"Austria",dial:"43"},{iso2:"AZ",name:"Azerbaijan",dial:"994"},{iso2:"BS",name:"Bahamas",dial:"1242"},{iso2:"BH",name:"Bahrain",dial:"973"},{iso2:"BD",name:"Bangladesh",dial:"880"},{iso2:"BB",name:"Barbados",dial:"1246"},{iso2:"BY",name:"Belarus",dial:"375"},{iso2:"BE",name:"Belgium",dial:"32"},{iso2:"BZ",name:"Belize",dial:"501"},{iso2:"BJ",name:"Benin",dial:"229"},{iso2:"BT",name:"Bhutan",dial:"975"},{iso2:"BO",name:"Bolivia",dial:"591"},{iso2:"BA",name:"Bosnia and Herzegovina",dial:"387"},{iso2:"BW",name:"Botswana",dial:"267"},{iso2:"BR",name:"Brazil",dial:"55"},{iso2:"BN",name:"Brunei",dial:"673"},{iso2:"BG",name:"Bulgaria",dial:"359"},{iso2:"BF",name:"Burkina Faso",dial:"226"},{iso2:"BI",name:"Burundi",dial:"257"},{iso2:"KH",name:"Cambodia",dial:"855"},{iso2:"CM",name:"Cameroon",dial:"237"},{iso2:"CA",name:"Canada",dial:"1"},{iso2:"CV",name:"Cape Verde",dial:"238"},{iso2:"CF",name:"Central African Republic",dial:"236"},{iso2:"TD",name:"Chad",dial:"235"},{iso2:"CL",name:"Chile",dial:"56"},{iso2:"CN",name:"China",dial:"86"},{iso2:"CO",name:"Colombia",dial:"57"},{iso2:"KM",name:"Comoros",dial:"269"},{iso2:"CG",name:"Congo",dial:"242"},{iso2:"CD",name:"Congo (DRC)",dial:"243"},{iso2:"CR",name:"Costa Rica",dial:"506"},{iso2:"CI",name:"Côte d'Ivoire",dial:"225"},{iso2:"HR",name:"Croatia",dial:"385"},{iso2:"CU",name:"Cuba",dial:"53"},{iso2:"CY",name:"Cyprus",dial:"357"},{iso2:"CZ",name:"Czech Republic",dial:"420"},{iso2:"DK",name:"Denmark",dial:"45"},{iso2:"DJ",name:"Djibouti",dial:"253"},{iso2:"DM",name:"Dominica",dial:"1767"},{iso2:"DO",name:"Dominican Republic",dial:"1809"},{iso2:"EC",name:"Ecuador",dial:"593"},{iso2:"EG",name:"Egypt",dial:"20"},{iso2:"SV",name:"El Salvador",dial:"503"},{iso2:"GQ",name:"Equatorial Guinea",dial:"240"},{iso2:"ER",name:"Eritrea",dial:"291"},{iso2:"EE",name:"Estonia",dial:"372"},{iso2:"SZ",name:"Eswatini",dial:"268"},{iso2:"ET",name:"Ethiopia",dial:"251"},{iso2:"FJ",name:"Fiji",dial:"679"},{iso2:"FI",name:"Finland",dial:"358"},{iso2:"FR",name:"France",dial:"33"},{iso2:"GA",name:"Gabon",dial:"241"},{iso2:"GM",name:"Gambia",dial:"220"},{iso2:"GE",name:"Georgia",dial:"995"},{iso2:"DE",name:"Germany",dial:"49"},{iso2:"GH",name:"Ghana",dial:"233"},{iso2:"GR",name:"Greece",dial:"30"},{iso2:"GL",name:"Greenland",dial:"299"},{iso2:"GD",name:"Grenada",dial:"1473"},{iso2:"GT",name:"Guatemala",dial:"502"},{iso2:"GN",name:"Guinea",dial:"224"},{iso2:"GW",name:"Guinea-Bissau",dial:"245"},{iso2:"GY",name:"Guyana",dial:"592"},{iso2:"HT",name:"Haiti",dial:"509"},{iso2:"HN",name:"Honduras",dial:"504"},{iso2:"HK",name:"Hong Kong",dial:"852"},{iso2:"HU",name:"Hungary",dial:"36"},{iso2:"IS",name:"Iceland",dial:"354"},{iso2:"IN",name:"India",dial:"91"},{iso2:"ID",name:"Indonesia",dial:"62"},{iso2:"IR",name:"Iran",dial:"98"},{iso2:"IQ",name:"Iraq",dial:"964"},{iso2:"IE",name:"Ireland",dial:"353"},{iso2:"IL",name:"Israel",dial:"972"},{iso2:"IT",name:"Italy",dial:"39"},{iso2:"JM",name:"Jamaica",dial:"1876"},{iso2:"JP",name:"Japan",dial:"81"},{iso2:"JO",name:"Jordan",dial:"962"},{iso2:"KZ",name:"Kazakhstan",dial:"7"},{iso2:"KE",name:"Kenya",dial:"254"},{iso2:"KI",name:"Kiribati",dial:"686"},{iso2:"KW",name:"Kuwait",dial:"965"},{iso2:"KG",name:"Kyrgyzstan",dial:"996"},{iso2:"LA",name:"Laos",dial:"856"},{iso2:"LV",name:"Latvia",dial:"371"},{iso2:"LB",name:"Lebanon",dial:"961"},{iso2:"LS",name:"Lesotho",dial:"266"},{iso2:"LR",name:"Liberia",dial:"231"},{iso2:"LY",name:"Libya",dial:"218"},{iso2:"LI",name:"Liechtenstein",dial:"423"},{iso2:"LT",name:"Lithuania",dial:"370"},{iso2:"LU",name:"Luxembourg",dial:"352"},{iso2:"MO",name:"Macau",dial:"853"},{iso2:"MG",name:"Madagascar",dial:"261"},{iso2:"MW",name:"Malawi",dial:"265"},{iso2:"MY",name:"Malaysia",dial:"60"},{iso2:"MV",name:"Maldives",dial:"960"},{iso2:"ML",name:"Mali",dial:"223"},{iso2:"MT",name:"Malta",dial:"356"},{iso2:"MR",name:"Mauritania",dial:"222"},{iso2:"MU",name:"Mauritius",dial:"230"},{iso2:"MX",name:"Mexico",dial:"52"},{iso2:"FM",name:"Micronesia",dial:"691"},{iso2:"MD",name:"Moldova",dial:"373"},{iso2:"MC",name:"Monaco",dial:"377"},{iso2:"MN",name:"Mongolia",dial:"976"},{iso2:"ME",name:"Montenegro",dial:"382"},{iso2:"MA",name:"Morocco",dial:"212"},{iso2:"MZ",name:"Mozambique",dial:"258"},{iso2:"MM",name:"Myanmar",dial:"95"},{iso2:"NA",name:"Namibia",dial:"264"},{iso2:"NR",name:"Nauru",dial:"674"},{iso2:"NP",name:"Nepal",dial:"977"},{iso2:"NL",name:"Netherlands",dial:"31"},{iso2:"NZ",name:"New Zealand",dial:"64"},{iso2:"NI",name:"Nicaragua",dial:"505"},{iso2:"NE",name:"Niger",dial:"227"},{iso2:"NG",name:"Nigeria",dial:"234"},{iso2:"KP",name:"North Korea",dial:"850"},{iso2:"MK",name:"North Macedonia",dial:"389"},{iso2:"NO",name:"Norway",dial:"47"},{iso2:"OM",name:"Oman",dial:"968"},{iso2:"PK",name:"Pakistan",dial:"92"},{iso2:"PW",name:"Palau",dial:"680"},{iso2:"PS",name:"Palestine",dial:"970"},{iso2:"PA",name:"Panama",dial:"507"},{iso2:"PG",name:"Papua New Guinea",dial:"675"},{iso2:"PY",name:"Paraguay",dial:"595"},{iso2:"PE",name:"Peru",dial:"51"},{iso2:"PH",name:"Philippines",dial:"63"},{iso2:"PL",name:"Poland",dial:"48"},{iso2:"PT",name:"Portugal",dial:"351"},{iso2:"PR",name:"Puerto Rico",dial:"1787"},{iso2:"QA",name:"Qatar",dial:"974"},{iso2:"RO",name:"Romania",dial:"40"},{iso2:"RU",name:"Russia",dial:"7"},{iso2:"RW",name:"Rwanda",dial:"250"},{iso2:"WS",name:"Samoa",dial:"685"},{iso2:"SM",name:"San Marino",dial:"378"},{iso2:"ST",name:"São Tomé and Príncipe",dial:"239"},{iso2:"SA",name:"Saudi Arabia",dial:"966"},{iso2:"SN",name:"Senegal",dial:"221"},{iso2:"RS",name:"Serbia",dial:"381"},{iso2:"SC",name:"Seychelles",dial:"248"},{iso2:"SL",name:"Sierra Leone",dial:"232"},{iso2:"SG",name:"Singapore",dial:"65"},{iso2:"SK",name:"Slovakia",dial:"421"},{iso2:"SI",name:"Slovenia",dial:"386"},{iso2:"SB",name:"Solomon Islands",dial:"677"},{iso2:"SO",name:"Somalia",dial:"252"},{iso2:"ZA",name:"South Africa",dial:"27"},{iso2:"KR",name:"South Korea",dial:"82"},{iso2:"SS",name:"South Sudan",dial:"211"},{iso2:"ES",name:"Spain",dial:"34"},{iso2:"LK",name:"Sri Lanka",dial:"94"},{iso2:"SD",name:"Sudan",dial:"249"},{iso2:"SR",name:"Suriname",dial:"597"},{iso2:"SE",name:"Sweden",dial:"46"},{iso2:"CH",name:"Switzerland",dial:"41"},{iso2:"SY",name:"Syria",dial:"963"},{iso2:"TW",name:"Taiwan",dial:"886"},{iso2:"TJ",name:"Tajikistan",dial:"992"},{iso2:"TZ",name:"Tanzania",dial:"255"},{iso2:"TH",name:"Thailand",dial:"66"},{iso2:"TL",name:"Timor-Leste",dial:"670"},{iso2:"TG",name:"Togo",dial:"228"},{iso2:"TO",name:"Tonga",dial:"676"},{iso2:"TT",name:"Trinidad and Tobago",dial:"1868"},{iso2:"TN",name:"Tunisia",dial:"216"},{iso2:"TR",name:"Turkey",dial:"90"},{iso2:"TM",name:"Turkmenistan",dial:"993"},{iso2:"TV",name:"Tuvalu",dial:"688"},{iso2:"UG",name:"Uganda",dial:"256"},{iso2:"UA",name:"Ukraine",dial:"380"},{iso2:"AE",name:"United Arab Emirates",dial:"971"},{iso2:"GB",name:"United Kingdom",dial:"44"},{iso2:"US",name:"United States",dial:"1"},{iso2:"UY",name:"Uruguay",dial:"598"},{iso2:"UZ",name:"Uzbekistan",dial:"998"},{iso2:"VU",name:"Vanuatu",dial:"678"},{iso2:"VA",name:"Vatican City",dial:"379"},{iso2:"VE",name:"Venezuela",dial:"58"},{iso2:"VN",name:"Vietnam",dial:"84"},{iso2:"YE",name:"Yemen",dial:"967"},{iso2:"ZM",name:"Zambia",dial:"260"},{iso2:"ZW",name:"Zimbabwe",dial:"263"}].map(e=>{var a;return{...e,flag:2!==(a=e.iso2).length?"🏳":String.fromCodePoint(...a.toUpperCase().split("").map(e=>127462+(e.charCodeAt(0)-65)))}}).sort((e,a)=>e.name.localeCompare(a.name)),C=new Map(S.map(e=>[e.iso2,e]));function b(e){return C.get(e.toUpperCase())}let k={1:"US",7:"RU"},N=[...S].sort((e,a)=>{if(a.dial.length!==e.dial.length)return a.dial.length-e.dial.length;let i=k[e.dial];if(i){if(e.iso2===i&&a.iso2!==i)return -1;if(a.iso2===i&&e.iso2!==i)return 1}return e.name.localeCompare(a.name)});function A(e){if(!e)return null;let a=e.replace(/^\+/,"").replace(/\D/g,"");for(let e of N)if(a.startsWith(e.dial))return e;return null}function B(e,a){let i=e.replace(/^\+/,"").replace(/\D/g,"");return i.startsWith(a.dial)?i.slice(a.dial.length):i}function M(e,a){let i=a.replace(/\D/g,"");return`+${e.dial}${i}`}function E({value:e,onChange:t,placeholder:s="Subscriber number",defaultCountryIso2:n="US",disabled:l,id:r}){let o=(0,i.useMemo)(()=>A(e)??b(n)??S[0],[e,n]),[c,m]=(0,i.useState)(o);(0,i.useEffect)(()=>{let a=A(e);a&&a.iso2!==c.iso2&&m(a)},[e]);let u=B(e,c);return(0,a.jsxs)("div",{className:"flex items-stretch gap-2",children:[(0,a.jsxs)(w.Select,{value:c.iso2,onValueChange:e=>{let a=b(e);a&&(m(a),t(M(a,u)))},disabled:l,children:[(0,a.jsx)(w.SelectTrigger,{className:"w-[140px] flex-shrink-0","aria-label":"Country code",children:(0,a.jsx)(w.SelectValue,{children:(0,a.jsxs)("span",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"text-base leading-none",children:c.flag}),(0,a.jsxs)("span",{className:"text-xs text-muted-foreground",children:["+",c.dial]})]})})}),(0,a.jsx)(w.SelectContent,{className:"max-h-[320px]",children:S.map(e=>(0,a.jsx)(w.SelectItem,{value:e.iso2,children:(0,a.jsxs)("span",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"text-base leading-none",children:e.flag}),(0,a.jsx)("span",{className:"text-sm",children:e.name}),(0,a.jsxs)("span",{className:"text-xs text-muted-foreground",children:["+",e.dial]})]})},e.iso2))})]}),(0,a.jsx)(d.Input,{id:r,type:"tel",inputMode:"tel",placeholder:s,value:u,onChange:e=>(e=>{if(e.startsWith("+")){let a=A(e);if(a){m(a),t(M(a,B(e,a)));return}}t(M(c,e))})(e.target.value),disabled:l,className:"flex-1"})]})}let T=(0,x.default)("Phone",[["path",{d:"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z",key:"foiqr5"}]]);e.s(["WhatsAppCard",0,function(){let{data:e}=(0,s.useConfig)(),{data:d}=(0,n.useHealth)(),m=(0,t.useQueryClient)(),u=d?.messaging?.whatsapp,[p,h]=(0,i.useState)(""),[x,f]=(0,i.useState)(""),[v,w]=(0,i.useState)(null),[S,C]=(0,i.useState)(null),[b,k]=(0,i.useState)(null),N=r("/messaging/whatsapp/qr",e=>"ok"===e.state||"logged_out"===e.state,3e3);if(!e||!d)return null;let A=async e=>{C(null),k(null);let a=await l.api.patch("/config",e);await m.invalidateQueries({queryKey:["config"]}),await m.invalidateQueries({queryKey:["health"]}),a.requiresRestart.length>0?k(`Updated. Restart daemon for: ${a.requiresRestart.join(", ")}`):k("Updated.")},B=async()=>{w("toggle"),C(null),k(null);try{let a=e.whatsappEnabled,i=await l.api.patch("/config",{whatsappEnabled:!a,...p?{whatsappOwnerPhone:p}:{},...x?{whatsappAuthDir:x}:{}});if(a)N.reset();else try{let e=await l.api.post("/messaging/whatsapp/pair");"ok"!==e.state&&N.start()}catch(e){C(e instanceof Error?e.message:"Failed to start pairing")}await m.invalidateQueries({queryKey:["config"]}),await m.invalidateQueries({queryKey:["health"]}),i.requiresRestart.length>0?k(`Updated. Restart daemon for: ${i.requiresRestart.join(", ")}`):k("Updated.")}catch(e){C(e instanceof Error?e.message:"Failed to toggle WhatsApp")}finally{w(null)}},M=async()=>{w("config");try{await A({...p?{whatsappOwnerPhone:p}:{},...x?{whatsappAuthDir:x}:{}})}catch(e){C(e instanceof Error?e.message:"Failed to save")}finally{w(null)}},R=async()=>{C(null);try{let e=await l.api.post("/messaging/whatsapp/pair");"ok"!==e.state&&N.start(),await m.invalidateQueries({queryKey:["health"]})}catch(e){C(e instanceof Error?e.message:"Failed to request pairing")}},P=async()=>{try{await l.api.get("/messaging/whatsapp/qr"),N.start()}catch(e){C(e instanceof Error?e.message:"Failed to fetch QR")}},D=async()=>{if(window.confirm("Reset WhatsApp connection?\n\nThis wipes the cached pairing data so you can scan a fresh QR from scratch. Use this if WhatsApp says the device is unlinked or pairing keeps failing.")){w("reset"),C(null),k(null);try{let e=await l.api.post("/messaging/whatsapp/reset");await m.invalidateQueries({queryKey:["health"]}),"ok"===e.state?(k("Reset complete. WhatsApp reconnected."),N.reset()):"not_initialized"===e.state?(k("Reset complete. Enable WhatsApp to start a fresh pairing flow."),N.reset()):(k("Reset complete. Scan the new QR to pair the device."),N.start())}catch(e){C(e instanceof Error?e.message:"Failed to reset WhatsApp")}finally{w(null)}}},U=N.status;return(0,a.jsx)(g.ConnectionCard,{name:"WhatsApp",icon:(0,a.jsx)(T,{className:"h-4 w-4"}),status:(0,g.deriveMessagingStatus)(u),error:u?.error,metadata:(0,g.messagingMetadata)(u),children:(0,a.jsxs)("div",{className:"space-y-4 mt-2",children:[S&&(0,a.jsx)(c.Alert,{variant:"error",children:S}),b&&(0,a.jsx)(c.Alert,{variant:"warning",children:b}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(o.Button,{size:"sm",variant:e.whatsappEnabled?"default":"outline",disabled:"toggle"===v||!e.whatsappEnabled&&!e.whatsappOwnerPhoneConfigured&&!p,onClick:B,children:e.whatsappEnabled?"Disable WhatsApp":"Enable WhatsApp"}),(0,a.jsx)("span",{className:"text-xs text-muted-foreground",children:e.whatsappEnabled?"Adapter hot-reloads on save — no daemon restart needed.":"Set the owner phone first, then click Enable to start pairing."})]}),(0,a.jsxs)("div",{className:"space-y-1",children:[(0,a.jsx)("label",{className:"text-xs text-muted-foreground",htmlFor:"whatsapp-owner-phone",children:"Owner phone"}),(0,a.jsx)(E,{id:"whatsapp-owner-phone",value:p,onChange:h,placeholder:e.whatsappOwnerPhoneConfigured?"Configured — type to replace":"Subscriber number",defaultCountryIso2:"US"})]}),(0,a.jsxs)("div",{className:"space-y-1",children:[(0,a.jsx)("label",{className:"text-xs text-muted-foreground",children:"Auth dir"}),(0,a.jsx)(y.DirectoryPickerField,{value:x,onChange:f,title:"Choose WhatsApp auth directory",placeholder:e.whatsappAuthDir||"~/.personal-agent/whatsapp/auth",defaultPath:e.whatsappAuthDir||void 0})]}),(0,a.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,a.jsx)(o.Button,{size:"sm",variant:"outline",disabled:"config"===v,onClick:M,children:"config"===v?"Saving...":"Save Config"}),(0,a.jsx)(o.Button,{size:"sm",variant:"outline",disabled:!e.whatsappEnabled||N.active,title:e.whatsappEnabled?void 0:"Enable WhatsApp first",onClick:R,children:N.active?"Pairing...":"Pair device"}),(0,a.jsx)(o.Button,{size:"sm",variant:"outline",disabled:!e.whatsappEnabled,onClick:P,children:"Refresh QR"}),(0,a.jsx)(o.Button,{size:"sm",variant:"destructive",disabled:"reset"===v,title:"Wipe cached pairing data and start over (use after unlinking from the phone)",onClick:D,children:"reset"===v?"Resetting...":"Reset connection"}),N.active&&(0,a.jsx)(o.Button,{size:"sm",variant:"ghost",onClick:()=>N.reset(),children:"Stop polling"})]}),U&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(j.Separator,{}),(0,a.jsxs)("div",{className:"space-y-3",children:[U.dataUrl?(0,a.jsxs)("div",{className:"flex flex-col items-center gap-2 rounded-lg bg-muted p-4",children:[(0,a.jsx)("img",{src:U.dataUrl,alt:"WhatsApp pairing QR",width:320,height:320,className:"rounded bg-white p-2"}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:"Open WhatsApp → Settings → Linked Devices → Link a device, and scan this code."})]}):(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:"ok"===U.state?"WhatsApp is paired and connected.":"connecting"===U.state?"Connecting to WhatsApp...":"awaiting_qr"===U.state?"Generating QR code...":"logged_out"===U.state?"Session logged out — click Pair device to start over.":"Waiting for QR code..."}),U.error&&(0,a.jsx)(c.Alert,{variant:"error",children:U.error})]})]})]})})}],49578);var R=e.i(74490);e.s(["DestinationSelector",0,function(){let{data:e}=(0,s.useConfig)(),{data:r}=(0,n.useHealth)(),d=(0,t.useQueryClient)(),c=Object.entries(r?.messaging??{}).filter(([e,a])=>"dashboard"!==e&&a.configured&&a.ownerConfigured).map(([e])=>e),m=e?.defaultNotificationPlatforms??[],[u,p]=(0,i.useState)(m),[h,g]=(0,i.useState)(!1),[x,f]=(0,i.useState)(null),v=m.join(",");if((0,i.useEffect)(()=>{p(m)},[v]),!e||!r)return null;let y=u.length!==m.length||u.some(e=>!m.includes(e)),j=async()=>{g(!0),f(null);try{let e=await l.api.patch("/config",{defaultNotificationPlatforms:u});await Promise.all([d.invalidateQueries({queryKey:["config"]}),d.invalidateQueries({queryKey:["health"]})]),e.requiresRestart.length>0&&f(`Updated. Restart daemon for: ${e.requiresRestart.join(", ")}`)}finally{g(!1)}};return(0,a.jsxs)(R.Card,{children:[(0,a.jsx)(R.CardHeader,{children:(0,a.jsx)(R.CardTitle,{className:"text-base",children:"Default Reminder Destinations"})}),(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsxs)("div",{className:"flex flex-wrap gap-2",children:[c.map(e=>(0,a.jsx)(o.Button,{size:"sm",variant:u.includes(e)?"default":"outline",onClick:()=>{p(a=>a.includes(e)?a.filter(a=>a!==e):[...a,e])},className:"capitalize",disabled:h,children:e},e)),0===c.length&&(0,a.jsx)("span",{className:"text-xs text-muted-foreground",children:"No eligible messaging app is configured yet."})]}),(0,a.jsx)("p",{className:"max-w-prose text-xs text-muted-foreground",children:"Every selected destination receives the same reminder. Replies still go back to the app where the conversation happened, and you can override the destination for a single request without changing this default."}),x&&(0,a.jsx)("p",{className:"text-xs text-amber-700 dark:text-amber-300",children:x}),(0,a.jsx)(o.Button,{size:"sm",variant:"outline",disabled:!y||h,onClick:j,children:h?"Saving...":"Save Reminder Destinations"})]})]})}],2126)}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,74490,e=>{"use strict";var t=e.i(54710),r=e.i(81471);let n=(0,e.i(94237).cva)("rounded-xl border p-5 shadow-[0_1px_3px_rgb(0_0_0/0.04)]",{variants:{tone:{default:"border-border bg-card",warning:"border-amber-200 bg-amber-50/50 dark:border-amber-900 dark:bg-amber-950/30",success:"border-emerald-200 bg-emerald-50/50 dark:border-emerald-900 dark:bg-emerald-950/30",error:"border-red-200 bg-red-50/50 dark:border-red-900 dark:bg-red-950/30"},interactive:{true:"transition-shadow duration-150 hover:shadow-[0_4px_6px_rgb(0_0_0/0.06)]",false:""}},defaultVariants:{tone:"default",interactive:!1}});e.s(["Card",0,function({className:e,tone:i,interactive:a,...s}){return(0,t.jsx)("div",{className:(0,r.cn)(n({tone:i,interactive:a}),e),...s})},"CardHeader",0,function({className:e,...n}){return(0,t.jsx)("div",{className:(0,r.cn)("mb-3 flex items-center justify-between",e),...n})},"CardStatLabel",0,function({className:e,...n}){return(0,t.jsx)("h3",{className:(0,r.cn)("text-sm font-medium text-muted-foreground",e),...n})},"CardTitle",0,function({className:e,...n}){return(0,t.jsx)("h3",{className:(0,r.cn)("text-lg font-semibold text-foreground",e),...n})},"CardValue",0,function({className:e,...n}){return(0,t.jsx)("div",{className:(0,r.cn)("text-3xl font-bold text-foreground",e),...n})}])},39982,e=>{"use strict";var t=e.i(54710),r=e.i(81471);e.s(["PageHeader",0,function({title:e,description:n,icon:i,badge:a,actions:s,children:o,className:l}){return(0,t.jsxs)("header",{className:(0,r.cn)("flex flex-col gap-1",l),children:[(0,t.jsxs)("div",{className:"flex items-baseline justify-between gap-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[i&&(0,t.jsx)(i,{className:"h-5 w-5 text-muted-foreground"}),(0,t.jsx)("h1",{className:"text-2xl font-semibold text-foreground",children:e}),a]}),s&&(0,t.jsx)("div",{className:"flex items-center gap-2",children:s})]}),n&&(0,t.jsx)("p",{className:"max-w-3xl text-sm text-muted-foreground",children:n}),o]})}])},90925,e=>{"use strict";let t=(0,e.i(77379).default)("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);e.s(["Trash2",0,t],90925)},60168,e=>{"use strict";let t=(0,e.i(77379).default)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",0,t],60168)},99758,e=>{"use strict";let t=(0,e.i(77379).default)("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",0,t],99758)},50862,e=>{"use strict";var t=e.i(54710),r=e.i(81471);e.s(["EmptyState",0,function({icon:e,title:n,description:i,className:a,children:s}){return(0,t.jsxs)("div",{className:(0,r.cn)("flex flex-col items-center justify-center py-16 text-muted-foreground",a),children:[(0,t.jsx)(e,{className:"mb-3 h-10 w-10 opacity-40"}),(0,t.jsx)("p",{className:"text-sm font-medium",children:n}),i&&(0,t.jsx)("p",{className:"mt-1 max-w-prose text-xs text-muted-foreground/70",children:i}),s]})}])},76176,e=>{"use strict";e.i(18446);var t=e.i(38082);let r={claude:"Claude Code",codex:"OpenAI Codex",gemini:"Gemini CLI",opencode:"OpenCode"},n=new Set(["opencode"]);function i(e){return n.has(e)}let a={gemini:{badgeLabel:"Vendor deprecation",shortSuffix:" (deprecated)",reason:"Google announced Gemini CLI will stop serving free, Pro, and Ultra requests on 2026-06-18 in favor of Antigravity CLI. Standard / Enterprise licenses keep access. Avoid binding new processes to Gemini if you rely on consumer-tier auth."}},s={claude:"Claude",codex:"Codex",gemini:"Gemini",opencode:"OpenCode"},o={claude:["#7C2D12","#B54B2D","#E15B40","#F97316","#FDBA74"],codex:["#86198F","#A21CAF","#D946EF","#E879F9","#F5D0FE"],gemini:["#1E3A8A","#1D4ED8","#1C69FF","#60A5FA","#93C5FD"],opencode:["#7C2D12","#C2410C","#FF7300","#F59E0B","#FCD34D"]},l=["#6b7280","#9ca3af","#4b5563","#374151"],c={claude:"orange",codex:"pink",gemini:"blue",opencode:"orange"},u={"routine.morning_routine":"Morning Routine","routine.evening_review":"Evening Review","routine.weekly_review":"Weekly Review","routine.monthly_review":"Monthly Review","routine.hourly_check":"Hourly Check","routine.roadmap_refresh":"Roadmap Refresh","message.dm":"Direct Messages","message.mention":"Mentions","dashboard.chat":"Dashboard Chat","agent.task":"Scheduled Tasks","calendar.change":"Calendar Events",gmail_classify:"Gmail Classification","github.pull_request.review_requested":"GitHub Review Requests","github.assigned":"GitHub Assignments","github.security_alert":"GitHub Security Alerts","github.workflow_run.failed":"GitHub CI Failures","wiki.ingest_url":"Wiki URL Ingest","wiki.compile":"Wiki Compile","wiki.ask":"Wiki Ask"};function d(e){let t;if(!e)return[];try{t=JSON.parse(e)}catch{return[]}if(!t||"object"!=typeof t)return[];let r=[];for(let[e,n]of Object.entries(t))n&&"object"==typeof n&&r.push({modelId:e,inputTokens:"number"==typeof n.inputTokens?n.inputTokens:0,outputTokens:"number"==typeof n.outputTokens?n.outputTokens:0,costUsd:"number"==typeof n.costUsd?n.costUsd:0});return r.sort((e,t)=>t.costUsd-e.costUsd)}function f(e){if(!e)return null;let t=e.toLowerCase();return/^[a-z0-9_.-]+\/[a-z0-9_.-]+/.test(t)?"opencode":t.includes("claude")||t.includes("sonnet")||t.includes("opus")||t.includes("haiku")?"claude":t.includes("gemini")?"gemini":t.includes("gpt")||t.includes("codex")||t.includes("o3")||t.includes("o4")?"codex":null}e.s(["BACKEND_BADGE_VARIANTS",0,c,"BACKEND_COLORS",0,{claude:"#E15B40",codex:"#D946EF",gemini:"#1C69FF",opencode:"#FF7300"},"BACKEND_LABELS",0,r,"BACKEND_PROVIDER_LABELS",0,{claude:"Claude (Anthropic)",codex:"ChatGPT (OpenAI)",gemini:"Gemini (Google)",opencode:"OpenCode (sst/opencode)"},"BACKEND_PROVIDER_SHORT",0,{claude:"Claude",codex:"ChatGPT",gemini:"Gemini",opencode:"OpenCode"},"BACKEND_WEB_SEARCH_DESCRIPTIONS",0,{claude:"Lets the agent call Anthropic's built-in WebSearch tool.",codex:"Lets the agent call OpenAI's web_search tool. Works in safe (sandbox) mode — the tool runs at OpenAI, not as a local shell command.",gemini:"Lets the agent call Gemini's google_web_search tool.",opencode:"Lets the agent call the configured OpenCode provider's web-search tool when the OpenCode runtime is enabled."},"CHART_CATEGORY_PALETTE",0,["#3b82f6","#10b981","#f59e0b","#8b5cf6","#ec4899","#14b8a6","#f97316","#6366f1","#ef4444","#22c55e"],"UI_PREVIEW_ONLY_BADGE_SUFFIX",0," (coming soon)","UI_PREVIEW_ONLY_REASON",0,"Coming soon — OpenCode is wired internally but not yet ready for selection in this release. The card stays visible so you can see what is on the roadmap.","assignModelColors",0,function(e){let t=new Map;for(let r of e){if(!r)continue;let e=f(r)??"other",n=t.get(e)??[];n.push(r),t.set(e,n)}let r={};for(let[e,n]of t){n.sort((e,t)=>e.localeCompare(t));let t="other"===e?l:o[e],i=n.length;n.forEach((e,n)=>{let a;a=i>=t.length?n%t.length:1===i?Math.floor(t.length/2):Math.floor((n+.5)*t.length/i),r[e]=t[a]})}return r},"detectBackendFromModel",0,f,"formatModelName",0,function(e){return e?e.replace(/^[a-z0-9_.-]+\//i,"").replace(/^claude-/,"Claude ").replace(/^gpt-/,"GPT-").replace(/^gemini-/,"Gemini ").replace(/-/g," ").replace(/\bpreview\b/gi,"(preview)").replace(/\bpro\b/gi,"Pro").replace(/\bflash\b/gi,"Flash").replace(/\blite\b/gi,"Lite").replace(/\bmini\b/gi,"Mini").replace(/\bcodex\b/gi,"Codex").replace(/\bopus\b/gi,"Opus").replace(/\bsonnet\b/gi,"Sonnet").replace(/\bhaiku\b/gi,"Haiku").replace(/\s+/g," ").trim():"Not set"},"formatShortModelName",0,function(e){if(!e)return"unknown";if("opus"===e)return"Opus";if("sonnet"===e)return"Sonnet";let t=e.replace(/^[a-z0-9_.-]+\//i,""),r=t.replace(/-\d{8,}$/,"").replace(/^claude-/,"").replace(/(\d+)-(\d+)(?![-\d])/g,"$1.$2").replace(/-/g," ");return t.startsWith("gpt-")&&(r=`GPT-${r.replace(/^gpt\s*/i,"")}`),t.startsWith("gemini-")&&(r=r.replace(/^gemini\s*/i,"Gemini ")),r.replace(/\bopus\b/gi,"Opus").replace(/\bsonnet\b/gi,"Sonnet").replace(/\bhaiku\b/gi,"Haiku").replace(/\bpro\b/gi,"Pro").replace(/\bflash\b/gi,"Flash").replace(/\blite\b/gi,"Lite").replace(/\bmini\b/gi,"Mini").replace(/\s+/g," ").trim()},"getBackendDeprecation",0,function(e){return a[e]??null},"getBackendLabel",0,function(e){return r[e]},"getBackendShortLabel",0,function(e){return s[e]},"getProcessGroup",0,function(e){return e.startsWith("wiki.")?"Wiki":e.startsWith("message.")||e.startsWith("dashboard.")?"Conversation":e.startsWith("routine.")?"Routines":e.startsWith("git.")||e.startsWith("github.")?"Git & GitHub":e.startsWith("calendar.")||"gmail_classify"===e?"Integrations":"Tasks"},"getProcessLabel",0,function(e){return u[e]??e},"isBackendSelectionDisabled",0,function(e){return!(0,t.isRuntimeAvailableBackendId)(e)||i(e)},"isUiPreviewOnlyBackend",0,i,"modelBadgeVariant",0,function(e){if(!e)return"gray";let t=f(e);return t?c[t]:"gray"},"parseModelUsage",0,d,"pickDisplayModel",0,function(e,t){let r=d(t);return r.length>0&&r[0]?r[0].modelId:e??null}])},59134,e=>{"use strict";let t=(0,e.i(77379).default)("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);e.s(["RefreshCw",0,t],59134)},49785,e=>{"use strict";var t=e.i(54710),r=e.i(63991),n=e.i(72740),i=e.i(20014),a=e.i(81471);function s(){return(0,t.jsx)("div",{className:"flex items-center justify-center py-16",children:(0,t.jsx)(n.Loader2,{className:"h-6 w-6 animate-spin text-muted-foreground"})})}function o({error:e,onRetry:n}){return(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center gap-3 py-16",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-destructive",children:[(0,t.jsx)(r.AlertCircle,{className:"h-5 w-5"}),(0,t.jsx)("p",{className:"text-sm font-medium",children:"Failed to load data"})]}),e?.message&&(0,t.jsx)("p",{className:"max-w-md text-center text-xs text-muted-foreground",children:e.message}),n&&(0,t.jsx)(i.Button,{variant:"outline",size:"sm",onClick:n,children:"Retry"})]})}e.s(["CardSkeleton",0,function({count:e=3}){return(0,t.jsx)("div",{className:(0,a.cn)("grid gap-4",e<=2?"grid-cols-1 md:grid-cols-2":4===e?"grid-cols-2 md:grid-cols-4":"grid-cols-1 md:grid-cols-3"),children:Array.from({length:e}).map((e,r)=>(0,t.jsx)("div",{className:"h-28 animate-pulse rounded-xl border border-border bg-muted/30"},r))})},"QueryResult",0,function({isLoading:e,isError:r,error:n,onRetry:i,skeleton:l,className:c,children:u}){return e?(0,t.jsx)("div",{className:(0,a.cn)(c),children:l??(0,t.jsx)(s,{})}):r?(0,t.jsx)("div",{className:(0,a.cn)(c),children:(0,t.jsx)(o,{error:n,onRetry:i})}):(0,t.jsx)(t.Fragment,{children:u})},"TableSkeleton",0,function({rows:e=5}){return(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("div",{className:"h-10 animate-pulse rounded-lg bg-muted/40"}),Array.from({length:e}).map((e,r)=>(0,t.jsx)("div",{className:"h-12 animate-pulse rounded-lg bg-muted/20"},r))]})}])},75540,e=>{"use strict";var t=e.i(46437),r=e.i(49457),n=class extends t.QueryObserver{constructor(e,t){super(e,t)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(e){super.setOptions({...e,behavior:(0,r.infiniteQueryBehavior)()})}getOptimisticResult(e){return e.behavior=(0,r.infiniteQueryBehavior)(),super.getOptimisticResult(e)}fetchNextPage(e){return this.fetch({...e,meta:{fetchMore:{direction:"forward"}}})}fetchPreviousPage(e){return this.fetch({...e,meta:{fetchMore:{direction:"backward"}}})}createResult(e,t){let{state:n}=e,i=super.createResult(e,t),{isFetching:a,isRefetching:s,isError:o,isRefetchError:l}=i,c=n.fetchMeta?.fetchMore?.direction,u=o&&"forward"===c,d=a&&"forward"===c,f=o&&"backward"===c,m=a&&"backward"===c;return{...i,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:(0,r.hasNextPage)(t,n.data),hasPreviousPage:(0,r.hasPreviousPage)(t,n.data),isFetchNextPageError:u,isFetchingNextPage:d,isFetchPreviousPageError:f,isFetchingPreviousPage:m,isRefetchError:l&&!u&&!f,isRefetching:s&&!d&&!m}}},i=e.i(98757);e.s(["useInfiniteQuery",0,function(e,t){return(0,i.useBaseQuery)(e,n,t)}],75540)},26406,e=>{"use strict";var t=e.i(54710),r=e.i(34416),n=e.i(91967),i=e.i(9413),a=e.i(87099),s=e.i(22353),o=e.i(11207),l=e.i(85565),c=e.i(88248),u=e.i(36567),d=e.i(75649),f="rovingFocusGroup.onEntryFocus",m={bubbles:!1,cancelable:!0},g="RovingFocusGroup",[p,h,b]=(0,a.createCollection)(g),[x,v]=(0,i.createContextScope)(g,[b]),[y,w]=x(g),C=r.forwardRef((e,r)=>(0,t.jsx)(p.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,t.jsx)(p.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,t.jsx)(k,{...e,ref:r})})}));C.displayName=g;var k=r.forwardRef((e,i)=>{let{__scopeRovingFocusGroup:a,orientation:o,loop:p=!1,dir:b,currentTabStopId:x,defaultCurrentTabStopId:v,onCurrentTabStopIdChange:w,onEntryFocus:C,preventScrollOnEntryFocus:k=!1,...j}=e,N=r.useRef(null),R=(0,s.useComposedRefs)(i,N),A=(0,d.useDirection)(b),[P,_]=(0,u.useControllableState)({prop:x,defaultProp:v??null,onChange:w,caller:g}),[T,F]=r.useState(!1),D=(0,c.useCallbackRef)(C),I=h(a),S=r.useRef(!1),[M,B]=r.useState(0);return r.useEffect(()=>{let e=N.current;if(e)return e.addEventListener(f,D),()=>e.removeEventListener(f,D)},[D]),(0,t.jsx)(y,{scope:a,orientation:o,dir:A,loop:p,currentTabStopId:P,onItemFocus:r.useCallback(e=>_(e),[_]),onItemShiftTab:r.useCallback(()=>F(!0),[]),onFocusableItemAdd:r.useCallback(()=>B(e=>e+1),[]),onFocusableItemRemove:r.useCallback(()=>B(e=>e-1),[]),children:(0,t.jsx)(l.Primitive.div,{tabIndex:T||0===M?-1:0,"data-orientation":o,...j,ref:R,style:{outline:"none",...e.style},onMouseDown:(0,n.composeEventHandlers)(e.onMouseDown,()=>{S.current=!0}),onFocus:(0,n.composeEventHandlers)(e.onFocus,e=>{let t=!S.current;if(e.target===e.currentTarget&&t&&!T){let t=new CustomEvent(f,m);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=I().filter(e=>e.focusable);E([e.find(e=>e.active),e.find(e=>e.id===P),...e].filter(Boolean).map(e=>e.ref.current),k)}}S.current=!1}),onBlur:(0,n.composeEventHandlers)(e.onBlur,()=>F(!1))})})}),j="RovingFocusGroupItem",N=r.forwardRef((e,i)=>{let{__scopeRovingFocusGroup:a,focusable:s=!0,active:c=!1,tabStopId:u,children:d,...f}=e,m=(0,o.useId)(),g=u||m,b=w(j,a),x=b.currentTabStopId===g,v=h(a),{onFocusableItemAdd:y,onFocusableItemRemove:C,currentTabStopId:k}=b;return r.useEffect(()=>{if(s)return y(),()=>C()},[s,y,C]),(0,t.jsx)(p.ItemSlot,{scope:a,id:g,focusable:s,active:c,children:(0,t.jsx)(l.Primitive.span,{tabIndex:x?0:-1,"data-orientation":b.orientation,...f,ref:i,onMouseDown:(0,n.composeEventHandlers)(e.onMouseDown,e=>{s?b.onItemFocus(g):e.preventDefault()}),onFocus:(0,n.composeEventHandlers)(e.onFocus,()=>b.onItemFocus(g)),onKeyDown:(0,n.composeEventHandlers)(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey)return void b.onItemShiftTab();if(e.target!==e.currentTarget)return;let t=function(e,t,r){var n;let i=(n=e.key,"rtl"!==r?n:"ArrowLeft"===n?"ArrowRight":"ArrowRight"===n?"ArrowLeft":n);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(i))&&!("horizontal"===t&&["ArrowUp","ArrowDown"].includes(i)))return R[i]}(e,b.orientation,b.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let i=v().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)i.reverse();else if("prev"===t||"next"===t){var r,n;"prev"===t&&i.reverse();let a=i.indexOf(e.currentTarget);i=b.loop?(r=i,n=a+1,r.map((e,t)=>r[(n+t)%r.length])):i.slice(a+1)}setTimeout(()=>E(i))}}),children:"function"==typeof d?d({isCurrentTabStop:x,hasTabStop:null!=k}):d})})});N.displayName=j;var R={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function E(e,t=!1){let r=document.activeElement;for(let n of e)if(n===r||(n.focus({preventScroll:t}),document.activeElement!==r))return}var A=e.i(90816),P="Tabs",[_,T]=(0,i.createContextScope)(P,[v]),F=v(),[D,I]=_(P),S=r.forwardRef((e,r)=>{let{__scopeTabs:n,value:i,onValueChange:a,defaultValue:s,orientation:c="horizontal",dir:f,activationMode:m="automatic",...g}=e,p=(0,d.useDirection)(f),[h,b]=(0,u.useControllableState)({prop:i,onChange:a,defaultProp:s??"",caller:P});return(0,t.jsx)(D,{scope:n,baseId:(0,o.useId)(),value:h,onValueChange:b,orientation:c,dir:p,activationMode:m,children:(0,t.jsx)(l.Primitive.div,{dir:p,"data-orientation":c,...g,ref:r})})});S.displayName=P;var M="TabsList",B=r.forwardRef((e,r)=>{let{__scopeTabs:n,loop:i=!0,...a}=e,s=I(M,n),o=F(n);return(0,t.jsx)(C,{asChild:!0,...o,orientation:s.orientation,dir:s.dir,loop:i,children:(0,t.jsx)(l.Primitive.div,{role:"tablist","aria-orientation":s.orientation,...a,ref:r})})});B.displayName=M;var L="TabsTrigger",O=r.forwardRef((e,r)=>{let{__scopeTabs:i,value:a,disabled:s=!1,...o}=e,c=I(L,i),u=F(i),d=K(c.baseId,a),f=W(c.baseId,a),m=a===c.value;return(0,t.jsx)(N,{asChild:!0,...u,focusable:!s,active:m,children:(0,t.jsx)(l.Primitive.button,{type:"button",role:"tab","aria-selected":m,"aria-controls":f,"data-state":m?"active":"inactive","data-disabled":s?"":void 0,disabled:s,id:d,...o,ref:r,onMouseDown:(0,n.composeEventHandlers)(e.onMouseDown,e=>{s||0!==e.button||!1!==e.ctrlKey?e.preventDefault():c.onValueChange(a)}),onKeyDown:(0,n.composeEventHandlers)(e.onKeyDown,e=>{[" ","Enter"].includes(e.key)&&c.onValueChange(a)}),onFocus:(0,n.composeEventHandlers)(e.onFocus,()=>{let e="manual"!==c.activationMode;m||s||!e||c.onValueChange(a)})})})});O.displayName=L;var G="TabsContent",H=r.forwardRef((e,n)=>{let{__scopeTabs:i,value:a,forceMount:s,children:o,...c}=e,u=I(G,i),d=K(u.baseId,a),f=W(u.baseId,a),m=a===u.value,g=r.useRef(m);return r.useEffect(()=>{let e=requestAnimationFrame(()=>g.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,t.jsx)(A.Presence,{present:s||m,children:({present:r})=>(0,t.jsx)(l.Primitive.div,{"data-state":m?"active":"inactive","data-orientation":u.orientation,role:"tabpanel","aria-labelledby":d,hidden:!r,id:f,tabIndex:0,...c,ref:n,style:{...e.style,animationDuration:g.current?"0s":void 0},children:r&&o})})});function K(e,t){return`${e}-trigger-${t}`}function W(e,t){return`${e}-content-${t}`}H.displayName=G;var U=e.i(81471);e.s(["Tabs",0,S,"TabsContent",0,function({className:e,...r}){return(0,t.jsx)(H,{className:(0,U.cn)("mt-2 ring-offset-background focus-visible:outline-none",e),...r})},"TabsList",0,function({className:e,...r}){return(0,t.jsx)(B,{className:(0,U.cn)("inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",e),...r})},"TabsTrigger",0,function({className:e,...r}){return(0,t.jsx)(O,{className:(0,U.cn)("inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",e),...r})}],26406)},90780,e=>{"use strict";let t=(0,e.i(77379).default)("Pen",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}]]);e.s(["Edit2",0,t],90780)},71816,49214,e=>{"use strict";var t=e.i(34416),r=e.i(95486),n=e.i(65268);e.s(["useRegenerate",0,function(){let[e,i]=(0,t.useState)(null),[a,s]=(0,t.useState)("idle"),[o,l]=(0,t.useState)(null),c=(0,r.useQueryClient)(),u=(0,t.useRef)(null),d=(0,t.useRef)(null),f=(0,t.useRef)(0);(0,t.useEffect)(()=>()=>{u.current&&clearInterval(u.current)},[]);let m=(0,t.useCallback)(()=>{u.current&&(clearInterval(u.current),u.current=null)},[]);return{regenerate:(0,t.useCallback)(async e=>{if("triggered"===a||"running"===a)return;i(e),s("triggered"),l(null),f.current=Date.now();let t=await n.api.get(`/context/${e}`).catch(()=>null);d.current=t?.lastModified??null;try{await n.api.post("/agent/regenerate",{target:e}),s("running"),u.current=setInterval(async()=>{if(Date.now()-f.current>3e5){m(),s("error"),l("Timeout — agent may still be processing");return}try{let t=await n.api.get(`/context/${e}`);(null===d.current||t.lastModified!==d.current)&&(m(),s("done"),c.invalidateQueries({queryKey:["context",e]}),c.invalidateQueries({queryKey:["calendar"]}),setTimeout(()=>{s("idle"),i(null)},5e3))}catch{}},3e3)}catch(e){s("error"),l(e instanceof Error?e.message:"Failed to trigger")}},[a,c,m]),target:e,status:a,error:o,dismiss:(0,t.useCallback)(()=>{m(),s("idle"),i(null),l(null)},[m])}}],71816);var i=e.i(54710),a=e.i(20014),s=e.i(81471),o=e.i(59134),l=e.i(99758),c=e.i(63991),u=e.i(72740);e.s(["RegenerateButton",0,function({target:e,label:t,currentTarget:r,status:n,error:d,onRegenerate:f,onDismiss:m,variant:g="outline",size:p="sm",className:h}){let b=r===e;return b&&"done"===n?(0,i.jsxs)(a.Button,{variant:g,size:p,className:(0,s.cn)("text-emerald-600 dark:text-emerald-400",h),onClick:m,children:[(0,i.jsx)(l.Check,{className:"h-3.5 w-3.5 mr-1.5"}),"Updated"]}):b&&"error"===n?(0,i.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,i.jsxs)(a.Button,{variant:g,size:p,className:(0,s.cn)("text-red-600 dark:text-red-400",h),onClick:m,children:[(0,i.jsx)(c.AlertCircle,{className:"h-3.5 w-3.5 mr-1.5"}),"Failed"]}),d&&(0,i.jsx)("span",{className:"text-xs text-red-600 dark:text-red-400 max-w-48 truncate",children:d})]}):(0,i.jsxs)(a.Button,{variant:g,size:p,onClick:()=>f(e),disabled:"triggered"===n||"running"===n,className:h,children:[b&&"idle"!==n?(0,i.jsx)(u.Loader2,{className:"h-3.5 w-3.5 mr-1.5 animate-spin"}):(0,i.jsx)(o.RefreshCw,{className:"h-3.5 w-3.5 mr-1.5"}),b&&"triggered"===n?"Triggering...":b&&"running"===n?"Running...":t]})}],49214)},42455,e=>{"use strict";var t=e.i(14260),r=e.i(65268);e.s(["useScheduleNext",0,function(){return(0,t.useQuery)({queryKey:["schedule-next"],queryFn:()=>r.api.get("/schedule/next"),refetchInterval:3e4})}])}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,74490,e=>{"use strict";var t=e.i(54710),a=e.i(81471);let s=(0,e.i(94237).cva)("rounded-xl border p-5 shadow-[0_1px_3px_rgb(0_0_0/0.04)]",{variants:{tone:{default:"border-border bg-card",warning:"border-amber-200 bg-amber-50/50 dark:border-amber-900 dark:bg-amber-950/30",success:"border-emerald-200 bg-emerald-50/50 dark:border-emerald-900 dark:bg-emerald-950/30",error:"border-red-200 bg-red-50/50 dark:border-red-900 dark:bg-red-950/30"},interactive:{true:"transition-shadow duration-150 hover:shadow-[0_4px_6px_rgb(0_0_0/0.06)]",false:""}},defaultVariants:{tone:"default",interactive:!1}});e.s(["Card",0,function({className:e,tone:n,interactive:i,...l}){return(0,t.jsx)("div",{className:(0,a.cn)(s({tone:n,interactive:i}),e),...l})},"CardHeader",0,function({className:e,...s}){return(0,t.jsx)("div",{className:(0,a.cn)("mb-3 flex items-center justify-between",e),...s})},"CardStatLabel",0,function({className:e,...s}){return(0,t.jsx)("h3",{className:(0,a.cn)("text-sm font-medium text-muted-foreground",e),...s})},"CardTitle",0,function({className:e,...s}){return(0,t.jsx)("h3",{className:(0,a.cn)("text-lg font-semibold text-foreground",e),...s})},"CardValue",0,function({className:e,...s}){return(0,t.jsx)("div",{className:(0,a.cn)("text-3xl font-bold text-foreground",e),...s})}])},39982,e=>{"use strict";var t=e.i(54710),a=e.i(81471);e.s(["PageHeader",0,function({title:e,description:s,icon:n,badge:i,actions:l,children:r,className:o}){return(0,t.jsxs)("header",{className:(0,a.cn)("flex flex-col gap-1",o),children:[(0,t.jsxs)("div",{className:"flex items-baseline justify-between gap-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[n&&(0,t.jsx)(n,{className:"h-5 w-5 text-muted-foreground"}),(0,t.jsx)("h1",{className:"text-2xl font-semibold text-foreground",children:e}),i]}),l&&(0,t.jsx)("div",{className:"flex items-center gap-2",children:l})]}),s&&(0,t.jsx)("p",{className:"max-w-3xl text-sm text-muted-foreground",children:s}),r]})}])},76176,e=>{"use strict";e.i(18446);var t=e.i(38082);let a={claude:"Claude Code",codex:"OpenAI Codex",gemini:"Gemini CLI",opencode:"OpenCode"},s=new Set(["opencode"]);function n(e){return s.has(e)}let i={gemini:{badgeLabel:"Vendor deprecation",shortSuffix:" (deprecated)",reason:"Google announced Gemini CLI will stop serving free, Pro, and Ultra requests on 2026-06-18 in favor of Antigravity CLI. Standard / Enterprise licenses keep access. Avoid binding new processes to Gemini if you rely on consumer-tier auth."}},l={claude:"Claude",codex:"Codex",gemini:"Gemini",opencode:"OpenCode"},r={claude:["#7C2D12","#B54B2D","#E15B40","#F97316","#FDBA74"],codex:["#86198F","#A21CAF","#D946EF","#E879F9","#F5D0FE"],gemini:["#1E3A8A","#1D4ED8","#1C69FF","#60A5FA","#93C5FD"],opencode:["#7C2D12","#C2410C","#FF7300","#F59E0B","#FCD34D"]},o=["#6b7280","#9ca3af","#4b5563","#374151"],d={claude:"orange",codex:"pink",gemini:"blue",opencode:"orange"},c={"routine.morning_routine":"Morning Routine","routine.evening_review":"Evening Review","routine.weekly_review":"Weekly Review","routine.monthly_review":"Monthly Review","routine.hourly_check":"Hourly Check","routine.roadmap_refresh":"Roadmap Refresh","message.dm":"Direct Messages","message.mention":"Mentions","dashboard.chat":"Dashboard Chat","agent.task":"Scheduled Tasks","calendar.change":"Calendar Events",gmail_classify:"Gmail Classification","github.pull_request.review_requested":"GitHub Review Requests","github.assigned":"GitHub Assignments","github.security_alert":"GitHub Security Alerts","github.workflow_run.failed":"GitHub CI Failures","wiki.ingest_url":"Wiki URL Ingest","wiki.compile":"Wiki Compile","wiki.ask":"Wiki Ask"};function u(e){let t;if(!e)return[];try{t=JSON.parse(e)}catch{return[]}if(!t||"object"!=typeof t)return[];let a=[];for(let[e,s]of Object.entries(t))s&&"object"==typeof s&&a.push({modelId:e,inputTokens:"number"==typeof s.inputTokens?s.inputTokens:0,outputTokens:"number"==typeof s.outputTokens?s.outputTokens:0,costUsd:"number"==typeof s.costUsd?s.costUsd:0});return a.sort((e,t)=>t.costUsd-e.costUsd)}function m(e){if(!e)return null;let t=e.toLowerCase();return/^[a-z0-9_.-]+\/[a-z0-9_.-]+/.test(t)?"opencode":t.includes("claude")||t.includes("sonnet")||t.includes("opus")||t.includes("haiku")?"claude":t.includes("gemini")?"gemini":t.includes("gpt")||t.includes("codex")||t.includes("o3")||t.includes("o4")?"codex":null}e.s(["BACKEND_BADGE_VARIANTS",0,d,"BACKEND_COLORS",0,{claude:"#E15B40",codex:"#D946EF",gemini:"#1C69FF",opencode:"#FF7300"},"BACKEND_LABELS",0,a,"BACKEND_PROVIDER_LABELS",0,{claude:"Claude (Anthropic)",codex:"ChatGPT (OpenAI)",gemini:"Gemini (Google)",opencode:"OpenCode (sst/opencode)"},"BACKEND_PROVIDER_SHORT",0,{claude:"Claude",codex:"ChatGPT",gemini:"Gemini",opencode:"OpenCode"},"BACKEND_WEB_SEARCH_DESCRIPTIONS",0,{claude:"Lets the agent call Anthropic's built-in WebSearch tool.",codex:"Lets the agent call OpenAI's web_search tool. Works in safe (sandbox) mode — the tool runs at OpenAI, not as a local shell command.",gemini:"Lets the agent call Gemini's google_web_search tool.",opencode:"Lets the agent call the configured OpenCode provider's web-search tool when the OpenCode runtime is enabled."},"CHART_CATEGORY_PALETTE",0,["#3b82f6","#10b981","#f59e0b","#8b5cf6","#ec4899","#14b8a6","#f97316","#6366f1","#ef4444","#22c55e"],"UI_PREVIEW_ONLY_BADGE_SUFFIX",0," (coming soon)","UI_PREVIEW_ONLY_REASON",0,"Coming soon — OpenCode is wired internally but not yet ready for selection in this release. The card stays visible so you can see what is on the roadmap.","assignModelColors",0,function(e){let t=new Map;for(let a of e){if(!a)continue;let e=m(a)??"other",s=t.get(e)??[];s.push(a),t.set(e,s)}let a={};for(let[e,s]of t){s.sort((e,t)=>e.localeCompare(t));let t="other"===e?o:r[e],n=s.length;s.forEach((e,s)=>{let i;i=n>=t.length?s%t.length:1===n?Math.floor(t.length/2):Math.floor((s+.5)*t.length/n),a[e]=t[i]})}return a},"detectBackendFromModel",0,m,"formatModelName",0,function(e){return e?e.replace(/^[a-z0-9_.-]+\//i,"").replace(/^claude-/,"Claude ").replace(/^gpt-/,"GPT-").replace(/^gemini-/,"Gemini ").replace(/-/g," ").replace(/\bpreview\b/gi,"(preview)").replace(/\bpro\b/gi,"Pro").replace(/\bflash\b/gi,"Flash").replace(/\blite\b/gi,"Lite").replace(/\bmini\b/gi,"Mini").replace(/\bcodex\b/gi,"Codex").replace(/\bopus\b/gi,"Opus").replace(/\bsonnet\b/gi,"Sonnet").replace(/\bhaiku\b/gi,"Haiku").replace(/\s+/g," ").trim():"Not set"},"formatShortModelName",0,function(e){if(!e)return"unknown";if("opus"===e)return"Opus";if("sonnet"===e)return"Sonnet";let t=e.replace(/^[a-z0-9_.-]+\//i,""),a=t.replace(/-\d{8,}$/,"").replace(/^claude-/,"").replace(/(\d+)-(\d+)(?![-\d])/g,"$1.$2").replace(/-/g," ");return t.startsWith("gpt-")&&(a=`GPT-${a.replace(/^gpt\s*/i,"")}`),t.startsWith("gemini-")&&(a=a.replace(/^gemini\s*/i,"Gemini ")),a.replace(/\bopus\b/gi,"Opus").replace(/\bsonnet\b/gi,"Sonnet").replace(/\bhaiku\b/gi,"Haiku").replace(/\bpro\b/gi,"Pro").replace(/\bflash\b/gi,"Flash").replace(/\blite\b/gi,"Lite").replace(/\bmini\b/gi,"Mini").replace(/\s+/g," ").trim()},"getBackendDeprecation",0,function(e){return i[e]??null},"getBackendLabel",0,function(e){return a[e]},"getBackendShortLabel",0,function(e){return l[e]},"getProcessGroup",0,function(e){return e.startsWith("wiki.")?"Wiki":e.startsWith("message.")||e.startsWith("dashboard.")?"Conversation":e.startsWith("routine.")?"Routines":e.startsWith("git.")||e.startsWith("github.")?"Git & GitHub":e.startsWith("calendar.")||"gmail_classify"===e?"Integrations":"Tasks"},"getProcessLabel",0,function(e){return c[e]??e},"isBackendSelectionDisabled",0,function(e){return!(0,t.isRuntimeAvailableBackendId)(e)||n(e)},"isUiPreviewOnlyBackend",0,n,"modelBadgeVariant",0,function(e){if(!e)return"gray";let t=m(e);return t?d[t]:"gray"},"parseModelUsage",0,u,"pickDisplayModel",0,function(e,t){let a=u(t);return a.length>0&&a[0]?a[0].modelId:e??null}])},70986,e=>{"use strict";var t=e.i(34416),a=e.i(91967),s=e.i(9413),n=e.i(36567),i=e.i(18731),l=e.i(22353),r=e.i(85565),o=e.i(90816),d=e.i(11207),c=e.i(54710),u="Collapsible",[m,p]=(0,s.createContextScope)(u),[h,x]=m(u),g=t.forwardRef((e,a)=>{let{__scopeCollapsible:s,open:i,defaultOpen:l,disabled:o,onOpenChange:m,...p}=e,[x,g]=(0,n.useControllableState)({prop:i,defaultProp:l??!1,onChange:m,caller:u});return(0,c.jsx)(h,{scope:s,disabled:o,contentId:(0,d.useId)(),open:x,onOpenToggle:t.useCallback(()=>g(e=>!e),[g]),children:(0,c.jsx)(r.Primitive.div,{"data-state":k(x),"data-disabled":o?"":void 0,...p,ref:a})})});g.displayName=u;var f="CollapsibleTrigger",b=t.forwardRef((e,t)=>{let{__scopeCollapsible:s,...n}=e,i=x(f,s);return(0,c.jsx)(r.Primitive.button,{type:"button","aria-controls":i.contentId,"aria-expanded":i.open||!1,"data-state":k(i.open),"data-disabled":i.disabled?"":void 0,disabled:i.disabled,...n,ref:t,onClick:(0,a.composeEventHandlers)(e.onClick,i.onOpenToggle)})});b.displayName=f;var j="CollapsibleContent",y=t.forwardRef((e,t)=>{let{forceMount:a,...s}=e,n=x(j,e.__scopeCollapsible);return(0,c.jsx)(o.Presence,{present:a||n.open,children:({present:e})=>(0,c.jsx)(v,{...s,ref:t,present:e})})});y.displayName=j;var v=t.forwardRef((e,a)=>{let{__scopeCollapsible:s,present:n,children:o,...d}=e,u=x(j,s),[m,p]=t.useState(n),h=t.useRef(null),g=(0,l.useComposedRefs)(a,h),f=t.useRef(0),b=f.current,y=t.useRef(0),v=y.current,N=u.open||m,C=t.useRef(N),w=t.useRef(void 0);return t.useEffect(()=>{let e=requestAnimationFrame(()=>C.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,i.useLayoutEffect)(()=>{let e=h.current;if(e){w.current=w.current||{transitionDuration:e.style.transitionDuration,animationName:e.style.animationName},e.style.transitionDuration="0s",e.style.animationName="none";let t=e.getBoundingClientRect();f.current=t.height,y.current=t.width,C.current||(e.style.transitionDuration=w.current.transitionDuration,e.style.animationName=w.current.animationName),p(n)}},[u.open,n]),(0,c.jsx)(r.Primitive.div,{"data-state":k(u.open),"data-disabled":u.disabled?"":void 0,id:u.contentId,hidden:!N,...d,ref:g,style:{"--radix-collapsible-content-height":b?`${b}px`:void 0,"--radix-collapsible-content-width":v?`${v}px`:void 0,...e.style},children:N&&o})});function k(e){return e?"open":"closed"}e.s(["Collapsible",0,g,"CollapsibleContent",0,y,"CollapsibleTrigger",0,b],70986)},67935,e=>{"use strict";var t=e.i(54710),a=e.i(16047),s=e.i(34416),n=e.i(81471);let i=(0,s.forwardRef)(({className:e,children:s,...i},l)=>(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("select",{ref:l,className:(0,n.cn)("flex h-9 w-full appearance-none rounded-md border border-input bg-background px-3 py-2 pr-8 text-sm ring-offset-background","focus:outline-none focus:ring-2 focus:ring-ring","disabled:cursor-not-allowed disabled:opacity-50",e),...i,children:s}),(0,t.jsx)(a.ChevronDown,{className:"pointer-events-none absolute right-3 top-1/2 h-4 w-4 -translate-y-1/2 opacity-50"})]}));i.displayName="NativeSelect",e.s(["NativeSelect",0,i])},61079,e=>{"use strict";var t=e.i(54710),a=e.i(34416);e.i(18446);var s=e.i(38082),n=e.i(76176),i=e.i(65268),l=e.i(79634),r=e.i(48467),o=e.i(20014),d=e.i(74490),c=e.i(8652),u=e.i(67935),m=e.i(39982),p=e.i(70986),h=e.i(57628);let x=[{key:"applied",label:"applied"},{key:"auto_reverted",label:"auto-reverted",emphasise:!0},{key:"smoke_failed",label:"smoke-failed"},{key:"diff_caps",label:"diff-caps"},{key:"render_budget",label:"render-budget"},{key:"conflict",label:"conflict"}],g={claude:"claude-sonnet-4-6",codex:"gpt-5.4",gemini:"gemini-2.5-flash",opencode:"anthropic/claude-sonnet-4-6"},f=["today","management-policy","project-doc","user-profile"];function b({checked:e,onChange:a,hint:s}){return(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,t.jsxs)("span",{className:"flex flex-col gap-0.5",children:[(0,t.jsx)("span",{className:"text-sm font-medium",children:e?"On":"Off"}),s&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:s})]}),(0,t.jsx)(j,{checked:e,onChange:a,ariaLabel:"Enable self-learning skill optimization"})]})}function j({checked:e,onChange:a,ariaLabel:s}){return(0,t.jsx)("button",{type:"button",role:"switch","aria-checked":e,"aria-label":s,onClick:()=>a(!e),className:"relative inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 "+(e?"bg-primary":"bg-input"),children:(0,t.jsx)("span",{className:"inline-block h-5 w-5 transform rounded-full bg-background shadow-sm transition-transform "+(e?"translate-x-[22px]":"translate-x-[2px]")})})}function y({value:e,onChange:a,options:s}){return(0,t.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-2 pt-1",children:s.map(n=>(0,t.jsxs)("label",{className:"flex items-start gap-2 cursor-pointer text-sm rounded-md border border-input p-2",children:[(0,t.jsx)("input",{type:"radio",name:`radio-${s[0].value}`,checked:e===n.value,onChange:()=>a(n.value),className:"mt-1 h-4 w-4 accent-primary"}),(0,t.jsxs)("span",{className:"flex flex-col",children:[(0,t.jsx)("span",{className:"font-medium",children:n.label}),n.hint&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:n.hint})]})]},n.value))})}function v({label:e,value:a,onChange:s,options:n}){return(0,t.jsxs)("label",{className:"flex flex-col gap-1 text-sm",children:[(0,t.jsx)("span",{className:"font-medium",children:e}),(0,t.jsx)(u.NativeSelect,{value:a,onChange:e=>s(e.target.value),children:n.map(e=>(0,t.jsx)("option",{value:e.value,disabled:e.disabled,children:e.label},e.value))})]})}function k({label:e,value:a,onChange:s,placeholder:n}){return(0,t.jsxs)("label",{className:"flex flex-col gap-1 text-sm",children:[(0,t.jsx)("span",{className:"font-medium",children:e}),(0,t.jsx)(c.Input,{value:a,onChange:e=>s(e.target.value),placeholder:n,className:"h-9 px-3"})]})}function N({counts:e}){return(0,t.jsx)("div",{className:"flex flex-wrap gap-2 text-[11px] text-muted-foreground pl-1",children:x.map(({key:a,label:s,emphasise:n})=>{let i=e[a]??0;return"applied"!==a&&0===i?null:(0,t.jsxs)("span",{className:n&&i>0?"text-amber-700 dark:text-amber-300":void 0,children:[i," ",s]},a)})})}e.s(["default",0,function(){let[e,c]=(0,a.useState)(null),[u,x]=(0,a.useState)(null),[j,C]=(0,a.useState)(!0),[w,_]=(0,a.useState)(!1),[E,A]=(0,a.useState)(!1),[S,O]=(0,a.useState)(null),[T,R]=(0,a.useState)(null),[D,B]=(0,a.useState)(!1),F=(0,a.useMemo)(()=>(e?.recent_runs??[]).some(e=>"running"===e.status),[e]);async function I(){C(!0),O(null);try{let e=await i.api.get("/settings/skill-curation");c(e),x(e.config)}catch(e){O((e instanceof i.ApiError,e.message))}finally{C(!1)}}(0,a.useEffect)(()=>{I()},[]);let P=(0,a.useMemo)(()=>!!e&&!!u&&JSON.stringify(e.config)!==JSON.stringify(u),[e,u]);async function L(){if(u){_(!0),O(null),R(null);try{await i.api.patch("/settings/skill-curation",u),R("Saved"),window.setTimeout(()=>R(null),2500),await I()}catch(e){O((e instanceof i.ApiError,e.message))}finally{_(!1)}}}async function G(e,t){try{await i.api.post("/skill-curation/orphans/discard",{slug:e,section_id:t}),await I()}catch(e){O((e instanceof i.ApiError,e.message))}}async function W(){A(!0),O(null),R(null);try{await i.api.post("/skill-curation/runs/manual",{}),R("Optimization started. The agent will run silently in the background."),window.setTimeout(()=>R(null),4e3),await I()}catch(e){e instanceof i.ApiError&&409===e.status?O("A run is already in flight. Wait for it to complete."):O((e instanceof i.ApiError,e.message))}finally{A(!1)}}return!j&&u&&e?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(m.PageHeader,{title:"Self-learning skill optimization",badge:(0,t.jsx)(r.Badge,{variant:"amber",children:"Preview"}),description:(0,t.jsxs)(t.Fragment,{children:["Lets the agent periodically refresh a bounded set of “knowledge map” sections inside its own skills — for example, the list of files under ",(0,t.jsx)("code",{children:"identity/"}),", the section names inside"," ",(0,t.jsx)("code",{children:"state/today.md"}),", or the routing table that decides where a fact gets written. When ON, the agent runs on the cadence below and silently applies every passing proposal; an auto-revert loop rolls back any change that introduces more drift. There is no review queue: toggling OFF stops new runs and immediately unhooks every applied overlay."]}),children:(0,t.jsxs)("p",{className:"mt-1 max-w-3xl text-sm text-muted-foreground",children:["The optimizer targets the highest-leverage skills first — the daily surface (",(0,t.jsx)("code",{children:"today"}),"), the routing for explicit user-managed apps and projects (",(0,t.jsx)("code",{children:"management-policy"}),","," ",(0,t.jsx)("code",{children:"project-doc"}),"), and the user-fact layout (",(0,t.jsx)("code",{children:"user-profile"}),"). Fine-tune this cohort under",(0,t.jsx)("span",{className:"font-medium",children:"Advanced → Per-skill exclusions"})," below."]})}),(0,t.jsxs)(l.Alert,{variant:"info",children:[(0,t.jsx)("span",{className:"text-sm font-medium",children:"Recommended only after long-term operation."})," ",(0,t.jsx)("span",{className:"text-sm text-muted-foreground",children:"The optimizer learns from accumulated signals across runs, observations, and your daily activity. Enabling on a fresh install yields little benefit and can produce churn. Wait until the agent has been running for several weeks of regular use before turning this ON."})]}),S&&(0,t.jsx)(l.Alert,{variant:"error",children:S}),T&&(0,t.jsx)(l.Alert,{variant:"success",children:T}),(0,t.jsxs)(d.Card,{className:"flex flex-col gap-3 p-4",children:[(0,t.jsx)(d.CardHeader,{className:"p-0",children:(0,t.jsx)(d.CardTitle,{className:"text-sm font-semibold",children:"Safety"})}),(0,t.jsxs)("ul",{className:"list-disc pl-5 text-xs text-muted-foreground space-y-1",children:[(0,t.jsx)("li",{children:"The optimizer runs in an isolated working directory with no Edit / Write tools and no access to your knowledge files. Its only mutation path is a typed JSON API enforced by Zod schemas."}),(0,t.jsx)("li",{children:"It can NEVER touch a skill's framework parts (API endpoints, allowed-tools, lock semantics). Only sections explicitly marked curatable are in scope, and safety-critical skills are excluded."}),(0,t.jsx)("li",{children:"Bad proposals are caught by an auto-revert loop: if the next run sees more drift after a change, the section rolls back automatically and freezes for two cycles."}),(0,t.jsx)("li",{children:"Toggling OFF below stops injecting every applied optimization immediately. Overlays stay on disk, so toggling back ON resumes them."})]})]}),(0,t.jsxs)(d.Card,{className:"flex flex-col gap-4 p-4",children:[(0,t.jsx)(d.CardHeader,{className:"p-0",children:(0,t.jsx)(d.CardTitle,{className:"text-sm font-semibold",children:"Enabled"})}),(0,t.jsx)(b,{checked:u.enabled,onChange:t=>{if(t){var a,s;x({...u,enabled:!0,excluded_skills:(a=e.eligible_skills,(s=u.excluded_skills).length>0?s:a.filter(e=>!f.includes(e)))})}else x({...u,enabled:!1})},hint:"Default OFF. While off, no new runs are scheduled and applied overlays are not injected into sessions."}),(0,t.jsx)(h.Separator,{}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-sm font-medium",children:"Cadence"}),(0,t.jsx)(y,{value:u.cadence,onChange:e=>x({...u,cadence:e}),options:[{value:"daily",label:"Daily",hint:"Tighter feedback, more cost"},{value:"weekly",label:"Weekly",hint:"Balanced default"},{value:"monthly",label:"Monthly",hint:"Minimal cost"}]})]}),(0,t.jsx)(h.Separator,{}),(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:[(0,t.jsx)(v,{label:"Execution backend",value:u.backend,onChange:e=>{x({...u,backend:e,model:g[e]})},options:s.RUNTIME_AVAILABLE_BACKEND_IDS.map(e=>{let t=(0,n.isUiPreviewOnlyBackend)(e);return{value:e,label:n.BACKEND_PROVIDER_SHORT[e]+(t?n.UI_PREVIEW_ONLY_BADGE_SUFFIX:""),disabled:t}})}),(0,t.jsx)(k,{label:"Model",value:u.model,onChange:e=>x({...u,model:e}),placeholder:g[u.backend]})]}),(0,t.jsx)(h.Separator,{}),(0,t.jsxs)(p.Collapsible,{open:D,onOpenChange:B,children:[(0,t.jsxs)(p.CollapsibleTrigger,{className:"group flex w-full items-center justify-between gap-2 text-left","aria-label":"Toggle advanced settings",children:[(0,t.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,t.jsx)("span",{className:"text-sm font-medium",children:"Advanced"}),(0,t.jsxs)("span",{className:"text-xs text-muted-foreground",children:["Override the auto-selected cohort. ",u.excluded_skills.length," skill",1===u.excluded_skills.length?"":"s"," excluded."]})]}),(0,t.jsx)("span",{"aria-hidden":!0,className:"text-xs text-muted-foreground transition-transform group-data-[state=open]:rotate-90",children:"▶"})]}),(0,t.jsxs)(p.CollapsibleContent,{className:"pt-3",children:[(0,t.jsx)("p",{className:"text-sm font-medium",children:"Per-skill exclusions"}),(0,t.jsxs)("p",{className:"text-xs text-muted-foreground pb-2",children:["Tick a skill to opt it OUT of self-learning. The cohort is built from skills that ship a ",(0,t.jsx)("code",{children:"curation.json"}),". By default, skills outside the high-impact set (",f.join(", "),") are excluded — uncheck to opt them back in."]}),(0,t.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-1.5",children:e.eligible_skills.map(e=>{let a=u.excluded_skills.includes(e),s=f.includes(e);return(0,t.jsxs)("label",{className:"flex items-center gap-2 text-sm",children:[(0,t.jsx)("input",{type:"checkbox",checked:a,onChange:()=>x({...u,excluded_skills:a?u.excluded_skills.filter(t=>t!==e):[...u.excluded_skills,e]}),className:"h-4 w-4 accent-primary"}),(0,t.jsx)("code",{className:"text-xs",children:e}),s&&(0,t.jsx)(r.Badge,{variant:"green",className:"text-[10px]",children:"recommended"})]},e)})})]})]}),(0,t.jsxs)("div",{className:"flex items-center justify-end gap-2 pt-1",children:[P&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:"Unsaved changes"}),(0,t.jsx)(o.Button,{onClick:()=>void L(),disabled:!P||w,children:w?"Saving…":"Save"})]})]}),(0,t.jsxs)(d.Card,{className:"flex flex-col gap-3 p-4",children:[(0,t.jsxs)(d.CardHeader,{className:"p-0 flex flex-row items-start justify-between gap-2",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(d.CardTitle,{className:"text-sm font-semibold",children:"Run optimization now"}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground pt-1 max-w-md",children:"Triggers a curation run immediately, skipping the cadence wait. The next scheduled run will fire one cadence interval after the manual click. Use this when you feel the agent's recall has drifted and want it to look at your knowledge layout again."})]}),(0,t.jsx)(o.Button,{onClick:()=>void W(),disabled:E||F||!u.enabled,children:E?"Starting…":F?"Run in flight":"Run now"})]}),(0,t.jsx)(h.Separator,{}),(0,t.jsx)(d.CardTitle,{className:"text-sm font-semibold pt-1",children:"Recent runs"}),0===e.recent_runs.length?(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"No curation runs yet. Once enabled, the next scheduled cadence will populate this list."}):(0,t.jsx)("ul",{className:"text-sm divide-y",children:e.recent_runs.map(e=>(0,t.jsxs)("li",{className:"py-2 flex flex-col gap-1",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsxs)("span",{className:"text-xs",children:[(0,t.jsx)("code",{children:e.id})," ",(0,t.jsx)("span",{className:"text-muted-foreground",children:"·"})," ",new Date(e.started_at).toLocaleString()," ",(0,t.jsx)("span",{className:"text-muted-foreground",children:"·"})," ",e.cadence,"/",e.backend,"/",e.model,e.is_manual&&(0,t.jsxs)(t.Fragment,{children:[" ",(0,t.jsx)(r.Badge,{variant:"blue",className:"ml-1 text-[10px]",children:"manual"})]})]}),(0,t.jsx)(r.Badge,{variant:"finalized"===e.status?"green":"gray",children:e.status})]}),(0,t.jsx)(N,{counts:e.counts??{}})]},e.id))})]}),e.orphan_overlays.length>0&&(0,t.jsxs)(d.Card,{className:"flex flex-col gap-3 p-4 border-warning",children:[(0,t.jsx)(d.CardHeader,{className:"p-0",children:(0,t.jsxs)(d.CardTitle,{className:"text-sm font-semibold",children:["Orphaned overlays (",e.orphan_overlays.length,")"]})}),(0,t.jsxs)("p",{className:"text-xs text-muted-foreground",children:["These overlays remained on disk after a framework update dropped their declaration from ",(0,t.jsx)("code",{children:"curation.json"}),". They have no effect on rendered skills — the renderer falls back to seed or empty — but discarding them keeps disk and declarations in sync. Discard is always explicit; orphans are never auto-deleted."]}),(0,t.jsx)("ul",{className:"text-sm divide-y",children:e.orphan_overlays.map(e=>(0,t.jsxs)("li",{className:"py-2 flex items-center justify-between gap-2",children:[(0,t.jsxs)("span",{className:"text-xs",children:[(0,t.jsx)("code",{children:e.slug})," / ",(0,t.jsx)("code",{children:e.section_id})," ",(0,t.jsx)("span",{className:"text-muted-foreground",children:"·"})," ",e.kind??"(unparseable)"," ",(0,t.jsx)("span",{className:"text-muted-foreground",children:"·"})," ",e.reason]}),(0,t.jsx)(o.Button,{size:"sm",variant:"outline",onClick:()=>void G(e.slug,e.section_id),children:"Discard"})]},`${e.slug}:${e.section_id}`))})]})]}):(0,t.jsx)(d.Card,{className:"p-4",children:(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:S??"Loading…"})})}])}]);
|