@rubytech/create-sitedesk-code 0.1.523 → 0.1.524

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 (690) hide show
  1. package/package.json +1 -1
  2. package/payload/platform/lib/agent-dispatch-rule/dist/index.d.ts +99 -0
  3. package/payload/platform/lib/agent-dispatch-rule/dist/index.d.ts.map +1 -0
  4. package/payload/platform/lib/agent-dispatch-rule/dist/index.js +228 -0
  5. package/payload/platform/lib/agent-dispatch-rule/dist/index.js.map +1 -0
  6. package/payload/platform/lib/agent-dispatch-rule/package.json +6 -0
  7. package/payload/platform/lib/agent-dispatch-rule/src/__tests__/rule.test.ts +384 -0
  8. package/payload/platform/lib/agent-dispatch-rule/src/index.ts +269 -0
  9. package/payload/platform/lib/agent-dispatch-rule/tsconfig.json +9 -0
  10. package/payload/platform/lib/agent-dispatch-rule/vitest.config.ts +9 -0
  11. package/payload/platform/lib/routine-templates/dist/roster.js +1 -1
  12. package/payload/platform/lib/routine-templates/src/roster.ts +1 -1
  13. package/payload/platform/package.json +2 -2
  14. package/payload/platform/plugins/admin/PLUGIN.md +1 -0
  15. package/payload/platform/plugins/admin/hooks/__tests__/mailbox-inject.test.sh +501 -0
  16. package/payload/platform/plugins/admin/hooks/mailbox-inject.sh +299 -0
  17. package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +54 -21
  18. package/payload/platform/plugins/admin/skills/whats-new/SKILL.md +6 -0
  19. package/payload/platform/plugins/docs/references/admin-ui.md +49 -18
  20. package/payload/platform/plugins/docs/references/workflows.md +4 -2
  21. package/payload/platform/plugins/email/mcp/dist/__tests__/email-status.test.js +72 -1
  22. package/payload/platform/plugins/email/mcp/dist/__tests__/email-status.test.js.map +1 -1
  23. package/payload/platform/plugins/email/mcp/dist/__tests__/mailbox-resolve.test.js +4 -1
  24. package/payload/platform/plugins/email/mcp/dist/__tests__/mailbox-resolve.test.js.map +1 -1
  25. package/payload/platform/plugins/email/mcp/dist/lib/credentials.d.ts.map +1 -1
  26. package/payload/platform/plugins/email/mcp/dist/lib/credentials.js +4 -2
  27. package/payload/platform/plugins/email/mcp/dist/lib/credentials.js.map +1 -1
  28. package/payload/platform/plugins/email/mcp/dist/tools/email-status.d.ts +0 -6
  29. package/payload/platform/plugins/email/mcp/dist/tools/email-status.d.ts.map +1 -1
  30. package/payload/platform/plugins/email/mcp/dist/tools/email-status.js +24 -2
  31. package/payload/platform/plugins/email/mcp/dist/tools/email-status.js.map +1 -1
  32. package/payload/platform/plugins/email/references/email-reference.md +1 -1
  33. package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-search-delegated-ids.test.d.ts +2 -0
  34. package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-search-delegated-ids.test.d.ts.map +1 -0
  35. package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-search-delegated-ids.test.js +322 -0
  36. package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-search-delegated-ids.test.js.map +1 -0
  37. package/payload/platform/plugins/outlook/mcp/dist/__tests__/mailbox-registry.test.js +21 -1
  38. package/payload/platform/plugins/outlook/mcp/dist/__tests__/mailbox-registry.test.js.map +1 -1
  39. package/payload/platform/plugins/outlook/mcp/dist/auth/mailbox-registry.d.ts +13 -0
  40. package/payload/platform/plugins/outlook/mcp/dist/auth/mailbox-registry.d.ts.map +1 -1
  41. package/payload/platform/plugins/outlook/mcp/dist/auth/mailbox-registry.js +16 -0
  42. package/payload/platform/plugins/outlook/mcp/dist/auth/mailbox-registry.js.map +1 -1
  43. package/payload/platform/plugins/outlook/mcp/dist/index.js +5 -5
  44. package/payload/platform/plugins/outlook/mcp/dist/index.js.map +1 -1
  45. package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.d.ts.map +1 -1
  46. package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.js +6 -0
  47. package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.js.map +1 -1
  48. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-search.d.ts +7 -0
  49. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-search.d.ts.map +1 -1
  50. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-search.js +122 -8
  51. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-search.js.map +1 -1
  52. package/payload/platform/plugins/scheduling/PLUGIN.md +20 -1
  53. package/payload/platform/plugins/scheduling/mcp/dist/index.js +6 -4
  54. package/payload/platform/plugins/scheduling/mcp/dist/index.js.map +1 -1
  55. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/agent-dispatch.test.js +8 -36
  56. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/agent-dispatch.test.js.map +1 -1
  57. package/payload/platform/plugins/scheduling/mcp/dist/lib/agent-dispatch.d.ts +10 -65
  58. package/payload/platform/plugins/scheduling/mcp/dist/lib/agent-dispatch.d.ts.map +1 -1
  59. package/payload/platform/plugins/scheduling/mcp/dist/lib/agent-dispatch.js +29 -122
  60. package/payload/platform/plugins/scheduling/mcp/dist/lib/agent-dispatch.js.map +1 -1
  61. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-update-status.test.d.ts +2 -0
  62. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-update-status.test.d.ts.map +1 -0
  63. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-update-status.test.js +305 -0
  64. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-update-status.test.js.map +1 -0
  65. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-update.d.ts +46 -1
  66. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-update.d.ts.map +1 -1
  67. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-update.js +172 -4
  68. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-update.js.map +1 -1
  69. package/payload/platform/plugins/scheduling/skills/routine-control/SKILL.md +48 -0
  70. package/payload/platform/plugins/sweep/skills/email-graph-sweep/SKILL.md +21 -7
  71. package/payload/platform/scripts/__tests__/mailbox-inject-registered.test.sh +80 -0
  72. package/payload/platform/scripts/lib/__tests__/account-settings-mailbox-inject.test.sh +166 -0
  73. package/payload/platform/scripts/lib/account-settings-mailbox-inject.sh +91 -0
  74. package/payload/platform/scripts/lib/provision-account-dir.sh +1 -0
  75. package/payload/platform/scripts/setup-account.sh +15 -0
  76. package/payload/server/public/activity.html +5 -5
  77. package/payload/server/public/agents.html +4 -4
  78. package/payload/server/public/assets/{AdminLoginScreens-uknqh2Pm.js → AdminLoginScreens-BgDjueVe.js} +1 -1
  79. package/payload/server/public/assets/AdminLoginScreens-BgDjueVe.js.br +0 -0
  80. package/payload/server/public/assets/AdminLoginScreens-BgDjueVe.js.gz +0 -0
  81. package/payload/server/public/assets/{AdminShell-GqtMImyQ.js → AdminShell-YctTrR-D.js} +1 -1
  82. package/payload/server/public/assets/AdminShell-YctTrR-D.js.br +0 -0
  83. package/payload/server/public/assets/AdminShell-YctTrR-D.js.gz +0 -0
  84. package/payload/server/public/assets/{activity-B4KfMJqO.js → activity-DGQt5ys_.js} +1 -1
  85. package/payload/server/public/assets/activity-DGQt5ys_.js.br +0 -0
  86. package/payload/server/public/assets/activity-DGQt5ys_.js.gz +0 -0
  87. package/payload/server/public/assets/admin-DnUxbB3P.js +1 -0
  88. package/payload/server/public/assets/admin-DnUxbB3P.js.br +0 -0
  89. package/payload/server/public/assets/admin-DnUxbB3P.js.gz +0 -0
  90. package/payload/server/public/assets/agents-Bc2LZjwC.js +1 -0
  91. package/payload/server/public/assets/agents-Bc2LZjwC.js.br +0 -0
  92. package/payload/server/public/assets/agents-Bc2LZjwC.js.gz +0 -0
  93. package/payload/server/public/assets/{arc-DaI5MLTq.js → arc-DaudCnXg.js} +1 -1
  94. package/payload/server/public/assets/arc-DaudCnXg.js.br +0 -0
  95. package/payload/server/public/assets/arc-DaudCnXg.js.gz +0 -0
  96. package/payload/server/public/assets/architecture-YZFGNWBL-DPFsm5jD.js +1 -0
  97. package/payload/server/public/assets/architecture-YZFGNWBL-DPFsm5jD.js.br +0 -0
  98. package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-CBGVUEN9.js → architectureDiagram-Q4EWVU46-BEEC3s7i.js} +1 -1
  99. package/payload/server/public/assets/architectureDiagram-Q4EWVU46-BEEC3s7i.js.br +0 -0
  100. package/payload/server/public/assets/architectureDiagram-Q4EWVU46-BEEC3s7i.js.gz +0 -0
  101. package/payload/server/public/assets/{blockDiagram-DXYQGD6D-DS6dS4GZ.js → blockDiagram-DXYQGD6D-BIWyfb18.js} +1 -1
  102. package/payload/server/public/assets/blockDiagram-DXYQGD6D-BIWyfb18.js.br +0 -0
  103. package/payload/server/public/assets/blockDiagram-DXYQGD6D-BIWyfb18.js.gz +0 -0
  104. package/payload/server/public/assets/{browser-B3hSzI3O.js → browser-BtF7SzvG.js} +1 -1
  105. package/payload/server/public/assets/browser-BtF7SzvG.js.br +0 -0
  106. package/payload/server/public/assets/browser-BtF7SzvG.js.gz +0 -0
  107. package/payload/server/public/assets/{c4Diagram-AHTNJAMY-hBSBUZPt.js → c4Diagram-AHTNJAMY--h6oE2cv.js} +1 -1
  108. package/payload/server/public/assets/c4Diagram-AHTNJAMY--h6oE2cv.js.br +0 -0
  109. package/payload/server/public/assets/{c4Diagram-AHTNJAMY-hBSBUZPt.js.gz → c4Diagram-AHTNJAMY--h6oE2cv.js.gz} +0 -0
  110. package/payload/server/public/assets/{calendar-BggxXxhS.js → calendar-D25EhXbD.js} +1 -1
  111. package/payload/server/public/assets/calendar-D25EhXbD.js.br +0 -0
  112. package/payload/server/public/assets/calendar-D25EhXbD.js.gz +0 -0
  113. package/payload/server/public/assets/channel-TwxCDSpK.js +1 -0
  114. package/payload/server/public/assets/channel-TwxCDSpK.js.br +0 -0
  115. package/payload/server/public/assets/chat-z4jsHFXg.js +1 -0
  116. package/payload/server/public/assets/chat-z4jsHFXg.js.br +0 -0
  117. package/payload/server/public/assets/chat-z4jsHFXg.js.gz +0 -0
  118. package/payload/server/public/assets/chevron-left-BD09SN6R.js +1 -0
  119. package/payload/server/public/assets/chevron-right-ChmWeo7T.js +1 -0
  120. package/payload/server/public/assets/chevron-right-ChmWeo7T.js.br +0 -0
  121. package/payload/server/public/assets/{chunk-2KRD3SAO-B6koUoB7.js → chunk-2KRD3SAO-BwEVlnxo.js} +1 -1
  122. package/payload/server/public/assets/chunk-2KRD3SAO-BwEVlnxo.js.br +0 -0
  123. package/payload/server/public/assets/chunk-2KRD3SAO-BwEVlnxo.js.gz +0 -0
  124. package/payload/server/public/assets/{chunk-336JU56O-BF6BRh8u.js → chunk-336JU56O-DQddTATH.js} +2 -2
  125. package/payload/server/public/assets/chunk-336JU56O-DQddTATH.js.br +0 -0
  126. package/payload/server/public/assets/chunk-336JU56O-DQddTATH.js.gz +0 -0
  127. package/payload/server/public/assets/chunk-426QAEUC-BDC8wptW.js +1 -0
  128. package/payload/server/public/assets/chunk-426QAEUC-BDC8wptW.js.br +0 -0
  129. package/payload/server/public/assets/chunk-426QAEUC-BDC8wptW.js.gz +0 -0
  130. package/payload/server/public/assets/{chunk-4BX2VUAB-7sO95xR2.js → chunk-4BX2VUAB-C5p3xTC6.js} +1 -1
  131. package/payload/server/public/assets/chunk-4BX2VUAB-C5p3xTC6.js.br +0 -0
  132. package/payload/server/public/assets/chunk-4BX2VUAB-C5p3xTC6.js.gz +0 -0
  133. package/payload/server/public/assets/{chunk-4TB4RGXK-GCTndJYx.js → chunk-4TB4RGXK-gClfNc1w.js} +1 -1
  134. package/payload/server/public/assets/chunk-4TB4RGXK-gClfNc1w.js.br +0 -0
  135. package/payload/server/public/assets/chunk-4TB4RGXK-gClfNc1w.js.gz +0 -0
  136. package/payload/server/public/assets/{chunk-55IACEB6-ggIJf_TC.js → chunk-55IACEB6-DDU_m1ra.js} +1 -1
  137. package/payload/server/public/assets/chunk-55IACEB6-DDU_m1ra.js.br +0 -0
  138. package/payload/server/public/assets/chunk-55IACEB6-DDU_m1ra.js.gz +0 -0
  139. package/payload/server/public/assets/{chunk-5FUZZQ4R-DeGmkimt.js → chunk-5FUZZQ4R-CZ2jQWNR.js} +1 -1
  140. package/payload/server/public/assets/chunk-5FUZZQ4R-CZ2jQWNR.js.br +0 -0
  141. package/payload/server/public/assets/chunk-5FUZZQ4R-CZ2jQWNR.js.gz +0 -0
  142. package/payload/server/public/assets/{chunk-5PVQY5BW-aFIQKk_U.js → chunk-5PVQY5BW-kcZ5kfTg.js} +1 -1
  143. package/payload/server/public/assets/chunk-5PVQY5BW-kcZ5kfTg.js.br +0 -0
  144. package/payload/server/public/assets/chunk-5PVQY5BW-kcZ5kfTg.js.gz +0 -0
  145. package/payload/server/public/assets/{chunk-67CJDMHE-LS8rUbii.js → chunk-67CJDMHE-9W0Qv0jm.js} +1 -1
  146. package/payload/server/public/assets/chunk-67CJDMHE-9W0Qv0jm.js.br +0 -0
  147. package/payload/server/public/assets/chunk-67CJDMHE-9W0Qv0jm.js.gz +0 -0
  148. package/payload/server/public/assets/{chunk-7N4EOEYR-JKOVngS0.js → chunk-7N4EOEYR-B3gqydR3.js} +1 -1
  149. package/payload/server/public/assets/chunk-7N4EOEYR-B3gqydR3.js.br +0 -0
  150. package/payload/server/public/assets/chunk-7N4EOEYR-B3gqydR3.js.gz +0 -0
  151. package/payload/server/public/assets/{chunk-AA7GKIK3-CoXnTVK6.js → chunk-AA7GKIK3-DW8a-2NK.js} +1 -1
  152. package/payload/server/public/assets/chunk-AA7GKIK3-DW8a-2NK.js.br +4 -0
  153. package/payload/server/public/assets/chunk-AA7GKIK3-DW8a-2NK.js.gz +0 -0
  154. package/payload/server/public/assets/{chunk-BSJP7CBP-CcsqObFg.js → chunk-BSJP7CBP-DqXIO_5R.js} +1 -1
  155. package/payload/server/public/assets/chunk-BSJP7CBP-DqXIO_5R.js.br +0 -0
  156. package/payload/server/public/assets/chunk-BSJP7CBP-DqXIO_5R.js.gz +0 -0
  157. package/payload/server/public/assets/{chunk-CIAEETIT-CpsybR7q.js → chunk-CIAEETIT-BMJfgj2u.js} +1 -1
  158. package/payload/server/public/assets/chunk-CIAEETIT-BMJfgj2u.js.br +0 -0
  159. package/payload/server/public/assets/chunk-CIAEETIT-BMJfgj2u.js.gz +0 -0
  160. package/payload/server/public/assets/{chunk-EDXVE4YY-BZ2I9PSq.js → chunk-EDXVE4YY-BxdLPk0b.js} +1 -1
  161. package/payload/server/public/assets/chunk-EDXVE4YY-BxdLPk0b.js.br +0 -0
  162. package/payload/server/public/assets/chunk-EDXVE4YY-BxdLPk0b.js.gz +0 -0
  163. package/payload/server/public/assets/{chunk-ENJZ2VHE-DbTwt6OZ.js → chunk-ENJZ2VHE-Cfe2DCjQ.js} +1 -1
  164. package/payload/server/public/assets/chunk-ENJZ2VHE-Cfe2DCjQ.js.br +0 -0
  165. package/payload/server/public/assets/chunk-ENJZ2VHE-Cfe2DCjQ.js.gz +0 -0
  166. package/payload/server/public/assets/{chunk-FMBD7UC4-D27VnSCa.js → chunk-FMBD7UC4-CdPjwbtf.js} +1 -1
  167. package/payload/server/public/assets/chunk-FMBD7UC4-CdPjwbtf.js.br +0 -0
  168. package/payload/server/public/assets/chunk-FMBD7UC4-CdPjwbtf.js.gz +0 -0
  169. package/payload/server/public/assets/{chunk-FOC6F5B3-C0tU2UFl.js → chunk-FOC6F5B3-Dl6l1KAh.js} +1 -1
  170. package/payload/server/public/assets/chunk-FOC6F5B3-Dl6l1KAh.js.br +0 -0
  171. package/payload/server/public/assets/chunk-FOC6F5B3-Dl6l1KAh.js.gz +0 -0
  172. package/payload/server/public/assets/{chunk-ICPOFSXX-UPPu2OIq.js → chunk-ICPOFSXX-PnsGrqtx.js} +2 -2
  173. package/payload/server/public/assets/chunk-ICPOFSXX-PnsGrqtx.js.br +0 -0
  174. package/payload/server/public/assets/chunk-ICPOFSXX-PnsGrqtx.js.gz +0 -0
  175. package/payload/server/public/assets/{chunk-K5T4RW27-DIKxqyYw.js → chunk-K5T4RW27--g29_wjW.js} +1 -1
  176. package/payload/server/public/assets/chunk-K5T4RW27--g29_wjW.js.br +0 -0
  177. package/payload/server/public/assets/chunk-K5T4RW27--g29_wjW.js.gz +0 -0
  178. package/payload/server/public/assets/{chunk-KGLVRYIC-CiL4YVLo.js → chunk-KGLVRYIC-CI77ENeO.js} +1 -1
  179. package/payload/server/public/assets/chunk-KGLVRYIC-CI77ENeO.js.br +3 -0
  180. package/payload/server/public/assets/chunk-KGLVRYIC-CI77ENeO.js.gz +0 -0
  181. package/payload/server/public/assets/{chunk-LIHQZDEY-ejKezVlD.js → chunk-LIHQZDEY-CE-XByg6.js} +1 -1
  182. package/payload/server/public/assets/chunk-LIHQZDEY-CE-XByg6.js.br +0 -0
  183. package/payload/server/public/assets/chunk-LIHQZDEY-CE-XByg6.js.gz +0 -0
  184. package/payload/server/public/assets/{chunk-ORNJ4GCN-Cc0vqc-D.js → chunk-ORNJ4GCN-DkjJQQSm.js} +1 -1
  185. package/payload/server/public/assets/chunk-ORNJ4GCN-DkjJQQSm.js.br +0 -0
  186. package/payload/server/public/assets/chunk-ORNJ4GCN-DkjJQQSm.js.gz +0 -0
  187. package/payload/server/public/assets/{chunk-OYMX7WX6-Drxn1qG0.js → chunk-OYMX7WX6-DhogFeD7.js} +1 -1
  188. package/payload/server/public/assets/chunk-OYMX7WX6-DhogFeD7.js.br +0 -0
  189. package/payload/server/public/assets/chunk-OYMX7WX6-DhogFeD7.js.gz +0 -0
  190. package/payload/server/public/assets/chunk-QZHKN3VN-DnqqL1de.js +1 -0
  191. package/payload/server/public/assets/chunk-QZHKN3VN-DnqqL1de.js.br +0 -0
  192. package/payload/server/public/assets/chunk-QZHKN3VN-DnqqL1de.js.gz +0 -0
  193. package/payload/server/public/assets/{chunk-U2HBQHQK-DnbQIkRP.js → chunk-U2HBQHQK-CeaRXuiO.js} +1 -1
  194. package/payload/server/public/assets/chunk-U2HBQHQK-CeaRXuiO.js.br +0 -0
  195. package/payload/server/public/assets/chunk-U2HBQHQK-CeaRXuiO.js.gz +0 -0
  196. package/payload/server/public/assets/{chunk-X2U36JSP-CauTSVWg.js → chunk-X2U36JSP-BqxXeOqf.js} +1 -1
  197. package/payload/server/public/assets/chunk-X2U36JSP-BqxXeOqf.js.br +0 -0
  198. package/payload/server/public/assets/chunk-X2U36JSP-BqxXeOqf.js.gz +0 -0
  199. package/payload/server/public/assets/{chunk-XPW4576I-DZqqB9Zi.js → chunk-XPW4576I-DtqJwn2x.js} +1 -1
  200. package/payload/server/public/assets/chunk-XPW4576I-DtqJwn2x.js.br +0 -0
  201. package/payload/server/public/assets/chunk-XPW4576I-DtqJwn2x.js.gz +0 -0
  202. package/payload/server/public/assets/{chunk-YZCP3GAM-BGHo4Li-.js → chunk-YZCP3GAM-COBlEwQw.js} +1 -1
  203. package/payload/server/public/assets/chunk-YZCP3GAM-COBlEwQw.js.br +0 -0
  204. package/payload/server/public/assets/chunk-YZCP3GAM-COBlEwQw.js.gz +0 -0
  205. package/payload/server/public/assets/{chunk-ZZ45TVLE-DWGJKPd7.js → chunk-ZZ45TVLE-CcL088y6.js} +1 -1
  206. package/payload/server/public/assets/chunk-ZZ45TVLE-CcL088y6.js.br +0 -0
  207. package/payload/server/public/assets/chunk-ZZ45TVLE-CcL088y6.js.gz +0 -0
  208. package/payload/server/public/assets/classDiagram-6PBFFD2Q-Bc3P4dpc.js +1 -0
  209. package/payload/server/public/assets/classDiagram-6PBFFD2Q-Bc3P4dpc.js.br +0 -0
  210. package/payload/server/public/assets/classDiagram-6PBFFD2Q-Bc3P4dpc.js.gz +0 -0
  211. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-DgEF_rR_.js +1 -0
  212. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-DgEF_rR_.js.br +0 -0
  213. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-DgEF_rR_.js.gz +0 -0
  214. package/payload/server/public/assets/clock-Yqf7Ke7I.js +1 -0
  215. package/payload/server/public/assets/clock-Yqf7Ke7I.js.br +0 -0
  216. package/payload/server/public/assets/clock-Yqf7Ke7I.js.gz +0 -0
  217. package/payload/server/public/assets/clone-B3vq32j7.js +1 -0
  218. package/payload/server/public/assets/{cose-bilkent-S5V4N54A-D-95BzXL.js → cose-bilkent-S5V4N54A-kEHVkDNn.js} +1 -1
  219. package/payload/server/public/assets/cose-bilkent-S5V4N54A-kEHVkDNn.js.br +0 -0
  220. package/payload/server/public/assets/cose-bilkent-S5V4N54A-kEHVkDNn.js.gz +0 -0
  221. package/payload/server/public/assets/{dagre-BZYNBHvT.js → dagre-D2wUw1zC.js} +1 -1
  222. package/payload/server/public/assets/dagre-D2wUw1zC.js.br +0 -0
  223. package/payload/server/public/assets/dagre-D2wUw1zC.js.gz +0 -0
  224. package/payload/server/public/assets/{dagre-KV5264BT-DyU4HQLQ.js → dagre-KV5264BT-BWfTDwEs.js} +1 -1
  225. package/payload/server/public/assets/dagre-KV5264BT-BWfTDwEs.js.br +0 -0
  226. package/payload/server/public/assets/dagre-KV5264BT-BWfTDwEs.js.gz +0 -0
  227. package/payload/server/public/assets/data-RmnKj5nC.js +1 -0
  228. package/payload/server/public/assets/data-RmnKj5nC.js.br +2 -0
  229. package/payload/server/public/assets/data-RmnKj5nC.js.gz +0 -0
  230. package/payload/server/public/assets/{diagram-5BDNPKRD-CCttJ9XA.js → diagram-5BDNPKRD-Tl9dS8w0.js} +1 -1
  231. package/payload/server/public/assets/diagram-5BDNPKRD-Tl9dS8w0.js.br +0 -0
  232. package/payload/server/public/assets/diagram-5BDNPKRD-Tl9dS8w0.js.gz +0 -0
  233. package/payload/server/public/assets/{diagram-G4DWMVQ6-DvkpgSLO.js → diagram-G4DWMVQ6-CeSe6TMu.js} +1 -1
  234. package/payload/server/public/assets/diagram-G4DWMVQ6-CeSe6TMu.js.br +0 -0
  235. package/payload/server/public/assets/diagram-G4DWMVQ6-CeSe6TMu.js.gz +0 -0
  236. package/payload/server/public/assets/{diagram-MMDJMWI5-DHmW5Y9k.js → diagram-MMDJMWI5-DYBNJCmk.js} +1 -1
  237. package/payload/server/public/assets/diagram-MMDJMWI5-DYBNJCmk.js.br +0 -0
  238. package/payload/server/public/assets/diagram-MMDJMWI5-DYBNJCmk.js.gz +0 -0
  239. package/payload/server/public/assets/{diagram-TYMM5635-C6T4hwzO.js → diagram-TYMM5635-BmpUGltx.js} +1 -1
  240. package/payload/server/public/assets/diagram-TYMM5635-BmpUGltx.js.br +0 -0
  241. package/payload/server/public/assets/diagram-TYMM5635-BmpUGltx.js.gz +0 -0
  242. package/payload/server/public/assets/{erDiagram-SMLLAGMA-5v_o7s3T.js → erDiagram-SMLLAGMA-DuwuNGqx.js} +1 -1
  243. package/payload/server/public/assets/erDiagram-SMLLAGMA-DuwuNGqx.js.br +0 -0
  244. package/payload/server/public/assets/erDiagram-SMLLAGMA-DuwuNGqx.js.gz +0 -0
  245. package/payload/server/public/assets/file-download-CiGklOfA.js +1 -0
  246. package/payload/server/public/assets/file-download-CiGklOfA.js.br +0 -0
  247. package/payload/server/public/assets/file-download-CiGklOfA.js.gz +0 -0
  248. package/payload/server/public/assets/{file-text-BKs9eyiw.js → file-text-XjJPULAZ.js} +1 -1
  249. package/payload/server/public/assets/file-text-XjJPULAZ.js.br +0 -0
  250. package/payload/server/public/assets/file-text-XjJPULAZ.js.gz +0 -0
  251. package/payload/server/public/assets/{flatten-BtIc9jX7.js → flatten-Bu-b1uTY.js} +1 -1
  252. package/payload/server/public/assets/flatten-Bu-b1uTY.js.br +0 -0
  253. package/payload/server/public/assets/flatten-Bu-b1uTY.js.gz +0 -0
  254. package/payload/server/public/assets/{flowDiagram-DWJPFMVM-3UhCDsjt.js → flowDiagram-DWJPFMVM-Bpp8P6Ba.js} +1 -1
  255. package/payload/server/public/assets/flowDiagram-DWJPFMVM-Bpp8P6Ba.js.br +0 -0
  256. package/payload/server/public/assets/flowDiagram-DWJPFMVM-Bpp8P6Ba.js.gz +0 -0
  257. package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-F2zgHIIQ.js → ganttDiagram-T4ZO3ILL-CE6ppjB4.js} +1 -1
  258. package/payload/server/public/assets/ganttDiagram-T4ZO3ILL-CE6ppjB4.js.br +0 -0
  259. package/payload/server/public/assets/ganttDiagram-T4ZO3ILL-CE6ppjB4.js.gz +0 -0
  260. package/payload/server/public/assets/gitGraph-7Q5UKJZL-B0OUwOUx.js +1 -0
  261. package/payload/server/public/assets/gitGraph-7Q5UKJZL-B0OUwOUx.js.br +0 -0
  262. package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-oQc1N3dT.js → gitGraphDiagram-UUTBAWPF-BdK1GjPr.js} +1 -1
  263. package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-BdK1GjPr.js.br +0 -0
  264. package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-BdK1GjPr.js.gz +0 -0
  265. package/payload/server/public/assets/{graph-DTi71NaZ.js → graph-BjHJ0z_6.js} +1 -1
  266. package/payload/server/public/assets/graph-BjHJ0z_6.js.br +0 -0
  267. package/payload/server/public/assets/graph-BjHJ0z_6.js.gz +0 -0
  268. package/payload/server/public/assets/{graph-labels-BT3S6e9H.js → graph-labels-D-0u37KA.js} +1 -1
  269. package/payload/server/public/assets/graph-labels-D-0u37KA.js.br +0 -0
  270. package/payload/server/public/assets/graph-labels-D-0u37KA.js.gz +0 -0
  271. package/payload/server/public/assets/{graphlib-DY4-AT2Q.js → graphlib-CHEXylyU.js} +1 -1
  272. package/payload/server/public/assets/graphlib-CHEXylyU.js.br +0 -0
  273. package/payload/server/public/assets/graphlib-CHEXylyU.js.gz +0 -0
  274. package/payload/server/public/assets/info-OMHHGYJF-C_8TwPDe.js +1 -0
  275. package/payload/server/public/assets/info-OMHHGYJF-C_8TwPDe.js.br +0 -0
  276. package/payload/server/public/assets/infoDiagram-42DDH7IO-msfwyvbV.js +2 -0
  277. package/payload/server/public/assets/infoDiagram-42DDH7IO-msfwyvbV.js.br +0 -0
  278. package/payload/server/public/assets/infoDiagram-42DDH7IO-msfwyvbV.js.gz +0 -0
  279. package/payload/server/public/assets/{isEmpty-Bu4fZ8Kf.js → isEmpty-CjH0UASp.js} +1 -1
  280. package/payload/server/public/assets/isEmpty-CjH0UASp.js.br +0 -0
  281. package/payload/server/public/assets/isEmpty-CjH0UASp.js.gz +0 -0
  282. package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-wJhSOkuw.js → ishikawaDiagram-UXIWVN3A-CgkVZ4-3.js} +1 -1
  283. package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-CgkVZ4-3.js.br +0 -0
  284. package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-CgkVZ4-3.js.gz +0 -0
  285. package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-DgadC6Pz.js → journeyDiagram-VCZTEJTY-ByUPv8q6.js} +1 -1
  286. package/payload/server/public/assets/journeyDiagram-VCZTEJTY-ByUPv8q6.js.br +0 -0
  287. package/payload/server/public/assets/journeyDiagram-VCZTEJTY-ByUPv8q6.js.gz +0 -0
  288. package/payload/server/public/assets/{kanban-definition-6JOO6SKY-Bs4nQqXI.js → kanban-definition-6JOO6SKY-CFinqhpu.js} +1 -1
  289. package/payload/server/public/assets/kanban-definition-6JOO6SKY-CFinqhpu.js.br +0 -0
  290. package/payload/server/public/assets/kanban-definition-6JOO6SKY-CFinqhpu.js.gz +0 -0
  291. package/payload/server/public/assets/{line-Bnmxy1hO.js → line-Y4ns5Ghi.js} +1 -1
  292. package/payload/server/public/assets/line-Y4ns5Ghi.js.br +0 -0
  293. package/payload/server/public/assets/line-Y4ns5Ghi.js.gz +0 -0
  294. package/payload/server/public/assets/{linear-RvwZxFzh.js → linear-l39GooQ5.js} +1 -1
  295. package/payload/server/public/assets/linear-l39GooQ5.js.br +0 -0
  296. package/payload/server/public/assets/linear-l39GooQ5.js.gz +0 -0
  297. package/payload/server/public/assets/{maximize-2-zC94tsxY.js → maximize-2-BJ9S-nfS.js} +1 -1
  298. package/payload/server/public/assets/maximize-2-BJ9S-nfS.js.br +0 -0
  299. package/payload/server/public/assets/maximize-2-BJ9S-nfS.js.gz +0 -0
  300. package/payload/server/public/assets/{mermaid-parser.core-DeNV8RtA.js → mermaid-parser.core-5w0T1dRj.js} +2 -2
  301. package/payload/server/public/assets/mermaid-parser.core-5w0T1dRj.js.br +0 -0
  302. package/payload/server/public/assets/mermaid-parser.core-5w0T1dRj.js.gz +0 -0
  303. package/payload/server/public/assets/{mermaid.core-BU9IiSCP.js → mermaid.core-DBADY5VW.js} +3 -3
  304. package/payload/server/public/assets/mermaid.core-DBADY5VW.js.br +0 -0
  305. package/payload/server/public/assets/mermaid.core-DBADY5VW.js.gz +0 -0
  306. package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-D1PMUxxm.js → mindmap-definition-QFDTVHPH-rHz37loq.js} +1 -1
  307. package/payload/server/public/assets/mindmap-definition-QFDTVHPH-rHz37loq.js.br +0 -0
  308. package/payload/server/public/assets/mindmap-definition-QFDTVHPH-rHz37loq.js.gz +0 -0
  309. package/payload/server/public/assets/{operator-BtWNEMh-.js → operator-Cay4rOOK.js} +1 -1
  310. package/payload/server/public/assets/operator-Cay4rOOK.js.br +0 -0
  311. package/payload/server/public/assets/operator-Cay4rOOK.js.gz +0 -0
  312. package/payload/server/public/assets/{ordinal-C2TEWKNu.js → ordinal-D6D6WcTC.js} +1 -1
  313. package/payload/server/public/assets/ordinal-D6D6WcTC.js.br +0 -0
  314. package/payload/server/public/assets/ordinal-D6D6WcTC.js.gz +0 -0
  315. package/payload/server/public/assets/packet-4T2RLAQJ-CCQdbIqO.js +1 -0
  316. package/payload/server/public/assets/packet-4T2RLAQJ-CCQdbIqO.js.br +0 -0
  317. package/payload/server/public/assets/{page-Ccl0FazM.js → page-Cci_j_y7.js} +3 -3
  318. package/payload/server/public/assets/page-Cci_j_y7.js.br +0 -0
  319. package/payload/server/public/assets/page-Cci_j_y7.js.gz +0 -0
  320. package/payload/server/public/assets/page-shuh4ES9.js +1 -0
  321. package/payload/server/public/assets/page-shuh4ES9.js.br +0 -0
  322. package/payload/server/public/assets/page-shuh4ES9.js.gz +0 -0
  323. package/payload/server/public/assets/{pdf-render-C257cidb.js → pdf-render-BSgBp8Fr.js} +1 -1
  324. package/payload/server/public/assets/pdf-render-BSgBp8Fr.js.br +0 -0
  325. package/payload/server/public/assets/pdf-render-BSgBp8Fr.js.gz +0 -0
  326. package/payload/server/public/assets/pie-ZZUOXDRM-Bdw3Iqs7.js +1 -0
  327. package/payload/server/public/assets/pie-ZZUOXDRM-Bdw3Iqs7.js.br +0 -0
  328. package/payload/server/public/assets/{pieDiagram-DEJITSTG-BzdNzoKA.js → pieDiagram-DEJITSTG-as0e_DSH.js} +1 -1
  329. package/payload/server/public/assets/pieDiagram-DEJITSTG-as0e_DSH.js.br +0 -0
  330. package/payload/server/public/assets/pieDiagram-DEJITSTG-as0e_DSH.js.gz +0 -0
  331. package/payload/server/public/assets/{public-BpC6cn9S.js → public-BbJcQGsO.js} +1 -1
  332. package/payload/server/public/assets/public-BbJcQGsO.js.br +0 -0
  333. package/payload/server/public/assets/public-BbJcQGsO.js.gz +0 -0
  334. package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-oFr1MJRO.js → quadrantDiagram-34T5L4WZ-B4t8HO9J.js} +1 -1
  335. package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-B4t8HO9J.js.br +0 -0
  336. package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-B4t8HO9J.js.gz +0 -0
  337. package/payload/server/public/assets/radar-PYXPWWZC-D3FUdA3r.js +1 -0
  338. package/payload/server/public/assets/radar-PYXPWWZC-D3FUdA3r.js.br +0 -0
  339. package/payload/server/public/assets/{reduce-BGpN5lgn.js → reduce-BtXXK8Ma.js} +1 -1
  340. package/payload/server/public/assets/reduce-BtXXK8Ma.js.br +0 -0
  341. package/payload/server/public/assets/reduce-BtXXK8Ma.js.gz +0 -0
  342. package/payload/server/public/assets/{requirementDiagram-MS252O5E-C9QBQxDh.js → requirementDiagram-MS252O5E-yxh30zHX.js} +1 -1
  343. package/payload/server/public/assets/requirementDiagram-MS252O5E-yxh30zHX.js.br +0 -0
  344. package/payload/server/public/assets/requirementDiagram-MS252O5E-yxh30zHX.js.gz +0 -0
  345. package/payload/server/public/assets/{rotate-ccw-BNcqbHkZ.js → rotate-ccw-jeSVwUAv.js} +1 -1
  346. package/payload/server/public/assets/rotate-ccw-jeSVwUAv.js.br +0 -0
  347. package/payload/server/public/assets/rotate-ccw-jeSVwUAv.js.gz +0 -0
  348. package/payload/server/public/assets/routines-D3M1Wh3a.js +1 -0
  349. package/payload/server/public/assets/routines-D3M1Wh3a.js.br +0 -0
  350. package/payload/server/public/assets/routines-D3M1Wh3a.js.gz +0 -0
  351. package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-c_y3bvVv.js → sankeyDiagram-XADWPNL6-j-k9Wfty.js} +1 -1
  352. package/payload/server/public/assets/sankeyDiagram-XADWPNL6-j-k9Wfty.js.br +0 -0
  353. package/payload/server/public/assets/sankeyDiagram-XADWPNL6-j-k9Wfty.js.gz +0 -0
  354. package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-YwlCBPHE.js → sequenceDiagram-FGHM5R23-DGLgcLhC.js} +1 -1
  355. package/payload/server/public/assets/sequenceDiagram-FGHM5R23-DGLgcLhC.js.br +0 -0
  356. package/payload/server/public/assets/sequenceDiagram-FGHM5R23-DGLgcLhC.js.gz +0 -0
  357. package/payload/server/public/assets/{skills-COLAw_jt.js → skills-Bhej2ub1.js} +1 -1
  358. package/payload/server/public/assets/skills-Bhej2ub1.js.br +0 -0
  359. package/payload/server/public/assets/skills-Bhej2ub1.js.gz +0 -0
  360. package/payload/server/public/assets/{stateDiagram-FHFEXIEX-BFE3e-FM.js → stateDiagram-FHFEXIEX-C9p1OUMI.js} +1 -1
  361. package/payload/server/public/assets/stateDiagram-FHFEXIEX-C9p1OUMI.js.br +0 -0
  362. package/payload/server/public/assets/stateDiagram-FHFEXIEX-C9p1OUMI.js.gz +0 -0
  363. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-Bf808Apk.js +1 -0
  364. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-Bf808Apk.js.br +0 -0
  365. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-Bf808Apk.js.gz +0 -0
  366. package/payload/server/public/assets/{tasks-CZDQI4nB.js → tasks-qY-dtOI2.js} +1 -1
  367. package/payload/server/public/assets/tasks-qY-dtOI2.js.br +0 -0
  368. package/payload/server/public/assets/tasks-qY-dtOI2.js.gz +0 -0
  369. package/payload/server/public/assets/{time-entry-format-laTFzawg.js → time-entry-format-r5UY9rjG.js} +1 -1
  370. package/payload/server/public/assets/time-entry-format-r5UY9rjG.js.br +0 -0
  371. package/payload/server/public/assets/time-entry-format-r5UY9rjG.js.gz +0 -0
  372. package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-azqhmRwZ.js → timeline-definition-GMOUNBTQ-B1g7pgkH.js} +1 -1
  373. package/payload/server/public/assets/timeline-definition-GMOUNBTQ-B1g7pgkH.js.br +0 -0
  374. package/payload/server/public/assets/timeline-definition-GMOUNBTQ-B1g7pgkH.js.gz +0 -0
  375. package/payload/server/public/assets/treeView-SZITEDCU-DetKw0D0.js +1 -0
  376. package/payload/server/public/assets/treeView-SZITEDCU-DetKw0D0.js.br +0 -0
  377. package/payload/server/public/assets/treemap-W4RFUUIX-zQkIANxW.js +1 -0
  378. package/payload/server/public/assets/treemap-W4RFUUIX-zQkIANxW.js.br +0 -0
  379. package/payload/server/public/assets/{triangle-alert-DrwqhEog.js → triangle-alert--PCKaewD.js} +1 -1
  380. package/payload/server/public/assets/triangle-alert--PCKaewD.js.br +2 -0
  381. package/payload/server/public/assets/triangle-alert--PCKaewD.js.gz +0 -0
  382. package/payload/server/public/assets/{useCopyFeedback-Cxme5GK6.js → useCopyFeedback-Dg5lNgqH.js} +1 -1
  383. package/payload/server/public/assets/useCopyFeedback-Dg5lNgqH.js.br +0 -0
  384. package/payload/server/public/assets/useCopyFeedback-Dg5lNgqH.js.gz +0 -0
  385. package/payload/server/public/assets/useSubAccountSwitcher-BYfe9vj8.css +1 -0
  386. package/payload/server/public/assets/useSubAccountSwitcher-BYfe9vj8.css.br +0 -0
  387. package/payload/server/public/assets/useSubAccountSwitcher-BYfe9vj8.css.gz +0 -0
  388. package/payload/server/public/assets/{useVoiceRecorder-DUBpVa2T.js → useVoiceRecorder-BY6ZsGMH.js} +2 -2
  389. package/payload/server/public/assets/useVoiceRecorder-BY6ZsGMH.js.br +0 -0
  390. package/payload/server/public/assets/useVoiceRecorder-BY6ZsGMH.js.gz +0 -0
  391. package/payload/server/public/assets/{vennDiagram-DHZGUBPP-Da2RfFs8.js → vennDiagram-DHZGUBPP-D2ZjFfh4.js} +1 -1
  392. package/payload/server/public/assets/vennDiagram-DHZGUBPP-D2ZjFfh4.js.br +0 -0
  393. package/payload/server/public/assets/vennDiagram-DHZGUBPP-D2ZjFfh4.js.gz +0 -0
  394. package/payload/server/public/assets/wardley-RL74JXVD-DkQV3DvB.js +1 -0
  395. package/payload/server/public/assets/wardley-RL74JXVD-DkQV3DvB.js.br +0 -0
  396. package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-HdrdBYES.js → wardleyDiagram-NUSXRM2D-BFAhfkD8.js} +1 -1
  397. package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-BFAhfkD8.js.br +0 -0
  398. package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-BFAhfkD8.js.gz +0 -0
  399. package/payload/server/public/assets/{wrench-DWuxPnzF.js → wrench-Bw1FMolk.js} +1 -1
  400. package/payload/server/public/assets/wrench-Bw1FMolk.js.br +0 -0
  401. package/payload/server/public/assets/wrench-Bw1FMolk.js.gz +0 -0
  402. package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-DMk6rTcQ.js → xychartDiagram-5P7HB3ND-Dt94h2RQ.js} +1 -1
  403. package/payload/server/public/assets/xychartDiagram-5P7HB3ND-Dt94h2RQ.js.br +0 -0
  404. package/payload/server/public/assets/xychartDiagram-5P7HB3ND-Dt94h2RQ.js.gz +0 -0
  405. package/payload/server/public/brand-defaults.css +1 -0
  406. package/payload/server/public/browser.html +4 -4
  407. package/payload/server/public/calendar.html +7 -7
  408. package/payload/server/public/chat.html +14 -14
  409. package/payload/server/public/data.html +13 -12
  410. package/payload/server/public/graph.html +9 -9
  411. package/payload/server/public/index.html +16 -15
  412. package/payload/server/public/operator.html +15 -15
  413. package/payload/server/public/public.html +14 -14
  414. package/payload/server/public/routines.html +7 -6
  415. package/payload/server/public/skills.html +5 -5
  416. package/payload/server/public/tasks.html +6 -6
  417. package/payload/server/server.js +744 -425
  418. package/payload/server/public/assets/AdminLoginScreens-uknqh2Pm.js.br +0 -0
  419. package/payload/server/public/assets/AdminLoginScreens-uknqh2Pm.js.gz +0 -0
  420. package/payload/server/public/assets/AdminShell-GqtMImyQ.js.br +0 -0
  421. package/payload/server/public/assets/AdminShell-GqtMImyQ.js.gz +0 -0
  422. package/payload/server/public/assets/activity-B4KfMJqO.js.br +0 -0
  423. package/payload/server/public/assets/activity-B4KfMJqO.js.gz +0 -0
  424. package/payload/server/public/assets/admin-DxCZeVw0.js +0 -1
  425. package/payload/server/public/assets/admin-DxCZeVw0.js.br +0 -0
  426. package/payload/server/public/assets/admin-DxCZeVw0.js.gz +0 -0
  427. package/payload/server/public/assets/agents-BtwBuO4G.js +0 -1
  428. package/payload/server/public/assets/agents-BtwBuO4G.js.br +0 -0
  429. package/payload/server/public/assets/agents-BtwBuO4G.js.gz +0 -0
  430. package/payload/server/public/assets/arc-DaI5MLTq.js.br +0 -0
  431. package/payload/server/public/assets/arc-DaI5MLTq.js.gz +0 -0
  432. package/payload/server/public/assets/architecture-YZFGNWBL-DWZIX5aV.js +0 -1
  433. package/payload/server/public/assets/architecture-YZFGNWBL-DWZIX5aV.js.br +0 -0
  434. package/payload/server/public/assets/architectureDiagram-Q4EWVU46-CBGVUEN9.js.br +0 -0
  435. package/payload/server/public/assets/architectureDiagram-Q4EWVU46-CBGVUEN9.js.gz +0 -0
  436. package/payload/server/public/assets/blockDiagram-DXYQGD6D-DS6dS4GZ.js.br +0 -0
  437. package/payload/server/public/assets/blockDiagram-DXYQGD6D-DS6dS4GZ.js.gz +0 -0
  438. package/payload/server/public/assets/browser-B3hSzI3O.js.br +0 -0
  439. package/payload/server/public/assets/browser-B3hSzI3O.js.gz +0 -0
  440. package/payload/server/public/assets/c4Diagram-AHTNJAMY-hBSBUZPt.js.br +0 -0
  441. package/payload/server/public/assets/calendar-BggxXxhS.js.br +0 -0
  442. package/payload/server/public/assets/calendar-BggxXxhS.js.gz +0 -0
  443. package/payload/server/public/assets/channel-BEokjAeE.js +0 -1
  444. package/payload/server/public/assets/channel-BEokjAeE.js.br +0 -0
  445. package/payload/server/public/assets/chat-flivHt0t.js +0 -1
  446. package/payload/server/public/assets/chat-flivHt0t.js.br +0 -0
  447. package/payload/server/public/assets/chat-flivHt0t.js.gz +0 -0
  448. package/payload/server/public/assets/chevron-left-nVRThX7f.js +0 -1
  449. package/payload/server/public/assets/chevron-right-CLqfrkRA.js +0 -1
  450. package/payload/server/public/assets/chevron-right-CLqfrkRA.js.br +0 -0
  451. package/payload/server/public/assets/chunk-2KRD3SAO-B6koUoB7.js.br +0 -0
  452. package/payload/server/public/assets/chunk-2KRD3SAO-B6koUoB7.js.gz +0 -0
  453. package/payload/server/public/assets/chunk-336JU56O-BF6BRh8u.js.br +0 -0
  454. package/payload/server/public/assets/chunk-336JU56O-BF6BRh8u.js.gz +0 -0
  455. package/payload/server/public/assets/chunk-426QAEUC-pbQ4PWBU.js +0 -1
  456. package/payload/server/public/assets/chunk-426QAEUC-pbQ4PWBU.js.br +0 -0
  457. package/payload/server/public/assets/chunk-426QAEUC-pbQ4PWBU.js.gz +0 -0
  458. package/payload/server/public/assets/chunk-4BX2VUAB-7sO95xR2.js.br +0 -0
  459. package/payload/server/public/assets/chunk-4BX2VUAB-7sO95xR2.js.gz +0 -0
  460. package/payload/server/public/assets/chunk-4TB4RGXK-GCTndJYx.js.br +0 -0
  461. package/payload/server/public/assets/chunk-4TB4RGXK-GCTndJYx.js.gz +0 -0
  462. package/payload/server/public/assets/chunk-55IACEB6-ggIJf_TC.js.br +0 -0
  463. package/payload/server/public/assets/chunk-55IACEB6-ggIJf_TC.js.gz +0 -0
  464. package/payload/server/public/assets/chunk-5FUZZQ4R-DeGmkimt.js.br +0 -0
  465. package/payload/server/public/assets/chunk-5FUZZQ4R-DeGmkimt.js.gz +0 -0
  466. package/payload/server/public/assets/chunk-5PVQY5BW-aFIQKk_U.js.br +0 -0
  467. package/payload/server/public/assets/chunk-5PVQY5BW-aFIQKk_U.js.gz +0 -0
  468. package/payload/server/public/assets/chunk-67CJDMHE-LS8rUbii.js.br +0 -2
  469. package/payload/server/public/assets/chunk-67CJDMHE-LS8rUbii.js.gz +0 -0
  470. package/payload/server/public/assets/chunk-7N4EOEYR-JKOVngS0.js.br +0 -2
  471. package/payload/server/public/assets/chunk-7N4EOEYR-JKOVngS0.js.gz +0 -0
  472. package/payload/server/public/assets/chunk-AA7GKIK3-CoXnTVK6.js.br +0 -0
  473. package/payload/server/public/assets/chunk-AA7GKIK3-CoXnTVK6.js.gz +0 -0
  474. package/payload/server/public/assets/chunk-BSJP7CBP-CcsqObFg.js.br +0 -0
  475. package/payload/server/public/assets/chunk-BSJP7CBP-CcsqObFg.js.gz +0 -0
  476. package/payload/server/public/assets/chunk-CIAEETIT-CpsybR7q.js.br +0 -0
  477. package/payload/server/public/assets/chunk-CIAEETIT-CpsybR7q.js.gz +0 -0
  478. package/payload/server/public/assets/chunk-EDXVE4YY-BZ2I9PSq.js.br +0 -0
  479. package/payload/server/public/assets/chunk-EDXVE4YY-BZ2I9PSq.js.gz +0 -0
  480. package/payload/server/public/assets/chunk-ENJZ2VHE-DbTwt6OZ.js.br +0 -0
  481. package/payload/server/public/assets/chunk-ENJZ2VHE-DbTwt6OZ.js.gz +0 -0
  482. package/payload/server/public/assets/chunk-FMBD7UC4-D27VnSCa.js.br +0 -0
  483. package/payload/server/public/assets/chunk-FMBD7UC4-D27VnSCa.js.gz +0 -0
  484. package/payload/server/public/assets/chunk-FOC6F5B3-C0tU2UFl.js.br +0 -0
  485. package/payload/server/public/assets/chunk-FOC6F5B3-C0tU2UFl.js.gz +0 -0
  486. package/payload/server/public/assets/chunk-ICPOFSXX-UPPu2OIq.js.br +0 -0
  487. package/payload/server/public/assets/chunk-ICPOFSXX-UPPu2OIq.js.gz +0 -0
  488. package/payload/server/public/assets/chunk-K5T4RW27-DIKxqyYw.js.br +0 -0
  489. package/payload/server/public/assets/chunk-K5T4RW27-DIKxqyYw.js.gz +0 -0
  490. package/payload/server/public/assets/chunk-KGLVRYIC-CiL4YVLo.js.br +0 -0
  491. package/payload/server/public/assets/chunk-KGLVRYIC-CiL4YVLo.js.gz +0 -0
  492. package/payload/server/public/assets/chunk-LIHQZDEY-ejKezVlD.js.br +0 -0
  493. package/payload/server/public/assets/chunk-LIHQZDEY-ejKezVlD.js.gz +0 -0
  494. package/payload/server/public/assets/chunk-ORNJ4GCN-Cc0vqc-D.js.br +0 -0
  495. package/payload/server/public/assets/chunk-ORNJ4GCN-Cc0vqc-D.js.gz +0 -0
  496. package/payload/server/public/assets/chunk-OYMX7WX6-Drxn1qG0.js.br +0 -0
  497. package/payload/server/public/assets/chunk-OYMX7WX6-Drxn1qG0.js.gz +0 -0
  498. package/payload/server/public/assets/chunk-QZHKN3VN-Dhlh7Pkk.js +0 -1
  499. package/payload/server/public/assets/chunk-QZHKN3VN-Dhlh7Pkk.js.br +0 -0
  500. package/payload/server/public/assets/chunk-QZHKN3VN-Dhlh7Pkk.js.gz +0 -0
  501. package/payload/server/public/assets/chunk-U2HBQHQK-DnbQIkRP.js.br +0 -0
  502. package/payload/server/public/assets/chunk-U2HBQHQK-DnbQIkRP.js.gz +0 -0
  503. package/payload/server/public/assets/chunk-X2U36JSP-CauTSVWg.js.br +0 -0
  504. package/payload/server/public/assets/chunk-X2U36JSP-CauTSVWg.js.gz +0 -0
  505. package/payload/server/public/assets/chunk-XPW4576I-DZqqB9Zi.js.br +0 -0
  506. package/payload/server/public/assets/chunk-XPW4576I-DZqqB9Zi.js.gz +0 -0
  507. package/payload/server/public/assets/chunk-YZCP3GAM-BGHo4Li-.js.br +0 -0
  508. package/payload/server/public/assets/chunk-YZCP3GAM-BGHo4Li-.js.gz +0 -0
  509. package/payload/server/public/assets/chunk-ZZ45TVLE-DWGJKPd7.js.br +0 -0
  510. package/payload/server/public/assets/chunk-ZZ45TVLE-DWGJKPd7.js.gz +0 -0
  511. package/payload/server/public/assets/classDiagram-6PBFFD2Q-D2z_ZV1x.js +0 -1
  512. package/payload/server/public/assets/classDiagram-6PBFFD2Q-D2z_ZV1x.js.br +0 -0
  513. package/payload/server/public/assets/classDiagram-6PBFFD2Q-D2z_ZV1x.js.gz +0 -0
  514. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-BJwJoNEK.js +0 -1
  515. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-BJwJoNEK.js.br +0 -0
  516. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-BJwJoNEK.js.gz +0 -0
  517. package/payload/server/public/assets/clock-Dj3SRZKo.js +0 -1
  518. package/payload/server/public/assets/clock-Dj3SRZKo.js.br +0 -0
  519. package/payload/server/public/assets/clock-Dj3SRZKo.js.gz +0 -0
  520. package/payload/server/public/assets/clone-Bn7XXVhr.js +0 -1
  521. package/payload/server/public/assets/clone-Bn7XXVhr.js.br +0 -0
  522. package/payload/server/public/assets/cose-bilkent-S5V4N54A-D-95BzXL.js.br +0 -0
  523. package/payload/server/public/assets/cose-bilkent-S5V4N54A-D-95BzXL.js.gz +0 -0
  524. package/payload/server/public/assets/dagre-BZYNBHvT.js.br +0 -0
  525. package/payload/server/public/assets/dagre-BZYNBHvT.js.gz +0 -0
  526. package/payload/server/public/assets/dagre-KV5264BT-DyU4HQLQ.js.br +0 -0
  527. package/payload/server/public/assets/dagre-KV5264BT-DyU4HQLQ.js.gz +0 -0
  528. package/payload/server/public/assets/data-Ckjkne54.js +0 -1
  529. package/payload/server/public/assets/data-Ckjkne54.js.br +0 -3
  530. package/payload/server/public/assets/data-Ckjkne54.js.gz +0 -0
  531. package/payload/server/public/assets/diagram-5BDNPKRD-CCttJ9XA.js.br +0 -0
  532. package/payload/server/public/assets/diagram-5BDNPKRD-CCttJ9XA.js.gz +0 -0
  533. package/payload/server/public/assets/diagram-G4DWMVQ6-DvkpgSLO.js.br +0 -0
  534. package/payload/server/public/assets/diagram-G4DWMVQ6-DvkpgSLO.js.gz +0 -0
  535. package/payload/server/public/assets/diagram-MMDJMWI5-DHmW5Y9k.js.br +0 -0
  536. package/payload/server/public/assets/diagram-MMDJMWI5-DHmW5Y9k.js.gz +0 -0
  537. package/payload/server/public/assets/diagram-TYMM5635-C6T4hwzO.js.br +0 -0
  538. package/payload/server/public/assets/diagram-TYMM5635-C6T4hwzO.js.gz +0 -0
  539. package/payload/server/public/assets/erDiagram-SMLLAGMA-5v_o7s3T.js.br +0 -0
  540. package/payload/server/public/assets/erDiagram-SMLLAGMA-5v_o7s3T.js.gz +0 -0
  541. package/payload/server/public/assets/file-text-BKs9eyiw.js.br +0 -0
  542. package/payload/server/public/assets/file-text-BKs9eyiw.js.gz +0 -0
  543. package/payload/server/public/assets/flatten-BtIc9jX7.js.br +0 -0
  544. package/payload/server/public/assets/flatten-BtIc9jX7.js.gz +0 -0
  545. package/payload/server/public/assets/flowDiagram-DWJPFMVM-3UhCDsjt.js.br +0 -0
  546. package/payload/server/public/assets/flowDiagram-DWJPFMVM-3UhCDsjt.js.gz +0 -0
  547. package/payload/server/public/assets/ganttDiagram-T4ZO3ILL-F2zgHIIQ.js.br +0 -0
  548. package/payload/server/public/assets/ganttDiagram-T4ZO3ILL-F2zgHIIQ.js.gz +0 -0
  549. package/payload/server/public/assets/gitGraph-7Q5UKJZL-C-FvNTHZ.js +0 -1
  550. package/payload/server/public/assets/gitGraph-7Q5UKJZL-C-FvNTHZ.js.br +0 -0
  551. package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-oQc1N3dT.js.br +0 -0
  552. package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-oQc1N3dT.js.gz +0 -0
  553. package/payload/server/public/assets/graph-DTi71NaZ.js.br +0 -0
  554. package/payload/server/public/assets/graph-DTi71NaZ.js.gz +0 -0
  555. package/payload/server/public/assets/graph-labels-BT3S6e9H.js.br +0 -0
  556. package/payload/server/public/assets/graph-labels-BT3S6e9H.js.gz +0 -0
  557. package/payload/server/public/assets/graphlib-DY4-AT2Q.js.br +0 -0
  558. package/payload/server/public/assets/graphlib-DY4-AT2Q.js.gz +0 -0
  559. package/payload/server/public/assets/info-OMHHGYJF-BjLPgHAC.js +0 -1
  560. package/payload/server/public/assets/info-OMHHGYJF-BjLPgHAC.js.br +0 -0
  561. package/payload/server/public/assets/infoDiagram-42DDH7IO-CXNKLTui.js +0 -2
  562. package/payload/server/public/assets/infoDiagram-42DDH7IO-CXNKLTui.js.br +0 -0
  563. package/payload/server/public/assets/infoDiagram-42DDH7IO-CXNKLTui.js.gz +0 -0
  564. package/payload/server/public/assets/isEmpty-Bu4fZ8Kf.js.br +0 -0
  565. package/payload/server/public/assets/isEmpty-Bu4fZ8Kf.js.gz +0 -0
  566. package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-wJhSOkuw.js.br +0 -0
  567. package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-wJhSOkuw.js.gz +0 -0
  568. package/payload/server/public/assets/journeyDiagram-VCZTEJTY-DgadC6Pz.js.br +0 -0
  569. package/payload/server/public/assets/journeyDiagram-VCZTEJTY-DgadC6Pz.js.gz +0 -0
  570. package/payload/server/public/assets/kanban-definition-6JOO6SKY-Bs4nQqXI.js.br +0 -0
  571. package/payload/server/public/assets/kanban-definition-6JOO6SKY-Bs4nQqXI.js.gz +0 -0
  572. package/payload/server/public/assets/line-Bnmxy1hO.js.br +0 -0
  573. package/payload/server/public/assets/line-Bnmxy1hO.js.gz +0 -0
  574. package/payload/server/public/assets/linear-RvwZxFzh.js.br +0 -0
  575. package/payload/server/public/assets/linear-RvwZxFzh.js.gz +0 -0
  576. package/payload/server/public/assets/maximize-2-zC94tsxY.js.br +0 -0
  577. package/payload/server/public/assets/maximize-2-zC94tsxY.js.gz +0 -0
  578. package/payload/server/public/assets/mermaid-parser.core-DeNV8RtA.js.br +0 -0
  579. package/payload/server/public/assets/mermaid-parser.core-DeNV8RtA.js.gz +0 -0
  580. package/payload/server/public/assets/mermaid.core-BU9IiSCP.js.br +0 -0
  581. package/payload/server/public/assets/mermaid.core-BU9IiSCP.js.gz +0 -0
  582. package/payload/server/public/assets/mindmap-definition-QFDTVHPH-D1PMUxxm.js.br +0 -0
  583. package/payload/server/public/assets/mindmap-definition-QFDTVHPH-D1PMUxxm.js.gz +0 -0
  584. package/payload/server/public/assets/operator-BtWNEMh-.js.br +0 -0
  585. package/payload/server/public/assets/operator-BtWNEMh-.js.gz +0 -0
  586. package/payload/server/public/assets/ordinal-C2TEWKNu.js.br +0 -0
  587. package/payload/server/public/assets/ordinal-C2TEWKNu.js.gz +0 -0
  588. package/payload/server/public/assets/packet-4T2RLAQJ-BBAZASfb.js +0 -1
  589. package/payload/server/public/assets/packet-4T2RLAQJ-BBAZASfb.js.br +0 -0
  590. package/payload/server/public/assets/page-BFm91p0e.js +0 -1
  591. package/payload/server/public/assets/page-BFm91p0e.js.br +0 -0
  592. package/payload/server/public/assets/page-BFm91p0e.js.gz +0 -0
  593. package/payload/server/public/assets/page-Ccl0FazM.js.br +0 -0
  594. package/payload/server/public/assets/page-Ccl0FazM.js.gz +0 -0
  595. package/payload/server/public/assets/pdf-render-C257cidb.js.br +0 -0
  596. package/payload/server/public/assets/pdf-render-C257cidb.js.gz +0 -0
  597. package/payload/server/public/assets/pie-ZZUOXDRM-CCJUnMeG.js +0 -1
  598. package/payload/server/public/assets/pie-ZZUOXDRM-CCJUnMeG.js.br +0 -0
  599. package/payload/server/public/assets/pieDiagram-DEJITSTG-BzdNzoKA.js.br +0 -0
  600. package/payload/server/public/assets/pieDiagram-DEJITSTG-BzdNzoKA.js.gz +0 -0
  601. package/payload/server/public/assets/public-BpC6cn9S.js.br +0 -0
  602. package/payload/server/public/assets/public-BpC6cn9S.js.gz +0 -0
  603. package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-oFr1MJRO.js.br +0 -0
  604. package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-oFr1MJRO.js.gz +0 -0
  605. package/payload/server/public/assets/radar-PYXPWWZC-BsRU8Aep.js +0 -1
  606. package/payload/server/public/assets/radar-PYXPWWZC-BsRU8Aep.js.br +0 -0
  607. package/payload/server/public/assets/reduce-BGpN5lgn.js.br +0 -0
  608. package/payload/server/public/assets/reduce-BGpN5lgn.js.gz +0 -0
  609. package/payload/server/public/assets/requirementDiagram-MS252O5E-C9QBQxDh.js.br +0 -0
  610. package/payload/server/public/assets/requirementDiagram-MS252O5E-C9QBQxDh.js.gz +0 -0
  611. package/payload/server/public/assets/rotate-ccw-BNcqbHkZ.js.br +0 -0
  612. package/payload/server/public/assets/rotate-ccw-BNcqbHkZ.js.gz +0 -0
  613. package/payload/server/public/assets/routines-D5iia-XG.js +0 -1
  614. package/payload/server/public/assets/routines-D5iia-XG.js.br +0 -0
  615. package/payload/server/public/assets/routines-D5iia-XG.js.gz +0 -0
  616. package/payload/server/public/assets/sankeyDiagram-XADWPNL6-c_y3bvVv.js.br +0 -0
  617. package/payload/server/public/assets/sankeyDiagram-XADWPNL6-c_y3bvVv.js.gz +0 -0
  618. package/payload/server/public/assets/sequenceDiagram-FGHM5R23-YwlCBPHE.js.br +0 -0
  619. package/payload/server/public/assets/sequenceDiagram-FGHM5R23-YwlCBPHE.js.gz +0 -0
  620. package/payload/server/public/assets/skills-COLAw_jt.js.br +0 -0
  621. package/payload/server/public/assets/skills-COLAw_jt.js.gz +0 -0
  622. package/payload/server/public/assets/stateDiagram-FHFEXIEX-BFE3e-FM.js.br +0 -0
  623. package/payload/server/public/assets/stateDiagram-FHFEXIEX-BFE3e-FM.js.gz +0 -0
  624. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-CpjB4ykI.js +0 -1
  625. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-CpjB4ykI.js.br +0 -4
  626. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-CpjB4ykI.js.gz +0 -0
  627. package/payload/server/public/assets/tasks-CZDQI4nB.js.br +0 -0
  628. package/payload/server/public/assets/tasks-CZDQI4nB.js.gz +0 -0
  629. package/payload/server/public/assets/time-entry-format-laTFzawg.js.br +0 -0
  630. package/payload/server/public/assets/time-entry-format-laTFzawg.js.gz +0 -0
  631. package/payload/server/public/assets/timeline-definition-GMOUNBTQ-azqhmRwZ.js.br +0 -0
  632. package/payload/server/public/assets/timeline-definition-GMOUNBTQ-azqhmRwZ.js.gz +0 -0
  633. package/payload/server/public/assets/treeView-SZITEDCU-BDzhKA6v.js +0 -1
  634. package/payload/server/public/assets/treeView-SZITEDCU-BDzhKA6v.js.br +0 -0
  635. package/payload/server/public/assets/treemap-W4RFUUIX-epHpdeWa.js +0 -1
  636. package/payload/server/public/assets/treemap-W4RFUUIX-epHpdeWa.js.br +0 -0
  637. package/payload/server/public/assets/triangle-alert-DrwqhEog.js.br +0 -0
  638. package/payload/server/public/assets/triangle-alert-DrwqhEog.js.gz +0 -0
  639. package/payload/server/public/assets/useCopyFeedback-Cxme5GK6.js.br +0 -0
  640. package/payload/server/public/assets/useCopyFeedback-Cxme5GK6.js.gz +0 -0
  641. package/payload/server/public/assets/useSubAccountSwitcher-B-K8y5a4.css +0 -1
  642. package/payload/server/public/assets/useSubAccountSwitcher-B-K8y5a4.css.br +0 -0
  643. package/payload/server/public/assets/useSubAccountSwitcher-B-K8y5a4.css.gz +0 -0
  644. package/payload/server/public/assets/useVoiceRecorder-DUBpVa2T.js.br +0 -0
  645. package/payload/server/public/assets/useVoiceRecorder-DUBpVa2T.js.gz +0 -0
  646. package/payload/server/public/assets/vennDiagram-DHZGUBPP-Da2RfFs8.js.br +0 -0
  647. package/payload/server/public/assets/vennDiagram-DHZGUBPP-Da2RfFs8.js.gz +0 -0
  648. package/payload/server/public/assets/wardley-RL74JXVD-DNSZCrxV.js +0 -1
  649. package/payload/server/public/assets/wardley-RL74JXVD-DNSZCrxV.js.br +0 -0
  650. package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-HdrdBYES.js.br +0 -0
  651. package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-HdrdBYES.js.gz +0 -0
  652. package/payload/server/public/assets/wrench-DWuxPnzF.js.br +0 -0
  653. package/payload/server/public/assets/wrench-DWuxPnzF.js.gz +0 -0
  654. package/payload/server/public/assets/xychartDiagram-5P7HB3ND-DMk6rTcQ.js.br +0 -0
  655. package/payload/server/public/assets/xychartDiagram-5P7HB3ND-DMk6rTcQ.js.gz +0 -0
  656. /package/payload/server/public/assets/{_baseFor-Be3EKK3K.js → _baseFor-B12He5Rp.js} +0 -0
  657. /package/payload/server/public/assets/{_baseFor-Be3EKK3K.js.br → _baseFor-B12He5Rp.js.br} +0 -0
  658. /package/payload/server/public/assets/{_baseFor-Be3EKK3K.js.gz → _baseFor-B12He5Rp.js.gz} +0 -0
  659. /package/payload/server/public/assets/{array-X0JlPOfd.js → array-DO1uCttT.js} +0 -0
  660. /package/payload/server/public/assets/{array-X0JlPOfd.js.br → array-DO1uCttT.js.br} +0 -0
  661. /package/payload/server/public/assets/{cytoscape.esm-CI2IWMLB.js → cytoscape.esm-DFn2foqy.js} +0 -0
  662. /package/payload/server/public/assets/{cytoscape.esm-CI2IWMLB.js.br → cytoscape.esm-DFn2foqy.js.br} +0 -0
  663. /package/payload/server/public/assets/{cytoscape.esm-CI2IWMLB.js.gz → cytoscape.esm-DFn2foqy.js.gz} +0 -0
  664. /package/payload/server/public/assets/{defaultLocale-B6RGN4id.js → defaultLocale-ieI3yFoA.js} +0 -0
  665. /package/payload/server/public/assets/{defaultLocale-B6RGN4id.js.br → defaultLocale-ieI3yFoA.js.br} +0 -0
  666. /package/payload/server/public/assets/{defaultLocale-B6RGN4id.js.gz → defaultLocale-ieI3yFoA.js.gz} +0 -0
  667. /package/payload/server/public/assets/{dist-QvbmK1IP.js → dist-DlU7AEeD.js} +0 -0
  668. /package/payload/server/public/assets/{dist-QvbmK1IP.js.br → dist-DlU7AEeD.js.br} +0 -0
  669. /package/payload/server/public/assets/{dist-QvbmK1IP.js.gz → dist-DlU7AEeD.js.gz} +0 -0
  670. /package/payload/server/public/assets/{init-BmUWJJHz.js → init-BCRlEgNP.js} +0 -0
  671. /package/payload/server/public/assets/{init-BmUWJJHz.js.br → init-BCRlEgNP.js.br} +0 -0
  672. /package/payload/server/public/assets/{init-BmUWJJHz.js.gz → init-BCRlEgNP.js.gz} +0 -0
  673. /package/payload/server/public/assets/{katex-BjZuzSQn.js → katex-gkTaZgi6.js} +0 -0
  674. /package/payload/server/public/assets/{katex-BjZuzSQn.js.br → katex-gkTaZgi6.js.br} +0 -0
  675. /package/payload/server/public/assets/{katex-BjZuzSQn.js.gz → katex-gkTaZgi6.js.gz} +0 -0
  676. /package/payload/server/public/assets/{path-CoPyR7c2.js → path-DTmzQFjQ.js} +0 -0
  677. /package/payload/server/public/assets/{path-CoPyR7c2.js.br → path-DTmzQFjQ.js.br} +0 -0
  678. /package/payload/server/public/assets/{path-CoPyR7c2.js.gz → path-DTmzQFjQ.js.gz} +0 -0
  679. /package/payload/server/public/assets/{preload-helper-BQrMkyGX.js → preload-helper-eAV8hweq.js} +0 -0
  680. /package/payload/server/public/assets/{preload-helper-BQrMkyGX.js.br → preload-helper-eAV8hweq.js.br} +0 -0
  681. /package/payload/server/public/assets/{preload-helper-BQrMkyGX.js.gz → preload-helper-eAV8hweq.js.gz} +0 -0
  682. /package/payload/server/public/assets/{rough.esm-jSt7UMyi.js → rough.esm-BFJ-MgcB.js} +0 -0
  683. /package/payload/server/public/assets/{rough.esm-jSt7UMyi.js.br → rough.esm-BFJ-MgcB.js.br} +0 -0
  684. /package/payload/server/public/assets/{rough.esm-jSt7UMyi.js.gz → rough.esm-BFJ-MgcB.js.gz} +0 -0
  685. /package/payload/server/public/assets/{src-C2WwTWSY.js → src-9CNk4JU0.js} +0 -0
  686. /package/payload/server/public/assets/{src-C2WwTWSY.js.br → src-9CNk4JU0.js.br} +0 -0
  687. /package/payload/server/public/assets/{src-C2WwTWSY.js.gz → src-9CNk4JU0.js.gz} +0 -0
  688. /package/payload/server/public/assets/{useSubAccountSwitcher-C_1E11Dv.js → useSubAccountSwitcher-CnpeWIYq.js} +0 -0
  689. /package/payload/server/public/assets/{useSubAccountSwitcher-C_1E11Dv.js.br → useSubAccountSwitcher-CnpeWIYq.js.br} +0 -0
  690. /package/payload/server/public/assets/{useSubAccountSwitcher-C_1E11Dv.js.gz → useSubAccountSwitcher-CnpeWIYq.js.gz} +0 -0
@@ -6,6 +6,60 @@ import { computeEmbedding } from "../lib/embedding.js";
6
6
  import cronParser from "cron-parser";
7
7
  const { parseExpression } = cronParser;
8
8
  import { validateAgentDispatch } from "../lib/agent-dispatch.js";
9
+ /**
10
+ * Task 2134 — the status vocabulary, in one place.
11
+ *
12
+ * `suspended` is the reversible stop: the sweep selects `eventStatus =
13
+ * 'scheduled'` by equality in all four of its predicates
14
+ * (check-due-events.ts:502, :567, :704, :768), so a suspended row is excluded by
15
+ * construction and restoring `scheduled` re-arms it. It is the same literal Task
16
+ * 2106's dashboard controls write and the shipped routine roster seeds with; a
17
+ * second name would be a defect, not a synonym.
18
+ *
19
+ * `cancelled` is the terminal stop and belongs to `schedule-cancel`. The two are
20
+ * different intents and this list is what keeps them apart.
21
+ *
22
+ * The tool schema in index.ts is built from this array, so the enum the agent
23
+ * sees and the enum the library enforces cannot drift.
24
+ */
25
+ export const EVENT_STATUSES = ["scheduled", "due", "completed", "cancelled", "suspended"];
26
+ export function planResume(row, now) {
27
+ if (row.recurrence) {
28
+ // The event's own timezone governs, never the server's.
29
+ try {
30
+ const interval = parseExpression(row.recurrence, { currentDate: now, tz: row.timezone ?? undefined });
31
+ return { ok: true, nextRun: interval.next().toISOString() };
32
+ }
33
+ catch (err) {
34
+ const reason = err instanceof Error ? err.message : String(err);
35
+ return {
36
+ ok: false,
37
+ reason: "invalid-cron",
38
+ message: `Cannot resume: the schedule is no longer valid (${reason}). Change the recurrence first.`,
39
+ };
40
+ }
41
+ }
42
+ // A one-time routine has no cron to advance, and the sweep fires it on
43
+ // `e.startDate <= $now`. Resuming one whose date has passed dispatches it
44
+ // within the tick, so it is refused with the date named rather than run for a
45
+ // window the operator did not choose.
46
+ //
47
+ // The comparison is deliberately the SWEEP's, not an instant comparison.
48
+ // `startDate` is stored verbatim and can carry a non-UTC offset, and Cypher
49
+ // compares two strings lexically against a `$now` that is always
50
+ // `new Date().toISOString()`. `Date.parse` would disagree on exactly those
51
+ // rows: `2026-07-28T23:00:00-05:00` is a later INSTANT than a 03:00Z now but
52
+ // an earlier STRING, so an instant comparison would resume it and the next
53
+ // tick would dispatch it — the missed window this refusal exists to prevent.
54
+ if (row.startDate && row.startDate <= now.toISOString()) {
55
+ return {
56
+ ok: false,
57
+ reason: "past-one-time",
58
+ message: `Cannot resume: this one-time routine was due at ${row.startDate}, so resuming it would run it now. Cancel it, or set a new date.`,
59
+ };
60
+ }
61
+ return { ok: true, nextRun: null };
62
+ }
9
63
  export async function scheduleUpdate(params) {
10
64
  const { accountId, eventId, note, skipNext, action, agentDispatch, ...updates } = params;
11
65
  // Task 1378 — an event carries EITHER an action OR an agent dispatch. Reject a
@@ -59,6 +113,79 @@ export async function scheduleUpdate(params) {
59
113
  await checkSession.close();
60
114
  }
61
115
  }
116
+ // Task 2134 — one read serving two callers. A status change needs the row's
117
+ // current status and its forward schedule; a recurrence change needs the
118
+ // row's stored timezone, which the recompute below used to ignore. Only these
119
+ // two cases pay for the read; every other update keeps its single round trip.
120
+ const ids = { eventId: eventId.slice(0, 8), acct: accountId.slice(0, 8) };
121
+ let stored = null;
122
+ if (updates.eventStatus !== undefined || updates.recurrence !== undefined) {
123
+ const readSession = getSession();
124
+ try {
125
+ const read = await readSession.run(`MATCH (e:Event {eventId: $eventId, accountId: $accountId})
126
+ RETURN e.eventStatus AS eventStatus, e.recurrence AS recurrence,
127
+ e.timezone AS timezone, e.startDate AS startDate`, { eventId, accountId });
128
+ if (read.records.length > 0) {
129
+ const r = read.records[0];
130
+ stored = {
131
+ eventStatus: (r.get("eventStatus") ?? null),
132
+ recurrence: (r.get("recurrence") ?? null),
133
+ timezone: (r.get("timezone") ?? null),
134
+ startDate: (r.get("startDate") ?? null),
135
+ };
136
+ }
137
+ }
138
+ finally {
139
+ await readSession.close();
140
+ }
141
+ }
142
+ // The zone the cron recompute runs in: what the caller supplied, else what
143
+ // the routine stores. Passing `undefined` here recomputes in the server's
144
+ // zone, which is what made a re-arm land on the wrong occurrence.
145
+ const effectiveTimezone = updates.timezone !== undefined ? updates.timezone : stored?.timezone ?? null;
146
+ let statusPlan = null;
147
+ if (updates.eventStatus !== undefined) {
148
+ const target = updates.eventStatus;
149
+ // An event created before the property existed carries no status. The list
150
+ // surface reads that as 'scheduled' (index.ts:227); so does this gate.
151
+ const current = stored?.eventStatus ?? "scheduled";
152
+ const head = `[schedule-update] op=status eventId=${ids.eventId} acct=${ids.acct} from=${current} to=${target}`;
153
+ const refuse = (reason, message) => {
154
+ console.error(`${head} outcome=refused reason=${reason}`);
155
+ throw new Error(message);
156
+ };
157
+ if (!EVENT_STATUSES.includes(target)) {
158
+ refuse("out-of-enum", `Invalid eventStatus "${target}" — permitted values are ${EVENT_STATUSES.join(", ")}.`);
159
+ }
160
+ if (stored === null) {
161
+ // The id matched no :Event. eventStatus has no meeting equivalent, so the
162
+ // call falls through to the meeting path below and fails there with the
163
+ // message that names what the id actually is.
164
+ console.error(`${head} outcome=refused reason=no-event`);
165
+ }
166
+ else if (current === target) {
167
+ refuse(`already-${target}`, `No change: this routine is already ${target}.`);
168
+ }
169
+ else if (current === "scheduled" && target === "suspended") {
170
+ statusPlan = { kind: "suspend" };
171
+ }
172
+ else if (current === "suspended" && target === "scheduled") {
173
+ const plan = planResume({
174
+ recurrence: updates.recurrence !== undefined ? updates.recurrence : stored.recurrence,
175
+ timezone: effectiveTimezone,
176
+ startDate: stored.startDate,
177
+ }, new Date());
178
+ if (!plan.ok)
179
+ refuse(plan.reason, plan.message);
180
+ statusPlan = { kind: "resume", nextRun: plan.nextRun };
181
+ }
182
+ else if (target === "cancelled") {
183
+ refuse("use-schedule-cancel", "schedule-update cannot cancel a routine — use schedule-cancel, which ends the series. schedule-update moves eventStatus only between \"scheduled\" (running) and \"suspended\" (paused, reversible).");
184
+ }
185
+ else {
186
+ refuse("unsupported-transition", `Cannot change eventStatus from "${current}" to "${target}" — schedule-update moves it only between "scheduled" (running) and "suspended" (paused, reversible). A ${current} routine cannot be re-armed.`);
187
+ }
188
+ }
62
189
  // Build SET clause from provided updates
63
190
  const setClauses = ["e.updatedAt = $now"];
64
191
  const queryParams = {
@@ -86,27 +213,42 @@ export async function scheduleUpdate(params) {
86
213
  setClauses.push("e.location = $location");
87
214
  queryParams.location = updates.location;
88
215
  }
89
- if (updates.eventStatus !== undefined) {
216
+ // Task 2134 the status write happens only through the gate above, so a
217
+ // refused transition never reaches the SET clause.
218
+ if (statusPlan) {
90
219
  setClauses.push("e.eventStatus = $eventStatus");
91
220
  queryParams.eventStatus = updates.eventStatus;
221
+ // Task 2106's resume-all selects `suspended AND suspendedInBulk = true`, so
222
+ // a routine paused or resumed one at a time must carry no marker. Same
223
+ // write as the dashboard's single-routine controls (routines.ts:441, :497).
224
+ setClauses.push("e.suspendedInBulk = null");
92
225
  }
226
+ let recurrenceSetNextRun = false;
93
227
  if (updates.recurrence !== undefined) {
94
228
  // Validate new cron expression
95
229
  try {
96
230
  const interval = parseExpression(updates.recurrence, {
97
231
  currentDate: new Date(),
98
- tz: updates.timezone ?? undefined,
232
+ tz: effectiveTimezone ?? undefined,
99
233
  });
100
234
  const newNextRun = interval.next().toISOString();
101
235
  setClauses.push("e.recurrence = $recurrence");
102
236
  setClauses.push("e.nextRun = $newNextRun");
103
237
  queryParams.recurrence = updates.recurrence;
104
238
  queryParams.newNextRun = newNextRun;
239
+ recurrenceSetNextRun = true;
105
240
  }
106
241
  catch (err) {
107
242
  throw new Error(`Invalid recurrence expression: "${updates.recurrence}" — ${err instanceof Error ? err.message : String(err)}`);
108
243
  }
109
244
  }
245
+ // One writer per property. When the cron branch has already recomputed
246
+ // nextRun from the same effective recurrence and zone, a second SET clause on
247
+ // e.nextRun would silently win over the first.
248
+ if (statusPlan?.kind === "resume" && statusPlan.nextRun !== null && !recurrenceSetNextRun) {
249
+ setClauses.push("e.nextRun = $resumeNextRun");
250
+ queryParams.resumeNextRun = statusPlan.nextRun;
251
+ }
110
252
  if (updates.timezone !== undefined) {
111
253
  setClauses.push("e.timezone = $timezone");
112
254
  queryParams.timezone = updates.timezone;
@@ -179,9 +321,18 @@ export async function scheduleUpdate(params) {
179
321
  setClauses.push("e.actionTool = null");
180
322
  setClauses.push("e.actionArgs = null");
181
323
  }
182
- if (note) {
324
+ // One append, however many lines it carries. Two appendNotesCapped clauses in
325
+ // the same SET both write e.notes, and the later would drop the earlier.
326
+ const noteLines = [];
327
+ if (statusPlan?.kind === "suspend")
328
+ noteLines.push("Suspended from chat");
329
+ if (statusPlan?.kind === "resume")
330
+ noteLines.push("Resumed from chat");
331
+ if (note)
332
+ noteLines.push(note);
333
+ if (noteLines.length > 0) {
183
334
  setClauses.push(appendNotesCapped("e", "noteEntry"));
184
- queryParams.noteEntry = `\n[${queryParams.now}] ${note}`;
335
+ queryParams.noteEntry = noteLines.map((line) => `\n[${queryParams.now}] ${line}`).join("");
185
336
  }
186
337
  // Recompute embedding if name or description changed
187
338
  if (updates.name !== undefined || updates.description !== undefined) {
@@ -197,6 +348,23 @@ export async function scheduleUpdate(params) {
197
348
  const result = await neo4jSession.run(`MATCH (e:Event {eventId: $eventId, accountId: $accountId})
198
349
  SET ${setClauses.join(", ")}
199
350
  RETURN e`, queryParams);
351
+ // Task 2134 — logged after the write lands, so an applied line is never
352
+ // emitted for a transition the database refused. Refusals log at the
353
+ // decision, before anything is written.
354
+ if (result.records.length > 0 && statusPlan) {
355
+ console.error(`[schedule-update] op=status eventId=${ids.eventId} acct=${ids.acct} ` +
356
+ `from=${stored?.eventStatus ?? "scheduled"} to=${updates.eventStatus} outcome=applied`);
357
+ if (statusPlan.kind === "resume") {
358
+ // aheadMin is the measured distance from now to the moment the sweep
359
+ // will next select this row: the recomputed nextRun for a recurring
360
+ // routine, the untouched startDate for a one-time one. At or below zero
361
+ // is the replay signature, caught here rather than at the next tick.
362
+ const fires = statusPlan.nextRun ?? stored?.startDate ?? null;
363
+ const aheadMin = fires ? String(Math.round((Date.parse(fires) - Date.now()) / 60_000)) : "unknown";
364
+ console.error(`[schedule-update] op=resume eventId=${ids.eventId} acct=${ids.acct} ` +
365
+ `tz=${effectiveTimezone ?? "null"} nextRun=${statusPlan.nextRun ?? "unchanged"} aheadMin=${aheadMin}`);
366
+ }
367
+ }
200
368
  if (result.records.length === 0) {
201
369
  // Task 2100 — the id may be a meeting uid. A :Meeting carries only
202
370
  // title/startsAt/endsAt/location as editable fields, and its uid is the
@@ -1 +1 @@
1
- {"version":3,"file":"schedule-update.js","sourceRoot":"","sources":["../../src/tools/schedule-update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schedule-update.js","sourceRoot":"","sources":["../../src/tools/schedule-update.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: routine-control
3
+ description: "Turns any one of the owner's routines on or off from chat, reversibly, and reports which routines are currently running. Triggers on 'pause the morning routine', 'stop the daily briefing', 'disable that routine', 'turn off the email sweep', 'turn the start-of-day routine back on', 'resume it', 'enable that routine', 'which routines are running', and 'is anything scheduled'. Pausing is reversible and is not cancelling; cancelling a routine ends it for good and is a different request."
4
+ ---
5
+
6
+ # Routine control
7
+
8
+ A routine is a scheduled trigger the owner set up: a recurring briefing, a mailbox sweep, an agent turn that fires on a cron. Turning one off for a while and ending it for good are different intents, and this skill exists because collapsing them loses the owner's routine permanently.
9
+
10
+ ## What the owner is asking for
11
+
12
+ | They say | They mean |
13
+ |---|---|
14
+ | pause, stop, disable, turn off, switch off, hold, snooze it | Pause. Reversible. The routine survives. |
15
+ | resume, turn back on, re-enable, start it again, unpause | Resume. |
16
+ | skip tomorrow, not this once, skip the next one | Skip one occurrence. The routine keeps running after that. |
17
+ | cancel, delete, remove, get rid of it, I don't want it any more | End the series permanently. |
18
+
19
+ When the wording is genuinely ambiguous between pausing and cancelling — "get rid of the morning briefing" could be either — ask which they mean before acting. Pausing the wrong routine is undone in one call; cancelling it is not.
20
+
21
+ ## Pausing and resuming
22
+
23
+ Both are `schedule-update` on the routine's event id.
24
+
25
+ - Pause: `eventStatus: "suspended"`. The routine stops firing. Its schedule, prompt, destination and history are untouched.
26
+ - Resume: `eventStatus: "scheduled"`. The routine fires again at its next natural occurrence, computed forward from now in the routine's own timezone. It never fires immediately on resume, and it never replays the occurrences it missed while paused.
27
+
28
+ Find the id with `schedule-list` first. A paused routine reads as `SUSPENDED — <name>`; a running one reads as `SCHEDULED — <name>`; an ended one reads as `CANCELLED — <name>` and cannot be resumed.
29
+
30
+ Every shipped routine ships paused. Enabling one for the first time and resuming one the owner paused are the same call.
31
+
32
+ ## When a resume is refused
33
+
34
+ Two refusals are real answers, not errors to work around.
35
+
36
+ A one-time routine whose date has already passed is refused, because resuming it would fire it within the minute for a moment the owner did not choose. Tell them the date it was due and offer a new one.
37
+
38
+ A routine whose recurrence no longer parses is refused. Tell them the schedule is broken and fix the recurrence with the same tool before resuming.
39
+
40
+ Do not reach for `schedule-cancel` when a resume is refused. Cancelling is not a repair.
41
+
42
+ ## What not to do
43
+
44
+ `schedule-update` refuses to write `cancelled`. That is deliberate: ending a series is `schedule-cancel`, which is irreversible, and it should be reached only when the owner asked to end the routine.
45
+
46
+ Never cancel a routine and recreate it to achieve a pause. That loses the run history and the event id the owner and the dashboard both refer to.
47
+
48
+ Never report a routine as off without having seen the write succeed. If the call was refused, say what it said.
@@ -57,9 +57,17 @@ admin or manager, or it is registered under a different account), and stop. Do n
57
57
  a new tool to enumerate registered destinations; the creation-time preflight is the gate.
58
58
 
59
59
  First guard against a double-enable. `schedule-event` always creates a fresh event and never merges on the
60
- event name, so calling it twice would arm two identical series. Before arming, call `schedule-list` and check
61
- whether an event named `Email→graph sweep` is already `scheduled` for this account. If one is, the routine is
62
- already on: tell the operator so, do not create a second, and stop.
60
+ event name, so calling it twice would arm two identical series. Before arming, call `schedule-list` and look for
61
+ an event named `Email→graph sweep` on this account **at any status**, not only `scheduled`. Disable pauses the
62
+ series rather than ending it, so a previously-disabled routine is sitting there as `SUSPENDED` and a check that
63
+ looked only for `scheduled` would miss it and arm a duplicate.
64
+
65
+ - Already `scheduled`: the routine is on. Tell the operator so, create nothing, and stop.
66
+ - `suspended`: this is a re-enable, not a fresh arm. Run both gates as normal, then call `schedule-update` with
67
+ `eventStatus: "scheduled"` on each suspended match and stop. The stored schedule, prompt and destination are
68
+ still correct, and the resume recomputes the next fire forward so the sweep does not run for the window it was
69
+ off. Emit `op=enable` with `reason=ok`.
70
+ - `cancelled`, or nothing at all: arm a fresh series as below.
63
71
 
64
72
  With both gates passed and no existing series, call `schedule-event` once with:
65
73
 
@@ -117,10 +125,16 @@ operator already rejected does not re-surface. There is no separate read cursor.
117
125
  ## Disable
118
126
 
119
127
  Call `schedule-list`, find every `scheduled` event whose `name` is exactly `Email→graph sweep` (the list
120
- returns the title in the `name` field), and `schedule-cancel` each one by its id. Cancelling a recurring event
121
- kills the whole series. Cancel all matches, not just the first, because a past double-enable can leave more than
122
- one armed. Emit `op=disable` with `reason=ok`. If no event with that name is armed, tell the operator the routine
123
- was not enabled and stop.
128
+ returns the title in the `name` field), and pause each one by its id with `schedule-update` and
129
+ `eventStatus: "suspended"`. Pause all matches, not just the first, because a past double-enable can leave more
130
+ than one armed. Emit `op=disable` with `reason=ok`. If no event with that name is armed, tell the operator the
131
+ routine was not enabled and stop.
132
+
133
+ Pausing, not cancelling. The routine keeps its schedule, its prompt and its destination, so re-enabling it later
134
+ is one call rather than a rebuild that has to pass both gates again. Re-enable by setting `eventStatus` back to
135
+ `"scheduled"`; that recomputes the next fire forward, so the sweep does not run for the window it was off. Reach
136
+ for `schedule-cancel` only when the operator asks to remove the routine for good, and say that it cannot be
137
+ undone before you do.
124
138
 
125
139
  ## Refusal discipline
126
140
 
@@ -0,0 +1,80 @@
1
+ #!/usr/bin/env bash
2
+ # Task 2157 — the hook must be registered in BOTH writers, with the SAME resolved
3
+ # command string. The provision-time heredoc is a frequent merge-conflict site,
4
+ # and the backfill lib is the only thing that reaches client sub-accounts, so
5
+ # losing either is silent. Drift between the two is worse than losing one: the
6
+ # backfill would not recognise what provision wrote, and would append a second
7
+ # copy to every house account on every install.
8
+ #
9
+ # Substring greps are deliberately avoided for the command itself: the lib's own
10
+ # filename contains "mailbox-inject.sh", so a bare grep for that is satisfied by
11
+ # a comment and proves nothing about what the lib would write.
12
+ set -uo pipefail
13
+ DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
14
+ PROV="$DIR/../lib/provision-account-dir.sh"
15
+ BACKFILL="$DIR/../lib/account-settings-mailbox-inject.sh"
16
+ SETUP="$DIR/../setup-account.sh"
17
+ PASS=0; FAIL=0
18
+
19
+ ok() { echo "PASS: $1"; PASS=$((PASS+1)); }
20
+ bad() { echo "FAIL: $1" >&2; FAIL=$((FAIL+1)); }
21
+
22
+ # What provision-account-dir.sh writes into the settings heredoc. HOOKS_PATH is
23
+ # assigned there as the literal string $PLATFORM_ROOT/plugins/admin/hooks, so the
24
+ # resolved command is the same string the backfill lib holds.
25
+ PROV_LINE='{ "type": "command", "command": "bash $HOOKS_PATH/mailbox-inject.sh" }'
26
+ RESOLVED='bash $PLATFORM_ROOT/plugins/admin/hooks/mailbox-inject.sh'
27
+
28
+ if /usr/bin/grep -qF "$PROV_LINE" "$PROV"; then
29
+ ok "provision-account-dir.sh writes the hook into a UserPromptSubmit entry"
30
+ else
31
+ bad "exact provision command line absent from $PROV"
32
+ fi
33
+
34
+ # The entry must sit inside the UserPromptSubmit array, not some other event.
35
+ if python3 - "$PROV" <<'PY'
36
+ import re, sys
37
+ src = open(sys.argv[1], encoding="utf-8").read()
38
+ m = re.search(r'"UserPromptSubmit"\s*:\s*\[(.*?)\n \]', src, re.S)
39
+ sys.exit(0 if m and "mailbox-inject.sh" in m.group(1) else 1)
40
+ PY
41
+ then
42
+ ok "the entry sits inside the UserPromptSubmit array, not another event"
43
+ else
44
+ bad "mailbox-inject.sh is not inside the UserPromptSubmit array in $PROV"
45
+ fi
46
+
47
+ # The backfill lib must hold the RESOLVED form of that same command.
48
+ if /usr/bin/grep -qF "_MBXINJECT_CMD='$RESOLVED'" "$BACKFILL"; then
49
+ ok "the backfill lib writes the same resolved command string"
50
+ else
51
+ bad "backfill _MBXINJECT_CMD is not '$RESOLVED' in $BACKFILL"
52
+ fi
53
+
54
+ # HOOKS_PATH must still resolve to the path the backfill lib assumes; if someone
55
+ # repoints it, the two writers silently disagree and every account gets two hooks.
56
+ if /usr/bin/grep -qF 'HOOKS_PATH="\$PLATFORM_ROOT/plugins/admin/hooks"' "$PROV"; then
57
+ ok "HOOKS_PATH resolves to the path the backfill lib assumes"
58
+ else
59
+ bad "HOOKS_PATH in $PROV no longer matches the backfill lib assumption"
60
+ fi
61
+
62
+ if /usr/bin/grep -qF 'account-settings-mailbox-inject.sh' "$SETUP"; then
63
+ ok "backfill lib sourced by setup-account.sh"
64
+ else
65
+ bad "backfill lib not sourced by $SETUP"
66
+ fi
67
+
68
+ if /usr/bin/grep -qE '^reconcile_all_accounts_mailbox_inject "\$ACCOUNTS_DIR"' "$SETUP"; then
69
+ ok "backfill invoked over every account by setup-account.sh"
70
+ else
71
+ bad "reconcile_all_accounts_mailbox_inject not invoked in $SETUP"
72
+ fi
73
+
74
+ echo "----"
75
+ echo "PASS=$PASS FAIL=$FAIL"
76
+ if [ $((PASS+FAIL)) -ne 6 ]; then
77
+ echo "FAIL: expected 6 checks, ran $((PASS+FAIL))" >&2
78
+ exit 1
79
+ fi
80
+ [ "$FAIL" -eq 0 ]
@@ -0,0 +1,166 @@
1
+ #!/usr/bin/env bash
2
+ # Regression test for account-settings-mailbox-inject.sh (Task 2157).
3
+ #
4
+ # The lib retrofits the per-turn <mailboxes> injection hook onto existing
5
+ # accounts' .claude/settings.json on every install. provision-account-dir.sh
6
+ # writes the UserPromptSubmit array at provision time only, and setup-account.sh
7
+ # re-provisions the HOUSE account only, so a client sub-account created by the
8
+ # admin-core account-lifecycle tool never gets the hook without this reconcile.
9
+ #
10
+ # Covers:
11
+ # 1. Array with a sibling hook -> updated, command appended, sibling preserved
12
+ # 2. Re-run on the same file -> already-set, file byte-identical
13
+ # 3. Empty UserPromptSubmit array-> updated, whole entry created
14
+ # 4. Command already present -> already-set, no duplicate
15
+ # 5. No .hooks.UserPromptSubmit -> no-hooks, file untouched
16
+ # 6. File absent -> absent
17
+ # 7. Malformed JSON -> rewrite-failed, file untouched
18
+ # 8. settings.json is an array -> rewrite-failed or no-hooks, file untouched
19
+ # 9. reconcile_all_accounts_* -> patches every account.json dir, skips others
20
+ # 10. No temp file is ever left behind, on any path
21
+ #
22
+ # All cases assert the [backfill-2157] status token and the post-state of the file.
23
+
24
+ set -u
25
+
26
+ LIB="$(cd "$(dirname "$0")/.." && pwd)/account-settings-mailbox-inject.sh"
27
+ if [ ! -f "$LIB" ]; then
28
+ echo "FAIL: $LIB not found" >&2
29
+ exit 1
30
+ fi
31
+ # shellcheck source=/dev/null
32
+ . "$LIB"
33
+
34
+ CMD='bash $PLATFORM_ROOT/plugins/admin/hooks/mailbox-inject.sh'
35
+ SIB='bash $PLATFORM_ROOT/plugins/admin/hooks/datetime-inject.sh'
36
+
37
+ PASS=0
38
+ FAIL=0
39
+ TMP="$(mktemp -d)"
40
+ trap 'rm -rf "$TMP"' EXIT
41
+
42
+ ok() { echo "PASS: $1"; PASS=$((PASS+1)); }
43
+ bad() { echo "FAIL: $1" >&2; FAIL=$((FAIL+1)); }
44
+
45
+ # cmds <file> -> every command string in the UserPromptSubmit array, one per line
46
+ cmds() { jq -r '[.hooks.UserPromptSubmit[]?.hooks[]?.command] | .[]' "$1" 2>/dev/null; }
47
+ status_of() { printf '%s' "$1" | /usr/bin/sed 's/.*status=//'; }
48
+
49
+ # --- 1. array with a sibling hook -> updated, sibling preserved -------------
50
+ F="$TMP/a.json"
51
+ printf '%s' "{\"hooks\":{\"UserPromptSubmit\":[{\"hooks\":[{\"type\":\"command\",\"command\":\"$SIB\"}]}]}}" > "$F"
52
+ OUT=$(ensure_mailbox_inject_hook "$F")
53
+ if [ "$(status_of "$OUT")" = "updated" ] \
54
+ && [ "$(cmds "$F" | /usr/bin/grep -cF "$CMD")" -eq 1 ] \
55
+ && [ "$(cmds "$F" | /usr/bin/grep -cF "$SIB")" -eq 1 ]; then
56
+ ok "existing array -> updated, sibling hook preserved"
57
+ else
58
+ bad "case 1 (out=$OUT cmds=$(cmds "$F" | tr '\n' ' '))"
59
+ fi
60
+
61
+ # --- 2. re-run -> already-set, byte-identical -------------------------------
62
+ B=$(shasum "$F" | /usr/bin/cut -d' ' -f1)
63
+ OUT=$(ensure_mailbox_inject_hook "$F")
64
+ A=$(shasum "$F" | /usr/bin/cut -d' ' -f1)
65
+ if [ "$(status_of "$OUT")" = "already-set" ] && [ "$B" = "$A" ] \
66
+ && [ "$(cmds "$F" | /usr/bin/grep -cF "$CMD")" -eq 1 ]; then
67
+ ok "re-run -> already-set, file byte-identical, no duplicate"
68
+ else
69
+ bad "case 2 (out=$OUT before=$B after=$A)"
70
+ fi
71
+
72
+ # --- 3. empty array -> updated, whole entry created -------------------------
73
+ F="$TMP/b.json"; printf '%s' '{"hooks":{"UserPromptSubmit":[]}}' > "$F"
74
+ OUT=$(ensure_mailbox_inject_hook "$F")
75
+ if [ "$(status_of "$OUT")" = "updated" ] && [ "$(cmds "$F" | /usr/bin/grep -cF "$CMD")" -eq 1 ]; then
76
+ ok "empty array -> updated, entry created"
77
+ else
78
+ bad "case 3 (out=$OUT cmds=$(cmds "$F" | tr '\n' ' '))"
79
+ fi
80
+
81
+ # --- 4. command already present in a later entry -> already-set, no dupe ----
82
+ F="$TMP/c.json"
83
+ printf '%s' "{\"hooks\":{\"UserPromptSubmit\":[{\"hooks\":[{\"type\":\"command\",\"command\":\"$SIB\"}]},{\"hooks\":[{\"type\":\"command\",\"command\":\"$CMD\"}]}]}}" > "$F"
84
+ OUT=$(ensure_mailbox_inject_hook "$F")
85
+ if [ "$(status_of "$OUT")" = "already-set" ] && [ "$(cmds "$F" | /usr/bin/grep -cF "$CMD")" -eq 1 ]; then
86
+ ok "command present in a later entry -> already-set, not duplicated"
87
+ else
88
+ bad "case 4 (out=$OUT cmds=$(cmds "$F" | tr '\n' ' '))"
89
+ fi
90
+
91
+ # --- 5. no UserPromptSubmit -> no-hooks, untouched --------------------------
92
+ F="$TMP/d.json"; printf '%s' '{"permissions":{}}' > "$F"
93
+ B=$(shasum "$F" | /usr/bin/cut -d' ' -f1); OUT=$(ensure_mailbox_inject_hook "$F"); A=$(shasum "$F" | /usr/bin/cut -d' ' -f1)
94
+ if [ "$(status_of "$OUT")" = "no-hooks" ] && [ "$B" = "$A" ]; then
95
+ ok "no UserPromptSubmit array -> no-hooks, file untouched"
96
+ else
97
+ bad "case 5 (out=$OUT)"
98
+ fi
99
+
100
+ # --- 6. file absent -> absent ----------------------------------------------
101
+ OUT=$(ensure_mailbox_inject_hook "$TMP/does-not-exist.json")
102
+ if [ "$(status_of "$OUT")" = "absent" ]; then
103
+ ok "file absent -> absent"
104
+ else
105
+ bad "case 6 (out=$OUT)"
106
+ fi
107
+
108
+ # --- 7. malformed JSON -> rewrite-failed, untouched -------------------------
109
+ F="$TMP/e.json"; printf 'not json at all' > "$F"
110
+ B=$(shasum "$F" | /usr/bin/cut -d' ' -f1); OUT=$(ensure_mailbox_inject_hook "$F"); A=$(shasum "$F" | /usr/bin/cut -d' ' -f1)
111
+ if [ "$(status_of "$OUT")" = "rewrite-failed" ] && [ "$B" = "$A" ]; then
112
+ ok "malformed JSON -> rewrite-failed, file untouched"
113
+ else
114
+ bad "case 7 (out=$OUT)"
115
+ fi
116
+
117
+ # --- 8. settings.json is a JSON array -> not patched, untouched -------------
118
+ F="$TMP/f.json"; printf '%s' '[]' > "$F"
119
+ B=$(shasum "$F" | /usr/bin/cut -d' ' -f1); OUT=$(ensure_mailbox_inject_hook "$F"); A=$(shasum "$F" | /usr/bin/cut -d' ' -f1)
120
+ S=$(status_of "$OUT")
121
+ if { [ "$S" = "no-hooks" ] || [ "$S" = "rewrite-failed" ]; } && [ "$B" = "$A" ]; then
122
+ ok "settings.json that is an array -> not patched, file untouched"
123
+ else
124
+ bad "case 8 (out=$OUT before=$B after=$A)"
125
+ fi
126
+
127
+ # --- 9. reconcile walks account dirs only ----------------------------------
128
+ R="$TMP/accts"; mkdir -p "$R/one/.claude" "$R/two/.claude" "$R/notanaccount/.claude"
129
+ printf '%s' '{}' > "$R/one/account.json"; printf '%s' '{}' > "$R/two/account.json"
130
+ for d in one two notanaccount; do
131
+ printf '%s' "{\"hooks\":{\"UserPromptSubmit\":[{\"hooks\":[{\"type\":\"command\",\"command\":\"$SIB\"}]}]}}" > "$R/$d/.claude/settings.json"
132
+ done
133
+ OUT=$(reconcile_all_accounts_mailbox_inject "$R")
134
+ if [ "$(printf '%s' "$OUT" | /usr/bin/grep -c 'status=updated')" -eq 2 ] \
135
+ && [ "$(cmds "$R/one/.claude/settings.json" | /usr/bin/grep -cF "$CMD")" -eq 1 ] \
136
+ && [ "$(cmds "$R/two/.claude/settings.json" | /usr/bin/grep -cF "$CMD")" -eq 1 ] \
137
+ && [ "$(cmds "$R/notanaccount/.claude/settings.json" | /usr/bin/grep -cF "$CMD")" -eq 0 ]; then
138
+ ok "reconcile patches account.json dirs only"
139
+ else
140
+ bad "case 9 (out=$OUT)"
141
+ fi
142
+
143
+ # --- 10. no temp file left behind on any path ------------------------------
144
+ if [ "$(find "$TMP" -name '*.2157.tmp' | /usr/bin/wc -l | tr -d ' ')" -eq 0 ]; then
145
+ ok "no .2157.tmp file left behind on any path"
146
+ else
147
+ bad "case 10 (strays: $(find "$TMP" -name '*.2157.tmp'))"
148
+ fi
149
+
150
+ # --- 11. never returns non-zero, even on the failure paths -----------------
151
+ ensure_mailbox_inject_hook "$TMP/e.json" >/dev/null; r1=$?
152
+ ensure_mailbox_inject_hook "$TMP/nope.json" >/dev/null; r2=$?
153
+ reconcile_all_accounts_mailbox_inject "$TMP/no-such-dir" >/dev/null; r3=$?
154
+ if [ "$r1" -eq 0 ] && [ "$r2" -eq 0 ] && [ "$r3" -eq 0 ]; then
155
+ ok "every path returns 0, so a caller running set -e is never aborted"
156
+ else
157
+ bad "case 11 (malformed=$r1 absent=$r2 nodir=$r3)"
158
+ fi
159
+
160
+ echo "----"
161
+ echo "PASS=$PASS FAIL=$FAIL"
162
+ if [ $((PASS+FAIL)) -ne 11 ]; then
163
+ echo "FAIL: expected 11 cases, ran $((PASS+FAIL))" >&2
164
+ exit 1
165
+ fi
166
+ [ "$FAIL" -eq 0 ]