@shepai/cli 1.72.9-pr220.b37503f → 1.72.9-pr220.ce0911d
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/dist/packages/core/src/infrastructure/services/notifications/notification.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/notifications/notification.service.js +2 -4
- package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.js +9 -5
- package/dist/src/presentation/web/components/common/index.d.ts +0 -1
- package/dist/src/presentation/web/components/common/index.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/index.js +0 -1
- package/dist/src/presentation/web/components/features/control-center/control-center-inner.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/control-center-inner.js +3 -4
- package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/use-control-center-state.js +12 -7
- package/dist/src/presentation/web/components/ui/alert-dialog.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/alert-dialog.js +2 -2
- package/dist/src/presentation/web/components/ui/dialog.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/dialog.js +2 -2
- package/dist/src/presentation/web/hooks/use-notifications.d.ts +1 -5
- package/dist/src/presentation/web/hooks/use-notifications.d.ts.map +1 -1
- package/dist/src/presentation/web/hooks/use-notifications.js +1 -26
- package/dist/src/presentation/web/hooks/use-notifications.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/hooks/use-notifications.stories.js +28 -38
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/build-manifest.json +2 -2
- package/web/.next/cache/.previewinfo +1 -1
- package/web/.next/cache/.rscinfo +1 -1
- package/web/.next/cache/.tsbuildinfo +1 -1
- package/web/.next/cache/config.json +3 -3
- package/web/.next/fallback-build-manifest.json +2 -2
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +15 -15
- 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]/page/server-reference-manifest.json +18 -18
- 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]/page/server-reference-manifest.json +13 -13
- 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)/create/page/server-reference-manifest.json +15 -15
- 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]/page/server-reference-manifest.json +18 -18
- 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)/page/server-reference-manifest.json +13 -13
- package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +13 -13
- 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/server-reference-manifest.json +1 -1
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/skills/page.js.nft.json +1 -1
- package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/tools/page.js.nft.json +1 -1
- package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_816618e2.js +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_816618e2.js.map +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_ba2e050f.js +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_ba2e050f.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__17a611f0._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__17a611f0._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__45dbf93d._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__45dbf93d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6258349c._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6258349c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6cbc1149._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__94a6d275._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__94a6d275._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_07c2a32a._.js +1 -1
- package/web/.next/server/chunks/ssr/_07c2a32a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0e9d6bf7._.js +1 -1
- package/web/.next/server/chunks/ssr/_0e9d6bf7._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_bfe260db._.js → _1fae710b._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_bfe260db._.js.map → _1fae710b._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_61351ed3._.js +1 -1
- package/web/.next/server/chunks/ssr/_61351ed3._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_8400c8bb._.js +1 -1
- package/web/.next/server/chunks/ssr/_8400c8bb._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_9f940437._.js +1 -1
- package/web/.next/server/chunks/ssr/_9f940437._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_2b91e4ec._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_2b91e4ec._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_5bcc1537._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_5bcc1537._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_5955c012.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_5955c012.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_d5b0cb86._.js +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_d5b0cb86._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_e626b63c._.js +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_e626b63c._.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 +21 -21
- package/web/.next/standalone/src/presentation/web/.next/BUILD_ID +1 -1
- package/web/.next/standalone/src/presentation/web/.next/build-manifest.json +2 -2
- package/web/.next/standalone/src/presentation/web/.next/prerender-manifest.json +3 -3
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +15 -15
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +18 -18
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +13 -13
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +15 -15
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +18 -18
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +13 -13
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +13 -13
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
- package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
- package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_816618e2.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_ba2e050f.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__17a611f0._.js +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__45dbf93d._.js +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6258349c._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6cbc1149._.js +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__94a6d275._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_07c2a32a._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_0e9d6bf7._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/{_bfe260db._.js → _1fae710b._.js} +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_61351ed3._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_8400c8bb._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_9f940437._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_2b91e4ec._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_5bcc1537._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_5955c012.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_d5b0cb86._.js +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_e626b63c._.js +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/pages/500.html +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.json +21 -21
- package/web/.next/standalone/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.tsx +12 -8
- package/web/.next/standalone/src/presentation/web/components/common/index.ts +0 -1
- package/web/.next/standalone/src/presentation/web/components/features/control-center/control-center-inner.tsx +12 -21
- package/web/.next/standalone/src/presentation/web/components/features/control-center/use-control-center-state.ts +14 -9
- package/web/.next/standalone/src/presentation/web/components/ui/alert-dialog.tsx +2 -5
- package/web/.next/standalone/src/presentation/web/components/ui/dialog.tsx +2 -5
- package/web/.next/standalone/src/presentation/web/hooks/use-notifications.stories.tsx +2 -30
- package/web/.next/standalone/src/presentation/web/hooks/use-notifications.ts +2 -36
- package/web/.next/static/chunks/02f29f2542ce0260.js +1 -0
- package/web/.next/static/chunks/{23c1967162dc07ad.js → 145335ccbec019cd.js} +1 -1
- package/web/.next/static/chunks/{390ea4ebb0916340.js → 28ab1bfc2f001573.js} +1 -1
- package/web/.next/static/chunks/3f205fd6adbfd20a.js +7 -0
- package/web/.next/static/chunks/5c1f5a37231b6108.js +1 -0
- package/web/.next/static/chunks/87bd8e61a05cb052.css +2 -0
- package/web/.next/static/chunks/{f32c98a709949c5b.js → cb41849bcfaa304e.js} +1 -1
- package/web/.next/static/chunks/{5390d8e3bf2eedda.js → cd256f1719637fae.js} +1 -1
- package/web/.next/static/chunks/{5aa0b1914307ef0e.js → ce35cf93d71d1c1e.js} +1 -1
- package/web/.next/static/chunks/d8b549dcd668b553.js +1 -0
- package/web/.next/static/chunks/{4b0b6f097df90f53.js → da76b4d6b8a4cdb0.js} +1 -1
- package/web/.next/static/chunks/f3d1b4bf5f83a7bb.js +1 -0
- package/web/.next/trace +1 -1
- package/web/.next/trace-build +1 -1
- package/dist/src/presentation/web/components/common/notification-permission-banner/index.d.ts +0 -2
- package/dist/src/presentation/web/components/common/notification-permission-banner/index.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/notification-permission-banner/index.js +0 -1
- package/dist/src/presentation/web/components/common/notification-permission-banner/notification-permission-banner.d.ts +0 -2
- package/dist/src/presentation/web/components/common/notification-permission-banner/notification-permission-banner.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/notification-permission-banner/notification-permission-banner.js +0 -33
- package/dist/src/presentation/web/components/common/notification-permission-banner/notification-permission-banner.stories.d.ts +0 -6
- package/dist/src/presentation/web/components/common/notification-permission-banner/notification-permission-banner.stories.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/notification-permission-banner/notification-permission-banner.stories.js +0 -24
- package/web/.next/standalone/src/presentation/web/components/common/notification-permission-banner/index.ts +0 -1
- package/web/.next/standalone/src/presentation/web/components/common/notification-permission-banner/notification-permission-banner.stories.tsx +0 -52
- package/web/.next/standalone/src/presentation/web/components/common/notification-permission-banner/notification-permission-banner.tsx +0 -55
- package/web/.next/static/chunks/0c54314c8c9c9739.js +0 -7
- package/web/.next/static/chunks/22ceb5fd5e6ab0a0.js +0 -1
- package/web/.next/static/chunks/3ce513995a0c3651.js +0 -1
- package/web/.next/static/chunks/71c9ecdceac1939f.css +0 -2
- package/web/.next/static/chunks/aec088b06301af4c.js +0 -1
- package/web/.next/static/chunks/e5298429c86fbb66.js +0 -1
- /package/web/.next/static/{N-8C_lFMU9vAmNLk5xJFf → DSNQz6BAG_GWooVc5rWTS}/_buildManifest.js +0 -0
- /package/web/.next/static/{N-8C_lFMU9vAmNLk5xJFf → DSNQz6BAG_GWooVc5rWTS}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{N-8C_lFMU9vAmNLk5xJFf → DSNQz6BAG_GWooVc5rWTS}/_ssgManifest.js +0 -0
|
@@ -31,7 +31,6 @@ export {
|
|
|
31
31
|
export { FeatureStatusBadges, type FeatureStatusBadgesProps } from './feature-status-badges';
|
|
32
32
|
export { FeatureStatusGroup, type FeatureStatusGroupProps } from './feature-status-group';
|
|
33
33
|
export { LoadingSkeleton } from './loading-skeleton';
|
|
34
|
-
export { NotificationPermissionBanner } from './notification-permission-banner';
|
|
35
34
|
export {
|
|
36
35
|
RepositoryNode,
|
|
37
36
|
type RepositoryNodeData,
|
|
@@ -7,7 +7,6 @@ import { FeaturesCanvas } from '@/components/features/features-canvas';
|
|
|
7
7
|
import type { CanvasNodeType } from '@/components/features/features-canvas';
|
|
8
8
|
import type { FeatureNodeData } from '@/components/common/feature-node';
|
|
9
9
|
import type { RepositoryNodeData } from '@/components/common/repository-node';
|
|
10
|
-
import { NotificationPermissionBanner } from '@/components/common/notification-permission-banner';
|
|
11
10
|
import {
|
|
12
11
|
useSidebarFeaturesContext,
|
|
13
12
|
mapNodeStateToSidebarStatus,
|
|
@@ -235,28 +234,20 @@ export function ControlCenterInner({ initialNodes, initialEdges }: ControlCenter
|
|
|
235
234
|
const hasRepositories = nodes.some((n) => n.type === 'repositoryNode');
|
|
236
235
|
|
|
237
236
|
if (!hasRepositories) {
|
|
238
|
-
return
|
|
239
|
-
<>
|
|
240
|
-
<NotificationPermissionBanner />
|
|
241
|
-
<ControlCenterEmptyState onRepositorySelect={handleAddRepository} />
|
|
242
|
-
</>
|
|
243
|
-
);
|
|
237
|
+
return <ControlCenterEmptyState onRepositorySelect={handleAddRepository} />;
|
|
244
238
|
}
|
|
245
239
|
|
|
246
240
|
return (
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
emptyState={<ControlCenterEmptyState onRepositorySelect={handleAddRepository} />}
|
|
259
|
-
/>
|
|
260
|
-
</>
|
|
241
|
+
<FeaturesCanvas
|
|
242
|
+
nodes={nodes}
|
|
243
|
+
edges={edges}
|
|
244
|
+
selectedFeatureId={selectedFeatureId}
|
|
245
|
+
onNodesChange={onNodesChange}
|
|
246
|
+
onConnect={handleConnect}
|
|
247
|
+
onAddFeature={handleAddFeature}
|
|
248
|
+
onNodeClick={handleNodeClick}
|
|
249
|
+
onPaneClick={handleClearDrawers}
|
|
250
|
+
emptyState={<ControlCenterEmptyState onRepositorySelect={handleAddRepository} />}
|
|
251
|
+
/>
|
|
261
252
|
);
|
|
262
253
|
}
|
|
@@ -145,10 +145,12 @@ export function useControlCenterState(
|
|
|
145
145
|
const newEvents = events.slice(processedEventCountRef.current);
|
|
146
146
|
processedEventCountRef.current = events.length;
|
|
147
147
|
|
|
148
|
-
//
|
|
149
|
-
//
|
|
150
|
-
//
|
|
151
|
-
//
|
|
148
|
+
// When WaitingApproval and PhaseCompleted arrive in the same poll batch for a feature,
|
|
149
|
+
// PhaseCompleted must be fully suppressed (both state AND lifecycle). Without this,
|
|
150
|
+
// a phase-timing PhaseCompleted (e.g. phaseName='research') can regress the lifecycle
|
|
151
|
+
// that WaitingApproval already set correctly (e.g. to 'implementation' for plan gate).
|
|
152
|
+
// When PhaseCompleted arrives WITHOUT WaitingApproval (e.g. after approval), we allow
|
|
153
|
+
// it to update both state and lifecycle as a fallback for any missed AgentStarted event.
|
|
152
154
|
const waitingApprovalFeatures = new Set(
|
|
153
155
|
newEvents
|
|
154
156
|
.filter((e) => e.eventType === NotificationEventType.WaitingApproval)
|
|
@@ -156,12 +158,15 @@ export function useControlCenterState(
|
|
|
156
158
|
);
|
|
157
159
|
|
|
158
160
|
for (const event of newEvents) {
|
|
159
|
-
const
|
|
161
|
+
const isSuppressedPhaseCompleted =
|
|
160
162
|
event.eventType === NotificationEventType.PhaseCompleted &&
|
|
161
|
-
waitingApprovalFeatures.has(event.featureId)
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
163
|
+
waitingApprovalFeatures.has(event.featureId);
|
|
164
|
+
const newState = isSuppressedPhaseCompleted
|
|
165
|
+
? undefined
|
|
166
|
+
: mapEventTypeToState(event.eventType);
|
|
167
|
+
const newLifecycle = isSuppressedPhaseCompleted
|
|
168
|
+
? undefined
|
|
169
|
+
: mapPhaseNameToLifecycle(event.phaseName);
|
|
165
170
|
|
|
166
171
|
const nodeId = `feat-${event.featureId}`;
|
|
167
172
|
if (newState !== undefined || newLifecycle !== undefined) {
|
|
@@ -28,10 +28,7 @@ function AlertDialogOverlay({
|
|
|
28
28
|
return (
|
|
29
29
|
<AlertDialogPrimitive.Overlay
|
|
30
30
|
data-slot="alert-dialog-overlay"
|
|
31
|
-
className={cn(
|
|
32
|
-
'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50',
|
|
33
|
-
className
|
|
34
|
-
)}
|
|
31
|
+
className={cn('fixed inset-0 z-50 bg-black/50', className)}
|
|
35
32
|
onClick={(e) => {
|
|
36
33
|
// Prevent overlay clicks from propagating to document-level handlers
|
|
37
34
|
// (e.g. BaseDrawer outside-click) — only the dialog should dismiss.
|
|
@@ -57,7 +54,7 @@ function AlertDialogContent({
|
|
|
57
54
|
data-slot="alert-dialog-content"
|
|
58
55
|
data-size={size}
|
|
59
56
|
className={cn(
|
|
60
|
-
'bg-background
|
|
57
|
+
'bg-background group/alert-dialog-content fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-lg',
|
|
61
58
|
className
|
|
62
59
|
)}
|
|
63
60
|
{...props}
|
|
@@ -20,10 +20,7 @@ const DialogOverlay = React.forwardRef<
|
|
|
20
20
|
>(({ className, onClick, ...props }, ref) => (
|
|
21
21
|
<DialogPrimitive.Overlay
|
|
22
22
|
ref={ref}
|
|
23
|
-
className={cn(
|
|
24
|
-
'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80',
|
|
25
|
-
className
|
|
26
|
-
)}
|
|
23
|
+
className={cn('fixed inset-0 z-50 bg-black/80', className)}
|
|
27
24
|
onClick={(e) => {
|
|
28
25
|
// Prevent overlay clicks from propagating to document-level handlers
|
|
29
26
|
// (e.g. BaseDrawer outside-click) — only the dialog should dismiss.
|
|
@@ -44,7 +41,7 @@ const DialogContent = React.forwardRef<
|
|
|
44
41
|
<DialogPrimitive.Content
|
|
45
42
|
ref={ref}
|
|
46
43
|
className={cn(
|
|
47
|
-
'bg-background
|
|
44
|
+
'bg-background 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 sm:rounded-lg',
|
|
48
45
|
className
|
|
49
46
|
)}
|
|
50
47
|
{...props}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useCallback, useMemo
|
|
1
|
+
import { useCallback, useMemo } from 'react';
|
|
2
2
|
import type { Meta, StoryObj } from '@storybook/react';
|
|
3
3
|
import { toast } from 'sonner';
|
|
4
4
|
import { Toaster } from '@/components/ui/sonner';
|
|
@@ -44,45 +44,17 @@ function NotificationDemo() {
|
|
|
44
44
|
const method = event.severity ?? 'info';
|
|
45
45
|
toast[method](event.featureName, { description: event.message });
|
|
46
46
|
|
|
47
|
-
if (globalThis.Notification?.permission === 'granted') {
|
|
48
|
-
new Notification(event.featureName, { body: event.message });
|
|
49
|
-
}
|
|
50
|
-
|
|
51
47
|
const soundName = SEVERITY_SOUNDS[event.severity];
|
|
52
48
|
soundsByName[soundName]?.play();
|
|
53
49
|
},
|
|
54
50
|
[soundsByName]
|
|
55
51
|
);
|
|
56
52
|
|
|
57
|
-
const [browserPermission, setBrowserPermission] = useState<NotificationPermission>(
|
|
58
|
-
typeof globalThis.Notification !== 'undefined' ? globalThis.Notification.permission : 'default'
|
|
59
|
-
);
|
|
60
|
-
|
|
61
|
-
const requestPermission = async () => {
|
|
62
|
-
if (typeof globalThis.Notification === 'undefined') return;
|
|
63
|
-
const result = await globalThis.Notification.requestPermission();
|
|
64
|
-
setBrowserPermission(result);
|
|
65
|
-
};
|
|
66
|
-
|
|
67
53
|
return (
|
|
68
54
|
<div className="flex w-[420px] flex-col gap-6">
|
|
69
|
-
<div className="flex flex-col gap-2">
|
|
70
|
-
<h3 className="text-sm font-semibold">Browser Notification Permission</h3>
|
|
71
|
-
<div className="flex items-center gap-3">
|
|
72
|
-
<span className="text-muted-foreground text-sm">
|
|
73
|
-
Status: <code className="bg-muted rounded px-1.5 py-0.5">{browserPermission}</code>
|
|
74
|
-
</span>
|
|
75
|
-
<Button size="sm" variant="outline" onClick={requestPermission}>
|
|
76
|
-
Request Permission
|
|
77
|
-
</Button>
|
|
78
|
-
</div>
|
|
79
|
-
</div>
|
|
80
|
-
|
|
81
55
|
<div className="flex flex-col gap-2">
|
|
82
56
|
<h3 className="text-sm font-semibold">Simulate Notification Events</h3>
|
|
83
|
-
<p className="text-muted-foreground text-xs">
|
|
84
|
-
Click a button to fire a toast, browser notification, and sound.
|
|
85
|
-
</p>
|
|
57
|
+
<p className="text-muted-foreground text-xs">Click a button to fire a toast and sound.</p>
|
|
86
58
|
<div className="flex flex-wrap gap-2">
|
|
87
59
|
<Button
|
|
88
60
|
size="sm"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { useEffect, useMemo, useRef } from 'react';
|
|
4
4
|
import { useRouter } from 'next/navigation';
|
|
5
5
|
import { toast } from 'sonner';
|
|
6
6
|
import type { NotificationEvent } from '@shepai/core/domain/generated/output';
|
|
@@ -9,11 +9,6 @@ import { useAgentEventsContext } from './agent-events-provider';
|
|
|
9
9
|
import { useSoundAction } from './use-sound-action';
|
|
10
10
|
import type { SoundAction } from './use-sound-action';
|
|
11
11
|
|
|
12
|
-
export interface UseNotificationsResult {
|
|
13
|
-
requestBrowserPermission: () => Promise<void>;
|
|
14
|
-
browserPermissionState: NotificationPermission;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
12
|
const SEVERITY_TO_TOAST: Record<NotificationSeverity, 'success' | 'error' | 'warning' | 'info'> = {
|
|
18
13
|
[NotificationSeverity.Success]: 'success',
|
|
19
14
|
[NotificationSeverity.Error]: 'error',
|
|
@@ -38,16 +33,6 @@ function dispatchToast(event: NotificationEvent, navigate?: (path: string) => vo
|
|
|
38
33
|
});
|
|
39
34
|
}
|
|
40
35
|
|
|
41
|
-
function dispatchBrowserNotification(event: NotificationEvent): void {
|
|
42
|
-
if (globalThis.Notification?.permission !== 'granted') {
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
new Notification(`Shep: ${event.featureName}`, {
|
|
46
|
-
body: event.message,
|
|
47
|
-
icon: '/favicon-light.svg',
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
|
|
51
36
|
const SEVERITY_TO_ACTION: Record<NotificationSeverity, SoundAction> = {
|
|
52
37
|
[NotificationSeverity.Success]: 'notification-success',
|
|
53
38
|
[NotificationSeverity.Error]: 'notification-error',
|
|
@@ -55,7 +40,7 @@ const SEVERITY_TO_ACTION: Record<NotificationSeverity, SoundAction> = {
|
|
|
55
40
|
[NotificationSeverity.Info]: 'notification-info',
|
|
56
41
|
};
|
|
57
42
|
|
|
58
|
-
export function useNotifications():
|
|
43
|
+
export function useNotifications(): void {
|
|
59
44
|
const router = useRouter();
|
|
60
45
|
const { events } = useAgentEventsContext();
|
|
61
46
|
|
|
@@ -74,13 +59,6 @@ export function useNotifications(): UseNotificationsResult {
|
|
|
74
59
|
[successSound, errorSound, warningSound, infoSound]
|
|
75
60
|
);
|
|
76
61
|
|
|
77
|
-
const [browserPermissionState, setBrowserPermissionState] = useState<NotificationPermission>(
|
|
78
|
-
() => {
|
|
79
|
-
if (typeof globalThis.Notification === 'undefined') return 'default';
|
|
80
|
-
return globalThis.Notification.permission;
|
|
81
|
-
}
|
|
82
|
-
);
|
|
83
|
-
|
|
84
62
|
// Track how many events from the array we've already processed.
|
|
85
63
|
// Using the array index (instead of lastEvent) prevents React batching
|
|
86
64
|
// from silently dropping events when multiple SSE messages arrive together.
|
|
@@ -103,21 +81,9 @@ export function useNotifications(): UseNotificationsResult {
|
|
|
103
81
|
}
|
|
104
82
|
|
|
105
83
|
dispatchToast(event, (path) => router.push(path as Parameters<typeof router.push>[0]));
|
|
106
|
-
dispatchBrowserNotification(event);
|
|
107
84
|
|
|
108
85
|
const actionName = SEVERITY_TO_ACTION[event.severity];
|
|
109
86
|
soundsByAction[actionName]?.play();
|
|
110
87
|
}
|
|
111
88
|
}, [events, soundsByAction, router]);
|
|
112
|
-
|
|
113
|
-
const requestBrowserPermission = useCallback(async () => {
|
|
114
|
-
if (typeof globalThis.Notification === 'undefined') return;
|
|
115
|
-
const result = await globalThis.Notification.requestPermission();
|
|
116
|
-
setBrowserPermissionState(result);
|
|
117
|
-
}, []);
|
|
118
|
-
|
|
119
|
-
return {
|
|
120
|
-
requestBrowserPermission,
|
|
121
|
-
browserPermissionState,
|
|
122
|
-
};
|
|
123
89
|
}
|