@aitne/dashboard 0.1.4 → 0.1.6
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 +5 -1
- package/.next/build-manifest.json +3 -3
- package/.next/cache/.tsbuildinfo +1 -1
- package/.next/diagnostics/route-bundle-stats.json +450 -356
- package/.next/fallback-build-manifest.json +3 -3
- package/.next/prerender-manifest.json +96 -0
- package/.next/routes-manifest.json +24 -0
- 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.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.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 +19 -19
- package/.next/server/app/activity.segments/_full.segment.rsc +19 -19
- 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 +2 -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/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 +19 -19
- package/.next/server/app/analytics.segments/_full.segment.rsc +19 -19
- 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 +2 -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/api/[...path]/route.js +1 -1
- package/.next/server/app/api/[...path]/route.js.nft.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 +17 -17
- package/.next/server/app/chat.segments/_full.segment.rsc +17 -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 +2 -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.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 +18 -18
- package/.next/server/app/connections/calendar.segments/_full.segment.rsc +18 -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 +2 -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.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 +16 -16
- package/.next/server/app/connections/journal.segments/_full.segment.rsc +16 -16
- 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 +2 -2
- package/.next/server/app/connections/journal.segments/connections/journal/__PAGE__.segment.rsc +2 -2
- 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/knowledge/page.js.nft.json +1 -1
- package/.next/server/app/connections/knowledge/page_client-reference-manifest.js +1 -1
- package/.next/server/app/connections/knowledge.html +1 -1
- package/.next/server/app/connections/knowledge.rsc +18 -18
- package/.next/server/app/connections/knowledge.segments/_full.segment.rsc +18 -18
- package/.next/server/app/connections/knowledge.segments/_head.segment.rsc +4 -4
- package/.next/server/app/connections/knowledge.segments/_index.segment.rsc +10 -10
- package/.next/server/app/connections/knowledge.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/connections/knowledge.segments/connections/knowledge/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/connections/knowledge.segments/connections/knowledge.segment.rsc +3 -3
- package/.next/server/app/connections/knowledge.segments/connections.segment.rsc +4 -4
- 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 +18 -18
- package/.next/server/app/connections/mail.segments/_full.segment.rsc +18 -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 +2 -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.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 +18 -18
- package/.next/server/app/connections/mcp.segments/_full.segment.rsc +18 -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 +2 -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.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 +18 -18
- package/.next/server/app/connections/messaging.segments/_full.segment.rsc +18 -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 +2 -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/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.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 +18 -18
- package/.next/server/app/connections/repositories.segments/_full.segment.rsc +18 -18
- 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 +2 -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.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 +16 -16
- package/.next/server/app/connections/routines.segments/_full.segment.rsc +16 -16
- 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 +2 -2
- package/.next/server/app/connections/routines.segments/connections/routines/__PAGE__.segment.rsc +2 -2
- 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 +16 -16
- package/.next/server/app/connections.segments/_full.segment.rsc +16 -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 +2 -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.js.nft.json +1 -1
- package/.next/server/app/conversations/[id]/page_client-reference-manifest.js +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 +15 -15
- package/.next/server/app/conversations.segments/_full.segment.rsc +15 -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 +2 -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.js.nft.json +1 -1
- package/.next/server/app/docs/[[...slug]]/page_client-reference-manifest.js +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 +17 -17
- package/.next/server/app/finance.segments/_full.segment.rsc +17 -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 +2 -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.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 +17 -17
- package/.next/server/app/git.segments/_full.segment.rsc +17 -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 +2 -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.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 +17 -17
- package/.next/server/app/health.segments/_full.segment.rsc +17 -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 +2 -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 +17 -17
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/index.segments/_full.segment.rsc +17 -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 +2 -2
- 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 +18 -18
- package/.next/server/app/knowledge.segments/_full.segment.rsc +18 -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 +2 -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.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +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 +17 -17
- package/.next/server/app/reading.segments/_full.segment.rsc +17 -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 +2 -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.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 +17 -17
- package/.next/server/app/schedule.segments/_full.segment.rsc +17 -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 +2 -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/advanced/page.js.nft.json +1 -1
- package/.next/server/app/settings/advanced/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/advanced.html +1 -1
- package/.next/server/app/settings/advanced.rsc +18 -18
- package/.next/server/app/settings/advanced.segments/_full.segment.rsc +18 -18
- package/.next/server/app/settings/advanced.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/advanced.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/advanced.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/advanced.segments/settings/advanced/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/advanced.segments/settings/advanced.segment.rsc +3 -3
- package/.next/server/app/settings/advanced.segments/settings.segment.rsc +4 -4
- package/.next/server/app/settings/backends/page.js.nft.json +1 -1
- package/.next/server/app/settings/backends/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/backends.html +1 -1
- package/.next/server/app/settings/backends.rsc +16 -16
- package/.next/server/app/settings/backends.segments/_full.segment.rsc +16 -16
- package/.next/server/app/settings/backends.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/backends.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/backends.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/backends.segments/settings/backends/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/settings/backends.segments/settings/backends.segment.rsc +3 -3
- package/.next/server/app/settings/backends.segments/settings.segment.rsc +4 -4
- 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 +18 -18
- package/.next/server/app/settings/commands.segments/_full.segment.rsc +18 -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 +2 -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/connections/page.js.nft.json +1 -1
- package/.next/server/app/settings/connections/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/connections.html +1 -1
- package/.next/server/app/settings/connections.rsc +16 -16
- package/.next/server/app/settings/connections.segments/_full.segment.rsc +16 -16
- package/.next/server/app/settings/connections.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/connections.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/connections.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/connections.segments/settings/connections/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/settings/connections.segments/settings/connections.segment.rsc +3 -3
- package/.next/server/app/settings/connections.segments/settings.segment.rsc +4 -4
- package/.next/server/app/settings/journal/page.js.nft.json +1 -1
- package/.next/server/app/settings/journal/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/journal.html +1 -1
- package/.next/server/app/settings/journal.rsc +18 -18
- package/.next/server/app/settings/journal.segments/_full.segment.rsc +18 -18
- package/.next/server/app/settings/journal.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/journal.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/journal.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/journal.segments/settings/journal/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/journal.segments/settings/journal.segment.rsc +3 -3
- package/.next/server/app/settings/journal.segments/settings.segment.rsc +4 -4
- 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 +18 -18
- package/.next/server/app/settings/management.segments/_full.segment.rsc +18 -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 +2 -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/messaging/page.js.nft.json +1 -1
- package/.next/server/app/settings/messaging/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/messaging.html +1 -1
- package/.next/server/app/settings/messaging.rsc +16 -16
- package/.next/server/app/settings/messaging.segments/_full.segment.rsc +16 -16
- package/.next/server/app/settings/messaging.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/messaging.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/messaging.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/messaging.segments/settings/messaging/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/settings/messaging.segments/settings/messaging.segment.rsc +3 -3
- package/.next/server/app/settings/messaging.segments/settings.segment.rsc +4 -4
- 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 +18 -18
- package/.next/server/app/settings/models.segments/_full.segment.rsc +18 -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 +2 -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.js.nft.json +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/processes/page.js.nft.json +1 -1
- package/.next/server/app/settings/processes/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/processes.html +1 -1
- package/.next/server/app/settings/processes.rsc +16 -16
- package/.next/server/app/settings/processes.segments/_full.segment.rsc +16 -16
- package/.next/server/app/settings/processes.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/processes.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/processes.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/processes.segments/settings/processes/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/settings/processes.segments/settings/processes.segment.rsc +3 -3
- package/.next/server/app/settings/processes.segments/settings.segment.rsc +4 -4
- package/.next/server/app/settings/routines/page.js.nft.json +1 -1
- package/.next/server/app/settings/routines/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/routines.html +1 -1
- package/.next/server/app/settings/routines.rsc +18 -18
- package/.next/server/app/settings/routines.segments/_full.segment.rsc +18 -18
- package/.next/server/app/settings/routines.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/routines.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/routines.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/routines.segments/settings/routines/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/routines.segments/settings/routines.segment.rsc +3 -3
- package/.next/server/app/settings/routines.segments/settings.segment.rsc +4 -4
- package/.next/server/app/settings/schedule/page.js.nft.json +1 -1
- package/.next/server/app/settings/schedule/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/schedule.html +1 -1
- package/.next/server/app/settings/schedule.rsc +18 -18
- package/.next/server/app/settings/schedule.segments/_full.segment.rsc +18 -18
- package/.next/server/app/settings/schedule.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/schedule.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/schedule.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/schedule.segments/settings/schedule/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/schedule.segments/settings/schedule.segment.rsc +3 -3
- package/.next/server/app/settings/schedule.segments/settings.segment.rsc +4 -4
- 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 +18 -18
- package/.next/server/app/settings/self-learning.segments/_full.segment.rsc +18 -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 +2 -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/app-paths-manifest.json +3 -0
- package/.next/server/app/settings/wiki/page/build-manifest.json +18 -0
- package/.next/server/app/settings/wiki/page/next-font-manifest.json +6 -0
- package/.next/server/app/settings/wiki/page/react-loadable-manifest.json +8 -0
- package/.next/server/app/settings/wiki/page/server-reference-manifest.json +4 -0
- package/.next/server/app/settings/wiki/page.js +16 -0
- package/.next/server/app/settings/wiki/page.js.map +5 -0
- package/.next/server/app/settings/wiki/page.js.nft.json +1 -0
- package/.next/server/app/settings/wiki/page_client-reference-manifest.js +3 -0
- package/.next/server/app/settings/wiki/timeline/page/app-paths-manifest.json +3 -0
- package/.next/server/app/settings/wiki/timeline/page/build-manifest.json +18 -0
- package/.next/server/app/settings/wiki/timeline/page/next-font-manifest.json +6 -0
- package/.next/server/app/settings/wiki/timeline/page/react-loadable-manifest.json +8 -0
- package/.next/server/app/settings/wiki/timeline/page/server-reference-manifest.json +4 -0
- package/.next/server/app/settings/wiki/timeline/page.js +17 -0
- package/.next/server/app/settings/wiki/timeline/page.js.map +5 -0
- package/.next/server/app/settings/wiki/timeline/page.js.nft.json +1 -0
- package/.next/server/app/settings/wiki/timeline/page_client-reference-manifest.js +3 -0
- package/.next/server/app/settings/wiki/timeline.html +1 -0
- package/.next/server/app/settings/wiki/timeline.meta +17 -0
- package/.next/server/app/settings/wiki/timeline.rsc +24 -0
- package/.next/server/app/settings/wiki/timeline.segments/_full.segment.rsc +24 -0
- package/.next/server/app/settings/wiki/timeline.segments/_head.segment.rsc +6 -0
- package/.next/server/app/settings/wiki/timeline.segments/_index.segment.rsc +11 -0
- package/.next/server/app/settings/wiki/timeline.segments/_tree.segment.rsc +2 -0
- package/.next/server/app/settings/wiki/timeline.segments/settings/wiki/timeline/__PAGE__.segment.rsc +6 -0
- package/.next/server/app/settings/wiki/timeline.segments/settings/wiki/timeline.segment.rsc +5 -0
- package/.next/server/app/settings/wiki/timeline.segments/settings/wiki.segment.rsc +5 -0
- package/.next/server/app/settings/wiki/timeline.segments/settings.segment.rsc +5 -0
- package/.next/server/app/settings/wiki.html +1 -0
- package/.next/server/app/settings/wiki.meta +16 -0
- package/.next/server/app/settings/wiki.rsc +27 -0
- package/.next/server/app/settings/wiki.segments/_full.segment.rsc +27 -0
- package/.next/server/app/settings/wiki.segments/_head.segment.rsc +6 -0
- package/.next/server/app/settings/wiki.segments/_index.segment.rsc +11 -0
- package/.next/server/app/settings/wiki.segments/_tree.segment.rsc +2 -0
- package/.next/server/app/settings/wiki.segments/settings/wiki/__PAGE__.segment.rsc +9 -0
- package/.next/server/app/settings/wiki.segments/settings/wiki.segment.rsc +5 -0
- package/.next/server/app/settings/wiki.segments/settings.segment.rsc +5 -0
- package/.next/server/app/settings.html +1 -1
- package/.next/server/app/settings.rsc +18 -18
- package/.next/server/app/settings.segments/_full.segment.rsc +18 -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 +2 -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.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 +17 -17
- package/.next/server/app/setup.segments/_full.segment.rsc +17 -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 +2 -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.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 +17 -17
- package/.next/server/app/trip.segments/_full.segment.rsc +17 -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 +2 -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/app-paths-manifest.json +3 -0
- package/.next/server/app/wiki/page/build-manifest.json +18 -0
- package/.next/server/app/wiki/page/next-font-manifest.json +6 -0
- package/.next/server/app/wiki/page/react-loadable-manifest.json +8 -0
- package/.next/server/app/wiki/page/server-reference-manifest.json +4 -0
- package/.next/server/app/wiki/page.js +15 -0
- package/.next/server/app/wiki/page.js.map +5 -0
- package/.next/server/app/wiki/page.js.nft.json +1 -0
- package/.next/server/app/wiki/page_client-reference-manifest.js +3 -0
- package/.next/server/app/wiki/timeline/page/app-paths-manifest.json +3 -0
- package/.next/server/app/wiki/timeline/page/build-manifest.json +18 -0
- package/.next/server/app/wiki/timeline/page/next-font-manifest.json +6 -0
- package/.next/server/app/wiki/timeline/page/react-loadable-manifest.json +8 -0
- package/.next/server/app/wiki/timeline/page/server-reference-manifest.json +4 -0
- package/.next/server/app/wiki/timeline/page.js +15 -0
- package/.next/server/app/wiki/timeline/page.js.map +5 -0
- package/.next/server/app/wiki/timeline/page.js.nft.json +1 -0
- package/.next/server/app/wiki/timeline/page_client-reference-manifest.js +3 -0
- package/.next/server/app/wiki/timeline.html +1 -0
- package/.next/server/app/wiki/timeline.meta +16 -0
- package/.next/server/app/wiki/timeline.rsc +26 -0
- package/.next/server/app/wiki/timeline.segments/_full.segment.rsc +26 -0
- package/.next/server/app/wiki/timeline.segments/_head.segment.rsc +6 -0
- package/.next/server/app/wiki/timeline.segments/_index.segment.rsc +11 -0
- package/.next/server/app/wiki/timeline.segments/_tree.segment.rsc +2 -0
- package/.next/server/app/wiki/timeline.segments/wiki/timeline/__PAGE__.segment.rsc +9 -0
- package/.next/server/app/wiki/timeline.segments/wiki/timeline.segment.rsc +5 -0
- package/.next/server/app/wiki/timeline.segments/wiki.segment.rsc +5 -0
- package/.next/server/app/wiki.html +1 -0
- package/.next/server/app/wiki.meta +15 -0
- package/.next/server/app/wiki.rsc +26 -0
- package/.next/server/app/wiki.segments/_full.segment.rsc +26 -0
- package/.next/server/app/wiki.segments/_head.segment.rsc +6 -0
- package/.next/server/app/wiki.segments/_index.segment.rsc +11 -0
- package/.next/server/app/wiki.segments/_tree.segment.rsc +2 -0
- package/.next/server/app/wiki.segments/wiki/__PAGE__.segment.rsc +9 -0
- package/.next/server/app/wiki.segments/wiki.segment.rsc +5 -0
- package/.next/server/app-paths-manifest.json +5 -1
- package/.next/server/chunks/0z~i_next_dist_esm_build_templates_app-route_0o_o_hp.js +1 -1
- package/.next/server/chunks/0z~i_next_dist_esm_build_templates_app-route_0o_o_hp.js.map +1 -1
- package/.next/server/chunks/{[root-of-the-server]__00gp8gz._.js → [root-of-the-server]__01knfi.._.js} +1 -1
- package/.next/server/chunks/{[root-of-the-server]__0-0wgko._.js → [root-of-the-server]__08_s4yo._.js} +2 -2
- package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_wiki_timeline_page_actions_0czqn6z.js +3 -0
- package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_wiki_timeline_page_actions_0czqn6z.js.map +1 -0
- package/.next/server/chunks/ssr/0mzu_lucide-react_dist_esm_icons_zap_115-27i.js +3 -0
- package/.next/server/chunks/ssr/0mzu_lucide-react_dist_esm_icons_zap_115-27i.js.map +1 -0
- package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0k3x-na.js +4 -0
- package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0k3x-na.js.map +1 -0
- package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0km22.v.js +4 -0
- package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0km22.v.js.map +1 -0
- package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0vui1gx.js +4 -0
- package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0vui1gx.js.map +1 -0
- package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_11h319t.js +4 -0
- package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_11h319t.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__007ymqm._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__007ymqm._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__00vjce2._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__00vjce2._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__07pkvm3._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__07pkvm3._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0dfuz7_._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0dfuz7_._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__117dw_l._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__117dw_l._.js.map +1 -0
- package/.next/server/chunks/ssr/_0-3uzu1._.js +3 -0
- package/.next/server/chunks/ssr/_0-3uzu1._.js.map +1 -0
- package/.next/server/chunks/ssr/_0-6jgyg._.js +3 -0
- package/.next/server/chunks/ssr/_0-6jgyg._.js.map +1 -0
- package/.next/server/chunks/ssr/_0-fv_sr._.js +1 -1
- package/.next/server/chunks/ssr/_0-fv_sr._.js.map +1 -1
- package/.next/server/chunks/ssr/_0.7pki~._.js +3 -0
- package/.next/server/chunks/ssr/_0.7pki~._.js.map +1 -0
- package/.next/server/chunks/ssr/_02s86rg._.js +3 -0
- package/.next/server/chunks/ssr/_02s86rg._.js.map +1 -0
- package/.next/server/chunks/ssr/_03bq.de._.js +3 -0
- package/.next/server/chunks/ssr/_03bq.de._.js.map +1 -0
- package/.next/server/chunks/ssr/_03u6ja0._.js +3 -0
- package/.next/server/chunks/ssr/_03u6ja0._.js.map +1 -0
- package/.next/server/chunks/ssr/_04-.z69._.js +3 -0
- package/.next/server/chunks/ssr/_04-.z69._.js.map +1 -0
- package/.next/server/chunks/ssr/_05rlac0._.js +3 -0
- package/.next/server/chunks/ssr/_05rlac0._.js.map +1 -0
- package/.next/server/chunks/ssr/_05xysbw._.js +3 -0
- package/.next/server/chunks/ssr/_05xysbw._.js.map +1 -0
- package/.next/server/chunks/ssr/_09e_66m._.js +3 -0
- package/.next/server/chunks/ssr/_09e_66m._.js.map +1 -0
- package/.next/server/chunks/ssr/_0_bnan9._.js +3 -0
- package/.next/server/chunks/ssr/_0_bnan9._.js.map +1 -0
- package/.next/server/chunks/ssr/_0b00io4._.js +3 -0
- package/.next/server/chunks/ssr/_0b00io4._.js.map +1 -0
- package/.next/server/chunks/ssr/_0es_2i2._.js +3 -0
- package/.next/server/chunks/ssr/_0es_2i2._.js.map +1 -0
- package/.next/server/chunks/ssr/_0g7_r5i._.js +3 -0
- package/.next/server/chunks/ssr/_0g7_r5i._.js.map +1 -0
- package/.next/server/chunks/ssr/_0hojxqy._.js +1 -1
- package/.next/server/chunks/ssr/_0hojxqy._.js.map +1 -1
- package/.next/server/chunks/ssr/_0ifb9jm._.js +3 -0
- package/.next/server/chunks/ssr/_0ifb9jm._.js.map +1 -0
- package/.next/server/chunks/ssr/_0jl_-u5._.js +3 -0
- package/.next/server/chunks/ssr/_0jl_-u5._.js.map +1 -0
- package/.next/server/chunks/ssr/_0lfuvjg._.js +3 -0
- package/.next/server/chunks/ssr/_0lfuvjg._.js.map +1 -0
- package/.next/server/chunks/ssr/{_0jm~wn-._.js → _0mp7n5i._.js} +2 -2
- package/.next/server/chunks/ssr/{_0jm~wn-._.js.map → _0mp7n5i._.js.map} +1 -1
- package/.next/server/chunks/ssr/_0powsoh._.js +3 -0
- package/.next/server/chunks/ssr/_0powsoh._.js.map +1 -0
- package/.next/server/chunks/ssr/_0q34y9l._.js +3 -0
- package/.next/server/chunks/ssr/_0q34y9l._.js.map +1 -0
- package/.next/server/chunks/ssr/_0q4rpi-._.js +5 -0
- package/.next/server/chunks/ssr/_0q4rpi-._.js.map +1 -0
- package/.next/server/chunks/ssr/_0rc-7d4._.js +3 -0
- package/.next/server/chunks/ssr/_0rc-7d4._.js.map +1 -0
- package/.next/server/chunks/ssr/_0tjsh16._.js +3 -0
- package/.next/server/chunks/ssr/_0tjsh16._.js.map +1 -0
- package/.next/server/chunks/ssr/_0tl98en._.js +1 -1
- package/.next/server/chunks/ssr/_0tl98en._.js.map +1 -1
- package/.next/server/chunks/ssr/{_0._ysx3._.js → _0v_6ros._.js} +2 -2
- package/.next/server/chunks/ssr/_0v_6ros._.js.map +1 -0
- package/.next/server/chunks/ssr/_0vncjim._.js +3 -0
- package/.next/server/chunks/ssr/_0vncjim._.js.map +1 -0
- package/.next/server/chunks/ssr/_0vx-jgf._.js +3 -0
- package/.next/server/chunks/ssr/_0vx-jgf._.js.map +1 -0
- package/.next/server/chunks/ssr/_0w1ez1p._.js +3 -0
- package/.next/server/chunks/ssr/_0w1ez1p._.js.map +1 -0
- package/.next/server/chunks/ssr/_0yl49yk._.js +3 -0
- package/.next/server/chunks/ssr/_0yl49yk._.js.map +1 -0
- package/.next/server/chunks/ssr/_0z1ah9x._.js +1 -1
- package/.next/server/chunks/ssr/_0z1ah9x._.js.map +1 -1
- package/.next/server/chunks/ssr/_0z9ikwn._.js +3 -0
- package/.next/server/chunks/ssr/_0z9ikwn._.js.map +1 -0
- package/.next/server/chunks/ssr/_0z_cp12._.js +3 -0
- package/.next/server/chunks/ssr/_0z_cp12._.js.map +1 -0
- package/.next/server/chunks/ssr/_10hvwg5._.js +3 -0
- package/.next/server/chunks/ssr/_10hvwg5._.js.map +1 -0
- package/.next/server/chunks/ssr/packages_dashboard__next-internal_server_app_settings_wiki_page_actions_12d~w9l.js +3 -0
- package/.next/server/chunks/ssr/packages_dashboard__next-internal_server_app_settings_wiki_page_actions_12d~w9l.js.map +1 -0
- package/.next/server/chunks/ssr/packages_dashboard__next-internal_server_app_wiki_page_actions_026bi.d.js +3 -0
- package/.next/server/chunks/ssr/packages_dashboard__next-internal_server_app_wiki_page_actions_026bi.d.js.map +1 -0
- package/.next/server/chunks/ssr/packages_dashboard__next-internal_server_app_wiki_timeline_page_actions_06jb4gg.js +3 -0
- package/.next/server/chunks/ssr/packages_dashboard__next-internal_server_app_wiki_timeline_page_actions_06jb4gg.js.map +1 -0
- package/.next/server/chunks/ssr/packages_dashboard_src_0bx940s._.js +3 -0
- package/.next/server/chunks/ssr/packages_dashboard_src_0bx940s._.js.map +1 -0
- package/.next/server/chunks/ssr/packages_dashboard_src_0fo7nqq._.js +3 -0
- package/.next/server/chunks/ssr/packages_dashboard_src_0fo7nqq._.js.map +1 -0
- package/.next/server/chunks/ssr/packages_dashboard_src_0uxs9-.._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_0uxs9-.._.js.map +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_activity_page_tsx_08yep46._.js.map +1 -1
- 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_connections_repositories_page_tsx_08y6paq._.js.map +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_git_page_tsx_0ah19-6._.js.map +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_schedule_page_tsx_0znc404._.js.map +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_models_page_tsx_0djsx88._.js.map +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_schedule_page_tsx_0b8zr2l._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_schedule_page_tsx_0b8zr2l._.js.map +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_wiki_page_tsx_0..1tkb._.js +3 -0
- package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_wiki_page_tsx_0..1tkb._.js.map +1 -0
- package/.next/server/chunks/ssr/packages_dashboard_src_app_setup_page_tsx_06k3via._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_setup_page_tsx_06k3via._.js.map +1 -1
- 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_connections_slack-card_tsx_0mahejj._.js.map +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_components_settings_backend-settings_tsx_0i-tp_u._.js +3 -0
- package/.next/server/chunks/ssr/packages_dashboard_src_components_settings_backend-settings_tsx_0i-tp_u._.js.map +1 -0
- package/.next/server/chunks/ssr/packages_shared_dist_index_0kuvow-.js +1 -1
- package/.next/server/chunks/ssr/packages_shared_dist_index_0kuvow-.js.map +1 -1
- package/.next/server/middleware/middleware-manifest.json +1 -1
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/middleware-manifest.json +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/static/chunks/01yix41q.0970.js +1 -0
- package/.next/static/chunks/02qjylw4yp63l.js +1 -0
- package/.next/static/chunks/06y2ddf5x9x_4.js +1 -0
- package/.next/static/chunks/{0ztl~44vjnpe1.js → 08ie9t4zn6n4-.js} +1 -1
- package/.next/static/chunks/091khs5zza4_4.js +1 -0
- package/.next/static/chunks/{0~_56pt8wsmeo.js → 0abhg-m1-acdb.js} +1 -1
- package/.next/static/chunks/0ae.1upy09t--.js +1 -0
- package/.next/static/chunks/0bvcd~k.vfro8.js +1 -0
- package/.next/static/chunks/{0g6.0r0i-wyeg.js → 0eqm47_oikj36.js} +1 -1
- package/.next/static/chunks/0fqugh~hv4my1.js +1 -0
- package/.next/static/chunks/0has04tc4mrik.js +1 -0
- package/.next/static/chunks/0huynm-qbj26k.js +1 -0
- package/.next/static/chunks/0ibq4zul6305p.js +1 -0
- package/.next/static/chunks/0jm_e6e6n~rdn.js +1 -0
- package/.next/static/chunks/0k0.4cksmybb2.js +1 -0
- package/.next/static/chunks/0l07yrtw3fxp5.js +1 -0
- package/.next/static/chunks/0nhqu-sq045x7.js +1 -0
- package/.next/static/chunks/0op3oc-if6n5-.js +3 -0
- package/.next/static/chunks/0p34n6.st3s~1.js +1 -0
- package/.next/static/chunks/0r8nosw42e2m9.js +1 -0
- package/.next/static/chunks/0shx3_mxukfhr.js +1 -0
- package/.next/static/chunks/0thm~t5g5adz1.js +1 -0
- package/.next/static/chunks/0thyr1cngc-j..css +1 -0
- package/.next/static/chunks/0ttdb_354lh4t.js +1 -0
- package/.next/static/chunks/0v..ut2v38yep.js +1 -0
- package/.next/static/chunks/{17npklzvg8-~3.js → 0vhj0k-zy6jhh.js} +1 -1
- package/.next/static/chunks/0wdx410~0~gmn.js +1 -0
- package/.next/static/chunks/0y3ptqa0bbi-h.js +1 -0
- package/.next/static/chunks/{0zbxi2grjtx.c.js → 0zx_~u_zxg_7e.js} +1 -1
- package/.next/static/chunks/{0f3kjzb~5zhc~.js → 10pq~97vgkzro.js} +1 -1
- package/.next/static/chunks/11hlk6.h1of0y.js +1 -0
- package/.next/static/chunks/13w_6v~nprp8j.js +11 -0
- package/.next/static/chunks/14-kkni6ecqaw.js +1 -0
- package/.next/static/chunks/{148a9fv~bo0gq.js → 1555iv~_t.1lp.js} +1 -1
- package/.next/static/chunks/{04bbme2th8s1_.js → 15ec5~pa1pv_z.js} +1 -1
- package/.next/static/chunks/15vc-857cdedi.js +1 -0
- package/.next/static/chunks/16zgco6hwlr-n.js +1 -0
- package/.next/types/routes.d.ts +5 -1
- package/.next/types/validator.ts +36 -0
- package/package.json +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__02idks~._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__02idks~._.js.map +0 -1
- package/.next/server/chunks/ssr/_0-8__9s._.js +0 -3
- package/.next/server/chunks/ssr/_0-8__9s._.js.map +0 -1
- package/.next/server/chunks/ssr/_0._ysx3._.js.map +0 -1
- package/.next/server/chunks/ssr/_0.h-tj4._.js +0 -3
- package/.next/server/chunks/ssr/_0.h-tj4._.js.map +0 -1
- package/.next/server/chunks/ssr/_02g4o18._.js +0 -3
- package/.next/server/chunks/ssr/_02g4o18._.js.map +0 -1
- package/.next/server/chunks/ssr/_0463dg_._.js +0 -3
- package/.next/server/chunks/ssr/_0463dg_._.js.map +0 -1
- package/.next/server/chunks/ssr/_04a42pa._.js +0 -3
- package/.next/server/chunks/ssr/_04a42pa._.js.map +0 -1
- package/.next/server/chunks/ssr/_04kt9.8._.js +0 -3
- package/.next/server/chunks/ssr/_04kt9.8._.js.map +0 -1
- package/.next/server/chunks/ssr/_052zlig._.js +0 -3
- package/.next/server/chunks/ssr/_052zlig._.js.map +0 -1
- package/.next/server/chunks/ssr/_060itkv._.js +0 -3
- package/.next/server/chunks/ssr/_060itkv._.js.map +0 -1
- package/.next/server/chunks/ssr/_07p0n9g._.js +0 -3
- package/.next/server/chunks/ssr/_07p0n9g._.js.map +0 -1
- package/.next/server/chunks/ssr/_08mbdt1._.js +0 -3
- package/.next/server/chunks/ssr/_08mbdt1._.js.map +0 -1
- package/.next/server/chunks/ssr/_08r_qwd._.js +0 -3
- package/.next/server/chunks/ssr/_08r_qwd._.js.map +0 -1
- package/.next/server/chunks/ssr/_08xk3kp._.js +0 -3
- package/.next/server/chunks/ssr/_08xk3kp._.js.map +0 -1
- package/.next/server/chunks/ssr/_0938p.1._.js +0 -3
- package/.next/server/chunks/ssr/_0938p.1._.js.map +0 -1
- package/.next/server/chunks/ssr/_0afdsbz._.js +0 -3
- package/.next/server/chunks/ssr/_0afdsbz._.js.map +0 -1
- package/.next/server/chunks/ssr/_0ff5qav._.js +0 -3
- package/.next/server/chunks/ssr/_0ff5qav._.js.map +0 -1
- package/.next/server/chunks/ssr/_0gp8d.p._.js +0 -3
- package/.next/server/chunks/ssr/_0gp8d.p._.js.map +0 -1
- package/.next/server/chunks/ssr/_0k2j6-t._.js +0 -3
- package/.next/server/chunks/ssr/_0k2j6-t._.js.map +0 -1
- package/.next/server/chunks/ssr/_0mix09j._.js +0 -3
- package/.next/server/chunks/ssr/_0mix09j._.js.map +0 -1
- package/.next/server/chunks/ssr/_0mk7dqt._.js +0 -3
- package/.next/server/chunks/ssr/_0mk7dqt._.js.map +0 -1
- package/.next/server/chunks/ssr/_0n168uk._.js +0 -3
- package/.next/server/chunks/ssr/_0n168uk._.js.map +0 -1
- package/.next/server/chunks/ssr/_0nwg6lo._.js +0 -3
- package/.next/server/chunks/ssr/_0nwg6lo._.js.map +0 -1
- package/.next/server/chunks/ssr/_0pwd-nz._.js +0 -3
- package/.next/server/chunks/ssr/_0pwd-nz._.js.map +0 -1
- package/.next/server/chunks/ssr/_0rspzax._.js +0 -3
- package/.next/server/chunks/ssr/_0rspzax._.js.map +0 -1
- package/.next/server/chunks/ssr/_0t-2u_i._.js +0 -3
- package/.next/server/chunks/ssr/_0t-2u_i._.js.map +0 -1
- package/.next/server/chunks/ssr/_0vn5_62._.js +0 -5
- package/.next/server/chunks/ssr/_0vn5_62._.js.map +0 -1
- package/.next/server/chunks/ssr/_0yiz~s5._.js +0 -3
- package/.next/server/chunks/ssr/_0yiz~s5._.js.map +0 -1
- package/.next/server/chunks/ssr/_0~4ta0s._.js +0 -3
- package/.next/server/chunks/ssr/_0~4ta0s._.js.map +0 -1
- package/.next/server/chunks/ssr/_0~5r_8s._.js +0 -3
- package/.next/server/chunks/ssr/_0~5r_8s._.js.map +0 -1
- package/.next/server/chunks/ssr/_115_o9h._.js +0 -3
- package/.next/server/chunks/ssr/_115_o9h._.js.map +0 -1
- package/.next/server/chunks/ssr/_13mk_9n._.js +0 -3
- package/.next/server/chunks/ssr/_13mk_9n._.js.map +0 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_07.4ogy._.js +0 -3
- package/.next/server/chunks/ssr/packages_dashboard_src_07.4ogy._.js.map +0 -1
- package/.next/static/chunks/00p2fat~wl7uz.js +0 -1
- package/.next/static/chunks/07aksg8x5r0d9.js +0 -1
- package/.next/static/chunks/082cjr-p4ubw7.js +0 -1
- package/.next/static/chunks/09hewwcw-ts34.js +0 -1
- package/.next/static/chunks/09j~fmfefj03i.js +0 -1
- package/.next/static/chunks/0adfy5uyh_8c8.js +0 -1
- package/.next/static/chunks/0agoryx~xvt31.js +0 -1
- package/.next/static/chunks/0aoci_z-c0ele.css +0 -1
- package/.next/static/chunks/0atsym5j2dgzw.js +0 -1
- package/.next/static/chunks/0b3tta7tnnbur.js +0 -1
- package/.next/static/chunks/0d02.lqlwe9a_.js +0 -1
- package/.next/static/chunks/0eqyosc.qae5n.js +0 -1
- package/.next/static/chunks/0kkrrex6qm68-.js +0 -1
- package/.next/static/chunks/0lfxqap3b6sar.js +0 -11
- package/.next/static/chunks/0ord2b6oqi.3g.js +0 -1
- package/.next/static/chunks/0rh-ee9ky1ybq.js +0 -1
- package/.next/static/chunks/0t5v~o90gn66f.js +0 -1
- package/.next/static/chunks/0vaymprggmdwi.js +0 -3
- package/.next/static/chunks/0x2vder5-rzy3.js +0 -1
- package/.next/static/chunks/0yk64vsbmwqd8.js +0 -1
- package/.next/static/chunks/0yvzj34_7s6kb.js +0 -1
- package/.next/static/chunks/104za._t2qmr8.js +0 -1
- package/.next/static/chunks/13pe2-ed6nel..js +0 -1
- package/.next/static/chunks/13zn61okwjlyn.js +0 -1
- package/.next/static/chunks/153hm0-366-at.js +0 -1
- package/.next/static/chunks/16k3_-6f7kx97.js +0 -1
- package/.next/static/chunks/18904zqns5ncn.js +0 -1
- package/.next/trace +0 -2
- package/.next/trace-build +0 -1
- /package/.next/server/chunks/{[root-of-the-server]__00gp8gz._.js.map → [root-of-the-server]__01knfi.._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__0-0wgko._.js.map → [root-of-the-server]__08_s4yo._.js.map} +0 -0
- /package/.next/static/{CDXVH-99b-ZdHz0Rd9pr_ → lsV2FU1YUtwJPmeiim7tk}/_buildManifest.js +0 -0
- /package/.next/static/{CDXVH-99b-ZdHz0Rd9pr_ → lsV2FU1YUtwJPmeiim7tk}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{CDXVH-99b-ZdHz0Rd9pr_ → lsV2FU1YUtwJPmeiim7tk}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
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)(""),[S,w]=(0,i.useState)(!1),[C,b]=(0,i.useState)(null),[k,N]=(0,i.useState)(null),[A,M]=(0,i.useState)(null),[B,T]=(0,i.useState)(null),[E,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()=>{w(!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{w(!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);T(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"===E,onClick:async()=>{R("manifest"),b(null);try{let e=await l.api.get("/messaging/slack/manifest");M(e),window.open(e.createAppUrl,"_blank","noopener")}catch(e){b(e instanceof Error?e.message:"Failed to load manifest")}finally{R(null)}},children:"manifest"===E?"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:S,onClick:G,children:S?"Saving...":"Save"}),(0,a.jsx)(o.Button,{size:"sm",variant:"outline",disabled:"test"===E,onClick:I,children:"test"===E?"Testing...":"Test token"})]}),B&&(0,a.jsxs)("p",{className:"text-xs text-emerald-700 dark:text-emerald-300",children:["✓ Bot: ",(0,a.jsx)("code",{className:"font-mono",children:B.botName}),B.team&&(0,a.jsxs)(a.Fragment,{children:[" · workspace: ",(0,a.jsx)("code",{className:"font-mono",children:B.team})]}),B.botUserId&&(0,a.jsxs)(a.Fragment,{children:[" · id: ",(0,a.jsx)("code",{className:"font-mono",children:B.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"===E,title:e.slackConfigured?void 0:"Save your tokens first",onClick:K,children:"pair"===E?"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),[S,w]=(0,i.useState)(null),[C,b]=(0,i.useState)(null),[k,N]=(0,i.useState)(null),[A,M]=(0,i.useState)(null),[B,T]=(0,i.useState)(null),E=r("/messaging/telegram/pairing-status",e=>e.paired);if(!e||!m)return null;let R=async()=>{j(!0),w(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){w(e instanceof Error?e.message:"Failed to save")}finally{j(!1)}},P=async()=>{M("test"),w(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){w(e instanceof Error?e.message:"Token test failed")}finally{M(null)}},D=async()=>{M("pair"),w(null);try{let e=await l.api.post("/messaging/telegram/start-pairing");T(e),E.start()}catch(e){w(e instanceof Error?e.message:"Failed to start pairing")}finally{M(null)}},U=async()=>{E.reset(),T(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:[S&&(0,a.jsx)(c.Alert,{variant:"error",children:S}),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"}),B&&(0,a.jsx)(o.Button,{size:"sm",variant:"ghost",onClick:U,children:"Cancel"})]}),B&&(0,a.jsxs)("div",{className:"flex flex-col items-center gap-2 rounded-lg bg-muted p-4",children:[(0,a.jsx)("img",{src:B.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:["@",B.botUsername]})," and send the pairing token automatically."]}),(0,a.jsx)("a",{className:"text-xs underline",href:B.deepLink,target:"_blank",rel:"noopener noreferrer",children:"Or open the link directly"})]}),E.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:E.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),[S,w]=(0,i.useState)(null),[C,b]=(0,i.useState)(null),[k,N]=(0,i.useState)(null),[A,M]=(0,i.useState)(null),[B,T]=(0,i.useState)(null),E=r("/messaging/discord/pairing-status",e=>e.paired||!e.pairingActive);if(E.status?.paired&&B&&T(null),E.status&&!E.status.pairingActive&&B&&T(null),!e||!m)return null;let R=async()=>{j(!0),w(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){w(e instanceof Error?e.message:"Failed to save")}finally{j(!1)}},P=async()=>{M("test"),w(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){w(e instanceof Error?e.message:"Token test failed")}finally{M(null)}},D=async()=>{M("pair"),w(null);try{let e=await l.api.post("/messaging/discord/start-pairing");T(e),E.start()}catch(e){w(e instanceof Error?e.message:"Failed to start pairing")}finally{M(null)}},U=async()=>{E.reset(),T(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:[S&&(0,a.jsx)(c.Alert,{variant:"error",children:S}),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"}),E.active&&(0,a.jsx)(o.Button,{size:"sm",variant:"ghost",onClick:U,children:"Cancel"})]}),B&&(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:B.phrase}),(0,a.jsxs)("p",{className:"mt-2 text-[11px] text-muted-foreground",children:["Expires ",new Date(B.expiresAt).toLocaleTimeString()," · punctuation and case are ignored."]})]}),E.status&&(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:E.status.paired?(0,a.jsxs)(a.Fragment,{children:["✓ Owner paired: ",(0,a.jsx)("code",{className:"font-mono",children:E.status.ownerUserId})]}):E.active?"Waiting for the phrase...":null})]})]})})}],45764);var y=e.i(58436),j=e.i(57628),S=e.i(10427);let w=[{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(w.map(e=>[e.iso2,e]));function b(e){return C.get(e.toUpperCase())}let k={1:"US",7:"RU"},N=[...w].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 M(e,a){let i=e.replace(/^\+/,"").replace(/\D/g,"");return i.startsWith(a.dial)?i.slice(a.dial.length):i}function B(e,a){let i=a.replace(/\D/g,"");return`+${e.dial}${i}`}function T({value:e,onChange:t,placeholder:s="Subscriber number",defaultCountryIso2:n="US",disabled:l,id:r}){let o=(0,i.useMemo)(()=>A(e)??b(n)??w[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=M(e,c);return(0,a.jsxs)("div",{className:"flex items-stretch gap-2",children:[(0,a.jsxs)(S.Select,{value:c.iso2,onValueChange:e=>{let a=b(e);a&&(m(a),t(B(a,u)))},disabled:l,children:[(0,a.jsx)(S.SelectTrigger,{className:"w-[140px] flex-shrink-0","aria-label":"Country code",children:(0,a.jsx)(S.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)(S.SelectContent,{className:"max-h-[320px]",children:w.map(e=>(0,a.jsx)(S.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(B(a,M(e,a)));return}}t(B(c,e))})(e.target.value),disabled:l,className:"flex-1"})]})}let E=(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,S]=(0,i.useState)(null),[w,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.")},M=async()=>{S("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{S(null)}},B=async()=>{S("config");try{await A({...p?{whatsappOwnerPhone:p}:{},...x?{whatsappAuthDir:x}:{}})}catch(e){C(e instanceof Error?e.message:"Failed to save")}finally{S(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=N.status;return(0,a.jsx)(g.ConnectionCard,{name:"WhatsApp",icon:(0,a.jsx)(E,{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:[w&&(0,a.jsx)(c.Alert,{variant:"error",children:w}),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:M,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)(T,{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:B,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"}),N.active&&(0,a.jsx)(o.Button,{size:"sm",variant:"ghost",onClick:()=>N.reset(),children:"Stop polling"})]}),D&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(j.Separator,{}),(0,a.jsxs)("div",{className:"space-y-3",children:[D.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:D.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"===D.state?"WhatsApp is paired and connected.":"connecting"===D.state?"Connecting to WhatsApp...":"awaiting_qr"===D.state?"Generating QR code...":"logged_out"===D.state?"Session logged out — click Pair device to start over.":"Waiting for QR code..."}),D.error&&(0,a.jsx)(c.Alert,{variant:"error",children:D.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 one request can override the destination 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
|
+
(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 one request can override the destination 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 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,58436,e=>{"use strict";var t=e.i(54710),a=e.i(34416),r=e.i(55575),n=e.i(72740),i=e.i(20014),s=e.i(8652),l=e.i(66127),o=e.i(81471);e.s(["DirectoryPickerField",0,function({id:e,value:d,onChange:u,title:c,placeholder:h="Choose a folder...",defaultPath:m,disabled:x=!1,className:p,inputClassName:f,buttonLabel:g="Choose"}){let[y,v]=(0,a.useState)(!1),[b,j]=(0,a.useState)(null),N=async()=>{v(!0),j(null);try{let e=await (0,l.pickDirectoryFromDesktop)({title:c,defaultPath:d.trim()||m});e&&u(e)}catch(e){j(e instanceof Error?e.message:"Folder picker is unavailable.")}finally{v(!1)}};return(0,t.jsxs)("div",{className:(0,o.cn)("space-y-1",p),children:[(0,t.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row",children:[(0,t.jsx)(s.Input,{id:e,value:d,onChange:e=>{u(e.target.value),j(null)},placeholder:h,className:(0,o.cn)("font-mono text-sm",f),disabled:x||y}),(0,t.jsxs)(i.Button,{type:"button",variant:"outline",onClick:N,disabled:x||y,className:"shrink-0 gap-2",children:[y?(0,t.jsx)(n.Loader2,{className:"h-4 w-4 animate-spin"}):(0,t.jsx)(r.FolderOpen,{className:"h-4 w-4"}),y?"Opening...":g]})]}),b&&(0,t.jsx)("p",{className:"text-xs text-destructive",children:b})]})}])},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)},74490,e=>{"use strict";var t=e.i(54710),a=e.i(81471);let r=(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,...s}){return(0,t.jsx)("div",{className:(0,a.cn)(r({tone:n,interactive:i}),e),...s})},"CardHeader",0,function({className:e,...r}){return(0,t.jsx)("div",{className:(0,a.cn)("mb-3 flex items-center justify-between",e),...r})},"CardStatLabel",0,function({className:e,...r}){return(0,t.jsx)("h3",{className:(0,a.cn)("text-sm font-medium text-muted-foreground",e),...r})},"CardTitle",0,function({className:e,...r}){return(0,t.jsx)("h3",{className:(0,a.cn)("text-lg font-semibold text-foreground",e),...r})},"CardValue",0,function({className:e,...r}){return(0,t.jsx)("div",{className:(0,a.cn)("text-3xl font-bold text-foreground",e),...r})}])},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)},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 a({title:e,defaultPath:r}){let n=await t.api.post("/system/pick-directory",{title:e,...r?{defaultPath:r}:{}});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,a])},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),a=e.i(25795),r=e.i(10628);e.s(["RestartRequiredBadge",0,function(){return(0,t.jsxs)(r.Tooltip,{children:[(0,t.jsx)(r.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)(a.RotateCcw,{className:"h-2.5 w-2.5"}),"restart"]})}),(0,t.jsx)(r.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),a=e.i(7771),r=e.i(95486),n=e.i(8011),i=e.i(10628),s=e.i(81471);e.s(["DocsHelpInline",0,function({docId:e,anchor:l=null,label:o,className:d}){let u=(0,r.useQueryClient)(),c=o??"Help";return(0,t.jsx)(i.TooltipProvider,{delayDuration:300,children:(0,t.jsxs)(i.Tooltip,{children:[(0,t.jsx)(i.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:t=>{t.preventDefault(),t.stopPropagation(),(0,n.openDocsHelpSlideover)(u,{docId:e,anchor:l,autoFocusComposer:!1})},className:(0,s.cn)("inline-flex h-5 w-5 items-center justify-center rounded-full text-muted-foreground/70 transition hover:bg-accent hover:text-foreground",d),"aria-label":`Open help — ${c}`,"data-testid":"docs-help-inline",children:(0,t.jsx)(a.HelpCircle,{className:"h-3.5 w-3.5","aria-hidden":"true"})})}),(0,t.jsx)(i.TooltipContent,{side:"top",children:(0,t.jsx)("span",{children:c})})]})})}])},88,e=>{"use strict";var t=e.i(54710),a=e.i(34416),r=e.i(99758),n=e.i(55575),i=e.i(21682),s=e.i(60168),l=e.i(25795),o=e.i(90925),d=e.i(36451);e.i(18446);var u=e.i(28444),c=e.i(48467),h=e.i(20014),m=e.i(74490),x=e.i(8652),p=e.i(82239),f=e.i(49681),g=e.i(66127),y=e.i(36413);let v=new Set(u.RESTART_REQUIRED_KEY_TUPLE);function b(e){return null===e?"":String(e)}e.s(["ConfigSection",0,function({title:e,children:a,helpDocId:r,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}),r&&(0,t.jsx)(f.DocsHelpInline,{docId:r,anchor:n??null,label:e})]})}),(0,t.jsx)("div",{className:"space-y-0.5 [&>p]:max-w-prose",children:a})]})},"EditableArrayField",0,function({label:e,values:r,configKey:i,variant:l="gray",placeholder:o="Add item...",directoryPicker:u,modified:m,onSave:f}){let y=v.has(i),[b,j]=(0,a.useState)(""),[N,k]=(0,a.useState)(!1),[w,C]=(0,a.useState)(null),S=async()=>{let e=b.trim();if(!(!e||r.includes(e))){k(!0),C(null);try{await f(i,[...r,e]),j("")}catch{}finally{k(!1)}}},H=async e=>{k(!0);try{await f(i,r.filter(t=>t!==e))}finally{k(!1)}},E=async()=>{if(u){k(!0),C(null);try{let e=await (0,g.pickDirectoryFromDesktop)({title:u.title,defaultPath:b.trim()||u.defaultPath});if(!e)return;if(r.includes(e)){j(e),C("That directory is already in the list.");return}await f(i,[...r,e]),j("")}catch(e){C(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":i,children:[(0,t.jsxs)("p",{className:"text-sm text-muted-foreground mb-2 inline-flex items-center gap-1.5",children:[e,y&&(0,t.jsx)(p.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:[r.map(e=>(0,t.jsxs)(c.Badge,{variant:l,className:"gap-1 pr-1",children:[e,(0,t.jsx)("button",{onClick:()=>H(e),disabled:N,className:"ml-0.5 rounded-sm hover:bg-black/10 dark:hover:bg-white/10 p-0.5 transition-colors",children:(0,t.jsx)(d.X,{className:"h-3 w-3"})})]},e)),0===r.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)(x.Input,{value:b,onChange:e=>j(e.target.value),onKeyDown:e=>{"Enter"===e.key&&S()},placeholder:o,className:"max-w-[320px]",disabled:N}),u&&(0,t.jsxs)(h.Button,{size:"sm",variant:"outline",onClick:E,disabled:N,children:[(0,t.jsx)(n.FolderOpen,{className:"h-3.5 w-3.5 mr-1"}),u.buttonLabel??"Choose"]}),(0,t.jsxs)(h.Button,{size:"sm",variant:"outline",onClick:S,disabled:!b.trim()||N,children:[(0,t.jsx)(s.Plus,{className:"h-3.5 w-3.5 mr-1"}),"Add"]})]}),w&&(0,t.jsx)("p",{className:"mt-1 text-xs text-destructive",children:w})]})},"EditableBooleanField",0,function({label:e,value:r,configKey:n,description:i,modified:s,defaultValue:o,onSave:d}){let[u,c]=(0,a.useState)(!1),m=v.has(n),x=void 0!==o&&r===o,f=async()=>{c(!0);try{await d(n,!r)}finally{c(!1)}},g=async()=>{if(void 0!==o){c(!0);try{await d(n,o)}finally{c(!1)}}};return(0,t.jsx)("div",{className:`py-1.5 group${s?" 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)(p.RestartRequiredBadge,{}),s&&(0,t.jsx)("span",{className:"text-[10px] font-medium text-blue-600 dark:text-blue-400",children:"modified"}),void 0!==o&&!x&&!s&&(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"]})]}),i&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:i})]}),(0,t.jsx)(h.Button,{variant:r?"default":"outline",size:"sm",onClick:f,disabled:u,children:r?"Enabled":"Disabled"})]})})},"EditableField",0,function({label:e,value:n,configKey:s,type:u="text",suffix:c,description:m,min:f,max:g,nullable:j=!1,emptyLabel:N="Not set",modified:k,defaultValue:w,onSave:C}){let S=v.has(s),[H,E]=(0,a.useState)(!1),[M,P]=(0,a.useState)(b(n)),[A,q]=(0,a.useState)(!1),[D,I]=(0,a.useState)(null),B=(0,a.useRef)(null),R=(0,y.useDiscardGeneration)(),$=(0,a.useRef)(R);(0,a.useEffect)(()=>{R!==$.current&&($.current=R,E(!1),I(null))},[R]),(0,a.useEffect)(()=>{H&&B.current?.focus()},[H]),(0,a.useEffect)(()=>{H||P(b(n))},[n,H]);let F=void 0!==w&&n===w,T=async e=>{if(e.stopPropagation(),void 0!==w){q(!0);try{await C(s,w)}finally{q(!1)}}},z=async e=>{e.stopPropagation(),q(!0);try{await C(s,null)}finally{q(!1)}},O=async()=>{let e=M.trim(),t=j&&""===e?null:"number"===u?Number(M):M;if(t===n)return void E(!1);if(null!==t&&"number"===u&&(void 0!==f||void 0!==g)&&(void 0!==f&&t<f||void 0!==g&&t>g))return void I(`Must be ${f??""}–${g??""}`);I(null),q(!0);try{await C(s,t),E(!1)}catch{}finally{q(!1)}};return H?(0,t.jsxs)("div",{className:"py-1.5","data-config-key":s,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)(p.RestartRequiredBadge,{})]}),(0,t.jsx)(x.Input,{ref:B,type:u,value:M,onChange:e=>{P(e.target.value),I(null)},onKeyDown:e=>{"Enter"===e.key&&O(),"Escape"===e.key&&(P(b(n)),E(!1))},className:"max-w-[240px]",disabled:A,min:f,max:g}),c&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:c}),(0,t.jsx)(h.Button,{size:"sm",variant:"ghost",onClick:O,disabled:A,className:"h-7 w-7 p-0",children:(0,t.jsx)(r.Check,{className:"h-3.5 w-3.5"})}),(0,t.jsx)(h.Button,{size:"sm",variant:"ghost",onClick:()=>{P(b(n)),I(null),E(!1)},className:"h-7 w-7 p-0",children:(0,t.jsx)(d.X,{className:"h-3.5 w-3.5"})})]}),D&&(0,t.jsx)("p",{className:"text-xs text-destructive mt-1 ml-[148px]",children:D}),m&&!D&&(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":s,onClick:()=>E(!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)(p.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!==w&&!F&&!k&&(0,t.jsxs)("button",{type:"button",onClick:T,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"]}),j&&null!==n&&!k&&(0,t.jsxs)("button",{type:"button",onClick:z,title:`Clear — sets ${e} to ${N}`,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?N:"$"===c?`$${n}`:c?`${n} ${c}`:String(n)}),(0,t.jsx)(i.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})]})}])},64213,e=>{"use strict";let t=(0,e.i(77379).default)("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]]);e.s(["Play",0,t],64213)},64439,e=>{"use strict";var t=e.i(54710),a=e.i(34416),r=e.i(20014),n=e.i(8652),i=e.i(58436);e.s(["ExternalObsidianVaultSettings",0,function({vaultPath:e,vaultName:s,onSave:l}){let[o,d]=(0,a.useState)(e),[u,c]=(0,a.useState)(s),[h,m]=(0,a.useState)(null);(0,a.useEffect)(()=>{d(e)},[e]),(0,a.useEffect)(()=>{c(s)},[s]);let x=async()=>{m("save");try{let e=o.trim(),t=u.trim()||(e.split(/[\\/]+/).filter(Boolean).at(-1)??"");await l({externalObsidianVaultPath:e,externalObsidianVaultName:t})}finally{m(null)}},p=!!(e||s),f=async()=>{m("clear");try{await l({externalObsidianVaultPath:null,externalObsidianVaultName:null}),d(""),c("")}finally{m(null)}};return(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("label",{className:"text-sm text-muted-foreground shrink-0 min-w-[80px]",children:"Path"}),(0,t.jsx)(i.DirectoryPickerField,{value:o,onChange:d,title:"Choose external Obsidian vault directory",placeholder:"Choose an external Obsidian vault folder",defaultPath:e||void 0,inputClassName:"max-w-[480px]"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("label",{className:"text-sm text-muted-foreground shrink-0 min-w-[80px]",children:"Vault Name"}),(0,t.jsx)(n.Input,{value:u,onChange:e=>c(e.target.value),placeholder:"MyVault",className:"max-w-[240px]"})]}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"Use Choose to pick a local folder. Absolute local paths still work, including cloud-synced locations such as iCloud Drive, Dropbox, OneDrive, or Google Drive. Use Clear to remove the integration; both fields are nulled together to avoid the “path set without a name” error state."})]}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,t.jsx)(r.Button,{size:"sm",onClick:x,disabled:null!==h,children:"save"===h?"Saving...":"Save External Vault Settings"}),p&&(0,t.jsx)(r.Button,{size:"sm",variant:"outline",onClick:f,disabled:null!==h,children:"clear"===h?"Clearing...":"Clear"})]}),p&&(0,t.jsxs)("div",{className:"text-xs text-muted-foreground space-y-0.5 pt-1",children:[(0,t.jsxs)("p",{children:["Current path:"," ",(0,t.jsx)("code",{className:"text-foreground",children:e||"(not set)"})]}),(0,t.jsxs)("p",{children:["Current vault name:"," ",(0,t.jsx)("code",{className:"text-foreground",children:s||"(not set)"})]})]})]})},"PrimaryPlatformField",0,function({health:e,value:n,defaultValue:i,modified:s,onSave:l}){let o=Object.entries(e?.messaging??{}).filter(([e,t])=>"dashboard"!==e&&t.configured&&t.ownerConfigured).map(([e])=>e),[d,u]=(0,a.useState)(n),[c,h]=(0,a.useState)(!1);(0,a.useEffect)(()=>{u(n)},[n]);let m=d!==n,x=n&&!o.includes(n),p=async()=>{h(!0);try{await l("primaryPlatform",d)}finally{h(!1)}};return(0,t.jsxs)("div",{className:"space-y-2 py-2 border-b",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("label",{className:"text-sm font-medium",children:["Fallback Primary Platform",s&&(0,t.jsx)("span",{className:"ml-2 text-xs text-amber-600",children:"(unsaved)"})]}),void 0!==i&&(0,t.jsxs)("span",{className:"text-xs text-muted-foreground",children:["default: ",i||"(empty)"]})]}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[o.map(e=>(0,t.jsx)(r.Button,{variant:d===e?"default":"outline",size:"sm",disabled:c,onClick:()=>u(e),className:"capitalize",children:e},e)),x&&(0,t.jsxs)(r.Button,{variant:d===n?"default":"outline",size:"sm",disabled:c,onClick:()=>u(n),className:"capitalize opacity-60",title:"Current value — not currently configured with an owner ID",children:[n," (not configured)"]}),0===o.length&&!x&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:"Configure a messaging app with an owner ID first."})]}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"Last-resort destination used when no default reminder destinations are selected above and no per-request override is supplied. Only messaging apps with a configured owner ID appear here."}),(0,t.jsx)("div",{children:(0,t.jsx)(r.Button,{size:"sm",variant:"outline",disabled:!m||c,onClick:p,children:c?"Applying...":"Apply"})})]})}])},9878,e=>{"use strict";var t=e.i(54710),a=e.i(34416),r=e.i(88423),n=e.i(75187),i=e.i(36413),s=e.i(88),l=e.i(64439);function o(e){return e%24/24*Math.PI*2-Math.PI/2}function d(e,t){return{x:120+t*Math.cos(e),y:120+t*Math.sin(e)}}function u(e,t,a){let r=t-e;r<=0&&(r+=2*Math.PI),r>2*Math.PI-.001&&(r=2*Math.PI-.001);let n=+(r>Math.PI),i=d(e,a),s=d(e+r,a);return`M ${i.x} ${i.y} A ${a} ${a} 0 ${n} 1 ${s.x} ${s.y}`}function c(e){let[t,a]=e.split(":").map(Number);return(t??0)+(a??0)/60}function h(e){let t=Math.floor((e%24+24)%24),a=Math.round((e-Math.floor(e))*60)%60;return`${String(t).padStart(2,"0")}:${String(a).padStart(2,"0")}`}function m(e){return Math.round(4*e)/4}function x(e){return Math.round(e)%24}let p="var(--color-destructive)",f="var(--color-success)",g="var(--color-primary)";function y({values:e,onChange:r}){let n,i,s,l=(0,a.useRef)(null),[b,j]=(0,a.useState)(null),[N,k]=(0,a.useState)(null),w=c(e.quietHoursStart),C=c(e.quietHoursEnd),S=e.activeStartHour,H=e.activeEndHour%24,E=o(w),M=o(C),P=o(S),A=o(H),q=o(e.dayBoundaryHour),D=()=>{j(null)};return(0,t.jsx)("div",{className:"flex items-center justify-center",children:(0,t.jsxs)("svg",{ref:l,viewBox:"0 0 240 240",className:"w-full max-w-[280px] select-none touch-none",onPointerMove:t=>{if(!b)return;let a=(e=>{let t,a=l.current;if(!a)return 0;let r=a.getBoundingClientRect(),n=240/r.width,i=240/r.height,s=(e.clientX-r.left)*n-120;return(t=(Math.atan2((e.clientY-r.top)*i-120,s)+Math.PI/2)/(2*Math.PI)*24)<0&&(t+=24),t%24})(t),n={...e};switch(b){case"quietStart":n.quietHoursStart=h(m(a));break;case"quietEnd":n.quietHoursEnd=h(m(a));break;case"activeStart":n.activeStartHour=x(a);break;case"activeEnd":{let e=x(a);n.activeEndHour=0===e?24:e}}r(n)},onPointerUp:D,onPointerLeave:D,children:[(0,t.jsx)("circle",{cx:120,cy:120,r:100,fill:"none",stroke:"currentColor",strokeWidth:1,className:"text-border"}),Array.from({length:24},(e,a)=>{let r=o(a),n=a%3==0,i=d(r,n?95:97),s=d(r,100);return(0,t.jsx)("line",{x1:i.x,y1:i.y,x2:s.x,y2:s.y,stroke:"currentColor",strokeWidth:n?1.5:.5,className:"text-muted-foreground"},a)}),[0,3,6,9,12,15,18,21].map(e=>{let a=d(o(e),108);return(0,t.jsx)("text",{x:a.x,y:a.y,textAnchor:"middle",dominantBaseline:"central",className:"fill-muted-foreground text-[9px]",children:e},e)}),(0,t.jsx)("path",{d:u(E,M,90),fill:"none",stroke:p,strokeWidth:8,strokeLinecap:"round",opacity:.6}),(0,t.jsx)("path",{d:u(P,A,75),fill:"none",stroke:f,strokeWidth:8,strokeLinecap:"round",opacity:.6}),(n=d(q,60),i=d(q,100),(0,t.jsx)("line",{x1:n.x,y1:n.y,x2:i.x,y2:i.y,stroke:g,strokeWidth:2,strokeDasharray:"4 2"})),(s=d(q,53),(0,t.jsx)("text",{x:s.x,y:s.y,textAnchor:"middle",dominantBaseline:"central",className:"fill-primary text-[8px] font-medium",children:"day"})),function({dragging:e,hovered:a,setHovered:r,handlePointerDown:n,quietStartA:i,quietEndA:s,activeStartA:l,activeEndA:o,QUIET_R:d,ACTIVE_R:u,values:c}){let h=e??a,m=[{target:"quietStart",angle:i,r:d,color:p,label:c.quietHoursStart},{target:"quietEnd",angle:s,r:d,color:p,label:c.quietHoursEnd},{target:"activeStart",angle:l,r:u,color:f,label:`${c.activeStartHour}:00`},{target:"activeEnd",angle:o,r:u,color:f,label:`${c.activeEndHour}:00`}].sort((e,t)=>(e.target===h)-(t.target===h));return(0,t.jsx)(t.Fragment,{children:m.map(e=>(0,t.jsx)(v,{angle:e.angle,r:e.r,color:e.color,label:e.label,active:e.target===h,onPointerDown:n(e.target),onPointerEnter:()=>r(e.target),onPointerLeave:()=>r(null)},e.target))})}({dragging:b,hovered:N,setDragging:j,setHovered:k,handlePointerDown:e=>t=>{t.preventDefault(),t.target.setPointerCapture(t.pointerId),j(e)},quietStartA:E,quietEndA:M,activeStartA:P,activeEndA:A,QUIET_R:90,ACTIVE_R:75,values:e}),(0,t.jsxs)("text",{x:120,y:112,textAnchor:"middle",className:"fill-muted-foreground text-[8px]",children:[(0,t.jsx)("tspan",{style:{fill:p},children:"●"})," quiet hours"]}),(0,t.jsxs)("text",{x:120,y:124,textAnchor:"middle",className:"fill-muted-foreground text-[8px]",children:[(0,t.jsx)("tspan",{style:{fill:f},children:"●"})," active window"]}),(0,t.jsxs)("text",{x:120,y:136,textAnchor:"middle",className:"fill-muted-foreground text-[8px]",children:[(0,t.jsx)("tspan",{style:{fill:g},children:"---"})," day boundary"]})]})})}function v({angle:e,r:a,color:r,label:n,active:i,onPointerDown:s,onPointerEnter:l,onPointerLeave:o}){let u=d(e,a),{lx:c,ly:h}={lx:Math.max(12,Math.min(228,u.x)),ly:Math.max(12,Math.min(228,u.y-12))};return(0,t.jsxs)("g",{onPointerDown:s,onPointerEnter:l,onPointerLeave:o,className:"cursor-grab active:cursor-grabbing",children:[(0,t.jsx)("circle",{cx:u.x,cy:u.y,r:12,fill:"transparent"}),(0,t.jsx)("circle",{cx:u.x,cy:u.y,r:i?7:5,fill:r,stroke:"var(--color-background)",strokeWidth:2}),i&&(0,t.jsx)("text",{x:c,y:h,textAnchor:"middle",className:"fill-foreground text-[9px] font-medium pointer-events-none",children:n})]})}var b=e.i(72740),j=e.i(64213),N=e.i(25795),k=e.i(20014),w=e.i(8652),C=e.i(74490),S=e.i(48467),H=e.i(57415),E=e.i(14260),M=e.i(95486),P=e.i(65268);let A=["delegated-sync"];function q(){let{data:e,isLoading:a}=(0,E.useQuery)({queryKey:A,queryFn:()=>P.api.get("/delegated-sync"),staleTime:5e3,refetchInterval:15e3});if(a||!e)return null;let r=Object.entries(e.cadences).map(([e,t])=>({id:e,...t}));if(!e.workerRunning&&0===r.length)return null;if(!e.workerRunning)return(0,t.jsxs)(C.Card,{children:[(0,t.jsx)(C.CardHeader,{children:(0,t.jsx)(C.CardTitle,{children:"Background Sync"})}),(0,t.jsxs)("div",{className:"p-4 text-sm text-muted-foreground",children:["No integrations are in delegated or native mode, so background cadences are inactive. Move an integration (Calendar / Gmail / Notion) to delegated or native mode in ",(0,t.jsx)("code",{children:"/connections"}),"to enable opt-in cadences here."]})]});let n=r.some(e=>e.enabled);return(0,t.jsxs)(C.Card,{children:[(0,t.jsx)(C.CardHeader,{children:(0,t.jsxs)(C.CardTitle,{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{children:"Background Sync"}),e.withinActiveHours?(0,t.jsx)(S.Badge,{variant:"green",children:"active"}):(0,t.jsx)(S.Badge,{variant:"gray",children:"outside active hours"})]})}),(0,t.jsxs)("div",{className:"space-y-1 p-4 pt-0",children:[(0,t.jsx)("p",{className:"pb-2 text-xs text-muted-foreground",children:"Background cadences poll Calendar / Gmail / Notion through the backend's MCP subprocess so the hourly check sees fresh observations. Each row uses either the delegated backend (when the integration is in delegated mode) or the main backend (when native). Every poll spends tokens — by default they are off. Enable just the cadences you want, and they will respect the shared active-hours window below."}),(0,t.jsx)("div",{className:"space-y-2",children:r.map(e=>(0,t.jsx)(D,{row:e},e.id))}),n&&(0,t.jsx)(B,{startHour:e.activeHours.startHour,endHour:e.activeHours.endHour})]})]})}function D({row:e}){let r,n,i=(r=(0,M.useQueryClient)(),(0,H.useMutation)({mutationFn:({cadenceId:e,body:t})=>P.api.patch(`/delegated-sync/cadences/${encodeURIComponent(e)}`,t),onSuccess:()=>{r.invalidateQueries({queryKey:A})}})),s=(n=(0,M.useQueryClient)(),(0,H.useMutation)({mutationFn:({cadenceId:e})=>P.api.post(`/delegated-sync/cadences/${encodeURIComponent(e)}/run`,{}),onSuccess:()=>{n.invalidateQueries({queryKey:A})}})),[l,o]=(0,a.useState)(String(Math.round(e.intervalSeconds/60))),[d,u]=(0,a.useState)(null),[c,h]=(0,a.useState)(null);(0,a.useEffect)(()=>{o(String(Math.round(e.intervalSeconds/60)))},[e.intervalSeconds]);let m=Math.ceil(e.softFloorSeconds/60),x=Math.round(e.defaultIntervalSeconds/60),p=async()=>{h(null);try{await s.mutateAsync({cadenceId:e.id})}catch(e){h(e instanceof Error?e.message:"Run Now failed")}},f=i.isPending,g=s.isPending,y=e.intervalSeconds===e.defaultIntervalSeconds;return(0,t.jsxs)("div",{className:"rounded border border-border/50 p-3",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)("p",{className:"text-sm font-medium text-foreground",children:e.displayName}),"native"===e.mode&&(0,t.jsxs)(S.Badge,{variant:"green",children:["native",e.backend?` \xb7 ${e.backend}`:""]}),"delegated"===e.mode&&(0,t.jsxs)(S.Badge,{variant:"blue",children:["delegated",e.backend?` \xb7 ${e.backend}`:""]}),"tripped"===e.circuitState&&(0,t.jsx)(S.Badge,{variant:"red",children:"circuit tripped"}),e.failureCount>0&&"ok"===e.circuitState&&(0,t.jsxs)(S.Badge,{variant:"amber",children:[e.failureCount," recent failure",1===e.failureCount?"":"s"]})]}),(0,t.jsx)("p",{className:"mt-0.5 text-xs text-muted-foreground",children:e.description}),(0,t.jsx)(I,{row:e})]}),(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,t.jsx)(k.Button,{variant:e.enabled?"default":"outline",size:"sm",onClick:()=>{i.mutate({cadenceId:e.id,body:{enabled:!e.enabled}})},disabled:f,children:f?(0,t.jsx)(b.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):e.enabled?"Enabled":"Disabled"}),(0,t.jsxs)(k.Button,{variant:"outline",size:"sm",onClick:p,disabled:g,title:"Run this cadence once, regardless of schedule",children:[g?(0,t.jsx)(b.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):(0,t.jsx)(j.Play,{className:"h-3.5 w-3.5"}),(0,t.jsx)("span",{className:"ml-1",children:"Run now"})]})]})]}),(0,t.jsxs)("div",{className:"mt-2 flex items-center gap-2 text-xs text-muted-foreground",children:[(0,t.jsxs)("label",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{children:"Interval:"}),(0,t.jsx)(w.Input,{type:"number",min:m,max:1440,value:l,onChange:e=>o(e.target.value),onBlur:()=>{u(null);let t=Number(l);!Number.isInteger(t)||t<=0?u("Whole positive number required"):t<m?u(`Minimum ${m} min`):t>1440?u("Maximum 1440 min (24 h)"):60*t!==e.intervalSeconds&&i.mutate({cadenceId:e.id,body:{intervalSeconds:60*t}},{onError:e=>u(e.message)})},onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),e.target.blur())},className:"h-7 w-20 px-2 text-xs"}),(0,t.jsx)("span",{children:"min"})]}),(0,t.jsxs)("span",{className:"text-muted-foreground/70",children:["(",m,"–",1440,"; default ",x,")"]}),!y&&(0,t.jsxs)("button",{type:"button",onClick:()=>{o(String(x)),i.mutate({cadenceId:e.id,body:{intervalSeconds:60*x}})},className:"inline-flex items-center gap-0.5 text-[10px] text-muted-foreground hover:text-foreground",children:[(0,t.jsx)(N.RotateCcw,{className:"h-2.5 w-2.5"}),"reset"]}),d&&(0,t.jsx)("span",{className:"text-destructive",children:d})]}),c&&(0,t.jsxs)("p",{className:"mt-1 text-xs text-destructive",children:["Run Now: ",c]})]})}function I({row:e}){var r;let n=(0,a.useMemo)(()=>R(e.lastSuccessAt),[e.lastSuccessAt]),i=(0,a.useMemo)(()=>R(e.nextRunAt),[e.nextRunAt]);return e.lastAttemptAt||e.nextRunAt?(0,t.jsxs)("p",{className:"mt-1 text-xs text-muted-foreground/70",children:[e.lastSuccessAt?`Last success ${n}.`:"No successful run yet.",e.enabled&&e.nextRunAt&&` Next run ${i}.`,e.lastError&&` Last error: ${(r=e.lastError).length<=80?r:`${r.slice(0,79)}…`}`]}):(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground/70",children:"Has not run yet."})}function B({startHour:e,endHour:r}){let n,i=(n=(0,M.useQueryClient)(),(0,H.useMutation)({mutationFn:e=>P.api.patch("/delegated-sync/active-hours",e),onSuccess:()=>{n.invalidateQueries({queryKey:A})}})),[s,l]=(0,a.useState)(String(e)),[o,d]=(0,a.useState)(String(r)),[u,c]=(0,a.useState)(null);(0,a.useEffect)(()=>{l(String(e))},[e]),(0,a.useEffect)(()=>{d(String(r))},[r]);let h=()=>{c(null);let t=Number(s),a=Number(o);!Number.isInteger(t)||t<0||t>23?c("Start must be an integer 0–23"):!Number.isInteger(a)||a<1||a>24?c("End must be an integer 1–24"):t>=a?c("Start must be earlier than end"):(t!==e||a!==r)&&i.mutate({startHour:t,endHour:a},{onError:e=>c(e.message)})};return(0,t.jsxs)("div",{className:"mt-3 rounded border border-border/50 bg-muted/30 p-3",children:[(0,t.jsx)("p",{className:"text-sm font-medium text-foreground",children:"Active hours"}),(0,t.jsx)("p",{className:"mt-0.5 text-xs text-muted-foreground",children:'Shared by every enabled cadence. Outside this window, no cadence runs (Run Now still works). Interpreted in the configured timezone. End hour is exclusive — set 24 for "through 23:59".'}),(0,t.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-3 text-xs",children:[(0,t.jsxs)("label",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{children:"Start:"}),(0,t.jsx)(w.Input,{type:"number",min:0,max:23,value:s,onChange:e=>l(e.target.value),onBlur:h,onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),e.target.blur())},className:"h-7 w-16 px-2 text-xs"}),(0,t.jsx)("span",{children:":00"})]}),(0,t.jsxs)("label",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{children:"End:"}),(0,t.jsx)(w.Input,{type:"number",min:1,max:24,value:o,onChange:e=>d(e.target.value),onBlur:h,onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),e.target.blur())},className:"h-7 w-16 px-2 text-xs"}),(0,t.jsx)("span",{children:":00"})]}),i.isPending&&(0,t.jsx)(b.Loader2,{className:"h-3.5 w-3.5 animate-spin text-muted-foreground"}),u&&(0,t.jsx)("span",{className:"text-destructive",children:u})]})]})}function R(e){var t,a;if(!e)return"—";let r=Date.parse(e);if(!Number.isFinite(r))return"—";let n=Math.round((r-Date.now())/1e3);return n>=0?(t=n)<60?`in ${t}s`:t<3600?`in ${Math.round(t/60)}m`:t<86400?`in ${Math.round(t/3600)}h`:`in ${Math.round(t/86400)}d`:(a=-n)<60?`${a}s ago`:a<3600?`${Math.round(a/60)}m ago`:a<86400?`${Math.round(a/3600)}h ago`:`${Math.round(a/86400)}d ago`}e.s(["default",0,function(){let{data:e}=(0,r.useConfig)(),{df:o}=(0,r.useConfigDefaults)(),{data:d}=(0,n.useHealth)(),{deferSaveFor:u,dv:c,dirtyFields:h,setDirty:m}=(0,i.useDirtyFields)(),x=(0,a.useCallback)(t=>{e&&(m("quietHoursStart",t.quietHoursStart,e.quietHoursStart),m("quietHoursEnd",t.quietHoursEnd,e.quietHoursEnd),m("hourlyCheckActiveStartHour",t.activeStartHour,e.hourlyCheckActiveStartHour),m("hourlyCheckActiveEndHour",t.activeEndHour,e.hourlyCheckActiveEndHour))},[e,m]);if(!e)return(0,t.jsx)("div",{className:"text-muted-foreground",children:"Loading..."});let p=u(e),f={quietHoursStart:c("quietHoursStart",e.quietHoursStart),quietHoursEnd:c("quietHoursEnd",e.quietHoursEnd),activeStartHour:c("hourlyCheckActiveStartHour",e.hourlyCheckActiveStartHour),activeEndHour:c("hourlyCheckActiveEndHour",e.hourlyCheckActiveEndHour),dayBoundaryHour:c("dayBoundaryHour",e.dayBoundaryHour)};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-2xl font-semibold text-foreground",children:"Schedule & Notifications"}),(0,t.jsx)("p",{className:"mt-1 max-w-3xl text-sm text-muted-foreground",children:"When the agent runs in the background and how often it can interrupt you. All times are interpreted in the configured timezone."})]}),(0,t.jsxs)(s.ConfigSection,{title:"Time axis",helpDocId:"concepts/agent-day",children:[(0,t.jsx)("p",{className:"pb-2 text-xs text-muted-foreground",children:"Drag the handles to adjust quiet hours (red) and the hourly-check active window (green). The dashed blue line marks the day boundary. Changes are staged — save with the bar below."}),(0,t.jsx)(y,{values:f,onChange:x})]}),(0,t.jsxs)(s.ConfigSection,{title:"Day shape",helpDocId:"concepts/agent-day",children:[(0,t.jsx)(s.EditableField,{label:"Timezone",value:c("timezone",e.timezone),configKey:"timezone",modified:h.has("timezone"),defaultValue:o("timezone"),description:"IANA timezone name (e.g. America/New_York, America/Los_Angeles). All schedules, quiet hours, and daily boundaries are interpreted in this zone.",onSave:p}),(0,t.jsx)(s.EditableField,{label:"Day Boundary Hour",value:c("dayBoundaryHour",e.dayBoundaryHour),configKey:"dayBoundaryHour",type:"number",min:0,max:9,modified:h.has("dayBoundaryHour"),defaultValue:o("dayBoundaryHour"),description:"Hour (0–9, local time) at which a new agent day begins. At this hour the previous today.md is archived, a new one is generated, and daily retention and summary routines run. Pick a time you're reliably asleep — 04:00 is the default.",onSave:p})]}),(0,t.jsxs)(s.ConfigSection,{title:"Hourly Check",helpDocId:"features/routines/hourly-check",children:[(0,t.jsxs)("p",{className:"pb-2 text-xs text-muted-foreground",children:["The hourly check is the agent’s passive review loop. At each interval it queries pending observations (file edits, calendar updates, git commits, Notion changes), folds anything actionable into your context files (",(0,t.jsx)("code",{children:"today.md"}),", ",(0,t.jsx)("code",{children:"roadmap.md"}),", project notes), and stays silent otherwise. Most runs produce no output — that is by design."]}),(0,t.jsx)(s.EditableBooleanField,{label:"Hourly Check Enabled",value:c("hourlyCheckEnabled",e.hourlyCheckEnabled),configKey:"hourlyCheckEnabled",modified:h.has("hourlyCheckEnabled"),defaultValue:o("hourlyCheckEnabled"),description:"Master switch for the polling routine. When off, the agent only runs on direct messages, schedule.approaching events, and explicitly scheduled tasks.",onSave:p}),(0,t.jsx)(s.EditableField,{label:"Check Interval",value:c("hourlyCheckIntervalMinutes",e.hourlyCheckIntervalMinutes),configKey:"hourlyCheckIntervalMinutes",type:"number",suffix:"min",min:1,max:1440,modified:h.has("hourlyCheckIntervalMinutes"),defaultValue:o("hourlyCheckIntervalMinutes"),description:"How often the check runs during the active window. Any positive integer in minutes (1–1440, i.e. up to 24 hours). Despite the “hourly” name, you can dial this lower for higher-frequency checks or higher to cut quota burn. The cadence is anchored to the active-window start, so the first fire of each agent-day lands at the start of the window.",onSave:p}),(0,t.jsx)(s.EditableField,{label:"Active Start Hour",value:c("hourlyCheckActiveStartHour",e.hourlyCheckActiveStartHour),configKey:"hourlyCheckActiveStartHour",type:"number",min:0,max:23,modified:h.has("hourlyCheckActiveStartHour"),defaultValue:o("hourlyCheckActiveStartHour"),description:"Hour (0–23, local time) when the hourly check window opens. Runs before this hour are skipped entirely.",onSave:p}),(0,t.jsx)(s.EditableField,{label:"Active End Hour",value:c("hourlyCheckActiveEndHour",e.hourlyCheckActiveEndHour),configKey:"hourlyCheckActiveEndHour",type:"number",min:1,max:24,modified:h.has("hourlyCheckActiveEndHour"),defaultValue:o("hourlyCheckActiveEndHour"),description:"Hour (1–24, local time) when the window closes. Exclusive — e.g. set 24 to run through 23:59. Prevents the check from firing while you sleep.",onSave:p}),(0,t.jsx)(s.EditableField,{label:"Min Observations",value:c("hourlyCheckMinObservations",e.hourlyCheckMinObservations),configKey:"hourlyCheckMinObservations",type:"number",min:0,max:1e3,modified:h.has("hourlyCheckMinObservations"),defaultValue:o("hourlyCheckMinObservations"),description:"Minimum number of pending user-actor observations required for the check to actually launch an agent run. If fewer are queued, the tick is skipped with no cost. Set higher (e.g. 3–5) if you see too many no-op runs.",onSave:p}),(0,t.jsx)("p",{className:"pt-2 text-xs text-muted-foreground",children:"Trigger one immediately from the CLI:"}),(0,t.jsx)("pre",{className:"overflow-x-auto rounded bg-muted p-2 font-mono text-[11px] text-muted-foreground",children:'curl -X POST http://localhost:8321/api/agent/run-now -H "Authorization: Bearer <daemon-api-token>" -H "Content-Type: application/json" -d \'{"reason":"manual"}\''})]}),(0,t.jsx)(q,{}),(0,t.jsxs)(s.ConfigSection,{title:"Notifications",helpDocId:"features/operations/quiet-hours",children:[(0,t.jsx)("p",{className:"pb-2 text-xs text-muted-foreground",children:"Rate limits, quiet hours, and delivery destinations for outbound notifications the agent sends to you. “Notification” = a proactive message (reminder, alert, summary) — it does not include replies to messages you initiated."}),(0,t.jsx)(s.EditableField,{label:"Max Per Hour",value:c("maxNotificationsPerHour",e.maxNotificationsPerHour),configKey:"maxNotificationsPerHour",type:"number",modified:h.has("maxNotificationsPerHour"),defaultValue:o("maxNotificationsPerHour"),description:"Hard cap on outbound notifications in any rolling 60-minute window. Notifications above the cap are suppressed (not delivered, but still logged to Activity → Notifications so you can see what was dropped). Protects you from runaway notification loops.",onSave:p}),(0,t.jsx)(s.EditableField,{label:"Max Per Day",value:c("maxNotificationsPerDay",e.maxNotificationsPerDay),configKey:"maxNotificationsPerDay",type:"number",modified:h.has("maxNotificationsPerDay"),defaultValue:o("maxNotificationsPerDay"),description:"Hard cap per calendar day (resets at the Day Boundary Hour). A safety net on top of the per-hour cap. Suppressed notifications are still logged.",onSave:p}),(0,t.jsx)(s.EditableField,{label:"Quiet Hours Start",value:c("quietHoursStart",e.quietHoursStart),configKey:"quietHoursStart",modified:h.has("quietHoursStart"),defaultValue:o("quietHoursStart"),description:"24-hour time (HH:MM, e.g. 22:00) when quiet hours begin in the configured timezone. During quiet hours, regular notifications are held back. Safety-category notifications (deadline, error, security, critical) still go through.",onSave:p}),(0,t.jsx)(s.EditableField,{label:"Quiet Hours End",value:c("quietHoursEnd",e.quietHoursEnd),configKey:"quietHoursEnd",modified:h.has("quietHoursEnd"),defaultValue:o("quietHoursEnd"),description:"24-hour time (HH:MM, e.g. 08:00) when quiet hours end. If end is earlier than start, the window wraps over midnight.",onSave:p}),(0,t.jsx)(s.EditableField,{label:"Batch Interval",value:c("batchIntervalMinutes",e.batchIntervalMinutes),configKey:"batchIntervalMinutes",type:"number",suffix:"min",modified:h.has("batchIntervalMinutes"),defaultValue:o("batchIntervalMinutes"),description:"Minimum minutes between notification deliveries from the same routine. Multiple notifications queued within this window are combined into a single message so you don’t get spammed.",onSave:p}),(0,t.jsxs)("div",{className:"py-2 border-b text-sm text-muted-foreground",children:["Default reminder destinations are managed in"," ",(0,t.jsx)("a",{href:"/connections/messaging",className:"text-foreground underline underline-offset-2 hover:no-underline",children:"Connections → Messaging → Default Reminder Destinations"}),"."]}),(0,t.jsx)(l.PrimaryPlatformField,{health:d,value:c("primaryPlatform",e.primaryPlatform),defaultValue:o("primaryPlatform"),modified:h.has("primaryPlatform"),onSave:p})]})]})}],9878)}]);
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,58436,e=>{"use strict";var t=e.i(54710),a=e.i(34416),r=e.i(55575),n=e.i(72740),i=e.i(20014),s=e.i(8652),l=e.i(66127),o=e.i(81471);e.s(["DirectoryPickerField",0,function({id:e,value:d,onChange:u,title:c,placeholder:h="Choose a folder...",defaultPath:m,disabled:x=!1,className:f,inputClassName:p,buttonLabel:g="Choose"}){let[y,v]=(0,a.useState)(!1),[b,j]=(0,a.useState)(null),N=async()=>{v(!0),j(null);try{let e=await (0,l.pickDirectoryFromDesktop)({title:c,defaultPath:d.trim()||m});e&&u(e)}catch(e){j(e instanceof Error?e.message:"Folder picker is unavailable.")}finally{v(!1)}};return(0,t.jsxs)("div",{className:(0,o.cn)("space-y-1",f),children:[(0,t.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row",children:[(0,t.jsx)(s.Input,{id:e,value:d,onChange:e=>{u(e.target.value),j(null)},placeholder:h,className:(0,o.cn)("font-mono text-sm",p),disabled:x||y}),(0,t.jsxs)(i.Button,{type:"button",variant:"outline",onClick:N,disabled:x||y,className:"shrink-0 gap-2",children:[y?(0,t.jsx)(n.Loader2,{className:"h-4 w-4 animate-spin"}):(0,t.jsx)(r.FolderOpen,{className:"h-4 w-4"}),y?"Opening...":g]})]}),b&&(0,t.jsx)("p",{className:"text-xs text-destructive",children:b})]})}])},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)},74490,e=>{"use strict";var t=e.i(54710),a=e.i(81471);let r=(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,...s}){return(0,t.jsx)("div",{className:(0,a.cn)(r({tone:n,interactive:i}),e),...s})},"CardHeader",0,function({className:e,...r}){return(0,t.jsx)("div",{className:(0,a.cn)("mb-3 flex items-center justify-between",e),...r})},"CardStatLabel",0,function({className:e,...r}){return(0,t.jsx)("h3",{className:(0,a.cn)("text-sm font-medium text-muted-foreground",e),...r})},"CardTitle",0,function({className:e,...r}){return(0,t.jsx)("h3",{className:(0,a.cn)("text-lg font-semibold text-foreground",e),...r})},"CardValue",0,function({className:e,...r}){return(0,t.jsx)("div",{className:(0,a.cn)("text-3xl font-bold text-foreground",e),...r})}])},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)},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 a({title:e,defaultPath:r}){let n=await t.api.post("/system/pick-directory",{title:e,...r?{defaultPath:r}:{}});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,a])},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),a=e.i(25795),r=e.i(10628);e.s(["RestartRequiredBadge",0,function(){return(0,t.jsxs)(r.Tooltip,{children:[(0,t.jsx)(r.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)(a.RotateCcw,{className:"h-2.5 w-2.5"}),"restart"]})}),(0,t.jsx)(r.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),a=e.i(7771),r=e.i(95486),n=e.i(8011),i=e.i(10628),s=e.i(81471);e.s(["DocsHelpInline",0,function({docId:e,anchor:l=null,label:o,className:d}){let u=(0,r.useQueryClient)(),c=o??"Help";return(0,t.jsx)(i.TooltipProvider,{delayDuration:300,children:(0,t.jsxs)(i.Tooltip,{children:[(0,t.jsx)(i.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:t=>{t.preventDefault(),t.stopPropagation(),(0,n.openDocsHelpSlideover)(u,{docId:e,anchor:l,autoFocusComposer:!1})},className:(0,s.cn)("inline-flex h-5 w-5 items-center justify-center rounded-full text-muted-foreground/70 transition hover:bg-accent hover:text-foreground",d),"aria-label":`Open help — ${c}`,"data-testid":"docs-help-inline",children:(0,t.jsx)(a.HelpCircle,{className:"h-3.5 w-3.5","aria-hidden":"true"})})}),(0,t.jsx)(i.TooltipContent,{side:"top",children:(0,t.jsx)("span",{children:c})})]})})}])},88,e=>{"use strict";var t=e.i(54710),a=e.i(34416),r=e.i(99758),n=e.i(55575),i=e.i(21682),s=e.i(60168),l=e.i(25795),o=e.i(90925),d=e.i(36451);e.i(18446);var u=e.i(28444),c=e.i(48467),h=e.i(20014),m=e.i(74490),x=e.i(8652),f=e.i(82239),p=e.i(49681),g=e.i(66127),y=e.i(36413);let v=new Set(u.RESTART_REQUIRED_KEY_TUPLE);function b(e){return null===e?"":String(e)}e.s(["ConfigSection",0,function({title:e,children:a,helpDocId:r,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}),r&&(0,t.jsx)(p.DocsHelpInline,{docId:r,anchor:n??null,label:e})]})}),(0,t.jsx)("div",{className:"space-y-0.5 [&>p]:max-w-prose",children:a})]})},"EditableArrayField",0,function({label:e,values:r,configKey:i,variant:l="gray",placeholder:o="Add item...",directoryPicker:u,modified:m,onSave:p}){let y=v.has(i),[b,j]=(0,a.useState)(""),[N,k]=(0,a.useState)(!1),[w,C]=(0,a.useState)(null),S=async()=>{let e=b.trim();if(!(!e||r.includes(e))){k(!0),C(null);try{await p(i,[...r,e]),j("")}catch{}finally{k(!1)}}},H=async e=>{k(!0);try{await p(i,r.filter(t=>t!==e))}finally{k(!1)}},E=async()=>{if(u){k(!0),C(null);try{let e=await (0,g.pickDirectoryFromDesktop)({title:u.title,defaultPath:b.trim()||u.defaultPath});if(!e)return;if(r.includes(e)){j(e),C("That directory is already in the list.");return}await p(i,[...r,e]),j("")}catch(e){C(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":i,children:[(0,t.jsxs)("p",{className:"text-sm text-muted-foreground mb-2 inline-flex items-center gap-1.5",children:[e,y&&(0,t.jsx)(f.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:[r.map(e=>(0,t.jsxs)(c.Badge,{variant:l,className:"gap-1 pr-1",children:[e,(0,t.jsx)("button",{onClick:()=>H(e),disabled:N,className:"ml-0.5 rounded-sm hover:bg-black/10 dark:hover:bg-white/10 p-0.5 transition-colors",children:(0,t.jsx)(d.X,{className:"h-3 w-3"})})]},e)),0===r.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)(x.Input,{value:b,onChange:e=>j(e.target.value),onKeyDown:e=>{"Enter"===e.key&&S()},placeholder:o,className:"max-w-[320px]",disabled:N}),u&&(0,t.jsxs)(h.Button,{size:"sm",variant:"outline",onClick:E,disabled:N,children:[(0,t.jsx)(n.FolderOpen,{className:"h-3.5 w-3.5 mr-1"}),u.buttonLabel??"Choose"]}),(0,t.jsxs)(h.Button,{size:"sm",variant:"outline",onClick:S,disabled:!b.trim()||N,children:[(0,t.jsx)(s.Plus,{className:"h-3.5 w-3.5 mr-1"}),"Add"]})]}),w&&(0,t.jsx)("p",{className:"mt-1 text-xs text-destructive",children:w})]})},"EditableBooleanField",0,function({label:e,value:r,configKey:n,description:i,modified:s,defaultValue:o,onSave:d}){let[u,c]=(0,a.useState)(!1),m=v.has(n),x=void 0!==o&&r===o,p=async()=>{c(!0);try{await d(n,!r)}finally{c(!1)}},g=async()=>{if(void 0!==o){c(!0);try{await d(n,o)}finally{c(!1)}}};return(0,t.jsx)("div",{className:`py-1.5 group${s?" 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)(f.RestartRequiredBadge,{}),s&&(0,t.jsx)("span",{className:"text-[10px] font-medium text-blue-600 dark:text-blue-400",children:"modified"}),void 0!==o&&!x&&!s&&(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"]})]}),i&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:i})]}),(0,t.jsx)(h.Button,{variant:r?"default":"outline",size:"sm",onClick:p,disabled:u,children:r?"Enabled":"Disabled"})]})})},"EditableField",0,function({label:e,value:n,configKey:s,type:u="text",suffix:c,description:m,min:p,max:g,nullable:j=!1,emptyLabel:N="Not set",modified:k,defaultValue:w,onSave:C}){let S=v.has(s),[H,E]=(0,a.useState)(!1),[M,P]=(0,a.useState)(b(n)),[A,q]=(0,a.useState)(!1),[D,I]=(0,a.useState)(null),B=(0,a.useRef)(null),R=(0,y.useDiscardGeneration)(),F=(0,a.useRef)(R);(0,a.useEffect)(()=>{R!==F.current&&(F.current=R,E(!1),I(null))},[R]),(0,a.useEffect)(()=>{H&&B.current?.focus()},[H]),(0,a.useEffect)(()=>{H||P(b(n))},[n,H]);let $=void 0!==w&&n===w,T=async e=>{if(e.stopPropagation(),void 0!==w){q(!0);try{await C(s,w)}finally{q(!1)}}},z=async e=>{e.stopPropagation(),q(!0);try{await C(s,null)}finally{q(!1)}},O=async()=>{let e=M.trim(),t=j&&""===e?null:"number"===u?Number(M):M;if(t===n)return void E(!1);if(null!==t&&"number"===u&&(void 0!==p||void 0!==g)&&(void 0!==p&&t<p||void 0!==g&&t>g))return void I(`Must be ${p??""}–${g??""}`);I(null),q(!0);try{await C(s,t),E(!1)}catch{}finally{q(!1)}};return H?(0,t.jsxs)("div",{className:"py-1.5","data-config-key":s,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)(f.RestartRequiredBadge,{})]}),(0,t.jsx)(x.Input,{ref:B,type:u,value:M,onChange:e=>{P(e.target.value),I(null)},onKeyDown:e=>{"Enter"===e.key&&O(),"Escape"===e.key&&(P(b(n)),E(!1))},className:"max-w-[240px]",disabled:A,min:p,max:g}),c&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:c}),(0,t.jsx)(h.Button,{size:"sm",variant:"ghost",onClick:O,disabled:A,className:"h-7 w-7 p-0",children:(0,t.jsx)(r.Check,{className:"h-3.5 w-3.5"})}),(0,t.jsx)(h.Button,{size:"sm",variant:"ghost",onClick:()=>{P(b(n)),I(null),E(!1)},className:"h-7 w-7 p-0",children:(0,t.jsx)(d.X,{className:"h-3.5 w-3.5"})})]}),D&&(0,t.jsx)("p",{className:"text-xs text-destructive mt-1 ml-[148px]",children:D}),m&&!D&&(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":s,onClick:()=>E(!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)(f.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!==w&&!$&&!k&&(0,t.jsxs)("button",{type:"button",onClick:T,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"]}),j&&null!==n&&!k&&(0,t.jsxs)("button",{type:"button",onClick:z,title:`Clear — sets ${e} to ${N}`,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?N:"$"===c?`$${n}`:c?`${n} ${c}`:String(n)}),(0,t.jsx)(i.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})]})}])},64213,e=>{"use strict";let t=(0,e.i(77379).default)("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]]);e.s(["Play",0,t],64213)},64439,e=>{"use strict";var t=e.i(54710),a=e.i(34416),r=e.i(20014),n=e.i(8652),i=e.i(58436);e.s(["ExternalObsidianVaultSettings",0,function({vaultPath:e,vaultName:s,onSave:l}){let[o,d]=(0,a.useState)(e),[u,c]=(0,a.useState)(s),[h,m]=(0,a.useState)(null);(0,a.useEffect)(()=>{d(e)},[e]),(0,a.useEffect)(()=>{c(s)},[s]);let x=async()=>{m("save");try{let e=o.trim(),t=u.trim()||(e.split(/[\\/]+/).filter(Boolean).at(-1)??"");await l({externalObsidianVaultPath:e,externalObsidianVaultName:t})}finally{m(null)}},f=!!(e||s),p=async()=>{m("clear");try{await l({externalObsidianVaultPath:null,externalObsidianVaultName:null}),d(""),c("")}finally{m(null)}};return(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("label",{className:"text-sm text-muted-foreground shrink-0 min-w-[80px]",children:"Path"}),(0,t.jsx)(i.DirectoryPickerField,{value:o,onChange:d,title:"Choose external Obsidian vault directory",placeholder:"Choose an external Obsidian vault folder",defaultPath:e||void 0,inputClassName:"max-w-[480px]"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("label",{className:"text-sm text-muted-foreground shrink-0 min-w-[80px]",children:"Vault Name"}),(0,t.jsx)(n.Input,{value:u,onChange:e=>c(e.target.value),placeholder:"MyVault",className:"max-w-[240px]"})]}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"Use Choose to pick a local folder. Absolute local paths still work, including cloud-synced locations such as iCloud Drive, Dropbox, OneDrive, or Google Drive. Use Clear to remove the integration; both fields are nulled together to avoid the “path set without a name” error state."})]}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,t.jsx)(r.Button,{size:"sm",onClick:x,disabled:null!==h,children:"save"===h?"Saving...":"Save External Vault Settings"}),f&&(0,t.jsx)(r.Button,{size:"sm",variant:"outline",onClick:p,disabled:null!==h,children:"clear"===h?"Clearing...":"Clear"})]}),f&&(0,t.jsxs)("div",{className:"text-xs text-muted-foreground space-y-0.5 pt-1",children:[(0,t.jsxs)("p",{children:["Current path:"," ",(0,t.jsx)("code",{className:"text-foreground",children:e||"(not set)"})]}),(0,t.jsxs)("p",{children:["Current vault name:"," ",(0,t.jsx)("code",{className:"text-foreground",children:s||"(not set)"})]})]})]})},"PrimaryPlatformField",0,function({health:e,value:n,defaultValue:i,modified:s,onSave:l}){let o=Object.entries(e?.messaging??{}).filter(([e,t])=>"dashboard"!==e&&t.configured&&t.ownerConfigured).map(([e])=>e),[d,u]=(0,a.useState)(n),[c,h]=(0,a.useState)(!1);(0,a.useEffect)(()=>{u(n)},[n]);let m=d!==n,x=n&&!o.includes(n),f=async()=>{h(!0);try{await l("primaryPlatform",d)}finally{h(!1)}};return(0,t.jsxs)("div",{className:"space-y-2 py-2 border-b",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("label",{className:"text-sm font-medium",children:["Fallback Primary Platform",s&&(0,t.jsx)("span",{className:"ml-2 text-xs text-amber-600",children:"(unsaved)"})]}),void 0!==i&&(0,t.jsxs)("span",{className:"text-xs text-muted-foreground",children:["default: ",i||"(empty)"]})]}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[o.map(e=>(0,t.jsx)(r.Button,{variant:d===e?"default":"outline",size:"sm",disabled:c,onClick:()=>u(e),className:"capitalize",children:e},e)),x&&(0,t.jsxs)(r.Button,{variant:d===n?"default":"outline",size:"sm",disabled:c,onClick:()=>u(n),className:"capitalize opacity-60",title:"Current value — not currently configured with an owner ID",children:[n," (not configured)"]}),0===o.length&&!x&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:"Configure a messaging app with an owner ID first."})]}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"Last-resort destination used when no default reminder destinations are selected above and no per-request override is supplied. Only messaging apps with a configured owner ID appear here."}),(0,t.jsx)("div",{children:(0,t.jsx)(r.Button,{size:"sm",variant:"outline",disabled:!m||c,onClick:f,children:c?"Applying...":"Apply"})})]})}])},9878,e=>{"use strict";var t=e.i(54710),a=e.i(34416),r=e.i(88423),n=e.i(75187),i=e.i(36413),s=e.i(88),l=e.i(64439);function o(e){return e%24/24*Math.PI*2-Math.PI/2}function d(e,t){return{x:120+t*Math.cos(e),y:120+t*Math.sin(e)}}function u(e,t,a){let r=t-e;r<=0&&(r+=2*Math.PI),r>2*Math.PI-.001&&(r=2*Math.PI-.001);let n=+(r>Math.PI),i=d(e,a),s=d(e+r,a);return`M ${i.x} ${i.y} A ${a} ${a} 0 ${n} 1 ${s.x} ${s.y}`}function c(e){let[t,a]=e.split(":").map(Number);return(t??0)+(a??0)/60}function h(e){let t=Math.floor((e%24+24)%24),a=Math.round((e-Math.floor(e))*60)%60;return`${String(t).padStart(2,"0")}:${String(a).padStart(2,"0")}`}function m(e){return Math.round(4*e)/4}function x(e){return Math.round(e)%24}let f="var(--color-destructive)",p="var(--color-success)",g="var(--color-primary)";function y({values:e,onChange:r}){let n,i,s,l=(0,a.useRef)(null),[b,j]=(0,a.useState)(null),[N,k]=(0,a.useState)(null),w=c(e.quietHoursStart),C=c(e.quietHoursEnd),S=e.activeStartHour,H=e.activeEndHour%24,E=o(w),M=o(C),P=o(S),A=o(H),q=o(e.dayBoundaryHour),D=()=>{j(null)};return(0,t.jsx)("div",{className:"flex items-center justify-center",children:(0,t.jsxs)("svg",{ref:l,viewBox:"0 0 240 240",className:"w-full max-w-[280px] select-none touch-none",onPointerMove:t=>{if(!b)return;let a=(e=>{let t,a=l.current;if(!a)return 0;let r=a.getBoundingClientRect(),n=240/r.width,i=240/r.height,s=(e.clientX-r.left)*n-120;return(t=(Math.atan2((e.clientY-r.top)*i-120,s)+Math.PI/2)/(2*Math.PI)*24)<0&&(t+=24),t%24})(t),n={...e};switch(b){case"quietStart":n.quietHoursStart=h(m(a));break;case"quietEnd":n.quietHoursEnd=h(m(a));break;case"activeStart":n.activeStartHour=x(a);break;case"activeEnd":{let e=x(a);n.activeEndHour=0===e?24:e}}r(n)},onPointerUp:D,onPointerLeave:D,children:[(0,t.jsx)("circle",{cx:120,cy:120,r:100,fill:"none",stroke:"currentColor",strokeWidth:1,className:"text-border"}),Array.from({length:24},(e,a)=>{let r=o(a),n=a%3==0,i=d(r,n?95:97),s=d(r,100);return(0,t.jsx)("line",{x1:i.x,y1:i.y,x2:s.x,y2:s.y,stroke:"currentColor",strokeWidth:n?1.5:.5,className:"text-muted-foreground"},a)}),[0,3,6,9,12,15,18,21].map(e=>{let a=d(o(e),108);return(0,t.jsx)("text",{x:a.x,y:a.y,textAnchor:"middle",dominantBaseline:"central",className:"fill-muted-foreground text-[9px]",children:e},e)}),(0,t.jsx)("path",{d:u(E,M,90),fill:"none",stroke:f,strokeWidth:8,strokeLinecap:"round",opacity:.6}),(0,t.jsx)("path",{d:u(P,A,75),fill:"none",stroke:p,strokeWidth:8,strokeLinecap:"round",opacity:.6}),(n=d(q,60),i=d(q,100),(0,t.jsx)("line",{x1:n.x,y1:n.y,x2:i.x,y2:i.y,stroke:g,strokeWidth:2,strokeDasharray:"4 2"})),(s=d(q,53),(0,t.jsx)("text",{x:s.x,y:s.y,textAnchor:"middle",dominantBaseline:"central",className:"fill-primary text-[8px] font-medium",children:"day"})),function({dragging:e,hovered:a,setHovered:r,handlePointerDown:n,quietStartA:i,quietEndA:s,activeStartA:l,activeEndA:o,QUIET_R:d,ACTIVE_R:u,values:c}){let h=e??a,m=[{target:"quietStart",angle:i,r:d,color:f,label:c.quietHoursStart},{target:"quietEnd",angle:s,r:d,color:f,label:c.quietHoursEnd},{target:"activeStart",angle:l,r:u,color:p,label:`${c.activeStartHour}:00`},{target:"activeEnd",angle:o,r:u,color:p,label:`${c.activeEndHour}:00`}].sort((e,t)=>(e.target===h)-(t.target===h));return(0,t.jsx)(t.Fragment,{children:m.map(e=>(0,t.jsx)(v,{angle:e.angle,r:e.r,color:e.color,label:e.label,active:e.target===h,onPointerDown:n(e.target),onPointerEnter:()=>r(e.target),onPointerLeave:()=>r(null)},e.target))})}({dragging:b,hovered:N,setDragging:j,setHovered:k,handlePointerDown:e=>t=>{t.preventDefault(),t.target.setPointerCapture(t.pointerId),j(e)},quietStartA:E,quietEndA:M,activeStartA:P,activeEndA:A,QUIET_R:90,ACTIVE_R:75,values:e}),(0,t.jsxs)("text",{x:120,y:112,textAnchor:"middle",className:"fill-muted-foreground text-[8px]",children:[(0,t.jsx)("tspan",{style:{fill:f},children:"●"})," quiet hours"]}),(0,t.jsxs)("text",{x:120,y:124,textAnchor:"middle",className:"fill-muted-foreground text-[8px]",children:[(0,t.jsx)("tspan",{style:{fill:p},children:"●"})," active window"]}),(0,t.jsxs)("text",{x:120,y:136,textAnchor:"middle",className:"fill-muted-foreground text-[8px]",children:[(0,t.jsx)("tspan",{style:{fill:g},children:"---"})," day boundary"]})]})})}function v({angle:e,r:a,color:r,label:n,active:i,onPointerDown:s,onPointerEnter:l,onPointerLeave:o}){let u=d(e,a),{lx:c,ly:h}={lx:Math.max(12,Math.min(228,u.x)),ly:Math.max(12,Math.min(228,u.y-12))};return(0,t.jsxs)("g",{onPointerDown:s,onPointerEnter:l,onPointerLeave:o,className:"cursor-grab active:cursor-grabbing",children:[(0,t.jsx)("circle",{cx:u.x,cy:u.y,r:12,fill:"transparent"}),(0,t.jsx)("circle",{cx:u.x,cy:u.y,r:i?7:5,fill:r,stroke:"var(--color-background)",strokeWidth:2}),i&&(0,t.jsx)("text",{x:c,y:h,textAnchor:"middle",className:"fill-foreground text-[9px] font-medium pointer-events-none",children:n})]})}var b=e.i(72740),j=e.i(64213),N=e.i(25795),k=e.i(20014),w=e.i(8652),C=e.i(74490),S=e.i(48467),H=e.i(57415),E=e.i(14260),M=e.i(95486),P=e.i(65268);let A=["delegated-sync"];function q(){let{data:e,isLoading:a}=(0,E.useQuery)({queryKey:A,queryFn:()=>P.api.get("/delegated-sync"),staleTime:5e3,refetchInterval:15e3});if(a||!e)return null;let r=Object.entries(e.cadences).map(([e,t])=>({id:e,...t}));if(!e.workerRunning&&0===r.length)return null;if(!e.workerRunning)return(0,t.jsxs)(C.Card,{children:[(0,t.jsx)(C.CardHeader,{children:(0,t.jsx)(C.CardTitle,{children:"Background Sync"})}),(0,t.jsxs)("div",{className:"p-4 text-sm text-muted-foreground",children:["No integrations are in delegated mode, so background cadences are inactive. Move an integration (Calendar / Gmail / Notion) to delegated mode in ",(0,t.jsx)("code",{children:"/connections"})," to enable opt-in cadences here. Native-mode integrations fetch their observations directly during the hourly check turn and do not use this worker."]})]});let n=r.some(e=>e.enabled);return(0,t.jsxs)(C.Card,{children:[(0,t.jsx)(C.CardHeader,{children:(0,t.jsxs)(C.CardTitle,{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{children:"Background Sync"}),e.withinActiveHours?(0,t.jsx)(S.Badge,{variant:"green",children:"active"}):(0,t.jsx)(S.Badge,{variant:"gray",children:"outside active hours"})]})}),(0,t.jsxs)("div",{className:"space-y-1 p-4 pt-0",children:[(0,t.jsx)("p",{className:"pb-2 text-xs text-muted-foreground",children:"Background cadences poll Calendar / Gmail / Notion through the backend's MCP subprocess so the hourly check sees fresh observations. Each row uses either the delegated backend (when the integration is in delegated mode) or the main backend (when native). Every poll spends tokens — by default they are off. Enable just the cadences you want, and they will respect the shared active-hours window below."}),(0,t.jsx)("div",{className:"space-y-2",children:r.map(e=>(0,t.jsx)(D,{row:e},e.id))}),n&&(0,t.jsx)(B,{startHour:e.activeHours.startHour,endHour:e.activeHours.endHour})]})]})}function D({row:e}){let r,n,i=(r=(0,M.useQueryClient)(),(0,H.useMutation)({mutationFn:({cadenceId:e,body:t})=>P.api.patch(`/delegated-sync/cadences/${encodeURIComponent(e)}`,t),onSuccess:()=>{r.invalidateQueries({queryKey:A})}})),s=(n=(0,M.useQueryClient)(),(0,H.useMutation)({mutationFn:({cadenceId:e})=>P.api.post(`/delegated-sync/cadences/${encodeURIComponent(e)}/run`,{}),onSuccess:()=>{n.invalidateQueries({queryKey:A})}})),[l,o]=(0,a.useState)(String(Math.round(e.intervalSeconds/60))),[d,u]=(0,a.useState)(null),[c,h]=(0,a.useState)(null);(0,a.useEffect)(()=>{o(String(Math.round(e.intervalSeconds/60)))},[e.intervalSeconds]);let m=Math.ceil(e.softFloorSeconds/60),x=Math.round(e.defaultIntervalSeconds/60),f=async()=>{h(null);try{await s.mutateAsync({cadenceId:e.id})}catch(e){h(e instanceof Error?e.message:"Run Now failed")}},p=i.isPending,g=s.isPending,y=e.intervalSeconds===e.defaultIntervalSeconds,v="native"===e.mode;return(0,t.jsxs)("div",{className:"rounded border border-border/50 p-3",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)("p",{className:"text-sm font-medium text-foreground",children:e.displayName}),"native"===e.mode&&(0,t.jsx)(S.Badge,{variant:"green",children:"native"}),"delegated"===e.mode&&(0,t.jsxs)(S.Badge,{variant:"blue",children:["delegated",e.backend?` \xb7 ${e.backend}`:""]}),!v&&"tripped"===e.circuitState&&(0,t.jsx)(S.Badge,{variant:"red",children:"circuit tripped"}),!v&&e.failureCount>0&&"ok"===e.circuitState&&(0,t.jsxs)(S.Badge,{variant:"amber",children:[e.failureCount," recent failure",1===e.failureCount?"":"s"]})]}),(0,t.jsx)("p",{className:"mt-0.5 text-xs text-muted-foreground",children:e.description}),!v&&(0,t.jsx)(I,{row:e})]}),!v&&(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,t.jsx)(k.Button,{variant:e.enabled?"default":"outline",size:"sm",onClick:()=>{i.mutate({cadenceId:e.id,body:{enabled:!e.enabled}})},disabled:p,children:p?(0,t.jsx)(b.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):e.enabled?"Enabled":"Disabled"}),(0,t.jsxs)(k.Button,{variant:"outline",size:"sm",onClick:f,disabled:g,title:"Run this cadence once, regardless of schedule",children:[g?(0,t.jsx)(b.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):(0,t.jsx)(j.Play,{className:"h-3.5 w-3.5"}),(0,t.jsx)("span",{className:"ml-1",children:"Run now"})]})]})]}),v?(0,t.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:"Observations land via the in-turn fetch during the hourly check turn — no background cadence runs for this row."}):(0,t.jsxs)("div",{className:"mt-2 flex items-center gap-2 text-xs text-muted-foreground",children:[(0,t.jsxs)("label",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{children:"Interval:"}),(0,t.jsx)(w.Input,{type:"number",min:m,max:1440,value:l,onChange:e=>o(e.target.value),onBlur:()=>{u(null);let t=Number(l);!Number.isInteger(t)||t<=0?u("Whole positive number required"):t<m?u(`Minimum ${m} min`):t>1440?u("Maximum 1440 min (24 h)"):60*t!==e.intervalSeconds&&i.mutate({cadenceId:e.id,body:{intervalSeconds:60*t}},{onError:e=>u(e.message)})},onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),e.target.blur())},className:"h-7 w-20 px-2 text-xs"}),(0,t.jsx)("span",{children:"min"})]}),(0,t.jsxs)("span",{className:"text-muted-foreground/70",children:["(",m,"–",1440,"; default ",x,")"]}),!y&&(0,t.jsxs)("button",{type:"button",onClick:()=>{o(String(x)),i.mutate({cadenceId:e.id,body:{intervalSeconds:60*x}})},className:"inline-flex items-center gap-0.5 text-[10px] text-muted-foreground hover:text-foreground",children:[(0,t.jsx)(N.RotateCcw,{className:"h-2.5 w-2.5"}),"reset"]}),d&&(0,t.jsx)("span",{className:"text-destructive",children:d})]}),c&&(0,t.jsxs)("p",{className:"mt-1 text-xs text-destructive",children:["Run Now: ",c]})]})}function I({row:e}){var r;let n=(0,a.useMemo)(()=>R(e.lastSuccessAt),[e.lastSuccessAt]),i=(0,a.useMemo)(()=>R(e.nextRunAt),[e.nextRunAt]);return e.lastAttemptAt||e.nextRunAt?(0,t.jsxs)("p",{className:"mt-1 text-xs text-muted-foreground/70",children:[e.lastSuccessAt?`Last success ${n}.`:"No successful run yet.",e.enabled&&e.nextRunAt&&` Next run ${i}.`,e.lastError&&` Last error: ${(r=e.lastError).length<=80?r:`${r.slice(0,79)}…`}`]}):(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground/70",children:"Has not run yet."})}function B({startHour:e,endHour:r}){let n,i=(n=(0,M.useQueryClient)(),(0,H.useMutation)({mutationFn:e=>P.api.patch("/delegated-sync/active-hours",e),onSuccess:()=>{n.invalidateQueries({queryKey:A})}})),[s,l]=(0,a.useState)(String(e)),[o,d]=(0,a.useState)(String(r)),[u,c]=(0,a.useState)(null);(0,a.useEffect)(()=>{l(String(e))},[e]),(0,a.useEffect)(()=>{d(String(r))},[r]);let h=()=>{c(null);let t=Number(s),a=Number(o);!Number.isInteger(t)||t<0||t>23?c("Start must be an integer 0–23"):!Number.isInteger(a)||a<1||a>24?c("End must be an integer 1–24"):t>=a?c("Start must be earlier than end"):(t!==e||a!==r)&&i.mutate({startHour:t,endHour:a},{onError:e=>c(e.message)})};return(0,t.jsxs)("div",{className:"mt-3 rounded border border-border/50 bg-muted/30 p-3",children:[(0,t.jsx)("p",{className:"text-sm font-medium text-foreground",children:"Active hours"}),(0,t.jsx)("p",{className:"mt-0.5 text-xs text-muted-foreground",children:'Shared by every enabled cadence. Outside this window, no cadence runs (Run Now still works). Interpreted in the configured timezone. End hour is exclusive — set 24 for "through 23:59".'}),(0,t.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-3 text-xs",children:[(0,t.jsxs)("label",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{children:"Start:"}),(0,t.jsx)(w.Input,{type:"number",min:0,max:23,value:s,onChange:e=>l(e.target.value),onBlur:h,onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),e.target.blur())},className:"h-7 w-16 px-2 text-xs"}),(0,t.jsx)("span",{children:":00"})]}),(0,t.jsxs)("label",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{children:"End:"}),(0,t.jsx)(w.Input,{type:"number",min:1,max:24,value:o,onChange:e=>d(e.target.value),onBlur:h,onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),e.target.blur())},className:"h-7 w-16 px-2 text-xs"}),(0,t.jsx)("span",{children:":00"})]}),i.isPending&&(0,t.jsx)(b.Loader2,{className:"h-3.5 w-3.5 animate-spin text-muted-foreground"}),u&&(0,t.jsx)("span",{className:"text-destructive",children:u})]})]})}function R(e){var t,a;if(!e)return"—";let r=Date.parse(e);if(!Number.isFinite(r))return"—";let n=Math.round((r-Date.now())/1e3);return n>=0?(t=n)<60?`in ${t}s`:t<3600?`in ${Math.round(t/60)}m`:t<86400?`in ${Math.round(t/3600)}h`:`in ${Math.round(t/86400)}d`:(a=-n)<60?`${a}s ago`:a<3600?`${Math.round(a/60)}m ago`:a<86400?`${Math.round(a/3600)}h ago`:`${Math.round(a/86400)}d ago`}e.s(["default",0,function(){let{data:e}=(0,r.useConfig)(),{df:o}=(0,r.useConfigDefaults)(),{data:d}=(0,n.useHealth)(),{deferSaveFor:u,dv:c,dirtyFields:h,setDirty:m}=(0,i.useDirtyFields)(),x=(0,a.useCallback)(t=>{e&&(m("quietHoursStart",t.quietHoursStart,e.quietHoursStart),m("quietHoursEnd",t.quietHoursEnd,e.quietHoursEnd),m("hourlyCheckActiveStartHour",t.activeStartHour,e.hourlyCheckActiveStartHour),m("hourlyCheckActiveEndHour",t.activeEndHour,e.hourlyCheckActiveEndHour))},[e,m]);if(!e)return(0,t.jsx)("div",{className:"text-muted-foreground",children:"Loading..."});let f=u(e),p={quietHoursStart:c("quietHoursStart",e.quietHoursStart),quietHoursEnd:c("quietHoursEnd",e.quietHoursEnd),activeStartHour:c("hourlyCheckActiveStartHour",e.hourlyCheckActiveStartHour),activeEndHour:c("hourlyCheckActiveEndHour",e.hourlyCheckActiveEndHour),dayBoundaryHour:c("dayBoundaryHour",e.dayBoundaryHour)};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-2xl font-semibold text-foreground",children:"Schedule & Notifications"}),(0,t.jsx)("p",{className:"mt-1 max-w-3xl text-sm text-muted-foreground",children:"When the agent runs in the background and how often it can interrupt you. All times are interpreted in the configured timezone."})]}),(0,t.jsxs)(s.ConfigSection,{title:"Time axis",helpDocId:"concepts/agent-day",children:[(0,t.jsx)("p",{className:"pb-2 text-xs text-muted-foreground",children:"Drag the handles to adjust quiet hours (red) and the hourly-check active window (green). The dashed blue line marks the day boundary. Changes are staged — save with the bar below."}),(0,t.jsx)(y,{values:p,onChange:x})]}),(0,t.jsxs)(s.ConfigSection,{title:"Day shape",helpDocId:"concepts/agent-day",children:[(0,t.jsx)(s.EditableField,{label:"Timezone",value:c("timezone",e.timezone),configKey:"timezone",modified:h.has("timezone"),defaultValue:o("timezone"),description:"IANA timezone name (e.g. America/New_York, America/Los_Angeles). All schedules, quiet hours, and daily boundaries are interpreted in this zone.",onSave:f}),(0,t.jsx)(s.EditableField,{label:"Day Boundary Hour",value:c("dayBoundaryHour",e.dayBoundaryHour),configKey:"dayBoundaryHour",type:"number",min:0,max:9,modified:h.has("dayBoundaryHour"),defaultValue:o("dayBoundaryHour"),description:"Hour (0–9, local time) at which a new agent day begins. At this hour the previous today.md is archived, a new one is generated, and daily retention and summary routines run. Pick a time you're reliably asleep — 04:00 is the default.",onSave:f})]}),(0,t.jsxs)(s.ConfigSection,{title:"Hourly Check",helpDocId:"features/routines/hourly-check",children:[(0,t.jsxs)("p",{className:"pb-2 text-xs text-muted-foreground",children:["The hourly check is the agent’s passive review loop. At each interval it queries pending observations (file edits, calendar updates, git commits, Notion changes), folds anything actionable into your context files (",(0,t.jsx)("code",{children:"today.md"}),", ",(0,t.jsx)("code",{children:"roadmap.md"}),", project notes), and stays silent otherwise. Most runs produce no output — that is by design."]}),(0,t.jsx)(s.EditableBooleanField,{label:"Hourly Check Enabled",value:c("hourlyCheckEnabled",e.hourlyCheckEnabled),configKey:"hourlyCheckEnabled",modified:h.has("hourlyCheckEnabled"),defaultValue:o("hourlyCheckEnabled"),description:"Master switch for the polling routine. When off, the agent only runs on direct messages, schedule.approaching events, and explicitly scheduled tasks.",onSave:f}),(0,t.jsx)(s.EditableField,{label:"Check Interval",value:c("hourlyCheckIntervalMinutes",e.hourlyCheckIntervalMinutes),configKey:"hourlyCheckIntervalMinutes",type:"number",suffix:"min",min:1,max:1440,modified:h.has("hourlyCheckIntervalMinutes"),defaultValue:o("hourlyCheckIntervalMinutes"),description:"How often the check runs during the active window. Any positive integer in minutes (1–1440, i.e. up to 24 hours). Despite the “hourly” name, you can dial this lower for higher-frequency checks or higher to cut quota burn. The cadence is anchored to the active-window start, so the first fire of each agent-day lands at the start of the window.",onSave:f}),(0,t.jsx)(s.EditableField,{label:"Active Start Hour",value:c("hourlyCheckActiveStartHour",e.hourlyCheckActiveStartHour),configKey:"hourlyCheckActiveStartHour",type:"number",min:0,max:23,modified:h.has("hourlyCheckActiveStartHour"),defaultValue:o("hourlyCheckActiveStartHour"),description:"Hour (0–23, local time) when the hourly check window opens. Runs before this hour are skipped entirely.",onSave:f}),(0,t.jsx)(s.EditableField,{label:"Active End Hour",value:c("hourlyCheckActiveEndHour",e.hourlyCheckActiveEndHour),configKey:"hourlyCheckActiveEndHour",type:"number",min:1,max:24,modified:h.has("hourlyCheckActiveEndHour"),defaultValue:o("hourlyCheckActiveEndHour"),description:"Hour (1–24, local time) when the window closes. Exclusive — e.g. set 24 to run through 23:59. Prevents the check from firing while you sleep.",onSave:f}),(0,t.jsx)(s.EditableField,{label:"Min Observations",value:c("hourlyCheckMinObservations",e.hourlyCheckMinObservations),configKey:"hourlyCheckMinObservations",type:"number",min:0,max:1e3,modified:h.has("hourlyCheckMinObservations"),defaultValue:o("hourlyCheckMinObservations"),description:"Minimum number of pending user-actor observations required for the check to actually launch an agent run. If fewer are queued, the tick is skipped with no cost. Set higher (e.g. 3–5) if you see too many no-op runs.",onSave:f}),(0,t.jsx)("p",{className:"pt-2 text-xs text-muted-foreground",children:"Trigger one immediately from the CLI:"}),(0,t.jsx)("pre",{className:"overflow-x-auto rounded bg-muted p-2 font-mono text-[11px] text-muted-foreground",children:'curl -X POST http://localhost:8321/api/agent/run-now -H "Authorization: Bearer <daemon-api-token>" -H "Content-Type: application/json" -d \'{"reason":"manual"}\''})]}),(0,t.jsx)(q,{}),(0,t.jsxs)(s.ConfigSection,{title:"Notifications",helpDocId:"features/operations/quiet-hours",children:[(0,t.jsx)("p",{className:"pb-2 text-xs text-muted-foreground",children:"Rate limits, quiet hours, and delivery destinations for outbound notifications the agent sends to you. “Notification” = a proactive message (reminder, alert, summary) — it does not include replies to messages you initiated."}),(0,t.jsx)(s.EditableField,{label:"Max Per Hour",value:c("maxNotificationsPerHour",e.maxNotificationsPerHour),configKey:"maxNotificationsPerHour",type:"number",modified:h.has("maxNotificationsPerHour"),defaultValue:o("maxNotificationsPerHour"),description:"Hard cap on outbound notifications in any rolling 60-minute window. Notifications above the cap are suppressed (not delivered, but still logged to Activity → Notifications so you can see what was dropped). Protects you from runaway notification loops.",onSave:f}),(0,t.jsx)(s.EditableField,{label:"Max Per Day",value:c("maxNotificationsPerDay",e.maxNotificationsPerDay),configKey:"maxNotificationsPerDay",type:"number",modified:h.has("maxNotificationsPerDay"),defaultValue:o("maxNotificationsPerDay"),description:"Hard cap per calendar day (resets at the Day Boundary Hour). A safety net on top of the per-hour cap. Suppressed notifications are still logged.",onSave:f}),(0,t.jsx)(s.EditableField,{label:"Quiet Hours Start",value:c("quietHoursStart",e.quietHoursStart),configKey:"quietHoursStart",modified:h.has("quietHoursStart"),defaultValue:o("quietHoursStart"),description:"24-hour time (HH:MM, e.g. 22:00) when quiet hours begin in the configured timezone. During quiet hours, regular notifications are held back. Safety-category notifications (deadline, error, security, critical) still go through.",onSave:f}),(0,t.jsx)(s.EditableField,{label:"Quiet Hours End",value:c("quietHoursEnd",e.quietHoursEnd),configKey:"quietHoursEnd",modified:h.has("quietHoursEnd"),defaultValue:o("quietHoursEnd"),description:"24-hour time (HH:MM, e.g. 08:00) when quiet hours end. If end is earlier than start, the window wraps over midnight.",onSave:f}),(0,t.jsx)(s.EditableField,{label:"Batch Interval",value:c("batchIntervalMinutes",e.batchIntervalMinutes),configKey:"batchIntervalMinutes",type:"number",suffix:"min",modified:h.has("batchIntervalMinutes"),defaultValue:o("batchIntervalMinutes"),description:"Minimum minutes between notification deliveries from the same routine. Multiple notifications queued within this window are combined into a single message so you don’t get spammed.",onSave:f}),(0,t.jsxs)("div",{className:"py-2 border-b text-sm text-muted-foreground",children:["Default reminder destinations are managed in"," ",(0,t.jsx)("a",{href:"/connections/messaging",className:"text-foreground underline underline-offset-2 hover:no-underline",children:"Connections → Messaging → Default Reminder Destinations"}),"."]}),(0,t.jsx)(l.PrimaryPlatformField,{health:d,value:c("primaryPlatform",e.primaryPlatform),defaultValue:o("primaryPlatform"),modified:h.has("primaryPlatform"),onSave:f})]})]})}],9878)}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,65268,e=>{"use strict";class t extends Error{status;body;constructor(e,t){super("string"==typeof t?.message?t.message:"string"==typeof t?.error?t.error:`API Error ${e}`),this.status=e,this.body=t,this.name="ApiError"}}function r(e,t){if(!t)return e;let r={...e.headers??{},...t};return{...e,headers:r}}let s=new class{async get(e,s){let i=s&&"object"==typeof s&&("params"in s||"headers"in s)?s:{params:s},n=new URL(`/api${e}`,window.location.origin);if(i.params)for(let[e,t]of Object.entries(i.params))void 0!==t&&n.searchParams.set(e,String(t));let a=await fetch(n.toString(),r({},i.headers));if(!a.ok)throw new t(a.status,await a.json().catch(()=>null));return a.json()}async post(e,s,i){let n=r({method:"POST",headers:s?{"Content-Type":"application/json"}:void 0,body:s?JSON.stringify(s):void 0},i?.headers),a=await fetch(`/api${e}`,n);if(!a.ok)throw new t(a.status,await a.json().catch(()=>null));return a.json()}async put(e,s,i){let n=r({method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)},i?.headers),a=await fetch(`/api${e}`,n);if(!a.ok)throw new t(a.status,await a.json().catch(()=>null));return a.json()}async patch(e,s,i){let n=r({method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)},i?.headers),a=await fetch(`/api${e}`,n);if(!a.ok)throw new t(a.status,await a.json().catch(()=>null));return a.json()}async delete(e,s){let i=r({method:"DELETE"},s?.headers),n=await fetch(`/api${e}`,i);if(!n.ok)throw new t(n.status,await n.json().catch(()=>null));return n.json()}async upload(e,r,s="file"){let i=new FormData;i.append(s,r);let n=await fetch(`/api${e}`,{method:"POST",body:i});if(!n.ok)throw new t(n.status,await n.json().catch(()=>null));return n.json()}};e.s(["ApiError",0,t,"api",0,s])},64683,e=>{"use strict";var t={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},r=new class{#e=t;#t=!1;setTimeoutProvider(e){this.#e=e}setTimeout(e,t){return this.#e.setTimeout(e,t)}clearTimeout(e){this.#e.clearTimeout(e)}setInterval(e,t){return this.#e.setInterval(e,t)}clearInterval(e){this.#e.clearInterval(e)}};e.s(["systemSetTimeoutZero",0,function(e){setTimeout(e,0)},"timeoutManager",0,r])},31541,e=>{"use strict";let t,r,s,i,n,a;var o=e.i(64683).systemSetTimeoutZero,u=(t=[],r=0,s=e=>{e()},i=e=>{e()},n=o,{batch:e=>{let a;r++;try{a=e()}finally{let e;--r||(e=t,t=[],e.length&&n(()=>{i(()=>{e.forEach(e=>{s(e)})})}))}return a},batchCalls:e=>(...t)=>{a(()=>{e(...t)})},schedule:a=e=>{r?t.push(e):n(()=>{s(e)})},setNotifyFunction:e=>{s=e},setBatchNotifyFunction:e=>{i=e},setScheduler:e=>{n=e}});e.s(["notifyManager",0,u])},31074,37655,e=>{"use strict";var t=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}};e.s(["Subscribable",0,t],37655);var r=new class extends t{#r;#s;#i;constructor(){super(),this.#i=e=>{if("u">typeof window&&window.addEventListener){let t=()=>e();return window.addEventListener("visibilitychange",t,!1),()=>{window.removeEventListener("visibilitychange",t)}}}}onSubscribe(){this.#s||this.setEventListener(this.#i)}onUnsubscribe(){this.hasListeners()||(this.#s?.(),this.#s=void 0)}setEventListener(e){this.#i=e,this.#s?.(),this.#s=e(e=>{"boolean"==typeof e?this.setFocused(e):this.onFocus()})}setFocused(e){this.#r!==e&&(this.#r=e,this.onFocus())}onFocus(){let e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return"boolean"==typeof this.#r?this.#r:globalThis.document?.visibilityState!=="hidden"}};e.s(["focusManager",0,r],31074)},49988,86954,e=>{"use strict";let t;e.i(13073);var r=e.i(64683),s="u"<typeof window||"Deno"in globalThis;function i(e,t){return(t?.queryKeyHashFn||n)(e)}function n(e){return JSON.stringify(e,(e,t)=>c(t)?Object.keys(t).sort().reduce((e,r)=>(e[r]=t[r],e),{}):t)}function a(e,t){return e===t||typeof e==typeof t&&!!e&&!!t&&"object"==typeof e&&"object"==typeof t&&Object.keys(t).every(r=>a(e[r],t[r]))}var o=Object.prototype.hasOwnProperty;function u(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function c(e){if(!l(e))return!1;let t=e.constructor;if(void 0===t)return!0;let r=t.prototype;return!!l(r)&&!!r.hasOwnProperty("isPrototypeOf")&&Object.getPrototypeOf(e)===Object.prototype}function l(e){return"[object Object]"===Object.prototype.toString.call(e)}var h=Symbol();e.s(["addConsumeAwareSignal",0,function(e,t,r){let s,i=!1;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(s??=t(),i||(i=!0,s.aborted?r():s.addEventListener("abort",r,{once:!0})),s)}),e},"addToEnd",0,function(e,t,r=0){let s=[...e,t];return r&&s.length>r?s.slice(1):s},"addToStart",0,function(e,t,r=0){let s=[t,...e];return r&&s.length>r?s.slice(0,-1):s},"ensureQueryFn",0,function(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:e.queryFn&&e.queryFn!==h?e.queryFn:()=>Promise.reject(Error(`Missing queryFn: '${e.queryHash}'`))},"functionalUpdate",0,function(e,t){return"function"==typeof e?e(t):e},"hashKey",0,n,"hashQueryKeyByOptions",0,i,"isServer",0,s,"isValidTimeout",0,function(e){return"number"==typeof e&&e>=0&&e!==1/0},"matchMutation",0,function(e,t){let{exact:r,status:s,predicate:i,mutationKey:o}=e;if(o){if(!t.options.mutationKey)return!1;if(r){if(n(t.options.mutationKey)!==n(o))return!1}else if(!a(t.options.mutationKey,o))return!1}return(!s||t.state.status===s)&&(!i||!!i(t))},"matchQuery",0,function(e,t){let{type:r="all",exact:s,fetchStatus:n,predicate:o,queryKey:u,stale:c}=e;if(u){if(s){if(t.queryHash!==i(u,t.options))return!1}else if(!a(t.queryKey,u))return!1}if("all"!==r){let e=t.isActive();if("active"===r&&!e||"inactive"===r&&e)return!1}return("boolean"!=typeof c||t.isStale()===c)&&(!n||n===t.state.fetchStatus)&&(!o||!!o(t))},"noop",0,function(){},"partialMatchKey",0,a,"replaceData",0,function(e,t,r){return"function"==typeof r.structuralSharing?r.structuralSharing(e,t):!1!==r.structuralSharing?function e(t,r,s=0){if(t===r)return t;if(s>500)return r;let i=u(t)&&u(r);if(!i&&!(c(t)&&c(r)))return r;let n=(i?t:Object.keys(t)).length,a=i?r:Object.keys(r),l=a.length,h=i?Array(l):{},d=0;for(let u=0;u<l;u++){let c=i?u:a[u],l=t[c],p=r[c];if(l===p){h[c]=l,(i?u<n:o.call(t,c))&&d++;continue}if(null===l||null===p||"object"!=typeof l||"object"!=typeof p){h[c]=p;continue}let f=e(l,p,s+1);h[c]=f,f===l&&d++}return n===l&&d===n?t:h}(e,t):t},"resolveEnabled",0,function(e,t){return"function"==typeof e?e(t):e},"resolveStaleTime",0,function(e,t){return"function"==typeof e?e(t):e},"shallowEqualObjects",0,function(e,t){if(!t||Object.keys(e).length!==Object.keys(t).length)return!1;for(let r in e)if(e[r]!==t[r])return!1;return!0},"shouldThrowError",0,function(e,t){return"function"==typeof e?e(...t):!!e},"skipToken",0,h,"sleep",0,function(e){return new Promise(t=>{r.timeoutManager.setTimeout(t,e)})},"timeUntilStale",0,function(e,t){return Math.max(e+(t||0)-Date.now(),0)}],86954);var d=(t=()=>s,{isServer:()=>t(),setIsServer(e){t=e}});e.s(["environmentManager",0,d],49988)},28547,27502,44398,e=>{"use strict";var t=e.i(31074),r=e.i(37655),s=new class extends r.Subscribable{#n=!0;#s;#i;constructor(){super(),this.#i=e=>{if("u">typeof window&&window.addEventListener){let t=()=>e(!0),r=()=>e(!1);return window.addEventListener("online",t,!1),window.addEventListener("offline",r,!1),()=>{window.removeEventListener("online",t),window.removeEventListener("offline",r)}}}}onSubscribe(){this.#s||this.setEventListener(this.#i)}onUnsubscribe(){this.hasListeners()||(this.#s?.(),this.#s=void 0)}setEventListener(e){this.#i=e,this.#s?.(),this.#s=e(this.setOnline.bind(this))}setOnline(e){this.#n!==e&&(this.#n=e,this.listeners.forEach(t=>{t(e)}))}isOnline(){return this.#n}};e.s(["onlineManager",0,s],27502);var i=e.i(86954);function n(){let e,t,r=new Promise((r,s)=>{e=r,t=s});function s(e){Object.assign(r,e),delete r.resolve,delete r.reject}return r.status="pending",r.catch(()=>{}),r.resolve=t=>{s({status:"fulfilled",value:t}),e(t)},r.reject=e=>{s({status:"rejected",reason:e}),t(e)},r}e.s(["pendingThenable",0,n],44398);var a=e.i(49988);function o(e){return Math.min(1e3*2**e,3e4)}function u(e){return(e??"online")!=="online"||s.isOnline()}var c=class extends Error{constructor(e){super("CancelledError"),this.revert=e?.revert,this.silent=e?.silent}};e.s(["CancelledError",0,c,"canFetch",0,u,"createRetryer",0,function(e){let r,l=!1,h=0,d=n(),p=()=>t.focusManager.isFocused()&&("always"===e.networkMode||s.isOnline())&&e.canRun(),f=()=>u(e.networkMode)&&e.canRun(),y=e=>{"pending"===d.status&&(r?.(),d.resolve(e))},v=e=>{"pending"===d.status&&(r?.(),d.reject(e))},m=()=>new Promise(t=>{r=e=>{("pending"!==d.status||p())&&t(e)},e.onPause?.()}).then(()=>{r=void 0,"pending"===d.status&&e.onContinue?.()}),b=()=>{let t;if("pending"!==d.status)return;let r=0===h?e.initialPromise:void 0;try{t=r??e.fn()}catch(e){t=Promise.reject(e)}Promise.resolve(t).then(y).catch(t=>{if("pending"!==d.status)return;let r=e.retry??3*!a.environmentManager.isServer(),s=e.retryDelay??o,n="function"==typeof s?s(h,t):s,u=!0===r||"number"==typeof r&&h<r||"function"==typeof r&&r(h,t);l||!u?v(t):(h++,e.onFail?.(h,t),(0,i.sleep)(n).then(()=>p()?void 0:m()).then(()=>{l?v(t):b()}))})};return{promise:d,status:()=>d.status,cancel:t=>{if("pending"===d.status){let r=new c(t);v(r),e.onCancel?.(r)}},continue:()=>(r?.(),d),cancelRetry:()=>{l=!0},continueRetry:()=>{l=!1},canStart:f,start:()=>(f()?b():m().then(b),d)}}],28547)},73066,e=>{"use strict";var t=e.i(64683),r=e.i(49988),s=e.i(86954),i=class{#a;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),(0,s.isValidTimeout)(this.gcTime)&&(this.#a=t.timeoutManager.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(r.environmentManager.isServer()?1/0:3e5))}clearGcTimeout(){this.#a&&(t.timeoutManager.clearTimeout(this.#a),this.#a=void 0)}};e.s(["Removable",0,i])},26799,e=>{"use strict";var t=e.i(86954),r=e.i(31541),s=e.i(28547),i=e.i(73066),n=class extends i.Removable{#o;#u;#c;#l;#h;#d;#p;constructor(e){super(),this.#p=!1,this.#d=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#l=e.client,this.#c=this.#l.getQueryCache(),this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#o=u(this.options),this.state=e.state??this.#o,this.scheduleGc()}get meta(){return this.options.meta}get promise(){return this.#h?.promise}setOptions(e){if(this.options={...this.#d,...e},this.updateGcTime(this.options.gcTime),this.state&&void 0===this.state.data){let e=u(this.options);void 0!==e.data&&(this.setState(o(e.data,e.dataUpdatedAt)),this.#o=e)}}optionalRemove(){this.observers.length||"idle"!==this.state.fetchStatus||this.#c.remove(this)}setData(e,r){let s=(0,t.replaceData)(this.state.data,e,this.options);return this.#f({data:s,type:"success",dataUpdatedAt:r?.updatedAt,manual:r?.manual}),s}setState(e,t){this.#f({type:"setState",state:e,setStateOptions:t})}cancel(e){let r=this.#h?.promise;return this.#h?.cancel(e),r?r.then(t.noop).catch(t.noop):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return this.#o}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(e=>!1!==(0,t.resolveEnabled)(e.options.enabled,this))}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===t.skipToken||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0&&this.observers.some(e=>"static"===(0,t.resolveStaleTime)(e.options.staleTime,this))}isStale(){return this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):void 0===this.state.data||this.state.isInvalidated}isStaleByTime(e=0){return void 0===this.state.data||"static"!==e&&(!!this.state.isInvalidated||!(0,t.timeUntilStale)(this.state.dataUpdatedAt,e))}onFocus(){let e=this.observers.find(e=>e.shouldFetchOnWindowFocus());e?.refetch({cancelRefetch:!1}),this.#h?.continue()}onOnline(){let e=this.observers.find(e=>e.shouldFetchOnReconnect());e?.refetch({cancelRefetch:!1}),this.#h?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#c.notify({type:"observerAdded",query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(t=>t!==e),this.observers.length||(this.#h&&(this.#p||this.#y()?this.#h.cancel({revert:!0}):this.#h.cancelRetry()),this.scheduleGc()),this.#c.notify({type:"observerRemoved",query:this,observer:e}))}getObserversCount(){return this.observers.length}#y(){return"paused"===this.state.fetchStatus&&"pending"===this.state.status}invalidate(){this.state.isInvalidated||this.#f({type:"invalidate"})}async fetch(e,r){let i;if("idle"!==this.state.fetchStatus&&this.#h?.status()!=="rejected"){if(void 0!==this.state.data&&r?.cancelRefetch)this.cancel({silent:!0});else if(this.#h)return this.#h.continueRetry(),this.#h.promise}if(e&&this.setOptions(e),!this.options.queryFn){let e=this.observers.find(e=>e.options.queryFn);e&&this.setOptions(e.options)}let n=new AbortController,a=e=>{Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(this.#p=!0,n.signal)})},o=()=>{let e,s=(0,t.ensureQueryFn)(this.options,r),i=(a(e={client:this.#l,queryKey:this.queryKey,meta:this.meta}),e);return(this.#p=!1,this.options.persister)?this.options.persister(s,i,this):s(i)},u=(a(i={fetchOptions:r,options:this.options,queryKey:this.queryKey,client:this.#l,state:this.state,fetchFn:o}),i);this.options.behavior?.onFetch(u,this),this.#u=this.state,("idle"===this.state.fetchStatus||this.state.fetchMeta!==u.fetchOptions?.meta)&&this.#f({type:"fetch",meta:u.fetchOptions?.meta}),this.#h=(0,s.createRetryer)({initialPromise:r?.initialPromise,fn:u.fetchFn,onCancel:e=>{e instanceof s.CancelledError&&e.revert&&this.setState({...this.#u,fetchStatus:"idle"}),n.abort()},onFail:(e,t)=>{this.#f({type:"failed",failureCount:e,error:t})},onPause:()=>{this.#f({type:"pause"})},onContinue:()=>{this.#f({type:"continue"})},retry:u.options.retry,retryDelay:u.options.retryDelay,networkMode:u.options.networkMode,canRun:()=>!0});try{let e=await this.#h.start();if(void 0===e)throw Error(`${this.queryHash} data is undefined`);return this.setData(e),this.#c.config.onSuccess?.(e,this),this.#c.config.onSettled?.(e,this.state.error,this),e}catch(e){if(e instanceof s.CancelledError){if(e.silent)return this.#h.promise;else if(e.revert){if(void 0===this.state.data)throw e;return this.state.data}}throw this.#f({type:"error",error:e}),this.#c.config.onError?.(e,this),this.#c.config.onSettled?.(this.state.data,e,this),e}finally{this.scheduleGc()}}#f(e){let t=t=>{switch(e.type){case"failed":return{...t,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case"pause":return{...t,fetchStatus:"paused"};case"continue":return{...t,fetchStatus:"fetching"};case"fetch":return{...t,...a(t.data,this.options),fetchMeta:e.meta??null};case"success":let r={...t,...o(e.data,e.dataUpdatedAt),dataUpdateCount:t.dataUpdateCount+1,...!e.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return this.#u=e.manual?r:void 0,r;case"error":let s=e.error;return{...t,error:s,errorUpdateCount:t.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:t.fetchFailureCount+1,fetchFailureReason:s,fetchStatus:"idle",status:"error",isInvalidated:!0};case"invalidate":return{...t,isInvalidated:!0};case"setState":return{...t,...e.state}}};this.state=t(this.state),r.notifyManager.batch(()=>{this.observers.forEach(e=>{e.onQueryUpdate()}),this.#c.notify({query:this,type:"updated",action:e})})}};function a(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:(0,s.canFetch)(t.networkMode)?"fetching":"paused",...void 0===e&&{error:null,status:"pending"}}}function o(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:"success"}}function u(e){let t="function"==typeof e.initialData?e.initialData():e.initialData,r=void 0!==t,s=r?"function"==typeof e.initialDataUpdatedAt?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:r?s??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:r?"success":"pending",fetchStatus:"idle"}}e.s(["Query",0,n,"fetchState",0,a])},95486,e=>{"use strict";var t=e.i(34416),r=e.i(54710),s=t.createContext(void 0);e.s(["QueryClientProvider",0,({client:e,children:i})=>(t.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),(0,r.jsx)(s.Provider,{value:e,children:i})),"useQueryClient",0,e=>{let r=t.useContext(s);if(e)return e;if(!r)throw Error("No QueryClient set, use QueryClientProvider to set one");return r}])},14260,46437,98757,e=>{"use strict";let t;var r=e.i(31074),s=e.i(49988),i=e.i(31541),n=e.i(26799),a=e.i(37655),o=e.i(44398),u=e.i(86954),c=e.i(64683),l=class extends a.Subscribable{constructor(e,t){super(),this.options=t,this.#l=e,this.#v=null,this.#m=(0,o.pendingThenable)(),this.bindMethods(),this.setOptions(t)}#l;#b=void 0;#g=void 0;#w=void 0;#R;#S;#m;#v;#E;#T;#O;#C;#Q;#F;#P=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){1===this.listeners.size&&(this.#b.addObserver(this),h(this.#b,this.options)?this.#I():this.updateResult(),this.#D())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return d(this.#b,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return d(this.#b,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#j(),this.#k(),this.#b.removeObserver(this)}setOptions(e){let t=this.options,r=this.#b;if(this.options=this.#l.defaultQueryOptions(e),void 0!==this.options.enabled&&"boolean"!=typeof this.options.enabled&&"function"!=typeof this.options.enabled&&"boolean"!=typeof(0,u.resolveEnabled)(this.options.enabled,this.#b))throw Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#L(),this.#b.setOptions(this.options),t._defaulted&&!(0,u.shallowEqualObjects)(this.options,t)&&this.#l.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#b,observer:this});let s=this.hasListeners();s&&p(this.#b,r,this.options,t)&&this.#I(),this.updateResult(),s&&(this.#b!==r||(0,u.resolveEnabled)(this.options.enabled,this.#b)!==(0,u.resolveEnabled)(t.enabled,this.#b)||(0,u.resolveStaleTime)(this.options.staleTime,this.#b)!==(0,u.resolveStaleTime)(t.staleTime,this.#b))&&this.#M();let i=this.#U();s&&(this.#b!==r||(0,u.resolveEnabled)(this.options.enabled,this.#b)!==(0,u.resolveEnabled)(t.enabled,this.#b)||i!==this.#F)&&this.#x(i)}getOptimisticResult(e){var t,r;let s=this.#l.getQueryCache().build(this.#l,e),i=this.createResult(s,e);return t=this,r=i,(0,u.shallowEqualObjects)(t.getCurrentResult(),r)||(this.#w=i,this.#S=this.options,this.#R=this.#b.state),i}getCurrentResult(){return this.#w}trackResult(e,t){return new Proxy(e,{get:(e,r)=>(this.trackProp(r),t?.(r),"promise"===r&&(this.trackProp("data"),this.options.experimental_prefetchInRender||"pending"!==this.#m.status||this.#m.reject(Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(e,r))})}trackProp(e){this.#P.add(e)}getCurrentQuery(){return this.#b}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#l.defaultQueryOptions(e),r=this.#l.getQueryCache().build(this.#l,t);return r.fetch().then(()=>this.createResult(r,t))}fetch(e){return this.#I({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#w))}#I(e){this.#L();let t=this.#b.fetch(this.options,e);return e?.throwOnError||(t=t.catch(u.noop)),t}#M(){this.#j();let e=(0,u.resolveStaleTime)(this.options.staleTime,this.#b);if(s.environmentManager.isServer()||this.#w.isStale||!(0,u.isValidTimeout)(e))return;let t=(0,u.timeUntilStale)(this.#w.dataUpdatedAt,e);this.#C=c.timeoutManager.setTimeout(()=>{this.#w.isStale||this.updateResult()},t+1)}#U(){return("function"==typeof this.options.refetchInterval?this.options.refetchInterval(this.#b):this.options.refetchInterval)??!1}#x(e){this.#k(),this.#F=e,!s.environmentManager.isServer()&&!1!==(0,u.resolveEnabled)(this.options.enabled,this.#b)&&(0,u.isValidTimeout)(this.#F)&&0!==this.#F&&(this.#Q=c.timeoutManager.setInterval(()=>{(this.options.refetchIntervalInBackground||r.focusManager.isFocused())&&this.#I()},this.#F))}#D(){this.#M(),this.#x(this.#U())}#j(){this.#C&&(c.timeoutManager.clearTimeout(this.#C),this.#C=void 0)}#k(){this.#Q&&(c.timeoutManager.clearInterval(this.#Q),this.#Q=void 0)}createResult(e,t){let r,s=this.#b,i=this.options,a=this.#w,c=this.#R,l=this.#S,d=e!==s?e.state:this.#g,{state:y}=e,v={...y},m=!1;if(t._optimisticResults){let r=this.hasListeners(),a=!r&&h(e,t),o=r&&p(e,s,t,i);(a||o)&&(v={...v,...(0,n.fetchState)(y.data,e.options)}),"isRestoring"===t._optimisticResults&&(v.fetchStatus="idle")}let{error:b,errorUpdatedAt:g,status:w}=v;r=v.data;let R=!1;if(void 0!==t.placeholderData&&void 0===r&&"pending"===w){let e;a?.isPlaceholderData&&t.placeholderData===l?.placeholderData?(e=a.data,R=!0):e="function"==typeof t.placeholderData?t.placeholderData(this.#O?.state.data,this.#O):t.placeholderData,void 0!==e&&(w="success",r=(0,u.replaceData)(a?.data,e,t),m=!0)}if(t.select&&void 0!==r&&!R)if(a&&r===c?.data&&t.select===this.#E)r=this.#T;else try{this.#E=t.select,r=t.select(r),r=(0,u.replaceData)(a?.data,r,t),this.#T=r,this.#v=null}catch(e){this.#v=e}this.#v&&(b=this.#v,r=this.#T,g=Date.now(),w="error");let S="fetching"===v.fetchStatus,E="pending"===w,T="error"===w,O=E&&S,C=void 0!==r,Q={status:w,fetchStatus:v.fetchStatus,isPending:E,isSuccess:"success"===w,isError:T,isInitialLoading:O,isLoading:O,data:r,dataUpdatedAt:v.dataUpdatedAt,error:b,errorUpdatedAt:g,failureCount:v.fetchFailureCount,failureReason:v.fetchFailureReason,errorUpdateCount:v.errorUpdateCount,isFetched:e.isFetched(),isFetchedAfterMount:v.dataUpdateCount>d.dataUpdateCount||v.errorUpdateCount>d.errorUpdateCount,isFetching:S,isRefetching:S&&!E,isLoadingError:T&&!C,isPaused:"paused"===v.fetchStatus,isPlaceholderData:m,isRefetchError:T&&C,isStale:f(e,t),refetch:this.refetch,promise:this.#m,isEnabled:!1!==(0,u.resolveEnabled)(t.enabled,e)};if(this.options.experimental_prefetchInRender){let t=void 0!==Q.data,r="error"===Q.status&&!t,i=e=>{r?e.reject(Q.error):t&&e.resolve(Q.data)},n=()=>{i(this.#m=Q.promise=(0,o.pendingThenable)())},a=this.#m;switch(a.status){case"pending":e.queryHash===s.queryHash&&i(a);break;case"fulfilled":(r||Q.data!==a.value)&&n();break;case"rejected":r&&Q.error===a.reason||n()}}return Q}updateResult(){let e=this.#w,t=this.createResult(this.#b,this.options);if(this.#R=this.#b.state,this.#S=this.options,void 0!==this.#R.data&&(this.#O=this.#b),(0,u.shallowEqualObjects)(t,e))return;this.#w=t;let r=()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,r="function"==typeof t?t():t;if("all"===r||!r&&!this.#P.size)return!0;let s=new Set(r??this.#P);return this.options.throwOnError&&s.add("error"),Object.keys(this.#w).some(t=>this.#w[t]!==e[t]&&s.has(t))};this.#q({listeners:r()})}#L(){let e=this.#l.getQueryCache().build(this.#l,this.options);if(e===this.#b)return;let t=this.#b;this.#b=e,this.#g=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#D()}#q(e){i.notifyManager.batch(()=>{e.listeners&&this.listeners.forEach(e=>{e(this.#w)}),this.#l.getQueryCache().notify({query:this.#b,type:"observerResultsUpdated"})})}};function h(e,t){return!1!==(0,u.resolveEnabled)(t.enabled,e)&&void 0===e.state.data&&("error"!==e.state.status||!1!==t.retryOnMount)||void 0!==e.state.data&&d(e,t,t.refetchOnMount)}function d(e,t,r){if(!1!==(0,u.resolveEnabled)(t.enabled,e)&&"static"!==(0,u.resolveStaleTime)(t.staleTime,e)){let s="function"==typeof r?r(e):r;return"always"===s||!1!==s&&f(e,t)}return!1}function p(e,t,r,s){return(e!==t||!1===(0,u.resolveEnabled)(s.enabled,e))&&(!r.suspense||"error"!==e.state.status)&&f(e,r)}function f(e,t){return!1!==(0,u.resolveEnabled)(t.enabled,e)&&e.isStaleByTime((0,u.resolveStaleTime)(t.staleTime,e))}e.s(["QueryObserver",0,l],46437),e.i(13073);var y=e.i(34416),v=e.i(95486);e.i(54710);var m=y.createContext((t=!1,{clearReset:()=>{t=!1},reset:()=>{t=!0},isReset:()=>t})),b=y.createContext(!1);b.Provider;var g=(e,t,r)=>t.fetchOptimistic(e).catch(()=>{r.clearReset()});function w(e,t,r){let n,a=y.useContext(b),o=y.useContext(m),c=(0,v.useQueryClient)(r),l=c.defaultQueryOptions(e);c.getDefaultOptions().queries?._experimental_beforeQuery?.(l);let h=c.getQueryCache().get(l.queryHash);if(l._optimisticResults=a?"isRestoring":"optimistic",l.suspense){let e=e=>"static"===e?e:Math.max(e??1e3,1e3),t=l.staleTime;l.staleTime="function"==typeof t?(...r)=>e(t(...r)):e(t),"number"==typeof l.gcTime&&(l.gcTime=Math.max(l.gcTime,1e3))}n=h?.state.error&&"function"==typeof l.throwOnError?(0,u.shouldThrowError)(l.throwOnError,[h.state.error,h]):l.throwOnError,(l.suspense||l.experimental_prefetchInRender||n)&&!o.isReset()&&(l.retryOnMount=!1),y.useEffect(()=>{o.clearReset()},[o]);let d=!c.getQueryCache().get(l.queryHash),[p]=y.useState(()=>new t(c,l)),f=p.getOptimisticResult(l),w=!a&&!1!==e.subscribed;if(y.useSyncExternalStore(y.useCallback(e=>{let t=w?p.subscribe(i.notifyManager.batchCalls(e)):u.noop;return p.updateResult(),t},[p,w]),()=>p.getCurrentResult(),()=>p.getCurrentResult()),y.useEffect(()=>{p.setOptions(l)},[l,p]),l?.suspense&&f.isPending)throw g(l,p,o);if((({result:e,errorResetBoundary:t,throwOnError:r,query:s,suspense:i})=>e.isError&&!t.isReset()&&!e.isFetching&&s&&(i&&void 0===e.data||(0,u.shouldThrowError)(r,[e.error,s])))({result:f,errorResetBoundary:o,throwOnError:l.throwOnError,query:h,suspense:l.suspense}))throw f.error;if(c.getDefaultOptions().queries?._experimental_afterQuery?.(l,f),l.experimental_prefetchInRender&&!s.environmentManager.isServer()&&f.isLoading&&f.isFetching&&!a){let e=d?g(l,p,o):h?.promise;e?.catch(u.noop).finally(()=>{p.updateResult()})}return l.notifyOnChangeProps?f:p.trackResult(f)}e.s(["useBaseQuery",0,w],98757),e.s(["useQuery",0,function(e,t){return w(e,l,t)}],14260)},88248,e=>{"use strict";var t=e.i(34416);e.s(["useCallbackRef",0,function(e){let r=t.useRef(e);return t.useEffect(()=>{r.current=e}),t.useMemo(()=>(...e)=>r.current?.(...e),[])}])},3659,76903,e=>{"use strict";var t,r=e.i(34416),s=e.i(91967),i=e.i(85565),n=e.i(22353),a=e.i(88248),o=e.i(54710),u="dismissableLayer.update",c=r.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),l=r.forwardRef((e,l)=>{let{disableOutsidePointerEvents:p=!1,onEscapeKeyDown:f,onPointerDownOutside:y,onFocusOutside:v,onInteractOutside:m,onDismiss:b,...g}=e,w=r.useContext(c),[R,S]=r.useState(null),E=R?.ownerDocument??globalThis?.document,[,T]=r.useState({}),O=(0,n.useComposedRefs)(l,e=>S(e)),C=Array.from(w.layers),[Q]=[...w.layersWithOutsidePointerEventsDisabled].slice(-1),F=C.indexOf(Q),P=R?C.indexOf(R):-1,I=w.layersWithOutsidePointerEventsDisabled.size>0,D=P>=F,j=function(e,t=globalThis?.document){let s=(0,a.useCallbackRef)(e),i=r.useRef(!1),n=r.useRef(()=>{});return r.useEffect(()=>{let e=e=>{if(e.target&&!i.current){let r=function(){d("dismissableLayer.pointerDownOutside",s,i,{discrete:!0})},i={originalEvent:e};"touch"===e.pointerType?(t.removeEventListener("click",n.current),n.current=r,t.addEventListener("click",n.current,{once:!0})):r()}else t.removeEventListener("click",n.current);i.current=!1},r=window.setTimeout(()=>{t.addEventListener("pointerdown",e)},0);return()=>{window.clearTimeout(r),t.removeEventListener("pointerdown",e),t.removeEventListener("click",n.current)}},[t,s]),{onPointerDownCapture:()=>i.current=!0}}(e=>{let t=e.target,r=[...w.branches].some(e=>e.contains(t));D&&!r&&(y?.(e),m?.(e),e.defaultPrevented||b?.())},E),k=function(e,t=globalThis?.document){let s=(0,a.useCallbackRef)(e),i=r.useRef(!1);return r.useEffect(()=>{let e=e=>{e.target&&!i.current&&d("dismissableLayer.focusOutside",s,{originalEvent:e},{discrete:!1})};return t.addEventListener("focusin",e),()=>t.removeEventListener("focusin",e)},[t,s]),{onFocusCapture:()=>i.current=!0,onBlurCapture:()=>i.current=!1}}(e=>{let t=e.target;![...w.branches].some(e=>e.contains(t))&&(v?.(e),m?.(e),e.defaultPrevented||b?.())},E);return!function(e,t=globalThis?.document){let s=(0,a.useCallbackRef)(e);r.useEffect(()=>{let e=e=>{"Escape"===e.key&&s(e)};return t.addEventListener("keydown",e,{capture:!0}),()=>t.removeEventListener("keydown",e,{capture:!0})},[s,t])}(e=>{P===w.layers.size-1&&(f?.(e),!e.defaultPrevented&&b&&(e.preventDefault(),b()))},E),r.useEffect(()=>{if(R)return p&&(0===w.layersWithOutsidePointerEventsDisabled.size&&(t=E.body.style.pointerEvents,E.body.style.pointerEvents="none"),w.layersWithOutsidePointerEventsDisabled.add(R)),w.layers.add(R),h(),()=>{p&&1===w.layersWithOutsidePointerEventsDisabled.size&&(E.body.style.pointerEvents=t)}},[R,E,p,w]),r.useEffect(()=>()=>{R&&(w.layers.delete(R),w.layersWithOutsidePointerEventsDisabled.delete(R),h())},[R,w]),r.useEffect(()=>{let e=()=>T({});return document.addEventListener(u,e),()=>document.removeEventListener(u,e)},[]),(0,o.jsx)(i.Primitive.div,{...g,ref:O,style:{pointerEvents:I?D?"auto":"none":void 0,...e.style},onFocusCapture:(0,s.composeEventHandlers)(e.onFocusCapture,k.onFocusCapture),onBlurCapture:(0,s.composeEventHandlers)(e.onBlurCapture,k.onBlurCapture),onPointerDownCapture:(0,s.composeEventHandlers)(e.onPointerDownCapture,j.onPointerDownCapture)})});function h(){let e=new CustomEvent(u);document.dispatchEvent(e)}function d(e,t,r,{discrete:s}){let n=r.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:r});t&&n.addEventListener(e,t,{once:!0}),s?(0,i.dispatchDiscreteCustomEvent)(n,a):n.dispatchEvent(a)}l.displayName="DismissableLayer",r.forwardRef((e,t)=>{let s=r.useContext(c),a=r.useRef(null),u=(0,n.useComposedRefs)(t,a);return r.useEffect(()=>{let e=a.current;if(e)return s.branches.add(e),()=>{s.branches.delete(e)}},[s.branches]),(0,o.jsx)(i.Primitive.div,{...e,ref:u})}).displayName="DismissableLayerBranch",e.s(["DismissableLayer",0,l],3659);var p=e.i(47869),f=e.i(18731),y=r.forwardRef((e,t)=>{let{container:s,...n}=e,[a,u]=r.useState(!1);(0,f.useLayoutEffect)(()=>u(!0),[]);let c=s||a&&globalThis?.document?.body;return c?p.default.createPortal((0,o.jsx)(i.Primitive.div,{...n,ref:t}),c):null});y.displayName="Portal",e.s(["Portal",0,y],76903)}]);
|