@shepai/cli 1.201.0-pr600.2bbad7b → 1.202.0-pr601.3b893d1
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/package.json +2 -1
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/build-manifest.json +2 -2
- package/web/.next/fallback-build-manifest.json +2 -2
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/required-server-files.js +2 -2
- package/web/.next/required-server-files.json +2 -2
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page/react-loadable-manifest.json +4 -4
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +37 -37
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page/react-loadable-manifest.json +4 -4
- package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +35 -35
- package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page/react-loadable-manifest.json +4 -4
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +38 -38
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/react-loadable-manifest.json +4 -4
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +47 -47
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/react-loadable-manifest.json +4 -4
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +47 -47
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/react-loadable-manifest.json +4 -4
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +36 -36
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/react-loadable-manifest.json +4 -4
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +36 -36
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/chat/page/react-loadable-manifest.json +4 -4
- package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +35 -35
- package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/control-center/page/react-loadable-manifest.json +4 -4
- package/web/.next/server/app/(dashboard)/control-center/page/server-reference-manifest.json +35 -35
- package/web/.next/server/app/(dashboard)/control-center/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/control-center/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/create/page/react-loadable-manifest.json +4 -4
- package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +38 -38
- package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/react-loadable-manifest.json +4 -4
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +47 -47
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/react-loadable-manifest.json +4 -4
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +47 -47
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/react-loadable-manifest.json +4 -4
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +36 -36
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/react-loadable-manifest.json +4 -4
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +36 -36
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/_not-found/page/react-loadable-manifest.json +4 -4
- package/web/.next/server/app/_not-found/page/server-reference-manifest.json +9 -9
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/agent-questions/page/react-loadable-manifest.json +4 -4
- package/web/.next/server/app/agent-questions/page/server-reference-manifest.json +11 -11
- package/web/.next/server/app/agent-questions/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/agents/[agentType]/page/react-loadable-manifest.json +4 -4
- package/web/.next/server/app/agents/[agentType]/page/server-reference-manifest.json +13 -13
- package/web/.next/server/app/agents/[agentType]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/agents/page/react-loadable-manifest.json +4 -4
- package/web/.next/server/app/agents/page/server-reference-manifest.json +10 -10
- package/web/.next/server/app/agents/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/application/[id]/page/react-loadable-manifest.json +4 -4
- package/web/.next/server/app/application/[id]/page/server-reference-manifest.json +18 -18
- package/web/.next/server/app/application/[id]/page.js.nft.json +1 -1
- package/web/.next/server/app/application/[id]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/application/[id]/supervisor/page/react-loadable-manifest.json +4 -4
- package/web/.next/server/app/application/[id]/supervisor/page/server-reference-manifest.json +10 -10
- package/web/.next/server/app/application/[id]/supervisor/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/applications/page/react-loadable-manifest.json +4 -4
- package/web/.next/server/app/applications/page/server-reference-manifest.json +19 -19
- package/web/.next/server/app/applications/page.js.nft.json +1 -1
- package/web/.next/server/app/applications/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/features/page/react-loadable-manifest.json +4 -4
- package/web/.next/server/app/features/page/server-reference-manifest.json +31 -31
- package/web/.next/server/app/features/page.js.nft.json +1 -1
- package/web/.next/server/app/features/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/onboarding/page/react-loadable-manifest.json +4 -4
- package/web/.next/server/app/onboarding/page/server-reference-manifest.json +9 -9
- package/web/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/page/react-loadable-manifest.json +4 -4
- package/web/.next/server/app/page/server-reference-manifest.json +9 -9
- package/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/projects/[slug]/items/[itemId]/page/react-loadable-manifest.json +4 -4
- package/web/.next/server/app/projects/[slug]/items/[itemId]/page/server-reference-manifest.json +16 -16
- package/web/.next/server/app/projects/[slug]/items/[itemId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/projects/[slug]/page/react-loadable-manifest.json +4 -4
- package/web/.next/server/app/projects/[slug]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/projects/[slug]/pages/page/react-loadable-manifest.json +4 -4
- package/web/.next/server/app/projects/[slug]/pages/page/server-reference-manifest.json +12 -12
- package/web/.next/server/app/projects/[slug]/pages/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/projects/[slug]/settings/page/react-loadable-manifest.json +4 -4
- package/web/.next/server/app/projects/[slug]/settings/page/server-reference-manifest.json +18 -18
- package/web/.next/server/app/projects/[slug]/settings/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/projects/page/react-loadable-manifest.json +4 -4
- package/web/.next/server/app/projects/page/server-reference-manifest.json +10 -10
- package/web/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/settings/page/react-loadable-manifest.json +4 -4
- package/web/.next/server/app/settings/page/server-reference-manifest.json +15 -15
- package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/skills/page/react-loadable-manifest.json +4 -4
- package/web/.next/server/app/skills/page/server-reference-manifest.json +17 -17
- package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/supervisor/feature/[featureId]/page/react-loadable-manifest.json +4 -4
- package/web/.next/server/app/supervisor/feature/[featureId]/page/server-reference-manifest.json +10 -10
- package/web/.next/server/app/supervisor/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/supervisor/page/react-loadable-manifest.json +4 -4
- package/web/.next/server/app/supervisor/page/server-reference-manifest.json +10 -10
- package/web/.next/server/app/supervisor/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/supervisor/repo/[repositoryId]/page/react-loadable-manifest.json +4 -4
- package/web/.next/server/app/supervisor/repo/[repositoryId]/page/server-reference-manifest.json +10 -10
- package/web/.next/server/app/supervisor/repo/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/tools/page/react-loadable-manifest.json +4 -4
- package/web/.next/server/app/tools/page/server-reference-manifest.json +15 -15
- package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/version/page/react-loadable-manifest.json +4 -4
- package/web/.next/server/app/version/page/server-reference-manifest.json +9 -9
- package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__10e976f3._.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_agent-questions_page_actions_4b694f8d.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_agent-questions_page_actions_4b694f8d.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_agents_[agentType]_page_actions_103679a6.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_agents_[agentType]_page_actions_103679a6.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_projects_[slug]_pages_page_actions_19d50f6c.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_projects_[slug]_pages_page_actions_19d50f6c.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_app_projects_[slug]_items_[itemId]_work-item-detail-client_tsx_d2e02407._.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_app_projects_[slug]_items_[itemId]_work-item-detail-client_tsx_d2e02407._.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_app_projects_[slug]_settings_project-settings-client_tsx_e8b85ddc._.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_app_projects_[slug]_settings_project-settings-client_tsx_e8b85ddc._.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +2 -2
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_features_applications_applications-page-client_tsx_d0db9938._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0b652a2f._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__56cf47e7._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__56cf47e7._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__648730d4._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__68df6415._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__68df6415._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6bc6bf96._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6bc6bf96._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__9852cb08._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__9852cb08._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a1167cec._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a1167cec._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__796984c7._.js → [root-of-the-server]__acaaed62._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__796984c7._.js.map → [root-of-the-server]__acaaed62._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__b0d7cca3._.js +3 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__b0d7cca3._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__ba699bec._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__ba699bec._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__e0741ee1._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__e0fa59e6._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__e0fa59e6._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__ea26ff90._.js +3 -3
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__abab3b61._.js → [root-of-the-server]__f83cecd5._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__abab3b61._.js.map → [root-of-the-server]__f83cecd5._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__ff0095e3._.js +1 -1
- package/web/.next/server/chunks/ssr/_07036593._.js +1 -1
- package/web/.next/server/chunks/ssr/_07036593._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_7c360295._.js → _0a666f6f._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_7c360295._.js.map → _0a666f6f._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_0d2a7595._.js +1 -1
- package/web/.next/server/chunks/ssr/_0d2a7595._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_101de7c3._.js +1 -1
- package/web/.next/server/chunks/ssr/_101de7c3._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_24fca3cf._.js +1 -1
- package/web/.next/server/chunks/ssr/_24fca3cf._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_2bc48f3d._.js +1 -1
- package/web/.next/server/chunks/ssr/_2bc48f3d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_32f66845._.js +1 -1
- package/web/.next/server/chunks/ssr/_408848e6._.js +1 -1
- package/web/.next/server/chunks/ssr/_408848e6._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_40e02782._.js +1 -1
- package/web/.next/server/chunks/ssr/_40e02782._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_486d45d6._.js +1 -1
- package/web/.next/server/chunks/ssr/_486d45d6._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_7b8add77._.js → _4c81bcc4._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_7b8add77._.js.map → _4c81bcc4._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{_92c3fc3d._.js → _4cec17d6._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_92c3fc3d._.js.map → _4cec17d6._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
- package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_1d23a6ad._.js → _5916a65c._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_1d23a6ad._.js.map → _5916a65c._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_5cbb0e22._.js +1 -1
- package/web/.next/server/chunks/ssr/_5cbb0e22._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_4a25fd2a._.js → _69d28743._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_4a25fd2a._.js.map → _69d28743._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{_c37ef8be._.js → _74ee33b9._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_c37ef8be._.js.map → _74ee33b9._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_7ba67729._.js +1 -1
- package/web/.next/server/chunks/ssr/_7ba67729._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_805ae1aa._.js +1 -1
- package/web/.next/server/chunks/ssr/_805ae1aa._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_87cf18c3._.js +1 -1
- package/web/.next/server/chunks/ssr/_87cf18c3._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_8a700ff4._.js +1 -1
- package/web/.next/server/chunks/ssr/_8a700ff4._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_c77a0a62._.js → _904d6c22._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_c77a0a62._.js.map → _904d6c22._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_95b97274._.js +1 -1
- package/web/.next/server/chunks/ssr/_95b97274._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_3f6a8669._.js → _a85af8c2._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_3f6a8669._.js.map → _a85af8c2._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_c2e196ee._.js +1 -1
- package/web/.next/server/chunks/ssr/_c2e196ee._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_ca3b7bf7._.js +1 -1
- package/web/.next/server/chunks/ssr/_ca3b7bf7._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_d53224a9._.js +1 -1
- package/web/.next/server/chunks/ssr/_d53224a9._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_d573dcc2._.js +1 -1
- package/web/.next/server/chunks/ssr/_e2671e14._.js +1 -1
- package/web/.next/server/chunks/ssr/_e2671e14._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_ecd45b17._.js +1 -1
- package/web/.next/server/chunks/ssr/_ecd45b17._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_3a9f8b6f._.js → _f0bdafe2._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_3a9f8b6f._.js.map → _f0bdafe2._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_f602cc9f._.js +1 -1
- package/web/.next/server/chunks/ssr/_f602cc9f._.js.map +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_0e291f0b._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_0e291f0b._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_1d8d177f._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_1d8d177f._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_450b58fc._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_450b58fc._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_47727150._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_47727150._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_64fcfc84._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_64fcfc84._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{src_presentation_web_011b1b2b._.js → src_presentation_web_6f8efc48._.js} +2 -2
- package/web/.next/server/chunks/ssr/{src_presentation_web_011b1b2b._.js.map → src_presentation_web_6f8efc48._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_74b7bdb2._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_74b7bdb2._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_82aeca34._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_82aeca34._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_8a564d47._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_8a564d47._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_9a543843._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_9a543843._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app__not-found_page_actions_f4f3fad9.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app__not-found_page_actions_f4f3fad9.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_agents_page_actions_d4bd4711.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_agents_page_actions_d4bd4711.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_onboarding_page_actions_bb695e8d.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_onboarding_page_actions_bb695e8d.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_page_actions_ac47e420.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_page_actions_ac47e420.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_projects_page_actions_c91a23a8.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_projects_page_actions_c91a23a8.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_version_page_actions_63c2d912.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_version_page_actions_63c2d912.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_a53a3da6._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_a53a3da6._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_246617fe._.js +3 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_adopt-local-directory_ts_75f1f28c._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_adopt-local-directory_ts_75f1f28c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_approve-feature_ts_9453ce8b._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-directory_ts_1209d917._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-directory_ts_1209d917._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_features_feature-tree-page-client_tsx_34c5cbbf._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_b1b3c26c._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_b1b3c26c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_b98a4353._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_b98a4353._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_c96ca051._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_c96ca051._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{src_presentation_web_4992017e._.js → src_presentation_web_cc905835._.js} +2 -2
- package/web/.next/server/chunks/ssr/{src_presentation_web_4992017e._.js.map → src_presentation_web_cc905835._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_66643378._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_66643378._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_agent-editor_agent-editor-tabs_tsx_d5a954b4._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_agent-editor_agent-editor-tabs_tsx_d5a954b4._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_d3858f16._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_d3858f16._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_d7f8130c._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_d7f8130c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_dddd8ccd._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_dddd8ccd._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_e13d58b0._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_e13d58b0._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_ee94a9aa._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_ee94a9aa._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_f0fcfdff._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_f0fcfdff._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_f17e8516._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_f17e8516._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_f7180fec._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_f7180fec._.js.map +1 -1
- package/web/.next/server/pages/500.html +2 -2
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +110 -110
- package/web/.next/static/chunks/{a8d8f9c61ec519d7.js → 06a3ce6f0a63bb38.js} +1 -1
- package/web/.next/static/chunks/{a7920ec2696dea6b.js → 0872ff9e21208474.js} +1 -1
- package/web/.next/static/chunks/{8505947d14732a53.js → 18d0b0f66c3a5030.js} +1 -1
- package/web/.next/static/chunks/{21ae217482df277e.js → 1935b7e366ff3eb6.js} +1 -1
- package/web/.next/static/chunks/{bc7ff90acabf822e.js → 19aa3cc6df5f5833.js} +1 -1
- package/web/.next/static/chunks/{14ae33e3d05df7ae.js → 25277f492a8e114f.js} +1 -1
- package/web/.next/static/chunks/{a9b788473a1a2f74.js → 2fd21b1e8f74dddd.js} +1 -1
- package/web/.next/static/chunks/{73de88f5c150f826.js → 35ea128cac9da3aa.js} +1 -1
- package/web/.next/static/chunks/{16a0872b47a0c873.js → 3b0e5f1d61bbe5b9.js} +1 -1
- package/web/.next/static/chunks/{2e2bbe08a2ced79d.js → 3e4b4cc39d18c2d3.js} +1 -1
- package/web/.next/static/chunks/{8aa1b266648944de.js → 3fdf3bfbaa542a58.js} +1 -1
- package/web/.next/static/chunks/{28b1e727e07ee99e.js → 46bacb3927eb4aad.js} +1 -1
- package/web/.next/static/chunks/{f2eb8ed0ba27add9.js → 4e6d1ce8b909633b.js} +1 -1
- package/web/.next/static/chunks/{ef1c174fb55135fb.js → 506cd958e1d95d99.js} +1 -1
- package/web/.next/static/chunks/{eb1c0aac34a995fe.js → 558f703ea70fb12f.js} +1 -1
- package/web/.next/static/chunks/{46628109fd139e38.js → 55f0874ed4cff0b4.js} +1 -1
- package/web/.next/static/chunks/64228763c0a5b398.js +1 -0
- package/web/.next/static/chunks/{df57f17a33536493.js → 66a4af80ba31ab99.js} +1 -1
- package/web/.next/static/chunks/{a4379769c9845bed.js → 69001f2dc93cd854.js} +1 -1
- package/web/.next/static/chunks/{04bf00ba0dfe132e.js → 7cd5b1d4aecb605f.js} +1 -1
- package/web/.next/static/chunks/{98a7e6a733c1eec1.js → 8437b14aa3d30c4a.js} +1 -1
- package/web/.next/static/chunks/{1d767f2bf1e60119.js → 85ddd1e61b5acfa7.js} +1 -1
- package/web/.next/static/chunks/{3d096d025d3a4300.js → 88e44bfd13326e0a.js} +1 -1
- package/web/.next/static/chunks/{cd553eaf62c59330.js → 89ea6a36b13564bb.js} +3 -3
- package/web/.next/static/chunks/{c3f8977262e99729.js → 8e05b72447a6de2d.js} +1 -1
- package/web/.next/static/chunks/92b0f4ef034da238.js +1 -0
- package/web/.next/static/chunks/{661ae8c69fd4c6e0.js → 9955264849876242.js} +1 -1
- package/web/.next/static/chunks/a8bd431b98488304.js +1 -0
- package/web/.next/static/chunks/{b1ce1428c415689c.js → aff24d3846940734.js} +1 -1
- package/web/.next/static/chunks/{6b2db436783731a9.js → bed79ff1fb1474b2.js} +1 -1
- package/web/.next/static/chunks/{2964ed9040700d3d.js → cafa3b9f2631ead4.js} +1 -1
- package/web/.next/static/chunks/{444614c3115ff33e.js → cf29be39771eed74.js} +1 -1
- package/web/.next/static/chunks/{6724456c4ee12a6c.js → e0033d3fa646e3ba.js} +1 -1
- package/web/.next/static/chunks/{29d53f36d9cf3511.js → e097ae94a23d6f6e.js} +1 -1
- package/web/.next/static/chunks/e4d71aefcaf0bcb8.js +1 -0
- package/web/.next/static/chunks/{0797756ed1f6ae7c.js → e62855ec84a7075d.js} +1 -1
- package/web/.next/static/chunks/e648942ddca82602.js +1 -0
- package/web/.next/static/chunks/{f478ef3c6d77bea8.js → f039f96340b89e08.js} +1 -1
- package/web/.next/static/chunks/{ea31f78dde34f8e1.js → f4c2e3f10d87b772.js} +1 -1
- package/web/.next/static/chunks/f671dcbbfd92b775.js +1 -0
- package/web/.next/static/chunks/{e1fee822ce83d4e4.js → fd4d834af4d4bf63.js} +1 -1
- package/web/.next/static/chunks/4d7b6685af2c61f9.js +0 -1
- package/web/.next/static/chunks/6352e668ea0a8df7.js +0 -1
- package/web/.next/static/chunks/74098475a938bee3.js +0 -1
- package/web/.next/static/chunks/798f66a5fdd1e765.js +0 -1
- package/web/.next/static/chunks/b3e91925f7db1ae9.js +0 -1
- package/web/.next/static/chunks/c8c4ea71670c4e55.js +0 -1
- /package/web/.next/static/{ChVi9RNp-ZER74W2GrrbV → iJI1BMB-BwFI6JHl9YJW8}/_buildManifest.js +0 -0
- /package/web/.next/static/{ChVi9RNp-ZER74W2GrrbV → iJI1BMB-BwFI6JHl9YJW8}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{ChVi9RNp-ZER74W2GrrbV → iJI1BMB-BwFI6JHl9YJW8}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[758860,a=>{"use strict";var b=a.i(556365),c=a.i(944592),d=a.i(666873),e=c.forwardRef((a,c)=>(0,b.jsx)(d.Primitive.label,{...a,ref:c,onMouseDown:b=>{b.target.closest("button, input, select, textarea")||(a.onMouseDown?.(b),!b.defaultPrevented&&b.detail>1&&b.preventDefault())}}));e.displayName="Label",a.s(["Label",()=>e,"Root",()=>e],159967);var f=a.i(159967),f=f,g=a.i(142261),h=a.i(385536);let i=(0,g.cva)("text-sm leading-none font-medium peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),j=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(f.Root,{ref:d,className:(0,h.cn)(i(),a),...c}));j.displayName=f.Root.displayName,a.s(["Label",()=>j],758860)},658339,a=>{"use strict";var b=a.i(556365),c=a.i(142261),d=a.i(385536);let e=(0,c.cva)("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-none",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function f({className:a,variant:c,...f}){return(0,b.jsx)("div",{className:(0,d.cn)(e({variant:c}),a),...f})}a.s(["Badge",()=>f])},105180,a=>{"use strict";var b=a.i(556365),c=a.i(944592),d=a.i(142261),e=a.i(385536);let f=(0,d.cva)("relative w-full rounded-lg border px-4 py-3 text-sm [&>svg]:absolute [&>svg]:top-4 [&>svg]:start-4 [&>svg]:text-foreground [&>svg+div]:translate-y-[-3px] [&>svg~*]:ps-7",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"}},defaultVariants:{variant:"default"}}),g=c.forwardRef(({className:a,variant:c,...d},g)=>(0,b.jsx)("div",{ref:g,role:"alert",className:(0,e.cn)(f({variant:c}),a),...d}));g.displayName="Alert",c.forwardRef(({className:a,...c},d)=>(0,b.jsx)("h5",{ref:d,className:(0,e.cn)("mb-1 leading-none font-medium tracking-tight",a),...c})).displayName="AlertTitle";let h=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)("div",{ref:d,className:(0,e.cn)("text-sm [&_p]:leading-relaxed",a),...c}));h.displayName="AlertDescription",a.s(["Alert",()=>g,"AlertDescription",()=>h])},241994,a=>{"use strict";let b=(0,a.i(225700).default)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);a.s(["ArrowRight",()=>b],241994)},645670,a=>{"use strict";var b=a.i(556365),c=a.i(944592),d=a.i(371335),e=a.i(302807),f=a.i(385536);let g=d.Dialog.Root,h=d.Dialog.Trigger,i=d.Dialog.Portal,j=d.Dialog.Close,k=c.forwardRef(({className:a,onClick:c,...e},g)=>(0,b.jsx)(d.Dialog.Overlay,{ref:g,className:(0,f.cn)("data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 fixed inset-0 z-50 bg-black/80 duration-150",a),onClick:a=>{a.stopPropagation(),c?.(a)},...e}));k.displayName=d.Dialog.Overlay.displayName;let l=c.forwardRef(({className:a,children:c,...g},h)=>(0,b.jsxs)(i,{children:[(0,b.jsx)(k,{}),(0,b.jsxs)(d.Dialog.Content,{ref:h,className:(0,f.cn)("bg-background data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg duration-150 sm:rounded-lg",a),...g,children:[c,(0,b.jsxs)(d.Dialog.Close,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute end-4 top-4 cursor-pointer rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none",children:[(0,b.jsx)(e.X,{className:"h-4 w-4"}),(0,b.jsx)("span",{className:"sr-only",children:"Close"})]})]})]}));l.displayName=d.Dialog.Content.displayName;let m=({className:a,...c})=>(0,b.jsx)("div",{className:(0,f.cn)("flex flex-col space-y-1.5 text-center sm:text-start",a),...c});m.displayName="DialogHeader";let n=({className:a,...c})=>(0,b.jsx)("div",{className:(0,f.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",a),...c});n.displayName="DialogFooter";let o=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)(d.Dialog.Title,{ref:e,className:(0,f.cn)("text-lg leading-none font-semibold tracking-tight",a),...c}));o.displayName=d.Dialog.Title.displayName;let p=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)(d.Dialog.Description,{ref:e,className:(0,f.cn)("text-muted-foreground text-sm",a),...c}));p.displayName=d.Dialog.Description.displayName,a.s(["Dialog",()=>g,"DialogClose",()=>j,"DialogContent",()=>l,"DialogDescription",()=>p,"DialogFooter",()=>n,"DialogHeader",()=>m,"DialogTitle",()=>o,"DialogTrigger",()=>h])},679620,a=>{"use strict";var b=a.i(556365),c=a.i(385536);function d({className:a,...d}){return(0,b.jsx)("textarea",{"data-slot":"textarea",className:(0,c.cn)("placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input field-sizing-content min-h-[80px] w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",a),...d})}a.s(["Textarea",()=>d])},925603,a=>{"use strict";let b=(0,a.i(225700).default)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]);a.s(["Sparkles",()=>b],925603)},36453,a=>{"use strict";var b=a.i(556365),c=a.i(944592),d=a.i(645348),e=a.i(683686),f=a.i(302807),g=a.i(118948);function h({id:a,title:h,description:i,ctaLabel:j,ctaHref:k,forceVisible:l}){let m=`shep:onboarding:${a}`,[n,o]=(0,c.useState)(!1),[p,q]=(0,c.useState)(!0);return((0,c.useEffect)(()=>{if(o(!0),l)return void q(!0);try{let a=window.localStorage.getItem(m);q("1"!==a)}catch{q(!0)}},[l,m]),n&&p)?(0,b.jsxs)("div",{className:"bg-muted/40 flex items-start gap-3 rounded-lg border p-4","data-testid":`welcome-banner-${a}`,children:[(0,b.jsx)("div",{className:"bg-primary/10 text-primary flex h-9 w-9 shrink-0 items-center justify-center rounded-md",children:(0,b.jsx)(e.GraduationCap,{className:"size-4"})}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col gap-2",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"text-sm font-medium",children:h}),(0,b.jsx)("p",{className:"text-muted-foreground text-sm",children:i})]}),k&&j?(0,b.jsx)("div",{children:(0,b.jsx)(g.Button,{asChild:!0,size:"sm",variant:"outline",children:(0,b.jsx)(d.default,{href:k,"data-testid":`welcome-banner-${a}-cta`,children:j})})}):null]}),(0,b.jsx)(g.Button,{variant:"ghost",size:"icon",className:"size-7 shrink-0",onClick:function(){if(q(!1),!l)try{window.localStorage.setItem(m,"1")}catch{}},"aria-label":"Dismiss this hint","data-testid":`welcome-banner-${a}-dismiss`,children:(0,b.jsx)(f.X,{className:"size-4"})})]}):null}a.s(["WelcomeBanner",()=>h])},878632,a=>{"use strict";var b=a.i(556365),c=a.i(645348),d=a.i(134644),e=a.i(241994),f=a.i(925603),g=a.i(658339);function h({agents:a}){return 0===a.length?(0,b.jsxs)("div",{className:"bg-muted/30 rounded-lg border border-dashed p-6",children:[(0,b.jsx)("p",{className:"text-sm font-medium",children:"No agents registered"}),(0,b.jsxs)("p",{className:"text-muted-foreground text-sm",children:["The built-in prompt registry is empty — register slots in",(0,b.jsx)("code",{className:"bg-muted mx-1 rounded px-1 py-0.5 text-xs",children:"builtin-prompt-registry.ts"}),"to expose agents in this editor."]})]}):(0,b.jsx)("ul",{className:"flex flex-col divide-y rounded-lg border","data-testid":"agent-list",children:a.map(a=>(0,b.jsxs)("li",{className:"flex items-center gap-3 px-3 py-2","data-testid":`agent-row-${a.agentType}`,children:[(0,b.jsx)("div",{className:"bg-primary/10 text-primary flex h-8 w-8 items-center justify-center rounded-md",children:a.isCustom?(0,b.jsx)(f.Sparkles,{className:"size-4","aria-hidden":!0}):(0,b.jsx)(d.Bot,{className:"size-4","aria-hidden":!0})}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("p",{className:"truncate text-sm font-medium",children:a.displayName??a.agentType}),a.isCustom?(0,b.jsx)(g.Badge,{variant:"secondary",className:"shrink-0",children:"Custom"}):null]}),(0,b.jsxs)("p",{className:"text-muted-foreground text-xs",children:[a.isCustom?a.agentType:null,a.isCustom?" · ":"",a.promptCount," prompt",1===a.promptCount?"":"s",a.overrideCount>0?` \xb7 ${a.overrideCount} override${1===a.overrideCount?"":"s"}`:""]})]}),(0,b.jsxs)(c.default,{href:`/agents/${a.agentType}`,className:"text-primary inline-flex shrink-0 items-center gap-1 text-xs hover:underline",children:["Edit",(0,b.jsx)(e.ArrowRight,{className:"size-3"})]})]},a.agentType))})}a.s(["AgentList",()=>h])},42428,a=>{"use strict";var b=a.i(556365),c=a.i(944592),d=a.i(91109),e=a.i(867837),f=a.i(105180),g=a.i(118948),h=a.i(645670),i=a.i(390920),j=a.i(758860),k=a.i(679620),l=a.i(289111);let m=(0,l.createServerReference)("40026dd1e1a296d5b931914f24d562790b5eea6152",l.callServer,void 0,l.findSourceMapURL,"createCustomAgent"),n=/^[a-z][a-z0-9-]{1,63}$/;function o({onCreateOverride:a,initialOpen:l,onNavigateOverride:o}){let p=(0,d.useRouter)(),[q,r]=(0,c.useState)(!!l),[s,t]=(0,c.useState)(""),[u,v]=(0,c.useState)(""),[w,x]=(0,c.useState)(""),[y,z]=(0,c.useState)("system"),[A,B]=(0,c.useState)(""),[C,D]=(0,c.useState)(null),[E,F]=(0,c.useTransition)();function G(){t(""),v(""),x(""),z("system"),B(""),D(null)}let H=n.test(s),I=H&&u.trim().length>0&&w.trim().length>0&&!E;return(0,b.jsxs)(h.Dialog,{open:q,onOpenChange:a=>{r(a),a||G()},children:[(0,b.jsx)(h.DialogTrigger,{asChild:!0,children:(0,b.jsxs)(g.Button,{"data-testid":"create-agent-trigger",children:[(0,b.jsx)(e.Plus,{className:"size-4"}),"New agent"]})}),(0,b.jsxs)(h.DialogContent,{className:"max-w-xl","data-testid":"create-agent-dialog",children:[(0,b.jsxs)(h.DialogHeader,{children:[(0,b.jsx)(h.DialogTitle,{children:"Create custom agent"}),(0,b.jsx)(h.DialogDescription,{children:"Stand up a new agent type with its own prompt slots and editable graph. Built-in agents stay untouched."})]}),(0,b.jsxs)("form",{className:"flex flex-col gap-4",onSubmit:function(b){b.preventDefault(),I&&(D(null),F(async()=>{let b=await (a??m)({agentType:s,name:u,description:w,...y.trim()&&A.length>0?{initialPromptId:y,initialPromptBody:A}:{}});if(!b.ok)return void D(b.error??"Failed to create agent");let c=b.agentType??s;G(),r(!1);let d=`/agents/${c}`;o?o(d):p.push(d)}))},children:[(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsx)(j.Label,{htmlFor:"create-agent-type",children:"Stable type id"}),(0,b.jsx)(i.Input,{id:"create-agent-type","data-testid":"create-agent-type",placeholder:"e.g. code-review",value:s,onChange:a=>t(a.target.value.toLowerCase()),disabled:E,autoComplete:"off","aria-invalid":s.length>0&&!H}),(0,b.jsxs)("p",{className:"text-muted-foreground text-xs",children:["kebab-case, starts with a letter, max 64 chars (matches"," ",(0,b.jsx)("code",{className:"bg-muted rounded px-1",children:"/^[a-z][a-z0-9-]+$/"}),")"]})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsx)(j.Label,{htmlFor:"create-agent-name",children:"Display name"}),(0,b.jsx)(i.Input,{id:"create-agent-name","data-testid":"create-agent-name",placeholder:"e.g. Code Review Agent",value:u,onChange:a=>v(a.target.value),disabled:E})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsx)(j.Label,{htmlFor:"create-agent-description",children:"Description"}),(0,b.jsx)(i.Input,{id:"create-agent-description","data-testid":"create-agent-description",placeholder:"What does this agent do?",value:w,onChange:a=>x(a.target.value),disabled:E})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-2 rounded-md border border-dashed p-3",children:[(0,b.jsx)("p",{className:"text-sm font-medium",children:"Seed first prompt (optional)"}),(0,b.jsx)(j.Label,{htmlFor:"create-agent-prompt-id",children:"Prompt slot id"}),(0,b.jsx)(i.Input,{id:"create-agent-prompt-id","data-testid":"create-agent-prompt-id",value:y,onChange:a=>z(a.target.value),disabled:E,placeholder:"e.g. system, plan.system"}),(0,b.jsx)(j.Label,{htmlFor:"create-agent-prompt-body",children:"Prompt body"}),(0,b.jsx)(k.Textarea,{id:"create-agent-prompt-body","data-testid":"create-agent-prompt-body",value:A,onChange:a=>B(a.target.value),rows:5,className:"font-mono text-xs",disabled:E,placeholder:"System prompt the agent will run with…"})]}),C?(0,b.jsx)(f.Alert,{variant:"destructive","data-testid":"create-agent-error",children:(0,b.jsx)(f.AlertDescription,{children:C})}):null,(0,b.jsx)(h.DialogFooter,{children:(0,b.jsx)(g.Button,{type:"submit",disabled:!I,"data-testid":"create-agent-submit",children:E?"Creating…":"Create agent"})})]})]})]})}a.s(["CreateAgentDialog",()=>o],42428)}];
|
|
1
|
+
module.exports=[758860,a=>{"use strict";var b=a.i(556365),c=a.i(944592),d=a.i(666873),e=c.forwardRef((a,c)=>(0,b.jsx)(d.Primitive.label,{...a,ref:c,onMouseDown:b=>{b.target.closest("button, input, select, textarea")||(a.onMouseDown?.(b),!b.defaultPrevented&&b.detail>1&&b.preventDefault())}}));e.displayName="Label",a.s(["Label",()=>e,"Root",()=>e],159967);var f=a.i(159967),f=f,g=a.i(142261),h=a.i(385536);let i=(0,g.cva)("text-sm leading-none font-medium peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),j=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(f.Root,{ref:d,className:(0,h.cn)(i(),a),...c}));j.displayName=f.Root.displayName,a.s(["Label",()=>j],758860)},658339,a=>{"use strict";var b=a.i(556365),c=a.i(142261),d=a.i(385536);let e=(0,c.cva)("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-none",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function f({className:a,variant:c,...f}){return(0,b.jsx)("div",{className:(0,d.cn)(e({variant:c}),a),...f})}a.s(["Badge",()=>f])},105180,a=>{"use strict";var b=a.i(556365),c=a.i(944592),d=a.i(142261),e=a.i(385536);let f=(0,d.cva)("relative w-full rounded-lg border px-4 py-3 text-sm [&>svg]:absolute [&>svg]:top-4 [&>svg]:start-4 [&>svg]:text-foreground [&>svg+div]:translate-y-[-3px] [&>svg~*]:ps-7",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"}},defaultVariants:{variant:"default"}}),g=c.forwardRef(({className:a,variant:c,...d},g)=>(0,b.jsx)("div",{ref:g,role:"alert",className:(0,e.cn)(f({variant:c}),a),...d}));g.displayName="Alert",c.forwardRef(({className:a,...c},d)=>(0,b.jsx)("h5",{ref:d,className:(0,e.cn)("mb-1 leading-none font-medium tracking-tight",a),...c})).displayName="AlertTitle";let h=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)("div",{ref:d,className:(0,e.cn)("text-sm [&_p]:leading-relaxed",a),...c}));h.displayName="AlertDescription",a.s(["Alert",()=>g,"AlertDescription",()=>h])},241994,a=>{"use strict";let b=(0,a.i(225700).default)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);a.s(["ArrowRight",()=>b],241994)},645670,a=>{"use strict";var b=a.i(556365),c=a.i(944592),d=a.i(371335),e=a.i(302807),f=a.i(385536);let g=d.Dialog.Root,h=d.Dialog.Trigger,i=d.Dialog.Portal,j=d.Dialog.Close,k=c.forwardRef(({className:a,onClick:c,...e},g)=>(0,b.jsx)(d.Dialog.Overlay,{ref:g,className:(0,f.cn)("data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 fixed inset-0 z-50 bg-black/80 duration-150",a),onClick:a=>{a.stopPropagation(),c?.(a)},...e}));k.displayName=d.Dialog.Overlay.displayName;let l=c.forwardRef(({className:a,children:c,...g},h)=>(0,b.jsxs)(i,{children:[(0,b.jsx)(k,{}),(0,b.jsxs)(d.Dialog.Content,{ref:h,className:(0,f.cn)("bg-background data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg duration-150 sm:rounded-lg",a),...g,children:[c,(0,b.jsxs)(d.Dialog.Close,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute end-4 top-4 cursor-pointer rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none",children:[(0,b.jsx)(e.X,{className:"h-4 w-4"}),(0,b.jsx)("span",{className:"sr-only",children:"Close"})]})]})]}));l.displayName=d.Dialog.Content.displayName;let m=({className:a,...c})=>(0,b.jsx)("div",{className:(0,f.cn)("flex flex-col space-y-1.5 text-center sm:text-start",a),...c});m.displayName="DialogHeader";let n=({className:a,...c})=>(0,b.jsx)("div",{className:(0,f.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",a),...c});n.displayName="DialogFooter";let o=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)(d.Dialog.Title,{ref:e,className:(0,f.cn)("text-lg leading-none font-semibold tracking-tight",a),...c}));o.displayName=d.Dialog.Title.displayName;let p=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)(d.Dialog.Description,{ref:e,className:(0,f.cn)("text-muted-foreground text-sm",a),...c}));p.displayName=d.Dialog.Description.displayName,a.s(["Dialog",()=>g,"DialogClose",()=>j,"DialogContent",()=>l,"DialogDescription",()=>p,"DialogFooter",()=>n,"DialogHeader",()=>m,"DialogTitle",()=>o,"DialogTrigger",()=>h])},679620,a=>{"use strict";var b=a.i(556365),c=a.i(385536);function d({className:a,...d}){return(0,b.jsx)("textarea",{"data-slot":"textarea",className:(0,c.cn)("placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input field-sizing-content min-h-[80px] w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",a),...d})}a.s(["Textarea",()=>d])},925603,a=>{"use strict";let b=(0,a.i(225700).default)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]);a.s(["Sparkles",()=>b],925603)},36453,a=>{"use strict";var b=a.i(556365),c=a.i(944592),d=a.i(645348),e=a.i(683686),f=a.i(302807),g=a.i(118948);function h({id:a,title:h,description:i,ctaLabel:j,ctaHref:k,forceVisible:l}){let m=`shep:onboarding:${a}`,[n,o]=(0,c.useState)(!1),[p,q]=(0,c.useState)(!0);return((0,c.useEffect)(()=>{if(o(!0),l)return void q(!0);try{let a=window.localStorage.getItem(m);q("1"!==a)}catch{q(!0)}},[l,m]),n&&p)?(0,b.jsxs)("div",{className:"bg-muted/40 flex items-start gap-3 rounded-lg border p-4","data-testid":`welcome-banner-${a}`,children:[(0,b.jsx)("div",{className:"bg-primary/10 text-primary flex h-9 w-9 shrink-0 items-center justify-center rounded-md",children:(0,b.jsx)(e.GraduationCap,{className:"size-4"})}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col gap-2",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"text-sm font-medium",children:h}),(0,b.jsx)("p",{className:"text-muted-foreground text-sm",children:i})]}),k&&j?(0,b.jsx)("div",{children:(0,b.jsx)(g.Button,{asChild:!0,size:"sm",variant:"outline",children:(0,b.jsx)(d.default,{href:k,"data-testid":`welcome-banner-${a}-cta`,children:j})})}):null]}),(0,b.jsx)(g.Button,{variant:"ghost",size:"icon",className:"size-7 shrink-0",onClick:function(){if(q(!1),!l)try{window.localStorage.setItem(m,"1")}catch{}},"aria-label":"Dismiss this hint","data-testid":`welcome-banner-${a}-dismiss`,children:(0,b.jsx)(f.X,{className:"size-4"})})]}):null}a.s(["WelcomeBanner",()=>h])},878632,a=>{"use strict";var b=a.i(556365),c=a.i(645348),d=a.i(134644),e=a.i(241994),f=a.i(925603),g=a.i(658339);function h({agents:a}){return 0===a.length?(0,b.jsxs)("div",{className:"bg-muted/30 rounded-lg border border-dashed p-6",children:[(0,b.jsx)("p",{className:"text-sm font-medium",children:"No agents registered"}),(0,b.jsxs)("p",{className:"text-muted-foreground text-sm",children:["The built-in prompt registry is empty — register slots in",(0,b.jsx)("code",{className:"bg-muted mx-1 rounded px-1 py-0.5 text-xs",children:"builtin-prompt-registry.ts"}),"to expose agents in this editor."]})]}):(0,b.jsx)("ul",{className:"flex flex-col divide-y rounded-lg border","data-testid":"agent-list",children:a.map(a=>(0,b.jsxs)("li",{className:"flex items-center gap-3 px-3 py-2","data-testid":`agent-row-${a.agentType}`,children:[(0,b.jsx)("div",{className:"bg-primary/10 text-primary flex h-8 w-8 items-center justify-center rounded-md",children:a.isCustom?(0,b.jsx)(f.Sparkles,{className:"size-4","aria-hidden":!0}):(0,b.jsx)(d.Bot,{className:"size-4","aria-hidden":!0})}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("p",{className:"truncate text-sm font-medium",children:a.displayName??a.agentType}),a.isCustom?(0,b.jsx)(g.Badge,{variant:"secondary",className:"shrink-0",children:"Custom"}):null]}),(0,b.jsxs)("p",{className:"text-muted-foreground text-xs",children:[a.isCustom?a.agentType:null,a.isCustom?" · ":"",a.promptCount," prompt",1===a.promptCount?"":"s",a.overrideCount>0?` \xb7 ${a.overrideCount} override${1===a.overrideCount?"":"s"}`:""]})]}),(0,b.jsxs)(c.default,{href:`/agents/${a.agentType}`,className:"text-primary inline-flex shrink-0 items-center gap-1 text-xs hover:underline",children:["Edit",(0,b.jsx)(e.ArrowRight,{className:"size-3"})]})]},a.agentType))})}a.s(["AgentList",()=>h])},42428,a=>{"use strict";var b=a.i(556365),c=a.i(944592),d=a.i(91109),e=a.i(867837),f=a.i(105180),g=a.i(118948),h=a.i(645670),i=a.i(390920),j=a.i(758860),k=a.i(679620),l=a.i(289111);let m=(0,l.createServerReference)("405fd2f3ca66b41c82abc92f0c81160af517045106",l.callServer,void 0,l.findSourceMapURL,"createCustomAgent"),n=/^[a-z][a-z0-9-]{1,63}$/;function o({onCreateOverride:a,initialOpen:l,onNavigateOverride:o}){let p=(0,d.useRouter)(),[q,r]=(0,c.useState)(!!l),[s,t]=(0,c.useState)(""),[u,v]=(0,c.useState)(""),[w,x]=(0,c.useState)(""),[y,z]=(0,c.useState)("system"),[A,B]=(0,c.useState)(""),[C,D]=(0,c.useState)(null),[E,F]=(0,c.useTransition)();function G(){t(""),v(""),x(""),z("system"),B(""),D(null)}let H=n.test(s),I=H&&u.trim().length>0&&w.trim().length>0&&!E;return(0,b.jsxs)(h.Dialog,{open:q,onOpenChange:a=>{r(a),a||G()},children:[(0,b.jsx)(h.DialogTrigger,{asChild:!0,children:(0,b.jsxs)(g.Button,{"data-testid":"create-agent-trigger",children:[(0,b.jsx)(e.Plus,{className:"size-4"}),"New agent"]})}),(0,b.jsxs)(h.DialogContent,{className:"max-w-xl","data-testid":"create-agent-dialog",children:[(0,b.jsxs)(h.DialogHeader,{children:[(0,b.jsx)(h.DialogTitle,{children:"Create custom agent"}),(0,b.jsx)(h.DialogDescription,{children:"Stand up a new agent type with its own prompt slots and editable graph. Built-in agents stay untouched."})]}),(0,b.jsxs)("form",{className:"flex flex-col gap-4",onSubmit:function(b){b.preventDefault(),I&&(D(null),F(async()=>{let b=await (a??m)({agentType:s,name:u,description:w,...y.trim()&&A.length>0?{initialPromptId:y,initialPromptBody:A}:{}});if(!b.ok)return void D(b.error??"Failed to create agent");let c=b.agentType??s;G(),r(!1);let d=`/agents/${c}`;o?o(d):p.push(d)}))},children:[(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsx)(j.Label,{htmlFor:"create-agent-type",children:"Stable type id"}),(0,b.jsx)(i.Input,{id:"create-agent-type","data-testid":"create-agent-type",placeholder:"e.g. code-review",value:s,onChange:a=>t(a.target.value.toLowerCase()),disabled:E,autoComplete:"off","aria-invalid":s.length>0&&!H}),(0,b.jsxs)("p",{className:"text-muted-foreground text-xs",children:["kebab-case, starts with a letter, max 64 chars (matches"," ",(0,b.jsx)("code",{className:"bg-muted rounded px-1",children:"/^[a-z][a-z0-9-]+$/"}),")"]})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsx)(j.Label,{htmlFor:"create-agent-name",children:"Display name"}),(0,b.jsx)(i.Input,{id:"create-agent-name","data-testid":"create-agent-name",placeholder:"e.g. Code Review Agent",value:u,onChange:a=>v(a.target.value),disabled:E})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsx)(j.Label,{htmlFor:"create-agent-description",children:"Description"}),(0,b.jsx)(i.Input,{id:"create-agent-description","data-testid":"create-agent-description",placeholder:"What does this agent do?",value:w,onChange:a=>x(a.target.value),disabled:E})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-2 rounded-md border border-dashed p-3",children:[(0,b.jsx)("p",{className:"text-sm font-medium",children:"Seed first prompt (optional)"}),(0,b.jsx)(j.Label,{htmlFor:"create-agent-prompt-id",children:"Prompt slot id"}),(0,b.jsx)(i.Input,{id:"create-agent-prompt-id","data-testid":"create-agent-prompt-id",value:y,onChange:a=>z(a.target.value),disabled:E,placeholder:"e.g. system, plan.system"}),(0,b.jsx)(j.Label,{htmlFor:"create-agent-prompt-body",children:"Prompt body"}),(0,b.jsx)(k.Textarea,{id:"create-agent-prompt-body","data-testid":"create-agent-prompt-body",value:A,onChange:a=>B(a.target.value),rows:5,className:"font-mono text-xs",disabled:E,placeholder:"System prompt the agent will run with…"})]}),C?(0,b.jsx)(f.Alert,{variant:"destructive","data-testid":"create-agent-error",children:(0,b.jsx)(f.AlertDescription,{children:C})}):null,(0,b.jsx)(h.DialogFooter,{children:(0,b.jsx)(g.Button,{type:"submit",disabled:!I,"data-testid":"create-agent-submit",children:E?"Creating…":"Create agent"})})]})]})]})}a.s(["CreateAgentDialog",()=>o],42428)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_5cbb0e22._.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/presentation/web/components/ui/label.tsx","../../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-label%402.1.7_%40types%2Breact-dom%4019.2.3_%40types%2Breact%4019.2.10__%40types%2Breact%40_511ac9deb435ae46b2843bd1975598a6/node_modules/%40radix-ui/react-label/dist/index.mjs","../../../../../../../src/presentation/web/components/ui/badge.tsx","../../../../../../../src/presentation/web/components/ui/alert.tsx","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/arrow-right.ts","../../../../../../../src/presentation/web/components/ui/dialog.tsx","../../../../../../../src/presentation/web/components/ui/textarea.tsx","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/sparkles.ts","../../../../../../../src/presentation/web/components/onboarding/welcome-banner.tsx","../../../../../../../src/presentation/web/components/agent-editor/agent-list.tsx","../../../../../../../src/presentation/web/components/agent-editor/create-agent-dialog.tsx","../../../../../../../src/presentation/web/app/actions/data%3Aed7f38%20%3Ctext/javascript%3E"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Label as LabelPrimitive } from 'radix-ui';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@/lib/utils';\n\nconst labelVariants = cva(\n 'text-sm leading-none font-medium peer-disabled:cursor-not-allowed peer-disabled:opacity-70'\n);\n\nconst Label = React.forwardRef<\n React.ComponentRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> & VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root ref={ref} className={cn(labelVariants(), className)} {...props} />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n","\"use client\";\n\n// src/label.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Label\";\nvar Label = React.forwardRef((props, forwardedRef) => {\n return /* @__PURE__ */ jsx(\n Primitive.label,\n {\n ...props,\n ref: forwardedRef,\n onMouseDown: (event) => {\n const target = event.target;\n if (target.closest(\"button, input, select, textarea\")) return;\n props.onMouseDown?.(event);\n if (!event.defaultPrevented && event.detail > 1) event.preventDefault();\n }\n }\n );\n});\nLabel.displayName = NAME;\nvar Root = Label;\nexport {\n Label,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@/lib/utils';\n\nconst badgeVariants = cva(\n 'inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-none',\n {\n variants: {\n variant: {\n default: 'border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80',\n secondary:\n 'border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80',\n destructive:\n 'border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80',\n outline: 'text-foreground',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return <div className={cn(badgeVariants({ variant }), className)} {...props} />;\n}\n\nexport { Badge, badgeVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@/lib/utils';\n\nconst alertVariants = cva(\n 'relative w-full rounded-lg border px-4 py-3 text-sm [&>svg]:absolute [&>svg]:top-4 [&>svg]:start-4 [&>svg]:text-foreground [&>svg+div]:translate-y-[-3px] [&>svg~*]:ps-7',\n {\n variants: {\n variant: {\n default: 'bg-background text-foreground',\n destructive:\n 'border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nconst Alert = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>\n>(({ className, variant, ...props }, ref) => (\n <div ref={ref} role=\"alert\" className={cn(alertVariants({ variant }), className)} {...props} />\n));\nAlert.displayName = 'Alert';\n\nconst AlertTitle = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLHeadingElement>>(\n ({ className, ...props }, ref) => (\n <h5\n ref={ref}\n className={cn('mb-1 leading-none font-medium tracking-tight', className)}\n {...props}\n />\n )\n);\nAlertTitle.displayName = 'AlertTitle';\n\nconst AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('text-sm [&_p]:leading-relaxed', className)} {...props} />\n));\nAlertDescription.displayName = 'AlertDescription';\n\nexport { Alert, AlertTitle, AlertDescription };\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M5 12h14', key: '1ays0h' }],\n ['path', { d: 'm12 5 7 7-7 7', key: 'xquz4c' }],\n];\n\n/**\n * @component @name ArrowRight\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/arrow-right\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 ArrowRight = createLucideIcon('arrow-right', __iconNode);\n\nexport default ArrowRight;\n","'use client';\n\nimport * as React from 'react';\nimport { Dialog as DialogPrimitive } from 'radix-ui';\nimport { X } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\nconst Dialog = DialogPrimitive.Root;\n\nconst DialogTrigger = DialogPrimitive.Trigger;\n\nconst DialogPortal = DialogPrimitive.Portal;\n\nconst DialogClose = DialogPrimitive.Close;\n\nconst DialogOverlay = React.forwardRef<\n React.ComponentRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, onClick, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 fixed inset-0 z-50 bg-black/80 duration-150',\n className\n )}\n onClick={(e) => {\n // Prevent overlay clicks from propagating to document-level handlers\n // (e.g. BaseDrawer outside-click) — only the dialog should dismiss.\n e.stopPropagation();\n onClick?.(e);\n }}\n {...props}\n />\n));\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\nconst DialogContent = React.forwardRef<\n React.ComponentRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n 'bg-background data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg duration-150 sm:rounded-lg',\n className\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute end-4 top-4 cursor-pointer rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n));\nDialogContent.displayName = DialogPrimitive.Content.displayName;\n\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('flex flex-col space-y-1.5 text-center sm:text-start', className)}\n {...props}\n />\n);\nDialogHeader.displayName = 'DialogHeader';\n\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)}\n {...props}\n />\n);\nDialogFooter.displayName = 'DialogFooter';\n\nconst DialogTitle = React.forwardRef<\n React.ComponentRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn('text-lg leading-none font-semibold tracking-tight', className)}\n {...props}\n />\n));\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\n\nconst DialogDescription = React.forwardRef<\n React.ComponentRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n));\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogTrigger,\n DialogClose,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n};\n","import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nfunction Textarea({ className, ...props }: React.ComponentProps<'textarea'>) {\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n 'placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input field-sizing-content min-h-[80px] w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Textarea };\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z',\n key: '1s2grr',\n },\n ],\n ['path', { d: 'M20 2v4', key: '1rf3ol' }],\n ['path', { d: 'M22 4h-4', key: 'gwowj6' }],\n ['circle', { cx: '4', cy: '20', r: '2', key: '6kqj1y' }],\n];\n\n/**\n * @component @name Sparkles\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/sparkles\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 Sparkles = createLucideIcon('sparkles', __iconNode);\n\nexport default Sparkles;\n","'use client';\n\n/**\n * WelcomeBanner\n *\n * One-time hint shown at the top of /supervisor and /agents the first time\n * the user lands on each surface. Dismissed via localStorage so it stays\n * out of the way once acknowledged. Pure presentation — no domain calls.\n *\n * `id` is the storage key; pick a stable string per surface (e.g.\n * `onboarding:supervisor:v1`) so we can re-introduce a banner after a\n * refresh by bumping the version segment.\n */\n\nimport { useEffect, useState } from 'react';\nimport Link from 'next/link';\nimport type { Route } from 'next';\nimport { GraduationCap, X } from 'lucide-react';\nimport { Button } from '@/components/ui/button';\n\nconst STORAGE_PREFIX = 'shep:onboarding:';\n\nexport interface WelcomeBannerProps {\n /** Stable storage key suffix (e.g. \"supervisor:v1\"). */\n id: string;\n title: string;\n description: string;\n /** Optional CTA — typically the deep tutorial link. */\n ctaLabel?: string;\n ctaHref?: string;\n /** Force-show in tests/Storybook (ignores localStorage). */\n forceVisible?: boolean;\n}\n\nexport function WelcomeBanner({\n id,\n title,\n description,\n ctaLabel,\n ctaHref,\n forceVisible,\n}: WelcomeBannerProps) {\n const storageKey = `${STORAGE_PREFIX}${id}`;\n // Mounted gate avoids a server/client hydration mismatch: SSR returns null,\n // the effect resolves visibility from localStorage on the client.\n const [mounted, setMounted] = useState(false);\n const [visible, setVisible] = useState(true);\n\n useEffect(() => {\n setMounted(true);\n if (forceVisible) {\n setVisible(true);\n return;\n }\n try {\n const dismissed = window.localStorage.getItem(storageKey);\n setVisible(dismissed !== '1');\n } catch {\n setVisible(true);\n }\n }, [forceVisible, storageKey]);\n\n function dismiss() {\n setVisible(false);\n if (forceVisible) return;\n try {\n window.localStorage.setItem(storageKey, '1');\n } catch {\n // best-effort\n }\n }\n\n if (!mounted || !visible) return null;\n\n return (\n <div\n className=\"bg-muted/40 flex items-start gap-3 rounded-lg border p-4\"\n data-testid={`welcome-banner-${id}`}\n >\n <div className=\"bg-primary/10 text-primary flex h-9 w-9 shrink-0 items-center justify-center rounded-md\">\n <GraduationCap className=\"size-4\" />\n </div>\n <div className=\"flex min-w-0 flex-1 flex-col gap-2\">\n <div>\n <p className=\"text-sm font-medium\">{title}</p>\n <p className=\"text-muted-foreground text-sm\">{description}</p>\n </div>\n {ctaHref && ctaLabel ? (\n <div>\n <Button asChild size=\"sm\" variant=\"outline\">\n <Link href={ctaHref as Route} data-testid={`welcome-banner-${id}-cta`}>\n {ctaLabel}\n </Link>\n </Button>\n </div>\n ) : null}\n </div>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"size-7 shrink-0\"\n onClick={dismiss}\n aria-label=\"Dismiss this hint\"\n data-testid={`welcome-banner-${id}-dismiss`}\n >\n <X className=\"size-4\" />\n </Button>\n </div>\n );\n}\n","'use client';\n\nimport Link from 'next/link';\nimport type { Route } from 'next';\nimport { Bot, ArrowRight, Sparkles } from 'lucide-react';\nimport { Badge } from '@/components/ui/badge';\n\nexport interface AgentListEntry {\n agentType: string;\n promptCount: number;\n overrideCount: number;\n /** True when the entry was created by the user (custom_agents table). */\n isCustom?: boolean;\n /** Friendly display name (custom agents only — built-ins use agentType). */\n displayName?: string;\n}\n\nexport interface AgentListProps {\n agents: AgentListEntry[];\n}\n\nexport function AgentList({ agents }: AgentListProps) {\n if (agents.length === 0) {\n return (\n <div className=\"bg-muted/30 rounded-lg border border-dashed p-6\">\n <p className=\"text-sm font-medium\">No agents registered</p>\n <p className=\"text-muted-foreground text-sm\">\n The built-in prompt registry is empty — register slots in\n <code className=\"bg-muted mx-1 rounded px-1 py-0.5 text-xs\">\n builtin-prompt-registry.ts\n </code>\n to expose agents in this editor.\n </p>\n </div>\n );\n }\n\n return (\n <ul className=\"flex flex-col divide-y rounded-lg border\" data-testid=\"agent-list\">\n {agents.map((agent) => (\n <li\n key={agent.agentType}\n className=\"flex items-center gap-3 px-3 py-2\"\n data-testid={`agent-row-${agent.agentType}`}\n >\n <div className=\"bg-primary/10 text-primary flex h-8 w-8 items-center justify-center rounded-md\">\n {agent.isCustom ? (\n <Sparkles className=\"size-4\" aria-hidden />\n ) : (\n <Bot className=\"size-4\" aria-hidden />\n )}\n </div>\n <div className=\"flex min-w-0 flex-1 flex-col\">\n <div className=\"flex items-center gap-2\">\n <p className=\"truncate text-sm font-medium\">{agent.displayName ?? agent.agentType}</p>\n {agent.isCustom ? (\n <Badge variant=\"secondary\" className=\"shrink-0\">\n Custom\n </Badge>\n ) : null}\n </div>\n <p className=\"text-muted-foreground text-xs\">\n {agent.isCustom ? agent.agentType : null}\n {agent.isCustom ? ' · ' : ''}\n {agent.promptCount} prompt{agent.promptCount === 1 ? '' : 's'}\n {agent.overrideCount > 0\n ? ` · ${agent.overrideCount} override${agent.overrideCount === 1 ? '' : 's'}`\n : ''}\n </p>\n </div>\n <Link\n href={`/agents/${agent.agentType}` as Route}\n className=\"text-primary inline-flex shrink-0 items-center gap-1 text-xs hover:underline\"\n >\n Edit\n <ArrowRight className=\"size-3\" />\n </Link>\n </li>\n ))}\n </ul>\n );\n}\n","'use client';\n\n/**\n * CreateAgentDialog\n *\n * Lets the user spin up a brand-new custom agent type (alongside the\n * built-in `feature-agent` and `supervisor-agent`). The user picks the\n * stable type id, a display name, a description, and optionally seeds the\n * first prompt slot. After save the dialog navigates to the editor for\n * the new agent so the user can author more slots and the graph.\n */\n\nimport { useState, useTransition } from 'react';\nimport { useRouter } from 'next/navigation';\nimport { Plus } from 'lucide-react';\nimport type { Route } from 'next';\nimport { Alert, AlertDescription } from '@/components/ui/alert';\nimport { Button } from '@/components/ui/button';\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from '@/components/ui/dialog';\nimport { Input } from '@/components/ui/input';\nimport { Label } from '@/components/ui/label';\nimport { Textarea } from '@/components/ui/textarea';\nimport { createCustomAgent } from '@/app/actions/custom-agents';\n\nexport interface CreateAgentDialogProps {\n /** Override the create handler — used by tests/Storybook. */\n onCreateOverride?: typeof createCustomAgent;\n /** Force the dialog open (Storybook). */\n initialOpen?: boolean;\n /** Override navigation — used by Storybook to avoid Next router. */\n onNavigateOverride?: (path: string) => void;\n}\n\nconst TYPE_PATTERN = /^[a-z][a-z0-9-]{1,63}$/;\n\nexport function CreateAgentDialog({\n onCreateOverride,\n initialOpen,\n onNavigateOverride,\n}: CreateAgentDialogProps) {\n const router = useRouter();\n const [open, setOpen] = useState(Boolean(initialOpen));\n const [agentType, setAgentType] = useState('');\n const [name, setName] = useState('');\n const [description, setDescription] = useState('');\n const [promptId, setPromptId] = useState('system');\n const [body, setBody] = useState('');\n const [error, setError] = useState<string | null>(null);\n const [isPending, startTransition] = useTransition();\n\n function reset() {\n setAgentType('');\n setName('');\n setDescription('');\n setPromptId('system');\n setBody('');\n setError(null);\n }\n\n const typeValid = TYPE_PATTERN.test(agentType);\n const ready = typeValid && name.trim().length > 0 && description.trim().length > 0 && !isPending;\n\n function handleSubmit(e: React.FormEvent<HTMLFormElement>) {\n e.preventDefault();\n if (!ready) return;\n setError(null);\n startTransition(async () => {\n const fn = onCreateOverride ?? createCustomAgent;\n const result = await fn({\n agentType,\n name,\n description,\n ...(promptId.trim() && body.length > 0\n ? { initialPromptId: promptId, initialPromptBody: body }\n : {}),\n });\n if (!result.ok) {\n setError(result.error ?? 'Failed to create agent');\n return;\n }\n const next = result.agentType ?? agentType;\n reset();\n setOpen(false);\n const path = `/agents/${next}`;\n if (onNavigateOverride) {\n onNavigateOverride(path);\n } else {\n router.push(path as Route);\n }\n });\n }\n\n return (\n <Dialog\n open={open}\n onOpenChange={(next) => {\n setOpen(next);\n if (!next) reset();\n }}\n >\n <DialogTrigger asChild>\n <Button data-testid=\"create-agent-trigger\">\n <Plus className=\"size-4\" />\n New agent\n </Button>\n </DialogTrigger>\n <DialogContent className=\"max-w-xl\" data-testid=\"create-agent-dialog\">\n <DialogHeader>\n <DialogTitle>Create custom agent</DialogTitle>\n <DialogDescription>\n Stand up a new agent type with its own prompt slots and editable graph. Built-in agents\n stay untouched.\n </DialogDescription>\n </DialogHeader>\n\n <form className=\"flex flex-col gap-4\" onSubmit={handleSubmit}>\n <div className=\"flex flex-col gap-2\">\n <Label htmlFor=\"create-agent-type\">Stable type id</Label>\n <Input\n id=\"create-agent-type\"\n data-testid=\"create-agent-type\"\n placeholder=\"e.g. code-review\"\n value={agentType}\n onChange={(e) => setAgentType(e.target.value.toLowerCase())}\n disabled={isPending}\n autoComplete=\"off\"\n aria-invalid={agentType.length > 0 && !typeValid}\n />\n <p className=\"text-muted-foreground text-xs\">\n kebab-case, starts with a letter, max 64 chars (matches{' '}\n <code className=\"bg-muted rounded px-1\">/^[a-z][a-z0-9-]+$/</code>)\n </p>\n </div>\n\n <div className=\"flex flex-col gap-2\">\n <Label htmlFor=\"create-agent-name\">Display name</Label>\n <Input\n id=\"create-agent-name\"\n data-testid=\"create-agent-name\"\n placeholder=\"e.g. Code Review Agent\"\n value={name}\n onChange={(e) => setName(e.target.value)}\n disabled={isPending}\n />\n </div>\n\n <div className=\"flex flex-col gap-2\">\n <Label htmlFor=\"create-agent-description\">Description</Label>\n <Input\n id=\"create-agent-description\"\n data-testid=\"create-agent-description\"\n placeholder=\"What does this agent do?\"\n value={description}\n onChange={(e) => setDescription(e.target.value)}\n disabled={isPending}\n />\n </div>\n\n <div className=\"flex flex-col gap-2 rounded-md border border-dashed p-3\">\n <p className=\"text-sm font-medium\">Seed first prompt (optional)</p>\n <Label htmlFor=\"create-agent-prompt-id\">Prompt slot id</Label>\n <Input\n id=\"create-agent-prompt-id\"\n data-testid=\"create-agent-prompt-id\"\n value={promptId}\n onChange={(e) => setPromptId(e.target.value)}\n disabled={isPending}\n placeholder=\"e.g. system, plan.system\"\n />\n <Label htmlFor=\"create-agent-prompt-body\">Prompt body</Label>\n <Textarea\n id=\"create-agent-prompt-body\"\n data-testid=\"create-agent-prompt-body\"\n value={body}\n onChange={(e) => setBody(e.target.value)}\n rows={5}\n className=\"font-mono text-xs\"\n disabled={isPending}\n placeholder=\"System prompt the agent will run with…\"\n />\n </div>\n\n {error ? (\n <Alert variant=\"destructive\" data-testid=\"create-agent-error\">\n <AlertDescription>{error}</AlertDescription>\n </Alert>\n ) : null}\n\n <DialogFooter>\n <Button type=\"submit\" disabled={!ready} data-testid=\"create-agent-submit\">\n {isPending ? 'Creating…' : 'Create agent'}\n </Button>\n </DialogFooter>\n </form>\n </DialogContent>\n </Dialog>\n );\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"40026dd1e1a296d5b931914f24d562790b5eea6152\":\"createCustomAgent\"},\"src/presentation/web/app/actions/custom-agents.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"40026dd1e1a296d5b931914f24d562790b5eea6152\",callServer,void 0,findSourceMapURL,\"createCustomAgent\");export{$$RSC_SERVER_ACTION_0 as createCustomAgent};"],"names":[],"mappings":"0DAEA,EAAA,EAAA,CAAA,CAAA,QCEA,EAAA,EAAA,CAAA,CAAA,QAGI,EAAQ,EAAA,UAAgB,CAAC,CAAC,EAAO,IACZ,CAAA,EAAA,EAAA,GAAA,AAAG,EACxB,EAAA,SAAS,CAAC,KAAK,CACf,CACE,GAAG,CAAK,CACR,IAAK,EACL,YAAa,AAAC,IACG,AACX,EADiB,MAAM,CAChB,OAAO,CAAC,oCAAoC,CACvD,EAAM,WAAW,GAAG,GAChB,CAAC,EAAM,gBAAgB,EAAI,EAAM,MAAM,CAAG,GAAG,EAAM,cAAc,GACvE,CACF,IAGJ,EAAM,WAAW,CAhBN,EAgBS,oCACT,iCDnBX,EAAA,EAAA,CAAA,CAAA,QAEA,EAAA,EAAA,CAAA,CAAA,QAEA,IAAM,EAAgB,CAAA,EAAA,EAAA,GAAG,AAAH,EACpB,8FAGI,EAAQ,EAAA,UAAgB,CAG5B,CAAC,CAAE,WAAS,CAAE,GAAG,EAAO,CAAE,IAC1B,CAAA,EAAA,EAAA,GAAA,EAAC,EAAe,IAAI,CAAA,CAAC,IAAK,EAAK,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,IAAiB,GAAa,GAAG,CAAK,IAErF,EAAM,WAAW,CAAG,EAAe,IAAI,CAAC,WAAW,wEEjBnD,EAAA,EAAA,CAAA,CAAA,QAEA,EAAA,EAAA,CAAA,CAAA,QAEA,IAAM,EAAgB,CAAA,EAAA,EAAA,GAAA,AAAG,EACvB,uKACA,CACE,SAAU,CACR,QAAS,CACP,QAAS,mFACT,UACE,kFACF,YACE,+FACF,QAAS,iBACX,CACF,EACA,gBAAiB,CACf,QAAS,SACX,CACF,GAOF,SAAS,EAAM,WAAE,CAAS,SAAE,CAAO,CAAE,GAAG,EAAmB,EACzD,MAAO,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAI,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,EAAc,SAAE,CAAQ,GAAI,GAAa,GAAG,CAAK,EAC7E,iEC9BA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QAEA,EAAA,EAAA,CAAA,CAAA,QAEA,IAAM,EAAgB,CAAA,EAAA,EAAA,GAAA,AAAG,EACvB,2KACA,CACE,SAAU,CACR,QAAS,CACP,QAAS,gCACT,YACE,yFACJ,CACF,EACA,gBAAiB,CACf,QAAS,SACX,CACF,GAGI,EAAQ,EAAA,UAAgB,CAG5B,CAAC,WAAE,CAAS,SAAE,CAAO,CAAE,GAAG,EAAO,CAAE,IACnC,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAI,IAAK,EAAK,KAAK,QAAQ,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,EAAc,SAAE,CAAQ,GAAI,GAAa,GAAG,CAAK,IAE7F,EAAM,WAAW,CAAG,QAED,AASnB,EATmB,UAAgB,CACjC,CAAC,WAAE,CAAS,CAAE,GAAG,EAAO,CAAE,IACxB,CAAA,EAAA,EAAA,GAAA,EAAC,KAAA,CACC,IAAK,EACL,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,+CAAgD,GAC7D,GAAG,CAAK,IAIJ,WAAW,CAAG,aAEzB,IAAM,EAAmB,EAAA,UAAgB,CAGvC,CAAC,CAAE,WAAS,CAAE,GAAG,EAAO,CAAE,IAC1B,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAI,IAAK,EAAK,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,gCAAiC,GAAa,GAAG,CAAK,IAErF,EAAiB,WAAW,CAAG,0FC3B/B,CAAA,CAAA,CAAA,CAAA,AAAM,CAAN,CAAM,CAAA,EAAa,CAAA,CAAA,CAAA,CAAA,CAAA,AAAb,CAAa,AAAb,CAAa,AAAb,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAhBA,CAClC,AAeiD,CAfhD,AAegD,CAfhD,AAegD,CAfhD,AAegD,CAfhD,AAegD,CAfhD,AAegD,CAfhD,AAegD,CAfhD,AAegD,CAfhD,AAAQ,AAewC,CAfxC,AAAE,AAesC,CAAU,CAAA,AAf7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAY,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CACzC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAQ,CAAA,AAAE,EAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAiB,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAChD,8ECJA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QAEA,EAAA,EAAA,CAAA,CAAA,QAEA,IAAM,EAAS,EAAA,MAAe,CAAC,IAAI,CAE7B,EAAgB,EAAA,MAAe,CAAC,OAAO,CAEvC,EAAe,EAAA,MAAe,CAAC,MAAM,CAErC,EAAc,EAAA,MAAe,CAAC,KAAK,CAEnC,EAAgB,EAAA,UAAgB,CAGpC,CAAC,WAAE,CAAS,SAAE,CAAO,CAAE,GAAG,EAAO,CAAE,IACnC,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,MAAe,CAAC,OAAO,CAAA,CACtB,IAAK,EACL,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EACX,sKACA,GAEF,QAAS,AAAC,IAGR,EAAE,eAAe,GACjB,IAAU,EACZ,EACC,GAAG,CAAK,IAGb,EAAc,WAAW,CAAG,EAAA,MAAe,CAAC,OAAO,CAAC,WAAW,CAE/D,IAAM,EAAgB,EAAA,UAAgB,CAGpC,CAAC,WAAE,CAAS,UAAE,CAAQ,CAAE,GAAG,EAAO,CAAE,IACpC,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,WACC,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAA,GACD,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,MAAe,CAAC,OAAO,CAAA,CACtB,IAAK,EACL,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EACX,sVACA,GAED,GAAG,CAAK,WAER,EACD,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,MAAe,CAAC,KAAK,CAAA,CAAC,UAAU,uSAC/B,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAC,CAAA,CAAC,UAAU,YACb,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAU,mBAAU,oBAKlC,EAAc,WAAW,CAAG,EAAA,MAAe,CAAC,OAAO,CAAC,WAAW,CAE/D,IAAM,EAAe,CAAC,WAAE,CAAS,CAAE,GAAG,EAA6C,GACjF,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CACC,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,sDAAuD,GACpE,GAAG,CAAK,GAGb,EAAa,WAAW,CAAG,eAE3B,IAAM,EAAe,CAAC,CAAE,WAAS,CAAE,GAAG,EAA6C,GACjF,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CACC,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,gEAAiE,GAC9E,GAAG,CAAK,GAGb,EAAa,WAAW,CAAG,eAE3B,IAAM,EAAc,EAAA,UAAgB,CAGlC,CAAC,CAAE,WAAS,CAAE,GAAG,EAAO,CAAE,IAC1B,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,MAAe,CAAC,KAAK,CAAA,CACpB,IAAK,EACL,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,oDAAqD,GAClE,GAAG,CAAK,IAGb,EAAY,WAAW,CAAG,EAAA,MAAe,CAAC,KAAK,CAAC,WAAW,CAE3D,IAAM,EAAoB,EAAA,UAAgB,CAGxC,CAAC,WAAE,CAAS,CAAE,GAAG,EAAO,CAAE,IAC1B,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,MAAe,CAAC,WAAW,CAAA,CAC1B,IAAK,EACL,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,gCAAiC,GAC9C,GAAG,CAAK,IAGb,EAAkB,WAAW,CAAG,EAAA,MAAe,CAAC,WAAW,CAAC,WAAW,0NCjGvE,EAAA,EAAA,CAAA,CAAA,QAEA,SAAS,EAAS,WAAE,CAAS,CAAE,GAAG,EAAyC,EACzE,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,WAAA,CACC,YAAU,WACV,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EACX,oWACA,gFACA,yGACA,GAED,GAAG,CAAK,EAGf,kDCUA,CAAA,CAAA,CAAA,CAAA,AAAM,CAAN,CAAM,CAAA,EAAW,CAAA,CAAA,CAAX,AAAW,CAAX,AAAW,CAAX,AAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAxBE,CAClC,AAuB4C,CAtB1C,AAsB0C,CAtB1C,AAsB0C,CAtB1C,AAsB0C,CAtB1C,AAsB0C,CAtB1C,AAsB0C,CAtB1C,AAsB0C,CAtB1C,AAsB0C,CArB1C,AAqB0C,CApBxC,AAoBwC,CApBxC,AAoBkD,CAAA,AApB/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACH,GAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAET,CACA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAQ,CAAA,AAAE,EAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAW,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CACxC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAQ,CAAA,AAAE,EAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAY,CAAA,CAAA,CAAA,CAAK,AAAL,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CACzC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAU,CAAE,CAAA,CAAA,CAAA,AAAI,GAAA,CAAA,AAAK,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAM,AAAN,CAAM,CAAA,AAAG,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,AAAK,QAAA,CAAU,CAAA,CACzD,2ECAA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QAEA,EAAA,EAAA,CAAA,CAAA,QAAA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QAgBO,SAAS,EAAc,IAC5B,CAAE,OACF,CAAK,aACL,CAAW,UACX,CAAQ,SACR,CAAO,cACP,CAAY,CACO,EACnB,IAAM,EAAa,GAAG,gBAAiB,GAAI,CAGrC,CAAC,EAAS,EAAW,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,GAAC,GACjC,CAAC,EAAS,EAAW,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,GAAC,UAEvC,CAAA,EAAA,EAAA,SAAA,AAAS,EAAC,KAER,GADA,GAAW,GACP,EAAc,YAChB,GAAW,GAGb,GAAI,CACF,IAAM,EAAY,OAAO,YAAY,CAAC,OAAO,CAAC,GAC9C,EAAyB,MAAd,EACb,CAAE,KAAM,CACN,GAAW,EACb,CACF,EAAG,CAAC,EAAc,EAAW,EAYxB,AAAD,GAAa,GAGf,CAAA,EAAA,EAAA,AAHc,CAAU,GAGxB,EAAC,MAAA,CACC,UAAU,2DACV,cAAa,CAAC,eAAe,EAAE,EAAA,CAAI,WAEnC,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAI,UAAU,mGACb,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,aAAa,CAAA,CAAC,UAAU,aAE3B,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,+CACb,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,WACC,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAE,UAAU,+BAAuB,IACpC,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAE,UAAU,yCAAiC,OAE/C,GAAW,EACV,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,UACC,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,MAAM,CAAA,CAAC,OAAO,CAAA,CAAA,EAAC,KAAK,KAAK,QAAQ,mBAChC,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,OAAI,CAAA,CAAC,KAAM,EAAkB,cAAa,CAAC,eAAe,EAAE,EAAG,IAAI,CAAC,UAClE,QAIL,QAEN,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,MAAM,CAAA,CACL,QAAQ,QACR,KAAK,OACL,UAAU,kBACV,QAvCN,CAuCe,QAvCN,EAEP,GADA,GAAW,IACP,EACJ,GAAI,CACF,OAAO,CAFS,WAEG,CAAC,OAAO,CAAC,EAAY,IAC1C,CAAE,KAAM,CAER,CACF,EAgCM,aAAW,oBACX,cAAa,CAAC,eAAe,EAAE,EAAG,QAAQ,CAAC,UAE3C,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAC,CAAA,CAAC,UAAU,gBAjCc,IAqCnC,yEC3GA,EAAA,EAAA,CAAA,CAAA,QAEA,EAAA,EAAA,CAAA,CAAA,QAAA,EAAA,EAAA,CAAA,CAAA,QAAA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QAgBO,SAAS,EAAU,QAAE,CAAM,CAAkB,SAClD,AAAsB,GAAG,CAArB,EAAO,MAAM,CAEb,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,4DACb,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAE,UAAU,+BAAsB,yBACnC,CAAA,EAAA,EAAA,IAAA,EAAC,IAAA,CAAE,UAAU,0CAAgC,4DAE3C,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAU,qDAA4C,+BAErD,yCAQb,CAAA,EAAA,EAAA,GAAA,EAAC,KAAA,CAAG,UAAU,2CAA2C,cAAY,sBAClE,EAAO,GAAG,CAAC,AAAC,GACX,CAAA,EAAA,EAAA,IAAA,EAAC,KAAA,CAEC,UAAU,oCACV,cAAa,CAAC,UAAU,EAAE,EAAM,SAAS,CAAA,CAAE,WAE3C,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAI,UAAU,0FACZ,EAAM,QAAQ,CACb,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,QAAQ,CAAA,CAAC,UAAU,SAAS,aAAW,CAAA,CAAA,IAExC,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,GAAG,CAAA,CAAC,UAAU,SAAS,aAAW,CAAA,CAAA,MAGvC,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,yCACb,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,oCACb,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAE,UAAU,wCAAgC,EAAM,WAAW,EAAI,EAAM,SAAS,GAChF,EAAM,QAAQ,CACb,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,KAAK,CAAA,CAAC,QAAQ,YAAY,UAAU,oBAAW,WAG9C,QAEN,CAAA,EAAA,EAAA,IAAA,EAAC,IAAA,CAAE,UAAU,0CACV,EAAM,QAAQ,CAAG,EAAM,SAAS,CAAG,KACnC,EAAM,QAAQ,CAAG,MAAQ,GACzB,EAAM,WAAW,CAAC,UAA8B,IAAtB,EAAM,WAAW,CAAS,GAAK,IACzD,EAAM,aAAa,CAAG,EACnB,CAAC,MAAG,EAAE,EAAM,aAAa,CAAC,SAAS,EAA0B,IAAxB,EAAM,aAAa,CAAS,GAAK,IAAA,CAAK,CAC3E,SAGR,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,OAAI,CAAA,CACH,KAAM,CAAC,QAAQ,EAAE,EAAM,SAAS,CAAA,CAAE,CAClC,UAAU,yFACX,OAEC,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,UAAU,CAAA,CAAC,UAAU,gBAlCnB,EAAM,SAAS,IAwC9B,oECrEA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,QAEA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QASA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QC7B2M,EAAA,EAAA,CAAA,CAAA,QAAsG,IAAM,EAAmC,CAAA,EAAA,EAAA,iBAAb,IAAa,AAAqB,EAAC,KAAxB,wCAAqE,EAAA,UAAU,CAAC,KAAK,EAAE,EAAA,gBAAgB,CAAC,qBDyC1b,EAAe,yBAEd,SAAS,EAAkB,kBAChC,CAAgB,aAChB,CAAW,oBACX,CAAkB,CACK,EACvB,IAAM,EAAS,CAAA,EAAA,EAAA,SAAA,AAAS,IAClB,CAAC,EAAM,EAAQ,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,GAAC,CAAQ,GACnC,CAAC,EAAW,EAAa,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAC,IACrC,CAAC,EAAM,EAAQ,CAAG,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,IAC3B,CAAC,EAAa,EAAe,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAC,IACzC,CAAC,EAAU,EAAY,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAC,UACnC,CAAC,EAAM,EAAQ,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAC,IAC3B,CAAC,EAAO,EAAS,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAgB,MAC5C,CAAC,EAAW,EAAgB,CAAG,CAAA,EAAA,EAAA,aAAA,AAAa,IAElD,SAAS,IACP,EAAa,IACb,EAAQ,IACR,EAAe,IACf,EAAY,UACZ,EAAQ,IACR,EAAS,KACX,CAEA,IAAM,EAAY,EAAa,IAAI,CAAC,GAC9B,EAAQ,GAAa,EAAK,IAAI,GAAG,MAAM,CAAG,GAAK,EAAY,IAAI,GAAG,MAAM,CAAG,GAAK,CAAC,EAgCvF,MACE,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,MAAM,CAAA,CACL,KAAM,EACN,aAAc,AAAC,IACb,EAAQ,GACJ,AAAC,GAAM,GACb,YAEA,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,aAAa,CAAA,CAAC,OAAO,CAAA,CAAA,WACpB,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,MAAM,CAAA,CAAC,cAAY,iCAClB,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,IAAI,CAAA,CAAC,UAAU,WAAW,iBAI/B,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,aAAa,CAAA,CAAC,UAAU,WAAW,cAAY,gCAC9C,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,YAAY,CAAA,WACX,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,WAAW,CAAA,UAAC,wBACb,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,iBAAiB,CAAA,UAAC,+GAMrB,CAAA,EAAA,EAAA,IAAA,EAAC,OAAA,CAAK,UAAU,sBAAsB,SArD5C,CAqDsD,QArD7C,AAAa,CAAmC,EACvD,EAAE,cAAc,GACX,IACL,EAAS,CADG,KAEZ,EAAgB,UAEd,IAAM,EAAS,MAAM,CADV,GAAoB,CAAA,EACP,WACtB,OACA,cACA,EACA,GAAI,EAAS,IAAI,IAAM,EAAK,MAAM,CAAG,EACjC,CAAE,gBAAiB,EAAU,kBAAmB,CAAK,EACrD,CAAC,CAAC,AACR,GACA,GAAI,CAAC,EAAO,EAAE,CAAE,YACd,EAAS,EAAO,KAAK,EAAI,0BAG3B,IAAM,EAAO,EAAO,SAAS,EAAI,EACjC,IACA,GAAQ,GACR,IAAM,EAAO,CAAC,QAAQ,EAAE,EAAA,CAAM,CAC1B,EACF,EAAmB,GAEnB,EAAO,IAAI,CAAC,EAEhB,GACF,CAN4B,WAgCpB,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,gCACb,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,KAAK,CAAA,CAAC,QAAQ,6BAAoB,mBACnC,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,KAAK,CAAA,CACJ,GAAG,oBACH,cAAY,oBACZ,YAAY,mBACZ,MAAO,EACP,SAAU,AAAC,GAAM,EAAa,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,IACxD,SAAU,EACV,aAAa,MACb,eAAc,EAAU,MAAM,CAAG,GAAK,CAAC,IAEzC,CAAA,EAAA,EAAA,IAAA,EAAC,IAAA,CAAE,UAAU,0CAAgC,0DACa,IACxD,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAU,iCAAwB,wBAA0B,UAItE,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,gCACb,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,KAAK,CAAA,CAAC,QAAQ,6BAAoB,iBACnC,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,KAAK,CAAA,CACJ,GAAG,oBACH,cAAY,oBACZ,YAAY,yBACZ,MAAO,EACP,SAAU,AAAC,GAAM,EAAQ,EAAE,MAAM,CAAC,KAAK,EACvC,SAAU,OAId,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,gCACb,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,KAAK,CAAA,CAAC,QAAQ,oCAA2B,gBAC1C,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,KAAK,CAAA,CACJ,GAAG,2BACH,cAAY,2BACZ,YAAY,2BACZ,MAAO,EACP,SAAU,AAAC,GAAM,EAAe,EAAE,MAAM,CAAC,KAAK,EAC9C,SAAU,OAId,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,oEACb,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAE,UAAU,+BAAsB,iCACnC,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,KAAK,CAAA,CAAC,QAAQ,kCAAyB,mBACxC,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,KAAK,CAAA,CACJ,GAAG,yBACH,cAAY,yBACZ,MAAO,EACP,SAAU,AAAC,GAAM,EAAY,EAAE,MAAM,CAAC,KAAK,EAC3C,SAAU,EACV,YAAY,6BAEd,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,KAAK,CAAA,CAAC,QAAQ,oCAA2B,gBAC1C,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,QAAQ,CAAA,CACP,GAAG,2BACH,cAAY,2BACZ,MAAO,EACP,SAAU,AAAC,GAAM,EAAQ,EAAE,MAAM,CAAC,KAAK,EACvC,KAAM,EACN,UAAU,oBACV,SAAU,EACV,YAAY,8CAIf,EACC,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,KAAK,CAAA,CAAC,QAAQ,cAAc,cAAY,8BACvC,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,gBAAgB,CAAA,UAAE,MAEnB,KAEJ,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,YAAY,CAAA,UACX,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,MAAM,CAAA,CAAC,KAAK,SAAS,SAAU,CAAC,EAAO,cAAY,+BACjD,EAAY,YAAc,2BAOzC","ignoreList":[1,4,7]}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/presentation/web/components/ui/label.tsx","../../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-label%402.1.7_%40types%2Breact-dom%4019.2.3_%40types%2Breact%4019.2.10__%40types%2Breact%40_511ac9deb435ae46b2843bd1975598a6/node_modules/%40radix-ui/react-label/dist/index.mjs","../../../../../../../src/presentation/web/components/ui/badge.tsx","../../../../../../../src/presentation/web/components/ui/alert.tsx","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/arrow-right.ts","../../../../../../../src/presentation/web/components/ui/dialog.tsx","../../../../../../../src/presentation/web/components/ui/textarea.tsx","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/sparkles.ts","../../../../../../../src/presentation/web/components/onboarding/welcome-banner.tsx","../../../../../../../src/presentation/web/components/agent-editor/agent-list.tsx","../../../../../../../src/presentation/web/components/agent-editor/create-agent-dialog.tsx","../../../../../../../src/presentation/web/app/actions/data%3Af04027%20%3Ctext/javascript%3E"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Label as LabelPrimitive } from 'radix-ui';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@/lib/utils';\n\nconst labelVariants = cva(\n 'text-sm leading-none font-medium peer-disabled:cursor-not-allowed peer-disabled:opacity-70'\n);\n\nconst Label = React.forwardRef<\n React.ComponentRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> & VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root ref={ref} className={cn(labelVariants(), className)} {...props} />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n","\"use client\";\n\n// src/label.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Label\";\nvar Label = React.forwardRef((props, forwardedRef) => {\n return /* @__PURE__ */ jsx(\n Primitive.label,\n {\n ...props,\n ref: forwardedRef,\n onMouseDown: (event) => {\n const target = event.target;\n if (target.closest(\"button, input, select, textarea\")) return;\n props.onMouseDown?.(event);\n if (!event.defaultPrevented && event.detail > 1) event.preventDefault();\n }\n }\n );\n});\nLabel.displayName = NAME;\nvar Root = Label;\nexport {\n Label,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@/lib/utils';\n\nconst badgeVariants = cva(\n 'inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-none',\n {\n variants: {\n variant: {\n default: 'border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80',\n secondary:\n 'border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80',\n destructive:\n 'border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80',\n outline: 'text-foreground',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return <div className={cn(badgeVariants({ variant }), className)} {...props} />;\n}\n\nexport { Badge, badgeVariants };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@/lib/utils';\n\nconst alertVariants = cva(\n 'relative w-full rounded-lg border px-4 py-3 text-sm [&>svg]:absolute [&>svg]:top-4 [&>svg]:start-4 [&>svg]:text-foreground [&>svg+div]:translate-y-[-3px] [&>svg~*]:ps-7',\n {\n variants: {\n variant: {\n default: 'bg-background text-foreground',\n destructive:\n 'border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nconst Alert = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>\n>(({ className, variant, ...props }, ref) => (\n <div ref={ref} role=\"alert\" className={cn(alertVariants({ variant }), className)} {...props} />\n));\nAlert.displayName = 'Alert';\n\nconst AlertTitle = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLHeadingElement>>(\n ({ className, ...props }, ref) => (\n <h5\n ref={ref}\n className={cn('mb-1 leading-none font-medium tracking-tight', className)}\n {...props}\n />\n )\n);\nAlertTitle.displayName = 'AlertTitle';\n\nconst AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('text-sm [&_p]:leading-relaxed', className)} {...props} />\n));\nAlertDescription.displayName = 'AlertDescription';\n\nexport { Alert, AlertTitle, AlertDescription };\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M5 12h14', key: '1ays0h' }],\n ['path', { d: 'm12 5 7 7-7 7', key: 'xquz4c' }],\n];\n\n/**\n * @component @name ArrowRight\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/arrow-right\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 ArrowRight = createLucideIcon('arrow-right', __iconNode);\n\nexport default ArrowRight;\n","'use client';\n\nimport * as React from 'react';\nimport { Dialog as DialogPrimitive } from 'radix-ui';\nimport { X } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\nconst Dialog = DialogPrimitive.Root;\n\nconst DialogTrigger = DialogPrimitive.Trigger;\n\nconst DialogPortal = DialogPrimitive.Portal;\n\nconst DialogClose = DialogPrimitive.Close;\n\nconst DialogOverlay = React.forwardRef<\n React.ComponentRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, onClick, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 fixed inset-0 z-50 bg-black/80 duration-150',\n className\n )}\n onClick={(e) => {\n // Prevent overlay clicks from propagating to document-level handlers\n // (e.g. BaseDrawer outside-click) — only the dialog should dismiss.\n e.stopPropagation();\n onClick?.(e);\n }}\n {...props}\n />\n));\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\nconst DialogContent = React.forwardRef<\n React.ComponentRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n 'bg-background data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg duration-150 sm:rounded-lg',\n className\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute end-4 top-4 cursor-pointer rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n));\nDialogContent.displayName = DialogPrimitive.Content.displayName;\n\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('flex flex-col space-y-1.5 text-center sm:text-start', className)}\n {...props}\n />\n);\nDialogHeader.displayName = 'DialogHeader';\n\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)}\n {...props}\n />\n);\nDialogFooter.displayName = 'DialogFooter';\n\nconst DialogTitle = React.forwardRef<\n React.ComponentRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn('text-lg leading-none font-semibold tracking-tight', className)}\n {...props}\n />\n));\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\n\nconst DialogDescription = React.forwardRef<\n React.ComponentRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n));\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogTrigger,\n DialogClose,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n};\n","import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nfunction Textarea({ className, ...props }: React.ComponentProps<'textarea'>) {\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n 'placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input field-sizing-content min-h-[80px] w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Textarea };\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z',\n key: '1s2grr',\n },\n ],\n ['path', { d: 'M20 2v4', key: '1rf3ol' }],\n ['path', { d: 'M22 4h-4', key: 'gwowj6' }],\n ['circle', { cx: '4', cy: '20', r: '2', key: '6kqj1y' }],\n];\n\n/**\n * @component @name Sparkles\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/sparkles\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 Sparkles = createLucideIcon('sparkles', __iconNode);\n\nexport default Sparkles;\n","'use client';\n\n/**\n * WelcomeBanner\n *\n * One-time hint shown at the top of /supervisor and /agents the first time\n * the user lands on each surface. Dismissed via localStorage so it stays\n * out of the way once acknowledged. Pure presentation — no domain calls.\n *\n * `id` is the storage key; pick a stable string per surface (e.g.\n * `onboarding:supervisor:v1`) so we can re-introduce a banner after a\n * refresh by bumping the version segment.\n */\n\nimport { useEffect, useState } from 'react';\nimport Link from 'next/link';\nimport type { Route } from 'next';\nimport { GraduationCap, X } from 'lucide-react';\nimport { Button } from '@/components/ui/button';\n\nconst STORAGE_PREFIX = 'shep:onboarding:';\n\nexport interface WelcomeBannerProps {\n /** Stable storage key suffix (e.g. \"supervisor:v1\"). */\n id: string;\n title: string;\n description: string;\n /** Optional CTA — typically the deep tutorial link. */\n ctaLabel?: string;\n ctaHref?: string;\n /** Force-show in tests/Storybook (ignores localStorage). */\n forceVisible?: boolean;\n}\n\nexport function WelcomeBanner({\n id,\n title,\n description,\n ctaLabel,\n ctaHref,\n forceVisible,\n}: WelcomeBannerProps) {\n const storageKey = `${STORAGE_PREFIX}${id}`;\n // Mounted gate avoids a server/client hydration mismatch: SSR returns null,\n // the effect resolves visibility from localStorage on the client.\n const [mounted, setMounted] = useState(false);\n const [visible, setVisible] = useState(true);\n\n useEffect(() => {\n setMounted(true);\n if (forceVisible) {\n setVisible(true);\n return;\n }\n try {\n const dismissed = window.localStorage.getItem(storageKey);\n setVisible(dismissed !== '1');\n } catch {\n setVisible(true);\n }\n }, [forceVisible, storageKey]);\n\n function dismiss() {\n setVisible(false);\n if (forceVisible) return;\n try {\n window.localStorage.setItem(storageKey, '1');\n } catch {\n // best-effort\n }\n }\n\n if (!mounted || !visible) return null;\n\n return (\n <div\n className=\"bg-muted/40 flex items-start gap-3 rounded-lg border p-4\"\n data-testid={`welcome-banner-${id}`}\n >\n <div className=\"bg-primary/10 text-primary flex h-9 w-9 shrink-0 items-center justify-center rounded-md\">\n <GraduationCap className=\"size-4\" />\n </div>\n <div className=\"flex min-w-0 flex-1 flex-col gap-2\">\n <div>\n <p className=\"text-sm font-medium\">{title}</p>\n <p className=\"text-muted-foreground text-sm\">{description}</p>\n </div>\n {ctaHref && ctaLabel ? (\n <div>\n <Button asChild size=\"sm\" variant=\"outline\">\n <Link href={ctaHref as Route} data-testid={`welcome-banner-${id}-cta`}>\n {ctaLabel}\n </Link>\n </Button>\n </div>\n ) : null}\n </div>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"size-7 shrink-0\"\n onClick={dismiss}\n aria-label=\"Dismiss this hint\"\n data-testid={`welcome-banner-${id}-dismiss`}\n >\n <X className=\"size-4\" />\n </Button>\n </div>\n );\n}\n","'use client';\n\nimport Link from 'next/link';\nimport type { Route } from 'next';\nimport { Bot, ArrowRight, Sparkles } from 'lucide-react';\nimport { Badge } from '@/components/ui/badge';\n\nexport interface AgentListEntry {\n agentType: string;\n promptCount: number;\n overrideCount: number;\n /** True when the entry was created by the user (custom_agents table). */\n isCustom?: boolean;\n /** Friendly display name (custom agents only — built-ins use agentType). */\n displayName?: string;\n}\n\nexport interface AgentListProps {\n agents: AgentListEntry[];\n}\n\nexport function AgentList({ agents }: AgentListProps) {\n if (agents.length === 0) {\n return (\n <div className=\"bg-muted/30 rounded-lg border border-dashed p-6\">\n <p className=\"text-sm font-medium\">No agents registered</p>\n <p className=\"text-muted-foreground text-sm\">\n The built-in prompt registry is empty — register slots in\n <code className=\"bg-muted mx-1 rounded px-1 py-0.5 text-xs\">\n builtin-prompt-registry.ts\n </code>\n to expose agents in this editor.\n </p>\n </div>\n );\n }\n\n return (\n <ul className=\"flex flex-col divide-y rounded-lg border\" data-testid=\"agent-list\">\n {agents.map((agent) => (\n <li\n key={agent.agentType}\n className=\"flex items-center gap-3 px-3 py-2\"\n data-testid={`agent-row-${agent.agentType}`}\n >\n <div className=\"bg-primary/10 text-primary flex h-8 w-8 items-center justify-center rounded-md\">\n {agent.isCustom ? (\n <Sparkles className=\"size-4\" aria-hidden />\n ) : (\n <Bot className=\"size-4\" aria-hidden />\n )}\n </div>\n <div className=\"flex min-w-0 flex-1 flex-col\">\n <div className=\"flex items-center gap-2\">\n <p className=\"truncate text-sm font-medium\">{agent.displayName ?? agent.agentType}</p>\n {agent.isCustom ? (\n <Badge variant=\"secondary\" className=\"shrink-0\">\n Custom\n </Badge>\n ) : null}\n </div>\n <p className=\"text-muted-foreground text-xs\">\n {agent.isCustom ? agent.agentType : null}\n {agent.isCustom ? ' · ' : ''}\n {agent.promptCount} prompt{agent.promptCount === 1 ? '' : 's'}\n {agent.overrideCount > 0\n ? ` · ${agent.overrideCount} override${agent.overrideCount === 1 ? '' : 's'}`\n : ''}\n </p>\n </div>\n <Link\n href={`/agents/${agent.agentType}` as Route}\n className=\"text-primary inline-flex shrink-0 items-center gap-1 text-xs hover:underline\"\n >\n Edit\n <ArrowRight className=\"size-3\" />\n </Link>\n </li>\n ))}\n </ul>\n );\n}\n","'use client';\n\n/**\n * CreateAgentDialog\n *\n * Lets the user spin up a brand-new custom agent type (alongside the\n * built-in `feature-agent` and `supervisor-agent`). The user picks the\n * stable type id, a display name, a description, and optionally seeds the\n * first prompt slot. After save the dialog navigates to the editor for\n * the new agent so the user can author more slots and the graph.\n */\n\nimport { useState, useTransition } from 'react';\nimport { useRouter } from 'next/navigation';\nimport { Plus } from 'lucide-react';\nimport type { Route } from 'next';\nimport { Alert, AlertDescription } from '@/components/ui/alert';\nimport { Button } from '@/components/ui/button';\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from '@/components/ui/dialog';\nimport { Input } from '@/components/ui/input';\nimport { Label } from '@/components/ui/label';\nimport { Textarea } from '@/components/ui/textarea';\nimport { createCustomAgent } from '@/app/actions/custom-agents';\n\nexport interface CreateAgentDialogProps {\n /** Override the create handler — used by tests/Storybook. */\n onCreateOverride?: typeof createCustomAgent;\n /** Force the dialog open (Storybook). */\n initialOpen?: boolean;\n /** Override navigation — used by Storybook to avoid Next router. */\n onNavigateOverride?: (path: string) => void;\n}\n\nconst TYPE_PATTERN = /^[a-z][a-z0-9-]{1,63}$/;\n\nexport function CreateAgentDialog({\n onCreateOverride,\n initialOpen,\n onNavigateOverride,\n}: CreateAgentDialogProps) {\n const router = useRouter();\n const [open, setOpen] = useState(Boolean(initialOpen));\n const [agentType, setAgentType] = useState('');\n const [name, setName] = useState('');\n const [description, setDescription] = useState('');\n const [promptId, setPromptId] = useState('system');\n const [body, setBody] = useState('');\n const [error, setError] = useState<string | null>(null);\n const [isPending, startTransition] = useTransition();\n\n function reset() {\n setAgentType('');\n setName('');\n setDescription('');\n setPromptId('system');\n setBody('');\n setError(null);\n }\n\n const typeValid = TYPE_PATTERN.test(agentType);\n const ready = typeValid && name.trim().length > 0 && description.trim().length > 0 && !isPending;\n\n function handleSubmit(e: React.FormEvent<HTMLFormElement>) {\n e.preventDefault();\n if (!ready) return;\n setError(null);\n startTransition(async () => {\n const fn = onCreateOverride ?? createCustomAgent;\n const result = await fn({\n agentType,\n name,\n description,\n ...(promptId.trim() && body.length > 0\n ? { initialPromptId: promptId, initialPromptBody: body }\n : {}),\n });\n if (!result.ok) {\n setError(result.error ?? 'Failed to create agent');\n return;\n }\n const next = result.agentType ?? agentType;\n reset();\n setOpen(false);\n const path = `/agents/${next}`;\n if (onNavigateOverride) {\n onNavigateOverride(path);\n } else {\n router.push(path as Route);\n }\n });\n }\n\n return (\n <Dialog\n open={open}\n onOpenChange={(next) => {\n setOpen(next);\n if (!next) reset();\n }}\n >\n <DialogTrigger asChild>\n <Button data-testid=\"create-agent-trigger\">\n <Plus className=\"size-4\" />\n New agent\n </Button>\n </DialogTrigger>\n <DialogContent className=\"max-w-xl\" data-testid=\"create-agent-dialog\">\n <DialogHeader>\n <DialogTitle>Create custom agent</DialogTitle>\n <DialogDescription>\n Stand up a new agent type with its own prompt slots and editable graph. Built-in agents\n stay untouched.\n </DialogDescription>\n </DialogHeader>\n\n <form className=\"flex flex-col gap-4\" onSubmit={handleSubmit}>\n <div className=\"flex flex-col gap-2\">\n <Label htmlFor=\"create-agent-type\">Stable type id</Label>\n <Input\n id=\"create-agent-type\"\n data-testid=\"create-agent-type\"\n placeholder=\"e.g. code-review\"\n value={agentType}\n onChange={(e) => setAgentType(e.target.value.toLowerCase())}\n disabled={isPending}\n autoComplete=\"off\"\n aria-invalid={agentType.length > 0 && !typeValid}\n />\n <p className=\"text-muted-foreground text-xs\">\n kebab-case, starts with a letter, max 64 chars (matches{' '}\n <code className=\"bg-muted rounded px-1\">/^[a-z][a-z0-9-]+$/</code>)\n </p>\n </div>\n\n <div className=\"flex flex-col gap-2\">\n <Label htmlFor=\"create-agent-name\">Display name</Label>\n <Input\n id=\"create-agent-name\"\n data-testid=\"create-agent-name\"\n placeholder=\"e.g. Code Review Agent\"\n value={name}\n onChange={(e) => setName(e.target.value)}\n disabled={isPending}\n />\n </div>\n\n <div className=\"flex flex-col gap-2\">\n <Label htmlFor=\"create-agent-description\">Description</Label>\n <Input\n id=\"create-agent-description\"\n data-testid=\"create-agent-description\"\n placeholder=\"What does this agent do?\"\n value={description}\n onChange={(e) => setDescription(e.target.value)}\n disabled={isPending}\n />\n </div>\n\n <div className=\"flex flex-col gap-2 rounded-md border border-dashed p-3\">\n <p className=\"text-sm font-medium\">Seed first prompt (optional)</p>\n <Label htmlFor=\"create-agent-prompt-id\">Prompt slot id</Label>\n <Input\n id=\"create-agent-prompt-id\"\n data-testid=\"create-agent-prompt-id\"\n value={promptId}\n onChange={(e) => setPromptId(e.target.value)}\n disabled={isPending}\n placeholder=\"e.g. system, plan.system\"\n />\n <Label htmlFor=\"create-agent-prompt-body\">Prompt body</Label>\n <Textarea\n id=\"create-agent-prompt-body\"\n data-testid=\"create-agent-prompt-body\"\n value={body}\n onChange={(e) => setBody(e.target.value)}\n rows={5}\n className=\"font-mono text-xs\"\n disabled={isPending}\n placeholder=\"System prompt the agent will run with…\"\n />\n </div>\n\n {error ? (\n <Alert variant=\"destructive\" data-testid=\"create-agent-error\">\n <AlertDescription>{error}</AlertDescription>\n </Alert>\n ) : null}\n\n <DialogFooter>\n <Button type=\"submit\" disabled={!ready} data-testid=\"create-agent-submit\">\n {isPending ? 'Creating…' : 'Create agent'}\n </Button>\n </DialogFooter>\n </form>\n </DialogContent>\n </Dialog>\n );\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"405fd2f3ca66b41c82abc92f0c81160af517045106\":\"createCustomAgent\"},\"src/presentation/web/app/actions/custom-agents.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"405fd2f3ca66b41c82abc92f0c81160af517045106\",callServer,void 0,findSourceMapURL,\"createCustomAgent\");export{$$RSC_SERVER_ACTION_0 as createCustomAgent};"],"names":[],"mappings":"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","ignoreList":[1,4,7]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[857411,a=>{"use strict";var b=a.i(556365),c=a.i(944592),d=a.i(193967),e=a.i(232791),f=a.i(488064),g=a.i(882014),h=a.i(103942),i=a.i(69428),j=a.i(771716),k=a.i(872016),l=a.i(302807);a.i(490370);var m=a.i(224640),n=a.i(385536),o=a.i(289111);let p=(0,o.createServerReference)("40d598a484e187624eab017da54f9731ce4f592c66",o.callServer,void 0,o.findSourceMapURL,"createProjectAndFeature"),q=(0,o.createServerReference)("40645357a559aa008b8943a06f8811d680bd95e865",o.callServer,void 0,o.findSourceMapURL,"createApplication");var r=a.i(675532),s=a.i(961781);a.i(200307);var t=a.i(730931);a.i(548822);var u=a.i(85655),v=a.i(182934),w=a.i(675192),x=a.i(409260);let y=["application","fast","spec"],z={application:{icon:g.LayoutGrid,label:"Application",placeholder:"Build a modern e-commerce storefront with product catalog...",suggestions:["A landing page with hero, features, and pricing sections","Full-stack SaaS app with auth, billing, and dashboard","Mobile-first social media app with real-time chat","Personal portfolio with blog and project showcase"]},fast:{icon:h.Zap,label:"Fast",placeholder:"Add a dark mode toggle to the settings page...",suggestions:["Add pagination to the users list endpoint","Fix the broken logout redirect","Add input validation to the signup form","Refactor the API error handling middleware"]},spec:{icon:i.ClipboardList,label:"Spec Driven",placeholder:"Implement a role-based access control system with audit logging...",suggestions:["OAuth2 authentication with SSO and MFA support","Event-driven notification system with email and push","REST API with versioning, rate limiting, and OpenAPI docs","Data pipeline with ETL, validation, and monitoring"]}};function A({onRepositorySelect:a,onApplicationCreated:g,onClose:h,className:i}){let{t:o}=(0,m.useTranslation)("web"),[A,B]=(0,c.useState)(""),[C,D]=(0,c.useState)(void 0),[E,F]=(0,c.useState)(void 0);(0,c.useEffect)(()=>{(0,r.getDefaultAgentAndModel)().then(a=>{D(b=>b??a.agentType),F(b=>b??a.model)})},[]);let[G,H]=(0,c.useState)("application"),[I,J]=(0,c.useState)(!1),[K,L]=(0,c.useState)(null),[M,N]=(0,c.useState)(!1),O=(0,c.useRef)(null),P=(0,x.useAttachments)(),Q=!!a,R=Q?G:"application",S=(0,c.useCallback)(()=>{H(a=>{let b=y.indexOf(a);return y[(b+1)%y.length]})},[]);(0,c.useEffect)(()=>{let b=b=>{"Escape"===b.key&&h&&h(),"Tab"===b.key&&b.shiftKey&&a&&(b.preventDefault(),S())};return window.addEventListener("keydown",b),()=>window.removeEventListener("keydown",b)},[h,S,a]);let T=(0,c.useCallback)(async()=>{if(A.trim()&&!I){J(!0),L(null);try{if("application"!==R&&a){let b=await p({description:A.trim(),attachments:P.completedAttachments.map(a=>({path:a.path,name:a.name,notes:a.notes})),agentType:C,model:E,fast:"fast"===R});if(b.error){L(b.error),J(!1);return}b.repositoryPath&&a?.(b.repositoryPath),b.feature&&b.repositoryPath&&window.dispatchEvent(new CustomEvent("shep:feature-created",{detail:{featureId:b.feature.id,name:b.feature.name,description:b.feature.description,repositoryPath:b.repositoryPath}}))}else{let a=await q({description:A.trim(),agentType:C,modelOverride:E,initialPrompt:A.trim()});if(a.error){L(a.error),J(!1);return}a.application&&g?.(a.application.id)}}catch{L("Something went wrong. Please try again."),J(!1)}}},[A,I,R,P.completedAttachments,C,E,a,g]),U=(0,c.useCallback)(a=>{"Enter"===a.key&&(a.ctrlKey||a.metaKey)&&(a.preventDefault(),T())},[T]),V=(0,c.useCallback)(async()=>{try{let a=await fetch("/api/dialog/pick-files");if(!a.ok)return;let b=await a.json();if(!b.paths?.length)return;for(let a of b.paths){let b=await fetch("/api/attachments/upload-from-path",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:a,sessionId:"onboarding"})});if(!b.ok)continue;let c=await b.json();P.addAttachment(c)}}catch{}},[P.addAttachment]),W=(0,c.useCallback)(a=>{B(a),O.current?.focus()},[]),X=z[R],Y=X.icon;return(0,b.jsxs)("div",{"data-testid":"control-center-empty-state",className:(0,n.cn)("relative flex h-full w-full flex-col items-center justify-center overflow-hidden px-8",i),children:[(0,b.jsx)("div",{className:"onboard-bg pointer-events-none absolute inset-0 animate-[onboard-fade-in_1.2s_ease-out_both]"}),h?(0,b.jsx)("button",{type:"button",onClick:h,"aria-label":"Close",className:"text-muted-foreground hover:text-foreground hover:bg-accent/50 absolute top-4 right-4 z-10 cursor-pointer rounded p-1.5 transition-colors",children:(0,b.jsx)(l.X,{className:"h-5 w-5"})}):null,(0,b.jsxs)("div",{className:"relative flex w-full max-w-2xl flex-col items-center",children:[(0,b.jsx)("div",{className:"mb-6 animate-[onboard-logo_0.8s_cubic-bezier(0.16,1,0.3,1)_both]",style:{animationDelay:"0ms"},children:(0,b.jsx)(u.ShepLogo,{size:72,className:"text-foreground"})}),(0,b.jsx)("h1",{className:"text-foreground animate-[onboard-fade-up_0.7s_cubic-bezier(0.16,1,0.3,1)_both] text-center text-5xl font-extralight tracking-tight",style:{animationDelay:"120ms"},children:"What do you want to build?"}),(0,b.jsx)("p",{className:"text-muted-foreground mt-3 animate-[onboard-fade-up_0.7s_cubic-bezier(0.16,1,0.3,1)_both] text-center text-lg leading-relaxed font-light",style:{animationDelay:"220ms"},children:"Describe your idea and Shep creates the project for you."}),(0,b.jsxs)("div",{className:"mt-10 w-full animate-[onboard-fade-up_0.7s_cubic-bezier(0.16,1,0.3,1)_both]",style:{animationDelay:"350ms"},children:[(0,b.jsxs)("div",{onFocus:()=>N(!0),onBlur:()=>N(!1),onDragEnter:P.handleDragEnter,onDragLeave:P.handleDragLeave,onDragOver:P.handleDragOver,onDrop:P.handleDrop,className:(0,n.cn)("flex flex-col rounded-xl border transition-all duration-200","border-border/60 bg-background shadow-sm dark:border-white/10 dark:bg-white/[0.04]",M&&"ring-ring/50 border-ring shadow-md ring-[3px] dark:border-orange-500/40 dark:ring-orange-500/25",P.isDragOver&&"border-primary/50 bg-primary/5",I&&"opacity-70"),children:[(0,b.jsx)("textarea",{ref:O,rows:2,autoFocus:!0,value:A,onChange:a=>B(a.target.value),onKeyDown:U,onPaste:P.handlePaste,placeholder:X.placeholder,disabled:I,className:"text-foreground placeholder:text-muted-foreground/60 max-h-[10rem] min-h-[4.5rem] w-full resize-none border-0 bg-transparent px-4 py-3.5 text-sm leading-relaxed focus:outline-none disabled:cursor-not-allowed"}),P.attachments.length>0?(0,b.jsx)("div",{className:"flex shrink-0 items-center gap-2.5 overflow-x-auto overflow-y-visible px-5 pt-2 pb-2",children:P.attachments.map(a=>(0,b.jsx)(t.AttachmentChip,{name:a.name,size:a.size,mimeType:a.mimeType,path:a.path,onRemove:()=>P.removeAttachment(a.id),loading:a.loading,notes:a.notes,onNotesChange:b=>P.updateNotes(a.id,b)},a.id))}):null,P.uploadError?(0,b.jsx)("p",{className:"text-destructive px-4 pb-2 text-xs",children:P.uploadError}):null,(0,b.jsxs)("div",{className:"border-border/60 flex shrink-0 items-center gap-3 border-t px-3 py-2 dark:border-white/10",children:[(0,b.jsx)(s.AgentModelPicker,{initialAgentType:C??"",initialModel:E??"",mode:"override",showInstallStatus:!0,onAgentModelChange:(a,b)=>{D(a),F(b)},className:"w-55"}),(0,b.jsx)("div",{className:"flex-1"}),Q?(0,b.jsxs)(w.DropdownMenu,{children:[(0,b.jsx)(w.DropdownMenuTrigger,{asChild:!0,children:(0,b.jsxs)("button",{type:"button","data-testid":"build-mode-selector",className:"text-muted-foreground hover:text-foreground hover:bg-accent/50 flex cursor-pointer items-center gap-1.5 rounded-md px-2 py-1 text-xs transition-colors",children:[(0,b.jsxs)("span",{className:"flex animate-[onboard-fade-up_0.25s_ease-out_both] items-center gap-1.5",children:[(0,b.jsx)(Y,{className:"h-3.5 w-3.5"}),X.label]},R),(0,b.jsx)(j.ChevronDown,{className:"h-3 w-3 opacity-50"})]})}),(0,b.jsx)(w.DropdownMenuContent,{align:"end",className:"min-w-[160px]",children:y.map(a=>{let c=z[a],d=c.icon,e=R===a;return(0,b.jsxs)(w.DropdownMenuItem,{onClick:()=>H(a),"data-testid":`build-mode-${a}`,className:"flex items-center gap-2",children:[(0,b.jsx)(d,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{className:"flex-1",children:c.label}),e?(0,b.jsx)(k.Check,{className:"text-foreground h-3.5 w-3.5"}):null]},a)})})]}):null,(0,b.jsxs)(v.Tooltip,{children:[(0,b.jsx)(v.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",onClick:V,disabled:I,"aria-label":o("chat.attachFiles"),className:"text-muted-foreground hover:text-foreground cursor-pointer rounded p-1 transition-colors disabled:opacity-50",children:(0,b.jsx)(e.Paperclip,{className:"h-4 w-4"})})}),(0,b.jsx)(v.TooltipContent,{side:"top",children:o("chat.attachFiles")})]}),(0,b.jsx)("button",{type:"button",onClick:T,disabled:!A.trim()||I,className:(0,n.cn)("bg-foreground text-background inline-flex h-8 w-8 shrink-0 cursor-pointer items-center justify-center rounded-lg","hover:bg-foreground/90 disabled:pointer-events-none disabled:opacity-30","transition-all duration-150"),children:I?(0,b.jsx)(f.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):(0,b.jsx)(d.SendHorizontal,{className:"h-3.5 w-3.5"})})]})]}),K?(0,b.jsx)("p",{className:"text-destructive mt-2 text-center text-sm",children:K}):null]}),(0,b.jsx)("div",{className:"mt-6 flex animate-[onboard-fade-up_0.4s_ease-out_both] flex-wrap justify-center gap-2",children:X.suggestions.map(a=>(0,b.jsx)("button",{type:"button",onClick:()=>W(a),disabled:I,className:"text-muted-foreground hover:text-foreground border-border/60 hover:border-border hover:bg-accent/50 cursor-pointer rounded-full border px-3.5 py-1.5 text-xs transition-all duration-150 disabled:opacity-50 dark:border-white/10 dark:hover:border-white/20 dark:hover:bg-white/[0.06]",children:a},a))},R)]})]})}a.s(["ControlCenterEmptyState",()=>A],857411)},893741,a=>{"use strict";let b=(0,a.i(225700).default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);a.s(["Pencil",()=>b],893741)},142527,234379,421434,a=>{"use strict";var b=a.i(225700);let c=(0,b.default)("folder-plus",[["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"M9 13h6",key:"1uhe8q"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);a.s(["FolderPlus",()=>c],142527);var d=a.i(556365),e=a.i(944592),f=a.i(503410);let g=(0,b.default)("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);var h=a.i(403195),i=a.i(488064),j=a.i(893741),k=a.i(952313),l=a.i(645670),m=a.i(118948),n=a.i(359706);async function o(a){let b=new URLSearchParams;a&&b.set("path",a);let c=await fetch(`/api/directory/list?${b.toString()}`);if(!c.ok)throw Error((await c.json().catch(()=>({error:"Failed to load directory"}))).error??"Failed to load directory");return c.json()}function p({currentPath:a,isEditing:b,onToggleEdit:c,onNavigate:g}){let h=(0,e.useRef)(null),[i,k]=(0,e.useState)(a);function l(){k(a),c()}(0,e.useEffect)(()=>{k(a)},[a]),(0,e.useEffect)(()=>{b&&h.current&&(h.current.focus(),h.current.select())},[b]);let m=function(a){if(!a)return[];let b=/^[a-zA-Z]:/.test(a),c=b?"\\":"/",d=a.split(/[\\/]/).filter(Boolean),e=[];for(let a=0;a<d.length;a++){let f=b?d.slice(0,a+1).join(c):c+d.slice(0,a+1).join(c);e.push({label:d[a],path:f})}return e}(a),n=m.length>3,o=n?m.slice(-3):m;return(0,d.jsxs)("div",{className:"border-b px-4 py-3",children:[(0,d.jsx)("h2",{className:"text-foreground mb-2.5 text-sm font-semibold tracking-[-0.01em]",children:"Select Folder"}),b?(0,d.jsx)("input",{ref:h,type:"text",value:i,onChange:a=>k(a.target.value),onKeyDown:a=>{if("Enter"===a.key){let b;a.preventDefault(),(b=i.trim())&&g(b)}"Escape"===a.key&&(a.preventDefault(),l())},onBlur:l,className:"bg-muted/60 border-border focus:ring-ring/20 focus:border-ring w-full rounded-lg border px-3 py-2 font-mono text-xs transition-all outline-none focus:ring-2",placeholder:"Type a path and press Enter...",spellCheck:!1,autoComplete:"off"}):(0,d.jsxs)("div",{className:"bg-muted/40 flex items-center gap-1 rounded-lg px-2.5 py-2",children:[(0,d.jsx)("button",{type:"button",onClick:()=>g("/"),className:"text-muted-foreground hover:text-foreground hover:bg-background shrink-0 rounded px-1.5 py-0.5 font-mono text-xs transition-colors",children:"/"}),n?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.ChevronRight,{className:"text-muted-foreground/30 h-3 w-3 shrink-0"}),(0,d.jsx)("span",{className:"text-muted-foreground/40 font-mono text-xs",children:"..."})]}):null,o.map((a,b)=>{let c=b===o.length-1;return(0,d.jsxs)("span",{className:"flex shrink-0 items-center gap-1",children:[(0,d.jsx)(f.ChevronRight,{className:"text-muted-foreground/30 h-3 w-3"}),c?(0,d.jsx)("span",{className:"bg-primary/10 text-primary rounded px-2 py-0.5 font-mono text-xs font-medium",children:a.label}):(0,d.jsx)("button",{type:"button",onClick:()=>g(a.path),className:"text-muted-foreground hover:text-foreground hover:bg-background rounded px-1.5 py-0.5 font-mono text-xs transition-colors",children:a.label})]},a.path)}),(0,d.jsx)("div",{className:"flex-1"}),(0,d.jsx)("button",{type:"button",onClick:c,className:"text-muted-foreground/40 hover:text-foreground hover:bg-background shrink-0 rounded p-1 transition-colors","aria-label":"Edit path",children:(0,d.jsx)(j.Pencil,{className:"h-3 w-3"})})]})]})}function q({open:a,onOpenChange:b,onSelect:c,initialPath:j}){let[q,r]=(0,e.useState)([]),[s,t]=(0,e.useState)(""),[u,v]=(0,e.useState)(!1),[w,x]=(0,e.useState)(!1),y=(0,e.useRef)(!1),[z,A]=(0,e.useState)(0),B=(0,e.useCallback)(async a=>{v(!0),x(!1);try{let b=await o(a);r(b.entries),t(b.currentPath),A(a=>a+1)}catch(b){let a=b instanceof Error?b.message:"Failed to load directory";k.toast.error(a)}finally{v(!1)}},[]);function C(a){B(a)}function D(){c(null),b(!1)}return(0,e.useEffect)(()=>{a&&!y.current&&(y.current=!0,B(j)),a||(y.current=!1,x(!1))},[a,j,B]),(0,d.jsx)(l.Dialog,{open:a,onOpenChange:a=>{a||D()},children:(0,d.jsxs)(l.DialogContent,{className:"flex h-[min(520px,85dvh)] w-full max-w-[460px] flex-col gap-0 overflow-hidden p-0",onCloseAutoFocus:a=>a.preventDefault(),children:[(0,d.jsx)(l.DialogTitle,{className:"sr-only",children:"Select Folder"}),(0,d.jsx)(l.DialogDescription,{className:"sr-only",children:"Navigate to a folder and select it"}),(0,d.jsx)(p,{currentPath:s,isEditing:w,onToggleEdit:()=>x(a=>!a),onNavigate:C}),(0,d.jsx)(n.ScrollArea,{className:"min-h-0 flex-1",children:u&&0===q.length?(0,d.jsx)("div",{className:"space-y-0.5 p-2",children:Array.from({length:8}).map((a,b)=>(0,d.jsxs)("div",{className:"flex items-center gap-3 rounded-lg px-3 py-2.5",style:{opacity:1-.1*b},children:[(0,d.jsx)("div",{className:"bg-muted h-4 w-4 animate-pulse rounded"}),(0,d.jsx)("div",{className:"bg-muted h-3.5 animate-pulse rounded",style:{width:`${40+35*Math.random()}%`}})]},`skeleton-${b}`))}):0===q.length?(0,d.jsxs)("div",{className:"flex flex-col items-center justify-center py-20",children:[(0,d.jsx)(h.FolderOpen,{className:"text-muted-foreground/25 mb-3 h-10 w-10"}),(0,d.jsx)("p",{className:"text-muted-foreground/60 text-sm",children:"Empty folder"})]}):(0,d.jsx)("div",{className:"p-2",children:q.map((a,b)=>(0,d.jsxs)("button",{type:"button",onClick:()=>C(a.path),className:"folder-row group flex w-full items-center gap-3 rounded-lg px-3 py-2.5 text-left transition-all hover:bg-[var(--color-primary)]/[0.06] active:scale-[0.997]",style:{animationDelay:`${20*b}ms`},children:[(0,d.jsx)(g,{className:"text-muted-foreground/50 group-hover:text-primary h-[18px] w-[18px] shrink-0 transition-colors"}),(0,d.jsx)("span",{className:"text-foreground min-w-0 flex-1 truncate text-[13px] font-medium",children:a.name}),(0,d.jsx)(f.ChevronRight,{className:"text-muted-foreground/0 group-hover:text-muted-foreground/40 h-3.5 w-3.5 shrink-0 transition-all"})]},a.path))},z)}),(0,d.jsxs)("div",{className:"flex items-center gap-2 border-t px-4 py-3",children:[(0,d.jsx)("p",{className:"text-muted-foreground min-w-0 flex-1 truncate font-mono text-[11px] leading-none",children:s||" "}),(0,d.jsx)(m.Button,{variant:"ghost",size:"sm",onClick:D,className:"text-muted-foreground h-8 shrink-0 px-3 text-xs",children:"Cancel"}),(0,d.jsxs)(m.Button,{size:"sm",onClick:function(){s&&(c(s),b(!1))},disabled:!s||u,className:"h-8 shrink-0 px-5 text-xs font-medium",children:[u?(0,d.jsx)(i.Loader2,{className:"mr-1.5 h-3 w-3 animate-spin"}):null,"Select"]})]})]})})}a.s(["ReactFileManagerDialog",()=>q],234379),a.s([],421434)},121402,a=>{"use strict";var b=a.i(289111);let c=(0,b.createServerReference)("403258509228eaa2958e23dc4d326c05a2e84b3099",b.callServer,void 0,b.findSourceMapURL,"addRepository");a.s(["addRepository",()=>c])},738702,516223,a=>{"use strict";var b=a.i(556365),c=a.i(385536);function d({icon:a,title:d,description:e,action:f,className:g,...h}){return(0,b.jsxs)("div",{className:(0,c.cn)("flex flex-col items-center gap-4 px-4 py-12 text-center",g),...h,children:[a?(0,b.jsx)("div",{className:"text-muted-foreground",children:a}):null,(0,b.jsx)("h3",{className:"text-lg font-semibold",children:d}),e?(0,b.jsx)("p",{className:"text-muted-foreground max-w-md text-sm",children:e}):null,f?(0,b.jsx)("div",{className:"mt-2",children:f}):null]})}a.s(["EmptyState",()=>d],516223),a.s([],738702)},479794,233981,281834,316676,a=>{"use strict";let b=(0,a.i(225700).default)("sliders-horizontal",[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]]);a.s(["SlidersHorizontal",()=>b],479794);var c=a.i(556365),d=a.i(944592),e=a.i(867837),f=a.i(488064),g=a.i(302807);a.i(490370);var h=a.i(224640),i=a.i(385536),j=a.i(118948);function k({actions:a,className:b,style:k}){let{t:l}=(0,h.useTranslation)("web"),[m,n]=(0,d.useState)(!1);return(0,d.useEffect)(()=>{if(m)return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a);function a(a){"Escape"===a.key&&n(!1)}},[m]),(0,c.jsxs)(c.Fragment,{children:[m?(0,c.jsx)("div",{"data-testid":"fab-overlay",className:"fixed inset-0 z-40",onClick:()=>n(!1),"aria-hidden":"true"}):null,(0,c.jsxs)("div",{"data-testid":"floating-action-button",className:(0,i.cn)("relative z-50",b),style:k,children:[(0,c.jsx)("div",{className:(0,i.cn)("absolute start-0 bottom-[calc(100%+24px)] flex flex-col items-start gap-2",!m&&"pointer-events-none"),"data-testid":"fab-actions",children:a.map((b,d)=>{let e=(a.length-1-d)*50;return(0,c.jsxs)("button",{"data-testid":`fab-action-${b.id}`,"aria-label":b.label,disabled:b.disabled??b.loading,className:(0,i.cn)("flex h-10 items-center gap-2.5 rounded-full px-4","bg-background text-foreground shadow-md","border-border border","hover:bg-accent hover:text-accent-foreground","disabled:pointer-events-none disabled:opacity-50","text-sm font-medium whitespace-nowrap",m?"translate-y-0 opacity-100":"pointer-events-none translate-y-0 opacity-0"),style:{transition:`opacity ${m?250:120}ms ease-out ${m?e:0}ms, transform ${m?250:120}ms ease-out ${m?e:0}ms`},onClick:()=>{b.onClick(),n(!1)},children:[(0,c.jsx)("span",{className:"flex h-5 w-5 shrink-0 items-center justify-center",children:b.loading?(0,c.jsx)(f.Loader2,{className:"h-4 w-4 animate-spin"}):b.icon}),(0,c.jsx)("span",{children:b.label})]},b.id)})}),(0,c.jsxs)(j.Button,{size:"icon","data-testid":"fab-trigger","aria-label":l(m?"fab.closeActions":"fab.createNew"),className:(0,i.cn)("relative h-14 w-14 rounded-full shadow-lg","bg-indigo-500 text-white hover:bg-indigo-400 dark:bg-indigo-500 dark:hover:bg-indigo-400","transition-all duration-200 hover:scale-105 hover:shadow-xl active:scale-95"),onClick:()=>n(a=>!a),children:[(0,c.jsx)(e.Plus,{className:(0,i.cn)("absolute h-7 w-7 stroke-[2.5] transition-all",m?"scale-0 rotate-90 opacity-0":"scale-100 rotate-0 opacity-100"),style:{transitionDuration:"250ms"}}),(0,c.jsx)(g.X,{className:(0,i.cn)("absolute h-6 w-6 stroke-[2.5] transition-all",m?"scale-100 rotate-0 opacity-100":"scale-0 -rotate-90 opacity-0"),style:{transitionDuration:"250ms"}})]})]})]})}a.s(["FloatingActionButton",()=>k],233981),a.s([],281834);var l=a.i(645670),m=a.i(390920),n=a.i(289111);let o=(0,n.createServerReference)("40bcba328c605961eb6f11ed41067f6fc3c0095327",n.callServer,void 0,n.findSourceMapURL,"createProjectFolder");function p({open:a,onOpenChange:b,onCreated:e}){let[g,h]=(0,d.useState)(""),[i,k]=(0,d.useState)(!1),[n,p]=(0,d.useState)(null);(0,d.useEffect)(()=>{a&&(h(""),k(!1),p(null))},[a]);let q=async a=>{a.preventDefault();let c=g.trim();if(!c||i)return;k(!0),p(null);let d=await o(c);if(!d.ok||!d.path){p(d.error??"Failed to create project."),k(!1);return}e(d.path),b(!1)};return(0,c.jsx)(l.Dialog,{open:a,onOpenChange:b,children:(0,c.jsx)(l.DialogContent,{className:"max-w-sm",children:(0,c.jsxs)("form",{onSubmit:q,children:[(0,c.jsxs)(l.DialogHeader,{children:[(0,c.jsx)(l.DialogTitle,{children:"New project"}),(0,c.jsx)(l.DialogDescription,{children:"Create an empty project folder inside your Shep home directory. Git will be initialised automatically when the project is added."})]}),(0,c.jsxs)("div",{className:"py-4",children:[(0,c.jsx)(m.Input,{autoFocus:!0,value:g,onChange:a=>{h(a.target.value),n&&p(null)},placeholder:"my-prototype",disabled:i,"data-testid":"new-project-name-input"}),n?(0,c.jsx)("p",{className:"text-destructive mt-2 text-xs",role:"alert",children:n}):null]}),(0,c.jsxs)(l.DialogFooter,{children:[(0,c.jsx)(j.Button,{type:"button",variant:"ghost",onClick:()=>b(!1),disabled:i,children:"Cancel"}),(0,c.jsx)(j.Button,{type:"submit",disabled:!g.trim()||i,children:i?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(f.Loader2,{className:"mr-2 h-4 w-4 animate-spin"}),"Creating…"]}):"Create project"})]})]})})})}a.s(["NewProjectDialog",()=>p],316676)},992522,a=>{"use strict";var b=a.i(289111);let c=(0,b.createServerReference)("40452ebbb203a93524b9edc2238f64602b22073187",b.callServer,void 0,b.findSourceMapURL,"archiveFeature");a.s(["archiveFeature",()=>c])},425822,a=>{"use strict";var b=a.i(289111);let c=(0,b.createServerReference)("789a2e6dc111efa3fbfeb0a4a5655ec83e1a2812ac",b.callServer,void 0,b.findSourceMapURL,"deleteFeature");a.s(["deleteFeature",()=>c])},141441,a=>{"use strict";var b=a.i(289111);let c=(0,b.createServerReference)("40c52ee83193cb498f7589027bff41fba1c5fc6a08",b.callServer,void 0,b.findSourceMapURL,"unarchiveFeature");a.s(["unarchiveFeature",()=>c])}];
|
|
1
|
+
module.exports=[857411,a=>{"use strict";var b=a.i(556365),c=a.i(944592),d=a.i(193967),e=a.i(232791),f=a.i(488064),g=a.i(882014),h=a.i(103942),i=a.i(69428),j=a.i(771716),k=a.i(872016),l=a.i(302807);a.i(490370);var m=a.i(224640),n=a.i(385536),o=a.i(289111);let p=(0,o.createServerReference)("4065491a97be2a50102b694855c38043cb50fd5c4a",o.callServer,void 0,o.findSourceMapURL,"createProjectAndFeature"),q=(0,o.createServerReference)("40815776e7a6bda2e6d29f697d71e59aae910c82d1",o.callServer,void 0,o.findSourceMapURL,"createApplication");var r=a.i(439826),s=a.i(961781);a.i(200307);var t=a.i(730931);a.i(548822);var u=a.i(85655),v=a.i(182934),w=a.i(675192),x=a.i(409260);let y=["application","fast","spec"],z={application:{icon:g.LayoutGrid,label:"Application",placeholder:"Build a modern e-commerce storefront with product catalog...",suggestions:["A landing page with hero, features, and pricing sections","Full-stack SaaS app with auth, billing, and dashboard","Mobile-first social media app with real-time chat","Personal portfolio with blog and project showcase"]},fast:{icon:h.Zap,label:"Fast",placeholder:"Add a dark mode toggle to the settings page...",suggestions:["Add pagination to the users list endpoint","Fix the broken logout redirect","Add input validation to the signup form","Refactor the API error handling middleware"]},spec:{icon:i.ClipboardList,label:"Spec Driven",placeholder:"Implement a role-based access control system with audit logging...",suggestions:["OAuth2 authentication with SSO and MFA support","Event-driven notification system with email and push","REST API with versioning, rate limiting, and OpenAPI docs","Data pipeline with ETL, validation, and monitoring"]}};function A({onRepositorySelect:a,onApplicationCreated:g,onClose:h,className:i}){let{t:o}=(0,m.useTranslation)("web"),[A,B]=(0,c.useState)(""),[C,D]=(0,c.useState)(void 0),[E,F]=(0,c.useState)(void 0);(0,c.useEffect)(()=>{(0,r.getDefaultAgentAndModel)().then(a=>{D(b=>b??a.agentType),F(b=>b??a.model)})},[]);let[G,H]=(0,c.useState)("application"),[I,J]=(0,c.useState)(!1),[K,L]=(0,c.useState)(null),[M,N]=(0,c.useState)(!1),O=(0,c.useRef)(null),P=(0,x.useAttachments)(),Q=!!a,R=Q?G:"application",S=(0,c.useCallback)(()=>{H(a=>{let b=y.indexOf(a);return y[(b+1)%y.length]})},[]);(0,c.useEffect)(()=>{let b=b=>{"Escape"===b.key&&h&&h(),"Tab"===b.key&&b.shiftKey&&a&&(b.preventDefault(),S())};return window.addEventListener("keydown",b),()=>window.removeEventListener("keydown",b)},[h,S,a]);let T=(0,c.useCallback)(async()=>{if(A.trim()&&!I){J(!0),L(null);try{if("application"!==R&&a){let b=await p({description:A.trim(),attachments:P.completedAttachments.map(a=>({path:a.path,name:a.name,notes:a.notes})),agentType:C,model:E,fast:"fast"===R});if(b.error){L(b.error),J(!1);return}b.repositoryPath&&a?.(b.repositoryPath),b.feature&&b.repositoryPath&&window.dispatchEvent(new CustomEvent("shep:feature-created",{detail:{featureId:b.feature.id,name:b.feature.name,description:b.feature.description,repositoryPath:b.repositoryPath}}))}else{let a=await q({description:A.trim(),agentType:C,modelOverride:E,initialPrompt:A.trim()});if(a.error){L(a.error),J(!1);return}a.application&&g?.(a.application.id)}}catch{L("Something went wrong. Please try again."),J(!1)}}},[A,I,R,P.completedAttachments,C,E,a,g]),U=(0,c.useCallback)(a=>{"Enter"===a.key&&(a.ctrlKey||a.metaKey)&&(a.preventDefault(),T())},[T]),V=(0,c.useCallback)(async()=>{try{let a=await fetch("/api/dialog/pick-files");if(!a.ok)return;let b=await a.json();if(!b.paths?.length)return;for(let a of b.paths){let b=await fetch("/api/attachments/upload-from-path",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:a,sessionId:"onboarding"})});if(!b.ok)continue;let c=await b.json();P.addAttachment(c)}}catch{}},[P.addAttachment]),W=(0,c.useCallback)(a=>{B(a),O.current?.focus()},[]),X=z[R],Y=X.icon;return(0,b.jsxs)("div",{"data-testid":"control-center-empty-state",className:(0,n.cn)("relative flex h-full w-full flex-col items-center justify-center overflow-hidden px-8",i),children:[(0,b.jsx)("div",{className:"onboard-bg pointer-events-none absolute inset-0 animate-[onboard-fade-in_1.2s_ease-out_both]"}),h?(0,b.jsx)("button",{type:"button",onClick:h,"aria-label":"Close",className:"text-muted-foreground hover:text-foreground hover:bg-accent/50 absolute top-4 right-4 z-10 cursor-pointer rounded p-1.5 transition-colors",children:(0,b.jsx)(l.X,{className:"h-5 w-5"})}):null,(0,b.jsxs)("div",{className:"relative flex w-full max-w-2xl flex-col items-center",children:[(0,b.jsx)("div",{className:"mb-6 animate-[onboard-logo_0.8s_cubic-bezier(0.16,1,0.3,1)_both]",style:{animationDelay:"0ms"},children:(0,b.jsx)(u.ShepLogo,{size:72,className:"text-foreground"})}),(0,b.jsx)("h1",{className:"text-foreground animate-[onboard-fade-up_0.7s_cubic-bezier(0.16,1,0.3,1)_both] text-center text-5xl font-extralight tracking-tight",style:{animationDelay:"120ms"},children:"What do you want to build?"}),(0,b.jsx)("p",{className:"text-muted-foreground mt-3 animate-[onboard-fade-up_0.7s_cubic-bezier(0.16,1,0.3,1)_both] text-center text-lg leading-relaxed font-light",style:{animationDelay:"220ms"},children:"Describe your idea and Shep creates the project for you."}),(0,b.jsxs)("div",{className:"mt-10 w-full animate-[onboard-fade-up_0.7s_cubic-bezier(0.16,1,0.3,1)_both]",style:{animationDelay:"350ms"},children:[(0,b.jsxs)("div",{onFocus:()=>N(!0),onBlur:()=>N(!1),onDragEnter:P.handleDragEnter,onDragLeave:P.handleDragLeave,onDragOver:P.handleDragOver,onDrop:P.handleDrop,className:(0,n.cn)("flex flex-col rounded-xl border transition-all duration-200","border-border/60 bg-background shadow-sm dark:border-white/10 dark:bg-white/[0.04]",M&&"ring-ring/50 border-ring shadow-md ring-[3px] dark:border-orange-500/40 dark:ring-orange-500/25",P.isDragOver&&"border-primary/50 bg-primary/5",I&&"opacity-70"),children:[(0,b.jsx)("textarea",{ref:O,rows:2,autoFocus:!0,value:A,onChange:a=>B(a.target.value),onKeyDown:U,onPaste:P.handlePaste,placeholder:X.placeholder,disabled:I,className:"text-foreground placeholder:text-muted-foreground/60 max-h-[10rem] min-h-[4.5rem] w-full resize-none border-0 bg-transparent px-4 py-3.5 text-sm leading-relaxed focus:outline-none disabled:cursor-not-allowed"}),P.attachments.length>0?(0,b.jsx)("div",{className:"flex shrink-0 items-center gap-2.5 overflow-x-auto overflow-y-visible px-5 pt-2 pb-2",children:P.attachments.map(a=>(0,b.jsx)(t.AttachmentChip,{name:a.name,size:a.size,mimeType:a.mimeType,path:a.path,onRemove:()=>P.removeAttachment(a.id),loading:a.loading,notes:a.notes,onNotesChange:b=>P.updateNotes(a.id,b)},a.id))}):null,P.uploadError?(0,b.jsx)("p",{className:"text-destructive px-4 pb-2 text-xs",children:P.uploadError}):null,(0,b.jsxs)("div",{className:"border-border/60 flex shrink-0 items-center gap-3 border-t px-3 py-2 dark:border-white/10",children:[(0,b.jsx)(s.AgentModelPicker,{initialAgentType:C??"",initialModel:E??"",mode:"override",showInstallStatus:!0,onAgentModelChange:(a,b)=>{D(a),F(b)},className:"w-55"}),(0,b.jsx)("div",{className:"flex-1"}),Q?(0,b.jsxs)(w.DropdownMenu,{children:[(0,b.jsx)(w.DropdownMenuTrigger,{asChild:!0,children:(0,b.jsxs)("button",{type:"button","data-testid":"build-mode-selector",className:"text-muted-foreground hover:text-foreground hover:bg-accent/50 flex cursor-pointer items-center gap-1.5 rounded-md px-2 py-1 text-xs transition-colors",children:[(0,b.jsxs)("span",{className:"flex animate-[onboard-fade-up_0.25s_ease-out_both] items-center gap-1.5",children:[(0,b.jsx)(Y,{className:"h-3.5 w-3.5"}),X.label]},R),(0,b.jsx)(j.ChevronDown,{className:"h-3 w-3 opacity-50"})]})}),(0,b.jsx)(w.DropdownMenuContent,{align:"end",className:"min-w-[160px]",children:y.map(a=>{let c=z[a],d=c.icon,e=R===a;return(0,b.jsxs)(w.DropdownMenuItem,{onClick:()=>H(a),"data-testid":`build-mode-${a}`,className:"flex items-center gap-2",children:[(0,b.jsx)(d,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{className:"flex-1",children:c.label}),e?(0,b.jsx)(k.Check,{className:"text-foreground h-3.5 w-3.5"}):null]},a)})})]}):null,(0,b.jsxs)(v.Tooltip,{children:[(0,b.jsx)(v.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",onClick:V,disabled:I,"aria-label":o("chat.attachFiles"),className:"text-muted-foreground hover:text-foreground cursor-pointer rounded p-1 transition-colors disabled:opacity-50",children:(0,b.jsx)(e.Paperclip,{className:"h-4 w-4"})})}),(0,b.jsx)(v.TooltipContent,{side:"top",children:o("chat.attachFiles")})]}),(0,b.jsx)("button",{type:"button",onClick:T,disabled:!A.trim()||I,className:(0,n.cn)("bg-foreground text-background inline-flex h-8 w-8 shrink-0 cursor-pointer items-center justify-center rounded-lg","hover:bg-foreground/90 disabled:pointer-events-none disabled:opacity-30","transition-all duration-150"),children:I?(0,b.jsx)(f.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):(0,b.jsx)(d.SendHorizontal,{className:"h-3.5 w-3.5"})})]})]}),K?(0,b.jsx)("p",{className:"text-destructive mt-2 text-center text-sm",children:K}):null]}),(0,b.jsx)("div",{className:"mt-6 flex animate-[onboard-fade-up_0.4s_ease-out_both] flex-wrap justify-center gap-2",children:X.suggestions.map(a=>(0,b.jsx)("button",{type:"button",onClick:()=>W(a),disabled:I,className:"text-muted-foreground hover:text-foreground border-border/60 hover:border-border hover:bg-accent/50 cursor-pointer rounded-full border px-3.5 py-1.5 text-xs transition-all duration-150 disabled:opacity-50 dark:border-white/10 dark:hover:border-white/20 dark:hover:bg-white/[0.06]",children:a},a))},R)]})]})}a.s(["ControlCenterEmptyState",()=>A],857411)},893741,a=>{"use strict";let b=(0,a.i(225700).default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);a.s(["Pencil",()=>b],893741)},142527,234379,421434,a=>{"use strict";var b=a.i(225700);let c=(0,b.default)("folder-plus",[["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"M9 13h6",key:"1uhe8q"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);a.s(["FolderPlus",()=>c],142527);var d=a.i(556365),e=a.i(944592),f=a.i(503410);let g=(0,b.default)("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);var h=a.i(403195),i=a.i(488064),j=a.i(893741),k=a.i(952313),l=a.i(645670),m=a.i(118948),n=a.i(359706);async function o(a){let b=new URLSearchParams;a&&b.set("path",a);let c=await fetch(`/api/directory/list?${b.toString()}`);if(!c.ok)throw Error((await c.json().catch(()=>({error:"Failed to load directory"}))).error??"Failed to load directory");return c.json()}function p({currentPath:a,isEditing:b,onToggleEdit:c,onNavigate:g}){let h=(0,e.useRef)(null),[i,k]=(0,e.useState)(a);function l(){k(a),c()}(0,e.useEffect)(()=>{k(a)},[a]),(0,e.useEffect)(()=>{b&&h.current&&(h.current.focus(),h.current.select())},[b]);let m=function(a){if(!a)return[];let b=/^[a-zA-Z]:/.test(a),c=b?"\\":"/",d=a.split(/[\\/]/).filter(Boolean),e=[];for(let a=0;a<d.length;a++){let f=b?d.slice(0,a+1).join(c):c+d.slice(0,a+1).join(c);e.push({label:d[a],path:f})}return e}(a),n=m.length>3,o=n?m.slice(-3):m;return(0,d.jsxs)("div",{className:"border-b px-4 py-3",children:[(0,d.jsx)("h2",{className:"text-foreground mb-2.5 text-sm font-semibold tracking-[-0.01em]",children:"Select Folder"}),b?(0,d.jsx)("input",{ref:h,type:"text",value:i,onChange:a=>k(a.target.value),onKeyDown:a=>{if("Enter"===a.key){let b;a.preventDefault(),(b=i.trim())&&g(b)}"Escape"===a.key&&(a.preventDefault(),l())},onBlur:l,className:"bg-muted/60 border-border focus:ring-ring/20 focus:border-ring w-full rounded-lg border px-3 py-2 font-mono text-xs transition-all outline-none focus:ring-2",placeholder:"Type a path and press Enter...",spellCheck:!1,autoComplete:"off"}):(0,d.jsxs)("div",{className:"bg-muted/40 flex items-center gap-1 rounded-lg px-2.5 py-2",children:[(0,d.jsx)("button",{type:"button",onClick:()=>g("/"),className:"text-muted-foreground hover:text-foreground hover:bg-background shrink-0 rounded px-1.5 py-0.5 font-mono text-xs transition-colors",children:"/"}),n?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.ChevronRight,{className:"text-muted-foreground/30 h-3 w-3 shrink-0"}),(0,d.jsx)("span",{className:"text-muted-foreground/40 font-mono text-xs",children:"..."})]}):null,o.map((a,b)=>{let c=b===o.length-1;return(0,d.jsxs)("span",{className:"flex shrink-0 items-center gap-1",children:[(0,d.jsx)(f.ChevronRight,{className:"text-muted-foreground/30 h-3 w-3"}),c?(0,d.jsx)("span",{className:"bg-primary/10 text-primary rounded px-2 py-0.5 font-mono text-xs font-medium",children:a.label}):(0,d.jsx)("button",{type:"button",onClick:()=>g(a.path),className:"text-muted-foreground hover:text-foreground hover:bg-background rounded px-1.5 py-0.5 font-mono text-xs transition-colors",children:a.label})]},a.path)}),(0,d.jsx)("div",{className:"flex-1"}),(0,d.jsx)("button",{type:"button",onClick:c,className:"text-muted-foreground/40 hover:text-foreground hover:bg-background shrink-0 rounded p-1 transition-colors","aria-label":"Edit path",children:(0,d.jsx)(j.Pencil,{className:"h-3 w-3"})})]})]})}function q({open:a,onOpenChange:b,onSelect:c,initialPath:j}){let[q,r]=(0,e.useState)([]),[s,t]=(0,e.useState)(""),[u,v]=(0,e.useState)(!1),[w,x]=(0,e.useState)(!1),y=(0,e.useRef)(!1),[z,A]=(0,e.useState)(0),B=(0,e.useCallback)(async a=>{v(!0),x(!1);try{let b=await o(a);r(b.entries),t(b.currentPath),A(a=>a+1)}catch(b){let a=b instanceof Error?b.message:"Failed to load directory";k.toast.error(a)}finally{v(!1)}},[]);function C(a){B(a)}function D(){c(null),b(!1)}return(0,e.useEffect)(()=>{a&&!y.current&&(y.current=!0,B(j)),a||(y.current=!1,x(!1))},[a,j,B]),(0,d.jsx)(l.Dialog,{open:a,onOpenChange:a=>{a||D()},children:(0,d.jsxs)(l.DialogContent,{className:"flex h-[min(520px,85dvh)] w-full max-w-[460px] flex-col gap-0 overflow-hidden p-0",onCloseAutoFocus:a=>a.preventDefault(),children:[(0,d.jsx)(l.DialogTitle,{className:"sr-only",children:"Select Folder"}),(0,d.jsx)(l.DialogDescription,{className:"sr-only",children:"Navigate to a folder and select it"}),(0,d.jsx)(p,{currentPath:s,isEditing:w,onToggleEdit:()=>x(a=>!a),onNavigate:C}),(0,d.jsx)(n.ScrollArea,{className:"min-h-0 flex-1",children:u&&0===q.length?(0,d.jsx)("div",{className:"space-y-0.5 p-2",children:Array.from({length:8}).map((a,b)=>(0,d.jsxs)("div",{className:"flex items-center gap-3 rounded-lg px-3 py-2.5",style:{opacity:1-.1*b},children:[(0,d.jsx)("div",{className:"bg-muted h-4 w-4 animate-pulse rounded"}),(0,d.jsx)("div",{className:"bg-muted h-3.5 animate-pulse rounded",style:{width:`${40+35*Math.random()}%`}})]},`skeleton-${b}`))}):0===q.length?(0,d.jsxs)("div",{className:"flex flex-col items-center justify-center py-20",children:[(0,d.jsx)(h.FolderOpen,{className:"text-muted-foreground/25 mb-3 h-10 w-10"}),(0,d.jsx)("p",{className:"text-muted-foreground/60 text-sm",children:"Empty folder"})]}):(0,d.jsx)("div",{className:"p-2",children:q.map((a,b)=>(0,d.jsxs)("button",{type:"button",onClick:()=>C(a.path),className:"folder-row group flex w-full items-center gap-3 rounded-lg px-3 py-2.5 text-left transition-all hover:bg-[var(--color-primary)]/[0.06] active:scale-[0.997]",style:{animationDelay:`${20*b}ms`},children:[(0,d.jsx)(g,{className:"text-muted-foreground/50 group-hover:text-primary h-[18px] w-[18px] shrink-0 transition-colors"}),(0,d.jsx)("span",{className:"text-foreground min-w-0 flex-1 truncate text-[13px] font-medium",children:a.name}),(0,d.jsx)(f.ChevronRight,{className:"text-muted-foreground/0 group-hover:text-muted-foreground/40 h-3.5 w-3.5 shrink-0 transition-all"})]},a.path))},z)}),(0,d.jsxs)("div",{className:"flex items-center gap-2 border-t px-4 py-3",children:[(0,d.jsx)("p",{className:"text-muted-foreground min-w-0 flex-1 truncate font-mono text-[11px] leading-none",children:s||" "}),(0,d.jsx)(m.Button,{variant:"ghost",size:"sm",onClick:D,className:"text-muted-foreground h-8 shrink-0 px-3 text-xs",children:"Cancel"}),(0,d.jsxs)(m.Button,{size:"sm",onClick:function(){s&&(c(s),b(!1))},disabled:!s||u,className:"h-8 shrink-0 px-5 text-xs font-medium",children:[u?(0,d.jsx)(i.Loader2,{className:"mr-1.5 h-3 w-3 animate-spin"}):null,"Select"]})]})]})})}a.s(["ReactFileManagerDialog",()=>q],234379),a.s([],421434)},993081,a=>{"use strict";var b=a.i(289111);let c=(0,b.createServerReference)("40c5c632eba38d44e53c287ca35739c52a2f7493be",b.callServer,void 0,b.findSourceMapURL,"addRepository");a.s(["addRepository",()=>c])},738702,516223,a=>{"use strict";var b=a.i(556365),c=a.i(385536);function d({icon:a,title:d,description:e,action:f,className:g,...h}){return(0,b.jsxs)("div",{className:(0,c.cn)("flex flex-col items-center gap-4 px-4 py-12 text-center",g),...h,children:[a?(0,b.jsx)("div",{className:"text-muted-foreground",children:a}):null,(0,b.jsx)("h3",{className:"text-lg font-semibold",children:d}),e?(0,b.jsx)("p",{className:"text-muted-foreground max-w-md text-sm",children:e}):null,f?(0,b.jsx)("div",{className:"mt-2",children:f}):null]})}a.s(["EmptyState",()=>d],516223),a.s([],738702)},479794,233981,281834,316676,a=>{"use strict";let b=(0,a.i(225700).default)("sliders-horizontal",[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]]);a.s(["SlidersHorizontal",()=>b],479794);var c=a.i(556365),d=a.i(944592),e=a.i(867837),f=a.i(488064),g=a.i(302807);a.i(490370);var h=a.i(224640),i=a.i(385536),j=a.i(118948);function k({actions:a,className:b,style:k}){let{t:l}=(0,h.useTranslation)("web"),[m,n]=(0,d.useState)(!1);return(0,d.useEffect)(()=>{if(m)return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a);function a(a){"Escape"===a.key&&n(!1)}},[m]),(0,c.jsxs)(c.Fragment,{children:[m?(0,c.jsx)("div",{"data-testid":"fab-overlay",className:"fixed inset-0 z-40",onClick:()=>n(!1),"aria-hidden":"true"}):null,(0,c.jsxs)("div",{"data-testid":"floating-action-button",className:(0,i.cn)("relative z-50",b),style:k,children:[(0,c.jsx)("div",{className:(0,i.cn)("absolute start-0 bottom-[calc(100%+24px)] flex flex-col items-start gap-2",!m&&"pointer-events-none"),"data-testid":"fab-actions",children:a.map((b,d)=>{let e=(a.length-1-d)*50;return(0,c.jsxs)("button",{"data-testid":`fab-action-${b.id}`,"aria-label":b.label,disabled:b.disabled??b.loading,className:(0,i.cn)("flex h-10 items-center gap-2.5 rounded-full px-4","bg-background text-foreground shadow-md","border-border border","hover:bg-accent hover:text-accent-foreground","disabled:pointer-events-none disabled:opacity-50","text-sm font-medium whitespace-nowrap",m?"translate-y-0 opacity-100":"pointer-events-none translate-y-0 opacity-0"),style:{transition:`opacity ${m?250:120}ms ease-out ${m?e:0}ms, transform ${m?250:120}ms ease-out ${m?e:0}ms`},onClick:()=>{b.onClick(),n(!1)},children:[(0,c.jsx)("span",{className:"flex h-5 w-5 shrink-0 items-center justify-center",children:b.loading?(0,c.jsx)(f.Loader2,{className:"h-4 w-4 animate-spin"}):b.icon}),(0,c.jsx)("span",{children:b.label})]},b.id)})}),(0,c.jsxs)(j.Button,{size:"icon","data-testid":"fab-trigger","aria-label":l(m?"fab.closeActions":"fab.createNew"),className:(0,i.cn)("relative h-14 w-14 rounded-full shadow-lg","bg-indigo-500 text-white hover:bg-indigo-400 dark:bg-indigo-500 dark:hover:bg-indigo-400","transition-all duration-200 hover:scale-105 hover:shadow-xl active:scale-95"),onClick:()=>n(a=>!a),children:[(0,c.jsx)(e.Plus,{className:(0,i.cn)("absolute h-7 w-7 stroke-[2.5] transition-all",m?"scale-0 rotate-90 opacity-0":"scale-100 rotate-0 opacity-100"),style:{transitionDuration:"250ms"}}),(0,c.jsx)(g.X,{className:(0,i.cn)("absolute h-6 w-6 stroke-[2.5] transition-all",m?"scale-100 rotate-0 opacity-100":"scale-0 -rotate-90 opacity-0"),style:{transitionDuration:"250ms"}})]})]})]})}a.s(["FloatingActionButton",()=>k],233981),a.s([],281834);var l=a.i(645670),m=a.i(390920),n=a.i(289111);let o=(0,n.createServerReference)("409f3d622d9b3706d5f170602d19cc293aa8a29b80",n.callServer,void 0,n.findSourceMapURL,"createProjectFolder");function p({open:a,onOpenChange:b,onCreated:e}){let[g,h]=(0,d.useState)(""),[i,k]=(0,d.useState)(!1),[n,p]=(0,d.useState)(null);(0,d.useEffect)(()=>{a&&(h(""),k(!1),p(null))},[a]);let q=async a=>{a.preventDefault();let c=g.trim();if(!c||i)return;k(!0),p(null);let d=await o(c);if(!d.ok||!d.path){p(d.error??"Failed to create project."),k(!1);return}e(d.path),b(!1)};return(0,c.jsx)(l.Dialog,{open:a,onOpenChange:b,children:(0,c.jsx)(l.DialogContent,{className:"max-w-sm",children:(0,c.jsxs)("form",{onSubmit:q,children:[(0,c.jsxs)(l.DialogHeader,{children:[(0,c.jsx)(l.DialogTitle,{children:"New project"}),(0,c.jsx)(l.DialogDescription,{children:"Create an empty project folder inside your Shep home directory. Git will be initialised automatically when the project is added."})]}),(0,c.jsxs)("div",{className:"py-4",children:[(0,c.jsx)(m.Input,{autoFocus:!0,value:g,onChange:a=>{h(a.target.value),n&&p(null)},placeholder:"my-prototype",disabled:i,"data-testid":"new-project-name-input"}),n?(0,c.jsx)("p",{className:"text-destructive mt-2 text-xs",role:"alert",children:n}):null]}),(0,c.jsxs)(l.DialogFooter,{children:[(0,c.jsx)(j.Button,{type:"button",variant:"ghost",onClick:()=>b(!1),disabled:i,children:"Cancel"}),(0,c.jsx)(j.Button,{type:"submit",disabled:!g.trim()||i,children:i?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(f.Loader2,{className:"mr-2 h-4 w-4 animate-spin"}),"Creating…"]}):"Create project"})]})]})})})}a.s(["NewProjectDialog",()=>p],316676)},795599,a=>{"use strict";var b=a.i(289111);let c=(0,b.createServerReference)("40d1d116caf904c2efac53381ef6e5d32250a4a042",b.callServer,void 0,b.findSourceMapURL,"archiveFeature");a.s(["archiveFeature",()=>c])},372192,a=>{"use strict";var b=a.i(289111);let c=(0,b.createServerReference)("7834489596b2b14c929806b48ffff590a12854d7de",b.callServer,void 0,b.findSourceMapURL,"deleteFeature");a.s(["deleteFeature",()=>c])},228205,a=>{"use strict";var b=a.i(289111);let c=(0,b.createServerReference)("4092c0bc0d4f943525dd619742641d13d14d68660e",b.callServer,void 0,b.findSourceMapURL,"unarchiveFeature");a.s(["unarchiveFeature",()=>c])}];
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=
|
|
3
|
+
//# sourceMappingURL=_69d28743._.js.map
|