@aitne/dashboard 0.1.4 → 0.1.7
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/trace +2 -2
- package/.next/trace-build +1 -1
- 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/server/chunks/{[root-of-the-server]__00gp8gz._.js.map → [root-of-the-server]__01knfi.._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__0-0wgko._.js.map → [root-of-the-server]__08_s4yo._.js.map} +0 -0
- /package/.next/static/{CDXVH-99b-ZdHz0Rd9pr_ → lsV2FU1YUtwJPmeiim7tk}/_buildManifest.js +0 -0
- /package/.next/static/{CDXVH-99b-ZdHz0Rd9pr_ → lsV2FU1YUtwJPmeiim7tk}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{CDXVH-99b-ZdHz0Rd9pr_ → lsV2FU1YUtwJPmeiim7tk}/_ssgManifest.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
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),r=e.i(72740),i=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[v,j]=(0,a.useState)(!1),[y,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||v}),(0,t.jsxs)(i.Button,{type:"button",variant:"outline",onClick:N,disabled:x||v,className:"shrink-0 gap-2",children:[v?(0,t.jsx)(r.Loader2,{className:"h-4 w-4 animate-spin"}):(0,t.jsx)(s.FolderOpen,{className:"h-4 w-4"}),v?"Opening...":f]})]}),y&&(0,t.jsx)("p",{className:"text-xs text-destructive",children:y})]})}])},99758,e=>{"use strict";let t=(0,e.i(77379).default)("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",0,t],99758)},74490,e=>{"use strict";var t=e.i(54710),a=e.i(81471);let s=(0,e.i(94237).cva)("rounded-xl border p-5 shadow-[0_1px_3px_rgb(0_0_0/0.04)]",{variants:{tone:{default:"border-border bg-card",warning:"border-amber-200 bg-amber-50/50 dark:border-amber-900 dark:bg-amber-950/30",success:"border-emerald-200 bg-emerald-50/50 dark:border-emerald-900 dark:bg-emerald-950/30",error:"border-red-200 bg-red-50/50 dark:border-red-900 dark:bg-red-950/30"},interactive:{true:"transition-shadow duration-150 hover:shadow-[0_4px_6px_rgb(0_0_0/0.06)]",false:""}},defaultVariants:{tone:"default",interactive:!1}});e.s(["Card",0,function({className:e,tone:r,interactive:i,...n}){return(0,t.jsx)("div",{className:(0,a.cn)(s({tone:r,interactive:i}),e),...n})},"CardHeader",0,function({className:e,...s}){return(0,t.jsx)("div",{className:(0,a.cn)("mb-3 flex items-center justify-between",e),...s})},"CardStatLabel",0,function({className:e,...s}){return(0,t.jsx)("h3",{className:(0,a.cn)("text-sm font-medium text-muted-foreground",e),...s})},"CardTitle",0,function({className:e,...s}){return(0,t.jsx)("h3",{className:(0,a.cn)("text-lg font-semibold text-foreground",e),...s})},"CardValue",0,function({className:e,...s}){return(0,t.jsx)("div",{className:(0,a.cn)("text-3xl font-bold text-foreground",e),...s})}])},90925,e=>{"use strict";let t=(0,e.i(77379).default)("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);e.s(["Trash2",0,t],90925)},60168,e=>{"use strict";let t=(0,e.i(77379).default)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",0,t],60168)},21682,e=>{"use strict";let t=(0,e.i(77379).default)("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);e.s(["Pencil",0,t],21682)},55575,e=>{"use strict";let t=(0,e.i(77379).default)("FolderOpen",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);e.s(["FolderOpen",0,t],55575)},66127,e=>{"use strict";var t=e.i(65268);async function a({title:e,defaultPath:s}){let r=await t.api.post("/system/pick-directory",{title:e,...s?{defaultPath:s}:{}});if("selected"===r.status&&r.path)return r.path;if("cancelled"===r.status)return null;throw Error(r.message??"Folder picker is unavailable.")}e.s(["pickDirectoryFromDesktop",0,a])},25795,e=>{"use strict";let t=(0,e.i(77379).default)("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);e.s(["RotateCcw",0,t],25795)},82239,e=>{"use strict";var t=e.i(54710),a=e.i(25795),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),r=e.i(8011),i=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)(i.TooltipProvider,{delayDuration:300,children:(0,t.jsxs)(i.Tooltip,{children:[(0,t.jsx)(i.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:t=>{t.preventDefault(),t.stopPropagation(),(0,r.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)(i.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),r=e.i(55575),i=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),v=e.i(36413);let j=new Set(d.RESTART_REQUIRED_KEY_TUPLE);function y(e){return null===e?"":String(e)}e.s(["ConfigSection",0,function({title:e,children:a,helpDocId:s,helpAnchor:r}){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:r??null,label:e})]})}),(0,t.jsx)("div",{className:"space-y-0.5 [&>p]:max-w-prose",children:a})]})},"EditableArrayField",0,function({label:e,values:s,configKey:i,variant:l="gray",placeholder:o="Add item...",directoryPicker:d,modified:h,onSave:g}){let v=j.has(i),[y,b]=(0,a.useState)(""),[N,k]=(0,a.useState)(!1),[w,_]=(0,a.useState)(null),C=async()=>{let e=y.trim();if(!(!e||s.includes(e))){k(!0),_(null);try{await g(i,[...s,e]),b("")}catch{}finally{k(!1)}}},S=async e=>{k(!0);try{await g(i,s.filter(t=>t!==e))}finally{k(!1)}},P=async()=>{if(d){k(!0),_(null);try{let e=await (0,f.pickDirectoryFromDesktop)({title:d.title,defaultPath:y.trim()||d.defaultPath});if(!e)return;if(s.includes(e)){b(e),_("That directory is already in the list.");return}await g(i,[...s,e]),b("")}catch(e){_(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":i,children:[(0,t.jsxs)("p",{className:"text-sm text-muted-foreground mb-2 inline-flex items-center gap-1.5",children:[e,v&&(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:y,onChange:e=>b(e.target.value),onKeyDown:e=>{"Enter"===e.key&&C()},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)(r.FolderOpen,{className:"h-3.5 w-3.5 mr-1"}),d.buttonLabel??"Choose"]}),(0,t.jsxs)(m.Button,{size:"sm",variant:"outline",onClick:C,disabled:!y.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:r,description:i,modified:n,defaultValue:o,onSave:c}){let[d,u]=(0,a.useState)(!1),h=j.has(r),x=void 0!==o&&s===o,g=async()=>{u(!0);try{await c(r,!s)}finally{u(!1)}},f=async()=>{if(void 0!==o){u(!0);try{await c(r,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":r,children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("p",{className:"text-sm text-muted-foreground inline-flex items-center gap-1.5",children:[e,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"]})]}),i&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:i})]}),(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:r,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:_}){let C=j.has(n),[S,P]=(0,a.useState)(!1),[T,D]=(0,a.useState)(y(r)),[E,R]=(0,a.useState)(!1),[F,M]=(0,a.useState)(null),A=(0,a.useRef)(null),B=(0,v.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(y(r))},[r,S]);let $=void 0!==w&&r===w,z=async e=>{if(e.stopPropagation(),void 0!==w){R(!0);try{await _(n,w)}finally{R(!1)}}},L=async e=>{e.stopPropagation(),R(!0);try{await _(n,null)}finally{R(!1)}},O=async()=>{let e=T.trim(),t=b&&""===e?null:"number"===d?Number(T):T;if(t===r)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 _(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,C&&(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&&O(),"Escape"===e.key&&(D(y(r)),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:O,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(y(r)),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,C&&(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!==r&&!k&&(0,t.jsxs)("button",{type:"button",onClick:L,title:`Clear — sets ${e} to ${N}`,className:"text-[10px] text-muted-foreground hover:text-destructive transition-colors inline-flex items-center gap-0.5 opacity-0 group-hover:opacity-100",children:[(0,t.jsx)(o.Trash2,{className:"h-2.5 w-2.5"}),"clear"]}),(0,t.jsx)("span",{className:"text-sm font-medium text-foreground",children:null===r?N:"$"===u?`$${r}`:u?`${r} ${u}`:String(r)}),(0,t.jsx)(i.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 r=a(e)||a(t),i=s(e,r),n=s(t,r);return n===i||n.startsWith(`${i}/`)}],64387);var r=e.i(54710),i=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,r.jsxs)("div",{className:"space-y-1",children:[(0,r.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,r.jsx)("div",{className:"flex justify-end",children:(0,r.jsxs)("span",{"data-testid":"character-editor-counter","aria-live":"polite",className:(0,i.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),r=e.i(88423),i=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),v=e.i(72740),j=e.i(43477),y=e.i(58436),b=e.i(65268),N=e.i(81471),k=e.i(68894),w=e.i(64387);function _(e,t){return t?"Migrating…":"sessions_active"===e||"executions_active"===e||"migration_in_progress"===e?"Wait Then Retry":e?"Retry":"Confirm & Migrate"}function C({currentVaultMode:e,currentPrimaryVaultPath:s,onToast:r,trigger:i}){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:L}=(0,k.useSSE)(),O=(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 L("context_migration_progress",e=>{$(e)})},[o,L]),(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 V=(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(V)return void B({status:"invalid",message:V.message});let t=++O.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(O.current!==t)return;B({status:"valid",response:a})}catch(e){if(O.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,V]);let I="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!==I||null!==q,W=I?.allowedPolicies??q?.allowedPolicies??["abort","merge","overwrite_agent_files"],K=I?.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:V,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)r("info","No change needed — already in the target state.");else{let{filesMoved:e,bytes:a,durationMs:s,manualActionRequired:i}=t,n=(a/1024).toFixed(1),l=`Moved ${e} file${1===e?"":"s"} (${n} KiB) in ${s} ms.`;i?r("warning",`${l} Observers failed to resume — restart the daemon.`):r("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:i}),(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)(y.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}),V&&m.length>0&&(0,t.jsx)("p",{className:"mt-1 text-xs text-destructive",children:V.message}),"obsidian"===d&&!V&&"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&&!V&&"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)(v.Loader2,{className:"h-4 w-4 animate-spin"}),"Migrating…"]}):"Wait Then Retry"===_(E?.error,!1)?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(f.FolderSymlink,{className:"h-4 w-4"}),"Wait Then Retry"]}):"Retry"===_(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,r.useConfig)(),{data:s}=(0,m.useHealth)(),[i,l]=(0,a.useState)(null);if((0,a.useEffect)(()=>{if(!i)return;let e=setTimeout(()=>l(null),6e3);return()=>clearTimeout(e)},[i]),!e)return null;let o=e.vaultMode,p=e.primaryVaultPath,g=e.contextDir,f=s?.degraded??null,v=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})]})}),v&&(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)(C,{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:i})]})]})})}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:r}){let[l,o]=(0,a.useState)(!1),[c,d]=(0,a.useState)(e),[u,m]=(0,a.useState)(!1),h=(0,i.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 r("character",c),o(!1)}catch{}finally{m(!1)}},[c,e,r]);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:r}){let i=R.some(t=>t.tag===e&&"__custom__"!==t.tag),[n,c]=(0,a.useState)(null),[d,u]=(0,a.useState)(null),m=i?e:"__custom__",h=n??m,x=d??(i?"":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(i?"":e):(u(null),t!==e&&r("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)&&(r("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,r.useConfig)(),{df:a}=(0,r.useConfigDefaults)(),{deferSaveFor:s,dv:n,dirtyFields:l}=(0,i.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)}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,76176,e=>{"use strict";let t={claude:"Claude Code",codex:"OpenAI Codex",gemini:"Gemini CLI"},a={claude:"Claude",codex:"Codex",gemini:"Gemini"},i={claude:["#7C2D12","#B54B2D","#E15B40","#F97316","#FDBA74"],codex:["#86198F","#A21CAF","#D946EF","#E879F9","#F5D0FE"],gemini:["#1E3A8A","#1D4ED8","#1C69FF","#60A5FA","#93C5FD"]},r=["#6b7280","#9ca3af","#4b5563","#374151"],n={claude:"orange",codex:"pink",gemini:"blue"},s={"routine.morning_routine":"Morning Routine","routine.evening_review":"Evening Review","routine.weekly_review":"Weekly Review","routine.monthly_review":"Monthly Review","routine.hourly_check":"Hourly Check","message.dm":"Direct Messages","message.mention":"Mentions","dashboard.chat":"Dashboard Chat","agent.task":"Scheduled Tasks","calendar.change":"Calendar Events",gmail_classify:"Gmail Classification","github.pull_request.review_requested":"GitHub Review Requests","github.assigned":"GitHub Assignments","github.security_alert":"GitHub Security Alerts","github.workflow_run.failed":"GitHub CI Failures"};function l(e){let t;if(!e)return[];try{t=JSON.parse(e)}catch{return[]}if(!t||"object"!=typeof t)return[];let a=[];for(let[e,i]of Object.entries(t))i&&"object"==typeof i&&a.push({modelId:e,inputTokens:"number"==typeof i.inputTokens?i.inputTokens:0,outputTokens:"number"==typeof i.outputTokens?i.outputTokens:0,costUsd:"number"==typeof i.costUsd?i.costUsd:0});return a.sort((e,t)=>t.costUsd-e.costUsd)}function o(e){if(!e)return null;let t=e.toLowerCase();return t.includes("claude")||t.includes("sonnet")||t.includes("opus")||t.includes("haiku")?"claude":t.includes("gemini")?"gemini":t.includes("gpt")||t.includes("codex")||t.includes("o3")||t.includes("o4")?"codex":null}e.s(["BACKEND_BADGE_VARIANTS",0,n,"BACKEND_COLORS",0,{claude:"#E15B40",codex:"#D946EF",gemini:"#1C69FF"},"BACKEND_LABELS",0,t,"BACKEND_PROVIDER_LABELS",0,{claude:"Claude (Anthropic)",codex:"ChatGPT (OpenAI)",gemini:"Gemini (Google)"},"BACKEND_PROVIDER_SHORT",0,{claude:"Claude",codex:"ChatGPT",gemini:"Gemini"},"CHART_CATEGORY_PALETTE",0,["#3b82f6","#10b981","#f59e0b","#8b5cf6","#ec4899","#14b8a6","#f97316","#6366f1","#ef4444","#22c55e"],"assignModelColors",0,function(e){let t=new Map;for(let a of e){if(!a)continue;let e=o(a)??"other",i=t.get(e)??[];i.push(a),t.set(e,i)}let a={};for(let[e,n]of t){n.sort((e,t)=>e.localeCompare(t));let t="other"===e?r:i[e],s=n.length;n.forEach((e,i)=>{let r;r=s>=t.length?i%t.length:1===s?Math.floor(t.length/2):Math.floor((i+.5)*t.length/s),a[e]=t[r]})}return a},"detectBackendFromModel",0,o,"formatModelName",0,function(e){return e?e.replace(/^claude-/,"Claude ").replace(/^gpt-/,"GPT-").replace(/^gemini-/,"Gemini ").replace(/-/g," ").replace(/\bpreview\b/gi,"(preview)").replace(/\bpro\b/gi,"Pro").replace(/\bflash\b/gi,"Flash").replace(/\blite\b/gi,"Lite").replace(/\bmini\b/gi,"Mini").replace(/\bcodex\b/gi,"Codex").replace(/\bopus\b/gi,"Opus").replace(/\bsonnet\b/gi,"Sonnet").replace(/\bhaiku\b/gi,"Haiku").replace(/\s+/g," ").trim():"Not set"},"formatShortModelName",0,function(e){if(!e)return"unknown";if("opus"===e)return"Opus";if("sonnet"===e)return"Sonnet";let t=e.replace(/-\d{8,}$/,"").replace(/^claude-/,"").replace(/(\d+)-(\d+)(?![-\d])/g,"$1.$2").replace(/-/g," ");return e.startsWith("gpt-")&&(t=`GPT-${t.replace(/^gpt\s*/i,"")}`),e.startsWith("gemini-")&&(t=t.replace(/^gemini\s*/i,"Gemini ")),t.replace(/\bopus\b/gi,"Opus").replace(/\bsonnet\b/gi,"Sonnet").replace(/\bhaiku\b/gi,"Haiku").replace(/\bpro\b/gi,"Pro").replace(/\bflash\b/gi,"Flash").replace(/\blite\b/gi,"Lite").replace(/\bmini\b/gi,"Mini").replace(/\s+/g," ").trim()},"getBackendLabel",0,function(e){return t[e]},"getBackendShortLabel",0,function(e){return a[e]},"getProcessLabel",0,function(e){return s[e]??e},"modelBadgeVariant",0,function(e){if(!e)return"gray";let t=o(e);return t?n[t]:"gray"},"parseModelUsage",0,l,"pickDisplayModel",0,function(e,t){let a=l(t);return a.length>0&&a[0]?a[0].modelId:e??null}])},74490,e=>{"use strict";var t=e.i(54710),a=e.i(81471);let i=(0,e.i(94237).cva)("rounded-xl border p-5 shadow-[0_1px_3px_rgb(0_0_0/0.04)]",{variants:{tone:{default:"border-border bg-card",warning:"border-amber-200 bg-amber-50/50 dark:border-amber-900 dark:bg-amber-950/30",success:"border-emerald-200 bg-emerald-50/50 dark:border-emerald-900 dark:bg-emerald-950/30",error:"border-red-200 bg-red-50/50 dark:border-red-900 dark:bg-red-950/30"},interactive:{true:"transition-shadow duration-150 hover:shadow-[0_4px_6px_rgb(0_0_0/0.06)]",false:""}},defaultVariants:{tone:"default",interactive:!1}});e.s(["Card",0,function({className:e,tone:r,interactive:n,...s}){return(0,t.jsx)("div",{className:(0,a.cn)(i({tone:r,interactive:n}),e),...s})},"CardHeader",0,function({className:e,...i}){return(0,t.jsx)("div",{className:(0,a.cn)("mb-3 flex items-center justify-between",e),...i})},"CardStatLabel",0,function({className:e,...i}){return(0,t.jsx)("h3",{className:(0,a.cn)("text-sm font-medium text-muted-foreground",e),...i})},"CardTitle",0,function({className:e,...i}){return(0,t.jsx)("h3",{className:(0,a.cn)("text-lg font-semibold text-foreground",e),...i})},"CardValue",0,function({className:e,...i}){return(0,t.jsx)("div",{className:(0,a.cn)("text-3xl font-bold text-foreground",e),...i})}])},90925,e=>{"use strict";let t=(0,e.i(77379).default)("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);e.s(["Trash2",0,t],90925)},60168,e=>{"use strict";let t=(0,e.i(77379).default)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",0,t],60168)},21682,e=>{"use strict";let t=(0,e.i(77379).default)("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);e.s(["Pencil",0,t],21682)},55575,e=>{"use strict";let t=(0,e.i(77379).default)("FolderOpen",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);e.s(["FolderOpen",0,t],55575)},66127,e=>{"use strict";var t=e.i(65268);async function a({title:e,defaultPath:i}){let r=await t.api.post("/system/pick-directory",{title:e,...i?{defaultPath:i}:{}});if("selected"===r.status&&r.path)return r.path;if("cancelled"===r.status)return null;throw Error(r.message??"Folder picker is unavailable.")}e.s(["pickDirectoryFromDesktop",0,a])},25795,e=>{"use strict";let t=(0,e.i(77379).default)("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);e.s(["RotateCcw",0,t],25795)},49681,e=>{"use strict";var t=e.i(54710),a=e.i(7771),i=e.i(95486),r=e.i(8011),n=e.i(10628),s=e.i(81471);e.s(["DocsHelpInline",0,function({docId:e,anchor:l=null,label:o,className:d}){let c=(0,i.useQueryClient)(),u=o??"Help";return(0,t.jsx)(n.TooltipProvider,{delayDuration:300,children:(0,t.jsxs)(n.Tooltip,{children:[(0,t.jsx)(n.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:t=>{t.preventDefault(),t.stopPropagation(),(0,r.openDocsHelpSlideover)(c,{docId:e,anchor:l,autoFocusComposer:!1})},className:(0,s.cn)("inline-flex h-5 w-5 items-center justify-center rounded-full text-muted-foreground/70 transition hover:bg-accent hover:text-foreground",d),"aria-label":`Open help — ${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)(n.TooltipContent,{side:"top",children:(0,t.jsx)("span",{children:u})})]})})}])},82239,e=>{"use strict";var t=e.i(54710),a=e.i(25795),i=e.i(10628);e.s(["RestartRequiredBadge",0,function(){return(0,t.jsxs)(i.Tooltip,{children:[(0,t.jsx)(i.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)(i.TooltipContent,{side:"top",className:"max-w-[220px] text-xs",children:"Changing this value requires a daemon restart to take effect."})]})}])},88,e=>{"use strict";var t=e.i(54710),a=e.i(34416),i=e.i(99758),r=e.i(55575),n=e.i(21682),s=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),p=e.i(20014),m=e.i(74490),h=e.i(8652),x=e.i(82239),f=e.i(49681),g=e.i(66127),b=e.i(36413);let y=new Set(c.RESTART_REQUIRED_KEY_TUPLE);function v(e){return null===e?"":String(e)}e.s(["ConfigSection",0,function({title:e,children:a,helpDocId:i,helpAnchor:r}){return(0,t.jsxs)(m.Card,{children:[(0,t.jsx)(m.CardHeader,{children:(0,t.jsxs)(m.CardTitle,{className:"flex items-center gap-1.5",children:[(0,t.jsx)("span",{children:e}),i&&(0,t.jsx)(f.DocsHelpInline,{docId:i,anchor:r??null,label:e})]})}),(0,t.jsx)("div",{className:"space-y-0.5 [&>p]:max-w-prose",children:a})]})},"EditableArrayField",0,function({label:e,values:i,configKey:n,variant:l="gray",placeholder:o="Add item...",directoryPicker:c,modified:m,onSave:f}){let b=y.has(n),[v,k]=(0,a.useState)(""),[C,j]=(0,a.useState)(!1),[w,N]=(0,a.useState)(null),R=async()=>{let e=v.trim();if(!(!e||i.includes(e))){j(!0),N(null);try{await f(n,[...i,e]),k("")}catch{}finally{j(!1)}}},E=async e=>{j(!0);try{await f(n,i.filter(t=>t!==e))}finally{j(!1)}},T=async()=>{if(c){j(!0),N(null);try{let e=await (0,g.pickDirectoryFromDesktop)({title:c.title,defaultPath:v.trim()||c.defaultPath});if(!e)return;if(i.includes(e)){k(e),N("That directory is already in the list.");return}await f(n,[...i,e]),k("")}catch(e){N(e instanceof Error?e.message:"Folder picker is unavailable.")}finally{j(!1)}}};return(0,t.jsxs)("div",{className:`py-2${m?" border-l-2 border-blue-500 pl-2 -ml-1 rounded":""}`,"data-config-key":n,children:[(0,t.jsxs)("p",{className:"text-sm text-muted-foreground mb-2 inline-flex items-center gap-1.5",children:[e,b&&(0,t.jsx)(x.RestartRequiredBadge,{}),m&&(0,t.jsx)("span",{className:"text-[10px] font-medium text-blue-600 dark:text-blue-400",children:"modified"})]}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-1.5 mb-2",children:[i.map(e=>(0,t.jsxs)(u.Badge,{variant:l,className:"gap-1 pr-1",children:[e,(0,t.jsx)("button",{onClick:()=>E(e),disabled:C,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===i.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)(h.Input,{value:v,onChange:e=>k(e.target.value),onKeyDown:e=>{"Enter"===e.key&&R()},placeholder:o,className:"max-w-[320px]",disabled:C}),c&&(0,t.jsxs)(p.Button,{size:"sm",variant:"outline",onClick:T,disabled:C,children:[(0,t.jsx)(r.FolderOpen,{className:"h-3.5 w-3.5 mr-1"}),c.buttonLabel??"Choose"]}),(0,t.jsxs)(p.Button,{size:"sm",variant:"outline",onClick:R,disabled:!v.trim()||C,children:[(0,t.jsx)(s.Plus,{className:"h-3.5 w-3.5 mr-1"}),"Add"]})]}),w&&(0,t.jsx)("p",{className:"mt-1 text-xs text-destructive",children:w})]})},"EditableBooleanField",0,function({label:e,value:i,configKey:r,description:n,modified:s,defaultValue:o,onSave:d}){let[c,u]=(0,a.useState)(!1),m=y.has(r),h=void 0!==o&&i===o,f=async()=>{u(!0);try{await d(r,!i)}finally{u(!1)}},g=async()=>{if(void 0!==o){u(!0);try{await d(r,o)}finally{u(!1)}}};return(0,t.jsx)("div",{className:`py-1.5 group${s?" border-l-2 border-blue-500 pl-2 -ml-1 rounded":""}`,"data-config-key":r,children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("p",{className:"text-sm text-muted-foreground inline-flex items-center gap-1.5",children:[e,m&&(0,t.jsx)(x.RestartRequiredBadge,{}),s&&(0,t.jsx)("span",{className:"text-[10px] font-medium text-blue-600 dark:text-blue-400",children:"modified"}),void 0!==o&&!h&&!s&&(0,t.jsxs)("button",{type:"button",onClick:g,className:"text-[10px] text-muted-foreground hover:text-foreground transition-colors inline-flex items-center gap-0.5 opacity-0 group-hover:opacity-100",children:[(0,t.jsx)(l.RotateCcw,{className:"h-2.5 w-2.5"}),"reset"]})]}),n&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:n})]}),(0,t.jsx)(p.Button,{variant:i?"default":"outline",size:"sm",onClick:f,disabled:c,children:i?"Enabled":"Disabled"})]})})},"EditableField",0,function({label:e,value:r,configKey:s,type:c="text",suffix:u,description:m,min:f,max:g,nullable:k=!1,emptyLabel:C="Not set",modified:j,defaultValue:w,onSave:N}){let R=y.has(s),[E,T]=(0,a.useState)(!1),[D,A]=(0,a.useState)(v(r)),[M,_]=(0,a.useState)(!1),[S,B]=(0,a.useState)(null),F=(0,a.useRef)(null),P=(0,b.useDiscardGeneration)(),H=(0,a.useRef)(P);(0,a.useEffect)(()=>{P!==H.current&&(H.current=P,T(!1),B(null))},[P]),(0,a.useEffect)(()=>{E&&F.current?.focus()},[E]),(0,a.useEffect)(()=>{E||A(v(r))},[r,E]);let L=void 0!==w&&r===w,O=async e=>{if(e.stopPropagation(),void 0!==w){_(!0);try{await N(s,w)}finally{_(!1)}}},q=async e=>{e.stopPropagation(),_(!0);try{await N(s,null)}finally{_(!1)}},G=async()=>{let e=D.trim(),t=k&&""===e?null:"number"===c?Number(D):D;if(t===r)return void T(!1);if(null!==t&&"number"===c&&(void 0!==f||void 0!==g)&&(void 0!==f&&t<f||void 0!==g&&t>g))return void B(`Must be ${f??""}–${g??""}`);B(null),_(!0);try{await N(s,t),T(!1)}catch{}finally{_(!1)}};return E?(0,t.jsxs)("div",{className:"py-1.5","data-config-key":s,children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("span",{className:"text-sm text-muted-foreground shrink-0 min-w-[140px] inline-flex items-center gap-1.5",children:[e,R&&(0,t.jsx)(x.RestartRequiredBadge,{})]}),(0,t.jsx)(h.Input,{ref:F,type:c,value:D,onChange:e=>{A(e.target.value),B(null)},onKeyDown:e=>{"Enter"===e.key&&G(),"Escape"===e.key&&(A(v(r)),T(!1))},className:"max-w-[240px]",disabled:M,min:f,max:g}),u&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:u}),(0,t.jsx)(p.Button,{size:"sm",variant:"ghost",onClick:G,disabled:M,className:"h-7 w-7 p-0",children:(0,t.jsx)(i.Check,{className:"h-3.5 w-3.5"})}),(0,t.jsx)(p.Button,{size:"sm",variant:"ghost",onClick:()=>{A(v(r)),B(null),T(!1)},className:"h-7 w-7 p-0",children:(0,t.jsx)(d.X,{className:"h-3.5 w-3.5"})})]}),S&&(0,t.jsx)("p",{className:"text-xs text-destructive mt-1 ml-[148px]",children:S}),m&&!S&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-1 ml-[148px]",children:m})]}):(0,t.jsxs)("div",{className:`py-1.5 group cursor-pointer rounded px-1 -mx-1 hover:bg-muted/50 transition-colors${j?" border-l-2 border-blue-500 pl-2":""}`,"data-config-key":s,onClick:()=>T(!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,R&&(0,t.jsx)(x.RestartRequiredBadge,{})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[j&&(0,t.jsx)("span",{className:"text-[10px] font-medium text-blue-600 dark:text-blue-400",children:"modified"}),void 0!==w&&!L&&!j&&(0,t.jsxs)("button",{type:"button",onClick:O,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"]}),k&&null!==r&&!j&&(0,t.jsxs)("button",{type:"button",onClick:q,title:`Clear — sets ${e} to ${C}`,className:"text-[10px] text-muted-foreground hover:text-destructive transition-colors inline-flex items-center gap-0.5 opacity-0 group-hover:opacity-100",children:[(0,t.jsx)(o.Trash2,{className:"h-2.5 w-2.5"}),"clear"]}),(0,t.jsx)("span",{className:"text-sm font-medium text-foreground",children:null===r?C:"$"===u?`$${r}`:u?`${r} ${u}`:String(r)}),(0,t.jsx)(n.Pencil,{className:"h-3 w-3 text-muted-foreground opacity-0 group-hover:opacity-100 transition-opacity"})]})]}),m&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:m})]})}])},52387,e=>{"use strict";let t=(0,e.i(77379).default)("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["ExternalLink",0,t],52387)},75750,e=>{"use strict";let t=(0,e.i(77379).default)("CircleX",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);e.s(["XCircle",0,t],75750)},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)},24756,e=>{"use strict";var t=e.i(14260),a=e.i(65268);e.s(["useBackends",0,function(e){return(0,t.useQuery)({queryKey:["backends"],queryFn:()=>a.api.get("/backends"),enabled:e?.enabled??!0,staleTime:6e4})}])},70986,e=>{"use strict";var t=e.i(34416),a=e.i(91967),i=e.i(9413),r=e.i(36567),n=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",[p,m]=(0,i.createContextScope)(u),[h,x]=p(u),f=t.forwardRef((e,a)=>{let{__scopeCollapsible:i,open:n,defaultOpen:s,disabled:o,onOpenChange:p,...m}=e,[x,f]=(0,r.useControllableState)({prop:n,defaultProp:s??!1,onChange:p,caller:u});return(0,c.jsx)(h,{scope:i,disabled:o,contentId:(0,d.useId)(),open:x,onOpenToggle:t.useCallback(()=>f(e=>!e),[f]),children:(0,c.jsx)(l.Primitive.div,{"data-state":C(x),"data-disabled":o?"":void 0,...m,ref:a})})});f.displayName=u;var g="CollapsibleTrigger",b=t.forwardRef((e,t)=>{let{__scopeCollapsible:i,...r}=e,n=x(g,i);return(0,c.jsx)(l.Primitive.button,{type:"button","aria-controls":n.contentId,"aria-expanded":n.open||!1,"data-state":C(n.open),"data-disabled":n.disabled?"":void 0,disabled:n.disabled,...r,ref:t,onClick:(0,a.composeEventHandlers)(e.onClick,n.onOpenToggle)})});b.displayName=g;var y="CollapsibleContent",v=t.forwardRef((e,t)=>{let{forceMount:a,...i}=e,r=x(y,e.__scopeCollapsible);return(0,c.jsx)(o.Presence,{present:a||r.open,children:({present:e})=>(0,c.jsx)(k,{...i,ref:t,present:e})})});v.displayName=y;var k=t.forwardRef((e,a)=>{let{__scopeCollapsible:i,present:r,children:o,...d}=e,u=x(y,i),[p,m]=t.useState(r),h=t.useRef(null),f=(0,s.useComposedRefs)(a,h),g=t.useRef(0),b=g.current,v=t.useRef(0),k=v.current,j=u.open||p,w=t.useRef(j),N=t.useRef(void 0);return t.useEffect(()=>{let e=requestAnimationFrame(()=>w.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,n.useLayoutEffect)(()=>{let e=h.current;if(e){N.current=N.current||{transitionDuration:e.style.transitionDuration,animationName:e.style.animationName},e.style.transitionDuration="0s",e.style.animationName="none";let t=e.getBoundingClientRect();g.current=t.height,v.current=t.width,w.current||(e.style.transitionDuration=N.current.transitionDuration,e.style.animationName=N.current.animationName),m(r)}},[u.open,r]),(0,c.jsx)(l.Primitive.div,{"data-state":C(u.open),"data-disabled":u.disabled?"":void 0,id:u.contentId,hidden:!j,...d,ref:f,style:{"--radix-collapsible-content-height":b?`${b}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,f,"CollapsibleContent",0,v,"CollapsibleTrigger",0,b],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)},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)},2745,e=>{"use strict";let t=(0,e.i(77379).default)("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["ShieldCheck",0,t],2745)},76610,e=>{"use strict";let t=(0,e.i(77379).default)("KeyRound",[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]);e.s(["KeyRound",0,t],76610)}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,93772,e=>{"use strict";var a=e.i(54710),s=e.i(34416),n=e.i(96263),t=e.i(88423),l=e.i(13451),i=e.i(36413),r=e.i(95486),o=e.i(72740),d=e.i(21682),c=e.i(7663),u=e.i(75750),m=e.i(74490),x=e.i(79634),h=e.i(48467),b=e.i(20014),p=e.i(8652),f=e.i(10427),g=e.i(65268),y=e.i(24756),k=e.i(87040),j=e.i(76176),v=e.i(81471);let C={"message.dm":"DM response quality may degrade. Sonnet is recommended for important conversations.","message.mention":"Mention response quality may degrade. Sonnet is recommended.","dashboard.chat":"Dashboard chat response quality may degrade. Sonnet is recommended.","routine.morning_routine":"Long-form generation may produce shorter/rougher output with Haiku. Sonnet is recommended.","routine.evening_review":"Long-form generation may produce shorter/rougher output with Haiku. Sonnet is recommended.","routine.weekly_review":"Weekly reviews require reasoning depth. Haiku may produce less coherent output.","routine.monthly_review":"Monthly reviews require reasoning depth. Haiku may produce less coherent output.","agent.task":"Sonnet is recommended for complex task execution. Haiku may make rougher tool-use decisions."};function w(e,a,s){let n,t=(n=e.filter(e=>e.tier===a)).length>0?n:e;return s&&t.some(e=>e.modelId===s)?s:t[0]?.modelId??e[0]?.modelId??""}function S(e,a){return a?e.find(e=>e.modelId===a)?.label??(0,j.formatModelName)(a):"Disabled"}function N({onToast:e,sections:n=["processes"]}){let t=n.includes("processes"),l=(0,r.useQueryClient)(),{data:i,error:M,isLoading:T}=(0,y.useBackends)({enabled:t}),{data:E,error:D,isLoading:_}=(0,k.useProcessConfig)({enabled:t}),[B,A]=(0,s.useState)(null),[L,I]=(0,s.useState)(null),[K,R]=(0,s.useState)(!1),P=(0,s.useCallback)(async()=>{await Promise.all([l.invalidateQueries({queryKey:["backends"]}),l.invalidateQueries({queryKey:["process-config"]}),l.invalidateQueries({queryKey:["cost"]}),l.invalidateQueries({queryKey:["metrics"]})])},[l]),U=t?M??D:null;if(U){let e=U instanceof g.ApiError&&503===U.status;return(0,a.jsxs)(m.Card,{children:[(0,a.jsx)(m.CardHeader,{children:(0,a.jsx)(m.CardTitle,{children:"Process Routing"})}),(0,a.jsx)("p",{className:"max-w-prose text-sm text-muted-foreground",children:e?"Multi-backend tables are not available yet. Run migrations first.":U instanceof Error?U.message:"Failed to load process routing."})]})}if(!t)return null;if(T||!i||_||!E)return(0,a.jsxs)(m.Card,{children:[(0,a.jsx)(m.CardHeader,{children:(0,a.jsx)(m.CardTitle,{children:"Process Routing"})}),(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:"Loading process routing…"})]});let F=new Map(i.backends.map(e=>[e.id,e])),O=i.backends.filter(e=>e.enabled);async function V(){if(L){R(!0);try{let a=await g.api.put(`/process-config/${L.processKey}`,{mainBackend:L.mainBackend,mainModel:L.mainModel,fallbackBackend:L.fallbackBackend,fallbackModel:L.fallbackModel,maxTurns:L.maxTurns,maxBudgetUsd:L.maxBudgetUsd});await P(),a.warnings?.length?e("warning",`Saved — ${a.warnings.map(e=>e.message).join("; ")}`):e("success",`${(0,j.getProcessLabel)(L.processKey)} updated`),A(null),I(null)}catch(a){e("error",function(e){if(!(e instanceof g.ApiError))return e instanceof Error?e.message:"Request failed";let a=e.body,s="string"==typeof a?.error?a.error:null,n=Array.isArray(a?.processKeys)?a.processKeys.filter(e=>"string"==typeof e):[];switch(s){case"backend_in_use":return`This backend is still used by: ${n.join(", ")}. Reassign those processes first.`;case"default_backend":return"Reassign the default backend before disabling it.";case"main_backend_disabled":return"The selected main backend is disabled. Enable it first.";case"fallback_backend_disabled":return"The selected fallback backend is disabled. Enable it first.";case"fallback_same_as_main":return"Fallback backend must differ from the main backend.";case"fallback_incomplete":return"Fallback backend and fallback model must either both be set or both be disabled.";case"invalid_main_model":return"The selected main model does not belong to the chosen backend.";case"invalid_fallback_model":return"The selected fallback model does not belong to the chosen fallback backend.";case"multi_backend_unavailable":return"Multi-backend tables are not available yet. Run migrations first.";default:return e.message}}(a))}finally{R(!1)}}}return(0,a.jsxs)(m.Card,{children:[(0,a.jsx)(m.CardHeader,{className:"items-start",children:(0,a.jsxs)("div",{children:[(0,a.jsx)(m.CardTitle,{children:"Process Routing"}),(0,a.jsxs)("p",{className:"mt-1 max-w-3xl text-sm text-muted-foreground",children:["One row per process (event-handling pipeline). Each row shows the resolved main backend + model, the optional fallback that kicks in on ",(0,a.jsx)("em",{children:"decisive"})," main-backend failures (quota exhausted, auth broken, model unavailable, timeout — not ordinary rate limiting), and the per-run limits. Click ",(0,a.jsx)("em",{children:"Edit"}),"to override any of them. “Default” badges mean the value is inherited from the main backend’s preset defaults above."]})]})}),(0,a.jsx)("div",{className:"space-y-3",children:E.configs.map(e=>{var s;let n,t=F.get(e.mainBackend),l=e.fallbackBackend?F.get(e.fallbackBackend):null,r=B===e.processKey&&L,m=r?F.get(L.mainBackend)?.models??[]:[],g=r&&L.fallbackBackend?F.get(L.fallbackBackend)?.models??[]:[];return(0,a.jsxs)("div",{className:"rounded-xl border border-border p-4",children:[(0,a.jsxs)("div",{className:"flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between",children:[(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.jsx)("p",{className:"text-base font-medium text-foreground",children:(0,j.getProcessLabel)(e.processKey)}),(0,a.jsxs)(h.Badge,{variant:"high"===e.defaultTier?"purple":"medium"===e.defaultTier?"blue":"default",children:["Default ",e.defaultTier]})]}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:e.processKey}),(n=function(e,a,s){if("routine.morning_routine"===e&&"claude"===a){let e=s.find(e=>"high"===e.tier&&e.available&&!e.deprecated);return e?`Defaults to Sonnet to preserve Claude quota — ${e.label} depletes the 5h window much faster. If you want better instruction-following or more thorough day-plan output, switch Main Model to ${e.label}.`:null}return null}(e.processKey,e.mainBackend,t?.models??[]))?(0,a.jsx)(x.Alert,{variant:"info",className:"mt-2 text-xs",children:n}):null]}),(0,a.jsxs)("div",{className:"grid gap-3 text-sm text-muted-foreground md:grid-cols-3",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"font-medium text-foreground",children:"Main"}),(0,a.jsx)("p",{children:t?(0,j.getBackendLabel)(t.id):e.mainBackend}),(0,a.jsx)("p",{children:t?S(t.models,e.mainModel):e.mainModel})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"font-medium text-foreground",children:"Fallback"}),l&&e.fallbackModel?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("p",{children:(0,j.getBackendLabel)(l.id)}),(0,a.jsx)("p",{children:S(l.models,e.fallbackModel)})]}):(0,a.jsx)("p",{children:"Disabled"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"font-medium text-foreground",children:"Limits"}),(0,a.jsxs)("p",{children:[e.maxTurns," turns"]}),(0,a.jsxs)("p",{children:[(0,v.formatCurrency)(e.maxBudgetUsd)," soft budget"]})]})]})]}),(0,a.jsxs)(b.Button,{variant:"outline",onClick:()=>{A(e.processKey),I({processKey:e.processKey,defaultTier:e.defaultTier,mainBackend:e.mainBackend,mainModel:e.mainModel,fallbackBackend:e.fallbackBackend,fallbackModel:e.fallbackModel,maxTurns:e.maxTurns,maxBudgetUsd:e.maxBudgetUsd})},children:[(0,a.jsx)(d.Pencil,{className:"h-3.5 w-3.5"}),"Edit"]})]}),r&&L&&(0,a.jsxs)("div",{className:"mt-4 grid gap-4 rounded-xl border border-border/80 bg-muted/30 p-4 md:grid-cols-2",children:[(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:"Main backend"}),(0,a.jsxs)(f.Select,{value:L.mainBackend,onValueChange:e=>(function(e){let a=F.get(e);if(!a||!L)return;let s=L.fallbackBackend===e;I({...L,mainBackend:e,mainModel:w(a.models,L.defaultTier,L.mainModel),fallbackBackend:s?null:L.fallbackBackend,fallbackModel:s?null:L.fallbackModel})})(e),children:[(0,a.jsx)(f.SelectTrigger,{children:(0,a.jsx)(f.SelectValue,{placeholder:"Select backend"})}),(0,a.jsx)(f.SelectContent,{children:i.backends.map(e=>(0,a.jsx)(f.SelectItem,{value:e.id,disabled:!e.enabled,children:(0,j.getBackendLabel)(e.id)},e.id))})]})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:"Main model"}),(0,a.jsxs)(f.Select,{value:L.mainModel,onValueChange:e=>I(a=>a?{...a,mainModel:e}:a),children:[(0,a.jsx)(f.SelectTrigger,{children:(0,a.jsx)(f.SelectValue,{placeholder:"Select model"})}),(0,a.jsx)(f.SelectContent,{children:m.map(e=>(0,a.jsx)(f.SelectItem,{value:e.modelId,children:e.label},e.modelId))})]}),!!(s=L.mainModel)&&s.toLowerCase().includes("haiku")&&C[L.processKey]&&(0,a.jsx)(x.Alert,{variant:"warning",className:"mt-2 text-xs",children:C[L.processKey]})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:"Fallback backend"}),(0,a.jsxs)(f.Select,{value:L.fallbackBackend??"__none__",onValueChange:e=>(function(e){if(!L)return;if(!e)return void I({...L,fallbackBackend:null,fallbackModel:null});let a=F.get(e);a&&I({...L,fallbackBackend:e,fallbackModel:w(a.models,L.defaultTier,L.fallbackModel)})})("__none__"===e?null:e),children:[(0,a.jsx)(f.SelectTrigger,{children:(0,a.jsx)(f.SelectValue,{placeholder:"Select backend"})}),(0,a.jsxs)(f.SelectContent,{children:[(0,a.jsx)(f.SelectItem,{value:"__none__",children:"Disabled"}),i.backends.map(e=>(0,a.jsx)(f.SelectItem,{value:e.id,disabled:!e.enabled||e.id===L.mainBackend,children:(0,j.getBackendLabel)(e.id)},e.id))]})]})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:"Fallback model"}),(0,a.jsxs)(f.Select,{disabled:!L.fallbackBackend,value:L.fallbackModel??"__none__",onValueChange:e=>I(a=>a?{...a,fallbackModel:"__none__"===e?null:e}:a),children:[(0,a.jsx)(f.SelectTrigger,{children:(0,a.jsx)(f.SelectValue,{placeholder:"Select model"})}),(0,a.jsxs)(f.SelectContent,{children:[(0,a.jsx)(f.SelectItem,{value:"__none__",children:"Disabled"}),g.map(e=>(0,a.jsx)(f.SelectItem,{value:e.modelId,children:e.label},e.modelId))]})]})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:"Max turns"}),(0,a.jsx)(p.Input,{type:"number",min:1,max:1e3,value:L.maxTurns,onChange:e=>I(a=>a?{...a,maxTurns:Number(e.target.value)||1}:a)}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:"Hard cap on agent turns per run for this process. One turn = one model response (possibly with tool calls). When reached, the run stops mid-task — raise this if you see “max turns” aborts."})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:"Soft budget (USD)"}),(0,a.jsx)(p.Input,{type:"number",min:0,max:1e4,step:"0.01",value:L.maxBudgetUsd,onChange:e=>I(a=>a?{...a,maxBudgetUsd:Number(e.target.value)||0}:a)}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:"Per-run spend target in USD. “Soft” because it’s checked between turns — a long single turn can overshoot slightly. Runs exceeding this are aborted. Set to 0 to disable and rely only on the turn cap."})]}),(0,a.jsxs)("div",{className:"md:col-span-2 flex items-center justify-between gap-3",children:[(0,a.jsxs)("p",{className:"max-w-xl text-xs text-muted-foreground",children:[(0,a.jsx)("strong",{children:"Fallback backend/model"})," is consulted only on decisive failures: quota exhaustion, auth breakage, model refusal, timeout, or unrecoverable provider errors. Transient 5xx and ordinary rate limits are retried on the main backend first."]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsxs)(b.Button,{variant:"outline",onClick:()=>{A(null),I(null)},children:[(0,a.jsx)(u.XCircle,{className:"h-4 w-4"}),"Cancel"]}),(0,a.jsxs)(b.Button,{onClick:V,disabled:K,children:[K?(0,a.jsx)(o.Loader2,{className:"h-4 w-4 animate-spin"}):(0,a.jsx)(c.Save,{className:"h-4 w-4"}),"Save Process"]})]})]})]})]},e.processKey)})}),O.length<2&&(0,a.jsx)(x.Alert,{variant:"warning",className:"mt-4 rounded-xl px-4 py-3 text-sm",children:"Enable another backend if you want fallback routing to be available for any process."})]})}e.i(18446);var M=e.i(9897),T=e.i(17975),E=e.i(16995),D=e.i(85462);let _=["claude","codex","gemini"];function B({onToast:e}){let{data:n,refetch:l}=(0,y.useBackends)(),{data:i}=(0,t.useConfig)(),d=(0,r.useQueryClient)(),[c,u]=(0,s.useState)(null),[m,x]=(0,s.useState)({claude:{status:"idle"},codex:{status:"idle"},gemini:{status:"idle"}}),[h,p]=(0,s.useState)(null),[k,v]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let e=!1;return(async()=>{try{let a=await g.api.get("/backends/advisor");if(e)return;p({enabled:a.enabled,model:a.model})}catch{e||p({enabled:!1,model:null})}})(),()=>{e=!0}},[]);let C=(0,s.useCallback)(async e=>{x(a=>({...a,[e]:{status:"checking"}}));try{let a=await g.api.post(`/backends/${e}/verify-install`);if(await l(),a.ok)x(s=>({...s,[e]:{status:"ok",version:a.version}}));else{let s=a.cliInstalled?a.timedOut?`${a.cliCommand} --version timed out`:a.stderr.trim()||a.stdout.trim()||"CLI failed to run":`${a.cliCommand} not found on PATH`;x(a=>({...a,[e]:{status:"error",error:s}}))}}catch(a){x(s=>({...s,[e]:{status:"error",error:a instanceof Error?a.message:"Verify install failed"}}))}},[l]),w=(0,s.useCallback)(async a=>{u(a);try{let s=await g.api.put("/backends/main",{backendId:a});await l(),await d.invalidateQueries({queryKey:["backends"]}),await d.invalidateQueries({queryKey:["integrations"]}),await d.invalidateQueries({queryKey:["health"]}),await d.invalidateQueries({queryKey:["agent-actions","native_unbound"]});let n=s?.nativeUnbound??[];if(n.length>0){let s=n.map(e=>e.key).join(", ");e("warning",`Main backend set to ${j.BACKEND_PROVIDER_LABELS[a]}. ${n.length} native integration${1===n.length?"":"s"} disabled (${s}). Re-configure on /connections.`)}else e("success",`Main backend set to ${j.BACKEND_PROVIDER_LABELS[a]}.`)}catch(a){e("error",a instanceof g.ApiError||a instanceof Error?a.message:"Failed to set main backend")}finally{u(null)}},[l,d,e]),S=(0,s.useCallback)(async a=>{let s=n?.backends.find(e=>e.id===a);if(!s)return;let t=!s.enabled;u(a);try{await g.api.post(`/backends/${a}/${t?"enable":"disable"}`),await l(),e("success",`${j.BACKEND_PROVIDER_LABELS[a]} ${t?"enabled":"disabled"}.`)}catch(a){e("error",a instanceof Error?a.message:"Failed to update backend")}finally{u(null)}},[n,l,e]),N=(0,s.useCallback)(async a=>{let s=n?.backends.find(e=>e.id===a);if(!s)return;let t=!s.webSearchEnabled;u(a);try{await g.api.post(`/backends/${a}/web-search`,{enabled:t}),await l()}catch(a){e("error",a instanceof Error?a.message:"Failed to update web search")}finally{u(null)}},[n,l,e]),A=(0,s.useCallback)(async a=>{v(!0);try{await g.api.put("/backends/advisor",{enabled:a.enabled,model:a.model}),p(a),e("success",`Advisor ${a.enabled?"enabled":"disabled"}.`)}catch(a){e("error",a instanceof Error?a.message:"Failed to save advisor")}finally{v(!1)}},[e]),L=n?.defaultBackend??null;return(0,a.jsxs)("section",{className:"space-y-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h2",{className:"text-lg font-semibold text-foreground",children:"Backends"}),(0,a.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:"Install each backend’s CLI, verify authentication, and pick the main backend. The main backend runs every configurable process by default; per-process overrides live in the “Process configuration” card below."})]}),(0,a.jsx)(D.SubscriptionAuthWarning,{}),(0,a.jsx)("div",{className:"space-y-3",children:_.map(s=>{let t=n?.backends.find(e=>e.id===s),r=L===s,o=i?i[`${s}ExecutionPermissionMode`]:null;return(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(T.BackendCard,{backendId:s,mode:"settings",isMain:r,authStatus:t?.authStatus??"unknown",authStatusDetail:t?.authDetail??null,authFirstExpiredAt:t?.authFirstExpiredAt??null,authLastSuccessAt:t?.authLastSuccessAt??null,authNotificationCount:t?.authNotificationCount??0,cliInstalled:t?.cliInstalled??!0,enabled:t?.enabled??!1,webSearchEnabled:t?.webSearchEnabled??!1,webSearchSupported:t?.webSearchSupported??!1,permissionMode:o,busy:c===s,installCheck:m[s],onCliInstalled:()=>{l()},onVerifyInstall:()=>{C(s)},onToggleEnable:()=>{S(s)},onToggleWebSearch:()=>{N(s)}}),(0,a.jsx)(E.BackendApiKeyPanel,{backendId:s,onToast:e}),!r&&(0,a.jsx)("div",{className:"flex justify-end",children:(0,a.jsxs)(b.Button,{size:"sm",variant:"outline",disabled:null!==c||!t?.cliInstalled,onClick:()=>{w(s)},children:["Set ",j.BACKEND_PROVIDER_SHORT[s]," as main"]})})]},s)})}),h&&(0,a.jsxs)("div",{className:"rounded-xl border border-border bg-card p-4 shadow-sm",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[(0,a.jsxs)("div",{className:"space-y-1",children:[(0,a.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:"Advisor (Claude Agent SDK)"}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:"When enabled, the Claude Agent SDK’s server-side advisor tool can offer the agent a second-opinion model on long turns. Off by default — turn it on only when you want the added cost."})]}),(0,a.jsxs)(b.Button,{size:"sm",variant:h.enabled?"outline":"default",disabled:k,onClick:()=>{A(h.enabled?{enabled:!1,model:null}:{enabled:!0,model:h.model??M.ADVISOR_ALLOWED_MODELS[0]})},children:[k&&(0,a.jsx)(o.Loader2,{className:"mr-2 h-3.5 w-3.5 animate-spin"}),h.enabled?"Disable advisor":"Enable advisor"]})]}),h.enabled&&(0,a.jsxs)("div",{className:"mt-3 flex flex-wrap items-center gap-2",children:[(0,a.jsx)("span",{className:"text-xs text-muted-foreground",children:"Model:"}),(0,a.jsxs)(f.Select,{value:h.model??M.ADVISOR_ALLOWED_MODELS[0],onValueChange:e=>{(0,M.isAdvisorModel)(e)&&A({enabled:!0,model:e})},disabled:k,children:[(0,a.jsx)(f.SelectTrigger,{className:"h-8 w-auto min-w-[12rem] text-xs",children:(0,a.jsx)(f.SelectValue,{})}),(0,a.jsx)(f.SelectContent,{children:M.ADVISOR_ALLOWED_MODELS.map(e=>(0,a.jsx)(f.SelectItem,{value:e,children:e},e))})]})]})]})]})}var A=e.i(81187),L=e.i(16047),I=e.i(2745),K=e.i(78406),R=e.i(49681),P=e.i(70986),U=e.i(36598);function F(e){let a=(0,U.internalToUi)(e.claudeExecutionPermissionMode),s=(0,U.internalToUi)(e.codexExecutionPermissionMode),n=(0,U.internalToUi)(e.geminiExecutionPermissionMode);return a===s&&s===n?a:null}let O=["claude","codex","gemini"];function V({onToast:e}){let{data:n}=(0,t.useConfig)(),[l,i]=(0,s.useState)(0);return n?(0,a.jsx)($,{config:n,onToast:e,onApplied:()=>i(e=>e+1)},l):(0,a.jsx)(m.Card,{children:(0,a.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,a.jsx)(o.Loader2,{className:"h-4 w-4 animate-spin"})," Loading…"]})})}function $({config:e,onToast:n,onApplied:t}){let l=(0,r.useQueryClient)(),i=(0,s.useState)(()=>{let a;return{topLevel:a=F(e),overrides:null!==F(e)?{...U.EMPTY_OVERRIDES}:{claude:(0,U.internalToUi)(e.claudeExecutionPermissionMode),codex:(0,U.internalToUi)(e.codexExecutionPermissionMode),gemini:(0,U.internalToUi)(e.geminiExecutionPermissionMode)},forceAccordionOpen:null===a}})[0],[d,c]=(0,s.useState)(i.topLevel),[u,x]=(0,s.useState)(i.overrides),[h,p]=(0,s.useState)(i.forceAccordionOpen),[f,y]=(0,s.useState)(!1),k=null===d||(0,U.hasDivergentOverride)(d,u);async function j(){let e=(0,U.buildSetupModePayload)(d,u);if(null!==e){y(!0);try{await g.api.post("/setup/mode",e),await l.invalidateQueries({queryKey:["config"]}),n("success","Execution mode updated"),t()}catch(e){e instanceof g.ApiError||e instanceof Error?n("error",e.message):n("error","Failed to update execution mode")}finally{y(!1)}}}return(0,a.jsxs)(m.Card,{id:"execution-mode",children:[(0,a.jsx)(m.CardHeader,{className:"px-0 pt-0",children:(0,a.jsxs)(m.CardTitle,{className:"flex items-center gap-1.5 text-base",children:[(0,a.jsx)("span",{children:"Execution Mode"}),(0,a.jsx)(R.DocsHelpInline,{docId:"concepts/safety-and-execution",label:"Execution Mode"})]})}),(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:"Pick how freely the agent may run shell, file, and tool commands on your machine. Dangerous operations — recursive deletes, privilege escalation, and secret-file reads — remain blocked in both modes."}),(0,a.jsxs)("div",{className:"mt-4 space-y-3",children:[(0,a.jsx)(q,{icon:(0,a.jsx)(I.ShieldCheck,{className:"h-5 w-5"}),title:"Safe",badge:"Recommended",selected:"safe"===d,onSelect:()=>c("safe"),children:"Agent runs with strict permission checks and asks for confirmation before side-effectful actions. Best when you want the agent to stay narrow."}),(0,a.jsxs)(q,{icon:(0,a.jsx)(K.Unlock,{className:"h-5 w-5"}),title:"Allow",selected:"allow"===d,onSelect:()=>c("allow"),children:["Agent runs with the skills, plugins, and MCP servers installed in your CLI harness. File-type support depends on your harness; the daemon does not manage it.",(0,a.jsx)(Q,{})]}),(0,a.jsxs)(P.Collapsible,{open:h,onOpenChange:p,children:[(0,a.jsx)(P.CollapsibleTrigger,{asChild:!0,children:(0,a.jsxs)("button",{type:"button",className:"flex w-full items-center justify-between rounded-md border border-border bg-muted/20 px-3 py-2 text-left text-xs text-muted-foreground hover:bg-muted/40",children:[(0,a.jsxs)("span",{className:"flex items-center gap-2",children:[(0,a.jsx)(L.ChevronDown,{className:(0,v.cn)("h-3.5 w-3.5 transition-transform",h&&"rotate-180")}),"Advanced — per-backend overrides",k&&(0,a.jsx)("span",{className:"rounded bg-amber-500/15 px-1.5 py-0.5 text-[10px] font-medium text-amber-700 dark:text-amber-300",children:"mixed"})]}),(0,a.jsx)("span",{className:"text-[11px]",children:h?"Hide":"Show"})]})}),(0,a.jsx)(P.CollapsibleContent,{className:"mt-2 space-y-2 rounded-md border border-border bg-background p-3",children:O.map(e=>(0,a.jsx)(H,{backend:e,topLevel:d,override:u[e],onChange:a=>x(s=>({...s,[e]:a}))},e))})]}),(0,a.jsx)("div",{className:"flex justify-end pt-2",children:(0,a.jsx)(b.Button,{onClick:j,disabled:!(0,U.canApply)(d,u)||f,children:f?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(o.Loader2,{className:"mr-2 h-4 w-4 animate-spin"}),"Saving…"]}):"Apply"})})]})]})}function q({icon:e,title:s,badge:n,selected:t,onSelect:l,children:i}){return(0,a.jsxs)("button",{type:"button",onClick:l,className:(0,v.cn)("block w-full rounded-lg border p-3 text-left transition-colors",t?"border-primary bg-primary/5 shadow-sm":"border-border hover:border-foreground/30"),children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 font-semibold text-foreground",children:[e,s,n&&(0,a.jsx)("span",{className:"rounded bg-primary/15 px-1.5 py-0.5 text-[10px] font-medium text-primary",children:n})]}),(0,a.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:i})]})}function H({backend:e,topLevel:s,override:n,onChange:t}){let l=n??s,i=null===l?"pick a top-level mode first":`runs as: ${l}`;return(0,a.jsxs)("div",{className:"rounded-md border border-border/60 px-3 py-2",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,a.jsxs)("div",{className:"text-sm",children:[(0,a.jsxs)("div",{className:"font-medium text-foreground",children:[j.BACKEND_PROVIDER_LABELS[e],(0,a.jsxs)("span",{className:"ml-1 text-xs text-muted-foreground",children:["(",j.BACKEND_PROVIDER_SHORT[e],")"]})]}),(0,a.jsx)("div",{className:"text-[11px] text-muted-foreground",children:i})]}),(0,a.jsxs)("div",{className:"flex items-center gap-1 text-xs",children:[(0,a.jsx)(W,{active:null===n,label:"Follow",onClick:()=>t(null)}),(0,a.jsx)(W,{active:"safe"===n,label:"Safe",onClick:()=>t("safe")}),(0,a.jsx)(W,{active:"allow"===n,label:"Allow",onClick:()=>t("allow")})]})]}),"codex"===e&&"allow"===l&&(0,a.jsxs)("p",{className:"mt-2 flex items-start gap-1.5 text-[11px] text-amber-700 dark:text-amber-300",children:[(0,a.jsx)(A.AlertTriangle,{className:"mt-0.5 h-3 w-3 shrink-0"}),(0,a.jsx)("span",{children:"Codex Allow disables the daemon's absolute-block layer (sandbox-off). See the Allow card above."})]})]})}function Q(){return(0,a.jsxs)("span",{className:"mt-3 flex items-start gap-2 rounded-md border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-xs text-amber-900 dark:text-amber-200",children:[(0,a.jsx)(A.AlertTriangle,{className:"mt-0.5 h-3.5 w-3.5 shrink-0"}),(0,a.jsxs)("span",{className:"space-y-1",children:[(0,a.jsxs)("span",{className:"block",children:[(0,a.jsx)("span",{className:"font-semibold",children:"Codex caveat."})," Codex CLI runs Allow mode under"," ",(0,a.jsx)("code",{className:"rounded bg-black/10 px-1 font-mono text-[11px] dark:bg-white/10",children:"--dangerously-bypass-approvals-and-sandbox"}),", a binary sandbox-off switch. Codex has no per-command hook layer for the daemon to attach the absolute-block patterns to, so destructive shell commands (",(0,a.jsx)("code",{className:"rounded bg-black/10 px-1 font-mono text-[11px] dark:bg-white/10",children:"rm -rf"}),","," ",(0,a.jsx)("code",{className:"rounded bg-black/10 px-1 font-mono text-[11px] dark:bg-white/10",children:"eval $(curl …)"}),", secret-file reads) are ",(0,a.jsx)("span",{className:"font-semibold",children:"not"})," ","pre-blocked for Codex in Allow mode the way they are for Claude Code and Gemini CLI."]}),(0,a.jsx)("span",{className:"block",children:"Use the Advanced section below to keep Codex on Safe (its workspace-write sandbox still applies) unless you accept this gap."})]})]})}function W({active:e,label:s,onClick:n}){return(0,a.jsx)("button",{type:"button",onClick:n,className:(0,v.cn)("rounded-md border px-2 py-1 transition-colors",e?"border-primary bg-primary/10 text-foreground":"border-border text-muted-foreground hover:border-foreground/30"),children:s})}var G=e.i(88),z=e.i(94328);function X({title:e,defaultOpen:t=!1,children:l}){let[i,r]=(0,s.useState)(t);return(0,a.jsxs)(P.Collapsible,{open:i,onOpenChange:r,children:[(0,a.jsx)(P.CollapsibleTrigger,{asChild:!0,children:(0,a.jsxs)("button",{className:"flex w-full items-center gap-2 rounded-lg px-1 py-2 text-xs font-semibold uppercase tracking-wider text-muted-foreground hover:bg-muted/50 hover:text-foreground transition-colors",children:[(0,a.jsx)(n.ChevronRight,{className:(0,v.cn)("h-3.5 w-3.5 shrink-0 transition-transform duration-200",i&&"rotate-90")}),e]})}),(0,a.jsx)(P.CollapsibleContent,{className:"space-y-3 pt-1",children:l})]})}e.s(["default",0,function(){let{data:e}=(0,t.useConfig)(),{df:s}=(0,t.useConfigDefaults)(),{toast:n,showToast:r}=(0,l.useSaveConfig)(),{deferSaveFor:o,dv:d,dirtyFields:c}=(0,i.useDirtyFields)();if(!e)return(0,a.jsx)("div",{className:"text-muted-foreground",children:"Loading..."});let u=o(e);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h1",{className:"text-2xl font-semibold text-foreground",children:"Models & Cost"}),(0,a.jsx)("p",{className:"mt-1 max-w-3xl text-sm text-muted-foreground",children:"AI backends, per-task routing, and execution limits. The backend cards are always visible — open the collapsible sections below when you need to tune individual processes or limits."})]}),(0,a.jsx)(z.SettingsToast,{toast:n}),(0,a.jsx)(B,{onToast:r}),(0,a.jsx)(V,{onToast:r}),(0,a.jsx)(N,{onToast:r,sections:["processes"]}),(0,a.jsx)(X,{title:"Execution limits",children:(0,a.jsxs)(G.ConfigSection,{title:"Execution limits",children:[(0,a.jsx)("p",{className:"pb-2 text-xs text-muted-foreground",children:"Concurrency and wall-clock limits that apply across every agent run, regardless of backend or tier."}),(0,a.jsx)(G.EditableField,{label:"Max Concurrent Sessions",value:d("maxConcurrentSessions",e.maxConcurrentSessions),configKey:"maxConcurrentSessions",type:"number",modified:c.has("maxConcurrentSessions"),defaultValue:s("maxConcurrentSessions"),description:"Total number of agent sessions allowed to run in parallel across all sources (DMs, routines, schedules). Additional requests are queued until a slot opens.",onSave:u}),(0,a.jsx)(G.EditableField,{label:"Max Reactive Sessions",value:d("maxReactiveSessions",e.maxReactiveSessions),configKey:"maxReactiveSessions",type:"number",modified:c.has("maxReactiveSessions"),defaultValue:s("maxReactiveSessions"),description:"Subset of the concurrent slots reserved for reactive work (incoming DMs and mentions). This guarantees routines never starve out messages you send right now — and vice versa for the remaining slots.",onSave:u}),(0,a.jsx)(G.EditableField,{label:"Execute Timeout",value:d("executeTimeoutMinutes",e.executeTimeoutMinutes),configKey:"executeTimeoutMinutes",type:"number",suffix:"min",min:1,max:1440,modified:c.has("executeTimeoutMinutes"),defaultValue:s("executeTimeoutMinutes"),description:"Maximum wall-clock time for a single agent execution. When exceeded the SDK stream is cancelled so retries don’t double-bill quota. Applies per attempt, not per retry chain.",onSave:u}),(0,a.jsx)(G.EditableField,{label:"Delegated Proxy Concurrency",value:d("delegatedProxyMaxConcurrent",e.delegatedProxyMaxConcurrent),configKey:"delegatedProxyMaxConcurrent",type:"number",min:1,max:64,modified:c.has("delegatedProxyMaxConcurrent"),defaultValue:s("delegatedProxyMaxConcurrent"),description:"Maximum simultaneous delegated-proxy invocations (Gmail/Calendar in delegated mode spawn a one-shot subprocess on the configured backend). Excess requests FIFO-queue with a 60-second wait timeout, then 503 with delegated_proxy_busy.",onSave:u})]})}),(0,a.jsx)(X,{title:"Session timeouts",children:(0,a.jsxs)(G.ConfigSection,{title:"Session timeouts",children:[(0,a.jsx)("p",{className:"pb-2 text-xs text-muted-foreground",children:"How long an idle conversation keeps its context before the next message starts fresh. Lower values save tokens on long-lived chats; higher values preserve continuity."}),(0,a.jsx)(G.EditableField,{label:"DM Timeout",value:d("sessionTimeoutDmMinutes",e.sessionTimeoutDmMinutes),configKey:"sessionTimeoutDmMinutes",type:"number",suffix:"min",modified:c.has("sessionTimeoutDmMinutes"),defaultValue:s("sessionTimeoutDmMinutes"),description:"Idle minutes before a direct-message session expires. Once expired, the next DM opens a new session without prior conversation history.",onSave:u}),(0,a.jsx)(G.EditableField,{label:"Channel Timeout",value:d("sessionTimeoutChannelMinutes",e.sessionTimeoutChannelMinutes),configKey:"sessionTimeoutChannelMinutes",type:"number",suffix:"min",modified:c.has("sessionTimeoutChannelMinutes"),defaultValue:s("sessionTimeoutChannelMinutes"),description:"Idle minutes before an @mention thread in a public channel expires. Usually shorter than DM timeout since channel context rotates faster.",onSave:u}),(0,a.jsx)(G.EditableField,{label:"Dashboard Timeout",value:d("sessionTimeoutDashboardMinutes",e.sessionTimeoutDashboardMinutes),configKey:"sessionTimeoutDashboardMinutes",type:"number",suffix:"min",modified:c.has("sessionTimeoutDashboardMinutes"),defaultValue:s("sessionTimeoutDashboardMinutes"),description:"Idle minutes before a dashboard Chat session expires. The session sidebar will still show it as a past conversation you can reopen.",onSave:u})]})}),(0,a.jsx)(X,{title:"Cost guardrails",children:(0,a.jsxs)(G.ConfigSection,{title:"Cost guardrails",children:[(0,a.jsx)("p",{className:"pb-2 text-xs text-muted-foreground",children:"Guardrails and alert thresholds for autonomous routine spend. The daily cap can skip lower-priority routines; the monthly cap only notifies. Reactive work such as DMs and mentions still runs."}),(0,a.jsx)(G.EditableField,{label:"Autonomous Daily Cost Cap",value:d("autonomousDailyCostCapUsd",e.autonomousDailyCostCapUsd),configKey:"autonomousDailyCostCapUsd",type:"number",suffix:"$",nullable:!0,emptyLabel:"Disabled",min:.01,modified:c.has("autonomousDailyCostCapUsd"),defaultValue:s("autonomousDailyCostCapUsd"),description:"Maximum daily USD spend for autonomous sessions before lower-priority routines are skipped. Leave blank to disable the cap.",onSave:u}),(0,a.jsx)(G.EditableField,{label:"Autonomous Monthly Cost Cap (alert only)",value:d("autonomousMonthlyCostCapUsd",e.autonomousMonthlyCostCapUsd),configKey:"autonomousMonthlyCostCapUsd",type:"number",suffix:"$",nullable:!0,emptyLabel:"Disabled",min:.01,modified:c.has("autonomousMonthlyCostCapUsd"),defaultValue:s("autonomousMonthlyCostCapUsd"),description:"Notification threshold for the rolling 30-day spend. Surfaces a warning at 80% and an error at 100% in the Notifications panel. No dispatcher enforcement — pair with the daily cap for hard guardrails.",onSave:u})]})})]})}],93772)}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,70986,e=>{"use strict";var t=e.i(34416),a=e.i(91967),s=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,x]=(0,s.createContextScope)(u),[h,p]=m(u),g=t.forwardRef((e,a)=>{let{__scopeCollapsible:s,open:i,defaultOpen:n,disabled:o,onOpenChange:m,...x}=e,[p,g]=(0,r.useControllableState)({prop:i,defaultProp:n??!1,onChange:m,caller:u});return(0,c.jsx)(h,{scope:s,disabled:o,contentId:(0,d.useId)(),open:p,onOpenToggle:t.useCallback(()=>g(e=>!e),[g]),children:(0,c.jsx)(l.Primitive.div,{"data-state":w(p),"data-disabled":o?"":void 0,...x,ref:a})})});g.displayName=u;var f="CollapsibleTrigger",y=t.forwardRef((e,t)=>{let{__scopeCollapsible:s,...r}=e,i=p(f,s);return(0,c.jsx)(l.Primitive.button,{type:"button","aria-controls":i.contentId,"aria-expanded":i.open||!1,"data-state":w(i.open),"data-disabled":i.disabled?"":void 0,disabled:i.disabled,...r,ref:t,onClick:(0,a.composeEventHandlers)(e.onClick,i.onOpenToggle)})});y.displayName=f;var b="CollapsibleContent",v=t.forwardRef((e,t)=>{let{forceMount:a,...s}=e,r=p(b,e.__scopeCollapsible);return(0,c.jsx)(o.Presence,{present:a||r.open,children:({present:e})=>(0,c.jsx)(j,{...s,ref:t,present:e})})});v.displayName=b;var j=t.forwardRef((e,a)=>{let{__scopeCollapsible:s,present:r,children:o,...d}=e,u=p(b,s),[m,x]=t.useState(r),h=t.useRef(null),g=(0,n.useComposedRefs)(a,h),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,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),x(r)}},[u.open,r]),(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)},99758,e=>{"use strict";let t=(0,e.i(77379).default)("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",0,t],99758)},74490,e=>{"use strict";var t=e.i(54710),a=e.i(81471);let s=(0,e.i(94237).cva)("rounded-xl border p-5 shadow-[0_1px_3px_rgb(0_0_0/0.04)]",{variants:{tone:{default:"border-border bg-card",warning:"border-amber-200 bg-amber-50/50 dark:border-amber-900 dark:bg-amber-950/30",success:"border-emerald-200 bg-emerald-50/50 dark:border-emerald-900 dark:bg-emerald-950/30",error:"border-red-200 bg-red-50/50 dark:border-red-900 dark:bg-red-950/30"},interactive:{true:"transition-shadow duration-150 hover:shadow-[0_4px_6px_rgb(0_0_0/0.06)]",false:""}},defaultVariants:{tone:"default",interactive:!1}});e.s(["Card",0,function({className:e,tone:r,interactive:i,...n}){return(0,t.jsx)("div",{className:(0,a.cn)(s({tone:r,interactive:i}),e),...n})},"CardHeader",0,function({className:e,...s}){return(0,t.jsx)("div",{className:(0,a.cn)("mb-3 flex items-center justify-between",e),...s})},"CardStatLabel",0,function({className:e,...s}){return(0,t.jsx)("h3",{className:(0,a.cn)("text-sm font-medium text-muted-foreground",e),...s})},"CardTitle",0,function({className:e,...s}){return(0,t.jsx)("h3",{className:(0,a.cn)("text-lg font-semibold text-foreground",e),...s})},"CardValue",0,function({className:e,...s}){return(0,t.jsx)("div",{className:(0,a.cn)("text-3xl font-bold text-foreground",e),...s})}])},90925,e=>{"use strict";let t=(0,e.i(77379).default)("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);e.s(["Trash2",0,t],90925)},60168,e=>{"use strict";let t=(0,e.i(77379).default)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",0,t],60168)},21682,e=>{"use strict";let t=(0,e.i(77379).default)("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);e.s(["Pencil",0,t],21682)},55575,e=>{"use strict";let t=(0,e.i(77379).default)("FolderOpen",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);e.s(["FolderOpen",0,t],55575)},66127,e=>{"use strict";var t=e.i(65268);async function a({title:e,defaultPath:s}){let r=await t.api.post("/system/pick-directory",{title:e,...s?{defaultPath:s}:{}});if("selected"===r.status&&r.path)return r.path;if("cancelled"===r.status)return null;throw Error(r.message??"Folder picker is unavailable.")}e.s(["pickDirectoryFromDesktop",0,a])},25795,e=>{"use strict";let t=(0,e.i(77379).default)("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);e.s(["RotateCcw",0,t],25795)},82239,e=>{"use strict";var t=e.i(54710),a=e.i(25795),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),r=e.i(8011),i=e.i(10628),n=e.i(81471);e.s(["DocsHelpInline",0,function({docId:e,anchor:l=null,label:o,className:d}){let c=(0,s.useQueryClient)(),u=o??"Help";return(0,t.jsx)(i.TooltipProvider,{delayDuration:300,children:(0,t.jsxs)(i.Tooltip,{children:[(0,t.jsx)(i.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:t=>{t.preventDefault(),t.stopPropagation(),(0,r.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)(a.HelpCircle,{className:"h-3.5 w-3.5","aria-hidden":"true"})})}),(0,t.jsx)(i.TooltipContent,{side:"top",children:(0,t.jsx)("span",{children:u})})]})})}])},88,e=>{"use strict";var t=e.i(54710),a=e.i(34416),s=e.i(99758),r=e.i(55575),i=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),x=e.i(74490),h=e.i(8652),p=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:a,helpDocId:s,helpAnchor:r}){return(0,t.jsxs)(x.Card,{children:[(0,t.jsx)(x.CardHeader,{children:(0,t.jsxs)(x.CardTitle,{className:"flex items-center gap-1.5",children:[(0,t.jsx)("span",{children:e}),s&&(0,t.jsx)(g.DocsHelpInline,{docId:s,anchor:r??null,label:e})]})}),(0,t.jsx)("div",{className:"space-y-0.5 [&>p]:max-w-prose",children:a})]})},"EditableArrayField",0,function({label:e,values:s,configKey:i,variant:l="gray",placeholder:o="Add item...",directoryPicker:c,modified:x,onSave:g}){let y=b.has(i),[v,j]=(0,a.useState)(""),[w,N]=(0,a.useState)(!1),[k,C]=(0,a.useState)(null),T=async()=>{let e=v.trim();if(!(!e||s.includes(e))){N(!0),C(null);try{await g(i,[...s,e]),j("")}catch{}finally{N(!1)}}},R=async e=>{N(!0);try{await g(i,s.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(s.includes(e)){j(e),C("That directory is already in the list.");return}await g(i,[...s,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${x?" border-l-2 border-blue-500 pl-2 -ml-1 rounded":""}`,"data-config-key":i,children:[(0,t.jsxs)("p",{className:"text-sm text-muted-foreground mb-2 inline-flex items-center gap-1.5",children:[e,y&&(0,t.jsx)(p.RestartRequiredBadge,{}),x&&(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:()=>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===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)(h.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)(r.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:s,configKey:r,description:i,modified:n,defaultValue:o,onSave:d}){let[c,u]=(0,a.useState)(!1),x=b.has(r),h=void 0!==o&&s===o,g=async()=>{u(!0);try{await d(r,!s)}finally{u(!1)}},f=async()=>{if(void 0!==o){u(!0);try{await d(r,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":r,children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("p",{className:"text-sm text-muted-foreground inline-flex items-center gap-1.5",children:[e,x&&(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&&!h&&!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"]})]}),i&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:i})]}),(0,t.jsx)(m.Button,{variant:s?"default":"outline",size:"sm",onClick:g,disabled:c,children:s?"Enabled":"Disabled"})]})})},"EditableField",0,function({label:e,value:r,configKey:n,type:c="text",suffix:u,description:x,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,a.useState)(!1),[D,B]=(0,a.useState)(v(r)),[E,A]=(0,a.useState)(!1),[L,M]=(0,a.useState)(null),$=(0,a.useRef)(null),F=(0,y.useDiscardGeneration)(),P=(0,a.useRef)(F);(0,a.useEffect)(()=>{F!==P.current&&(P.current=F,S(!1),M(null))},[F]),(0,a.useEffect)(()=>{R&&$.current?.focus()},[R]),(0,a.useEffect)(()=>{R||B(v(r))},[r,R]);let q=void 0!==k&&r===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)}},_=async()=>{let e=D.trim(),t=j&&""===e?null:"number"===c?Number(D):D;if(t===r)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 M(`Must be ${g??""}–${f??""}`);M(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)(p.RestartRequiredBadge,{})]}),(0,t.jsx)(h.Input,{ref:$,type:c,value:D,onChange:e=>{B(e.target.value),M(null)},onKeyDown:e=>{"Enter"===e.key&&_(),"Escape"===e.key&&(B(v(r)),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:_,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:()=>{B(v(r)),M(null),S(!1)},className:"h-7 w-7 p-0",children:(0,t.jsx)(d.X,{className:"h-3.5 w-3.5"})})]}),L&&(0,t.jsx)("p",{className:"text-xs text-destructive mt-1 ml-[148px]",children:L}),x&&!L&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-1 ml-[148px]",children:x})]}):(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)(p.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!==r&&!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===r?w:"$"===u?`$${r}`:u?`${r} ${u}`:String(r)}),(0,t.jsx)(i.Pencil,{className:"h-3 w-3 text-muted-foreground opacity-0 group-hover:opacity-100 transition-opacity"})]})]}),x&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:x})]})}])},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),a=e.i(34416),s=e.i(81187),r=e.i(59546),i=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),x=e.i(54879),h=e.i(95486),p=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,h.useQueryClient)(),s=(0,T.useConfirm)(),[r,i]=(0,a.useState)(!1),[n,l]=(0,a.useState)(!1),[o,u]=(0,a.useState)(null),[m,x]=(0,a.useState)(null),{data:y}=(0,p.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,a.useEffect)(()=>{if(!y)return;let e=y.primaryLanguage??y.suggestedPrimaryLanguage;x(t=>t??e)},[y?.primaryLanguage,y?.suggestedPrimaryLanguage,y]),(0,a.useEffect)(()=>{n&&y?.enabled&&(l(!1),e.invalidateQueries({queryKey:["config"]}))},[n,y?.enabled,e]),(0,a.useEffect)(()=>{y?.status!=="ready"||y.enabled||l(!0)},[y?.status,y?.enabled]);let b=async()=>{u(null),i(!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{i(!1)}},v=async()=>{if(await s({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),i(!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{i(!1)}}},N=async t=>{u(null),i(!0);try{await f.api.patch("/config",{voiceTranscriptionPrimaryLanguage:t}),x(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{i(!1)}},C=y?.enabled??!1,S=r||(y?.installing??!1)||n,D=y?.progress??null,B=o??y?.error??null,A=C&&y?.modelOnDisk===!1&&!S,L=(0,a.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}},[]),$=e=>(0,t.jsxs)(k.Select,{value:m??void 0,onValueChange:e=>x(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:[L.top.length>0&&(0,t.jsxs)(k.SelectGroup,{children:[(0,t.jsx)(k.SelectLabel,{children:"Common"}),L.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))]}),L.more.length>0&&(0,t.jsxs)(k.SelectGroup,{children:[(0,t.jsx)(k.SelectLabel,{children:"More languages"}),L.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:r}),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."})]}),$("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:r||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:[$("voice-primary-language-live"),(0,t.jsx)(j.Button,{size:"sm",variant:"outline",disabled:r||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?`${M(D.loadedBytes)} / ${M(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:a,upgradeAvailable:i,installing:n,waitingForRestart:c,onDelete:u,deleteDisabled:x}){let h=e?.model??"onnx-community/whisper-large-v3-turbo",p=e?.modelSizeBytes??0,g=e?.modelDir??null,f=n?"installing":i?"upgrade":a?"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)(r.CheckCircle2,{className:(0,R.cn)("h-4 w-4",y.iconBg)}):"upgrade"===f?(0,t.jsx)(s.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&&p>0?(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 tabular-nums",children:[(0,t.jsx)(o,{className:"h-3 w-3"}),M(p)," 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:h})]}),(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:x,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 L(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 M(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 $(){let[e,r]=(0,a.useState)(!1),[n,l]=(0,a.useState)(null),[o,d]=(0,a.useState)(null),[c,p]=(0,a.useState)(null),g=(0,T.useConfirm)(),y=(0,h.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),p(null);try{let a=await A(e);L(e,y),p(t.successMessage(a))}catch(e){d(e instanceof f.ApiError?e.message:"Request failed")}finally{l(null)}}};return(0,t.jsx)(N.Collapsible,{open:e,onOpenChange:r,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)(i.ChevronRight,{className:(0,R.cn)("h-4 w-4 text-destructive transition-transform",e&&"rotate-90")}),(0,t.jsx)(s.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)(F,{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)(F,{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)(F,{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),p(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) (${M(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 a=await A("reinstall-context");L("reinstall-context",y),p(`Reinstalled. Removed ${a.filesDeleted??0} file(s), cleared ${a.snapshotRowsDeleted??0} snapshot row(s). Backup at ${a.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)(F,{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)(x.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",a=Array.isArray(e.errors)?e.errors.length:0,s=Array.isArray(e.adapterReloadErrors)?e.adapterReloadErrors.length:0;return"reset_with_errors"===t||a>0||s>0?`Factory reset finished with warnings. Restart the daemon to re-bootstrap observers and adapters. (${a} reset step warning(s), ${s} adapter reload warning(s).)`:"Factory reset complete. Restart the daemon to re-bootstrap observers and adapters."}})})]})})]})})}function F({title:e,description:a,icon:s,label:r,busy:i,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:a})]}),(0,t.jsxs)(j.Button,{variant:"destructive",size:"sm",onClick:l,disabled:n,className:"shrink-0",children:[s,i?"Working...":r]})]})}e.s(["default",0,function(){let{data:e}=(0,y.useConfig)(),{toast:s,showToast:r}=(0,b.useSaveConfig)(),{deferSaveFor:i,dv:n,dirtyFields:l,clearDirtyKeys:o}=(0,v.useDirtyFields)(),d=(0,h.useQueryClient)(),c=(0,T.useConfirm)(),[m,x]=(0,a.useState)(!1),p=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"})){x(!0);try{await f.api.post("/config/reset-safety"),d.invalidateQueries({queryKey:["config"]}),o(["disallowedTools","allowedToolsOverride"]),r("success","Safety tools reset to defaults")}finally{x(!1)}}};if(!e)return(0,t.jsx)("div",{className:"text-muted-foreground",children:"Loading..."});let g=i(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:s}),(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:p,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)($,{})]})}],34409)}]);
|