@aitne/dashboard 0.1.0 → 0.1.2
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/build-manifest.json +3 -3
- package/.next/cache/.tsbuildinfo +1 -1
- package/.next/diagnostics/route-bundle-stats.json +210 -247
- package/.next/fallback-build-manifest.json +3 -3
- 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 +14 -14
- package/.next/server/app/_not-found.segments/_full.segment.rsc +14 -14
- package/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
- package/.next/server/app/_not-found.segments/_index.segment.rsc +9 -9
- 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 +1 -1
- package/.next/server/app/activity/page.js.nft.json +1 -1
- package/.next/server/app/activity/page_client-reference-manifest.js +1 -1
- package/.next/server/app/activity.html +1 -1
- package/.next/server/app/activity.rsc +27 -26
- package/.next/server/app/activity.segments/_full.segment.rsc +27 -26
- package/.next/server/app/activity.segments/_head.segment.rsc +4 -4
- package/.next/server/app/activity.segments/_index.segment.rsc +9 -9
- package/.next/server/app/activity.segments/_tree.segment.rsc +1 -1
- 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 +22 -23
- package/.next/server/app/analytics.segments/_full.segment.rsc +22 -23
- package/.next/server/app/analytics.segments/_head.segment.rsc +4 -4
- package/.next/server/app/analytics.segments/_index.segment.rsc +9 -9
- package/.next/server/app/analytics.segments/_tree.segment.rsc +1 -1
- 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 +16 -16
- package/.next/server/app/chat.segments/_full.segment.rsc +16 -16
- package/.next/server/app/chat.segments/_head.segment.rsc +4 -4
- package/.next/server/app/chat.segments/_index.segment.rsc +9 -9
- package/.next/server/app/chat.segments/_tree.segment.rsc +1 -1
- 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 +17 -17
- package/.next/server/app/connections/calendar.segments/_full.segment.rsc +17 -17
- package/.next/server/app/connections/calendar.segments/_head.segment.rsc +4 -4
- package/.next/server/app/connections/calendar.segments/_index.segment.rsc +9 -9
- package/.next/server/app/connections/calendar.segments/_tree.segment.rsc +1 -1
- 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 +15 -15
- package/.next/server/app/connections/journal.segments/_full.segment.rsc +15 -15
- package/.next/server/app/connections/journal.segments/_head.segment.rsc +4 -4
- package/.next/server/app/connections/journal.segments/_index.segment.rsc +9 -9
- package/.next/server/app/connections/journal.segments/_tree.segment.rsc +1 -1
- 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 +17 -17
- package/.next/server/app/connections/knowledge.segments/_full.segment.rsc +17 -17
- package/.next/server/app/connections/knowledge.segments/_head.segment.rsc +4 -4
- package/.next/server/app/connections/knowledge.segments/_index.segment.rsc +9 -9
- package/.next/server/app/connections/knowledge.segments/_tree.segment.rsc +1 -1
- 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 +17 -17
- package/.next/server/app/connections/mail.segments/_full.segment.rsc +17 -17
- package/.next/server/app/connections/mail.segments/_head.segment.rsc +4 -4
- package/.next/server/app/connections/mail.segments/_index.segment.rsc +9 -9
- package/.next/server/app/connections/mail.segments/_tree.segment.rsc +1 -1
- 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 +17 -17
- package/.next/server/app/connections/mcp.segments/_full.segment.rsc +17 -17
- package/.next/server/app/connections/mcp.segments/_head.segment.rsc +4 -4
- package/.next/server/app/connections/mcp.segments/_index.segment.rsc +9 -9
- package/.next/server/app/connections/mcp.segments/_tree.segment.rsc +1 -1
- 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 +17 -17
- package/.next/server/app/connections/messaging.segments/_full.segment.rsc +17 -17
- package/.next/server/app/connections/messaging.segments/_head.segment.rsc +4 -4
- package/.next/server/app/connections/messaging.segments/_index.segment.rsc +9 -9
- package/.next/server/app/connections/messaging.segments/_tree.segment.rsc +1 -1
- 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 +17 -17
- package/.next/server/app/connections/repositories.segments/_full.segment.rsc +17 -17
- package/.next/server/app/connections/repositories.segments/_head.segment.rsc +4 -4
- package/.next/server/app/connections/repositories.segments/_index.segment.rsc +9 -9
- package/.next/server/app/connections/repositories.segments/_tree.segment.rsc +1 -1
- 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 +15 -15
- package/.next/server/app/connections/routines.segments/_full.segment.rsc +15 -15
- package/.next/server/app/connections/routines.segments/_head.segment.rsc +4 -4
- package/.next/server/app/connections/routines.segments/_index.segment.rsc +9 -9
- package/.next/server/app/connections/routines.segments/_tree.segment.rsc +1 -1
- 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 +15 -15
- package/.next/server/app/connections.segments/_full.segment.rsc +15 -15
- package/.next/server/app/connections.segments/_head.segment.rsc +4 -4
- package/.next/server/app/connections.segments/_index.segment.rsc +9 -9
- package/.next/server/app/connections.segments/_tree.segment.rsc +1 -1
- 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 +14 -14
- package/.next/server/app/conversations.segments/_full.segment.rsc +14 -14
- package/.next/server/app/conversations.segments/_head.segment.rsc +4 -4
- package/.next/server/app/conversations.segments/_index.segment.rsc +9 -9
- package/.next/server/app/conversations.segments/_tree.segment.rsc +1 -1
- 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 +16 -16
- package/.next/server/app/finance.segments/_full.segment.rsc +16 -16
- package/.next/server/app/finance.segments/_head.segment.rsc +4 -4
- package/.next/server/app/finance.segments/_index.segment.rsc +9 -9
- package/.next/server/app/finance.segments/_tree.segment.rsc +1 -1
- 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 +16 -16
- package/.next/server/app/git.segments/_full.segment.rsc +16 -16
- package/.next/server/app/git.segments/_head.segment.rsc +4 -4
- package/.next/server/app/git.segments/_index.segment.rsc +9 -9
- package/.next/server/app/git.segments/_tree.segment.rsc +1 -1
- 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 +16 -16
- package/.next/server/app/health.segments/_full.segment.rsc +16 -16
- package/.next/server/app/health.segments/_head.segment.rsc +4 -4
- package/.next/server/app/health.segments/_index.segment.rsc +9 -9
- package/.next/server/app/health.segments/_tree.segment.rsc +1 -1
- 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 +16 -16
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/index.segments/_full.segment.rsc +16 -16
- package/.next/server/app/index.segments/_head.segment.rsc +4 -4
- package/.next/server/app/index.segments/_index.segment.rsc +9 -9
- package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/knowledge/page.js.nft.json +1 -1
- package/.next/server/app/knowledge/page_client-reference-manifest.js +1 -1
- package/.next/server/app/knowledge.html +1 -1
- package/.next/server/app/knowledge.rsc +17 -17
- package/.next/server/app/knowledge.segments/_full.segment.rsc +17 -17
- package/.next/server/app/knowledge.segments/_head.segment.rsc +4 -4
- package/.next/server/app/knowledge.segments/_index.segment.rsc +9 -9
- package/.next/server/app/knowledge.segments/_tree.segment.rsc +1 -1
- 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 +16 -16
- package/.next/server/app/reading.segments/_full.segment.rsc +16 -16
- package/.next/server/app/reading.segments/_head.segment.rsc +4 -4
- package/.next/server/app/reading.segments/_index.segment.rsc +9 -9
- package/.next/server/app/reading.segments/_tree.segment.rsc +1 -1
- 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 +16 -16
- package/.next/server/app/schedule.segments/_full.segment.rsc +16 -16
- package/.next/server/app/schedule.segments/_head.segment.rsc +4 -4
- package/.next/server/app/schedule.segments/_index.segment.rsc +9 -9
- package/.next/server/app/schedule.segments/_tree.segment.rsc +1 -1
- 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 +17 -17
- package/.next/server/app/settings/advanced.segments/_full.segment.rsc +17 -17
- package/.next/server/app/settings/advanced.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/advanced.segments/_index.segment.rsc +9 -9
- package/.next/server/app/settings/advanced.segments/_tree.segment.rsc +1 -1
- 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 +15 -15
- package/.next/server/app/settings/backends.segments/_full.segment.rsc +15 -15
- package/.next/server/app/settings/backends.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/backends.segments/_index.segment.rsc +9 -9
- package/.next/server/app/settings/backends.segments/_tree.segment.rsc +1 -1
- 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 +17 -17
- package/.next/server/app/settings/commands.segments/_full.segment.rsc +17 -17
- package/.next/server/app/settings/commands.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/commands.segments/_index.segment.rsc +9 -9
- package/.next/server/app/settings/commands.segments/_tree.segment.rsc +1 -1
- 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 +15 -15
- package/.next/server/app/settings/connections.segments/_full.segment.rsc +15 -15
- package/.next/server/app/settings/connections.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/connections.segments/_index.segment.rsc +9 -9
- package/.next/server/app/settings/connections.segments/_tree.segment.rsc +1 -1
- 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 +17 -17
- package/.next/server/app/settings/journal.segments/_full.segment.rsc +17 -17
- package/.next/server/app/settings/journal.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/journal.segments/_index.segment.rsc +9 -9
- package/.next/server/app/settings/journal.segments/_tree.segment.rsc +1 -1
- 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 +17 -17
- package/.next/server/app/settings/management.segments/_full.segment.rsc +17 -17
- package/.next/server/app/settings/management.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/management.segments/_index.segment.rsc +9 -9
- package/.next/server/app/settings/management.segments/_tree.segment.rsc +1 -1
- 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 +15 -15
- package/.next/server/app/settings/messaging.segments/_full.segment.rsc +15 -15
- package/.next/server/app/settings/messaging.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/messaging.segments/_index.segment.rsc +9 -9
- package/.next/server/app/settings/messaging.segments/_tree.segment.rsc +1 -1
- 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 +17 -17
- package/.next/server/app/settings/models.segments/_full.segment.rsc +17 -17
- package/.next/server/app/settings/models.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/models.segments/_index.segment.rsc +9 -9
- package/.next/server/app/settings/models.segments/_tree.segment.rsc +1 -1
- 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 +15 -15
- package/.next/server/app/settings/processes.segments/_full.segment.rsc +15 -15
- package/.next/server/app/settings/processes.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/processes.segments/_index.segment.rsc +9 -9
- package/.next/server/app/settings/processes.segments/_tree.segment.rsc +1 -1
- 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 +17 -17
- package/.next/server/app/settings/routines.segments/_full.segment.rsc +17 -17
- package/.next/server/app/settings/routines.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/routines.segments/_index.segment.rsc +9 -9
- package/.next/server/app/settings/routines.segments/_tree.segment.rsc +1 -1
- 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 +17 -17
- package/.next/server/app/settings/schedule.segments/_full.segment.rsc +17 -17
- package/.next/server/app/settings/schedule.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/schedule.segments/_index.segment.rsc +9 -9
- package/.next/server/app/settings/schedule.segments/_tree.segment.rsc +1 -1
- 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 +17 -17
- package/.next/server/app/settings/self-learning.segments/_full.segment.rsc +17 -17
- package/.next/server/app/settings/self-learning.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/self-learning.segments/_index.segment.rsc +9 -9
- package/.next/server/app/settings/self-learning.segments/_tree.segment.rsc +1 -1
- 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.html +1 -1
- package/.next/server/app/settings.rsc +17 -17
- package/.next/server/app/settings.segments/_full.segment.rsc +17 -17
- package/.next/server/app/settings.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings.segments/_index.segment.rsc +9 -9
- package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
- 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 +16 -16
- package/.next/server/app/setup.segments/_full.segment.rsc +16 -16
- package/.next/server/app/setup.segments/_head.segment.rsc +4 -4
- package/.next/server/app/setup.segments/_index.segment.rsc +9 -9
- package/.next/server/app/setup.segments/_tree.segment.rsc +1 -1
- 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 +16 -16
- package/.next/server/app/trip.segments/_full.segment.rsc +16 -16
- package/.next/server/app/trip.segments/_head.segment.rsc +4 -4
- package/.next/server/app/trip.segments/_index.segment.rsc +9 -9
- package/.next/server/app/trip.segments/_tree.segment.rsc +1 -1
- 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/chunks/05w9_next_dist_esm_build_templates_app-route_0~eezk6.js +3 -3
- package/.next/server/chunks/05w9_next_dist_esm_build_templates_app-route_0~eezk6.js.map +1 -1
- package/.next/server/chunks/{[root-of-the-server]__0j~awob._.js → [root-of-the-server]__0dwxuh7._.js} +1 -1
- package/.next/server/chunks/{[root-of-the-server]__04-hp3j._.js → [root-of-the-server]__0k7lkv6._.js} +2 -2
- package/.next/server/chunks/ssr/{[root-of-the-server]__0t26ngg._.js → [root-of-the-server]__0ngitfo._.js} +2 -2
- package/.next/server/chunks/ssr/{[root-of-the-server]__0t26ngg._.js.map → [root-of-the-server]__0ngitfo._.js.map} +1 -1
- package/.next/server/chunks/ssr/{_0pvc7ao._.js → _0370l.6._.js} +2 -2
- package/.next/server/chunks/ssr/{_0pvc7ao._.js.map → _0370l.6._.js.map} +1 -1
- package/.next/server/chunks/ssr/_04kt9.8._.js +3 -0
- package/.next/server/chunks/ssr/_04kt9.8._.js.map +1 -0
- package/.next/server/chunks/ssr/_060itkv._.js +3 -0
- package/.next/server/chunks/ssr/_060itkv._.js.map +1 -0
- package/.next/server/chunks/ssr/{_0pydxc8._.js → _083cqy.._.js} +2 -2
- package/.next/server/chunks/ssr/_083cqy.._.js.map +1 -0
- package/.next/server/chunks/ssr/{_0lm8td~._.js → _08mbdt1._.js} +2 -2
- package/.next/server/chunks/ssr/_08mbdt1._.js.map +1 -0
- package/.next/server/chunks/ssr/_0938p.1._.js +3 -0
- package/.next/server/chunks/ssr/_0938p.1._.js.map +1 -0
- package/.next/server/chunks/ssr/_0ff5qav._.js +3 -0
- package/.next/server/chunks/ssr/_0ff5qav._.js.map +1 -0
- package/.next/server/chunks/ssr/_0g2e834._.js +3 -0
- package/.next/server/chunks/ssr/_0g2e834._.js.map +1 -0
- package/.next/server/chunks/ssr/_0gp8d.p._.js +3 -0
- package/.next/server/chunks/ssr/_0gp8d.p._.js.map +1 -0
- package/.next/server/chunks/ssr/_0k2j6-t._.js +3 -0
- package/.next/server/chunks/ssr/_0k2j6-t._.js.map +1 -0
- package/.next/server/chunks/ssr/_0kq5x2k._.js +3 -0
- package/.next/server/chunks/ssr/_0kq5x2k._.js.map +1 -0
- package/.next/server/chunks/ssr/_0mk7dqt._.js +3 -0
- package/.next/server/chunks/ssr/_0mk7dqt._.js.map +1 -0
- package/.next/server/chunks/ssr/_0qgn2wv._.js +3 -0
- package/.next/server/chunks/ssr/_0qgn2wv._.js.map +1 -0
- package/.next/server/chunks/ssr/_0t-2u_i._.js +3 -0
- package/.next/server/chunks/ssr/_0t-2u_i._.js.map +1 -0
- package/.next/server/chunks/ssr/_0vn5_62._.js +5 -0
- package/.next/server/chunks/ssr/_0vn5_62._.js.map +1 -0
- package/.next/server/chunks/ssr/{_01aim8_._.js → _0z1gdb3._.js} +2 -2
- package/.next/server/chunks/ssr/{_01aim8_._.js.map → _0z1gdb3._.js.map} +1 -1
- package/.next/server/chunks/ssr/_0~4ta0s._.js +3 -0
- package/.next/server/chunks/ssr/_0~4ta0s._.js.map +1 -0
- package/.next/server/chunks/ssr/_0~5r_8s._.js +3 -0
- package/.next/server/chunks/ssr/_0~5r_8s._.js.map +1 -0
- package/.next/server/chunks/ssr/_13mk_9n._.js.map +1 -1
- 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_settings_advanced_page_tsx_0o~_885._.js +1 -1
- package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_advanced_page_tsx_0o~_885._.js.map +1 -1
- package/.next/server/chunks/ssr/packages_shared_dist_index_0kuvow-.js +2 -2
- 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/00qqwuw5id.21.js +1 -0
- package/.next/static/chunks/0_yam4jvco3~t.js +1 -0
- package/.next/static/chunks/{107sryfaib58g.js → 0kjwfju1fsjkk.js} +1 -1
- package/.next/static/chunks/0yt4prt55bas4.js +11 -0
- package/.next/static/chunks/{0v2k5twh.h_g2.js → 10_4_2h602xzk.js} +3 -3
- package/.next/trace +2 -2
- package/.next/trace-build +1 -1
- package/package.json +11 -11
- package/.next/server/chunks/ssr/_0-v4eqm._.js +0 -3
- package/.next/server/chunks/ssr/_0-v4eqm._.js.map +0 -1
- package/.next/server/chunks/ssr/_03ay~a6._.js +0 -3
- package/.next/server/chunks/ssr/_03ay~a6._.js.map +0 -1
- package/.next/server/chunks/ssr/_05ul8c5._.js +0 -3
- package/.next/server/chunks/ssr/_05ul8c5._.js.map +0 -1
- package/.next/server/chunks/ssr/_0_1u-~q._.js +0 -3
- package/.next/server/chunks/ssr/_0_1u-~q._.js.map +0 -1
- package/.next/server/chunks/ssr/_0ax_-cr._.js +0 -3
- package/.next/server/chunks/ssr/_0ax_-cr._.js.map +0 -1
- package/.next/server/chunks/ssr/_0czapf~._.js +0 -3
- package/.next/server/chunks/ssr/_0czapf~._.js.map +0 -1
- package/.next/server/chunks/ssr/_0dlwb-j._.js +0 -3
- package/.next/server/chunks/ssr/_0dlwb-j._.js.map +0 -1
- package/.next/server/chunks/ssr/_0dvtdxd._.js +0 -3
- package/.next/server/chunks/ssr/_0dvtdxd._.js.map +0 -1
- package/.next/server/chunks/ssr/_0h-sc1p._.js +0 -3
- package/.next/server/chunks/ssr/_0h-sc1p._.js.map +0 -1
- package/.next/server/chunks/ssr/_0k_zx~4._.js +0 -3
- package/.next/server/chunks/ssr/_0k_zx~4._.js.map +0 -1
- package/.next/server/chunks/ssr/_0kqlqn5._.js +0 -5
- package/.next/server/chunks/ssr/_0kqlqn5._.js.map +0 -1
- package/.next/server/chunks/ssr/_0lm8td~._.js.map +0 -1
- package/.next/server/chunks/ssr/_0pydxc8._.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/static/chunks/07k3fjq54671q.js +0 -1
- package/.next/static/chunks/0o6q9amhembht.js +0 -1
- package/.next/static/chunks/0pbah5-djvzuh.js +0 -11
- package/.next/static/chunks/0sz8178y9b-~6.js +0 -1
- package/LICENSE +0 -21
- /package/.next/server/chunks/{[root-of-the-server]__0j~awob._.js.map → [root-of-the-server]__0dwxuh7._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__04-hp3j._.js.map → [root-of-the-server]__0k7lkv6._.js.map} +0 -0
- /package/.next/static/{BS7xnS8j09zEzTFQ8HuEd → BoJYg5-EvFL480WsH6xGD}/_buildManifest.js +0 -0
- /package/.next/static/{BS7xnS8j09zEzTFQ8HuEd → BoJYg5-EvFL480WsH6xGD}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{BS7xnS8j09zEzTFQ8HuEd → BoJYg5-EvFL480WsH6xGD}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../packages/dashboard/src/components/shared/empty-state.tsx","../../../../../../packages/dashboard/src/components/directory-picker-field.tsx","../../../../../../packages/dashboard/src/components/connections/section-header.tsx","../../../../../../packages/dashboard/src/components/connections/connection-card.tsx","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/circle-x.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/lock.ts","../../../../../../packages/dashboard/src/lib/hooks/use-process-config.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/bot.ts","../../../../../../packages/dashboard/src/components/connections/process-model-card.tsx","../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-collapsible%401.1.12_%40types%2Breact-dom%4019.2.3_%40types%2Breact%4019.2.14__%40types_10a2c6d0ac3bcc7422bd3020fe61e076/node_modules/%40radix-ui/react-collapsible/dist/index.mjs","../../../../../../packages/dashboard/src/components/ui/collapsible.tsx","../../../../../../packages/dashboard/src/components/ui/card.tsx","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/trash-2.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/plus.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/pencil.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/folder-open.ts","../../../../../../packages/dashboard/src/lib/directory-picker.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/rotate-ccw.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/key-round.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/shield-check.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/play.ts","../../../../../../packages/dashboard/src/lib/hooks/use-repositories.ts"],"sourcesContent":["import type { LucideIcon } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\ninterface EmptyStateProps {\n icon: LucideIcon;\n title: string;\n description?: string;\n className?: string;\n children?: React.ReactNode;\n}\n\nexport function EmptyState({\n icon: Icon,\n title,\n description,\n className,\n children,\n}: EmptyStateProps) {\n return (\n <div\n className={cn(\n \"flex flex-col items-center justify-center py-16 text-muted-foreground\",\n className,\n )}\n >\n <Icon className=\"mb-3 h-10 w-10 opacity-40\" />\n <p className=\"text-sm font-medium\">{title}</p>\n {description && (\n <p className=\"mt-1 max-w-prose text-xs text-muted-foreground/70\">{description}</p>\n )}\n {children}\n </div>\n );\n}\n","\"use client\";\n\nimport { useState } from \"react\";\nimport { FolderOpen, Loader2 } from \"lucide-react\";\nimport { Button } from \"@/components/ui/button\";\nimport { Input } from \"@/components/ui/input\";\nimport { pickDirectoryFromDesktop } from \"@/lib/directory-picker\";\nimport { cn } from \"@/lib/utils\";\n\nexport function DirectoryPickerField({\n id,\n value,\n onChange,\n title,\n placeholder = \"Choose a folder...\",\n defaultPath,\n disabled = false,\n className,\n inputClassName,\n buttonLabel = \"Choose\",\n}: {\n id?: string;\n value: string;\n onChange: (value: string) => void;\n title: string;\n placeholder?: string;\n defaultPath?: string;\n disabled?: boolean;\n className?: string;\n inputClassName?: string;\n buttonLabel?: string;\n}) {\n const [picking, setPicking] = useState(false);\n const [pickerError, setPickerError] = useState<string | null>(null);\n\n const handlePick = async () => {\n setPicking(true);\n setPickerError(null);\n try {\n const selected = await pickDirectoryFromDesktop({\n title,\n defaultPath: value.trim() || defaultPath,\n });\n if (selected) onChange(selected);\n } catch (err) {\n setPickerError(\n err instanceof Error ? err.message : \"Folder picker is unavailable.\",\n );\n } finally {\n setPicking(false);\n }\n };\n\n return (\n <div className={cn(\"space-y-1\", className)}>\n <div className=\"flex flex-col gap-2 sm:flex-row\">\n <Input\n id={id}\n value={value}\n onChange={(e) => {\n onChange(e.target.value);\n setPickerError(null);\n }}\n placeholder={placeholder}\n className={cn(\"font-mono text-sm\", inputClassName)}\n disabled={disabled || picking}\n />\n <Button\n type=\"button\"\n variant=\"outline\"\n onClick={handlePick}\n disabled={disabled || picking}\n className=\"shrink-0 gap-2\"\n >\n {picking ? (\n <Loader2 className=\"h-4 w-4 animate-spin\" />\n ) : (\n <FolderOpen className=\"h-4 w-4\" />\n )}\n {picking ? \"Opening...\" : buttonLabel}\n </Button>\n </div>\n {pickerError && (\n <p className=\"text-xs text-destructive\">{pickerError}</p>\n )}\n </div>\n );\n}\n","\"use client\";\n\nimport type { ReactNode } from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface ConnectionsSectionHeaderProps {\n title: string;\n description?: ReactNode;\n /** Number of entries that are live/healthy. */\n healthy: number;\n /** Total entries in this section. */\n total: number;\n /** Optional short note about the remainder, e.g. \"WhatsApp needs re-pairing\". */\n attention?: string | null;\n /** Optional right-aligned action element (e.g. an \"Add\" button). */\n actions?: ReactNode;\n}\n\nexport function ConnectionsSectionHeader({\n title,\n description,\n healthy,\n total,\n attention,\n actions,\n}: ConnectionsSectionHeaderProps) {\n const allHealthy = total > 0 && healthy === total;\n const noneHealthy = total > 0 && healthy === 0;\n\n return (\n <div className=\"space-y-1\">\n <div className=\"flex items-baseline justify-between gap-3\">\n <h1 className=\"text-2xl font-semibold text-foreground\">{title}</h1>\n <div className=\"flex items-center gap-3\">\n {total > 0 && (\n <span\n className={cn(\n \"text-xs font-medium tabular-nums\",\n allHealthy\n ? \"text-emerald-600 dark:text-emerald-400\"\n : noneHealthy\n ? \"text-muted-foreground\"\n : \"text-amber-600 dark:text-amber-400\",\n )}\n >\n {healthy}/{total} connected\n </span>\n )}\n {actions}\n </div>\n </div>\n {description && (\n <p className=\"max-w-3xl text-sm text-muted-foreground\">{description}</p>\n )}\n {attention && (\n <p className=\"text-xs text-amber-600 dark:text-amber-400\">\n {attention}\n </p>\n )}\n </div>\n );\n}\n","\"use client\";\n\nimport type { ReactNode } from \"react\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Card } from \"@/components/ui/card\";\nimport { cn } from \"@/lib/utils\";\nimport type {\n IntegrationStatus as HealthIntegrationStatus,\n MessagingHealthStatus,\n} from \"@/lib/api-types\";\n\n// ── Status types ──\n\nexport type ConnectionStatus =\n | \"connected\"\n | \"configured\"\n | \"connecting\"\n | \"needs-setup\"\n | \"error\"\n | \"disabled\";\n\nconst STATUS_BADGE: Record<ConnectionStatus, { variant: \"green\" | \"red\" | \"gray\" | \"amber\"; label: string }> = {\n connected: { variant: \"green\", label: \"Connected\" },\n configured: { variant: \"amber\", label: \"Configured\" },\n connecting: { variant: \"amber\", label: \"Connecting…\" },\n \"needs-setup\": { variant: \"gray\", label: \"Not Configured\" },\n error: { variant: \"red\", label: \"Error\" },\n disabled: { variant: \"gray\", label: \"Disabled\" },\n};\n\nfunction cardTone(status: ConnectionStatus) {\n if (status === \"connected\") return \"success\" as const;\n if (status === \"error\") return \"error\" as const;\n return \"default\" as const;\n}\n\n// ── Status derivation helpers ──\n\n/** Derive card status from the health API's integration status object. */\nexport function deriveIntegrationStatus(\n s: HealthIntegrationStatus | undefined,\n): ConnectionStatus {\n if (!s) return \"needs-setup\";\n if (!s.configured) return \"needs-setup\";\n if (s.error) return \"error\";\n if (s.connected) return \"connected\";\n return \"configured\";\n}\n\n/** Derive card status from the health API's messaging status object. */\nexport function deriveMessagingStatus(\n s: MessagingHealthStatus | undefined,\n): ConnectionStatus {\n if (!s) return \"needs-setup\";\n if (s.runtimeState === \"not_configured\") return \"needs-setup\";\n if (s.runtimeState === \"connecting\") return \"connecting\";\n if (s.runtimeState === \"error\") return \"error\";\n if (s.runtimeState === \"ok\") return \"connected\";\n return \"configured\";\n}\n\n/** Derive card status from a simple boolean config flag (e.g. GitHub). */\nexport function deriveConfiguredStatus(configured: boolean): ConnectionStatus {\n return configured ? \"configured\" : \"needs-setup\";\n}\n\n/** Build the standard metadata lines for a messaging channel card. */\nexport function messagingMetadata(status: MessagingHealthStatus | undefined) {\n if (!status) return undefined;\n return [\n { label: \"Owner configured\", value: status.ownerConfigured ? \"yes\" : \"no\" },\n { label: \"Owner channel known\", value: status.ownerChannelKnown ? \"yes\" : \"no\" },\n { label: \"Reminder eligible\", value: status.notificationEligible ? \"yes\" : \"no\" },\n { label: \"Last inbound\", value: status.lastInboundAt ?? \"—\" },\n ];\n}\n\n// ── ConnectionCard component ──\n\nexport interface ConnectionCardProps {\n name: string;\n icon: ReactNode;\n status: ConnectionStatus;\n /** Error message from health API. */\n error?: string | null;\n /** Key-value metadata lines shown below the header. */\n metadata?: Array<{ label: string; value: string }>;\n /** Expandable config/setup content. */\n children?: ReactNode;\n className?: string;\n}\n\nexport function ConnectionCard({\n name,\n icon,\n status,\n error,\n metadata,\n children,\n className,\n}: ConnectionCardProps) {\n const badge = STATUS_BADGE[status];\n\n return (\n <Card tone={cardTone(status)} className={cn(\"relative\", className)}>\n {/* Header */}\n <div className=\"flex items-center justify-between mb-2\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-muted-foreground\">{icon}</span>\n <h3 className=\"text-sm font-medium text-foreground\">{name}</h3>\n </div>\n <Badge variant={badge.variant}>{badge.label}</Badge>\n </div>\n\n {/* Error from health API — suppressed during in-progress connecting state so\n transient auth/pairing messages don't render as red errors. */}\n {error && status !== \"connecting\" && (\n <p className=\"mb-2 text-xs text-red-600 dark:text-red-400\">{error}</p>\n )}\n\n {/* Metadata */}\n {metadata && metadata.length > 0 && (\n <div className=\"mb-3 space-y-0.5\">\n {metadata.map((m) => (\n <div key={m.label} className=\"flex items-center justify-between text-xs\">\n <span className=\"text-muted-foreground\">{m.label}</span>\n <span className=\"text-foreground\">{m.value}</span>\n </div>\n ))}\n </div>\n )}\n\n {/* Children */}\n {children}\n </Card>\n );\n}\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name CircleX\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/circle-x\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CircleX = createLucideIcon('CircleX', [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'm15 9-6 6', key: '1uzhvr' }],\n ['path', { d: 'm9 9 6 6', key: 'z0biqf' }],\n]);\n\nexport default CircleX;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Lock\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/lock\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Lock = createLucideIcon('Lock', [\n ['rect', { width: '18', height: '11', x: '3', y: '11', rx: '2', ry: '2', key: '1w4ew1' }],\n ['path', { d: 'M7 11V7a5 5 0 0 1 10 0v4', key: 'fwvmzm' }],\n]);\n\nexport default Lock;\n","\"use client\";\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { api } from \"@/lib/api-client\";\nimport type { ProcessConfigResponse } from \"@/lib/api-types\";\n\nexport function useProcessConfig(options?: { enabled?: boolean }) {\n return useQuery({\n queryKey: [\"process-config\"],\n queryFn: () => api.get<ProcessConfigResponse>(\"/process-config\"),\n enabled: options?.enabled ?? true,\n staleTime: 60_000,\n });\n}\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Bot\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/bot\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Bot = createLucideIcon('Bot', [\n ['path', { d: 'M12 8V4H8', key: 'hb8ula' }],\n ['rect', { width: '16', height: '12', x: '4', y: '8', rx: '2', key: 'enze0r' }],\n ['path', { d: 'M2 14h2', key: 'vft8re' }],\n ['path', { d: 'M20 14h2', key: '4cs60a' }],\n ['path', { d: 'M15 13v2', key: '1xurst' }],\n ['path', { d: 'M9 13v2', key: 'rq6x2g' }],\n]);\n\nexport default Bot;\n","\"use client\";\n\nimport { useState } from \"react\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { Bot, Loader2, Pencil, Save, XCircle } from \"lucide-react\";\nimport type { BackendId, BackendModel } from \"@aitne/shared\";\nimport { Card, CardHeader, CardTitle } from \"@/components/ui/card\";\nimport { Button } from \"@/components/ui/button\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Alert } from \"@/components/ui/alert\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\";\nimport { ApiError, api } from \"@/lib/api-client\";\nimport { useBackends } from \"@/lib/hooks/use-backends\";\nimport { useProcessConfig } from \"@/lib/hooks/use-process-config\";\nimport {\n BACKEND_BADGE_VARIANTS,\n formatModelName,\n getBackendLabel,\n} from \"@/lib/backend-ui\";\n\ninterface ProcessModelCardProps {\n processKey: string;\n title?: string;\n description?: string;\n}\n\nfunction getModelsForTier(models: BackendModel[], tier: \"lite\" | \"medium\" | \"high\"): BackendModel[] {\n const tierModels = models.filter((m) => m.tier === tier);\n return tierModels.length > 0 ? tierModels : models;\n}\n\nexport function ProcessModelCard({\n processKey,\n title = \"AI Model\",\n description,\n}: ProcessModelCardProps) {\n const queryClient = useQueryClient();\n const { data: backendsData } = useBackends();\n const { data: processConfigData } = useProcessConfig();\n\n const [editing, setEditing] = useState(false);\n const [draftBackend, setDraftBackend] = useState<BackendId | null>(null);\n const [draftModel, setDraftModel] = useState<string | null>(null);\n const [saving, setSaving] = useState(false);\n const [feedback, setFeedback] = useState<{\n type: \"success\" | \"error\";\n message: string;\n } | null>(null);\n\n const configOrUndef = processConfigData?.configs.find((c) => c.processKey === processKey);\n const backendMap = new Map((backendsData?.backends ?? []).map((b) => [b.id, b]));\n const enabledBackends = (backendsData?.backends ?? []).filter((b) => b.enabled);\n\n if (!backendsData || !processConfigData || !configOrUndef) {\n return null;\n }\n\n // Narrowed reference — TS tracks this as non-undefined after the guard above.\n const config = configOrUndef;\n\n const currentBackend = backendMap.get(config.mainBackend);\n const currentModelLabel =\n currentBackend?.models.find((m) => m.modelId === config.mainModel)?.label ??\n formatModelName(config.mainModel);\n\n const draftBackendData = draftBackend ? backendMap.get(draftBackend) : null;\n const availableModels = draftBackendData?.models ?? [];\n\n function beginEdit() {\n setDraftBackend(config.mainBackend);\n setDraftModel(config.mainModel);\n setFeedback(null);\n setEditing(true);\n }\n\n function cancelEdit() {\n setEditing(false);\n setDraftBackend(null);\n setDraftModel(null);\n }\n\n function handleBackendChange(nextId: BackendId) {\n const backend = backendMap.get(nextId);\n if (!backend) return;\n setDraftBackend(nextId);\n const tierModels = getModelsForTier(backend.models, config.defaultTier);\n setDraftModel(tierModels[0]?.modelId ?? backend.models[0]?.modelId ?? \"\");\n }\n\n async function save() {\n if (!draftBackend || !draftModel) return;\n setSaving(true);\n setFeedback(null);\n try {\n await api.put(`/process-config/${processKey}`, {\n mainBackend: draftBackend,\n mainModel: draftModel,\n fallbackBackend: config.fallbackBackend,\n fallbackModel: config.fallbackModel,\n maxTurns: config.maxTurns,\n maxBudgetUsd: config.maxBudgetUsd,\n });\n await queryClient.invalidateQueries({ queryKey: [\"process-config\"] });\n setFeedback({ type: \"success\", message: \"Saved\" });\n setEditing(false);\n } catch (err) {\n const body =\n err instanceof ApiError ? (err.body as Record<string, unknown> | null) : null;\n const message =\n typeof body?.error === \"string\"\n ? body.error\n : err instanceof Error\n ? err.message\n : \"Save failed\";\n setFeedback({ type: \"error\", message });\n } finally {\n setSaving(false);\n }\n }\n\n return (\n <Card>\n <CardHeader>\n <div className=\"flex items-center gap-2\">\n <Bot className=\"h-4 w-4 text-muted-foreground\" />\n <CardTitle className=\"text-base\">{title}</CardTitle>\n {config.updatedBy === \"user\" && (\n <Badge variant=\"blue\" className=\"text-xs\">\n Custom\n </Badge>\n )}\n </div>\n {!editing && (\n <Button variant=\"ghost\" size=\"sm\" onClick={beginEdit} className=\"h-8\">\n <Pencil className=\"h-3.5 w-3.5\" />\n Edit\n </Button>\n )}\n </CardHeader>\n\n {!editing && (\n <div className=\"space-y-2\">\n <div className=\"flex flex-wrap items-center gap-2 text-sm\">\n <Badge variant={BACKEND_BADGE_VARIANTS[config.mainBackend]}>\n {getBackendLabel(config.mainBackend)}\n </Badge>\n <span className=\"text-muted-foreground\">{currentModelLabel}</span>\n <Badge\n variant={\n config.defaultTier === \"high\"\n ? \"purple\"\n : config.defaultTier === \"medium\"\n ? \"blue\"\n : \"default\"\n }\n className=\"text-xs\"\n >\n {config.defaultTier}\n </Badge>\n </div>\n {description && (\n <p className=\"text-xs text-muted-foreground\">{description}</p>\n )}\n </div>\n )}\n\n {editing && (\n <div className=\"mt-1 space-y-3\">\n <div className=\"grid gap-3 sm:grid-cols-2\">\n <div className=\"space-y-1.5\">\n <p className=\"text-xs font-medium text-muted-foreground\">Backend</p>\n <Select\n value={draftBackend ?? \"\"}\n onValueChange={(v) => handleBackendChange(v as BackendId)}\n >\n <SelectTrigger>\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {enabledBackends.map((b) => (\n <SelectItem key={b.id} value={b.id}>\n {getBackendLabel(b.id)}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n <div className=\"space-y-1.5\">\n <p className=\"text-xs font-medium text-muted-foreground\">Model</p>\n <Select\n value={draftModel ?? \"\"}\n onValueChange={(v) => setDraftModel(v)}\n >\n <SelectTrigger>\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {availableModels.map((m) => (\n <SelectItem key={m.modelId} value={m.modelId}>\n {m.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n </div>\n <div className=\"flex justify-end gap-2\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={cancelEdit}\n disabled={saving}\n >\n <XCircle className=\"h-3.5 w-3.5\" />\n Cancel\n </Button>\n <Button\n size=\"sm\"\n onClick={() => { void save(); }}\n disabled={saving || !draftModel}\n >\n {saving ? (\n <Loader2 className=\"h-3.5 w-3.5 animate-spin\" />\n ) : (\n <Save className=\"h-3.5 w-3.5\" />\n )}\n Save\n </Button>\n </div>\n </div>\n )}\n\n {feedback && (\n <Alert\n variant={feedback.type === \"success\" ? \"success\" : \"error\"}\n className=\"mt-3\"\n >\n {feedback.message}\n </Alert>\n )}\n </Card>\n );\n}\n","\"use client\";\n\n// src/collapsible.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar COLLAPSIBLE_NAME = \"Collapsible\";\nvar [createCollapsibleContext, createCollapsibleScope] = createContextScope(COLLAPSIBLE_NAME);\nvar [CollapsibleProvider, useCollapsibleContext] = createCollapsibleContext(COLLAPSIBLE_NAME);\nvar Collapsible = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCollapsible,\n open: openProp,\n defaultOpen,\n disabled,\n onOpenChange,\n ...collapsibleProps\n } = props;\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: COLLAPSIBLE_NAME\n });\n return /* @__PURE__ */ jsx(\n CollapsibleProvider,\n {\n scope: __scopeCollapsible,\n disabled,\n contentId: useId(),\n open,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getState(open),\n \"data-disabled\": disabled ? \"\" : void 0,\n ...collapsibleProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nCollapsible.displayName = COLLAPSIBLE_NAME;\nvar TRIGGER_NAME = \"CollapsibleTrigger\";\nvar CollapsibleTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCollapsible, ...triggerProps } = props;\n const context = useCollapsibleContext(TRIGGER_NAME, __scopeCollapsible);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-controls\": context.contentId,\n \"aria-expanded\": context.open || false,\n \"data-state\": getState(context.open),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n disabled: context.disabled,\n ...triggerProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n }\n );\n }\n);\nCollapsibleTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"CollapsibleContent\";\nvar CollapsibleContent = React.forwardRef(\n (props, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = useCollapsibleContext(CONTENT_NAME, props.__scopeCollapsible);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: ({ present }) => /* @__PURE__ */ jsx(CollapsibleContentImpl, { ...contentProps, ref: forwardedRef, present }) });\n }\n);\nCollapsibleContent.displayName = CONTENT_NAME;\nvar CollapsibleContentImpl = React.forwardRef((props, forwardedRef) => {\n const { __scopeCollapsible, present, children, ...contentProps } = props;\n const context = useCollapsibleContext(CONTENT_NAME, __scopeCollapsible);\n const [isPresent, setIsPresent] = React.useState(present);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const heightRef = React.useRef(0);\n const height = heightRef.current;\n const widthRef = React.useRef(0);\n const width = widthRef.current;\n const isOpen = context.open || isPresent;\n const isMountAnimationPreventedRef = React.useRef(isOpen);\n const originalStylesRef = React.useRef(void 0);\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n return () => cancelAnimationFrame(rAF);\n }, []);\n useLayoutEffect(() => {\n const node = ref.current;\n if (node) {\n originalStylesRef.current = originalStylesRef.current || {\n transitionDuration: node.style.transitionDuration,\n animationName: node.style.animationName\n };\n node.style.transitionDuration = \"0s\";\n node.style.animationName = \"none\";\n const rect = node.getBoundingClientRect();\n heightRef.current = rect.height;\n widthRef.current = rect.width;\n if (!isMountAnimationPreventedRef.current) {\n node.style.transitionDuration = originalStylesRef.current.transitionDuration;\n node.style.animationName = originalStylesRef.current.animationName;\n }\n setIsPresent(present);\n }\n }, [context.open, present]);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getState(context.open),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n id: context.contentId,\n hidden: !isOpen,\n ...contentProps,\n ref: composedRefs,\n style: {\n [`--radix-collapsible-content-height`]: height ? `${height}px` : void 0,\n [`--radix-collapsible-content-width`]: width ? `${width}px` : void 0,\n ...props.style\n },\n children: isOpen && children\n }\n );\n});\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar Root = Collapsible;\nvar Trigger = CollapsibleTrigger;\nvar Content = CollapsibleContent;\nexport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n Content,\n Root,\n Trigger,\n createCollapsibleScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\";\n\nexport const Collapsible = CollapsiblePrimitive.Root;\nexport const CollapsibleTrigger = CollapsiblePrimitive.Trigger;\nexport const CollapsibleContent = CollapsiblePrimitive.Content;\n","import { cn } from \"@/lib/utils\";\nimport { type VariantProps, cva } from \"class-variance-authority\";\nimport type { HTMLAttributes } from \"react\";\n\nconst cardVariants = cva(\n \"rounded-xl border p-5 shadow-[0_1px_3px_rgb(0_0_0/0.04)]\",\n {\n variants: {\n tone: {\n default: \"border-border bg-card\",\n warning:\n \"border-amber-200 bg-amber-50/50 dark:border-amber-900 dark:bg-amber-950/30\",\n success:\n \"border-emerald-200 bg-emerald-50/50 dark:border-emerald-900 dark:bg-emerald-950/30\",\n error:\n \"border-red-200 bg-red-50/50 dark:border-red-900 dark:bg-red-950/30\",\n },\n interactive: {\n true: \"transition-shadow duration-150 hover:shadow-[0_4px_6px_rgb(0_0_0/0.06)]\",\n false: \"\",\n },\n },\n defaultVariants: { tone: \"default\", interactive: false },\n },\n);\n\nexport interface CardProps\n extends HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof cardVariants> {}\n\nexport function Card({ className, tone, interactive, ...props }: CardProps) {\n return (\n <div className={cn(cardVariants({ tone, interactive }), className)} {...props} />\n );\n}\n\nexport function CardHeader({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"mb-3 flex items-center justify-between\", className)} {...props} />;\n}\n\nexport function CardTitle({ className, ...props }: HTMLAttributes<HTMLHeadingElement>) {\n return (\n <h3\n className={cn(\"text-lg font-semibold text-foreground\", className)}\n {...props}\n />\n );\n}\n\nexport function CardStatLabel({\n className,\n ...props\n}: HTMLAttributes<HTMLHeadingElement>) {\n return (\n <h3\n className={cn(\"text-sm font-medium text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nexport function CardValue({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"text-3xl font-bold text-foreground\", className)} {...props} />;\n}\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Trash2\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/trash-2\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Trash2 = createLucideIcon('Trash2', [\n ['path', { d: 'M3 6h18', key: 'd0wm0j' }],\n ['path', { d: 'M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6', key: '4alrt4' }],\n ['path', { d: 'M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2', key: 'v07s0e' }],\n ['line', { x1: '10', x2: '10', y1: '11', y2: '17', key: '1uufr5' }],\n ['line', { x1: '14', x2: '14', y1: '11', y2: '17', key: 'xtxkd' }],\n]);\n\nexport default Trash2;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Plus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/plus\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Plus = createLucideIcon('Plus', [\n ['path', { d: 'M5 12h14', key: '1ays0h' }],\n ['path', { d: 'M12 5v14', key: 's699le' }],\n]);\n\nexport default Plus;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Pencil\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/pencil\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Pencil = createLucideIcon('Pencil', [\n [\n 'path',\n {\n 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',\n key: '1a8usu',\n },\n ],\n ['path', { d: 'm15 5 4 4', key: '1mk7zo' }],\n]);\n\nexport default Pencil;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name FolderOpen\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/folder-open\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst FolderOpen = createLucideIcon('FolderOpen', [\n [\n 'path',\n {\n 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',\n key: 'usdka0',\n },\n ],\n]);\n\nexport default FolderOpen;\n","import { api } from \"@/lib/api-client\";\nimport type { DirectoryPickerResponse } from \"@/lib/api-types\";\n\nexport async function pickDirectoryFromDesktop({\n title,\n defaultPath,\n}: {\n title: string;\n defaultPath?: string;\n}): Promise<string | null> {\n const response = await api.post<DirectoryPickerResponse>(\n \"/system/pick-directory\",\n {\n title,\n ...(defaultPath ? { defaultPath } : {}),\n },\n );\n\n if (response.status === \"selected\" && response.path) {\n return response.path;\n }\n if (response.status === \"cancelled\") {\n return null;\n }\n throw new Error(response.message ?? \"Folder picker is unavailable.\");\n}\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name RotateCcw\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/rotate-ccw\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst RotateCcw = createLucideIcon('RotateCcw', [\n ['path', { d: 'M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8', key: '1357e3' }],\n ['path', { d: 'M3 3v5h5', key: '1xhq8a' }],\n]);\n\nexport default RotateCcw;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name KeyRound\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/key-round\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst KeyRound = createLucideIcon('KeyRound', [\n [\n 'path',\n {\n 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',\n key: '1s6t7t',\n },\n ],\n ['circle', { cx: '16.5', cy: '7.5', r: '.5', fill: 'currentColor', key: 'w0ekpg' }],\n]);\n\nexport default KeyRound;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ShieldCheck\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/shield-check\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ShieldCheck = createLucideIcon('ShieldCheck', [\n [\n 'path',\n {\n 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',\n key: 'oel41y',\n },\n ],\n ['path', { d: 'm9 12 2 2 4-4', key: 'dzmm74' }],\n]);\n\nexport default ShieldCheck;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Play\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/play\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Play = createLucideIcon('Play', [\n ['polygon', { points: '6 3 20 12 6 21 6 3', key: '1oa8hb' }],\n]);\n\nexport default Play;\n","\"use client\";\n\nimport { useQuery, useMutation, useQueryClient } from \"@tanstack/react-query\";\nimport { api } from \"@/lib/api-client\";\n\n// ── DTO mirrors of the daemon's repositories-store.ts ──\n\nexport type RepositoryClassification = \"project\" | \"repo-only\";\nexport type RepositoryCategory =\n | \"work\"\n | \"personal\"\n | \"research\"\n | \"client\"\n | \"other\";\nexport type RepositoryPollPriority = \"high\" | \"normal\";\nexport type TriggerWorkdirMode = \"temp\" | \"local-clone\";\nexport type TriggerBackend = \"claude\" | \"codex\" | \"gemini\";\nexport type LastScanStatus = \"ok\" | \"failed\" | \"skipped_no_activity\" | null;\n\nexport interface RepositoryDTO {\n id: string;\n githubOwner: string | null;\n githubRepo: string | null;\n githubAccount: string | null;\n localPath: string | null;\n localOnly: boolean;\n displayName: string | null;\n classification: RepositoryClassification;\n category: RepositoryCategory;\n pollPriority: RepositoryPollPriority;\n pollIntervalSec: number | null;\n slug: string;\n createdAt: number;\n updatedAt: number;\n}\n\nexport interface RepositoryTriggerDTO {\n id: string;\n repositoryId: string;\n name: string;\n enabled: boolean;\n eventType: string;\n filters: Record<string, unknown>;\n backend: TriggerBackend;\n model: string;\n workdirMode: TriggerWorkdirMode;\n prompt: string;\n instructionMd: string | null;\n lastFiredAt: number | null;\n fireCount: number;\n createdAt: number;\n updatedAt: number;\n}\n\nexport interface RepositoryManagementDTO {\n repositoryId: string;\n enabled: boolean;\n initCompletedAt: number | null;\n lastScanAt: number | null;\n lastScanStatus: LastScanStatus;\n scanFailureCount: number;\n createdAt?: number;\n updatedAt?: number;\n}\n\nexport interface ArchitectureRefreshState {\n scheduleId: number;\n status: \"pending\" | \"running\";\n}\n\nexport interface RepositoryManagementResponse {\n management: RepositoryManagementDTO;\n architectureRefresh: ArchitectureRefreshState | null;\n}\n\nexport interface RepositoryCreateInput {\n githubOwner?: string | null;\n githubRepo?: string | null;\n githubAccount?: string | null;\n localPath?: string | null;\n localOnly?: boolean;\n displayName?: string | null;\n classification?: RepositoryClassification;\n category?: RepositoryCategory;\n pollPriority?: RepositoryPollPriority;\n pollIntervalSec?: number | null;\n}\n\nexport type RepositoryUpdateInput = RepositoryCreateInput;\n\nexport interface RepositoryTriggerCreateInput {\n name: string;\n enabled?: boolean;\n eventType: string;\n filters?: Record<string, unknown>;\n backend: TriggerBackend;\n model: string;\n workdirMode: TriggerWorkdirMode;\n prompt: string;\n instructionMd?: string | null;\n}\n\nexport type RepositoryTriggerUpdateInput = Partial<RepositoryTriggerCreateInput>;\n\nexport interface RepositoryRunInput {\n backend: TriggerBackend;\n model: string;\n workdirMode: TriggerWorkdirMode;\n prompt: string;\n instructionMd?: string;\n timeoutMinutes?: number;\n}\n\nexport interface RepositoryManagementRunResult {\n status: \"completed\" | \"scheduled\" | \"skipped_no_activity\";\n correlationId: string;\n result?: \"written\" | \"exists\";\n overviewPath?: string;\n journalPath?: string;\n commitCount?: number;\n prEvents?: number;\n workflowEvents?: number;\n readmeCopiedTo?: string | null;\n architectureScheduleId?: number | null;\n}\n\nexport interface ArchitectureRefreshResult {\n status: \"scheduled\";\n scheduleId: number;\n correlationId: string;\n readmeCopiedTo: string | null;\n}\n\nexport interface RepositoryFilters {\n hasGithub?: boolean;\n hasLocal?: boolean;\n localOnly?: boolean;\n account?: string;\n}\n\nconst REPOS_KEY = [\"repositories\"] as const;\nconst repoKey = (id: string) => [...REPOS_KEY, id] as const;\nconst triggersKey = (id: string) => [...repoKey(id), \"triggers\"] as const;\nconst managementKey = (id: string) => [...repoKey(id), \"management\"] as const;\n\nfunction buildQuery(filters?: RepositoryFilters): Record<string, string | number> | undefined {\n if (!filters) return undefined;\n const out: Record<string, string | number> = {};\n if (filters.hasGithub !== undefined) out.has_github = filters.hasGithub ? \"1\" : \"0\";\n if (filters.hasLocal !== undefined) out.has_local = filters.hasLocal ? \"1\" : \"0\";\n if (filters.localOnly !== undefined) out.local_only = filters.localOnly ? \"1\" : \"0\";\n if (filters.account) out.account = filters.account;\n return Object.keys(out).length > 0 ? out : undefined;\n}\n\n// ── Repositories ──\n\nexport function useRepositories(filters?: RepositoryFilters) {\n return useQuery({\n queryKey: filters ? [...REPOS_KEY, filters] : [...REPOS_KEY],\n queryFn: () =>\n api.get<{ repositories: RepositoryDTO[] }>(\n \"/repositories\",\n buildQuery(filters),\n ),\n staleTime: 30_000,\n });\n}\n\nexport function useRepository(id: string | null | undefined) {\n return useQuery({\n queryKey: id ? repoKey(id) : [...REPOS_KEY, \"missing\"],\n queryFn: () => api.get<{ repository: RepositoryDTO }>(`/repositories/${encodeURIComponent(id!)}`),\n enabled: Boolean(id),\n staleTime: 30_000,\n });\n}\n\nexport function useCreateRepository() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: (body: RepositoryCreateInput) =>\n api.post<{ repository: RepositoryDTO }>(\"/repositories\", body),\n onSuccess: () => {\n void qc.invalidateQueries({ queryKey: REPOS_KEY });\n },\n });\n}\n\nexport function useUpdateRepository() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: ({ id, body }: { id: string; body: RepositoryUpdateInput }) =>\n api.patch<{ repository: RepositoryDTO }>(\n `/repositories/${encodeURIComponent(id)}`,\n body,\n ),\n onSuccess: (_data, vars) => {\n void qc.invalidateQueries({ queryKey: REPOS_KEY });\n void qc.invalidateQueries({ queryKey: repoKey(vars.id) });\n },\n });\n}\n\nexport function useDeleteRepository() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: (id: string) =>\n api.delete<{ status: \"deleted\" }>(`/repositories/${encodeURIComponent(id)}`),\n onSuccess: () => {\n void qc.invalidateQueries({ queryKey: REPOS_KEY });\n },\n });\n}\n\nexport function useLinkGithub() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: ({\n id,\n owner,\n repo,\n account,\n }: {\n id: string;\n owner: string;\n repo: string;\n account?: string;\n }) =>\n api.post<{ repository: RepositoryDTO }>(\n `/repositories/${encodeURIComponent(id)}/link-github`,\n { owner, repo, account },\n ),\n onSuccess: (_data, vars) => {\n void qc.invalidateQueries({ queryKey: REPOS_KEY });\n void qc.invalidateQueries({ queryKey: repoKey(vars.id) });\n },\n });\n}\n\nexport function useLinkLocal() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: ({ id, localPath }: { id: string; localPath: string }) =>\n api.post<{ repository: RepositoryDTO }>(\n `/repositories/${encodeURIComponent(id)}/link-local`,\n { localPath },\n ),\n onSuccess: (_data, vars) => {\n void qc.invalidateQueries({ queryKey: REPOS_KEY });\n void qc.invalidateQueries({ queryKey: repoKey(vars.id) });\n },\n });\n}\n\nexport function useRunRepository() {\n return useMutation({\n mutationFn: ({ id, body }: { id: string; body: RepositoryRunInput }) =>\n api.post<{ status: \"scheduled\"; correlationId: string }>(\n `/repositories/${encodeURIComponent(id)}/run`,\n body,\n ),\n });\n}\n\n// ── Repository triggers ──\n\nexport function useRepositoryTriggers(repositoryId: string | null | undefined) {\n return useQuery({\n queryKey: repositoryId ? triggersKey(repositoryId) : [...REPOS_KEY, \"missing\", \"triggers\"],\n queryFn: () =>\n api.get<{ triggers: RepositoryTriggerDTO[] }>(\n `/repositories/${encodeURIComponent(repositoryId!)}/triggers`,\n ),\n enabled: Boolean(repositoryId),\n staleTime: 15_000,\n });\n}\n\nexport function useCreateRepoTrigger() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: ({\n repositoryId,\n body,\n }: {\n repositoryId: string;\n body: RepositoryTriggerCreateInput;\n }) =>\n api.post<{ trigger: RepositoryTriggerDTO }>(\n `/repositories/${encodeURIComponent(repositoryId)}/triggers`,\n body,\n ),\n onSuccess: (_data, vars) => {\n void qc.invalidateQueries({ queryKey: triggersKey(vars.repositoryId) });\n },\n });\n}\n\nexport function useUpdateRepoTrigger() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: ({\n repositoryId,\n triggerId,\n body,\n }: {\n repositoryId: string;\n triggerId: string;\n body: RepositoryTriggerUpdateInput;\n }) =>\n api.patch<{ trigger: RepositoryTriggerDTO }>(\n `/repositories/${encodeURIComponent(repositoryId)}/triggers/${encodeURIComponent(triggerId)}`,\n body,\n ),\n onSuccess: (_data, vars) => {\n void qc.invalidateQueries({ queryKey: triggersKey(vars.repositoryId) });\n },\n });\n}\n\nexport function useDeleteRepoTrigger() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: ({\n repositoryId,\n triggerId,\n }: {\n repositoryId: string;\n triggerId: string;\n }) =>\n api.delete<{ status: \"deleted\" }>(\n `/repositories/${encodeURIComponent(repositoryId)}/triggers/${encodeURIComponent(triggerId)}`,\n ),\n onSuccess: (_data, vars) => {\n void qc.invalidateQueries({ queryKey: triggersKey(vars.repositoryId) });\n },\n });\n}\n\nexport function useTestRepoTrigger() {\n return useMutation({\n mutationFn: ({\n repositoryId,\n triggerId,\n eventType,\n payload,\n }: {\n repositoryId: string;\n triggerId: string;\n eventType?: string;\n payload?: Record<string, unknown>;\n }) =>\n api.post<{ matched: boolean; trigger: RepositoryTriggerDTO; eventType: string }>(\n `/repositories/${encodeURIComponent(repositoryId)}/triggers/${encodeURIComponent(triggerId)}/test`,\n { eventType, payload },\n ),\n });\n}\n\nexport function useFireRepoTrigger() {\n return useMutation({\n mutationFn: ({\n repositoryId,\n triggerId,\n }: {\n repositoryId: string;\n triggerId: string;\n }) =>\n api.post<{ status: \"scheduled\"; correlationId: string }>(\n `/repositories/${encodeURIComponent(repositoryId)}/triggers/${encodeURIComponent(triggerId)}/run`,\n {},\n ),\n });\n}\n\n// ── Repository management ──\n\nexport function useRepositoryManagement(repositoryId: string | null | undefined) {\n return useQuery({\n queryKey: repositoryId ? managementKey(repositoryId) : [...REPOS_KEY, \"missing\", \"management\"],\n queryFn: () =>\n api.get<RepositoryManagementResponse>(\n `/repositories/${encodeURIComponent(repositoryId!)}/management`,\n ),\n enabled: Boolean(repositoryId),\n staleTime: 15_000,\n // Poll while an architecture-refresh agent run is pending or running so\n // the dashboard can re-enable buttons promptly when it completes. Idle\n // state stays event-driven (mutation invalidates the key on click).\n refetchInterval: (query) => {\n const data = query.state.data;\n return data?.architectureRefresh ? 3000 : false;\n },\n });\n}\n\nexport function useSetRepositoryManagement() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: ({ id, enabled }: { id: string; enabled: boolean }) =>\n api.put<{ management: RepositoryManagementDTO }>(\n `/repositories/${encodeURIComponent(id)}/management`,\n { enabled },\n ),\n onSuccess: (_data, vars) => {\n void qc.invalidateQueries({ queryKey: managementKey(vars.id) });\n },\n });\n}\n\nexport function useRunRepoManagementInit() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: (id: string) =>\n api.post<RepositoryManagementRunResult>(\n `/repositories/${encodeURIComponent(id)}/management/init`,\n {},\n ),\n // Awaiting the refetch ensures the management query latches onto\n // `architectureRefresh != null` before `mutateAsync` resolves, so the\n // UI's \"busy\" state hands off cleanly from `isPending` to the polled\n // in-flight flag without a re-enable flicker. The refetch is best-\n // effort: a transient GET failure must not turn a successful mutation\n // into a perceived failure, so we swallow it — the next poll tick\n // (every 3 s while the row is in-flight) recovers state.\n onSuccess: async (_data, id) => {\n try {\n await qc.refetchQueries({ queryKey: managementKey(id) });\n } catch {\n /* refetch is best-effort; polling will recover state */\n }\n },\n });\n}\n\nexport function useRefreshRepositoryArchitecture() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: (id: string) =>\n api.post<ArchitectureRefreshResult>(\n `/repositories/${encodeURIComponent(id)}/management/refresh-architecture`,\n {},\n ),\n onSuccess: async (_data, id) => {\n try {\n await qc.refetchQueries({ queryKey: managementKey(id) });\n } catch {\n /* refetch is best-effort; polling will recover state */\n }\n },\n });\n}\n\nexport function useRunRepoManagementScan() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: (id: string) =>\n api.post<RepositoryManagementRunResult>(\n `/repositories/${encodeURIComponent(id)}/management/scan`,\n {},\n ),\n onSuccess: async (_data, id) => {\n try {\n await qc.refetchQueries({ queryKey: managementKey(id) });\n } catch {\n /* refetch is best-effort; polling will recover state */\n }\n },\n });\n}\n\n// ── Helpers ──\n\nexport function repositoryHasGithub(repo: RepositoryDTO): boolean {\n return Boolean(repo.githubOwner && repo.githubRepo);\n}\n\nexport function repositoryHasLocal(repo: RepositoryDTO): boolean {\n return Boolean(repo.localPath);\n}\n\nexport function repositoryDisplayName(repo: RepositoryDTO): string {\n if (repo.displayName) return repo.displayName;\n if (repositoryHasGithub(repo)) return `${repo.githubOwner}/${repo.githubRepo}`;\n if (repo.localPath) {\n const parts = repo.localPath.replace(/[\\\\/]+$/g, \"\").split(/[\\\\/]+/).filter(Boolean);\n return parts[parts.length - 1] ?? repo.localPath;\n }\n return repo.slug;\n}\n\n/** Source prefixes for the observations API tail per repository. */\nexport function observationSourcesForRepo(repo: RepositoryDTO): string[] {\n const sources: string[] = [];\n if (repo.localPath) sources.push(`git:${repo.localPath}`);\n if (repositoryHasGithub(repo)) {\n const slug = `${repo.githubOwner}/${repo.githubRepo}`;\n sources.push(`github:notification:${slug}`);\n sources.push(`github:workflow:${slug}`);\n }\n return sources;\n}\n"],"names":["EmptyState","icon","Icon","title","description","className","children","DirectoryPickerField","id","value","onChange","placeholder","defaultPath","disabled","inputClassName","buttonLabel","picking","setPicking","pickerError","setPickerError","handlePick","selected","trim","err","Error","message","e","target","type","variant","onClick","ConnectionsSectionHeader","healthy","total","attention","actions","allHealthy","noneHealthy","STATUS_BADGE","connected","label","configured","connecting","error","cardTone","status","deriveIntegrationStatus","s","deriveMessagingStatus","runtimeState","deriveConfiguredStatus","messagingMetadata","undefined","ownerConfigured","ownerChannelKnown","notificationEligible","lastInboundAt","ConnectionCard","name","metadata","badge","tone","length","map","m","useProcessConfig","options","queryKey","queryFn","get","enabled","staleTime","getModelsForTier","models","tier","tierModels","filter","ProcessModelCard","processKey","queryClient","data","backendsData","processConfigData","editing","setEditing","draftBackend","setDraftBackend","draftModel","setDraftModel","saving","setSaving","feedback","setFeedback","configOrUndef","configs","find","c","backendMap","Map","backends","b","enabledBackends","config","currentBackend","mainBackend","currentModelLabel","modelId","mainModel","draftBackendData","availableModels","beginEdit","cancelEdit","handleBackendChange","nextId","backend","defaultTier","save","put","fallbackBackend","fallbackModel","maxTurns","maxBudgetUsd","invalidateQueries","body","updatedBy","size","onValueChange","v","COLLAPSIBLE_NAME","createCollapsibleContext","createCollapsibleScope","CollapsibleProvider","useCollapsibleContext","Collapsible","props","forwardedRef","__scopeCollapsible","open","openProp","defaultOpen","onOpenChange","collapsibleProps","setOpen","prop","defaultProp","caller","scope","contentId","onOpenToggle","prevOpen","div","getState","ref","displayName","TRIGGER_NAME","CollapsibleTrigger","triggerProps","context","button","CONTENT_NAME","CollapsibleContent","forceMount","contentProps","present","CollapsibleContentImpl","isPresent","setIsPresent","composedRefs","heightRef","height","current","widthRef","width","isOpen","isMountAnimationPreventedRef","originalStylesRef","rAF","requestAnimationFrame","cancelAnimationFrame","node","transitionDuration","style","animationName","rect","getBoundingClientRect","hidden","Root","Trigger","Content","cardVariants","variants","default","warning","success","interactive","true","false","defaultVariants","Card","CardHeader","CardTitle","CardStatLabel","CardValue","pickDirectoryFromDesktop","response","post","path","REPOS_KEY","repoKey","triggersKey","managementKey","buildQuery","filters","out","hasGithub","has_github","hasLocal","has_local","localOnly","local_only","account","Object","keys","useRepositories","useRepository","encodeURIComponent","Boolean","useCreateRepository","qc","mutationFn","onSuccess","useUpdateRepository","patch","_data","vars","useDeleteRepository","delete","useLinkGithub","owner","repo","useLinkLocal","localPath","useRunRepository","useRepositoryTriggers","repositoryId","useCreateRepoTrigger","useUpdateRepoTrigger","triggerId","useDeleteRepoTrigger","useTestRepoTrigger","eventType","payload","useFireRepoTrigger","useRepositoryManagement","refetchInterval","query","state","architectureRefresh","useSetRepositoryManagement","useRunRepoManagementInit","refetchQueries","useRefreshRepositoryArchitecture","useRunRepoManagementScan","repositoryHasGithub","githubOwner","githubRepo","repositoryHasLocal","repositoryDisplayName","parts","replace","split","slug","observationSourcesForRepo","sources","push"],"mappings":"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","ignoreList":[4,5,7,9,12,13,14,15,17,18,19,20]}
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/dashboard/src/components/shared/empty-state.tsx","../../../../../../packages/dashboard/src/components/directory-picker-field.tsx","../../../../../../packages/dashboard/src/components/connections/section-header.tsx","../../../../../../packages/dashboard/src/components/connections/connection-card.tsx","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/circle-x.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/lock.ts","../../../../../../packages/dashboard/src/lib/hooks/use-process-config.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/bot.ts","../../../../../../packages/dashboard/src/components/connections/process-model-card.tsx","../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-collapsible%401.1.12_%40types%2Breact-dom%4019.2.3_%40types%2Breact%4019.2.14__%40types_10a2c6d0ac3bcc7422bd3020fe61e076/node_modules/%40radix-ui/react-collapsible/dist/index.mjs","../../../../../../packages/dashboard/src/components/ui/collapsible.tsx","../../../../../../packages/dashboard/src/components/ui/card.tsx","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/trash-2.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/plus.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/pencil.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/folder-open.ts","../../../../../../packages/dashboard/src/lib/directory-picker.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/rotate-ccw.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/shield-check.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/key-round.ts","../../../../../../node_modules/.pnpm/lucide-react%400.468.0_react%4019.2.4/node_modules/lucide-react/src/icons/play.ts","../../../../../../packages/dashboard/src/lib/hooks/use-repositories.ts"],"sourcesContent":["import type { LucideIcon } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\ninterface EmptyStateProps {\n icon: LucideIcon;\n title: string;\n description?: string;\n className?: string;\n children?: React.ReactNode;\n}\n\nexport function EmptyState({\n icon: Icon,\n title,\n description,\n className,\n children,\n}: EmptyStateProps) {\n return (\n <div\n className={cn(\n \"flex flex-col items-center justify-center py-16 text-muted-foreground\",\n className,\n )}\n >\n <Icon className=\"mb-3 h-10 w-10 opacity-40\" />\n <p className=\"text-sm font-medium\">{title}</p>\n {description && (\n <p className=\"mt-1 max-w-prose text-xs text-muted-foreground/70\">{description}</p>\n )}\n {children}\n </div>\n );\n}\n","\"use client\";\n\nimport { useState } from \"react\";\nimport { FolderOpen, Loader2 } from \"lucide-react\";\nimport { Button } from \"@/components/ui/button\";\nimport { Input } from \"@/components/ui/input\";\nimport { pickDirectoryFromDesktop } from \"@/lib/directory-picker\";\nimport { cn } from \"@/lib/utils\";\n\nexport function DirectoryPickerField({\n id,\n value,\n onChange,\n title,\n placeholder = \"Choose a folder...\",\n defaultPath,\n disabled = false,\n className,\n inputClassName,\n buttonLabel = \"Choose\",\n}: {\n id?: string;\n value: string;\n onChange: (value: string) => void;\n title: string;\n placeholder?: string;\n defaultPath?: string;\n disabled?: boolean;\n className?: string;\n inputClassName?: string;\n buttonLabel?: string;\n}) {\n const [picking, setPicking] = useState(false);\n const [pickerError, setPickerError] = useState<string | null>(null);\n\n const handlePick = async () => {\n setPicking(true);\n setPickerError(null);\n try {\n const selected = await pickDirectoryFromDesktop({\n title,\n defaultPath: value.trim() || defaultPath,\n });\n if (selected) onChange(selected);\n } catch (err) {\n setPickerError(\n err instanceof Error ? err.message : \"Folder picker is unavailable.\",\n );\n } finally {\n setPicking(false);\n }\n };\n\n return (\n <div className={cn(\"space-y-1\", className)}>\n <div className=\"flex flex-col gap-2 sm:flex-row\">\n <Input\n id={id}\n value={value}\n onChange={(e) => {\n onChange(e.target.value);\n setPickerError(null);\n }}\n placeholder={placeholder}\n className={cn(\"font-mono text-sm\", inputClassName)}\n disabled={disabled || picking}\n />\n <Button\n type=\"button\"\n variant=\"outline\"\n onClick={handlePick}\n disabled={disabled || picking}\n className=\"shrink-0 gap-2\"\n >\n {picking ? (\n <Loader2 className=\"h-4 w-4 animate-spin\" />\n ) : (\n <FolderOpen className=\"h-4 w-4\" />\n )}\n {picking ? \"Opening...\" : buttonLabel}\n </Button>\n </div>\n {pickerError && (\n <p className=\"text-xs text-destructive\">{pickerError}</p>\n )}\n </div>\n );\n}\n","\"use client\";\n\nimport type { ReactNode } from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface ConnectionsSectionHeaderProps {\n title: string;\n description?: ReactNode;\n /** Number of entries that are live/healthy. */\n healthy: number;\n /** Total entries in this section. */\n total: number;\n /** Optional short note about the remainder, e.g. \"WhatsApp needs re-pairing\". */\n attention?: string | null;\n /** Optional right-aligned action element (e.g. an \"Add\" button). */\n actions?: ReactNode;\n}\n\nexport function ConnectionsSectionHeader({\n title,\n description,\n healthy,\n total,\n attention,\n actions,\n}: ConnectionsSectionHeaderProps) {\n const allHealthy = total > 0 && healthy === total;\n const noneHealthy = total > 0 && healthy === 0;\n\n return (\n <div className=\"space-y-1\">\n <div className=\"flex items-baseline justify-between gap-3\">\n <h1 className=\"text-2xl font-semibold text-foreground\">{title}</h1>\n <div className=\"flex items-center gap-3\">\n {total > 0 && (\n <span\n className={cn(\n \"text-xs font-medium tabular-nums\",\n allHealthy\n ? \"text-emerald-600 dark:text-emerald-400\"\n : noneHealthy\n ? \"text-muted-foreground\"\n : \"text-amber-600 dark:text-amber-400\",\n )}\n >\n {healthy}/{total} connected\n </span>\n )}\n {actions}\n </div>\n </div>\n {description && (\n <p className=\"max-w-3xl text-sm text-muted-foreground\">{description}</p>\n )}\n {attention && (\n <p className=\"text-xs text-amber-600 dark:text-amber-400\">\n {attention}\n </p>\n )}\n </div>\n );\n}\n","\"use client\";\n\nimport type { ReactNode } from \"react\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Card } from \"@/components/ui/card\";\nimport { cn } from \"@/lib/utils\";\nimport type {\n IntegrationStatus as HealthIntegrationStatus,\n MessagingHealthStatus,\n} from \"@/lib/api-types\";\n\n// ── Status types ──\n\nexport type ConnectionStatus =\n | \"connected\"\n | \"configured\"\n | \"connecting\"\n | \"needs-setup\"\n | \"error\"\n | \"disabled\";\n\nconst STATUS_BADGE: Record<ConnectionStatus, { variant: \"green\" | \"red\" | \"gray\" | \"amber\"; label: string }> = {\n connected: { variant: \"green\", label: \"Connected\" },\n configured: { variant: \"amber\", label: \"Configured\" },\n connecting: { variant: \"amber\", label: \"Connecting…\" },\n \"needs-setup\": { variant: \"gray\", label: \"Not Configured\" },\n error: { variant: \"red\", label: \"Error\" },\n disabled: { variant: \"gray\", label: \"Disabled\" },\n};\n\nfunction cardTone(status: ConnectionStatus) {\n if (status === \"connected\") return \"success\" as const;\n if (status === \"error\") return \"error\" as const;\n return \"default\" as const;\n}\n\n// ── Status derivation helpers ──\n\n/** Derive card status from the health API's integration status object. */\nexport function deriveIntegrationStatus(\n s: HealthIntegrationStatus | undefined,\n): ConnectionStatus {\n if (!s) return \"needs-setup\";\n if (!s.configured) return \"needs-setup\";\n if (s.error) return \"error\";\n if (s.connected) return \"connected\";\n return \"configured\";\n}\n\n/** Derive card status from the health API's messaging status object. */\nexport function deriveMessagingStatus(\n s: MessagingHealthStatus | undefined,\n): ConnectionStatus {\n if (!s) return \"needs-setup\";\n if (s.runtimeState === \"not_configured\") return \"needs-setup\";\n if (s.runtimeState === \"connecting\") return \"connecting\";\n if (s.runtimeState === \"error\") return \"error\";\n if (s.runtimeState === \"ok\") return \"connected\";\n return \"configured\";\n}\n\n/** Derive card status from a simple boolean config flag (e.g. GitHub). */\nexport function deriveConfiguredStatus(configured: boolean): ConnectionStatus {\n return configured ? \"configured\" : \"needs-setup\";\n}\n\n/** Build the standard metadata lines for a messaging channel card. */\nexport function messagingMetadata(status: MessagingHealthStatus | undefined) {\n if (!status) return undefined;\n return [\n { label: \"Owner configured\", value: status.ownerConfigured ? \"yes\" : \"no\" },\n { label: \"Owner channel known\", value: status.ownerChannelKnown ? \"yes\" : \"no\" },\n { label: \"Reminder eligible\", value: status.notificationEligible ? \"yes\" : \"no\" },\n { label: \"Last inbound\", value: status.lastInboundAt ?? \"—\" },\n ];\n}\n\n// ── ConnectionCard component ──\n\nexport interface ConnectionCardProps {\n name: string;\n icon: ReactNode;\n status: ConnectionStatus;\n /** Error message from health API. */\n error?: string | null;\n /** Key-value metadata lines shown below the header. */\n metadata?: Array<{ label: string; value: string }>;\n /** Expandable config/setup content. */\n children?: ReactNode;\n className?: string;\n}\n\nexport function ConnectionCard({\n name,\n icon,\n status,\n error,\n metadata,\n children,\n className,\n}: ConnectionCardProps) {\n const badge = STATUS_BADGE[status];\n\n return (\n <Card tone={cardTone(status)} className={cn(\"relative\", className)}>\n {/* Header */}\n <div className=\"flex items-center justify-between mb-2\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-muted-foreground\">{icon}</span>\n <h3 className=\"text-sm font-medium text-foreground\">{name}</h3>\n </div>\n <Badge variant={badge.variant}>{badge.label}</Badge>\n </div>\n\n {/* Error from health API — suppressed during in-progress connecting state so\n transient auth/pairing messages don't render as red errors. */}\n {error && status !== \"connecting\" && (\n <p className=\"mb-2 text-xs text-red-600 dark:text-red-400\">{error}</p>\n )}\n\n {/* Metadata */}\n {metadata && metadata.length > 0 && (\n <div className=\"mb-3 space-y-0.5\">\n {metadata.map((m) => (\n <div key={m.label} className=\"flex items-center justify-between text-xs\">\n <span className=\"text-muted-foreground\">{m.label}</span>\n <span className=\"text-foreground\">{m.value}</span>\n </div>\n ))}\n </div>\n )}\n\n {/* Children */}\n {children}\n </Card>\n );\n}\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name CircleX\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/circle-x\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CircleX = createLucideIcon('CircleX', [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'm15 9-6 6', key: '1uzhvr' }],\n ['path', { d: 'm9 9 6 6', key: 'z0biqf' }],\n]);\n\nexport default CircleX;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Lock\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/lock\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Lock = createLucideIcon('Lock', [\n ['rect', { width: '18', height: '11', x: '3', y: '11', rx: '2', ry: '2', key: '1w4ew1' }],\n ['path', { d: 'M7 11V7a5 5 0 0 1 10 0v4', key: 'fwvmzm' }],\n]);\n\nexport default Lock;\n","\"use client\";\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { api } from \"@/lib/api-client\";\nimport type { ProcessConfigResponse } from \"@/lib/api-types\";\n\nexport function useProcessConfig(options?: { enabled?: boolean }) {\n return useQuery({\n queryKey: [\"process-config\"],\n queryFn: () => api.get<ProcessConfigResponse>(\"/process-config\"),\n enabled: options?.enabled ?? true,\n staleTime: 60_000,\n });\n}\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Bot\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/bot\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Bot = createLucideIcon('Bot', [\n ['path', { d: 'M12 8V4H8', key: 'hb8ula' }],\n ['rect', { width: '16', height: '12', x: '4', y: '8', rx: '2', key: 'enze0r' }],\n ['path', { d: 'M2 14h2', key: 'vft8re' }],\n ['path', { d: 'M20 14h2', key: '4cs60a' }],\n ['path', { d: 'M15 13v2', key: '1xurst' }],\n ['path', { d: 'M9 13v2', key: 'rq6x2g' }],\n]);\n\nexport default Bot;\n","\"use client\";\n\nimport { useState } from \"react\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { Bot, Loader2, Pencil, Save, XCircle } from \"lucide-react\";\nimport type { BackendId, BackendModel } from \"@aitne/shared\";\nimport { Card, CardHeader, CardTitle } from \"@/components/ui/card\";\nimport { Button } from \"@/components/ui/button\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Alert } from \"@/components/ui/alert\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\";\nimport { ApiError, api } from \"@/lib/api-client\";\nimport { useBackends } from \"@/lib/hooks/use-backends\";\nimport { useProcessConfig } from \"@/lib/hooks/use-process-config\";\nimport {\n BACKEND_BADGE_VARIANTS,\n formatModelName,\n getBackendLabel,\n} from \"@/lib/backend-ui\";\n\ninterface ProcessModelCardProps {\n processKey: string;\n title?: string;\n description?: string;\n}\n\nfunction getModelsForTier(models: BackendModel[], tier: \"lite\" | \"medium\" | \"high\"): BackendModel[] {\n const tierModels = models.filter((m) => m.tier === tier);\n return tierModels.length > 0 ? tierModels : models;\n}\n\nexport function ProcessModelCard({\n processKey,\n title = \"AI Model\",\n description,\n}: ProcessModelCardProps) {\n const queryClient = useQueryClient();\n const { data: backendsData } = useBackends();\n const { data: processConfigData } = useProcessConfig();\n\n const [editing, setEditing] = useState(false);\n const [draftBackend, setDraftBackend] = useState<BackendId | null>(null);\n const [draftModel, setDraftModel] = useState<string | null>(null);\n const [saving, setSaving] = useState(false);\n const [feedback, setFeedback] = useState<{\n type: \"success\" | \"error\";\n message: string;\n } | null>(null);\n\n const configOrUndef = processConfigData?.configs.find((c) => c.processKey === processKey);\n const backendMap = new Map((backendsData?.backends ?? []).map((b) => [b.id, b]));\n const enabledBackends = (backendsData?.backends ?? []).filter((b) => b.enabled);\n\n if (!backendsData || !processConfigData || !configOrUndef) {\n return null;\n }\n\n // Narrowed reference — TS tracks this as non-undefined after the guard above.\n const config = configOrUndef;\n\n const currentBackend = backendMap.get(config.mainBackend);\n const currentModelLabel =\n currentBackend?.models.find((m) => m.modelId === config.mainModel)?.label ??\n formatModelName(config.mainModel);\n\n const draftBackendData = draftBackend ? backendMap.get(draftBackend) : null;\n const availableModels = draftBackendData?.models ?? [];\n\n function beginEdit() {\n setDraftBackend(config.mainBackend);\n setDraftModel(config.mainModel);\n setFeedback(null);\n setEditing(true);\n }\n\n function cancelEdit() {\n setEditing(false);\n setDraftBackend(null);\n setDraftModel(null);\n }\n\n function handleBackendChange(nextId: BackendId) {\n const backend = backendMap.get(nextId);\n if (!backend) return;\n setDraftBackend(nextId);\n const tierModels = getModelsForTier(backend.models, config.defaultTier);\n setDraftModel(tierModels[0]?.modelId ?? backend.models[0]?.modelId ?? \"\");\n }\n\n async function save() {\n if (!draftBackend || !draftModel) return;\n setSaving(true);\n setFeedback(null);\n try {\n await api.put(`/process-config/${processKey}`, {\n mainBackend: draftBackend,\n mainModel: draftModel,\n fallbackBackend: config.fallbackBackend,\n fallbackModel: config.fallbackModel,\n maxTurns: config.maxTurns,\n maxBudgetUsd: config.maxBudgetUsd,\n });\n await queryClient.invalidateQueries({ queryKey: [\"process-config\"] });\n setFeedback({ type: \"success\", message: \"Saved\" });\n setEditing(false);\n } catch (err) {\n const body =\n err instanceof ApiError ? (err.body as Record<string, unknown> | null) : null;\n const message =\n typeof body?.error === \"string\"\n ? body.error\n : err instanceof Error\n ? err.message\n : \"Save failed\";\n setFeedback({ type: \"error\", message });\n } finally {\n setSaving(false);\n }\n }\n\n return (\n <Card>\n <CardHeader>\n <div className=\"flex items-center gap-2\">\n <Bot className=\"h-4 w-4 text-muted-foreground\" />\n <CardTitle className=\"text-base\">{title}</CardTitle>\n {config.updatedBy === \"user\" && (\n <Badge variant=\"blue\" className=\"text-xs\">\n Custom\n </Badge>\n )}\n </div>\n {!editing && (\n <Button variant=\"ghost\" size=\"sm\" onClick={beginEdit} className=\"h-8\">\n <Pencil className=\"h-3.5 w-3.5\" />\n Edit\n </Button>\n )}\n </CardHeader>\n\n {!editing && (\n <div className=\"space-y-2\">\n <div className=\"flex flex-wrap items-center gap-2 text-sm\">\n <Badge variant={BACKEND_BADGE_VARIANTS[config.mainBackend]}>\n {getBackendLabel(config.mainBackend)}\n </Badge>\n <span className=\"text-muted-foreground\">{currentModelLabel}</span>\n <Badge\n variant={\n config.defaultTier === \"high\"\n ? \"purple\"\n : config.defaultTier === \"medium\"\n ? \"blue\"\n : \"default\"\n }\n className=\"text-xs\"\n >\n {config.defaultTier}\n </Badge>\n </div>\n {description && (\n <p className=\"text-xs text-muted-foreground\">{description}</p>\n )}\n </div>\n )}\n\n {editing && (\n <div className=\"mt-1 space-y-3\">\n <div className=\"grid gap-3 sm:grid-cols-2\">\n <div className=\"space-y-1.5\">\n <p className=\"text-xs font-medium text-muted-foreground\">Backend</p>\n <Select\n value={draftBackend ?? \"\"}\n onValueChange={(v) => handleBackendChange(v as BackendId)}\n >\n <SelectTrigger>\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {enabledBackends.map((b) => (\n <SelectItem key={b.id} value={b.id}>\n {getBackendLabel(b.id)}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n <div className=\"space-y-1.5\">\n <p className=\"text-xs font-medium text-muted-foreground\">Model</p>\n <Select\n value={draftModel ?? \"\"}\n onValueChange={(v) => setDraftModel(v)}\n >\n <SelectTrigger>\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {availableModels.map((m) => (\n <SelectItem key={m.modelId} value={m.modelId}>\n {m.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n </div>\n <div className=\"flex justify-end gap-2\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={cancelEdit}\n disabled={saving}\n >\n <XCircle className=\"h-3.5 w-3.5\" />\n Cancel\n </Button>\n <Button\n size=\"sm\"\n onClick={() => { void save(); }}\n disabled={saving || !draftModel}\n >\n {saving ? (\n <Loader2 className=\"h-3.5 w-3.5 animate-spin\" />\n ) : (\n <Save className=\"h-3.5 w-3.5\" />\n )}\n Save\n </Button>\n </div>\n </div>\n )}\n\n {feedback && (\n <Alert\n variant={feedback.type === \"success\" ? \"success\" : \"error\"}\n className=\"mt-3\"\n >\n {feedback.message}\n </Alert>\n )}\n </Card>\n );\n}\n","\"use client\";\n\n// src/collapsible.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar COLLAPSIBLE_NAME = \"Collapsible\";\nvar [createCollapsibleContext, createCollapsibleScope] = createContextScope(COLLAPSIBLE_NAME);\nvar [CollapsibleProvider, useCollapsibleContext] = createCollapsibleContext(COLLAPSIBLE_NAME);\nvar Collapsible = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCollapsible,\n open: openProp,\n defaultOpen,\n disabled,\n onOpenChange,\n ...collapsibleProps\n } = props;\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: COLLAPSIBLE_NAME\n });\n return /* @__PURE__ */ jsx(\n CollapsibleProvider,\n {\n scope: __scopeCollapsible,\n disabled,\n contentId: useId(),\n open,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getState(open),\n \"data-disabled\": disabled ? \"\" : void 0,\n ...collapsibleProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nCollapsible.displayName = COLLAPSIBLE_NAME;\nvar TRIGGER_NAME = \"CollapsibleTrigger\";\nvar CollapsibleTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCollapsible, ...triggerProps } = props;\n const context = useCollapsibleContext(TRIGGER_NAME, __scopeCollapsible);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-controls\": context.contentId,\n \"aria-expanded\": context.open || false,\n \"data-state\": getState(context.open),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n disabled: context.disabled,\n ...triggerProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n }\n );\n }\n);\nCollapsibleTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"CollapsibleContent\";\nvar CollapsibleContent = React.forwardRef(\n (props, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = useCollapsibleContext(CONTENT_NAME, props.__scopeCollapsible);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: ({ present }) => /* @__PURE__ */ jsx(CollapsibleContentImpl, { ...contentProps, ref: forwardedRef, present }) });\n }\n);\nCollapsibleContent.displayName = CONTENT_NAME;\nvar CollapsibleContentImpl = React.forwardRef((props, forwardedRef) => {\n const { __scopeCollapsible, present, children, ...contentProps } = props;\n const context = useCollapsibleContext(CONTENT_NAME, __scopeCollapsible);\n const [isPresent, setIsPresent] = React.useState(present);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const heightRef = React.useRef(0);\n const height = heightRef.current;\n const widthRef = React.useRef(0);\n const width = widthRef.current;\n const isOpen = context.open || isPresent;\n const isMountAnimationPreventedRef = React.useRef(isOpen);\n const originalStylesRef = React.useRef(void 0);\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n return () => cancelAnimationFrame(rAF);\n }, []);\n useLayoutEffect(() => {\n const node = ref.current;\n if (node) {\n originalStylesRef.current = originalStylesRef.current || {\n transitionDuration: node.style.transitionDuration,\n animationName: node.style.animationName\n };\n node.style.transitionDuration = \"0s\";\n node.style.animationName = \"none\";\n const rect = node.getBoundingClientRect();\n heightRef.current = rect.height;\n widthRef.current = rect.width;\n if (!isMountAnimationPreventedRef.current) {\n node.style.transitionDuration = originalStylesRef.current.transitionDuration;\n node.style.animationName = originalStylesRef.current.animationName;\n }\n setIsPresent(present);\n }\n }, [context.open, present]);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getState(context.open),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n id: context.contentId,\n hidden: !isOpen,\n ...contentProps,\n ref: composedRefs,\n style: {\n [`--radix-collapsible-content-height`]: height ? `${height}px` : void 0,\n [`--radix-collapsible-content-width`]: width ? `${width}px` : void 0,\n ...props.style\n },\n children: isOpen && children\n }\n );\n});\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar Root = Collapsible;\nvar Trigger = CollapsibleTrigger;\nvar Content = CollapsibleContent;\nexport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n Content,\n Root,\n Trigger,\n createCollapsibleScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\";\n\nexport const Collapsible = CollapsiblePrimitive.Root;\nexport const CollapsibleTrigger = CollapsiblePrimitive.Trigger;\nexport const CollapsibleContent = CollapsiblePrimitive.Content;\n","import { cn } from \"@/lib/utils\";\nimport { type VariantProps, cva } from \"class-variance-authority\";\nimport type { HTMLAttributes } from \"react\";\n\nconst cardVariants = cva(\n \"rounded-xl border p-5 shadow-[0_1px_3px_rgb(0_0_0/0.04)]\",\n {\n variants: {\n tone: {\n default: \"border-border bg-card\",\n warning:\n \"border-amber-200 bg-amber-50/50 dark:border-amber-900 dark:bg-amber-950/30\",\n success:\n \"border-emerald-200 bg-emerald-50/50 dark:border-emerald-900 dark:bg-emerald-950/30\",\n error:\n \"border-red-200 bg-red-50/50 dark:border-red-900 dark:bg-red-950/30\",\n },\n interactive: {\n true: \"transition-shadow duration-150 hover:shadow-[0_4px_6px_rgb(0_0_0/0.06)]\",\n false: \"\",\n },\n },\n defaultVariants: { tone: \"default\", interactive: false },\n },\n);\n\nexport interface CardProps\n extends HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof cardVariants> {}\n\nexport function Card({ className, tone, interactive, ...props }: CardProps) {\n return (\n <div className={cn(cardVariants({ tone, interactive }), className)} {...props} />\n );\n}\n\nexport function CardHeader({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"mb-3 flex items-center justify-between\", className)} {...props} />;\n}\n\nexport function CardTitle({ className, ...props }: HTMLAttributes<HTMLHeadingElement>) {\n return (\n <h3\n className={cn(\"text-lg font-semibold text-foreground\", className)}\n {...props}\n />\n );\n}\n\nexport function CardStatLabel({\n className,\n ...props\n}: HTMLAttributes<HTMLHeadingElement>) {\n return (\n <h3\n className={cn(\"text-sm font-medium text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nexport function CardValue({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"text-3xl font-bold text-foreground\", className)} {...props} />;\n}\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Trash2\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/trash-2\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Trash2 = createLucideIcon('Trash2', [\n ['path', { d: 'M3 6h18', key: 'd0wm0j' }],\n ['path', { d: 'M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6', key: '4alrt4' }],\n ['path', { d: 'M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2', key: 'v07s0e' }],\n ['line', { x1: '10', x2: '10', y1: '11', y2: '17', key: '1uufr5' }],\n ['line', { x1: '14', x2: '14', y1: '11', y2: '17', key: 'xtxkd' }],\n]);\n\nexport default Trash2;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Plus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/plus\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Plus = createLucideIcon('Plus', [\n ['path', { d: 'M5 12h14', key: '1ays0h' }],\n ['path', { d: 'M12 5v14', key: 's699le' }],\n]);\n\nexport default Plus;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Pencil\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/pencil\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Pencil = createLucideIcon('Pencil', [\n [\n 'path',\n {\n 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',\n key: '1a8usu',\n },\n ],\n ['path', { d: 'm15 5 4 4', key: '1mk7zo' }],\n]);\n\nexport default Pencil;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name FolderOpen\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/folder-open\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst FolderOpen = createLucideIcon('FolderOpen', [\n [\n 'path',\n {\n 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',\n key: 'usdka0',\n },\n ],\n]);\n\nexport default FolderOpen;\n","import { api } from \"@/lib/api-client\";\nimport type { DirectoryPickerResponse } from \"@/lib/api-types\";\n\nexport async function pickDirectoryFromDesktop({\n title,\n defaultPath,\n}: {\n title: string;\n defaultPath?: string;\n}): Promise<string | null> {\n const response = await api.post<DirectoryPickerResponse>(\n \"/system/pick-directory\",\n {\n title,\n ...(defaultPath ? { defaultPath } : {}),\n },\n );\n\n if (response.status === \"selected\" && response.path) {\n return response.path;\n }\n if (response.status === \"cancelled\") {\n return null;\n }\n throw new Error(response.message ?? \"Folder picker is unavailable.\");\n}\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name RotateCcw\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/rotate-ccw\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst RotateCcw = createLucideIcon('RotateCcw', [\n ['path', { d: 'M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8', key: '1357e3' }],\n ['path', { d: 'M3 3v5h5', key: '1xhq8a' }],\n]);\n\nexport default RotateCcw;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ShieldCheck\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/shield-check\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ShieldCheck = createLucideIcon('ShieldCheck', [\n [\n 'path',\n {\n 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',\n key: 'oel41y',\n },\n ],\n ['path', { d: 'm9 12 2 2 4-4', key: 'dzmm74' }],\n]);\n\nexport default ShieldCheck;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name KeyRound\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/key-round\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst KeyRound = createLucideIcon('KeyRound', [\n [\n 'path',\n {\n 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',\n key: '1s6t7t',\n },\n ],\n ['circle', { cx: '16.5', cy: '7.5', r: '.5', fill: 'currentColor', key: 'w0ekpg' }],\n]);\n\nexport default KeyRound;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Play\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/play\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Play = createLucideIcon('Play', [\n ['polygon', { points: '6 3 20 12 6 21 6 3', key: '1oa8hb' }],\n]);\n\nexport default Play;\n","\"use client\";\n\nimport { useQuery, useMutation, useQueryClient } from \"@tanstack/react-query\";\nimport { api } from \"@/lib/api-client\";\n\n// ── DTO mirrors of the daemon's repositories-store.ts ──\n\nexport type RepositoryClassification = \"project\" | \"repo-only\";\nexport type RepositoryCategory =\n | \"work\"\n | \"personal\"\n | \"research\"\n | \"client\"\n | \"other\";\nexport type RepositoryPollPriority = \"high\" | \"normal\";\nexport type TriggerWorkdirMode = \"temp\" | \"local-clone\";\nexport type TriggerBackend = \"claude\" | \"codex\" | \"gemini\";\nexport type LastScanStatus = \"ok\" | \"failed\" | \"skipped_no_activity\" | null;\n\nexport interface RepositoryDTO {\n id: string;\n githubOwner: string | null;\n githubRepo: string | null;\n githubAccount: string | null;\n localPath: string | null;\n localOnly: boolean;\n displayName: string | null;\n classification: RepositoryClassification;\n category: RepositoryCategory;\n pollPriority: RepositoryPollPriority;\n pollIntervalSec: number | null;\n slug: string;\n createdAt: number;\n updatedAt: number;\n}\n\nexport interface RepositoryTriggerDTO {\n id: string;\n repositoryId: string;\n name: string;\n enabled: boolean;\n eventType: string;\n filters: Record<string, unknown>;\n backend: TriggerBackend;\n model: string;\n workdirMode: TriggerWorkdirMode;\n prompt: string;\n instructionMd: string | null;\n lastFiredAt: number | null;\n fireCount: number;\n createdAt: number;\n updatedAt: number;\n}\n\nexport interface RepositoryManagementDTO {\n repositoryId: string;\n enabled: boolean;\n initCompletedAt: number | null;\n lastScanAt: number | null;\n lastScanStatus: LastScanStatus;\n scanFailureCount: number;\n createdAt?: number;\n updatedAt?: number;\n}\n\nexport interface ArchitectureRefreshState {\n scheduleId: number;\n status: \"pending\" | \"running\";\n}\n\nexport interface RepositoryManagementResponse {\n management: RepositoryManagementDTO;\n architectureRefresh: ArchitectureRefreshState | null;\n}\n\nexport interface RepositoryCreateInput {\n githubOwner?: string | null;\n githubRepo?: string | null;\n githubAccount?: string | null;\n localPath?: string | null;\n localOnly?: boolean;\n displayName?: string | null;\n classification?: RepositoryClassification;\n category?: RepositoryCategory;\n pollPriority?: RepositoryPollPriority;\n pollIntervalSec?: number | null;\n}\n\nexport type RepositoryUpdateInput = RepositoryCreateInput;\n\nexport interface RepositoryTriggerCreateInput {\n name: string;\n enabled?: boolean;\n eventType: string;\n filters?: Record<string, unknown>;\n backend: TriggerBackend;\n model: string;\n workdirMode: TriggerWorkdirMode;\n prompt: string;\n instructionMd?: string | null;\n}\n\nexport type RepositoryTriggerUpdateInput = Partial<RepositoryTriggerCreateInput>;\n\nexport interface RepositoryRunInput {\n backend: TriggerBackend;\n model: string;\n workdirMode: TriggerWorkdirMode;\n prompt: string;\n instructionMd?: string;\n timeoutMinutes?: number;\n}\n\nexport interface RepositoryManagementRunResult {\n status: \"completed\" | \"scheduled\" | \"skipped_no_activity\";\n correlationId: string;\n result?: \"written\" | \"exists\";\n overviewPath?: string;\n journalPath?: string;\n commitCount?: number;\n prEvents?: number;\n workflowEvents?: number;\n readmeCopiedTo?: string | null;\n architectureScheduleId?: number | null;\n}\n\nexport interface ArchitectureRefreshResult {\n status: \"scheduled\";\n scheduleId: number;\n correlationId: string;\n readmeCopiedTo: string | null;\n}\n\nexport interface RepositoryFilters {\n hasGithub?: boolean;\n hasLocal?: boolean;\n localOnly?: boolean;\n account?: string;\n}\n\nconst REPOS_KEY = [\"repositories\"] as const;\nconst repoKey = (id: string) => [...REPOS_KEY, id] as const;\nconst triggersKey = (id: string) => [...repoKey(id), \"triggers\"] as const;\nconst managementKey = (id: string) => [...repoKey(id), \"management\"] as const;\n\nfunction buildQuery(filters?: RepositoryFilters): Record<string, string | number> | undefined {\n if (!filters) return undefined;\n const out: Record<string, string | number> = {};\n if (filters.hasGithub !== undefined) out.has_github = filters.hasGithub ? \"1\" : \"0\";\n if (filters.hasLocal !== undefined) out.has_local = filters.hasLocal ? \"1\" : \"0\";\n if (filters.localOnly !== undefined) out.local_only = filters.localOnly ? \"1\" : \"0\";\n if (filters.account) out.account = filters.account;\n return Object.keys(out).length > 0 ? out : undefined;\n}\n\n// ── Repositories ──\n\nexport function useRepositories(filters?: RepositoryFilters) {\n return useQuery({\n queryKey: filters ? [...REPOS_KEY, filters] : [...REPOS_KEY],\n queryFn: () =>\n api.get<{ repositories: RepositoryDTO[] }>(\n \"/repositories\",\n buildQuery(filters),\n ),\n staleTime: 30_000,\n });\n}\n\nexport function useRepository(id: string | null | undefined) {\n return useQuery({\n queryKey: id ? repoKey(id) : [...REPOS_KEY, \"missing\"],\n queryFn: () => api.get<{ repository: RepositoryDTO }>(`/repositories/${encodeURIComponent(id!)}`),\n enabled: Boolean(id),\n staleTime: 30_000,\n });\n}\n\nexport function useCreateRepository() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: (body: RepositoryCreateInput) =>\n api.post<{ repository: RepositoryDTO }>(\"/repositories\", body),\n onSuccess: () => {\n void qc.invalidateQueries({ queryKey: REPOS_KEY });\n },\n });\n}\n\nexport function useUpdateRepository() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: ({ id, body }: { id: string; body: RepositoryUpdateInput }) =>\n api.patch<{ repository: RepositoryDTO }>(\n `/repositories/${encodeURIComponent(id)}`,\n body,\n ),\n onSuccess: (_data, vars) => {\n void qc.invalidateQueries({ queryKey: REPOS_KEY });\n void qc.invalidateQueries({ queryKey: repoKey(vars.id) });\n },\n });\n}\n\nexport function useDeleteRepository() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: (id: string) =>\n api.delete<{ status: \"deleted\" }>(`/repositories/${encodeURIComponent(id)}`),\n onSuccess: () => {\n void qc.invalidateQueries({ queryKey: REPOS_KEY });\n },\n });\n}\n\nexport function useLinkGithub() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: ({\n id,\n owner,\n repo,\n account,\n }: {\n id: string;\n owner: string;\n repo: string;\n account?: string;\n }) =>\n api.post<{ repository: RepositoryDTO }>(\n `/repositories/${encodeURIComponent(id)}/link-github`,\n { owner, repo, account },\n ),\n onSuccess: (_data, vars) => {\n void qc.invalidateQueries({ queryKey: REPOS_KEY });\n void qc.invalidateQueries({ queryKey: repoKey(vars.id) });\n },\n });\n}\n\nexport function useLinkLocal() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: ({ id, localPath }: { id: string; localPath: string }) =>\n api.post<{ repository: RepositoryDTO }>(\n `/repositories/${encodeURIComponent(id)}/link-local`,\n { localPath },\n ),\n onSuccess: (_data, vars) => {\n void qc.invalidateQueries({ queryKey: REPOS_KEY });\n void qc.invalidateQueries({ queryKey: repoKey(vars.id) });\n },\n });\n}\n\nexport function useRunRepository() {\n return useMutation({\n mutationFn: ({ id, body }: { id: string; body: RepositoryRunInput }) =>\n api.post<{ status: \"scheduled\"; correlationId: string }>(\n `/repositories/${encodeURIComponent(id)}/run`,\n body,\n ),\n });\n}\n\n// ── Repository triggers ──\n\nexport function useRepositoryTriggers(repositoryId: string | null | undefined) {\n return useQuery({\n queryKey: repositoryId ? triggersKey(repositoryId) : [...REPOS_KEY, \"missing\", \"triggers\"],\n queryFn: () =>\n api.get<{ triggers: RepositoryTriggerDTO[] }>(\n `/repositories/${encodeURIComponent(repositoryId!)}/triggers`,\n ),\n enabled: Boolean(repositoryId),\n staleTime: 15_000,\n });\n}\n\nexport function useCreateRepoTrigger() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: ({\n repositoryId,\n body,\n }: {\n repositoryId: string;\n body: RepositoryTriggerCreateInput;\n }) =>\n api.post<{ trigger: RepositoryTriggerDTO }>(\n `/repositories/${encodeURIComponent(repositoryId)}/triggers`,\n body,\n ),\n onSuccess: (_data, vars) => {\n void qc.invalidateQueries({ queryKey: triggersKey(vars.repositoryId) });\n },\n });\n}\n\nexport function useUpdateRepoTrigger() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: ({\n repositoryId,\n triggerId,\n body,\n }: {\n repositoryId: string;\n triggerId: string;\n body: RepositoryTriggerUpdateInput;\n }) =>\n api.patch<{ trigger: RepositoryTriggerDTO }>(\n `/repositories/${encodeURIComponent(repositoryId)}/triggers/${encodeURIComponent(triggerId)}`,\n body,\n ),\n onSuccess: (_data, vars) => {\n void qc.invalidateQueries({ queryKey: triggersKey(vars.repositoryId) });\n },\n });\n}\n\nexport function useDeleteRepoTrigger() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: ({\n repositoryId,\n triggerId,\n }: {\n repositoryId: string;\n triggerId: string;\n }) =>\n api.delete<{ status: \"deleted\" }>(\n `/repositories/${encodeURIComponent(repositoryId)}/triggers/${encodeURIComponent(triggerId)}`,\n ),\n onSuccess: (_data, vars) => {\n void qc.invalidateQueries({ queryKey: triggersKey(vars.repositoryId) });\n },\n });\n}\n\nexport function useTestRepoTrigger() {\n return useMutation({\n mutationFn: ({\n repositoryId,\n triggerId,\n eventType,\n payload,\n }: {\n repositoryId: string;\n triggerId: string;\n eventType?: string;\n payload?: Record<string, unknown>;\n }) =>\n api.post<{ matched: boolean; trigger: RepositoryTriggerDTO; eventType: string }>(\n `/repositories/${encodeURIComponent(repositoryId)}/triggers/${encodeURIComponent(triggerId)}/test`,\n { eventType, payload },\n ),\n });\n}\n\nexport function useFireRepoTrigger() {\n return useMutation({\n mutationFn: ({\n repositoryId,\n triggerId,\n }: {\n repositoryId: string;\n triggerId: string;\n }) =>\n api.post<{ status: \"scheduled\"; correlationId: string }>(\n `/repositories/${encodeURIComponent(repositoryId)}/triggers/${encodeURIComponent(triggerId)}/run`,\n {},\n ),\n });\n}\n\n// ── Repository management ──\n\nexport function useRepositoryManagement(repositoryId: string | null | undefined) {\n return useQuery({\n queryKey: repositoryId ? managementKey(repositoryId) : [...REPOS_KEY, \"missing\", \"management\"],\n queryFn: () =>\n api.get<RepositoryManagementResponse>(\n `/repositories/${encodeURIComponent(repositoryId!)}/management`,\n ),\n enabled: Boolean(repositoryId),\n staleTime: 15_000,\n // Poll while an architecture-refresh agent run is pending or running so\n // the dashboard can re-enable buttons promptly when it completes. Idle\n // state stays event-driven (mutation invalidates the key on click).\n refetchInterval: (query) => {\n const data = query.state.data;\n return data?.architectureRefresh ? 3000 : false;\n },\n });\n}\n\nexport function useSetRepositoryManagement() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: ({ id, enabled }: { id: string; enabled: boolean }) =>\n api.put<{ management: RepositoryManagementDTO }>(\n `/repositories/${encodeURIComponent(id)}/management`,\n { enabled },\n ),\n onSuccess: (_data, vars) => {\n void qc.invalidateQueries({ queryKey: managementKey(vars.id) });\n },\n });\n}\n\nexport function useRunRepoManagementInit() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: (id: string) =>\n api.post<RepositoryManagementRunResult>(\n `/repositories/${encodeURIComponent(id)}/management/init`,\n {},\n ),\n // Awaiting the refetch ensures the management query latches onto\n // `architectureRefresh != null` before `mutateAsync` resolves, so the\n // UI's \"busy\" state hands off cleanly from `isPending` to the polled\n // in-flight flag without a re-enable flicker. The refetch is best-\n // effort: a transient GET failure must not turn a successful mutation\n // into a perceived failure, so we swallow it — the next poll tick\n // (every 3 s while the row is in-flight) recovers state.\n onSuccess: async (_data, id) => {\n try {\n await qc.refetchQueries({ queryKey: managementKey(id) });\n } catch {\n /* refetch is best-effort; polling will recover state */\n }\n },\n });\n}\n\nexport function useRefreshRepositoryArchitecture() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: (id: string) =>\n api.post<ArchitectureRefreshResult>(\n `/repositories/${encodeURIComponent(id)}/management/refresh-architecture`,\n {},\n ),\n onSuccess: async (_data, id) => {\n try {\n await qc.refetchQueries({ queryKey: managementKey(id) });\n } catch {\n /* refetch is best-effort; polling will recover state */\n }\n },\n });\n}\n\nexport function useRunRepoManagementScan() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: (id: string) =>\n api.post<RepositoryManagementRunResult>(\n `/repositories/${encodeURIComponent(id)}/management/scan`,\n {},\n ),\n onSuccess: async (_data, id) => {\n try {\n await qc.refetchQueries({ queryKey: managementKey(id) });\n } catch {\n /* refetch is best-effort; polling will recover state */\n }\n },\n });\n}\n\n// ── Helpers ──\n\nexport function repositoryHasGithub(repo: RepositoryDTO): boolean {\n return Boolean(repo.githubOwner && repo.githubRepo);\n}\n\nexport function repositoryHasLocal(repo: RepositoryDTO): boolean {\n return Boolean(repo.localPath);\n}\n\nexport function repositoryDisplayName(repo: RepositoryDTO): string {\n if (repo.displayName) return repo.displayName;\n if (repositoryHasGithub(repo)) return `${repo.githubOwner}/${repo.githubRepo}`;\n if (repo.localPath) {\n const parts = repo.localPath.replace(/[\\\\/]+$/g, \"\").split(/[\\\\/]+/).filter(Boolean);\n return parts[parts.length - 1] ?? repo.localPath;\n }\n return repo.slug;\n}\n\n/** Source prefixes for the observations API tail per repository. */\nexport function observationSourcesForRepo(repo: RepositoryDTO): string[] {\n const sources: string[] = [];\n if (repo.localPath) sources.push(`git:${repo.localPath}`);\n if (repositoryHasGithub(repo)) {\n const slug = `${repo.githubOwner}/${repo.githubRepo}`;\n sources.push(`github:notification:${slug}`);\n sources.push(`github:workflow:${slug}`);\n }\n return sources;\n}\n"],"names":["EmptyState","icon","Icon","title","description","className","children","DirectoryPickerField","id","value","onChange","placeholder","defaultPath","disabled","inputClassName","buttonLabel","picking","setPicking","pickerError","setPickerError","handlePick","selected","trim","err","Error","message","e","target","type","variant","onClick","ConnectionsSectionHeader","healthy","total","attention","actions","allHealthy","noneHealthy","STATUS_BADGE","connected","label","configured","connecting","error","cardTone","status","deriveIntegrationStatus","s","deriveMessagingStatus","runtimeState","deriveConfiguredStatus","messagingMetadata","undefined","ownerConfigured","ownerChannelKnown","notificationEligible","lastInboundAt","ConnectionCard","name","metadata","badge","tone","length","map","m","useProcessConfig","options","queryKey","queryFn","get","enabled","staleTime","getModelsForTier","models","tier","tierModels","filter","ProcessModelCard","processKey","queryClient","data","backendsData","processConfigData","editing","setEditing","draftBackend","setDraftBackend","draftModel","setDraftModel","saving","setSaving","feedback","setFeedback","configOrUndef","configs","find","c","backendMap","Map","backends","b","enabledBackends","config","currentBackend","mainBackend","currentModelLabel","modelId","mainModel","draftBackendData","availableModels","beginEdit","cancelEdit","handleBackendChange","nextId","backend","defaultTier","save","put","fallbackBackend","fallbackModel","maxTurns","maxBudgetUsd","invalidateQueries","body","updatedBy","size","onValueChange","v","COLLAPSIBLE_NAME","createCollapsibleContext","createCollapsibleScope","CollapsibleProvider","useCollapsibleContext","Collapsible","props","forwardedRef","__scopeCollapsible","open","openProp","defaultOpen","onOpenChange","collapsibleProps","setOpen","prop","defaultProp","caller","scope","contentId","onOpenToggle","prevOpen","div","getState","ref","displayName","TRIGGER_NAME","CollapsibleTrigger","triggerProps","context","button","CONTENT_NAME","CollapsibleContent","forceMount","contentProps","present","CollapsibleContentImpl","isPresent","setIsPresent","composedRefs","heightRef","height","current","widthRef","width","isOpen","isMountAnimationPreventedRef","originalStylesRef","rAF","requestAnimationFrame","cancelAnimationFrame","node","transitionDuration","style","animationName","rect","getBoundingClientRect","hidden","Root","Trigger","Content","cardVariants","variants","default","warning","success","interactive","true","false","defaultVariants","Card","CardHeader","CardTitle","CardStatLabel","CardValue","pickDirectoryFromDesktop","response","post","path","REPOS_KEY","repoKey","triggersKey","managementKey","buildQuery","filters","out","hasGithub","has_github","hasLocal","has_local","localOnly","local_only","account","Object","keys","useRepositories","useRepository","encodeURIComponent","Boolean","useCreateRepository","qc","mutationFn","onSuccess","useUpdateRepository","patch","_data","vars","useDeleteRepository","delete","useLinkGithub","owner","repo","useLinkLocal","localPath","useRunRepository","useRepositoryTriggers","repositoryId","useCreateRepoTrigger","useUpdateRepoTrigger","triggerId","useDeleteRepoTrigger","useTestRepoTrigger","eventType","payload","useFireRepoTrigger","useRepositoryManagement","refetchInterval","query","state","architectureRefresh","useSetRepositoryManagement","useRunRepoManagementInit","refetchQueries","useRefreshRepositoryArchitecture","useRunRepoManagementScan","repositoryHasGithub","githubOwner","githubRepo","repositoryHasLocal","repositoryDisplayName","parts","replace","split","slug","observationSourcesForRepo","sources","push"],"mappings":"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","ignoreList":[4,5,7,9,12,13,14,15,17,18,19,20]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[13925,a=>{"use strict";var b=a.i(70981),c=a.i(76584),d=class extends b.QueryObserver{constructor(a,b){super(a,b)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(a){super.setOptions({...a,behavior:(0,c.infiniteQueryBehavior)()})}getOptimisticResult(a){return a.behavior=(0,c.infiniteQueryBehavior)(),super.getOptimisticResult(a)}fetchNextPage(a){return this.fetch({...a,meta:{fetchMore:{direction:"forward"}}})}fetchPreviousPage(a){return this.fetch({...a,meta:{fetchMore:{direction:"backward"}}})}createResult(a,b){let{state:d}=a,e=super.createResult(a,b),{isFetching:f,isRefetching:g,isError:h,isRefetchError:i}=e,j=d.fetchMeta?.fetchMore?.direction,k=h&&"forward"===j,l=f&&"forward"===j,m=h&&"backward"===j,n=f&&"backward"===j;return{...e,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:(0,c.hasNextPage)(b,d.data),hasPreviousPage:(0,c.hasPreviousPage)(b,d.data),isFetchNextPageError:k,isFetchingNextPage:l,isFetchPreviousPageError:m,isFetchingPreviousPage:n,isRefetchError:i&&!k&&!m,isRefetching:g&&!l&&!n}}},e=a.i(62149);a.s(["useInfiniteQuery",0,function(a,b){return(0,e.useBaseQuery)(a,d,b)}],13925)},60380,a=>{"use strict";var b=a.i(76015);a.i(81673);var c=b.createContext(void 0);a.s(["useDirection",0,function(a){let d=b.useContext(c);return a||d||"ltr"}])},69471,a=>{"use strict";var b=a.i(76015),c=a.i(95819),d=a.i(80303),e=a.i(92274),f=a.i(81673),g=new WeakMap;function h(a,b){var c,d;let e,f,g;if("at"in Array.prototype)return Array.prototype.at.call(a,b);let h=(c=a,d=b,e=c.length,(g=(f=i(d))>=0?f:e+f)<0||g>=e?-1:g);return -1===h?void 0:a[h]}function i(a){return a!=a||0===a?0:Math.trunc(a)}(class a extends Map{#a;constructor(a){super(a),this.#a=[...super.keys()],g.set(this,!0)}set(a,b){return g.get(this)&&(this.has(a)?this.#a[this.#a.indexOf(a)]=a:this.#a.push(a)),super.set(a,b),this}insert(a,b,c){let d,e=this.has(b),f=this.#a.length,g=i(a),h=g>=0?g:f+g,j=h<0||h>=f?-1:h;if(j===this.size||e&&j===this.size-1||-1===j)return this.set(b,c),this;let k=this.size+ +!e;g<0&&h++;let l=[...this.#a],m=!1;for(let a=h;a<k;a++)if(h===a){let f=l[a];l[a]===b&&(f=l[a+1]),e&&this.delete(b),d=this.get(f),this.set(b,c)}else{m||l[a-1]!==b||(m=!0);let c=l[m?a:a-1],e=d;d=this.get(c),this.delete(c),this.set(c,e)}return this}with(b,c,d){let e=new a(this);return e.insert(b,c,d),e}before(a){let b=this.#a.indexOf(a)-1;if(!(b<0))return this.entryAt(b)}setBefore(a,b,c){let d=this.#a.indexOf(a);return -1===d?this:this.insert(d,b,c)}after(a){let b=this.#a.indexOf(a);if(-1!==(b=-1===b||b===this.size-1?-1:b+1))return this.entryAt(b)}setAfter(a,b,c){let d=this.#a.indexOf(a);return -1===d?this:this.insert(d+1,b,c)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return this.#a=[],super.clear()}delete(a){let b=super.delete(a);return b&&this.#a.splice(this.#a.indexOf(a),1),b}deleteAt(a){let b=this.keyAt(a);return void 0!==b&&this.delete(b)}at(a){let b=h(this.#a,a);if(void 0!==b)return this.get(b)}entryAt(a){let b=h(this.#a,a);if(void 0!==b)return[b,this.get(b)]}indexOf(a){return this.#a.indexOf(a)}keyAt(a){return h(this.#a,a)}from(a,b){let c=this.indexOf(a);if(-1===c)return;let d=c+b;return d<0&&(d=0),d>=this.size&&(d=this.size-1),this.at(d)}keyFrom(a,b){let c=this.indexOf(a);if(-1===c)return;let d=c+b;return d<0&&(d=0),d>=this.size&&(d=this.size-1),this.keyAt(d)}find(a,b){let c=0;for(let d of this){if(Reflect.apply(a,b,[d,c,this]))return d;c++}}findIndex(a,b){let c=0;for(let d of this){if(Reflect.apply(a,b,[d,c,this]))return c;c++}return -1}filter(b,c){let d=[],e=0;for(let a of this)Reflect.apply(b,c,[a,e,this])&&d.push(a),e++;return new a(d)}map(b,c){let d=[],e=0;for(let a of this)d.push([a[0],Reflect.apply(b,c,[a,e,this])]),e++;return new a(d)}reduce(...a){let[b,c]=a,d=0,e=c??this.at(0);for(let c of this)e=0===d&&1===a.length?c:Reflect.apply(b,this,[e,c,d,this]),d++;return e}reduceRight(...a){let[b,c]=a,d=c??this.at(-1);for(let c=this.size-1;c>=0;c--){let e=this.at(c);d=c===this.size-1&&1===a.length?e:Reflect.apply(b,this,[d,e,c,this])}return d}toSorted(b){return new a([...this.entries()].sort(b))}toReversed(){let b=new a;for(let a=this.size-1;a>=0;a--){let c=this.keyAt(a),d=this.get(c);b.set(c,d)}return b}toSpliced(...b){let c=[...this.entries()];return c.splice(...b),new a(c)}slice(b,c){let d=new a,e=this.size-1;if(void 0===b)return d;b<0&&(b+=this.size),void 0!==c&&c>0&&(e=c-1);for(let a=b;a<=e;a++){let b=this.keyAt(a),c=this.get(b);d.set(b,c)}return d}every(a,b){let c=0;for(let d of this){if(!Reflect.apply(a,b,[d,c,this]))return!1;c++}return!0}some(a,b){let c=0;for(let d of this){if(Reflect.apply(a,b,[d,c,this]))return!0;c++}return!1}}),a.s(["createCollection",0,function(a){let g=a+"CollectionProvider",[h,i]=(0,c.createContextScope)(g),[j,k]=h(g,{collectionRef:{current:null},itemMap:new Map}),l=a=>{let{scope:c,children:d}=a,e=b.default.useRef(null),g=b.default.useRef(new Map).current;return(0,f.jsx)(j,{scope:c,itemMap:g,collectionRef:e,children:d})};l.displayName=g;let m=a+"CollectionSlot",n=(0,e.createSlot)(m),o=b.default.forwardRef((a,b)=>{let{scope:c,children:e}=a,g=k(m,c),h=(0,d.useComposedRefs)(b,g.collectionRef);return(0,f.jsx)(n,{ref:h,children:e})});o.displayName=m;let p=a+"CollectionItemSlot",q="data-radix-collection-item",r=(0,e.createSlot)(p),s=b.default.forwardRef((a,c)=>{let{scope:e,children:g,...h}=a,i=b.default.useRef(null),j=(0,d.useComposedRefs)(c,i),l=k(p,e);return b.default.useEffect(()=>(l.itemMap.set(i,{ref:i,...h}),()=>void l.itemMap.delete(i))),(0,f.jsx)(r,{...{[q]:""},ref:j,children:g})});return s.displayName=p,[{Provider:l,Slot:o,ItemSlot:s},function(c){let d=k(a+"CollectionConsumer",c);return b.default.useCallback(()=>{let a=d.collectionRef.current;if(!a)return[];let b=Array.from(a.querySelectorAll(`[${q}]`));return Array.from(d.itemMap.values()).sort((a,c)=>b.indexOf(a.ref.current)-b.indexOf(c.ref.current))},[d.collectionRef,d.itemMap])},i]}])},48972,a=>{"use strict";a.s(["clamp",0,function(a,[b,c]){return Math.min(c,Math.max(b,a))}])},30400,a=>{"use strict";var b=a.i(81673),c=a.i(48558);let d=(0,a.i(42261).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}});a.s(["Card",0,function({className:a,tone:e,interactive:f,...g}){return(0,b.jsx)("div",{className:(0,c.cn)(d({tone:e,interactive:f}),a),...g})},"CardHeader",0,function({className:a,...d}){return(0,b.jsx)("div",{className:(0,c.cn)("mb-3 flex items-center justify-between",a),...d})},"CardStatLabel",0,function({className:a,...d}){return(0,b.jsx)("h3",{className:(0,c.cn)("text-sm font-medium text-muted-foreground",a),...d})},"CardTitle",0,function({className:a,...d}){return(0,b.jsx)("h3",{className:(0,c.cn)("text-lg font-semibold text-foreground",a),...d})},"CardValue",0,function({className:a,...d}){return(0,b.jsx)("div",{className:(0,c.cn)("text-3xl font-bold text-foreground",a),...d})}])},96336,a=>{"use strict";let b=(0,a.i(5423).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"}]]);a.s(["Trash2",0,b],96336)},43179,a=>{"use strict";let b=(0,a.i(5423).default)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);a.s(["Plus",0,b],43179)},7385,a=>{"use strict";let b=(0,a.i(5423).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"}]]);a.s(["XCircle",0,b],7385)},45133,a=>{"use strict";let b=(0,a.i(5423).default)("Pen",[["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"}]]);a.s(["Edit2",0,b],45133)},84478,a=>{"use strict";var b=a.i(13925),c=a.i(8753),d=a.i(62588),e=a.i(81130),f=a.i(59974);let g=["managed-tasks"],h=["management-history"];function i(a){a.invalidateQueries({queryKey:g}),a.invalidateQueries({queryKey:h}),a.invalidateQueries({queryKey:["managed-task"]}),a.invalidateQueries({queryKey:["recurring-schedules"]}),a.invalidateQueries({queryKey:["schedule-list"]}),a.invalidateQueries({queryKey:["schedule-next"]})}a.s(["useDeleteManagedTask",0,function(){let a=(0,e.useQueryClient)();return(0,c.useMutation)({mutationFn:a=>f.api.delete(`/managed-tasks/${a}`),onSuccess:()=>i(a)})},"useManagedTask",0,function(a){return(0,d.useQuery)({queryKey:["managed-task",a],queryFn:()=>f.api.get(`/managed-tasks/${a}`),enabled:!!a,staleTime:15e3})},"useManagedTaskRuns",0,function(a,b=25){return(0,d.useQuery)({queryKey:["managed-task-runs",a,b],queryFn:()=>f.api.get(`/managed-tasks/${a}/runs`,{limit:b}),enabled:!!a,staleTime:15e3})},"useManagedTasks",0,function(){return(0,d.useQuery)({queryKey:g,queryFn:()=>f.api.get("/managed-tasks"),staleTime:3e4})},"useManagementHistory",0,function(a=50){return(0,b.useInfiniteQuery)({queryKey:[...h,a],queryFn:({pageParam:b})=>f.api.get("/management-history",{limit:a,...b?{before_id:b}:{}}),initialPageParam:void 0,getNextPageParam:a=>a.nextCursor??void 0,staleTime:15e3})},"useRenameManagedTaskApp",0,function(){let a=(0,e.useQueryClient)();return(0,c.useMutation)({mutationFn:({id:a,newApp:b})=>f.api.post(`/managed-tasks/${a}/rename-app`,{newApp:b}),onSuccess:(b,c)=>{i(a),a.invalidateQueries({queryKey:["managed-task-runs",c.id]}),a.invalidateQueries({queryKey:["entities"]}),a.invalidateQueries({queryKey:["entities-by-source"]})}})},"useRunManagedTaskNow",0,function(){let a=(0,e.useQueryClient)();return(0,c.useMutation)({mutationFn:({id:a,reason:b})=>f.api.post(`/managed-tasks/${a}/run-now`,{reason:b}),onSuccess:(b,c)=>{a.invalidateQueries({queryKey:h}),a.invalidateQueries({queryKey:["managed-task-runs",c.id]}),a.invalidateQueries({queryKey:["schedule-list"]})}})},"useUpdateManagedTask",0,function(){let a=(0,e.useQueryClient)();return(0,c.useMutation)({mutationFn:({id:a,...b})=>f.api.patch(`/managed-tasks/${a}`,b),onSuccess:(b,c)=>{i(a),a.invalidateQueries({queryKey:["managed-task-runs",c.id]})}})}])}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_0~4ta0s._.js.map
|