@aitne/dashboard 0.1.10 → 0.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +6 -9
- package/.next/build-manifest.json +3 -3
- package/.next/diagnostics/route-bundle-stats.json +592 -614
- package/.next/fallback-build-manifest.json +3 -3
- package/.next/prerender-manifest.json +54 -126
- package/.next/routes-manifest.json +27 -45
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page/next-font-manifest.json +4 -2
- package/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +15 -15
- package/.next/server/app/_not-found.segments/_full.segment.rsc +15 -15
- package/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
- package/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/activity/page/next-font-manifest.json +4 -2
- package/.next/server/app/activity/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/activity/page.js.nft.json +1 -1
- package/.next/server/app/activity/page_client-reference-manifest.js +1 -1
- package/.next/server/app/activity.html +1 -1
- package/.next/server/app/activity.rsc +27 -25
- package/.next/server/app/activity.segments/_full.segment.rsc +27 -25
- package/.next/server/app/activity.segments/_head.segment.rsc +4 -4
- package/.next/server/app/activity.segments/_index.segment.rsc +10 -10
- package/.next/server/app/activity.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/activity.segments/activity/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/activity.segments/activity.segment.rsc +4 -4
- package/.next/server/app/agents/[slug]/executions/page/next-font-manifest.json +4 -2
- package/.next/server/app/agents/[slug]/executions/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/agents/[slug]/executions/page.js.nft.json +1 -1
- package/.next/server/app/agents/[slug]/executions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/agents/[slug]/page/next-font-manifest.json +4 -2
- package/.next/server/app/agents/[slug]/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/agents/[slug]/page.js.nft.json +1 -1
- package/.next/server/app/agents/[slug]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/agents/page/next-font-manifest.json +4 -2
- package/.next/server/app/agents/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/agents/page.js.nft.json +1 -1
- package/.next/server/app/agents/page_client-reference-manifest.js +1 -1
- package/.next/server/app/agents.html +1 -1
- package/.next/server/app/agents.rsc +18 -17
- package/.next/server/app/agents.segments/_full.segment.rsc +18 -17
- package/.next/server/app/agents.segments/_head.segment.rsc +4 -4
- package/.next/server/app/agents.segments/_index.segment.rsc +10 -10
- package/.next/server/app/agents.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/agents.segments/agents.segment.rsc +3 -3
- package/.next/server/app/analytics/page/next-font-manifest.json +4 -2
- package/.next/server/app/analytics/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/analytics/page.js.nft.json +1 -1
- package/.next/server/app/analytics/page_client-reference-manifest.js +1 -1
- package/.next/server/app/analytics.html +1 -1
- package/.next/server/app/analytics.rsc +25 -23
- package/.next/server/app/analytics.segments/_full.segment.rsc +25 -23
- package/.next/server/app/analytics.segments/_head.segment.rsc +4 -4
- package/.next/server/app/analytics.segments/_index.segment.rsc +10 -10
- package/.next/server/app/analytics.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/analytics.segments/analytics/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/analytics.segments/analytics.segment.rsc +4 -4
- package/.next/server/app/browser/page/app-paths-manifest.json +3 -0
- package/.next/server/app/browser/page/next-font-manifest.json +8 -0
- package/.next/server/app/{settings/advanced → browser}/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/browser/page.js +15 -0
- package/.next/server/app/browser/page.js.nft.json +1 -0
- package/.next/server/app/browser/page_client-reference-manifest.js +3 -0
- package/.next/server/app/browser-tasks/[id]/page/next-font-manifest.json +4 -2
- package/.next/server/app/browser-tasks/[id]/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/browser-tasks/[id]/page.js.nft.json +1 -1
- package/.next/server/app/browser-tasks/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/browser-tasks/page/next-font-manifest.json +4 -2
- package/.next/server/app/browser-tasks/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/browser-tasks/page.js.nft.json +1 -1
- package/.next/server/app/browser-tasks/page_client-reference-manifest.js +1 -1
- package/.next/server/app/browser-tasks.html +1 -1
- package/.next/server/app/browser-tasks.rsc +18 -17
- package/.next/server/app/browser-tasks.segments/_full.segment.rsc +18 -17
- package/.next/server/app/browser-tasks.segments/_head.segment.rsc +4 -4
- package/.next/server/app/browser-tasks.segments/_index.segment.rsc +10 -10
- package/.next/server/app/browser-tasks.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/browser-tasks.segments/browser-tasks/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/browser-tasks.segments/browser-tasks.segment.rsc +3 -3
- package/.next/server/app/browser.html +1 -0
- package/.next/server/app/browser.meta +15 -0
- package/.next/server/app/browser.rsc +27 -0
- package/.next/server/app/browser.segments/_full.segment.rsc +27 -0
- package/.next/server/app/browser.segments/_head.segment.rsc +6 -0
- package/.next/server/app/browser.segments/_index.segment.rsc +11 -0
- package/.next/server/app/browser.segments/_tree.segment.rsc +3 -0
- package/.next/server/app/browser.segments/browser/__PAGE__.segment.rsc +9 -0
- package/.next/server/app/browser.segments/browser.segment.rsc +5 -0
- package/.next/server/app/chat/page/next-font-manifest.json +4 -2
- package/.next/server/app/chat/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/chat/page.js.nft.json +1 -1
- package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
- package/.next/server/app/chat.html +1 -1
- package/.next/server/app/chat.rsc +18 -17
- package/.next/server/app/chat.segments/_full.segment.rsc +18 -17
- package/.next/server/app/chat.segments/_head.segment.rsc +4 -4
- package/.next/server/app/chat.segments/_index.segment.rsc +10 -10
- package/.next/server/app/chat.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/chat.segments/chat/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/chat.segments/chat.segment.rsc +3 -3
- package/.next/server/app/connections/calendar/page/next-font-manifest.json +4 -2
- package/.next/server/app/connections/calendar/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/connections/calendar/page.js.nft.json +1 -1
- package/.next/server/app/connections/calendar/page_client-reference-manifest.js +1 -1
- package/.next/server/app/connections/calendar.html +1 -1
- package/.next/server/app/connections/calendar.rsc +19 -18
- package/.next/server/app/connections/calendar.segments/_full.segment.rsc +19 -18
- package/.next/server/app/connections/calendar.segments/_head.segment.rsc +4 -4
- package/.next/server/app/connections/calendar.segments/_index.segment.rsc +10 -10
- package/.next/server/app/connections/calendar.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/connections/calendar.segments/connections/calendar/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/connections/calendar.segments/connections/calendar.segment.rsc +3 -3
- package/.next/server/app/connections/calendar.segments/connections.segment.rsc +4 -4
- package/.next/server/app/connections/journal/page/next-font-manifest.json +4 -2
- package/.next/server/app/connections/journal/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/connections/journal/page.js.nft.json +1 -1
- package/.next/server/app/connections/journal/page_client-reference-manifest.js +1 -1
- package/.next/server/app/connections/journal.html +1 -1
- package/.next/server/app/connections/journal.rsc +18 -17
- package/.next/server/app/connections/journal.segments/_full.segment.rsc +18 -17
- package/.next/server/app/connections/journal.segments/_head.segment.rsc +4 -4
- package/.next/server/app/connections/journal.segments/_index.segment.rsc +10 -10
- package/.next/server/app/connections/journal.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/connections/journal.segments/connections/journal/__PAGE__.segment.rsc +3 -3
- package/.next/server/app/connections/journal.segments/connections/journal.segment.rsc +3 -3
- package/.next/server/app/connections/journal.segments/connections.segment.rsc +4 -4
- package/.next/server/app/connections/mail/page/next-font-manifest.json +4 -2
- package/.next/server/app/connections/mail/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/connections/mail/page.js.nft.json +1 -1
- package/.next/server/app/connections/mail/page_client-reference-manifest.js +1 -1
- package/.next/server/app/connections/mail.html +1 -1
- package/.next/server/app/connections/mail.rsc +19 -18
- package/.next/server/app/connections/mail.segments/_full.segment.rsc +19 -18
- package/.next/server/app/connections/mail.segments/_head.segment.rsc +4 -4
- package/.next/server/app/connections/mail.segments/_index.segment.rsc +10 -10
- package/.next/server/app/connections/mail.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/connections/mail.segments/connections/mail/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/connections/mail.segments/connections/mail.segment.rsc +3 -3
- package/.next/server/app/connections/mail.segments/connections.segment.rsc +4 -4
- package/.next/server/app/connections/mcp/page/next-font-manifest.json +4 -2
- package/.next/server/app/connections/mcp/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/connections/mcp/page.js.nft.json +1 -1
- package/.next/server/app/connections/mcp/page_client-reference-manifest.js +1 -1
- package/.next/server/app/connections/mcp.html +1 -1
- package/.next/server/app/connections/mcp.rsc +19 -18
- package/.next/server/app/connections/mcp.segments/_full.segment.rsc +19 -18
- package/.next/server/app/connections/mcp.segments/_head.segment.rsc +4 -4
- package/.next/server/app/connections/mcp.segments/_index.segment.rsc +10 -10
- package/.next/server/app/connections/mcp.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/connections/mcp.segments/connections/mcp/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/connections/mcp.segments/connections/mcp.segment.rsc +3 -3
- package/.next/server/app/connections/mcp.segments/connections.segment.rsc +4 -4
- package/.next/server/app/connections/messaging/page/next-font-manifest.json +4 -2
- package/.next/server/app/connections/messaging/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/connections/messaging/page.js.nft.json +1 -1
- package/.next/server/app/connections/messaging/page_client-reference-manifest.js +1 -1
- package/.next/server/app/connections/messaging.html +1 -1
- package/.next/server/app/connections/messaging.rsc +19 -18
- package/.next/server/app/connections/messaging.segments/_full.segment.rsc +19 -18
- package/.next/server/app/connections/messaging.segments/_head.segment.rsc +4 -4
- package/.next/server/app/connections/messaging.segments/_index.segment.rsc +10 -10
- package/.next/server/app/connections/messaging.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/connections/messaging.segments/connections/messaging/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/connections/messaging.segments/connections/messaging.segment.rsc +3 -3
- package/.next/server/app/connections/messaging.segments/connections.segment.rsc +4 -4
- package/.next/server/app/connections/notes/page/app-paths-manifest.json +3 -0
- package/.next/server/app/connections/notes/page/next-font-manifest.json +8 -0
- package/.next/server/app/{settings/backends → connections/notes}/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/connections/{knowledge → notes}/page.js +6 -6
- package/.next/server/app/{settings/schedule → connections/notes}/page.js.nft.json +1 -1
- package/.next/server/app/connections/notes/page_client-reference-manifest.js +3 -0
- package/.next/server/app/connections/notes.html +1 -0
- package/.next/server/app/connections/{knowledge.meta → notes.meta} +3 -3
- package/.next/server/app/connections/notes.rsc +28 -0
- package/.next/server/app/connections/notes.segments/_full.segment.rsc +28 -0
- package/.next/server/app/connections/notes.segments/_head.segment.rsc +6 -0
- package/.next/server/app/connections/notes.segments/_index.segment.rsc +11 -0
- package/.next/server/app/connections/notes.segments/_tree.segment.rsc +3 -0
- package/.next/server/app/connections/notes.segments/connections/notes/__PAGE__.segment.rsc +9 -0
- package/.next/server/app/connections/notes.segments/connections/notes.segment.rsc +5 -0
- package/.next/server/app/connections/notes.segments/connections.segment.rsc +5 -0
- package/.next/server/app/connections/page/next-font-manifest.json +4 -2
- package/.next/server/app/connections/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/connections/page.js.nft.json +1 -1
- package/.next/server/app/connections/page_client-reference-manifest.js +1 -1
- package/.next/server/app/connections/repositories/page/next-font-manifest.json +4 -2
- package/.next/server/app/connections/repositories/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/connections/repositories/page.js.nft.json +1 -1
- package/.next/server/app/connections/repositories/page_client-reference-manifest.js +1 -1
- package/.next/server/app/connections/repositories.html +1 -1
- package/.next/server/app/connections/repositories.rsc +23 -21
- package/.next/server/app/connections/repositories.segments/_full.segment.rsc +23 -21
- package/.next/server/app/connections/repositories.segments/_head.segment.rsc +4 -4
- package/.next/server/app/connections/repositories.segments/_index.segment.rsc +10 -10
- package/.next/server/app/connections/repositories.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/connections/repositories.segments/connections/repositories/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/connections/repositories.segments/connections/repositories.segment.rsc +3 -3
- package/.next/server/app/connections/repositories.segments/connections.segment.rsc +4 -4
- package/.next/server/app/connections/routines/page/next-font-manifest.json +4 -2
- package/.next/server/app/connections/routines/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/connections/routines/page.js.nft.json +1 -1
- package/.next/server/app/connections/routines/page_client-reference-manifest.js +1 -1
- package/.next/server/app/connections/routines.html +1 -1
- package/.next/server/app/connections/routines.rsc +18 -17
- package/.next/server/app/connections/routines.segments/_full.segment.rsc +18 -17
- package/.next/server/app/connections/routines.segments/_head.segment.rsc +4 -4
- package/.next/server/app/connections/routines.segments/_index.segment.rsc +10 -10
- package/.next/server/app/connections/routines.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/connections/routines.segments/connections/routines/__PAGE__.segment.rsc +3 -3
- package/.next/server/app/connections/routines.segments/connections/routines.segment.rsc +3 -3
- package/.next/server/app/connections/routines.segments/connections.segment.rsc +4 -4
- package/.next/server/app/connections.html +1 -1
- package/.next/server/app/connections.rsc +17 -16
- package/.next/server/app/connections.segments/_full.segment.rsc +17 -16
- package/.next/server/app/connections.segments/_head.segment.rsc +4 -4
- package/.next/server/app/connections.segments/_index.segment.rsc +10 -10
- package/.next/server/app/connections.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/connections.segments/connections/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/connections.segments/connections.segment.rsc +4 -4
- package/.next/server/app/conversations/[id]/page/next-font-manifest.json +4 -2
- package/.next/server/app/conversations/[id]/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/conversations/[id]/page.js.nft.json +1 -1
- package/.next/server/app/conversations/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/conversations/page/next-font-manifest.json +4 -2
- package/.next/server/app/conversations/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/conversations/page.js.nft.json +1 -1
- package/.next/server/app/conversations/page_client-reference-manifest.js +1 -1
- package/.next/server/app/conversations.html +1 -1
- package/.next/server/app/conversations.rsc +16 -15
- package/.next/server/app/conversations.segments/_full.segment.rsc +16 -15
- package/.next/server/app/conversations.segments/_head.segment.rsc +4 -4
- package/.next/server/app/conversations.segments/_index.segment.rsc +10 -10
- package/.next/server/app/conversations.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/conversations.segments/conversations/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/conversations.segments/conversations.segment.rsc +3 -3
- package/.next/server/app/docs/[[...slug]]/page/next-font-manifest.json +4 -2
- package/.next/server/app/docs/[[...slug]]/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/docs/[[...slug]]/page.js.nft.json +1 -1
- package/.next/server/app/docs/[[...slug]]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/finance/page/next-font-manifest.json +4 -2
- package/.next/server/app/finance/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/finance/page.js.nft.json +1 -1
- package/.next/server/app/finance/page_client-reference-manifest.js +1 -1
- package/.next/server/app/finance.html +1 -1
- package/.next/server/app/finance.rsc +18 -17
- package/.next/server/app/finance.segments/_full.segment.rsc +18 -17
- package/.next/server/app/finance.segments/_head.segment.rsc +4 -4
- package/.next/server/app/finance.segments/_index.segment.rsc +10 -10
- package/.next/server/app/finance.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/finance.segments/finance/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/finance.segments/finance.segment.rsc +3 -3
- package/.next/server/app/git/page/next-font-manifest.json +4 -2
- package/.next/server/app/git/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/git/page.js.nft.json +1 -1
- package/.next/server/app/git/page_client-reference-manifest.js +1 -1
- package/.next/server/app/git.html +1 -1
- package/.next/server/app/git.rsc +18 -17
- package/.next/server/app/git.segments/_full.segment.rsc +18 -17
- package/.next/server/app/git.segments/_head.segment.rsc +4 -4
- package/.next/server/app/git.segments/_index.segment.rsc +10 -10
- package/.next/server/app/git.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/git.segments/git/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/git.segments/git.segment.rsc +3 -3
- package/.next/server/app/health/page/next-font-manifest.json +4 -2
- package/.next/server/app/health/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/health/page.js.nft.json +1 -1
- package/.next/server/app/health/page_client-reference-manifest.js +1 -1
- package/.next/server/app/health.html +1 -1
- package/.next/server/app/health.rsc +18 -17
- package/.next/server/app/health.segments/_full.segment.rsc +18 -17
- package/.next/server/app/health.segments/_head.segment.rsc +4 -4
- package/.next/server/app/health.segments/_index.segment.rsc +10 -10
- package/.next/server/app/health.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/health.segments/health/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/health.segments/health.segment.rsc +3 -3
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +18 -17
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/index.segments/_full.segment.rsc +18 -17
- package/.next/server/app/index.segments/_head.segment.rsc +4 -4
- package/.next/server/app/index.segments/_index.segment.rsc +10 -10
- package/.next/server/app/index.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/knowledge/page/next-font-manifest.json +4 -2
- package/.next/server/app/knowledge/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/knowledge/page.js.nft.json +1 -1
- package/.next/server/app/knowledge/page_client-reference-manifest.js +1 -1
- package/.next/server/app/knowledge.html +1 -1
- package/.next/server/app/knowledge.rsc +19 -18
- package/.next/server/app/knowledge.segments/_full.segment.rsc +19 -18
- package/.next/server/app/knowledge.segments/_head.segment.rsc +4 -4
- package/.next/server/app/knowledge.segments/_index.segment.rsc +10 -10
- package/.next/server/app/knowledge.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/knowledge.segments/knowledge/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/knowledge.segments/knowledge.segment.rsc +4 -4
- package/.next/server/app/page/next-font-manifest.json +4 -2
- package/.next/server/app/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/reading/page/next-font-manifest.json +4 -2
- package/.next/server/app/reading/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/reading/page.js.nft.json +1 -1
- package/.next/server/app/reading/page_client-reference-manifest.js +1 -1
- package/.next/server/app/reading.html +1 -1
- package/.next/server/app/reading.rsc +18 -17
- package/.next/server/app/reading.segments/_full.segment.rsc +18 -17
- package/.next/server/app/reading.segments/_head.segment.rsc +4 -4
- package/.next/server/app/reading.segments/_index.segment.rsc +10 -10
- package/.next/server/app/reading.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/reading.segments/reading/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/reading.segments/reading.segment.rsc +3 -3
- package/.next/server/app/schedule/page/next-font-manifest.json +4 -2
- package/.next/server/app/schedule/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/schedule/page.js.nft.json +1 -1
- package/.next/server/app/schedule/page_client-reference-manifest.js +1 -1
- package/.next/server/app/schedule.html +1 -1
- package/.next/server/app/schedule.rsc +18 -17
- package/.next/server/app/schedule.segments/_full.segment.rsc +18 -17
- package/.next/server/app/schedule.segments/_head.segment.rsc +4 -4
- package/.next/server/app/schedule.segments/_index.segment.rsc +10 -10
- package/.next/server/app/schedule.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/schedule.segments/schedule/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/schedule.segments/schedule.segment.rsc +3 -3
- package/.next/server/app/settings/commands/page/next-font-manifest.json +4 -2
- package/.next/server/app/settings/commands/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/settings/commands/page.js.nft.json +1 -1
- package/.next/server/app/settings/commands/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/commands.html +1 -1
- package/.next/server/app/settings/commands.rsc +19 -18
- package/.next/server/app/settings/commands.segments/_full.segment.rsc +19 -18
- package/.next/server/app/settings/commands.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/commands.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/commands.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/settings/commands.segments/settings/commands/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/commands.segments/settings/commands.segment.rsc +3 -3
- package/.next/server/app/settings/commands.segments/settings.segment.rsc +4 -4
- package/.next/server/app/settings/danger-zone/page/app-paths-manifest.json +3 -0
- package/.next/server/app/settings/danger-zone/page/next-font-manifest.json +8 -0
- package/.next/server/app/{connections/knowledge → settings/danger-zone}/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/settings/{advanced → danger-zone}/page.js +6 -6
- package/.next/server/app/settings/{connections → danger-zone}/page.js.nft.json +1 -1
- package/.next/server/app/settings/danger-zone/page_client-reference-manifest.js +3 -0
- package/.next/server/app/settings/danger-zone.html +1 -0
- package/.next/server/app/settings/{advanced.meta → danger-zone.meta} +3 -3
- package/.next/server/app/settings/danger-zone.rsc +28 -0
- package/.next/server/app/settings/danger-zone.segments/_full.segment.rsc +28 -0
- package/.next/server/app/settings/danger-zone.segments/_head.segment.rsc +6 -0
- package/.next/server/app/settings/danger-zone.segments/_index.segment.rsc +11 -0
- package/.next/server/app/settings/danger-zone.segments/_tree.segment.rsc +3 -0
- package/.next/server/app/settings/danger-zone.segments/settings/danger-zone/__PAGE__.segment.rsc +9 -0
- package/.next/server/app/settings/danger-zone.segments/settings/danger-zone.segment.rsc +5 -0
- package/.next/server/app/settings/danger-zone.segments/settings.segment.rsc +5 -0
- package/.next/server/app/settings/hours/page/app-paths-manifest.json +3 -0
- package/.next/server/app/settings/hours/page/next-font-manifest.json +8 -0
- package/.next/server/app/settings/{connections → hours}/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/settings/{routines → hours}/page.js +6 -6
- package/.next/server/app/settings/{journal → hours}/page.js.nft.json +1 -1
- package/.next/server/app/settings/hours/page_client-reference-manifest.js +3 -0
- package/.next/server/app/settings/hours.html +1 -0
- package/.next/server/app/settings/{journal.meta → hours.meta} +3 -3
- package/.next/server/app/settings/hours.rsc +28 -0
- package/.next/server/app/settings/hours.segments/_full.segment.rsc +28 -0
- package/.next/server/app/settings/hours.segments/_head.segment.rsc +6 -0
- package/.next/server/app/settings/hours.segments/_index.segment.rsc +11 -0
- package/.next/server/app/settings/hours.segments/_tree.segment.rsc +3 -0
- package/.next/server/app/settings/hours.segments/settings/hours/__PAGE__.segment.rsc +9 -0
- package/.next/server/app/settings/hours.segments/settings/hours.segment.rsc +5 -0
- package/.next/server/app/settings/hours.segments/settings.segment.rsc +5 -0
- package/.next/server/app/settings/infrastructure/page/app-paths-manifest.json +3 -0
- package/.next/server/app/settings/infrastructure/page/next-font-manifest.json +8 -0
- package/.next/server/app/settings/infrastructure/page/react-loadable-manifest.json +8 -0
- package/.next/server/app/settings/{schedule → infrastructure}/page.js +6 -6
- package/.next/server/app/settings/{backends → infrastructure}/page.js.nft.json +1 -1
- package/.next/server/app/settings/infrastructure/page_client-reference-manifest.js +3 -0
- package/.next/server/app/settings/infrastructure.html +1 -0
- package/.next/server/app/settings/{connections.meta → infrastructure.meta} +3 -3
- package/.next/server/app/settings/infrastructure.rsc +28 -0
- package/.next/server/app/settings/infrastructure.segments/_full.segment.rsc +28 -0
- package/.next/server/app/settings/infrastructure.segments/_head.segment.rsc +6 -0
- package/.next/server/app/settings/infrastructure.segments/_index.segment.rsc +11 -0
- package/.next/server/app/settings/infrastructure.segments/_tree.segment.rsc +3 -0
- package/.next/server/app/settings/infrastructure.segments/settings/infrastructure/__PAGE__.segment.rsc +9 -0
- package/.next/server/app/settings/infrastructure.segments/settings/infrastructure.segment.rsc +5 -0
- package/.next/server/app/settings/infrastructure.segments/settings.segment.rsc +5 -0
- package/.next/server/app/settings/integrations/browser-history/page/next-font-manifest.json +4 -2
- package/.next/server/app/settings/integrations/browser-history/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/settings/integrations/browser-history/page.js.nft.json +1 -1
- package/.next/server/app/settings/integrations/browser-history/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/integrations/browser-history-managed/b4/page/next-font-manifest.json +4 -2
- package/.next/server/app/settings/integrations/browser-history-managed/b4/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/settings/integrations/browser-history-managed/b4/page.js.nft.json +1 -1
- package/.next/server/app/settings/integrations/browser-history-managed/b4/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/integrations/browser-history-managed/b4.html +1 -1
- package/.next/server/app/settings/integrations/browser-history-managed/b4.rsc +19 -18
- package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/_full.segment.rsc +19 -18
- package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/settings/integrations/browser-history-managed/b4/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/settings/integrations/browser-history-managed/b4.segment.rsc +3 -3
- package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/settings/integrations/browser-history-managed.segment.rsc +3 -3
- package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/settings/integrations.segment.rsc +3 -3
- package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/settings.segment.rsc +4 -4
- package/.next/server/app/settings/integrations/browser-history-managed/page/next-font-manifest.json +4 -2
- package/.next/server/app/settings/integrations/browser-history-managed/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/settings/integrations/browser-history-managed/page.js.nft.json +1 -1
- package/.next/server/app/settings/integrations/browser-history-managed/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/integrations/browser-history-managed.html +1 -1
- package/.next/server/app/settings/integrations/browser-history-managed.rsc +19 -18
- package/.next/server/app/settings/integrations/browser-history-managed.segments/_full.segment.rsc +19 -18
- package/.next/server/app/settings/integrations/browser-history-managed.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/integrations/browser-history-managed.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/integrations/browser-history-managed.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/settings/integrations/browser-history-managed.segments/settings/integrations/browser-history-managed/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/integrations/browser-history-managed.segments/settings/integrations/browser-history-managed.segment.rsc +3 -3
- package/.next/server/app/settings/integrations/browser-history-managed.segments/settings/integrations.segment.rsc +3 -3
- package/.next/server/app/settings/integrations/browser-history-managed.segments/settings.segment.rsc +4 -4
- package/.next/server/app/settings/integrations/browser-history.html +1 -1
- package/.next/server/app/settings/integrations/browser-history.rsc +19 -18
- package/.next/server/app/settings/integrations/browser-history.segments/_full.segment.rsc +19 -18
- package/.next/server/app/settings/integrations/browser-history.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/integrations/browser-history.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/integrations/browser-history.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/settings/integrations/browser-history.segments/settings/integrations/browser-history/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/integrations/browser-history.segments/settings/integrations/browser-history.segment.rsc +3 -3
- package/.next/server/app/settings/integrations/browser-history.segments/settings/integrations.segment.rsc +3 -3
- package/.next/server/app/settings/integrations/browser-history.segments/settings.segment.rsc +4 -4
- package/.next/server/app/settings/lessons/page/next-font-manifest.json +4 -2
- package/.next/server/app/settings/lessons/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/settings/lessons/page.js.nft.json +1 -1
- package/.next/server/app/settings/lessons/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/lessons.html +1 -1
- package/.next/server/app/settings/lessons.rsc +19 -18
- package/.next/server/app/settings/lessons.segments/_full.segment.rsc +19 -18
- package/.next/server/app/settings/lessons.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/lessons.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/lessons.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/settings/lessons.segments/settings/lessons/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/lessons.segments/settings/lessons.segment.rsc +3 -3
- package/.next/server/app/settings/lessons.segments/settings.segment.rsc +4 -4
- package/.next/server/app/settings/management/page/next-font-manifest.json +4 -2
- package/.next/server/app/settings/management/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/settings/management/page.js.nft.json +1 -1
- package/.next/server/app/settings/management/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/management.html +1 -1
- package/.next/server/app/settings/management.rsc +19 -18
- package/.next/server/app/settings/management.segments/_full.segment.rsc +19 -18
- package/.next/server/app/settings/management.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/management.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/management.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/settings/management.segments/settings/management/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/management.segments/settings/management.segment.rsc +3 -3
- package/.next/server/app/settings/management.segments/settings.segment.rsc +4 -4
- package/.next/server/app/settings/models/page/next-font-manifest.json +4 -2
- package/.next/server/app/settings/models/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/settings/models/page.js.nft.json +1 -1
- package/.next/server/app/settings/models/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/models.html +1 -1
- package/.next/server/app/settings/models.rsc +19 -18
- package/.next/server/app/settings/models.segments/_full.segment.rsc +19 -18
- package/.next/server/app/settings/models.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/models.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/models.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/settings/models.segments/settings/models/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/models.segments/settings/models.segment.rsc +3 -3
- package/.next/server/app/settings/models.segments/settings.segment.rsc +4 -4
- package/.next/server/app/settings/page/next-font-manifest.json +4 -2
- package/.next/server/app/settings/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/safety/page/app-paths-manifest.json +3 -0
- package/.next/server/app/settings/safety/page/next-font-manifest.json +8 -0
- package/.next/server/app/settings/safety/page/react-loadable-manifest.json +8 -0
- package/.next/server/app/settings/{journal → safety}/page.js +6 -6
- package/.next/server/app/settings/{processes → safety}/page.js.nft.json +1 -1
- package/.next/server/app/settings/safety/page_client-reference-manifest.js +3 -0
- package/.next/server/app/settings/safety.html +1 -0
- package/.next/server/app/settings/{backends.meta → safety.meta} +3 -3
- package/.next/server/app/settings/safety.rsc +28 -0
- package/.next/server/app/settings/safety.segments/_full.segment.rsc +28 -0
- package/.next/server/app/settings/safety.segments/_head.segment.rsc +6 -0
- package/.next/server/app/settings/safety.segments/_index.segment.rsc +11 -0
- package/.next/server/app/settings/safety.segments/_tree.segment.rsc +3 -0
- package/.next/server/app/settings/safety.segments/settings/safety/__PAGE__.segment.rsc +9 -0
- package/.next/server/app/settings/safety.segments/settings/safety.segment.rsc +5 -0
- package/.next/server/app/settings/safety.segments/settings.segment.rsc +5 -0
- package/.next/server/app/settings/self-learning/page/next-font-manifest.json +4 -2
- package/.next/server/app/settings/self-learning/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/settings/self-learning/page.js.nft.json +1 -1
- package/.next/server/app/settings/self-learning/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/self-learning.html +1 -1
- package/.next/server/app/settings/self-learning.rsc +19 -18
- package/.next/server/app/settings/self-learning.segments/_full.segment.rsc +19 -18
- package/.next/server/app/settings/self-learning.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/self-learning.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/self-learning.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/settings/self-learning.segments/settings/self-learning/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/self-learning.segments/settings/self-learning.segment.rsc +3 -3
- package/.next/server/app/settings/self-learning.segments/settings.segment.rsc +4 -4
- package/.next/server/app/settings/wiki/page/next-font-manifest.json +4 -2
- package/.next/server/app/settings/wiki/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/settings/wiki/page.js.nft.json +1 -1
- package/.next/server/app/settings/wiki/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/wiki/timeline/page/next-font-manifest.json +4 -2
- package/.next/server/app/settings/wiki/timeline/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/settings/wiki/timeline/page.js.nft.json +1 -1
- package/.next/server/app/settings/wiki/timeline/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/wiki/timeline.html +1 -1
- package/.next/server/app/settings/wiki/timeline.rsc +17 -16
- package/.next/server/app/settings/wiki/timeline.segments/_full.segment.rsc +17 -16
- package/.next/server/app/settings/wiki/timeline.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/wiki/timeline.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/wiki/timeline.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/settings/wiki/timeline.segments/settings/wiki/timeline/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/settings/wiki/timeline.segments/settings/wiki/timeline.segment.rsc +3 -3
- package/.next/server/app/settings/wiki/timeline.segments/settings/wiki.segment.rsc +3 -3
- package/.next/server/app/settings/wiki/timeline.segments/settings.segment.rsc +4 -4
- package/.next/server/app/settings/wiki.html +1 -1
- package/.next/server/app/settings/wiki.rsc +19 -18
- package/.next/server/app/settings/wiki.segments/_full.segment.rsc +19 -18
- package/.next/server/app/settings/wiki.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/wiki.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/wiki.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/settings/wiki.segments/settings/wiki/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/wiki.segments/settings/wiki.segment.rsc +3 -3
- package/.next/server/app/settings/wiki.segments/settings.segment.rsc +4 -4
- package/.next/server/app/settings.html +1 -1
- package/.next/server/app/settings.rsc +19 -18
- package/.next/server/app/settings.segments/_full.segment.rsc +19 -18
- package/.next/server/app/settings.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings.segments/settings.segment.rsc +4 -4
- package/.next/server/app/setup/page/next-font-manifest.json +4 -2
- package/.next/server/app/setup/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/setup/page.js.nft.json +1 -1
- package/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/.next/server/app/setup.html +1 -1
- package/.next/server/app/setup.rsc +18 -17
- package/.next/server/app/setup.segments/_full.segment.rsc +18 -17
- package/.next/server/app/setup.segments/_head.segment.rsc +4 -4
- package/.next/server/app/setup.segments/_index.segment.rsc +10 -10
- package/.next/server/app/setup.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/setup.segments/setup.segment.rsc +3 -3
- package/.next/server/app/trip/page/next-font-manifest.json +4 -2
- package/.next/server/app/trip/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/trip/page.js.nft.json +1 -1
- package/.next/server/app/trip/page_client-reference-manifest.js +1 -1
- package/.next/server/app/trip.html +1 -1
- package/.next/server/app/trip.rsc +18 -17
- package/.next/server/app/trip.segments/_full.segment.rsc +18 -17
- package/.next/server/app/trip.segments/_head.segment.rsc +4 -4
- package/.next/server/app/trip.segments/_index.segment.rsc +10 -10
- package/.next/server/app/trip.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/trip.segments/trip/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/trip.segments/trip.segment.rsc +3 -3
- package/.next/server/app/wiki/page/next-font-manifest.json +4 -2
- package/.next/server/app/wiki/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/wiki/page.js.nft.json +1 -1
- package/.next/server/app/wiki/page_client-reference-manifest.js +1 -1
- package/.next/server/app/wiki/timeline/page/next-font-manifest.json +4 -2
- package/.next/server/app/wiki/timeline/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/wiki/timeline/page.js.nft.json +1 -1
- package/.next/server/app/wiki/timeline/page_client-reference-manifest.js +1 -1
- package/.next/server/app/wiki/timeline.html +1 -1
- package/.next/server/app/wiki/timeline.rsc +18 -17
- package/.next/server/app/wiki/timeline.segments/_full.segment.rsc +18 -17
- package/.next/server/app/wiki/timeline.segments/_head.segment.rsc +4 -4
- package/.next/server/app/wiki/timeline.segments/_index.segment.rsc +10 -10
- package/.next/server/app/wiki/timeline.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/wiki/timeline.segments/wiki/timeline/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/wiki/timeline.segments/wiki/timeline.segment.rsc +3 -3
- package/.next/server/app/wiki/timeline.segments/wiki.segment.rsc +3 -3
- package/.next/server/app/wiki.html +1 -1
- package/.next/server/app/wiki.rsc +18 -17
- package/.next/server/app/wiki.segments/_full.segment.rsc +18 -17
- package/.next/server/app/wiki.segments/_head.segment.rsc +4 -4
- package/.next/server/app/wiki.segments/_index.segment.rsc +10 -10
- package/.next/server/app/wiki.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/wiki.segments/wiki/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/wiki.segments/wiki.segment.rsc +3 -3
- package/.next/server/app-paths-manifest.json +6 -9
- package/.next/server/chunks/0z~i_next_dist_esm_build_templates_app-route_0o_o_hp.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__02gp4s0._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0gckkni._.js +1 -1
- package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_connections_notes_page_actions_04zn1-i.js +3 -0
- package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_danger-zone_page_actions_0mp3gc-.js +3 -0
- package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_safety_page_actions_05rsfax.js +3 -0
- package/.next/server/chunks/ssr/0juq_dashboard_src_app_settings_integrations_browser-history_page_tsx_0.30t~j._.js +1 -1
- package/.next/server/chunks/ssr/0x9-__next-internal_server_app_settings_infrastructure_page_actions_0u8fwic.js +3 -0
- package/.next/server/chunks/ssr/0x9-_src_app_settings_integrations_browser-history-managed_b4_page_tsx_03zkdyv._.js +1 -1
- package/.next/server/chunks/ssr/0x9-_src_app_settings_integrations_browser-history-managed_page_tsx_0q.v5ph._.js +1 -1
- package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0-xf3nq.js +1 -1
- package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_05t.o5v.js +4 -0
- package/.next/server/chunks/ssr/{0z~i_next_dist_esm_build_templates_app-page_0rzk_wb.js → 0z~i_next_dist_esm_build_templates_app-page_07tjgqy.js} +3 -3
- package/.next/server/chunks/ssr/{0z~i_next_dist_esm_build_templates_app-page_0dgjd77.js → 0z~i_next_dist_esm_build_templates_app-page_08-8pml.js} +3 -3
- package/.next/server/chunks/ssr/{0z~i_next_dist_esm_build_templates_app-page_0~l1-oo.js → 0z~i_next_dist_esm_build_templates_app-page_0_hw.~x.js} +3 -3
- package/.next/server/chunks/ssr/{0z~i_next_dist_esm_build_templates_app-page_0i5nfg6.js → 0z~i_next_dist_esm_build_templates_app-page_0gja0sp.js} +3 -3
- package/.next/server/chunks/ssr/{0z~i_next_dist_esm_build_templates_app-page_0i3pbzc.js → 0z~i_next_dist_esm_build_templates_app-page_0xk7dvj.js} +3 -3
- package/.next/server/chunks/ssr/{[root-of-the-server]__0.oq_nd._.js → [root-of-the-server]__064iw-m._.js} +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__0bcu47h._.js +3 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__0hxae6t._.js → [root-of-the-server]__0dz8grn._.js} +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__0e3togs._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0own5qk._.js +7 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__0k4~6v4._.js → [root-of-the-server]__0p.rqkz._.js} +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__0twuzim._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0v.2-w_._.js +9 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__0ku1mlh._.js → [root-of-the-server]__0x90fri._.js} +2 -2
- package/.next/server/chunks/ssr/{[root-of-the-server]__138v34b._.js → [root-of-the-server]__12ocbb6._.js} +2 -2
- package/.next/server/chunks/ssr/_0-fa0e6._.js +3 -0
- package/.next/server/chunks/ssr/_0-fv_sr._.js +1 -1
- package/.next/server/chunks/ssr/_0.83~vc._.js +3 -0
- package/.next/server/chunks/ssr/_0.buz~z._.js +3 -0
- package/.next/server/chunks/ssr/_00m~lu3._.js +3 -0
- package/.next/server/chunks/ssr/_00yd82b._.js +3 -0
- package/.next/server/chunks/ssr/_01u8_20._.js +1 -1
- package/.next/server/chunks/ssr/_02-~4_x._.js +3 -0
- package/.next/server/chunks/ssr/_03ylkmo._.js +1 -1
- package/.next/server/chunks/ssr/_042qll3._.js +3 -0
- package/.next/server/chunks/ssr/_05-nasq._.js +3 -0
- package/.next/server/chunks/ssr/_052c-d8._.js +1 -1
- package/.next/server/chunks/ssr/_05etcnw._.js +3 -0
- package/.next/server/chunks/ssr/_06pfh8i._.js +3 -0
- package/.next/server/chunks/ssr/_07y8~wo._.js +3 -0
- package/.next/server/chunks/ssr/_0837jo1._.js +1 -1
- package/.next/server/chunks/ssr/_095g5nv._.js +3 -0
- package/.next/server/chunks/ssr/_0_59iz5._.js +3 -0
- package/.next/server/chunks/ssr/_0_mohhy._.js +3 -0
- package/.next/server/chunks/ssr/_0_qa7ix._.js +3 -0
- package/.next/server/chunks/ssr/_0a0gitj._.js +3 -0
- package/.next/server/chunks/ssr/_0bbgll1._.js +3 -0
- package/.next/server/chunks/ssr/_0bsns8f._.js +3 -0
- package/.next/server/chunks/ssr/_0cus~q3._.js +3 -0
- package/.next/server/chunks/ssr/_0cwcz17._.js +1 -1
- package/.next/server/chunks/ssr/_0do3r93._.js +3 -0
- package/.next/server/chunks/ssr/_0eoqkp.._.js +3 -0
- package/.next/server/chunks/ssr/_0fse1qi._.js +3 -0
- package/.next/server/chunks/ssr/_0g7_r5i._.js +1 -1
- package/.next/server/chunks/ssr/_0h-mq6i._.js +3 -0
- package/.next/server/chunks/ssr/_0h7l~qt._.js +3 -0
- package/.next/server/chunks/ssr/_0hojxqy._.js +1 -1
- package/.next/server/chunks/ssr/_0jlpcde._.js +3 -0
- package/.next/server/chunks/ssr/_0kn1u4v._.js +3 -0
- package/.next/server/chunks/ssr/_0l7uzol._.js +3 -0
- package/.next/server/chunks/ssr/_0m~vcd.._.js +3 -0
- package/.next/server/chunks/ssr/_0n2_n8d._.js +3 -0
- package/.next/server/chunks/ssr/_0p4ugyq._.js +3 -0
- package/.next/server/chunks/ssr/_0pbcc~c._.js +3 -0
- package/.next/server/chunks/ssr/_0q6ga5s._.js +3 -0
- package/.next/server/chunks/ssr/_0rcvmzk._.js +3 -0
- package/.next/server/chunks/ssr/_0tl98en._.js +1 -1
- package/.next/server/chunks/ssr/_0vtof91._.js +3 -0
- package/.next/server/chunks/ssr/_0wj-xi-._.js +1 -1
- package/.next/server/chunks/ssr/_0y-w3is._.js +1 -1
- package/.next/server/chunks/ssr/_0ys19k1._.js +3 -0
- package/.next/server/chunks/ssr/_0zegd8c._.js +3 -0
- package/.next/server/chunks/ssr/_0zskdhg._.js +3 -0
- package/.next/server/chunks/ssr/_0~5jogr._.js +3 -0
- package/.next/server/chunks/ssr/_10t~mm1._.js +5 -0
- package/.next/server/chunks/ssr/_12yrbbd._.js +3 -0
- package/.next/server/chunks/ssr/_12~voz0._.js +3 -0
- package/.next/server/chunks/ssr/_13x8vt3._.js +3 -0
- package/.next/server/chunks/ssr/node_modules__pnpm_0hiwu9~._.js +3 -0
- package/.next/server/chunks/ssr/packages_dashboard__next-internal_server_app_browser_page_actions_09ozuw5.js +3 -0
- package/.next/server/chunks/ssr/packages_dashboard__next-internal_server_app_settings_hours_page_actions_090o.uf.js +3 -0
- package/.next/server/chunks/ssr/packages_dashboard_src_08ni3k2._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_0dzu4m3._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_0l-df62._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_0somi_b._.js +3 -0
- package/.next/server/chunks/ssr/packages_dashboard_src_0uxs9-.._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_0wg3sud._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_0yi7124._.js +3 -0
- package/.next/server/chunks/ssr/packages_dashboard_src_0zhdaa4._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_13g~g03._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_activity_loading_tsx_0rzsqef._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_activity_page_tsx_08yep46._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_agents_[slug]_page_tsx_038yph.._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_agents_page_tsx_0simg3k._.js +2 -2
- package/.next/server/chunks/ssr/packages_dashboard_src_app_analytics_page_tsx_0tb_amd._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_browser-tasks_[id]_page_tsx_0.80q8e._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_chat_page_tsx_0i0_8pw._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_connections_mcp_page_tsx_0lc.low._.js +2 -2
- package/.next/server/chunks/ssr/packages_dashboard_src_app_connections_repositories_page_tsx_08y6paq._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_git_page_tsx_0ah19-6._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_knowledge_page_tsx_0uf4..4._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_page_tsx_0.p6n1a._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_schedule_page_tsx_0znc404._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_commands_page_tsx_0nacqrh._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_hours_page_tsx_0shgzxo._.js +3 -0
- package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_infrastructure_page_tsx_0c9oi1c._.js +3 -0
- package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_management_page_tsx_09mnin5._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_models_page_tsx_0djsx88._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_page_tsx_13_rdav._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_self-learning_page_tsx_0noj6fo._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_wiki_page_tsx_0..1tkb._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_setup_page_tsx_06k3via._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_components_0c08h~y._.js +3 -0
- package/.next/server/chunks/ssr/packages_dashboard_src_components_agents_AgentEditor_tsx_1379k-6._.js +2 -2
- package/.next/server/chunks/ssr/packages_dashboard_src_components_connections_integration-card_tsx_0yh1a-~._.js +2 -2
- package/.next/server/chunks/ssr/packages_dashboard_src_components_connections_slack-card_tsx_0mahejj._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_components_logs_event-row_tsx_0gwfgqo._.js +3 -0
- package/.next/server/chunks/ssr/packages_dashboard_src_components_mail_gmail-card_tsx_0kpway8._.js +1 -1
- package/.next/server/chunks/ssr/packages_shared_dist_index_0kuvow-.js +1 -1
- package/.next/server/edge/chunks/[root-of-the-server]__0iap10r._.js +1 -1
- package/.next/server/middleware/middleware-manifest.json +29 -5
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/middleware-manifest.json +29 -5
- package/.next/server/next-font-manifest.js +1 -1
- package/.next/server/next-font-manifest.json +51 -2
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/{i_QR0WWkZFeICcOMbfuUs → 4Wu33OvzutxPxXUu1PWPC}/_clientMiddlewareManifest.js +24 -0
- package/.next/static/chunks/0-sq9td.e1huw.js +1 -0
- package/.next/static/chunks/0-~s5n1hsw0xz.css +1 -0
- package/.next/static/chunks/0.1mo3ft90qg_.js +1 -0
- package/.next/static/chunks/0.eu.rxoo07x6.js +1 -0
- package/.next/static/chunks/0147tjztlthxv.js +1 -0
- package/.next/static/chunks/01~5c-.ttg~hv.js +1 -0
- package/.next/static/chunks/02jrxwgg0c4jp.js +1 -0
- package/.next/static/chunks/02tb-nh0a2y6t.js +1 -0
- package/.next/static/chunks/03ndokpk6o0.5.js +1 -0
- package/.next/static/chunks/03qz~hx5zgr~d.js +1 -0
- package/.next/static/chunks/042u~0qpgty0o.js +10 -0
- package/.next/static/chunks/050-z9-4lo_4l.js +1 -0
- package/.next/static/chunks/051m0t~qz1jvu.js +1 -0
- package/.next/static/chunks/0755mii5h~0jr.js +1 -0
- package/.next/static/chunks/07_-k85izz7.j.js +1 -0
- package/.next/static/chunks/07qdiaq4h1bev.js +1 -0
- package/.next/static/chunks/07w_f8nwejvtm.js +1 -0
- package/.next/static/chunks/087m534nojkn2.js +1 -0
- package/.next/static/chunks/08tuvmjn9p090.js +1 -0
- package/.next/static/chunks/09k746-3cizz1.js +19 -0
- package/.next/static/chunks/09sekcnc01we8.js +1 -0
- package/.next/static/chunks/0_-a6t77lnxg4.js +1 -0
- package/.next/static/chunks/0_b4esx30vjxq.js +1 -0
- package/.next/static/chunks/0_r~att41ue.r.js +1 -0
- package/.next/static/chunks/0cj6iorqj7he_.js +1 -0
- package/.next/static/chunks/0c~_onh_gv7zj.js +1 -0
- package/.next/static/chunks/0d13hqow~d37h.js +1 -0
- package/.next/static/chunks/0drk956_8nbwg.js +1 -0
- package/.next/static/chunks/0e-txs97b3.x9.js +1 -0
- package/.next/static/chunks/0ezl44_wv~csn.js +1 -0
- package/.next/static/chunks/0g-eqp3qwkojl.js +1 -0
- package/.next/static/chunks/0h5rf~pu59~hu.js +1 -0
- package/.next/static/chunks/0i8.oj~1w~u~..js +1 -0
- package/.next/static/chunks/0iichp621kqto.js +1 -0
- package/.next/static/chunks/{0afrwc5vvwfx4.js → 0iscxmienbk2m.js} +1 -1
- package/.next/static/chunks/0iv9k-z7~xtww.js +1 -0
- package/.next/static/chunks/0k6jf41ge3u~8.js +1 -0
- package/.next/static/chunks/0k9-e5pear~t4.js +3 -0
- package/.next/static/chunks/0kib-9vm23r0j.js +1 -0
- package/.next/static/chunks/0kj.5xdofdrz7.js +1 -0
- package/.next/static/chunks/0lbnukk03a8nv.js +1 -0
- package/.next/static/chunks/0m8e4hy-r8y-4.js +1 -0
- package/.next/static/chunks/{02k085x_j4_bz.js → 0mkryl3ctt_xh.js} +1 -1
- package/.next/static/chunks/0mxp..4l7j1dn.js +1 -0
- package/.next/static/chunks/0o61x2xdye~o2.js +1 -0
- package/.next/static/chunks/0os-c6-aqwq4d.js +1 -0
- package/.next/static/chunks/0pxjn_pm269cw.js +1 -0
- package/.next/static/chunks/0qyxjj5z_is.d.js +1 -0
- package/.next/static/chunks/0s.cyrhyscm8x.js +1 -0
- package/.next/static/chunks/0wvyy~m_e1q5c.js +3 -0
- package/.next/static/chunks/0x96~upcinv2_.js +1 -0
- package/.next/static/chunks/0zo_ws6shrfnh.js +1 -0
- package/.next/static/chunks/0~kj3qxs7kx58.js +1 -0
- package/.next/static/chunks/10rtk-h9y-705.js +2 -0
- package/.next/static/chunks/115_4xjsk0jzh.js +1 -0
- package/.next/static/chunks/12zmqqk8p-b.~.js +1 -0
- package/.next/static/chunks/135nkfxk7so9p.js +1 -0
- package/.next/static/chunks/153z3m3.a2ubk.js +5 -0
- package/.next/static/chunks/15fpord4hyosp.js +1 -0
- package/.next/static/chunks/15~h2wegwdbf4.js +1 -0
- package/.next/static/chunks/16-i4p1ipmpts.js +1 -0
- package/.next/static/chunks/171j55n_9gyxb.js +1 -0
- package/.next/static/chunks/17c6~kld51ls5.js +11 -0
- package/.next/static/chunks/17tv5jbg2hiup.js +1 -0
- package/.next/static/chunks/187a-majiuj8r.js +1 -0
- package/.next/static/media/fraunces-latin-ext-wght-normal.08-a-oz-atsnn.woff2 +0 -0
- package/.next/static/media/fraunces-latin-wght-normal.0l9v6sgnyeoq8.woff2 +0 -0
- package/.next/static/media/fraunces-vietnamese-wght-normal.05ntv1..6v~z7.woff2 +0 -0
- package/.next/static/media/instrument-sans-latin-ext-wght-normal.0td0--1m0lec9.woff2 +0 -0
- package/.next/static/media/instrument-sans-latin-wght-normal.10bj0-z630vnn.woff2 +0 -0
- package/.next/types/routes.d.ts +7 -10
- package/.next/types/validator.ts +33 -60
- package/package.json +4 -2
- package/.next/server/app/connections/knowledge/page/app-paths-manifest.json +0 -3
- package/.next/server/app/connections/knowledge/page/next-font-manifest.json +0 -6
- package/.next/server/app/connections/knowledge/page.js.nft.json +0 -1
- package/.next/server/app/connections/knowledge/page_client-reference-manifest.js +0 -3
- package/.next/server/app/connections/knowledge.html +0 -1
- package/.next/server/app/connections/knowledge.rsc +0 -27
- package/.next/server/app/connections/knowledge.segments/_full.segment.rsc +0 -27
- package/.next/server/app/connections/knowledge.segments/_head.segment.rsc +0 -6
- package/.next/server/app/connections/knowledge.segments/_index.segment.rsc +0 -11
- package/.next/server/app/connections/knowledge.segments/_tree.segment.rsc +0 -2
- package/.next/server/app/connections/knowledge.segments/connections/knowledge/__PAGE__.segment.rsc +0 -9
- package/.next/server/app/connections/knowledge.segments/connections/knowledge.segment.rsc +0 -5
- package/.next/server/app/connections/knowledge.segments/connections.segment.rsc +0 -5
- package/.next/server/app/settings/advanced/page/app-paths-manifest.json +0 -3
- package/.next/server/app/settings/advanced/page/next-font-manifest.json +0 -6
- package/.next/server/app/settings/advanced/page.js.nft.json +0 -1
- package/.next/server/app/settings/advanced/page_client-reference-manifest.js +0 -3
- package/.next/server/app/settings/advanced.html +0 -1
- package/.next/server/app/settings/advanced.rsc +0 -27
- package/.next/server/app/settings/advanced.segments/_full.segment.rsc +0 -27
- package/.next/server/app/settings/advanced.segments/_head.segment.rsc +0 -6
- package/.next/server/app/settings/advanced.segments/_index.segment.rsc +0 -11
- package/.next/server/app/settings/advanced.segments/_tree.segment.rsc +0 -2
- package/.next/server/app/settings/advanced.segments/settings/advanced/__PAGE__.segment.rsc +0 -9
- package/.next/server/app/settings/advanced.segments/settings/advanced.segment.rsc +0 -5
- package/.next/server/app/settings/advanced.segments/settings.segment.rsc +0 -5
- package/.next/server/app/settings/backends/page/app-paths-manifest.json +0 -3
- package/.next/server/app/settings/backends/page/next-font-manifest.json +0 -6
- package/.next/server/app/settings/backends/page.js +0 -17
- package/.next/server/app/settings/backends/page_client-reference-manifest.js +0 -3
- package/.next/server/app/settings/backends.html +0 -1
- package/.next/server/app/settings/backends.rsc +0 -24
- package/.next/server/app/settings/backends.segments/_full.segment.rsc +0 -24
- package/.next/server/app/settings/backends.segments/_head.segment.rsc +0 -6
- package/.next/server/app/settings/backends.segments/_index.segment.rsc +0 -11
- package/.next/server/app/settings/backends.segments/_tree.segment.rsc +0 -2
- package/.next/server/app/settings/backends.segments/settings/backends/__PAGE__.segment.rsc +0 -6
- package/.next/server/app/settings/backends.segments/settings/backends.segment.rsc +0 -5
- package/.next/server/app/settings/backends.segments/settings.segment.rsc +0 -5
- package/.next/server/app/settings/connections/page/app-paths-manifest.json +0 -3
- package/.next/server/app/settings/connections/page/next-font-manifest.json +0 -6
- package/.next/server/app/settings/connections/page.js +0 -17
- package/.next/server/app/settings/connections/page_client-reference-manifest.js +0 -3
- package/.next/server/app/settings/connections.html +0 -1
- package/.next/server/app/settings/connections.rsc +0 -24
- package/.next/server/app/settings/connections.segments/_full.segment.rsc +0 -24
- package/.next/server/app/settings/connections.segments/_head.segment.rsc +0 -6
- package/.next/server/app/settings/connections.segments/_index.segment.rsc +0 -11
- package/.next/server/app/settings/connections.segments/_tree.segment.rsc +0 -2
- package/.next/server/app/settings/connections.segments/settings/connections/__PAGE__.segment.rsc +0 -6
- package/.next/server/app/settings/connections.segments/settings/connections.segment.rsc +0 -5
- package/.next/server/app/settings/connections.segments/settings.segment.rsc +0 -5
- package/.next/server/app/settings/journal/page/app-paths-manifest.json +0 -3
- package/.next/server/app/settings/journal/page/next-font-manifest.json +0 -6
- package/.next/server/app/settings/journal/page/react-loadable-manifest.json +0 -8
- package/.next/server/app/settings/journal/page_client-reference-manifest.js +0 -3
- package/.next/server/app/settings/journal.html +0 -1
- package/.next/server/app/settings/journal.rsc +0 -27
- package/.next/server/app/settings/journal.segments/_full.segment.rsc +0 -27
- package/.next/server/app/settings/journal.segments/_head.segment.rsc +0 -6
- package/.next/server/app/settings/journal.segments/_index.segment.rsc +0 -11
- package/.next/server/app/settings/journal.segments/_tree.segment.rsc +0 -2
- package/.next/server/app/settings/journal.segments/settings/journal/__PAGE__.segment.rsc +0 -9
- package/.next/server/app/settings/journal.segments/settings/journal.segment.rsc +0 -5
- package/.next/server/app/settings/journal.segments/settings.segment.rsc +0 -5
- package/.next/server/app/settings/messaging/page/app-paths-manifest.json +0 -3
- package/.next/server/app/settings/messaging/page/next-font-manifest.json +0 -6
- package/.next/server/app/settings/messaging/page/react-loadable-manifest.json +0 -8
- package/.next/server/app/settings/messaging/page.js +0 -17
- package/.next/server/app/settings/messaging/page.js.nft.json +0 -1
- package/.next/server/app/settings/messaging/page_client-reference-manifest.js +0 -3
- package/.next/server/app/settings/messaging.html +0 -1
- package/.next/server/app/settings/messaging.meta +0 -16
- package/.next/server/app/settings/messaging.rsc +0 -24
- package/.next/server/app/settings/messaging.segments/_full.segment.rsc +0 -24
- package/.next/server/app/settings/messaging.segments/_head.segment.rsc +0 -6
- package/.next/server/app/settings/messaging.segments/_index.segment.rsc +0 -11
- package/.next/server/app/settings/messaging.segments/_tree.segment.rsc +0 -2
- package/.next/server/app/settings/messaging.segments/settings/messaging/__PAGE__.segment.rsc +0 -6
- package/.next/server/app/settings/messaging.segments/settings/messaging.segment.rsc +0 -5
- package/.next/server/app/settings/messaging.segments/settings.segment.rsc +0 -5
- package/.next/server/app/settings/processes/page/app-paths-manifest.json +0 -3
- package/.next/server/app/settings/processes/page/build-manifest.json +0 -18
- package/.next/server/app/settings/processes/page/next-font-manifest.json +0 -6
- package/.next/server/app/settings/processes/page/react-loadable-manifest.json +0 -8
- package/.next/server/app/settings/processes/page/server-reference-manifest.json +0 -4
- package/.next/server/app/settings/processes/page.js +0 -17
- package/.next/server/app/settings/processes/page_client-reference-manifest.js +0 -3
- package/.next/server/app/settings/processes.html +0 -1
- package/.next/server/app/settings/processes.meta +0 -16
- package/.next/server/app/settings/processes.rsc +0 -24
- package/.next/server/app/settings/processes.segments/_full.segment.rsc +0 -24
- package/.next/server/app/settings/processes.segments/_head.segment.rsc +0 -6
- package/.next/server/app/settings/processes.segments/_index.segment.rsc +0 -11
- package/.next/server/app/settings/processes.segments/_tree.segment.rsc +0 -2
- package/.next/server/app/settings/processes.segments/settings/processes/__PAGE__.segment.rsc +0 -6
- package/.next/server/app/settings/processes.segments/settings/processes.segment.rsc +0 -5
- package/.next/server/app/settings/processes.segments/settings.segment.rsc +0 -5
- package/.next/server/app/settings/routines/page/app-paths-manifest.json +0 -3
- package/.next/server/app/settings/routines/page/build-manifest.json +0 -18
- package/.next/server/app/settings/routines/page/next-font-manifest.json +0 -6
- package/.next/server/app/settings/routines/page/react-loadable-manifest.json +0 -8
- package/.next/server/app/settings/routines/page/server-reference-manifest.json +0 -4
- package/.next/server/app/settings/routines/page.js.nft.json +0 -1
- package/.next/server/app/settings/routines/page_client-reference-manifest.js +0 -3
- package/.next/server/app/settings/routines.html +0 -1
- package/.next/server/app/settings/routines.meta +0 -16
- package/.next/server/app/settings/routines.rsc +0 -27
- package/.next/server/app/settings/routines.segments/_full.segment.rsc +0 -27
- package/.next/server/app/settings/routines.segments/_head.segment.rsc +0 -6
- package/.next/server/app/settings/routines.segments/_index.segment.rsc +0 -11
- package/.next/server/app/settings/routines.segments/_tree.segment.rsc +0 -2
- package/.next/server/app/settings/routines.segments/settings/routines/__PAGE__.segment.rsc +0 -9
- package/.next/server/app/settings/routines.segments/settings/routines.segment.rsc +0 -5
- package/.next/server/app/settings/routines.segments/settings.segment.rsc +0 -5
- package/.next/server/app/settings/schedule/page/app-paths-manifest.json +0 -3
- package/.next/server/app/settings/schedule/page/build-manifest.json +0 -18
- package/.next/server/app/settings/schedule/page/next-font-manifest.json +0 -6
- package/.next/server/app/settings/schedule/page/react-loadable-manifest.json +0 -8
- package/.next/server/app/settings/schedule/page/server-reference-manifest.json +0 -4
- package/.next/server/app/settings/schedule/page_client-reference-manifest.js +0 -3
- package/.next/server/app/settings/schedule.html +0 -1
- package/.next/server/app/settings/schedule.meta +0 -16
- package/.next/server/app/settings/schedule.rsc +0 -27
- package/.next/server/app/settings/schedule.segments/_full.segment.rsc +0 -27
- package/.next/server/app/settings/schedule.segments/_head.segment.rsc +0 -6
- package/.next/server/app/settings/schedule.segments/_index.segment.rsc +0 -11
- package/.next/server/app/settings/schedule.segments/_tree.segment.rsc +0 -2
- package/.next/server/app/settings/schedule.segments/settings/schedule/__PAGE__.segment.rsc +0 -9
- package/.next/server/app/settings/schedule.segments/settings/schedule.segment.rsc +0 -5
- package/.next/server/app/settings/schedule.segments/settings.segment.rsc +0 -5
- package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_connections_knowledge_page_actions_06w7ski.js +0 -3
- package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_advanced_page_actions_0x06bjx.js +0 -3
- package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_backends_page_actions_0z3vipu.js +0 -3
- package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_connections_page_actions_0n0b1rb.js +0 -3
- package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_journal_page_actions_0_.h.-y.js +0 -3
- package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_messaging_page_actions_0czehcp.js +0 -3
- package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_processes_page_actions_0zbumx3.js +0 -3
- package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_routines_page_actions_0-37ia4.js +0 -3
- package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_schedule_page_actions_045j4zv.js +0 -3
- package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0s6jb_7.js +0 -4
- package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0wu80v6.js +0 -4
- package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0~yic40.js +0 -4
- package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_113c8xj.js +0 -4
- package/.next/server/chunks/ssr/[root-of-the-server]__00ch_ms._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__00s5z4o._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__03yuq_v._.js +0 -7
- package/.next/server/chunks/ssr/[root-of-the-server]__0kcivrd._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0kvyeu1._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0t-9jvt._.js +0 -3
- package/.next/server/chunks/ssr/_0-3uzu1._.js +0 -3
- package/.next/server/chunks/ssr/_0.yhrky._.js +0 -3
- package/.next/server/chunks/ssr/_0.zct4p._.js +0 -3
- package/.next/server/chunks/ssr/_00_--i0._.js +0 -3
- package/.next/server/chunks/ssr/_00ej8j9._.js +0 -3
- package/.next/server/chunks/ssr/_03bq.de._.js +0 -3
- package/.next/server/chunks/ssr/_04jkn8c._.js +0 -3
- package/.next/server/chunks/ssr/_04kt9.8._.js +0 -3
- package/.next/server/chunks/ssr/_05jfize._.js +0 -3
- package/.next/server/chunks/ssr/_06_m-vp._.js +0 -3
- package/.next/server/chunks/ssr/_09-o1vq._.js +0 -3
- package/.next/server/chunks/ssr/_095u19_._.js +0 -3
- package/.next/server/chunks/ssr/_0_qwmiz._.js +0 -3
- package/.next/server/chunks/ssr/_0bzj8lx._.js +0 -3
- package/.next/server/chunks/ssr/_0cccma-._.js +0 -3
- package/.next/server/chunks/ssr/_0da0k2u._.js +0 -3
- package/.next/server/chunks/ssr/_0evcd7w._.js +0 -3
- package/.next/server/chunks/ssr/_0e~4oah._.js +0 -3
- package/.next/server/chunks/ssr/_0ibeuw6._.js +0 -3
- package/.next/server/chunks/ssr/_0ixicrb._.js +0 -3
- package/.next/server/chunks/ssr/_0jg6hy0._.js +0 -3
- package/.next/server/chunks/ssr/_0jrxrig._.js +0 -3
- package/.next/server/chunks/ssr/_0mbbas-._.js +0 -3
- package/.next/server/chunks/ssr/_0n5nlcq._.js +0 -3
- package/.next/server/chunks/ssr/_0nvpv18._.js +0 -3
- package/.next/server/chunks/ssr/_0o~hk.m._.js +0 -3
- package/.next/server/chunks/ssr/_0pdbiu.._.js +0 -9
- package/.next/server/chunks/ssr/_0pg6_56._.js +0 -3
- package/.next/server/chunks/ssr/_0q8o~q1._.js +0 -3
- package/.next/server/chunks/ssr/_0r1lb0f._.js +0 -3
- package/.next/server/chunks/ssr/_0r25vcp._.js +0 -3
- package/.next/server/chunks/ssr/_0r9.4nv._.js +0 -3
- package/.next/server/chunks/ssr/_0tf7hjz._.js +0 -3
- package/.next/server/chunks/ssr/_0xmdrbq._.js +0 -3
- package/.next/server/chunks/ssr/_0zz58.-._.js +0 -5
- package/.next/server/chunks/ssr/_0~62r4-._.js +0 -3
- package/.next/server/chunks/ssr/_0~fi8o-._.js +0 -3
- package/.next/server/chunks/ssr/_10s6iy.._.js +0 -3
- package/.next/server/chunks/ssr/_11pdc0s._.js +0 -3
- package/.next/server/chunks/ssr/_12u1eq4._.js +0 -3
- package/.next/server/chunks/ssr/_12~0n.1._.js +0 -3
- package/.next/server/chunks/ssr/_139rl~~._.js +0 -3
- package/.next/server/chunks/ssr/node_modules__pnpm_0ehnn5t._.js +0 -3
- package/.next/server/chunks/ssr/packages_dashboard_src_0ylj~og._.js +0 -3
- package/.next/server/chunks/ssr/packages_dashboard_src_0z~3g5n._.js +0 -3
- package/.next/server/chunks/ssr/packages_dashboard_src_app_connections_knowledge_page_tsx_027jwd3._.js +0 -3
- package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_advanced_page_tsx_0o~_885._.js +0 -3
- package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_routines_page_tsx_0wcgtqz._.js +0 -27
- package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_schedule_page_tsx_0b8zr2l._.js +0 -3
- package/.next/static/chunks/0-7buty0ytvtv.js +0 -1
- package/.next/static/chunks/0-dw-4a8vg9m8.js +0 -1
- package/.next/static/chunks/0.42rv-zt_0x9.js +0 -1
- package/.next/static/chunks/0.za~0o8~5n1~.css +0 -1
- package/.next/static/chunks/0.~7m9beb0bmp.js +0 -11
- package/.next/static/chunks/00bnu7r6428v0.js +0 -5
- package/.next/static/chunks/00w3emoohg-8r.js +0 -1
- package/.next/static/chunks/01v7jn283j2tm.js +0 -1
- package/.next/static/chunks/04l41qp5lpt_e.js +0 -1
- package/.next/static/chunks/04ufv2_7i_b6..js +0 -1
- package/.next/static/chunks/053f~_moi~csx.js +0 -2
- package/.next/static/chunks/05xugzf8sfrxt.js +0 -1
- package/.next/static/chunks/05z4egti~pj9t.js +0 -1
- package/.next/static/chunks/073hnld9_qq5g.js +0 -1
- package/.next/static/chunks/08ql4siwtlgpn.js +0 -1
- package/.next/static/chunks/08wmxlql_xq.d.js +0 -1
- package/.next/static/chunks/0e3ds9mkx7.~v.js +0 -1
- package/.next/static/chunks/0eaf903zc7v~5.js +0 -1
- package/.next/static/chunks/0fri59ogcsfbl.js +0 -1
- package/.next/static/chunks/0gj-lf~wlbr8e.js +0 -1
- package/.next/static/chunks/0gurc-kqffso6.js +0 -1
- package/.next/static/chunks/0gyst06ap~-n~.js +0 -19
- package/.next/static/chunks/0g~py-0sje~1m.js +0 -1
- package/.next/static/chunks/0hk8v-849puw8.js +0 -1
- package/.next/static/chunks/0hlvfkk1o66wf.js +0 -1
- package/.next/static/chunks/0hog4tqr3.skm.js +0 -10
- package/.next/static/chunks/0igwe6jdxslbt.js +0 -1
- package/.next/static/chunks/0ikm~jl5uiw6-.js +0 -1
- package/.next/static/chunks/0j15hn~z~i56..js +0 -1
- package/.next/static/chunks/0jffu_yb.90.i.js +0 -1
- package/.next/static/chunks/0mfem_s.3s4r-.js +0 -1
- package/.next/static/chunks/0n3b0fpsgml2x.js +0 -1
- package/.next/static/chunks/0p.w04inifyq..js +0 -1
- package/.next/static/chunks/0qqty6t-yyty4.js +0 -3
- package/.next/static/chunks/0q~dvm61tpf3~.js +0 -1
- package/.next/static/chunks/0rt76ki54i~hm.js +0 -1
- package/.next/static/chunks/0scggusqhhid7.js +0 -1
- package/.next/static/chunks/0t.xvj-t_vtrp.js +0 -25
- package/.next/static/chunks/0t9rda60_m-vk.js +0 -1
- package/.next/static/chunks/0u9qsqnsm-skj.js +0 -1
- package/.next/static/chunks/0urw8_v9f97en.js +0 -1
- package/.next/static/chunks/0vcwfsuf878wc.js +0 -1
- package/.next/static/chunks/0vivqt8njmkpv.js +0 -1
- package/.next/static/chunks/0vktbjh2e4xpg.js +0 -1
- package/.next/static/chunks/0v~gg~hn-8_k2.js +0 -1
- package/.next/static/chunks/0ws8mq3rp~572.js +0 -1
- package/.next/static/chunks/0x..-zi0av524.js +0 -1
- package/.next/static/chunks/0xsb_r_t_1r-u.js +0 -1
- package/.next/static/chunks/0zaa6zhrjsaik.js +0 -1
- package/.next/static/chunks/0zimhqr6r4xlz.js +0 -1
- package/.next/static/chunks/0~7d6m~du_b.d.js +0 -1
- package/.next/static/chunks/0~nct--xt2~bi.js +0 -1
- package/.next/static/chunks/1121be2-kv8g~.js +0 -1
- package/.next/static/chunks/1257_06cutyq_.js +0 -1
- package/.next/static/chunks/12ee4r9-orwi8.js +0 -1
- package/.next/static/chunks/13kdqs0pmjqy5.js +0 -1
- package/.next/static/chunks/13tf0oa.w743m.js +0 -1
- package/.next/static/chunks/16s5r16k361sd.js +0 -1
- package/.next/static/chunks/16tqshshex~qk.js +0 -1
- package/.next/static/chunks/17846-azlpszq.js +0 -1
- package/.next/static/chunks/17b2~cmid8qeu.js +0 -3
- package/.next/static/chunks/17rcecfesskxn.js +0 -1
- /package/.next/server/app/{connections/knowledge → browser}/page/build-manifest.json +0 -0
- /package/.next/server/app/{connections/knowledge → browser}/page/server-reference-manifest.json +0 -0
- /package/.next/server/app/{settings/advanced → connections/notes}/page/build-manifest.json +0 -0
- /package/.next/server/app/{settings/advanced → connections/notes}/page/server-reference-manifest.json +0 -0
- /package/.next/server/app/settings/{backends → danger-zone}/page/build-manifest.json +0 -0
- /package/.next/server/app/settings/{backends → danger-zone}/page/server-reference-manifest.json +0 -0
- /package/.next/server/app/settings/{connections → hours}/page/build-manifest.json +0 -0
- /package/.next/server/app/settings/{connections → hours}/page/server-reference-manifest.json +0 -0
- /package/.next/server/app/settings/{journal → infrastructure}/page/build-manifest.json +0 -0
- /package/.next/server/app/settings/{journal → infrastructure}/page/server-reference-manifest.json +0 -0
- /package/.next/server/app/settings/{messaging → safety}/page/build-manifest.json +0 -0
- /package/.next/server/app/settings/{messaging → safety}/page/server-reference-manifest.json +0 -0
- /package/.next/static/{i_QR0WWkZFeICcOMbfuUs → 4Wu33OvzutxPxXUu1PWPC}/_buildManifest.js +0 -0
- /package/.next/static/{i_QR0WWkZFeICcOMbfuUs → 4Wu33OvzutxPxXUu1PWPC}/_ssgManifest.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,52387,e=>{"use strict";let t=(0,e.i(77379).default)("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["ExternalLink",0,t],52387)},70986,e=>{"use strict";var t=e.i(34416),a=e.i(91967),n=e.i(9413),s=e.i(36567),i=e.i(18731),r=e.i(22353),l=e.i(85565),o=e.i(90816),c=e.i(11207),d=e.i(54710),u="Collapsible",[h,m]=(0,n.createContextScope)(u),[p,x]=h(u),g=t.forwardRef((e,a)=>{let{__scopeCollapsible:n,open:i,defaultOpen:r,disabled:o,onOpenChange:h,...m}=e,[x,g]=(0,s.useControllableState)({prop:i,defaultProp:r??!1,onChange:h,caller:u});return(0,d.jsx)(p,{scope:n,disabled:o,contentId:(0,c.useId)(),open:x,onOpenToggle:t.useCallback(()=>g(e=>!e),[g]),children:(0,d.jsx)(l.Primitive.div,{"data-state":k(x),"data-disabled":o?"":void 0,...m,ref:a})})});g.displayName=u;var f="CollapsibleTrigger",b=t.forwardRef((e,t)=>{let{__scopeCollapsible:n,...s}=e,i=x(f,n);return(0,d.jsx)(l.Primitive.button,{type:"button","aria-controls":i.contentId,"aria-expanded":i.open||!1,"data-state":k(i.open),"data-disabled":i.disabled?"":void 0,disabled:i.disabled,...s,ref:t,onClick:(0,a.composeEventHandlers)(e.onClick,i.onOpenToggle)})});b.displayName=f;var y="CollapsibleContent",v=t.forwardRef((e,t)=>{let{forceMount:a,...n}=e,s=x(y,e.__scopeCollapsible);return(0,d.jsx)(o.Presence,{present:a||s.open,children:({present:e})=>(0,d.jsx)(j,{...n,ref:t,present:e})})});v.displayName=y;var j=t.forwardRef((e,a)=>{let{__scopeCollapsible:n,present:s,children:o,...c}=e,u=x(y,n),[h,m]=t.useState(s),p=t.useRef(null),g=(0,r.useComposedRefs)(a,p),f=t.useRef(0),b=f.current,v=t.useRef(0),j=v.current,w=u.open||h,N=t.useRef(w),C=t.useRef(void 0);return t.useEffect(()=>{let e=requestAnimationFrame(()=>N.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,i.useLayoutEffect)(()=>{let e=p.current;if(e){C.current=C.current||{transitionDuration:e.style.transitionDuration,animationName:e.style.animationName},e.style.transitionDuration="0s",e.style.animationName="none";let t=e.getBoundingClientRect();f.current=t.height,v.current=t.width,N.current||(e.style.transitionDuration=C.current.transitionDuration,e.style.animationName=C.current.animationName),m(s)}},[u.open,s]),(0,d.jsx)(l.Primitive.div,{"data-state":k(u.open),"data-disabled":u.disabled?"":void 0,id:u.contentId,hidden:!w,...c,ref:g,style:{"--radix-collapsible-content-height":b?`${b}px`:void 0,"--radix-collapsible-content-width":j?`${j}px`:void 0,...e.style},children:w&&o})});function k(e){return e?"open":"closed"}e.s(["Collapsible",0,g,"CollapsibleContent",0,v,"CollapsibleTrigger",0,b],70986)},76176,e=>{"use strict";e.i(18446);var t=e.i(38082);let a={claude:"Claude Code",codex:"OpenAI Codex",gemini:"Gemini CLI",opencode:"OpenCode"},n=new Set(["opencode"]);function s(e){return n.has(e)}let i={gemini:{badgeLabel:"Vendor deprecation",shortSuffix:" (deprecated)",reason:"Google announced Gemini CLI will stop serving free, Pro, and Ultra requests on 2026-06-18 in favor of Antigravity CLI. Standard / Enterprise licenses keep access. Avoid binding new processes to Gemini if you rely on consumer-tier auth."}},r={claude:"Claude",codex:"Codex",gemini:"Gemini",opencode:"OpenCode"},l={claude:["#7C2D12","#B54B2D","#E15B40","#F97316","#FDBA74"],codex:["#86198F","#A21CAF","#D946EF","#E879F9","#F5D0FE"],gemini:["#1E3A8A","#1D4ED8","#1C69FF","#60A5FA","#93C5FD"],opencode:["#7C2D12","#C2410C","#FF7300","#F59E0B","#FCD34D"]},o=["#6b7280","#9ca3af","#4b5563","#374151"],c={claude:"orange",codex:"pink",gemini:"blue",opencode:"orange"},d={"routine.morning_routine":"Morning Routine","routine.evening_review":"Evening Review","routine.weekly_review":"Weekly Review","routine.monthly_review":"Monthly Review","routine.hourly_check":"Hourly Check","routine.roadmap_refresh":"Roadmap Refresh","message.dm":"Direct Messages","message.mention":"Mentions","dashboard.chat":"Dashboard Chat","agent.task":"Scheduled Tasks","calendar.change":"Calendar Events",gmail_classify:"Gmail Classification","github.pull_request.review_requested":"GitHub Review Requests","github.assigned":"GitHub Assignments","github.security_alert":"GitHub Security Alerts","github.workflow_run.failed":"GitHub CI Failures","wiki.ingest_url":"Wiki URL Ingest","wiki.compile":"Wiki Compile","wiki.ask":"Wiki Ask"};function u(e){let t;if(!e)return[];try{t=JSON.parse(e)}catch{return[]}if(!t||"object"!=typeof t)return[];let a=[];for(let[e,n]of Object.entries(t))n&&"object"==typeof n&&a.push({modelId:e,inputTokens:"number"==typeof n.inputTokens?n.inputTokens:0,outputTokens:"number"==typeof n.outputTokens?n.outputTokens:0,costUsd:"number"==typeof n.costUsd?n.costUsd:0});return a.sort((e,t)=>t.costUsd-e.costUsd)}function h(e){if(!e)return null;let t=e.toLowerCase();return/^[a-z0-9_.-]+\/[a-z0-9_.-]+/.test(t)?"opencode":t.includes("claude")||t.includes("sonnet")||t.includes("opus")||t.includes("haiku")?"claude":t.includes("gemini")?"gemini":t.includes("gpt")||t.includes("codex")||t.includes("o3")||t.includes("o4")?"codex":null}e.s(["BACKEND_BADGE_VARIANTS",0,c,"BACKEND_COLORS",0,{claude:"#E15B40",codex:"#D946EF",gemini:"#1C69FF",opencode:"#FF7300"},"BACKEND_LABELS",0,a,"BACKEND_PROVIDER_LABELS",0,{claude:"Claude (Anthropic)",codex:"ChatGPT (OpenAI)",gemini:"Gemini (Google)",opencode:"OpenCode (sst/opencode)"},"BACKEND_PROVIDER_SHORT",0,{claude:"Claude",codex:"ChatGPT",gemini:"Gemini",opencode:"OpenCode"},"BACKEND_WEB_SEARCH_DESCRIPTIONS",0,{claude:"Lets the agent call Anthropic's built-in WebSearch tool.",codex:"Lets the agent call OpenAI's web_search tool. Works in safe (sandbox) mode — the tool runs at OpenAI, not as a local shell command.",gemini:"Lets the agent call Gemini's google_web_search tool.",opencode:"Lets the agent call the configured OpenCode provider's web-search tool when the OpenCode runtime is enabled."},"CHART_CATEGORY_PALETTE",0,["#3b82f6","#10b981","#f59e0b","#8b5cf6","#ec4899","#14b8a6","#f97316","#6366f1","#ef4444","#22c55e"],"UI_PREVIEW_ONLY_BADGE_SUFFIX",0," (coming soon)","UI_PREVIEW_ONLY_REASON",0,"Coming soon — OpenCode is wired internally but not yet ready for selection in this release. The card stays visible so you can see what is on the roadmap.","assignModelColors",0,function(e){let t=new Map;for(let a of e){if(!a)continue;let e=h(a)??"other",n=t.get(e)??[];n.push(a),t.set(e,n)}let a={};for(let[e,n]of t){n.sort((e,t)=>e.localeCompare(t));let t="other"===e?o:l[e],s=n.length;n.forEach((e,n)=>{let i;i=s>=t.length?n%t.length:1===s?Math.floor(t.length/2):Math.floor((n+.5)*t.length/s),a[e]=t[i]})}return a},"detectBackendFromModel",0,h,"formatModelName",0,function(e){return e?e.replace(/^[a-z0-9_.-]+\//i,"").replace(/^claude-/,"Claude ").replace(/^gpt-/,"GPT-").replace(/^gemini-/,"Gemini ").replace(/-/g," ").replace(/\bpreview\b/gi,"(preview)").replace(/\bpro\b/gi,"Pro").replace(/\bflash\b/gi,"Flash").replace(/\blite\b/gi,"Lite").replace(/\bmini\b/gi,"Mini").replace(/\bcodex\b/gi,"Codex").replace(/\bopus\b/gi,"Opus").replace(/\bsonnet\b/gi,"Sonnet").replace(/\bhaiku\b/gi,"Haiku").replace(/\s+/g," ").trim():"Not set"},"formatShortModelName",0,function(e){if(!e)return"unknown";if("opus"===e)return"Opus";if("sonnet"===e)return"Sonnet";let t=e.replace(/^[a-z0-9_.-]+\//i,""),a=t.replace(/-\d{8,}$/,"").replace(/^claude-/,"").replace(/(\d+)-(\d+)(?![-\d])/g,"$1.$2").replace(/-/g," ");return t.startsWith("gpt-")&&(a=`GPT-${a.replace(/^gpt\s*/i,"")}`),t.startsWith("gemini-")&&(a=a.replace(/^gemini\s*/i,"Gemini ")),a.replace(/\bopus\b/gi,"Opus").replace(/\bsonnet\b/gi,"Sonnet").replace(/\bhaiku\b/gi,"Haiku").replace(/\bpro\b/gi,"Pro").replace(/\bflash\b/gi,"Flash").replace(/\blite\b/gi,"Lite").replace(/\bmini\b/gi,"Mini").replace(/\s+/g," ").trim()},"getBackendDeprecation",0,function(e){return i[e]??null},"getBackendLabel",0,function(e){return a[e]},"getBackendShortLabel",0,function(e){return r[e]},"getProcessGroup",0,function(e){return e.startsWith("wiki.")?"Wiki":e.startsWith("message.")||e.startsWith("dashboard.")?"Conversation":e.startsWith("routine.")?"Routines":e.startsWith("git.")||e.startsWith("github.")?"Git & GitHub":e.startsWith("calendar.")||"gmail_classify"===e?"Integrations":"Tasks"},"getProcessLabel",0,function(e){return d[e]??e},"isBackendSelectionDisabled",0,function(e){return!(0,t.isRuntimeAvailableBackendId)(e)||s(e)},"isUiPreviewOnlyBackend",0,s,"modelBadgeVariant",0,function(e){if(!e)return"gray";let t=h(e);return t?c[t]:"gray"},"parseModelUsage",0,u,"pickDisplayModel",0,function(e,t){let a=u(t);return a.length>0&&a[0]?a[0].modelId:e??null}])},59134,e=>{"use strict";let t=(0,e.i(77379).default)("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);e.s(["RefreshCw",0,t],59134)},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 n=(0,e.i(94237).cva)("rounded-xl border p-5 shadow-[0_1px_3px_rgb(0_0_0/0.04)]",{variants:{tone:{default:"border-border bg-card",warning:"border-amber-200 bg-amber-50/50 dark:border-amber-900 dark:bg-amber-950/30",success:"border-emerald-200 bg-emerald-50/50 dark:border-emerald-900 dark:bg-emerald-950/30",error:"border-red-200 bg-red-50/50 dark:border-red-900 dark:bg-red-950/30"},interactive:{true:"transition-shadow duration-150 hover:shadow-[0_4px_6px_rgb(0_0_0/0.06)]",false:""}},defaultVariants:{tone:"default",interactive:!1}});e.s(["Card",0,function({className:e,tone:s,interactive:i,...r}){return(0,t.jsx)("div",{className:(0,a.cn)(n({tone:s,interactive:i}),e),...r})},"CardHeader",0,function({className:e,...n}){return(0,t.jsx)("div",{className:(0,a.cn)("mb-3 flex items-center justify-between",e),...n})},"CardStatLabel",0,function({className:e,...n}){return(0,t.jsx)("h3",{className:(0,a.cn)("text-sm font-medium text-muted-foreground",e),...n})},"CardTitle",0,function({className:e,...n}){return(0,t.jsx)("h3",{className:(0,a.cn)("text-lg font-semibold text-foreground",e),...n})},"CardValue",0,function({className:e,...n}){return(0,t.jsx)("div",{className:(0,a.cn)("text-3xl font-bold text-foreground",e),...n})}])},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)},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)},7663,e=>{"use strict";let t=(0,e.i(77379).default)("Save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]);e.s(["Save",0,t],7663)},24756,e=>{"use strict";var t=e.i(14260),a=e.i(65268);e.s(["useBackends",0,function(e){return(0,t.useQuery)({queryKey:["backends"],queryFn:()=>a.api.get("/backends"),enabled:e?.enabled??!0,staleTime:6e4})}])},87040,e=>{"use strict";var t=e.i(14260),a=e.i(65268);e.s(["useProcessConfig",0,function(e){return(0,t.useQuery)({queryKey:["process-config"],queryFn:()=>a.api.get("/process-config"),enabled:e?.enabled??!0,staleTime:6e4})}])},85631,e=>{"use strict";var t=e.i(54710),a=e.i(81471);e.s(["ConnectionsSectionHeader",0,function({title:e,description:n,healthy:s,total:i,attention:r,actions:l}){let o=i>0&&s===i,c=i>0&&0===s;return(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsxs)("div",{className:"flex items-baseline justify-between gap-3",children:[(0,t.jsx)("h1",{className:"text-2xl font-semibold text-foreground",children:e}),(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[i>0&&(0,t.jsxs)("span",{className:(0,a.cn)("text-xs font-medium tabular-nums",o?"text-emerald-600 dark:text-emerald-400":c?"text-muted-foreground":"text-amber-600 dark:text-amber-400"),children:[s,"/",i," connected"]}),l]})]}),n&&(0,t.jsx)("p",{className:"max-w-3xl text-sm text-muted-foreground",children:n}),r&&(0,t.jsx)("p",{className:"text-xs text-amber-600 dark:text-amber-400",children:r})]})}])},40974,e=>{"use strict";let t=(0,e.i(77379).default)("Lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);e.s(["Lock",0,t],40974)},75750,e=>{"use strict";let t=(0,e.i(77379).default)("CircleX",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);e.s(["XCircle",0,t],75750)},67490,e=>{"use strict";var t=e.i(14260),a=e.i(57415),n=e.i(95486),s=e.i(65268);e.s(["useIntegrationProbeLive",0,function(){let e=(0,n.useQueryClient)();return(0,a.useMutation)({mutationFn:e=>{let{key:t}=e,a={};return"liveProbe"in e?(a.liveProbe=!0,e.backend&&(a.backend=e.backend)):(a.backend=e.backend,a.tools=e.tools),s.api.post(`/integrations/${t}/probe`,a)},onSuccess:(t,a)=>{e.invalidateQueries({queryKey:["integration-probe",a.key]}),e.invalidateQueries({queryKey:["health"]})}})},"useIntegrations",0,function(){return(0,t.useQuery)({queryKey:["integrations"],queryFn:()=>s.api.get("/integrations"),staleTime:3e4})},"useNativeUnboundActions",0,function(e={}){let a=e.sinceHours??168;return(0,t.useQuery)({queryKey:["agent-actions","native_unbound",a],queryFn:async()=>{let e=new URLSearchParams({since:new Date(Date.now()-60*a*6e4).toISOString(),limit:"50"});e.append("kind","integration.native_unbound");let t=await s.api.get(`/agent/actions?${e.toString()}`),n=[];for(let e of t.actions)if(e.detail)try{let t=JSON.parse(e.detail);if("string"!=typeof t.key)continue;n.push({id:e.id,key:t.key,priorNativeBackend:t.priorNativeBackend??null,newMainBackend:t.newMainBackend??null,priorDeniedTools:t.priorDeniedTools??[],startedAt:e.startedAt})}catch{continue}return n},staleTime:6e4})},"usePatchIntegration",0,function(){let e=(0,n.useQueryClient)();return(0,a.useMutation)({mutationFn:({key:e,body:t})=>s.api.patch(`/integrations/${e}`,t),onSuccess:()=>{e.invalidateQueries({queryKey:["integrations"]}),e.invalidateQueries({queryKey:["health"]})}})},"useProxyModels",0,function(e){return(0,t.useQuery)({queryKey:["proxy-models",e??null],queryFn:()=>s.api.get(`/integrations/proxy-models/${e}`),enabled:null!=e,staleTime:6e4})},"useRecentProxyCalls",0,function(e,a={}){let{limit:n,enabled:i=!0}=a;return(0,t.useQuery)({queryKey:["recent-proxy-calls",e,n??null],queryFn:()=>{let t=void 0!==n?`?limit=${n}`:"";return s.api.get(`/integrations/${e}/recent-proxy-calls${t}`)},enabled:i&&null!==e,staleTime:1e4})}])},32220,e=>{"use strict";var t=e.i(54710),a=e.i(34416),n=e.i(95486),s=e.i(19660),i=e.i(72740),r=e.i(21682),l=e.i(7663),o=e.i(75750),c=e.i(74490),d=e.i(20014),u=e.i(48467),h=e.i(79634),m=e.i(10427),p=e.i(65268),x=e.i(24756),g=e.i(87040),f=e.i(76176);e.s(["ProcessModelCard",0,function({processKey:e,title:b="AI Model",description:y}){let v=(0,n.useQueryClient)(),{data:j}=(0,x.useBackends)(),{data:k}=(0,g.useProcessConfig)(),[w,N]=(0,a.useState)(!1),[C,A]=(0,a.useState)(null),[S,I]=(0,a.useState)(null),[E,M]=(0,a.useState)(!1),[T,F]=(0,a.useState)(null),R=k?.configs.find(t=>t.processKey===e),_=new Map((j?.backends??[]).map(e=>[e.id,e])),B=(j?.backends??[]).filter(e=>e.enabled);if(!j||!k||!R)return null;let D=_.get(R.mainBackend),O=D?.models.find(e=>e.modelId===R.mainModel)?.label??(0,f.formatModelName)(R.mainModel),P=C?_.get(C):null,L=P?.models??[];async function G(){if(C&&S){M(!0),F(null);try{await p.api.put(`/process-config/${e}`,{mainBackend:C,mainModel:S,fallbackBackend:R.fallbackBackend,fallbackModel:R.fallbackModel,maxTurns:R.maxTurns,maxBudgetUsd:R.maxBudgetUsd}),await v.invalidateQueries({queryKey:["process-config"]}),F({type:"success",message:"Saved"}),N(!1)}catch(t){let e=t instanceof p.ApiError?t.body:null;F({type:"error",message:"string"==typeof e?.error?e.error:t instanceof Error?t.message:"Save failed"})}finally{M(!1)}}}return(0,t.jsxs)(c.Card,{children:[(0,t.jsxs)(c.CardHeader,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(s.Bot,{className:"h-4 w-4 text-muted-foreground"}),(0,t.jsx)(c.CardTitle,{className:"text-base",children:b}),"user"===R.updatedBy&&(0,t.jsx)(u.Badge,{variant:"blue",className:"text-xs",children:"Custom"})]}),!w&&(0,t.jsxs)(d.Button,{variant:"ghost",size:"sm",onClick:function(){A(R.mainBackend),I(R.mainModel),F(null),N(!0)},className:"h-8",children:[(0,t.jsx)(r.Pencil,{className:"h-3.5 w-3.5"}),"Edit"]})]}),!w&&(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-sm",children:[(0,t.jsx)(u.Badge,{variant:f.BACKEND_BADGE_VARIANTS[R.mainBackend],children:(0,f.getBackendLabel)(R.mainBackend)}),(0,t.jsx)("span",{className:"text-muted-foreground",children:O}),(0,t.jsx)(u.Badge,{variant:"high"===R.defaultTier?"purple":"medium"===R.defaultTier?"blue":"default",className:"text-xs",children:R.defaultTier})]}),y&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:y})]}),w&&(0,t.jsxs)("div",{className:"mt-1 space-y-3",children:[(0,t.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2",children:[(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)("p",{className:"text-xs font-medium text-muted-foreground",children:"Backend"}),(0,t.jsxs)(m.Select,{value:C??"",onValueChange:e=>(function(e){var t,a;let n,s=_.get(e);if(!s)return;A(e);let i=(t=s.models,a=R.defaultTier,(n=t.filter(e=>e.tier===a)).length>0?n:t);I(i[0]?.modelId??s.models[0]?.modelId??"")})(e),children:[(0,t.jsx)(m.SelectTrigger,{children:(0,t.jsx)(m.SelectValue,{})}),(0,t.jsx)(m.SelectContent,{children:B.map(e=>{let a=(0,f.isUiPreviewOnlyBackend)(e.id);return(0,t.jsxs)(m.SelectItem,{value:e.id,disabled:a,children:[(0,f.getBackendLabel)(e.id),a?f.UI_PREVIEW_ONLY_BADGE_SUFFIX:""]},e.id)})})]})]}),(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)("p",{className:"text-xs font-medium text-muted-foreground",children:"Model"}),(0,t.jsxs)(m.Select,{value:S??"",onValueChange:e=>I(e),children:[(0,t.jsx)(m.SelectTrigger,{children:(0,t.jsx)(m.SelectValue,{})}),(0,t.jsx)(m.SelectContent,{children:L.map(e=>(0,t.jsx)(m.SelectItem,{value:e.modelId,children:e.label},e.modelId))})]})]})]}),(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsxs)(d.Button,{variant:"outline",size:"sm",onClick:function(){N(!1),A(null),I(null)},disabled:E,children:[(0,t.jsx)(o.XCircle,{className:"h-3.5 w-3.5"}),"Cancel"]}),(0,t.jsxs)(d.Button,{size:"sm",onClick:()=>{G()},disabled:E||!S,children:[E?(0,t.jsx)(i.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):(0,t.jsx)(l.Save,{className:"h-3.5 w-3.5"}),"Save"]})]})]}),T&&(0,t.jsx)(h.Alert,{variant:"success"===T.type?"success":"error",className:"mt-3",children:T.message})]})}])},86567,6423,86704,29472,e=>{"use strict";var t=e.i(54710),a=e.i(34416),n=e.i(45958),s=e.i(52387),i=e.i(20014),r=e.i(90826),l=e.i(81187),o=e.i(89883),c=e.i(90925),d=e.i(65268),u=e.i(8652),h=e.i(48467),m=e.i(79634),p=e.i(81471),x=e.i(14260),g=e.i(95486);function f(e,t){return(0,x.useQuery)({queryKey:["mail-health",e],queryFn:()=>d.api.get(`/mail/${encodeURIComponent(e)}/health`),refetchInterval:1e4,enabled:t})}function b(){let e=(0,g.useQueryClient)();return()=>{e.invalidateQueries({queryKey:["mail-providers"]}),e.invalidateQueries({queryKey:["mail-accounts"]}),e.invalidateQueries({queryKey:["mail-health"]})}}async function y(e,t,a){let n=new Set(e);a?n.add(t):n.delete(t);let s=["gmail","outlook","yahoo","icloud"].filter(e=>n.has(e));return await d.api.patch("/mail/providers",{enabledKinds:s}),s}e.s(["toggleProviderEnabled",0,y,"useInvalidateMail",0,b,"useMailAccountHealth",0,f,"useMailAccounts",0,function(){return(0,x.useQuery)({queryKey:["mail-accounts"],queryFn:()=>d.api.get("/mail/accounts"),refetchInterval:1e4})},"useMailProviders",0,function(){return(0,x.useQuery)({queryKey:["mail-providers"],queryFn:()=>d.api.get("/mail/providers"),refetchInterval:3e4})}],6423);let v={healthy:{variant:"green",label:"Healthy"},requires_consent:{variant:"amber",label:"Re-authenticate"},degraded:{variant:"red",label:"Degraded"}};function j({account:e,highlight:n=!1,hideActive:s=!1,hideHealth:l=!1,onReauthenticate:u,isLastOfKind:p=!1,onAfterRemove:x}){let g=(0,a.useRef)(null),y=(0,r.useConfirm)(),N=b(),[C,A]=(0,a.useState)(!1),[S,I]=(0,a.useState)(null);(0,a.useEffect)(()=>{n&&g.current&&g.current.scrollIntoView({behavior:"smooth",block:"center"})},[n]);let E=f(e.id,!l).data??null,M="yahoo"===e.kind||"icloud"===e.kind,[T,F]=(0,a.useState)(!1),R=async()=>{I(null),A(!0);try{await d.api.patch(`/mail/accounts/${encodeURIComponent(e.id)}`,{active:!e.active}),N()}catch(e){I(e instanceof Error?e.message:"Failed to update")}finally{A(!1)}},_=async()=>{if(await y({title:`Remove ${e.email}?`,description:"Local credentials are revoked and the account is removed from this app. The mailbox itself is untouched at the provider."+(p?" This is the last account of its kind, so the provider will also be disabled — re-authenticate and toggle Enable to bring it back.":""),confirmLabel:"Remove",variant:"destructive"})){I(null),A(!0);try{await d.api.delete(`/mail/accounts/${encodeURIComponent(e.id)}`),x&&await x(),N()}catch(e){I(e instanceof Error?e.message:"Failed to remove")}finally{A(!1)}}},B=v[e.authStatus],D=l||!e.idleEnabled?null:E?.idleFallbackUntilUtc?{label:"polling (IDLE down)",variant:"amber"}:{label:"IDLE",variant:"green"};return(0,t.jsxs)("div",{ref:g,id:`account-${e.id}`,className:"rounded-md border p-3 transition-colors "+(n?"border-amber-400 ring-1 ring-amber-300/60":"border-border"),children:[(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[(0,t.jsx)(o.Mail,{className:"mt-0.5 h-4 w-4 shrink-0 text-muted-foreground"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-foreground truncate",children:e.email}),e.label&&(0,t.jsxs)("span",{className:"text-xs text-muted-foreground",children:["(",e.label,")"]}),(0,t.jsx)(h.Badge,{variant:B.variant,children:B.label}),D&&(0,t.jsx)(h.Badge,{variant:D.variant,children:D.label})]}),!l&&(0,t.jsx)(w,{health:E})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[!s&&(0,t.jsxs)("label",{className:"flex items-center gap-1 text-xs cursor-pointer select-none",children:[(0,t.jsx)("input",{type:"checkbox",checked:e.active,disabled:C,onChange:()=>void R(),className:"h-3.5 w-3.5 rounded border-border"}),"Active"]}),"requires_consent"===e.authStatus&&(M?(0,t.jsx)(i.Button,{size:"sm",variant:"outline",disabled:C,onClick:()=>F(e=>!e),className:"h-7 text-xs px-2",children:T?"Cancel":"Re-authenticate"}):u&&(0,t.jsx)(i.Button,{size:"sm",variant:"outline",disabled:C,onClick:()=>void u(),className:"h-7 text-xs px-2",children:"Re-authenticate"})),(0,t.jsx)(i.Button,{size:"sm",variant:"outline",onClick:()=>void _(),disabled:C,className:"h-7 px-2",title:"Remove account",children:(0,t.jsx)(c.Trash2,{className:"h-3.5 w-3.5"})})]})]}),S&&(0,t.jsx)(m.Alert,{variant:"error",className:"mt-2",children:S}),M&&T&&(0,t.jsx)(k,{accountId:e.id,onSuccess:()=>{F(!1),N()}})]})}function k({accountId:e,onSuccess:n}){let[s,r]=(0,a.useState)(""),[l,o]=(0,a.useState)(!1),[c,h]=(0,a.useState)(null),p=async()=>{o(!0),h(null);try{await d.api.post(`/config/mail/app-password/${encodeURIComponent(e)}/refresh`,{appPassword:s.trim()}),r(""),n()}catch(e){h(e instanceof Error?e.message:"Failed to refresh")}finally{o(!1)}};return(0,t.jsxs)("div",{className:"mt-2 rounded-md border border-amber-200 bg-amber-50/50 p-3 dark:border-amber-900 dark:bg-amber-950/30 space-y-2",children:[(0,t.jsx)("p",{className:"text-xs text-foreground",children:"Generate a new app password at the provider, paste it here, and the daemon will swap it in place — the polling cursor and account ID stay intact."}),(0,t.jsx)(u.Input,{type:"password",value:s,onChange:e=>r(e.target.value),placeholder:"paste new app password",className:"h-8 text-xs"}),(0,t.jsx)("div",{className:"flex gap-2",children:(0,t.jsx)(i.Button,{size:"sm",onClick:()=>void p(),disabled:l||0===s.trim().length,className:"h-7 text-xs px-3",children:l?"Verifying…":"Update password"})}),c&&(0,t.jsx)(m.Alert,{variant:"error",children:c})]})}function w({health:e}){if(!e)return(0,t.jsx)("p",{className:"mt-1 text-[11px] text-muted-foreground",children:"Waiting for first poll…"});let a=e.lastPollAtUtc,n=null!=a&&Date.now()-(0,p.parseUtcDate)(a).getTime()>9e5;return(0,t.jsxs)("div",{className:"mt-1 flex flex-wrap items-center gap-x-3 gap-y-1 text-[11px] text-muted-foreground",children:[(0,t.jsxs)("span",{children:["last poll:"," ",a?(0,t.jsxs)("span",{title:(0,p.formatAbsoluteTime)(a),className:n?"text-amber-600 dark:text-amber-400":void 0,children:[(0,p.formatRelativeTime)(a),n?" · stale":""]}):(0,t.jsx)("span",{children:"never"})]}),e.consecutiveErrorCount>0&&(0,t.jsxs)("span",{className:"text-amber-600 dark:text-amber-400",children:[e.consecutiveErrorCount," consecutive errors"]}),e.lastError&&(0,t.jsxs)("span",{className:"flex items-center gap-1 text-red-600 dark:text-red-400 max-w-full truncate",title:e.lastError,children:[(0,t.jsx)(l.AlertTriangle,{className:"h-3 w-3 shrink-0"}),e.lastError]})]})}var N=e.i(74490),C=e.i(57628);let A={"not-connected":{variant:"gray",label:"Not connected"},"needs-setup":{variant:"gray",label:"Needs setup"},disabled:{variant:"amber",label:"Ready to enable"},enabled:{variant:"green",label:"Enabled"},attention:{variant:"red",label:"Needs attention"}};function S(e){return e.accounts.some(e=>"healthy"!==e.authStatus)?"attention":0===e.accounts.length?e.awaitingProviderSetup?"needs-setup":"not-connected":e.enabled?"enabled":"disabled"}function I(e){let a=A[e.status],n="attention"===e.status?"warning":"enabled"===e.status?"success":"default";return(0,t.jsxs)(N.Card,{tone:n,children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,t.jsx)(o.Mail,{className:"h-4 w-4 text-muted-foreground shrink-0"}),(0,t.jsx)("h3",{className:"text-base font-semibold text-foreground truncate",children:e.name})]}),(0,t.jsx)(h.Badge,{variant:a.variant,children:a.label})]}),(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:e.description}),(0,t.jsx)("div",{className:"mt-3 space-y-3",children:e.setupSection}),e.accountsSection&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(C.Separator,{className:"my-4"}),(0,t.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground mb-2",children:"Authenticated accounts"}),(0,t.jsx)("div",{className:"space-y-2",children:e.accountsSection})]}),(0,t.jsx)(C.Separator,{className:"my-4"}),(0,t.jsx)(E,{toggle:e.enableToggle})]})}function E({toggle:e}){let[n,s]=(0,a.useState)(null),i=async t=>{s(null);try{await e.onChange(t)}catch(e){s(e instanceof Error?e.message:"Failed to update")}};return(0,t.jsxs)("div",{children:[(0,t.jsxs)("label",{className:"flex items-center gap-2 text-sm select-none "+(e.disabled||e.busy?"cursor-not-allowed opacity-60":"cursor-pointer"),title:e.disabled?e.disabledReason:void 0,children:[(0,t.jsx)("input",{type:"checkbox",checked:e.enabled,disabled:e.disabled||e.busy,onChange:e=>void i(e.target.checked),className:"h-4 w-4 rounded border-border"}),(0,t.jsx)("span",{className:"font-medium text-foreground",children:"Enable for the agent"}),e.busy&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:"saving…"})]}),e.disabled&&e.disabledReason&&(0,t.jsx)("p",{className:"mt-1 ml-6 text-xs text-muted-foreground",children:e.disabledReason}),!e.disabled&&e.explainer&&(0,t.jsx)("p",{className:"mt-1 ml-6 text-xs text-muted-foreground",children:e.explainer}),n&&(0,t.jsx)(m.Alert,{variant:"error",className:"mt-2",children:n})]})}e.s(["GmailCard",0,function({accounts:e,enabledKinds:l,focusAccountId:o,hideExternalGoogleLink:c=!1}){let d=b(),u=(0,r.useConfirm)(),[h,m]=(0,a.useState)(!1),p=l.includes("gmail"),x=S({accounts:e,enabled:p}),g=async e=>{if(e||await u({title:"Disable Gmail for the agent?",description:"This stops the unified mail poller from observing Gmail — receipts, travel bookings, and Kindle highlights will not be classified until you re-enable Gmail. Tokens stay in the keychain and the integration resumes the moment you flip the switch back on.",confirmLabel:"Disable Gmail",variant:"destructive"})){m(!0);try{await y(l,"gmail",e),d()}finally{m(!1)}}};return(0,t.jsx)(I,{name:"Gmail / Google Workspace",description:(0,t.jsx)(t.Fragment,{children:"Authenticated through your existing Google connection (it is shared with Calendar). Manage Google OAuth on the Connections page."}),status:x,setupSection:0===e.length?(0,t.jsxs)("div",{className:"rounded-md border border-dashed border-border p-3 text-xs",children:[(0,t.jsx)("p",{className:"text-foreground font-medium mb-1",children:"No Gmail account connected yet."}),(0,t.jsx)("p",{className:"text-muted-foreground mb-2",children:c?"Switch the Mode above to Direct and complete the Google connection step on this page — the daemon detects your Gmail address from the OAuth response and registers it here.":"Authenticate Google in Connections — the daemon detects your Gmail address from the OAuth response and registers it here."}),!c&&(0,t.jsx)(n.default,{href:"/connections/calendar#google",children:(0,t.jsxs)(i.Button,{size:"sm",variant:"outline",className:"h-7 text-xs px-3",children:["Open Google connection",(0,t.jsx)(s.ExternalLink,{className:"ml-1 h-3 w-3"})]})})]}):c?null:(0,t.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Re-authentication, scope changes, or revoking access live on the"," ",(0,t.jsx)(n.default,{href:"/connections/calendar#google",className:"underline underline-offset-2",children:"Google connection card"}),"."]}),accountsSection:e.length>0?e.map(a=>(0,t.jsx)(j,{account:a,highlight:o===a.id,hideActive:!0,hideHealth:!0,isLastOfKind:1===e.length,onAfterRemove:async()=>{1===e.length&&p&&await y(l,"gmail",!1)}},a.id)):void 0,enableToggle:{enabled:p,disabled:0===e.length,disabledReason:0===e.length?"Connect a Google account first.":void 0,busy:h,onChange:g,explainer:"When enabled, the legacy Gmail poller observes your inbox and the agent can read, draft, and send messages."}})}],86567),e.i(18446);var M=e.i(49445);function T({index:e,title:a,completed:n=!1,disabled:s=!1,children:i}){return(0,t.jsxs)("div",{className:"rounded-md border border-dashed p-3 "+(s?"border-border opacity-50":n?"border-emerald-300 dark:border-emerald-800":"border-border"),children:[(0,t.jsxs)("p",{className:"text-xs font-semibold text-foreground mb-2",children:["Step ",e,": ",a,n&&(0,t.jsx)("span",{className:"ml-2 text-emerald-600 dark:text-emerald-400",children:"✓"})]}),i]})}e.s(["OutlookCard",0,function({accounts:e,enabledKinds:n,focusAccountId:l}){let o=b(),c=(0,r.useConfirm)(),h=n.includes("outlook"),p=(0,x.useQuery)({queryKey:["outlook-client-config"],queryFn:()=>d.api.get("/config/mail/outlook/client-config"),staleTime:3e4}),g=p.data?.configured===!0,f=S({accounts:e,enabled:h,awaitingProviderSetup:!g}),[v,k]=(0,a.useState)(!1),[w,N]=(0,a.useState)(""),[C,A]=(0,a.useState)("common"),[E,F]=(0,a.useState)(""),[R,_]=(0,a.useState)(!1),[B,D]=(0,a.useState)(null),[O,P]=(0,a.useState)(null),[L,G]=(0,a.useState)(null),[q,K]=(0,a.useState)(!1),U=async e=>{K(!0);try{await y(n,"outlook",e),o()}finally{K(!1)}},W=async()=>{_(!0),D(null);try{await d.api.put("/config/mail/outlook/client-config",{clientId:w.trim(),tenant:C.trim()||"common"}),await p.refetch(),k(!1)}catch(e){D(e instanceof Error?e.message:"Failed to save client config")}finally{_(!1)}},z=async()=>{if(await c({title:"Reset Azure app registration?",description:"Existing Outlook accounts keep working until their tokens expire. You'll need to re-enter the client ID before adding new accounts.",confirmLabel:"Reset",variant:"destructive"})){_(!0),D(null);try{await d.api.delete("/config/mail/outlook/client-config"),await p.refetch()}catch(e){D(e instanceof Error?e.message:"Failed to reset")}finally{_(!1)}}},$=async()=>{if(await c({title:"Open Microsoft sign-in?",description:"The daemon will open your browser to sign in to Microsoft. macOS or Windows may show a one-time firewall prompt — accept it so the loopback callback can complete.",confirmLabel:"Continue"})){_(!0),D(null),P(null);try{await d.api.post("/mail/accounts",{kind:"outlook",label:E.trim()||void 0}),P("Outlook account authenticated. Toggle the switch below to start using it."),F(""),o()}catch(e){D(e instanceof Error?e.message:"OAuth failed")}finally{_(!1)}}},H=async()=>{_(!0),D(null),P(null),G(null);try{let e=await fetch("/api/mail/accounts/device-code",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({kind:"outlook",label:E.trim()||void 0})});if(!e.ok||!e.body)throw Error(`HTTP ${e.status}`);let t=e.body.getReader(),a=new TextDecoder,n="";for(;;){let{value:e,done:s}=await t.read();if(s)break;let i=(n+=a.decode(e,{stream:!0})).split("\n\n");for(let e of(n=i.pop()??"",i)){let t=e.split("\n"),a="",n="";for(let e of t)e.startsWith("event:")&&(a=e.slice(6).trim()),e.startsWith("data:")&&(n+=e.slice(5).trim());if(a){if("prompt"===a)G(JSON.parse(n));else if("completed"===a)P("Outlook account authenticated. Toggle the switch below to start using it."),G(null),F(""),o();else if("failed"===a){let e=JSON.parse(n);throw Error(e.message??"device-code failed")}}}}}catch(e){D(e instanceof Error?e.message:"Device-code OAuth failed"),G(null)}finally{_(!1)}},V=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(T,{index:1,title:"Register an Azure app (one-time)",completed:g,children:[!g&&!v&&(0,t.jsxs)("div",{className:"space-y-3 text-xs",children:[(0,t.jsxs)("p",{className:"text-muted-foreground",children:["One-time setup: you'll tell Microsoft that the ",M.APP_NAME,"daemon on your computer is allowed to read and send mail on your behalf. Follow every sub-step — two of them are easy to miss and will make sign-in fail with ",(0,t.jsx)("code",{children:"server_error"})," later."]}),(0,t.jsxs)("ol",{className:"list-decimal list-outside pl-4 space-y-2 text-muted-foreground",children:[(0,t.jsxs)("li",{children:["Open the"," ",(0,t.jsxs)("a",{href:"https://portal.azure.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade",target:"_blank",rel:"noreferrer",className:"underline inline-flex items-center gap-0.5",children:["Azure portal — App registrations"," ",(0,t.jsx)(s.ExternalLink,{className:"h-3 w-3"})]}),". Sign in with the Microsoft account you want the agent to use."]}),(0,t.jsxs)("li",{children:["Click ",(0,t.jsx)("strong",{children:"+ New registration"})," at the top of the page."]}),(0,t.jsxs)("li",{children:["Fill in the form:",(0,t.jsxs)("ul",{className:"list-disc list-outside pl-4 mt-1 space-y-1",children:[(0,t.jsxs)("li",{children:[(0,t.jsx)("strong",{children:"Name"}),": anything, e.g. ",(0,t.jsx)("code",{children:M.APP_NAME}),"."]}),(0,t.jsxs)("li",{children:[(0,t.jsx)("strong",{children:"Supported account types"}),": pick"," ",(0,t.jsx)("em",{children:"Accounts in any organizational directory (Any Microsoft Entra ID tenant – Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox)"}),"."]}),(0,t.jsxs)("li",{children:[(0,t.jsx)("strong",{children:"Redirect URI"}),": in the left-hand dropdown choose ",(0,t.jsx)("code",{children:"Public client/native (mobile & desktop)"})," ",(0,t.jsx)("strong",{children:"— not"})," ",(0,t.jsx)("code",{children:"Web"}),". Then type"," ",(0,t.jsx)("code",{children:"http://127.0.0.1/callback"})," in the box on the right."]})]}),(0,t.jsxs)("p",{className:"mt-1 rounded-md border border-amber-400/60 bg-amber-400/10 px-2 py-1 text-amber-700 dark:text-amber-300",children:["⚠ Trap #1: if you leave ",(0,t.jsx)("code",{children:"Web"})," selected, Microsoft will later return ",(0,t.jsx)("code",{children:"Authorization failed: server_error"}),". Use the Public client/native option."]})]}),(0,t.jsxs)("li",{children:["Click ",(0,t.jsx)("strong",{children:"Register"})," at the bottom of the form."]}),(0,t.jsxs)("li",{children:["You'll land on the ",(0,t.jsx)("em",{children:"Overview"})," page. Copy the value labelled ",(0,t.jsx)("strong",{children:"Application (client) ID"}),"— you'll paste it into the form below in a moment."]}),(0,t.jsxs)("li",{children:["In the left sidebar click ",(0,t.jsx)("strong",{children:"Authentication"}),". Scroll to the very bottom, find ",(0,t.jsx)("em",{children:"Advanced settings"})," →"," ",(0,t.jsx)("strong",{children:"Allow public client flows"}),", flip the toggle to"," ",(0,t.jsx)("strong",{children:"Yes"}),", then click ",(0,t.jsx)("strong",{children:"Save"})," at the top of the page.",(0,t.jsxs)("p",{className:"mt-1 rounded-md border border-amber-400/60 bg-amber-400/10 px-2 py-1 text-amber-700 dark:text-amber-300",children:["⚠ Trap #2: this toggle is off by default. Without it sign-in also fails with ",(0,t.jsx)("code",{children:"server_error"}),"."]})]}),(0,t.jsxs)("li",{children:["In the left sidebar click ",(0,t.jsx)("strong",{children:"API permissions"})," →"," ",(0,t.jsx)("strong",{children:"+ Add a permission"})," →"," ",(0,t.jsx)("strong",{children:"Microsoft Graph"})," →"," ",(0,t.jsx)("strong",{children:"Delegated permissions"}),". Use the search box to find and tick each of:",(0,t.jsxs)("ul",{className:"list-disc list-outside pl-4 mt-1",children:[(0,t.jsx)("li",{children:(0,t.jsx)("code",{children:"offline_access"})}),(0,t.jsx)("li",{children:(0,t.jsx)("code",{children:"User.Read"})}),(0,t.jsx)("li",{children:(0,t.jsx)("code",{children:"Mail.ReadWrite"})}),(0,t.jsx)("li",{children:(0,t.jsx)("code",{children:"Mail.Send"})})]}),"Then click ",(0,t.jsx)("strong",{children:"Add permissions"})," at the bottom."]}),(0,t.jsxs)("li",{children:["(Work/school tenant only) If your org requires admin consent for these scopes, click ",(0,t.jsx)("strong",{children:"Grant admin consent"}),". Personal Microsoft accounts don't need this step."]}),(0,t.jsxs)("li",{children:["Come back here and click ",(0,t.jsx)("strong",{children:"I have a client ID"}),". Paste the Application (client) ID you copied in step 5; leave Tenant as ",(0,t.jsx)("code",{children:"common"})," unless your admin told you otherwise."]})]}),(0,t.jsx)(i.Button,{size:"sm",variant:"outline",onClick:()=>k(!0),className:"h-7 text-xs px-3",children:"I have a client ID"})]}),v&&(0,t.jsxs)("div",{className:"space-y-2 rounded-md border border-border p-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-xs text-muted-foreground mb-1",htmlFor:"outlook-client-id",children:"Application (client) ID"}),(0,t.jsx)(u.Input,{id:"outlook-client-id",value:w,onChange:e=>N(e.target.value),placeholder:"00000000-0000-0000-0000-000000000000",className:"h-8 text-xs"})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("label",{className:"block text-xs text-muted-foreground mb-1",htmlFor:"outlook-tenant",children:["Tenant (default ",(0,t.jsx)("code",{children:"common"}),")"]}),(0,t.jsx)(u.Input,{id:"outlook-tenant",value:C,onChange:e=>A(e.target.value),placeholder:"common / organizations / <tenant-guid>",className:"h-8 text-xs"})]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(i.Button,{size:"sm",variant:"outline",onClick:()=>void W(),disabled:R||0===w.trim().length,className:"h-7 text-xs px-3",children:R?"Saving…":"Save"}),(0,t.jsx)(i.Button,{size:"sm",variant:"outline",onClick:()=>k(!1),disabled:R,className:"h-7 text-xs px-3",children:"Cancel"})]})]}),g&&!v&&(0,t.jsxs)("div",{className:"text-xs text-muted-foreground",children:["Application ID:"," ",(0,t.jsx)("code",{className:"font-mono",children:p.data?.clientId})," ","(tenant ",(0,t.jsx)("code",{children:p.data?.tenant}),")."," ",(0,t.jsx)("button",{type:"button",className:"underline",onClick:()=>void z(),disabled:R,children:"reset"})]})]}),(0,t.jsx)(T,{index:2,title:"Authenticate an Outlook account",disabled:!g,children:g?(0,t.jsxs)("div",{className:"space-y-2 rounded-md border border-border p-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-xs text-muted-foreground mb-1",htmlFor:"outlook-label",children:"Label (optional)"}),(0,t.jsx)(u.Input,{id:"outlook-label",value:E,onChange:e=>F(e.target.value),placeholder:"work, personal, …",className:"h-8 text-xs"})]}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,t.jsx)(i.Button,{size:"sm",onClick:()=>void $(),disabled:R,className:"h-7 text-xs px-3",children:R?"Waiting for consent…":"Authenticate (browser)"}),(0,t.jsx)(i.Button,{size:"sm",variant:"outline",onClick:()=>void H(),disabled:R,className:"h-7 text-xs px-3",title:"Use if the daemon runs headless (SSH / WSL)",children:"Authenticate (device code)"})]}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"The browser flow may trigger a one-time macOS / Windows firewall prompt — accept it so the loopback callback can complete."})]}):(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"Save the client ID first."})}),L&&(0,t.jsx)(m.Alert,{variant:"warning",children:(0,t.jsxs)("div",{className:"text-xs",children:["Visit"," ",(0,t.jsx)("a",{href:L.verificationUri,target:"_blank",rel:"noreferrer",className:"underline",children:L.verificationUri})," ","and enter code"," ",(0,t.jsx)("code",{className:"font-mono",children:L.userCode}),". Expires in ",Math.round(L.expiresIn/60)," min."]})}),O&&(0,t.jsx)(m.Alert,{variant:"success",children:O}),B&&(0,t.jsx)(m.Alert,{variant:"error",children:B})]});return(0,t.jsx)(I,{name:"Outlook / Microsoft 365",description:(0,t.jsx)(t.Fragment,{children:"One-time Azure app registration, then connect as many Outlook / outlook.com / Microsoft 365 accounts as you need."}),status:f,setupSection:V,accountsSection:e.length>0?e.map(a=>(0,t.jsx)(j,{account:a,highlight:l===a.id,onReauthenticate:()=>void $(),isLastOfKind:1===e.length,onAfterRemove:async()=>{1===e.length&&h&&await y(n,"outlook",!1)}},a.id)):void 0,enableToggle:{enabled:h,disabled:0===e.length,disabledReason:0===e.length?"Authenticate an Outlook account first.":void 0,busy:q,onChange:U,explainer:"When enabled, the agent observes your Outlook inbox via Microsoft Graph and can read, draft, and send messages."}})}],86704);let F={yahoo:{name:"Yahoo Mail",description:"App-password login over IMAP/SMTP. Generate the password in Yahoo Account Security, paste it once, and the daemon stores it in the OS keychain.",setupUrl:"https://login.yahoo.com/account/security",setupLabel:"Yahoo Account Security",passwordLabel:"Yahoo app password",defaultDomain:"yahoo.com",prerequisite:"Yahoo requires two-step verification on the account before it lets you create app passwords. If you haven't enabled it yet, turn it on first from the same Account Security page.",passwordSteps:[(0,t.jsxs)(t.Fragment,{children:["Open the"," ",(0,t.jsx)("strong",{children:"Yahoo Account Security"})," page and sign in with the Yahoo account you want to connect."]}),(0,t.jsxs)(t.Fragment,{children:["Scroll to ",(0,t.jsx)("strong",{children:"Other ways to sign in"})," and click"," ",(0,t.jsx)("strong",{children:"Generate and manage app passwords"}),". (If the link is missing, enable two-step verification first.)"]}),(0,t.jsxs)(t.Fragment,{children:["In the ",(0,t.jsx)("em",{children:"App name"})," field type ",(0,t.jsx)("code",{children:M.APP_NAME})," (any name works; this is just a label Yahoo shows in your account), then click ",(0,t.jsx)("strong",{children:"Generate password"}),"."]}),(0,t.jsxs)(t.Fragment,{children:["Yahoo shows a 16-character password with spaces. Copy it exactly as shown — ",(0,t.jsx)("strong",{children:"do not type it by hand"}),". Spaces are part of the password."]}),(0,t.jsx)(t.Fragment,{children:"Paste it into the password field below, then click Authenticate."})],passwordHint:"16 characters from Yahoo, spaces included. Do not retype — paste."},icloud:{name:"iCloud Mail",description:"App-specific-password login over IMAP/SMTP. Create the password in Apple Account → Sign-In and Security, paste it once, and the daemon stores it in the OS keychain.",setupUrl:"https://account.apple.com",setupLabel:"Apple Account",passwordLabel:"Apple app-specific password",defaultDomain:"icloud.com",prerequisite:"Apple only allows app-specific passwords on Apple IDs that have two-factor authentication turned on. If your Apple ID doesn't have 2FA yet, enable it first at appleid.apple.com.",passwordSteps:[(0,t.jsxs)(t.Fragment,{children:["Open ",(0,t.jsx)("strong",{children:"Apple Account"})," and sign in with the Apple ID whose iCloud mailbox you want to connect."]}),(0,t.jsxs)(t.Fragment,{children:["In the left sidebar click ",(0,t.jsx)("strong",{children:"Sign-In and Security"}),", then click ",(0,t.jsx)("strong",{children:"App-Specific Passwords"}),"."]}),(0,t.jsxs)(t.Fragment,{children:["Click ",(0,t.jsx)("strong",{children:"+ Generate an app-specific password"}),". Apple may ask you to re-enter your Apple ID password."]}),(0,t.jsxs)(t.Fragment,{children:["In the label field type ",(0,t.jsx)("code",{children:M.APP_NAME})," (any name works), then click ",(0,t.jsx)("strong",{children:"Create"}),"."]}),(0,t.jsxs)(t.Fragment,{children:["Apple shows a 19-character password in the form"," ",(0,t.jsx)("code",{children:"xxxx-xxxx-xxxx-xxxx"}),". Copy it exactly —"," ",(0,t.jsx)("strong",{children:"the dashes are required"}),"."]}),(0,t.jsx)(t.Fragment,{children:"Paste it into the password field below, then click Authenticate."})],passwordHint:"Format: xxxx-xxxx-xxxx-xxxx. Dashes are required — paste, don't retype."}};e.s(["ImapCard",0,function({kind:e,accounts:n,enabledKinds:r,focusAccountId:l}){let o=b(),c=F[e],h=r.includes(e),p=S({accounts:n,enabled:h}),[x,g]=(0,a.useState)(""),[f,v]=(0,a.useState)(""),[k,w]=(0,a.useState)(""),[N,C]=(0,a.useState)(!1),[A,E]=(0,a.useState)(null),[M,T]=(0,a.useState)(null),[R,_]=(0,a.useState)(!1),B=async t=>{_(!0);try{await y(r,e,t),o()}finally{_(!1)}},D=async()=>{C(!0),E(null),T(null);try{await d.api.post("/config/mail/app-password",{kind:e,email:`${x.trim()}@${c.defaultDomain}`,appPassword:f.trim(),label:k.trim()||void 0}),T(`${c.name} authenticated. Toggle the switch below to start using it.`),g(""),v(""),w(""),o()}catch(e){E(e instanceof Error?e.message:"Failed to connect")}finally{C(!1)}},O=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"rounded-md border border-dashed border-border p-3 text-xs space-y-2",children:[(0,t.jsx)("p",{className:"text-foreground font-medium",children:"Step 1: Generate an app password"}),(0,t.jsxs)("p",{className:"text-muted-foreground",children:[c.prerequisite," ",(0,t.jsxs)("a",{href:c.setupUrl,target:"_blank",rel:"noreferrer",className:"underline inline-flex items-center gap-0.5",children:["Open ",c.setupLabel," ",(0,t.jsx)(s.ExternalLink,{className:"h-3 w-3"})]}),"."]}),(0,t.jsx)("ol",{className:"list-decimal list-outside pl-4 space-y-1 text-muted-foreground",children:c.passwordSteps.map((e,a)=>(0,t.jsx)("li",{children:e},a))})]}),(0,t.jsxs)("div",{className:"rounded-md border border-border p-3 space-y-2",children:[(0,t.jsx)("p",{className:"text-xs font-semibold text-foreground",children:"Step 2: Authenticate the account"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-xs text-muted-foreground mb-1",htmlFor:`${e}-email`,children:"Account email"}),(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)(u.Input,{id:`${e}-email`,value:x,onChange:e=>g(e.target.value),placeholder:"username",className:"h-8 text-xs rounded-r-none"}),(0,t.jsxs)("span",{className:"inline-flex h-8 items-center rounded-r-md border border-l-0 border-input bg-muted px-3 text-xs text-muted-foreground select-none",children:["@",c.defaultDomain]})]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-xs text-muted-foreground mb-1",htmlFor:`${e}-app-password`,children:c.passwordLabel}),(0,t.jsx)(u.Input,{id:`${e}-app-password`,type:"password",value:f,onChange:e=>v(e.target.value),placeholder:"paste generated password",className:"h-8 text-xs"}),(0,t.jsx)("p",{className:"mt-1 text-[11px] text-muted-foreground",children:c.passwordHint})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-xs text-muted-foreground mb-1",htmlFor:`${e}-label`,children:"Label (optional)"}),(0,t.jsx)(u.Input,{id:`${e}-label`,value:k,onChange:e=>w(e.target.value),placeholder:"personal, family, …",className:"h-8 text-xs"})]}),(0,t.jsx)(i.Button,{size:"sm",onClick:()=>void D(),disabled:N||0===x.trim().length||0===f.trim().length,className:"h-7 text-xs px-3",children:N?"Authenticating…":"Authenticate"})]}),M&&(0,t.jsx)(m.Alert,{variant:"success",children:M}),A&&(0,t.jsx)(m.Alert,{variant:"error",children:A})]});return(0,t.jsx)(I,{name:c.name,description:c.description,status:p,setupSection:O,accountsSection:n.length>0?n.map(a=>(0,t.jsx)(j,{account:a,highlight:l===a.id,isLastOfKind:1===n.length,onAfterRemove:async()=>{1===n.length&&h&&await y(r,e,!1)}},a.id)):void 0,enableToggle:{enabled:h,disabled:0===n.length,disabledReason:0===n.length?`Authenticate a ${c.name} account first.`:void 0,busy:R,onChange:B,explainer:`When enabled, the agent observes your ${c.name} inbox via IMAP IDLE and can read, draft, and send messages.`}})}],29472)},91653,e=>{"use strict";var t=e.i(54710),a=e.i(34416),n=e.i(79634),s=e.i(86567),i=e.i(86704),r=e.i(29472),l=e.i(6423),o=e.i(85631),c=e.i(32077),d=e.i(32220);e.s(["default",0,function(){let e=(0,l.useMailAccounts)(),u=(0,l.useMailProviders)(),h=function(){let[e,t]=(0,a.useState)(null);return(0,a.useEffect)(()=>{let e=()=>{let e=window.location.hash.replace(/^#/,"");t(e.length>0?e:null)};return e(),window.addEventListener("hashchange",e),()=>window.removeEventListener("hashchange",e)},[]),e}(),m=e.data?.accounts??[],p=u.data?.enabledKinds??[],x=function(e){let t={gmail:[],outlook:[],yahoo:[],icloud:[]};for(let a of e)t[a.kind].push(a);return t}(m),g=e.isLoading||u.isLoading,f=e.error??u.error,b=m.filter(e=>e.active&&p.includes(e.kind)).length;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(o.ConnectionsSectionHeader,{title:"Mail",description:"Connect each mail provider in two steps: authenticate, then flip the provider's enable switch. Once enabled, the per-account Active toggle lets you mute a single mailbox without disabling the whole provider.",healthy:b,total:m.length}),f&&(0,t.jsxs)(n.Alert,{variant:"error",children:["Couldn't load mail data:"," ",f instanceof Error?f.message:"unknown error"]}),g?(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"Loading…"}):(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)(c.IntegrationCard,{integrationKey:"gmail",gmailAccountCount:x.gmail.length}),(0,t.jsx)(d.ProcessModelCard,{processKey:"gmail_classify",title:"Gmail Classification Model",description:"Classifies each incoming Gmail message and decides how the agent should respond. Light-tier (Haiku 4.5 / gpt-5.4-mini) handles this well at low cost."}),(0,t.jsx)(s.GmailCard,{accounts:x.gmail,enabledKinds:p,focusAccountId:h}),(0,t.jsx)(c.IntegrationCard,{integrationKey:"outlook_mail"}),(0,t.jsx)(i.OutlookCard,{accounts:x.outlook,enabledKinds:p,focusAccountId:h}),(0,t.jsx)(r.ImapCard,{kind:"yahoo",accounts:x.yahoo,enabledKinds:p,focusAccountId:h}),(0,t.jsx)(r.ImapCard,{kind:"icloud",accounts:x.icloud,enabledKinds:p,focusAccountId:h})]})]})}])}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,74490,e=>{"use strict";var t=e.i(54710),r=e.i(81471);let n=(0,e.i(94237).cva)("rounded-xl border p-5 shadow-[0_1px_3px_rgb(0_0_0/0.04)]",{variants:{tone:{default:"border-border bg-card",warning:"border-amber-200 bg-amber-50/50 dark:border-amber-900 dark:bg-amber-950/30",success:"border-emerald-200 bg-emerald-50/50 dark:border-emerald-900 dark:bg-emerald-950/30",error:"border-red-200 bg-red-50/50 dark:border-red-900 dark:bg-red-950/30"},interactive:{true:"transition-shadow duration-150 hover:shadow-[0_4px_6px_rgb(0_0_0/0.06)]",false:""}},defaultVariants:{tone:"default",interactive:!1}});e.s(["Card",0,function({className:e,tone:o,interactive:l,...i}){return(0,t.jsx)("div",{className:(0,r.cn)(n({tone:o,interactive:l}),e),...i})},"CardHeader",0,function({className:e,...n}){return(0,t.jsx)("div",{className:(0,r.cn)("mb-3 flex items-center justify-between",e),...n})},"CardStatLabel",0,function({className:e,...n}){return(0,t.jsx)("h3",{className:(0,r.cn)("text-sm font-medium text-muted-foreground",e),...n})},"CardTitle",0,function({className:e,...n}){return(0,t.jsx)("h3",{className:(0,r.cn)("text-lg font-semibold text-foreground",e),...n})},"CardValue",0,function({className:e,...n}){return(0,t.jsx)("div",{className:(0,r.cn)("text-3xl font-bold text-foreground",e),...n})}])},75649,e=>{"use strict";var t=e.i(34416);e.i(54710);var r=t.createContext(void 0);e.s(["useDirection",0,function(e){let n=t.useContext(r);return e||n||"ltr"}])},87099,e=>{"use strict";var t=e.i(34416),r=e.i(9413),n=e.i(22353),o=e.i(60310),l=e.i(54710),i=new WeakMap;function s(e,t){var r,n;let o,l,i;if("at"in Array.prototype)return Array.prototype.at.call(e,t);let s=(r=e,n=t,o=r.length,(i=(l=a(n))>=0?l:o+l)<0||i>=o?-1:i);return -1===s?void 0:e[s]}function a(e){return e!=e||0===e?0:Math.trunc(e)}(class e extends Map{#e;constructor(e){super(e),this.#e=[...super.keys()],i.set(this,!0)}set(e,t){return i.get(this)&&(this.has(e)?this.#e[this.#e.indexOf(e)]=e:this.#e.push(e)),super.set(e,t),this}insert(e,t,r){let n,o=this.has(t),l=this.#e.length,i=a(e),s=i>=0?i:l+i,u=s<0||s>=l?-1:s;if(u===this.size||o&&u===this.size-1||-1===u)return this.set(t,r),this;let d=this.size+ +!o;i<0&&s++;let c=[...this.#e],f=!1;for(let e=s;e<d;e++)if(s===e){let l=c[e];c[e]===t&&(l=c[e+1]),o&&this.delete(t),n=this.get(l),this.set(t,r)}else{f||c[e-1]!==t||(f=!0);let r=c[f?e:e-1],o=n;n=this.get(r),this.delete(r),this.set(r,o)}return this}with(t,r,n){let o=new e(this);return o.insert(t,r,n),o}before(e){let t=this.#e.indexOf(e)-1;if(!(t<0))return this.entryAt(t)}setBefore(e,t,r){let n=this.#e.indexOf(e);return -1===n?this:this.insert(n,t,r)}after(e){let t=this.#e.indexOf(e);if(-1!==(t=-1===t||t===this.size-1?-1:t+1))return this.entryAt(t)}setAfter(e,t,r){let n=this.#e.indexOf(e);return -1===n?this:this.insert(n+1,t,r)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return this.#e=[],super.clear()}delete(e){let t=super.delete(e);return t&&this.#e.splice(this.#e.indexOf(e),1),t}deleteAt(e){let t=this.keyAt(e);return void 0!==t&&this.delete(t)}at(e){let t=s(this.#e,e);if(void 0!==t)return this.get(t)}entryAt(e){let t=s(this.#e,e);if(void 0!==t)return[t,this.get(t)]}indexOf(e){return this.#e.indexOf(e)}keyAt(e){return s(this.#e,e)}from(e,t){let r=this.indexOf(e);if(-1===r)return;let n=r+t;return n<0&&(n=0),n>=this.size&&(n=this.size-1),this.at(n)}keyFrom(e,t){let r=this.indexOf(e);if(-1===r)return;let n=r+t;return n<0&&(n=0),n>=this.size&&(n=this.size-1),this.keyAt(n)}find(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return n;r++}}findIndex(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return r;r++}return -1}filter(t,r){let n=[],o=0;for(let e of this)Reflect.apply(t,r,[e,o,this])&&n.push(e),o++;return new e(n)}map(t,r){let n=[],o=0;for(let e of this)n.push([e[0],Reflect.apply(t,r,[e,o,this])]),o++;return new e(n)}reduce(...e){let[t,r]=e,n=0,o=r??this.at(0);for(let r of this)o=0===n&&1===e.length?r:Reflect.apply(t,this,[o,r,n,this]),n++;return o}reduceRight(...e){let[t,r]=e,n=r??this.at(-1);for(let r=this.size-1;r>=0;r--){let o=this.at(r);n=r===this.size-1&&1===e.length?o:Reflect.apply(t,this,[n,o,r,this])}return n}toSorted(t){return new e([...this.entries()].sort(t))}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let r=this.keyAt(e),n=this.get(r);t.set(r,n)}return t}toSpliced(...t){let r=[...this.entries()];return r.splice(...t),new e(r)}slice(t,r){let n=new e,o=this.size-1;if(void 0===t)return n;t<0&&(t+=this.size),void 0!==r&&r>0&&(o=r-1);for(let e=t;e<=o;e++){let t=this.keyAt(e),r=this.get(t);n.set(t,r)}return n}every(e,t){let r=0;for(let n of this){if(!Reflect.apply(e,t,[n,r,this]))return!1;r++}return!0}some(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return!0;r++}return!1}}),e.s(["createCollection",0,function(e){let i=e+"CollectionProvider",[s,a]=(0,r.createContextScope)(i),[u,d]=s(i,{collectionRef:{current:null},itemMap:new Map}),c=e=>{let{scope:r,children:n}=e,o=t.default.useRef(null),i=t.default.useRef(new Map).current;return(0,l.jsx)(u,{scope:r,itemMap:i,collectionRef:o,children:n})};c.displayName=i;let f=e+"CollectionSlot",p=(0,o.createSlot)(f),h=t.default.forwardRef((e,t)=>{let{scope:r,children:o}=e,i=d(f,r),s=(0,n.useComposedRefs)(t,i.collectionRef);return(0,l.jsx)(p,{ref:s,children:o})});h.displayName=f;let m=e+"CollectionItemSlot",v="data-radix-collection-item",x=(0,o.createSlot)(m),g=t.default.forwardRef((e,r)=>{let{scope:o,children:i,...s}=e,a=t.default.useRef(null),u=(0,n.useComposedRefs)(r,a),c=d(m,o);return t.default.useEffect(()=>(c.itemMap.set(a,{ref:a,...s}),()=>void c.itemMap.delete(a))),(0,l.jsx)(x,{...{[v]:""},ref:u,children:i})});return g.displayName=m,[{Provider:c,Slot:h,ItemSlot:g},function(r){let n=d(e+"CollectionConsumer",r);return t.default.useCallback(()=>{let e=n.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${v}]`));return Array.from(n.itemMap.values()).sort((e,r)=>t.indexOf(e.ref.current)-t.indexOf(r.ref.current))},[n.collectionRef,n.itemMap])},a]}])},27069,e=>{"use strict";e.s(["clamp",0,function(e,[t,r]){return Math.min(r,Math.max(t,e))}])},10427,e=>{"use strict";var t=e.i(54710),r=e.i(34416),n=e.i(47869),o=e.i(27069),l=e.i(91967),i=e.i(87099),s=e.i(22353),a=e.i(9413),u=e.i(75649),d=e.i(3659),c=e.i(87656),f=e.i(62854),p=e.i(11207),h=e.i(45311),m=e.i(76903),v=e.i(85565),x=e.i(60310),g=e.i(88248),y=e.i(36567),w=e.i(18731),b=e.i(87312),S=e.i(73772),C=e.i(69759),R=[" ","Enter","ArrowUp","ArrowDown"],k=[" ","Enter"],j="Select",[E,P,T]=(0,i.createCollection)(j),[I,N]=(0,a.createContextScope)(j,[T,h.createPopperScope]),A=(0,h.createPopperScope)(),[H,L]=I(j),[M,D]=I(j),_=e=>{let{__scopeSelect:n,children:o,open:l,defaultOpen:i,onOpenChange:s,value:a,defaultValue:d,onValueChange:c,dir:f,name:m,autoComplete:v,disabled:x,required:g,form:w}=e,b=A(n),[S,C]=r.useState(null),[R,k]=r.useState(null),[P,T]=r.useState(!1),I=(0,u.useDirection)(f),[N,L]=(0,y.useControllableState)({prop:l,defaultProp:i??!1,onChange:s,caller:j}),[D,_]=(0,y.useControllableState)({prop:a,defaultProp:d,onChange:c,caller:j}),O=r.useRef(null),z=!S||w||!!S.closest("form"),[B,V]=r.useState(new Set),F=Array.from(B).map(e=>e.props.value).join(";");return(0,t.jsx)(h.Root,{...b,children:(0,t.jsxs)(H,{required:g,scope:n,trigger:S,onTriggerChange:C,valueNode:R,onValueNodeChange:k,valueNodeHasChildren:P,onValueNodeHasChildrenChange:T,contentId:(0,p.useId)(),value:D,onValueChange:_,open:N,onOpenChange:L,dir:I,triggerPointerDownPosRef:O,disabled:x,children:[(0,t.jsx)(E.Provider,{scope:n,children:(0,t.jsx)(M,{scope:e.__scopeSelect,onNativeOptionAdd:r.useCallback(e=>{V(t=>new Set(t).add(e))},[]),onNativeOptionRemove:r.useCallback(e=>{V(t=>{let r=new Set(t);return r.delete(e),r})},[]),children:o})}),z?(0,t.jsxs)(ey,{"aria-hidden":!0,required:g,tabIndex:-1,name:m,autoComplete:v,value:D,onChange:e=>_(e.target.value),disabled:x,form:w,children:[void 0===D?(0,t.jsx)("option",{value:""}):null,Array.from(B)]},F):null]})})};_.displayName=j;var O="SelectTrigger",z=r.forwardRef((e,n)=>{let{__scopeSelect:o,disabled:i=!1,...a}=e,u=A(o),d=L(O,o),c=d.disabled||i,f=(0,s.useComposedRefs)(n,d.onTriggerChange),p=P(o),m=r.useRef("touch"),[x,g,y]=eb(e=>{let t=p().filter(e=>!e.disabled),r=t.find(e=>e.value===d.value),n=eS(t,e,r);void 0!==n&&d.onValueChange(n.value)}),w=e=>{c||(d.onOpenChange(!0),y()),e&&(d.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return(0,t.jsx)(h.Anchor,{asChild:!0,...u,children:(0,t.jsx)(v.Primitive.button,{type:"button",role:"combobox","aria-controls":d.contentId,"aria-expanded":d.open,"aria-required":d.required,"aria-autocomplete":"none",dir:d.dir,"data-state":d.open?"open":"closed",disabled:c,"data-disabled":c?"":void 0,"data-placeholder":ew(d.value)?"":void 0,...a,ref:f,onClick:(0,l.composeEventHandlers)(a.onClick,e=>{e.currentTarget.focus(),"mouse"!==m.current&&w(e)}),onPointerDown:(0,l.composeEventHandlers)(a.onPointerDown,e=>{m.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),0===e.button&&!1===e.ctrlKey&&"mouse"===e.pointerType&&(w(e),e.preventDefault())}),onKeyDown:(0,l.composeEventHandlers)(a.onKeyDown,e=>{let t=""!==x.current;e.ctrlKey||e.altKey||e.metaKey||1!==e.key.length||g(e.key),(!t||" "!==e.key)&&R.includes(e.key)&&(w(),e.preventDefault())})})})});z.displayName=O;var B="SelectValue",V=r.forwardRef((e,r)=>{let{__scopeSelect:n,className:o,style:l,children:i,placeholder:a="",...u}=e,d=L(B,n),{onValueNodeHasChildrenChange:c}=d,f=void 0!==i,p=(0,s.useComposedRefs)(r,d.onValueNodeChange);return(0,w.useLayoutEffect)(()=>{c(f)},[c,f]),(0,t.jsx)(v.Primitive.span,{...u,ref:p,style:{pointerEvents:"none"},children:ew(d.value)?(0,t.jsx)(t.Fragment,{children:a}):i})});V.displayName=B;var F=r.forwardRef((e,r)=>{let{__scopeSelect:n,children:o,...l}=e;return(0,t.jsx)(v.Primitive.span,{"aria-hidden":!0,...l,ref:r,children:o||"▼"})});F.displayName="SelectIcon";var K=e=>(0,t.jsx)(m.Portal,{asChild:!0,...e});K.displayName="SelectPortal";var U="SelectContent",W=r.forwardRef((e,o)=>{let l=L(U,e.__scopeSelect),[i,s]=r.useState();return((0,w.useLayoutEffect)(()=>{s(new DocumentFragment)},[]),l.open)?(0,t.jsx)(X,{...e,ref:o}):i?n.createPortal((0,t.jsx)(q,{scope:e.__scopeSelect,children:(0,t.jsx)(E.Slot,{scope:e.__scopeSelect,children:(0,t.jsx)("div",{children:e.children})})}),i):null});W.displayName=U;var[q,Y]=I(U),G=(0,x.createSlot)("SelectContent.RemoveScroll"),X=r.forwardRef((e,n)=>{let{__scopeSelect:o,position:i="item-aligned",onCloseAutoFocus:a,onEscapeKeyDown:u,onPointerDownOutside:p,side:h,sideOffset:m,align:v,alignOffset:x,arrowPadding:g,collisionBoundary:y,collisionPadding:w,sticky:b,hideWhenDetached:R,avoidCollisions:k,...j}=e,E=L(U,o),[T,I]=r.useState(null),[N,A]=r.useState(null),H=(0,s.useComposedRefs)(n,e=>I(e)),[M,D]=r.useState(null),[_,O]=r.useState(null),z=P(o),[B,V]=r.useState(!1),F=r.useRef(!1);r.useEffect(()=>{if(T)return(0,S.hideOthers)(T)},[T]),(0,c.useFocusGuards)();let K=r.useCallback(e=>{let[t,...r]=z().map(e=>e.ref.current),[n]=r.slice(-1),o=document.activeElement;for(let r of e)if(r===o||(r?.scrollIntoView({block:"nearest"}),r===t&&N&&(N.scrollTop=0),r===n&&N&&(N.scrollTop=N.scrollHeight),r?.focus(),document.activeElement!==o))return},[z,N]),W=r.useCallback(()=>K([M,T]),[K,M,T]);r.useEffect(()=>{B&&W()},[B,W]);let{onOpenChange:Y,triggerPointerDownPosRef:X}=E;r.useEffect(()=>{if(T){let e={x:0,y:0},t=t=>{e={x:Math.abs(Math.round(t.pageX)-(X.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(X.current?.y??0))}},r=r=>{e.x<=10&&e.y<=10?r.preventDefault():T.contains(r.target)||Y(!1),document.removeEventListener("pointermove",t),X.current=null};return null!==X.current&&(document.addEventListener("pointermove",t),document.addEventListener("pointerup",r,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",t),document.removeEventListener("pointerup",r,{capture:!0})}}},[T,Y,X]),r.useEffect(()=>{let e=()=>Y(!1);return window.addEventListener("blur",e),window.addEventListener("resize",e),()=>{window.removeEventListener("blur",e),window.removeEventListener("resize",e)}},[Y]);let[J,Q]=eb(e=>{let t=z().filter(e=>!e.disabled),r=t.find(e=>e.ref.current===document.activeElement),n=eS(t,e,r);n&&setTimeout(()=>n.ref.current.focus())}),ee=r.useCallback((e,t,r)=>{let n=!F.current&&!r;(void 0!==E.value&&E.value===t||n)&&(D(e),n&&(F.current=!0))},[E.value]),et=r.useCallback(()=>T?.focus(),[T]),er=r.useCallback((e,t,r)=>{let n=!F.current&&!r;(void 0!==E.value&&E.value===t||n)&&O(e)},[E.value]),en="popper"===i?$:Z,eo=en===$?{side:h,sideOffset:m,align:v,alignOffset:x,arrowPadding:g,collisionBoundary:y,collisionPadding:w,sticky:b,hideWhenDetached:R,avoidCollisions:k}:{};return(0,t.jsx)(q,{scope:o,content:T,viewport:N,onViewportChange:A,itemRefCallback:ee,selectedItem:M,onItemLeave:et,itemTextRefCallback:er,focusSelectedItem:W,selectedItemText:_,position:i,isPositioned:B,searchRef:J,children:(0,t.jsx)(C.RemoveScroll,{as:G,allowPinchZoom:!0,children:(0,t.jsx)(f.FocusScope,{asChild:!0,trapped:E.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:(0,l.composeEventHandlers)(a,e=>{E.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,t.jsx)(d.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:u,onPointerDownOutside:p,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>E.onOpenChange(!1),children:(0,t.jsx)(en,{role:"listbox",id:E.contentId,"data-state":E.open?"open":"closed",dir:E.dir,onContextMenu:e=>e.preventDefault(),...j,...eo,onPlaced:()=>V(!0),ref:H,style:{display:"flex",flexDirection:"column",outline:"none",...j.style},onKeyDown:(0,l.composeEventHandlers)(j.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if("Tab"===e.key&&e.preventDefault(),t||1!==e.key.length||Q(e.key),["ArrowUp","ArrowDown","Home","End"].includes(e.key)){let t=z().filter(e=>!e.disabled).map(e=>e.ref.current);if(["ArrowUp","End"].includes(e.key)&&(t=t.slice().reverse()),["ArrowUp","ArrowDown"].includes(e.key)){let r=e.target,n=t.indexOf(r);t=t.slice(n+1)}setTimeout(()=>K(t)),e.preventDefault()}})})})})})})});X.displayName="SelectContentImpl";var Z=r.forwardRef((e,n)=>{let{__scopeSelect:l,onPlaced:i,...a}=e,u=L(U,l),d=Y(U,l),[c,f]=r.useState(null),[p,h]=r.useState(null),m=(0,s.useComposedRefs)(n,e=>h(e)),x=P(l),g=r.useRef(!1),y=r.useRef(!0),{viewport:b,selectedItem:S,selectedItemText:C,focusSelectedItem:R}=d,k=r.useCallback(()=>{if(u.trigger&&u.valueNode&&c&&p&&b&&S&&C){let e=u.trigger.getBoundingClientRect(),t=p.getBoundingClientRect(),r=u.valueNode.getBoundingClientRect(),n=C.getBoundingClientRect();if("rtl"!==u.dir){let l=n.left-t.left,i=r.left-l,s=e.left-i,a=e.width+s,u=Math.max(a,t.width),d=window.innerWidth-10,f=(0,o.clamp)(i,[10,Math.max(10,d-u)]);c.style.minWidth=a+"px",c.style.left=f+"px"}else{let l=t.right-n.right,i=window.innerWidth-r.right-l,s=window.innerWidth-e.right-i,a=e.width+s,u=Math.max(a,t.width),d=window.innerWidth-10,f=(0,o.clamp)(i,[10,Math.max(10,d-u)]);c.style.minWidth=a+"px",c.style.right=f+"px"}let l=x(),s=window.innerHeight-20,a=b.scrollHeight,d=window.getComputedStyle(p),f=parseInt(d.borderTopWidth,10),h=parseInt(d.paddingTop,10),m=parseInt(d.borderBottomWidth,10),v=f+h+a+parseInt(d.paddingBottom,10)+m,y=Math.min(5*S.offsetHeight,v),w=window.getComputedStyle(b),R=parseInt(w.paddingTop,10),k=parseInt(w.paddingBottom,10),j=e.top+e.height/2-10,E=S.offsetHeight/2,P=f+h+(S.offsetTop+E);if(P<=j){let e=l.length>0&&S===l[l.length-1].ref.current;c.style.bottom="0px";let t=Math.max(s-j,E+(e?k:0)+(p.clientHeight-b.offsetTop-b.offsetHeight)+m);c.style.height=P+t+"px"}else{let e=l.length>0&&S===l[0].ref.current;c.style.top="0px";let t=Math.max(j,f+b.offsetTop+(e?R:0)+E);c.style.height=t+(v-P)+"px",b.scrollTop=P-j+b.offsetTop}c.style.margin="10px 0",c.style.minHeight=y+"px",c.style.maxHeight=s+"px",i?.(),requestAnimationFrame(()=>g.current=!0)}},[x,u.trigger,u.valueNode,c,p,b,S,C,u.dir,i]);(0,w.useLayoutEffect)(()=>k(),[k]);let[j,E]=r.useState();(0,w.useLayoutEffect)(()=>{p&&E(window.getComputedStyle(p).zIndex)},[p]);let T=r.useCallback(e=>{e&&!0===y.current&&(k(),R?.(),y.current=!1)},[k,R]);return(0,t.jsx)(J,{scope:l,contentWrapper:c,shouldExpandOnScrollRef:g,onScrollButtonChange:T,children:(0,t.jsx)("div",{ref:f,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:j},children:(0,t.jsx)(v.Primitive.div,{...a,ref:m,style:{boxSizing:"border-box",maxHeight:"100%",...a.style}})})})});Z.displayName="SelectItemAlignedPosition";var $=r.forwardRef((e,r)=>{let{__scopeSelect:n,align:o="start",collisionPadding:l=10,...i}=e,s=A(n);return(0,t.jsx)(h.Content,{...s,...i,ref:r,align:o,collisionPadding:l,style:{boxSizing:"border-box",...i.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});$.displayName="SelectPopperPosition";var[J,Q]=I(U,{}),ee="SelectViewport",et=r.forwardRef((e,n)=>{let{__scopeSelect:o,nonce:i,...a}=e,u=Y(ee,o),d=Q(ee,o),c=(0,s.useComposedRefs)(n,u.onViewportChange),f=r.useRef(0);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:i}),(0,t.jsx)(E.Slot,{scope:o,children:(0,t.jsx)(v.Primitive.div,{"data-radix-select-viewport":"",role:"presentation",...a,ref:c,style:{position:"relative",flex:1,overflow:"hidden auto",...a.style},onScroll:(0,l.composeEventHandlers)(a.onScroll,e=>{let t=e.currentTarget,{contentWrapper:r,shouldExpandOnScrollRef:n}=d;if(n?.current&&r){let e=Math.abs(f.current-t.scrollTop);if(e>0){let n=window.innerHeight-20,o=Math.max(parseFloat(r.style.minHeight),parseFloat(r.style.height));if(o<n){let l=o+e,i=Math.min(n,l),s=l-i;r.style.height=i+"px","0px"===r.style.bottom&&(t.scrollTop=s>0?s:0,r.style.justifyContent="flex-end")}}}f.current=t.scrollTop})})})]})});et.displayName=ee;var er="SelectGroup",[en,eo]=I(er),el=r.forwardRef((e,r)=>{let{__scopeSelect:n,...o}=e,l=(0,p.useId)();return(0,t.jsx)(en,{scope:n,id:l,children:(0,t.jsx)(v.Primitive.div,{role:"group","aria-labelledby":l,...o,ref:r})})});el.displayName=er;var ei="SelectLabel",es=r.forwardRef((e,r)=>{let{__scopeSelect:n,...o}=e,l=eo(ei,n);return(0,t.jsx)(v.Primitive.div,{id:l.id,...o,ref:r})});es.displayName=ei;var ea="SelectItem",[eu,ed]=I(ea),ec=r.forwardRef((e,n)=>{let{__scopeSelect:o,value:i,disabled:a=!1,textValue:u,...d}=e,c=L(ea,o),f=Y(ea,o),h=c.value===i,[m,x]=r.useState(u??""),[g,y]=r.useState(!1),w=(0,s.useComposedRefs)(n,e=>f.itemRefCallback?.(e,i,a)),b=(0,p.useId)(),S=r.useRef("touch"),C=()=>{a||(c.onValueChange(i),c.onOpenChange(!1))};if(""===i)throw Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return(0,t.jsx)(eu,{scope:o,value:i,disabled:a,textId:b,isSelected:h,onItemTextChange:r.useCallback(e=>{x(t=>t||(e?.textContent??"").trim())},[]),children:(0,t.jsx)(E.ItemSlot,{scope:o,value:i,disabled:a,textValue:m,children:(0,t.jsx)(v.Primitive.div,{role:"option","aria-labelledby":b,"data-highlighted":g?"":void 0,"aria-selected":h&&g,"data-state":h?"checked":"unchecked","aria-disabled":a||void 0,"data-disabled":a?"":void 0,tabIndex:a?void 0:-1,...d,ref:w,onFocus:(0,l.composeEventHandlers)(d.onFocus,()=>y(!0)),onBlur:(0,l.composeEventHandlers)(d.onBlur,()=>y(!1)),onClick:(0,l.composeEventHandlers)(d.onClick,()=>{"mouse"!==S.current&&C()}),onPointerUp:(0,l.composeEventHandlers)(d.onPointerUp,()=>{"mouse"===S.current&&C()}),onPointerDown:(0,l.composeEventHandlers)(d.onPointerDown,e=>{S.current=e.pointerType}),onPointerMove:(0,l.composeEventHandlers)(d.onPointerMove,e=>{S.current=e.pointerType,a?f.onItemLeave?.():"mouse"===S.current&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:(0,l.composeEventHandlers)(d.onPointerLeave,e=>{e.currentTarget===document.activeElement&&f.onItemLeave?.()}),onKeyDown:(0,l.composeEventHandlers)(d.onKeyDown,e=>{(f.searchRef?.current===""||" "!==e.key)&&(k.includes(e.key)&&C()," "===e.key&&e.preventDefault())})})})})});ec.displayName=ea;var ef="SelectItemText",ep=r.forwardRef((e,o)=>{let{__scopeSelect:l,className:i,style:a,...u}=e,d=L(ef,l),c=Y(ef,l),f=ed(ef,l),p=D(ef,l),[h,m]=r.useState(null),x=(0,s.useComposedRefs)(o,e=>m(e),f.onItemTextChange,e=>c.itemTextRefCallback?.(e,f.value,f.disabled)),g=h?.textContent,y=r.useMemo(()=>(0,t.jsx)("option",{value:f.value,disabled:f.disabled,children:g},f.value),[f.disabled,f.value,g]),{onNativeOptionAdd:b,onNativeOptionRemove:S}=p;return(0,w.useLayoutEffect)(()=>(b(y),()=>S(y)),[b,S,y]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(v.Primitive.span,{id:f.textId,...u,ref:x}),f.isSelected&&d.valueNode&&!d.valueNodeHasChildren?n.createPortal(u.children,d.valueNode):null]})});ep.displayName=ef;var eh="SelectItemIndicator";r.forwardRef((e,r)=>{let{__scopeSelect:n,...o}=e;return ed(eh,n).isSelected?(0,t.jsx)(v.Primitive.span,{"aria-hidden":!0,...o,ref:r}):null}).displayName=eh;var em="SelectScrollUpButton";r.forwardRef((e,n)=>{let o=Y(em,e.__scopeSelect),l=Q(em,e.__scopeSelect),[i,a]=r.useState(!1),u=(0,s.useComposedRefs)(n,l.onScrollButtonChange);return(0,w.useLayoutEffect)(()=>{if(o.viewport&&o.isPositioned){let e=function(){a(t.scrollTop>0)},t=o.viewport;return e(),t.addEventListener("scroll",e),()=>t.removeEventListener("scroll",e)}},[o.viewport,o.isPositioned]),i?(0,t.jsx)(ex,{...e,ref:u,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=o;e&&t&&(e.scrollTop=e.scrollTop-t.offsetHeight)}}):null}).displayName=em;var ev="SelectScrollDownButton";r.forwardRef((e,n)=>{let o=Y(ev,e.__scopeSelect),l=Q(ev,e.__scopeSelect),[i,a]=r.useState(!1),u=(0,s.useComposedRefs)(n,l.onScrollButtonChange);return(0,w.useLayoutEffect)(()=>{if(o.viewport&&o.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight;a(Math.ceil(t.scrollTop)<e)},t=o.viewport;return e(),t.addEventListener("scroll",e),()=>t.removeEventListener("scroll",e)}},[o.viewport,o.isPositioned]),i?(0,t.jsx)(ex,{...e,ref:u,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=o;e&&t&&(e.scrollTop=e.scrollTop+t.offsetHeight)}}):null}).displayName=ev;var ex=r.forwardRef((e,n)=>{let{__scopeSelect:o,onAutoScroll:i,...s}=e,a=Y("SelectScrollButton",o),u=r.useRef(null),d=P(o),c=r.useCallback(()=>{null!==u.current&&(window.clearInterval(u.current),u.current=null)},[]);return r.useEffect(()=>()=>c(),[c]),(0,w.useLayoutEffect)(()=>{let e=d().find(e=>e.ref.current===document.activeElement);e?.ref.current?.scrollIntoView({block:"nearest"})},[d]),(0,t.jsx)(v.Primitive.div,{"aria-hidden":!0,...s,ref:n,style:{flexShrink:0,...s.style},onPointerDown:(0,l.composeEventHandlers)(s.onPointerDown,()=>{null===u.current&&(u.current=window.setInterval(i,50))}),onPointerMove:(0,l.composeEventHandlers)(s.onPointerMove,()=>{a.onItemLeave?.(),null===u.current&&(u.current=window.setInterval(i,50))}),onPointerLeave:(0,l.composeEventHandlers)(s.onPointerLeave,()=>{c()})})});r.forwardRef((e,r)=>{let{__scopeSelect:n,...o}=e;return(0,t.jsx)(v.Primitive.div,{"aria-hidden":!0,...o,ref:r})}).displayName="SelectSeparator";var eg="SelectArrow";r.forwardRef((e,r)=>{let{__scopeSelect:n,...o}=e,l=A(n),i=L(eg,n),s=Y(eg,n);return i.open&&"popper"===s.position?(0,t.jsx)(h.Arrow,{...l,...o,ref:r}):null}).displayName=eg;var ey=r.forwardRef(({__scopeSelect:e,value:n,...o},l)=>{let i,a=r.useRef(null),u=(0,s.useComposedRefs)(l,a),d=(i=r.useRef({value:n,previous:n}),r.useMemo(()=>(i.current.value!==n&&(i.current.previous=i.current.value,i.current.value=n),i.current.previous),[n]));return r.useEffect(()=>{let e=a.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLSelectElement.prototype,"value").set;if(d!==n&&t){let r=new Event("change",{bubbles:!0});t.call(e,n),e.dispatchEvent(r)}},[d,n]),(0,t.jsx)(v.Primitive.select,{...o,style:{...b.VISUALLY_HIDDEN_STYLES,...o.style},ref:u,defaultValue:n})});function ew(e){return""===e||void 0===e}function eb(e){let t=(0,g.useCallbackRef)(e),n=r.useRef(""),o=r.useRef(0),l=r.useCallback(e=>{let r=n.current+e;t(r),function e(t){n.current=t,window.clearTimeout(o.current),""!==t&&(o.current=window.setTimeout(()=>e(""),1e3))}(r)},[t]),i=r.useCallback(()=>{n.current="",window.clearTimeout(o.current)},[]);return r.useEffect(()=>()=>window.clearTimeout(o.current),[]),[n,l,i]}function eS(e,t,r){var n,o;let l=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=r?e.indexOf(r):-1,s=(n=e,o=Math.max(i,0),n.map((e,t)=>n[(o+t)%n.length]));1===l.length&&(s=s.filter(e=>e!==r));let a=s.find(e=>e.textValue.toLowerCase().startsWith(l.toLowerCase()));return a!==r?a:void 0}ey.displayName="SelectBubbleInput";var eC=e.i(16047),eR=e.i(81471);e.s(["Select",0,_,"SelectContent",0,function({className:e,children:r,position:n="popper",...o}){return(0,t.jsx)(K,{children:(0,t.jsx)(W,{className:(0,eR.cn)("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95","popper"===n&&"translate-y-1",e),position:n,...o,children:(0,t.jsx)(et,{className:(0,eR.cn)("p-1","popper"===n&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:r})})})},"SelectGroup",0,el,"SelectItem",0,function({className:e,children:r,...n}){return(0,t.jsx)(ec,{className:(0,eR.cn)("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:(0,t.jsx)(ep,{children:r})})},"SelectLabel",0,function({className:e,...r}){return(0,t.jsx)(es,{className:(0,eR.cn)("px-2 py-1.5 text-xs text-muted-foreground",e),...r})},"SelectTrigger",0,function({className:e,children:r,...n}){return(0,t.jsxs)(z,{className:(0,eR.cn)("flex h-9 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50",e),...n,children:[r,(0,t.jsx)(F,{asChild:!0,children:(0,t.jsx)(eC.ChevronDown,{className:"h-4 w-4 opacity-50"})})]})},"SelectValue",0,V],10427)}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,74490,e=>{"use strict";var t=e.i(54710),a=e.i(81471);let n=(0,e.i(94237).cva)("rounded-xl border p-5 shadow-[0_1px_3px_rgb(0_0_0/0.04)]",{variants:{tone:{default:"border-border bg-card",warning:"border-amber-200 bg-amber-50/50 dark:border-amber-900 dark:bg-amber-950/30",success:"border-emerald-200 bg-emerald-50/50 dark:border-emerald-900 dark:bg-emerald-950/30",error:"border-red-200 bg-red-50/50 dark:border-red-900 dark:bg-red-950/30"},interactive:{true:"transition-shadow duration-150 hover:shadow-[0_4px_6px_rgb(0_0_0/0.06)]",false:""}},defaultVariants:{tone:"default",interactive:!1}});e.s(["Card",0,function({className:e,tone:r,interactive:s,...i}){return(0,t.jsx)("div",{className:(0,a.cn)(n({tone:r,interactive:s}),e),...i})},"CardHeader",0,function({className:e,...n}){return(0,t.jsx)("div",{className:(0,a.cn)("mb-3 flex items-center justify-between",e),...n})},"CardStatLabel",0,function({className:e,...n}){return(0,t.jsx)("h3",{className:(0,a.cn)("text-sm font-medium text-muted-foreground",e),...n})},"CardTitle",0,function({className:e,...n}){return(0,t.jsx)("h3",{className:(0,a.cn)("text-lg font-semibold text-foreground",e),...n})},"CardValue",0,function({className:e,...n}){return(0,t.jsx)("div",{className:(0,a.cn)("text-3xl font-bold text-foreground",e),...n})}])},39982,e=>{"use strict";var t=e.i(54710),a=e.i(81471);e.s(["PageHeader",0,function({title:e,description:n,icon:r,badge:s,actions:i,children:l,className:o}){return(0,t.jsxs)("header",{className:(0,a.cn)("flex flex-col gap-1",o),children:[(0,t.jsxs)("div",{className:"flex items-baseline justify-between gap-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[r&&(0,t.jsx)(r,{className:"h-5 w-5 text-muted-foreground"}),(0,t.jsx)("h1",{className:"text-2xl font-semibold text-foreground",children:e}),s]}),i&&(0,t.jsx)("div",{className:"flex items-center gap-2",children:i})]}),n&&(0,t.jsx)("p",{className:"max-w-3xl text-sm text-muted-foreground",children:n}),l]})}])},58436,e=>{"use strict";var t=e.i(54710),a=e.i(34416),n=e.i(55575),r=e.i(72740),s=e.i(20014),i=e.i(8652),l=e.i(66127),o=e.i(81471);e.s(["DirectoryPickerField",0,function({id:e,value: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)(i.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)(s.Button,{type:"button",variant:"outline",onClick:N,disabled:x||y,className:"shrink-0 gap-2",children:[y?(0,t.jsx)(r.Loader2,{className:"h-4 w-4 animate-spin"}):(0,t.jsx)(n.FolderOpen,{className:"h-4 w-4"}),y?"Opening...":g]})]}),b&&(0,t.jsx)("p",{className:"text-xs text-destructive",children:b})]})}])},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)},90925,e=>{"use strict";let t=(0,e.i(77379).default)("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);e.s(["Trash2",0,t],90925)},60168,e=>{"use strict";let t=(0,e.i(77379).default)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",0,t],60168)},99758,e=>{"use strict";let t=(0,e.i(77379).default)("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",0,t],99758)},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:n}){let r=await t.api.post("/system/pick-directory",{title:e,...n?{defaultPath:n}:{}});if("selected"===r.status&&r.path)return r.path;if("cancelled"===r.status)return null;throw Error(r.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),n=e.i(10628);e.s(["RestartRequiredBadge",0,function(){return(0,t.jsxs)(n.Tooltip,{children:[(0,t.jsx)(n.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)(n.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),n=e.i(95486),r=e.i(8011),s=e.i(10628),i=e.i(81471);e.s(["DocsHelpInline",0,function({docId:e,anchor:l=null,label:o,className:d}){let u=(0,n.useQueryClient)(),c=o??"Help";return(0,t.jsx)(s.TooltipProvider,{delayDuration:300,children:(0,t.jsxs)(s.Tooltip,{children:[(0,t.jsx)(s.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:t=>{t.preventDefault(),t.stopPropagation(),(0,r.openDocsHelpSlideover)(u,{docId:e,anchor:l,autoFocusComposer:!1})},className:(0,i.cn)("inline-flex h-5 w-5 items-center justify-center rounded-full text-muted-foreground/70 transition hover:bg-accent hover:text-foreground",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)(s.TooltipContent,{side:"top",children:(0,t.jsx)("span",{children:c})})]})})}])},88,e=>{"use strict";var t=e.i(54710),a=e.i(34416),n=e.i(99758),r=e.i(55575),s=e.i(21682),i=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:n,helpAnchor:r}){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}),n&&(0,t.jsx)(p.DocsHelpInline,{docId:n,anchor:r??null,label:e})]})}),(0,t.jsx)("div",{className:"space-y-0.5 [&>p]:max-w-prose",children:a})]})},"EditableArrayField",0,function({label:e,values:n,configKey:s,variant:l="gray",placeholder:o="Add item...",directoryPicker:u,modified:m,onSave:p}){let y=v.has(s),[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||n.includes(e))){k(!0),C(null);try{await p(s,[...n,e]),j("")}catch{}finally{k(!1)}}},H=async e=>{k(!0);try{await p(s,n.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(n.includes(e)){j(e),C("That directory is already in the list.");return}await p(s,[...n,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":s,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:[n.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===n.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)(r.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)(i.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:n,configKey:r,description:s,modified:i,defaultValue:o,onSave:d}){let[u,c]=(0,a.useState)(!1),m=v.has(r),x=void 0!==o&&n===o,p=async()=>{c(!0);try{await d(r,!n)}finally{c(!1)}},g=async()=>{if(void 0!==o){c(!0);try{await d(r,o)}finally{c(!1)}}};return(0,t.jsx)("div",{className:`py-1.5 group${i?" border-l-2 border-blue-500 pl-2 -ml-1 rounded":""}`,"data-config-key":r,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,{}),i&&(0,t.jsx)("span",{className:"text-[10px] font-medium text-blue-600 dark:text-blue-400",children:"modified"}),void 0!==o&&!x&&!i&&(0,t.jsxs)("button",{type:"button",onClick:g,className:"text-[10px] text-muted-foreground hover:text-foreground transition-colors inline-flex items-center gap-0.5 opacity-0 group-hover:opacity-100",children:[(0,t.jsx)(l.RotateCcw,{className:"h-2.5 w-2.5"}),"reset"]})]}),s&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:s})]}),(0,t.jsx)(h.Button,{variant:n?"default":"outline",size:"sm",onClick:p,disabled:u,children:n?"Enabled":"Disabled"})]})})},"EditableField",0,function({label:e,value:r,configKey:i,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(i),[H,E]=(0,a.useState)(!1),[M,P]=(0,a.useState)(b(r)),[A,D]=(0,a.useState)(!1),[I,q]=(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),q(null))},[R]),(0,a.useEffect)(()=>{H&&B.current?.focus()},[H]),(0,a.useEffect)(()=>{H||P(b(r))},[r,H]);let F=void 0!==w&&r===w,T=async e=>{if(e.stopPropagation(),void 0!==w){D(!0);try{await C(i,w)}finally{D(!1)}}},z=async e=>{e.stopPropagation(),D(!0);try{await C(i,null)}finally{D(!1)}},O=async()=>{let e=M.trim(),t=j&&""===e?null:"number"===u?Number(M):M;if(t===r)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 q(`Must be ${p??""}–${g??""}`);q(null),D(!0);try{await C(i,t),E(!1)}catch{}finally{D(!1)}};return H?(0,t.jsxs)("div",{className:"py-1.5","data-config-key":i,children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("span",{className:"text-sm text-muted-foreground shrink-0 min-w-[140px] inline-flex items-center gap-1.5",children:[e,S&&(0,t.jsx)(f.RestartRequiredBadge,{})]}),(0,t.jsx)(x.Input,{ref:B,type:u,value:M,onChange:e=>{P(e.target.value),q(null)},onKeyDown:e=>{"Enter"===e.key&&O(),"Escape"===e.key&&(P(b(r)),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)(n.Check,{className:"h-3.5 w-3.5"})}),(0,t.jsx)(h.Button,{size:"sm",variant:"ghost",onClick:()=>{P(b(r)),q(null),E(!1)},className:"h-7 w-7 p-0",children:(0,t.jsx)(d.X,{className:"h-3.5 w-3.5"})})]}),I&&(0,t.jsx)("p",{className:"text-xs text-destructive mt-1 ml-[148px]",children:I}),m&&!I&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-1 ml-[148px]",children:m})]}):(0,t.jsxs)("div",{className:`py-1.5 group cursor-pointer rounded px-1 -mx-1 hover:bg-muted/50 transition-colors${k?" border-l-2 border-blue-500 pl-2":""}`,"data-config-key":i,onClick:()=>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&&!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!==r&&!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===r?N:"$"===c?`$${r}`:c?`${r} ${c}`:String(r)}),(0,t.jsx)(s.Pencil,{className:"h-3 w-3 text-muted-foreground opacity-0 group-hover:opacity-100 transition-opacity"})]})]}),m&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:m})]})}])},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),n=e.i(20014),r=e.i(8652),s=e.i(58436);e.s(["ExternalObsidianVaultSettings",0,function({vaultPath:e,vaultName:i,onSave:l}){let[o,d]=(0,a.useState)(e),[u,c]=(0,a.useState)(i),[h,m]=(0,a.useState)(null);(0,a.useEffect)(()=>{d(e)},[e]),(0,a.useEffect)(()=>{c(i)},[i]);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||i),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)(s.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)(r.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)(n.Button,{size:"sm",onClick:x,disabled:null!==h,children:"save"===h?"Saving...":"Save External Vault Settings"}),f&&(0,t.jsx)(n.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:i||"(not set)"})]})]})]})},"PrimaryPlatformField",0,function({health:e,value:r,defaultValue:s,modified:i,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)(r),[c,h]=(0,a.useState)(!1);(0,a.useEffect)(()=>{u(r)},[r]);let m=d!==r,x=r&&!o.includes(r),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",i&&(0,t.jsx)("span",{className:"ml-2 text-xs text-amber-600",children:"(unsaved)"})]}),void 0!==s&&(0,t.jsxs)("span",{className:"text-xs text-muted-foreground",children:["default: ",s||"(empty)"]})]}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[o.map(e=>(0,t.jsx)(n.Button,{variant:d===e?"default":"outline",size:"sm",disabled:c,onClick:()=>u(e),className:"capitalize",children:e},e)),x&&(0,t.jsxs)(n.Button,{variant:d===r?"default":"outline",size:"sm",disabled:c,onClick:()=>u(r),className:"capitalize opacity-60",title:"Current value — not currently configured with an owner ID",children:[r," (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 destination is selected 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)(n.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),n=e.i(88423),r=e.i(75187),s=e.i(36413),i=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 n=t-e;n<=0&&(n+=2*Math.PI),n>2*Math.PI-.001&&(n=2*Math.PI-.001);let r=+(n>Math.PI),s=d(e,a),i=d(e+n,a);return`M ${s.x} ${s.y} A ${a} ${a} 0 ${r} 1 ${i.x} ${i.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:n}){let r,s,i,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),D=o(e.dayBoundaryHour),I=()=>{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 n=a.getBoundingClientRect(),r=240/n.width,s=240/n.height,i=(e.clientX-n.left)*r-120;return(t=(Math.atan2((e.clientY-n.top)*s-120,i)+Math.PI/2)/(2*Math.PI)*24)<0&&(t+=24),t%24})(t),r={...e};switch(b){case"quietStart":r.quietHoursStart=h(m(a));break;case"quietEnd":r.quietHoursEnd=h(m(a));break;case"activeStart":r.activeStartHour=x(a);break;case"activeEnd":{let e=x(a);r.activeEndHour=0===e?24:e}}n(r)},onPointerUp:I,onPointerLeave:I,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 n=o(a),r=a%3==0,s=d(n,r?95:97),i=d(n,100);return(0,t.jsx)("line",{x1:s.x,y1:s.y,x2:i.x,y2:i.y,stroke:"currentColor",strokeWidth:r?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}),(r=d(D,60),s=d(D,100),(0,t.jsx)("line",{x1:r.x,y1:r.y,x2:s.x,y2:s.y,stroke:g,strokeWidth:2,strokeDasharray:"4 2"})),(i=d(D,53),(0,t.jsx)("text",{x:i.x,y:i.y,textAnchor:"middle",dominantBaseline:"central",className:"fill-primary text-[8px] font-medium",children:"day"})),function({dragging:e,hovered:a,setHovered:n,handlePointerDown:r,quietStartA:s,quietEndA:i,activeStartA:l,activeEndA:o,QUIET_R:d,ACTIVE_R:u,values:c}){let h=e??a,m=[{target:"quietStart",angle:s,r:d,color:f,label:c.quietHoursStart},{target:"quietEnd",angle:i,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:r(e.target),onPointerEnter:()=>n(e.target),onPointerLeave:()=>n(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:n,label:r,active:s,onPointerDown:i,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:i,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:s?7:5,fill:n,stroke:"var(--color-background)",strokeWidth:2}),s&&(0,t.jsx)("text",{x:c,y:h,textAnchor:"middle",className:"fill-foreground text-[9px] font-medium pointer-events-none",children:r})]})}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 D(){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 n=Object.entries(e.cadences).map(([e,t])=>({id:e,...t}));if(!e.workerRunning&&0===n.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 r=n.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, and Notion through a backend MCP subprocess so the hourly check sees fresh observations. Every poll spends tokens, so all cadences are off by default — enable just the ones you want. Enabled cadences respect the shared active-hours window below."}),(0,t.jsx)("div",{className:"space-y-2",children:n.map(e=>(0,t.jsx)(I,{row:e},e.id))}),r&&(0,t.jsx)(B,{startHour:e.activeHours.startHour,endHour:e.activeHours.endHour})]})]})}function I({row:e}){let n,r,s=(n=(0,M.useQueryClient)(),(0,H.useMutation)({mutationFn:({cadenceId:e,body:t})=>P.api.patch(`/delegated-sync/cadences/${encodeURIComponent(e)}`,t),onSuccess:()=>{n.invalidateQueries({queryKey:A})}})),i=(r=(0,M.useQueryClient)(),(0,H.useMutation)({mutationFn:({cadenceId:e})=>P.api.post(`/delegated-sync/cadences/${encodeURIComponent(e)}/run`,{}),onSuccess:()=>{r.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 i.mutateAsync({cadenceId:e.id})}catch(e){h(e instanceof Error?e.message:"Run Now failed")}},p=s.isPending,g=i.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)(q,{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:()=>{s.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&&s.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)),s.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 q({row:e}){var n;let r=(0,a.useMemo)(()=>R(e.lastSuccessAt),[e.lastSuccessAt]),s=(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 ${r}.`:"No successful run yet.",e.enabled&&e.nextRunAt&&` Next run ${s}.`,e.lastError&&` Last error: ${(n=e.lastError).length<=80?n:`${n.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:n}){let r,s=(r=(0,M.useQueryClient)(),(0,H.useMutation)({mutationFn:e=>P.api.patch("/delegated-sync/active-hours",e),onSuccess:()=>{r.invalidateQueries({queryKey:A})}})),[i,l]=(0,a.useState)(String(e)),[o,d]=(0,a.useState)(String(n)),[u,c]=(0,a.useState)(null);(0,a.useEffect)(()=>{l(String(e))},[e]),(0,a.useEffect)(()=>{d(String(n))},[n]);let h=()=>{c(null);let t=Number(i),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!==n)&&s.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 to run 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:i,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"})]}),s.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 n=Date.parse(e);if(!Number.isFinite(n))return"—";let r=Math.round((n-Date.now())/1e3);return r>=0?(t=r)<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=-r)<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`}var $=e.i(39982);e.s(["default",0,function(){let{data:e}=(0,n.useConfig)(),{df:o}=(0,n.useConfigDefaults)(),{data:d}=(0,r.useHealth)(),{deferSaveFor:u,dv:c,dirtyFields:h,setDirty:m}=(0,s.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.jsx)($.PageHeader,{title:"Schedule & Notifications",description:"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)(i.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)(i.ConfigSection,{title:"Day shape",helpDocId:"concepts/agent-day",children:[(0,t.jsx)(i.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)(i.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)(i.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 scans pending observations (file edits, calendar updates, git events, 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)(i.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)(i.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, in minutes (1–1440). Lower values give faster feedback; higher values cut quota burn. The cadence is anchored to the active-window start, so the first fire of each agent-day lands exactly at that hour.",onSave:f}),(0,t.jsx)(i.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)(i.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: set 24 to run through 23:59. Prevents the check from firing while you sleep.",onSave:f}),(0,t.jsx)(i.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 to launch the agent. If fewer are queued, the tick is skipped with no cost. Raise this 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.jsxs)(i.ConfigSection,{title:"Monthly Review (experimental — off by default)",children:[(0,t.jsxs)("p",{className:"pb-2 text-xs text-muted-foreground",children:["The monthly review is a once-per-month synthesis routine. At the last day of each month it reads the month’s daily files, weekly retrospectives, and the agent journal, then writes a user-facing snapshot to ",(0,t.jsx)("code",{children:"journal/monthly/YYYY-MM.md"})," and appends a ",(0,t.jsx)("code",{children:"## Monthly YYYY-MM"})," block to"," ",(0,t.jsx)("code",{children:"journal/agent.md"}),"."]}),(0,t.jsxs)("p",{className:"pb-2 text-xs text-muted-foreground",children:["It is ",(0,t.jsx)("strong",{children:"disabled by default"}),"pre-release because the current task-flow’s cost-to-value ratio is poor — it reads roughly 30 daily files plus 4–5 weekly files per run (~$0.30–$1.50 in tokens) and produces a snapshot that no downstream routine currently consumes. A leaner “Mirror + Prune” redesign — one trend observation plus aged carry-over decisions — is planned before the flag flips to on-by-default. Enable below to opt in to the current heavy version."]}),(0,t.jsx)(i.EditableBooleanField,{label:"Monthly Review Enabled",value:c("monthlyReviewEnabled",e.monthlyReviewEnabled),configKey:"monthlyReviewEnabled",modified:h.has("monthlyReviewEnabled"),defaultValue:o("monthlyReviewEnabled"),description:"When on, the daemon fires routine.monthly_review on the last day of each month at 18:00 local time. The flag is consulted at fire time, so flipping it takes effect on the next month-end — no daemon restart needed. Expect one Sonnet-class session per month near the per-execute $1.00 budget cap, plus one optional notification.",onSave:f})]}),(0,t.jsx)(D,{}),(0,t.jsxs)(i.ConfigSection,{title:"Notifications",helpDocId:"features/operations/quiet-hours",children:[(0,t.jsx)("p",{className:"pb-2 text-xs text-muted-foreground",children:"Rate limits and quiet hours for outbound notifications — proactive messages the agent sends you (reminders, alerts, summaries). Replies to messages you initiated are not affected. Delivery destinations are managed in Connections → Messaging."}),(0,t.jsx)(i.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. Anything above the cap is suppressed — not delivered, but still logged to Activity → Notifications so you can see what was dropped. Protects against runaway notification loops.",onSave:f}),(0,t.jsx)(i.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)(i.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)(i.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)(i.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)}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,35734,e=>{"use strict";var t=e.i(54710),a=e.i(34416),s=e.i(71060);e.i(18446);var n=e.i(23916),r=e.i(92785),l=e.i(93512),i=e.i(72740),o=e.i(20014),d=e.i(8652),c=e.i(10427),u=e.i(65268),m=e.i(88423),x=e.i(95486);let h=/^[a-z]{2,3}(?:-[A-Za-z0-9]{2,8})?$/,p=[{tag:"en",label:"English"},{tag:"ja",label:"日本語 (Japanese)"},{tag:"zh",label:"中文 (Chinese)"},{tag:"es",label:"Español (Spanish)"},{tag:"fr",label:"Français (French)"},{tag:"de",label:"Deutsch (German)"},{tag:"pt",label:"Português (Portuguese)"},{tag:"ko",label:"한국어 (Korean)"},{tag:"__custom__",label:"Other (enter BCP-47 tag…)"}],g=new Set(p.filter(e=>"__custom__"!==e.tag).map(e=>e.tag)),f=(0,e.i(77379).default)("SkipForward",[["polygon",{points:"5 4 15 12 5 20 5 4",key:"16p6eg"}],["line",{x1:"19",x2:"19",y1:"5",y2:"19",key:"futhcm"}]]);function b({title:e,description:a,children:s,onNext:n,onBack:i,skipLabel:d="Set Up Later",nextLabel:c="Next",nextDisabled:u=!1,hideNav:m=!1,maxWidth:x}){return(0,t.jsxs)("div",{className:`mx-auto ${x??"max-w-lg"} space-y-6 py-8`,children:[(0,t.jsxs)("div",{className:"space-y-2 text-center",children:[(0,t.jsx)("h2",{className:"text-xl font-semibold",children:e}),a&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:a})]}),s,!m&&(0,t.jsxs)("div",{className:"flex justify-between pt-4",children:[(0,t.jsxs)("div",{className:"flex gap-2",children:[i?(0,t.jsxs)(o.Button,{variant:"ghost",onClick:i,className:"gap-2 text-muted-foreground",children:[(0,t.jsx)(r.ArrowLeft,{className:"h-4 w-4"}),"Back"]}):null,d?(0,t.jsxs)(o.Button,{variant:"ghost",onClick:n,className:"gap-2 text-muted-foreground",children:[(0,t.jsx)(f,{className:"h-4 w-4"}),d]}):null,i||d?null:(0,t.jsx)("div",{})]}),(0,t.jsxs)(o.Button,{onClick:n,className:"gap-2",disabled:u,children:[c,(0,t.jsx)(l.ArrowRight,{className:"h-4 w-4"})]})]})]})}function y({agentDisplayName:e,onAgentDisplayNameChange:s,onNext:n}){let{data:r}=(0,m.useConfig)(),f=(0,x.useQueryClient)(),[j,v]=(0,a.useState)("en"),[N,k]=(0,a.useState)(""),[w,C]=(0,a.useState)(!1),[S,_]=(0,a.useState)(null),P=(0,a.useRef)(!1);(0,a.useEffect)(()=>{var t;if(P.current||!r)return;P.current=!0;let a="string"!=typeof(t=r.primaryLanguage)||0===t.length?{primary:"en",custom:""}:g.has(t)?{primary:t,custom:""}:{primary:"__custom__",custom:t};v(a.primary),k(a.custom),"string"==typeof r.agentDisplayName&&r.agentDisplayName.length>0&&0===e.length&&s(r.agentDisplayName)},[r,e,s]);let A="__custom__"===j?N.trim():j,I=function(e,t){if("__custom__"!==e)return!1;let a=t.trim();return 0!==a.length&&!h.test(a)}(j,N),E=function(e){if(e.saving)return!1;let t=e.agentDisplayName.trim();return 0!==t.length&&!(t.length>40)&&0!==e.resolvedLanguage.length&&!!h.test(e.resolvedLanguage)}({agentDisplayName:e,resolvedLanguage:A,saving:w}),O=async()=>{if(E){C(!0),_(null);try{var t;await u.api.patch("/config",{agentDisplayName:(t={agentDisplayName:e,resolvedLanguage:A}).agentDisplayName.trim(),primaryLanguage:t.resolvedLanguage}),await f.invalidateQueries({queryKey:["config"]}),n()}catch(e){if(e instanceof u.ApiError){let t=e.body;_(t?.message??e.message??"Failed to save basics")}else _(e instanceof Error?e.message:"Failed to save basics")}finally{C(!1)}}};return(0,t.jsxs)(b,{title:"Basics",description:"Pick what to call your agent and the language it should write in.",onNext:n,hideNav:!0,children:[(0,t.jsxs)("div",{className:"w-full max-w-sm mx-auto space-y-6 rounded-xl border border-border bg-card p-5 text-left",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{htmlFor:"agent-name",className:"text-sm font-medium text-foreground",children:"Agent name"}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"Used in the dashboard and chat. WhatsApp also prepends it as a label on every outbound message."}),(0,t.jsx)(d.Input,{id:"agent-name",value:e,onChange:e=>s(e.target.value),placeholder:"Aitne",maxLength:40})]}),(0,t.jsxs)("div",{className:"space-y-2 border-t border-border pt-4",children:[(0,t.jsx)("label",{className:"text-sm font-medium text-foreground",children:"Primary language"}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"Used for prose the agent writes — knowledge files, DM replies, notes in Obsidian and Notion. Code, file paths, and template headers stay in English."}),(0,t.jsxs)(c.Select,{value:j,onValueChange:v,children:[(0,t.jsx)(c.SelectTrigger,{children:(0,t.jsx)(c.SelectValue,{})}),(0,t.jsx)(c.SelectContent,{children:p.map(e=>(0,t.jsx)(c.SelectItem,{value:e.tag,children:e.label},e.tag))})]}),"__custom__"===j&&(0,t.jsx)(d.Input,{value:N,onChange:e=>k(e.target.value),placeholder:"e.g. zh-Hans",className:"mt-2"}),I&&(0,t.jsxs)("p",{className:"text-xs text-destructive",children:["Use a BCP-47 tag like ",(0,t.jsx)("code",{children:"en-US"})," or ",(0,t.jsx)("code",{children:"zh-Hans"}),"."]})]})]}),S&&(0,t.jsx)("p",{className:"text-sm text-red-600 dark:text-red-400 text-center",children:S}),(0,t.jsx)("div",{className:"flex justify-center gap-3 pt-4",children:(0,t.jsx)(o.Button,{size:"lg",onClick:O,disabled:!E,className:"gap-2",children:w?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(i.Loader2,{className:"h-4 w-4 animate-spin"}),"Saving…"]}):(0,t.jsxs)(t.Fragment,{children:["Continue",(0,t.jsx)(l.ArrowRight,{className:"h-4 w-4"})]})})})]})}var j=e.i(62452),v=e.i(58436),N=e.i(81471),k=e.i(64387);function w({onNext:e,onBack:a,pendingVaultMode:s,onPendingVaultModeChange:n,pendingVaultPath:l,onPendingVaultPathChange:i}){var d,c;let u,{data:x}=(0,m.useConfig)(),h=x?.contextDir??"",p="obsidian"===s?0===(u=(d={path:l,dataDir:h}).path.trim()).length?"empty":(0,k.isClientAbsolutePath)(u)?d.dataDir.length>0&&(0,k.isClientPathInsideOrEqual)(d.dataDir,u)?"overlaps_data_dir":null:"not_absolute":null,g=!(c={vaultMode:s,pathIssue:p,saving:!1}).saving&&("plain"===c.vaultMode||null===c.pathIssue);return(0,t.jsxs)(b,{title:"Vault",description:"Where should the agent keep its memory? Obsidian users can point it at an existing vault.",onNext:e,hideNav:!0,children:[(0,t.jsxs)("div",{className:"w-full max-w-xl mx-auto space-y-5 rounded-xl border border-border bg-card p-5 text-left",children:[(0,t.jsx)("div",{className:"grid grid-cols-1 gap-2",children:["plain","obsidian"].map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>n(e),className:(0,N.cn)("rounded-md border px-3 py-2 text-left text-sm transition-colors",s===e?"border-primary bg-primary/10 text-foreground":"border-border bg-background text-muted-foreground hover:border-primary/50"),children:[(0,t.jsx)("span",{className:"block font-medium",children:"plain"===e?"Plain markdown":"Obsidian"}),(0,t.jsx)("span",{className:"block text-xs text-muted-foreground",children:"plain"===e?"Files live at ~/.personal-agent/context. Only this app reads or writes them.":"Use one of your Obsidian vaults — the agent's notes sit alongside yours."})]},e))}),"obsidian"===s&&(0,t.jsxs)("div",{className:"space-y-2 border-t border-border pt-4",children:[(0,t.jsx)("label",{htmlFor:"primary-vault-path",className:"text-sm font-medium text-foreground",children:"Vault path"}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"Pick an existing folder. Cloud-sync directories (iCloud, Dropbox, OneDrive, Google Drive) work; local SSDs are faster. Nothing is written there until you finish the wizard."}),(0,t.jsx)(v.DirectoryPickerField,{id:"primary-vault-path",value:l,onChange:i,title:"Choose primary vault directory",placeholder:"Choose a folder for the primary vault",defaultPath:x?.primaryVaultPath||void 0}),p&&"empty"!==p&&(0,t.jsx)("p",{className:"text-xs text-destructive",children:function(e){switch(e){case"empty":return"Pick a directory for the agent's primary vault.";case"not_absolute":return"Use an absolute path (for example `/Users/me/Vault`, `~/Vault`, or `C:\\Vault`).";case"overlaps_data_dir":return"Path overlaps the agent's data directory; choose a separate location."}}(p)})]})]}),(0,t.jsxs)("div",{className:"flex justify-center gap-3 pt-4",children:[a&&(0,t.jsxs)(o.Button,{variant:"ghost",onClick:a,className:"gap-2",children:[(0,t.jsx)(r.ArrowLeft,{className:"h-4 w-4"}),"Back"]}),(0,t.jsxs)(o.Button,{size:"lg",onClick:e,disabled:!g,className:"gap-2",children:[(0,t.jsx)(j.FolderSymlink,{className:"h-4 w-4"}),"Continue"]})]})]})}var C=e.i(81187),S=e.i(16047),_=e.i(2745),P=e.i(78406),A=e.i(38082),I=e.i(70986),E=e.i(76176),O=e.i(24756),D=e.i(16995),B=e.i(17975),M=e.i(6131),V=e.i(85462),R=e.i(36598);let L=(0,A.getBackendIds)(),F=E.isBackendSelectionDisabled;function T({onNext:e,onBack:s}){let{data:n,refetch:d}=(0,O.useBackends)(),c=(0,x.useQueryClient)(),[m,h]=(0,a.useState)("claude"),[p,g]=(0,a.useState)("safe"),[f,y]=(0,a.useState)(R.EMPTY_OVERRIDES),[j,v]=(0,a.useState)(!1),[N,k]=(0,a.useState)(!1),[w,C]=(0,a.useState)(null),[S,_]=(0,a.useState)(null),[P,A]=(0,a.useState)({claude:{status:"idle"},codex:{status:"idle"},gemini:{status:"idle"},opencode:{status:"idle"}}),I=(0,a.useCallback)(e=>{F(e)||h(e)},[]),z=(0,a.useCallback)(async e=>{A(t=>({...t,[e]:{status:"checking"}}));try{let t=await u.api.post(`/backends/${e}/verify-install`);if(await d(),t.ok)A(a=>({...a,[e]:{status:"ok",version:t.version}}));else{let a=t.cliInstalled?t.timedOut?`${t.cliCommand} --version timed out`:t.stderr.trim()||t.stdout.trim()||"CLI failed to run":`${t.cliCommand} not found on PATH`;A(t=>({...t,[e]:{status:"error",error:a}}))}}catch(t){A(a=>({...a,[e]:{status:"error",error:t instanceof Error?t.message:"Verify install failed"}}))}},[d]),U=null!==m&&!F(m)&&(0,M.isContinueEligible)({mainBackend:m});async function Q(){if(m){if(null!==S){_(null),e();return}k(!0),C(null);try{let e=await u.api.put("/backends/main",{backendId:m});await c.invalidateQueries({queryKey:["backends"]}),await c.invalidateQueries({queryKey:["integrations"]}),await c.invalidateQueries({queryKey:["health"]}),await c.invalidateQueries({queryKey:["agent-actions","native_unbound"]});let t=(0,R.buildSetupModePayload)(p,f);t&&(await u.api.post("/setup/mode",t),await c.invalidateQueries({queryKey:["config"]}));let a=e?.nativeUnbound??[];if(a.length>0){let e=a.map(e=>e.key).join(", ");_(`${a.length} native integration${1===a.length?"":"s"} (${e}) were bound to a different backend and are now disabled. Re-configure them on /settings/integrations after the wizard completes.`),k(!1);return}}catch(e){C(e instanceof u.ApiError||e instanceof Error?e.message:"Failed to apply default presets"),k(!1);return}e()}}return(0,t.jsxs)(b,{title:"AI Backend",description:"Aitne thinks through Claude Code, Codex, or Gemini. Pick which CLI runs the bulk of the work — non-main backends and per-process overrides can be assigned later from Settings → Models.",onNext:e,hideNav:!0,maxWidth:"max-w-4xl",children:[(0,t.jsx)(V.SubscriptionAuthWarning,{}),(0,t.jsxs)("div",{className:"space-y-4",children:[L.map(e=>{let a=n?.backends.find(t=>t.id===e),s=F(e);return(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(B.BackendCard,{backendId:e,mode:"wizard",isMain:m===e,authStatus:a?.authStatus??"unknown",authStatusDetail:a?.authDetail??null,authFirstExpiredAt:a?.authFirstExpiredAt??null,authLastSuccessAt:a?.authLastSuccessAt??null,authNotificationCount:a?.authNotificationCount??0,cliInstalled:a?.cliInstalled??!0,enabled:a?.enabled??!0,webSearchEnabled:a?.webSearchEnabled??!1,webSearchSupported:a?.webSearchSupported??!1,permissionMode:null,controlsDisabled:s,disabledReason:s?E.UI_PREVIEW_ONLY_REASON:void 0,installCheck:P[e],onCliInstalled:()=>{d()},onVerifyInstall:()=>{z(e)}}),!s&&(0,t.jsx)(D.BackendApiKeyPanel,{backendId:e})]},e)}),(0,t.jsxs)("div",{className:"rounded-lg border border-border bg-muted/30 p-4",children:[(0,t.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:"Main backend"}),(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:"Runs routines, owner DMs, and any process you don’t bind to a different backend in Settings → Models."}),(0,t.jsx)("div",{className:"mt-3 flex flex-wrap gap-3",children:L.map(e=>{let a=m===e,s=F(e);return(0,t.jsxs)("label",{className:`flex flex-1 min-w-[180px] items-start gap-2 rounded-md border px-3 py-2 text-sm transition-colors ${a?"border-primary bg-primary/10":s?"border-border bg-muted/40 text-muted-foreground":"border-border hover:border-foreground/30"}`,children:[(0,t.jsx)("input",{type:"radio",name:"main-backend",className:"mt-1",checked:a,disabled:s,onChange:()=>I(e)}),(0,t.jsx)("span",{className:"font-medium",children:E.BACKEND_PROVIDER_SHORT[e]})]},e)})})]})]}),(0,t.jsx)(K,{topMode:p,overrides:f,advancedOpen:j,onTopModeChange:g,onOverridesChange:y,onAdvancedOpenChange:v}),w&&(0,t.jsx)("p",{className:"text-sm text-destructive text-center",children:w}),S&&(0,t.jsx)("p",{className:"rounded-md border border-amber-300/60 bg-amber-50/60 px-3 py-2 text-xs text-amber-900 dark:border-amber-700/50 dark:bg-amber-950/30 dark:text-amber-100",role:"status",children:S}),(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3 pt-2",children:[s?(0,t.jsxs)(o.Button,{variant:"ghost",onClick:s,className:"gap-2",children:[(0,t.jsx)(r.ArrowLeft,{className:"h-4 w-4"}),"Back"]}):(0,t.jsx)("div",{}),(0,t.jsx)(o.Button,{onClick:()=>void Q(),disabled:!U||N,children:N?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(i.Loader2,{className:"mr-2 h-4 w-4 animate-spin"}),"Applying defaults…"]}):S?(0,t.jsxs)(t.Fragment,{children:["Acknowledge & continue ",(0,t.jsx)(l.ArrowRight,{className:"ml-2 h-4 w-4"})]}):(0,t.jsxs)(t.Fragment,{children:["Next ",(0,t.jsx)(l.ArrowRight,{className:"ml-2 h-4 w-4"})]})})]})]})}function K({topMode:e,overrides:a,advancedOpen:s,onTopModeChange:n,onOverridesChange:r,onAdvancedOpenChange:l}){let i=(0,R.hasDivergentOverride)(e,a);return(0,t.jsxs)("div",{className:"rounded-lg border border-border bg-muted/30 p-4 space-y-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:"Execution permissions"}),(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:"How strictly the daemon should gate the agent’s shell, file, and tool calls. The absolute-block layer (recursive deletes, privilege escalation, secret-file reads) stays on in both modes."})]}),(0,t.jsxs)("div",{className:"grid gap-2 sm:grid-cols-2",children:[(0,t.jsx)(z,{icon:(0,t.jsx)(_.ShieldCheck,{className:"h-4 w-4"}),title:"Safe",badge:"Recommended",selected:"safe"===e,onSelect:()=>n("safe"),children:"Per-tool permission checks plus the daemon’s curl/jq hooks and CLI sandboxes. Side-effectful commands need approval."}),(0,t.jsx)(z,{icon:(0,t.jsx)(P.Unlock,{className:"h-4 w-4"}),title:"Allow",selected:"allow"===e,onSelect:()=>n("allow"),children:"Skips per-tool checks and the CLI sandboxes. Faster, but only the absolute-block layer stops the agent."})]}),(0,t.jsxs)(I.Collapsible,{open:s,onOpenChange:l,children:[(0,t.jsx)(I.CollapsibleTrigger,{asChild:!0,children:(0,t.jsxs)("button",{type:"button",className:"flex w-full items-center justify-between rounded-md border border-border bg-background px-3 py-2 text-left text-xs text-muted-foreground hover:bg-muted/40",children:[(0,t.jsxs)("span",{className:"flex items-center gap-2",children:[(0,t.jsx)(S.ChevronDown,{className:(0,N.cn)("h-3.5 w-3.5 transition-transform",s&&"rotate-180")}),"Per-backend overrides",i&&(0,t.jsx)("span",{className:"rounded bg-amber-500/15 px-1.5 py-0.5 text-[10px] font-medium text-amber-700 dark:text-amber-300",children:"mixed"})]}),(0,t.jsx)("span",{className:"text-[11px]",children:s?"Hide":"Show"})]})}),(0,t.jsx)(I.CollapsibleContent,{className:"mt-2 space-y-2 rounded-md border border-border bg-background p-3",children:L.map(s=>(0,t.jsx)(U,{backend:s,topMode:e,override:a[s]??null,disabled:F(s),onChange:e=>r(t=>({...t,[s]:e}))},s))})]})]})}function z({icon:e,title:a,badge:s,selected:n,onSelect:r,children:l}){return(0,t.jsxs)("button",{type:"button",onClick:r,className:(0,N.cn)("block w-full rounded-md border p-3 text-left transition-colors",n?"border-primary bg-primary/10 shadow-sm":"border-border bg-background hover:border-foreground/30"),children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-sm font-semibold text-foreground",children:[e,a,s&&(0,t.jsx)("span",{className:"rounded bg-primary/15 px-1.5 py-0.5 text-[10px] font-medium text-primary",children:s})]}),(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:l})]})}function U({backend:e,topMode:a,override:s,disabled:n=!1,onChange:r}){let l=s??a;return(0,t.jsxs)("div",{className:(0,N.cn)("rounded-md border border-border/60 px-3 py-2",n&&"opacity-60"),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,t.jsxs)("div",{className:"text-sm",children:[(0,t.jsxs)("div",{className:"font-medium text-foreground",children:[E.BACKEND_PROVIDER_LABELS[e],(0,t.jsxs)("span",{className:"ml-1 text-xs text-muted-foreground",children:["(",E.BACKEND_PROVIDER_SHORT[e],")"]}),n&&(0,t.jsx)("span",{className:"ml-2 rounded bg-muted px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground",children:"Coming soon"})]}),(0,t.jsxs)("div",{className:"text-[11px] text-muted-foreground",children:["runs as: ",l]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1 text-xs",children:[(0,t.jsx)(Q,{active:null===s,label:"Follow",disabled:n,onClick:()=>r(null)}),(0,t.jsx)(Q,{active:"safe"===s,label:"Safe",disabled:n,onClick:()=>r("safe")}),(0,t.jsx)(Q,{active:"allow"===s,label:"Allow",disabled:n,onClick:()=>r("allow")})]})]}),"codex"===e&&"allow"===l&&(0,t.jsxs)("p",{className:"mt-2 flex items-start gap-1.5 text-[11px] text-amber-700 dark:text-amber-300",children:[(0,t.jsx)(C.AlertTriangle,{className:"mt-0.5 h-3 w-3 shrink-0"}),(0,t.jsx)("span",{children:"Codex Allow runs sandbox-off; the daemon's absolute-block layer cannot intercept destructive shell commands for Codex."})]})]})}function Q({active:e,label:a,disabled:s=!1,onClick:n}){return(0,t.jsx)("button",{type:"button",onClick:n,disabled:s,className:(0,N.cn)("rounded-md border px-2 py-1 transition-colors",e?"border-primary bg-primary/10 text-foreground":"border-border text-muted-foreground hover:border-foreground/30",s&&"cursor-not-allowed opacity-60 hover:border-border"),children:a})}var q=e.i(86567),W=e.i(86704),H=e.i(29472),G=e.i(85090),$=e.i(32077),Y=e.i(75187),J=e.i(6423);function Z({onNext:e,onBack:a}){let s=(0,J.useMailAccounts)(),n=(0,J.useMailProviders)(),r=(0,Y.useHealth)(),l=s.data?.accounts??[],i=n.data?.enabledKinds??[],o=function(e){let t={gmail:[],outlook:[],yahoo:[],icloud:[]};for(let a of e)t[a.kind].push(a);return t}(l),d=r.data?.integrationModes?.gmail?.mode??"disabled";return(0,t.jsxs)(b,{title:"Mail",description:"Connect the mail accounts the agent should watch. Skip what you don't use — accounts can be added or removed later from Connections → Mail.",onNext:e,onBack:a,skipLabel:"Skip",maxWidth:"max-w-2xl",children:[(0,t.jsx)($.IntegrationCard,{integrationKey:"gmail",gmailAccountCount:o.gmail.length}),(0,t.jsx)(q.GmailCard,{accounts:o.gmail,enabledKinds:i,hideExternalGoogleLink:!0}),"direct"===d&&(0,t.jsx)(G.GoogleCard,{}),(0,t.jsx)($.IntegrationCard,{integrationKey:"outlook_mail"}),(0,t.jsx)(W.OutlookCard,{accounts:o.outlook,enabledKinds:i}),(0,t.jsx)(H.ImapCard,{kind:"yahoo",accounts:o.yahoo,enabledKinds:i}),(0,t.jsx)(H.ImapCard,{kind:"icloud",accounts:o.icloud,enabledKinds:i})]})}function X({onNext:e,onBack:a}){let s=(0,Y.useHealth)(),n=s.data?.integrationModes?.google_calendar?.mode??"disabled";return(0,t.jsx)(b,{title:"Calendar",description:"Connect the calendars the agent should track. Skip if you don't use one.",onNext:e,onBack:a,skipLabel:"Skip",nextLabel:"Continue",children:(0,t.jsxs)("div",{className:"w-full max-w-2xl mx-auto space-y-4",children:[(0,t.jsx)($.IntegrationCard,{integrationKey:"google_calendar"}),"direct"===n&&(0,t.jsx)(G.GoogleCard,{}),(0,t.jsx)($.IntegrationCard,{integrationKey:"outlook_calendar"}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground text-center",children:"Outlook Calendar reuses the OAuth grant from Outlook Mail — connecting Mail first means no second consent screen here. Apple Calendar can be added later from Connections → Calendar."})]})})}function ee({onNext:e,onBack:s}){var n,l;let d,{data:c}=(0,m.useConfig)(),h=(0,x.useQueryClient)(),[p,g]=(0,a.useState)(""),[f,y]=(0,a.useState)(!0),[N,w]=(0,a.useState)(!1),[C,S]=(0,a.useState)(null),_=(0,a.useRef)(!1);(0,a.useEffect)(()=>{!_.current&&c&&(_.current=!0,"string"==typeof c.externalObsidianVaultPath&&c.externalObsidianVaultPath.length>0&&g(c.externalObsidianVaultPath),"boolean"==typeof c.externalObsidianWatch&&y(c.externalObsidianWatch))},[c]);let P=0===p.trim().length?null:0===(d=(n={path:p,dataDir:c?.contextDir??"",primaryVaultPath:c?.primaryVaultPath??null}).path.trim()).length?"empty":(0,k.isClientAbsolutePath)(d)?n.dataDir.length>0&&(0,k.isClientPathInsideOrEqual)(n.dataDir,d)?"overlaps_data_dir":n.primaryVaultPath&&(0,k.isClientPathInsideOrEqual)(n.primaryVaultPath,d)?"overlaps_primary_vault":null:"not_absolute",A=!(l={pathIssue:P,saving:N}).saving&&(null===l.pathIssue||"empty"===l.pathIssue),I=async()=>{if(A){w(!0),S(null);try{var t;let a;await u.api.patch("/config",(a=(t={externalObsidianVaultPath:p,externalObsidianWatch:f}).externalObsidianVaultPath.trim(),{externalObsidianVaultPath:0===a.length?null:a,externalObsidianWatch:t.externalObsidianWatch})),await h.invalidateQueries({queryKey:["config"]}),e()}catch(e){if(e instanceof u.ApiError){let t=e.body;S(t?.message??e.message??"Failed to save Note settings")}else S(e instanceof Error?e.message:"Failed to save Note settings")}finally{w(!1)}}};return(0,t.jsxs)(b,{title:"Notes",description:"Where do you keep your own notes? Skip if neither applies.",onNext:e,hideNav:!0,children:[(0,t.jsxs)("div",{className:"w-full max-w-2xl mx-auto space-y-6",children:[(0,t.jsx)($.IntegrationCard,{integrationKey:"notion"}),(0,t.jsxs)("div",{className:"rounded-xl border border-border bg-card p-5 text-left space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:"Obsidian (your personal vault)"}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"Separate from the agent’s vault — point at the Obsidian vault where you keep your own notes. The agent reads from it and appends through its Obsidian skill."})]}),(0,t.jsx)(v.DirectoryPickerField,{id:"external-obsidian-vault-path",value:p,onChange:g,title:"Choose your personal Obsidian vault",placeholder:"Skip if you don't use Obsidian",disabled:N}),P&&"empty"!==P&&(0,t.jsx)("p",{className:"text-xs text-destructive",children:function(e){switch(e){case"empty":return"Pick a path or leave the field blank to skip.";case"not_absolute":return"Use an absolute path (for example `/Users/me/Vault`, `~/Vault`, or `C:\\Vault`).";case"overlaps_data_dir":return"Path overlaps the agent's data directory; choose a separate location.";case"overlaps_primary_vault":return"Path overlaps the agent's primary vault; choose a separate location."}}(P)}),(0,t.jsxs)("label",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,t.jsx)("input",{type:"checkbox",checked:f,onChange:e=>y(e.currentTarget.checked),className:"h-4 w-4 rounded border-border text-primary focus:ring-primary"}),"Watch this vault for changes"]}),(0,t.jsx)("p",{className:"text-[11px] text-muted-foreground",children:"Off keeps the vault readable through the Obsidian skill but stops the file-change observer — useful for very large vaults that emit noisy events."})]}),C&&(0,t.jsx)("p",{className:"text-sm text-red-600 dark:text-red-400 text-center",children:C})]}),(0,t.jsxs)("div",{className:"flex justify-center gap-3 pt-4",children:[s&&(0,t.jsxs)(o.Button,{variant:"ghost",onClick:s,className:"gap-2",children:[(0,t.jsx)(r.ArrowLeft,{className:"h-4 w-4"}),"Back"]}),(0,t.jsx)(o.Button,{variant:"ghost",onClick:e,children:"Skip"}),(0,t.jsx)(o.Button,{size:"lg",onClick:I,disabled:!A,className:"gap-2",children:N?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(i.Loader2,{className:"h-4 w-4 animate-spin"}),"Saving…"]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(j.FolderSymlink,{className:"h-4 w-4"}),"Continue"]})})]})]})}var et=e.i(44791),ea=e.i(66665),es=e.i(45764),en=e.i(49578),er=e.i(2126);function el({onNext:e,onBack:a}){return(0,t.jsx)(b,{title:"Messaging Channels",description:"Connect the apps you'll use to message your agent. Hook up only the ones you actually use.",onNext:e,onBack:a,skipLabel:"Skip",maxWidth:"max-w-2xl",children:(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)(et.SlackCard,{}),(0,t.jsx)(ea.TelegramCard,{}),(0,t.jsx)(es.DiscordCard,{}),(0,t.jsx)(en.WhatsAppCard,{}),(0,t.jsx)(er.DestinationSelector,{})]})})}var ei=e.i(76),eo=e.i(89480),ed=e.i(34098),ec=e.i(53756),eu=e.i(13707),em=e.i(79634),ex=e.i(21682),eh=e.i(7663),ep=e.i(58692);let eg="pa-setup-wizard-state";function ef(){try{let e=sessionStorage.getItem(eg);if(!e)return{};let t=JSON.parse(e);if(!t||"object"!=typeof t)return{};return t}catch{return{}}}function eb(e){try{let t={...ef(),...e};sessionStorage.setItem(eg,JSON.stringify(t))}catch{}}function ey(){try{sessionStorage.removeItem(eg)}catch{}}function ej({mode:e,agentDisplayName:s,onComplete:r,onBack:l,pendingVaultMode:d,pendingVaultPath:c}){let{data:h}=(0,m.useConfig)(),{messages:p,restoredMessages:g,setRestoredMessages:f,streaming:b,toolProgress:y,sessionInfo:j,sendMessage:v}=(0,ei.useChat)({disableHistory:!0}),N=(0,a.useMemo)(()=>[...g,...p],[g,p]),k=(0,x.useQueryClient)(),w=(0,a.useRef)(null),C=(0,a.useRef)(!1),S=(0,a.useRef)(!1),[_,P]=(0,a.useState)(null),[A,I]=(0,a.useState)(!1),[E,O]=(0,a.useState)(""),[D,B]=(0,a.useState)(!1),[M,V]=(0,a.useState)(!1),[R,L]=(0,a.useState)(null),[F,T]=(0,a.useState)(null),[K,z]=(0,a.useState)(0),U=(0,a.useRef)(b);(0,a.useEffect)(()=>{U.current=b},[b]);let[Q,q]=(0,a.useState)("update"===e),[W,H]=(0,a.useState)(!1),[G,$]=(0,a.useState)(null),[Y,J]=(0,a.useState)(0),[Z,X]=(0,a.useState)(""),[ee,et]=(0,a.useState)(!1),[ea,es]=(0,a.useState)(!1),en="initial"===e?(0,n.normalizeAgentDisplayName)(s):h?.agentDisplayName??n.DEFAULT_AGENT_DISPLAY_NAME;(0,a.useEffect)(()=>{if(0===N.length)return;let e=N[N.length-1];("assistant"===e.role||"error"===e.role)&&V(!1)},[N]),(0,a.useEffect)(()=>{if(!M)return;let e=setTimeout(()=>V(!1),12e4);return()=>clearTimeout(e)},[M]);let er=M||b;(0,a.useEffect)(()=>{let e=w.current;e&&(e.scrollTop=e.scrollHeight)},[N.length,y]),(0,a.useEffect)(()=>{var t;if("initial"!==e||Q||S.current||G||!h)return;let a=function(e){if("plain"===e.pendingMode)return"obsidian"===e.currentMode?{kind:"migrate",mode:"plain",path:""}:{kind:"no_migration_needed"};let t=e.pendingPath.trim();return 0===t.length?{kind:"no_migration_needed"}:"obsidian"!==e.currentMode||e.currentPath!==t?{kind:"migrate",mode:"obsidian",path:t}:{kind:"no_migration_needed"}}({pendingMode:d??"plain",pendingPath:c??"",currentMode:"obsidian"===h.vaultMode?"obsidian":"plain",currentPath:h.primaryVaultPath??null});"no_migration_needed"===a.kind?q(!0):(S.current=!0,H(!0),$(null),u.api.post("/setup/migrate-context","plain"===(t={vaultMode:a.mode,primaryVaultPath:a.path}).vaultMode?{targetVaultMode:"plain",conflictPolicy:"abort"}:{targetVaultMode:"obsidian",targetVaultPath:t.primaryVaultPath.trim(),conflictPolicy:"abort"}).then(async()=>{await k.invalidateQueries({queryKey:["config"]}),await k.invalidateQueries({queryKey:["health"]}),q(!0)}).catch(e=>{e instanceof u.ApiError?$(e.body??{}):$({error:"internal_error",message:e instanceof Error?e.message:"Unexpected error."})}).finally(()=>{S.current=!1,H(!1)}))},[e,Q,G,h,d,c,k,Y]),(0,a.useEffect)(()=>{if(C.current||!j?.channelId||!Q)return;let t=ef(),a=t.setupSessionMode===e&&"number"==typeof t.setupSessionId&&t.setupSessionId>0&&j.sessionId===t.setupSessionId?t.setupSessionId:null;if(null!==a){C.current=!0,(0,ei.fetchSessionMessages)(a).then(e=>{f(e)}).catch(e=>{console.warn("[setup] failed to refetch resumed session history",e)});return}C.current=!0,L(null),V(!0),u.api.post("/setup/start",{channelId:j.channelId,mode:e,..."initial"===e?{agentDisplayName:en}:{}}).catch(e=>{C.current=!1,L(e instanceof Error?e.message:"Failed to start setup"),V(!1)})},[j?.channelId,j?.sessionId,e,en,K,Q,f]),(0,a.useEffect)(()=>{"number"==typeof j?.sessionId&&eb({setupSessionId:j.sessionId,setupSessionMode:e})},[e,j?.sessionId]),(0,a.useEffect)(()=>{for(let e=N.length-1;e>=0;e--){let t=N[e];if("assistant"!==t.role)continue;let a=function(e){let t=e.match(/```management-rules\n([\s\S]*?)```/);return t?t[1].trim():null}(t.content);a&&(P(a),A||O(a));let s=function(e){let t=e.match(/```character\n([\s\S]*?)```/);return t?t[1].trim():null}(t.content);if(null===s||ea||(X(s),et(!0)),a||null!==s)break}},[N,A,ea]),(0,a.useEffect)(()=>{_&&!ee&&(X(h?.character??""),et(!0))},[_,ee,h?.character]);let el=(0,a.useCallback)(async()=>{let t=A?E:_;if(!t)return;let a=Z.trim();if((0,ep.isCharacterOverCap)(a))return void T("Character exceeds the 1000-character cap.");B(!0),T(null);try{let s=Date.now()+15e3;for(;U.current&&Date.now()<s;)await new Promise(e=>setTimeout(e,100));let n=h?.character??"";ee&&a!==n&&await u.api.patch("/config",{character:a}),await u.api.post("/setup/save-rules",{content:t,..."initial"===e?{agentDisplayName:en}:{},..."number"==typeof j?.sessionId?{sessionId:j.sessionId}:{}}),k.setQueryData(["setup-status"],{needsSetup:!1,completedAt:new Date().toISOString()}),k.invalidateQueries({queryKey:["config"]}),k.invalidateQueries({queryKey:["health"]}),ey(),r()}catch(e){T(e instanceof Error?e.message:"Failed to save rules")}finally{B(!1)}},[A,E,_,Z,ee,h?.character,k,r,e,en,j?.sessionId]),eg=(0,a.useCallback)(e=>{v(e),V(!0)},[v]),ev=(0,a.useCallback)(e=>{v(e),V(!0)},[v]),eN=[...N].reverse().find(e=>"assistant"===e.role),ek=eN&&!er?function(e){let t=[];for(let a of e.split("\n")){let e=a.match(/^- \*\*(.+?)\*\*/);e&&t.push(e[1])}return t.length>=2&&t.length<=8?t:[]}(eN.content):[];return(0,t.jsxs)("div",{className:"mx-auto flex h-full w-full max-w-4xl flex-col",children:[(0,t.jsxs)("div",{className:"space-y-1 px-4 pt-4 text-center",children:[(0,t.jsx)("h2",{className:"text-xl font-semibold",children:"initial"===e?"Customize Your Rules":"Update Management Rules"}),(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"initial"===e?"Chat with the agent — it will draft the management rules it follows on every task from your answers.":"Review the current rules and tell the agent what to change."})]}),W&&(0,t.jsx)(em.Alert,{className:"mx-4 mt-4 rounded-lg px-4 py-3 text-sm",children:(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)(i.Loader2,{className:"h-4 w-4 animate-spin"}),(0,t.jsx)("span",{children:"Setting up your vault…"})]})}),G&&!W&&(0,t.jsx)(em.Alert,{variant:"error",className:"mx-4 mt-4 rounded-lg px-4 py-3 text-sm",children:(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3 w-full",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"font-medium",children:"Could not set up your vault"}),(0,t.jsx)("p",{className:"mt-0.5",children:G.message})]}),(0,t.jsxs)("div",{className:"flex shrink-0 gap-2",children:[l&&(0,t.jsx)(o.Button,{size:"sm",variant:"ghost",onClick:l,children:"Back"}),(0,t.jsx)(o.Button,{size:"sm",variant:"outline",onClick:()=>{$(null),J(e=>e+1)},children:"Retry"})]})]})}),R&&(0,t.jsx)(em.Alert,{variant:"error",className:"mx-4 mt-4 rounded-lg px-4 py-3 text-sm",children:(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3 w-full",children:[(0,t.jsx)("span",{children:R}),(0,t.jsx)(o.Button,{size:"sm",variant:"outline",onClick:()=>z(e=>e+1),children:"Retry"})]})}),(0,t.jsx)(eu.ScrollArea,{ref:w,className:"flex-1 px-4 py-4",children:(0,t.jsxs)("div",{className:"space-y-4",children:[N.map(e=>(0,t.jsx)(eo.MessageBubble,{message:"assistant"===e.role?{...e,content:e.content.replace(/```management-rules\n[\s\S]*?```/g,"_(management rules preview shown below ↓)_").replace(/```character\n[\s\S]*?```/g,"_(character preview shown below ↓)_").trim()}:e,assistantLabel:en},e.id)),(0,t.jsx)(ed.ToolProgress,{items:y}),er&&(0,t.jsx)("div",{className:"flex justify-start",children:(0,t.jsx)("span",{className:"inline-block h-5 w-1 animate-pulse rounded-full bg-foreground"})}),0===N.length&&!er&&!R&&!W&&!G&&(0,t.jsx)("div",{className:"flex flex-col items-center justify-center py-16 text-muted-foreground",children:(0,t.jsx)("p",{className:"text-sm",children:"Preparing setup..."})})]})}),ek.length>0&&!_&&(0,t.jsx)("div",{className:"flex flex-wrap gap-2 border-t border-border bg-muted/30 px-4 py-3",children:ek.map(e=>(0,t.jsx)(o.Button,{size:"sm",variant:"outline",onClick:()=>eg(e),disabled:er,className:"text-xs",children:e},e))}),_&&(0,t.jsxs)("div",{className:"border-t border-border bg-muted/30 px-4 py-4 space-y-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("h3",{className:"text-sm font-medium",children:"Management Rules Preview"}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[er&&!D&&(0,t.jsxs)("span",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[(0,t.jsx)(i.Loader2,{className:"h-3 w-3 animate-spin"}),"Finalizing your profile…"]}),(0,t.jsxs)(o.Button,{size:"sm",variant:"ghost",onClick:()=>{A&&O(_),I(!A)},className:"gap-1 text-xs",children:[(0,t.jsx)(ex.Pencil,{className:"h-3 w-3"}),A?"Cancel":"Edit"]}),(0,t.jsx)(o.Button,{size:"sm",onClick:el,disabled:D||(0,ep.isCharacterOverCap)(Z),className:"gap-1",children:D?"Saving...":(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(eh.Save,{className:"h-3.5 w-3.5"}),"Save & Finish"]})})]})]}),F&&(0,t.jsx)(em.Alert,{variant:"error",children:F}),A?(0,t.jsx)("textarea",{value:E,onChange:e=>O(e.target.value),className:"w-full rounded-md border border-input bg-background p-3 font-mono text-xs leading-relaxed focus:outline-none focus:ring-2 focus:ring-ring",rows:16}):(0,t.jsx)("pre",{className:"max-h-96 overflow-auto rounded-md border border-border bg-background p-3 text-xs leading-relaxed",children:_}),(0,t.jsxs)("div",{className:"space-y-2 border-t border-border/60 pt-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-sm font-medium",children:"Character"}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"Tone, formality, and verbal habits the agent should keep across every session and backend. Leave blank to skip."})]}),(0,t.jsx)(ep.CharacterEditor,{value:Z,onChange:e=>{X(e),es(!0),ee||et(!0)},disabled:D,rows:4})]})]}),!D&&(0,t.jsx)(ec.ChatInput,{onSend:ev,disabled:er||0===N.length})]})}var ev=e.i(59546),eN=e.i(29086);function ek({mode:e,agentDisplayName:a}){let n=(0,s.useRouter)();return(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center gap-8 py-16 text-center",children:[(0,t.jsx)("div",{className:"rounded-full bg-emerald-100 p-6 dark:bg-emerald-950",children:(0,t.jsx)(ev.CheckCircle2,{className:"h-12 w-12 text-emerald-600 dark:text-emerald-400"})}),(0,t.jsxs)("div",{className:"max-w-md space-y-3",children:[(0,t.jsx)("h1",{className:"text-2xl font-bold text-foreground",children:"initial"===e?"Setup Complete":"Rules Updated"}),(0,t.jsx)("p",{className:"text-muted-foreground",children:"initial"===e?`${a} is ready. It will start watching the channels you connected and reach out as new context arrives.`:"Management Rules have been updated. Changes take effect immediately."})]}),(0,t.jsxs)("div",{className:"flex gap-3",children:[(0,t.jsxs)(o.Button,{variant:"outline",onClick:()=>n.push("/memory"),className:"gap-2",children:[(0,t.jsx)(eN.FileText,{className:"h-4 w-4"}),"View Management Rules"]}),(0,t.jsxs)(o.Button,{onClick:()=>n.push("/"),className:"gap-2",children:["Go to Overview",(0,t.jsx)(l.ArrowRight,{className:"h-4 w-4"})]})]})]})}let ew=["basics","vault","backend","mail","calendar","note","messaging","rules","complete"],eC={basics:"Basics",vault:"Vault",backend:"AI Backend",mail:"Mail",calendar:"Calendar",note:"Notes",messaging:"Messaging",rules:"Rules",complete:"Done"};function eS(){var e;let r="update"===(0,s.useSearchParams)().get("mode")?"update":"initial",{data:l}=(0,m.useConfig)(),[i,o]=(0,a.useState)(()=>"update"===r?"rules":ef().step??"basics"),[d,c]=(0,a.useState)(()=>"update"===r?n.DEFAULT_AGENT_DISPLAY_NAME:ef().agentDisplayName??""),[u,x]=(0,a.useState)(()=>"initial"===r?ef().modeOverride??null:null),h=(e=l?.vaultMode,null!==u?u:"obsidian"===e?"obsidian":"plain"),[p,g]=(0,a.useState)(()=>"initial"===r?ef().pendingVaultPath??"":"");(0,a.useEffect)(()=>{"update"!==r&&eb({step:i,agentDisplayName:d,modeOverride:u,pendingVaultPath:p||null})},[r,i,d,u,p]),(0,a.useEffect)(()=>{"complete"===i&&ey()},[i]);let f=(0,a.useRef)(null);(0,a.useEffect)(()=>{f.current?.scrollTo(0,0)},[i]);let b=(0,a.useMemo)(()=>(function(e=ew){return[...e]})(),[]),j=()=>{let e=b.indexOf(i);e<b.length-1&&o(b[e+1])},v=b.indexOf(i),k="initial"===r&&v>0&&"complete"!==i?()=>o(b[v-1]):void 0;return(0,t.jsxs)("div",{className:"flex h-full flex-col",children:["initial"===r&&"complete"!==i&&(0,t.jsx)("div",{className:"flex items-center justify-center gap-1 border-b border-border bg-muted/30 px-4 py-3",children:b.filter(e=>"complete"!==e).map((e,a)=>{let s=b.indexOf(e),n=e===i,r=s<v;return(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[a>0&&(0,t.jsx)("div",{className:(0,N.cn)("h-px w-6",r?"bg-primary":"bg-border")}),(0,t.jsxs)("div",{className:(0,N.cn)("flex items-center gap-1.5 rounded-full px-3 py-1 text-xs font-medium transition-colors",n?"bg-primary text-primary-foreground":r?"bg-primary/10 text-primary":"text-muted-foreground"),children:[(0,t.jsx)("span",{className:(0,N.cn)("flex h-5 w-5 items-center justify-center rounded-full text-[10px]",n?"bg-primary-foreground/20":r?"bg-primary/20":"bg-muted"),children:r?"✓":a+1}),eC[e]]})]},e)})}),(0,t.jsxs)("div",{ref:f,className:"flex-1 overflow-y-auto",children:["basics"===i&&(0,t.jsx)(y,{agentDisplayName:d,onAgentDisplayNameChange:c,onNext:j}),"vault"===i&&(0,t.jsx)(w,{onNext:j,onBack:k,pendingVaultMode:h,onPendingVaultModeChange:e=>{x(e)},pendingVaultPath:p,onPendingVaultPathChange:g}),"backend"===i&&(0,t.jsx)(T,{onNext:j,onBack:k}),"mail"===i&&(0,t.jsx)(Z,{onNext:j,onBack:k}),"calendar"===i&&(0,t.jsx)(X,{onNext:j,onBack:k}),"note"===i&&(0,t.jsx)(ee,{onNext:j,onBack:k}),"messaging"===i&&(0,t.jsx)(el,{onNext:j,onBack:k}),"rules"===i&&(0,t.jsx)(ej,{mode:r,agentDisplayName:d,onComplete:()=>o("complete"),onBack:k,pendingVaultMode:h,pendingVaultPath:p}),"complete"===i&&(0,t.jsx)(ek,{mode:r,agentDisplayName:d||n.DEFAULT_AGENT_DISPLAY_NAME})]})]})}e.s(["default",0,function(){return(0,t.jsx)(a.Suspense,{children:(0,t.jsx)(eS,{})})}],35734)}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,2050,e=>{"use strict";var t=e.i(54710),s=e.i(34416),a=e.i(71060),r=e.i(26406),n=e.i(39982),i=e.i(60168),l=e.i(7663),d=e.i(90925),o=e.i(49058),c=e.i(65268),u=e.i(57415),m=e.i(14260),x=e.i(95486);let h=["sot-bindings"];var p=e.i(20014),g=e.i(74490),y=e.i(8652),f=e.i(10427),j=e.i(79634),N=e.i(49785);let b=[{value:"agent",label:"agent"},{value:"shared",label:"shared"},{value:"user",label:"user"}];function v(e){let t=e.trim();return""===t?null:t}function k(e,t){if(e.length!==t.length)return!1;for(let s=0;s<e.length;s++){let a=e[s],r=t[s];if(a.category!==r.category||a.sotApp!==r.sotApp||a.mirrorPath!==r.mirrorPath||a.policy!==r.policy||a.writer!==r.writer)return!1}return!0}function S(){let e,a=(0,m.useQuery)({queryKey:h,queryFn:()=>c.api.get("/sot-bindings"),staleTime:3e4}),r=(e=(0,x.useQueryClient)(),(0,u.useMutation)({mutationFn:e=>c.api.put("/sot-bindings",e),onSuccess:()=>{e.invalidateQueries({queryKey:h}),e.invalidateQueries({queryKey:["management-history"]})}})),[n,S]=(0,s.useState)([]),[w,T]=(0,s.useState)([]),[_,C]=(0,s.useState)(null),[A,M]=(0,s.useState)(null);(0,s.useEffect)(()=>{if(a.data&&!r.isPending){let e=a.data.items;S(t=>k(t,w)?e:t),T(e)}},[a.data,r.isPending]);let R=(0,s.useMemo)(()=>!k(n,w),[n,w]),O=(0,s.useMemo)(()=>(function(e){let t=new Set;for(let s=0;s<e.length;s++){let a=e[s];if(!a.category.trim())return{ok:!1,reason:`Row ${s+1}: Category is required`};if(!a.sotApp.trim())return{ok:!1,reason:`Row ${s+1}: SoT app is required`};let r=a.category.trim().toLowerCase();if(t.has(r))return{ok:!1,reason:`Duplicate category "${a.category}"`};t.add(r)}return{ok:!0}})(n),[n]),P=(e,t)=>{S(s=>s.map((s,a)=>a===e?{...s,...t}:s)),C(null)},E=async()=>{if(!O.ok)return void C(O.reason);C(null);try{let e=n.map(e=>({category:e.category.trim(),sotApp:e.sotApp.trim(),mirrorPath:e.mirrorPath,policy:e.policy,writer:e.writer})),t=await r.mutateAsync(e);T(t.items),S(t.items),M("Saved."),window.setTimeout(()=>M(null),2500)}catch(e){C(e instanceof c.ApiError||e instanceof Error?e.message:"save failed")}};return(0,t.jsxs)(g.Card,{className:"space-y-4",children:[(0,t.jsxs)(g.CardHeader,{className:"p-0",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(g.CardTitle,{className:"text-base",children:"A. Source-of-Truth bindings"}),(0,t.jsxs)("p",{className:"mt-1 text-xs text-muted-foreground max-w-prose",children:["Where the canonical data lives for each category. Renders Section A of ",(0,t.jsx)("code",{children:"policies/management.md"}),"; injected into every agent session so reactive flows know what to read or write."]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)(p.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>{S(w),C(null)},disabled:!R||r.isPending,children:[(0,t.jsx)(o.Undo2,{className:"mr-1.5 h-3.5 w-3.5"}),"Discard"]}),(0,t.jsxs)(p.Button,{type:"button",size:"sm",onClick:E,disabled:!R||r.isPending||!O.ok,children:[(0,t.jsx)(l.Save,{className:"mr-1.5 h-3.5 w-3.5"}),r.isPending?"Saving…":"Save"]})]})]}),(0,t.jsx)(N.QueryResult,{isLoading:a.isLoading,isError:a.isError,error:a.error,onRetry:()=>a.refetch(),skeleton:(0,t.jsx)(N.TableSkeleton,{rows:3}),children:(0,t.jsxs)("div",{className:"space-y-2",children:[0===n.length?(0,t.jsx)("p",{className:"rounded-md border border-dashed border-border p-4 text-center text-xs text-muted-foreground",children:"No bindings yet. Add one to declare where a category’s source of truth lives."}):(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:"w-full border-collapse text-sm",children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{className:"border-b border-border text-left text-[11px] uppercase tracking-wide text-muted-foreground",children:[(0,t.jsx)("th",{className:"px-2 py-2 font-medium",children:"Category"}),(0,t.jsx)("th",{className:"px-2 py-2 font-medium",children:"SoT app"}),(0,t.jsx)("th",{className:"px-2 py-2 font-medium",children:"Mirror path"}),(0,t.jsx)("th",{className:"px-2 py-2 font-medium",children:"Policy"}),(0,t.jsx)("th",{className:"px-2 py-2 font-medium",children:"Writer"}),(0,t.jsx)("th",{className:"w-10 px-2 py-2"})]})}),(0,t.jsx)("tbody",{children:n.map((e,s)=>(0,t.jsxs)("tr",{className:"border-b border-border/40 align-top",children:[(0,t.jsx)("td",{className:"px-1 py-1.5",children:(0,t.jsx)(y.Input,{value:e.category,onChange:e=>P(s,{category:e.target.value}),placeholder:"tasks",maxLength:64})}),(0,t.jsx)("td",{className:"px-1 py-1.5",children:(0,t.jsx)(y.Input,{value:e.sotApp,onChange:e=>P(s,{sotApp:e.target.value}),placeholder:"notion",maxLength:64})}),(0,t.jsx)("td",{className:"px-1 py-1.5",children:(0,t.jsx)(y.Input,{value:e.mirrorPath??"",onChange:e=>P(s,{mirrorPath:v(e.target.value)}),placeholder:"context/work/tasks-index.md",maxLength:255})}),(0,t.jsx)("td",{className:"px-1 py-1.5",children:(0,t.jsx)(y.Input,{value:e.policy??"",onChange:e=>P(s,{policy:v(e.target.value)}),placeholder:"—",maxLength:200})}),(0,t.jsx)("td",{className:"px-1 py-1.5",children:(0,t.jsxs)(f.Select,{value:e.writer,onValueChange:e=>P(s,{writer:e}),children:[(0,t.jsx)(f.SelectTrigger,{className:"h-8 text-xs",children:(0,t.jsx)(f.SelectValue,{})}),(0,t.jsx)(f.SelectContent,{children:b.map(e=>(0,t.jsx)(f.SelectItem,{value:e.value,children:e.label},e.value))})]})}),(0,t.jsx)("td",{className:"px-1 py-1.5",children:(0,t.jsx)(p.Button,{type:"button",variant:"ghost",size:"icon","aria-label":`Remove row ${s+1}`,onClick:()=>{S(e=>e.filter((e,t)=>t!==s)),C(null)},className:"h-8 w-8",children:(0,t.jsx)(d.Trash2,{className:"h-3.5 w-3.5"})})})]},s))})]})}),(0,t.jsxs)(p.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>{S(e=>[...e,{category:"",sotApp:"",mirrorPath:null,policy:null,writer:"shared"}]),C(null)},disabled:r.isPending,children:[(0,t.jsx)(i.Plus,{className:"mr-1.5 h-3.5 w-3.5"}),"Add binding"]})]})}),_&&(0,t.jsx)(j.Alert,{variant:"error",className:"text-xs",children:_}),A&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:A})]})}var w=e.i(81187),T=e.i(59546),_=e.i(31501),C=e.i(90780);let A=(0,e.i(77379).default)("CirclePlay",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polygon",{points:"10 8 16 12 10 16 10 8",key:"1cimsy"}]]);var M=e.i(75750);e.i(18446);var R=e.i(54530),O=e.i(26928),P=e.i(90826),E=e.i(48467),L=e.i(43477),$=e.i(50862),B=e.i(81471);let I=["daily","weekly","monthly"],z=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];function F(e,t){if(e===t)return!0;if(!e||!t||e.frequency!==t.frequency||(e.time??null)!==(t.time??null)||(e.timezone??null)!==(t.timezone??null))return!1;let s=(e.daysOfWeek??[]).slice().sort((e,t)=>e-t),a=(t.daysOfWeek??[]).slice().sort((e,t)=>e-t);if(s.length!==a.length)return!1;for(let e=0;e<s.length;e++)if(s[e]!==a[e])return!1;let r=(e.daysOfMonth??[]).slice().sort((e,t)=>e-t),n=(t.daysOfMonth??[]).slice().sort((e,t)=>e-t);if(r.length!==n.length)return!1;for(let e=0;e<r.length;e++)if(r[e]!==n[e])return!1;return!0}function q(e){return e instanceof c.ApiError||e instanceof Error?e.message:"operation failed"}let W=Array.from({length:31},(e,t)=>t+1);function H({rule:e,onChange:s,errors:a}){return(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("label",{className:"text-[11px] font-medium text-muted-foreground",children:"Frequency"}),(0,t.jsxs)(f.Select,{value:e.frequency,onValueChange:t=>{let a;return s((a={frequency:t,time:e.time??"00:00",...e.timezone?{timezone:e.timezone}:{}},"weekly"===t&&(a.daysOfWeek=e.daysOfWeek??[]),"monthly"===t&&(a.daysOfMonth=e.daysOfMonth??[]),a))},children:[(0,t.jsx)(f.SelectTrigger,{className:"h-8 text-xs",children:(0,t.jsx)(f.SelectValue,{})}),(0,t.jsx)(f.SelectContent,{children:I.map(e=>(0,t.jsx)(f.SelectItem,{value:e,children:e},e))})]})]}),(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("label",{className:"text-[11px] font-medium text-muted-foreground",htmlFor:"recurrence-time",children:"Time of day"}),(0,t.jsx)(y.Input,{id:"recurrence-time",type:"time",value:e.time,onChange:t=>s({...e,time:t.target.value}),className:"h-8 text-xs"}),a?.time&&(0,t.jsx)("p",{className:"text-[11px] text-destructive",children:a.time})]})]}),"weekly"===e.frequency&&(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)("label",{className:"text-[11px] font-medium text-muted-foreground",children:"Days of week"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:z.map((a,r)=>{let n=(e.daysOfWeek??[]).includes(r);return(0,t.jsx)(p.Button,{type:"button",size:"sm",variant:n?"default":"outline",onClick:()=>s(function(e,t){if("weekly"!==e.frequency)return e;let s=new Set(e.daysOfWeek??[]);return s.has(t)?s.delete(t):s.add(t),{...e,daysOfWeek:Array.from(s).sort((e,t)=>e-t)}}(e,r)),"aria-pressed":n,className:"h-7 px-2 text-xs",children:a},a)})}),a?.daysOfWeek&&(0,t.jsx)("p",{className:"text-[11px] text-destructive",children:a.daysOfWeek})]}),"monthly"===e.frequency&&(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)("label",{className:"text-[11px] font-medium text-muted-foreground",children:"Days of month"}),(0,t.jsx)("div",{className:"grid grid-cols-7 gap-1 sm:grid-cols-10",children:W.map(a=>{let r=(e.daysOfMonth??[]).includes(a);return(0,t.jsx)("button",{type:"button",onClick:()=>s(function(e,t){if("monthly"!==e.frequency)return e;let s=new Set(e.daysOfMonth??[]);return s.has(t)?s.delete(t):s.add(t),{...e,daysOfMonth:Array.from(s).sort((e,t)=>e-t)}}(e,a)),"aria-pressed":r,className:(0,B.cn)("h-7 rounded-md border text-[11px] tabular-nums transition-colors",r?"border-primary bg-primary text-primary-foreground":"border-input bg-background hover:bg-muted"),children:a},a)})}),(0,t.jsx)("p",{className:"text-[10px] text-muted-foreground",children:"29-31 clamp to the last day on shorter months."}),a?.daysOfMonth&&(0,t.jsx)("p",{className:"text-[11px] text-destructive",children:a.daysOfMonth})]}),e.timezone&&(0,t.jsxs)("p",{className:"text-[10px] text-muted-foreground",children:["Timezone: ",(0,t.jsx)("code",{children:e.timezone})]})]})}function D({task:e,threshold:s}){return e.consecutive_failures>=s?(0,t.jsxs)(E.Badge,{variant:"red",className:"gap-1",children:[(0,t.jsx)(M.XCircle,{className:"h-3 w-3"}),e.consecutive_failures,"× failing"]}):e.consecutive_failures>0?(0,t.jsxs)(E.Badge,{variant:"amber",className:"gap-1",children:[(0,t.jsx)(w.AlertTriangle,{className:"h-3 w-3"}),e.consecutive_failures,"× recently failed"]}):e.last_run_at?(0,t.jsxs)(E.Badge,{variant:"green",className:"gap-1",children:[(0,t.jsx)(T.CheckCircle2,{className:"h-3 w-3"}),"ok"]}):(0,t.jsxs)(E.Badge,{variant:"gray",className:"gap-1",children:[(0,t.jsx)(_.Clock,{className:"h-3 w-3"}),"not yet run"]})}function V({failureThreshold:e=R.MANAGEMENT_FAILURE_NOTIFY_THRESHOLD_DEFAULT}){let a=(0,O.useManagedTasks)(),[r,n]=(0,s.useState)(null),i=a.data?.count??0,l=i>=R.MANAGEMENT_ACTIVE_TASKS_SOFT_WARNING;return(0,t.jsxs)(g.Card,{className:"space-y-4",children:[(0,t.jsxs)(g.CardHeader,{className:"p-0",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(g.CardTitle,{className:"text-base",children:"B. Managed tasks"}),(0,t.jsxs)("p",{className:"mt-1 text-xs text-muted-foreground max-w-prose",children:["Recurring read-only fetches the agent runs against external apps. New tasks are registered through DM (e.g."," ",(0,t.jsx)("code",{children:"“Check Zoom daily at 10 AM”"}),") so the",(0,t.jsx)("code",{className:"ml-0.5",children:"management-task-register"})," skill can run dedup and a live connector probe before commit."]})]}),(0,t.jsx)("div",{className:l?"text-xs font-medium text-amber-600":"text-xs text-muted-foreground",title:l?`≥ ${R.MANAGEMENT_ACTIVE_TASKS_SOFT_WARNING} active tasks — rendered management.md may approach the 32 KB policy-files cap.`:void 0,children:a.data?`${i} active`:""})]}),(0,t.jsx)(N.QueryResult,{isLoading:a.isLoading,isError:a.isError,error:a.error,onRetry:()=>a.refetch(),skeleton:(0,t.jsx)(N.TableSkeleton,{rows:3}),children:a.data&&0!==a.data.items.length?(0,t.jsx)(U,{items:a.data.items,failureThreshold:e,onEdit:n}):(0,t.jsx)($.EmptyState,{icon:_.Clock,title:"No managed tasks yet",description:'Send the agent a DM like "Check Zoom daily at 10 AM" to register one.'})}),(0,t.jsx)(K,{task:r,onClose:()=>n(null)})]})}function U({items:e,failureThreshold:a,onEdit:r}){let n=(0,O.useRunManagedTaskNow)(),i=(0,O.useDeleteManagedTask)(),l=(0,P.useConfirm)(),[o,c]=(0,s.useState)(null),[u,m]=(0,s.useState)(null),x=async e=>{c(null),m(e.id);try{await n.mutateAsync({id:e.id,reason:"dashboard"})}catch(e){c(q(e))}finally{m(null)}},h=async e=>{if(await l({title:`Stop ${e.id}?`,description:"Hard-deletes the row and the underlying recurring schedule. The history stays in agent_actions and can be reviewed under History. Type the id to confirm.",requireText:e.id,confirmLabel:"Stop",cancelLabel:"Cancel",variant:"destructive"})){c(null),m(e.id);try{await i.mutateAsync(e.id)}catch(e){c(q(e))}finally{m(null)}}};return(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:"w-full border-collapse text-sm",children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{className:"border-b border-border text-left text-[11px] uppercase tracking-wide text-muted-foreground",children:[(0,t.jsx)("th",{className:"px-2 py-2 font-medium",children:"ID"}),(0,t.jsx)("th",{className:"px-2 py-2 font-medium",children:"Intent"}),(0,t.jsx)("th",{className:"px-2 py-2 font-medium",children:"App"}),(0,t.jsx)("th",{className:"px-2 py-2 font-medium",children:"Cadence"}),(0,t.jsx)("th",{className:"px-2 py-2 font-medium",children:"Output path"}),(0,t.jsx)("th",{className:"px-2 py-2 font-medium",children:"Last run"}),(0,t.jsx)("th",{className:"px-2 py-2 font-medium",children:"Status"}),(0,t.jsx)("th",{className:"w-32 px-2 py-2"})]})}),(0,t.jsx)("tbody",{children:e.map(e=>(0,t.jsxs)("tr",{className:"border-b border-border/40 align-top text-xs",children:[(0,t.jsx)("td",{className:"px-2 py-2 font-mono text-[11px]",children:e.id}),(0,t.jsx)("td",{className:"px-2 py-2",children:e.intent}),(0,t.jsx)("td",{className:"px-2 py-2",children:e.app}),(0,t.jsx)("td",{className:"px-2 py-2 text-muted-foreground",children:e.cadence}),(0,t.jsx)("td",{className:"px-2 py-2 font-mono text-[11px]",children:e.output_path??(0,t.jsx)("span",{className:"text-muted-foreground/60",children:"—"})}),(0,t.jsx)("td",{className:"px-2 py-2 text-muted-foreground",children:e.last_run_at?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{title:(0,B.formatAbsoluteTime)(e.last_run_at),children:(0,B.formatRelativeTime)(e.last_run_at)}),e.last_result&&(0,t.jsx)("span",{className:"block text-[11px] text-muted-foreground/70",children:e.last_result})]}):(0,t.jsx)("span",{className:"text-muted-foreground/60",children:"—"})}),(0,t.jsx)("td",{className:"px-2 py-2",children:(0,t.jsx)(D,{task:e,threshold:a})}),(0,t.jsx)("td",{className:"px-2 py-2",children:(0,t.jsxs)("div",{className:"flex items-center justify-end gap-1",children:[(0,t.jsx)(p.Button,{type:"button",variant:"ghost",size:"icon","aria-label":`Run ${e.id} now`,title:"Run now",onClick:()=>x(e),disabled:u===e.id,className:"h-7 w-7",children:(0,t.jsx)(A,{className:"h-4 w-4"})}),(0,t.jsx)(p.Button,{type:"button",variant:"ghost",size:"icon","aria-label":`Modify ${e.id}`,title:"Modify",onClick:()=>r(e),disabled:u===e.id,className:"h-7 w-7",children:(0,t.jsx)(C.Edit2,{className:"h-4 w-4"})}),(0,t.jsx)(p.Button,{type:"button",variant:"ghost",size:"icon","aria-label":`Stop ${e.id}`,title:"Stop",onClick:()=>h(e),disabled:u===e.id,className:"h-7 w-7 text-destructive hover:text-destructive",children:(0,t.jsx)(d.Trash2,{className:"h-4 w-4"})})]})})]},e.id))})]})}),o&&(0,t.jsx)(j.Alert,{variant:"error",className:"text-xs",children:o})]})}function K({task:e,onClose:s}){return(0,t.jsx)(L.Sheet,{open:null!==e,onOpenChange:e=>!e&&s(),children:e&&(0,t.jsx)(Q,{task:e,onClose:s},e.id)})}function Q({task:e,onClose:a}){let r=(0,O.useManagedTask)(e.id),n=(0,O.useUpdateManagedTask)(),i=(0,O.useRenameManagedTaskApp)(),l=(0,O.useManagedTaskRuns)(e.id,25),d=(0,P.useConfirm)(),[o,c]=(0,s.useState)(e.intent),[u,m]=(0,s.useState)(e.cadence),[x,h]=(0,s.useState)(()=>(function(e){if(!e)return{domain:"",type:""};let t=e.replace(/\/$/,"").split("/");if(2!==t.length)return{domain:"",type:""};let[s,a]=t,r=(0,R.pluralToType)(a);return r&&R.DOMAINS.includes(s)?{domain:s,type:r}:{domain:"",type:""}})(e.output_path)),[g,N]=(0,s.useState)(null),[b,v]=(0,s.useState)(null),k=r.data?.recurrenceRule??null;(0,s.useEffect)(()=>{null===g&&null!==k&&N(k)},[g,k]);let S=(0,s.useMemo)(()=>x.domain&&x.type?`${x.domain}/${R.TYPE_PLURALS[x.type]}/`:null,[x]),w=(0,s.useMemo)(()=>g?function(e){let t={};if("string"==typeof e.time&&/^([01]\d|2[0-3]):[0-5]\d$/.test(e.time)||(t.time="Time must be HH:MM, zero-padded."),"weekly"===e.frequency){let s=e.daysOfWeek??[];0===s.length?t.daysOfWeek="Select at least one weekday.":s.some(e=>!Number.isInteger(e)||e<0||e>6)&&(t.daysOfWeek="Days of week must be 0..6 (Sun..Sat).")}if("monthly"===e.frequency){let s=e.daysOfMonth??[];0===s.length?t.daysOfMonth="Select at least one day of the month.":s.some(e=>!Number.isInteger(e)||e<1||e>31)&&(t.daysOfMonth="Days of month must be 1..31.")}return 0===Object.keys(t).length?null:t}(g):null,[g]),T=(0,s.useMemo)(()=>{var t,s;return t={intent:o,cadence:u,outputPath:S,recurrenceRule:g},s={task:e,recurrenceRule:k},!(t.intent.trim()===s.task.intent&&t.cadence.trim()===s.task.cadence&&t.outputPath===s.task.output_path&&F(t.recurrenceRule,s.recurrenceRule))},[o,u,S,g,e,k]),_=o.trim().length>0&&o.trim().length<=200,C=u.trim().length>0&&u.trim().length<=200,A=T&&_&&C&&null===w,M=async()=>{v(null);let t={id:e.id};o.trim()!==e.intent&&(t.intent=o.trim()),u.trim()!==e.cadence&&(t.cadence=u.trim()),S!==e.output_path&&(t.output_path=S),g&&!F(g,k)&&(t.recurrenceRule=g);try{await n.mutateAsync(t),a()}catch(e){v(q(e))}},E=async()=>{let t=window.prompt(`Rename ${e.app} to:`,e.app);if(null===t)return;let s=t.trim();if(""!==s&&s!==e.app&&await d({title:`Rename ${e.id}'s app to "${s}"?`,description:`Rewrites every entity file's frontmatter \`sources.${e.app}\` to \`sources.${s}\`. Irreversible — entity files are touched on disk. Type the task id to confirm.`,requireText:e.id,confirmLabel:"Rename app",cancelLabel:"Cancel",variant:"destructive"})){v(null);try{await i.mutateAsync({id:e.id,newApp:s})}catch(e){v(q(e))}}};return(0,t.jsxs)(L.SheetContent,{className:"flex w-full max-w-xl flex-col gap-4 overflow-y-auto",children:[(0,t.jsxs)(L.SheetHeader,{children:[(0,t.jsxs)(L.SheetTitle,{children:["Modify ",e.id]}),(0,t.jsxs)("p",{className:"text-xs text-muted-foreground",children:[e.app," · created ",(0,B.formatAbsoluteTime)(e.created_at)]})]}),(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)("label",{className:"text-xs font-medium",htmlFor:"intent",children:"Intent"}),(0,t.jsx)(y.Input,{id:"intent",value:o,onChange:e=>c(e.target.value),maxLength:200}),(0,t.jsx)("p",{className:"text-[11px] text-muted-foreground",children:"Free text (≤200 chars). Rendered in the management.md table and included in the scheduled-task description."})]}),(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)("label",{className:"text-xs font-medium",htmlFor:"cadence",children:"Cadence label"}),(0,t.jsx)(y.Input,{id:"cadence",value:u,onChange:e=>m(e.target.value),maxLength:200,placeholder:"daily 10:00 (Asia/Tokyo)"}),(0,t.jsx)("p",{className:"text-[11px] text-muted-foreground",children:"Free-text label rendered in §B. The structured fire schedule is edited below — they round-trip independently so the agent can keep its preferred phrasing while the cron form moves."})]}),(0,t.jsxs)("div",{className:"space-y-1.5 rounded-md border border-border/60 p-3",children:[(0,t.jsx)("p",{className:"text-xs font-medium",children:"Schedule"}),r.isLoading&&!g&&(0,t.jsx)("p",{className:"text-[11px] text-muted-foreground",children:"Loading…"}),r.isError&&(0,t.jsx)(j.Alert,{variant:"error",className:"text-xs",children:"Could not load the recurring schedule. Save other fields, or refresh and retry."}),g&&(0,t.jsx)(H,{rule:g,onChange:N,errors:w}),(0,t.jsxs)("p",{className:"text-[10px] text-muted-foreground",children:["Underlying schedule: ",(0,t.jsxs)("code",{children:["rs:",e.schedule_id]}),". Saving updates the same row — the daemon regenerates the next",(0,t.jsx)("code",{className:"ml-0.5",children:"agent_schedule"})," fire."]})]}),(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)("label",{className:"text-xs font-medium",children:"Output path"}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)(f.Select,{value:x.domain,onValueChange:e=>h(t=>({...t,domain:e})),children:[(0,t.jsx)(f.SelectTrigger,{className:"h-8 text-xs",children:(0,t.jsx)(f.SelectValue,{placeholder:"domain"})}),(0,t.jsx)(f.SelectContent,{children:R.DOMAINS.map(e=>(0,t.jsx)(f.SelectItem,{value:e,children:e},e))})]}),(0,t.jsx)("span",{className:"text-muted-foreground",children:"/"}),(0,t.jsxs)(f.Select,{value:x.type,onValueChange:e=>h(t=>({...t,type:e})),children:[(0,t.jsx)(f.SelectTrigger,{className:"h-8 text-xs",children:(0,t.jsx)(f.SelectValue,{placeholder:"type"})}),(0,t.jsx)(f.SelectContent,{children:R.ENTITY_TYPES.map(e=>(0,t.jsx)(f.SelectItem,{value:e,children:R.TYPE_PLURALS[e]},e))})]}),(0,t.jsx)(p.Button,{type:"button",variant:"ghost",size:"sm",onClick:()=>{h({domain:"",type:""})},className:"h-8 px-2 text-xs",children:"Clear"})]}),(0,t.jsxs)("p",{className:"text-[11px] text-muted-foreground",children:["Where this task writes entity files. Composed path:"," ",(0,t.jsx)("code",{className:"font-mono",children:S??"—"})]})]}),b&&(0,t.jsx)(j.Alert,{variant:"error",className:"text-xs",children:b}),(0,t.jsxs)("div",{className:"flex justify-between gap-2",children:[(0,t.jsx)(p.Button,{type:"button",variant:"ghost",size:"sm",onClick:E,disabled:i.isPending||n.isPending,className:"text-destructive hover:text-destructive",children:"Rename app…"}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(p.Button,{type:"button",variant:"outline",size:"sm",onClick:a,children:"Cancel"}),(0,t.jsx)(p.Button,{type:"button",size:"sm",onClick:M,disabled:!A||n.isPending,children:n.isPending?"Saving…":"Save"})]})]})]}),(0,t.jsxs)("div",{className:"border-t border-border pt-4",children:[(0,t.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:"Recent activity"}),l.isLoading&&(0,t.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:"Loading…"}),l.data&&0===l.data.runs.length&&(0,t.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:"No history recorded yet."}),l.data&&l.data.runs.length>0&&(0,t.jsx)("ul",{className:"mt-2 space-y-1.5",children:l.data.runs.map(e=>(0,t.jsxs)("li",{className:"flex items-start gap-2 rounded-md border border-border/40 px-2 py-1.5 text-[11px]",children:[(0,t.jsx)("span",{className:"success"===e.result?"text-emerald-500":"failed"===e.result?"text-destructive":"text-muted-foreground",children:"●"}),(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)("code",{className:"font-mono text-[10px]",children:e.kind.replace("management_task.","")}),e.startedAt&&(0,t.jsx)("span",{className:"ml-2 text-muted-foreground",title:(0,B.formatAbsoluteTime)(e.startedAt),children:(0,B.formatRelativeTime)(e.startedAt)})]})]},e.id))})]})]})}var G=e.i(84972);let Y={"management_task.created":"Created","management_task.modified":"Modified","management_task.deleted":"Stopped","management_task.run_recorded":"Ran","management_task.run_now":"Ran (on demand)","management_task.app_renamed":"Renamed app","sot_binding.updated":"SoT bindings updated"},Z={"management_task.created":"green","management_task.modified":"blue","management_task.deleted":"red","management_task.run_recorded":"gray","management_task.run_now":"purple","management_task.app_renamed":"amber","sot_binding.updated":"blue"};function X({limit:e=50}){let a=(0,O.useManagementHistory)(e),r=(0,s.useMemo)(()=>a.data?.pages.flatMap(e=>e.events)??[],[a.data]);return(0,t.jsxs)(g.Card,{className:"space-y-4",children:[(0,t.jsx)(g.CardHeader,{className:"p-0",children:(0,t.jsxs)("div",{children:[(0,t.jsx)(g.CardTitle,{className:"text-base",children:"History"}),(0,t.jsxs)("p",{className:"mt-1 text-xs text-muted-foreground max-w-prose",children:["Recent changes to managed tasks (Section B) and SoT bindings (Section A). Sourced from ",(0,t.jsx)("code",{children:"agent_actions"})," — the authoritative audit trail per §15."]})]})}),(0,t.jsx)(N.QueryResult,{isLoading:a.isLoading,isError:a.isError,error:a.error,onRetry:()=>a.refetch(),children:0===r.length?(0,t.jsx)($.EmptyState,{icon:G.History,title:"No history yet",description:"Register or modify a managed task to see entries here."}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("ol",{className:"space-y-2",children:r.map(e=>{let s=e.detail,a=s&&"string"==typeof s.mt_id?s.mt_id:null,r=function(e,t){if(!t)return null;switch(e){case"management_task.created":{let e="string"==typeof t.app?t.app:null,s="string"==typeof t.cadence?t.cadence:null,a="string"==typeof t.output_path?t.output_path:null,r=[];return e&&r.push(e),s&&r.push(s),a&&r.push(`→ ${a}`),r.length?r.join(" · "):null}case"management_task.modified":{let e=Array.isArray(t.changed)?t.changed.filter(e=>"string"==typeof e):[];return e.length?`changed: ${e.join(", ")}`:null}case"management_task.deleted":{let e=t.original_row&&"object"==typeof t.original_row?t.original_row:null;if(!e)return null;let s="string"==typeof e.intent?e.intent:"",a="string"==typeof e.app?e.app:"";return`${s} (${a})`.trim()}case"management_task.run_now":{let e="string"==typeof t.reason?t.reason:null;return e?`reason: ${e}`:null}case"management_task.run_recorded":return"string"==typeof t.last_result?t.last_result:null;case"management_task.app_renamed":{let e="string"==typeof t.from?t.from:"",s="string"==typeof t.to?t.to:"";return`${e} → ${s}`}case"sot_binding.updated":{let e=Array.isArray(t.next)?t.next.length:null,s=Array.isArray(t.previous)?t.previous.length:null;if(null===s||null===e)return null;return`${s} → ${e} bindings`}default:return null}}(e.kind,s);return(0,t.jsxs)("li",{className:"flex items-start gap-3 rounded-md border border-border/40 px-3 py-2 text-xs",children:[(0,t.jsx)(E.Badge,{variant:Z[e.kind]??"gray",className:"mt-0.5 shrink-0",children:Y[e.kind]??e.kind}),(0,t.jsxs)("div",{className:"flex-1 space-y-0.5",children:[a&&(0,t.jsx)("code",{className:"font-mono text-[11px]",children:a}),r&&(0,t.jsx)("p",{className:"text-foreground/90",children:r})]}),e.startedAt&&(0,t.jsx)("span",{className:"shrink-0 text-[11px] text-muted-foreground",title:(0,B.formatAbsoluteTime)(e.startedAt),children:(0,B.formatRelativeTime)(e.startedAt)})]},e.id)})}),a.hasNextPage&&(0,t.jsx)("div",{className:"flex justify-center pt-2",children:(0,t.jsx)(p.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>void a.fetchNextPage(),disabled:a.isFetchingNextPage,children:a.isFetchingNextPage?"Loading…":"Load more"})})]})})]})}let J=["tasks","bindings","history"];function ee(e){return null!==e&&J.includes(e)}function et(){let e=(0,a.useSearchParams)(),s=(0,a.useRouter)(),i=e.get("tab"),l=ee(i)?i:"tasks";return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.PageHeader,{title:"Management",description:(0,t.jsxs)(t.Fragment,{children:["Source-of-Truth bindings (Section A) and Managed Tasks (Section B) — the structured rows the daemon renders into"," ",(0,t.jsx)("code",{children:"policies/management.md"})," and injects into every agent session. Edits here re-render the file atomically; the agent picks up the new state on its next session."]})}),(0,t.jsxs)(r.Tabs,{value:l,onValueChange:e=>{ee(e)&&s.replace(`/settings/management?tab=${e}`,{scroll:!1})},children:[(0,t.jsxs)(r.TabsList,{children:[(0,t.jsx)(r.TabsTrigger,{value:"tasks",children:"Managed Tasks"}),(0,t.jsx)(r.TabsTrigger,{value:"bindings",children:"SoT Bindings"}),(0,t.jsx)(r.TabsTrigger,{value:"history",children:"History"})]}),(0,t.jsx)(r.TabsContent,{value:"tasks",className:"pt-3",children:(0,t.jsx)(V,{})}),(0,t.jsx)(r.TabsContent,{value:"bindings",className:"pt-3",children:(0,t.jsx)(S,{})}),(0,t.jsx)(r.TabsContent,{value:"history",className:"pt-3",children:(0,t.jsx)(X,{})})]})]})}e.s(["default",0,function(){return(0,t.jsx)(s.Suspense,{children:(0,t.jsx)(et,{})})}],2050)}]);
|