cap-creatives-ui 8.0.73 → 8.0.143

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 (323) hide show
  1. package/.cursor/cursorignore +73 -0
  2. package/.cursor/rules/core.mdc +164 -0
  3. package/.cursor/rules/customization.mdc +137 -0
  4. package/.cursor/rules/riper-workflow.mdc +196 -0
  5. package/.cursor/rules/start-phase.mdc +367 -0
  6. package/.cursor/rules/state.mdc +174 -0
  7. package/.eslintrc +0 -1
  8. package/.husky/_/husky.sh +32 -0
  9. package/.husky/pre-commit +4 -0
  10. package/__mocks__/vulcanReactSdkMock.js +27 -0
  11. package/app/components/TemplatePreview/_templatePreview.scss +3 -0
  12. package/app/components/TemplatePreview/index.js +2 -0
  13. package/app/config/app.js +6 -0
  14. package/app/containers/App/constants.js +1 -0
  15. package/app/containers/App/test/saga.test.js +1 -1
  16. package/app/containers/Assets/Gallery/sagas.js +2 -2
  17. package/app/containers/Assets/Gallery/tests/__snapshots__/reducer.test.js.snap +1 -1
  18. package/app/containers/Assets/Gallery/tests/actions.test.js +2 -3
  19. package/app/containers/Assets/Gallery/tests/reducer.test.js +7 -7
  20. package/app/containers/Assets/Gallery/tests/saga.test.js +50 -54
  21. package/app/containers/Cap/tests/__snapshots__/index.test.js.snap +1 -0
  22. package/app/containers/Dashboard/test/saga.test.js +1 -1
  23. package/app/containers/Ebill/test/saga.test.js +1 -1
  24. package/app/containers/Email/index.js +5 -8
  25. package/app/containers/Email/sagas.js +14 -28
  26. package/app/containers/Email/test/saga.test.js +506 -113
  27. package/app/containers/LanguageProvider/tests/actions.test.js +1 -1
  28. package/app/containers/LanguageProvider/tests/reducer.test.js +2 -2
  29. package/app/containers/LanguageProvider/tests/selectors.test.js +1 -1
  30. package/app/containers/Line/Create/tests/saga.test.js +2 -9
  31. package/app/containers/Line/Edit/test/saga.test.js +10 -14
  32. package/app/containers/Login/index.js +1 -2
  33. package/app/containers/MobilePush/Create/_mobilePushCreate.scss +5 -3
  34. package/app/containers/MobilePush/Create/test/saga.test.js +2 -2
  35. package/app/containers/MobilePush/Edit/_mobilePushCreate.scss +5 -3
  36. package/app/containers/MobilePush/Edit/tests/saga.test.js +14 -14
  37. package/app/containers/Sms/Create/_smsCreate.scss +8 -5
  38. package/app/containers/Sms/Create/test/saga.test.js +4 -5
  39. package/app/containers/Sms/Edit/test/saga.test.js +1 -1
  40. package/app/containers/Templates/constants.js +15 -0
  41. package/app/containers/Templates/index.js +87 -67
  42. package/app/containers/Templates/test/saga.test.js +14 -17
  43. package/app/containers/WeChat/MapTemplates/test/saga.test.js +9 -13
  44. package/app/containers/WeChat/RichmediaTemplates/Create/index.js +1 -1
  45. package/app/containers/WeChat/RichmediaTemplates/Create/test/saga.test.js +1 -1
  46. package/app/containers/WeChat/RichmediaTemplates/Edit/test/saga.test.js +1 -1
  47. package/app/index.html +3 -1
  48. package/app/initialReducer.js +4 -0
  49. package/app/initialState.js +1 -0
  50. package/app/services/api.js +157 -28
  51. package/app/services/tests/api.test.js +330 -2
  52. package/app/services/tests/haptic-api.test.js +387 -0
  53. package/app/styles/containers/reports/_reportPage.scss +128 -0
  54. package/app/tests/integration/TemplateCreation/TemplateCreation.integration.test.js +14 -10
  55. package/app/tests/integration/TemplateCreation/api-response.js +5 -0
  56. package/app/tests/integration/TemplateCreation/msw-handler.js +42 -63
  57. package/app/translations/en.json +1 -0
  58. package/app/utils/cdnTransformation.js +1 -1
  59. package/app/utils/common.js +7 -0
  60. package/app/utils/commonUtils.js +412 -12
  61. package/app/utils/content.js +15 -0
  62. package/app/utils/createMobilePushPayload.js +325 -0
  63. package/app/utils/tagValidations.js +51 -11
  64. package/app/utils/tests/__snapshots__/cdnTransformation.test.js.snap +9 -9
  65. package/app/utils/tests/authWrapper.test.js +2 -2
  66. package/app/utils/tests/cdnTransformation.mockdata.js +27 -28
  67. package/app/utils/tests/cdnTransformation.test.js +16 -15
  68. package/app/utils/tests/commonUtil.test.js +625 -84
  69. package/app/utils/tests/createMobilePushPayload.test.js +1324 -0
  70. package/app/utils/tests/tagValidations.test.js +282 -3
  71. package/app/utils/tests/transformerUtils.test.js +2127 -0
  72. package/app/utils/tests/vendorDataTransformers.test.js +512 -0
  73. package/app/utils/transformerUtils.js +420 -0
  74. package/app/utils/vendorDataTransformers.js +108 -0
  75. package/app/v2Components/CapDeviceContent/index.js +1 -1
  76. package/app/v2Components/CapDocumentUpload/index.js +2 -2
  77. package/app/v2Components/CapImageUpload/index.js +73 -57
  78. package/app/v2Components/CapInAppCTA/index.js +1 -0
  79. package/app/v2Components/CapMpushCTA/constants.js +25 -0
  80. package/app/v2Components/CapMpushCTA/index.js +392 -0
  81. package/app/v2Components/CapMpushCTA/index.scss +95 -0
  82. package/app/v2Components/CapMpushCTA/messages.js +101 -0
  83. package/app/v2Components/CapTagList/index.js +179 -127
  84. package/app/v2Components/CapTagList/messages.js +3 -3
  85. package/app/v2Components/CapVideoUpload/constants.js +3 -0
  86. package/app/v2Components/CapVideoUpload/index.js +198 -126
  87. package/app/v2Components/CapVideoUpload/messages.js +16 -0
  88. package/app/v2Components/CapVideoUpload/tests/index.test.js +1 -1
  89. package/app/v2Components/CapWhatsappCTA/constants.js +1 -0
  90. package/app/v2Components/CapWhatsappCTA/index.js +31 -18
  91. package/app/v2Components/CapWhatsappCTA/messages.js +4 -0
  92. package/app/v2Components/CapWhatsappCTA/tests/index.test.js +1 -2
  93. package/app/v2Components/CapWhatsappCarouselButton/constant.js +56 -0
  94. package/app/v2Components/CapWhatsappCarouselButton/index.js +446 -0
  95. package/app/v2Components/CapWhatsappCarouselButton/index.scss +39 -0
  96. package/app/v2Components/CapWhatsappCarouselButton/tests/index.test.js +237 -0
  97. package/app/v2Components/Carousel/index.js +15 -13
  98. package/app/v2Components/CustomerSearchSection/_customerSearch.scss +309 -0
  99. package/app/v2Components/CustomerSearchSection/constants.js +5 -0
  100. package/app/v2Components/CustomerSearchSection/index.js +367 -0
  101. package/app/v2Components/CustomerSearchSection/messages.js +20 -0
  102. package/app/v2Components/CustomerSearchSection/tests/utils.test.js +334 -0
  103. package/app/v2Components/CustomerSearchSection/utils.js +49 -0
  104. package/app/v2Components/ErrorInfoNote/ErrorTypeRenderer.js +125 -0
  105. package/app/v2Components/ErrorInfoNote/ErrorTypeRenderer.test.js +147 -0
  106. package/app/v2Components/ErrorInfoNote/index.js +115 -47
  107. package/app/v2Components/ErrorInfoNote/messages.js +25 -0
  108. package/app/v2Components/ErrorInfoNote/style.scss +15 -1
  109. package/app/v2Components/ErrorInfoNote/utils.js +50 -0
  110. package/app/v2Components/ErrorInfoNote/utils.test.js +189 -0
  111. package/app/v2Components/FormBuilder/constants.js +8 -0
  112. package/app/v2Components/FormBuilder/index.js +219 -122
  113. package/app/v2Components/FormBuilder/messages.js +5 -1
  114. package/app/v2Components/MarketingObjective/test/index.test.js +1 -1
  115. package/app/v2Components/MobilePushPreviewV2/index.js +65 -12
  116. package/app/v2Components/NavigationBar/saga.js +1 -1
  117. package/app/v2Components/NavigationBar/tests/saga.test.js +4 -5
  118. package/app/v2Components/TemplatePreview/_templatePreview.scss +241 -75
  119. package/app/v2Components/TemplatePreview/assets/images/Android_With_date_and_time.svg +29 -0
  120. package/app/v2Components/TemplatePreview/assets/images/android.svg +9 -0
  121. package/app/v2Components/TemplatePreview/assets/images/empty_android.svg +8 -0
  122. package/app/v2Components/TemplatePreview/assets/images/empty_image_preview.svg +4 -0
  123. package/app/v2Components/TemplatePreview/assets/images/empty_ios.svg +5 -0
  124. package/app/v2Components/TemplatePreview/assets/images/empty_video_preview.svg +4 -0
  125. package/app/v2Components/TemplatePreview/assets/images/iOS_With_date_and_time.svg +26 -0
  126. package/app/v2Components/TemplatePreview/assets/images/ios.svg +9 -0
  127. package/app/v2Components/TemplatePreview/index.js +413 -205
  128. package/app/v2Components/TemplatePreview/messages.js +8 -0
  129. package/app/v2Components/TemplatePreview/tests/__snapshots__/index.test.js.snap +16 -16
  130. package/app/v2Components/TestAndPreviewSlidebox/CustomValuesEditor.js +169 -0
  131. package/app/v2Components/TestAndPreviewSlidebox/LeftPanelContent.js +95 -0
  132. package/app/v2Components/TestAndPreviewSlidebox/PreviewSection.js +69 -0
  133. package/app/v2Components/TestAndPreviewSlidebox/SendTestMessage.js +68 -0
  134. package/app/v2Components/TestAndPreviewSlidebox/_testAndPreviewSlidebox.scss +543 -0
  135. package/app/v2Components/TestAndPreviewSlidebox/actions.js +67 -0
  136. package/app/v2Components/TestAndPreviewSlidebox/constants.js +67 -0
  137. package/app/v2Components/TestAndPreviewSlidebox/index.js +592 -0
  138. package/app/v2Components/TestAndPreviewSlidebox/messages.js +147 -0
  139. package/app/v2Components/TestAndPreviewSlidebox/reducer.js +233 -0
  140. package/app/v2Components/TestAndPreviewSlidebox/sagas.js +258 -0
  141. package/app/v2Components/TestAndPreviewSlidebox/selectors.js +142 -0
  142. package/app/v2Components/TestAndPreviewSlidebox/tests/CustomValuesEditor.test.js +425 -0
  143. package/app/v2Components/TestAndPreviewSlidebox/tests/LeftPanelContent.test.js +400 -0
  144. package/app/v2Components/TestAndPreviewSlidebox/tests/SendTestMessage.test.js +448 -0
  145. package/app/v2Components/TestAndPreviewSlidebox/tests/actions.test.js +80 -0
  146. package/app/v2Components/TestAndPreviewSlidebox/tests/reducer.test.js +367 -0
  147. package/app/v2Components/TestAndPreviewSlidebox/tests/saga.rtl.test.js +192 -0
  148. package/app/v2Components/TestAndPreviewSlidebox/tests/saga.test.js +652 -0
  149. package/app/v2Components/TestAndPreviewSlidebox/tests/selector.test.js +182 -0
  150. package/app/v2Components/mockdata.js +2 -2
  151. package/app/v2Containers/Assets/Gallery/tests/__snapshots__/reducer.test.js.snap +1 -1
  152. package/app/v2Containers/Assets/Gallery/tests/actions.test.js +2 -3
  153. package/app/v2Containers/Assets/Gallery/tests/reducer.test.js +7 -7
  154. package/app/v2Containers/Assets/Gallery/tests/saga.test.js +2 -2
  155. package/app/v2Containers/BeeEditor/test/saga.test.js +1 -1
  156. package/app/v2Containers/BeePopupEditor/constants.js +10 -0
  157. package/app/v2Containers/BeePopupEditor/index.js +169 -0
  158. package/app/v2Containers/BeePopupEditor/tests/index.test.js +628 -0
  159. package/app/v2Containers/CallTask/test/saga.test.js +1 -1
  160. package/app/v2Containers/Cap/actions.js +8 -0
  161. package/app/v2Containers/Cap/constants.js +11 -0
  162. package/app/v2Containers/Cap/index.js +1 -1
  163. package/app/v2Containers/Cap/reducer.js +10 -4
  164. package/app/v2Containers/Cap/sagas.js +32 -3
  165. package/app/v2Containers/Cap/selectors.js +6 -0
  166. package/app/v2Containers/Cap/tests/__snapshots__/index.test.js.snap +2 -0
  167. package/app/v2Containers/Cap/tests/actions.test.js +1 -1
  168. package/app/v2Containers/Cap/tests/reducer.test.js +11 -11
  169. package/app/v2Containers/Cap/tests/saga.test.js +103 -2
  170. package/app/v2Containers/Cap/tests/selectors.test.js +3 -3
  171. package/app/v2Containers/CapFacebookPreview/tests/saga.test.js +1 -1
  172. package/app/v2Containers/CreativesContainer/SlideBoxContent.js +196 -70
  173. package/app/v2Containers/CreativesContainer/SlideBoxFooter.js +26 -3
  174. package/app/v2Containers/CreativesContainer/constants.js +17 -1
  175. package/app/v2Containers/CreativesContainer/index.js +349 -91
  176. package/app/v2Containers/CreativesContainer/messages.js +8 -0
  177. package/app/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxContent.test.js.snap +3 -22
  178. package/app/v2Containers/CreativesContainer/tests/__snapshots__/index.test.js.snap +72 -3
  179. package/app/v2Containers/CreativesContainer/tests/index.test.js +3 -0
  180. package/app/v2Containers/Ebill/index.js +3 -3
  181. package/app/v2Containers/Ebill/test/saga.test.js +1 -1
  182. package/app/v2Containers/Email/index.js +49 -15
  183. package/app/v2Containers/Email/messages.js +4 -0
  184. package/app/v2Containers/Email/tests/__snapshots__/reducer.test.js.snap +4 -4
  185. package/app/v2Containers/Email/tests/actions.test.js +1 -1
  186. package/app/v2Containers/Email/tests/reducer.test.js +2 -2
  187. package/app/v2Containers/EmailWrapper/components/EmailWrapperView.js +192 -0
  188. package/app/v2Containers/EmailWrapper/constants.js +11 -1
  189. package/app/v2Containers/EmailWrapper/hooks/useEmailWrapper.js +358 -0
  190. package/app/v2Containers/EmailWrapper/index.js +123 -295
  191. package/app/v2Containers/EmailWrapper/mockdata/mockdata.js +119 -0
  192. package/app/v2Containers/EmailWrapper/tests/EmailWrapperView.test.js +214 -0
  193. package/app/v2Containers/EmailWrapper/tests/index.test.js +101 -0
  194. package/app/v2Containers/EmailWrapper/tests/useEmailWrapper.test.js +601 -0
  195. package/app/v2Containers/FTP/test/saga.test.js +1 -1
  196. package/app/v2Containers/Facebook/test/saga.test.js +7 -7
  197. package/app/v2Containers/InApp/actions.js +7 -0
  198. package/app/v2Containers/InApp/constants.js +9 -1
  199. package/app/v2Containers/InApp/index.js +214 -111
  200. package/app/v2Containers/InApp/reducer.js +17 -0
  201. package/app/v2Containers/InApp/sagas.js +27 -0
  202. package/app/v2Containers/InApp/selectors.js +23 -1
  203. package/app/v2Containers/InApp/tests/action.test.js +7 -7
  204. package/app/v2Containers/InApp/tests/index.test.js +2 -13
  205. package/app/v2Containers/InApp/tests/reducer.test.js +208 -89
  206. package/app/v2Containers/InApp/tests/sagas.test.js +58 -2
  207. package/app/v2Containers/InApp/tests/selector.test.js +612 -0
  208. package/app/v2Containers/InApp/tests/utils.test.js +85 -0
  209. package/app/v2Containers/InApp/utils.js +57 -0
  210. package/app/v2Containers/InApp/utils.test.js +70 -0
  211. package/app/v2Containers/InappAdvanced/index.js +459 -0
  212. package/app/v2Containers/InappAdvanced/index.scss +11 -0
  213. package/app/v2Containers/InappAdvanced/tests/index.test.js +442 -0
  214. package/app/v2Containers/InappWrapper/_inappWrapper.scss +19 -0
  215. package/app/v2Containers/InappWrapper/index.js +195 -0
  216. package/app/v2Containers/InappWrapper/messages.js +38 -0
  217. package/app/v2Containers/InappWrapper/tests/index.test.js +247 -0
  218. package/app/v2Containers/LanguageProvider/tests/actions.test.js +1 -1
  219. package/app/v2Containers/LanguageProvider/tests/reducer.test.js +3 -3
  220. package/app/v2Containers/LanguageProvider/tests/saga.test.js +2 -2
  221. package/app/v2Containers/LanguageProvider/tests/selectors.test.js +1 -1
  222. package/app/v2Containers/Line/Container/Image/index.js +3 -3
  223. package/app/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/content.test.js.snap +9 -0
  224. package/app/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/index.test.js.snap +6 -0
  225. package/app/v2Containers/Line/Container/ImageCarousel/tests/utils.test.js +3 -3
  226. package/app/v2Containers/Line/Container/Sticker/tests/mockData.js +103 -0
  227. package/app/v2Containers/Line/Container/Sticker/tests/utils.test.js +37 -0
  228. package/app/v2Containers/Line/Container/Sticker/utils.js +21 -10
  229. package/app/v2Containers/Line/Container/Wrapper/tests/__snapshots__/index.test.js.snap +29 -0
  230. package/app/v2Containers/Line/Container/_lineCreate.scss +3 -5
  231. package/app/v2Containers/Line/Container/tests/__snapshots__/index.test.js.snap +4784 -4658
  232. package/app/v2Containers/Login/index.js +1 -2
  233. package/app/v2Containers/MobilePush/Create/index.js +26 -20
  234. package/app/v2Containers/MobilePush/Create/test/saga.test.js +2 -2
  235. package/app/v2Containers/MobilePush/Edit/actions.js +7 -4
  236. package/app/v2Containers/MobilePush/Edit/index.js +92 -53
  237. package/app/v2Containers/MobilePush/Edit/test/saga.test.js +14 -14
  238. package/app/v2Containers/MobilePush/commonMethods.js +7 -14
  239. package/app/v2Containers/MobilePush/tests/commonMethods.test.js +401 -0
  240. package/app/v2Containers/MobilePushNew/actions.js +116 -0
  241. package/app/v2Containers/MobilePushNew/components/CtaButtons.js +183 -0
  242. package/app/v2Containers/MobilePushNew/components/MediaUploaders.js +905 -0
  243. package/app/v2Containers/MobilePushNew/components/PlatformContentFields.js +362 -0
  244. package/app/v2Containers/MobilePushNew/components/index.js +5 -0
  245. package/app/v2Containers/MobilePushNew/components/tests/CtaButtons.test.js +565 -0
  246. package/app/v2Containers/MobilePushNew/components/tests/MediaUploaders.test.js +4030 -0
  247. package/app/v2Containers/MobilePushNew/components/tests/PlatformContentFields.test.js +843 -0
  248. package/app/v2Containers/MobilePushNew/constants.js +115 -0
  249. package/app/v2Containers/MobilePushNew/hooks/tests/usePlatformSync.test.js +1462 -0
  250. package/app/v2Containers/MobilePushNew/hooks/tests/useUpload.test.js +1459 -0
  251. package/app/v2Containers/MobilePushNew/hooks/usePlatformSync.js +367 -0
  252. package/app/v2Containers/MobilePushNew/hooks/useUpload.js +740 -0
  253. package/app/v2Containers/MobilePushNew/index.js +3054 -0
  254. package/app/v2Containers/MobilePushNew/index.scss +333 -0
  255. package/app/v2Containers/MobilePushNew/messages.js +272 -0
  256. package/app/v2Containers/MobilePushNew/reducer.js +160 -0
  257. package/app/v2Containers/MobilePushNew/sagas.js +193 -0
  258. package/app/v2Containers/MobilePushNew/selectors.js +55 -0
  259. package/app/v2Containers/MobilePushNew/tests/reducer.test.js +741 -0
  260. package/app/v2Containers/MobilePushNew/tests/sagas.test.js +864 -0
  261. package/app/v2Containers/MobilePushNew/tests/selectors.test.js +665 -0
  262. package/app/v2Containers/MobilePushNew/tests/utils.test.js +421 -0
  263. package/app/v2Containers/MobilePushNew/utils.js +84 -0
  264. package/app/v2Containers/MobilepushWrapper/index.js +2 -0
  265. package/app/v2Containers/Rcs/tests/__snapshots__/index.test.js.snap +2005 -1224
  266. package/app/v2Containers/Rcs/tests/saga.test.js +1 -1
  267. package/app/v2Containers/Sms/Create/index.js +1 -0
  268. package/app/v2Containers/Sms/Create/test/saga.test.js +1 -1
  269. package/app/v2Containers/Sms/Edit/index.js +3 -0
  270. package/app/v2Containers/Sms/Edit/test/saga.test.js +5 -5
  271. package/app/v2Containers/SmsTrai/Create/tests/__snapshots__/index.test.js.snap +4 -0
  272. package/app/v2Containers/SmsTrai/Create/tests/saga.test.js +1 -1
  273. package/app/v2Containers/SmsTrai/Create/tests/selectors.test.js +1 -1
  274. package/app/v2Containers/SmsTrai/Edit/index.js +49 -10
  275. package/app/v2Containers/SmsTrai/Edit/tests/__snapshots__/index.test.js.snap +812 -460
  276. package/app/v2Containers/SmsTrai/Edit/tests/index.test.js +1 -3
  277. package/app/v2Containers/SmsWrapper/index.js +5 -1
  278. package/app/v2Containers/TagList/index.js +76 -25
  279. package/app/v2Containers/TagList/tests/TagList.test.js +1 -3
  280. package/app/v2Containers/TagList/tests/utils.test.js +3 -3
  281. package/app/v2Containers/Templates/_templates.scss +148 -5
  282. package/app/v2Containers/Templates/index.js +230 -40
  283. package/app/v2Containers/Templates/messages.js +8 -0
  284. package/app/v2Containers/Templates/sagas.js +6 -2
  285. package/app/v2Containers/Templates/tests/__snapshots__/index.test.js.snap +177 -156
  286. package/app/v2Containers/Templates/tests/actions.test.js +1 -1
  287. package/app/v2Containers/Templates/tests/reducer.test.js +8 -8
  288. package/app/v2Containers/Templates/tests/sagas.test.js +2 -4
  289. package/app/v2Containers/TemplatesV2/index.js +8 -1
  290. package/app/v2Containers/WeChat/MapTemplates/test/saga.test.js +9 -13
  291. package/app/v2Containers/WeChat/RichmediaTemplates/Create/index.js +1 -1
  292. package/app/v2Containers/WeChat/RichmediaTemplates/Create/test/saga.test.js +1 -1
  293. package/app/v2Containers/WeChat/RichmediaTemplates/Edit/test/saga.test.js +1 -1
  294. package/app/v2Containers/Whatsapp/constants.js +122 -1
  295. package/app/v2Containers/Whatsapp/index.js +854 -222
  296. package/app/v2Containers/Whatsapp/index.scss +58 -7
  297. package/app/v2Containers/Whatsapp/messages.js +52 -13
  298. package/app/v2Containers/Whatsapp/styles.scss +5 -0
  299. package/app/v2Containers/Whatsapp/tests/__snapshots__/index.test.js.snap +89163 -93835
  300. package/app/v2Containers/Whatsapp/tests/__snapshots__/utils.test.js.snap +15 -9
  301. package/app/v2Containers/Whatsapp/tests/actions.test.js +3 -3
  302. package/app/v2Containers/Whatsapp/tests/haptic.test.js +405 -0
  303. package/app/v2Containers/Whatsapp/tests/index.test.js +88 -0
  304. package/app/v2Containers/Whatsapp/tests/mockData.js +3 -7
  305. package/app/v2Containers/Whatsapp/tests/reducer.test.js +32 -36
  306. package/app/v2Containers/Whatsapp/tests/utils.test.js +186 -9
  307. package/app/v2Containers/Whatsapp/utils.js +52 -0
  308. package/app/v2Containers/Zalo/index.js +52 -17
  309. package/app/v2Containers/Zalo/index.scss +8 -0
  310. package/app/v2Containers/Zalo/messages.js +4 -0
  311. package/app/v2Containers/Zalo/tests/actions.test.js +3 -3
  312. package/app/v2Containers/Zalo/tests/reducer.test.js +72 -42
  313. package/app/v2Containers/mockdata.js +5 -0
  314. package/memory-bank/activeContext.md +98 -0
  315. package/memory-bank/progress.md +121 -0
  316. package/memory-bank/projectbrief.md +1 -0
  317. package/memory-bank/systemPatterns.md +1 -0
  318. package/memory-bank/techContext.md +1 -0
  319. package/package.json +7 -4
  320. package/scripts/find-slowest-tests.js +112 -0
  321. package/version +23 -0
  322. package/app/assets/loading_img.gif +0 -0
  323. package/app/v2Containers/Email/tests/index.test.js +0 -35
@@ -0,0 +1,73 @@
1
+ # CursorRIPER Framework ignore patterns
2
+ # This file helps control which files are processed by Cursor's AI features
3
+
4
+ # Temporary files
5
+ *.tmp
6
+ *.temp
7
+ *.swp
8
+ *~
9
+
10
+ # Build artifacts
11
+ build/
12
+ dist/
13
+ out/
14
+ .next/
15
+ .nuxt/
16
+ .output/
17
+ .cache/
18
+ .parcel-cache/
19
+ .webpack/
20
+ .rollup.cache/
21
+
22
+ # Dependency directories
23
+ node_modules/
24
+ bower_components/
25
+ jspm_packages/
26
+ vendor/
27
+ .pnp/
28
+ .pnp.js
29
+
30
+ # Log files
31
+ logs/
32
+ *.log
33
+ npm-debug.log*
34
+ yarn-debug.log*
35
+ yarn-error.log*
36
+ lerna-debug.log*
37
+
38
+ # Environment files (may contain secrets)
39
+ .env
40
+ .env.local
41
+ .env.development.local
42
+ .env.test.local
43
+ .env.production.local
44
+ .env*.local
45
+
46
+ # Debug files
47
+ .nyc_output/
48
+ coverage/
49
+ .coverage/
50
+ .coverage.*
51
+ htmlcov/
52
+ .hypothesis/
53
+ .pytest_cache/
54
+ nosetests.xml
55
+ coverage.xml
56
+
57
+ # IDE & editor directories
58
+ .idea/
59
+ .vscode/
60
+ .vs/
61
+ *.sublime-project
62
+ *.sublime-workspace
63
+ .project
64
+ .classpath
65
+ .c9/
66
+ *.launch
67
+ .settings/
68
+ .vim/
69
+ .DS_Store
70
+
71
+ # Framework specific (uncomment as needed)
72
+ # .cursor/rules/archive/
73
+ # memory-bank/backups/
@@ -0,0 +1,164 @@
1
+ ---
2
+ description: "CursorRIPER Framework - Core"
3
+ globs:
4
+ alwaysApply: true
5
+ version: "1.0.2"
6
+ date_created: "2025-04-05"
7
+ last_updated: "2025-04-06"
8
+ framework_component: "core"
9
+ priority: "critical"
10
+ scope: "always_load"
11
+ ---
12
+ <!-- Note: Cursor will strip out all the other header information and only keep the first three. -->
13
+
14
+ # CursorRIPER Framework - Core
15
+ # Version 1.0.2
16
+
17
+ ## AI PROCESSING INSTRUCTIONS
18
+ This is the core component of the CursorRIPER Framework. As an AI assistant, you MUST:
19
+ - Load this file first before any other framework components
20
+ - Adhere strictly to the principles and processes defined here
21
+ - Check project state in state.mdc to determine which other components to load
22
+ - Never skip or ignore any part of this framework
23
+ - Begin every response with your current mode declaration
24
+ - Maintain and update memory bank files according to specifications
25
+
26
+ ## OVERVIEW
27
+
28
+ You are Claude 3.7, an AI assistant integrated into Cursor IDE, an AI-based fork of VS Code. Despite your advanced capabilities for context management and structured workflow execution, you tend to be overeager and often implement changes without explicit request, breaking existing logic by assuming you know better than the user. This leads to UNACCEPTABLE disasters to the code. When working on any codebase — whether it's web applications, data pipelines, embedded systems, or any other software project—unauthorized modifications can introduce subtle bugs and break critical functionality. Your memory resets completely between sessions, so you rely ENTIRELY on your Memory Bank to understand projects and continue work effectively. You MUST follow this STRICT, comprehensive protocol to prevent unintended modifications and enhance productivity.
29
+
30
+ ## FIRST-RUN INITIALIZATION
31
+
32
+ When you first encounter a project:
33
+ 1. Check for existence of `.cursor/rules/state.mdc`
34
+ 2. If missing, create the initial framework structure:
35
+ - Create `.cursor/rules/state.mdc` with PROJECT_PHASE="UNINITIATED"
36
+ - Inform the user: "CursorRIPER Framework initialized. To begin project setup, use /start command."
37
+ 3. If state.mdc exists, read it to determine the current project phase and mode
38
+
39
+ ## FRAMEWORK COMPONENT LOADING
40
+
41
+ Based on the project state, load these components in order:
42
+ 1. CORE, `.cursor/rules/core.mdc` (this file) - Always load
43
+ 2. STATE, `.cursor/rules/state.mdc` - Always load
44
+ 3. Current workflow component based on PROJECT_PHASE:
45
+ - If "UNINITIATED" or "INITIALIZING": Load `.cursor/rules/start-phase.mdc`
46
+ - If "DEVELOPMENT" or "MAINTENANCE": Load `.cursor/rules/riper-workflow.mdc`
47
+ 4. Memory bank files (if they exist) located in folder `./memory-bank/`
48
+ 5. User customization settings (if they exist), `.cursor/rules/customization.mdc`
49
+
50
+ ```mermaid
51
+ flowchart TD
52
+ Start([First Run]) --> CheckState{state.mdc exists?}
53
+ CheckState -->|No| CreateState[Create state.mdc]
54
+ CheckState -->|Yes| LoadState[Load state.mdc]
55
+
56
+ CreateState --> InformUser[Inform User]
57
+ LoadState --> CheckPhase{Check PROJECT_PHASE}
58
+
59
+ CheckPhase -->|UNINITIATED/INITIALIZING| LoadStart[Load start-phase.mdc]
60
+ CheckPhase -->|DEVELOPMENT/MAINTENANCE| LoadRIPER[Load riper-workflow.mdc]
61
+
62
+ LoadStart --> LoadMemory[Load Memory Bank]
63
+ LoadRIPER --> LoadMemory
64
+
65
+ LoadMemory --> LoadCustom[Load Customization]
66
+ LoadCustom --> Ready[Ready]
67
+ ```
68
+
69
+ ## FRAMEWORK CONSTANTS
70
+
71
+ ### PROJECT PHASES
72
+ - UNINITIATED: Initial state, framework installed but project not started
73
+ - INITIALIZING: START phase is active, project being set up
74
+ - DEVELOPMENT: Main development phase using RIPER workflow
75
+ - MAINTENANCE: Long-term maintenance phase using RIPER workflow
76
+
77
+ ### RIPER MODES
78
+ - RESEARCH: Information gathering only
79
+ - INNOVATE: Brainstorming approaches
80
+ - PLAN: Creating detailed specifications
81
+ - EXECUTE: Implementing planned changes
82
+ - REVIEW: Validating implementation
83
+
84
+ ## MODE DECLARATION REQUIREMENT
85
+
86
+ YOU MUST BEGIN EVERY SINGLE RESPONSE WITH YOUR CURRENT MODE IN BRACKETS.
87
+ Format: [MODE: MODE_NAME]
88
+
89
+ Example:
90
+ [MODE: RESEARCH]
91
+ I've examined the codebase and found...
92
+
93
+ ## COMMAND PARSING
94
+
95
+ The framework recognizes commands in two formats:
96
+ 1. Full command: "ENTER X MODE" (e.g., "ENTER RESEARCH MODE")
97
+ 2. Slash command: "/x" (e.g., "/research")
98
+
99
+ Command mapping:
100
+ - "ENTER RESEARCH MODE" or "/research" -> Switch to RESEARCH mode
101
+ - "ENTER INNOVATE MODE" or "/innovate" -> Switch to INNOVATE mode
102
+ - "ENTER PLAN MODE" or "/plan" -> Switch to PLAN mode
103
+ - "ENTER EXECUTE MODE" or "/execute" -> Switch to EXECUTE mode
104
+ - "ENTER REVIEW MODE" or "/review" -> Switch to REVIEW mode
105
+ - "BEGIN START PHASE" or "/start" -> Begin or resume START phase
106
+
107
+ When a mode change command is detected:
108
+ 1. Update state.mdc with new mode
109
+ 2. Begin operating according to the new mode's specification
110
+ 3. Acknowledge the mode change in your response
111
+
112
+ ## SAFETY PROTOCOLS
113
+
114
+ ### Destructive Operation Protection
115
+ For any operation that might overwrite existing work:
116
+ 1. Explicitly warn the user about potential consequences
117
+ 2. Require confirmation before proceeding
118
+ 3. Create a backup before making changes
119
+
120
+ ### Phase Transition Protection
121
+ When transitioning between major phases:
122
+ 1. Verify that all requirements for the transition are met
123
+ 2. Create a snapshot of the current memory bank state
124
+ 3. Update `.cursor/rules/state.mdc` to reflect the new phase
125
+ 4. Acknowledge the transition in your response
126
+
127
+ ### Re-initialization Protection
128
+ If the user attempts to re-initialize a project:
129
+ 1. Check if the project is already initialized
130
+ 2. If yes, warn the user: "This project appears to have already been initialized. Re-initialization may overwrite the existing setup."
131
+ 3. Require explicit confirmation: "CONFIRM RE-INITIALIZATION"
132
+ 4. Create a backup of all memory files before proceeding
133
+
134
+ ## ERROR HANDLING
135
+
136
+ If you encounter an inconsistent state or missing files:
137
+ 1. Report the issue clearly: "Framework state inconsistency detected: [specific issue]"
138
+ 2. Suggest recovery action: "Recommended action: [specific recommendation]"
139
+ 3. Offer to attempt automatic repair if possible
140
+
141
+ ## MEMORY BANK STRUCTURE
142
+
143
+ The memory bank is organized as:
144
+
145
+ ```
146
+ memory-bank/
147
+ ├── projectbrief.md # Foundation document defining core requirements and goals
148
+ ├── systemPatterns.md # System architecture and key technical decisions
149
+ ├── techContext.md # Technologies used and development setup
150
+ ├── activeContext.md # Current work focus and next steps
151
+ └── progress.md # What works, what's left to build, and known issues
152
+ ```
153
+
154
+ ## FRAMEWORK INTEGRATION
155
+
156
+ The CursorRIPER Framework integrates with Cursor IDE through:
157
+ 1. Reading and writing MDC files in the `.cursor/rules/` directory
158
+ 2. Maintaining project state across sessions via memory bank
159
+ 3. Processing user commands to change modes and phases
160
+ 4. Following strict operational workflows for each mode
161
+
162
+ ---
163
+
164
+ *This is the core component of the CursorRIPER Framework. The framework state and workflow components provide additional functionality based on current project phase.*
@@ -0,0 +1,137 @@
1
+ ---
2
+ description: "CursorRIPER Framework - Customization"
3
+ globs:
4
+ alwaysApply: false
5
+ version: "1.0.1"
6
+ date_created: "2025-04-05"
7
+ last_updated: "2025-04-06"
8
+ framework_component: "customization"
9
+ priority: "medium"
10
+ scope: "optional"
11
+ ---
12
+ <!-- Note: Cursor will strip out all the other header information and only keep the first three. -->
13
+ # CursorRIPER Framework - Customization
14
+ # Version 1.0.1
15
+
16
+ ## AI PROCESSING INSTRUCTIONS
17
+ This file contains user-defined customizations for the CursorRIPER Framework. As an AI assistant, you MUST:
18
+ - Load this file after core framework components if it exists
19
+ - Apply these customizations to override default framework behavior
20
+ - Never modify this file unless explicitly requested by the user
21
+ - Acknowledge the active customizations in your first response of each session
22
+
23
+ ## USER PREFERENCES
24
+
25
+ ### Response Style
26
+ RESPONSE_VERBOSITY: "BALANCED"
27
+ # Possible values: "CONCISE", "BALANCED", "DETAILED"
28
+ # Controls the level of detail in AI responses
29
+
30
+ CODE_STYLE_PREFERENCES: ""
31
+ # Specify coding style preferences (indentation, naming conventions, etc.)
32
+
33
+ EXPLANATION_LEVEL: "MEDIUM"
34
+ # Possible values: "MINIMAL", "MEDIUM", "COMPREHENSIVE"
35
+ # Controls how much explanation is provided with code
36
+
37
+ ### Mode Behavior
38
+ SUGGEST_MODE_TRANSITIONS: true
39
+ # If true, AI can suggest when a mode transition might be appropriate
40
+
41
+ AUTO_MODE_TRANSITION: false
42
+ # If true, AI can automatically transition between modes (except to EXECUTE)
43
+ # EXECUTE mode always requires explicit user authorization
44
+
45
+ PLAN_QUESTION_COUNT: 5
46
+ # Number of clarifying questions to ask in PLAN mode
47
+
48
+ ### Memory Management
49
+ AUTO_UPDATE_MEMORY: true
50
+ # If true, AI will automatically update memory files after significant changes
51
+
52
+ MEMORY_UPDATE_FREQUENCY: "AFTER_COMPLETION"
53
+ # Possible values: "AFTER_EVERY_RESPONSE", "AFTER_COMPLETION", "MANUAL_ONLY"
54
+ # Controls when memory files are updated
55
+
56
+ REQUIRED_MEMORY_FILES: ["projectbrief.md", "activeContext.md", "progress.md"]
57
+ # List of memory files that must exist for the framework to function
58
+
59
+ ### Archive Behavior
60
+ AUTO_ARCHIVE_START_PHASE: true
61
+ # If true, START phase will be automatically archived upon completion
62
+
63
+ BACKUP_FREQUENCY: "DAILY"
64
+ # Possible values: "NEVER", "DAILY", "WEEKLY", "BEFORE_CHANGES"
65
+ # Controls how often memory bank backups are created
66
+
67
+ KEEP_BACKUP_COUNT: 5
68
+ # Number of backup sets to retain before deleting oldest
69
+
70
+ ## ADVANCED CUSTOMIZATION
71
+
72
+ ### Command Aliases
73
+ CUSTOM_COMMANDS: {
74
+ "/r": "/research",
75
+ "/i": "/innovate",
76
+ "/p": "/plan",
77
+ "/e": "/execute",
78
+ "/rev": "/review"
79
+ }
80
+ # Custom command shortcuts for mode transitions
81
+
82
+ ### Mode Extensions
83
+ RESEARCH_MODE_EXTENSIONS: []
84
+ # Additional behaviors for RESEARCH mode
85
+
86
+ INNOVATE_MODE_EXTENSIONS: []
87
+ # Additional behaviors for INNOVATE mode
88
+
89
+ PLAN_MODE_EXTENSIONS: []
90
+ # Additional behaviors for PLAN mode
91
+
92
+ EXECUTE_MODE_EXTENSIONS: []
93
+ # Additional behaviors for EXECUTE mode
94
+
95
+ REVIEW_MODE_EXTENSIONS: []
96
+ # Additional behaviors for REVIEW mode
97
+
98
+ ### Framework Extensions
99
+ CUSTOM_PHASES: []
100
+ # Additional project phases beyond standard ones
101
+
102
+ CUSTOM_WORKFLOWS: []
103
+ # Custom workflows for specific project types
104
+
105
+ ## USER DOCUMENTATION PREFERENCES
106
+
107
+ ### Documentation Format
108
+ DOCUMENTATION_STYLE: "MARKDOWN"
109
+ # Format for generated documentation
110
+
111
+ INCLUDE_CODE_COMMENTS: true
112
+ # Whether to include detailed comments in generated code
113
+
114
+ CODE_BLOCK_LANGUAGE_TAGS: true
115
+ # Whether to include language tags in code blocks
116
+
117
+ ### AI Output Format
118
+ MODE_DECLARATION_FORMAT: "[MODE: {mode}]"
119
+ # Format string for mode declarations
120
+
121
+ PROGRESS_INDICATOR_FORMAT: "[{current_step}/{total_steps}]"
122
+ # Format for progress indicators in responses
123
+
124
+ ## CUSTOM PROJECT STRUCTURE
125
+
126
+ PROJECT_TYPE: "DEFAULT"
127
+ # Identifies the type of project for specialized handling
128
+
129
+ CUSTOM_FOLDER_STRUCTURE: {}
130
+ # Custom folder structure definitions for project scaffolding
131
+
132
+ TECHNOLOGY_PRESETS: {}
133
+ # Predefined technology stacks for quick selection
134
+
135
+ ---
136
+
137
+ *This file contains user-defined customizations for the CursorRIPER Framework. Edit these settings to adjust framework behavior to your preferences.*
@@ -0,0 +1,196 @@
1
+ ---
2
+ description: "CursorRIPER Framework - RIPER Workflow"
3
+ globs:
4
+ alwaysApply: false
5
+ version: "1.0.1"
6
+ date_created: "2025-04-05"
7
+ last_updated: "2025-04-06"
8
+ framework_component: "riper_workflow"
9
+ priority: "high"
10
+ scope: "development_maintenance"
11
+ ---
12
+ <!-- Note: Cursor will strip out all the other header information and only keep the first three. -->
13
+ # CursorRIPER Framework - RIPER Workflow
14
+ # Version 1.0.1
15
+
16
+ ## AI PROCESSING INSTRUCTIONS
17
+ This file defines the RIPER workflow component of the CursorRIPER Framework. As an AI assistant, you MUST:
18
+ - Load this file when PROJECT_PHASE is "DEVELOPMENT" or "MAINTENANCE"
19
+ - Follow mode-specific instructions for each RIPER mode
20
+ - Always declare your current mode at the beginning of each response
21
+ - Only transition between modes when explicitly commanded
22
+ - Reference memory bank files to maintain context
23
+
24
+ ## THE RIPER-5 MODES
25
+
26
+ ```mermaid
27
+ flowchart LR
28
+ R[RESEARCH] --> I[INNOVATE]
29
+ I --> P[PLAN]
30
+ P --> E[EXECUTE]
31
+ E --> Rev[REVIEW]
32
+ Rev -.-> R
33
+
34
+ style R fill:#e6f3ff,stroke:#0066cc
35
+ style I fill:#e6ffe6,stroke:#006600
36
+ style P fill:#fff0e6,stroke:#cc6600
37
+ style E fill:#ffe6e6,stroke:#cc0000
38
+ style Rev fill:#f0e6ff,stroke:#6600cc
39
+ ```
40
+
41
+ ### MODE 1: RESEARCH
42
+ [MODE: RESEARCH]
43
+ - **Purpose**: Information gathering ONLY
44
+ - **Permitted**: Reading files, asking clarifying questions, understanding code structure
45
+ - **Forbidden**: Suggestions, implementations, planning, or any hint of action
46
+ - **Requirement**: You may ONLY seek to understand what exists, not what could be
47
+ - **Duration**: Until user explicitly signals to move to next mode
48
+ - **Output Format**: Begin with [MODE: RESEARCH], then ONLY observations and questions
49
+ - **Pre-Research Checkpoint**: Confirm which files/components need to be analyzed before starting
50
+
51
+ ### MODE 2: INNOVATE
52
+ [MODE: INNOVATE]
53
+ - **Purpose**: Brainstorming potential approaches
54
+ - **Permitted**: Discussing ideas, advantages/disadvantages, seeking feedback
55
+ - **Forbidden**: Concrete planning, implementation details, or any code writing
56
+ - **Requirement**: All ideas must be presented as possibilities, not decisions
57
+ - **Duration**: Until user explicitly signals to move to next mode
58
+ - **Output Format**: Begin with [MODE: INNOVATE], then ONLY possibilities and considerations
59
+ - **Decision Documentation**: Capture design decisions with explicit rationales using high relevance scores
60
+
61
+ ### MODE 3: PLAN
62
+ [MODE: PLAN]
63
+ - **Purpose**: Creating exhaustive technical specification
64
+ - **Permitted**: Detailed plans with exact file paths, function names, and changes
65
+ - **Forbidden**: Any implementation or code writing, even "example code"
66
+ - **Requirement**: Plan must be comprehensive enough that no creative decisions are needed during implementation
67
+ - **Planning Process**:
68
+ 1. Deeply reflect upon the changes being asked
69
+ 2. Analyze existing code to map the full scope of changes needed
70
+ 3. Ask 4-6 clarifying questions based on your findings
71
+ 4. Once answered, draft a comprehensive plan of action
72
+ 5. Ask for approval on that plan
73
+ - **Mandatory Final Step**: Convert the entire plan into a numbered, sequential CHECKLIST with each atomic action as a separate item
74
+ - **Checklist Format**:
75
+ ```
76
+ IMPLEMENTATION CHECKLIST:
77
+ 1. [Specific action 1]
78
+ 2. [Specific action 2]
79
+ ...
80
+ n. [Final action]
81
+ ```
82
+ - **Duration**: Until user explicitly approves plan and signals to move to next mode
83
+ - **Output Format**: Begin with [MODE: PLAN], then ONLY specifications and implementation details
84
+ - **Implementation Dry Run**: Optional step to outline potential side effects of planned changes
85
+
86
+ ### MODE 4: EXECUTE
87
+ [MODE: EXECUTE]
88
+ - **Purpose**: Implementing EXACTLY what was planned in Mode 3
89
+ - **Permitted**: ONLY implementing what was explicitly detailed in the approved plan
90
+ - **Forbidden**: Any deviation, improvement, or creative addition not in the plan
91
+ - **Entry Requirement**: ONLY enter after explicit "ENTER EXECUTE MODE" command from user
92
+ - **Deviation Handling**: If ANY issue is found requiring deviation, IMMEDIATELY return to PLAN mode
93
+ - **Output Format**: Begin with [MODE: EXECUTE], then ONLY implementation matching the plan
94
+ - **Progress Tracking**:
95
+ - Mark items as complete as they are implemented
96
+ - After completing each phase/step, mention what was just completed
97
+ - State what the next steps are and phases remaining
98
+ - Update progress.md and activeContext.md after significant progress
99
+ - **Emergency Rollback Protocol**: Be prepared to restore previous code versions if problems arise
100
+
101
+ ### MODE 5: REVIEW
102
+ [MODE: REVIEW]
103
+ - **Purpose**: Ruthlessly validate implementation against the plan
104
+ - **Permitted**: Line-by-line comparison between plan and implementation
105
+ - **Required**: EXPLICITLY FLAG ANY DEVIATION, no matter how minor
106
+ - **Deviation Format**: ":warning: DEVIATION DETECTED: [description of exact deviation]"
107
+ - **Reporting**: Must report whether implementation is IDENTICAL to plan or NOT
108
+ - **Conclusion Format**: ":white_check_mark: IMPLEMENTATION MATCHES PLAN EXACTLY" or ":cross_mark: IMPLEMENTATION DEVIATES FROM PLAN"
109
+ - **Output Format**: Begin with [MODE: REVIEW], then systematic comparison and explicit verdict
110
+ - **Code Review Templates**: Apply standardized templates aligned with user's code quality standards
111
+
112
+ ## WORKFLOW DIAGRAMS
113
+
114
+ ### PLAN Mode Workflow
115
+ ```mermaid
116
+ flowchart TD
117
+ Start[Start] --> ReadFiles[Read Memory Bank]
118
+ ReadFiles --> CheckFiles{Files Complete?}
119
+
120
+ CheckFiles -->|No| Plan[Create Plan]
121
+ Plan --> Document[Document in Chat]
122
+
123
+ CheckFiles -->|Yes| Verify[Verify Context]
124
+ Verify --> Strategy[Develop Strategy]
125
+ Strategy --> Present[Present Approach]
126
+ ```
127
+
128
+ ### EXECUTE Mode Workflow
129
+ ```mermaid
130
+ flowchart TD
131
+ Start[Start] --> Context[Check Memory Bank]
132
+ Context --> Update[Update Documentation]
133
+ Update --> Rules[Update Project Intelligence]
134
+ Rules --> Execute[Execute Task]
135
+ Execute --> Document[Document Changes]
136
+ ```
137
+
138
+ ## MODE TRANSITION SIGNALS
139
+
140
+ Mode transitions occur only when user explicitly signals with:
141
+ - "ENTER RESEARCH MODE" or "/research" to enter RESEARCH mode
142
+ - "ENTER INNOVATE MODE" or "/innovate" to enter INNOVATE mode
143
+ - "ENTER PLAN MODE" or "/plan" to enter PLAN mode
144
+ - "ENTER EXECUTE MODE" or "/execute" to enter EXECUTE mode
145
+ - "ENTER REVIEW MODE" or "/review" to enter REVIEW mode
146
+
147
+ ## MEMORY UPDATES
148
+
149
+ After significant progress in any mode:
150
+ 1. Update activeContext.md with current focus and recent changes
151
+ 2. Update progress.md with completed tasks and current status
152
+ 3. Document any important decisions in systemPatterns.md
153
+ 4. Record any observed patterns in systemPatterns.md
154
+
155
+ ## MODE-SPECIFIC MEMORY BANK UPDATES
156
+
157
+ ### RESEARCH Mode Updates
158
+ - Update techContext.md with newly discovered technical details
159
+ - Add observed patterns to systemPatterns.md
160
+ - Document current status in activeContext.md
161
+
162
+ ### INNOVATE Mode Updates
163
+ - Document design alternatives considered
164
+ - Record decision rationales with relevance scores
165
+ - Update activeContext.md with potential approaches
166
+
167
+ ### PLAN Mode Updates
168
+ - Create implementation plans in chat
169
+ - Update activeContext.md with planned changes
170
+ - Document expected outcomes in progress.md
171
+
172
+ ### EXECUTE Mode Updates
173
+ - Track implementation progress in progress.md
174
+ - Update activeContext.md after each significant step
175
+ - Document any implementation challenges encountered
176
+
177
+ ### REVIEW Mode Updates
178
+ - Document review findings in progress.md
179
+ - Update activeContext.md with review status
180
+ - Record any patterns or issues for future reference
181
+
182
+ ## CONTEXT AWARENESS
183
+
184
+ The AI should maintain awareness of:
185
+ 1. Current project state from state.mdc
186
+ 2. Project requirements from projectbrief.md
187
+ 3. Technical context from techContext.md
188
+ 4. System architecture from systemPatterns.md
189
+ 5. Active work from activeContext.md
190
+ 6. Progress status from progress.md
191
+
192
+ This context should inform all responses, ensuring continuity and relevance.
193
+
194
+ ---
195
+
196
+ *This file defines the RIPER workflow component of the CursorRIPER Framework.*