@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.
Files changed (229) hide show
  1. package/dist/packages/core/src/infrastructure/services/notifications/notification.service.d.ts.map +1 -1
  2. package/dist/packages/core/src/infrastructure/services/notifications/notification.service.js +2 -4
  3. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.d.ts.map +1 -1
  4. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.js +9 -5
  5. package/dist/src/presentation/web/components/common/index.d.ts +0 -1
  6. package/dist/src/presentation/web/components/common/index.d.ts.map +1 -1
  7. package/dist/src/presentation/web/components/common/index.js +0 -1
  8. package/dist/src/presentation/web/components/features/control-center/control-center-inner.d.ts.map +1 -1
  9. package/dist/src/presentation/web/components/features/control-center/control-center-inner.js +3 -4
  10. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts.map +1 -1
  11. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.js +12 -7
  12. package/dist/src/presentation/web/components/ui/alert-dialog.d.ts.map +1 -1
  13. package/dist/src/presentation/web/components/ui/alert-dialog.js +2 -2
  14. package/dist/src/presentation/web/components/ui/dialog.d.ts.map +1 -1
  15. package/dist/src/presentation/web/components/ui/dialog.js +2 -2
  16. package/dist/src/presentation/web/hooks/use-notifications.d.ts +1 -5
  17. package/dist/src/presentation/web/hooks/use-notifications.d.ts.map +1 -1
  18. package/dist/src/presentation/web/hooks/use-notifications.js +1 -26
  19. package/dist/src/presentation/web/hooks/use-notifications.stories.d.ts.map +1 -1
  20. package/dist/src/presentation/web/hooks/use-notifications.stories.js +28 -38
  21. package/dist/tsconfig.build.tsbuildinfo +1 -1
  22. package/package.json +1 -1
  23. package/web/.next/BUILD_ID +1 -1
  24. package/web/.next/build-manifest.json +2 -2
  25. package/web/.next/cache/.previewinfo +1 -1
  26. package/web/.next/cache/.rscinfo +1 -1
  27. package/web/.next/cache/.tsbuildinfo +1 -1
  28. package/web/.next/cache/config.json +3 -3
  29. package/web/.next/fallback-build-manifest.json +2 -2
  30. package/web/.next/prerender-manifest.json +3 -3
  31. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +15 -15
  32. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  33. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  34. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +18 -18
  35. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  36. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  37. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +13 -13
  38. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  39. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  40. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +15 -15
  41. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  42. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  43. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +18 -18
  44. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  45. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  46. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +13 -13
  47. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  48. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  49. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +13 -13
  50. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  51. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  52. package/web/.next/server/app/_global-error.html +2 -2
  53. package/web/.next/server/app/_global-error.rsc +1 -1
  54. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  55. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  56. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  57. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  58. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  59. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  60. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  61. package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  62. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  63. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  64. package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
  65. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  66. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  67. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  68. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  69. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  70. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  71. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_816618e2.js +1 -1
  72. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_816618e2.js.map +1 -1
  73. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_ba2e050f.js +1 -1
  74. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_ba2e050f.js.map +1 -1
  75. package/web/.next/server/chunks/ssr/[root-of-the-server]__17a611f0._.js +2 -2
  76. package/web/.next/server/chunks/ssr/[root-of-the-server]__17a611f0._.js.map +1 -1
  77. package/web/.next/server/chunks/ssr/[root-of-the-server]__45dbf93d._.js +2 -2
  78. package/web/.next/server/chunks/ssr/[root-of-the-server]__45dbf93d._.js.map +1 -1
  79. package/web/.next/server/chunks/ssr/[root-of-the-server]__6258349c._.js +1 -1
  80. package/web/.next/server/chunks/ssr/[root-of-the-server]__6258349c._.js.map +1 -1
  81. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
  82. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js.map +1 -1
  83. package/web/.next/server/chunks/ssr/[root-of-the-server]__6cbc1149._.js +2 -2
  84. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
  85. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js.map +1 -1
  86. package/web/.next/server/chunks/ssr/[root-of-the-server]__94a6d275._.js +1 -1
  87. package/web/.next/server/chunks/ssr/[root-of-the-server]__94a6d275._.js.map +1 -1
  88. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +1 -1
  89. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
  90. package/web/.next/server/chunks/ssr/_07c2a32a._.js +1 -1
  91. package/web/.next/server/chunks/ssr/_07c2a32a._.js.map +1 -1
  92. package/web/.next/server/chunks/ssr/_0e9d6bf7._.js +1 -1
  93. package/web/.next/server/chunks/ssr/_0e9d6bf7._.js.map +1 -1
  94. package/web/.next/server/chunks/ssr/{_bfe260db._.js → _1fae710b._.js} +2 -2
  95. package/web/.next/server/chunks/ssr/{_bfe260db._.js.map → _1fae710b._.js.map} +1 -1
  96. package/web/.next/server/chunks/ssr/_61351ed3._.js +1 -1
  97. package/web/.next/server/chunks/ssr/_61351ed3._.js.map +1 -1
  98. package/web/.next/server/chunks/ssr/_8400c8bb._.js +1 -1
  99. package/web/.next/server/chunks/ssr/_8400c8bb._.js.map +1 -1
  100. package/web/.next/server/chunks/ssr/_9f940437._.js +1 -1
  101. package/web/.next/server/chunks/ssr/_9f940437._.js.map +1 -1
  102. package/web/.next/server/chunks/ssr/src_presentation_web_2b91e4ec._.js +1 -1
  103. package/web/.next/server/chunks/ssr/src_presentation_web_2b91e4ec._.js.map +1 -1
  104. package/web/.next/server/chunks/ssr/src_presentation_web_5bcc1537._.js +1 -1
  105. package/web/.next/server/chunks/ssr/src_presentation_web_5bcc1537._.js.map +1 -1
  106. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_5955c012.js +1 -1
  107. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_5955c012.js.map +1 -1
  108. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  109. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
  110. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  111. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  112. package/web/.next/server/chunks/ssr/src_presentation_web_d5b0cb86._.js +2 -2
  113. package/web/.next/server/chunks/ssr/src_presentation_web_d5b0cb86._.js.map +1 -1
  114. package/web/.next/server/chunks/ssr/src_presentation_web_e626b63c._.js +2 -2
  115. package/web/.next/server/chunks/ssr/src_presentation_web_e626b63c._.js.map +1 -1
  116. package/web/.next/server/pages/500.html +2 -2
  117. package/web/.next/server/server-reference-manifest.js +1 -1
  118. package/web/.next/server/server-reference-manifest.json +21 -21
  119. package/web/.next/standalone/src/presentation/web/.next/BUILD_ID +1 -1
  120. package/web/.next/standalone/src/presentation/web/.next/build-manifest.json +2 -2
  121. package/web/.next/standalone/src/presentation/web/.next/prerender-manifest.json +3 -3
  122. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +15 -15
  123. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  124. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  125. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +18 -18
  126. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  127. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  128. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +13 -13
  129. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  130. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  131. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +15 -15
  132. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  133. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  134. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +18 -18
  135. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  136. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  137. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +13 -13
  138. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  139. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  140. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +13 -13
  141. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  142. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  143. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.html +2 -2
  144. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.rsc +1 -1
  145. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  146. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  147. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  148. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  149. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  150. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  151. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  152. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  153. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page.js.nft.json +1 -1
  154. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  155. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
  156. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page.js.nft.json +1 -1
  157. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  158. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  159. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  160. 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
  161. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_816618e2.js +1 -1
  162. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_ba2e050f.js +1 -1
  163. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__17a611f0._.js +2 -2
  164. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__45dbf93d._.js +2 -2
  165. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6258349c._.js +1 -1
  166. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
  167. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6cbc1149._.js +2 -2
  168. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
  169. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__94a6d275._.js +1 -1
  170. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +1 -1
  171. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_07c2a32a._.js +1 -1
  172. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_0e9d6bf7._.js +1 -1
  173. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/{_bfe260db._.js → _1fae710b._.js} +2 -2
  174. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_61351ed3._.js +1 -1
  175. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_8400c8bb._.js +1 -1
  176. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_9f940437._.js +1 -1
  177. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_2b91e4ec._.js +1 -1
  178. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_5bcc1537._.js +1 -1
  179. 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
  180. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  181. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  182. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_d5b0cb86._.js +2 -2
  183. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_e626b63c._.js +2 -2
  184. package/web/.next/standalone/src/presentation/web/.next/server/pages/500.html +2 -2
  185. package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.js +1 -1
  186. package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.json +21 -21
  187. package/web/.next/standalone/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.tsx +12 -8
  188. package/web/.next/standalone/src/presentation/web/components/common/index.ts +0 -1
  189. package/web/.next/standalone/src/presentation/web/components/features/control-center/control-center-inner.tsx +12 -21
  190. package/web/.next/standalone/src/presentation/web/components/features/control-center/use-control-center-state.ts +14 -9
  191. package/web/.next/standalone/src/presentation/web/components/ui/alert-dialog.tsx +2 -5
  192. package/web/.next/standalone/src/presentation/web/components/ui/dialog.tsx +2 -5
  193. package/web/.next/standalone/src/presentation/web/hooks/use-notifications.stories.tsx +2 -30
  194. package/web/.next/standalone/src/presentation/web/hooks/use-notifications.ts +2 -36
  195. package/web/.next/static/chunks/02f29f2542ce0260.js +1 -0
  196. package/web/.next/static/chunks/{23c1967162dc07ad.js → 145335ccbec019cd.js} +1 -1
  197. package/web/.next/static/chunks/{390ea4ebb0916340.js → 28ab1bfc2f001573.js} +1 -1
  198. package/web/.next/static/chunks/3f205fd6adbfd20a.js +7 -0
  199. package/web/.next/static/chunks/5c1f5a37231b6108.js +1 -0
  200. package/web/.next/static/chunks/87bd8e61a05cb052.css +2 -0
  201. package/web/.next/static/chunks/{f32c98a709949c5b.js → cb41849bcfaa304e.js} +1 -1
  202. package/web/.next/static/chunks/{5390d8e3bf2eedda.js → cd256f1719637fae.js} +1 -1
  203. package/web/.next/static/chunks/{5aa0b1914307ef0e.js → ce35cf93d71d1c1e.js} +1 -1
  204. package/web/.next/static/chunks/d8b549dcd668b553.js +1 -0
  205. package/web/.next/static/chunks/{4b0b6f097df90f53.js → da76b4d6b8a4cdb0.js} +1 -1
  206. package/web/.next/static/chunks/f3d1b4bf5f83a7bb.js +1 -0
  207. package/web/.next/trace +1 -1
  208. package/web/.next/trace-build +1 -1
  209. package/dist/src/presentation/web/components/common/notification-permission-banner/index.d.ts +0 -2
  210. package/dist/src/presentation/web/components/common/notification-permission-banner/index.d.ts.map +0 -1
  211. package/dist/src/presentation/web/components/common/notification-permission-banner/index.js +0 -1
  212. package/dist/src/presentation/web/components/common/notification-permission-banner/notification-permission-banner.d.ts +0 -2
  213. package/dist/src/presentation/web/components/common/notification-permission-banner/notification-permission-banner.d.ts.map +0 -1
  214. package/dist/src/presentation/web/components/common/notification-permission-banner/notification-permission-banner.js +0 -33
  215. package/dist/src/presentation/web/components/common/notification-permission-banner/notification-permission-banner.stories.d.ts +0 -6
  216. package/dist/src/presentation/web/components/common/notification-permission-banner/notification-permission-banner.stories.d.ts.map +0 -1
  217. package/dist/src/presentation/web/components/common/notification-permission-banner/notification-permission-banner.stories.js +0 -24
  218. package/web/.next/standalone/src/presentation/web/components/common/notification-permission-banner/index.ts +0 -1
  219. package/web/.next/standalone/src/presentation/web/components/common/notification-permission-banner/notification-permission-banner.stories.tsx +0 -52
  220. package/web/.next/standalone/src/presentation/web/components/common/notification-permission-banner/notification-permission-banner.tsx +0 -55
  221. package/web/.next/static/chunks/0c54314c8c9c9739.js +0 -7
  222. package/web/.next/static/chunks/22ceb5fd5e6ab0a0.js +0 -1
  223. package/web/.next/static/chunks/3ce513995a0c3651.js +0 -1
  224. package/web/.next/static/chunks/71c9ecdceac1939f.css +0 -2
  225. package/web/.next/static/chunks/aec088b06301af4c.js +0 -1
  226. package/web/.next/static/chunks/e5298429c86fbb66.js +0 -1
  227. /package/web/.next/static/{N-8C_lFMU9vAmNLk5xJFf → DSNQz6BAG_GWooVc5rWTS}/_buildManifest.js +0 -0
  228. /package/web/.next/static/{N-8C_lFMU9vAmNLk5xJFf → DSNQz6BAG_GWooVc5rWTS}/_clientMiddlewareManifest.json +0 -0
  229. /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
- <NotificationPermissionBanner />
249
- <FeaturesCanvas
250
- nodes={nodes}
251
- edges={edges}
252
- selectedFeatureId={selectedFeatureId}
253
- onNodesChange={onNodesChange}
254
- onConnect={handleConnect}
255
- onAddFeature={handleAddFeature}
256
- onNodeClick={handleNodeClick}
257
- onPaneClick={handleClearDrawers}
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
- // PhaseCompleted must NOT set state when WaitingApproval is in the same poll batch —
149
- // they arrive together and PhaseCompleted → 'running' would revert 'action-required'.
150
- // But when PhaseCompleted arrives WITHOUT WaitingApproval (e.g. after approval), we
151
- // must allow it to update state as a fallback for any missed AgentStarted event.
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 newState =
161
+ const isSuppressedPhaseCompleted =
160
162
  event.eventType === NotificationEventType.PhaseCompleted &&
161
- waitingApprovalFeatures.has(event.featureId)
162
- ? undefined
163
- : mapEventTypeToState(event.eventType);
164
- const newLifecycle = mapPhaseNameToLifecycle(event.phaseName);
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 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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 duration-200 data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-lg',
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 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] 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-200 sm:rounded-lg',
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, useState } from 'react';
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 { useCallback, useEffect, useMemo, useRef, useState } from 'react';
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(): UseNotificationsResult {
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
  }