@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,3 +0,0 @@
|
|
|
1
|
-
module.exports=[84483,a=>{"use strict";var b=a.i(39752),c=a.i(54150),d=a.i(40410),e=a.i(36581),f=a.i(34542),g=a.i(81130),h=a.i(59974);async function i({build:a,queryClient:b,apiClient:c=h.api}){let d=(await c.get("/config")).notionDatabaseIds??{},e=a(d);try{let a=await c.patch("/config",{notionDatabaseIdsBase:d,notionDatabaseIds:e});return await Promise.all([b.invalidateQueries({queryKey:["config"]}),b.invalidateQueries({queryKey:["health"]})]),a}catch(a){throw a instanceof h.ApiError&&409===a.status&&await Promise.all([b.invalidateQueries({queryKey:["config"]}),b.invalidateQueries({queryKey:["health"]})]),a}}var j=a.i(21218),k=a.i(8212),l=a.i(29629),m=a.i(57216),n=a.i(78019),o=a.i(43179),p=a.i(96336),q=a.i(18093),r=a.i(40715),s=a.i(82687),t=a.i(82740);a.i(70010);var u=a.i(59825),v=a.i(95827);function w(){let{data:a}=(0,c.useConfig)(),{data:e}=(0,d.useHealth)(),v=(0,g.useQueryClient)(),[w,x]=(0,f.useState)(""),[y,z]=(0,f.useState)(!1),[A,B]=(0,f.useState)(!1),[C,D]=(0,f.useState)(!1),[E,F]=(0,f.useState)(null),[G,H]=(0,f.useState)(""),[I,J]=(0,f.useState)(""),[K,L]=(0,f.useState)(null),[M,N]=(0,f.useState)(""),[O,P]=(0,f.useState)(!1),[Q,R]=(0,f.useState)(null),[S,T]=(0,f.useState)(null);if(!a||!e)return null;let U=!!a.notionConfigured,V=a.notionDatabaseIds??{},W=async()=>{let a=w.trim();if(a){B(!0),F(null);try{await h.api.put("/secrets/notion",{apiKey:a}),v.invalidateQueries({queryKey:["config"]}),v.invalidateQueries({queryKey:["health"]}),D(!0),x("")}catch(a){F(a instanceof Error?a.message:"Failed to save")}finally{B(!1)}}},X=async a=>{P(!0),R(null),T(null);try{let b=await i({build:a,queryClient:v});b.requiresRestart?.length>0&&T("Restart daemon to apply changes.")}catch(a){R(a instanceof Error?a.message:"Failed to save")}finally{P(!1)}},Y=async()=>{let a=G.trim(),b=I.trim();a&&b&&(await X(c=>({...c,[a]:b})),H(""),J(""))},Z=async a=>{await X(b=>{let{[a]:c,...d}=b;return d})},$=async()=>{if(null===K)return;let a=M.trim();a&&a!==V[K]&&await X(b=>({...b,[K]:a})),L(null)},_=Object.entries(V);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"space-y-1.5 mt-3",children:[(0,b.jsx)("p",{className:"text-xs font-medium text-muted-foreground",children:"API Key"}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("div",{className:"relative flex-1",children:[(0,b.jsx)(k.Input,{type:y?"text":"password",value:w,onChange:a=>{x(a.target.value),D(!1)},placeholder:U?"ntn_... (configured)":"ntn_...",className:"h-7 text-xs pr-8"}),(0,b.jsx)("button",{type:"button",onClick:()=>z(!y),className:"absolute right-2 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground",children:y?(0,b.jsx)(r.EyeOff,{className:"h-3.5 w-3.5"}):(0,b.jsx)(q.Eye,{className:"h-3.5 w-3.5"})})]}),(0,b.jsx)(j.Button,{size:"sm",variant:"outline",onClick:W,disabled:A||!w.trim(),className:"h-7 text-xs px-2 shrink-0",children:A?"...":"Save"}),(C||U)&&(0,b.jsx)(s.CheckCircle2,{className:"h-4 w-4 text-emerald-500 shrink-0"})]}),E&&(0,b.jsx)(l.Alert,{variant:"error",children:E})]}),(0,b.jsxs)("div",{className:"space-y-2 mt-3",children:[(0,b.jsx)("p",{className:"text-xs font-medium text-muted-foreground",children:"Database mappings"}),_.length>0&&(0,b.jsx)("div",{className:"space-y-1.5",children:_.map(([a,c])=>(0,b.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,b.jsx)("span",{className:"font-medium text-foreground min-w-[60px]",children:a}),K===a?(0,b.jsx)(k.Input,{type:"text",value:M,onChange:a=>N(a.target.value),onBlur:()=>void $(),onKeyDown:a=>{"Enter"===a.key&&$(),"Escape"===a.key&&L(null)},autoFocus:!0,className:"h-6 text-xs font-mono flex-1"}):(0,b.jsx)("button",{type:"button",onClick:()=>{L(a),N(V[a]??"")},className:"text-muted-foreground font-mono truncate flex-1 text-left hover:text-foreground transition-colors",title:"Click to edit",children:c}),(0,b.jsx)("button",{type:"button",onClick:()=>Z(a),disabled:O,className:"text-muted-foreground hover:text-red-500 shrink-0",children:(0,b.jsx)(p.Trash2,{className:"h-3.5 w-3.5"})})]},a))}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(k.Input,{type:"text",value:G,onChange:a=>H(a.target.value),placeholder:"Label (e.g. tasks)",className:"h-7 text-xs flex-[1]"}),(0,b.jsx)(k.Input,{type:"text",value:I,onChange:a=>J(a.target.value),placeholder:"Database ID",className:"h-7 text-xs flex-[2] font-mono",onKeyDown:a=>{"Enter"===a.key&&Y()}}),(0,b.jsx)(j.Button,{size:"sm",variant:"outline",onClick:Y,disabled:O||!G.trim()||!I.trim(),className:"h-7 text-xs px-2 shrink-0",children:(0,b.jsx)(o.Plus,{className:"h-3.5 w-3.5"})})]}),S&&(0,b.jsx)(l.Alert,{variant:"warning",children:S}),Q&&(0,b.jsx)(l.Alert,{variant:"error",children:Q})]}),(0,b.jsxs)(m.Collapsible,{children:[(0,b.jsxs)(m.CollapsibleTrigger,{className:"flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground mt-3",children:["Setup notes ",(0,b.jsx)(n.ChevronDown,{className:"h-3 w-3"})]}),(0,b.jsx)(m.CollapsibleContent,{children:(0,b.jsxs)("div",{className:"mt-2 rounded bg-muted/50 p-2 space-y-1 text-xs",children:[(0,b.jsxs)("p",{className:"text-muted-foreground",children:["Create an internal integration at"," ",(0,b.jsx)("a",{href:"https://www.notion.so/my-integrations",target:"_blank",rel:"noopener noreferrer",className:"underline hover:text-foreground",children:"notion.so/my-integrations"}),", enter the API key above, and share each target database with the integration. Then add the database mappings."]}),(0,b.jsxs)("p",{className:"text-muted-foreground",children:["The database ID is the 32-character hex string in the Notion URL (e.g. ",(0,b.jsx)("code",{className:"text-foreground",children:"notion.so/<workspace>/<database-id>"}),")."]}),u.INTEGRATION_DESCRIPTORS.notion.directSetup?.helpUrl&&(0,b.jsxs)("p",{className:"text-muted-foreground",children:["See Notion's official guide:"," ",(0,b.jsxs)("a",{href:u.INTEGRATION_DESCRIPTORS.notion.directSetup.helpUrl,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 underline hover:text-foreground",children:["Create a Notion integration",(0,b.jsx)(t.ExternalLink,{className:"h-3 w-3"})]})]})]})})]})]})}var x=a.i(78933),y=a.i(35571),z=a.i(91340);function A(){let{data:a}=(0,c.useConfig)(),{data:e}=(0,d.useHealth)(),{toast:f,saveMultipleFields:g}=(0,x.useSaveConfig)(),h=e?.integrations?.obsidian;return a?(0,b.jsx)(v.ConnectionCard,{name:"External Obsidian Vault",icon:(0,b.jsx)(y.BookText,{className:"h-4 w-4"}),status:(0,v.deriveIntegrationStatus)(h),error:h?.error,children:(0,b.jsxs)("div",{className:"mt-2",children:[f&&(0,b.jsx)(l.Alert,{variant:f.type,className:"mb-2",children:f.message}),(0,b.jsxs)("p",{className:"max-w-prose pb-2 text-xs text-muted-foreground",children:["A personal Obsidian vault — distinct from the agent's own memory directory — that the agent can read from and write to via the Obsidian CLI. Pick any local folder, including cloud-synced ones (iCloud, Dropbox, OneDrive, Google Drive). The agent's own files (",(0,b.jsx)("code",{children:"today.md"}),", ",(0,b.jsx)("code",{children:"roadmap.md"}),", …) live under Settings → Management Mode, not here."]}),(0,b.jsx)(z.ExternalObsidianVaultSettings,{vaultPath:a.externalObsidianVaultPath,vaultName:a.externalObsidianVaultName,onSave:g})]})}):null}var B=a.i(86807),C=a.i(32307),D=a.i(42732),E=a.i(5423);let F=(0,E.default)("FileWarning",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);var G=a.i(39293),H=a.i(50891);let I=(0,E.default)("Wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]);var J=a.i(7385),K=a.i(8753),L=a.i(62588),M=a.i(7384),N=a.i(30400),O=a.i(48558);function P(a){return a<1024?`${a} B`:`${(a/1024).toFixed(1)} KB`}function Q({title:a,count:c,children:d,defaultOpen:e}){let[g,h]=(0,f.useState)(e??c>0);return 0===c?null:(0,b.jsxs)(m.Collapsible,{open:g,onOpenChange:h,children:[(0,b.jsxs)(m.CollapsibleTrigger,{className:"flex w-full items-center justify-between rounded-md px-2 py-1.5 text-left text-sm font-medium text-foreground hover:bg-accent",children:[(0,b.jsx)("span",{children:a}),(0,b.jsxs)("span",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[c,(0,b.jsx)(D.ChevronRight,{className:(0,O.cn)("h-3.5 w-3.5 transition-transform",g&&"rotate-90")})]})]}),(0,b.jsx)(m.CollapsibleContent,{children:(0,b.jsx)("div",{className:"mt-2 divide-y divide-border rounded-md border border-border",children:d})})]})}function R({issue:a,repairingPath:c,onRepair:d}){let e=c===a.path;return(0,b.jsxs)("div",{className:"flex items-center gap-3 px-3 py-2 text-sm",children:[(0,b.jsx)(F,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("div",{className:"truncate font-mono text-xs text-foreground",children:a.path}),(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:a.message})]}),a.repairable&&(0,b.jsxs)(j.Button,{size:"sm",variant:"outline",className:"h-7 shrink-0 gap-1",disabled:null!==c,onClick:()=>d(a.path),children:[(0,b.jsx)(I,{className:(0,O.cn)("h-3.5 w-3.5",e&&"animate-spin")}),e?"Fixing":"Fix"]})]})}function S({issue:a}){return(0,b.jsxs)("div",{className:"flex items-start gap-3 px-3 py-2 text-sm",children:[(0,b.jsx)(C.AlertTriangle,{className:"mt-0.5 h-4 w-4 shrink-0 text-amber-600 dark:text-amber-400"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("div",{className:"truncate font-mono text-xs text-foreground",children:a.path}),(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:a.message})]})]})}function T({issue:a}){return(0,b.jsxs)("div",{className:"flex items-start gap-3 px-3 py-2 text-sm",children:[(0,b.jsx)(C.AlertTriangle,{className:"mt-0.5 h-4 w-4 shrink-0 text-amber-600 dark:text-amber-400"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("div",{className:"truncate font-mono text-xs text-foreground",children:a.path}),(0,b.jsxs)("div",{className:"text-xs text-muted-foreground",children:[P(a.bytes)," / ",P(a.capBytes)]})]})]})}function U({issue:a}){return(0,b.jsxs)("div",{className:"flex items-start gap-3 px-3 py-2 text-sm",children:[(0,b.jsx)(C.AlertTriangle,{className:"mt-0.5 h-4 w-4 shrink-0 text-amber-600 dark:text-amber-400"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("div",{className:"truncate font-mono text-xs text-foreground",children:a.source}),(0,b.jsxs)("div",{className:"text-xs text-muted-foreground",children:["missing ",(0,b.jsx)("span",{className:"font-mono",children:a.target})]})]})]})}function V(){var a;let c,{data:d,isLoading:e,error:i,refetch:k,isFetching:m}=(0,L.useQuery)({queryKey:["context-health"],queryFn:()=>h.api.get("/context/health"),refetchInterval:3e4}),n=(c=(0,g.useQueryClient)(),(0,K.useMutation)({mutationFn:({path:a})=>h.api.post("/context/repair/stub",{path:a}),onSuccess:(a,{path:b})=>{c.invalidateQueries({queryKey:["context-health"]});let d=b.includes("/")?b.split("/")[0]:null;d&&c.invalidateQueries({queryKey:["context-list",d]}),c.invalidateQueries({queryKey:["context",b.replace(/\.md$/,"")]})}})),[o,p]=(0,f.useState)(null),[q,r]=(0,f.useState)(null),[t,u]=(0,f.useState)(null),v=async a=>{p(a),r(null),u(null);try{let b=await n.mutateAsync({path:a});r("created"===b.status?`${b.path} created.`:`${b.path} already exists.`)}catch(a){a instanceof h.ApiError?u(`Repair failed: ${a.message}`):u(a instanceof Error?a.message:"Repair failed")}finally{p(null)}},w=d?.status??"warning",x="ok"===w?{variant:"green",label:"Healthy"}:"warning"===w?{variant:"amber",label:"Warnings"}:{variant:"red",label:"Needs Repair"},y="ok"===w?s.CheckCircle2:"warning"===w?C.AlertTriangle:J.XCircle;return(0,b.jsxs)(N.Card,{tone:d?"ok"===(a=d.status)?"success":"warning"===a?"warning":"error":"default",children:[(0,b.jsxs)("div",{className:"mb-3 flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,b.jsx)(H.ShieldCheck,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,b.jsx)("h3",{className:"truncate text-sm font-medium text-foreground",children:"Vault Health"})]}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[d&&(0,b.jsx)(M.Badge,{variant:x.variant,children:x.label}),(0,b.jsx)(j.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>void k(),disabled:m,"aria-label":"Refresh vault health",children:(0,b.jsx)(G.RefreshCw,{className:(0,O.cn)("h-3.5 w-3.5",m&&"animate-spin")})})]})]}),e&&(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"Checking vault..."}),i&&(0,b.jsx)(l.Alert,{variant:"error",children:i instanceof Error?i.message:"Failed to load vault health."}),d&&(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 text-sm",children:[(0,b.jsx)(y,{className:(0,O.cn)("h-4 w-4","ok"===d.status&&"text-emerald-600 dark:text-emerald-400","warning"===d.status&&"text-amber-600 dark:text-amber-400","error"===d.status&&"text-red-600 dark:text-red-400")}),(0,b.jsx)("span",{className:"text-foreground",children:"ok"===d.status?"All required vault checks passed.":`${d.summary.missingFiles+d.summary.frontmatterErrors+d.summary.sizeWarnings+d.summary.indexLinkIssues} issue(s) found.`}),(0,b.jsx)("span",{className:"ml-auto text-xs text-muted-foreground",children:(0,O.formatAbsoluteTime)(d.checkedAt)})]}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-2 text-xs sm:grid-cols-4",children:[(0,b.jsx)(W,{label:"Missing",value:d.summary.missingFiles}),(0,b.jsx)(W,{label:"Frontmatter",value:d.summary.frontmatterErrors}),(0,b.jsx)(W,{label:"Oversize",value:d.summary.sizeWarnings}),(0,b.jsx)(W,{label:"Index links",value:d.summary.indexLinkIssues})]}),q&&(0,b.jsx)(l.Alert,{variant:"success",children:q}),t&&(0,b.jsx)(l.Alert,{variant:"error",children:t}),(0,b.jsx)(Q,{title:"Missing files",count:d.missingFiles.length,children:d.missingFiles.map(a=>(0,b.jsx)(R,{issue:a,repairingPath:o,onRepair:a=>void v(a)},a.path))}),(0,b.jsx)(Q,{title:"Frontmatter errors",count:d.frontmatterErrors.length,children:d.frontmatterErrors.map(a=>(0,b.jsx)(S,{issue:a},`${a.path}:${a.code}`))}),(0,b.jsx)(Q,{title:"Oversize injected files",count:d.sizeWarnings.length,children:d.sizeWarnings.map(a=>(0,b.jsx)(T,{issue:a},a.path))}),(0,b.jsx)(Q,{title:"Broken index references",count:d.indexLinkIssues.length,children:d.indexLinkIssues.map(a=>(0,b.jsx)(U,{issue:a},`${a.source}:${a.target}`))})]})]})}function W({label:a,value:c}){return(0,b.jsxs)("div",{className:"rounded-md border border-border px-2 py-1.5",children:[(0,b.jsx)("div",{className:"text-muted-foreground",children:a}),(0,b.jsx)("div",{className:"font-mono text-base font-semibold text-foreground",children:c})]})}a.s(["default",0,function(){let{data:a,isLoading:f}=(0,c.useConfig)(),{data:g,isLoading:h}=(0,d.useHealth)(),i=f||h,j=!i&&(!a||!g),k=g?.integrations?.obsidian,l=g?.integrations?.notion,m=+!!k?.connected+ +!!l?.connected;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(B.ConnectionsSectionHeader,{title:"Knowledge",description:"The agent's long-form knowledge sources. Obsidian is a local Markdown vault; Notion is a hosted workspace with shared databases.",healthy:m,total:2}),j&&(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"Daemon not connected. Start the daemon to configure knowledge sources."}),!i&&(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)(V,{}),(0,b.jsx)(A,{}),(0,b.jsx)(e.IntegrationCard,{integrationKey:"notion",children:(0,b.jsx)(w,{})})]})]})}],84483)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=packages_dashboard_src_app_connections_knowledge_page_tsx_027jwd3._.js.map
|
package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_advanced_page_tsx_0o~_885._.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[94085,a=>{"use strict";var b=a.i(39752),c=a.i(34542),d=a.i(32307),e=a.i(82687),f=a.i(42732),g=a.i(5423);let h=(0,g.default)("CircleDashed",[["path",{d:"M10.1 2.182a10 10 0 0 1 3.8 0",key:"5ilxe3"}],["path",{d:"M13.9 21.818a10 10 0 0 1-3.8 0",key:"11zvb9"}],["path",{d:"M17.609 3.721a10 10 0 0 1 2.69 2.7",key:"1iw5b2"}],["path",{d:"M2.182 13.9a10 10 0 0 1 0-3.8",key:"c0bmvh"}],["path",{d:"M20.279 17.609a10 10 0 0 1-2.7 2.69",key:"1ruxm7"}],["path",{d:"M21.818 10.1a10 10 0 0 1 0 3.8",key:"qkgqxc"}],["path",{d:"M3.721 6.391a10 10 0 0 1 2.7-2.69",key:"1mcia2"}],["path",{d:"M6.391 20.279a10 10 0 0 1-2.69-2.7",key:"1fvljs"}]]),i=(0,g.default)("HardDrive",[["line",{x1:"22",x2:"2",y1:"12",y2:"12",key:"1y58io"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}],["line",{x1:"6",x2:"6.01",y1:"16",y2:"16",key:"sgf278"}],["line",{x1:"10",x2:"10.01",y1:"16",y2:"16",key:"1l4acy"}]]);var j=a.i(92241);let k=(0,g.default)("Mic",[["path",{d:"M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z",key:"131961"}],["path",{d:"M19 10v2a7 7 0 0 1-14 0v-2",key:"1vc78b"}],["line",{x1:"12",x2:"12",y1:"19",y2:"22",key:"x3vr5v"}]]);var l=a.i(70297),m=a.i(96336),n=a.i(14859),o=a.i(81130),p=a.i(62588);a.i(70010);var q=a.i(35875),r=a.i(59974),s=a.i(54150),t=a.i(78933),u=a.i(92379),v=a.i(21218),w=a.i(30400),x=a.i(87206),y=a.i(57216),z=a.i(47696),A=a.i(23780),B=a.i(28314),C=a.i(48558),D=a.i(56295),E=a.i(74345);function F(){let a=(0,o.useQueryClient)(),d=(0,B.useConfirm)(),[e,f]=(0,c.useState)(!1),[g,h]=(0,c.useState)(!1),[i,l]=(0,c.useState)(null),[m,n]=(0,c.useState)(null),{data:s}=(0,p.useQuery)({queryKey:["voice-status"],queryFn:async()=>{try{return await r.api.get("/voice/status")}catch(a){if(g)return{enabled:!1,installing:!0,installed:!0,modelOnDisk:!1,modelSizeBytes:0,modelDir:"",status:"running",error:null,startedAt:null,finishedAt:null,model:"onnx-community/whisper-large-v3-turbo",progress:null,primaryLanguage:null,suggestedPrimaryLanguage:"en"};throw a}},refetchInterval:a=>{let b=a.state.data;return!!(g||b?.installing||b?.status==="running")&&1500},refetchOnWindowFocus:!1});(0,c.useEffect)(()=>{if(!s)return;let a=s.primaryLanguage??s.suggestedPrimaryLanguage;n(b=>b??a)},[s?.primaryLanguage,s?.suggestedPrimaryLanguage,s]),(0,c.useEffect)(()=>{g&&s?.enabled&&(h(!1),a.invalidateQueries({queryKey:["config"]}))},[g,s?.enabled,a]),(0,c.useEffect)(()=>{s?.status!=="ready"||s.enabled||h(!0)},[s?.status,s?.enabled]);let t=async()=>{l(null),f(!0);try{await r.api.post("/voice/install",{primaryLanguage:m}),await a.invalidateQueries({queryKey:["voice-status"]})}catch(a){l(a instanceof r.ApiError?a.message:"Install failed")}finally{f(!1)}},u=async()=>{if(await d({title:"Delete the local Whisper model?",description:'Removes the on-disk Whisper weights (~800 MB). Voice mode stays enabled — click "Upgrade & install" afterwards to download the model again. Use this when an install attempt failed and the dashboard is stuck on an error banner.',confirmLabel:"Delete model",variant:"destructive"})){l(null),f(!0);try{await r.api.delete("/voice/model"),await a.invalidateQueries({queryKey:["voice-status"]})}catch(a){l(a instanceof r.ApiError?a.message:"Deleting voice model failed")}finally{f(!1)}}},x=async b=>{l(null),f(!0);try{await r.api.patch("/config",{voiceTranscriptionPrimaryLanguage:b}),n(b),await a.invalidateQueries({queryKey:["voice-status"]}),await a.invalidateQueries({queryKey:["config"]})}catch(a){l(a instanceof r.ApiError?a.message:"Saving primary language failed")}finally{f(!1)}},y=s?.enabled??!1,A=e||(s?.installing??!1)||g,D=s?.progress??null,E=i??s?.error??null,F=y&&s?.modelOnDisk===!1&&!A,H=(0,c.useMemo)(()=>{let a=new Set(q.VOICE_LANGUAGE_TOP.map(a=>a.code)),b=q.VOICE_LANGUAGE_FULL.filter(b=>!a.has(b.code)).slice().sort((a,b)=>a.englishName.localeCompare(b.englishName));return{top:q.VOICE_LANGUAGE_TOP,more:b}},[]),I=a=>(0,b.jsxs)(z.Select,{value:m??void 0,onValueChange:a=>n(a),disabled:A,children:[(0,b.jsx)(z.SelectTrigger,{id:a,className:"w-full max-w-sm",children:(0,b.jsx)(z.SelectValue,{placeholder:"Select language…"})}),(0,b.jsxs)(z.SelectContent,{children:[H.top.length>0&&(0,b.jsxs)(z.SelectGroup,{children:[(0,b.jsx)(z.SelectLabel,{children:"Common"}),H.top.map(a=>(0,b.jsxs)(z.SelectItem,{value:a.code,children:[a.nativeName,a.nativeName!==a.englishName&&(0,b.jsxs)("span",{className:"text-muted-foreground",children:[" · ",a.englishName]})]},a.code))]}),H.more.length>0&&(0,b.jsxs)(z.SelectGroup,{children:[(0,b.jsx)(z.SelectLabel,{children:"More languages"}),H.more.map(a=>(0,b.jsxs)(z.SelectItem,{value:a.code,children:[a.nativeName,a.nativeName!==a.englishName&&(0,b.jsxs)("span",{className:"text-muted-foreground",children:[" · ",a.englishName]})]},a.code))]})]})]});return(0,b.jsxs)(w.Card,{children:[(0,b.jsx)(w.CardHeader,{children:(0,b.jsxs)(w.CardTitle,{className:"flex items-center gap-2",children:[(0,b.jsx)(k,{className:"h-4 w-4"}),"Voice Mode"]})}),(0,b.jsxs)("div",{className:"space-y-3 [&>p]:max-w-prose",children:[(0,b.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Transcribe inbound voice messages (Telegram voice / WhatsApp PTT / Discord audio / Slack audio file) locally with Whisper before they reach the agent. Audio bytes never leave the host. See"," ",(0,b.jsx)("code",{children:"docs/design/appendices/voice-transcription.md"})," for implementation details."]}),(0,b.jsx)(G,{status:s,modelOnDisk:s?.modelOnDisk??!1,upgradeAvailable:F,installing:A,waitingForRestart:g,onDelete:u,deleteDisabled:e}),E&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/40 bg-destructive/5 px-3 py-2 text-xs text-destructive",children:E}),F&&(0,b.jsxs)("div",{className:"rounded-md border border-amber-500/40 bg-amber-500/5 px-3 py-2 text-xs",children:[(0,b.jsx)("p",{className:"font-medium text-amber-700 dark:text-amber-400",children:"Upgrade voice model"}),(0,b.jsxs)("p",{className:"text-muted-foreground mt-0.5",children:["The configured model"," ",(0,b.jsx)("code",{children:s?.model})," is not yet downloaded — likely because a package update changed the default. Click"," ",(0,b.jsx)("strong",{children:"Upgrade & install"})," below to fetch it. Inbound voice will keep using the previous model until then."]})]}),!y&&!A&&(0,b.jsxs)("div",{className:"space-y-2 rounded-md border border-border bg-muted/30 px-3 py-3",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{htmlFor:"voice-primary-language",className:"text-sm font-medium",children:"Your primary spoken language"}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:"Used as the fallback when Whisper's automatic language detection fails on a clip. Other languages are still transcribed correctly when detected — this only kicks in when detection is uncertain."})]}),I("voice-primary-language")]}),(0,b.jsxs)("div",{className:"flex items-center justify-between gap-4",children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)("p",{className:"text-sm",children:["Status:"," ",(0,b.jsx)("span",{className:"font-medium",children:A?g?"Restarting daemon to apply…":D?.phase==="ready"?"Finalizing…":D?.currentFile?`Downloading ${D.currentFile}…`:"Starting model download…":y?F?"Enabled (upgrade available)":"Enabled":"Disabled"})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:y?"Inbound audio is transcribed locally before it reaches the agent. You can change your primary language below at any time.":"Turning this on downloads the Whisper weights (~800 MB), then auto-restarts the daemon so the transcriber picks up the new flag. First download takes a minute or two, depending on your connection."})]}),(0,b.jsx)(v.Button,{size:"sm",variant:y&&!F?"outline":"default",onClick:t,disabled:e||A||y&&!F||null===m,children:A?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(j.Loader2,{className:"h-3.5 w-3.5 mr-1 animate-spin"}),"Working…"]}):F?"Upgrade & install":y?"Enabled":"Enable & install"})]}),y&&!A&&(0,b.jsxs)("div",{className:"space-y-2 rounded-md border border-border bg-muted/30 px-3 py-3",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{htmlFor:"voice-primary-language-live",className:"text-sm font-medium",children:"Primary spoken language"}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:"Saved changes apply to the next inbound voice attachment — no daemon restart needed."})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[I("voice-primary-language-live"),(0,b.jsx)(v.Button,{size:"sm",variant:"outline",disabled:e||null===m||m===s?.primaryLanguage,onClick:()=>{m&&x(m)},children:"Save"})]})]}),A&&!g&&(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("div",{className:"h-1.5 w-full overflow-hidden rounded-full bg-muted",children:(0,b.jsx)("div",{className:(0,C.cn)("h-full bg-primary transition-[width] duration-200",(!D||0===D.percent)&&"animate-pulse"),style:{width:`${Math.min(100,Math.max(D?.percent??0,D?2:8))}%`}})}),(0,b.jsxs)("div",{className:"flex items-center justify-between text-[11px] text-muted-foreground tabular-nums",children:[(0,b.jsxs)("span",{children:[D&&D.totalBytes>0?`${J(D.loadedBytes)} / ${J(D.totalBytes)}`:"Contacting Hugging Face…",D&&D.filesDownloaded>0&&(0,b.jsxs)(b.Fragment,{children:[" · ",D.filesDownloaded," file",1===D.filesDownloaded?"":"s"," complete"]})]}),(0,b.jsx)("span",{children:D&&D.percent>0?`${Math.round(D.percent)}%`:""})]})]})]})]})}function G({status:a,modelOnDisk:c,upgradeAvailable:f,installing:g,waitingForRestart:k,onDelete:l,deleteDisabled:n}){let o=a?.model??"onnx-community/whisper-large-v3-turbo",p=a?.modelSizeBytes??0,q=a?.modelDir??null,r=g?"installing":f?"upgrade":c?"installed":"missing",s={installing:{container:"border-border bg-muted/30",pill:"bg-muted text-foreground",iconBg:"text-muted-foreground"},upgrade:{container:"border-amber-500/40 bg-amber-500/5",pill:"bg-amber-500/15 text-amber-700 dark:text-amber-400",iconBg:"text-amber-600 dark:text-amber-400"},installed:{container:"border-emerald-500/40 bg-emerald-500/5",pill:"bg-emerald-500/15 text-emerald-700 dark:text-emerald-400",iconBg:"text-emerald-600 dark:text-emerald-400"},missing:{container:"border-border bg-muted/30",pill:"bg-muted text-muted-foreground",iconBg:"text-muted-foreground"}}[r],t="installing"===r?(0,b.jsx)(j.Loader2,{className:(0,C.cn)("h-4 w-4 animate-spin",s.iconBg)}):"installed"===r?(0,b.jsx)(e.CheckCircle2,{className:(0,C.cn)("h-4 w-4",s.iconBg)}):"upgrade"===r?(0,b.jsx)(d.AlertTriangle,{className:(0,C.cn)("h-4 w-4",s.iconBg)}):(0,b.jsx)(h,{className:(0,C.cn)("h-4 w-4",s.iconBg)}),u="installed"===r&&p>0?(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 tabular-nums",children:[(0,b.jsx)(i,{className:"h-3 w-3"}),J(p)," on disk"]}):"upgrade"===r?(0,b.jsx)("span",{children:"Configured model is not on disk yet."}):"installing"===r?(0,b.jsx)("span",{children:"Downloading weights from Hugging Face…"}):(0,b.jsxs)("span",{children:["Click ",(0,b.jsx)("strong",{children:"Enable & install"})," below to download (~800 MB)."]});return(0,b.jsx)("div",{className:(0,C.cn)("rounded-md border px-3 py-2.5",s.container),children:(0,b.jsxs)("div",{className:"flex items-start gap-3",children:[(0,b.jsx)("div",{className:"mt-0.5",children:t}),(0,b.jsxs)("div",{className:"min-w-0 flex-1 space-y-1",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("span",{className:(0,C.cn)("inline-flex items-center rounded-full px-2 py-0.5 text-[10px] font-medium uppercase tracking-wide",s.pill),children:"installing"===r?k?"Restarting":"Installing":"installed"===r?"Installed":"upgrade"===r?"Upgrade available":"Not installed"}),(0,b.jsx)("code",{className:"break-all text-xs",children:o})]}),(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:u}),q&&"installed"===r&&(0,b.jsx)("div",{className:"text-[10px] text-muted-foreground/70 font-mono break-all",children:q})]}),!g&&("installed"===r||"upgrade"===r)&&(0,b.jsxs)(v.Button,{size:"sm",variant:"ghost",onClick:l,disabled:n,className:"h-7 shrink-0 px-2 text-xs text-muted-foreground hover:text-destructive",children:[(0,b.jsx)(m.Trash2,{className:"h-3 w-3 mr-1"}),"Delete"]})]})})}async function H(a){switch(a){case"reset-config":return r.api.post("/system/reset-config");case"purge-history":return r.api.post("/system/purge-history");case"reinstall-context":return r.api.post("/system/reinstall-context",{confirm:"CLEAN"});case"factory-reset":return r.api.post("/system/factory-reset")}}function I(a,b){switch(a){case"reset-config":b.invalidateQueries({queryKey:["config"]});return;case"purge-history":b.invalidateQueries({queryKey:["conversations"]}),b.invalidateQueries({queryKey:["events"]}),b.invalidateQueries({queryKey:["cost"]});return;case"reinstall-context":b.invalidateQueries({queryKey:["context"]}),b.invalidateQueries({queryKey:["setup-status"]});return;case"factory-reset":b.invalidateQueries();return}}function J(a){return a<1024?`${a} B`:a<1048576?`${(a/1024).toFixed(1)} KB`:a<0x40000000?`${(a/1048576).toFixed(1)} MB`:`${(a/0x40000000).toFixed(1)} GB`}function K(){let[a,e]=(0,c.useState)(!1),[g,h]=(0,c.useState)(null),[i,j]=(0,c.useState)(null),[k,p]=(0,c.useState)(null),q=(0,B.useConfirm)(),s=(0,o.useQueryClient)(),t=async(a,b)=>{if(await q({title:b.title,description:b.description,confirmLabel:b.confirmLabel,variant:"destructive"})&&(!b.doubleConfirm||await q({title:b.doubleConfirm.title,description:b.doubleConfirm.description,confirmLabel:b.doubleConfirm.confirmLabel,variant:"destructive",requireText:b.doubleConfirm.requireText}))){h(a),j(null),p(null);try{let c=await H(a);I(a,s),p(b.successMessage(c))}catch(a){j(a instanceof r.ApiError?a.message:"Request failed")}finally{h(null)}}};return(0,b.jsx)(y.Collapsible,{open:a,onOpenChange:e,children:(0,b.jsxs)(w.Card,{className:"border-destructive/40",children:[(0,b.jsx)(y.CollapsibleTrigger,{asChild:!0,children:(0,b.jsx)(w.CardHeader,{className:"cursor-pointer select-none",children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(f.ChevronRight,{className:(0,C.cn)("h-4 w-4 text-destructive transition-transform",a&&"rotate-90")}),(0,b.jsx)(d.AlertTriangle,{className:"h-4 w-4 text-destructive"}),(0,b.jsx)(w.CardTitle,{className:"text-destructive",children:"Danger Zone"})]})})}),(0,b.jsx)(y.CollapsibleContent,{children:(0,b.jsxs)("div",{className:"space-y-4 pb-1",children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground max-w-prose",children:"Destructive actions that cannot be undone. Each action requires confirmation before executing."}),i&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/40 bg-destructive/5 px-3 py-2 text-xs text-destructive",children:i}),k&&(0,b.jsx)("p",{className:"rounded-md border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground",children:k}),(0,b.jsx)(L,{title:"Reset all config to defaults",description:"Restores every runtime setting to its factory default. Bootstrap values in .env (API port, data directory, log level) and integration credentials are preserved.",icon:(0,b.jsx)(l.RotateCcw,{className:"h-3.5 w-3.5 mr-1"}),label:"Reset config",busy:"reset-config"===g,disabled:null!==g,onClick:()=>t("reset-config",{title:"Reset all config to defaults?",description:"Restores every runtime setting in the database to its factory default. Bootstrap values in .env (API port, data directory, log level) and integration credentials are preserved.",confirmLabel:"Reset config",successMessage:a=>`Cleared ${a.cleared??0} runtime setting(s).`})}),(0,b.jsx)(A.Separator,{}),(0,b.jsx)(L,{title:"Delete all sessions and history",description:"Permanently removes all non-active conversation sessions, messages, action logs, observations, notification logs, MD snapshots, and scheduled tasks. The active session is preserved.",icon:(0,b.jsx)(m.Trash2,{className:"h-3.5 w-3.5 mr-1"}),label:"Delete history",busy:"purge-history"===g,disabled:null!==g,onClick:()=>t("purge-history",{title:"Delete all sessions and history?",description:"Permanently removes every non-active conversation session, message, action log, observation, notification log, MD snapshot, and scheduled task. The active session is preserved.",confirmLabel:"Delete history",successMessage:a=>`Deleted ${a.deletedSessions??0} session(s), ${a.deletedMessages??0} message(s), ${a.deletedActions??0} action(s).`})}),(0,b.jsx)(A.Separator,{}),(0,b.jsx)(L,{title:"Reinstall context",description:"Writes a tarball backup first, then wipes context/ (including policies/management.md) and md_file_snapshots. Conversation history, settings, and credentials are preserved. Restart the daemon to re-seed the vault from templates.",icon:(0,b.jsx)(l.RotateCcw,{className:"h-3.5 w-3.5 mr-1"}),label:"Reinstall context",busy:"reinstall-context"===g,disabled:null!==g,onClick:()=>(async()=>{h("reinstall-context"),j(null),p(null);try{let a,b=await r.api.get("/system/reinstall-context/plan");if(!await q({title:"Clean reinstall of context/ (B-007)?",description:(a=b.ancillaryDirs.length>0?`Ancillary caches to remove: ${b.ancillaryDirs.join(", ")}.`:"No ancillary caches are scheduled for removal.",[`This will remove ${b.fileCount} file(s) (${J(b.totalBytes)}) from ${b.contextDir}, clear ${b.snapshotRowCount} snapshot row(s), and then re-run setup on the next daemon start.`,a,`Backup tarball path: ${b.backupPath}`].join(" ")),confirmLabel:"Continue",variant:"destructive"})||!await q({title:"Type CLEAN to confirm",description:`Backup tarball: ${b.backupPath}. Proceed to remove ${b.fileCount} file(s) and clear ${b.snapshotRowCount} snapshot row(s).`,confirmLabel:"Reinstall context",variant:"destructive",requireText:"CLEAN"}))return;let c=await H("reinstall-context");I("reinstall-context",s),p(`Reinstalled. Removed ${c.filesDeleted??0} file(s), cleared ${c.snapshotRowsDeleted??0} snapshot row(s). Backup at ${c.backupPath??b.backupPath}.`)}catch(a){j(a instanceof r.ApiError?a.message:"Request failed")}finally{h(null)}})()}),(0,b.jsx)(A.Separator,{}),(0,b.jsx)(L,{title:"Factory reset",description:"Wipe everything: history, settings, context, credentials, encrypted blobs, attachments, session workdirs, backups, caches, user skills, integrations, backend configs, mail accounts, and recurring schedules. The SQLite DB is compacted afterward.",icon:(0,b.jsx)(n.Zap,{className:"h-3.5 w-3.5 mr-1"}),label:"Factory reset",busy:"factory-reset"===g,disabled:null!==g,onClick:()=>t("factory-reset",{title:"Factory reset — really?",description:"Wipes everything on this device: conversation history, action logs, runtime settings, context files (including policies/management.md), keychain secrets, encrypted blobs, uploaded attachments, session and skill-optimizer workdirs, all backups, caches, user skills, the managed Codex Azure config, the Whisper model cache, and every user-data table (backends, mail accounts, recurring schedules, receipts, books, travel bookings, runtime state, auth telemetry). The SQLite DB is compacted afterward; restart the daemon to re-bootstrap observers and adapters.",confirmLabel:"Continue",doubleConfirm:{title:"Final confirmation",description:"There is no undo. Type the confirmation phrase below to proceed.",confirmLabel:"Factory reset",requireText:"RESET EVERYTHING"},successMessage:a=>{let b="string"==typeof a.status?a.status:"reset",c=Array.isArray(a.errors)?a.errors.length:0,d=Array.isArray(a.adapterReloadErrors)?a.adapterReloadErrors.length:0;return"reset_with_errors"===b||c>0||d>0?`Factory reset finished with warnings. Restart the daemon to re-bootstrap observers and adapters. (${c} reset step warning(s), ${d} adapter reload warning(s).)`:"Factory reset complete. Restart the daemon to re-bootstrap observers and adapters."}})})]})})]})})}function L({title:a,description:c,icon:d,label:e,busy:f,disabled:g,onClick:h}){return(0,b.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,b.jsxs)("div",{className:"space-y-0.5",children:[(0,b.jsx)("p",{className:"text-sm font-medium",children:a}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:c})]}),(0,b.jsxs)(v.Button,{variant:"destructive",size:"sm",onClick:h,disabled:g,className:"shrink-0",children:[d,f?"Working...":e]})]})}a.s(["default",0,function(){let{data:a}=(0,s.useConfig)(),{toast:d,showToast:e}=(0,t.useSaveConfig)(),{deferSaveFor:f,dv:g,dirtyFields:h,clearDirtyKeys:i}=(0,u.useDirtyFields)(),j=(0,o.useQueryClient)(),k=(0,B.useConfirm)(),[m,n]=(0,c.useState)(!1),p=async()=>{if(await k({title:"Reset disallowed tools to defaults?",description:"This will restore the default safety tool list, replacing any customizations.",confirmLabel:"Reset",variant:"destructive"})){n(!0);try{await r.api.post("/config/reset-safety"),j.invalidateQueries({queryKey:["config"]}),i(["disallowedTools","allowedToolsOverride"]),e("success","Safety tools reset to defaults")}finally{n(!1)}}};if(!a)return(0,b.jsx)("div",{className:"text-muted-foreground",children:"Loading..."});let q=f(a);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(x.PageHeader,{title:"Advanced",description:"Power-user knobs and safety settings. Most of these are low-level — read each description carefully before saving."}),(0,b.jsx)(E.SettingsToast,{toast:d}),(0,b.jsxs)(w.Card,{children:[(0,b.jsx)(w.CardHeader,{children:(0,b.jsx)(w.CardTitle,{children:"Safety — Tool Policy"})}),(0,b.jsxs)("div",{className:"space-y-3 [&>p]:max-w-prose",children:[(0,b.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Guardrails applied to every backend’s tool calls, enforced before each call runs. Entries are either a plain tool name (",(0,b.jsx)("code",{children:"Write"}),", ",(0,b.jsx)("code",{children:"WebFetch"}),") or a tool name with an argument pattern in parentheses (",(0,b.jsx)("code",{children:"Bash(rm -rf *)"}),") to match only specific invocations."," ",(0,b.jsx)("strong",{children:"Disallowed wins over allowed"})," — any match in the disallowed list blocks the call even if the allowed override would otherwise permit it. The per-backend Safe / Allow toggle lives in"," ",(0,b.jsx)("strong",{children:"Models & Cost → Execution Mode"}),"."]}),(0,b.jsx)(D.EditableArrayField,{label:"Disallowed Tools",values:g("disallowedTools",a.disallowedTools),configKey:"disallowedTools",variant:"red",placeholder:"e.g. Bash(rm -rf *)",modified:h.has("disallowedTools"),onSave:q}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground -mt-1",children:"Tools the agent is forbidden from calling. The defaults block destructive shell commands and dangerous file operations. Use Reset to Defaults below to restore them after experimenting."}),(0,b.jsx)(A.Separator,{}),(0,b.jsx)(D.EditableArrayField,{label:"Allowed Tools Override",values:g("allowedToolsOverride",a.allowedTools),configKey:"allowedToolsOverride",variant:"green",placeholder:"e.g. Bash(git push)",modified:h.has("allowedToolsOverride"),onSave:q}),(0,b.jsxs)("p",{className:"text-xs text-muted-foreground -mt-1",children:["Narrow exceptions to the disallowed list. Use this to permit a specific safe invocation of an otherwise-blocked tool — for example, allow ",(0,b.jsx)("code",{children:"Bash(git push)"})," while keeping arbitrary"," ",(0,b.jsx)("code",{children:"Bash"})," blocked."]}),(0,b.jsx)(A.Separator,{}),(0,b.jsxs)(v.Button,{variant:"outline",size:"sm",onClick:p,disabled:m,children:[(0,b.jsx)(l.RotateCcw,{className:"h-3.5 w-3.5 mr-1"}),m?"Resetting...":"Reset to Defaults"]}),(0,b.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Restores the built-in disallowed-tool list and"," ",(0,b.jsx)("strong",{children:"clears the allowed override list"}),", replacing any customizations in both. Use this when your safety config has drifted and you want a clean slate."]})]})]}),(0,b.jsx)(F,{}),(0,b.jsx)(K,{})]})}],94085)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=packages_dashboard_src_app_settings_advanced_page_tsx_0o~_885._.js.map
|
package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_routines_page_tsx_0wcgtqz._.js
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
module.exports=[88701,a=>{"use strict";var b=a.i(39752),c=a.i(34542),d=a.i(45952),e=a.i(43179),f=a.i(77694),g=a.i(92417),h=a.i(43169),i=a.i(96336),j=a.i(59974),k=a.i(7437),l=a.i(54150),m=a.i(28314),n=a.i(21218),o=a.i(30400),p=a.i(6943),q=a.i(70300),r=a.i(8212),s=a.i(28627),t=a.i(87206),u=a.i(23780),v=a.i(48558);let w={jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12},x={sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6},y={Sun:0,Mon:1,Tue:2,Wed:3,Thu:4,Fri:5,Sat:6};function z(a,b,c={}){let d=function(a){let b=a.trim().split(/\s+/);if(5!==b.length)return{ok:!1,error:"Cron must have exactly 5 fields: minute hour day-of-month month day-of-week."};let c=A(b[0],"minute");if(!c.ok)return c;let d=A(b[1],"hour");if(!d.ok)return d;let e=A(b[2],"dayOfMonth");if(!e.ok)return e;let f=A(b[3],"month");if(!f.ok)return f;let g=A(b[4],"dayOfWeek");return g.ok?{ok:!0,value:{minute:c.value,hour:d.value,dayOfMonth:e.value,month:f.value,dayOfWeek:g.value}}:g}(a);if(!d.ok)return d;let e=c.count??3,f=new Intl.DateTimeFormat("en-US",{timeZone:b,weekday:"short",year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",hourCycle:"h23"}),g=[],h=new Date(6e4*Math.floor((c.from??new Date).getTime()/6e4)+6e4),i=0;for(;g.length<e&&i<527040;)(function(a,b,c){let d=function(a,b){let c=a.formatToParts(b),d=a=>c.find(b=>b.type===a)?.value??"";return{minute:Number(d("minute")),hour:Number(d("hour")),day:Number(d("day")),month:Number(d("month")),weekday:y[d("weekday")]??-1}}(b,c);if(!a.minute.matches(d.minute)||!a.hour.matches(d.hour)||!a.month.matches(d.month))return!1;let e=a.dayOfMonth.matches(d.day),f=a.dayOfWeek.matches(d.weekday);return!!a.dayOfMonth.isWildcard&&!!a.dayOfWeek.isWildcard||(a.dayOfMonth.isWildcard?f:a.dayOfWeek.isWildcard?e:e||f)})(d.value,f,h)&&g.push(new Date(h)),h=new Date(h.getTime()+6e4),i+=1;return 0===g.length?{ok:!1,error:"No upcoming runs found within the next year for this timezone."}:{ok:!0,nextRuns:g}}function A(a,b){var c,d;let e,f=(c=a,(e="month"===(d=b)?w:"dayOfWeek"===d?x:null)?c.toLowerCase().replace(/[a-z]{3}/g,a=>{let b=e[a];return void 0===b?a:String(b)}):c.toLowerCase());if(0===f.length)return{ok:!1,error:`Cron ${D(b)} field is empty.`};let g=function(a){switch(a){case"minute":return{min:0,max:59};case"hour":return{min:0,max:23};case"dayOfMonth":return{min:1,max:31};case"month":return{min:1,max:12};case"dayOfWeek":return{min:0,max:7}}}(b),h=new Set;for(let a of f.split(",")){let c,d;if(!a)return{ok:!1,error:`Cron ${D(b)} field has an empty list item.`};let[e,f]=a.split("/");if(a.split("/").length>2)return{ok:!1,error:`Cron ${D(b)} field has an invalid step: \`${a}\`.`};let i=void 0===f?1:Number.parseInt(f,10);if(!Number.isInteger(i)||i<=0)return{ok:!1,error:`Cron ${D(b)} step must be a positive integer.`};if("*"===e)c=g.min,d=g.max;else if(e.includes("-")){let[f,g]=e.split("-");if(c=B(f,b),d=B(g,b),Number.isNaN(c)||Number.isNaN(d)||c>d)return{ok:!1,error:`Cron ${D(b)} range is invalid: \`${a}\`.`}}else if(d=c=B(e,b),Number.isNaN(c))return{ok:!1,error:`Cron ${D(b)} value is invalid: \`${a}\`.`};if(c<g.min||d>g.max)return{ok:!1,error:`Cron ${D(b)} values must stay within ${g.min}-${g.max}.`};for(let a=c;a<=d;a+=i)h.add(C(a,b))}if(0===h.size)return{ok:!1,error:`Cron ${D(b)} field produced no values.`};let i="dayOfWeek"===b?7:g.max-g.min+1;return{ok:!0,value:{matches:a=>h.has(C(a,b)),isWildcard:h.size===i}}}function B(a,b){let c=Number.parseInt(a,10);return Number.isInteger(c)?c:NaN}function C(a,b){return"dayOfWeek"===b&&7===a?0:a}function D(a){switch(a){case"minute":return"minute";case"hour":return"hour";case"dayOfMonth":return"day-of-month";case"month":return"month";case"dayOfWeek":return"day-of-week"}}let E=[{stem:"_index",label:"Overview",cadence:"navigation"},{stem:"hourly",label:"Hourly",cadence:"every hour"},{stem:"morning",label:"Morning",cadence:"04:00 daily"},{stem:"evening",label:"Evening",cadence:"18:00 daily"},{stem:"weekly",label:"Weekly",cadence:"Fri 18:00"},{stem:"monthly",label:"Monthly",cadence:"month end"}],F=new Map(E.map(a=>[a.stem,a]));function G(a){return`policies/routines/custom/${a}`}function H(a,b){let c=a.match(/^---\r?\n([\s\S]*?)\r?\n---/);if(!c)return null;let d=RegExp(`^${b}\\s*:\\s*(.+?)\\s*$`,"m"),e=c[1].match(d);if(!e)return null;let f=e[1].trim();return(f.startsWith('"')&&f.endsWith('"')||f.startsWith("'")&&f.endsWith("'"))&&(f=f.slice(1,-1)),f}function I({cronExpression:a,timeZone:d,title:e="Next runs"}){let f=(0,c.useMemo)(()=>a&&0!==a.trim().length?z(a,d,{count:3}):{ok:!1,error:"Add a `cron:` frontmatter field to preview the schedule."},[a,d]);return(0,b.jsxs)(o.Card,{className:"border-dashed p-3",children:[(0,b.jsx)("div",{className:"flex items-center justify-between gap-3",children:(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"text-xs font-semibold uppercase tracking-wider text-muted-foreground",children:e}),(0,b.jsxs)("p",{className:"pt-1 text-xs text-muted-foreground",children:["Previewed in daemon timezone: ",(0,b.jsx)("code",{children:d})]})]})}),f.ok?(0,b.jsx)("div",{className:"pt-3 text-sm",children:f.nextRuns.map((a,c)=>(0,b.jsx)("div",{className:"font-mono text-xs text-foreground",children:new Intl.DateTimeFormat("en-US",{timeZone:d,dateStyle:"medium",timeStyle:"short"}).format(a)},`${a.toISOString()}-${c}`))}):(0,b.jsx)("p",{className:"pt-3 text-xs text-muted-foreground",children:f.error})]})}function J({selection:a,onSelect:f,onCreateClick:g}){let{data:i}=(0,k.useContextList)("routines"),j=(0,c.useMemo)(()=>(i?.files??[]).filter(a=>a.name.startsWith("custom/")&&a.name.endsWith(".md")).map(a=>({slug:a.name.slice(7,-3),lastModified:a.lastModified})).sort((a,b)=>a.slug.localeCompare(b.slug)),[i?.files]),l=(0,c.useMemo)(()=>[...E,...(i?.files??[]).filter(a=>!a.name.startsWith("custom/")&&a.name.endsWith(".md")).map(a=>{var b;return(b=a.name).endsWith(".md")?b.slice(0,-3):b}).filter(a=>!F.has(a)).sort((a,b)=>a.localeCompare(b)).map(a=>({stem:a,label:a,cadence:"additional"}))],[i?.files]),m=b=>a.kind===b.kind&&("builtin"===a.kind?a.stem===b.stem:a.slug===b.slug);return(0,b.jsxs)(o.Card,{className:"p-3",children:[(0,b.jsx)("div",{className:"flex items-center justify-between px-1 pb-2",children:(0,b.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wider text-muted-foreground",children:"Built-in"})}),(0,b.jsx)("nav",{className:"flex flex-col",children:l.map(a=>{let c={kind:"builtin",stem:a.stem},e="_index"===a.stem;return(0,b.jsxs)("button",{type:"button",onClick:()=>f(c),className:(0,v.cn)("flex items-center justify-between rounded-md px-2 py-1.5 text-left text-sm hover:bg-accent",m(c)&&"bg-accent text-foreground"),children:[(0,b.jsxs)("span",{className:"flex items-center gap-2",children:[e?(0,b.jsx)(d.FileText,{className:"h-3.5 w-3.5 text-muted-foreground"}):(0,b.jsx)(h.Repeat,{className:"h-3.5 w-3.5 text-muted-foreground"}),a.label]}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:a.cadence})]},a.stem)})}),(0,b.jsx)(u.Separator,{className:"my-3"}),(0,b.jsxs)("div",{className:"flex items-center justify-between px-1 pb-2",children:[(0,b.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wider text-muted-foreground",children:"Custom"}),(0,b.jsxs)(n.Button,{type:"button",size:"sm",variant:"outline",className:"h-6 gap-1 px-2 text-xs",onClick:g,children:[(0,b.jsx)(e.Plus,{className:"h-3 w-3"}),"Add"]})]}),0===j.length?(0,b.jsx)("p",{className:"px-2 py-2 text-xs text-muted-foreground",children:"No custom routines yet."}):(0,b.jsx)("nav",{className:"flex flex-col",children:j.map(({slug:a})=>(0,b.jsx)(K,{slug:a,selected:m({kind:"custom",slug:a}),onSelect:()=>f({kind:"custom",slug:a})},a))})]})}function K({slug:a,selected:c,onSelect:d}){let e=G(a),f=(0,k.useContextFile)(e),h="false"===(f.data?H(f.data.content,"enabled"):null);return(0,b.jsxs)("button",{type:"button",onClick:d,className:(0,v.cn)("flex items-center justify-between rounded-md px-2 py-1.5 text-left text-sm hover:bg-accent",c&&"bg-accent text-foreground",h&&"opacity-60"),title:h?"Disabled — cron job not running":void 0,children:[(0,b.jsx)("span",{className:"truncate font-mono text-xs",children:a}),h&&(0,b.jsx)(g.PowerOff,{className:"ml-2 h-3 w-3 shrink-0 text-muted-foreground"})]})}function L({selection:a,timezone:c,onDeleted:d}){var e;let f="builtin"===a.kind?(e=a.stem,`routines/${e}`):G(a.slug),g=(0,k.useContextFile)(f);return g.isLoading?(0,b.jsx)(o.Card,{className:"p-4",children:(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"Loading…"})}):g.error||!g.data?404===g.error?.status?(0,b.jsx)(o.Card,{className:"p-4",children:(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"This routine file does not exist yet. Built-in routines are created by setup; custom routines are created via the Add button or by the agent on your request."})}):(0,b.jsx)(o.Card,{className:"p-4",children:(0,b.jsxs)("p",{className:"text-sm text-destructive",children:["Failed to load: ",g.error?.message??"unknown"]})}):(0,b.jsx)(M,{path:f,selection:a,timezone:c,editable:!1!==g.data.editable,initialFile:g.data,onDeleted:d},f)}function M({path:a,selection:d,timezone:e,editable:h,initialFile:l,onDeleted:p}){let[q,r]=(0,c.useState)(l.content),[s,t]=(0,c.useState)({content:l.content,mtime:l.lastModified}),[u,v]=(0,c.useState)(null),[w,x]=(0,c.useState)(null),y=(0,k.useUpdateContextFile)(),z=(0,k.useDeleteContextFile)(),A=(0,m.useConfirm)(),B=q!==s.content,C="custom"===d.kind?H(q,"cron"):null,D="custom"===d.kind?H(q,"enabled"):null,E="true"===D,F=async()=>{x(null);try{let b=await y.mutateAsync({path:a,content:q,expectedMtime:s.mtime});t({content:q,mtime:b.lastModified}),v("Saved."),setTimeout(()=>v(null),2500)}catch(a){a instanceof k.ContextConflictError?x("Another writer changed this file. Refresh to see the latest version."):(j.ApiError,x(a.message))}},G=async()=>{if("custom"===d.kind&&await A({title:`Delete custom routine "${d.slug}"?`,description:"This removes the file and unregisters its cron job. This cannot be undone from here; restore from the Knowledge page snapshots if needed.",confirmLabel:"Delete",variant:"destructive"}))try{await z.mutateAsync({path:a}),p()}catch(a){x((a instanceof j.ApiError,a.message))}};return(0,b.jsxs)(o.Card,{className:"flex flex-col gap-3 p-4",children:[(0,b.jsxs)(o.CardHeader,{className:"flex flex-row items-center justify-between p-0 pb-0",children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)(o.CardTitle,{className:"text-sm font-semibold",children:[a,".md"]}),"custom"===d.kind?(0,b.jsxs)("p",{className:"pt-1 text-xs text-muted-foreground",children:["Frontmatter (",(0,b.jsx)("code",{children:"cron:"}),", ",(0,b.jsx)("code",{children:"process_key"}),","," ",(0,b.jsx)("code",{children:"enabled"}),", ",(0,b.jsx)("code",{children:"backend_tier"}),","," ",(0,b.jsx)("code",{children:"max_budget_usd"}),") and a ",(0,b.jsx)("code",{children:"## Checks"})," ","section are required. The scheduler reloads on save."]}):(0,b.jsxs)("p",{className:"pt-1 text-xs text-muted-foreground",children:["All files under ",(0,b.jsx)("code",{children:"policies/routines/"}),", including"," ",(0,b.jsx)("code",{children:"_index.md"}),", are editable here."]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:["custom"===d.kind&&("true"===D||"false"===D)&&(0,b.jsx)(n.Button,{type:"button",variant:E?"default":"outline",size:"sm",className:"gap-1",onClick:()=>{"custom"===d.kind&&h&&r(function(a,b,c){let d=a.match(/^---\r?\n([\s\S]*?)\r?\n---/);if(!d)return a;let e=d[1],f=RegExp(`^(${b})\\s*:\\s*.+?\\s*$`,"m");if(f.test(e)){let g=e.replace(f,`${b}: ${c}`);return a.replace(d[0],`---
|
|
2
|
-
${g}
|
|
3
|
-
---`)}let g=`${e}
|
|
4
|
-
${b}: ${c}`;return a.replace(d[0],`---
|
|
5
|
-
${g}
|
|
6
|
-
---`)}(q,"enabled",E?"false":"true"))},disabled:!h,title:E?"Disable this routine (stops the cron job on save)":"Enable this routine (registers the cron job on save)",children:E?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f.Power,{className:"h-3.5 w-3.5"}),"Enabled"]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(g.PowerOff,{className:"h-3.5 w-3.5"}),"Disabled"]})}),"custom"===d.kind&&(0,b.jsxs)(n.Button,{type:"button",variant:"ghost",size:"sm",className:"gap-1 text-destructive hover:text-destructive",onClick:G,children:[(0,b.jsx)(i.Trash2,{className:"h-3.5 w-3.5"}),"Delete"]}),(0,b.jsx)(n.Button,{type:"button",size:"sm",onClick:F,disabled:!B||!h||y.isPending,children:y.isPending?"Saving…":"Save"})]})]}),"custom"===d.kind&&(0,b.jsx)(I,{cronExpression:C,timeZone:e}),(0,b.jsx)("textarea",{value:q??"",onChange:a=>r(a.target.value),disabled:!h,spellCheck:!1,className:"min-h-[480px] w-full resize-y rounded-md border border-border bg-muted/30 p-3 font-mono text-xs leading-relaxed focus:outline-none focus:ring-2 focus:ring-ring"}),u&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:u}),w&&(0,b.jsx)("p",{className:"text-xs text-destructive",children:w})]})}let N=/^[a-z0-9][a-z0-9-]*[a-z0-9]$|^[a-z0-9]$/;function O({open:a,timeZone:d,onOpenChange:e,onCreated:f}){let[g,h]=(0,c.useState)(""),[i,l]=(0,c.useState)("0 11 * * 2"),[m,o]=(0,c.useState)("medium"),[t,u]=(0,c.useState)("0.05"),[v,w]=(0,c.useState)(""),[x,y]=(0,c.useState)(null),A=(0,k.useUpdateContextFile)(),B=(0,c.useMemo)(()=>z(i,d,{count:3}),[i,d]),C=async a=>{let b;if(a.preventDefault(),y(null),!N.test(g)||g.length>64)return void y("Slug must be lowercase kebab-case (a–z, 0–9, hyphen), 1–64 chars, and may not start or end with a hyphen.");if(!B.ok)return void y(B.error);let c=Number(t);if(!Number.isFinite(c)||c<=0)return void y("Max budget must be a positive number in USD.");let d=(b=new Date().toISOString().slice(0,10),`---
|
|
7
|
-
type: rule
|
|
8
|
-
slug: ${g}
|
|
9
|
-
cron: "${i}"
|
|
10
|
-
process_key: routine.custom.${g}
|
|
11
|
-
enabled: true
|
|
12
|
-
added_at: ${b}
|
|
13
|
-
added_by: user via dashboard
|
|
14
|
-
backend_tier: ${m}
|
|
15
|
-
max_budget_usd: ${c}
|
|
16
|
-
---
|
|
17
|
-
# ${g}
|
|
18
|
-
|
|
19
|
-
${v.trim()||"Describe what this routine should do here."}
|
|
20
|
-
|
|
21
|
-
## Checks
|
|
22
|
-
|
|
23
|
-
### First check
|
|
24
|
-
- **Action**: describe the action to take each run.
|
|
25
|
-
`);try{await A.mutateAsync({path:G(g),content:d}),f(g)}catch(a){y((a instanceof j.ApiError,a.message))}};return(0,b.jsx)(p.Dialog,{open:a,onOpenChange:e,children:(0,b.jsxs)(p.DialogContent,{children:[(0,b.jsx)(p.DialogHeader,{children:(0,b.jsx)(p.DialogTitle,{children:"New custom routine"})}),(0,b.jsxs)("form",{className:"flex flex-col gap-3",onSubmit:C,children:[(0,b.jsx)(q.FormField,{label:"Slug",children:(0,b.jsx)(r.Input,{value:g,onChange:a=>h(a.target.value.trim()),placeholder:"tuesday-notion-sync",autoFocus:!0})}),(0,b.jsx)(q.FormField,{label:"Cron expression (5 fields, daemon timezone)",children:(0,b.jsx)(r.Input,{value:i,onChange:a=>l(a.target.value),placeholder:"0 11 * * 2",className:"font-mono"})}),(0,b.jsx)(I,{cronExpression:i,timeZone:d,title:"Cron preview"}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,b.jsx)(q.FormField,{label:"Backend tier",children:(0,b.jsxs)(s.NativeSelect,{value:m,onChange:a=>o(a.target.value),children:[(0,b.jsx)("option",{value:"lite",children:"lite (haiku)"}),(0,b.jsx)("option",{value:"medium",children:"medium (sonnet)"}),(0,b.jsx)("option",{value:"high",children:"high (opus)"})]})}),(0,b.jsx)(q.FormField,{label:"Max budget (USD)",children:(0,b.jsx)(r.Input,{value:t,onChange:a=>u(a.target.value),placeholder:"0.05"})})]}),(0,b.jsx)(q.FormField,{label:"Description (optional)",children:(0,b.jsx)("textarea",{value:v,onChange:a=>w(a.target.value),placeholder:"Weekly Tuesday check of the Notion planning DB…",className:"min-h-[80px] resize-y rounded-md border border-input bg-background p-2 text-sm ring-offset-background focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-1"})}),x&&(0,b.jsx)("p",{className:"text-xs text-destructive",children:x}),(0,b.jsxs)(p.DialogFooter,{children:[(0,b.jsx)(n.Button,{type:"button",variant:"ghost",onClick:()=>e(!1),children:"Cancel"}),(0,b.jsx)(n.Button,{type:"submit",disabled:A.isPending,children:A.isPending?"Creating…":"Create"})]})]})]})})}a.s(["default",0,function(){let[a,d]=(0,c.useState)({kind:"builtin",stem:"_index"}),[e,f]=(0,c.useState)(!1),g=(0,l.useConfig)(),h=(g.data?.timezone&&g.data.timezone.length>0?g.data.timezone:Intl.DateTimeFormat().resolvedOptions().timeZone)||"UTC";return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(t.PageHeader,{title:"Routines",description:"Per-cadence check rulebooks. Each file is injected into the task-flow prompt when its routine fires. Edits persist immediately; saving an enabled custom routine registers (or refreshes) its cron job."}),(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-[280px_minmax(0,1fr)]",children:[(0,b.jsx)(J,{selection:a,onSelect:d,onCreateClick:()=>f(!0)}),(0,b.jsx)(L,{selection:a,timezone:h,onDeleted:()=>d({kind:"builtin",stem:"_index"})})]}),e&&(0,b.jsx)(O,{open:!0,timeZone:h,onOpenChange:f,onCreated:a=>{d({kind:"custom",slug:a}),f(!1)}})]})}],88701)}];
|
|
26
|
-
|
|
27
|
-
//# sourceMappingURL=packages_dashboard_src_app_settings_routines_page_tsx_0wcgtqz._.js.map
|
package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_schedule_page_tsx_0b8zr2l._.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[21532,a=>{"use strict";var b=a.i(39752),c=a.i(34542),d=a.i(54150),e=a.i(40410),f=a.i(92379),g=a.i(56295),h=a.i(91340);function i(a){return a%24/24*Math.PI*2-Math.PI/2}function j(a,b){return{x:120+b*Math.cos(a),y:120+b*Math.sin(a)}}function k(a,b,c){let d=b-a;d<=0&&(d+=2*Math.PI),d>2*Math.PI-.001&&(d=2*Math.PI-.001);let e=+(d>Math.PI),f=j(a,c),g=j(a+d,c);return`M ${f.x} ${f.y} A ${c} ${c} 0 ${e} 1 ${g.x} ${g.y}`}function l(a){let[b,c]=a.split(":").map(Number);return(b??0)+(c??0)/60}function m(a){let b=Math.floor((a%24+24)%24),c=Math.round((a-Math.floor(a))*60)%60;return`${String(b).padStart(2,"0")}:${String(c).padStart(2,"0")}`}function n(a){return Math.round(4*a)/4}function o(a){return Math.round(a)%24}let p="var(--color-destructive)",q="var(--color-success)",r="var(--color-primary)";function s({values:a,onChange:d}){let e,f,g,h=(0,c.useRef)(null),[u,v]=(0,c.useState)(null),[w,x]=(0,c.useState)(null),y=l(a.quietHoursStart),z=l(a.quietHoursEnd),A=a.activeStartHour,B=a.activeEndHour%24,C=i(y),D=i(z),E=i(A),F=i(B),G=i(a.dayBoundaryHour),H=()=>{v(null)};return(0,b.jsx)("div",{className:"flex items-center justify-center",children:(0,b.jsxs)("svg",{ref:h,viewBox:"0 0 240 240",className:"w-full max-w-[280px] select-none touch-none",onPointerMove:b=>{if(!u)return;let c=(a=>{let b,c=h.current;if(!c)return 0;let d=c.getBoundingClientRect(),e=240/d.width,f=240/d.height,g=(a.clientX-d.left)*e-120;return(b=(Math.atan2((a.clientY-d.top)*f-120,g)+Math.PI/2)/(2*Math.PI)*24)<0&&(b+=24),b%24})(b),e={...a};switch(u){case"quietStart":e.quietHoursStart=m(n(c));break;case"quietEnd":e.quietHoursEnd=m(n(c));break;case"activeStart":e.activeStartHour=o(c);break;case"activeEnd":{let a=o(c);e.activeEndHour=0===a?24:a}}d(e)},onPointerUp:H,onPointerLeave:H,children:[(0,b.jsx)("circle",{cx:120,cy:120,r:100,fill:"none",stroke:"currentColor",strokeWidth:1,className:"text-border"}),Array.from({length:24},(a,c)=>{let d=i(c),e=c%3==0,f=j(d,e?95:97),g=j(d,100);return(0,b.jsx)("line",{x1:f.x,y1:f.y,x2:g.x,y2:g.y,stroke:"currentColor",strokeWidth:e?1.5:.5,className:"text-muted-foreground"},c)}),[0,3,6,9,12,15,18,21].map(a=>{let c=j(i(a),108);return(0,b.jsx)("text",{x:c.x,y:c.y,textAnchor:"middle",dominantBaseline:"central",className:"fill-muted-foreground text-[9px]",children:a},a)}),(0,b.jsx)("path",{d:k(C,D,90),fill:"none",stroke:p,strokeWidth:8,strokeLinecap:"round",opacity:.6}),(0,b.jsx)("path",{d:k(E,F,75),fill:"none",stroke:q,strokeWidth:8,strokeLinecap:"round",opacity:.6}),(e=j(G,60),f=j(G,100),(0,b.jsx)("line",{x1:e.x,y1:e.y,x2:f.x,y2:f.y,stroke:r,strokeWidth:2,strokeDasharray:"4 2"})),(g=j(G,53),(0,b.jsx)("text",{x:g.x,y:g.y,textAnchor:"middle",dominantBaseline:"central",className:"fill-primary text-[8px] font-medium",children:"day"})),function({dragging:a,hovered:c,setHovered:d,handlePointerDown:e,quietStartA:f,quietEndA:g,activeStartA:h,activeEndA:i,QUIET_R:j,ACTIVE_R:k,values:l}){let m=a??c,n=[{target:"quietStart",angle:f,r:j,color:p,label:l.quietHoursStart},{target:"quietEnd",angle:g,r:j,color:p,label:l.quietHoursEnd},{target:"activeStart",angle:h,r:k,color:q,label:`${l.activeStartHour}:00`},{target:"activeEnd",angle:i,r:k,color:q,label:`${l.activeEndHour}:00`}].sort((a,b)=>(a.target===m)-(b.target===m));return(0,b.jsx)(b.Fragment,{children:n.map(a=>(0,b.jsx)(t,{angle:a.angle,r:a.r,color:a.color,label:a.label,active:a.target===m,onPointerDown:e(a.target),onPointerEnter:()=>d(a.target),onPointerLeave:()=>d(null)},a.target))})}({dragging:u,hovered:w,setDragging:v,setHovered:x,handlePointerDown:a=>b=>{b.preventDefault(),b.target.setPointerCapture(b.pointerId),v(a)},quietStartA:C,quietEndA:D,activeStartA:E,activeEndA:F,QUIET_R:90,ACTIVE_R:75,values:a}),(0,b.jsxs)("text",{x:120,y:112,textAnchor:"middle",className:"fill-muted-foreground text-[8px]",children:[(0,b.jsx)("tspan",{style:{fill:p},children:"●"})," quiet hours"]}),(0,b.jsxs)("text",{x:120,y:124,textAnchor:"middle",className:"fill-muted-foreground text-[8px]",children:[(0,b.jsx)("tspan",{style:{fill:q},children:"●"})," active window"]}),(0,b.jsxs)("text",{x:120,y:136,textAnchor:"middle",className:"fill-muted-foreground text-[8px]",children:[(0,b.jsx)("tspan",{style:{fill:r},children:"---"})," day boundary"]})]})})}function t({angle:a,r:c,color:d,label:e,active:f,onPointerDown:g,onPointerEnter:h,onPointerLeave:i}){let k=j(a,c),{lx:l,ly:m}={lx:Math.max(12,Math.min(228,k.x)),ly:Math.max(12,Math.min(228,k.y-12))};return(0,b.jsxs)("g",{onPointerDown:g,onPointerEnter:h,onPointerLeave:i,className:"cursor-grab active:cursor-grabbing",children:[(0,b.jsx)("circle",{cx:k.x,cy:k.y,r:12,fill:"transparent"}),(0,b.jsx)("circle",{cx:k.x,cy:k.y,r:f?7:5,fill:d,stroke:"var(--color-background)",strokeWidth:2}),f&&(0,b.jsx)("text",{x:l,y:m,textAnchor:"middle",className:"fill-foreground text-[9px] font-medium pointer-events-none",children:e})]})}var u=a.i(92241),v=a.i(87759),w=a.i(70297),x=a.i(21218),y=a.i(8212),z=a.i(30400),A=a.i(7384),B=a.i(8753),C=a.i(62588),D=a.i(81130),E=a.i(59974);let F=["delegated-sync"];function G(){let{data:a,isLoading:c}=(0,C.useQuery)({queryKey:F,queryFn:()=>E.api.get("/delegated-sync"),staleTime:5e3,refetchInterval:15e3});if(c||!a)return null;let d=Object.entries(a.cadences).map(([a,b])=>({id:a,...b}));if(!a.workerRunning&&0===d.length)return null;if(!a.workerRunning)return(0,b.jsxs)(z.Card,{children:[(0,b.jsx)(z.CardHeader,{children:(0,b.jsx)(z.CardTitle,{children:"Background Sync"})}),(0,b.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,b.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 e=d.some(a=>a.enabled);return(0,b.jsxs)(z.Card,{children:[(0,b.jsx)(z.CardHeader,{children:(0,b.jsxs)(z.CardTitle,{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{children:"Background Sync"}),a.withinActiveHours?(0,b.jsx)(A.Badge,{variant:"green",children:"active"}):(0,b.jsx)(A.Badge,{variant:"gray",children:"outside active hours"})]})}),(0,b.jsxs)("div",{className:"space-y-1 p-4 pt-0",children:[(0,b.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,b.jsx)("div",{className:"space-y-2",children:d.map(a=>(0,b.jsx)(H,{row:a},a.id))}),e&&(0,b.jsx)(J,{startHour:a.activeHours.startHour,endHour:a.activeHours.endHour})]})]})}function H({row:a}){let d,e,f=(d=(0,D.useQueryClient)(),(0,B.useMutation)({mutationFn:({cadenceId:a,body:b})=>E.api.patch(`/delegated-sync/cadences/${encodeURIComponent(a)}`,b),onSuccess:()=>{d.invalidateQueries({queryKey:F})}})),g=(e=(0,D.useQueryClient)(),(0,B.useMutation)({mutationFn:({cadenceId:a})=>E.api.post(`/delegated-sync/cadences/${encodeURIComponent(a)}/run`,{}),onSuccess:()=>{e.invalidateQueries({queryKey:F})}})),[h,i]=(0,c.useState)(String(Math.round(a.intervalSeconds/60))),[j,k]=(0,c.useState)(null),[l,m]=(0,c.useState)(null);(0,c.useEffect)(()=>{i(String(Math.round(a.intervalSeconds/60)))},[a.intervalSeconds]);let n=Math.ceil(a.softFloorSeconds/60),o=Math.round(a.defaultIntervalSeconds/60),p=async()=>{m(null);try{await g.mutateAsync({cadenceId:a.id})}catch(a){m(a instanceof Error?a.message:"Run Now failed")}},q=f.isPending,r=g.isPending,s=a.intervalSeconds===a.defaultIntervalSeconds,t="native"===a.mode;return(0,b.jsxs)("div",{className:"rounded border border-border/50 p-3",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("p",{className:"text-sm font-medium text-foreground",children:a.displayName}),"native"===a.mode&&(0,b.jsx)(A.Badge,{variant:"green",children:"native"}),"delegated"===a.mode&&(0,b.jsxs)(A.Badge,{variant:"blue",children:["delegated",a.backend?` \xb7 ${a.backend}`:""]}),!t&&"tripped"===a.circuitState&&(0,b.jsx)(A.Badge,{variant:"red",children:"circuit tripped"}),!t&&a.failureCount>0&&"ok"===a.circuitState&&(0,b.jsxs)(A.Badge,{variant:"amber",children:[a.failureCount," recent failure",1===a.failureCount?"":"s"]})]}),(0,b.jsx)("p",{className:"mt-0.5 text-xs text-muted-foreground",children:a.description}),!t&&(0,b.jsx)(I,{row:a})]}),!t&&(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,b.jsx)(x.Button,{variant:a.enabled?"default":"outline",size:"sm",onClick:()=>{f.mutate({cadenceId:a.id,body:{enabled:!a.enabled}})},disabled:q,children:q?(0,b.jsx)(u.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):a.enabled?"Enabled":"Disabled"}),(0,b.jsxs)(x.Button,{variant:"outline",size:"sm",onClick:p,disabled:r,title:"Run this cadence once, regardless of schedule",children:[r?(0,b.jsx)(u.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):(0,b.jsx)(v.Play,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{className:"ml-1",children:"Run now"})]})]})]}),t?(0,b.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,b.jsxs)("div",{className:"mt-2 flex items-center gap-2 text-xs text-muted-foreground",children:[(0,b.jsxs)("label",{className:"flex items-center gap-1",children:[(0,b.jsx)("span",{children:"Interval:"}),(0,b.jsx)(y.Input,{type:"number",min:n,max:1440,value:h,onChange:a=>i(a.target.value),onBlur:()=>{k(null);let b=Number(h);!Number.isInteger(b)||b<=0?k("Whole positive number required"):b<n?k(`Minimum ${n} min`):b>1440?k("Maximum 1440 min (24 h)"):60*b!==a.intervalSeconds&&f.mutate({cadenceId:a.id,body:{intervalSeconds:60*b}},{onError:a=>k(a.message)})},onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),a.target.blur())},className:"h-7 w-20 px-2 text-xs"}),(0,b.jsx)("span",{children:"min"})]}),(0,b.jsxs)("span",{className:"text-muted-foreground/70",children:["(",n,"–",1440,"; default ",o,")"]}),!s&&(0,b.jsxs)("button",{type:"button",onClick:()=>{i(String(o)),f.mutate({cadenceId:a.id,body:{intervalSeconds:60*o}})},className:"inline-flex items-center gap-0.5 text-[10px] text-muted-foreground hover:text-foreground",children:[(0,b.jsx)(w.RotateCcw,{className:"h-2.5 w-2.5"}),"reset"]}),j&&(0,b.jsx)("span",{className:"text-destructive",children:j})]}),l&&(0,b.jsxs)("p",{className:"mt-1 text-xs text-destructive",children:["Run Now: ",l]})]})}function I({row:a}){var d;let e=(0,c.useMemo)(()=>K(a.lastSuccessAt),[a.lastSuccessAt]),f=(0,c.useMemo)(()=>K(a.nextRunAt),[a.nextRunAt]);return a.lastAttemptAt||a.nextRunAt?(0,b.jsxs)("p",{className:"mt-1 text-xs text-muted-foreground/70",children:[a.lastSuccessAt?`Last success ${e}.`:"No successful run yet.",a.enabled&&a.nextRunAt&&` Next run ${f}.`,a.lastError&&` Last error: ${(d=a.lastError).length<=80?d:`${d.slice(0,79)}…`}`]}):(0,b.jsx)("p",{className:"mt-1 text-xs text-muted-foreground/70",children:"Has not run yet."})}function J({startHour:a,endHour:d}){let e,f=(e=(0,D.useQueryClient)(),(0,B.useMutation)({mutationFn:a=>E.api.patch("/delegated-sync/active-hours",a),onSuccess:()=>{e.invalidateQueries({queryKey:F})}})),[g,h]=(0,c.useState)(String(a)),[i,j]=(0,c.useState)(String(d)),[k,l]=(0,c.useState)(null);(0,c.useEffect)(()=>{h(String(a))},[a]),(0,c.useEffect)(()=>{j(String(d))},[d]);let m=()=>{l(null);let b=Number(g),c=Number(i);!Number.isInteger(b)||b<0||b>23?l("Start must be an integer 0–23"):!Number.isInteger(c)||c<1||c>24?l("End must be an integer 1–24"):b>=c?l("Start must be earlier than end"):(b!==a||c!==d)&&f.mutate({startHour:b,endHour:c},{onError:a=>l(a.message)})};return(0,b.jsxs)("div",{className:"mt-3 rounded border border-border/50 bg-muted/30 p-3",children:[(0,b.jsx)("p",{className:"text-sm font-medium text-foreground",children:"Active hours"}),(0,b.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,b.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-3 text-xs",children:[(0,b.jsxs)("label",{className:"flex items-center gap-1",children:[(0,b.jsx)("span",{children:"Start:"}),(0,b.jsx)(y.Input,{type:"number",min:0,max:23,value:g,onChange:a=>h(a.target.value),onBlur:m,onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),a.target.blur())},className:"h-7 w-16 px-2 text-xs"}),(0,b.jsx)("span",{children:":00"})]}),(0,b.jsxs)("label",{className:"flex items-center gap-1",children:[(0,b.jsx)("span",{children:"End:"}),(0,b.jsx)(y.Input,{type:"number",min:1,max:24,value:i,onChange:a=>j(a.target.value),onBlur:m,onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),a.target.blur())},className:"h-7 w-16 px-2 text-xs"}),(0,b.jsx)("span",{children:":00"})]}),f.isPending&&(0,b.jsx)(u.Loader2,{className:"h-3.5 w-3.5 animate-spin text-muted-foreground"}),k&&(0,b.jsx)("span",{className:"text-destructive",children:k})]})]})}function K(a){var b,c;if(!a)return"—";let d=Date.parse(a);if(!Number.isFinite(d))return"—";let e=Math.round((d-Date.now())/1e3);return e>=0?(b=e)<60?`in ${b}s`:b<3600?`in ${Math.round(b/60)}m`:b<86400?`in ${Math.round(b/3600)}h`:`in ${Math.round(b/86400)}d`:(c=-e)<60?`${c}s ago`:c<3600?`${Math.round(c/60)}m ago`:c<86400?`${Math.round(c/3600)}h ago`:`${Math.round(c/86400)}d ago`}var L=a.i(87206);a.s(["default",0,function(){let{data:a}=(0,d.useConfig)(),{df:i}=(0,d.useConfigDefaults)(),{data:j}=(0,e.useHealth)(),{deferSaveFor:k,dv:l,dirtyFields:m,setDirty:n}=(0,f.useDirtyFields)(),o=(0,c.useCallback)(b=>{a&&(n("quietHoursStart",b.quietHoursStart,a.quietHoursStart),n("quietHoursEnd",b.quietHoursEnd,a.quietHoursEnd),n("hourlyCheckActiveStartHour",b.activeStartHour,a.hourlyCheckActiveStartHour),n("hourlyCheckActiveEndHour",b.activeEndHour,a.hourlyCheckActiveEndHour))},[a,n]);if(!a)return(0,b.jsx)("div",{className:"text-muted-foreground",children:"Loading..."});let p=k(a),q={quietHoursStart:l("quietHoursStart",a.quietHoursStart),quietHoursEnd:l("quietHoursEnd",a.quietHoursEnd),activeStartHour:l("hourlyCheckActiveStartHour",a.hourlyCheckActiveStartHour),activeEndHour:l("hourlyCheckActiveEndHour",a.hourlyCheckActiveEndHour),dayBoundaryHour:l("dayBoundaryHour",a.dayBoundaryHour)};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(L.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,b.jsxs)(g.ConfigSection,{title:"Time axis",helpDocId:"concepts/agent-day",children:[(0,b.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,b.jsx)(s,{values:q,onChange:o})]}),(0,b.jsxs)(g.ConfigSection,{title:"Day shape",helpDocId:"concepts/agent-day",children:[(0,b.jsx)(g.EditableField,{label:"Timezone",value:l("timezone",a.timezone),configKey:"timezone",modified:m.has("timezone"),defaultValue:i("timezone"),description:"IANA timezone name (e.g. America/New_York, America/Los_Angeles). All schedules, quiet hours, and daily boundaries are interpreted in this zone.",onSave:p}),(0,b.jsx)(g.EditableField,{label:"Day Boundary Hour",value:l("dayBoundaryHour",a.dayBoundaryHour),configKey:"dayBoundaryHour",type:"number",min:0,max:9,modified:m.has("dayBoundaryHour"),defaultValue:i("dayBoundaryHour"),description:"Hour (0–9, local time) at which a new agent day begins. At this hour the previous today.md is archived, a new one is generated, and daily retention and summary routines run. Pick a time you're reliably asleep — 04:00 is the default.",onSave:p})]}),(0,b.jsxs)(g.ConfigSection,{title:"Hourly Check",helpDocId:"features/routines/hourly-check",children:[(0,b.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,b.jsx)("code",{children:"today.md"}),", ",(0,b.jsx)("code",{children:"roadmap.md"}),", project notes), and stays silent otherwise. Most runs produce no output — that is by design."]}),(0,b.jsx)(g.EditableBooleanField,{label:"Hourly Check Enabled",value:l("hourlyCheckEnabled",a.hourlyCheckEnabled),configKey:"hourlyCheckEnabled",modified:m.has("hourlyCheckEnabled"),defaultValue:i("hourlyCheckEnabled"),description:"Master switch for the polling routine. When off, the agent only runs on direct messages, schedule.approaching events, and explicitly scheduled tasks.",onSave:p}),(0,b.jsx)(g.EditableField,{label:"Check Interval",value:l("hourlyCheckIntervalMinutes",a.hourlyCheckIntervalMinutes),configKey:"hourlyCheckIntervalMinutes",type:"number",suffix:"min",min:1,max:1440,modified:m.has("hourlyCheckIntervalMinutes"),defaultValue:i("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:p}),(0,b.jsx)(g.EditableField,{label:"Active Start Hour",value:l("hourlyCheckActiveStartHour",a.hourlyCheckActiveStartHour),configKey:"hourlyCheckActiveStartHour",type:"number",min:0,max:23,modified:m.has("hourlyCheckActiveStartHour"),defaultValue:i("hourlyCheckActiveStartHour"),description:"Hour (0–23, local time) when the hourly check window opens. Runs before this hour are skipped entirely.",onSave:p}),(0,b.jsx)(g.EditableField,{label:"Active End Hour",value:l("hourlyCheckActiveEndHour",a.hourlyCheckActiveEndHour),configKey:"hourlyCheckActiveEndHour",type:"number",min:1,max:24,modified:m.has("hourlyCheckActiveEndHour"),defaultValue:i("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:p}),(0,b.jsx)(g.EditableField,{label:"Min Observations",value:l("hourlyCheckMinObservations",a.hourlyCheckMinObservations),configKey:"hourlyCheckMinObservations",type:"number",min:0,max:1e3,modified:m.has("hourlyCheckMinObservations"),defaultValue:i("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:p}),(0,b.jsx)("p",{className:"pt-2 text-xs text-muted-foreground",children:"Trigger one immediately from the CLI:"}),(0,b.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,b.jsxs)(g.ConfigSection,{title:"Monthly Review (experimental — off by default)",children:[(0,b.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,b.jsx)("code",{children:"journal/monthly/YYYY-MM.md"})," and appends a ",(0,b.jsx)("code",{children:"## Monthly YYYY-MM"})," block to"," ",(0,b.jsx)("code",{children:"journal/agent.md"}),"."]}),(0,b.jsxs)("p",{className:"pb-2 text-xs text-muted-foreground",children:["It is ",(0,b.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,b.jsx)(g.EditableBooleanField,{label:"Monthly Review Enabled",value:l("monthlyReviewEnabled",a.monthlyReviewEnabled),configKey:"monthlyReviewEnabled",modified:m.has("monthlyReviewEnabled"),defaultValue:i("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:p})]}),(0,b.jsx)(G,{}),(0,b.jsxs)(g.ConfigSection,{title:"Notifications",helpDocId:"features/operations/quiet-hours",children:[(0,b.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,b.jsx)(g.EditableField,{label:"Max Per Hour",value:l("maxNotificationsPerHour",a.maxNotificationsPerHour),configKey:"maxNotificationsPerHour",type:"number",modified:m.has("maxNotificationsPerHour"),defaultValue:i("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:p}),(0,b.jsx)(g.EditableField,{label:"Max Per Day",value:l("maxNotificationsPerDay",a.maxNotificationsPerDay),configKey:"maxNotificationsPerDay",type:"number",modified:m.has("maxNotificationsPerDay"),defaultValue:i("maxNotificationsPerDay"),description:"Hard cap per calendar day (resets at the Day Boundary Hour). A safety net on top of the per-hour cap. Suppressed notifications are still logged.",onSave:p}),(0,b.jsx)(g.EditableField,{label:"Quiet Hours Start",value:l("quietHoursStart",a.quietHoursStart),configKey:"quietHoursStart",modified:m.has("quietHoursStart"),defaultValue:i("quietHoursStart"),description:"24-hour time (HH:MM, e.g. 22:00) when quiet hours begin in the configured timezone. During quiet hours, regular notifications are held back. Safety-category notifications (deadline, error, security, critical) still go through.",onSave:p}),(0,b.jsx)(g.EditableField,{label:"Quiet Hours End",value:l("quietHoursEnd",a.quietHoursEnd),configKey:"quietHoursEnd",modified:m.has("quietHoursEnd"),defaultValue:i("quietHoursEnd"),description:"24-hour time (HH:MM, e.g. 08:00) when quiet hours end. If end is earlier than start, the window wraps over midnight.",onSave:p}),(0,b.jsx)(g.EditableField,{label:"Batch Interval",value:l("batchIntervalMinutes",a.batchIntervalMinutes),configKey:"batchIntervalMinutes",type:"number",suffix:"min",modified:m.has("batchIntervalMinutes"),defaultValue:i("batchIntervalMinutes"),description:"Minimum minutes between notification deliveries from the same routine. Multiple notifications queued within this window are combined into a single message so you don’t get spammed.",onSave:p}),(0,b.jsxs)("div",{className:"py-2 border-b text-sm text-muted-foreground",children:["Default reminder destinations are managed in"," ",(0,b.jsx)("a",{href:"/connections/messaging",className:"text-foreground underline underline-offset-2 hover:no-underline",children:"Connections → Messaging → Default Reminder Destinations"}),"."]}),(0,b.jsx)(h.PrimaryPlatformField,{health:j,value:l("primaryPlatform",a.primaryPlatform),defaultValue:i("primaryPlatform"),modified:m.has("primaryPlatform"),onSave:p})]})]})}],21532)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=packages_dashboard_src_app_settings_schedule_page_tsx_0b8zr2l._.js.map
|
|
@@ -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 s=(0,e.i(94237).cva)("rounded-xl border p-5 shadow-[0_1px_3px_rgb(0_0_0/0.04)]",{variants:{tone:{default:"border-border bg-card",warning:"border-amber-200 bg-amber-50/50 dark:border-amber-900 dark:bg-amber-950/30",success:"border-emerald-200 bg-emerald-50/50 dark:border-emerald-900 dark:bg-emerald-950/30",error:"border-red-200 bg-red-50/50 dark:border-red-900 dark:bg-red-950/30"},interactive:{true:"transition-shadow duration-150 hover:shadow-[0_4px_6px_rgb(0_0_0/0.06)]",false:""}},defaultVariants:{tone:"default",interactive:!1}});e.s(["Card",0,function({className:e,tone:a,interactive:n,...i}){return(0,t.jsx)("div",{className:(0,r.cn)(s({tone:a,interactive:n}),e),...i})},"CardHeader",0,function({className:e,...s}){return(0,t.jsx)("div",{className:(0,r.cn)("mb-3 flex items-center justify-between",e),...s})},"CardStatLabel",0,function({className:e,...s}){return(0,t.jsx)("h3",{className:(0,r.cn)("text-sm font-medium text-muted-foreground",e),...s})},"CardTitle",0,function({className:e,...s}){return(0,t.jsx)("h3",{className:(0,r.cn)("text-lg font-semibold text-foreground",e),...s})},"CardValue",0,function({className:e,...s}){return(0,t.jsx)("div",{className:(0,r.cn)("text-3xl font-bold text-foreground",e),...s})}])},39982,e=>{"use strict";var t=e.i(54710),r=e.i(81471);e.s(["PageHeader",0,function({title:e,description:s,icon:a,badge:n,actions:i,children:l,className:o}){return(0,t.jsxs)("header",{className:(0,r.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:[a&&(0,t.jsx)(a,{className:"h-5 w-5 text-muted-foreground"}),(0,t.jsx)("h1",{className:"text-2xl font-semibold text-foreground",children:e}),n]}),i&&(0,t.jsx)("div",{className:"flex items-center gap-2",children:i})]}),s&&(0,t.jsx)("p",{className:"max-w-3xl text-sm text-muted-foreground",children:s}),l]})}])},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 s=t.useContext(r);return e||s||"ltr"}])},87099,e=>{"use strict";var t=e.i(34416),r=e.i(9413),s=e.i(22353),a=e.i(60310),n=e.i(54710),i=new WeakMap;function l(e,t){var r,s;let a,n,i;if("at"in Array.prototype)return Array.prototype.at.call(e,t);let l=(r=e,s=t,a=r.length,(i=(n=o(s))>=0?n:a+n)<0||i>=a?-1:i);return -1===l?void 0:e[l]}function o(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 s,a=this.has(t),n=this.#e.length,i=o(e),l=i>=0?i:n+i,d=l<0||l>=n?-1:l;if(d===this.size||a&&d===this.size-1||-1===d)return this.set(t,r),this;let c=this.size+ +!a;i<0&&l++;let u=[...this.#e],x=!1;for(let e=l;e<c;e++)if(l===e){let n=u[e];u[e]===t&&(n=u[e+1]),a&&this.delete(t),s=this.get(n),this.set(t,r)}else{x||u[e-1]!==t||(x=!0);let r=u[x?e:e-1],a=s;s=this.get(r),this.delete(r),this.set(r,a)}return this}with(t,r,s){let a=new e(this);return a.insert(t,r,s),a}before(e){let t=this.#e.indexOf(e)-1;if(!(t<0))return this.entryAt(t)}setBefore(e,t,r){let s=this.#e.indexOf(e);return -1===s?this:this.insert(s,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 s=this.#e.indexOf(e);return -1===s?this:this.insert(s+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=l(this.#e,e);if(void 0!==t)return this.get(t)}entryAt(e){let t=l(this.#e,e);if(void 0!==t)return[t,this.get(t)]}indexOf(e){return this.#e.indexOf(e)}keyAt(e){return l(this.#e,e)}from(e,t){let r=this.indexOf(e);if(-1===r)return;let s=r+t;return s<0&&(s=0),s>=this.size&&(s=this.size-1),this.at(s)}keyFrom(e,t){let r=this.indexOf(e);if(-1===r)return;let s=r+t;return s<0&&(s=0),s>=this.size&&(s=this.size-1),this.keyAt(s)}find(e,t){let r=0;for(let s of this){if(Reflect.apply(e,t,[s,r,this]))return s;r++}}findIndex(e,t){let r=0;for(let s of this){if(Reflect.apply(e,t,[s,r,this]))return r;r++}return -1}filter(t,r){let s=[],a=0;for(let e of this)Reflect.apply(t,r,[e,a,this])&&s.push(e),a++;return new e(s)}map(t,r){let s=[],a=0;for(let e of this)s.push([e[0],Reflect.apply(t,r,[e,a,this])]),a++;return new e(s)}reduce(...e){let[t,r]=e,s=0,a=r??this.at(0);for(let r of this)a=0===s&&1===e.length?r:Reflect.apply(t,this,[a,r,s,this]),s++;return a}reduceRight(...e){let[t,r]=e,s=r??this.at(-1);for(let r=this.size-1;r>=0;r--){let a=this.at(r);s=r===this.size-1&&1===e.length?a:Reflect.apply(t,this,[s,a,r,this])}return s}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),s=this.get(r);t.set(r,s)}return t}toSpliced(...t){let r=[...this.entries()];return r.splice(...t),new e(r)}slice(t,r){let s=new e,a=this.size-1;if(void 0===t)return s;t<0&&(t+=this.size),void 0!==r&&r>0&&(a=r-1);for(let e=t;e<=a;e++){let t=this.keyAt(e),r=this.get(t);s.set(t,r)}return s}every(e,t){let r=0;for(let s of this){if(!Reflect.apply(e,t,[s,r,this]))return!1;r++}return!0}some(e,t){let r=0;for(let s of this){if(Reflect.apply(e,t,[s,r,this]))return!0;r++}return!1}}),e.s(["createCollection",0,function(e){let i=e+"CollectionProvider",[l,o]=(0,r.createContextScope)(i),[d,c]=l(i,{collectionRef:{current:null},itemMap:new Map}),u=e=>{let{scope:r,children:s}=e,a=t.default.useRef(null),i=t.default.useRef(new Map).current;return(0,n.jsx)(d,{scope:r,itemMap:i,collectionRef:a,children:s})};u.displayName=i;let x=e+"CollectionSlot",h=(0,a.createSlot)(x),m=t.default.forwardRef((e,t)=>{let{scope:r,children:a}=e,i=c(x,r),l=(0,s.useComposedRefs)(t,i.collectionRef);return(0,n.jsx)(h,{ref:l,children:a})});m.displayName=x;let f=e+"CollectionItemSlot",p="data-radix-collection-item",g=(0,a.createSlot)(f),b=t.default.forwardRef((e,r)=>{let{scope:a,children:i,...l}=e,o=t.default.useRef(null),d=(0,s.useComposedRefs)(r,o),u=c(f,a);return t.default.useEffect(()=>(u.itemMap.set(o,{ref:o,...l}),()=>void u.itemMap.delete(o))),(0,n.jsx)(g,{...{[p]:""},ref:d,children:i})});return b.displayName=f,[{Provider:u,Slot:m,ItemSlot:b},function(r){let s=c(e+"CollectionConsumer",r);return t.default.useCallback(()=>{let e=s.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${p}]`));return Array.from(s.itemMap.values()).sort((e,r)=>t.indexOf(e.ref.current)-t.indexOf(r.ref.current))},[s.collectionRef,s.itemMap])},o]}])},76176,e=>{"use strict";e.i(18446);var t=e.i(38082);let r={claude:"Claude Code",codex:"OpenAI Codex",gemini:"Gemini CLI",opencode:"OpenCode"},s=new Set(["opencode"]);function a(e){return s.has(e)}let n={gemini:{badgeLabel:"Vendor deprecation",shortSuffix:" (deprecated)",reason:"Google announced Gemini CLI will stop serving free, Pro, and Ultra requests on 2026-06-18 in favor of Antigravity CLI. Standard / Enterprise licenses keep access. Avoid binding new processes to Gemini if you rely on consumer-tier auth."}},i={claude:"Claude",codex:"Codex",gemini:"Gemini",opencode:"OpenCode"},l={claude:["#7C2D12","#B54B2D","#E15B40","#F97316","#FDBA74"],codex:["#86198F","#A21CAF","#D946EF","#E879F9","#F5D0FE"],gemini:["#1E3A8A","#1D4ED8","#1C69FF","#60A5FA","#93C5FD"],opencode:["#7C2D12","#C2410C","#FF7300","#F59E0B","#FCD34D"]},o=["#6b7280","#9ca3af","#4b5563","#374151"],d={claude:"orange",codex:"pink",gemini:"blue",opencode:"orange"},c={"routine.morning_routine":"Morning Routine","routine.evening_review":"Evening Review","routine.weekly_review":"Weekly Review","routine.monthly_review":"Monthly Review","routine.hourly_check":"Hourly Check","routine.roadmap_refresh":"Roadmap Refresh","message.dm":"Direct Messages","message.mention":"Mentions","dashboard.chat":"Dashboard Chat","agent.task":"Scheduled Tasks","calendar.change":"Calendar Events",gmail_classify:"Gmail Classification","github.pull_request.review_requested":"GitHub Review Requests","github.assigned":"GitHub Assignments","github.security_alert":"GitHub Security Alerts","github.workflow_run.failed":"GitHub CI Failures","wiki.ingest_url":"Wiki URL Ingest","wiki.compile":"Wiki Compile","wiki.ask":"Wiki Ask"};function u(e){let t;if(!e)return[];try{t=JSON.parse(e)}catch{return[]}if(!t||"object"!=typeof t)return[];let r=[];for(let[e,s]of Object.entries(t))s&&"object"==typeof s&&r.push({modelId:e,inputTokens:"number"==typeof s.inputTokens?s.inputTokens:0,outputTokens:"number"==typeof s.outputTokens?s.outputTokens:0,costUsd:"number"==typeof s.costUsd?s.costUsd:0});return r.sort((e,t)=>t.costUsd-e.costUsd)}function x(e){if(!e)return null;let t=e.toLowerCase();return/^[a-z0-9_.-]+\/[a-z0-9_.-]+/.test(t)?"opencode":t.includes("claude")||t.includes("sonnet")||t.includes("opus")||t.includes("haiku")?"claude":t.includes("gemini")?"gemini":t.includes("gpt")||t.includes("codex")||t.includes("o3")||t.includes("o4")?"codex":null}e.s(["BACKEND_BADGE_VARIANTS",0,d,"BACKEND_COLORS",0,{claude:"#E15B40",codex:"#D946EF",gemini:"#1C69FF",opencode:"#FF7300"},"BACKEND_LABELS",0,r,"BACKEND_PROVIDER_LABELS",0,{claude:"Claude (Anthropic)",codex:"ChatGPT (OpenAI)",gemini:"Gemini (Google)",opencode:"OpenCode (sst/opencode)"},"BACKEND_PROVIDER_SHORT",0,{claude:"Claude",codex:"ChatGPT",gemini:"Gemini",opencode:"OpenCode"},"BACKEND_WEB_SEARCH_DESCRIPTIONS",0,{claude:"Lets the agent call Anthropic's built-in WebSearch tool.",codex:"Lets the agent call OpenAI's web_search tool. Works in safe (sandbox) mode — the tool runs at OpenAI, not as a local shell command.",gemini:"Lets the agent call Gemini's google_web_search tool.",opencode:"Lets the agent call the configured OpenCode provider's web-search tool when the OpenCode runtime is enabled."},"CHART_CATEGORY_PALETTE",0,["#3b82f6","#10b981","#f59e0b","#8b5cf6","#ec4899","#14b8a6","#f97316","#6366f1","#ef4444","#22c55e"],"UI_PREVIEW_ONLY_BADGE_SUFFIX",0," (coming soon)","UI_PREVIEW_ONLY_REASON",0,"Coming soon — OpenCode is wired internally but not yet ready for selection in this release. The card stays visible so you can see what is on the roadmap.","assignModelColors",0,function(e){let t=new Map;for(let r of e){if(!r)continue;let e=x(r)??"other",s=t.get(e)??[];s.push(r),t.set(e,s)}let r={};for(let[e,s]of t){s.sort((e,t)=>e.localeCompare(t));let t="other"===e?o:l[e],a=s.length;s.forEach((e,s)=>{let n;n=a>=t.length?s%t.length:1===a?Math.floor(t.length/2):Math.floor((s+.5)*t.length/a),r[e]=t[n]})}return r},"detectBackendFromModel",0,x,"formatModelName",0,function(e){return e?e.replace(/^[a-z0-9_.-]+\//i,"").replace(/^claude-/,"Claude ").replace(/^gpt-/,"GPT-").replace(/^gemini-/,"Gemini ").replace(/-/g," ").replace(/\bpreview\b/gi,"(preview)").replace(/\bpro\b/gi,"Pro").replace(/\bflash\b/gi,"Flash").replace(/\blite\b/gi,"Lite").replace(/\bmini\b/gi,"Mini").replace(/\bcodex\b/gi,"Codex").replace(/\bopus\b/gi,"Opus").replace(/\bsonnet\b/gi,"Sonnet").replace(/\bhaiku\b/gi,"Haiku").replace(/\s+/g," ").trim():"Not set"},"formatShortModelName",0,function(e){if(!e)return"unknown";if("opus"===e)return"Opus";if("sonnet"===e)return"Sonnet";let t=e.replace(/^[a-z0-9_.-]+\//i,""),r=t.replace(/-\d{8,}$/,"").replace(/^claude-/,"").replace(/(\d+)-(\d+)(?![-\d])/g,"$1.$2").replace(/-/g," ");return t.startsWith("gpt-")&&(r=`GPT-${r.replace(/^gpt\s*/i,"")}`),t.startsWith("gemini-")&&(r=r.replace(/^gemini\s*/i,"Gemini ")),r.replace(/\bopus\b/gi,"Opus").replace(/\bsonnet\b/gi,"Sonnet").replace(/\bhaiku\b/gi,"Haiku").replace(/\bpro\b/gi,"Pro").replace(/\bflash\b/gi,"Flash").replace(/\blite\b/gi,"Lite").replace(/\bmini\b/gi,"Mini").replace(/\s+/g," ").trim()},"getBackendDeprecation",0,function(e){return n[e]??null},"getBackendLabel",0,function(e){return r[e]},"getBackendShortLabel",0,function(e){return i[e]},"getProcessGroup",0,function(e){return e.startsWith("wiki.")?"Wiki":e.startsWith("message.")||e.startsWith("dashboard.")?"Conversation":e.startsWith("routine.")?"Routines":e.startsWith("git.")||e.startsWith("github.")?"Git & GitHub":e.startsWith("calendar.")||"gmail_classify"===e?"Integrations":"Tasks"},"getProcessLabel",0,function(e){return c[e]??e},"isBackendSelectionDisabled",0,function(e){return!(0,t.isRuntimeAvailableBackendId)(e)||a(e)},"isUiPreviewOnlyBackend",0,a,"modelBadgeVariant",0,function(e){if(!e)return"gray";let t=x(e);return t?d[t]:"gray"},"parseModelUsage",0,u,"pickDisplayModel",0,function(e,t){let r=u(t);return r.length>0&&r[0]?r[0].modelId:e??null}])},49785,e=>{"use strict";var t=e.i(54710),r=e.i(63991),s=e.i(72740),a=e.i(20014),n=e.i(81471);function i(){return(0,t.jsx)("div",{className:"flex items-center justify-center py-16",children:(0,t.jsx)(s.Loader2,{className:"h-6 w-6 animate-spin text-muted-foreground"})})}function l({error:e,onRetry:s}){return(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center gap-3 py-16",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-destructive",children:[(0,t.jsx)(r.AlertCircle,{className:"h-5 w-5"}),(0,t.jsx)("p",{className:"text-sm font-medium",children:"Failed to load data"})]}),e?.message&&(0,t.jsx)("p",{className:"max-w-md text-center text-xs text-muted-foreground",children:e.message}),s&&(0,t.jsx)(a.Button,{variant:"outline",size:"sm",onClick:s,children:"Retry"})]})}e.s(["CardSkeleton",0,function({count:e=3}){return(0,t.jsx)("div",{className:(0,n.cn)("grid gap-4",e<=2?"grid-cols-1 md:grid-cols-2":4===e?"grid-cols-2 md:grid-cols-4":"grid-cols-1 md:grid-cols-3"),children:Array.from({length:e}).map((e,r)=>(0,t.jsx)("div",{className:"h-28 animate-pulse rounded-xl border border-border bg-muted/30"},r))})},"QueryResult",0,function({isLoading:e,isError:r,error:s,onRetry:a,skeleton:o,className:d,children:c}){return e?(0,t.jsx)("div",{className:(0,n.cn)(d),children:o??(0,t.jsx)(i,{})}):r?(0,t.jsx)("div",{className:(0,n.cn)(d),children:(0,t.jsx)(l,{error:s,onRetry:a})}):(0,t.jsx)(t.Fragment,{children:c})},"TableSkeleton",0,function({rows:e=5}){return(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("div",{className:"h-10 animate-pulse rounded-lg bg-muted/40"}),Array.from({length:e}).map((e,r)=>(0,t.jsx)("div",{className:"h-12 animate-pulse rounded-lg bg-muted/20"},r))]})}])},26406,e=>{"use strict";var t=e.i(54710),r=e.i(34416),s=e.i(91967),a=e.i(9413),n=e.i(87099),i=e.i(22353),l=e.i(11207),o=e.i(85565),d=e.i(88248),c=e.i(36567),u=e.i(75649),x="rovingFocusGroup.onEntryFocus",h={bubbles:!1,cancelable:!0},m="RovingFocusGroup",[f,p,g]=(0,n.createCollection)(m),[b,v]=(0,a.createContextScope)(m,[g]),[j,y]=b(m),C=r.forwardRef((e,r)=>(0,t.jsx)(f.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,t.jsx)(f.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,t.jsx)(k,{...e,ref:r})})}));C.displayName=m;var k=r.forwardRef((e,a)=>{let{__scopeRovingFocusGroup:n,orientation:l,loop:f=!1,dir:g,currentTabStopId:b,defaultCurrentTabStopId:v,onCurrentTabStopIdChange:y,onEntryFocus:C,preventScrollOnEntryFocus:k=!1,...N}=e,w=r.useRef(null),T=(0,i.useComposedRefs)(a,w),A=(0,u.useDirection)(g),[D,S]=(0,c.useControllableState)({prop:b,defaultProp:v??null,onChange:y,caller:m}),[E,I]=r.useState(!1),M=(0,d.useCallbackRef)(C),F=p(n),_=r.useRef(!1),[B,L]=r.useState(0);return r.useEffect(()=>{let e=w.current;if(e)return e.addEventListener(x,M),()=>e.removeEventListener(x,M)},[M]),(0,t.jsx)(j,{scope:n,orientation:l,dir:A,loop:f,currentTabStopId:D,onItemFocus:r.useCallback(e=>S(e),[S]),onItemShiftTab:r.useCallback(()=>I(!0),[]),onFocusableItemAdd:r.useCallback(()=>L(e=>e+1),[]),onFocusableItemRemove:r.useCallback(()=>L(e=>e-1),[]),children:(0,t.jsx)(o.Primitive.div,{tabIndex:E||0===B?-1:0,"data-orientation":l,...N,ref:T,style:{outline:"none",...e.style},onMouseDown:(0,s.composeEventHandlers)(e.onMouseDown,()=>{_.current=!0}),onFocus:(0,s.composeEventHandlers)(e.onFocus,e=>{let t=!_.current;if(e.target===e.currentTarget&&t&&!E){let t=new CustomEvent(x,h);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=F().filter(e=>e.focusable);R([e.find(e=>e.active),e.find(e=>e.id===D),...e].filter(Boolean).map(e=>e.ref.current),k)}}_.current=!1}),onBlur:(0,s.composeEventHandlers)(e.onBlur,()=>I(!1))})})}),N="RovingFocusGroupItem",w=r.forwardRef((e,a)=>{let{__scopeRovingFocusGroup:n,focusable:i=!0,active:d=!1,tabStopId:c,children:u,...x}=e,h=(0,l.useId)(),m=c||h,g=y(N,n),b=g.currentTabStopId===m,v=p(n),{onFocusableItemAdd:j,onFocusableItemRemove:C,currentTabStopId:k}=g;return r.useEffect(()=>{if(i)return j(),()=>C()},[i,j,C]),(0,t.jsx)(f.ItemSlot,{scope:n,id:m,focusable:i,active:d,children:(0,t.jsx)(o.Primitive.span,{tabIndex:b?0:-1,"data-orientation":g.orientation,...x,ref:a,onMouseDown:(0,s.composeEventHandlers)(e.onMouseDown,e=>{i?g.onItemFocus(m):e.preventDefault()}),onFocus:(0,s.composeEventHandlers)(e.onFocus,()=>g.onItemFocus(m)),onKeyDown:(0,s.composeEventHandlers)(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey)return void g.onItemShiftTab();if(e.target!==e.currentTarget)return;let t=function(e,t,r){var s;let a=(s=e.key,"rtl"!==r?s:"ArrowLeft"===s?"ArrowRight":"ArrowRight"===s?"ArrowLeft":s);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(a))&&!("horizontal"===t&&["ArrowUp","ArrowDown"].includes(a)))return T[a]}(e,g.orientation,g.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let a=v().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)a.reverse();else if("prev"===t||"next"===t){var r,s;"prev"===t&&a.reverse();let n=a.indexOf(e.currentTarget);a=g.loop?(r=a,s=n+1,r.map((e,t)=>r[(s+t)%r.length])):a.slice(n+1)}setTimeout(()=>R(a))}}),children:"function"==typeof u?u({isCurrentTabStop:b,hasTabStop:null!=k}):u})})});w.displayName=N;var T={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function R(e,t=!1){let r=document.activeElement;for(let s of e)if(s===r||(s.focus({preventScroll:t}),document.activeElement!==r))return}var A=e.i(90816),D="Tabs",[S,E]=(0,a.createContextScope)(D,[v]),I=v(),[M,F]=S(D),_=r.forwardRef((e,r)=>{let{__scopeTabs:s,value:a,onValueChange:n,defaultValue:i,orientation:d="horizontal",dir:x,activationMode:h="automatic",...m}=e,f=(0,u.useDirection)(x),[p,g]=(0,c.useControllableState)({prop:a,onChange:n,defaultProp:i??"",caller:D});return(0,t.jsx)(M,{scope:s,baseId:(0,l.useId)(),value:p,onValueChange:g,orientation:d,dir:f,activationMode:h,children:(0,t.jsx)(o.Primitive.div,{dir:f,"data-orientation":d,...m,ref:r})})});_.displayName=D;var B="TabsList",L=r.forwardRef((e,r)=>{let{__scopeTabs:s,loop:a=!0,...n}=e,i=F(B,s),l=I(s);return(0,t.jsx)(C,{asChild:!0,...l,orientation:i.orientation,dir:i.dir,loop:a,children:(0,t.jsx)(o.Primitive.div,{role:"tablist","aria-orientation":i.orientation,...n,ref:r})})});L.displayName=B;var O="TabsTrigger",P=r.forwardRef((e,r)=>{let{__scopeTabs:a,value:n,disabled:i=!1,...l}=e,d=F(O,a),c=I(a),u=$(d.baseId,n),x=V(d.baseId,n),h=n===d.value;return(0,t.jsx)(w,{asChild:!0,...c,focusable:!i,active:h,children:(0,t.jsx)(o.Primitive.button,{type:"button",role:"tab","aria-selected":h,"aria-controls":x,"data-state":h?"active":"inactive","data-disabled":i?"":void 0,disabled:i,id:u,...l,ref:r,onMouseDown:(0,s.composeEventHandlers)(e.onMouseDown,e=>{i||0!==e.button||!1!==e.ctrlKey?e.preventDefault():d.onValueChange(n)}),onKeyDown:(0,s.composeEventHandlers)(e.onKeyDown,e=>{[" ","Enter"].includes(e.key)&&d.onValueChange(n)}),onFocus:(0,s.composeEventHandlers)(e.onFocus,()=>{let e="manual"!==d.activationMode;h||i||!e||d.onValueChange(n)})})})});P.displayName=O;var H="TabsContent",G=r.forwardRef((e,s)=>{let{__scopeTabs:a,value:n,forceMount:i,children:l,...d}=e,c=F(H,a),u=$(c.baseId,n),x=V(c.baseId,n),h=n===c.value,m=r.useRef(h);return r.useEffect(()=>{let e=requestAnimationFrame(()=>m.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,t.jsx)(A.Presence,{present:i||h,children:({present:r})=>(0,t.jsx)(o.Primitive.div,{"data-state":h?"active":"inactive","data-orientation":c.orientation,role:"tabpanel","aria-labelledby":u,hidden:!r,id:x,tabIndex:0,...d,ref:s,style:{...e.style,animationDuration:m.current?"0s":void 0},children:r&&l})})});function $(e,t){return`${e}-trigger-${t}`}function V(e,t){return`${e}-content-${t}`}G.displayName=H;var z=e.i(81471);e.s(["Tabs",0,_,"TabsContent",0,function({className:e,...r}){return(0,t.jsx)(G,{className:(0,z.cn)("mt-2 ring-offset-background focus-visible:outline-none",e),...r})},"TabsList",0,function({className:e,...r}){return(0,t.jsx)(L,{className:(0,z.cn)("inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",e),...r})},"TabsTrigger",0,function({className:e,...r}){return(0,t.jsx)(P,{className:(0,z.cn)("inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",e),...r})}],26406)},76610,e=>{"use strict";let t=(0,e.i(77379).default)("KeyRound",[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]);e.s(["KeyRound",0,t],76610)},34855,e=>{"use strict";var t=e.i(14260),r=e.i(65268);e.s(["useMetrics",0,function(e){return(0,t.useQuery)({queryKey:["metrics"],queryFn:()=>r.api.get("/metrics"),refetchInterval:3e4,enabled:e?.enabled??!0})}])},2412,e=>{"use strict";var t=e.i(54710),r=e.i(26181),s=e.i(95486),a=e.i(8011),n=e.i(81471);e.s(["DocsLearnMore",0,function({docId:e,anchor:i=null,label:l="What is this?",className:o}){let d=(0,s.useQueryClient)();return(0,t.jsxs)("button",{type:"button",onClick:()=>(0,a.openDocsHelpSlideover)(d,{docId:e,anchor:i,autoFocusComposer:!1}),className:(0,n.cn)("inline-flex items-center gap-1 rounded-md border border-border bg-card px-2.5 py-1 text-xs text-muted-foreground transition hover:bg-accent hover:text-foreground",o),"data-testid":"docs-learn-more",children:[(0,t.jsx)("span",{children:l}),(0,t.jsx)(r.ArrowUpRight,{className:"h-3 w-3","aria-hidden":"true"})]})}])},51226,21420,e=>{"use strict";var t=e.i(14260),r=e.i(65268);e.s(["useCost",0,function(e="daily",s){return(0,t.useQuery)({queryKey:["cost",e],queryFn:()=>r.api.get("/cost",{period:e}),refetchInterval:6e4,enabled:s?.enabled??!0})}],51226);var s=e.i(54710);e.s(["Sparkline",0,function({values:e,color:t,width:r=80,height:a=24,ariaLabel:n}){if(e.length<2)return null;let i=e.filter(e=>null!==e);if(0===i.length)return null;let l=Math.max(...i,1),o=r/(e.length-1),d=[[]];return e.forEach((e,t)=>{if(null===e){d[d.length-1].length>0&&d.push([]);return}d[d.length-1].push({x:t*o,y:a-e/l*(a-4)-2})}),(0,s.jsxs)("svg",{width:r,height:a,className:"mt-2",role:"img","aria-label":n??"sparkline",children:[d.filter(e=>e.length>=2).map((e,r)=>(0,s.jsx)("polyline",{points:e.map(e=>`${e.x},${e.y}`).join(" "),fill:"none",stroke:t,strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},`l${r}`)),d.filter(e=>1===e.length).map((e,r)=>(0,s.jsx)("circle",{cx:e[0].x,cy:e[0].y,r:"1.5",fill:t},`d${r}`))]})}],21420)},7209,e=>{"use strict";var t=e.i(54710),r=e.i(34416),s=e.i(71060),a=e.i(26406),n=e.i(39982),i=e.i(97);e.i(18446);var l=e.i(38082),o=e.i(51226),d=e.i(34855),c=e.i(49785),u=e.i(74490),x=e.i(20014),h=e.i(48467),m=e.i(81471),f=e.i(76176);let p=()=>(0,t.jsx)("div",{className:"h-[300px] animate-pulse rounded-lg bg-muted/20"}),g=(0,i.default)(()=>e.A(33983).then(e=>e.CostTrendChart),{loadableGenerated:{modules:[67754]},ssr:!1,loading:p}),b=(0,i.default)(()=>e.A(25670).then(e=>e.ModelBreakdownChart),{loadableGenerated:{modules:[56592]},ssr:!1,loading:p}),v=(0,i.default)(()=>e.A(63862).then(e=>e.EventTypeChart),{loadableGenerated:{modules:[89481]},ssr:!1,loading:p}),j=(0,i.default)(()=>e.A(74131).then(e=>e.BackendCostChart),{loadableGenerated:{modules:[96241]},ssr:!1,loading:p}),y=[{value:"daily",label:"Daily"},{value:"weekly",label:"Weekly"},{value:"monthly",label:"Monthly"}];function C({enabled:e=!0}){let[s,n]=(0,r.useState)("daily"),[i,p]=(0,r.useState)("overview"),{data:N,isLoading:w,isError:T,error:R,refetch:A}=(0,o.useCost)(s,{enabled:e}),{data:D}=(0,d.useMetrics)({enabled:e}),S=[{label:"Today",value:N?.today.costUsd??0,sub:`${N?.today.sessions??0} sessions`},{label:"Last 7 Days",value:D?.cost.last7dUsd??0},{label:"Last 30 Days",value:D?.cost.last30dUsd??0}],E=(0,l.getBackendIds)().map(e=>{let t=N?.byBackend.find(t=>t.backend===e);return{backendId:e,totalCost:t?.total_cost??0,sessions:t?.session_count??0}}),I=E.reduce((e,t)=>e+t.totalCost,0);return(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsx)(c.QueryResult,{isLoading:w&&!N,isError:!1,skeleton:(0,t.jsx)(c.CardSkeleton,{count:3}),children:(0,t.jsx)("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-3",children:S.map(e=>(0,t.jsxs)(u.Card,{children:[(0,t.jsx)(u.CardHeader,{children:(0,t.jsx)(u.CardStatLabel,{children:e.label})}),(0,t.jsx)(u.CardValue,{children:(0,m.formatCurrency)(e.value)}),e.sub&&(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:e.sub})]},e.label))})}),(0,t.jsx)("div",{className:"flex flex-wrap items-center gap-3",children:(0,t.jsx)("div",{className:"flex gap-1",children:y.map(e=>(0,t.jsx)(x.Button,{variant:s===e.value?"default":"outline",size:"sm",onClick:()=>n(e.value),children:e.label},e.value))})}),(0,t.jsx)(c.QueryResult,{isLoading:w,isError:T,error:R,onRetry:()=>A(),skeleton:(0,t.jsx)(c.CardSkeleton,{count:3}),children:(0,t.jsxs)(a.Tabs,{value:i,onValueChange:p,children:[(0,t.jsxs)(a.TabsList,{children:[(0,t.jsx)(a.TabsTrigger,{value:"overview",children:"Overview"}),(0,t.jsx)(a.TabsTrigger,{value:"backend",children:"By Backend"})]}),(0,t.jsxs)(a.TabsContent,{value:"overview",children:[(0,t.jsxs)("div",{className:"grid gap-6 lg:grid-cols-2",children:[(0,t.jsxs)(u.Card,{className:"lg:col-span-2",children:[(0,t.jsx)(u.CardHeader,{children:(0,t.jsx)(u.CardTitle,{children:"Cost Trend"})}),(0,t.jsx)(g,{data:N?.byPeriod??[]})]}),(0,t.jsxs)(u.Card,{children:[(0,t.jsx)(u.CardHeader,{children:(0,t.jsx)(u.CardTitle,{children:"Model Breakdown"})}),(0,t.jsx)(b,{data:N?.byModel??[]})]}),(0,t.jsxs)(u.Card,{children:[(0,t.jsx)(u.CardHeader,{children:(0,t.jsx)(u.CardTitle,{children:"By Event Type"})}),(0,t.jsx)(v,{data:N?.byEventType??[]})]})]}),(0,t.jsx)(k,{})]}),(0,t.jsx)(a.TabsContent,{value:"backend",children:(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsx)("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-3",children:E.map(e=>(0,t.jsxs)(u.Card,{children:[(0,t.jsx)(u.CardHeader,{children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(u.CardStatLabel,{children:(0,f.getBackendShortLabel)(e.backendId)}),(0,t.jsxs)(h.Badge,{variant:f.BACKEND_BADGE_VARIANTS[e.backendId],children:[e.sessions," sessions"]})]})}),(0,t.jsx)(u.CardValue,{children:(0,m.formatCurrency)(e.totalCost)}),(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:I>0?`${(e.totalCost/I*100).toFixed(1)}% of selected window`:"No spend in selected window"})]},e.backendId))}),(0,t.jsxs)("div",{className:"grid gap-6 lg:grid-cols-[2fr,1fr]",children:[(0,t.jsxs)(u.Card,{children:[(0,t.jsx)(u.CardHeader,{children:(0,t.jsx)(u.CardTitle,{children:"Backend Cost Trend"})}),(0,t.jsx)(j,{data:N?.byBackendPeriod??[]})]}),(0,t.jsxs)(u.Card,{children:[(0,t.jsx)(u.CardHeader,{children:(0,t.jsx)(u.CardTitle,{children:"Backend Totals"})}),(0,t.jsx)("div",{className:"space-y-3",children:E.map(e=>(0,t.jsxs)("div",{className:"flex items-center justify-between rounded-lg border border-border/70 px-3 py-2",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"flex items-center gap-2",children:(0,t.jsx)(h.Badge,{variant:f.BACKEND_BADGE_VARIANTS[e.backendId],children:(0,f.getBackendShortLabel)(e.backendId)})}),(0,t.jsxs)("p",{className:"mt-1 text-xs text-muted-foreground",children:[e.sessions," runs"]})]}),(0,t.jsxs)("div",{className:"text-right",children:[(0,t.jsx)("p",{className:"text-sm font-semibold text-foreground",children:(0,m.formatCurrency)(e.totalCost)}),(0,t.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Avg ",(0,m.formatCurrency)(e.sessions>0?e.totalCost/e.sessions:0)]})]})]},e.backendId))}),(0,t.jsx)("p",{className:"mt-4 text-xs text-muted-foreground",children:"Backend analytics reflect the backend that actually executed each run, not just the configured preferred backend."}),(0,t.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:"Gemini may auto-route to a different runtime model than the configured preferred model. The totals here reflect the model and backend that actually ran."})]})]})]})})]})})]})}function k(){return(0,t.jsxs)("p",{className:"mt-4 text-xs text-muted-foreground",children:["Only ",(0,t.jsx)("strong",{children:"cross-backend"}),"delegated calls show up under per-tool delegated-proxy telemetry — calls where your DM session runs on a different backend than the connector's owner. Same-backend delegated calls (for example, a Codex DM session using Codex's own Gmail connector) skip the proxy and roll up under the parent session's totals. Per-tool cost isn't measurable in those cases."]})}var N=e.i(14260),w=e.i(65268),T=e.i(21420);let R={good:"Good",warn:"Warning",crit:"Critical"},A={good:"#10b981",warn:"#f59e0b",crit:"#ef4444",neutral:"#94a3b8"};function D({level:e}){return"neutral"===e?null:(0,t.jsxs)("span",{className:"flex items-center gap-1.5 text-xs",children:[(0,t.jsx)("span",{className:`inline-block h-2 w-2 rounded-full ${"good"===e?"bg-emerald-500":"warn"===e?"bg-amber-500":"bg-red-500"}`}),(0,t.jsx)("span",{className:"good"===e?"text-emerald-500":"warn"===e?"text-amber-500":"text-red-500",children:R[e]})]})}function S({daily:e,days:r,snapshot:s}){let a,n,i,l,o,d,c,x,h,f,p,g,b,v,j,y=(a=0===r?"today":`${r}d`,n=0===r?"today":`${r}-day`,i=e.reduce((e,t)=>e+t.executions,0),l=e.reduce((e,t)=>e+t.failures,0),o=i>0?(i-l)/i:null,d=e.map(e=>e.executions>0?(e.executions-e.failures)/e.executions:null),c=e.map(e=>e.executions>0?e.failures:null),x=s?.responseTime.p50??null,h=s?.responseTime.p95??null,f=null!==x&&null!==h?`${(0,m.formatDuration)(x)} / ${(0,m.formatDuration)(h)}`:"—",g=null!==(p=s?.notificationConfirmRate??null)?`${Math.round(100*p)}%`:"—",b=s?.notificationCounts.delivered??0,v=s?.notificationCounts.reacted??0,j=e.map(e=>e.notificationsDelivered>0?e.notificationsReacted/e.notificationsDelivered:null),[{title:"Success Rate",value:null!==o?`${(100*o).toFixed(1)}%`:"—",subtitle:null!==o?`${i-l} / ${i} ok`:"no data",level:null===o?"neutral":o>=.95?"good":o>=.8?"warn":"crit",sparkline:d},{title:`Errors (${a})`,value:String(l),subtitle:0===l?"no failures":0===r?"today total":`${n} total`,level:0===l?"good":l<=5?"warn":"crit",sparkline:c},{title:"Response P50 / P95",value:f,subtitle:"rolling 30d",level:"neutral",sparkline:null},{title:"Reaction Rate",value:g,subtitle:void 0!==s?`${v} of ${b} in 30d`:"rolling 30d",level:"neutral",sparkline:j}]);return(0,t.jsx)("div",{className:"grid grid-cols-2 gap-4 md:grid-cols-4",children:y.map(e=>(0,t.jsxs)(u.Card,{children:[(0,t.jsx)(u.CardHeader,{children:(0,t.jsx)(u.CardStatLabel,{children:e.title})}),(0,t.jsx)(u.CardValue,{className:"text-2xl",children:e.value}),(0,t.jsx)("p",{className:"mt-1 text-[11px] text-muted-foreground",children:e.subtitle}),(0,t.jsxs)("div",{className:"mt-2 flex items-end justify-between",children:[null!==e.sparkline?(0,t.jsx)(T.Sparkline,{values:e.sparkline,color:A[e.level],ariaLabel:`${e.title} trend`}):(0,t.jsx)("div",{className:"flex-1"}),(0,t.jsx)(D,{level:e.level})]})]},e.title))})}var E=e.i(10628);let I=["Mon","","Wed","","Fri","",""];function M({data:e}){let{days:r,numWeeks:s}=function(e){let t=new Map(e.map(e=>[e.date,e.count])),r=new Date,s=new Date(r);s.setDate(r.getDate()-83);let a=s.getDay();s.setDate(s.getDate()+(0===a?-6:1-a));let n=[],i=new Date(s),l=0,o=-1;for(;i<=r;){let e=i.toISOString().slice(0,10),r=0===i.getDay()?6:i.getDay()-1,a=Math.floor((i.getTime()-s.getTime())/6048e5);a!==o&&(l=a,o=a),n.push({date:e,count:t.get(e)??0,dow:r,week:l}),i.setDate(i.getDate()+1)}return{days:n,numWeeks:l+1}}(e),a=Math.max(...r.map(e=>e.count),1);return(0,t.jsxs)(u.Card,{children:[(0,t.jsxs)(u.CardHeader,{children:[(0,t.jsx)(u.CardTitle,{children:"Activity"}),(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:"Last 12 weeks · fixed range (does not follow period selector)"})]}),(0,t.jsxs)("div",{className:"flex gap-2 overflow-x-auto pb-2",children:[(0,t.jsx)("div",{className:"flex flex-col gap-[3px] pt-0",children:I.map((e,r)=>(0,t.jsx)("div",{className:"flex h-[13px] w-6 items-center text-[10px] text-muted-foreground",children:e},r))}),(0,t.jsx)("div",{className:"grid gap-[3px]",style:{gridTemplateColumns:`repeat(${s}, 13px)`,gridTemplateRows:"repeat(7, 13px)",gridAutoFlow:"column"},children:r.map(e=>(0,t.jsxs)(E.Tooltip,{delayDuration:0,children:[(0,t.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("div",{className:`h-[13px] w-[13px] rounded-[2px] ${function(e,t){if(0===e)return"bg-muted/40";let r=e/t;return r<=.25?"bg-emerald-200 dark:bg-emerald-900/60":r<=.5?"bg-emerald-400 dark:bg-emerald-700/80":r<=.75?"bg-emerald-500 dark:bg-emerald-600":"bg-emerald-600 dark:bg-emerald-500"}(e.count,a)}`})}),(0,t.jsxs)(E.TooltipContent,{side:"top",className:"text-xs",children:[(0,t.jsx)("span",{className:"font-medium",children:e.count})," execution",1!==e.count?"s":""," on ",e.date]})]},e.date))})]}),(0,t.jsxs)("div",{className:"mt-2 flex items-center gap-1.5 text-[10px] text-muted-foreground",children:[(0,t.jsx)("span",{children:"Less"}),(0,t.jsx)("div",{className:"h-[10px] w-[10px] rounded-[2px] bg-muted/40"}),(0,t.jsx)("div",{className:"h-[10px] w-[10px] rounded-[2px] bg-emerald-200 dark:bg-emerald-900/60"}),(0,t.jsx)("div",{className:"h-[10px] w-[10px] rounded-[2px] bg-emerald-400 dark:bg-emerald-700/80"}),(0,t.jsx)("div",{className:"h-[10px] w-[10px] rounded-[2px] bg-emerald-500 dark:bg-emerald-600"}),(0,t.jsx)("div",{className:"h-[10px] w-[10px] rounded-[2px] bg-emerald-600 dark:bg-emerald-500"}),(0,t.jsx)("span",{children:"More"})]})]})}function F({daily:e}){let r=e.reduce((e,t)=>e+t.executionsAutonomous,0),s=e.reduce((e,t)=>e+t.contextUpdatesAutonomous,0),a=e.reduce((e,t)=>e+t.executionsReactive,0),n=e.reduce((e,t)=>e+t.contextUpdatesReactive,0),i=e=>null!==e?`${(100*e).toFixed(0)}%`:"—";return(0,t.jsxs)(u.Card,{children:[(0,t.jsx)(u.CardHeader,{children:(0,t.jsx)(u.CardTitle,{children:"Context Update Rate"})}),(0,t.jsx)("p",{className:"mb-3 text-xs text-muted-foreground",children:"Share of executions that wrote to context MD files."}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"Autonomous"}),(0,t.jsx)(u.CardValue,{className:"text-2xl",children:i(r>0?s/r:null)}),(0,t.jsxs)("p",{className:"text-[11px] text-muted-foreground",children:[s," / ",r]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"Reactive"}),(0,t.jsx)(u.CardValue,{className:"text-2xl",children:i(a>0?n/a:null)}),(0,t.jsxs)("p",{className:"text-[11px] text-muted-foreground",children:[n," / ",a]})]})]})]})}var _=e.i(45958),B=e.i(59546),L=e.i(31501),O=e.i(76610),P=e.i(77379);let H=(0,P.default)("Wifi",[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M2 8.82a15 15 0 0 1 20 0",key:"dnpr2z"}],["path",{d:"M5 12.859a10 10 0 0 1 14 0",key:"1x1e6c"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}]]);var G=e.i(7771),$=e.i(2412);let V={quota:{label:"Rate Limit / Quota",icon:L.Clock,badgeVariant:"amber",docId:"troubleshooting/quota-exhausted"},timeout:{label:"Timeout",icon:L.Clock,badgeVariant:"amber"},auth:{label:"Authentication",icon:O.KeyRound,badgeVariant:"red",docId:"troubleshooting/auth-failed"},network:{label:"Network",icon:H,badgeVariant:"amber"},other:{label:"Other",icon:G.HelpCircle,badgeVariant:"gray"}};function z({errors:e,days:r}){let s=e.reduce((e,t)=>e+t.count,0);return(0,t.jsxs)(u.Card,{children:[(0,t.jsxs)(u.CardHeader,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(u.CardTitle,{children:"Errors"}),s>0&&(0,t.jsx)(h.Badge,{variant:"red",className:"text-xs",children:s})]}),(0,t.jsx)(_.default,{href:"/activity",className:"text-xs text-muted-foreground hover:text-foreground transition-colors",children:"View all →"})]}),0===e.length?(0,t.jsxs)("div",{className:"flex items-center gap-2 py-4 text-sm text-muted-foreground",children:[(0,t.jsx)(B.CheckCircle2,{className:"h-4 w-4 text-emerald-500"}),"No errors in the last ",r," days"]}):(0,t.jsx)("div",{className:"space-y-2",children:e.map(e=>{let r=V[e.category]??V.other,s=r.icon;return(0,t.jsxs)("div",{className:"flex items-start gap-3 rounded-lg border border-border/70 px-3 py-2.5",children:[(0,t.jsx)(s,{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",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-foreground",children:r.label}),(0,t.jsxs)(h.Badge,{variant:r.badgeVariant,className:"text-[10px]",children:[e.count,"×"]}),e.backend&&(0,t.jsx)("span",{className:"text-[10px] text-muted-foreground",children:e.backend})]}),(0,t.jsx)("p",{className:"mt-0.5 truncate text-xs text-muted-foreground",children:e.sampleMessage}),(0,t.jsxs)("div",{className:"mt-0.5 flex items-center justify-between gap-2",children:[(0,t.jsxs)("p",{className:"text-[10px] font-mono tabular-nums text-muted-foreground",children:["Last:"," ",(0,t.jsxs)(E.Tooltip,{children:[(0,t.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{children:(0,m.formatShortDateTime)(e.lastSeen)})}),(0,t.jsxs)(E.TooltipContent,{children:[(0,m.formatAbsoluteTime)(e.lastSeen)," (",(0,m.formatRelativeTime)(e.lastSeen),")"]})]})]}),r.docId&&(0,t.jsx)($.DocsLearnMore,{docId:r.docId,label:"Learn more →"})]})]})]},e.category)})})]})}function W({snapshot:e}){let r=e?.advisorCallRate??null,s=void 0!==e?e.modelCounts.sonnetSessions+e.modelCounts.opusSessions:0,a=null!==r?`${r.toFixed(2)} calls / session`:"—";return(0,t.jsxs)(u.Card,{children:[(0,t.jsxs)(u.CardHeader,{children:[(0,t.jsx)(u.CardTitle,{className:"text-base",children:"Advisor Usage"}),(0,t.jsx)("span",{className:"text-[11px] text-muted-foreground",children:"Claude runs only"})]}),(0,t.jsxs)("div",{className:"flex items-baseline gap-3",children:[(0,t.jsx)("span",{className:"text-2xl font-bold text-foreground",children:a}),(0,t.jsxs)("span",{className:"text-xs text-muted-foreground",children:["Based on ",s," Claude run",1===s?"":"s"," in last 30d"]})]})]})}var U=e.i(81187);let K=(0,P.default)("MessageSquareReply",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}],["path",{d:"m10 7-3 3 3 3",key:"1eugdv"}],["path",{d:"M17 13v-1a2 2 0 0 0-2-2H7",key:"ernfh3"}]]);function q({snapshot:e}){let r=e?.proactiveForwardResume,s=r?.ratio??null,a=null===s?null:Math.round(1e3*s)/10,n=Math.round((r?.threshold??.05)*100),i=null!==s&&void 0!==r&&s>=r.threshold,l=i?U.AlertTriangle:B.CheckCircle2;return(0,t.jsxs)(u.Card,{children:[(0,t.jsx)(u.CardHeader,{children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(K,{className:"h-4 w-4 text-muted-foreground"}),(0,t.jsx)(u.CardTitle,{children:"Forwarded DM Context"}),i&&(0,t.jsx)(h.Badge,{variant:"amber",className:"text-[10px]",children:"Watch"})]})}),r&&0!==r.injected?(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3 rounded-lg border border-border/70 px-3 py-2.5",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(l,{className:i?"h-4 w-4 text-amber-500":"h-4 w-4 text-emerald-500"}),(0,t.jsx)("span",{className:"text-sm font-medium text-foreground",children:"Disavowal ratio"})]}),(0,t.jsxs)("span",{className:"font-mono text-lg tabular-nums text-foreground",children:[a,"%"]})]}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-2 text-xs text-muted-foreground",children:[(0,t.jsxs)("div",{className:"rounded-md border border-border/70 px-3 py-2",children:[(0,t.jsx)("div",{className:"font-mono text-sm tabular-nums text-foreground",children:r.injected}),(0,t.jsx)("div",{children:"Injected"})]}),(0,t.jsxs)("div",{className:"rounded-md border border-border/70 px-3 py-2",children:[(0,t.jsx)("div",{className:"font-mono text-sm tabular-nums text-foreground",children:r.disavowed}),(0,t.jsx)("div",{children:"Disavowed"})]})]}),(0,t.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Fresh-session fallback threshold: ",n,"%"]})]}):(0,t.jsxs)("div",{className:"flex items-center gap-2 py-4 text-sm text-muted-foreground",children:[(0,t.jsx)(B.CheckCircle2,{className:"h-4 w-4 text-emerald-500"}),"No forwarded notifications injected in the last 30 days"]})]})}let Q=(0,i.default)(()=>e.A(35923).then(e=>e.ExecutionBreakdownChart),{loadableGenerated:{modules:[15616]},ssr:!1,loading:()=>(0,t.jsx)("div",{className:"h-[280px] animate-pulse rounded-lg bg-muted/20"})}),Y=[{value:0,label:"Today"},{value:7,label:"7d"},{value:30,label:"30d"}];function J({enabled:e=!0}){let[s,a]=(0,r.useState)(7),{data:n,isLoading:i,isError:l,error:o,refetch:h}=function(e=30,t){return(0,N.useQuery)({queryKey:["metrics-timeseries",e],queryFn:()=>w.api.get("/metrics/timeseries",{days:e}),refetchInterval:6e4,enabled:t?.enabled??!0})}(s,{enabled:e}),{data:m}=(0,d.useMetrics)({enabled:e});return(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsx)("div",{className:"flex items-center justify-end",children:(0,t.jsx)("div",{className:"flex gap-1",children:Y.map(e=>(0,t.jsx)(x.Button,{variant:s===e.value?"default":"outline",size:"sm",onClick:()=>a(e.value),children:e.label},e.value))})}),(0,t.jsx)(c.QueryResult,{isLoading:i,isError:l,error:o,onRetry:()=>h(),skeleton:(0,t.jsx)(c.CardSkeleton,{count:4}),children:n&&(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsx)(S,{daily:n.daily,days:s,snapshot:m}),(0,t.jsx)(M,{data:n.heatmap}),(0,t.jsxs)("div",{className:"grid gap-6 lg:grid-cols-[2fr,1fr]",children:[(0,t.jsxs)(u.Card,{children:[(0,t.jsx)(u.CardHeader,{children:(0,t.jsx)(u.CardTitle,{children:"Execution Breakdown"})}),(0,t.jsx)("p",{className:"-mt-2 mb-3 text-xs text-muted-foreground",children:"Reactive failures break owner dialogue; autonomous failures break background work."}),(0,t.jsx)(Q,{data:n.daily})]}),(0,t.jsx)(F,{daily:n.daily})]}),(0,t.jsxs)("div",{className:"grid gap-6 lg:grid-cols-2",children:[(0,t.jsx)(z,{errors:n.recentErrors,days:s}),(0,t.jsx)(q,{snapshot:m})]}),(0,t.jsx)(W,{snapshot:m})]})})]})}function X(){let e=(0,s.useSearchParams)(),r=(0,s.useRouter)(),i=e.get("tab")??"cost";return(0,t.jsxs)("div",{className:"flex min-h-full flex-col p-6 pb-8",children:[(0,t.jsx)(n.PageHeader,{className:"mb-4",title:"Analytics",description:(0,t.jsxs)(t.Fragment,{children:["Usage and spend trends for the agent. ",(0,t.jsx)("strong",{children:"Cost"})," aggregates per-run USD spend (computed from token counts × backend pricing) across days, weeks, and months, broken down by backend and process. ",(0,t.jsx)("strong",{children:"Metrics"}),"shows operational health — activity volume, execution breakdown, error rates, notification throughput. Data is derived from the daemon’s local SQLite database, not sent anywhere external."]})}),(0,t.jsxs)(a.Tabs,{value:i,onValueChange:e=>{r.replace(`/analytics?tab=${e}`,{scroll:!1})},className:"flex flex-col",children:[(0,t.jsxs)(a.TabsList,{className:"w-fit",children:[(0,t.jsx)(a.TabsTrigger,{value:"cost",children:"Cost"}),(0,t.jsx)(a.TabsTrigger,{value:"metrics",children:"Metrics"})]}),(0,t.jsx)(a.TabsContent,{value:"cost",className:"mt-4",children:(0,t.jsx)(C,{enabled:"cost"===i})}),(0,t.jsx)(a.TabsContent,{value:"metrics",className:"mt-4",children:(0,t.jsx)(J,{enabled:"metrics"===i})})]})]})}e.s(["default",0,function(){return(0,t.jsx)(r.Suspense,{children:(0,t.jsx)(X,{})})}],7209)},33983,e=>{e.v(t=>Promise.all(["static/chunks/06gaoy7cms92z.js","static/chunks/0v6hvvo6scvx7.js"].map(t=>e.l(t))).then(()=>t(67754)))},25670,e=>{e.v(t=>Promise.all(["static/chunks/14v5ojhq6eaq9.js","static/chunks/0v6hvvo6scvx7.js"].map(t=>e.l(t))).then(()=>t(56592)))},63862,e=>{e.v(t=>Promise.all(["static/chunks/09.2lxmkpe4vt.js","static/chunks/0v6hvvo6scvx7.js"].map(t=>e.l(t))).then(()=>t(89481)))},74131,e=>{e.v(t=>Promise.all(["static/chunks/0udv6m08jothr.js","static/chunks/0v6hvvo6scvx7.js"].map(t=>e.l(t))).then(()=>t(96241)))},35923,e=>{e.v(t=>Promise.all(["static/chunks/0ojqq~83_pe89.js","static/chunks/0v6hvvo6scvx7.js"].map(t=>e.l(t))).then(()=>t(15616)))}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,50862,e=>{"use strict";var t=e.i(54710),n=e.i(81471);e.s(["EmptyState",0,function({icon:e,title:i,description:a,className:r,children:s}){return(0,t.jsxs)("div",{className:(0,n.cn)("flex flex-col items-center justify-center py-16 text-muted-foreground",r),children:[(0,t.jsx)(e,{className:"mb-3 h-10 w-10 opacity-40"}),(0,t.jsx)("p",{className:"text-sm font-medium",children:i}),a&&(0,t.jsx)("p",{className:"mt-1 max-w-prose text-xs text-muted-foreground/70",children:a}),s]})}])},74490,e=>{"use strict";var t=e.i(54710),n=e.i(81471);let i=(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:a,interactive:r,...s}){return(0,t.jsx)("div",{className:(0,n.cn)(i({tone:a,interactive:r}),e),...s})},"CardHeader",0,function({className:e,...i}){return(0,t.jsx)("div",{className:(0,n.cn)("mb-3 flex items-center justify-between",e),...i})},"CardStatLabel",0,function({className:e,...i}){return(0,t.jsx)("h3",{className:(0,n.cn)("text-sm font-medium text-muted-foreground",e),...i})},"CardTitle",0,function({className:e,...i}){return(0,t.jsx)("h3",{className:(0,n.cn)("text-lg font-semibold text-foreground",e),...i})},"CardValue",0,function({className:e,...i}){return(0,t.jsx)("div",{className:(0,n.cn)("text-3xl font-bold text-foreground",e),...i})}])},90925,e=>{"use strict";let t=(0,e.i(77379).default)("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);e.s(["Trash2",0,t],90925)},60168,e=>{"use strict";let t=(0,e.i(77379).default)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",0,t],60168)},99758,e=>{"use strict";let t=(0,e.i(77379).default)("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",0,t],99758)},21682,e=>{"use strict";let t=(0,e.i(77379).default)("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);e.s(["Pencil",0,t],21682)},55575,e=>{"use strict";let t=(0,e.i(77379).default)("FolderOpen",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);e.s(["FolderOpen",0,t],55575)},66127,e=>{"use strict";var t=e.i(65268);async function n({title:e,defaultPath:i}){let a=await t.api.post("/system/pick-directory",{title:e,...i?{defaultPath:i}:{}});if("selected"===a.status&&a.path)return a.path;if("cancelled"===a.status)return null;throw Error(a.message??"Folder picker is unavailable.")}e.s(["pickDirectoryFromDesktop",0,n])},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)},75750,e=>{"use strict";let t=(0,e.i(77379).default)("CircleX",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);e.s(["XCircle",0,t],75750)},2745,e=>{"use strict";let t=(0,e.i(77379).default)("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["ShieldCheck",0,t],2745)},58436,e=>{"use strict";var t=e.i(54710),n=e.i(34416),i=e.i(55575),a=e.i(72740),r=e.i(20014),s=e.i(8652),o=e.i(66127),l=e.i(81471);e.s(["DirectoryPickerField",0,function({id:e,value:u,onChange:c,title:d,placeholder:p="Choose a folder...",defaultPath:m,disabled:g=!1,className:h,inputClassName:f,buttonLabel:y="Choose"}){let[b,x]=(0,n.useState)(!1),[v,C]=(0,n.useState)(null),k=async()=>{x(!0),C(null);try{let e=await (0,o.pickDirectoryFromDesktop)({title:d,defaultPath:u.trim()||m});e&&c(e)}catch(e){C(e instanceof Error?e.message:"Folder picker is unavailable.")}finally{x(!1)}};return(0,t.jsxs)("div",{className:(0,l.cn)("space-y-1",h),children:[(0,t.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row",children:[(0,t.jsx)(s.Input,{id:e,value:u,onChange:e=>{c(e.target.value),C(null)},placeholder:p,className:(0,l.cn)("font-mono text-sm",f),disabled:g||b}),(0,t.jsxs)(r.Button,{type:"button",variant:"outline",onClick:k,disabled:g||b,className:"shrink-0 gap-2",children:[b?(0,t.jsx)(a.Loader2,{className:"h-4 w-4 animate-spin"}):(0,t.jsx)(i.FolderOpen,{className:"h-4 w-4"}),b?"Opening...":y]})]}),v&&(0,t.jsx)("p",{className:"text-xs text-destructive",children:v})]})}])},85631,e=>{"use strict";var t=e.i(54710),n=e.i(81471);e.s(["ConnectionsSectionHeader",0,function({title:e,description:i,healthy:a,total:r,attention:s,actions:o}){let l=r>0&&a===r,u=r>0&&0===a;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:[r>0&&(0,t.jsxs)("span",{className:(0,n.cn)("text-xs font-medium tabular-nums",l?"text-emerald-600 dark:text-emerald-400":u?"text-muted-foreground":"text-amber-600 dark:text-amber-400"),children:[a,"/",r," connected"]}),o]})]}),i&&(0,t.jsx)("p",{className:"max-w-3xl text-sm text-muted-foreground",children:i}),s&&(0,t.jsx)("p",{className:"text-xs text-amber-600 dark:text-amber-400",children:s})]})}])},20870,e=>{"use strict";var t=e.i(54710),n=e.i(48467),i=e.i(74490),a=e.i(81471);let r={connected:{variant:"green",label:"Connected"},configured:{variant:"amber",label:"Configured"},connecting:{variant:"amber",label:"Connecting…"},"needs-setup":{variant:"gray",label:"Not Configured"},error:{variant:"red",label:"Error"},disabled:{variant:"gray",label:"Disabled"}};e.s(["ConnectionCard",0,function({name:e,icon:s,status:o,error:l,metadata:u,children:c,className:d}){let p=r[o];return(0,t.jsxs)(i.Card,{tone:"connected"===o?"success":"error"===o?"error":"default",className:(0,a.cn)("relative",d),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:s}),(0,t.jsx)("h3",{className:"text-sm font-medium text-foreground",children:e})]}),(0,t.jsx)(n.Badge,{variant:p.variant,children:p.label})]}),l&&"connecting"!==o&&(0,t.jsx)("p",{className:"mb-2 text-xs text-red-600 dark:text-red-400",children:l}),u&&u.length>0&&(0,t.jsx)("div",{className:"mb-3 space-y-0.5",children:u.map(e=>(0,t.jsxs)("div",{className:"flex items-center justify-between text-xs",children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:e.label}),(0,t.jsx)("span",{className:"text-foreground",children:e.value})]},e.label))}),c]})},"deriveConfiguredStatus",0,function(e){return e?"configured":"needs-setup"},"deriveIntegrationStatus",0,function(e){return e&&e.configured?e.error?"error":e.connected?"connected":"configured":"needs-setup"},"deriveMessagingStatus",0,function(e){return e&&"not_configured"!==e.runtimeState?"connecting"===e.runtimeState?"connecting":"error"===e.runtimeState?"error":"ok"===e.runtimeState?"connected":"configured":"needs-setup"},"messagingMetadata",0,function(e){if(e)return[{label:"Owner configured",value:e.ownerConfigured?"yes":"no"},{label:"Owner channel known",value:e.ownerChannelKnown?"yes":"no"},{label:"Reminder eligible",value:e.notificationEligible?"yes":"no"},{label:"Last inbound",value:e.lastInboundAt??"—"}]}])},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)},76610,e=>{"use strict";let t=(0,e.i(77379).default)("KeyRound",[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]);e.s(["KeyRound",0,t],76610)},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),n=e.i(65268);e.s(["useBackends",0,function(e){return(0,t.useQuery)({queryKey:["backends"],queryFn:()=>n.api.get("/backends"),enabled:e?.enabled??!0,staleTime:6e4})}])},70986,e=>{"use strict";var t=e.i(34416),n=e.i(91967),i=e.i(9413),a=e.i(36567),r=e.i(18731),s=e.i(22353),o=e.i(85565),l=e.i(90816),u=e.i(11207),c=e.i(54710),d="Collapsible",[p,m]=(0,i.createContextScope)(d),[g,h]=p(d),f=t.forwardRef((e,n)=>{let{__scopeCollapsible:i,open:r,defaultOpen:s,disabled:l,onOpenChange:p,...m}=e,[h,f]=(0,a.useControllableState)({prop:r,defaultProp:s??!1,onChange:p,caller:d});return(0,c.jsx)(g,{scope:i,disabled:l,contentId:(0,u.useId)(),open:h,onOpenToggle:t.useCallback(()=>f(e=>!e),[f]),children:(0,c.jsx)(o.Primitive.div,{"data-state":k(h),"data-disabled":l?"":void 0,...m,ref:n})})});f.displayName=d;var y="CollapsibleTrigger",b=t.forwardRef((e,t)=>{let{__scopeCollapsible:i,...a}=e,r=h(y,i);return(0,c.jsx)(o.Primitive.button,{type:"button","aria-controls":r.contentId,"aria-expanded":r.open||!1,"data-state":k(r.open),"data-disabled":r.disabled?"":void 0,disabled:r.disabled,...a,ref:t,onClick:(0,n.composeEventHandlers)(e.onClick,r.onOpenToggle)})});b.displayName=y;var x="CollapsibleContent",v=t.forwardRef((e,t)=>{let{forceMount:n,...i}=e,a=h(x,e.__scopeCollapsible);return(0,c.jsx)(l.Presence,{present:n||a.open,children:({present:e})=>(0,c.jsx)(C,{...i,ref:t,present:e})})});v.displayName=x;var C=t.forwardRef((e,n)=>{let{__scopeCollapsible:i,present:a,children:l,...u}=e,d=h(x,i),[p,m]=t.useState(a),g=t.useRef(null),f=(0,s.useComposedRefs)(n,g),y=t.useRef(0),b=y.current,v=t.useRef(0),C=v.current,w=d.open||p,R=t.useRef(w),N=t.useRef(void 0);return t.useEffect(()=>{let e=requestAnimationFrame(()=>R.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,r.useLayoutEffect)(()=>{let e=g.current;if(e){N.current=N.current||{transitionDuration:e.style.transitionDuration,animationName:e.style.animationName},e.style.transitionDuration="0s",e.style.animationName="none";let t=e.getBoundingClientRect();y.current=t.height,v.current=t.width,R.current||(e.style.transitionDuration=N.current.transitionDuration,e.style.animationName=N.current.animationName),m(a)}},[d.open,a]),(0,c.jsx)(o.Primitive.div,{"data-state":k(d.open),"data-disabled":d.disabled?"":void 0,id:d.contentId,hidden:!w,...u,ref:f,style:{"--radix-collapsible-content-height":b?`${b}px`:void 0,"--radix-collapsible-content-width":C?`${C}px`:void 0,...e.style},children:w&&l})});function k(e){return e?"open":"closed"}e.s(["Collapsible",0,f,"CollapsibleContent",0,v,"CollapsibleTrigger",0,b],70986)},76176,e=>{"use strict";e.i(18446);var t=e.i(38082);let n={claude:"Claude Code",codex:"OpenAI Codex",gemini:"Gemini CLI",opencode:"OpenCode"},i=new Set(["opencode"]);function a(e){return i.has(e)}let r={gemini:{badgeLabel:"Vendor deprecation",shortSuffix:" (deprecated)",reason:"Google announced Gemini CLI will stop serving free, Pro, and Ultra requests on 2026-06-18 in favor of Antigravity CLI. Standard / Enterprise licenses keep access. Avoid binding new processes to Gemini if you rely on consumer-tier auth."}},s={claude:"Claude",codex:"Codex",gemini:"Gemini",opencode:"OpenCode"},o={claude:["#7C2D12","#B54B2D","#E15B40","#F97316","#FDBA74"],codex:["#86198F","#A21CAF","#D946EF","#E879F9","#F5D0FE"],gemini:["#1E3A8A","#1D4ED8","#1C69FF","#60A5FA","#93C5FD"],opencode:["#7C2D12","#C2410C","#FF7300","#F59E0B","#FCD34D"]},l=["#6b7280","#9ca3af","#4b5563","#374151"],u={claude:"orange",codex:"pink",gemini:"blue",opencode:"orange"},c={"routine.morning_routine":"Morning Routine","routine.evening_review":"Evening Review","routine.weekly_review":"Weekly Review","routine.monthly_review":"Monthly Review","routine.hourly_check":"Hourly Check","routine.roadmap_refresh":"Roadmap Refresh","message.dm":"Direct Messages","message.mention":"Mentions","dashboard.chat":"Dashboard Chat","agent.task":"Scheduled Tasks","calendar.change":"Calendar Events",gmail_classify:"Gmail Classification","github.pull_request.review_requested":"GitHub Review Requests","github.assigned":"GitHub Assignments","github.security_alert":"GitHub Security Alerts","github.workflow_run.failed":"GitHub CI Failures","wiki.ingest_url":"Wiki URL Ingest","wiki.compile":"Wiki Compile","wiki.ask":"Wiki Ask"};function d(e){let t;if(!e)return[];try{t=JSON.parse(e)}catch{return[]}if(!t||"object"!=typeof t)return[];let n=[];for(let[e,i]of Object.entries(t))i&&"object"==typeof i&&n.push({modelId:e,inputTokens:"number"==typeof i.inputTokens?i.inputTokens:0,outputTokens:"number"==typeof i.outputTokens?i.outputTokens:0,costUsd:"number"==typeof i.costUsd?i.costUsd:0});return n.sort((e,t)=>t.costUsd-e.costUsd)}function p(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,u,"BACKEND_COLORS",0,{claude:"#E15B40",codex:"#D946EF",gemini:"#1C69FF",opencode:"#FF7300"},"BACKEND_LABELS",0,n,"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 n of e){if(!n)continue;let e=p(n)??"other",i=t.get(e)??[];i.push(n),t.set(e,i)}let n={};for(let[e,i]of t){i.sort((e,t)=>e.localeCompare(t));let t="other"===e?l:o[e],a=i.length;i.forEach((e,i)=>{let r;r=a>=t.length?i%t.length:1===a?Math.floor(t.length/2):Math.floor((i+.5)*t.length/a),n[e]=t[r]})}return n},"detectBackendFromModel",0,p,"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,""),n=t.replace(/-\d{8,}$/,"").replace(/^claude-/,"").replace(/(\d+)-(\d+)(?![-\d])/g,"$1.$2").replace(/-/g," ");return t.startsWith("gpt-")&&(n=`GPT-${n.replace(/^gpt\s*/i,"")}`),t.startsWith("gemini-")&&(n=n.replace(/^gemini\s*/i,"Gemini ")),n.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 r[e]??null},"getBackendLabel",0,function(e){return n[e]},"getBackendShortLabel",0,function(e){return s[e]},"getProcessGroup",0,function(e){return e.startsWith("wiki.")?"Wiki":e.startsWith("message.")||e.startsWith("dashboard.")?"Conversation":e.startsWith("routine.")?"Routines":e.startsWith("git.")||e.startsWith("github.")?"Git & GitHub":e.startsWith("calendar.")||"gmail_classify"===e?"Integrations":"Tasks"},"getProcessLabel",0,function(e){return c[e]??e},"isBackendSelectionDisabled",0,function(e){return!(0,t.isRuntimeAvailableBackendId)(e)||a(e)},"isUiPreviewOnlyBackend",0,a,"modelBadgeVariant",0,function(e){if(!e)return"gray";let t=p(e);return t?u[t]:"gray"},"parseModelUsage",0,d,"pickDisplayModel",0,function(e,t){let n=d(t);return n.length>0&&n[0]?n[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)},87040,e=>{"use strict";var t=e.i(14260),n=e.i(65268);e.s(["useProcessConfig",0,function(e){return(0,t.useQuery)({queryKey:["process-config"],queryFn:()=>n.api.get("/process-config"),enabled:e?.enabled??!0,staleTime:6e4})}])},40974,e=>{"use strict";let t=(0,e.i(77379).default)("Lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);e.s(["Lock",0,t],40974)},67490,e=>{"use strict";var t=e.i(14260),n=e.i(57415),i=e.i(95486),a=e.i(65268);e.s(["useIntegrationProbeLive",0,function(){let e=(0,i.useQueryClient)();return(0,n.useMutation)({mutationFn:e=>{let{key:t}=e,n={};return"liveProbe"in e?(n.liveProbe=!0,e.backend&&(n.backend=e.backend)):(n.backend=e.backend,n.tools=e.tools),a.api.post(`/integrations/${t}/probe`,n)},onSuccess:(t,n)=>{e.invalidateQueries({queryKey:["integration-probe",n.key]}),e.invalidateQueries({queryKey:["health"]})}})},"useIntegrations",0,function(){return(0,t.useQuery)({queryKey:["integrations"],queryFn:()=>a.api.get("/integrations"),staleTime:3e4})},"useNativeUnboundActions",0,function(e={}){let n=e.sinceHours??168;return(0,t.useQuery)({queryKey:["agent-actions","native_unbound",n],queryFn:async()=>{let e=new URLSearchParams({since:new Date(Date.now()-60*n*6e4).toISOString(),limit:"50"});e.append("kind","integration.native_unbound");let t=await a.api.get(`/agent/actions?${e.toString()}`),i=[];for(let e of t.actions)if(e.detail)try{let t=JSON.parse(e.detail);if("string"!=typeof t.key)continue;i.push({id:e.id,key:t.key,priorNativeBackend:t.priorNativeBackend??null,newMainBackend:t.newMainBackend??null,priorDeniedTools:t.priorDeniedTools??[],startedAt:e.startedAt})}catch{continue}return i},staleTime:6e4})},"usePatchIntegration",0,function(){let e=(0,i.useQueryClient)();return(0,n.useMutation)({mutationFn:({key:e,body:t})=>a.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:()=>a.api.get(`/integrations/proxy-models/${e}`),enabled:null!=e,staleTime:6e4})},"useRecentProxyCalls",0,function(e,n={}){let{limit:i,enabled:r=!0}=n;return(0,t.useQuery)({queryKey:["recent-proxy-calls",e,i??null],queryFn:()=>{let t=void 0!==i?`?limit=${i}`:"";return a.api.get(`/integrations/${e}/recent-proxy-calls${t}`)},enabled:r&&null!==e,staleTime:1e4})}])},32220,e=>{"use strict";var t=e.i(54710),n=e.i(34416),i=e.i(95486),a=e.i(19660),r=e.i(72740),s=e.i(21682),o=e.i(7663),l=e.i(75750),u=e.i(74490),c=e.i(20014),d=e.i(48467),p=e.i(79634),m=e.i(10427),g=e.i(65268),h=e.i(24756),f=e.i(87040),y=e.i(76176);e.s(["ProcessModelCard",0,function({processKey:e,title:b="AI Model",description:x}){let v=(0,i.useQueryClient)(),{data:C}=(0,h.useBackends)(),{data:k}=(0,f.useProcessConfig)(),[w,R]=(0,n.useState)(!1),[N,j]=(0,n.useState)(null),[S,M]=(0,n.useState)(null),[I,F]=(0,n.useState)(!1),[_,B]=(0,n.useState)(null),T=k?.configs.find(t=>t.processKey===e),A=new Map((C?.backends??[]).map(e=>[e.id,e])),E=(C?.backends??[]).filter(e=>e.enabled);if(!C||!k||!T)return null;let P=A.get(T.mainBackend),D=P?.models.find(e=>e.modelId===T.mainModel)?.label??(0,y.formatModelName)(T.mainModel),O=N?A.get(N):null,q=O?.models??[];async function L(){if(N&&S){F(!0),B(null);try{await g.api.put(`/process-config/${e}`,{mainBackend:N,mainModel:S,fallbackBackend:T.fallbackBackend,fallbackModel:T.fallbackModel,maxTurns:T.maxTurns,maxBudgetUsd:T.maxBudgetUsd}),await v.invalidateQueries({queryKey:["process-config"]}),B({type:"success",message:"Saved"}),R(!1)}catch(t){let e=t instanceof g.ApiError?t.body:null;B({type:"error",message:"string"==typeof e?.error?e.error:t instanceof Error?t.message:"Save failed"})}finally{F(!1)}}}return(0,t.jsxs)(u.Card,{children:[(0,t.jsxs)(u.CardHeader,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(a.Bot,{className:"h-4 w-4 text-muted-foreground"}),(0,t.jsx)(u.CardTitle,{className:"text-base",children:b}),"user"===T.updatedBy&&(0,t.jsx)(d.Badge,{variant:"blue",className:"text-xs",children:"Custom"})]}),!w&&(0,t.jsxs)(c.Button,{variant:"ghost",size:"sm",onClick:function(){j(T.mainBackend),M(T.mainModel),B(null),R(!0)},className:"h-8",children:[(0,t.jsx)(s.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)(d.Badge,{variant:y.BACKEND_BADGE_VARIANTS[T.mainBackend],children:(0,y.getBackendLabel)(T.mainBackend)}),(0,t.jsx)("span",{className:"text-muted-foreground",children:D}),(0,t.jsx)(d.Badge,{variant:"high"===T.defaultTier?"purple":"medium"===T.defaultTier?"blue":"default",className:"text-xs",children:T.defaultTier})]}),x&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:x})]}),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:N??"",onValueChange:e=>(function(e){var t,n;let i,a=A.get(e);if(!a)return;j(e);let r=(t=a.models,n=T.defaultTier,(i=t.filter(e=>e.tier===n)).length>0?i:t);M(r[0]?.modelId??a.models[0]?.modelId??"")})(e),children:[(0,t.jsx)(m.SelectTrigger,{children:(0,t.jsx)(m.SelectValue,{})}),(0,t.jsx)(m.SelectContent,{children:E.map(e=>{let n=(0,y.isUiPreviewOnlyBackend)(e.id);return(0,t.jsxs)(m.SelectItem,{value:e.id,disabled:n,children:[(0,y.getBackendLabel)(e.id),n?y.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=>M(e),children:[(0,t.jsx)(m.SelectTrigger,{children:(0,t.jsx)(m.SelectValue,{})}),(0,t.jsx)(m.SelectContent,{children:q.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)(c.Button,{variant:"outline",size:"sm",onClick:function(){R(!1),j(null),M(null)},disabled:I,children:[(0,t.jsx)(l.XCircle,{className:"h-3.5 w-3.5"}),"Cancel"]}),(0,t.jsxs)(c.Button,{size:"sm",onClick:()=>{L()},disabled:I||!S,children:[I?(0,t.jsx)(r.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):(0,t.jsx)(o.Save,{className:"h-3.5 w-3.5"}),"Save"]})]})]}),_&&(0,t.jsx)(p.Alert,{variant:"success"===_.type?"success":"error",className:"mt-3",children:_.message})]})}])},1733,e=>{"use strict";var t=e.i(14260),n=e.i(57415),i=e.i(95486),a=e.i(65268);let r=["repositories"],s=e=>[...r,e],o=e=>[...s(e),"triggers"],l=e=>[...s(e),"management"];function u(e){return!!(e.githubOwner&&e.githubRepo)}e.s(["observationSourcesForRepo",0,function(e){let t=[];if(e.localPath&&t.push(`git:${e.localPath}`),u(e)){let n=`${e.githubOwner}/${e.githubRepo}`;t.push(`github:notification:${n}`),t.push(`github:workflow:${n}`)}return t},"repositoryDisplayName",0,function(e){if(e.displayName)return e.displayName;if(u(e))return`${e.githubOwner}/${e.githubRepo}`;if(e.localPath){let t=e.localPath.replace(/[\\/]+$/g,"").split(/[\\/]+/).filter(Boolean);return t[t.length-1]??e.localPath}return e.slug},"repositoryHasGithub",0,u,"repositoryHasLocal",0,function(e){return!!e.localPath},"useCreateRepoTrigger",0,function(){let e=(0,i.useQueryClient)();return(0,n.useMutation)({mutationFn:({repositoryId:e,body:t})=>a.api.post(`/repositories/${encodeURIComponent(e)}/triggers`,t),onSuccess:(t,n)=>{e.invalidateQueries({queryKey:o(n.repositoryId)})}})},"useCreateRepository",0,function(){let e=(0,i.useQueryClient)();return(0,n.useMutation)({mutationFn:e=>a.api.post("/repositories",e),onSuccess:()=>{e.invalidateQueries({queryKey:r})}})},"useDeleteRepoTrigger",0,function(){let e=(0,i.useQueryClient)();return(0,n.useMutation)({mutationFn:({repositoryId:e,triggerId:t})=>a.api.delete(`/repositories/${encodeURIComponent(e)}/triggers/${encodeURIComponent(t)}`),onSuccess:(t,n)=>{e.invalidateQueries({queryKey:o(n.repositoryId)})}})},"useDeleteRepository",0,function(){let e=(0,i.useQueryClient)();return(0,n.useMutation)({mutationFn:e=>a.api.delete(`/repositories/${encodeURIComponent(e)}`),onSuccess:()=>{e.invalidateQueries({queryKey:r})}})},"useFireRepoTrigger",0,function(){return(0,n.useMutation)({mutationFn:({repositoryId:e,triggerId:t})=>a.api.post(`/repositories/${encodeURIComponent(e)}/triggers/${encodeURIComponent(t)}/run`,{})})},"useLinkGithub",0,function(){let e=(0,i.useQueryClient)();return(0,n.useMutation)({mutationFn:({id:e,owner:t,repo:n,account:i})=>a.api.post(`/repositories/${encodeURIComponent(e)}/link-github`,{owner:t,repo:n,account:i}),onSuccess:(t,n)=>{e.invalidateQueries({queryKey:r}),e.invalidateQueries({queryKey:s(n.id)})}})},"useLinkLocal",0,function(){let e=(0,i.useQueryClient)();return(0,n.useMutation)({mutationFn:({id:e,localPath:t})=>a.api.post(`/repositories/${encodeURIComponent(e)}/link-local`,{localPath:t}),onSuccess:(t,n)=>{e.invalidateQueries({queryKey:r}),e.invalidateQueries({queryKey:s(n.id)})}})},"useRefreshRepositoryArchitecture",0,function(){let e=(0,i.useQueryClient)();return(0,n.useMutation)({mutationFn:e=>a.api.post(`/repositories/${encodeURIComponent(e)}/management/refresh-architecture`,{}),onSuccess:async(t,n)=>{try{await e.refetchQueries({queryKey:l(n)})}catch{}}})},"useRepositories",0,function(e){return(0,t.useQuery)({queryKey:e?[...r,e]:[...r],queryFn:()=>a.api.get("/repositories",function(e){if(!e)return;let t={};return void 0!==e.hasGithub&&(t.has_github=e.hasGithub?"1":"0"),void 0!==e.hasLocal&&(t.has_local=e.hasLocal?"1":"0"),void 0!==e.localOnly&&(t.local_only=e.localOnly?"1":"0"),e.account&&(t.account=e.account),Object.keys(t).length>0?t:void 0}(e)),staleTime:3e4})},"useRepositoryManagement",0,function(e){return(0,t.useQuery)({queryKey:e?l(e):[...r,"missing","management"],queryFn:()=>a.api.get(`/repositories/${encodeURIComponent(e)}/management`),enabled:!!e,staleTime:15e3,refetchInterval:e=>{let t=e.state.data;return!!t?.architectureRefresh&&3e3}})},"useRepositoryTriggers",0,function(e){return(0,t.useQuery)({queryKey:e?o(e):[...r,"missing","triggers"],queryFn:()=>a.api.get(`/repositories/${encodeURIComponent(e)}/triggers`),enabled:!!e,staleTime:15e3})},"useRunRepoManagementInit",0,function(){let e=(0,i.useQueryClient)();return(0,n.useMutation)({mutationFn:e=>a.api.post(`/repositories/${encodeURIComponent(e)}/management/init`,{}),onSuccess:async(t,n)=>{try{await e.refetchQueries({queryKey:l(n)})}catch{}}})},"useRunRepoManagementScan",0,function(){let e=(0,i.useQueryClient)();return(0,n.useMutation)({mutationFn:e=>a.api.post(`/repositories/${encodeURIComponent(e)}/management/scan`,{}),onSuccess:async(t,n)=>{try{await e.refetchQueries({queryKey:l(n)})}catch{}}})},"useSetRepositoryManagement",0,function(){let e=(0,i.useQueryClient)();return(0,n.useMutation)({mutationFn:({id:e,enabled:t})=>a.api.put(`/repositories/${encodeURIComponent(e)}/management`,{enabled:t}),onSuccess:(t,n)=>{e.invalidateQueries({queryKey:l(n.id)})}})},"useTestRepoTrigger",0,function(){return(0,n.useMutation)({mutationFn:({repositoryId:e,triggerId:t,eventType:n,payload:i})=>a.api.post(`/repositories/${encodeURIComponent(e)}/triggers/${encodeURIComponent(t)}/test`,{eventType:n,payload:i})})},"useUpdateRepoTrigger",0,function(){let e=(0,i.useQueryClient)();return(0,n.useMutation)({mutationFn:({repositoryId:e,triggerId:t,body:n})=>a.api.patch(`/repositories/${encodeURIComponent(e)}/triggers/${encodeURIComponent(t)}`,n),onSuccess:(t,n)=>{e.invalidateQueries({queryKey:o(n.repositoryId)})}})},"useUpdateRepository",0,function(){let e=(0,i.useQueryClient)();return(0,n.useMutation)({mutationFn:({id:e,body:t})=>a.api.patch(`/repositories/${encodeURIComponent(e)}`,t),onSuccess:(t,n)=>{e.invalidateQueries({queryKey:r}),e.invalidateQueries({queryKey:s(n.id)})}})}])}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,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:s}){let n=await t.api.post("/system/pick-directory",{title:e,...s?{defaultPath:s}:{}});if("selected"===n.status&&n.path)return n.path;if("cancelled"===n.status)return null;throw Error(n.message??"Folder picker is unavailable.")}e.s(["pickDirectoryFromDesktop",0,a])},58436,e=>{"use strict";var t=e.i(54710),a=e.i(34416),s=e.i(55575),n=e.i(72740),r=e.i(20014),i=e.i(8652),l=e.i(66127),d=e.i(81471);e.s(["DirectoryPickerField",0,function({id:e,value:o,onChange:c,title:u,placeholder:m="Choose a folder...",defaultPath:x,disabled:h=!1,className:g,inputClassName:p,buttonLabel:f="Choose"}){let[b,j]=(0,a.useState)(!1),[v,y]=(0,a.useState)(null),N=async()=>{j(!0),y(null);try{let e=await (0,l.pickDirectoryFromDesktop)({title:u,defaultPath:o.trim()||x});e&&c(e)}catch(e){y(e instanceof Error?e.message:"Folder picker is unavailable.")}finally{j(!1)}};return(0,t.jsxs)("div",{className:(0,d.cn)("space-y-1",g),children:[(0,t.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row",children:[(0,t.jsx)(i.Input,{id:e,value:o,onChange:e=>{c(e.target.value),y(null)},placeholder:m,className:(0,d.cn)("font-mono text-sm",p),disabled:h||b}),(0,t.jsxs)(r.Button,{type:"button",variant:"outline",onClick:N,disabled:h||b,className:"shrink-0 gap-2",children:[b?(0,t.jsx)(n.Loader2,{className:"h-4 w-4 animate-spin"}):(0,t.jsx)(s.FolderOpen,{className:"h-4 w-4"}),b?"Opening...":f]})]}),v&&(0,t.jsx)("p",{className:"text-xs text-destructive",children:v})]})}])},85631,e=>{"use strict";var t=e.i(54710),a=e.i(81471);e.s(["ConnectionsSectionHeader",0,function({title:e,description:s,healthy:n,total:r,attention:i,actions:l}){let d=r>0&&n===r,o=r>0&&0===n;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:[r>0&&(0,t.jsxs)("span",{className:(0,a.cn)("text-xs font-medium tabular-nums",d?"text-emerald-600 dark:text-emerald-400":o?"text-muted-foreground":"text-amber-600 dark:text-amber-400"),children:[n,"/",r," connected"]}),l]})]}),s&&(0,t.jsx)("p",{className:"max-w-3xl text-sm text-muted-foreground",children:s}),i&&(0,t.jsx)("p",{className:"text-xs text-amber-600 dark:text-amber-400",children:i})]})}])},20870,e=>{"use strict";var t=e.i(54710),a=e.i(48467),s=e.i(74490),n=e.i(81471);let r={connected:{variant:"green",label:"Connected"},configured:{variant:"amber",label:"Configured"},connecting:{variant:"amber",label:"Connecting…"},"needs-setup":{variant:"gray",label:"Not Configured"},error:{variant:"red",label:"Error"},disabled:{variant:"gray",label:"Disabled"}};e.s(["ConnectionCard",0,function({name:e,icon:i,status:l,error:d,metadata:o,children:c,className:u}){let m=r[l];return(0,t.jsxs)(s.Card,{tone:"connected"===l?"success":"error"===l?"error":"default",className:(0,n.cn)("relative",u),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:i}),(0,t.jsx)("h3",{className:"text-sm font-medium text-foreground",children:e})]}),(0,t.jsx)(a.Badge,{variant:m.variant,children:m.label})]}),d&&"connecting"!==l&&(0,t.jsx)("p",{className:"mb-2 text-xs text-red-600 dark:text-red-400",children:d}),o&&o.length>0&&(0,t.jsx)("div",{className:"mb-3 space-y-0.5",children:o.map(e=>(0,t.jsxs)("div",{className:"flex items-center justify-between text-xs",children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:e.label}),(0,t.jsx)("span",{className:"text-foreground",children:e.value})]},e.label))}),c]})},"deriveConfiguredStatus",0,function(e){return e?"configured":"needs-setup"},"deriveIntegrationStatus",0,function(e){return e&&e.configured?e.error?"error":e.connected?"connected":"configured":"needs-setup"},"deriveMessagingStatus",0,function(e){return e&&"not_configured"!==e.runtimeState?"connecting"===e.runtimeState?"connecting":"error"===e.runtimeState?"error":"ok"===e.runtimeState?"connected":"configured":"needs-setup"},"messagingMetadata",0,function(e){if(e)return[{label:"Owner configured",value:e.ownerConfigured?"yes":"no"},{label:"Owner channel known",value:e.ownerChannelKnown?"yes":"no"},{label:"Reminder eligible",value:e.notificationEligible?"yes":"no"},{label:"Last inbound",value:e.lastInboundAt??"—"}]}])},73550,e=>{"use strict";let t=(0,e.i(77379).default)("Hash",[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]]);e.s(["Hash",0,t],73550)},14949,e=>{"use strict";var t=e.i(54710),a=e.i(88423),s=e.i(75187),n=e.i(44791),r=e.i(66665),i=e.i(45764),l=e.i(49578),d=e.i(26317),o=e.i(20870);function c(){let{data:e}=(0,s.useHealth)(),a=e?.messaging?.dashboard;return(0,t.jsx)(o.ConnectionCard,{name:"Dashboard",icon:(0,t.jsx)(d.LayoutDashboard,{className:"h-4 w-4"}),status:(0,o.deriveMessagingStatus)(a),error:a?.error,children:(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"The dashboard chat shares the same conversation as your other messaging apps. Routine reminders aren't delivered here by default — they go to the destinations you pick below."})})}var u=e.i(2126),m=e.i(85631);let x=["slack","telegram","discord","whatsapp","dashboard"],h={slack:"Slack",telegram:"Telegram",discord:"Discord",whatsapp:"WhatsApp",dashboard:"Dashboard"};function g(){return(0,t.jsx)("div",{className:"space-y-4 animate-pulse",children:[1,2,3].map(e=>(0,t.jsxs)("div",{className:"rounded-xl border border-border p-5",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:"h-4 w-4 rounded bg-muted"}),(0,t.jsx)("div",{className:"h-4 w-20 rounded bg-muted"})]}),(0,t.jsx)("div",{className:"h-5 w-24 rounded-full bg-muted"})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("div",{className:"h-3 w-full max-w-xs rounded bg-muted"}),(0,t.jsx)("div",{className:"h-3 w-full max-w-[200px] rounded bg-muted"})]})]},e))})}e.s(["default",0,function(){let{data:e,isLoading:d}=(0,a.useConfig)(),{data:o,isLoading:p}=(0,s.useHealth)(),f=d||p,b=!f&&(!e||!o),j=o?.messaging??{},v=x.filter(e=>j[e]?.runtimeState==="ok").length,y=x.filter(e=>j[e]?.runtimeState==="error").map(e=>h[e]),N=y.length>0?`${y.join(", ")} ${1===y.length?"needs":"need"} attention`:null;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(m.ConnectionsSectionHeader,{title:"Messaging",description:"Apps you use to talk with the agent. DMs and @-mentions only — group chats are out of scope.",healthy:v,total:x.length,attention:N}),b&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"Daemon not connected. Start the daemon to configure channels."}),f?(0,t.jsx)(g,{}):(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)(n.SlackCard,{}),(0,t.jsx)(r.TelegramCard,{}),(0,t.jsx)(i.DiscordCard,{}),(0,t.jsx)(l.WhatsAppCard,{}),(0,t.jsx)(c,{})]}),!f&&(0,t.jsx)(u.DestinationSelector,{})]})}],14949)}]);
|