@aitne/dashboard 0.1.4 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +5 -1
- package/.next/build-manifest.json +3 -3
- package/.next/cache/.tsbuildinfo +1 -1
- package/.next/diagnostics/route-bundle-stats.json +450 -356
- package/.next/fallback-build-manifest.json +3 -3
- package/.next/prerender-manifest.json +96 -0
- package/.next/routes-manifest.json +24 -0
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +15 -15
- package/.next/server/app/_not-found.segments/_full.segment.rsc +15 -15
- package/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
- package/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/activity/page.js.nft.json +1 -1
- package/.next/server/app/activity/page_client-reference-manifest.js +1 -1
- package/.next/server/app/activity.html +1 -1
- package/.next/server/app/activity.rsc +19 -19
- package/.next/server/app/activity.segments/_full.segment.rsc +19 -19
- package/.next/server/app/activity.segments/_head.segment.rsc +4 -4
- package/.next/server/app/activity.segments/_index.segment.rsc +10 -10
- package/.next/server/app/activity.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/activity.segments/activity/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/activity.segments/activity.segment.rsc +4 -4
- package/.next/server/app/analytics/page.js.nft.json +1 -1
- package/.next/server/app/analytics/page_client-reference-manifest.js +1 -1
- package/.next/server/app/analytics.html +1 -1
- package/.next/server/app/analytics.rsc +19 -19
- package/.next/server/app/analytics.segments/_full.segment.rsc +19 -19
- package/.next/server/app/analytics.segments/_head.segment.rsc +4 -4
- package/.next/server/app/analytics.segments/_index.segment.rsc +10 -10
- package/.next/server/app/analytics.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/analytics.segments/analytics/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/analytics.segments/analytics.segment.rsc +4 -4
- package/.next/server/app/api/[...path]/route.js +1 -1
- package/.next/server/app/api/[...path]/route.js.nft.json +1 -1
- package/.next/server/app/chat/page.js.nft.json +1 -1
- package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
- package/.next/server/app/chat.html +1 -1
- package/.next/server/app/chat.rsc +17 -17
- package/.next/server/app/chat.segments/_full.segment.rsc +17 -17
- package/.next/server/app/chat.segments/_head.segment.rsc +4 -4
- package/.next/server/app/chat.segments/_index.segment.rsc +10 -10
- package/.next/server/app/chat.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/chat.segments/chat/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/chat.segments/chat.segment.rsc +3 -3
- package/.next/server/app/connections/calendar/page.js.nft.json +1 -1
- package/.next/server/app/connections/calendar/page_client-reference-manifest.js +1 -1
- package/.next/server/app/connections/calendar.html +1 -1
- package/.next/server/app/connections/calendar.rsc +18 -18
- package/.next/server/app/connections/calendar.segments/_full.segment.rsc +18 -18
- package/.next/server/app/connections/calendar.segments/_head.segment.rsc +4 -4
- package/.next/server/app/connections/calendar.segments/_index.segment.rsc +10 -10
- package/.next/server/app/connections/calendar.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/connections/calendar.segments/connections/calendar/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/connections/calendar.segments/connections/calendar.segment.rsc +3 -3
- package/.next/server/app/connections/calendar.segments/connections.segment.rsc +4 -4
- package/.next/server/app/connections/journal/page.js.nft.json +1 -1
- package/.next/server/app/connections/journal/page_client-reference-manifest.js +1 -1
- package/.next/server/app/connections/journal.html +1 -1
- package/.next/server/app/connections/journal.rsc +16 -16
- package/.next/server/app/connections/journal.segments/_full.segment.rsc +16 -16
- package/.next/server/app/connections/journal.segments/_head.segment.rsc +4 -4
- package/.next/server/app/connections/journal.segments/_index.segment.rsc +10 -10
- package/.next/server/app/connections/journal.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/connections/journal.segments/connections/journal/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/connections/journal.segments/connections/journal.segment.rsc +3 -3
- package/.next/server/app/connections/journal.segments/connections.segment.rsc +4 -4
- package/.next/server/app/connections/knowledge/page.js.nft.json +1 -1
- package/.next/server/app/connections/knowledge/page_client-reference-manifest.js +1 -1
- package/.next/server/app/connections/knowledge.html +1 -1
- package/.next/server/app/connections/knowledge.rsc +18 -18
- package/.next/server/app/connections/knowledge.segments/_full.segment.rsc +18 -18
- package/.next/server/app/connections/knowledge.segments/_head.segment.rsc +4 -4
- package/.next/server/app/connections/knowledge.segments/_index.segment.rsc +10 -10
- package/.next/server/app/connections/knowledge.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/connections/knowledge.segments/connections/knowledge/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/connections/knowledge.segments/connections/knowledge.segment.rsc +3 -3
- package/.next/server/app/connections/knowledge.segments/connections.segment.rsc +4 -4
- package/.next/server/app/connections/mail/page.js.nft.json +1 -1
- package/.next/server/app/connections/mail/page_client-reference-manifest.js +1 -1
- package/.next/server/app/connections/mail.html +1 -1
- package/.next/server/app/connections/mail.rsc +18 -18
- package/.next/server/app/connections/mail.segments/_full.segment.rsc +18 -18
- package/.next/server/app/connections/mail.segments/_head.segment.rsc +4 -4
- package/.next/server/app/connections/mail.segments/_index.segment.rsc +10 -10
- package/.next/server/app/connections/mail.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/connections/mail.segments/connections/mail/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/connections/mail.segments/connections/mail.segment.rsc +3 -3
- package/.next/server/app/connections/mail.segments/connections.segment.rsc +4 -4
- package/.next/server/app/connections/mcp/page.js.nft.json +1 -1
- package/.next/server/app/connections/mcp/page_client-reference-manifest.js +1 -1
- package/.next/server/app/connections/mcp.html +1 -1
- package/.next/server/app/connections/mcp.rsc +18 -18
- package/.next/server/app/connections/mcp.segments/_full.segment.rsc +18 -18
- package/.next/server/app/connections/mcp.segments/_head.segment.rsc +4 -4
- package/.next/server/app/connections/mcp.segments/_index.segment.rsc +10 -10
- package/.next/server/app/connections/mcp.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/connections/mcp.segments/connections/mcp/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/connections/mcp.segments/connections/mcp.segment.rsc +3 -3
- package/.next/server/app/connections/mcp.segments/connections.segment.rsc +4 -4
- package/.next/server/app/connections/messaging/page.js.nft.json +1 -1
- package/.next/server/app/connections/messaging/page_client-reference-manifest.js +1 -1
- package/.next/server/app/connections/messaging.html +1 -1
- package/.next/server/app/connections/messaging.rsc +18 -18
- package/.next/server/app/connections/messaging.segments/_full.segment.rsc +18 -18
- package/.next/server/app/connections/messaging.segments/_head.segment.rsc +4 -4
- package/.next/server/app/connections/messaging.segments/_index.segment.rsc +10 -10
- package/.next/server/app/connections/messaging.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/connections/messaging.segments/connections/messaging/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/connections/messaging.segments/connections/messaging.segment.rsc +3 -3
- package/.next/server/app/connections/messaging.segments/connections.segment.rsc +4 -4
- package/.next/server/app/connections/page.js.nft.json +1 -1
- package/.next/server/app/connections/page_client-reference-manifest.js +1 -1
- package/.next/server/app/connections/repositories/page.js.nft.json +1 -1
- package/.next/server/app/connections/repositories/page_client-reference-manifest.js +1 -1
- package/.next/server/app/connections/repositories.html +1 -1
- package/.next/server/app/connections/repositories.rsc +18 -18
- package/.next/server/app/connections/repositories.segments/_full.segment.rsc +18 -18
- package/.next/server/app/connections/repositories.segments/_head.segment.rsc +4 -4
- package/.next/server/app/connections/repositories.segments/_index.segment.rsc +10 -10
- package/.next/server/app/connections/repositories.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/connections/repositories.segments/connections/repositories/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/connections/repositories.segments/connections/repositories.segment.rsc +3 -3
- package/.next/server/app/connections/repositories.segments/connections.segment.rsc +4 -4
- package/.next/server/app/connections/routines/page.js.nft.json +1 -1
- package/.next/server/app/connections/routines/page_client-reference-manifest.js +1 -1
- package/.next/server/app/connections/routines.html +1 -1
- package/.next/server/app/connections/routines.rsc +16 -16
- package/.next/server/app/connections/routines.segments/_full.segment.rsc +16 -16
- package/.next/server/app/connections/routines.segments/_head.segment.rsc +4 -4
- package/.next/server/app/connections/routines.segments/_index.segment.rsc +10 -10
- package/.next/server/app/connections/routines.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/connections/routines.segments/connections/routines/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/connections/routines.segments/connections/routines.segment.rsc +3 -3
- package/.next/server/app/connections/routines.segments/connections.segment.rsc +4 -4
- package/.next/server/app/connections.html +1 -1
- package/.next/server/app/connections.rsc +16 -16
- package/.next/server/app/connections.segments/_full.segment.rsc +16 -16
- package/.next/server/app/connections.segments/_head.segment.rsc +4 -4
- package/.next/server/app/connections.segments/_index.segment.rsc +10 -10
- package/.next/server/app/connections.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/connections.segments/connections/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/connections.segments/connections.segment.rsc +4 -4
- package/.next/server/app/conversations/[id]/page.js.nft.json +1 -1
- package/.next/server/app/conversations/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/conversations/page.js.nft.json +1 -1
- package/.next/server/app/conversations/page_client-reference-manifest.js +1 -1
- package/.next/server/app/conversations.html +1 -1
- package/.next/server/app/conversations.rsc +15 -15
- package/.next/server/app/conversations.segments/_full.segment.rsc +15 -15
- package/.next/server/app/conversations.segments/_head.segment.rsc +4 -4
- package/.next/server/app/conversations.segments/_index.segment.rsc +10 -10
- package/.next/server/app/conversations.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/conversations.segments/conversations/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/conversations.segments/conversations.segment.rsc +3 -3
- package/.next/server/app/docs/[[...slug]]/page.js.nft.json +1 -1
- package/.next/server/app/docs/[[...slug]]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/finance/page.js.nft.json +1 -1
- package/.next/server/app/finance/page_client-reference-manifest.js +1 -1
- package/.next/server/app/finance.html +1 -1
- package/.next/server/app/finance.rsc +17 -17
- package/.next/server/app/finance.segments/_full.segment.rsc +17 -17
- package/.next/server/app/finance.segments/_head.segment.rsc +4 -4
- package/.next/server/app/finance.segments/_index.segment.rsc +10 -10
- package/.next/server/app/finance.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/finance.segments/finance/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/finance.segments/finance.segment.rsc +3 -3
- package/.next/server/app/git/page.js.nft.json +1 -1
- package/.next/server/app/git/page_client-reference-manifest.js +1 -1
- package/.next/server/app/git.html +1 -1
- package/.next/server/app/git.rsc +17 -17
- package/.next/server/app/git.segments/_full.segment.rsc +17 -17
- package/.next/server/app/git.segments/_head.segment.rsc +4 -4
- package/.next/server/app/git.segments/_index.segment.rsc +10 -10
- package/.next/server/app/git.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/git.segments/git/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/git.segments/git.segment.rsc +3 -3
- package/.next/server/app/health/page.js.nft.json +1 -1
- package/.next/server/app/health/page_client-reference-manifest.js +1 -1
- package/.next/server/app/health.html +1 -1
- package/.next/server/app/health.rsc +17 -17
- package/.next/server/app/health.segments/_full.segment.rsc +17 -17
- package/.next/server/app/health.segments/_head.segment.rsc +4 -4
- package/.next/server/app/health.segments/_index.segment.rsc +10 -10
- package/.next/server/app/health.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/health.segments/health/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/health.segments/health.segment.rsc +3 -3
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +17 -17
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/index.segments/_full.segment.rsc +17 -17
- package/.next/server/app/index.segments/_head.segment.rsc +4 -4
- package/.next/server/app/index.segments/_index.segment.rsc +10 -10
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/knowledge/page.js.nft.json +1 -1
- package/.next/server/app/knowledge/page_client-reference-manifest.js +1 -1
- package/.next/server/app/knowledge.html +1 -1
- package/.next/server/app/knowledge.rsc +18 -18
- package/.next/server/app/knowledge.segments/_full.segment.rsc +18 -18
- package/.next/server/app/knowledge.segments/_head.segment.rsc +4 -4
- package/.next/server/app/knowledge.segments/_index.segment.rsc +10 -10
- package/.next/server/app/knowledge.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/knowledge.segments/knowledge/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/knowledge.segments/knowledge.segment.rsc +4 -4
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/reading/page.js.nft.json +1 -1
- package/.next/server/app/reading/page_client-reference-manifest.js +1 -1
- package/.next/server/app/reading.html +1 -1
- package/.next/server/app/reading.rsc +17 -17
- package/.next/server/app/reading.segments/_full.segment.rsc +17 -17
- package/.next/server/app/reading.segments/_head.segment.rsc +4 -4
- package/.next/server/app/reading.segments/_index.segment.rsc +10 -10
- package/.next/server/app/reading.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/reading.segments/reading/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/reading.segments/reading.segment.rsc +3 -3
- package/.next/server/app/schedule/page.js.nft.json +1 -1
- package/.next/server/app/schedule/page_client-reference-manifest.js +1 -1
- package/.next/server/app/schedule.html +1 -1
- package/.next/server/app/schedule.rsc +17 -17
- package/.next/server/app/schedule.segments/_full.segment.rsc +17 -17
- package/.next/server/app/schedule.segments/_head.segment.rsc +4 -4
- package/.next/server/app/schedule.segments/_index.segment.rsc +10 -10
- package/.next/server/app/schedule.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/schedule.segments/schedule/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/schedule.segments/schedule.segment.rsc +3 -3
- package/.next/server/app/settings/advanced/page.js.nft.json +1 -1
- package/.next/server/app/settings/advanced/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/advanced.html +1 -1
- package/.next/server/app/settings/advanced.rsc +18 -18
- package/.next/server/app/settings/advanced.segments/_full.segment.rsc +18 -18
- package/.next/server/app/settings/advanced.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/advanced.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/advanced.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/advanced.segments/settings/advanced/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/advanced.segments/settings/advanced.segment.rsc +3 -3
- package/.next/server/app/settings/advanced.segments/settings.segment.rsc +4 -4
- package/.next/server/app/settings/backends/page.js.nft.json +1 -1
- package/.next/server/app/settings/backends/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/backends.html +1 -1
- package/.next/server/app/settings/backends.rsc +16 -16
- package/.next/server/app/settings/backends.segments/_full.segment.rsc +16 -16
- package/.next/server/app/settings/backends.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/backends.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/backends.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/backends.segments/settings/backends/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/settings/backends.segments/settings/backends.segment.rsc +3 -3
- package/.next/server/app/settings/backends.segments/settings.segment.rsc +4 -4
- package/.next/server/app/settings/commands/page.js.nft.json +1 -1
- package/.next/server/app/settings/commands/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/commands.html +1 -1
- package/.next/server/app/settings/commands.rsc +18 -18
- package/.next/server/app/settings/commands.segments/_full.segment.rsc +18 -18
- package/.next/server/app/settings/commands.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/commands.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/commands.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/commands.segments/settings/commands/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/commands.segments/settings/commands.segment.rsc +3 -3
- package/.next/server/app/settings/commands.segments/settings.segment.rsc +4 -4
- package/.next/server/app/settings/connections/page.js.nft.json +1 -1
- package/.next/server/app/settings/connections/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/connections.html +1 -1
- package/.next/server/app/settings/connections.rsc +16 -16
- package/.next/server/app/settings/connections.segments/_full.segment.rsc +16 -16
- package/.next/server/app/settings/connections.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/connections.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/connections.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/connections.segments/settings/connections/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/settings/connections.segments/settings/connections.segment.rsc +3 -3
- package/.next/server/app/settings/connections.segments/settings.segment.rsc +4 -4
- package/.next/server/app/settings/journal/page.js.nft.json +1 -1
- package/.next/server/app/settings/journal/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/journal.html +1 -1
- package/.next/server/app/settings/journal.rsc +18 -18
- package/.next/server/app/settings/journal.segments/_full.segment.rsc +18 -18
- package/.next/server/app/settings/journal.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/journal.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/journal.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/journal.segments/settings/journal/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/journal.segments/settings/journal.segment.rsc +3 -3
- package/.next/server/app/settings/journal.segments/settings.segment.rsc +4 -4
- package/.next/server/app/settings/management/page.js.nft.json +1 -1
- package/.next/server/app/settings/management/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/management.html +1 -1
- package/.next/server/app/settings/management.rsc +18 -18
- package/.next/server/app/settings/management.segments/_full.segment.rsc +18 -18
- package/.next/server/app/settings/management.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/management.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/management.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/management.segments/settings/management/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/management.segments/settings/management.segment.rsc +3 -3
- package/.next/server/app/settings/management.segments/settings.segment.rsc +4 -4
- package/.next/server/app/settings/messaging/page.js.nft.json +1 -1
- package/.next/server/app/settings/messaging/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/messaging.html +1 -1
- package/.next/server/app/settings/messaging.rsc +16 -16
- package/.next/server/app/settings/messaging.segments/_full.segment.rsc +16 -16
- package/.next/server/app/settings/messaging.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/messaging.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/messaging.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/messaging.segments/settings/messaging/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/settings/messaging.segments/settings/messaging.segment.rsc +3 -3
- package/.next/server/app/settings/messaging.segments/settings.segment.rsc +4 -4
- package/.next/server/app/settings/models/page.js.nft.json +1 -1
- package/.next/server/app/settings/models/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/models.html +1 -1
- package/.next/server/app/settings/models.rsc +18 -18
- package/.next/server/app/settings/models.segments/_full.segment.rsc +18 -18
- package/.next/server/app/settings/models.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/models.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/models.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/models.segments/settings/models/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/models.segments/settings/models.segment.rsc +3 -3
- package/.next/server/app/settings/models.segments/settings.segment.rsc +4 -4
- package/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/processes/page.js.nft.json +1 -1
- package/.next/server/app/settings/processes/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/processes.html +1 -1
- package/.next/server/app/settings/processes.rsc +16 -16
- package/.next/server/app/settings/processes.segments/_full.segment.rsc +16 -16
- package/.next/server/app/settings/processes.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/processes.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/processes.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/processes.segments/settings/processes/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/settings/processes.segments/settings/processes.segment.rsc +3 -3
- package/.next/server/app/settings/processes.segments/settings.segment.rsc +4 -4
- package/.next/server/app/settings/routines/page.js.nft.json +1 -1
- package/.next/server/app/settings/routines/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/routines.html +1 -1
- package/.next/server/app/settings/routines.rsc +18 -18
- package/.next/server/app/settings/routines.segments/_full.segment.rsc +18 -18
- package/.next/server/app/settings/routines.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/routines.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/routines.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/routines.segments/settings/routines/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/routines.segments/settings/routines.segment.rsc +3 -3
- package/.next/server/app/settings/routines.segments/settings.segment.rsc +4 -4
- package/.next/server/app/settings/schedule/page.js.nft.json +1 -1
- package/.next/server/app/settings/schedule/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/schedule.html +1 -1
- package/.next/server/app/settings/schedule.rsc +18 -18
- package/.next/server/app/settings/schedule.segments/_full.segment.rsc +18 -18
- package/.next/server/app/settings/schedule.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/schedule.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/schedule.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/schedule.segments/settings/schedule/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/schedule.segments/settings/schedule.segment.rsc +3 -3
- package/.next/server/app/settings/schedule.segments/settings.segment.rsc +4 -4
- package/.next/server/app/settings/self-learning/page.js.nft.json +1 -1
- package/.next/server/app/settings/self-learning/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/self-learning.html +1 -1
- package/.next/server/app/settings/self-learning.rsc +18 -18
- package/.next/server/app/settings/self-learning.segments/_full.segment.rsc +18 -18
- package/.next/server/app/settings/self-learning.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/self-learning.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings/self-learning.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/self-learning.segments/settings/self-learning/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/self-learning.segments/settings/self-learning.segment.rsc +3 -3
- package/.next/server/app/settings/self-learning.segments/settings.segment.rsc +4 -4
- package/.next/server/app/settings/wiki/page/app-paths-manifest.json +3 -0
- package/.next/server/app/settings/wiki/page/build-manifest.json +18 -0
- package/.next/server/app/settings/wiki/page/next-font-manifest.json +6 -0
- package/.next/server/app/settings/wiki/page/react-loadable-manifest.json +8 -0
- package/.next/server/app/settings/wiki/page/server-reference-manifest.json +4 -0
- package/.next/server/app/settings/wiki/page.js +16 -0
- package/.next/server/app/settings/wiki/page.js.map +5 -0
- package/.next/server/app/settings/wiki/page.js.nft.json +1 -0
- package/.next/server/app/settings/wiki/page_client-reference-manifest.js +3 -0
- package/.next/server/app/settings/wiki/timeline/page/app-paths-manifest.json +3 -0
- package/.next/server/app/settings/wiki/timeline/page/build-manifest.json +18 -0
- package/.next/server/app/settings/wiki/timeline/page/next-font-manifest.json +6 -0
- package/.next/server/app/settings/wiki/timeline/page/react-loadable-manifest.json +8 -0
- package/.next/server/app/settings/wiki/timeline/page/server-reference-manifest.json +4 -0
- package/.next/server/app/settings/wiki/timeline/page.js +17 -0
- package/.next/server/app/settings/wiki/timeline/page.js.map +5 -0
- package/.next/server/app/settings/wiki/timeline/page.js.nft.json +1 -0
- package/.next/server/app/settings/wiki/timeline/page_client-reference-manifest.js +3 -0
- package/.next/server/app/settings/wiki/timeline.html +1 -0
- package/.next/server/app/settings/wiki/timeline.meta +17 -0
- package/.next/server/app/settings/wiki/timeline.rsc +24 -0
- package/.next/server/app/settings/wiki/timeline.segments/_full.segment.rsc +24 -0
- package/.next/server/app/settings/wiki/timeline.segments/_head.segment.rsc +6 -0
- package/.next/server/app/settings/wiki/timeline.segments/_index.segment.rsc +11 -0
- package/.next/server/app/settings/wiki/timeline.segments/_tree.segment.rsc +2 -0
- package/.next/server/app/settings/wiki/timeline.segments/settings/wiki/timeline/__PAGE__.segment.rsc +6 -0
- package/.next/server/app/settings/wiki/timeline.segments/settings/wiki/timeline.segment.rsc +5 -0
- package/.next/server/app/settings/wiki/timeline.segments/settings/wiki.segment.rsc +5 -0
- package/.next/server/app/settings/wiki/timeline.segments/settings.segment.rsc +5 -0
- package/.next/server/app/settings/wiki.html +1 -0
- package/.next/server/app/settings/wiki.meta +16 -0
- package/.next/server/app/settings/wiki.rsc +27 -0
- package/.next/server/app/settings/wiki.segments/_full.segment.rsc +27 -0
- package/.next/server/app/settings/wiki.segments/_head.segment.rsc +6 -0
- package/.next/server/app/settings/wiki.segments/_index.segment.rsc +11 -0
- package/.next/server/app/settings/wiki.segments/_tree.segment.rsc +2 -0
- package/.next/server/app/settings/wiki.segments/settings/wiki/__PAGE__.segment.rsc +9 -0
- package/.next/server/app/settings/wiki.segments/settings/wiki.segment.rsc +5 -0
- package/.next/server/app/settings/wiki.segments/settings.segment.rsc +5 -0
- package/.next/server/app/settings.html +1 -1
- package/.next/server/app/settings.rsc +18 -18
- package/.next/server/app/settings.segments/_full.segment.rsc +18 -18
- package/.next/server/app/settings.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings.segments/_index.segment.rsc +10 -10
- package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings.segments/settings.segment.rsc +4 -4
- package/.next/server/app/setup/page.js.nft.json +1 -1
- package/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/.next/server/app/setup.html +1 -1
- package/.next/server/app/setup.rsc +17 -17
- package/.next/server/app/setup.segments/_full.segment.rsc +17 -17
- package/.next/server/app/setup.segments/_head.segment.rsc +4 -4
- package/.next/server/app/setup.segments/_index.segment.rsc +10 -10
- package/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/setup.segments/setup.segment.rsc +3 -3
- package/.next/server/app/trip/page.js.nft.json +1 -1
- package/.next/server/app/trip/page_client-reference-manifest.js +1 -1
- package/.next/server/app/trip.html +1 -1
- package/.next/server/app/trip.rsc +17 -17
- package/.next/server/app/trip.segments/_full.segment.rsc +17 -17
- package/.next/server/app/trip.segments/_head.segment.rsc +4 -4
- package/.next/server/app/trip.segments/_index.segment.rsc +10 -10
- package/.next/server/app/trip.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/trip.segments/trip/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/trip.segments/trip.segment.rsc +3 -3
- package/.next/server/app/wiki/page/app-paths-manifest.json +3 -0
- package/.next/server/app/wiki/page/build-manifest.json +18 -0
- package/.next/server/app/wiki/page/next-font-manifest.json +6 -0
- package/.next/server/app/wiki/page/react-loadable-manifest.json +8 -0
- package/.next/server/app/wiki/page/server-reference-manifest.json +4 -0
- package/.next/server/app/wiki/page.js +15 -0
- package/.next/server/app/wiki/page.js.map +5 -0
- package/.next/server/app/wiki/page.js.nft.json +1 -0
- package/.next/server/app/wiki/page_client-reference-manifest.js +3 -0
- package/.next/server/app/wiki/timeline/page/app-paths-manifest.json +3 -0
- package/.next/server/app/wiki/timeline/page/build-manifest.json +18 -0
- package/.next/server/app/wiki/timeline/page/next-font-manifest.json +6 -0
- package/.next/server/app/wiki/timeline/page/react-loadable-manifest.json +8 -0
- package/.next/server/app/wiki/timeline/page/server-reference-manifest.json +4 -0
- package/.next/server/app/wiki/timeline/page.js +15 -0
- package/.next/server/app/wiki/timeline/page.js.map +5 -0
- package/.next/server/app/wiki/timeline/page.js.nft.json +1 -0
- package/.next/server/app/wiki/timeline/page_client-reference-manifest.js +3 -0
- package/.next/server/app/wiki/timeline.html +1 -0
- package/.next/server/app/wiki/timeline.meta +16 -0
- package/.next/server/app/wiki/timeline.rsc +26 -0
- package/.next/server/app/wiki/timeline.segments/_full.segment.rsc +26 -0
- package/.next/server/app/wiki/timeline.segments/_head.segment.rsc +6 -0
- package/.next/server/app/wiki/timeline.segments/_index.segment.rsc +11 -0
- package/.next/server/app/wiki/timeline.segments/_tree.segment.rsc +2 -0
- package/.next/server/app/wiki/timeline.segments/wiki/timeline/__PAGE__.segment.rsc +9 -0
- package/.next/server/app/wiki/timeline.segments/wiki/timeline.segment.rsc +5 -0
- package/.next/server/app/wiki/timeline.segments/wiki.segment.rsc +5 -0
- package/.next/server/app/wiki.html +1 -0
- package/.next/server/app/wiki.meta +15 -0
- package/.next/server/app/wiki.rsc +26 -0
- package/.next/server/app/wiki.segments/_full.segment.rsc +26 -0
- package/.next/server/app/wiki.segments/_head.segment.rsc +6 -0
- package/.next/server/app/wiki.segments/_index.segment.rsc +11 -0
- package/.next/server/app/wiki.segments/_tree.segment.rsc +2 -0
- package/.next/server/app/wiki.segments/wiki/__PAGE__.segment.rsc +9 -0
- package/.next/server/app/wiki.segments/wiki.segment.rsc +5 -0
- package/.next/server/app-paths-manifest.json +5 -1
- package/.next/server/chunks/0z~i_next_dist_esm_build_templates_app-route_0o_o_hp.js +1 -1
- package/.next/server/chunks/0z~i_next_dist_esm_build_templates_app-route_0o_o_hp.js.map +1 -1
- package/.next/server/chunks/{[root-of-the-server]__00gp8gz._.js → [root-of-the-server]__01knfi.._.js} +1 -1
- package/.next/server/chunks/{[root-of-the-server]__0-0wgko._.js → [root-of-the-server]__08_s4yo._.js} +2 -2
- package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_wiki_timeline_page_actions_0czqn6z.js +3 -0
- package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_wiki_timeline_page_actions_0czqn6z.js.map +1 -0
- package/.next/server/chunks/ssr/0mzu_lucide-react_dist_esm_icons_zap_115-27i.js +3 -0
- package/.next/server/chunks/ssr/0mzu_lucide-react_dist_esm_icons_zap_115-27i.js.map +1 -0
- package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0k3x-na.js +4 -0
- package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0k3x-na.js.map +1 -0
- package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0km22.v.js +4 -0
- package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0km22.v.js.map +1 -0
- package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0vui1gx.js +4 -0
- package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0vui1gx.js.map +1 -0
- package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_11h319t.js +4 -0
- package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_11h319t.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__007ymqm._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__007ymqm._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__00vjce2._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__00vjce2._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__07pkvm3._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__07pkvm3._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0dfuz7_._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0dfuz7_._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__117dw_l._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__117dw_l._.js.map +1 -0
- package/.next/server/chunks/ssr/_0-3uzu1._.js +3 -0
- package/.next/server/chunks/ssr/_0-3uzu1._.js.map +1 -0
- package/.next/server/chunks/ssr/_0-6jgyg._.js +3 -0
- package/.next/server/chunks/ssr/_0-6jgyg._.js.map +1 -0
- package/.next/server/chunks/ssr/_0-fv_sr._.js +1 -1
- package/.next/server/chunks/ssr/_0-fv_sr._.js.map +1 -1
- package/.next/server/chunks/ssr/_0.7pki~._.js +3 -0
- package/.next/server/chunks/ssr/_0.7pki~._.js.map +1 -0
- package/.next/server/chunks/ssr/_02s86rg._.js +3 -0
- package/.next/server/chunks/ssr/_02s86rg._.js.map +1 -0
- package/.next/server/chunks/ssr/_03bq.de._.js +3 -0
- package/.next/server/chunks/ssr/_03bq.de._.js.map +1 -0
- package/.next/server/chunks/ssr/_03u6ja0._.js +3 -0
- package/.next/server/chunks/ssr/_03u6ja0._.js.map +1 -0
- package/.next/server/chunks/ssr/_04-.z69._.js +3 -0
- package/.next/server/chunks/ssr/_04-.z69._.js.map +1 -0
- package/.next/server/chunks/ssr/_05rlac0._.js +3 -0
- package/.next/server/chunks/ssr/_05rlac0._.js.map +1 -0
- package/.next/server/chunks/ssr/_05xysbw._.js +3 -0
- package/.next/server/chunks/ssr/_05xysbw._.js.map +1 -0
- package/.next/server/chunks/ssr/_09e_66m._.js +3 -0
- package/.next/server/chunks/ssr/_09e_66m._.js.map +1 -0
- package/.next/server/chunks/ssr/_0_bnan9._.js +3 -0
- package/.next/server/chunks/ssr/_0_bnan9._.js.map +1 -0
- package/.next/server/chunks/ssr/_0b00io4._.js +3 -0
- package/.next/server/chunks/ssr/_0b00io4._.js.map +1 -0
- package/.next/server/chunks/ssr/_0es_2i2._.js +3 -0
- package/.next/server/chunks/ssr/_0es_2i2._.js.map +1 -0
- package/.next/server/chunks/ssr/_0g7_r5i._.js +3 -0
- package/.next/server/chunks/ssr/_0g7_r5i._.js.map +1 -0
- package/.next/server/chunks/ssr/_0hojxqy._.js +1 -1
- package/.next/server/chunks/ssr/_0hojxqy._.js.map +1 -1
- package/.next/server/chunks/ssr/_0ifb9jm._.js +3 -0
- package/.next/server/chunks/ssr/_0ifb9jm._.js.map +1 -0
- package/.next/server/chunks/ssr/_0jl_-u5._.js +3 -0
- package/.next/server/chunks/ssr/_0jl_-u5._.js.map +1 -0
- package/.next/server/chunks/ssr/_0lfuvjg._.js +3 -0
- package/.next/server/chunks/ssr/_0lfuvjg._.js.map +1 -0
- package/.next/server/chunks/ssr/{_0jm~wn-._.js → _0mp7n5i._.js} +2 -2
- package/.next/server/chunks/ssr/{_0jm~wn-._.js.map → _0mp7n5i._.js.map} +1 -1
- package/.next/server/chunks/ssr/_0powsoh._.js +3 -0
- package/.next/server/chunks/ssr/_0powsoh._.js.map +1 -0
- package/.next/server/chunks/ssr/_0q34y9l._.js +3 -0
- package/.next/server/chunks/ssr/_0q34y9l._.js.map +1 -0
- package/.next/server/chunks/ssr/_0q4rpi-._.js +5 -0
- package/.next/server/chunks/ssr/_0q4rpi-._.js.map +1 -0
- package/.next/server/chunks/ssr/_0rc-7d4._.js +3 -0
- package/.next/server/chunks/ssr/_0rc-7d4._.js.map +1 -0
- package/.next/server/chunks/ssr/_0tjsh16._.js +3 -0
- package/.next/server/chunks/ssr/_0tjsh16._.js.map +1 -0
- package/.next/server/chunks/ssr/_0tl98en._.js +1 -1
- package/.next/server/chunks/ssr/_0tl98en._.js.map +1 -1
- package/.next/server/chunks/ssr/{_0._ysx3._.js → _0v_6ros._.js} +2 -2
- package/.next/server/chunks/ssr/_0v_6ros._.js.map +1 -0
- package/.next/server/chunks/ssr/_0vncjim._.js +3 -0
- package/.next/server/chunks/ssr/_0vncjim._.js.map +1 -0
- package/.next/server/chunks/ssr/_0vx-jgf._.js +3 -0
- package/.next/server/chunks/ssr/_0vx-jgf._.js.map +1 -0
- package/.next/server/chunks/ssr/_0w1ez1p._.js +3 -0
- package/.next/server/chunks/ssr/_0w1ez1p._.js.map +1 -0
- package/.next/server/chunks/ssr/_0yl49yk._.js +3 -0
- package/.next/server/chunks/ssr/_0yl49yk._.js.map +1 -0
- package/.next/server/chunks/ssr/_0z1ah9x._.js +1 -1
- package/.next/server/chunks/ssr/_0z1ah9x._.js.map +1 -1
- package/.next/server/chunks/ssr/_0z9ikwn._.js +3 -0
- package/.next/server/chunks/ssr/_0z9ikwn._.js.map +1 -0
- package/.next/server/chunks/ssr/_0z_cp12._.js +3 -0
- package/.next/server/chunks/ssr/_0z_cp12._.js.map +1 -0
- package/.next/server/chunks/ssr/_10hvwg5._.js +3 -0
- package/.next/server/chunks/ssr/_10hvwg5._.js.map +1 -0
- package/.next/server/chunks/ssr/packages_dashboard__next-internal_server_app_settings_wiki_page_actions_12d~w9l.js +3 -0
- package/.next/server/chunks/ssr/packages_dashboard__next-internal_server_app_settings_wiki_page_actions_12d~w9l.js.map +1 -0
- package/.next/server/chunks/ssr/packages_dashboard__next-internal_server_app_wiki_page_actions_026bi.d.js +3 -0
- package/.next/server/chunks/ssr/packages_dashboard__next-internal_server_app_wiki_page_actions_026bi.d.js.map +1 -0
- package/.next/server/chunks/ssr/packages_dashboard__next-internal_server_app_wiki_timeline_page_actions_06jb4gg.js +3 -0
- package/.next/server/chunks/ssr/packages_dashboard__next-internal_server_app_wiki_timeline_page_actions_06jb4gg.js.map +1 -0
- package/.next/server/chunks/ssr/packages_dashboard_src_0bx940s._.js +3 -0
- package/.next/server/chunks/ssr/packages_dashboard_src_0bx940s._.js.map +1 -0
- package/.next/server/chunks/ssr/packages_dashboard_src_0fo7nqq._.js +3 -0
- package/.next/server/chunks/ssr/packages_dashboard_src_0fo7nqq._.js.map +1 -0
- package/.next/server/chunks/ssr/packages_dashboard_src_0uxs9-.._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_0uxs9-.._.js.map +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_activity_page_tsx_08yep46._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_activity_page_tsx_08yep46._.js.map +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_connections_repositories_page_tsx_08y6paq._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_connections_repositories_page_tsx_08y6paq._.js.map +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_git_page_tsx_0ah19-6._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_git_page_tsx_0ah19-6._.js.map +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_schedule_page_tsx_0znc404._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_schedule_page_tsx_0znc404._.js.map +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_models_page_tsx_0djsx88._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_models_page_tsx_0djsx88._.js.map +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_schedule_page_tsx_0b8zr2l._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_schedule_page_tsx_0b8zr2l._.js.map +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_wiki_page_tsx_0..1tkb._.js +3 -0
- package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_wiki_page_tsx_0..1tkb._.js.map +1 -0
- package/.next/server/chunks/ssr/packages_dashboard_src_app_setup_page_tsx_06k3via._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_setup_page_tsx_06k3via._.js.map +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_components_connections_slack-card_tsx_0mahejj._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_components_connections_slack-card_tsx_0mahejj._.js.map +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_components_settings_backend-settings_tsx_0i-tp_u._.js +3 -0
- package/.next/server/chunks/ssr/packages_dashboard_src_components_settings_backend-settings_tsx_0i-tp_u._.js.map +1 -0
- package/.next/server/chunks/ssr/packages_shared_dist_index_0kuvow-.js +1 -1
- package/.next/server/chunks/ssr/packages_shared_dist_index_0kuvow-.js.map +1 -1
- package/.next/server/middleware/middleware-manifest.json +1 -1
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/middleware-manifest.json +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/static/chunks/01yix41q.0970.js +1 -0
- package/.next/static/chunks/02qjylw4yp63l.js +1 -0
- package/.next/static/chunks/06y2ddf5x9x_4.js +1 -0
- package/.next/static/chunks/{0ztl~44vjnpe1.js → 08ie9t4zn6n4-.js} +1 -1
- package/.next/static/chunks/091khs5zza4_4.js +1 -0
- package/.next/static/chunks/{0~_56pt8wsmeo.js → 0abhg-m1-acdb.js} +1 -1
- package/.next/static/chunks/0ae.1upy09t--.js +1 -0
- package/.next/static/chunks/0bvcd~k.vfro8.js +1 -0
- package/.next/static/chunks/{0g6.0r0i-wyeg.js → 0eqm47_oikj36.js} +1 -1
- package/.next/static/chunks/0fqugh~hv4my1.js +1 -0
- package/.next/static/chunks/0has04tc4mrik.js +1 -0
- package/.next/static/chunks/0huynm-qbj26k.js +1 -0
- package/.next/static/chunks/0ibq4zul6305p.js +1 -0
- package/.next/static/chunks/0jm_e6e6n~rdn.js +1 -0
- package/.next/static/chunks/0k0.4cksmybb2.js +1 -0
- package/.next/static/chunks/0l07yrtw3fxp5.js +1 -0
- package/.next/static/chunks/0nhqu-sq045x7.js +1 -0
- package/.next/static/chunks/0op3oc-if6n5-.js +3 -0
- package/.next/static/chunks/0p34n6.st3s~1.js +1 -0
- package/.next/static/chunks/0r8nosw42e2m9.js +1 -0
- package/.next/static/chunks/0shx3_mxukfhr.js +1 -0
- package/.next/static/chunks/0thm~t5g5adz1.js +1 -0
- package/.next/static/chunks/0thyr1cngc-j..css +1 -0
- package/.next/static/chunks/0ttdb_354lh4t.js +1 -0
- package/.next/static/chunks/0v..ut2v38yep.js +1 -0
- package/.next/static/chunks/{17npklzvg8-~3.js → 0vhj0k-zy6jhh.js} +1 -1
- package/.next/static/chunks/0wdx410~0~gmn.js +1 -0
- package/.next/static/chunks/0y3ptqa0bbi-h.js +1 -0
- package/.next/static/chunks/{0zbxi2grjtx.c.js → 0zx_~u_zxg_7e.js} +1 -1
- package/.next/static/chunks/{0f3kjzb~5zhc~.js → 10pq~97vgkzro.js} +1 -1
- package/.next/static/chunks/11hlk6.h1of0y.js +1 -0
- package/.next/static/chunks/13w_6v~nprp8j.js +11 -0
- package/.next/static/chunks/14-kkni6ecqaw.js +1 -0
- package/.next/static/chunks/{148a9fv~bo0gq.js → 1555iv~_t.1lp.js} +1 -1
- package/.next/static/chunks/{04bbme2th8s1_.js → 15ec5~pa1pv_z.js} +1 -1
- package/.next/static/chunks/15vc-857cdedi.js +1 -0
- package/.next/static/chunks/16zgco6hwlr-n.js +1 -0
- package/.next/types/routes.d.ts +5 -1
- package/.next/types/validator.ts +36 -0
- package/package.json +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__02idks~._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__02idks~._.js.map +0 -1
- package/.next/server/chunks/ssr/_0-8__9s._.js +0 -3
- package/.next/server/chunks/ssr/_0-8__9s._.js.map +0 -1
- package/.next/server/chunks/ssr/_0._ysx3._.js.map +0 -1
- package/.next/server/chunks/ssr/_0.h-tj4._.js +0 -3
- package/.next/server/chunks/ssr/_0.h-tj4._.js.map +0 -1
- package/.next/server/chunks/ssr/_02g4o18._.js +0 -3
- package/.next/server/chunks/ssr/_02g4o18._.js.map +0 -1
- package/.next/server/chunks/ssr/_0463dg_._.js +0 -3
- package/.next/server/chunks/ssr/_0463dg_._.js.map +0 -1
- package/.next/server/chunks/ssr/_04a42pa._.js +0 -3
- package/.next/server/chunks/ssr/_04a42pa._.js.map +0 -1
- package/.next/server/chunks/ssr/_04kt9.8._.js +0 -3
- package/.next/server/chunks/ssr/_04kt9.8._.js.map +0 -1
- package/.next/server/chunks/ssr/_052zlig._.js +0 -3
- package/.next/server/chunks/ssr/_052zlig._.js.map +0 -1
- package/.next/server/chunks/ssr/_060itkv._.js +0 -3
- package/.next/server/chunks/ssr/_060itkv._.js.map +0 -1
- package/.next/server/chunks/ssr/_07p0n9g._.js +0 -3
- package/.next/server/chunks/ssr/_07p0n9g._.js.map +0 -1
- package/.next/server/chunks/ssr/_08mbdt1._.js +0 -3
- package/.next/server/chunks/ssr/_08mbdt1._.js.map +0 -1
- package/.next/server/chunks/ssr/_08r_qwd._.js +0 -3
- package/.next/server/chunks/ssr/_08r_qwd._.js.map +0 -1
- package/.next/server/chunks/ssr/_08xk3kp._.js +0 -3
- package/.next/server/chunks/ssr/_08xk3kp._.js.map +0 -1
- package/.next/server/chunks/ssr/_0938p.1._.js +0 -3
- package/.next/server/chunks/ssr/_0938p.1._.js.map +0 -1
- package/.next/server/chunks/ssr/_0afdsbz._.js +0 -3
- package/.next/server/chunks/ssr/_0afdsbz._.js.map +0 -1
- package/.next/server/chunks/ssr/_0ff5qav._.js +0 -3
- package/.next/server/chunks/ssr/_0ff5qav._.js.map +0 -1
- package/.next/server/chunks/ssr/_0gp8d.p._.js +0 -3
- package/.next/server/chunks/ssr/_0gp8d.p._.js.map +0 -1
- package/.next/server/chunks/ssr/_0k2j6-t._.js +0 -3
- package/.next/server/chunks/ssr/_0k2j6-t._.js.map +0 -1
- package/.next/server/chunks/ssr/_0mix09j._.js +0 -3
- package/.next/server/chunks/ssr/_0mix09j._.js.map +0 -1
- package/.next/server/chunks/ssr/_0mk7dqt._.js +0 -3
- package/.next/server/chunks/ssr/_0mk7dqt._.js.map +0 -1
- package/.next/server/chunks/ssr/_0n168uk._.js +0 -3
- package/.next/server/chunks/ssr/_0n168uk._.js.map +0 -1
- package/.next/server/chunks/ssr/_0nwg6lo._.js +0 -3
- package/.next/server/chunks/ssr/_0nwg6lo._.js.map +0 -1
- package/.next/server/chunks/ssr/_0pwd-nz._.js +0 -3
- package/.next/server/chunks/ssr/_0pwd-nz._.js.map +0 -1
- package/.next/server/chunks/ssr/_0rspzax._.js +0 -3
- package/.next/server/chunks/ssr/_0rspzax._.js.map +0 -1
- package/.next/server/chunks/ssr/_0t-2u_i._.js +0 -3
- package/.next/server/chunks/ssr/_0t-2u_i._.js.map +0 -1
- package/.next/server/chunks/ssr/_0vn5_62._.js +0 -5
- package/.next/server/chunks/ssr/_0vn5_62._.js.map +0 -1
- package/.next/server/chunks/ssr/_0yiz~s5._.js +0 -3
- package/.next/server/chunks/ssr/_0yiz~s5._.js.map +0 -1
- package/.next/server/chunks/ssr/_0~4ta0s._.js +0 -3
- package/.next/server/chunks/ssr/_0~4ta0s._.js.map +0 -1
- package/.next/server/chunks/ssr/_0~5r_8s._.js +0 -3
- package/.next/server/chunks/ssr/_0~5r_8s._.js.map +0 -1
- package/.next/server/chunks/ssr/_115_o9h._.js +0 -3
- package/.next/server/chunks/ssr/_115_o9h._.js.map +0 -1
- package/.next/server/chunks/ssr/_13mk_9n._.js +0 -3
- package/.next/server/chunks/ssr/_13mk_9n._.js.map +0 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_07.4ogy._.js +0 -3
- package/.next/server/chunks/ssr/packages_dashboard_src_07.4ogy._.js.map +0 -1
- package/.next/static/chunks/00p2fat~wl7uz.js +0 -1
- package/.next/static/chunks/07aksg8x5r0d9.js +0 -1
- package/.next/static/chunks/082cjr-p4ubw7.js +0 -1
- package/.next/static/chunks/09hewwcw-ts34.js +0 -1
- package/.next/static/chunks/09j~fmfefj03i.js +0 -1
- package/.next/static/chunks/0adfy5uyh_8c8.js +0 -1
- package/.next/static/chunks/0agoryx~xvt31.js +0 -1
- package/.next/static/chunks/0aoci_z-c0ele.css +0 -1
- package/.next/static/chunks/0atsym5j2dgzw.js +0 -1
- package/.next/static/chunks/0b3tta7tnnbur.js +0 -1
- package/.next/static/chunks/0d02.lqlwe9a_.js +0 -1
- package/.next/static/chunks/0eqyosc.qae5n.js +0 -1
- package/.next/static/chunks/0kkrrex6qm68-.js +0 -1
- package/.next/static/chunks/0lfxqap3b6sar.js +0 -11
- package/.next/static/chunks/0ord2b6oqi.3g.js +0 -1
- package/.next/static/chunks/0rh-ee9ky1ybq.js +0 -1
- package/.next/static/chunks/0t5v~o90gn66f.js +0 -1
- package/.next/static/chunks/0vaymprggmdwi.js +0 -3
- package/.next/static/chunks/0x2vder5-rzy3.js +0 -1
- package/.next/static/chunks/0yk64vsbmwqd8.js +0 -1
- package/.next/static/chunks/0yvzj34_7s6kb.js +0 -1
- package/.next/static/chunks/104za._t2qmr8.js +0 -1
- package/.next/static/chunks/13pe2-ed6nel..js +0 -1
- package/.next/static/chunks/13zn61okwjlyn.js +0 -1
- package/.next/static/chunks/153hm0-366-at.js +0 -1
- package/.next/static/chunks/16k3_-6f7kx97.js +0 -1
- package/.next/static/chunks/18904zqns5ncn.js +0 -1
- package/.next/trace +0 -2
- package/.next/trace-build +0 -1
- /package/.next/server/chunks/{[root-of-the-server]__00gp8gz._.js.map → [root-of-the-server]__01knfi.._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__0-0wgko._.js.map → [root-of-the-server]__08_s4yo._.js.map} +0 -0
- /package/.next/static/{CDXVH-99b-ZdHz0Rd9pr_ → lsV2FU1YUtwJPmeiim7tk}/_buildManifest.js +0 -0
- /package/.next/static/{CDXVH-99b-ZdHz0Rd9pr_ → lsV2FU1YUtwJPmeiim7tk}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{CDXVH-99b-ZdHz0Rd9pr_ → lsV2FU1YUtwJPmeiim7tk}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
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 a=(0,e.i(94237).cva)("rounded-xl border p-5 shadow-[0_1px_3px_rgb(0_0_0/0.04)]",{variants:{tone:{default:"border-border bg-card",warning:"border-amber-200 bg-amber-50/50 dark:border-amber-900 dark:bg-amber-950/30",success:"border-emerald-200 bg-emerald-50/50 dark:border-emerald-900 dark:bg-emerald-950/30",error:"border-red-200 bg-red-50/50 dark:border-red-900 dark:bg-red-950/30"},interactive:{true:"transition-shadow duration-150 hover:shadow-[0_4px_6px_rgb(0_0_0/0.06)]",false:""}},defaultVariants:{tone:"default",interactive:!1}});e.s(["Card",0,function({className:e,tone:n,interactive:i,...s}){return(0,t.jsx)("div",{className:(0,r.cn)(a({tone:n,interactive:i}),e),...s})},"CardHeader",0,function({className:e,...a}){return(0,t.jsx)("div",{className:(0,r.cn)("mb-3 flex items-center justify-between",e),...a})},"CardStatLabel",0,function({className:e,...a}){return(0,t.jsx)("h3",{className:(0,r.cn)("text-sm font-medium text-muted-foreground",e),...a})},"CardTitle",0,function({className:e,...a}){return(0,t.jsx)("h3",{className:(0,r.cn)("text-lg font-semibold text-foreground",e),...a})},"CardValue",0,function({className:e,...a}){return(0,t.jsx)("div",{className:(0,r.cn)("text-3xl font-bold text-foreground",e),...a})}])},90925,e=>{"use strict";let t=(0,e.i(77379).default)("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);e.s(["Trash2",0,t],90925)},60168,e=>{"use strict";let t=(0,e.i(77379).default)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",0,t],60168)},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)},12077,e=>{"use strict";let t=(0,e.i(77379).default)("Terminal",[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]]);e.s(["Terminal",0,t],12077)},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)},70986,e=>{"use strict";var t=e.i(34416),r=e.i(91967),a=e.i(9413),n=e.i(36567),i=e.i(18731),s=e.i(22353),l=e.i(85565),o=e.i(90816),d=e.i(11207),c=e.i(54710),u="Collapsible",[m,f]=(0,a.createContextScope)(u),[x,y]=m(u),b=t.forwardRef((e,r)=>{let{__scopeCollapsible:a,open:i,defaultOpen:s,disabled:o,onOpenChange:m,...f}=e,[y,b]=(0,n.useControllableState)({prop:i,defaultProp:s??!1,onChange:m,caller:u});return(0,c.jsx)(x,{scope:a,disabled:o,contentId:(0,d.useId)(),open:y,onOpenToggle:t.useCallback(()=>b(e=>!e),[b]),children:(0,c.jsx)(l.Primitive.div,{"data-state":C(y),"data-disabled":o?"":void 0,...f,ref:r})})});b.displayName=u;var p="CollapsibleTrigger",h=t.forwardRef((e,t)=>{let{__scopeCollapsible:a,...n}=e,i=y(p,a);return(0,c.jsx)(l.Primitive.button,{type:"button","aria-controls":i.contentId,"aria-expanded":i.open||!1,"data-state":C(i.open),"data-disabled":i.disabled?"":void 0,disabled:i.disabled,...n,ref:t,onClick:(0,r.composeEventHandlers)(e.onClick,i.onOpenToggle)})});h.displayName=p;var v="CollapsibleContent",g=t.forwardRef((e,t)=>{let{forceMount:r,...a}=e,n=y(v,e.__scopeCollapsible);return(0,c.jsx)(o.Presence,{present:r||n.open,children:({present:e})=>(0,c.jsx)(k,{...a,ref:t,present:e})})});g.displayName=v;var k=t.forwardRef((e,r)=>{let{__scopeCollapsible:a,present:n,children:o,...d}=e,u=y(v,a),[m,f]=t.useState(n),x=t.useRef(null),b=(0,s.useComposedRefs)(r,x),p=t.useRef(0),h=p.current,g=t.useRef(0),k=g.current,j=u.open||m,w=t.useRef(j),N=t.useRef(void 0);return t.useEffect(()=>{let e=requestAnimationFrame(()=>w.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,i.useLayoutEffect)(()=>{let e=x.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();p.current=t.height,g.current=t.width,w.current||(e.style.transitionDuration=N.current.transitionDuration,e.style.animationName=N.current.animationName),f(n)}},[u.open,n]),(0,c.jsx)(l.Primitive.div,{"data-state":C(u.open),"data-disabled":u.disabled?"":void 0,id:u.contentId,hidden:!j,...d,ref:b,style:{"--radix-collapsible-content-height":h?`${h}px`:void 0,"--radix-collapsible-content-width":k?`${k}px`:void 0,...e.style},children:j&&o})});function C(e){return e?"open":"closed"}e.s(["Collapsible",0,b,"CollapsibleContent",0,g,"CollapsibleTrigger",0,h],70986)},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)},84603,e=>{"use strict";let t=(0,e.i(77379).default)("Activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);e.s(["Activity",0,t],84603)},85631,e=>{"use strict";var t=e.i(54710),r=e.i(81471);e.s(["ConnectionsSectionHeader",0,function({title:e,description:a,healthy:n,total:i,attention:s,actions:l}){let o=i>0&&n===i,d=i>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:[i>0&&(0,t.jsxs)("span",{className:(0,r.cn)("text-xs font-medium tabular-nums",o?"text-emerald-600 dark:text-emerald-400":d?"text-muted-foreground":"text-amber-600 dark:text-amber-400"),children:[n,"/",i," connected"]}),l]})]}),a&&(0,t.jsx)("p",{className:"max-w-3xl text-sm text-muted-foreground",children:a}),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),r=e.i(48467),a=e.i(74490),n=e.i(81471);let i={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:l,error:o,metadata:d,children:c,className:u}){let m=i[l];return(0,t.jsxs)(a.Card,{tone:"connected"===l?"success":"error"===l?"error":"default",className:(0,n.cn)("relative",u),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:s}),(0,t.jsx)("h3",{className:"text-sm font-medium text-foreground",children:e})]}),(0,t.jsx)(r.Badge,{variant:m.variant,children:m.label})]}),o&&"connecting"!==l&&(0,t.jsx)("p",{className:"mb-2 text-xs text-red-600 dark:text-red-400",children:o}),d&&d.length>0&&(0,t.jsx)("div",{className:"mb-3 space-y-0.5",children:d.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??"—"}]}])},88175,e=>{"use strict";let t=(0,e.i(77379).default)("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);e.s(["Download",0,t],88175)},20492,37720,e=>{"use strict";var t=e.i(77379);let r=(0,t.default)("Power",[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]]);e.s(["Power",0,r],20492);let a=(0,t.default)("PowerOff",[["path",{d:"M18.36 6.64A9 9 0 0 1 20.77 15",key:"dxknvb"}],["path",{d:"M6.16 6.16a9 9 0 1 0 12.68 12.68",key:"1x7qb5"}],["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);e.s(["PowerOff",0,a],37720)},44178,e=>{"use strict";var t=e.i(57415),r=e.i(14260),a=e.i(95486),n=e.i(65268);class i extends Error{conflict;constructor(e){super("context_conflict"),this.conflict=e,this.name="ContextConflictError"}}e.s(["ContextConflictError",0,i,"useContextFile",0,function(e,t){return(0,r.useQuery)({queryKey:["context",e],queryFn:()=>n.api.get(`/context/${e}`),enabled:!!e&&t?.enabled!==!1,refetchOnWindowFocus:t?.enabled!==!1})},"useContextList",0,function(e){return(0,r.useQuery)({queryKey:["context-list",e],queryFn:()=>n.api.get(`/context/list/${e}`)})},"useDeleteContextFile",0,function(){let e=(0,a.useQueryClient)();return(0,t.useMutation)({mutationFn:async({path:e})=>n.api.delete(`/context/${e}`),onSuccess:(t,{path:r})=>{e.removeQueries({queryKey:["context",r]}),e.invalidateQueries({queryKey:["snapshots",r]});let a=r.includes("/")?r.split("/")[0]:null;a&&e.invalidateQueries({queryKey:["context-list",a]}),r.startsWith("routines/custom/")&&e.invalidateQueries({queryKey:["context-list","routines"]})}})},"useUpdateContextFile",0,function(){let e=(0,a.useQueryClient)();return(0,t.useMutation)({mutationFn:async({path:e,content:t,expectedMtime:r})=>{try{return await n.api.put(`/context/${e}`,{content:t,...void 0!==r?{expectedMtime:r}:{}})}catch(e){if(e instanceof n.ApiError&&409===e.status&&e.body?.error==="conflict"){let t=e.body;throw new i({currentMtime:t.currentMtime??"",currentContent:t.currentContent??""})}throw e}},onSuccess:(t,{path:r,content:a})=>{e.setQueryData(["context",r],e=>e?{...e,content:a,lastModified:t.lastModified}:{content:a,lastModified:t.lastModified,editable:!0}),e.invalidateQueries({queryKey:["snapshots",r]});let n=r.includes("/")?r.split("/")[0]:null;n&&e.invalidateQueries({queryKey:["context-list",n]})}})}])},40893,e=>{"use strict";var t=e.i(54710),r=e.i(81187),a=e.i(20014),n=e.i(81471);e.s(["FileConflictBanner",0,function({onReload:e,onOverwrite:i,isPending:s=!1,reloadLabel:l="Reload latest",className:o}){return(0,t.jsxs)("div",{role:"alert","aria-live":"assertive",className:(0,n.cn)("rounded-md border border-amber-500/50 bg-amber-500/10 p-3 text-xs",o),children:[(0,t.jsxs)("div",{className:"mb-2 flex items-center gap-2 font-semibold text-amber-900 dark:text-amber-200",children:[(0,t.jsx)(r.AlertTriangle,{className:"h-3.5 w-3.5"}),"File was modified by another process"]}),(0,t.jsx)("p",{className:"mb-3 text-amber-900/90 dark:text-amber-100/90",children:"The agent or another tab wrote to this file after you started editing. Your unsaved draft is preserved — choose how to proceed."}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,t.jsx)(a.Button,{size:"sm",variant:"outline",onClick:e,disabled:s,className:"h-7",children:l}),(0,t.jsx)(a.Button,{size:"sm",variant:"destructive",onClick:i,disabled:s,className:"h-7",children:s?"Overwriting…":"Overwrite with my edits"})]})]})}])},68824,68399,e=>{"use strict";var t=e.i(77379);let r=(0,t.default)("Eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);e.s(["Eye",0,r],68824);let a=(0,t.default)("EyeOff",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);e.s(["EyeOff",0,a],68399)}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,50862,e=>{"use strict";var t=e.i(54710),s=e.i(81471);e.s(["EmptyState",0,function({icon:e,title:a,description:r,className:i,children:n}){return(0,t.jsxs)("div",{className:(0,s.cn)("flex flex-col items-center justify-center py-16 text-muted-foreground",i),children:[(0,t.jsx)(e,{className:"mb-3 h-10 w-10 opacity-40"}),(0,t.jsx)("p",{className:"text-sm font-medium",children:a}),r&&(0,t.jsx)("p",{className:"mt-1 max-w-prose text-xs text-muted-foreground/70",children:r}),n]})}])},84603,e=>{"use strict";let t=(0,e.i(77379).default)("Activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);e.s(["Activity",0,t],84603)},74490,e=>{"use strict";var t=e.i(54710),s=e.i(81471);let a=(0,e.i(94237).cva)("rounded-xl border p-5 shadow-[0_1px_3px_rgb(0_0_0/0.04)]",{variants:{tone:{default:"border-border bg-card",warning:"border-amber-200 bg-amber-50/50 dark:border-amber-900 dark:bg-amber-950/30",success:"border-emerald-200 bg-emerald-50/50 dark:border-emerald-900 dark:bg-emerald-950/30",error:"border-red-200 bg-red-50/50 dark:border-red-900 dark:bg-red-950/30"},interactive:{true:"transition-shadow duration-150 hover:shadow-[0_4px_6px_rgb(0_0_0/0.06)]",false:""}},defaultVariants:{tone:"default",interactive:!1}});e.s(["Card",0,function({className:e,tone:r,interactive:i,...n}){return(0,t.jsx)("div",{className:(0,s.cn)(a({tone:r,interactive:i}),e),...n})},"CardHeader",0,function({className:e,...a}){return(0,t.jsx)("div",{className:(0,s.cn)("mb-3 flex items-center justify-between",e),...a})},"CardStatLabel",0,function({className:e,...a}){return(0,t.jsx)("h3",{className:(0,s.cn)("text-sm font-medium text-muted-foreground",e),...a})},"CardTitle",0,function({className:e,...a}){return(0,t.jsx)("h3",{className:(0,s.cn)("text-lg font-semibold text-foreground",e),...a})},"CardValue",0,function({className:e,...a}){return(0,t.jsx)("div",{className:(0,s.cn)("text-3xl font-bold text-foreground",e),...a})}])},90925,e=>{"use strict";let t=(0,e.i(77379).default)("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);e.s(["Trash2",0,t],90925)},60168,e=>{"use strict";let t=(0,e.i(77379).default)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",0,t],60168)},21682,e=>{"use strict";let t=(0,e.i(77379).default)("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);e.s(["Pencil",0,t],21682)},7663,e=>{"use strict";let t=(0,e.i(77379).default)("Save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]);e.s(["Save",0,t],7663)},24756,e=>{"use strict";var t=e.i(14260),s=e.i(65268);e.s(["useBackends",0,function(e){return(0,t.useQuery)({queryKey:["backends"],queryFn:()=>s.api.get("/backends"),enabled:e?.enabled??!0,staleTime:6e4})}])},70986,e=>{"use strict";var t=e.i(34416),s=e.i(91967),a=e.i(9413),r=e.i(36567),i=e.i(18731),n=e.i(22353),l=e.i(85565),o=e.i(90816),d=e.i(11207),c=e.i(54710),u="Collapsible",[m,p]=(0,a.createContextScope)(u),[h,g]=m(u),x=t.forwardRef((e,s)=>{let{__scopeCollapsible:a,open:i,defaultOpen:n,disabled:o,onOpenChange:m,...p}=e,[g,x]=(0,r.useControllableState)({prop:i,defaultProp:n??!1,onChange:m,caller:u});return(0,c.jsx)(h,{scope:a,disabled:o,contentId:(0,d.useId)(),open:g,onOpenToggle:t.useCallback(()=>x(e=>!e),[x]),children:(0,c.jsx)(l.Primitive.div,{"data-state":N(g),"data-disabled":o?"":void 0,...p,ref:s})})});x.displayName=u;var f="CollapsibleTrigger",y=t.forwardRef((e,t)=>{let{__scopeCollapsible:a,...r}=e,i=g(f,a);return(0,c.jsx)(l.Primitive.button,{type:"button","aria-controls":i.contentId,"aria-expanded":i.open||!1,"data-state":N(i.open),"data-disabled":i.disabled?"":void 0,disabled:i.disabled,...r,ref:t,onClick:(0,s.composeEventHandlers)(e.onClick,i.onOpenToggle)})});y.displayName=f;var b="CollapsibleContent",v=t.forwardRef((e,t)=>{let{forceMount:s,...a}=e,r=g(b,e.__scopeCollapsible);return(0,c.jsx)(o.Presence,{present:s||r.open,children:({present:e})=>(0,c.jsx)(j,{...a,ref:t,present:e})})});v.displayName=b;var j=t.forwardRef((e,s)=>{let{__scopeCollapsible:a,present:r,children:o,...d}=e,u=g(b,a),[m,p]=t.useState(r),h=t.useRef(null),x=(0,n.useComposedRefs)(s,h),f=t.useRef(0),y=f.current,v=t.useRef(0),j=v.current,w=u.open||m,k=t.useRef(w),C=t.useRef(void 0);return t.useEffect(()=>{let e=requestAnimationFrame(()=>k.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,i.useLayoutEffect)(()=>{let e=h.current;if(e){C.current=C.current||{transitionDuration:e.style.transitionDuration,animationName:e.style.animationName},e.style.transitionDuration="0s",e.style.animationName="none";let t=e.getBoundingClientRect();f.current=t.height,v.current=t.width,k.current||(e.style.transitionDuration=C.current.transitionDuration,e.style.animationName=C.current.animationName),p(r)}},[u.open,r]),(0,c.jsx)(l.Primitive.div,{"data-state":N(u.open),"data-disabled":u.disabled?"":void 0,id:u.contentId,hidden:!w,...d,ref:x,style:{"--radix-collapsible-content-height":y?`${y}px`:void 0,"--radix-collapsible-content-width":j?`${j}px`:void 0,...e.style},children:w&&o})});function N(e){return e?"open":"closed"}e.s(["Collapsible",0,x,"CollapsibleContent",0,v,"CollapsibleTrigger",0,y],70986)},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)},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)},25239,e=>{"use strict";let t=(0,e.i(77379).default)("Calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);e.s(["Calendar",0,t],25239)},54879,e=>{"use strict";let t=(0,e.i(77379).default)("Zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);e.s(["Zap",0,t],54879)},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)},1733,e=>{"use strict";var t=e.i(14260),s=e.i(57415),a=e.i(95486),r=e.i(65268);let i=["repositories"],n=e=>[...i,e],l=e=>[...n(e),"triggers"],o=e=>[...n(e),"management"];function d(e){return!!(e.githubOwner&&e.githubRepo)}e.s(["observationSourcesForRepo",0,function(e){let t=[];if(e.localPath&&t.push(`git:${e.localPath}`),d(e)){let s=`${e.githubOwner}/${e.githubRepo}`;t.push(`github:notification:${s}`),t.push(`github:workflow:${s}`)}return t},"repositoryDisplayName",0,function(e){if(e.displayName)return e.displayName;if(d(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,d,"repositoryHasLocal",0,function(e){return!!e.localPath},"useCreateRepoTrigger",0,function(){let e=(0,a.useQueryClient)();return(0,s.useMutation)({mutationFn:({repositoryId:e,body:t})=>r.api.post(`/repositories/${encodeURIComponent(e)}/triggers`,t),onSuccess:(t,s)=>{e.invalidateQueries({queryKey:l(s.repositoryId)})}})},"useCreateRepository",0,function(){let e=(0,a.useQueryClient)();return(0,s.useMutation)({mutationFn:e=>r.api.post("/repositories",e),onSuccess:()=>{e.invalidateQueries({queryKey:i})}})},"useDeleteRepoTrigger",0,function(){let e=(0,a.useQueryClient)();return(0,s.useMutation)({mutationFn:({repositoryId:e,triggerId:t})=>r.api.delete(`/repositories/${encodeURIComponent(e)}/triggers/${encodeURIComponent(t)}`),onSuccess:(t,s)=>{e.invalidateQueries({queryKey:l(s.repositoryId)})}})},"useDeleteRepository",0,function(){let e=(0,a.useQueryClient)();return(0,s.useMutation)({mutationFn:e=>r.api.delete(`/repositories/${encodeURIComponent(e)}`),onSuccess:()=>{e.invalidateQueries({queryKey:i})}})},"useFireRepoTrigger",0,function(){return(0,s.useMutation)({mutationFn:({repositoryId:e,triggerId:t})=>r.api.post(`/repositories/${encodeURIComponent(e)}/triggers/${encodeURIComponent(t)}/run`,{})})},"useLinkGithub",0,function(){let e=(0,a.useQueryClient)();return(0,s.useMutation)({mutationFn:({id:e,owner:t,repo:s,account:a})=>r.api.post(`/repositories/${encodeURIComponent(e)}/link-github`,{owner:t,repo:s,account:a}),onSuccess:(t,s)=>{e.invalidateQueries({queryKey:i}),e.invalidateQueries({queryKey:n(s.id)})}})},"useLinkLocal",0,function(){let e=(0,a.useQueryClient)();return(0,s.useMutation)({mutationFn:({id:e,localPath:t})=>r.api.post(`/repositories/${encodeURIComponent(e)}/link-local`,{localPath:t}),onSuccess:(t,s)=>{e.invalidateQueries({queryKey:i}),e.invalidateQueries({queryKey:n(s.id)})}})},"useRefreshRepositoryArchitecture",0,function(){let e=(0,a.useQueryClient)();return(0,s.useMutation)({mutationFn:e=>r.api.post(`/repositories/${encodeURIComponent(e)}/management/refresh-architecture`,{}),onSuccess:async(t,s)=>{try{await e.refetchQueries({queryKey:o(s)})}catch{}}})},"useRepositories",0,function(e){return(0,t.useQuery)({queryKey:e?[...i,e]:[...i],queryFn:()=>r.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?o(e):[...i,"missing","management"],queryFn:()=>r.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?l(e):[...i,"missing","triggers"],queryFn:()=>r.api.get(`/repositories/${encodeURIComponent(e)}/triggers`),enabled:!!e,staleTime:15e3})},"useRunRepoManagementInit",0,function(){let e=(0,a.useQueryClient)();return(0,s.useMutation)({mutationFn:e=>r.api.post(`/repositories/${encodeURIComponent(e)}/management/init`,{}),onSuccess:async(t,s)=>{try{await e.refetchQueries({queryKey:o(s)})}catch{}}})},"useRunRepoManagementScan",0,function(){let e=(0,a.useQueryClient)();return(0,s.useMutation)({mutationFn:e=>r.api.post(`/repositories/${encodeURIComponent(e)}/management/scan`,{}),onSuccess:async(t,s)=>{try{await e.refetchQueries({queryKey:o(s)})}catch{}}})},"useSetRepositoryManagement",0,function(){let e=(0,a.useQueryClient)();return(0,s.useMutation)({mutationFn:({id:e,enabled:t})=>r.api.put(`/repositories/${encodeURIComponent(e)}/management`,{enabled:t}),onSuccess:(t,s)=>{e.invalidateQueries({queryKey:o(s.id)})}})},"useTestRepoTrigger",0,function(){return(0,s.useMutation)({mutationFn:({repositoryId:e,triggerId:t,eventType:s,payload:a})=>r.api.post(`/repositories/${encodeURIComponent(e)}/triggers/${encodeURIComponent(t)}/test`,{eventType:s,payload:a})})},"useUpdateRepoTrigger",0,function(){let e=(0,a.useQueryClient)();return(0,s.useMutation)({mutationFn:({repositoryId:e,triggerId:t,body:s})=>r.api.patch(`/repositories/${encodeURIComponent(e)}/triggers/${encodeURIComponent(t)}`,s),onSuccess:(t,s)=>{e.invalidateQueries({queryKey:l(s.repositoryId)})}})},"useUpdateRepository",0,function(){let e=(0,a.useQueryClient)();return(0,s.useMutation)({mutationFn:({id:e,body:t})=>r.api.patch(`/repositories/${encodeURIComponent(e)}`,t),onSuccess:(t,s)=>{e.invalidateQueries({queryKey:i}),e.invalidateQueries({queryKey:n(s.id)})}})}])},81042,e=>{"use strict";var t=e.i(54710),s=e.i(34416),a=e.i(45958),r=e.i(26181),i=e.i(16047),n=e.i(59481),l=e.i(40974),o=e.i(77379);let d=(0,o.default)("Settings2",[["path",{d:"M20 7h-9",key:"3s1dr2"}],["path",{d:"M14 17H5",key:"gfn3mx"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]]);var c=e.i(48467),u=e.i(74490),m=e.i(70986),p=e.i(50862),h=e.i(1733),g=e.i(84603),x=e.i(7663),f=e.i(20014),y=e.i(8652),b=e.i(88423),v=e.i(65268),j=e.i(14260);let N="text-[11px] font-medium uppercase tracking-wider text-muted-foreground";function w({repo:e}){let{data:a}=(0,b.useConfig)(),r=(0,h.useUpdateRepository)(),[i,n]=(0,s.useState)(e.pollIntervalSec),[l,o]=(0,s.useState)(null===e.pollIntervalSec?"":String(e.pollIntervalSec));e.pollIntervalSec!==i&&(n(e.pollIntervalSec),o(null===e.pollIntervalSec?"":String(e.pollIntervalSec)));let[d,c]=(0,s.useState)(null),u=(0,h.observationSourcesForRepo)(e),m=(0,j.useQuery)({queryKey:["observations","by-sources",{sources:u,limit:8}],queryFn:async()=>0===u.length?{observations:[]}:{observations:(await Promise.all(u.map(e=>v.api.get("/observations",{source:e,pending:"false",limit:8})))).flatMap(e=>e.observations).sort((e,t)=>t.observedAt.localeCompare(e.observedAt)).slice(0,8)},staleTime:15e3,enabled:u.length>0}),p=[];(0,h.repositoryHasGithub)(e)&&p.push("GitHub remote"),(0,h.repositoryHasLocal)(e)&&p.push("local clone");let k=a?.githubPollIntervalSeconds??300,C=a?.gitPollIntervalSeconds??300,S=(0,h.repositoryHasGithub)(e)?`GitHub default: ${k}s`:`Git default: ${C}s`,R=(""===l?null:Number(l))!==e.pollIntervalSec,$=async()=>{let t;if(c(null),""===l.trim())t=null;else{let e=Number(l);if(!Number.isFinite(e)||e<=0)return void c("poll_interval_sec must be a positive integer or empty (= use default).");t=Math.round(e)}try{await r.mutateAsync({id:e.id,body:{pollIntervalSec:t}})}catch(e){c(e instanceof Error?e.message:"Failed to save")}};return(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"rounded-md border bg-background/40 p-3",children:[(0,t.jsx)("p",{className:N,children:"Polled"}),(0,t.jsx)("p",{className:"mt-1 text-sm",children:p.length>0?p.join(" + "):"—"})]}),(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)("label",{className:N,children:"Poll interval (seconds)"}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(y.Input,{type:"number",min:1,value:l,onChange:e=>o(e.target.value),placeholder:S,className:"w-52"}),(0,t.jsxs)(f.Button,{size:"sm",variant:"outline",disabled:!R||r.isPending,onClick:$,children:[(0,t.jsx)(x.Save,{className:"mr-1 h-3.5 w-3.5"}),"Save"]})]}),(0,t.jsxs)("p",{className:"text-[11px] text-muted-foreground",children:["Empty falls back to the global cadence (",S,"). Smaller values poll more frequently — costs more rate budget on the GitHub side."]}),d&&(0,t.jsx)("p",{className:"text-xs text-red-700 dark:text-red-300",children:d})]}),(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)("label",{className:N,children:"Recent observations"}),0===u.length?(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"No polled sources for this repository."}):m.isLoading?(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"Loading…"}):m.data&&m.data.observations.length>0?(0,t.jsx)("ul",{className:"space-y-1 rounded-md border bg-background/40 p-2 text-xs",children:m.data.observations.map(e=>{var s;return(0,t.jsxs)("li",{className:"flex items-center justify-between gap-2",children:[(0,t.jsxs)("span",{className:"flex items-center gap-1.5 truncate",children:[(0,t.jsx)(g.Activity,{className:"h-3 w-3 text-muted-foreground"}),(0,t.jsx)("span",{className:"font-mono text-[11px] text-muted-foreground",children:function(e){let t=new Date(e);if(Number.isNaN(t.getTime()))return e;let s=Math.floor((Date.now()-t.getTime())/1e3);if(s<60)return`${s}s`;let a=Math.floor(s/60);if(a<60)return`${a}m`;let r=Math.floor(a/60);return r<24?`${r}h`:`${Math.floor(r/24)}d`}(e.observedAt)}),(0,t.jsx)("span",{className:"truncate",children:e.ref})]}),(0,t.jsx)("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-[10px] uppercase tracking-wider text-muted-foreground",children:(s=e.source).startsWith("git:")?"git":s.startsWith("github:notification")?"notif":s.startsWith("github:workflow")?"workflow":s.split(":")[0]??s})]},`${e.source}:${e.ref}:${e.id}`)})}):(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"No observations yet. The poller records here once it sees activity."})]})]})}var k=e.i(59546);let C=(0,o.default)("Pause",[["rect",{x:"14",y:"4",width:"4",height:"16",rx:"1",key:"zuxfzm"}],["rect",{x:"6",y:"4",width:"4",height:"16",rx:"1",key:"1okwgv"}]]);var S=e.i(21682),R=e.i(64213),$=e.i(60168);let M=(0,o.default)("TestTubeDiagonal",[["path",{d:"M21 7 6.82 21.18a2.83 2.83 0 0 1-3.99-.01a2.83 2.83 0 0 1 0-4L17 3",key:"1ub6xw"}],["path",{d:"m16 2 6 6",key:"1gw87d"}],["path",{d:"M12 16H4",key:"1cjfip"}]]);var I=e.i(90925),T=e.i(54879),P=e.i(90826),A=e.i(43477),F=e.i(24756);let q="text-[11px] font-medium uppercase tracking-wider text-muted-foreground",L=["git.push.detected","git.push.force_pushed","git.merge_to_default","git.local_ahead.stale","git.branch.created","git.tag.created"],_=["github.pull_request.opened","github.pull_request.synchronize","github.pull_request.review_requested","github.pull_request.closed","github.workflow_run.failed","github.assigned","github.security_alert","github.notification"];function B({repo:e,open:s,initial:a,onClose:r}){return(0,t.jsx)(A.Sheet,{open:s,onOpenChange:e=>!e&&r(),children:s&&(0,t.jsx)(D,{repo:e,initial:a,onClose:r})})}function D({repo:e,initial:a,onClose:r}){let i=(0,h.useCreateRepoTrigger)(),n=(0,h.useUpdateRepoTrigger)(),{data:l}=(0,F.useBackends)(),o=(0,s.useMemo)(()=>new Set(["claude","codex","gemini"]),[]),d=(0,s.useMemo)(()=>{let t=[];return(0,h.repositoryHasLocal)(e)&&t.push(...L),(0,h.repositoryHasGithub)(e)&&t.push(..._),t},[e]),[c,u]=(0,s.useState)(a?.name??""),[m,p]=(0,s.useState)(a?.enabled??!0),[g,x]=(0,s.useState)(a?.eventType??d[0]??"git.push.detected"),[b,v]=(0,s.useState)(()=>a?Object.entries(a.filters).map(([e,t],s)=>({id:`${s}`,key:e,value:"string"==typeof t||"number"==typeof t||"boolean"==typeof t?String(t):JSON.stringify(t)})):[]),[j,N]=(0,s.useState)(a?.backend??"claude"),[w,k]=(0,s.useState)(a?.model??""),[C,S]=(0,s.useState)(a?.workdirMode??((0,h.repositoryHasLocal)(e)?"local-clone":"temp")),[R,$]=(0,s.useState)(a?.prompt??""),[M,I]=(0,s.useState)(a?.instructionMd??""),[T,P]=(0,s.useState)(null),B=!(0,h.repositoryHasLocal)(e),U="claude"===j?"CLAUDE.md instruction":"codex"===j?"AGENTS.md instruction":"GEMINI.md instruction",Q=(0,s.useMemo)(()=>(l?.backends??[]).filter(e=>o.has(e.id)).filter(e=>e.id===j).flatMap(e=>e.models?.map(e=>e.modelId)??[]),[l,j,o]),O=(e,t)=>{v(s=>s.map(s=>s.id===e?{...s,...t}:s))},G=async t=>{if(t.preventDefault(),P(null),!c.trim())return P("Name is required.");if(!g)return P("Pick an event type.");if(!w.trim())return P("Model is required.");if(!R.trim())return P("Prompt is required.");if("temp"===C&&!M.trim())return P(`${U} is required when workdir is Temp.`);if("local-clone"===C&&B)return P("This repository has no local clone.");let s=(()=>{let e={};for(let t of b){let s=t.key.trim(),a=t.value;if(s){if("path_pattern"===s){let t=a.split(",").map(e=>e.trim()).filter(Boolean);if(0===t.length)continue;e[s]=1===t.length?t[0]:t;continue}"true"===a?e[s]=!0:"false"===a?e[s]=!1:""===a||Number.isNaN(Number(a))?e[s]=a:e[s]=Number(a)}}return{ok:!0,filters:e}})();if(!s.ok)return void P(s.error);let l={name:c.trim(),enabled:m,eventType:g,filters:s.filters,backend:j,model:w.trim(),workdirMode:C,prompt:R,instructionMd:"temp"===C?M:null};try{a?await n.mutateAsync({repositoryId:e.id,triggerId:a.id,body:l}):await i.mutateAsync({repositoryId:e.id,body:l}),r()}catch(e){P(e instanceof Error?e.message:"Failed to save trigger")}};return(0,t.jsxs)(A.SheetContent,{className:"overflow-y-auto sm:max-w-2xl",children:[(0,t.jsx)(A.SheetHeader,{children:(0,t.jsx)(A.SheetTitle,{children:a?"Edit trigger":"New trigger"})}),(0,t.jsxs)("form",{onSubmit:G,className:"mt-6 space-y-5",children:[(0,t.jsxs)("div",{className:"grid grid-cols-[1fr_auto] gap-2",children:[(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)("label",{className:q,children:"Name"}),(0,t.jsx)(y.Input,{value:c,onChange:e=>u(e.target.value),placeholder:"Auto-review main pushes",autoFocus:!0})]}),(0,t.jsxs)("label",{className:"flex items-end gap-1.5 pb-1 text-xs",children:[(0,t.jsx)("input",{type:"checkbox",checked:m,onChange:e=>p(e.target.checked)}),"Enabled"]})]}),(0,t.jsxs)("fieldset",{className:"space-y-3 rounded-md border bg-background/40 p-3",children:[(0,t.jsx)("legend",{className:"px-1 text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:"Condition"}),(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)("label",{className:q,children:"Event type"}),(0,t.jsx)("select",{value:g,onChange:e=>x(e.target.value),className:"h-9 w-full rounded-md border bg-background px-2 text-sm",children:d.map(e=>(0,t.jsx)("option",{value:e,children:e},e))})]}),(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)("label",{className:q,children:"Filters"}),(0,t.jsxs)("p",{className:"text-[11px] text-muted-foreground",children:["Flat key/value equality. Special key"," ",(0,t.jsx)("span",{className:"font-mono",children:"path_pattern"})," takes a comma- separated glob list (e.g. ",(0,t.jsx)("span",{className:"font-mono",children:"packages/**,docs/*.md"}),"). All filters AND together; multiple globs OR within"," ",(0,t.jsx)("span",{className:"font-mono",children:"path_pattern"}),"."]}),(0,t.jsxs)("div",{className:"space-y-1",children:[b.map(e=>(0,t.jsxs)("div",{className:"flex gap-1",children:[(0,t.jsx)(y.Input,{value:e.key,onChange:t=>O(e.id,{key:t.target.value}),placeholder:"branch / path_pattern / action / …",className:"flex-[1.2]"}),(0,t.jsx)(y.Input,{value:e.value,onChange:t=>O(e.id,{value:t.target.value}),placeholder:"main",className:"flex-[2]"}),(0,t.jsx)(f.Button,{type:"button",size:"sm",variant:"ghost",onClick:()=>{var t;return t=e.id,void v(e=>e.filter(e=>e.id!==t))},children:"×"})]},e.id)),(0,t.jsx)(f.Button,{type:"button",size:"sm",variant:"ghost",onClick:()=>{v(e=>[...e,{id:crypto.randomUUID(),key:"",value:""}])},children:"+ Add filter"})]})]})]}),(0,t.jsxs)("fieldset",{className:"space-y-3 rounded-md border bg-background/40 p-3",children:[(0,t.jsx)("legend",{className:"px-1 text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:"Action"}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)("label",{className:q,children:"Backend"}),(0,t.jsxs)("select",{value:j,onChange:e=>N(e.target.value),className:"h-9 w-full rounded-md border bg-background px-2 text-sm",children:[(0,t.jsx)("option",{value:"claude",children:"claude"}),(0,t.jsx)("option",{value:"codex",children:"codex"}),(0,t.jsx)("option",{value:"gemini",children:"gemini"})]})]}),(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)("label",{className:q,children:"Model"}),(0,t.jsx)(y.Input,{value:w,onChange:e=>k(e.target.value),list:`models-${j}`,placeholder:"claude"===j?"claude-sonnet-4-6":"codex"===j?"gpt-5.4-medium":"gemini-2.0-flash"}),(0,t.jsx)("datalist",{id:`models-${j}`,children:Q.map(e=>(0,t.jsx)("option",{value:e},e))})]})]}),(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)("label",{className:q,children:"Workdir"}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsxs)("label",{className:"flex flex-1 cursor-pointer items-center gap-2 rounded-md border px-3 py-2 text-sm transition-colors "+("temp"===C?"border-primary bg-primary/10 text-primary":"border-border"),children:[(0,t.jsx)("input",{type:"radio",name:"workdir",checked:"temp"===C,onChange:()=>S("temp")}),"Temp directory"]}),(0,t.jsxs)("label",{className:"flex flex-1 cursor-pointer items-center gap-2 rounded-md border px-3 py-2 text-sm transition-colors "+("local-clone"===C?"border-primary bg-primary/10 text-primary":"border-border")+(B?" cursor-not-allowed opacity-50":""),title:B?"this repository has no local clone":void 0,children:[(0,t.jsx)("input",{type:"radio",name:"workdir",disabled:B,checked:"local-clone"===C,onChange:()=>S("local-clone")}),"Local clone"]})]})]}),(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)("label",{className:q,children:"Prompt"}),(0,t.jsx)("textarea",{value:R,onChange:e=>$(e.target.value),rows:5,className:"w-full rounded-md border bg-background px-3 py-2 text-sm placeholder:text-muted-foreground/60 focus:outline-none focus:ring-2 focus:ring-ring",placeholder:"When this fires, do…"}),(0,t.jsx)("p",{className:"text-[11px] text-muted-foreground",children:"Free-form. The agent picks the right skills (DM, context write, git read-only, repo write)."})]}),"temp"===C&&(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)("label",{className:q,children:U}),(0,t.jsx)("textarea",{value:M,onChange:e=>I(e.target.value),rows:4,className:"w-full rounded-md border bg-background px-3 py-2 font-mono text-xs placeholder:text-muted-foreground/60 focus:outline-none focus:ring-2 focus:ring-ring",placeholder:"Required when workdir is Temp — the body of the instruction file."})]})]}),T&&(0,t.jsx)("p",{className:"rounded-md border border-red-200 bg-red-50/50 p-2 text-xs text-red-700 dark:border-red-900 dark:bg-red-950/30 dark:text-red-300",children:T}),(0,t.jsxs)("div",{className:"flex items-center justify-end gap-2 border-t pt-4",children:[(0,t.jsx)(f.Button,{type:"button",variant:"ghost",onClick:r,children:"Cancel"}),(0,t.jsx)(f.Button,{type:"submit",disabled:i.isPending||n.isPending,children:i.isPending||n.isPending?"Saving…":a?"Save":"Create"})]})]})]})}function U({repo:e}){let a=(0,h.useRepositoryTriggers)(e.id),[r,i]=(0,s.useState)(null),n=a.data?.triggers??[];return(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"Triggers fire when matching events arrive on this repository. They run alongside the project-wide task-flow defaults, not in place of them."}),(0,t.jsxs)(f.Button,{size:"sm",variant:"outline",onClick:()=>i("new"),children:[(0,t.jsx)($.Plus,{className:"mr-1 h-3.5 w-3.5"}),"New trigger"]})]}),a.isLoading?(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"Loading…"}):0===n.length?(0,t.jsx)(u.Card,{className:"text-xs text-muted-foreground",children:"No triggers yet. Add one to react to specific GitHub or Git events on this repository."}):(0,t.jsx)("div",{className:"space-y-2",children:n.map(s=>(0,t.jsx)(Q,{repo:e,trigger:s,onEdit:()=>i(s)},s.id))}),(0,t.jsx)(B,{repo:e,open:null!==r,initial:"new"===r||null===r?void 0:r,onClose:()=>i(null)})]})}function Q({repo:e,trigger:a,onEdit:r}){let i=(0,h.useUpdateRepoTrigger)(),n=(0,h.useDeleteRepoTrigger)(),l=(0,h.useTestRepoTrigger)(),o=(0,h.useFireRepoTrigger)(),d=(0,P.useConfirm)(),[m,p]=(0,s.useState)(null),g=async()=>{await d({title:`Delete trigger '${a.name}'?`,description:"Past fires stay in the agent action log.",confirmLabel:"Delete",variant:"destructive"})&&await n.mutateAsync({repositoryId:e.id,triggerId:a.id})},x=async()=>{p(null);try{let t=await l.mutateAsync({repositoryId:e.id,triggerId:a.id,eventType:a.eventType,payload:function(e){let t={mock:!0},s={};for(let[t,a]of Object.entries(e.filters))"path_pattern"!==t&&(s[t]=a);return e.eventType.startsWith("git.push.")||"git.merge_to_default"===e.eventType?{...t,...s,branch:s.branch??"main",commits:[{added:["packages/daemon/src/index.ts"],modified:["README.md"],removed:[]}]}:e.eventType.startsWith("github.pull_request")?{...t,...s,action:s.action??"opened",files:["packages/daemon/src/dispatcher.ts"]}:"github.workflow_run.failed"===e.eventType?{...t,...s,branch:s.branch??"main",conclusion:"failure"}:{...t,...s}}(a)});p(t.matched?"Filters match — trigger would fire.":"Filters do not match — trigger would not fire on this mock event.")}catch(e){p(e instanceof Error?`Test failed: ${e.message}`:"Test failed")}},y=async()=>{await d({title:`Fire '${a.name}' now?`,description:`Schedules a ${a.backend} session against ${e.slug} (workdir: ${a.workdirMode}).`,confirmLabel:"Fire"})&&await o.mutateAsync({repositoryId:e.id,triggerId:a.id})},b=function(e){let t=Object.entries(e);if(0===t.length)return null;let s=[];for(let[e,a]of t)if("path_pattern"===e){let e=Array.isArray(a)?a.join(","):String(a);s.push(`paths: ${e}`)}else s.push(`${e}=${String(a)}`);return s.join(" · ")}(a.filters);return(0,t.jsx)(u.Card,{className:a.enabled?"":"opacity-60",children:(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)(T.Zap,{className:"h-3.5 w-3.5 text-muted-foreground"}),(0,t.jsx)("span",{className:"text-sm font-medium text-foreground",children:a.name}),!a.enabled&&(0,t.jsx)(c.Badge,{variant:"gray",className:"text-[10px]",children:"Paused"}),(0,t.jsxs)(c.Badge,{variant:"gray",className:"text-[10px]",children:[a.backend,"/",a.model]}),(0,t.jsxs)(c.Badge,{variant:"gray",className:"text-[10px]",children:["workdir: ",a.workdirMode]})]}),(0,t.jsxs)("p",{className:"mt-1 text-[11px] text-muted-foreground",children:[(0,t.jsx)("span",{className:"font-mono",children:a.eventType}),b&&(0,t.jsxs)(t.Fragment,{children:[" · ",(0,t.jsx)("span",{children:b})]})]}),(0,t.jsx)("p",{className:"mt-2 line-clamp-2 text-xs text-muted-foreground",children:a.prompt}),(0,t.jsxs)("p",{className:"mt-1 text-[11px] text-muted-foreground",children:["Fired ",a.fireCount,"× ·"," ",a.lastFiredAt?`last ${function(e){let t=Date.now()-e;if(t<0)return"just now";let s=Math.floor(t/1e3);if(s<60)return"just now";let a=Math.floor(s/60);if(a<60)return`${a}m ago`;let r=Math.floor(a/60);return r<24?`${r}h ago`:`${Math.floor(r/24)}d ago`}(a.lastFiredAt)}`:"never fired"]}),m&&(0,t.jsxs)("p",{className:"mt-2 flex items-center gap-1 text-[11px] text-foreground",children:[(0,t.jsx)(k.CheckCircle2,{className:"h-3 w-3"}),m]})]}),(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-1",children:[(0,t.jsx)(f.Button,{size:"sm",variant:"ghost",onClick:x,disabled:l.isPending,title:"Test with mock event",children:(0,t.jsx)(M,{className:"h-3.5 w-3.5"})}),(0,t.jsx)(f.Button,{size:"sm",variant:"ghost",onClick:y,disabled:o.isPending,title:"Fire now",children:(0,t.jsx)(R.Play,{className:"h-3.5 w-3.5"})}),(0,t.jsx)(f.Button,{size:"sm",variant:"ghost",onClick:()=>{i.mutateAsync({repositoryId:e.id,triggerId:a.id,body:{enabled:!a.enabled}})},disabled:i.isPending,title:a.enabled?"Pause":"Resume",children:a.enabled?(0,t.jsx)(C,{className:"h-3.5 w-3.5"}):(0,t.jsx)(R.Play,{className:"h-3.5 w-3.5"})}),(0,t.jsx)(f.Button,{size:"sm",variant:"ghost",onClick:r,title:"Edit",children:(0,t.jsx)(S.Pencil,{className:"h-3.5 w-3.5"})}),(0,t.jsx)(f.Button,{size:"sm",variant:"ghost",onClick:g,disabled:n.isPending,title:"Delete",children:(0,t.jsx)(I.Trash2,{className:"h-3.5 w-3.5"})})]})]})})}var O=e.i(81187),G=e.i(15553),E=e.i(25239),H=e.i(29086),K=e.i(72740),z=e.i(59134),W=e.i(20668);let V="text-[11px] font-medium uppercase tracking-wider text-muted-foreground";function Z({repo:e}){let a=(0,h.useRepositoryManagement)(e.id),r=(0,h.useSetRepositoryManagement)(),i=(0,h.useRunRepoManagementInit)(),n=(0,h.useRunRepoManagementScan)(),l=(0,h.useRefreshRepositoryArchitecture)(),{data:o}=(0,b.useConfig)(),d=(0,P.useConfirm)(),[u,m]=(0,s.useState)(null),[p,g]=(0,s.useState)(null),x=a.data?.management,y=a.data?.architectureRefresh??null,v=null!==y,j=!e.localPath,N=o?.contextDir??"<contextDir>",w=`${N}/git/${e.slug}/`,k=async t=>{if(m(null),g(null),t&&j)return void m("Daily git management requires a local clone for v1. Link one via the connections › repositories page first.");try{await r.mutateAsync({id:e.id,enabled:t})}catch(e){m(e instanceof Error?e.message:"Failed to update")}},C=async()=>{if(m(null),g(null),await d({title:"Generate overview now?",description:`Writes the skeleton at git/${e.slug}/overview.md and queues an agent run to fill in the Architecture section. The button stays disabled until that agent run completes.`,confirmLabel:"Generate overview"}))try{let t=await i.mutateAsync(e.id),s=t.overviewPath??`git/${e.slug}/overview.md`,a="exists"===t.result?`Overview already exists at ${s}.`:`Wrote ${s}.`;g(null!==t.architectureScheduleId&&void 0!==t.architectureScheduleId?`${a} Architecture refresh queued (schedule #${t.architectureScheduleId}); waiting for the agent to fill in the Architecture section…`:a)}catch(e){m(e instanceof Error?e.message:"Failed to generate overview")}},S=async()=>{if(m(null),g(null),await d({title:"Refresh architecture analysis?",description:`Spawns a backend agent that reads ${e.localPath??e.slug} and rewrites the Architecture section of git/${e.slug}/overview.md. Only the Architecture block is replaced; Notable Changes and Daily Activity Log are preserved. This costs one model session — no automatic schedule, manual only.`,confirmLabel:"Refresh architecture"}))try{let t=await l.mutateAsync(e.id);g(`Architecture refresh queued (schedule #${t.scheduleId}). The Architecture section will update once the backend session completes.`)}catch(e){m(e instanceof Error?e.message:"Failed to enqueue refresh")}},R=async()=>{if(m(null),g(null),await d({title:"Run today's scan now?",description:`Writes today's journal entry for ${e.slug} if there was git or GitHub activity.`,confirmLabel:"Run scan"}))try{let t=await n.mutateAsync(e.id);g("skipped_no_activity"===t.status?"No git or GitHub activity was found in the lookback window; no journal was written.":`Wrote ${t.journalPath??`git/${e.slug}/journal/${ee()}.md`}.`)}catch(e){m(e instanceof Error?e.message:"Failed to run scan")}};return(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3 rounded-md border bg-background/40 p-3",children:[(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("p",{className:V,children:"Daily git management"}),(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:"Generates a curated overview MD and appends a journal entry once per day for this repository's git activity. Local-clone-bound for v1."}),j&&(0,t.jsxs)("p",{className:"mt-1 flex items-center gap-1 text-xs text-amber-700 dark:text-amber-400",children:[(0,t.jsx)(O.AlertTriangle,{className:"h-3 w-3"}),"No local clone — link one to enable this feature."]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,t.jsx)(J,{checked:!!x?.enabled,disabled:r.isPending||j,onChange:e=>void k(e),ariaLabel:"Toggle daily git management"}),(0,t.jsx)("span",{children:x?.enabled?"Enabled":"Disabled"})]})]}),u&&(0,t.jsx)("p",{className:"rounded-md border border-red-200 bg-red-50/50 p-2 text-xs text-red-700 dark:border-red-900 dark:bg-red-950/30 dark:text-red-300",children:u}),p&&(0,t.jsx)("p",{className:"rounded-md border border-emerald-200 bg-emerald-50/50 p-2 text-xs text-emerald-700 dark:border-emerald-900 dark:bg-emerald-950/30 dark:text-emerald-300",children:p}),(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)("p",{className:V,children:"Output location"}),(0,t.jsx)("p",{className:"rounded-md border bg-background/40 px-3 py-2 font-mono text-xs",children:w}),(0,t.jsxs)("p",{className:"text-[11px] text-muted-foreground",children:["Slug derives from ",(0,t.jsx)("span",{className:"font-mono",children:"display_name"}),"; edit it on the repository card to change this directory."]})]}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-3 md:grid-cols-4",children:[(0,t.jsx)(Y,{icon:(0,t.jsx)(G.BookOpen,{className:"h-3.5 w-3.5"}),label:"Init completed",value:x?.initCompletedAt?X(x.initCompletedAt):"never"}),(0,t.jsx)(Y,{icon:(0,t.jsx)(E.Calendar,{className:"h-3.5 w-3.5"}),label:"Last scan",value:x?.lastScanAt?X(x.lastScanAt):"never"}),(0,t.jsx)(Y,{icon:(0,t.jsx)(H.FileText,{className:"h-3.5 w-3.5"}),label:"Last status",value:x?.lastScanStatus?(0,t.jsx)(c.Badge,{variant:"ok"===x.lastScanStatus?"green":"failed"===x.lastScanStatus?"red":"gray",className:"text-[10px]",children:x.lastScanStatus}):"—"}),(0,t.jsx)(Y,{icon:(0,t.jsx)(O.AlertTriangle,{className:"h-3.5 w-3.5"}),label:"Failure streak",value:x?.scanFailureCount??0})]}),v&&(0,t.jsxs)("p",{className:"flex items-center gap-2 rounded-md border border-blue-200 bg-blue-50/50 p-2 text-xs text-blue-700 dark:border-blue-900 dark:bg-blue-950/30 dark:text-blue-300",children:[(0,t.jsx)(K.Loader2,{className:"h-3.5 w-3.5 animate-spin"}),"Architecture refresh in progress (schedule #",y?.scheduleId,", status: ",y?.status,"). Generate overview and Refresh architecture stay disabled until the agent run completes."]}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,t.jsxs)(f.Button,{size:"sm",variant:"outline",disabled:j||i.isPending||l.isPending||v,onClick:C,children:[i.isPending||v?(0,t.jsx)(K.Loader2,{className:"mr-1 h-3.5 w-3.5 animate-spin"}):(0,t.jsx)(G.BookOpen,{className:"mr-1 h-3.5 w-3.5"}),"Generate overview"]}),(0,t.jsxs)(f.Button,{size:"sm",variant:"outline",disabled:j||l.isPending||i.isPending||v,onClick:S,title:"Spawn an agent to read the repo and rewrite only the Architecture section of overview.md",children:[l.isPending||v?(0,t.jsx)(K.Loader2,{className:"mr-1 h-3.5 w-3.5 animate-spin"}):(0,t.jsx)(W.Sparkles,{className:"mr-1 h-3.5 w-3.5"}),"Refresh architecture"]}),(0,t.jsxs)(f.Button,{size:"sm",variant:"outline",disabled:j||n.isPending||!x?.enabled,onClick:R,children:[n.isPending?(0,t.jsx)(K.Loader2,{className:"mr-1 h-3.5 w-3.5 animate-spin"}):(0,t.jsx)(z.RefreshCw,{className:"mr-1 h-3.5 w-3.5"}),"Run today's scan now"]}),(0,t.jsxs)("a",{href:`/knowledge?path=${encodeURIComponent(`git/${e.slug}/overview`)}`,className:"inline-flex items-center gap-1 rounded-md border px-3 py-1.5 text-xs hover:bg-accent",children:[(0,t.jsx)(G.BookOpen,{className:"h-3.5 w-3.5"}),"Open overview.md"]}),(0,t.jsxs)("a",{href:`/knowledge?path=${encodeURIComponent(`git/${e.slug}/journal/${ee()}`)}`,className:"inline-flex items-center gap-1 rounded-md border px-3 py-1.5 text-xs hover:bg-accent",children:[(0,t.jsx)(E.Calendar,{className:"h-3.5 w-3.5"}),"Open today's journal"]})]})]})}function J({checked:e,disabled:s,onChange:a,ariaLabel:r}){return(0,t.jsx)("button",{type:"button",role:"switch","aria-checked":e,"aria-label":r,disabled:s,onClick:()=>a(!e),className:"relative inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 "+(e?"bg-primary":"bg-input"),children:(0,t.jsx)("span",{className:"inline-block h-5 w-5 transform rounded-full bg-background shadow-sm transition-transform "+(e?"translate-x-[22px]":"translate-x-[2px]")})})}function Y({icon:e,label:s,value:a}){return(0,t.jsxs)("div",{className:"rounded-md border bg-background/40 p-3",children:[(0,t.jsxs)("p",{className:"flex items-center gap-1 text-[10px] uppercase tracking-wider text-muted-foreground",children:[e,s]}),(0,t.jsx)("p",{className:"mt-1 text-sm font-medium text-foreground",children:a})]})}function X(e){let t=Math.floor((Date.now()-e)/1e3);if(t<60)return"just now";let s=Math.floor(t/60);if(s<60)return`${s}m ago`;let a=Math.floor(s/60);return a<24?`${a}h ago`:`${Math.floor(a/24)}d ago`}function ee(){let e=new Date;return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`}var et=e.i(81471);function es({repo:e}){let s=(0,h.repositoryHasLocal)(e),i=(0,h.repositoryHasGithub)(e);return(0,t.jsxs)(u.Card,{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)(n.GitBranch,{className:"h-4 w-4 text-muted-foreground"}),(0,t.jsx)("span",{className:"text-sm font-medium text-foreground",children:(0,h.repositoryDisplayName)(e)}),e.localOnly&&(0,t.jsxs)(c.Badge,{variant:"gray",className:"text-[10px]",children:[(0,t.jsx)(l.Lock,{className:"mr-1 h-3 w-3"}),"local-only"]}),i&&(0,t.jsxs)(c.Badge,{variant:"gray",className:"text-[10px]",children:[e.githubOwner,"/",e.githubRepo]}),s&&(0,t.jsx)(c.Badge,{variant:"gray",className:"text-[10px]",children:e.localPath})]}),(0,t.jsxs)("p",{className:"mt-0.5 text-[11px] text-muted-foreground",children:["slug: ",(0,t.jsx)("span",{className:"font-mono",children:e.slug})," · classification: ",e.classification,"· category: ",e.category]})]}),(0,t.jsxs)(a.default,{href:"/connections/repositories",className:"inline-flex items-center gap-1 text-[11px] text-muted-foreground underline-offset-2 hover:underline",children:["Edit registration",(0,t.jsx)(r.ArrowUpRight,{className:"h-3 w-3"})]})]}),(0,t.jsxs)("div",{className:"mt-3 space-y-2",children:[(0,t.jsx)(ea,{title:"Polling",defaultOpen:!0,children:(0,t.jsx)(w,{repo:e})}),(0,t.jsx)(ea,{title:"Triggers",defaultOpen:!0,children:(0,t.jsx)(U,{repo:e})}),(0,t.jsx)(ea,{title:"Daily git management",defaultOpen:!0,children:(0,t.jsx)(Z,{repo:e})})]})]})}function ea({title:e,defaultOpen:s=!1,children:a}){return(0,t.jsxs)(m.Collapsible,{defaultOpen:s,className:"rounded-md border",children:[(0,t.jsx)(m.CollapsibleTrigger,{asChild:!0,children:(0,t.jsxs)("button",{type:"button",className:"group flex w-full items-center justify-between px-3 py-2 text-sm hover:bg-accent",children:[(0,t.jsx)("span",{className:"font-medium",children:e}),(0,t.jsx)(i.ChevronDown,{className:(0,et.cn)("h-4 w-4 text-muted-foreground transition-transform","group-data-[state=open]:rotate-180")})]})}),(0,t.jsx)(m.CollapsibleContent,{className:"border-t p-3",children:a})]})}e.s(["default",0,function(){let e=(0,h.useRepositories)(),i=(0,s.useMemo)(()=>e.data?.repositories??[],[e.data?.repositories]);return(0,t.jsxs)("div",{className:"space-y-6 p-6",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("h1",{className:"text-3xl font-bold",children:"Git"}),(0,t.jsx)(c.Badge,{variant:"amber",className:"uppercase tracking-wide",children:"Experimental"})]}),(0,t.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:"Per-repository polling cadence, automation triggers, and daily git management. Register repositories on the connections page."}),(0,t.jsx)("p",{className:"mt-2 max-w-2xl text-xs text-amber-700 dark:text-amber-400",children:"These detailed Git controls are still under active testing. Expect rough edges and please report bugs. Read-only views (commits, diff) are stable; triggers and daily management may misbehave."})]}),(0,t.jsxs)(a.default,{href:"/connections/repositories",className:"inline-flex items-center gap-1 rounded-md border px-3 py-1.5 text-sm hover:bg-accent",children:[(0,t.jsx)(d,{className:"h-4 w-4"}),"Manage repositories",(0,t.jsx)(r.ArrowUpRight,{className:"h-3 w-3"})]})]}),e.isLoading?(0,t.jsx)(u.Card,{className:"text-sm text-muted-foreground",children:"Loading…"}):0===i.length?(0,t.jsx)(p.EmptyState,{icon:n.GitBranch,title:"No repositories registered",description:"Add a repository on the connections page, then return here to configure polling cadence, triggers, and daily git management.",children:(0,t.jsxs)(a.default,{href:"/connections/repositories",className:"mt-4 inline-flex items-center gap-1 rounded-md border px-3 py-1.5 text-sm hover:bg-accent",children:[(0,t.jsx)(d,{className:"h-4 w-4"}),"Go to connections › repositories"]})}):(0,t.jsx)("div",{className:"space-y-4",children:i.map(e=>(0,t.jsx)(es,{repo:e},e.id))})]})}],81042)}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,28919,e=>{"use strict";var t=e.i(54710),s=e.i(34416),r=e.i(75540),n=e.i(65268),a=e.i(42455),l=e.i(71816),i=e.i(49214),d=e.i(50862),o=e.i(49785),c=e.i(48467),u=e.i(20014),m=e.i(74490),x=e.i(26406),h=e.i(10628),p=e.i(81471),g=e.i(57628),f=e.i(76176),j=e.i(31501),y=e.i(77379);let b=(0,y.default)("AlarmClock",[["circle",{cx:"12",cy:"13",r:"8",key:"3y4lt7"}],["path",{d:"M12 9v4l2 2",key:"1c63tq"}],["path",{d:"M5 3 2 6",key:"18tl5t"}],["path",{d:"m22 6-3-3",key:"1opdir"}],["path",{d:"M6.38 18.7 4 21",key:"17xu3x"}],["path",{d:"M17.64 18.67 20 21",key:"kv2oe2"}]]);var v=e.i(60168),N=e.i(43477),k=e.i(79634),w=e.i(8652),S=e.i(10427);let T=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],C=Array.from({length:31},(e,t)=>t+1),O={frequency:"once",oneOffDateTime:"",recurringTime:"09:00",daysOfWeek:[],daysOfMonth:[],model:"",description:"",prompt:""};function M(e){let t={};if(e.description.trim().length<20&&(t.description="Description must be at least 20 characters — when no prompt override is set, this text is the agent's only context."),e.prompt.trim().length>0&&e.prompt.trim().length<20&&(t.prompt="Prompt override must be at least 20 characters, or leave empty to use the description as the agent body."),"once"===e.frequency)if(e.oneOffDateTime){let s=new Date(e.oneOffDateTime).getTime();Number.isNaN(s)?t.oneOffDateTime="Invalid date/time.":s<Date.now()-6e4&&(t.oneOffDateTime="Must be at least a minute in the future.")}else t.oneOffDateTime="Required.";else/^\d{2}:\d{2}$/.test(e.recurringTime)||(t.recurringTime="Time must be HH:MM."),"weekly"===e.frequency&&0===e.daysOfWeek.length&&(t.daysOfWeek="Select at least one weekday."),"monthly"===e.frequency&&0===e.daysOfMonth.length&&(t.daysOfMonth="Select at least one day of the month.");return 0===Object.keys(t).length?null:t}function D(e){let t=e.description.trim(),s=e.prompt.trim(),r=s.length>0?s:void 0,n="custom",a=""===e.model?void 0:e.model;if("once"===e.frequency)return{kind:"once",body:{time:new Date(e.oneOffDateTime).toISOString(),taskType:n,description:t,...r?{prompt:r}:{},...a?{model:a}:{},taskContext:{source:"dashboard_manual"}}};let l={frequency:e.frequency,time:e.recurringTime,..."weekly"===e.frequency?{daysOfWeek:[...e.daysOfWeek].sort((e,t)=>e-t)}:{},..."monthly"===e.frequency?{daysOfMonth:[...e.daysOfMonth].sort((e,t)=>e-t)}:{}};return{kind:"recurring",body:{taskType:n,description:t,...r?{prompt:r}:{},recurrenceRule:l,...a?{model:a}:{},taskContext:{source:"dashboard_manual"}}}}function q({state:e,onChange:r,lockFrequency:n,hideFrequency:a,errors:l,onEdit:i}){let d=(t,s)=>{r({...e,[t]:s}),i?.()},[o]=(0,s.useState)(()=>{let e=new Date(Date.now()+6e4),t=e=>String(e).padStart(2,"0");return`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())}T${t(e.getHours())}:${t(e.getMinutes())}`});return(0,t.jsxs)("div",{className:"space-y-4",children:[a?null:(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"mb-1 block text-xs font-medium text-muted-foreground",children:"Frequency"}),(0,t.jsx)("div",{className:"flex gap-1",role:"radiogroup","aria-label":"Frequency",children:["once","daily","weekly","monthly"].map(s=>(0,t.jsx)(u.Button,{type:"button",size:"sm",variant:e.frequency===s?"default":"outline",disabled:n,onClick:()=>d("frequency",s),"aria-pressed":e.frequency===s,children:"once"===s?"One-off":s.charAt(0).toUpperCase()+s.slice(1)},s))})]}),"once"===e.frequency?(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"mb-1 block text-xs font-medium text-muted-foreground",htmlFor:"schedule-one-off-time",children:"When"}),(0,t.jsx)(w.Input,{id:"schedule-one-off-time",type:"datetime-local",value:e.oneOffDateTime,min:o,onChange:e=>d("oneOffDateTime",e.target.value),className:"h-9"}),l?.oneOffDateTime?(0,t.jsx)("p",{className:"mt-1 text-xs text-red-600",children:l.oneOffDateTime}):(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:"Local time. The daemon stores it as UTC."})]}):(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"mb-1 block text-xs font-medium text-muted-foreground",htmlFor:"schedule-recurring-time",children:"Time of day"}),(0,t.jsx)(w.Input,{id:"schedule-recurring-time",type:"time",value:e.recurringTime,onChange:e=>d("recurringTime",e.target.value),className:"h-9 w-32"}),l?.recurringTime?(0,t.jsx)("p",{className:"mt-1 text-xs text-red-600",children:l.recurringTime}):(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:"Interpreted in the daemon’s configured timezone."})]}),"weekly"===e.frequency?(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"mb-1 block text-xs font-medium text-muted-foreground",children:"Days of week"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:T.map((s,r)=>{let n=e.daysOfWeek.includes(r);return(0,t.jsx)(u.Button,{type:"button",size:"sm",variant:n?"default":"outline",onClick:()=>d("daysOfWeek",n?e.daysOfWeek.filter(e=>e!==r):[...e.daysOfWeek,r]),"aria-pressed":n,children:s},s)})}),l?.daysOfWeek?(0,t.jsx)("p",{className:"mt-1 text-xs text-red-600",children:l.daysOfWeek}):null]}):null,"monthly"===e.frequency?(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"mb-1 block text-xs font-medium text-muted-foreground",children:"Days of month"}),(0,t.jsx)("div",{className:"grid grid-cols-7 gap-1 sm:grid-cols-10",children:C.map(s=>{let r=e.daysOfMonth.includes(s);return(0,t.jsx)("button",{type:"button",onClick:()=>d("daysOfMonth",r?e.daysOfMonth.filter(e=>e!==s):[...e.daysOfMonth,s]),"aria-pressed":r,className:(0,p.cn)("h-7 rounded-md border text-xs tabular-nums transition-colors",r?"border-primary bg-primary text-primary-foreground":"border-input bg-background hover:bg-muted"),children:s},s)})}),(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:"29-31 clamp to the last day on shorter months."}),l?.daysOfMonth?(0,t.jsx)("p",{className:"mt-1 text-xs text-red-600",children:l.daysOfMonth}):null]}):null,(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"mb-1 block text-xs font-medium text-muted-foreground",children:"Model"}),(0,t.jsxs)(S.Select,{value:e.model||"default",onValueChange:e=>d("model","default"===e?"":e),children:[(0,t.jsx)(S.SelectTrigger,{className:"h-9 w-48",children:(0,t.jsx)(S.SelectValue,{placeholder:"Default"})}),(0,t.jsxs)(S.SelectContent,{children:[(0,t.jsx)(S.SelectItem,{value:"default",children:"Default (process config)"}),(0,t.jsx)(S.SelectItem,{value:"sonnet",children:"Sonnet (light tier)"}),(0,t.jsx)(S.SelectItem,{value:"opus",children:"Opus (heavy tier)"})]})]}),(0,t.jsxs)("p",{className:"mt-1 text-xs text-muted-foreground",children:["“Default” lets the dispatcher pick using the",(0,t.jsx)("code",{className:"mx-1",children:"scheduled.task"}),"process binding."]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"mb-1 block text-xs font-medium text-muted-foreground",htmlFor:"schedule-description",children:"Description"}),(0,t.jsx)("textarea",{id:"schedule-description",value:e.description,onChange:e=>d("description",e.target.value),rows:4,className:"w-full rounded-md border border-input bg-background p-2 text-sm focus:outline-none focus:ring-2 focus:ring-ring",placeholder:"Short summary shown in the schedule list. When no prompt override is set, this is also what the agent reads."}),l?.description?(0,t.jsx)("p",{className:"mt-1 text-xs text-red-600",children:l.description}):(0,t.jsxs)("p",{className:"mt-1 text-xs text-muted-foreground",children:[e.description.trim().length," / 20 characters minimum."]})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("label",{className:"mb-1 block text-xs font-medium text-muted-foreground",htmlFor:"schedule-prompt",children:["Prompt ",(0,t.jsx)("span",{className:"text-muted-foreground/70",children:"(optional override)"})]}),(0,t.jsx)("textarea",{id:"schedule-prompt",value:e.prompt,onChange:e=>d("prompt",e.target.value),rows:6,className:"w-full rounded-md border border-input bg-background p-2 text-sm focus:outline-none focus:ring-2 focus:ring-ring",placeholder:"Leave empty to use the description above as the agent body. Fill in to give the agent a fuller, separate instruction."}),l?.prompt?(0,t.jsx)("p",{className:"mt-1 text-xs text-red-600",children:l.prompt}):(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:0===e.prompt.trim().length?"Empty — description will be used as the agent body.":`${e.prompt.trim().length} / 20 characters minimum (when set).`})]})]})}var _=e.i(57415),B=e.i(95486);let A=["schedule-list","schedule-next"];function $(e){for(let t of A)e.invalidateQueries({queryKey:[t]})}var E=e.i(14260);let R=["recurring-schedules"];function P(){let e=(0,B.useQueryClient)();return(0,_.useMutation)({mutationFn:({id:e,...t})=>n.api.patch(`/recurring-schedules/${e}`,t),onSuccess:()=>{e.invalidateQueries({queryKey:R}),e.invalidateQueries({queryKey:["schedule-list"]}),e.invalidateQueries({queryKey:["schedule-next"]})}})}function F({trigger:e}){let r,a,[l,i]=(0,s.useState)(!1),[d,o]=(0,s.useState)(O),[c,m]=(0,s.useState)(null),[x,h]=(0,s.useState)(null),p=(r=(0,B.useQueryClient)(),(0,_.useMutation)({mutationFn:e=>n.api.post("/schedule",e),onSuccess:()=>$(r)})),g=(a=(0,B.useQueryClient)(),(0,_.useMutation)({mutationFn:e=>n.api.post("/recurring-schedules",e),onSuccess:()=>{a.invalidateQueries({queryKey:R}),a.invalidateQueries({queryKey:["schedule-list"]}),a.invalidateQueries({queryKey:["schedule-next"]})}})),f=p.isPending||g.isPending,j=()=>{o(O),m(null),h(null)},y=async()=>{let e=M(d);if(m(e),e)return;h(null);let t=D(d);try{"once"===t.kind?await p.mutateAsync(t.body):await g.mutateAsync(t.body),i(!1),j()}catch(e){h(e instanceof n.ApiError?`${e.message} (${e.status})`:e instanceof Error?e.message:"Unknown error")}};return(0,t.jsxs)(N.Sheet,{open:l,onOpenChange:e=>{i(e),e||j()},children:[(0,t.jsx)(N.SheetTrigger,{asChild:!0,children:e}),(0,t.jsxs)(N.SheetContent,{className:"flex flex-col gap-4 overflow-y-auto",children:[(0,t.jsxs)(N.SheetHeader,{className:"pr-8",children:[(0,t.jsx)(N.SheetTitle,{children:"New scheduled task"}),(0,t.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Runs in a fresh per-session workdir. The",(0,t.jsx)("code",{className:"mx-1",children:"notify"}),"and",(0,t.jsx)("code",{className:"mx-1",children:"schedule"}),"skills are provisioned, so the agent can DM you and reschedule itself."]})]}),(0,t.jsx)(q,{state:d,onChange:o,errors:c,onEdit:()=>{c&&m(null),x&&h(null)}}),x?(0,t.jsx)(k.Alert,{variant:"error",children:x}):null,(0,t.jsxs)("div",{className:"mt-2 flex justify-end gap-2",children:[(0,t.jsx)(u.Button,{variant:"outline",onClick:()=>{i(!1),j()},disabled:f,children:"Cancel"}),(0,t.jsx)(u.Button,{onClick:y,disabled:f,children:f?"Saving...":"Create"})]})]})]})}function Q(e){let t=(0,p.parseUtcDate)(e),s=e=>String(e).padStart(2,"0");return`${t.getFullYear()}-${s(t.getMonth()+1)}-${s(t.getDate())}T${s(t.getHours())}:${s(t.getMinutes())}`}function I({row:e,open:s,onOpenChange:r}){return(0,t.jsx)(N.Sheet,{open:s,onOpenChange:r,children:e?(0,t.jsx)(W,{row:e,onClose:()=>r(!1)},e.id):null})}function W({row:e,onClose:r}){let a,l,[i,d]=(0,s.useState)(!1),o="sonnet"===e.model||"opus"===e.model?e.model:"",[m,x]=(0,s.useState)(e.task_description??""),[h,g]=(0,s.useState)(e.task_prompt??""),[j,y]=(0,s.useState)(o),[b,v]=(0,s.useState)(()=>Q(e.scheduled_for)),[S,T]=(0,s.useState)(null),C=(a=(0,B.useQueryClient)(),(0,_.useMutation)({mutationFn:({id:e,...t})=>n.api.patch(`/schedule/${e}`,t),onSuccess:()=>$(a)})),O=(l=(0,B.useQueryClient)(),(0,_.useMutation)({mutationFn:e=>n.api.delete(`/schedule/${e}`),onSuccess:()=>$(l)})),M=function(e){if(!e)return{};try{let t=JSON.parse(e);return t&&"object"==typeof t?t:{}}catch{return{}}}(e.task_context),D="pending"===e.status,q="dm"===e.task_type,A=async()=>{if(T(null),q){if(m.trim().length<1)return void T("Message cannot be empty.")}else{if(m.trim().length<20)return void T("Description must be at least 20 characters.");let e=h.trim();if(e.length>0&&e.length<20)return void T("Prompt override must be at least 20 characters, or leave empty to use the description.")}let t=new Date(b).getTime();if(Number.isNaN(t))return void T("Invalid date/time.");if(t<Date.now()-6e4)return void T("Scheduled time must be at least a minute in the future.");let s={id:e.id};if(b!==Q(e.scheduled_for)&&(s.time=new Date(b).toISOString()),m!==(e.task_description??"")&&(q?s.message=m:s.description=m),!q){let t=h.trim();t!==(e.task_prompt??"").trim()&&(s.prompt=0===t.length?null:t)}if(j&&j!==o&&(s.model=j),1===Object.keys(s).length)return void d(!1);try{await C.mutateAsync(s),d(!1)}catch(e){T(e instanceof n.ApiError?`${e.message} (${e.status})`:e instanceof Error?e.message:"Unknown error")}},E=async()=>{if(T(null),confirm("Cancel this scheduled task?"))try{await O.mutateAsync(e.id),r()}catch(e){T(e instanceof n.ApiError?`${e.message} (${e.status})`:e instanceof Error?e.message:"Unknown error")}};return(0,t.jsxs)(N.SheetContent,{className:"flex flex-col gap-4 overflow-y-auto",children:[(0,t.jsxs)(N.SheetHeader,{className:"pr-8",children:[(0,t.jsxs)(N.SheetTitle,{children:["Scheduled task #",e.id]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-xs",children:[(0,t.jsx)(c.Badge,{children:e.task_type}),(0,t.jsx)(c.Badge,{children:e.status}),e.model?(0,t.jsx)(c.Badge,{variant:(0,f.modelBadgeVariant)(e.model),children:(0,f.formatShortModelName)(e.model)}):(0,t.jsx)(c.Badge,{variant:"gray",children:"default model"}),void 0!==M.recurringScheduleId?(0,t.jsxs)(c.Badge,{variant:"purple",children:["from recurring #",String(M.recurringScheduleId)]}):null]})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h3",{className:"mb-1 text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Scheduled for"}),i?(0,t.jsx)(w.Input,{type:"datetime-local",value:b,onChange:e=>v(e.target.value),className:"h-9"}):(0,t.jsxs)("p",{className:"text-sm text-foreground",children:[(0,p.formatAbsoluteTime)(e.scheduled_for)," ",(0,t.jsxs)("span",{className:"text-muted-foreground",children:["(",(0,p.formatRelativeTime)(e.scheduled_for),")"]})]})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h3",{className:"mb-1 text-xs font-medium uppercase tracking-wide text-muted-foreground",children:q?"Message":"Description"}),i?(0,t.jsx)("textarea",{value:m,onChange:e=>x(e.target.value),rows:q?8:4,className:"w-full rounded-md border border-input bg-background p-2 text-sm focus:outline-none focus:ring-2 focus:ring-ring"}):(0,t.jsx)("pre",{className:"whitespace-pre-wrap break-words rounded-md bg-muted p-2 text-xs text-foreground",children:e.task_description})]}),q?null:(0,t.jsxs)("section",{children:[(0,t.jsxs)("h3",{className:"mb-1 text-xs font-medium uppercase tracking-wide text-muted-foreground",children:["Prompt ",(0,t.jsx)("span",{className:"normal-case tracking-normal text-muted-foreground/70",children:"(optional override)"})]}),i?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("textarea",{value:h,onChange:e=>g(e.target.value),rows:8,className:"w-full rounded-md border border-input bg-background p-2 text-sm focus:outline-none focus:ring-2 focus:ring-ring",placeholder:"Leave empty to use the description above as the agent body."}),(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:0===h.trim().length?"Empty — description will be used as the agent body.":`${h.trim().length} / 20 characters minimum (when set).`})]}):e.task_prompt?(0,t.jsx)("pre",{className:"whitespace-pre-wrap break-words rounded-md bg-muted p-2 text-xs text-foreground",children:e.task_prompt}):(0,t.jsx)("p",{className:"rounded-md bg-muted p-2 text-xs italic text-muted-foreground",children:"No override — description above is used as the agent body."})]}),!q&&i?(0,t.jsxs)("section",{children:[(0,t.jsx)("h3",{className:"mb-1 text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Model"}),(0,t.jsx)("div",{className:"flex gap-1",children:["","sonnet","opus"].map(e=>(0,t.jsx)(u.Button,{type:"button",size:"sm",variant:j===e?"default":"outline",onClick:()=>y(e),children:""===e?"Default":e},e||"default"))}),""!==o?(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:"The daemon’s schedule PATCH cannot un-pin a model. To return to default, cancel this task and recreate it."}):null]}):null,Object.keys(M).length>0?(0,t.jsxs)("section",{children:[(0,t.jsx)("h3",{className:"mb-1 text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Task context"}),(0,t.jsx)("pre",{className:"overflow-x-auto rounded-md bg-muted p-2 font-mono text-[11px] text-muted-foreground",children:JSON.stringify(M,null,2)})]}):null,(0,t.jsxs)("section",{className:"text-xs text-muted-foreground",children:["Created ",(0,p.formatAbsoluteTime)(e.created_at)]}),S?(0,t.jsx)(k.Alert,{variant:"error",children:S}):null,(0,t.jsxs)("div",{className:"mt-auto flex justify-between gap-2 pt-4",children:[D&&!i?(0,t.jsx)(u.Button,{variant:"outline",onClick:E,disabled:O.isPending,children:O.isPending?"Cancelling...":"Cancel task"}):(0,t.jsx)("span",{}),(0,t.jsxs)("div",{className:"flex gap-2",children:[D&&!i?(0,t.jsx)(u.Button,{onClick:()=>{x(e.task_description??""),g(e.task_prompt??""),y(o),v(Q(e.scheduled_for)),T(null),d(!0)},children:"Edit"}):null,i?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(u.Button,{variant:"outline",onClick:()=>d(!1),disabled:C.isPending,children:"Discard"}),(0,t.jsx)(u.Button,{onClick:A,disabled:C.isPending,children:C.isPending?"Saving...":"Save"})]}):null]})]})]})}let U=(0,y.default)("CalendarRange",[["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M17 14h-6",key:"bkmgh3"}],["path",{d:"M13 18H7",key:"bb0bb7"}],["path",{d:"M7 14h.01",key:"1qa3f1"}],["path",{d:"M17 18h.01",key:"1bdyru"}]]);var K=e.i(90780),z=e.i(90925);function H({dto:e,open:s,onOpenChange:r}){return e?(0,t.jsx)(N.Sheet,{open:s,onOpenChange:r,children:(0,t.jsx)(L,{dto:e,onClose:()=>r(!1)},e.id)}):null}function L({dto:e,onClose:r}){let[a,l]=(0,s.useState)(()=>{let t;return{frequency:(t=e.recurrenceRule).frequency,oneOffDateTime:"",recurringTime:t.time,daysOfWeek:t.daysOfWeek??[],daysOfMonth:t.daysOfMonth??[],model:"sonnet"===e.model||"opus"===e.model?e.model:"",description:e.description,prompt:e.prompt??""}}),[i,d]=(0,s.useState)(null),[o,c]=(0,s.useState)(null),m=P(),x=async()=>{let t=M(a);if(d(t),t)return;let s=D(a);if("recurring"!==s.kind)return void c("Cannot convert a recurring schedule to a one-off — delete and recreate.");try{await m.mutateAsync({id:e.id,description:s.body.description,prompt:s.body.prompt??null,recurrenceRule:s.body.recurrenceRule,...s.body.model?{model:s.body.model}:{}}),r()}catch(e){c(e instanceof n.ApiError?`${e.message} (${e.status})`:e instanceof Error?e.message:"Unknown error")}};return(0,t.jsxs)(N.SheetContent,{className:"flex flex-col gap-4 overflow-y-auto",children:[(0,t.jsx)(N.SheetHeader,{className:"pr-8",children:(0,t.jsxs)(N.SheetTitle,{children:["Edit recurring schedule #",e.id]})}),(0,t.jsx)(q,{state:a,onChange:l,errors:i,lockFrequency:!0,onEdit:()=>{i&&d(null),o&&c(null)}}),o?(0,t.jsx)(k.Alert,{variant:"error",children:o}):null,(0,t.jsxs)("div",{className:"mt-2 flex justify-end gap-2",children:[(0,t.jsx)(u.Button,{variant:"outline",onClick:r,disabled:m.isPending,children:"Cancel"}),(0,t.jsx)(u.Button,{onClick:x,disabled:m.isPending,children:m.isPending?"Saving...":"Save"})]})]})}function V(){let e,{data:r,isLoading:a,isError:l,error:i,refetch:m}=(0,E.useQuery)({queryKey:R,queryFn:()=>n.api.get("/recurring-schedules"),staleTime:3e4}),x=P(),g=(e=(0,B.useQueryClient)(),(0,_.useMutation)({mutationFn:e=>n.api.delete(`/recurring-schedules/${e}`),onSuccess:()=>{e.invalidateQueries({queryKey:R}),e.invalidateQueries({queryKey:["schedule-list"]}),e.invalidateQueries({queryKey:["schedule-next"]})}})),[j,y]=(0,s.useState)(null),[b,v]=(0,s.useState)(null),N=async e=>{v(null);try{await x.mutateAsync({id:e.id,enabled:!e.enabled})}catch(e){v(e instanceof n.ApiError?`${e.message} (${e.status})`:e instanceof Error?e.message:"Unknown error")}},w=async e=>{if(v(null),confirm(`Delete recurring schedule "${e.description.slice(0,40)}..."?`))try{await g.mutateAsync(e.id)}catch(e){v(e instanceof n.ApiError?`${e.message} (${e.status})`:e instanceof Error?e.message:"Unknown error")}},S=r?.items??[];return(0,t.jsxs)(t.Fragment,{children:[b?(0,t.jsx)(k.Alert,{variant:"error",children:b}):null,(0,t.jsx)(o.QueryResult,{isLoading:a,isError:l,error:i,onRetry:()=>m(),skeleton:(0,t.jsx)(o.TableSkeleton,{rows:3}),children:0===S.length?(0,t.jsx)(d.EmptyState,{icon:U,title:"No recurring schedules",description:"Create one with the Schedule button — pick daily, weekly (with weekdays), or monthly cadence."}):(0,t.jsx)("div",{className:"overflow-x-auto rounded-xl border border-border",children:(0,t.jsxs)("table",{className:"w-full text-left","aria-label":"Recurring schedules",children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{className:"border-b border-border bg-muted/50",children:[(0,t.jsx)("th",{className:"px-3 py-2 text-xs font-medium text-muted-foreground",children:"Cadence"}),(0,t.jsx)("th",{className:"px-3 py-2 text-xs font-medium text-muted-foreground",children:"Description"}),(0,t.jsx)("th",{className:"px-3 py-2 text-xs font-medium text-muted-foreground",children:"Model"}),(0,t.jsx)("th",{className:"px-3 py-2 text-xs font-medium text-muted-foreground",children:"Next run"}),(0,t.jsx)("th",{className:"px-3 py-2 text-xs font-medium text-muted-foreground",children:"Enabled"}),(0,t.jsx)("th",{className:"px-3 py-2 text-xs font-medium text-muted-foreground",children:"Actions"})]})}),(0,t.jsx)("tbody",{children:S.map(e=>(0,t.jsxs)("tr",{className:"border-b border-border",children:[(0,t.jsx)("td",{className:"px-3 py-2 text-sm",children:e.recurrenceLabel}),(0,t.jsx)("td",{className:"max-w-md px-3 py-2 text-sm",children:(0,t.jsxs)("div",{className:"flex items-start gap-2",children:[(0,t.jsx)("span",{className:"line-clamp-2 flex-1",children:e.description}),e.prompt?(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{children:(0,t.jsx)(c.Badge,{variant:"purple",className:"shrink-0",children:"prompt"})}),(0,t.jsx)(h.TooltipContent,{children:"Description above is the list label; a separate prompt is what the agent receives. Open the row to view or edit."})]}):null]})}),(0,t.jsx)("td",{className:"px-3 py-2",children:e.model?(0,t.jsx)(c.Badge,{variant:(0,f.modelBadgeVariant)(e.model),children:(0,f.formatShortModelName)(e.model)}):(0,t.jsx)(c.Badge,{variant:"gray",children:"default"})}),(0,t.jsx)("td",{className:"px-3 py-2 text-xs",children:e.nextRunAt?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{children:(0,p.formatAbsoluteTime)(e.nextRunAt)}),(0,t.jsx)("div",{className:"text-muted-foreground",children:(0,p.formatRelativeTime)(e.nextRunAt)})]}):(0,t.jsx)("span",{className:"text-muted-foreground",children:"—"})}),(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsx)(u.Button,{size:"sm",variant:e.enabled?"default":"outline",onClick:()=>N(e),disabled:x.isPending,children:e.enabled?"On":"Off"})}),(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsxs)("div",{className:"flex gap-1",children:[(0,t.jsx)(u.Button,{size:"sm",variant:"outline",onClick:()=>y(e),"aria-label":"Edit recurring schedule",children:(0,t.jsx)(K.Edit2,{className:"h-3.5 w-3.5"})}),(0,t.jsx)(u.Button,{size:"sm",variant:"outline",onClick:()=>w(e),disabled:g.isPending,"aria-label":"Delete recurring schedule",children:(0,t.jsx)(z.Trash2,{className:"h-3.5 w-3.5"})})]})})]},e.id))})]})})}),(0,t.jsx)(H,{dto:j,open:null!==j,onOpenChange:e=>{e||y(null)}})]})}let J={pending:"blue",running:"amber",completed:"green",skipped:"gray",failed:"red"},Y={wake:"blue",dm:"blue",morning_routine:"green",evening_review:"green",custom:"purple"},G=["all","pending","running","completed","skipped","failed"],X=["all","wake","dm","morning_routine","evening_review","custom"];e.s(["default",0,function(){var e;let[y,N]=(0,s.useState)("upcoming"),[k,w]=(0,s.useState)("all"),[S,T]=(0,s.useState)("all"),[C,O]=(0,s.useState)(null),{data:M}=(0,a.useScheduleNext)(),{data:D,fetchNextPage:q,hasNextPage:_,isFetchingNextPage:B,isLoading:A,isError:$,error:E,refetch:R}=(e={status:"all"===k?void 0:k,type:"all"===S?void 0:S},(0,r.useInfiniteQuery)({queryKey:["schedule-list",e],queryFn:({pageParam:t=1})=>n.api.get("/schedule/list",{page:t,limit:20,status:e?.status,type:e?.type}),getNextPageParam:e=>e.pagination.page<e.pagination.totalPages?e.pagination.page+1:void 0,initialPageParam:1})),P=D?.pages.flatMap(e=>e.schedules)??[],[Q,W]=(0,s.useState)("");(0,s.useEffect)(()=>{if(!M?.next)return;let e=()=>{let e=(0,p.parseUtcDate)(M.next.scheduled_for).getTime()-Date.now();if(e<=0)return void W("Now");let t=Math.floor(e/36e5),s=Math.floor(e%36e5/6e4),r=Math.floor(e%6e4/1e3);W(t>0?`${t}h ${s}m ${r}s`:`${s}m ${r}s`)};e();let t=setInterval(e,1e3);return()=>clearInterval(t)},[M?.next]);let{regenerate:U,target:K,status:z,error:H,dismiss:L}=(0,l.useRegenerate)();return(0,t.jsxs)("div",{className:"space-y-6 p-6",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-2xl font-semibold text-foreground",children:"Schedule"}),(0,t.jsxs)("p",{className:"mt-1 max-w-3xl text-sm text-muted-foreground",children:["Upcoming and past agent wake-ups, plus recurring schedules. Each",(0,t.jsx)("em",{children:" upcoming "})," row is one materialized invocation — built-in routines (",(0,t.jsx)("code",{children:"morning_routine"}),", ",(0,t.jsx)("code",{children:"evening_review"}),"), self-registered wake-ups (",(0,t.jsx)("code",{children:"wake"}),"), scheduled DMs (",(0,t.jsx)("code",{children:"dm"}),"), or one-off ",(0,t.jsx)("code",{children:"custom"})," tasks. Status transitions ",(0,t.jsx)("code",{children:"pending → running → completed / skipped / failed"}),";",(0,t.jsx)("em",{children:"skipped"})," means the scheduler aborted before launching. Click a row to inspect or edit."]})]}),(0,t.jsxs)("div",{className:"flex shrink-0 gap-2",children:[(0,t.jsx)(F,{trigger:(0,t.jsxs)(u.Button,{children:[(0,t.jsx)(v.Plus,{className:"mr-1 h-4 w-4"}),"Schedule"]})}),(0,t.jsx)(i.RegenerateButton,{target:"today",label:"Refresh Today",currentTarget:K,status:z,error:H,onRegenerate:U,onDismiss:L})]})]}),M?.next&&(0,t.jsxs)(m.Card,{className:"border-primary/30 bg-primary/10 dark:bg-primary/15",children:[(0,t.jsxs)(m.CardHeader,{children:[(0,t.jsx)(m.CardTitle,{children:"Next Up"}),(0,t.jsx)(b,{className:"h-4 w-4 text-primary"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsx)("span",{className:"font-mono text-2xl font-bold text-foreground",children:Q}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-sm text-foreground",children:M.next.task_description}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:(0,p.formatAbsoluteTime)(M.next.scheduled_for)})]})]})]}),(0,t.jsxs)(x.Tabs,{value:y,onValueChange:e=>N(e),children:[(0,t.jsxs)(x.TabsList,{children:[(0,t.jsx)(x.TabsTrigger,{value:"upcoming",children:"Upcoming"}),(0,t.jsx)(x.TabsTrigger,{value:"recurring",children:"Recurring"})]}),(0,t.jsxs)(x.TabsContent,{value:"upcoming",className:"mt-4 space-y-4",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-3",role:"toolbar","aria-label":"Schedule filters",children:[(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:G.map(e=>(0,t.jsx)(u.Button,{variant:k===e?"default":"outline",size:"sm",onClick:()=>w(e),"aria-pressed":k===e,children:"all"===e?"All":e},e))}),(0,t.jsx)(g.Separator,{orientation:"vertical",className:"h-6"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:X.map(e=>(0,t.jsx)(u.Button,{variant:S===e?"default":"outline",size:"sm",onClick:()=>T(e),"aria-pressed":S===e,children:"all"===e?"All types":e},e))})]}),(0,t.jsxs)(o.QueryResult,{isLoading:A,isError:$,error:E,onRetry:()=>R(),skeleton:(0,t.jsx)(o.TableSkeleton,{rows:5}),children:[(0,t.jsx)("div",{className:"overflow-x-auto rounded-xl border border-border",children:(0,t.jsxs)("table",{className:"w-full text-left","aria-label":"Scheduled tasks",children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{className:"border-b border-border bg-muted/50",children:[(0,t.jsx)("th",{className:"px-3 py-2 text-xs font-medium text-muted-foreground",children:"Scheduled For"}),(0,t.jsx)("th",{className:"px-3 py-2 text-xs font-medium text-muted-foreground",children:"Type"}),(0,t.jsx)("th",{className:"px-3 py-2 text-xs font-medium text-muted-foreground",children:"Description"}),(0,t.jsx)("th",{className:"px-3 py-2 text-xs font-medium text-muted-foreground",children:"Model"}),(0,t.jsx)("th",{className:"px-3 py-2 text-xs font-medium text-muted-foreground",children:"Status"}),(0,t.jsx)("th",{className:"hidden px-3 py-2 text-xs font-medium text-muted-foreground lg:table-cell",children:"Created"})]})}),(0,t.jsx)("tbody",{children:P.map(e=>(0,t.jsxs)("tr",{className:"cursor-pointer border-b border-border hover:bg-muted/30",onClick:()=>O(e),children:[(0,t.jsx)("td",{className:"px-3 py-2 text-sm",children:(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{children:(0,p.formatAbsoluteTime)(e.scheduled_for)}),(0,t.jsx)(h.TooltipContent,{children:(0,p.formatRelativeTime)(e.scheduled_for)})]})}),(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsx)(c.Badge,{variant:Y[e.task_type]??"gray",children:e.task_type})}),(0,t.jsx)("td",{className:"max-w-md px-3 py-2 text-sm text-foreground",children:(0,t.jsxs)("div",{className:"flex items-start gap-2",children:[(0,t.jsx)("span",{className:"line-clamp-2 flex-1",children:e.task_description}),e.task_prompt?(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{children:(0,t.jsx)(c.Badge,{variant:"purple",className:"shrink-0",children:"prompt"})}),(0,t.jsx)(h.TooltipContent,{children:"Description above is the list label; a separate prompt is what the agent receives. Open the row to view or edit."})]}):null]})}),(0,t.jsx)("td",{className:"px-3 py-2",children:e.model&&(0,t.jsx)(c.Badge,{variant:(0,f.modelBadgeVariant)(e.model),children:(0,f.formatShortModelName)(e.model)})}),(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsx)(c.Badge,{variant:J[e.status]??"gray",children:"running"===e.status?(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{className:"h-1.5 w-1.5 animate-pulse rounded-full bg-amber-500"}),e.status]}):e.status})}),(0,t.jsx)("td",{className:"hidden whitespace-nowrap px-3 py-2 font-mono text-xs tabular-nums text-muted-foreground lg:table-cell",children:(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{children:(0,p.formatAbsoluteTime)(e.created_at)}),(0,t.jsx)(h.TooltipContent,{children:(0,p.formatRelativeTime)(e.created_at)})]})})]},e.id))})]})}),0===P.length?(0,t.jsx)(d.EmptyState,{icon:j.Clock,title:"No scheduled tasks",description:"Tasks will appear here when the agent schedules wake-ups or routines"}):null,_&&(0,t.jsx)("div",{className:"flex justify-center",children:(0,t.jsx)(u.Button,{variant:"outline",onClick:()=>q(),disabled:B,children:B?"Loading...":"Load More"})})]})]}),(0,t.jsx)(x.TabsContent,{value:"recurring",className:"mt-4 space-y-4",children:(0,t.jsx)(V,{})})]}),(0,t.jsx)(I,{row:C,open:null!==C,onOpenChange:e=>{e||O(null)}})]})}],28919)}]);
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,28919,e=>{"use strict";var t=e.i(54710),s=e.i(34416),r=e.i(75540),n=e.i(65268),a=e.i(42455),l=e.i(71816),i=e.i(49214),d=e.i(50862),o=e.i(49785),c=e.i(48467),u=e.i(20014),m=e.i(74490),x=e.i(26406),h=e.i(10628),p=e.i(81471),g=e.i(57628),f=e.i(76176),j=e.i(31501),y=e.i(77379);let b=(0,y.default)("AlarmClock",[["circle",{cx:"12",cy:"13",r:"8",key:"3y4lt7"}],["path",{d:"M12 9v4l2 2",key:"1c63tq"}],["path",{d:"M5 3 2 6",key:"18tl5t"}],["path",{d:"m22 6-3-3",key:"1opdir"}],["path",{d:"M6.38 18.7 4 21",key:"17xu3x"}],["path",{d:"M17.64 18.67 20 21",key:"kv2oe2"}]]);var v=e.i(60168),N=e.i(43477),k=e.i(79634),w=e.i(8652),S=e.i(10427);let T=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],C=Array.from({length:31},(e,t)=>t+1),O={frequency:"once",oneOffDateTime:"",recurringTime:"09:00",daysOfWeek:[],daysOfMonth:[],model:"",description:"",prompt:""};function M(e){let t={};if(e.description.trim().length<20&&(t.description="Description must be at least 20 characters — when no prompt override is set, this text is the agent's only context."),e.prompt.trim().length>0&&e.prompt.trim().length<20&&(t.prompt="Prompt override must be at least 20 characters, or leave empty to use the description as the agent body."),"once"===e.frequency)if(e.oneOffDateTime){let s=new Date(e.oneOffDateTime).getTime();Number.isNaN(s)?t.oneOffDateTime="Invalid date/time.":s<Date.now()-6e4&&(t.oneOffDateTime="Must be at least a minute in the future.")}else t.oneOffDateTime="Required.";else/^\d{2}:\d{2}$/.test(e.recurringTime)||(t.recurringTime="Time must be HH:MM."),"weekly"===e.frequency&&0===e.daysOfWeek.length&&(t.daysOfWeek="Select at least one weekday."),"monthly"===e.frequency&&0===e.daysOfMonth.length&&(t.daysOfMonth="Select at least one day of the month.");return 0===Object.keys(t).length?null:t}function D(e){let t=e.description.trim(),s=e.prompt.trim(),r=s.length>0?s:void 0,n="custom",a=""===e.model?void 0:e.model;if("once"===e.frequency)return{kind:"once",body:{time:new Date(e.oneOffDateTime).toISOString(),taskType:n,description:t,...r?{prompt:r}:{},...a?{model:a}:{},taskContext:{source:"dashboard_manual"}}};let l={frequency:e.frequency,time:e.recurringTime,..."weekly"===e.frequency?{daysOfWeek:[...e.daysOfWeek].sort((e,t)=>e-t)}:{},..."monthly"===e.frequency?{daysOfMonth:[...e.daysOfMonth].sort((e,t)=>e-t)}:{}};return{kind:"recurring",body:{taskType:n,description:t,...r?{prompt:r}:{},recurrenceRule:l,...a?{model:a}:{},taskContext:{source:"dashboard_manual"}}}}function q({state:e,onChange:r,lockFrequency:n,hideFrequency:a,errors:l,onEdit:i}){let d=(t,s)=>{r({...e,[t]:s}),i?.()},[o]=(0,s.useState)(()=>{let e=new Date(Date.now()+6e4),t=e=>String(e).padStart(2,"0");return`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())}T${t(e.getHours())}:${t(e.getMinutes())}`});return(0,t.jsxs)("div",{className:"space-y-4",children:[a?null:(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"mb-1 block text-xs font-medium text-muted-foreground",children:"Frequency"}),(0,t.jsx)("div",{className:"flex gap-1",role:"radiogroup","aria-label":"Frequency",children:["once","daily","weekly","monthly"].map(s=>(0,t.jsx)(u.Button,{type:"button",size:"sm",variant:e.frequency===s?"default":"outline",disabled:n,onClick:()=>d("frequency",s),"aria-pressed":e.frequency===s,children:"once"===s?"One-off":s.charAt(0).toUpperCase()+s.slice(1)},s))})]}),"once"===e.frequency?(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"mb-1 block text-xs font-medium text-muted-foreground",htmlFor:"schedule-one-off-time",children:"When"}),(0,t.jsx)(w.Input,{id:"schedule-one-off-time",type:"datetime-local",value:e.oneOffDateTime,min:o,onChange:e=>d("oneOffDateTime",e.target.value),className:"h-9"}),l?.oneOffDateTime?(0,t.jsx)("p",{className:"mt-1 text-xs text-red-600",children:l.oneOffDateTime}):(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:"Local time. The daemon stores it as UTC."})]}):(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"mb-1 block text-xs font-medium text-muted-foreground",htmlFor:"schedule-recurring-time",children:"Time of day"}),(0,t.jsx)(w.Input,{id:"schedule-recurring-time",type:"time",value:e.recurringTime,onChange:e=>d("recurringTime",e.target.value),className:"h-9 w-32"}),l?.recurringTime?(0,t.jsx)("p",{className:"mt-1 text-xs text-red-600",children:l.recurringTime}):(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:"Interpreted in the daemon’s configured timezone."})]}),"weekly"===e.frequency?(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"mb-1 block text-xs font-medium text-muted-foreground",children:"Days of week"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:T.map((s,r)=>{let n=e.daysOfWeek.includes(r);return(0,t.jsx)(u.Button,{type:"button",size:"sm",variant:n?"default":"outline",onClick:()=>d("daysOfWeek",n?e.daysOfWeek.filter(e=>e!==r):[...e.daysOfWeek,r]),"aria-pressed":n,children:s},s)})}),l?.daysOfWeek?(0,t.jsx)("p",{className:"mt-1 text-xs text-red-600",children:l.daysOfWeek}):null]}):null,"monthly"===e.frequency?(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"mb-1 block text-xs font-medium text-muted-foreground",children:"Days of month"}),(0,t.jsx)("div",{className:"grid grid-cols-7 gap-1 sm:grid-cols-10",children:C.map(s=>{let r=e.daysOfMonth.includes(s);return(0,t.jsx)("button",{type:"button",onClick:()=>d("daysOfMonth",r?e.daysOfMonth.filter(e=>e!==s):[...e.daysOfMonth,s]),"aria-pressed":r,className:(0,p.cn)("h-7 rounded-md border text-xs tabular-nums transition-colors",r?"border-primary bg-primary text-primary-foreground":"border-input bg-background hover:bg-muted"),children:s},s)})}),(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:"29-31 clamp to the last day on shorter months."}),l?.daysOfMonth?(0,t.jsx)("p",{className:"mt-1 text-xs text-red-600",children:l.daysOfMonth}):null]}):null,(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"mb-1 block text-xs font-medium text-muted-foreground",children:"Model"}),(0,t.jsxs)(S.Select,{value:e.model||"default",onValueChange:e=>d("model","default"===e?"":e),children:[(0,t.jsx)(S.SelectTrigger,{className:"h-9 w-48",children:(0,t.jsx)(S.SelectValue,{placeholder:"Default"})}),(0,t.jsxs)(S.SelectContent,{children:[(0,t.jsx)(S.SelectItem,{value:"default",children:"Default (process config)"}),(0,t.jsx)(S.SelectItem,{value:"sonnet",children:"Sonnet (light tier)"}),(0,t.jsx)(S.SelectItem,{value:"opus",children:"Opus (heavy tier)"})]})]}),(0,t.jsxs)("p",{className:"mt-1 text-xs text-muted-foreground",children:["“Default” lets the dispatcher pick using the",(0,t.jsx)("code",{className:"mx-1",children:"scheduled.task"}),"process binding."]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"mb-1 block text-xs font-medium text-muted-foreground",htmlFor:"schedule-description",children:"Description"}),(0,t.jsx)("textarea",{id:"schedule-description",value:e.description,onChange:e=>d("description",e.target.value),rows:4,className:"w-full rounded-md border border-input bg-background p-2 text-sm focus:outline-none focus:ring-2 focus:ring-ring",placeholder:"Short summary shown in the schedule list. When no prompt override is set, this is also what the agent reads."}),l?.description?(0,t.jsx)("p",{className:"mt-1 text-xs text-red-600",children:l.description}):(0,t.jsxs)("p",{className:"mt-1 text-xs text-muted-foreground",children:[e.description.trim().length," / 20 characters minimum."]})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("label",{className:"mb-1 block text-xs font-medium text-muted-foreground",htmlFor:"schedule-prompt",children:["Prompt ",(0,t.jsx)("span",{className:"text-muted-foreground/70",children:"(optional override)"})]}),(0,t.jsx)("textarea",{id:"schedule-prompt",value:e.prompt,onChange:e=>d("prompt",e.target.value),rows:6,className:"w-full rounded-md border border-input bg-background p-2 text-sm focus:outline-none focus:ring-2 focus:ring-ring",placeholder:"Leave empty to use the description above as the agent body. Fill in to give the agent a fuller, separate instruction."}),l?.prompt?(0,t.jsx)("p",{className:"mt-1 text-xs text-red-600",children:l.prompt}):(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:0===e.prompt.trim().length?"Empty — description will be used as the agent body.":`${e.prompt.trim().length} / 20 characters minimum (when set).`})]})]})}var _=e.i(57415),B=e.i(95486);let A=["schedule-list","schedule-next"];function $(e){for(let t of A)e.invalidateQueries({queryKey:[t]})}var E=e.i(14260);let R=["recurring-schedules"];function P(){let e=(0,B.useQueryClient)();return(0,_.useMutation)({mutationFn:({id:e,...t})=>n.api.patch(`/recurring-schedules/${e}`,t),onSuccess:()=>{e.invalidateQueries({queryKey:R}),e.invalidateQueries({queryKey:["schedule-list"]}),e.invalidateQueries({queryKey:["schedule-next"]})}})}function F({trigger:e}){let r,a,[l,i]=(0,s.useState)(!1),[d,o]=(0,s.useState)(O),[c,m]=(0,s.useState)(null),[x,h]=(0,s.useState)(null),p=(r=(0,B.useQueryClient)(),(0,_.useMutation)({mutationFn:e=>n.api.post("/schedule",e),onSuccess:()=>$(r)})),g=(a=(0,B.useQueryClient)(),(0,_.useMutation)({mutationFn:e=>n.api.post("/recurring-schedules",e),onSuccess:()=>{a.invalidateQueries({queryKey:R}),a.invalidateQueries({queryKey:["schedule-list"]}),a.invalidateQueries({queryKey:["schedule-next"]})}})),f=p.isPending||g.isPending,j=()=>{o(O),m(null),h(null)},y=async()=>{let e=M(d);if(m(e),e)return;h(null);let t=D(d);try{"once"===t.kind?await p.mutateAsync(t.body):await g.mutateAsync(t.body),i(!1),j()}catch(e){h(e instanceof n.ApiError?`${e.message} (${e.status})`:e instanceof Error?e.message:"Unknown error")}};return(0,t.jsxs)(N.Sheet,{open:l,onOpenChange:e=>{i(e),e||j()},children:[(0,t.jsx)(N.SheetTrigger,{asChild:!0,children:e}),(0,t.jsxs)(N.SheetContent,{className:"flex flex-col gap-4 overflow-y-auto",children:[(0,t.jsxs)(N.SheetHeader,{className:"pr-8",children:[(0,t.jsx)(N.SheetTitle,{children:"New scheduled task"}),(0,t.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Runs in a fresh per-session workdir. The",(0,t.jsx)("code",{className:"mx-1",children:"notify"}),"and",(0,t.jsx)("code",{className:"mx-1",children:"schedule"}),"skills are provisioned, so the agent can DM you and reschedule itself."]})]}),(0,t.jsx)(q,{state:d,onChange:o,errors:c,onEdit:()=>{c&&m(null),x&&h(null)}}),x?(0,t.jsx)(k.Alert,{variant:"error",children:x}):null,(0,t.jsxs)("div",{className:"mt-2 flex justify-end gap-2",children:[(0,t.jsx)(u.Button,{variant:"outline",onClick:()=>{i(!1),j()},disabled:f,children:"Cancel"}),(0,t.jsx)(u.Button,{onClick:y,disabled:f,children:f?"Saving...":"Create"})]})]})]})}function Q(e){let t=(0,p.parseUtcDate)(e),s=e=>String(e).padStart(2,"0");return`${t.getFullYear()}-${s(t.getMonth()+1)}-${s(t.getDate())}T${s(t.getHours())}:${s(t.getMinutes())}`}function I({row:e,open:s,onOpenChange:r}){return(0,t.jsx)(N.Sheet,{open:s,onOpenChange:r,children:e?(0,t.jsx)(W,{row:e,onClose:()=>r(!1)},e.id):null})}function W({row:e,onClose:r}){let a,l,[i,d]=(0,s.useState)(!1),o="sonnet"===e.model||"opus"===e.model?e.model:"",[m,x]=(0,s.useState)(e.task_description??""),[h,g]=(0,s.useState)(e.task_prompt??""),[j,y]=(0,s.useState)(o),[b,v]=(0,s.useState)(()=>Q(e.scheduled_for)),[S,T]=(0,s.useState)(null),C=(a=(0,B.useQueryClient)(),(0,_.useMutation)({mutationFn:({id:e,...t})=>n.api.patch(`/schedule/${e}`,t),onSuccess:()=>$(a)})),O=(l=(0,B.useQueryClient)(),(0,_.useMutation)({mutationFn:e=>n.api.delete(`/schedule/${e}`),onSuccess:()=>$(l)})),M=function(e){if(!e)return{};try{let t=JSON.parse(e);return t&&"object"==typeof t?t:{}}catch{return{}}}(e.task_context),D="pending"===e.status,q="dm"===e.task_type,A=async()=>{if(T(null),q){if(m.trim().length<1)return void T("Message cannot be empty.")}else{if(m.trim().length<20)return void T("Description must be at least 20 characters.");let e=h.trim();if(e.length>0&&e.length<20)return void T("Prompt override must be at least 20 characters, or leave empty to use the description.")}let t=new Date(b).getTime();if(Number.isNaN(t))return void T("Invalid date/time.");if(t<Date.now()-6e4)return void T("Scheduled time must be at least a minute in the future.");let s={id:e.id};if(b!==Q(e.scheduled_for)&&(s.time=new Date(b).toISOString()),m!==(e.task_description??"")&&(q?s.message=m:s.description=m),!q){let t=h.trim();t!==(e.task_prompt??"").trim()&&(s.prompt=0===t.length?null:t)}if(j&&j!==o&&(s.model=j),1===Object.keys(s).length)return void d(!1);try{await C.mutateAsync(s),d(!1)}catch(e){T(e instanceof n.ApiError?`${e.message} (${e.status})`:e instanceof Error?e.message:"Unknown error")}},E=async()=>{if(T(null),confirm("Cancel this scheduled task?"))try{await O.mutateAsync(e.id),r()}catch(e){T(e instanceof n.ApiError?`${e.message} (${e.status})`:e instanceof Error?e.message:"Unknown error")}};return(0,t.jsxs)(N.SheetContent,{className:"flex flex-col gap-4 overflow-y-auto",children:[(0,t.jsxs)(N.SheetHeader,{className:"pr-8",children:[(0,t.jsxs)(N.SheetTitle,{children:["Scheduled task #",e.id]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-xs",children:[(0,t.jsx)(c.Badge,{children:e.task_type}),(0,t.jsx)(c.Badge,{children:e.status}),e.model?(0,t.jsx)(c.Badge,{variant:(0,f.modelBadgeVariant)(e.model),children:(0,f.formatShortModelName)(e.model)}):(0,t.jsx)(c.Badge,{variant:"gray",children:"default model"}),void 0!==M.recurringScheduleId?(0,t.jsxs)(c.Badge,{variant:"purple",children:["from recurring #",String(M.recurringScheduleId)]}):null]})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h3",{className:"mb-1 text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Scheduled for"}),i?(0,t.jsx)(w.Input,{type:"datetime-local",value:b,onChange:e=>v(e.target.value),className:"h-9"}):(0,t.jsxs)("p",{className:"text-sm text-foreground",children:[(0,p.formatAbsoluteTime)(e.scheduled_for)," ",(0,t.jsxs)("span",{className:"text-muted-foreground",children:["(",(0,p.formatRelativeTime)(e.scheduled_for),")"]})]})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h3",{className:"mb-1 text-xs font-medium uppercase tracking-wide text-muted-foreground",children:q?"Message":"Description"}),i?(0,t.jsx)("textarea",{value:m,onChange:e=>x(e.target.value),rows:q?8:4,className:"w-full rounded-md border border-input bg-background p-2 text-sm focus:outline-none focus:ring-2 focus:ring-ring"}):(0,t.jsx)("pre",{className:"whitespace-pre-wrap break-words rounded-md bg-muted p-2 text-xs text-foreground",children:e.task_description})]}),q?null:(0,t.jsxs)("section",{children:[(0,t.jsxs)("h3",{className:"mb-1 text-xs font-medium uppercase tracking-wide text-muted-foreground",children:["Prompt ",(0,t.jsx)("span",{className:"normal-case tracking-normal text-muted-foreground/70",children:"(optional override)"})]}),i?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("textarea",{value:h,onChange:e=>g(e.target.value),rows:8,className:"w-full rounded-md border border-input bg-background p-2 text-sm focus:outline-none focus:ring-2 focus:ring-ring",placeholder:"Leave empty to use the description above as the agent body."}),(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:0===h.trim().length?"Empty — description will be used as the agent body.":`${h.trim().length} / 20 characters minimum (when set).`})]}):e.task_prompt?(0,t.jsx)("pre",{className:"whitespace-pre-wrap break-words rounded-md bg-muted p-2 text-xs text-foreground",children:e.task_prompt}):(0,t.jsx)("p",{className:"rounded-md bg-muted p-2 text-xs italic text-muted-foreground",children:"No override — description above is used as the agent body."})]}),!q&&i?(0,t.jsxs)("section",{children:[(0,t.jsx)("h3",{className:"mb-1 text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Model"}),(0,t.jsx)("div",{className:"flex gap-1",children:["","sonnet","opus"].map(e=>(0,t.jsx)(u.Button,{type:"button",size:"sm",variant:j===e?"default":"outline",onClick:()=>y(e),children:""===e?"Default":e},e||"default"))}),""!==o?(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:"The daemon’s schedule PATCH cannot un-pin a model. To return to default, cancel this task and recreate it."}):null]}):null,Object.keys(M).length>0?(0,t.jsxs)("section",{children:[(0,t.jsx)("h3",{className:"mb-1 text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Task context"}),(0,t.jsx)("pre",{className:"overflow-x-auto rounded-md bg-muted p-2 font-mono text-[11px] text-muted-foreground",children:JSON.stringify(M,null,2)})]}):null,(0,t.jsxs)("section",{className:"text-xs text-muted-foreground",children:["Created ",(0,p.formatAbsoluteTime)(e.created_at)]}),S?(0,t.jsx)(k.Alert,{variant:"error",children:S}):null,(0,t.jsxs)("div",{className:"mt-auto flex justify-between gap-2 pt-4",children:[D&&!i?(0,t.jsx)(u.Button,{variant:"outline",onClick:E,disabled:O.isPending,children:O.isPending?"Cancelling...":"Cancel task"}):(0,t.jsx)("span",{}),(0,t.jsxs)("div",{className:"flex gap-2",children:[D&&!i?(0,t.jsx)(u.Button,{onClick:()=>{x(e.task_description??""),g(e.task_prompt??""),y(o),v(Q(e.scheduled_for)),T(null),d(!0)},children:"Edit"}):null,i?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(u.Button,{variant:"outline",onClick:()=>d(!1),disabled:C.isPending,children:"Discard"}),(0,t.jsx)(u.Button,{onClick:A,disabled:C.isPending,children:C.isPending?"Saving...":"Save"})]}):null]})]})]})}let U=(0,y.default)("CalendarRange",[["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M17 14h-6",key:"bkmgh3"}],["path",{d:"M13 18H7",key:"bb0bb7"}],["path",{d:"M7 14h.01",key:"1qa3f1"}],["path",{d:"M17 18h.01",key:"1bdyru"}]]);var K=e.i(90780),z=e.i(90925);function H({dto:e,open:s,onOpenChange:r}){return(0,t.jsx)(N.Sheet,{open:s,onOpenChange:r,children:e&&(0,t.jsx)(L,{dto:e,onClose:()=>r(!1)},e.id)})}function L({dto:e,onClose:r}){let[a,l]=(0,s.useState)(()=>{let t;return{frequency:(t=e.recurrenceRule).frequency,oneOffDateTime:"",recurringTime:t.time,daysOfWeek:t.daysOfWeek??[],daysOfMonth:t.daysOfMonth??[],model:"sonnet"===e.model||"opus"===e.model?e.model:"",description:e.description,prompt:e.prompt??""}}),[i,d]=(0,s.useState)(null),[o,c]=(0,s.useState)(null),m=P(),x=async()=>{let t=M(a);if(d(t),t)return;let s=D(a);if("recurring"!==s.kind)return void c("Cannot convert a recurring schedule to a one-off — delete and recreate.");try{await m.mutateAsync({id:e.id,description:s.body.description,prompt:s.body.prompt??null,recurrenceRule:s.body.recurrenceRule,...s.body.model?{model:s.body.model}:{}}),r()}catch(e){c(e instanceof n.ApiError?`${e.message} (${e.status})`:e instanceof Error?e.message:"Unknown error")}};return(0,t.jsxs)(N.SheetContent,{className:"flex flex-col gap-4 overflow-y-auto",children:[(0,t.jsx)(N.SheetHeader,{className:"pr-8",children:(0,t.jsxs)(N.SheetTitle,{children:["Edit recurring schedule #",e.id]})}),(0,t.jsx)(q,{state:a,onChange:l,errors:i,lockFrequency:!0,onEdit:()=>{i&&d(null),o&&c(null)}}),o?(0,t.jsx)(k.Alert,{variant:"error",children:o}):null,(0,t.jsxs)("div",{className:"mt-2 flex justify-end gap-2",children:[(0,t.jsx)(u.Button,{variant:"outline",onClick:r,disabled:m.isPending,children:"Cancel"}),(0,t.jsx)(u.Button,{onClick:x,disabled:m.isPending,children:m.isPending?"Saving...":"Save"})]})]})}function V(){let e,{data:r,isLoading:a,isError:l,error:i,refetch:m}=(0,E.useQuery)({queryKey:R,queryFn:()=>n.api.get("/recurring-schedules"),staleTime:3e4}),x=P(),g=(e=(0,B.useQueryClient)(),(0,_.useMutation)({mutationFn:e=>n.api.delete(`/recurring-schedules/${e}`),onSuccess:()=>{e.invalidateQueries({queryKey:R}),e.invalidateQueries({queryKey:["schedule-list"]}),e.invalidateQueries({queryKey:["schedule-next"]})}})),[j,y]=(0,s.useState)(null),[b,v]=(0,s.useState)(null),N=async e=>{v(null);try{await x.mutateAsync({id:e.id,enabled:!e.enabled})}catch(e){v(e instanceof n.ApiError?`${e.message} (${e.status})`:e instanceof Error?e.message:"Unknown error")}},w=async e=>{if(v(null),confirm(`Delete recurring schedule "${e.description.slice(0,40)}..."?`))try{await g.mutateAsync(e.id)}catch(e){v(e instanceof n.ApiError?`${e.message} (${e.status})`:e instanceof Error?e.message:"Unknown error")}},S=r?.items??[];return(0,t.jsxs)(t.Fragment,{children:[b?(0,t.jsx)(k.Alert,{variant:"error",children:b}):null,(0,t.jsx)(o.QueryResult,{isLoading:a,isError:l,error:i,onRetry:()=>m(),skeleton:(0,t.jsx)(o.TableSkeleton,{rows:3}),children:0===S.length?(0,t.jsx)(d.EmptyState,{icon:U,title:"No recurring schedules",description:"Create one with the Schedule button — pick daily, weekly (with weekdays), or monthly cadence."}):(0,t.jsx)("div",{className:"overflow-x-auto rounded-xl border border-border",children:(0,t.jsxs)("table",{className:"w-full text-left","aria-label":"Recurring schedules",children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{className:"border-b border-border bg-muted/50",children:[(0,t.jsx)("th",{className:"px-3 py-2 text-xs font-medium text-muted-foreground",children:"Cadence"}),(0,t.jsx)("th",{className:"px-3 py-2 text-xs font-medium text-muted-foreground",children:"Description"}),(0,t.jsx)("th",{className:"px-3 py-2 text-xs font-medium text-muted-foreground",children:"Model"}),(0,t.jsx)("th",{className:"px-3 py-2 text-xs font-medium text-muted-foreground",children:"Next run"}),(0,t.jsx)("th",{className:"px-3 py-2 text-xs font-medium text-muted-foreground",children:"Enabled"}),(0,t.jsx)("th",{className:"px-3 py-2 text-xs font-medium text-muted-foreground",children:"Actions"})]})}),(0,t.jsx)("tbody",{children:S.map(e=>(0,t.jsxs)("tr",{className:"border-b border-border",children:[(0,t.jsx)("td",{className:"px-3 py-2 text-sm",children:e.recurrenceLabel}),(0,t.jsx)("td",{className:"max-w-md px-3 py-2 text-sm",children:(0,t.jsxs)("div",{className:"flex items-start gap-2",children:[(0,t.jsx)("span",{className:"line-clamp-2 flex-1",children:e.description}),e.prompt?(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{children:(0,t.jsx)(c.Badge,{variant:"purple",className:"shrink-0",children:"prompt"})}),(0,t.jsx)(h.TooltipContent,{children:"Description above is the list label; a separate prompt is what the agent receives. Open the row to view or edit."})]}):null]})}),(0,t.jsx)("td",{className:"px-3 py-2",children:e.model?(0,t.jsx)(c.Badge,{variant:(0,f.modelBadgeVariant)(e.model),children:(0,f.formatShortModelName)(e.model)}):(0,t.jsx)(c.Badge,{variant:"gray",children:"default"})}),(0,t.jsx)("td",{className:"px-3 py-2 text-xs",children:e.nextRunAt?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{children:(0,p.formatAbsoluteTime)(e.nextRunAt)}),(0,t.jsx)("div",{className:"text-muted-foreground",children:(0,p.formatRelativeTime)(e.nextRunAt)})]}):(0,t.jsx)("span",{className:"text-muted-foreground",children:"—"})}),(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsx)(u.Button,{size:"sm",variant:e.enabled?"default":"outline",onClick:()=>N(e),disabled:x.isPending,children:e.enabled?"On":"Off"})}),(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsxs)("div",{className:"flex gap-1",children:[(0,t.jsx)(u.Button,{size:"sm",variant:"outline",onClick:()=>y(e),"aria-label":"Edit recurring schedule",children:(0,t.jsx)(K.Edit2,{className:"h-3.5 w-3.5"})}),(0,t.jsx)(u.Button,{size:"sm",variant:"outline",onClick:()=>w(e),disabled:g.isPending,"aria-label":"Delete recurring schedule",children:(0,t.jsx)(z.Trash2,{className:"h-3.5 w-3.5"})})]})})]},e.id))})]})})}),(0,t.jsx)(H,{dto:j,open:null!==j,onOpenChange:e=>{e||y(null)}})]})}let J={pending:"blue",running:"amber",completed:"green",skipped:"gray",failed:"red"},Y={wake:"blue",dm:"blue",morning_routine:"green",evening_review:"green",custom:"purple"},G=["all","pending","running","completed","skipped","failed"],X=["all","wake","dm","morning_routine","evening_review","custom"];e.s(["default",0,function(){var e;let[y,N]=(0,s.useState)("upcoming"),[k,w]=(0,s.useState)("all"),[S,T]=(0,s.useState)("all"),[C,O]=(0,s.useState)(null),{data:M}=(0,a.useScheduleNext)(),{data:D,fetchNextPage:q,hasNextPage:_,isFetchingNextPage:B,isLoading:A,isError:$,error:E,refetch:R}=(e={status:"all"===k?void 0:k,type:"all"===S?void 0:S},(0,r.useInfiniteQuery)({queryKey:["schedule-list",e],queryFn:({pageParam:t=1})=>n.api.get("/schedule/list",{page:t,limit:20,status:e?.status,type:e?.type}),getNextPageParam:e=>e.pagination.page<e.pagination.totalPages?e.pagination.page+1:void 0,initialPageParam:1})),P=D?.pages.flatMap(e=>e.schedules)??[],[Q,W]=(0,s.useState)("");(0,s.useEffect)(()=>{if(!M?.next)return;let e=()=>{let e=(0,p.parseUtcDate)(M.next.scheduled_for).getTime()-Date.now();if(e<=0)return void W("Now");let t=Math.floor(e/36e5),s=Math.floor(e%36e5/6e4),r=Math.floor(e%6e4/1e3);W(t>0?`${t}h ${s}m ${r}s`:`${s}m ${r}s`)};e();let t=setInterval(e,1e3);return()=>clearInterval(t)},[M?.next]);let{regenerate:U,target:K,status:z,error:H,dismiss:L}=(0,l.useRegenerate)();return(0,t.jsxs)("div",{className:"space-y-6 p-6",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-2xl font-semibold text-foreground",children:"Schedule"}),(0,t.jsxs)("p",{className:"mt-1 max-w-3xl text-sm text-muted-foreground",children:["Upcoming and past agent wake-ups, plus recurring schedules. Each",(0,t.jsx)("em",{children:" upcoming "})," row is one materialized invocation — built-in routines (",(0,t.jsx)("code",{children:"morning_routine"}),", ",(0,t.jsx)("code",{children:"evening_review"}),"), self-registered wake-ups (",(0,t.jsx)("code",{children:"wake"}),"), scheduled DMs (",(0,t.jsx)("code",{children:"dm"}),"), or one-off ",(0,t.jsx)("code",{children:"custom"})," tasks. Status transitions ",(0,t.jsx)("code",{children:"pending → running → completed / skipped / failed"}),";",(0,t.jsx)("em",{children:"skipped"})," means the scheduler aborted before launching. Click a row to inspect or edit."]})]}),(0,t.jsxs)("div",{className:"flex shrink-0 gap-2",children:[(0,t.jsx)(F,{trigger:(0,t.jsxs)(u.Button,{children:[(0,t.jsx)(v.Plus,{className:"mr-1 h-4 w-4"}),"Schedule"]})}),(0,t.jsx)(i.RegenerateButton,{target:"today",label:"Refresh Today",currentTarget:K,status:z,error:H,onRegenerate:U,onDismiss:L})]})]}),M?.next&&(0,t.jsxs)(m.Card,{className:"border-primary/30 bg-primary/10 dark:bg-primary/15",children:[(0,t.jsxs)(m.CardHeader,{children:[(0,t.jsx)(m.CardTitle,{children:"Next Up"}),(0,t.jsx)(b,{className:"h-4 w-4 text-primary"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsx)("span",{className:"font-mono text-2xl font-bold text-foreground",children:Q}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-sm text-foreground",children:M.next.task_description}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:(0,p.formatAbsoluteTime)(M.next.scheduled_for)})]})]})]}),(0,t.jsxs)(x.Tabs,{value:y,onValueChange:e=>N(e),children:[(0,t.jsxs)(x.TabsList,{children:[(0,t.jsx)(x.TabsTrigger,{value:"upcoming",children:"Upcoming"}),(0,t.jsx)(x.TabsTrigger,{value:"recurring",children:"Recurring"})]}),(0,t.jsxs)(x.TabsContent,{value:"upcoming",className:"mt-4 space-y-4",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-3",role:"toolbar","aria-label":"Schedule filters",children:[(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:G.map(e=>(0,t.jsx)(u.Button,{variant:k===e?"default":"outline",size:"sm",onClick:()=>w(e),"aria-pressed":k===e,children:"all"===e?"All":e},e))}),(0,t.jsx)(g.Separator,{orientation:"vertical",className:"h-6"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:X.map(e=>(0,t.jsx)(u.Button,{variant:S===e?"default":"outline",size:"sm",onClick:()=>T(e),"aria-pressed":S===e,children:"all"===e?"All types":e},e))})]}),(0,t.jsxs)(o.QueryResult,{isLoading:A,isError:$,error:E,onRetry:()=>R(),skeleton:(0,t.jsx)(o.TableSkeleton,{rows:5}),children:[(0,t.jsx)("div",{className:"overflow-x-auto rounded-xl border border-border",children:(0,t.jsxs)("table",{className:"w-full text-left","aria-label":"Scheduled tasks",children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{className:"border-b border-border bg-muted/50",children:[(0,t.jsx)("th",{className:"px-3 py-2 text-xs font-medium text-muted-foreground",children:"Scheduled For"}),(0,t.jsx)("th",{className:"px-3 py-2 text-xs font-medium text-muted-foreground",children:"Type"}),(0,t.jsx)("th",{className:"px-3 py-2 text-xs font-medium text-muted-foreground",children:"Description"}),(0,t.jsx)("th",{className:"px-3 py-2 text-xs font-medium text-muted-foreground",children:"Model"}),(0,t.jsx)("th",{className:"px-3 py-2 text-xs font-medium text-muted-foreground",children:"Status"}),(0,t.jsx)("th",{className:"hidden px-3 py-2 text-xs font-medium text-muted-foreground lg:table-cell",children:"Created"})]})}),(0,t.jsx)("tbody",{children:P.map(e=>(0,t.jsxs)("tr",{className:"cursor-pointer border-b border-border hover:bg-muted/30",onClick:()=>O(e),children:[(0,t.jsx)("td",{className:"px-3 py-2 text-sm",children:(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{children:(0,p.formatAbsoluteTime)(e.scheduled_for)}),(0,t.jsx)(h.TooltipContent,{children:(0,p.formatRelativeTime)(e.scheduled_for)})]})}),(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsx)(c.Badge,{variant:Y[e.task_type]??"gray",children:e.task_type})}),(0,t.jsx)("td",{className:"max-w-md px-3 py-2 text-sm text-foreground",children:(0,t.jsxs)("div",{className:"flex items-start gap-2",children:[(0,t.jsx)("span",{className:"line-clamp-2 flex-1",children:e.task_description}),e.task_prompt?(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{children:(0,t.jsx)(c.Badge,{variant:"purple",className:"shrink-0",children:"prompt"})}),(0,t.jsx)(h.TooltipContent,{children:"Description above is the list label; a separate prompt is what the agent receives. Open the row to view or edit."})]}):null]})}),(0,t.jsx)("td",{className:"px-3 py-2",children:e.model&&(0,t.jsx)(c.Badge,{variant:(0,f.modelBadgeVariant)(e.model),children:(0,f.formatShortModelName)(e.model)})}),(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsx)(c.Badge,{variant:J[e.status]??"gray",children:"running"===e.status?(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{className:"h-1.5 w-1.5 animate-pulse rounded-full bg-amber-500"}),e.status]}):e.status})}),(0,t.jsx)("td",{className:"hidden whitespace-nowrap px-3 py-2 font-mono text-xs tabular-nums text-muted-foreground lg:table-cell",children:(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{children:(0,p.formatAbsoluteTime)(e.created_at)}),(0,t.jsx)(h.TooltipContent,{children:(0,p.formatRelativeTime)(e.created_at)})]})})]},e.id))})]})}),0===P.length?(0,t.jsx)(d.EmptyState,{icon:j.Clock,title:"No scheduled tasks",description:"Tasks will appear here when the agent schedules wake-ups or routines"}):null,_&&(0,t.jsx)("div",{className:"flex justify-center",children:(0,t.jsx)(u.Button,{variant:"outline",onClick:()=>q(),disabled:B,children:B?"Loading...":"Load More"})})]})]}),(0,t.jsx)(x.TabsContent,{value:"recurring",className:"mt-4 space-y-4",children:(0,t.jsx)(V,{})})]}),(0,t.jsx)(I,{row:C,open:null!==C,onOpenChange:e=>{e||O(null)}})]})}],28919)}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,70986,e=>{"use strict";var t=e.i(34416),s=e.i(91967),a=e.i(9413),i=e.i(36567),r=e.i(18731),n=e.i(22353),l=e.i(85565),o=e.i(90816),d=e.i(11207),c=e.i(54710),u="Collapsible",[m,h]=(0,a.createContextScope)(u),[p,x]=m(u),g=t.forwardRef((e,s)=>{let{__scopeCollapsible:a,open:r,defaultOpen:n,disabled:o,onOpenChange:m,...h}=e,[x,g]=(0,i.useControllableState)({prop:r,defaultProp:n??!1,onChange:m,caller:u});return(0,c.jsx)(p,{scope:a,disabled:o,contentId:(0,d.useId)(),open:x,onOpenToggle:t.useCallback(()=>g(e=>!e),[g]),children:(0,c.jsx)(l.Primitive.div,{"data-state":w(x),"data-disabled":o?"":void 0,...h,ref:s})})});g.displayName=u;var f="CollapsibleTrigger",y=t.forwardRef((e,t)=>{let{__scopeCollapsible:a,...i}=e,r=x(f,a);return(0,c.jsx)(l.Primitive.button,{type:"button","aria-controls":r.contentId,"aria-expanded":r.open||!1,"data-state":w(r.open),"data-disabled":r.disabled?"":void 0,disabled:r.disabled,...i,ref:t,onClick:(0,s.composeEventHandlers)(e.onClick,r.onOpenToggle)})});y.displayName=f;var b="CollapsibleContent",v=t.forwardRef((e,t)=>{let{forceMount:s,...a}=e,i=x(b,e.__scopeCollapsible);return(0,c.jsx)(o.Presence,{present:s||i.open,children:({present:e})=>(0,c.jsx)(j,{...a,ref:t,present:e})})});v.displayName=b;var j=t.forwardRef((e,s)=>{let{__scopeCollapsible:a,present:i,children:o,...d}=e,u=x(b,a),[m,h]=t.useState(i),p=t.useRef(null),g=(0,n.useComposedRefs)(s,p),f=t.useRef(0),y=f.current,v=t.useRef(0),j=v.current,N=u.open||m,k=t.useRef(N),C=t.useRef(void 0);return t.useEffect(()=>{let e=requestAnimationFrame(()=>k.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,r.useLayoutEffect)(()=>{let e=p.current;if(e){C.current=C.current||{transitionDuration:e.style.transitionDuration,animationName:e.style.animationName},e.style.transitionDuration="0s",e.style.animationName="none";let t=e.getBoundingClientRect();f.current=t.height,v.current=t.width,k.current||(e.style.transitionDuration=C.current.transitionDuration,e.style.animationName=C.current.animationName),h(i)}},[u.open,i]),(0,c.jsx)(l.Primitive.div,{"data-state":w(u.open),"data-disabled":u.disabled?"":void 0,id:u.contentId,hidden:!N,...d,ref:g,style:{"--radix-collapsible-content-height":y?`${y}px`:void 0,"--radix-collapsible-content-width":j?`${j}px`:void 0,...e.style},children:N&&o})});function w(e){return e?"open":"closed"}e.s(["Collapsible",0,g,"CollapsibleContent",0,v,"CollapsibleTrigger",0,y],70986)},21682,e=>{"use strict";let t=(0,e.i(77379).default)("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);e.s(["Pencil",0,t],21682)},90925,e=>{"use strict";let t=(0,e.i(77379).default)("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);e.s(["Trash2",0,t],90925)},60168,e=>{"use strict";let t=(0,e.i(77379).default)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",0,t],60168)},99758,e=>{"use strict";let t=(0,e.i(77379).default)("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",0,t],99758)},55575,e=>{"use strict";let t=(0,e.i(77379).default)("FolderOpen",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);e.s(["FolderOpen",0,t],55575)},66127,e=>{"use strict";var t=e.i(65268);async function s({title:e,defaultPath:a}){let i=await t.api.post("/system/pick-directory",{title:e,...a?{defaultPath:a}:{}});if("selected"===i.status&&i.path)return i.path;if("cancelled"===i.status)return null;throw Error(i.message??"Folder picker is unavailable.")}e.s(["pickDirectoryFromDesktop",0,s])},25795,e=>{"use strict";let t=(0,e.i(77379).default)("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);e.s(["RotateCcw",0,t],25795)},82239,e=>{"use strict";var t=e.i(54710),s=e.i(25795),a=e.i(10628);e.s(["RestartRequiredBadge",0,function(){return(0,t.jsxs)(a.Tooltip,{children:[(0,t.jsx)(a.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("span",{className:"inline-flex items-center gap-0.5 rounded-sm bg-amber-100 px-1 py-0.5 text-[10px] font-medium text-amber-700 dark:bg-amber-900/40 dark:text-amber-300",children:[(0,t.jsx)(s.RotateCcw,{className:"h-2.5 w-2.5"}),"restart"]})}),(0,t.jsx)(a.TooltipContent,{side:"top",className:"max-w-[220px] text-xs",children:"Changing this value requires a daemon restart to take effect."})]})}])},49681,e=>{"use strict";var t=e.i(54710),s=e.i(7771),a=e.i(95486),i=e.i(8011),r=e.i(10628),n=e.i(81471);e.s(["DocsHelpInline",0,function({docId:e,anchor:l=null,label:o,className:d}){let c=(0,a.useQueryClient)(),u=o??"Help";return(0,t.jsx)(r.TooltipProvider,{delayDuration:300,children:(0,t.jsxs)(r.Tooltip,{children:[(0,t.jsx)(r.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:t=>{t.preventDefault(),t.stopPropagation(),(0,i.openDocsHelpSlideover)(c,{docId:e,anchor:l,autoFocusComposer:!1})},className:(0,n.cn)("inline-flex h-5 w-5 items-center justify-center rounded-full text-muted-foreground/70 transition hover:bg-accent hover:text-foreground",d),"aria-label":`Open help — ${u}`,"data-testid":"docs-help-inline",children:(0,t.jsx)(s.HelpCircle,{className:"h-3.5 w-3.5","aria-hidden":"true"})})}),(0,t.jsx)(r.TooltipContent,{side:"top",children:(0,t.jsx)("span",{children:u})})]})})}])},88,e=>{"use strict";var t=e.i(54710),s=e.i(34416),a=e.i(99758),i=e.i(55575),r=e.i(21682),n=e.i(60168),l=e.i(25795),o=e.i(90925),d=e.i(36451);e.i(18446);var c=e.i(28444),u=e.i(48467),m=e.i(20014),h=e.i(74490),p=e.i(8652),x=e.i(82239),g=e.i(49681),f=e.i(66127),y=e.i(36413);let b=new Set(c.RESTART_REQUIRED_KEY_TUPLE);function v(e){return null===e?"":String(e)}e.s(["ConfigSection",0,function({title:e,children:s,helpDocId:a,helpAnchor:i}){return(0,t.jsxs)(h.Card,{children:[(0,t.jsx)(h.CardHeader,{children:(0,t.jsxs)(h.CardTitle,{className:"flex items-center gap-1.5",children:[(0,t.jsx)("span",{children:e}),a&&(0,t.jsx)(g.DocsHelpInline,{docId:a,anchor:i??null,label:e})]})}),(0,t.jsx)("div",{className:"space-y-0.5 [&>p]:max-w-prose",children:s})]})},"EditableArrayField",0,function({label:e,values:a,configKey:r,variant:l="gray",placeholder:o="Add item...",directoryPicker:c,modified:h,onSave:g}){let y=b.has(r),[v,j]=(0,s.useState)(""),[w,N]=(0,s.useState)(!1),[k,C]=(0,s.useState)(null),T=async()=>{let e=v.trim();if(!(!e||a.includes(e))){N(!0),C(null);try{await g(r,[...a,e]),j("")}catch{}finally{N(!1)}}},R=async e=>{N(!0);try{await g(r,a.filter(t=>t!==e))}finally{N(!1)}},S=async()=>{if(c){N(!0),C(null);try{let e=await (0,f.pickDirectoryFromDesktop)({title:c.title,defaultPath:v.trim()||c.defaultPath});if(!e)return;if(a.includes(e)){j(e),C("That directory is already in the list.");return}await g(r,[...a,e]),j("")}catch(e){C(e instanceof Error?e.message:"Folder picker is unavailable.")}finally{N(!1)}}};return(0,t.jsxs)("div",{className:`py-2${h?" border-l-2 border-blue-500 pl-2 -ml-1 rounded":""}`,"data-config-key":r,children:[(0,t.jsxs)("p",{className:"text-sm text-muted-foreground mb-2 inline-flex items-center gap-1.5",children:[e,y&&(0,t.jsx)(x.RestartRequiredBadge,{}),h&&(0,t.jsx)("span",{className:"text-[10px] font-medium text-blue-600 dark:text-blue-400",children:"modified"})]}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-1.5 mb-2",children:[a.map(e=>(0,t.jsxs)(u.Badge,{variant:l,className:"gap-1 pr-1",children:[e,(0,t.jsx)("button",{onClick:()=>R(e),disabled:w,className:"ml-0.5 rounded-sm hover:bg-black/10 dark:hover:bg-white/10 p-0.5 transition-colors",children:(0,t.jsx)(d.X,{className:"h-3 w-3"})})]},e)),0===a.length&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground italic",children:"No items"})]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(p.Input,{value:v,onChange:e=>j(e.target.value),onKeyDown:e=>{"Enter"===e.key&&T()},placeholder:o,className:"max-w-[320px]",disabled:w}),c&&(0,t.jsxs)(m.Button,{size:"sm",variant:"outline",onClick:S,disabled:w,children:[(0,t.jsx)(i.FolderOpen,{className:"h-3.5 w-3.5 mr-1"}),c.buttonLabel??"Choose"]}),(0,t.jsxs)(m.Button,{size:"sm",variant:"outline",onClick:T,disabled:!v.trim()||w,children:[(0,t.jsx)(n.Plus,{className:"h-3.5 w-3.5 mr-1"}),"Add"]})]}),k&&(0,t.jsx)("p",{className:"mt-1 text-xs text-destructive",children:k})]})},"EditableBooleanField",0,function({label:e,value:a,configKey:i,description:r,modified:n,defaultValue:o,onSave:d}){let[c,u]=(0,s.useState)(!1),h=b.has(i),p=void 0!==o&&a===o,g=async()=>{u(!0);try{await d(i,!a)}finally{u(!1)}},f=async()=>{if(void 0!==o){u(!0);try{await d(i,o)}finally{u(!1)}}};return(0,t.jsx)("div",{className:`py-1.5 group${n?" border-l-2 border-blue-500 pl-2 -ml-1 rounded":""}`,"data-config-key":i,children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("p",{className:"text-sm text-muted-foreground inline-flex items-center gap-1.5",children:[e,h&&(0,t.jsx)(x.RestartRequiredBadge,{}),n&&(0,t.jsx)("span",{className:"text-[10px] font-medium text-blue-600 dark:text-blue-400",children:"modified"}),void 0!==o&&!p&&!n&&(0,t.jsxs)("button",{type:"button",onClick:f,className:"text-[10px] text-muted-foreground hover:text-foreground transition-colors inline-flex items-center gap-0.5 opacity-0 group-hover:opacity-100",children:[(0,t.jsx)(l.RotateCcw,{className:"h-2.5 w-2.5"}),"reset"]})]}),r&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:r})]}),(0,t.jsx)(m.Button,{variant:a?"default":"outline",size:"sm",onClick:g,disabled:c,children:a?"Enabled":"Disabled"})]})})},"EditableField",0,function({label:e,value:i,configKey:n,type:c="text",suffix:u,description:h,min:g,max:f,nullable:j=!1,emptyLabel:w="Not set",modified:N,defaultValue:k,onSave:C}){let T=b.has(n),[R,S]=(0,s.useState)(!1),[D,B]=(0,s.useState)(v(i)),[E,A]=(0,s.useState)(!1),[M,$]=(0,s.useState)(null),F=(0,s.useRef)(null),L=(0,y.useDiscardGeneration)(),P=(0,s.useRef)(L);(0,s.useEffect)(()=>{L!==P.current&&(P.current=L,S(!1),$(null))},[L]),(0,s.useEffect)(()=>{R&&F.current?.focus()},[R]),(0,s.useEffect)(()=>{R||B(v(i))},[i,R]);let q=void 0!==k&&i===k,I=async e=>{if(e.stopPropagation(),void 0!==k){A(!0);try{await C(n,k)}finally{A(!1)}}},O=async e=>{e.stopPropagation(),A(!0);try{await C(n,null)}finally{A(!1)}},z=async()=>{let e=D.trim(),t=j&&""===e?null:"number"===c?Number(D):D;if(t===i)return void S(!1);if(null!==t&&"number"===c&&(void 0!==g||void 0!==f)&&(void 0!==g&&t<g||void 0!==f&&t>f))return void $(`Must be ${g??""}–${f??""}`);$(null),A(!0);try{await C(n,t),S(!1)}catch{}finally{A(!1)}};return R?(0,t.jsxs)("div",{className:"py-1.5","data-config-key":n,children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("span",{className:"text-sm text-muted-foreground shrink-0 min-w-[140px] inline-flex items-center gap-1.5",children:[e,T&&(0,t.jsx)(x.RestartRequiredBadge,{})]}),(0,t.jsx)(p.Input,{ref:F,type:c,value:D,onChange:e=>{B(e.target.value),$(null)},onKeyDown:e=>{"Enter"===e.key&&z(),"Escape"===e.key&&(B(v(i)),S(!1))},className:"max-w-[240px]",disabled:E,min:g,max:f}),u&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:u}),(0,t.jsx)(m.Button,{size:"sm",variant:"ghost",onClick:z,disabled:E,className:"h-7 w-7 p-0",children:(0,t.jsx)(a.Check,{className:"h-3.5 w-3.5"})}),(0,t.jsx)(m.Button,{size:"sm",variant:"ghost",onClick:()=>{B(v(i)),$(null),S(!1)},className:"h-7 w-7 p-0",children:(0,t.jsx)(d.X,{className:"h-3.5 w-3.5"})})]}),M&&(0,t.jsx)("p",{className:"text-xs text-destructive mt-1 ml-[148px]",children:M}),h&&!M&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-1 ml-[148px]",children:h})]}):(0,t.jsxs)("div",{className:`py-1.5 group cursor-pointer rounded px-1 -mx-1 hover:bg-muted/50 transition-colors${N?" border-l-2 border-blue-500 pl-2":""}`,"data-config-key":n,onClick:()=>S(!0),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("span",{className:"text-sm text-muted-foreground inline-flex items-center gap-1.5",children:[e,T&&(0,t.jsx)(x.RestartRequiredBadge,{})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[N&&(0,t.jsx)("span",{className:"text-[10px] font-medium text-blue-600 dark:text-blue-400",children:"modified"}),void 0!==k&&!q&&!N&&(0,t.jsxs)("button",{type:"button",onClick:I,className:"text-[10px] text-muted-foreground hover:text-foreground transition-colors inline-flex items-center gap-0.5 opacity-0 group-hover:opacity-100",children:[(0,t.jsx)(l.RotateCcw,{className:"h-2.5 w-2.5"}),"reset"]}),j&&null!==i&&!N&&(0,t.jsxs)("button",{type:"button",onClick:O,title:`Clear — sets ${e} to ${w}`,className:"text-[10px] text-muted-foreground hover:text-destructive transition-colors inline-flex items-center gap-0.5 opacity-0 group-hover:opacity-100",children:[(0,t.jsx)(o.Trash2,{className:"h-2.5 w-2.5"}),"clear"]}),(0,t.jsx)("span",{className:"text-sm font-medium text-foreground",children:null===i?w:"$"===u?`$${i}`:u?`${i} ${u}`:String(i)}),(0,t.jsx)(r.Pencil,{className:"h-3 w-3 text-muted-foreground opacity-0 group-hover:opacity-100 transition-opacity"})]})]}),h&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:h})]})}])},54879,e=>{"use strict";let t=(0,e.i(77379).default)("Zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);e.s(["Zap",0,t],54879)},34409,e=>{"use strict";var t=e.i(54710),s=e.i(34416),a=e.i(81187),i=e.i(59546),r=e.i(96263),n=e.i(77379);let l=(0,n.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"}]]),o=(0,n.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 d=e.i(72740);let c=(0,n.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 u=e.i(25795),m=e.i(90925),h=e.i(54879),p=e.i(95486),x=e.i(14260);e.i(18446);var g=e.i(17900),f=e.i(65268),y=e.i(88423),b=e.i(13451),v=e.i(36413),j=e.i(20014),w=e.i(74490),N=e.i(70986),k=e.i(10427),C=e.i(57628),T=e.i(90826),R=e.i(81471),S=e.i(88),D=e.i(94328);function B(){let e=(0,p.useQueryClient)(),a=(0,T.useConfirm)(),[i,r]=(0,s.useState)(!1),[n,l]=(0,s.useState)(!1),[o,u]=(0,s.useState)(null),[m,h]=(0,s.useState)(null),{data:y}=(0,x.useQuery)({queryKey:["voice-status"],queryFn:async()=>{try{return await f.api.get("/voice/status")}catch(e){if(n)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 e}},refetchInterval:e=>{let t=e.state.data;return!!(n||t?.installing||t?.status==="running")&&1500},refetchOnWindowFocus:!1});(0,s.useEffect)(()=>{if(!y)return;let e=y.primaryLanguage??y.suggestedPrimaryLanguage;h(t=>t??e)},[y?.primaryLanguage,y?.suggestedPrimaryLanguage,y]),(0,s.useEffect)(()=>{n&&y?.enabled&&(l(!1),e.invalidateQueries({queryKey:["config"]}))},[n,y?.enabled,e]),(0,s.useEffect)(()=>{y?.status!=="ready"||y.enabled||l(!0)},[y?.status,y?.enabled]);let b=async()=>{u(null),r(!0);try{await f.api.post("/voice/install",{primaryLanguage:m}),await e.invalidateQueries({queryKey:["voice-status"]})}catch(e){u(e instanceof f.ApiError?e.message:"Install failed")}finally{r(!1)}},v=async()=>{if(await a({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"})){u(null),r(!0);try{await f.api.delete("/voice/model"),await e.invalidateQueries({queryKey:["voice-status"]})}catch(e){u(e instanceof f.ApiError?e.message:"Deleting voice model failed")}finally{r(!1)}}},N=async t=>{u(null),r(!0);try{await f.api.patch("/config",{voiceTranscriptionPrimaryLanguage:t}),h(t),await e.invalidateQueries({queryKey:["voice-status"]}),await e.invalidateQueries({queryKey:["config"]})}catch(e){u(e instanceof f.ApiError?e.message:"Saving primary language failed")}finally{r(!1)}},C=y?.enabled??!1,S=i||(y?.installing??!1)||n,D=y?.progress??null,B=o??y?.error??null,A=C&&y?.modelOnDisk===!1&&!S,M=(0,s.useMemo)(()=>{let e=new Set(g.VOICE_LANGUAGE_TOP.map(e=>e.code)),t=g.VOICE_LANGUAGE_FULL.filter(t=>!e.has(t.code)).slice().sort((e,t)=>e.englishName.localeCompare(t.englishName));return{top:g.VOICE_LANGUAGE_TOP,more:t}},[]),F=e=>(0,t.jsxs)(k.Select,{value:m??void 0,onValueChange:e=>h(e),disabled:S,children:[(0,t.jsx)(k.SelectTrigger,{id:e,className:"w-full max-w-sm",children:(0,t.jsx)(k.SelectValue,{placeholder:"Select language…"})}),(0,t.jsxs)(k.SelectContent,{children:[M.top.length>0&&(0,t.jsxs)(k.SelectGroup,{children:[(0,t.jsx)(k.SelectLabel,{children:"Common"}),M.top.map(e=>(0,t.jsxs)(k.SelectItem,{value:e.code,children:[e.nativeName,e.nativeName!==e.englishName&&(0,t.jsxs)("span",{className:"text-muted-foreground",children:[" · ",e.englishName]})]},e.code))]}),M.more.length>0&&(0,t.jsxs)(k.SelectGroup,{children:[(0,t.jsx)(k.SelectLabel,{children:"More languages"}),M.more.map(e=>(0,t.jsxs)(k.SelectItem,{value:e.code,children:[e.nativeName,e.nativeName!==e.englishName&&(0,t.jsxs)("span",{className:"text-muted-foreground",children:[" · ",e.englishName]})]},e.code))]})]})]});return(0,t.jsxs)(w.Card,{children:[(0,t.jsx)(w.CardHeader,{children:(0,t.jsxs)(w.CardTitle,{className:"flex items-center gap-2",children:[(0,t.jsx)(c,{className:"h-4 w-4"}),"Voice Mode"]})}),(0,t.jsxs)("div",{className:"space-y-3 [&>p]:max-w-prose",children:[(0,t.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,t.jsx)("code",{children:"docs/design/appendices/voice-transcription.md"})," for implementation details."]}),(0,t.jsx)(E,{status:y,modelOnDisk:y?.modelOnDisk??!1,upgradeAvailable:A,installing:S,waitingForRestart:n,onDelete:v,deleteDisabled:i}),B&&(0,t.jsx)("p",{className:"rounded-md border border-destructive/40 bg-destructive/5 px-3 py-2 text-xs text-destructive",children:B}),A&&(0,t.jsxs)("div",{className:"rounded-md border border-amber-500/40 bg-amber-500/5 px-3 py-2 text-xs",children:[(0,t.jsx)("p",{className:"font-medium text-amber-700 dark:text-amber-400",children:"Upgrade voice model"}),(0,t.jsxs)("p",{className:"text-muted-foreground mt-0.5",children:["The configured model"," ",(0,t.jsx)("code",{children:y?.model})," is not yet downloaded — likely because a package update changed the default. Click"," ",(0,t.jsx)("strong",{children:"Upgrade & install"})," below to fetch it. Inbound voice will keep using the previous model until then."]})]}),!C&&!S&&(0,t.jsxs)("div",{className:"space-y-2 rounded-md border border-border bg-muted/30 px-3 py-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{htmlFor:"voice-primary-language",className:"text-sm font-medium",children:"Your primary spoken language"}),(0,t.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."})]}),F("voice-primary-language")]}),(0,t.jsxs)("div",{className:"flex items-center justify-between gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("p",{className:"text-sm",children:["Status:"," ",(0,t.jsx)("span",{className:"font-medium",children:S?n?"Restarting daemon to apply…":D?.phase==="ready"?"Finalizing…":D?.currentFile?`Downloading ${D.currentFile}…`:"Starting model download…":C?A?"Enabled (upgrade available)":"Enabled":"Disabled"})]}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:C?"Inbound audio is transcribed locally before it reaches the agent. Change your primary language at any time below.":"Turning this on downloads the Whisper weights (~800 MB), then auto-restarts the daemon so the transcriber initializes with the new flag. The first download takes a minute or two depending on your connection."})]}),(0,t.jsx)(j.Button,{size:"sm",variant:C&&!A?"outline":"default",onClick:b,disabled:i||S||C&&!A||null===m,children:S?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(d.Loader2,{className:"h-3.5 w-3.5 mr-1 animate-spin"}),"Working…"]}):A?"Upgrade & install":C?"Enabled":"Enable & install"})]}),C&&!S&&(0,t.jsxs)("div",{className:"space-y-2 rounded-md border border-border bg-muted/30 px-3 py-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{htmlFor:"voice-primary-language-live",className:"text-sm font-medium",children:"Primary spoken language"}),(0,t.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,t.jsxs)("div",{className:"flex items-center gap-2",children:[F("voice-primary-language-live"),(0,t.jsx)(j.Button,{size:"sm",variant:"outline",disabled:i||null===m||m===y?.primaryLanguage,onClick:()=>{m&&N(m)},children:"Save"})]})]}),S&&!n&&(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)("div",{className:"h-1.5 w-full overflow-hidden rounded-full bg-muted",children:(0,t.jsx)("div",{className:(0,R.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,t.jsxs)("div",{className:"flex items-center justify-between text-[11px] text-muted-foreground tabular-nums",children:[(0,t.jsxs)("span",{children:[D&&D.totalBytes>0?`${$(D.loadedBytes)} / ${$(D.totalBytes)}`:"Contacting Hugging Face…",D&&D.filesDownloaded>0&&(0,t.jsxs)(t.Fragment,{children:[" · ",D.filesDownloaded," file",1===D.filesDownloaded?"":"s"," complete"]})]}),(0,t.jsx)("span",{children:D&&D.percent>0?`${Math.round(D.percent)}%`:""})]})]})]})]})}function E({status:e,modelOnDisk:s,upgradeAvailable:r,installing:n,waitingForRestart:c,onDelete:u,deleteDisabled:h}){let p=e?.model??"onnx-community/whisper-large-v3-turbo",x=e?.modelSizeBytes??0,g=e?.modelDir??null,f=n?"installing":r?"upgrade":s?"installed":"missing",y={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"}}[f],b="installing"===f?(0,t.jsx)(d.Loader2,{className:(0,R.cn)("h-4 w-4 animate-spin",y.iconBg)}):"installed"===f?(0,t.jsx)(i.CheckCircle2,{className:(0,R.cn)("h-4 w-4",y.iconBg)}):"upgrade"===f?(0,t.jsx)(a.AlertTriangle,{className:(0,R.cn)("h-4 w-4",y.iconBg)}):(0,t.jsx)(l,{className:(0,R.cn)("h-4 w-4",y.iconBg)}),v="installed"===f&&x>0?(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 tabular-nums",children:[(0,t.jsx)(o,{className:"h-3 w-3"}),$(x)," on disk"]}):"upgrade"===f?(0,t.jsx)("span",{children:"Configured model is not on disk yet."}):"installing"===f?(0,t.jsx)("span",{children:"Downloading weights from Hugging Face…"}):(0,t.jsxs)("span",{children:["Click ",(0,t.jsx)("strong",{children:"Enable & install"})," below to download (~760 MB)."]});return(0,t.jsx)("div",{className:(0,R.cn)("rounded-md border px-3 py-2.5",y.container),children:(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[(0,t.jsx)("div",{className:"mt-0.5",children:b}),(0,t.jsxs)("div",{className:"min-w-0 flex-1 space-y-1",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)("span",{className:(0,R.cn)("inline-flex items-center rounded-full px-2 py-0.5 text-[10px] font-medium uppercase tracking-wide",y.pill),children:"installing"===f?c?"Restarting":"Installing":"installed"===f?"Installed":"upgrade"===f?"Upgrade available":"Not installed"}),(0,t.jsx)("code",{className:"break-all text-xs",children:p})]}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:v}),g&&"installed"===f&&(0,t.jsx)("div",{className:"text-[10px] text-muted-foreground/70 font-mono break-all",children:g})]}),!n&&("installed"===f||"upgrade"===f)&&(0,t.jsxs)(j.Button,{size:"sm",variant:"ghost",onClick:u,disabled:h,className:"h-7 shrink-0 px-2 text-xs text-muted-foreground hover:text-destructive",children:[(0,t.jsx)(m.Trash2,{className:"h-3 w-3 mr-1"}),"Delete"]})]})})}async function A(e){switch(e){case"reset-config":return f.api.post("/system/reset-config");case"purge-history":return f.api.post("/system/purge-history");case"reinstall-context":return f.api.post("/system/reinstall-context",{confirm:"CLEAN"});case"factory-reset":return f.api.post("/system/factory-reset")}}function M(e,t){switch(e){case"reset-config":t.invalidateQueries({queryKey:["config"]});return;case"purge-history":t.invalidateQueries({queryKey:["conversations"]}),t.invalidateQueries({queryKey:["events"]}),t.invalidateQueries({queryKey:["cost"]});return;case"reinstall-context":t.invalidateQueries({queryKey:["context"]}),t.invalidateQueries({queryKey:["setup-status"]});return;case"factory-reset":t.invalidateQueries();return}}function $(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:e<0x40000000?`${(e/1048576).toFixed(1)} MB`:`${(e/0x40000000).toFixed(1)} GB`}function F(){let[e,i]=(0,s.useState)(!1),[n,l]=(0,s.useState)(null),[o,d]=(0,s.useState)(null),[c,x]=(0,s.useState)(null),g=(0,T.useConfirm)(),y=(0,p.useQueryClient)(),b=async(e,t)=>{if(await g({title:t.title,description:t.description,confirmLabel:t.confirmLabel,variant:"destructive"})&&(!t.doubleConfirm||await g({title:t.doubleConfirm.title,description:t.doubleConfirm.description,confirmLabel:t.doubleConfirm.confirmLabel,variant:"destructive",requireText:t.doubleConfirm.requireText}))){l(e),d(null),x(null);try{let s=await A(e);M(e,y),x(t.successMessage(s))}catch(e){d(e instanceof f.ApiError?e.message:"Request failed")}finally{l(null)}}};return(0,t.jsx)(N.Collapsible,{open:e,onOpenChange:i,children:(0,t.jsxs)(w.Card,{className:"border-destructive/40",children:[(0,t.jsx)(N.CollapsibleTrigger,{asChild:!0,children:(0,t.jsx)(w.CardHeader,{className:"cursor-pointer select-none",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(r.ChevronRight,{className:(0,R.cn)("h-4 w-4 text-destructive transition-transform",e&&"rotate-90")}),(0,t.jsx)(a.AlertTriangle,{className:"h-4 w-4 text-destructive"}),(0,t.jsx)(w.CardTitle,{className:"text-destructive",children:"Danger Zone"})]})})}),(0,t.jsx)(N.CollapsibleContent,{children:(0,t.jsxs)("div",{className:"space-y-4 pb-1",children:[(0,t.jsx)("p",{className:"text-xs text-muted-foreground max-w-prose",children:"Destructive actions that cannot be undone. Each action requires confirmation before executing."}),o&&(0,t.jsx)("p",{className:"rounded-md border border-destructive/40 bg-destructive/5 px-3 py-2 text-xs text-destructive",children:o}),c&&(0,t.jsx)("p",{className:"rounded-md border border-border bg-muted/30 px-3 py-2 text-xs text-muted-foreground",children:c}),(0,t.jsx)(L,{title:"Reset all config to defaults",description:"Restores every runtime setting to its factory default. Bootstrap values in .env (API port) and integration credentials are not affected.",icon:(0,t.jsx)(u.RotateCcw,{className:"h-3.5 w-3.5 mr-1"}),label:"Reset config",busy:"reset-config"===n,disabled:null!==n,onClick:()=>b("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) and integration credentials are not affected.",confirmLabel:"Reset config",successMessage:e=>`Cleared ${e.cleared??0} runtime setting(s).`})}),(0,t.jsx)(C.Separator,{}),(0,t.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,t.jsx)(m.Trash2,{className:"h-3.5 w-3.5 mr-1"}),label:"Delete history",busy:"purge-history"===n,disabled:null!==n,onClick:()=>b("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:e=>`Deleted ${e.deletedSessions??0} session(s), ${e.deletedMessages??0} message(s), ${e.deletedActions??0} action(s).`})}),(0,t.jsx)(C.Separator,{}),(0,t.jsx)(L,{title:"Reinstall context",description:"Writes a tarball backup first, then wipes context/ (including rules/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,t.jsx)(u.RotateCcw,{className:"h-3.5 w-3.5 mr-1"}),label:"Reinstall context",busy:"reinstall-context"===n,disabled:null!==n,onClick:()=>(async()=>{l("reinstall-context"),d(null),x(null);try{let e,t=await f.api.get("/system/reinstall-context/plan");if(!await g({title:"Clean reinstall of context/ (B-007)?",description:(e=t.ancillaryDirs.length>0?`Ancillary caches to remove: ${t.ancillaryDirs.join(", ")}.`:"No ancillary caches are scheduled for removal.",[`This will remove ${t.fileCount} file(s) (${$(t.totalBytes)}) from ${t.contextDir}, clear ${t.snapshotRowCount} snapshot row(s), and then re-run setup on the next daemon start.`,e,`Backup tarball path: ${t.backupPath}`].join(" ")),confirmLabel:"Continue",variant:"destructive"})||!await g({title:"Type CLEAN to confirm",description:`Backup tarball: ${t.backupPath}. Proceed to remove ${t.fileCount} file(s) and clear ${t.snapshotRowCount} snapshot row(s).`,confirmLabel:"Reinstall context",variant:"destructive",requireText:"CLEAN"}))return;let s=await A("reinstall-context");M("reinstall-context",y),x(`Reinstalled. Removed ${s.filesDeleted??0} file(s), cleared ${s.snapshotRowsDeleted??0} snapshot row(s). Backup at ${s.backupPath??t.backupPath}.`)}catch(e){d(e instanceof f.ApiError?e.message:"Request failed")}finally{l(null)}})()}),(0,t.jsx)(C.Separator,{}),(0,t.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,t.jsx)(h.Zap,{className:"h-3.5 w-3.5 mr-1"}),label:"Factory reset",busy:"factory-reset"===n,disabled:null!==n,onClick:()=>b("factory-reset",{title:"Factory reset — really?",description:"This clears EVERYTHING on this device: conversation history, action logs, runtime settings, context files (including rules/management.md), keychain secrets, encrypted blobs, uploaded attachments, session workdirs, skill-optimizer workdirs, context-reinstall and template/release-asset backups, caches, user skills, integrations.md, the managed Codex Azure config, the local Whisper model cache, and every user-data table — backends, mail accounts, recurring schedules, receipts, books + reading highlights, travel bookings, parse failures, runtime state, auth telemetry. The daemon compacts the SQLite DB afterward. Restart it 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:e=>{let t="string"==typeof e.status?e.status:"reset",s=Array.isArray(e.errors)?e.errors.length:0,a=Array.isArray(e.adapterReloadErrors)?e.adapterReloadErrors.length:0;return"reset_with_errors"===t||s>0||a>0?`Factory reset finished with warnings. Restart the daemon to re-bootstrap observers and adapters. (${s} reset step warning(s), ${a} adapter reload warning(s).)`:"Factory reset complete. Restart the daemon to re-bootstrap observers and adapters."}})})]})})]})})}function L({title:e,description:s,icon:a,label:i,busy:r,disabled:n,onClick:l}){return(0,t.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,t.jsxs)("div",{className:"space-y-0.5",children:[(0,t.jsx)("p",{className:"text-sm font-medium",children:e}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:s})]}),(0,t.jsxs)(j.Button,{variant:"destructive",size:"sm",onClick:l,disabled:n,className:"shrink-0",children:[a,r?"Working...":i]})]})}e.s(["default",0,function(){let{data:e}=(0,y.useConfig)(),{toast:a,showToast:i}=(0,b.useSaveConfig)(),{deferSaveFor:r,dv:n,dirtyFields:l,clearDirtyKeys:o}=(0,v.useDirtyFields)(),d=(0,p.useQueryClient)(),c=(0,T.useConfirm)(),[m,h]=(0,s.useState)(!1),x=async()=>{if(await c({title:"Reset disallowed tools to defaults?",description:"This will restore the default safety tool list, replacing any customizations.",confirmLabel:"Reset",variant:"destructive"})){h(!0);try{await f.api.post("/config/reset-safety"),d.invalidateQueries({queryKey:["config"]}),o(["disallowedTools","allowedToolsOverride"]),i("success","Safety tools reset to defaults")}finally{h(!1)}}};if(!e)return(0,t.jsx)("div",{className:"text-muted-foreground",children:"Loading..."});let g=r(e);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-2xl font-semibold text-foreground",children:"Advanced"}),(0,t.jsx)("p",{className:"mt-1 max-w-3xl text-sm text-muted-foreground",children:"Power-user knobs and safety settings. Most of these are low-level — read each description carefully before saving."})]}),(0,t.jsx)(D.SettingsToast,{toast:a}),(0,t.jsxs)(w.Card,{children:[(0,t.jsx)(w.CardHeader,{children:(0,t.jsx)(w.CardTitle,{children:"Safety — Tool Policy"})}),(0,t.jsxs)("div",{className:"space-y-3 [&>p]:max-w-prose",children:[(0,t.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Guardrails applied to every Claude Code tool call, enforced by the SDK before the tool runs. Entries are either a plain tool name (",(0,t.jsx)("code",{children:"Write"}),", ",(0,t.jsx)("code",{children:"WebFetch"}),") or a tool name with an argument pattern in parentheses (",(0,t.jsx)("code",{children:"Bash(rm -rf *)"}),") to match only specific invocations."," ",(0,t.jsx)("strong",{children:"Disallowed wins over allowed"})," — any match in the disallowed list blocks the call even if allowed override covers it. Per-backend Allow-mode toggle has moved to"," ",(0,t.jsx)("strong",{children:"Settings → Models & Cost"})," so each backend can be flipped independently."]}),(0,t.jsx)(S.EditableArrayField,{label:"Disallowed Tools",values:n("disallowedTools",e.disallowedTools),configKey:"disallowedTools",variant:"red",placeholder:"e.g. Bash(rm -rf *)",modified:l.has("disallowedTools"),onSave:g}),(0,t.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 known-dangerous file operations. Use Reset to Defaults below to restore them after experimenting."}),(0,t.jsx)(C.Separator,{}),(0,t.jsx)(S.EditableArrayField,{label:"Allowed Tools Override",values:n("allowedToolsOverride",e.allowedTools),configKey:"allowedToolsOverride",variant:"green",placeholder:"e.g. Bash(git push)",modified:l.has("allowedToolsOverride"),onSave:g}),(0,t.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 (e.g. allow"," ",(0,t.jsx)("code",{children:"Bash(git push)"})," while keeping arbitrary ",(0,t.jsx)("code",{children:"Bash"})," ","blocked)."]}),(0,t.jsx)(C.Separator,{}),(0,t.jsxs)(j.Button,{variant:"outline",size:"sm",onClick:x,disabled:m,children:[(0,t.jsx)(u.RotateCcw,{className:"h-3.5 w-3.5 mr-1"}),m?"Resetting...":"Reset to Defaults"]}),(0,t.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Restores the built-in disallowed-tool list and"," ",(0,t.jsx)("strong",{children:"also clears the allowed override list"}),", replacing any customizations in both. Use this if your safety config has drifted and you want a clean slate."]})]})]}),(0,t.jsx)(B,{}),(0,t.jsx)(F,{})]})}],34409)}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,58436,e=>{"use strict";var t=e.i(54710),a=e.i(34416),s=e.i(55575),i=e.i(72740),r=e.i(20014),n=e.i(8652),l=e.i(66127),o=e.i(81471);e.s(["DirectoryPickerField",0,function({id:e,value:c,onChange:d,title:u,placeholder:m="Choose a folder...",defaultPath:h,disabled:x=!1,className:p,inputClassName:g,buttonLabel:f="Choose"}){let[y,j]=(0,a.useState)(!1),[v,b]=(0,a.useState)(null),N=async()=>{j(!0),b(null);try{let e=await (0,l.pickDirectoryFromDesktop)({title:u,defaultPath:c.trim()||h});e&&d(e)}catch(e){b(e instanceof Error?e.message:"Folder picker is unavailable.")}finally{j(!1)}};return(0,t.jsxs)("div",{className:(0,o.cn)("space-y-1",p),children:[(0,t.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row",children:[(0,t.jsx)(n.Input,{id:e,value:c,onChange:e=>{d(e.target.value),b(null)},placeholder:m,className:(0,o.cn)("font-mono text-sm",g),disabled:x||y}),(0,t.jsxs)(r.Button,{type:"button",variant:"outline",onClick:N,disabled:x||y,className:"shrink-0 gap-2",children:[y?(0,t.jsx)(i.Loader2,{className:"h-4 w-4 animate-spin"}):(0,t.jsx)(s.FolderOpen,{className:"h-4 w-4"}),y?"Opening...":f]})]}),v&&(0,t.jsx)("p",{className:"text-xs text-destructive",children:v})]})}])},21682,e=>{"use strict";let t=(0,e.i(77379).default)("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);e.s(["Pencil",0,t],21682)},90925,e=>{"use strict";let t=(0,e.i(77379).default)("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);e.s(["Trash2",0,t],90925)},60168,e=>{"use strict";let t=(0,e.i(77379).default)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",0,t],60168)},99758,e=>{"use strict";let t=(0,e.i(77379).default)("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",0,t],99758)},55575,e=>{"use strict";let t=(0,e.i(77379).default)("FolderOpen",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);e.s(["FolderOpen",0,t],55575)},66127,e=>{"use strict";var t=e.i(65268);async function a({title:e,defaultPath:s}){let i=await t.api.post("/system/pick-directory",{title:e,...s?{defaultPath:s}:{}});if("selected"===i.status&&i.path)return i.path;if("cancelled"===i.status)return null;throw Error(i.message??"Folder picker is unavailable.")}e.s(["pickDirectoryFromDesktop",0,a])},25795,e=>{"use strict";let t=(0,e.i(77379).default)("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);e.s(["RotateCcw",0,t],25795)},82239,e=>{"use strict";var t=e.i(54710),a=e.i(25795),s=e.i(10628);e.s(["RestartRequiredBadge",0,function(){return(0,t.jsxs)(s.Tooltip,{children:[(0,t.jsx)(s.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("span",{className:"inline-flex items-center gap-0.5 rounded-sm bg-amber-100 px-1 py-0.5 text-[10px] font-medium text-amber-700 dark:bg-amber-900/40 dark:text-amber-300",children:[(0,t.jsx)(a.RotateCcw,{className:"h-2.5 w-2.5"}),"restart"]})}),(0,t.jsx)(s.TooltipContent,{side:"top",className:"max-w-[220px] text-xs",children:"Changing this value requires a daemon restart to take effect."})]})}])},49681,e=>{"use strict";var t=e.i(54710),a=e.i(7771),s=e.i(95486),i=e.i(8011),r=e.i(10628),n=e.i(81471);e.s(["DocsHelpInline",0,function({docId:e,anchor:l=null,label:o,className:c}){let d=(0,s.useQueryClient)(),u=o??"Help";return(0,t.jsx)(r.TooltipProvider,{delayDuration:300,children:(0,t.jsxs)(r.Tooltip,{children:[(0,t.jsx)(r.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:t=>{t.preventDefault(),t.stopPropagation(),(0,i.openDocsHelpSlideover)(d,{docId:e,anchor:l,autoFocusComposer:!1})},className:(0,n.cn)("inline-flex h-5 w-5 items-center justify-center rounded-full text-muted-foreground/70 transition hover:bg-accent hover:text-foreground",c),"aria-label":`Open help — ${u}`,"data-testid":"docs-help-inline",children:(0,t.jsx)(a.HelpCircle,{className:"h-3.5 w-3.5","aria-hidden":"true"})})}),(0,t.jsx)(r.TooltipContent,{side:"top",children:(0,t.jsx)("span",{children:u})})]})})}])},88,e=>{"use strict";var t=e.i(54710),a=e.i(34416),s=e.i(99758),i=e.i(55575),r=e.i(21682),n=e.i(60168),l=e.i(25795),o=e.i(90925),c=e.i(36451);e.i(18446);var d=e.i(28444),u=e.i(48467),m=e.i(20014),h=e.i(74490),x=e.i(8652),p=e.i(82239),g=e.i(49681),f=e.i(66127),y=e.i(36413);let j=new Set(d.RESTART_REQUIRED_KEY_TUPLE);function v(e){return null===e?"":String(e)}e.s(["ConfigSection",0,function({title:e,children:a,helpDocId:s,helpAnchor:i}){return(0,t.jsxs)(h.Card,{children:[(0,t.jsx)(h.CardHeader,{children:(0,t.jsxs)(h.CardTitle,{className:"flex items-center gap-1.5",children:[(0,t.jsx)("span",{children:e}),s&&(0,t.jsx)(g.DocsHelpInline,{docId:s,anchor:i??null,label:e})]})}),(0,t.jsx)("div",{className:"space-y-0.5 [&>p]:max-w-prose",children:a})]})},"EditableArrayField",0,function({label:e,values:s,configKey:r,variant:l="gray",placeholder:o="Add item...",directoryPicker:d,modified:h,onSave:g}){let y=j.has(r),[v,b]=(0,a.useState)(""),[N,k]=(0,a.useState)(!1),[w,C]=(0,a.useState)(null),_=async()=>{let e=v.trim();if(!(!e||s.includes(e))){k(!0),C(null);try{await g(r,[...s,e]),b("")}catch{}finally{k(!1)}}},S=async e=>{k(!0);try{await g(r,s.filter(t=>t!==e))}finally{k(!1)}},P=async()=>{if(d){k(!0),C(null);try{let e=await (0,f.pickDirectoryFromDesktop)({title:d.title,defaultPath:v.trim()||d.defaultPath});if(!e)return;if(s.includes(e)){b(e),C("That directory is already in the list.");return}await g(r,[...s,e]),b("")}catch(e){C(e instanceof Error?e.message:"Folder picker is unavailable.")}finally{k(!1)}}};return(0,t.jsxs)("div",{className:`py-2${h?" border-l-2 border-blue-500 pl-2 -ml-1 rounded":""}`,"data-config-key":r,children:[(0,t.jsxs)("p",{className:"text-sm text-muted-foreground mb-2 inline-flex items-center gap-1.5",children:[e,y&&(0,t.jsx)(p.RestartRequiredBadge,{}),h&&(0,t.jsx)("span",{className:"text-[10px] font-medium text-blue-600 dark:text-blue-400",children:"modified"})]}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-1.5 mb-2",children:[s.map(e=>(0,t.jsxs)(u.Badge,{variant:l,className:"gap-1 pr-1",children:[e,(0,t.jsx)("button",{onClick:()=>S(e),disabled:N,className:"ml-0.5 rounded-sm hover:bg-black/10 dark:hover:bg-white/10 p-0.5 transition-colors",children:(0,t.jsx)(c.X,{className:"h-3 w-3"})})]},e)),0===s.length&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground italic",children:"No items"})]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(x.Input,{value:v,onChange:e=>b(e.target.value),onKeyDown:e=>{"Enter"===e.key&&_()},placeholder:o,className:"max-w-[320px]",disabled:N}),d&&(0,t.jsxs)(m.Button,{size:"sm",variant:"outline",onClick:P,disabled:N,children:[(0,t.jsx)(i.FolderOpen,{className:"h-3.5 w-3.5 mr-1"}),d.buttonLabel??"Choose"]}),(0,t.jsxs)(m.Button,{size:"sm",variant:"outline",onClick:_,disabled:!v.trim()||N,children:[(0,t.jsx)(n.Plus,{className:"h-3.5 w-3.5 mr-1"}),"Add"]})]}),w&&(0,t.jsx)("p",{className:"mt-1 text-xs text-destructive",children:w})]})},"EditableBooleanField",0,function({label:e,value:s,configKey:i,description:r,modified:n,defaultValue:o,onSave:c}){let[d,u]=(0,a.useState)(!1),h=j.has(i),x=void 0!==o&&s===o,g=async()=>{u(!0);try{await c(i,!s)}finally{u(!1)}},f=async()=>{if(void 0!==o){u(!0);try{await c(i,o)}finally{u(!1)}}};return(0,t.jsx)("div",{className:`py-1.5 group${n?" border-l-2 border-blue-500 pl-2 -ml-1 rounded":""}`,"data-config-key":i,children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("p",{className:"text-sm text-muted-foreground inline-flex items-center gap-1.5",children:[e,h&&(0,t.jsx)(p.RestartRequiredBadge,{}),n&&(0,t.jsx)("span",{className:"text-[10px] font-medium text-blue-600 dark:text-blue-400",children:"modified"}),void 0!==o&&!x&&!n&&(0,t.jsxs)("button",{type:"button",onClick:f,className:"text-[10px] text-muted-foreground hover:text-foreground transition-colors inline-flex items-center gap-0.5 opacity-0 group-hover:opacity-100",children:[(0,t.jsx)(l.RotateCcw,{className:"h-2.5 w-2.5"}),"reset"]})]}),r&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:r})]}),(0,t.jsx)(m.Button,{variant:s?"default":"outline",size:"sm",onClick:g,disabled:d,children:s?"Enabled":"Disabled"})]})})},"EditableField",0,function({label:e,value:i,configKey:n,type:d="text",suffix:u,description:h,min:g,max:f,nullable:b=!1,emptyLabel:N="Not set",modified:k,defaultValue:w,onSave:C}){let _=j.has(n),[S,P]=(0,a.useState)(!1),[T,D]=(0,a.useState)(v(i)),[E,R]=(0,a.useState)(!1),[F,M]=(0,a.useState)(null),A=(0,a.useRef)(null),B=(0,y.useDiscardGeneration)(),H=(0,a.useRef)(B);(0,a.useEffect)(()=>{B!==H.current&&(H.current=B,P(!1),M(null))},[B]),(0,a.useEffect)(()=>{S&&A.current?.focus()},[S]),(0,a.useEffect)(()=>{S||D(v(i))},[i,S]);let $=void 0!==w&&i===w,z=async e=>{if(e.stopPropagation(),void 0!==w){R(!0);try{await C(n,w)}finally{R(!1)}}},O=async e=>{e.stopPropagation(),R(!0);try{await C(n,null)}finally{R(!1)}},L=async()=>{let e=T.trim(),t=b&&""===e?null:"number"===d?Number(T):T;if(t===i)return void P(!1);if(null!==t&&"number"===d&&(void 0!==g||void 0!==f)&&(void 0!==g&&t<g||void 0!==f&&t>f))return void M(`Must be ${g??""}–${f??""}`);M(null),R(!0);try{await C(n,t),P(!1)}catch{}finally{R(!1)}};return S?(0,t.jsxs)("div",{className:"py-1.5","data-config-key":n,children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("span",{className:"text-sm text-muted-foreground shrink-0 min-w-[140px] inline-flex items-center gap-1.5",children:[e,_&&(0,t.jsx)(p.RestartRequiredBadge,{})]}),(0,t.jsx)(x.Input,{ref:A,type:d,value:T,onChange:e=>{D(e.target.value),M(null)},onKeyDown:e=>{"Enter"===e.key&&L(),"Escape"===e.key&&(D(v(i)),P(!1))},className:"max-w-[240px]",disabled:E,min:g,max:f}),u&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:u}),(0,t.jsx)(m.Button,{size:"sm",variant:"ghost",onClick:L,disabled:E,className:"h-7 w-7 p-0",children:(0,t.jsx)(s.Check,{className:"h-3.5 w-3.5"})}),(0,t.jsx)(m.Button,{size:"sm",variant:"ghost",onClick:()=>{D(v(i)),M(null),P(!1)},className:"h-7 w-7 p-0",children:(0,t.jsx)(c.X,{className:"h-3.5 w-3.5"})})]}),F&&(0,t.jsx)("p",{className:"text-xs text-destructive mt-1 ml-[148px]",children:F}),h&&!F&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-1 ml-[148px]",children:h})]}):(0,t.jsxs)("div",{className:`py-1.5 group cursor-pointer rounded px-1 -mx-1 hover:bg-muted/50 transition-colors${k?" border-l-2 border-blue-500 pl-2":""}`,"data-config-key":n,onClick:()=>P(!0),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("span",{className:"text-sm text-muted-foreground inline-flex items-center gap-1.5",children:[e,_&&(0,t.jsx)(p.RestartRequiredBadge,{})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[k&&(0,t.jsx)("span",{className:"text-[10px] font-medium text-blue-600 dark:text-blue-400",children:"modified"}),void 0!==w&&!$&&!k&&(0,t.jsxs)("button",{type:"button",onClick:z,className:"text-[10px] text-muted-foreground hover:text-foreground transition-colors inline-flex items-center gap-0.5 opacity-0 group-hover:opacity-100",children:[(0,t.jsx)(l.RotateCcw,{className:"h-2.5 w-2.5"}),"reset"]}),b&&null!==i&&!k&&(0,t.jsxs)("button",{type:"button",onClick:O,title:`Clear — sets ${e} to ${N}`,className:"text-[10px] text-muted-foreground hover:text-destructive transition-colors inline-flex items-center gap-0.5 opacity-0 group-hover:opacity-100",children:[(0,t.jsx)(o.Trash2,{className:"h-2.5 w-2.5"}),"clear"]}),(0,t.jsx)("span",{className:"text-sm font-medium text-foreground",children:null===i?N:"$"===u?`$${i}`:u?`${i} ${u}`:String(i)}),(0,t.jsx)(r.Pencil,{className:"h-3 w-3 text-muted-foreground opacity-0 group-hover:opacity-100 transition-opacity"})]})]}),h&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:h})]})}])},62452,64387,58692,e=>{"use strict";let t=(0,e.i(77379).default)("FolderSymlink",[["path",{d:"M2 9V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h7",key:"x1c07l"}],["path",{d:"m8 16 3-3-3-3",key:"rlqrt1"}]]);function a(e){return/^[A-Za-z]:[\\/]/.test(e)||/^\\\\/.test(e)||/^\/\/[^/]+\/[^/]+/.test(e)||e.includes("\\")}function s(e,t){let a=e.trim().replace(/[\\/]+$/g,"");return t&&(a=a.replace(/[\\/]+/g,"/").toLowerCase()),a}e.s(["FolderSymlink",0,t],62452),e.s(["hasPathTraversalSegment",0,function(e){return e.trim().split(/[\\/]+/).some(e=>".."===e)},"isClientAbsolutePath",0,function(e){let t=e.trim();return t.startsWith("/")||t.startsWith("~/")||t.startsWith("~\\")||/^[A-Za-z]:[\\/]/.test(t)||/^\\\\[^\\/]+[\\/][^\\/]+/.test(t)||/^\/\/[^/]+\/[^/]+/.test(t)},"isClientPathInsideOrEqual",0,function(e,t){if(0===e.trim().length||0===t.trim().length)return!1;let i=a(e)||a(t),r=s(e,i),n=s(t,i);return n===r||n.startsWith(`${r}/`)}],64387);var i=e.i(54710),r=e.i(81471);e.s(["CHARACTER_MAX_LENGTH",0,1e3,"CharacterEditor",0,function({value:e,onChange:t,disabled:a=!1,placeholder:s,rows:n=6}){let l=e.length,o=l>1e3,c=1e3===l;return(0,i.jsxs)("div",{className:"space-y-1",children:[(0,i.jsx)("textarea",{"data-testid":"character-editor-textarea",className:"w-full rounded border border-input bg-background p-3 text-sm font-mono resize-y focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",style:{minHeight:`${24*n}px`},value:e,onChange:e=>t(e.target.value),disabled:a,placeholder:s??"How should the agent talk to you? E.g. 'Speak casually. Tight bullets, no emoji. Use plain language for technical terms.'"}),(0,i.jsx)("div",{className:"flex justify-end",children:(0,i.jsxs)("span",{"data-testid":"character-editor-counter","aria-live":"polite",className:(0,r.cn)("text-xs tabular-nums",o?"font-semibold text-destructive":c?"text-amber-600":"text-muted-foreground"),children:[l,"/",1e3]})})]})},"isCharacterOverCap",0,function(e){return e.length>1e3}],58692)},62880,e=>{"use strict";var t=e.i(54710),a=e.i(34416),s=e.i(21682),i=e.i(88423),r=e.i(36413),n=e.i(20014),l=e.i(10427),o=e.i(8652),c=e.i(88);let d=(0,e.i(77379).default)("FolderCog",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["path",{d:"M10.3 20H4a2 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.9H20a2 2 0 0 1 2 2v3.3",key:"1k8050"}],["path",{d:"m21.7 19.4-.9-.3",key:"1qgwi9"}],["path",{d:"m15.2 16.9-.9-.3",key:"1t7mvx"}],["path",{d:"m16.6 21.7.3-.9",key:"1j67ps"}],["path",{d:"m19.1 15.2.3-.9",key:"18r7jp"}],["path",{d:"m19.6 21.7-.4-1",key:"z2vh2"}],["path",{d:"m16.8 15.3-.4-1",key:"1ei7r6"}],["path",{d:"m14.3 19.6 1-.4",key:"11sv9r"}],["path",{d:"m20.7 16.8 1-.4",key:"19m87a"}]]);var u=e.i(55575),m=e.i(75187),h=e.i(79634),x=e.i(94328),p=e.i(95486),g=e.i(81187),f=e.i(62452),y=e.i(72740),j=e.i(43477),v=e.i(58436),b=e.i(65268),N=e.i(81471),k=e.i(68894),w=e.i(64387);function C(e,t){return t?"Migrating…":"sessions_active"===e||"executions_active"===e||"migration_in_progress"===e?"Wait Then Retry":e?"Retry":"Confirm & Migrate"}function _({currentVaultMode:e,currentPrimaryVaultPath:s,onToast:i,trigger:r}){var l;let[o,c]=(0,a.useState)(!1),[d,u]=(0,a.useState)(e),[m,x]=(0,a.useState)(s),[g,P]=(0,a.useState)("abort"),[T,D]=(0,a.useState)(!1),[E,R]=(0,a.useState)(null),[F,M]=(0,a.useState)(null),[A,B]=(0,a.useState)({status:"idle"}),[H,$]=(0,a.useState)(null),z=(0,p.useQueryClient)(),{subscribeNamedEvent:O}=(0,k.useSSE)(),L=(0,a.useRef)(0);(0,a.useEffect)(()=>{o&&(u(e),x(s),P("abort"),R(null),M(null),B({status:"idle"}),$(null))},[o]),(0,a.useEffect)(()=>{if(o)return O("context_migration_progress",e=>{$(e)})},[o,O]),(0,a.useEffect)(()=>{o&&(R(null),M(null),$(null))},[d,m]),(0,a.useEffect)(()=>{let e=function(e){switch(e){case"target_has_agent_file_conflicts":return"overwrite_agent_files";case"target_has_unrelated_files":return"merge";default:return null}}("valid"===A.status?A.response.conflict?.kind:E?.error);e&&P(e)},[E?.error,A]);let I=(0,a.useMemo)(()=>{let e;return"obsidian"!==d?null:0===(e=m.trim()).length?{code:"empty",message:"Path is required."}:(0,w.isClientAbsolutePath)(e)?(0,w.hasPathTraversalSegment)(e)?{code:"path_traversal",message:"Path may not contain `..` segments."}:null:{code:"not_absolute",message:"Path must be absolute (for example /Users/me/Vault, ~/Vault, C:\\Vault, or \\\\server\\share)."}},[d,m]);(0,a.useEffect)(()=>{if(!o||"obsidian"!==d)return void B({status:"idle"});let e=m.trim();if(0===e.length)return void B({status:"idle"});if(I)return void B({status:"invalid",message:I.message});let t=++L.current;B({status:"validating"});let a=window.setTimeout(async()=>{try{let a=await b.api.post("/setup/validate-vault-path",{targetVaultMode:"obsidian",targetVaultPath:e});if(L.current!==t)return;B({status:"valid",response:a})}catch(e){if(L.current!==t)return;if(e instanceof b.ApiError){let t=e.body;B({status:"invalid",message:t?.message??e.message})}else B({status:"invalid",message:e instanceof Error?e.message:"Path validation failed."})}},250);return()=>window.clearTimeout(a)},[d,o,m,I]);let V="valid"===A.status?A.response.conflict:null,q=E?.error==="target_has_agent_file_conflicts"?{kind:"target_has_agent_file_conflicts",entries:E.entries??[],allowedPolicies:["overwrite_agent_files"]}:E?.error==="target_has_unrelated_files"?{kind:"target_has_unrelated_files",entries:E.entries??[],allowedPolicies:["merge","overwrite_agent_files"]}:null,U=null!==V||null!==q,W=V?.allowedPolicies??q?.allowedPolicies??["abort","merge","overwrite_agent_files"],K=V?.entries??q?.entries??[],G="valid"===A.status?A.response.targetDir:m.trim(),Q=!(l={submitting:T,samePath:d===e&&("plain"===d||G===s.trim()),mode:d,path:m,pathIssue:I,validationStatus:A.status,policy:g,allowedPolicies:W}).submitting&&!l.samePath&&("plain"===l.mode||l.path.trim().length>0&&null===l.pathIssue&&"valid"===l.validationStatus&&l.allowedPolicies.includes(l.policy));async function X(){D(!0),R(null),M(null);try{let e={targetVaultMode:d,conflictPolicy:g};"obsidian"===d&&(e.targetVaultPath=m.trim()),$(null);let t=await b.api.post("/setup/migrate-context",e);if("noop"===t.status)i("info","No change needed — already in the target state.");else{let{filesMoved:e,bytes:a,durationMs:s,manualActionRequired:r}=t,n=(a/1024).toFixed(1),l=`Moved ${e} file${1===e?"":"s"} (${n} KiB) in ${s} ms.`;r?i("warning",`${l} Observers failed to resume — restart the daemon.`):i("success",l)}await z.invalidateQueries({queryKey:["config"]}),await z.invalidateQueries({queryKey:["health"]}),c(!1)}catch(e){e instanceof b.ApiError?(R(e.body??{}),M(e.status)):(R({error:"internal_error",message:e instanceof Error?e.message:"Unexpected error."}),M(500))}finally{D(!1)}}return(0,t.jsxs)(j.Sheet,{open:o,onOpenChange:c,children:[(0,t.jsx)(j.SheetTrigger,{asChild:!0,children:r}),(0,t.jsxs)(j.SheetContent,{className:"overflow-y-auto",children:[(0,t.jsx)(j.SheetHeader,{children:(0,t.jsx)(j.SheetTitle,{children:"Change Management Mode"})}),(0,t.jsxs)("div",{className:"mt-6 space-y-5",children:[(0,t.jsxs)("section",{children:[(0,t.jsx)("p",{className:"text-sm font-medium text-foreground",children:"Where should the agent store its personal data?"}),(0,t.jsx)("div",{className:"mt-2 grid grid-cols-1 gap-2",children:["plain","obsidian"].map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>u(e),className:(0,N.cn)("rounded-md border px-3 py-2 text-left text-sm transition-colors",d===e?"border-primary bg-primary/10 text-foreground":"border-border bg-background text-muted-foreground hover:border-primary/50"),children:[(0,t.jsx)("span",{className:"block font-medium",children:"plain"===e?"This app manages it":"Obsidian-style local directory"}),(0,t.jsx)("span",{className:"block text-xs text-muted-foreground",children:"plain"===e?"Data lives in ~/.personal-agent/context. Only this app reads and writes.":"Data lives in a folder you pick (iCloud, Dropbox, Google Drive, or a plain local path)."})]},e))})]}),"obsidian"===d&&(0,t.jsxs)("section",{"data-testid":"path-input-section",children:[(0,t.jsx)("label",{htmlFor:"mm-path-input",className:"text-sm font-medium text-foreground",children:"Directory path"}),(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:"Use the folder picker to select a local directory. Cloud-sync folders (iCloud Drive, Dropbox, OneDrive, Google Drive) are supported. You can paste an absolute path if your desktop blocks native dialogs."}),(0,t.jsx)(v.DirectoryPickerField,{id:"mm-path-input",value:m,onChange:x,title:"Choose primary vault directory",placeholder:"Choose a folder for the primary vault",defaultPath:s||void 0,className:"mt-2",disabled:T}),I&&m.length>0&&(0,t.jsx)("p",{className:"mt-1 text-xs text-destructive",children:I.message}),"obsidian"===d&&!I&&"validating"===A.status&&(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:"Checking the path and target directory contents…"}),"obsidian"===d&&!I&&"invalid"===A.status&&(0,t.jsx)("p",{className:"mt-1 text-xs text-destructive",children:A.message}),"obsidian"===d&&"valid"===A.status&&A.response.fsInfo?.isCloudSync&&(0,t.jsx)(h.Alert,{variant:"info",className:"mt-2",children:(0,t.jsxs)("p",{children:["Cloud sync detected:"," ",(0,t.jsx)("strong",{children:A.response.fsInfo.isCloudSync}),". Migration is supported, but performance can be slower than a local SSD."]})})]}),U&&(0,t.jsxs)("section",{"data-testid":"policy-picker",children:[(0,t.jsx)("p",{className:"text-sm font-medium text-foreground",children:"Target directory already has content — pick a conflict policy:"}),(0,t.jsx)("div",{className:"mt-2 space-y-2",children:W.map(e=>(0,t.jsxs)("label",{className:"flex cursor-pointer items-start gap-2 rounded-md border border-border p-2 text-sm hover:bg-muted/40",children:[(0,t.jsx)("input",{type:"radio",name:"conflict-policy",value:e,checked:g===e,onChange:()=>P(e),className:"mt-1"}),(0,t.jsxs)("span",{children:[(0,t.jsx)("span",{className:"block font-medium",children:function(e){switch(e){case"abort":return"Abort on any conflict";case"merge":return"Merge (preserve existing target files)";case"overwrite_agent_files":return"Overwrite agent files at target"}}(e)}),(0,t.jsx)("span",{className:"block text-xs text-muted-foreground",children:function(e){switch(e){case"abort":return"Stop if the target has any unrelated content.";case"merge":return"Move source files alongside existing target content. Unrelated target files are left in place.";case"overwrite_agent_files":return"If target has files with the same names as the agent's, the target copies are archived into the backup and the source versions take their place."}}(e)})]})]},e))}),K.length>0&&(0,t.jsxs)("div",{className:"mt-2 rounded border border-border bg-muted/30 p-2",children:[(0,t.jsxs)("p",{className:"text-xs font-medium text-muted-foreground",children:["Conflicting entries (",K.length,"):"]}),(0,t.jsxs)("ul",{className:"mt-1 max-h-32 overflow-y-auto text-xs text-muted-foreground",children:[K.slice(0,50).map(e=>(0,t.jsx)("li",{className:"font-mono",children:e},e)),K.length>50&&(0,t.jsxs)("li",{className:"italic",children:["…and ",K.length-50," more"]})]})]})]}),(0,t.jsx)(h.Alert,{variant:"info",children:(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"font-medium",children:"Backup made before the move"}),(0,t.jsxs)("p",{className:"mt-0.5",children:["We'll back up your current data under ",(0,t.jsx)("code",{children:"~/.personal-agent/migration-backups/"})," for 7 days before moving. If the migration fails, all files are restored automatically."]})]})}),H&&(0,t.jsx)(h.Alert,{variant:"failed"===H.status?"error":"completed"===H.status?"success":"info",children:(0,t.jsxs)("div",{children:[(0,t.jsxs)("p",{className:"font-medium",children:["Migration progress: ",H.progress,"%"]}),(0,t.jsx)("p",{className:"mt-0.5",children:H.message})]})}),E&&(0,t.jsx)(S,{status:F,body:E,onDismiss:()=>{R(null),M(null)}}),(0,t.jsxs)("div",{className:"flex items-center justify-end gap-2 pt-2",children:[(0,t.jsx)(n.Button,{variant:"outline",onClick:()=>c(!1),disabled:T,children:"Cancel"}),(0,t.jsx)(n.Button,{onClick:X,disabled:!Q,"data-testid":"mm-confirm",children:T?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(y.Loader2,{className:"h-4 w-4 animate-spin"}),"Migrating…"]}):"Wait Then Retry"===C(E?.error,!1)?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(f.FolderSymlink,{className:"h-4 w-4"}),"Wait Then Retry"]}):"Retry"===C(E?.error,!1)?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(f.FolderSymlink,{className:"h-4 w-4"}),"Retry"]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(f.FolderSymlink,{className:"h-4 w-4"}),"Confirm & Migrate"]})})]})]})]})]})}function S({status:e,body:a,onDismiss:s}){return(0,t.jsx)(h.Alert,{variant:409===e?"warning":"error",children:(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsxs)("p",{className:"font-medium",children:[(0,t.jsx)(g.AlertTriangle,{className:"mr-1 inline h-3.5 w-3.5"}),function(e){switch(e.error){case"sessions_active":return"Active sessions block migration";case"executions_active":return"In-flight executions block migration";case"migration_in_progress":return"Another migration is already running";case"target_has_unrelated_files":return"Target has unrelated files";case"target_has_agent_file_conflicts":return"Target has conflicting files";case"target_invalid":return"Target path is invalid";case"backup_failed":return"Backup creation failed";case"move_failed":case"cross_fs_partial_failure":case"icloud_file_evicted":return"File move failed";case"move_verification_failed":return"Move verification failed";case"db_rewrite_failed":return"Database rewrite failed";case"settings_update_failed":return"Settings update failed";case"invalid_request":return"Request was rejected";case"internal_error":return"Unexpected error"}}(a)]}),(0,t.jsx)("p",{children:a.message}),"sessions_active"===a.error&&a.sessions&&a.sessions.length>0&&(0,t.jsx)("ul",{className:"mt-1 list-disc pl-4 text-xs",children:a.sessions.map(e=>(0,t.jsxs)("li",{children:["Session #",e.id," — ",e.scope," / ",e.scope_key]},e.id))}),"executions_active"===a.error&&a.executions&&a.executions.length>0&&(0,t.jsx)("ul",{className:"mt-1 list-disc pl-4 text-xs",children:a.executions.map((e,a)=>(0,t.jsx)("li",{children:JSON.stringify(e)},a))}),a.backupPath&&(0,t.jsxs)("div",{className:"mt-2 rounded bg-muted/40 p-2 text-xs",children:[(0,t.jsx)("p",{className:"font-medium",children:"Backup preserved at:"}),(0,t.jsx)("code",{className:"break-all",children:a.backupPath}),(0,t.jsx)("p",{className:"mt-1 text-muted-foreground",children:"Manual recovery: copy files back from this directory if the automatic rollback did not complete."}),(0,t.jsx)("a",{href:"#mm-recovery-instructions",className:"mt-2 inline-block underline underline-offset-2",children:"Recovery instructions"})]}),"manual_required"===a.rollbackStatus&&(0,t.jsx)("p",{className:"mt-1 text-xs font-medium",children:"Automatic rollback did not complete. Please restore from the backup above, then restart the daemon."}),a.backupPath&&(0,t.jsxs)("ol",{id:"mm-recovery-instructions",className:"list-decimal pl-4 text-xs text-muted-foreground",children:[(0,t.jsx)("li",{children:"Stop the daemon before touching the vault contents."}),(0,t.jsx)("li",{children:"Copy the backup contents back to the original location if the automatic rollback did not finish."}),(0,t.jsx)("li",{children:"Re-open Settings → Management Mode and retry the migration once the files are back in place."})]}),(0,t.jsx)("div",{className:"pt-2",children:(0,t.jsx)(n.Button,{size:"sm",variant:"ghost",onClick:s,children:"Dismiss"})})]})})}function P(){let{data:e}=(0,i.useConfig)(),{data:s}=(0,m.useHealth)(),[r,l]=(0,a.useState)(null);if((0,a.useEffect)(()=>{if(!r)return;let e=setTimeout(()=>l(null),6e3);return()=>clearTimeout(e)},[r]),!e)return null;let o=e.vaultMode,p=e.primaryVaultPath,g=e.contextDir,f=s?.degraded??null,y=f?.reason==="primary_vault_unreachable";return(0,t.jsx)("section",{id:"management-mode",className:"scroll-mt-4",children:(0,t.jsxs)(c.ConfigSection,{title:"Management Mode",children:[(0,t.jsx)("p",{className:"pb-2 text-xs text-muted-foreground",children:"Where the agent stores its personal data (today.md, projects, rules, routines, journals). Changing this moves all existing files to the new location atomically and can be done without reinstalling."}),(0,t.jsxs)("div",{className:"space-y-3 pb-2",children:[(0,t.jsx)(T,{label:"Mode",value:"obsidian"===o?"Obsidian-style local directory":"This app"}),"obsidian"===o&&(0,t.jsx)(T,{label:"Directory",value:p?(0,t.jsx)("code",{className:"font-mono text-xs break-all",children:p}):(0,t.jsx)("span",{className:"italic text-muted-foreground",children:"Not configured"})}),(0,t.jsx)(T,{label:"Effective path",value:(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,t.jsx)(u.FolderOpen,{className:"h-3.5 w-3.5 text-muted-foreground"}),(0,t.jsx)("code",{className:"font-mono text-xs break-all",children:g})]})}),y&&(0,t.jsx)(h.Alert,{variant:"error",children:(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"font-medium",children:"Primary vault unreachable"}),(0,t.jsxs)("p",{className:"mt-0.5",children:["The configured directory",f?.path?(0,t.jsxs)(t.Fragment,{children:[" ",(0,t.jsx)("code",{className:"font-mono",children:f.path})]}):null," ","is missing or not writable. Writes to the context API are currently blocked. Fix the path or switch back to “This app” to restore normal operation."]})]})}),(0,t.jsx)("div",{className:"flex items-center gap-2 pt-1",children:(0,t.jsx)(_,{currentVaultMode:o,currentPrimaryVaultPath:p,onToast:(e,t)=>l({type:e,message:t}),trigger:(0,t.jsxs)(n.Button,{size:"sm",variant:"outline",children:[(0,t.jsx)(d,{className:"h-3.5 w-3.5"}),"Change…"]})})}),(0,t.jsx)(x.SettingsToast,{toast:r})]})]})})}function T({label:e,value:a}){return(0,t.jsxs)("div",{className:"flex items-start justify-between gap-4 py-1",children:[(0,t.jsx)("span",{className:"text-sm text-muted-foreground min-w-[140px]",children:e}),(0,t.jsx)("div",{className:"text-sm text-foreground text-right",children:a})]})}var D=e.i(58692);function E({value:e,onSave:i}){let[l,o]=(0,a.useState)(!1),[c,d]=(0,a.useState)(e),[u,m]=(0,a.useState)(!1),h=(0,r.useDiscardGeneration)(),x=(0,a.useRef)(h);(0,a.useEffect)(()=>{h!==x.current&&(x.current=h,o(!1))},[h]),(0,a.useEffect)(()=>{l||d(e)},[e,l]);let p=(0,D.isCharacterOverCap)(c),g=(0,a.useCallback)(async()=>{if(c===e)return void o(!1);m(!0);try{await i("character",c),o(!1)}catch{}finally{m(!1)}},[c,e,i]);return l?(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(D.CharacterEditor,{value:c,onChange:d,disabled:u}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(n.Button,{size:"sm",onClick:g,disabled:u||p,children:u?"Applying...":"Done"}),(0,t.jsx)(n.Button,{size:"sm",variant:"ghost",onClick:()=>{d(e),o(!1)},children:"Cancel"})]})]}):(0,t.jsxs)("div",{className:"space-y-2",children:[e?(0,t.jsx)("pre",{className:"whitespace-pre-wrap rounded bg-muted p-3 text-xs text-foreground min-h-[60px]",children:e}):(0,t.jsx)("p",{className:"text-xs italic text-muted-foreground",children:"(no character set — default behavior)"}),(0,t.jsxs)(n.Button,{size:"sm",variant:"outline",onClick:()=>o(!0),children:[(0,t.jsx)(s.Pencil,{className:"h-3.5 w-3.5 mr-1"}),"Edit"]})]})}let R=[{tag:"en",label:"English"},{tag:"ja",label:"Japanese"},{tag:"zh",label:"Chinese"},{tag:"es",label:"Español (Spanish)"},{tag:"fr",label:"Français (French)"},{tag:"de",label:"Deutsch (German)"},{tag:"pt",label:"Português (Portuguese)"},{tag:"ko",label:"한국어 (Korean)"},{tag:"__custom__",label:"Other (BCP-47 tag…)"}],F=/^[a-z]{2,3}(?:-[A-Za-z0-9]{2,8})?$/;function M({value:e,modified:s,onSave:i}){let r=R.some(t=>t.tag===e&&"__custom__"!==t.tag),[n,c]=(0,a.useState)(null),[d,u]=(0,a.useState)(null),m=r?e:"__custom__",h=n??m,x=d??(r?"":e),p="__custom__"===h&&x.trim().length>0&&!F.test(x.trim());return(0,t.jsxs)("div",{className:(0,N.cn)("py-1.5",s&&"border-l-2 border-blue-500 pl-2 -ml-1 rounded"),"data-config-key":"primaryLanguage",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("p",{className:"text-sm text-muted-foreground inline-flex items-center gap-1.5",children:["Primary Language",s&&(0,t.jsx)("span",{className:"text-[10px] font-medium text-blue-600 dark:text-blue-400",children:"modified"})]}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:"Language for user-facing prose files (profile, daily journal, weekly/monthly reviews). System files (agent/journal, dossiers, context-index) stay in English."})]}),(0,t.jsxs)(l.Select,{value:h,onValueChange:t=>{c(t===m?null:t),"__custom__"===t?u(r?"":e):(u(null),t!==e&&i("primaryLanguage",t))},children:[(0,t.jsx)(l.SelectTrigger,{className:"w-[220px]",children:(0,t.jsx)(l.SelectValue,{})}),(0,t.jsx)(l.SelectContent,{children:R.map(e=>(0,t.jsx)(l.SelectItem,{value:e.tag,children:e.label},e.tag))})]})]}),"__custom__"===h&&(0,t.jsxs)("div",{className:"flex flex-col gap-1 pt-2",children:[(0,t.jsx)(o.Input,{value:x,onChange:e=>u(e.target.value),onBlur:()=>{let t=x.trim();t&&t!==e&&F.test(t)&&(i("primaryLanguage",t),c(null),u(null))},placeholder:"e.g. zh-Hans or pt-BR",className:"max-w-[240px]"}),p&&(0,t.jsxs)("p",{className:"text-xs text-red-500",children:["Use a BCP-47 tag like ",(0,t.jsx)("code",{children:"en-US"})," or ",(0,t.jsx)("code",{children:"zh-Hans"}),"."]}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"Blur the field to save."})]})]})}e.s(["default",0,function(){let{data:e}=(0,i.useConfig)(),{df:a}=(0,i.useConfigDefaults)(),{deferSaveFor:s,dv:n,dirtyFields:l}=(0,r.useDirtyFields)();if(!e)return(0,t.jsx)("div",{className:"text-muted-foreground",children:"Loading..."});let o=s(e);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-2xl font-semibold text-foreground",children:"Profile"}),(0,t.jsx)("p",{className:"mt-1 max-w-3xl text-sm text-muted-foreground",children:"Your agent’s identity, personality, and the time axis that anchors every schedule and date calculation."})]}),(0,t.jsx)(c.ConfigSection,{title:"Agent Identity",children:(0,t.jsx)(c.EditableField,{label:"Display Name",value:n("agentDisplayName",e.agentDisplayName),configKey:"agentDisplayName",modified:l.has("agentDisplayName"),defaultValue:a("agentDisplayName"),description:"The name your agent signs off with. Shown in the dashboard header and prefixed to WhatsApp replies as `[name]` so you can tell it apart from human contacts.",onSave:o})}),(0,t.jsxs)(c.ConfigSection,{title:"Personality",children:[(0,t.jsxs)("p",{className:"pb-2 text-xs text-muted-foreground",children:["Character — how the agent should talk to you. Applies across every session. Safety rules still take precedence. Capped at"," ",D.CHARACTER_MAX_LENGTH," characters. Leave empty for default behavior."]}),(0,t.jsx)(E,{value:n("character",e.character),onSave:o})]}),(0,t.jsxs)(c.ConfigSection,{title:"Language",children:[(0,t.jsx)("p",{className:"pb-2 text-xs text-muted-foreground",children:"Selection made during initial setup. Changing this takes effect the next time the agent writes a user-facing file; existing files are not rewritten."}),(0,t.jsx)(M,{value:n("primaryLanguage",e.primaryLanguage),modified:l.has("primaryLanguage"),onSave:o})]}),(0,t.jsx)(P,{})]})}],62880)}]);
|