@rubytech/create-sitedesk-code 0.1.526 → 0.1.528

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 (716) hide show
  1. package/package.json +1 -1
  2. package/payload/platform/plugins/admin/hooks/__tests__/fs-schema-guard.test.sh +82 -1
  3. package/payload/platform/plugins/admin/hooks/fs-schema-guard.sh +45 -13
  4. package/payload/platform/plugins/admin/mcp/dist/index.js +18 -4
  5. package/payload/platform/plugins/admin/mcp/dist/index.js.map +1 -1
  6. package/payload/platform/plugins/admin/mcp/dist/tools/logs-read-mcp.d.ts +16 -0
  7. package/payload/platform/plugins/admin/mcp/dist/tools/logs-read-mcp.d.ts.map +1 -0
  8. package/payload/platform/plugins/admin/mcp/dist/tools/logs-read-mcp.js +69 -0
  9. package/payload/platform/plugins/admin/mcp/dist/tools/logs-read-mcp.js.map +1 -0
  10. package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +133 -9
  11. package/payload/platform/plugins/admin/skills/whats-new/SKILL.md +14 -0
  12. package/payload/platform/plugins/docs/references/admin-ui.md +127 -4
  13. package/payload/platform/plugins/docs/references/deployment.md +1 -1
  14. package/payload/platform/plugins/docs/references/internals.md +1 -1
  15. package/payload/platform/plugins/docs/references/platform.md +1 -1
  16. package/payload/platform/plugins/docs/references/plugins-guide.md +2 -1
  17. package/payload/platform/plugins/email/.claude-plugin/plugin.json +1 -1
  18. package/payload/platform/plugins/email/PLUGIN.md +8 -3
  19. package/payload/platform/plugins/email/mcp/dist/__tests__/compose-signature.test.js +61 -4
  20. package/payload/platform/plugins/email/mcp/dist/__tests__/compose-signature.test.js.map +1 -1
  21. package/payload/platform/plugins/email/mcp/dist/__tests__/email-draft-edit.test.js +41 -0
  22. package/payload/platform/plugins/email/mcp/dist/__tests__/email-draft-edit.test.js.map +1 -1
  23. package/payload/platform/plugins/email/mcp/dist/__tests__/email-draft.test.js +47 -1
  24. package/payload/platform/plugins/email/mcp/dist/__tests__/email-draft.test.js.map +1 -1
  25. package/payload/platform/plugins/email/mcp/dist/__tests__/email-sending-identity-set.test.d.ts +2 -0
  26. package/payload/platform/plugins/email/mcp/dist/__tests__/email-sending-identity-set.test.d.ts.map +1 -0
  27. package/payload/platform/plugins/email/mcp/dist/__tests__/email-sending-identity-set.test.js +184 -0
  28. package/payload/platform/plugins/email/mcp/dist/__tests__/email-sending-identity-set.test.js.map +1 -0
  29. package/payload/platform/plugins/email/mcp/dist/__tests__/email-signature-set.test.js +8 -5
  30. package/payload/platform/plugins/email/mcp/dist/__tests__/email-signature-set.test.js.map +1 -1
  31. package/payload/platform/plugins/email/mcp/dist/__tests__/email-status.test.js +64 -0
  32. package/payload/platform/plugins/email/mcp/dist/__tests__/email-status.test.js.map +1 -1
  33. package/payload/platform/plugins/email/mcp/dist/__tests__/mailbox-resolve.test.js +132 -0
  34. package/payload/platform/plugins/email/mcp/dist/__tests__/mailbox-resolve.test.js.map +1 -1
  35. package/payload/platform/plugins/email/mcp/dist/__tests__/signature.test.js +93 -11
  36. package/payload/platform/plugins/email/mcp/dist/__tests__/signature.test.js.map +1 -1
  37. package/payload/platform/plugins/email/mcp/dist/index.js +34 -3
  38. package/payload/platform/plugins/email/mcp/dist/index.js.map +1 -1
  39. package/payload/platform/plugins/email/mcp/dist/lib/compose.d.ts +2 -1
  40. package/payload/platform/plugins/email/mcp/dist/lib/compose.d.ts.map +1 -1
  41. package/payload/platform/plugins/email/mcp/dist/lib/compose.js +13 -2
  42. package/payload/platform/plugins/email/mcp/dist/lib/compose.js.map +1 -1
  43. package/payload/platform/plugins/email/mcp/dist/lib/credentials.d.ts +47 -2
  44. package/payload/platform/plugins/email/mcp/dist/lib/credentials.d.ts.map +1 -1
  45. package/payload/platform/plugins/email/mcp/dist/lib/credentials.js +92 -5
  46. package/payload/platform/plugins/email/mcp/dist/lib/credentials.js.map +1 -1
  47. package/payload/platform/plugins/email/mcp/dist/lib/signature.d.ts +55 -7
  48. package/payload/platform/plugins/email/mcp/dist/lib/signature.d.ts.map +1 -1
  49. package/payload/platform/plugins/email/mcp/dist/lib/signature.js +72 -9
  50. package/payload/platform/plugins/email/mcp/dist/lib/signature.js.map +1 -1
  51. package/payload/platform/plugins/email/mcp/dist/tools/email-draft-edit.d.ts.map +1 -1
  52. package/payload/platform/plugins/email/mcp/dist/tools/email-draft-edit.js +5 -2
  53. package/payload/platform/plugins/email/mcp/dist/tools/email-draft-edit.js.map +1 -1
  54. package/payload/platform/plugins/email/mcp/dist/tools/email-draft.d.ts.map +1 -1
  55. package/payload/platform/plugins/email/mcp/dist/tools/email-draft.js +6 -3
  56. package/payload/platform/plugins/email/mcp/dist/tools/email-draft.js.map +1 -1
  57. package/payload/platform/plugins/email/mcp/dist/tools/email-sending-identity-set.d.ts +20 -0
  58. package/payload/platform/plugins/email/mcp/dist/tools/email-sending-identity-set.d.ts.map +1 -0
  59. package/payload/platform/plugins/email/mcp/dist/tools/email-sending-identity-set.js +32 -0
  60. package/payload/platform/plugins/email/mcp/dist/tools/email-sending-identity-set.js.map +1 -0
  61. package/payload/platform/plugins/email/mcp/dist/tools/email-status.d.ts.map +1 -1
  62. package/payload/platform/plugins/email/mcp/dist/tools/email-status.js +22 -2
  63. package/payload/platform/plugins/email/mcp/dist/tools/email-status.js.map +1 -1
  64. package/payload/platform/plugins/email/references/email-reference.md +11 -3
  65. package/payload/platform/plugins/email/skills/email-composition/SKILL.md +3 -0
  66. package/payload/platform/plugins/email/skills/email-signature/SKILL.md +27 -9
  67. package/payload/platform/plugins/linkedin-extension/extension/README.md +10 -2
  68. package/payload/platform/plugins/linkedin-extension/extension/background/sw.js +37 -4
  69. package/payload/platform/plugins/linkedin-extension/extension/content/profile.js +17 -2
  70. package/payload/platform/plugins/linkedin-extension/extension/content/thread.js +17 -2
  71. package/payload/platform/plugins/linkedin-extension/extension/manifest.json +1 -0
  72. package/payload/platform/plugins/linkedin-extension/extension/options/options.html +1 -0
  73. package/payload/platform/plugins/linkedin-extension/extension/options/options.js +78 -3
  74. package/payload/platform/scripts/__tests__/vnc-cdp-liveness.test.sh +25 -2
  75. package/payload/platform/scripts/vnc.sh +34 -26
  76. package/payload/platform/services/claude-session-manager/dist/account-dir-schema-reconcile.d.ts +24 -1
  77. package/payload/platform/services/claude-session-manager/dist/account-dir-schema-reconcile.d.ts.map +1 -1
  78. package/payload/platform/services/claude-session-manager/dist/account-dir-schema-reconcile.js +84 -3
  79. package/payload/platform/services/claude-session-manager/dist/account-dir-schema-reconcile.js.map +1 -1
  80. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.d.ts.map +1 -1
  81. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js +1 -0
  82. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js.map +1 -1
  83. package/payload/platform/templates/specialists/agents/personal-assistant.md +1 -1
  84. package/payload/server/{chunk-XCR5D2G3.js → chunk-BP7LH7MC.js} +0 -1
  85. package/payload/server/{chunk-WT2PFGY4.js → chunk-DLG7XSLA.js} +217 -2
  86. package/payload/server/{chunk-7MGR5M6G.js → chunk-UTIHI6KV.js} +1 -1
  87. package/payload/server/{manager-6XOWHREK.js → manager-B4LRDZKC.js} +2 -2
  88. package/payload/server/maxy-edge.js +227 -7
  89. package/payload/server/public/activity.html +5 -5
  90. package/payload/server/public/agents.html +4 -4
  91. package/payload/server/public/assets/AdminLoginScreens-Bx9vPuUg.js +1 -0
  92. package/payload/server/public/assets/AdminLoginScreens-Bx9vPuUg.js.br +0 -0
  93. package/payload/server/public/assets/AdminLoginScreens-Bx9vPuUg.js.gz +0 -0
  94. package/payload/server/public/assets/AdminShell-BxJPbC3p.js +2 -0
  95. package/payload/server/public/assets/AdminShell-BxJPbC3p.js.br +0 -0
  96. package/payload/server/public/assets/AdminShell-BxJPbC3p.js.gz +0 -0
  97. package/payload/server/public/assets/CdpScreencastSurface-5HLhTQTV.js +1 -0
  98. package/payload/server/public/assets/CdpScreencastSurface-5HLhTQTV.js.br +0 -0
  99. package/payload/server/public/assets/CdpScreencastSurface-5HLhTQTV.js.gz +0 -0
  100. package/payload/server/public/assets/{activity-DGQt5ys_.js → activity-BaSYn62l.js} +1 -1
  101. package/payload/server/public/assets/activity-BaSYn62l.js.br +0 -0
  102. package/payload/server/public/assets/activity-BaSYn62l.js.gz +0 -0
  103. package/payload/server/public/assets/admin-CYCKrV_x.js +1 -0
  104. package/payload/server/public/assets/admin-CYCKrV_x.js.br +0 -0
  105. package/payload/server/public/assets/admin-CYCKrV_x.js.gz +0 -0
  106. package/payload/server/public/assets/{agents-Bc2LZjwC.js → agents-D8EJG-ta.js} +1 -1
  107. package/payload/server/public/assets/agents-D8EJG-ta.js.br +0 -0
  108. package/payload/server/public/assets/agents-D8EJG-ta.js.gz +0 -0
  109. package/payload/server/public/assets/{arc-DaudCnXg.js → arc-CHoXZR2f.js} +1 -1
  110. package/payload/server/public/assets/arc-CHoXZR2f.js.br +0 -0
  111. package/payload/server/public/assets/arc-CHoXZR2f.js.gz +0 -0
  112. package/payload/server/public/assets/architecture-YZFGNWBL-CQyo9W6E.js +1 -0
  113. package/payload/server/public/assets/architecture-YZFGNWBL-CQyo9W6E.js.br +0 -0
  114. package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-BEEC3s7i.js → architectureDiagram-Q4EWVU46-B8SCI0AR.js} +1 -1
  115. package/payload/server/public/assets/architectureDiagram-Q4EWVU46-B8SCI0AR.js.br +0 -0
  116. package/payload/server/public/assets/architectureDiagram-Q4EWVU46-B8SCI0AR.js.gz +0 -0
  117. package/payload/server/public/assets/{blockDiagram-DXYQGD6D-BIWyfb18.js → blockDiagram-DXYQGD6D-CsJmhz5D.js} +1 -1
  118. package/payload/server/public/assets/blockDiagram-DXYQGD6D-CsJmhz5D.js.br +0 -0
  119. package/payload/server/public/assets/blockDiagram-DXYQGD6D-CsJmhz5D.js.gz +0 -0
  120. package/payload/server/public/assets/browser-D6Y_Zu8C.js +1 -0
  121. package/payload/server/public/assets/browser-D6Y_Zu8C.js.br +0 -0
  122. package/payload/server/public/assets/browser-D6Y_Zu8C.js.gz +0 -0
  123. package/payload/server/public/assets/{c4Diagram-AHTNJAMY--h6oE2cv.js → c4Diagram-AHTNJAMY-CzaSNqcs.js} +1 -1
  124. package/payload/server/public/assets/c4Diagram-AHTNJAMY-CzaSNqcs.js.br +0 -0
  125. package/payload/server/public/assets/c4Diagram-AHTNJAMY-CzaSNqcs.js.gz +0 -0
  126. package/payload/server/public/assets/{calendar-D25EhXbD.js → calendar-DD4oVa-r.js} +1 -1
  127. package/payload/server/public/assets/calendar-DD4oVa-r.js.br +0 -0
  128. package/payload/server/public/assets/calendar-DD4oVa-r.js.gz +0 -0
  129. package/payload/server/public/assets/channel-Dg_Rah6O.js +1 -0
  130. package/payload/server/public/assets/channel-Dg_Rah6O.js.br +0 -0
  131. package/payload/server/public/assets/chat-CwWs69PO.js +1 -0
  132. package/payload/server/public/assets/chat-CwWs69PO.js.br +0 -0
  133. package/payload/server/public/assets/chat-CwWs69PO.js.gz +0 -0
  134. package/payload/server/public/assets/chevron-left-ClfIy5Fx.js +1 -0
  135. package/payload/server/public/assets/chevron-right-B0QvXpxl.js +1 -0
  136. package/payload/server/public/assets/chevron-right-B0QvXpxl.js.br +0 -0
  137. package/payload/server/public/assets/{chunk-2KRD3SAO-BwEVlnxo.js → chunk-2KRD3SAO-DAN3KCZc.js} +1 -1
  138. package/payload/server/public/assets/chunk-2KRD3SAO-DAN3KCZc.js.br +0 -0
  139. package/payload/server/public/assets/chunk-2KRD3SAO-DAN3KCZc.js.gz +0 -0
  140. package/payload/server/public/assets/{chunk-336JU56O-DQddTATH.js → chunk-336JU56O-Dm-0_lIT.js} +2 -2
  141. package/payload/server/public/assets/chunk-336JU56O-Dm-0_lIT.js.br +0 -0
  142. package/payload/server/public/assets/chunk-336JU56O-Dm-0_lIT.js.gz +0 -0
  143. package/payload/server/public/assets/chunk-426QAEUC-Rh8qTRZB.js +1 -0
  144. package/payload/server/public/assets/chunk-426QAEUC-Rh8qTRZB.js.br +0 -0
  145. package/payload/server/public/assets/chunk-426QAEUC-Rh8qTRZB.js.gz +0 -0
  146. package/payload/server/public/assets/{chunk-4BX2VUAB-C5p3xTC6.js → chunk-4BX2VUAB-C2l9bAlo.js} +1 -1
  147. package/payload/server/public/assets/chunk-4BX2VUAB-C2l9bAlo.js.br +0 -0
  148. package/payload/server/public/assets/chunk-4BX2VUAB-C2l9bAlo.js.gz +0 -0
  149. package/payload/server/public/assets/{chunk-4TB4RGXK-gClfNc1w.js → chunk-4TB4RGXK-BMXDzU09.js} +1 -1
  150. package/payload/server/public/assets/chunk-4TB4RGXK-BMXDzU09.js.br +0 -0
  151. package/payload/server/public/assets/chunk-4TB4RGXK-BMXDzU09.js.gz +0 -0
  152. package/payload/server/public/assets/{chunk-55IACEB6-DDU_m1ra.js → chunk-55IACEB6-CbMYAZon.js} +1 -1
  153. package/payload/server/public/assets/chunk-55IACEB6-CbMYAZon.js.br +0 -0
  154. package/payload/server/public/assets/chunk-55IACEB6-CbMYAZon.js.gz +0 -0
  155. package/payload/server/public/assets/{chunk-5FUZZQ4R-CZ2jQWNR.js → chunk-5FUZZQ4R-DjdsuxLA.js} +1 -1
  156. package/payload/server/public/assets/chunk-5FUZZQ4R-DjdsuxLA.js.br +0 -0
  157. package/payload/server/public/assets/chunk-5FUZZQ4R-DjdsuxLA.js.gz +0 -0
  158. package/payload/server/public/assets/{chunk-5PVQY5BW-kcZ5kfTg.js → chunk-5PVQY5BW-CGSBzsF6.js} +1 -1
  159. package/payload/server/public/assets/chunk-5PVQY5BW-CGSBzsF6.js.br +0 -0
  160. package/payload/server/public/assets/chunk-5PVQY5BW-CGSBzsF6.js.gz +0 -0
  161. package/payload/server/public/assets/{chunk-67CJDMHE-9W0Qv0jm.js → chunk-67CJDMHE-ClOLWser.js} +1 -1
  162. package/payload/server/public/assets/chunk-67CJDMHE-ClOLWser.js.br +0 -0
  163. package/payload/server/public/assets/chunk-67CJDMHE-ClOLWser.js.gz +0 -0
  164. package/payload/server/public/assets/{chunk-7N4EOEYR-B3gqydR3.js → chunk-7N4EOEYR-BzC1dzY0.js} +1 -1
  165. package/payload/server/public/assets/chunk-7N4EOEYR-BzC1dzY0.js.br +0 -0
  166. package/payload/server/public/assets/chunk-7N4EOEYR-BzC1dzY0.js.gz +0 -0
  167. package/payload/server/public/assets/{chunk-AA7GKIK3-DW8a-2NK.js → chunk-AA7GKIK3-R_pjI1kw.js} +1 -1
  168. package/payload/server/public/assets/chunk-AA7GKIK3-R_pjI1kw.js.br +0 -0
  169. package/payload/server/public/assets/chunk-AA7GKIK3-R_pjI1kw.js.gz +0 -0
  170. package/payload/server/public/assets/{chunk-BSJP7CBP-DqXIO_5R.js → chunk-BSJP7CBP-D2KRAq3U.js} +1 -1
  171. package/payload/server/public/assets/chunk-BSJP7CBP-D2KRAq3U.js.br +0 -0
  172. package/payload/server/public/assets/chunk-BSJP7CBP-D2KRAq3U.js.gz +0 -0
  173. package/payload/server/public/assets/{chunk-CIAEETIT-BMJfgj2u.js → chunk-CIAEETIT-BPGWtrKR.js} +1 -1
  174. package/payload/server/public/assets/chunk-CIAEETIT-BPGWtrKR.js.br +0 -0
  175. package/payload/server/public/assets/chunk-CIAEETIT-BPGWtrKR.js.gz +0 -0
  176. package/payload/server/public/assets/{chunk-EDXVE4YY-BxdLPk0b.js → chunk-EDXVE4YY-tqt7wueu.js} +1 -1
  177. package/payload/server/public/assets/chunk-EDXVE4YY-tqt7wueu.js.br +3 -0
  178. package/payload/server/public/assets/chunk-EDXVE4YY-tqt7wueu.js.gz +0 -0
  179. package/payload/server/public/assets/{chunk-ENJZ2VHE-Cfe2DCjQ.js → chunk-ENJZ2VHE-DJG3cA6E.js} +1 -1
  180. package/payload/server/public/assets/chunk-ENJZ2VHE-DJG3cA6E.js.br +0 -0
  181. package/payload/server/public/assets/chunk-ENJZ2VHE-DJG3cA6E.js.gz +0 -0
  182. package/payload/server/public/assets/{chunk-FMBD7UC4-CdPjwbtf.js → chunk-FMBD7UC4-DO1xgCDf.js} +1 -1
  183. package/payload/server/public/assets/chunk-FMBD7UC4-DO1xgCDf.js.br +2 -0
  184. package/payload/server/public/assets/chunk-FMBD7UC4-DO1xgCDf.js.gz +0 -0
  185. package/payload/server/public/assets/{chunk-FOC6F5B3-Dl6l1KAh.js → chunk-FOC6F5B3-BhWAbCUG.js} +1 -1
  186. package/payload/server/public/assets/chunk-FOC6F5B3-BhWAbCUG.js.br +0 -0
  187. package/payload/server/public/assets/chunk-FOC6F5B3-BhWAbCUG.js.gz +0 -0
  188. package/payload/server/public/assets/{chunk-ICPOFSXX-PnsGrqtx.js → chunk-ICPOFSXX-BhUzt35c.js} +2 -2
  189. package/payload/server/public/assets/chunk-ICPOFSXX-BhUzt35c.js.br +0 -0
  190. package/payload/server/public/assets/chunk-ICPOFSXX-BhUzt35c.js.gz +0 -0
  191. package/payload/server/public/assets/{chunk-K5T4RW27--g29_wjW.js → chunk-K5T4RW27-Boj-qHrX.js} +1 -1
  192. package/payload/server/public/assets/chunk-K5T4RW27-Boj-qHrX.js.br +0 -0
  193. package/payload/server/public/assets/chunk-K5T4RW27-Boj-qHrX.js.gz +0 -0
  194. package/payload/server/public/assets/{chunk-KGLVRYIC-CI77ENeO.js → chunk-KGLVRYIC-3cBRDk1b.js} +1 -1
  195. package/payload/server/public/assets/chunk-KGLVRYIC-3cBRDk1b.js.br +2 -0
  196. package/payload/server/public/assets/chunk-KGLVRYIC-3cBRDk1b.js.gz +0 -0
  197. package/payload/server/public/assets/{chunk-LIHQZDEY-CE-XByg6.js → chunk-LIHQZDEY-CgkLKaII.js} +1 -1
  198. package/payload/server/public/assets/chunk-LIHQZDEY-CgkLKaII.js.br +0 -0
  199. package/payload/server/public/assets/chunk-LIHQZDEY-CgkLKaII.js.gz +0 -0
  200. package/payload/server/public/assets/{chunk-ORNJ4GCN-DkjJQQSm.js → chunk-ORNJ4GCN-Dl449r_k.js} +1 -1
  201. package/payload/server/public/assets/chunk-ORNJ4GCN-Dl449r_k.js.br +0 -0
  202. package/payload/server/public/assets/chunk-ORNJ4GCN-Dl449r_k.js.gz +0 -0
  203. package/payload/server/public/assets/{chunk-OYMX7WX6-DhogFeD7.js → chunk-OYMX7WX6-Dzkj67n6.js} +1 -1
  204. package/payload/server/public/assets/chunk-OYMX7WX6-Dzkj67n6.js.br +0 -0
  205. package/payload/server/public/assets/chunk-OYMX7WX6-Dzkj67n6.js.gz +0 -0
  206. package/payload/server/public/assets/chunk-QZHKN3VN-BDoCtU0N.js +1 -0
  207. package/payload/server/public/assets/chunk-QZHKN3VN-BDoCtU0N.js.br +0 -0
  208. package/payload/server/public/assets/chunk-QZHKN3VN-BDoCtU0N.js.gz +0 -0
  209. package/payload/server/public/assets/{chunk-U2HBQHQK-CeaRXuiO.js → chunk-U2HBQHQK-Dyz9Kbir.js} +1 -1
  210. package/payload/server/public/assets/chunk-U2HBQHQK-Dyz9Kbir.js.br +0 -0
  211. package/payload/server/public/assets/chunk-U2HBQHQK-Dyz9Kbir.js.gz +0 -0
  212. package/payload/server/public/assets/{chunk-X2U36JSP-BqxXeOqf.js → chunk-X2U36JSP-ag0VVCw6.js} +1 -1
  213. package/payload/server/public/assets/chunk-X2U36JSP-ag0VVCw6.js.br +0 -0
  214. package/payload/server/public/assets/chunk-X2U36JSP-ag0VVCw6.js.gz +0 -0
  215. package/payload/server/public/assets/{chunk-XPW4576I-DtqJwn2x.js → chunk-XPW4576I-B-vhDYPE.js} +1 -1
  216. package/payload/server/public/assets/chunk-XPW4576I-B-vhDYPE.js.br +0 -0
  217. package/payload/server/public/assets/chunk-XPW4576I-B-vhDYPE.js.gz +0 -0
  218. package/payload/server/public/assets/{chunk-YZCP3GAM-COBlEwQw.js → chunk-YZCP3GAM-C4COviPb.js} +1 -1
  219. package/payload/server/public/assets/chunk-YZCP3GAM-C4COviPb.js.br +0 -0
  220. package/payload/server/public/assets/chunk-YZCP3GAM-C4COviPb.js.gz +0 -0
  221. package/payload/server/public/assets/{chunk-ZZ45TVLE-CcL088y6.js → chunk-ZZ45TVLE-8dGsCp5b.js} +1 -1
  222. package/payload/server/public/assets/chunk-ZZ45TVLE-8dGsCp5b.js.br +0 -0
  223. package/payload/server/public/assets/chunk-ZZ45TVLE-8dGsCp5b.js.gz +0 -0
  224. package/payload/server/public/assets/classDiagram-6PBFFD2Q-qevfwy5C.js +1 -0
  225. package/payload/server/public/assets/classDiagram-6PBFFD2Q-qevfwy5C.js.br +0 -0
  226. package/payload/server/public/assets/classDiagram-6PBFFD2Q-qevfwy5C.js.gz +0 -0
  227. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-CxOR3aao.js +1 -0
  228. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-CxOR3aao.js.br +0 -0
  229. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-CxOR3aao.js.gz +0 -0
  230. package/payload/server/public/assets/clock-BIaRnIP_.js +1 -0
  231. package/payload/server/public/assets/clock-BIaRnIP_.js.br +0 -0
  232. package/payload/server/public/assets/clock-BIaRnIP_.js.gz +0 -0
  233. package/payload/server/public/assets/clone-CJmzeWWZ.js +1 -0
  234. package/payload/server/public/assets/clone-CJmzeWWZ.js.br +0 -0
  235. package/payload/server/public/assets/{cose-bilkent-S5V4N54A-kEHVkDNn.js → cose-bilkent-S5V4N54A-qM4Q4TuE.js} +1 -1
  236. package/payload/server/public/assets/cose-bilkent-S5V4N54A-qM4Q4TuE.js.br +0 -0
  237. package/payload/server/public/assets/cose-bilkent-S5V4N54A-qM4Q4TuE.js.gz +0 -0
  238. package/payload/server/public/assets/{dagre-D2wUw1zC.js → dagre-DRvHdusQ.js} +1 -1
  239. package/payload/server/public/assets/dagre-DRvHdusQ.js.br +0 -0
  240. package/payload/server/public/assets/dagre-DRvHdusQ.js.gz +0 -0
  241. package/payload/server/public/assets/{dagre-KV5264BT-BWfTDwEs.js → dagre-KV5264BT-CGqSVVTn.js} +1 -1
  242. package/payload/server/public/assets/dagre-KV5264BT-CGqSVVTn.js.br +0 -0
  243. package/payload/server/public/assets/dagre-KV5264BT-CGqSVVTn.js.gz +0 -0
  244. package/payload/server/public/assets/data-O_9Kiicl.js +1 -0
  245. package/payload/server/public/assets/data-O_9Kiicl.js.br +2 -0
  246. package/payload/server/public/assets/data-O_9Kiicl.js.gz +0 -0
  247. package/payload/server/public/assets/{diagram-5BDNPKRD-Tl9dS8w0.js → diagram-5BDNPKRD-DfFgeApz.js} +1 -1
  248. package/payload/server/public/assets/diagram-5BDNPKRD-DfFgeApz.js.br +0 -0
  249. package/payload/server/public/assets/diagram-5BDNPKRD-DfFgeApz.js.gz +0 -0
  250. package/payload/server/public/assets/{diagram-G4DWMVQ6-CeSe6TMu.js → diagram-G4DWMVQ6-DPXc3Q8e.js} +1 -1
  251. package/payload/server/public/assets/diagram-G4DWMVQ6-DPXc3Q8e.js.br +0 -0
  252. package/payload/server/public/assets/diagram-G4DWMVQ6-DPXc3Q8e.js.gz +0 -0
  253. package/payload/server/public/assets/{diagram-MMDJMWI5-DYBNJCmk.js → diagram-MMDJMWI5-V8RCddvy.js} +1 -1
  254. package/payload/server/public/assets/diagram-MMDJMWI5-V8RCddvy.js.br +0 -0
  255. package/payload/server/public/assets/diagram-MMDJMWI5-V8RCddvy.js.gz +0 -0
  256. package/payload/server/public/assets/{diagram-TYMM5635-BmpUGltx.js → diagram-TYMM5635-CrvfIf-m.js} +1 -1
  257. package/payload/server/public/assets/diagram-TYMM5635-CrvfIf-m.js.br +0 -0
  258. package/payload/server/public/assets/diagram-TYMM5635-CrvfIf-m.js.gz +0 -0
  259. package/payload/server/public/assets/{erDiagram-SMLLAGMA-DuwuNGqx.js → erDiagram-SMLLAGMA-DClMgmBB.js} +1 -1
  260. package/payload/server/public/assets/erDiagram-SMLLAGMA-DClMgmBB.js.br +0 -0
  261. package/payload/server/public/assets/erDiagram-SMLLAGMA-DClMgmBB.js.gz +0 -0
  262. package/payload/server/public/assets/{file-download-CiGklOfA.js → file-download-sXU3_umF.js} +1 -1
  263. package/payload/server/public/assets/file-download-sXU3_umF.js.br +0 -0
  264. package/payload/server/public/assets/file-download-sXU3_umF.js.gz +0 -0
  265. package/payload/server/public/assets/{file-text-XjJPULAZ.js → file-text-CeXBviDH.js} +1 -1
  266. package/payload/server/public/assets/file-text-CeXBviDH.js.br +0 -0
  267. package/payload/server/public/assets/file-text-CeXBviDH.js.gz +0 -0
  268. package/payload/server/public/assets/{flatten-Bu-b1uTY.js → flatten-UdUTbm8v.js} +1 -1
  269. package/payload/server/public/assets/flatten-UdUTbm8v.js.br +0 -0
  270. package/payload/server/public/assets/flatten-UdUTbm8v.js.gz +0 -0
  271. package/payload/server/public/assets/{flowDiagram-DWJPFMVM-Bpp8P6Ba.js → flowDiagram-DWJPFMVM-D29Ou09P.js} +1 -1
  272. package/payload/server/public/assets/flowDiagram-DWJPFMVM-D29Ou09P.js.br +0 -0
  273. package/payload/server/public/assets/flowDiagram-DWJPFMVM-D29Ou09P.js.gz +0 -0
  274. package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-CE6ppjB4.js → ganttDiagram-T4ZO3ILL-CoAK7W_V.js} +1 -1
  275. package/payload/server/public/assets/ganttDiagram-T4ZO3ILL-CoAK7W_V.js.br +0 -0
  276. package/payload/server/public/assets/ganttDiagram-T4ZO3ILL-CoAK7W_V.js.gz +0 -0
  277. package/payload/server/public/assets/gitGraph-7Q5UKJZL--JSoLMoH.js +1 -0
  278. package/payload/server/public/assets/gitGraph-7Q5UKJZL--JSoLMoH.js.br +0 -0
  279. package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-BdK1GjPr.js → gitGraphDiagram-UUTBAWPF-DMEc_1aX.js} +1 -1
  280. package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-DMEc_1aX.js.br +0 -0
  281. package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-DMEc_1aX.js.gz +0 -0
  282. package/payload/server/public/assets/{graph-BjHJ0z_6.js → graph-BSuDP6k7.js} +3 -3
  283. package/payload/server/public/assets/graph-BSuDP6k7.js.br +0 -0
  284. package/payload/server/public/assets/graph-BSuDP6k7.js.gz +0 -0
  285. package/payload/server/public/assets/{graph-labels-D-0u37KA.js → graph-labels-D2pQkgYW.js} +1 -1
  286. package/payload/server/public/assets/graph-labels-D2pQkgYW.js.br +0 -0
  287. package/payload/server/public/assets/graph-labels-D2pQkgYW.js.gz +0 -0
  288. package/payload/server/public/assets/{graphlib-CHEXylyU.js → graphlib-ihSLgqUG.js} +1 -1
  289. package/payload/server/public/assets/graphlib-ihSLgqUG.js.br +0 -0
  290. package/payload/server/public/assets/graphlib-ihSLgqUG.js.gz +0 -0
  291. package/payload/server/public/assets/info-OMHHGYJF-CY4gsXn4.js +1 -0
  292. package/payload/server/public/assets/info-OMHHGYJF-CY4gsXn4.js.br +0 -0
  293. package/payload/server/public/assets/infoDiagram-42DDH7IO-CpWSNS3C.js +2 -0
  294. package/payload/server/public/assets/infoDiagram-42DDH7IO-CpWSNS3C.js.br +0 -0
  295. package/payload/server/public/assets/infoDiagram-42DDH7IO-CpWSNS3C.js.gz +0 -0
  296. package/payload/server/public/assets/{isEmpty-CjH0UASp.js → isEmpty-DY_Xp9Na.js} +1 -1
  297. package/payload/server/public/assets/isEmpty-DY_Xp9Na.js.br +0 -0
  298. package/payload/server/public/assets/isEmpty-DY_Xp9Na.js.gz +0 -0
  299. package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-CgkVZ4-3.js → ishikawaDiagram-UXIWVN3A-w8fVIbxy.js} +1 -1
  300. package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-w8fVIbxy.js.br +0 -0
  301. package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-w8fVIbxy.js.gz +0 -0
  302. package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-ByUPv8q6.js → journeyDiagram-VCZTEJTY-BRTPKDT5.js} +1 -1
  303. package/payload/server/public/assets/journeyDiagram-VCZTEJTY-BRTPKDT5.js.br +0 -0
  304. package/payload/server/public/assets/journeyDiagram-VCZTEJTY-BRTPKDT5.js.gz +0 -0
  305. package/payload/server/public/assets/{kanban-definition-6JOO6SKY-CFinqhpu.js → kanban-definition-6JOO6SKY-Ls3VaFZ_.js} +1 -1
  306. package/payload/server/public/assets/kanban-definition-6JOO6SKY-Ls3VaFZ_.js.br +0 -0
  307. package/payload/server/public/assets/kanban-definition-6JOO6SKY-Ls3VaFZ_.js.gz +0 -0
  308. package/payload/server/public/assets/{line-Y4ns5Ghi.js → line-BwhAIh8u.js} +1 -1
  309. package/payload/server/public/assets/line-BwhAIh8u.js.br +0 -0
  310. package/payload/server/public/assets/line-BwhAIh8u.js.gz +0 -0
  311. package/payload/server/public/assets/{linear-l39GooQ5.js → linear-USiZPFN4.js} +1 -1
  312. package/payload/server/public/assets/linear-USiZPFN4.js.br +0 -0
  313. package/payload/server/public/assets/linear-USiZPFN4.js.gz +0 -0
  314. package/payload/server/public/assets/{maximize-2-BJ9S-nfS.js → maximize-2-DlzSNygU.js} +1 -1
  315. package/payload/server/public/assets/maximize-2-DlzSNygU.js.br +0 -0
  316. package/payload/server/public/assets/maximize-2-DlzSNygU.js.gz +0 -0
  317. package/payload/server/public/assets/{mermaid-parser.core-5w0T1dRj.js → mermaid-parser.core-Bq--iC2w.js} +2 -2
  318. package/payload/server/public/assets/mermaid-parser.core-Bq--iC2w.js.br +0 -0
  319. package/payload/server/public/assets/mermaid-parser.core-Bq--iC2w.js.gz +0 -0
  320. package/payload/server/public/assets/{mermaid.core-DBADY5VW.js → mermaid.core-oYX-FxVa.js} +3 -3
  321. package/payload/server/public/assets/mermaid.core-oYX-FxVa.js.br +0 -0
  322. package/payload/server/public/assets/mermaid.core-oYX-FxVa.js.gz +0 -0
  323. package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-rHz37loq.js → mindmap-definition-QFDTVHPH-ByZjL4Bs.js} +1 -1
  324. package/payload/server/public/assets/mindmap-definition-QFDTVHPH-ByZjL4Bs.js.br +0 -0
  325. package/payload/server/public/assets/mindmap-definition-QFDTVHPH-ByZjL4Bs.js.gz +0 -0
  326. package/payload/server/public/assets/operator-BP61-xjz.js +1 -0
  327. package/payload/server/public/assets/operator-BP61-xjz.js.br +0 -0
  328. package/payload/server/public/assets/operator-BP61-xjz.js.gz +0 -0
  329. package/payload/server/public/assets/{ordinal-D6D6WcTC.js → ordinal-gnpqfIHn.js} +1 -1
  330. package/payload/server/public/assets/ordinal-gnpqfIHn.js.br +0 -0
  331. package/payload/server/public/assets/ordinal-gnpqfIHn.js.gz +0 -0
  332. package/payload/server/public/assets/packet-4T2RLAQJ-DczCn3uj.js +1 -0
  333. package/payload/server/public/assets/packet-4T2RLAQJ-DczCn3uj.js.br +0 -0
  334. package/payload/server/public/assets/page-DX7ArY_s.js +1 -0
  335. package/payload/server/public/assets/page-DX7ArY_s.js.br +0 -0
  336. package/payload/server/public/assets/page-DX7ArY_s.js.gz +0 -0
  337. package/payload/server/public/assets/page-eQ4OVros.js +32 -0
  338. package/payload/server/public/assets/page-eQ4OVros.js.br +0 -0
  339. package/payload/server/public/assets/page-eQ4OVros.js.gz +0 -0
  340. package/payload/server/public/assets/{pdf-render-BSgBp8Fr.js → pdf-render-gEryZmeC.js} +1 -1
  341. package/payload/server/public/assets/pdf-render-gEryZmeC.js.br +0 -0
  342. package/payload/server/public/assets/pdf-render-gEryZmeC.js.gz +0 -0
  343. package/payload/server/public/assets/pie-ZZUOXDRM-CbvZUaof.js +1 -0
  344. package/payload/server/public/assets/pie-ZZUOXDRM-CbvZUaof.js.br +0 -0
  345. package/payload/server/public/assets/{pieDiagram-DEJITSTG-as0e_DSH.js → pieDiagram-DEJITSTG-BGFms5bU.js} +1 -1
  346. package/payload/server/public/assets/pieDiagram-DEJITSTG-BGFms5bU.js.br +0 -0
  347. package/payload/server/public/assets/pieDiagram-DEJITSTG-BGFms5bU.js.gz +0 -0
  348. package/payload/server/public/assets/{public-BbJcQGsO.js → public-DPDKFKM2.js} +1 -1
  349. package/payload/server/public/assets/public-DPDKFKM2.js.br +0 -0
  350. package/payload/server/public/assets/public-DPDKFKM2.js.gz +0 -0
  351. package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-B4t8HO9J.js → quadrantDiagram-34T5L4WZ-_ymoz8bQ.js} +1 -1
  352. package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-_ymoz8bQ.js.br +0 -0
  353. package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-_ymoz8bQ.js.gz +0 -0
  354. package/payload/server/public/assets/radar-PYXPWWZC-XmuabQlO.js +1 -0
  355. package/payload/server/public/assets/radar-PYXPWWZC-XmuabQlO.js.br +0 -0
  356. package/payload/server/public/assets/{reduce-BtXXK8Ma.js → reduce-BvezuHIe.js} +1 -1
  357. package/payload/server/public/assets/reduce-BvezuHIe.js.br +0 -0
  358. package/payload/server/public/assets/reduce-BvezuHIe.js.gz +0 -0
  359. package/payload/server/public/assets/{requirementDiagram-MS252O5E-yxh30zHX.js → requirementDiagram-MS252O5E-lrOmOxIA.js} +1 -1
  360. package/payload/server/public/assets/requirementDiagram-MS252O5E-lrOmOxIA.js.br +0 -0
  361. package/payload/server/public/assets/requirementDiagram-MS252O5E-lrOmOxIA.js.gz +0 -0
  362. package/payload/server/public/assets/{rotate-ccw-jeSVwUAv.js → rotate-ccw-BR0JbPFV.js} +1 -1
  363. package/payload/server/public/assets/rotate-ccw-BR0JbPFV.js.br +0 -0
  364. package/payload/server/public/assets/rotate-ccw-BR0JbPFV.js.gz +0 -0
  365. package/payload/server/public/assets/{routines-D3M1Wh3a.js → routines-y413YZa-.js} +1 -1
  366. package/payload/server/public/assets/routines-y413YZa-.js.br +0 -0
  367. package/payload/server/public/assets/routines-y413YZa-.js.gz +0 -0
  368. package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-j-k9Wfty.js → sankeyDiagram-XADWPNL6-CdUQThXU.js} +1 -1
  369. package/payload/server/public/assets/sankeyDiagram-XADWPNL6-CdUQThXU.js.br +0 -0
  370. package/payload/server/public/assets/sankeyDiagram-XADWPNL6-CdUQThXU.js.gz +0 -0
  371. package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-DGLgcLhC.js → sequenceDiagram-FGHM5R23-DqnEEldq.js} +1 -1
  372. package/payload/server/public/assets/sequenceDiagram-FGHM5R23-DqnEEldq.js.br +0 -0
  373. package/payload/server/public/assets/sequenceDiagram-FGHM5R23-DqnEEldq.js.gz +0 -0
  374. package/payload/server/public/assets/{skills-Bhej2ub1.js → skills-fH0uA7cj.js} +1 -1
  375. package/payload/server/public/assets/skills-fH0uA7cj.js.br +0 -0
  376. package/payload/server/public/assets/skills-fH0uA7cj.js.gz +0 -0
  377. package/payload/server/public/assets/{stateDiagram-FHFEXIEX-C9p1OUMI.js → stateDiagram-FHFEXIEX-KEdtxqdq.js} +1 -1
  378. package/payload/server/public/assets/stateDiagram-FHFEXIEX-KEdtxqdq.js.br +0 -0
  379. package/payload/server/public/assets/stateDiagram-FHFEXIEX-KEdtxqdq.js.gz +0 -0
  380. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-Cs85Ewtt.js +1 -0
  381. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-Cs85Ewtt.js.br +0 -0
  382. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-Cs85Ewtt.js.gz +0 -0
  383. package/payload/server/public/assets/tasks-CrVzFrTR.js +3 -0
  384. package/payload/server/public/assets/tasks-CrVzFrTR.js.br +0 -0
  385. package/payload/server/public/assets/tasks-CrVzFrTR.js.gz +0 -0
  386. package/payload/server/public/assets/{time-entry-format-r5UY9rjG.js → time-entry-format-C_0jiMpQ.js} +1 -1
  387. package/payload/server/public/assets/time-entry-format-C_0jiMpQ.js.br +1 -0
  388. package/payload/server/public/assets/time-entry-format-C_0jiMpQ.js.gz +0 -0
  389. package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-B1g7pgkH.js → timeline-definition-GMOUNBTQ-BRXdCMau.js} +1 -1
  390. package/payload/server/public/assets/timeline-definition-GMOUNBTQ-BRXdCMau.js.br +0 -0
  391. package/payload/server/public/assets/timeline-definition-GMOUNBTQ-BRXdCMau.js.gz +0 -0
  392. package/payload/server/public/assets/treeView-SZITEDCU-B-SYhqwK.js +1 -0
  393. package/payload/server/public/assets/treeView-SZITEDCU-B-SYhqwK.js.br +0 -0
  394. package/payload/server/public/assets/treemap-W4RFUUIX-DpZmFNM9.js +1 -0
  395. package/payload/server/public/assets/treemap-W4RFUUIX-DpZmFNM9.js.br +0 -0
  396. package/payload/server/public/assets/{triangle-alert--PCKaewD.js → triangle-alert-eLJHC_QJ.js} +1 -1
  397. package/payload/server/public/assets/triangle-alert-eLJHC_QJ.js.br +1 -0
  398. package/payload/server/public/assets/triangle-alert-eLJHC_QJ.js.gz +0 -0
  399. package/payload/server/public/assets/{useCopyFeedback-Dg5lNgqH.js → useCopyFeedback-vPCmdOmY.js} +1 -1
  400. package/payload/server/public/assets/useCopyFeedback-vPCmdOmY.js.br +0 -0
  401. package/payload/server/public/assets/useCopyFeedback-vPCmdOmY.js.gz +0 -0
  402. package/payload/server/public/assets/useSubAccountSwitcher-DMr3DR5N.js +14 -0
  403. package/payload/server/public/assets/useSubAccountSwitcher-DMr3DR5N.js.br +0 -0
  404. package/payload/server/public/assets/useSubAccountSwitcher-DMr3DR5N.js.gz +0 -0
  405. package/payload/server/public/assets/useSubAccountSwitcher-DxuUS_C7.css +1 -0
  406. package/payload/server/public/assets/useSubAccountSwitcher-DxuUS_C7.css.br +0 -0
  407. package/payload/server/public/assets/useSubAccountSwitcher-DxuUS_C7.css.gz +0 -0
  408. package/payload/server/public/assets/{useVoiceRecorder-BY6ZsGMH.js → useVoiceRecorder-D5bFDRqL.js} +2 -2
  409. package/payload/server/public/assets/useVoiceRecorder-D5bFDRqL.js.br +0 -0
  410. package/payload/server/public/assets/useVoiceRecorder-D5bFDRqL.js.gz +0 -0
  411. package/payload/server/public/assets/{vennDiagram-DHZGUBPP-D2ZjFfh4.js → vennDiagram-DHZGUBPP-8nc7NUVQ.js} +1 -1
  412. package/payload/server/public/assets/vennDiagram-DHZGUBPP-8nc7NUVQ.js.br +0 -0
  413. package/payload/server/public/assets/vennDiagram-DHZGUBPP-8nc7NUVQ.js.gz +0 -0
  414. package/payload/server/public/assets/wardley-RL74JXVD-D2FCCV4-.js +1 -0
  415. package/payload/server/public/assets/wardley-RL74JXVD-D2FCCV4-.js.br +0 -0
  416. package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-BFAhfkD8.js → wardleyDiagram-NUSXRM2D-Cjjiap8M.js} +1 -1
  417. package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-Cjjiap8M.js.br +0 -0
  418. package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-Cjjiap8M.js.gz +0 -0
  419. package/payload/server/public/assets/{wrench-Bw1FMolk.js → wrench-sXisQXkf.js} +1 -1
  420. package/payload/server/public/assets/wrench-sXisQXkf.js.br +0 -0
  421. package/payload/server/public/assets/wrench-sXisQXkf.js.gz +0 -0
  422. package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-Dt94h2RQ.js → xychartDiagram-5P7HB3ND-DEzDNw_i.js} +1 -1
  423. package/payload/server/public/assets/xychartDiagram-5P7HB3ND-DEzDNw_i.js.br +0 -0
  424. package/payload/server/public/assets/xychartDiagram-5P7HB3ND-DEzDNw_i.js.gz +0 -0
  425. package/payload/server/public/brand-defaults.css +1 -1
  426. package/payload/server/public/browser.html +5 -4
  427. package/payload/server/public/calendar.html +7 -7
  428. package/payload/server/public/chat.html +14 -14
  429. package/payload/server/public/data.html +13 -13
  430. package/payload/server/public/graph.html +9 -9
  431. package/payload/server/public/index.html +17 -16
  432. package/payload/server/public/operator.html +16 -15
  433. package/payload/server/public/public.html +14 -14
  434. package/payload/server/public/routines.html +7 -7
  435. package/payload/server/public/skills.html +5 -5
  436. package/payload/server/public/tasks.html +6 -6
  437. package/payload/server/server.js +103 -77
  438. package/payload/server/public/assets/AdminLoginScreens-BgDjueVe.js +0 -1
  439. package/payload/server/public/assets/AdminLoginScreens-BgDjueVe.js.br +0 -0
  440. package/payload/server/public/assets/AdminLoginScreens-BgDjueVe.js.gz +0 -0
  441. package/payload/server/public/assets/AdminShell-YctTrR-D.js +0 -2
  442. package/payload/server/public/assets/AdminShell-YctTrR-D.js.br +0 -0
  443. package/payload/server/public/assets/AdminShell-YctTrR-D.js.gz +0 -0
  444. package/payload/server/public/assets/activity-DGQt5ys_.js.br +0 -0
  445. package/payload/server/public/assets/activity-DGQt5ys_.js.gz +0 -0
  446. package/payload/server/public/assets/admin-DnUxbB3P.js +0 -1
  447. package/payload/server/public/assets/admin-DnUxbB3P.js.br +0 -0
  448. package/payload/server/public/assets/admin-DnUxbB3P.js.gz +0 -0
  449. package/payload/server/public/assets/agents-Bc2LZjwC.js.br +0 -0
  450. package/payload/server/public/assets/agents-Bc2LZjwC.js.gz +0 -0
  451. package/payload/server/public/assets/arc-DaudCnXg.js.br +0 -0
  452. package/payload/server/public/assets/arc-DaudCnXg.js.gz +0 -0
  453. package/payload/server/public/assets/architecture-YZFGNWBL-DPFsm5jD.js +0 -1
  454. package/payload/server/public/assets/architecture-YZFGNWBL-DPFsm5jD.js.br +0 -0
  455. package/payload/server/public/assets/architectureDiagram-Q4EWVU46-BEEC3s7i.js.br +0 -0
  456. package/payload/server/public/assets/architectureDiagram-Q4EWVU46-BEEC3s7i.js.gz +0 -0
  457. package/payload/server/public/assets/blockDiagram-DXYQGD6D-BIWyfb18.js.br +0 -0
  458. package/payload/server/public/assets/blockDiagram-DXYQGD6D-BIWyfb18.js.gz +0 -0
  459. package/payload/server/public/assets/browser-BtF7SzvG.js +0 -1
  460. package/payload/server/public/assets/browser-BtF7SzvG.js.br +0 -0
  461. package/payload/server/public/assets/browser-BtF7SzvG.js.gz +0 -0
  462. package/payload/server/public/assets/c4Diagram-AHTNJAMY--h6oE2cv.js.br +0 -0
  463. package/payload/server/public/assets/c4Diagram-AHTNJAMY--h6oE2cv.js.gz +0 -0
  464. package/payload/server/public/assets/calendar-D25EhXbD.js.br +0 -0
  465. package/payload/server/public/assets/calendar-D25EhXbD.js.gz +0 -0
  466. package/payload/server/public/assets/channel-TwxCDSpK.js +0 -1
  467. package/payload/server/public/assets/channel-TwxCDSpK.js.br +0 -0
  468. package/payload/server/public/assets/chat-z4jsHFXg.js +0 -1
  469. package/payload/server/public/assets/chat-z4jsHFXg.js.br +0 -0
  470. package/payload/server/public/assets/chat-z4jsHFXg.js.gz +0 -0
  471. package/payload/server/public/assets/chevron-left-BD09SN6R.js +0 -1
  472. package/payload/server/public/assets/chevron-right-ChmWeo7T.js +0 -1
  473. package/payload/server/public/assets/chevron-right-ChmWeo7T.js.br +0 -0
  474. package/payload/server/public/assets/chunk-2KRD3SAO-BwEVlnxo.js.br +0 -0
  475. package/payload/server/public/assets/chunk-2KRD3SAO-BwEVlnxo.js.gz +0 -0
  476. package/payload/server/public/assets/chunk-336JU56O-DQddTATH.js.br +0 -0
  477. package/payload/server/public/assets/chunk-336JU56O-DQddTATH.js.gz +0 -0
  478. package/payload/server/public/assets/chunk-426QAEUC-BDC8wptW.js +0 -1
  479. package/payload/server/public/assets/chunk-426QAEUC-BDC8wptW.js.br +0 -0
  480. package/payload/server/public/assets/chunk-426QAEUC-BDC8wptW.js.gz +0 -0
  481. package/payload/server/public/assets/chunk-4BX2VUAB-C5p3xTC6.js.br +0 -0
  482. package/payload/server/public/assets/chunk-4BX2VUAB-C5p3xTC6.js.gz +0 -0
  483. package/payload/server/public/assets/chunk-4TB4RGXK-gClfNc1w.js.br +0 -0
  484. package/payload/server/public/assets/chunk-4TB4RGXK-gClfNc1w.js.gz +0 -0
  485. package/payload/server/public/assets/chunk-55IACEB6-DDU_m1ra.js.br +0 -0
  486. package/payload/server/public/assets/chunk-55IACEB6-DDU_m1ra.js.gz +0 -0
  487. package/payload/server/public/assets/chunk-5FUZZQ4R-CZ2jQWNR.js.br +0 -0
  488. package/payload/server/public/assets/chunk-5FUZZQ4R-CZ2jQWNR.js.gz +0 -0
  489. package/payload/server/public/assets/chunk-5PVQY5BW-kcZ5kfTg.js.br +0 -0
  490. package/payload/server/public/assets/chunk-5PVQY5BW-kcZ5kfTg.js.gz +0 -0
  491. package/payload/server/public/assets/chunk-67CJDMHE-9W0Qv0jm.js.br +0 -0
  492. package/payload/server/public/assets/chunk-67CJDMHE-9W0Qv0jm.js.gz +0 -0
  493. package/payload/server/public/assets/chunk-7N4EOEYR-B3gqydR3.js.br +0 -0
  494. package/payload/server/public/assets/chunk-7N4EOEYR-B3gqydR3.js.gz +0 -0
  495. package/payload/server/public/assets/chunk-AA7GKIK3-DW8a-2NK.js.br +0 -4
  496. package/payload/server/public/assets/chunk-AA7GKIK3-DW8a-2NK.js.gz +0 -0
  497. package/payload/server/public/assets/chunk-BSJP7CBP-DqXIO_5R.js.br +0 -0
  498. package/payload/server/public/assets/chunk-BSJP7CBP-DqXIO_5R.js.gz +0 -0
  499. package/payload/server/public/assets/chunk-CIAEETIT-BMJfgj2u.js.br +0 -0
  500. package/payload/server/public/assets/chunk-CIAEETIT-BMJfgj2u.js.gz +0 -0
  501. package/payload/server/public/assets/chunk-EDXVE4YY-BxdLPk0b.js.br +0 -0
  502. package/payload/server/public/assets/chunk-EDXVE4YY-BxdLPk0b.js.gz +0 -0
  503. package/payload/server/public/assets/chunk-ENJZ2VHE-Cfe2DCjQ.js.br +0 -0
  504. package/payload/server/public/assets/chunk-ENJZ2VHE-Cfe2DCjQ.js.gz +0 -0
  505. package/payload/server/public/assets/chunk-FMBD7UC4-CdPjwbtf.js.br +0 -0
  506. package/payload/server/public/assets/chunk-FMBD7UC4-CdPjwbtf.js.gz +0 -0
  507. package/payload/server/public/assets/chunk-FOC6F5B3-Dl6l1KAh.js.br +0 -0
  508. package/payload/server/public/assets/chunk-FOC6F5B3-Dl6l1KAh.js.gz +0 -0
  509. package/payload/server/public/assets/chunk-ICPOFSXX-PnsGrqtx.js.br +0 -0
  510. package/payload/server/public/assets/chunk-ICPOFSXX-PnsGrqtx.js.gz +0 -0
  511. package/payload/server/public/assets/chunk-K5T4RW27--g29_wjW.js.br +0 -0
  512. package/payload/server/public/assets/chunk-K5T4RW27--g29_wjW.js.gz +0 -0
  513. package/payload/server/public/assets/chunk-KGLVRYIC-CI77ENeO.js.br +0 -3
  514. package/payload/server/public/assets/chunk-KGLVRYIC-CI77ENeO.js.gz +0 -0
  515. package/payload/server/public/assets/chunk-LIHQZDEY-CE-XByg6.js.br +0 -0
  516. package/payload/server/public/assets/chunk-LIHQZDEY-CE-XByg6.js.gz +0 -0
  517. package/payload/server/public/assets/chunk-ORNJ4GCN-DkjJQQSm.js.br +0 -0
  518. package/payload/server/public/assets/chunk-ORNJ4GCN-DkjJQQSm.js.gz +0 -0
  519. package/payload/server/public/assets/chunk-OYMX7WX6-DhogFeD7.js.br +0 -0
  520. package/payload/server/public/assets/chunk-OYMX7WX6-DhogFeD7.js.gz +0 -0
  521. package/payload/server/public/assets/chunk-QZHKN3VN-DnqqL1de.js +0 -1
  522. package/payload/server/public/assets/chunk-QZHKN3VN-DnqqL1de.js.br +0 -0
  523. package/payload/server/public/assets/chunk-QZHKN3VN-DnqqL1de.js.gz +0 -0
  524. package/payload/server/public/assets/chunk-U2HBQHQK-CeaRXuiO.js.br +0 -0
  525. package/payload/server/public/assets/chunk-U2HBQHQK-CeaRXuiO.js.gz +0 -0
  526. package/payload/server/public/assets/chunk-X2U36JSP-BqxXeOqf.js.br +0 -0
  527. package/payload/server/public/assets/chunk-X2U36JSP-BqxXeOqf.js.gz +0 -0
  528. package/payload/server/public/assets/chunk-XPW4576I-DtqJwn2x.js.br +0 -0
  529. package/payload/server/public/assets/chunk-XPW4576I-DtqJwn2x.js.gz +0 -0
  530. package/payload/server/public/assets/chunk-YZCP3GAM-COBlEwQw.js.br +0 -0
  531. package/payload/server/public/assets/chunk-YZCP3GAM-COBlEwQw.js.gz +0 -0
  532. package/payload/server/public/assets/chunk-ZZ45TVLE-CcL088y6.js.br +0 -0
  533. package/payload/server/public/assets/chunk-ZZ45TVLE-CcL088y6.js.gz +0 -0
  534. package/payload/server/public/assets/classDiagram-6PBFFD2Q-Bc3P4dpc.js +0 -1
  535. package/payload/server/public/assets/classDiagram-6PBFFD2Q-Bc3P4dpc.js.br +0 -0
  536. package/payload/server/public/assets/classDiagram-6PBFFD2Q-Bc3P4dpc.js.gz +0 -0
  537. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-DgEF_rR_.js +0 -1
  538. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-DgEF_rR_.js.br +0 -0
  539. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-DgEF_rR_.js.gz +0 -0
  540. package/payload/server/public/assets/clock-Yqf7Ke7I.js +0 -1
  541. package/payload/server/public/assets/clock-Yqf7Ke7I.js.br +0 -0
  542. package/payload/server/public/assets/clock-Yqf7Ke7I.js.gz +0 -0
  543. package/payload/server/public/assets/clone-B3vq32j7.js +0 -1
  544. package/payload/server/public/assets/cose-bilkent-S5V4N54A-kEHVkDNn.js.br +0 -0
  545. package/payload/server/public/assets/cose-bilkent-S5V4N54A-kEHVkDNn.js.gz +0 -0
  546. package/payload/server/public/assets/dagre-D2wUw1zC.js.br +0 -0
  547. package/payload/server/public/assets/dagre-D2wUw1zC.js.gz +0 -0
  548. package/payload/server/public/assets/dagre-KV5264BT-BWfTDwEs.js.br +0 -0
  549. package/payload/server/public/assets/dagre-KV5264BT-BWfTDwEs.js.gz +0 -0
  550. package/payload/server/public/assets/data-RmnKj5nC.js +0 -1
  551. package/payload/server/public/assets/data-RmnKj5nC.js.br +0 -2
  552. package/payload/server/public/assets/data-RmnKj5nC.js.gz +0 -0
  553. package/payload/server/public/assets/diagram-5BDNPKRD-Tl9dS8w0.js.br +0 -0
  554. package/payload/server/public/assets/diagram-5BDNPKRD-Tl9dS8w0.js.gz +0 -0
  555. package/payload/server/public/assets/diagram-G4DWMVQ6-CeSe6TMu.js.br +0 -0
  556. package/payload/server/public/assets/diagram-G4DWMVQ6-CeSe6TMu.js.gz +0 -0
  557. package/payload/server/public/assets/diagram-MMDJMWI5-DYBNJCmk.js.br +0 -0
  558. package/payload/server/public/assets/diagram-MMDJMWI5-DYBNJCmk.js.gz +0 -0
  559. package/payload/server/public/assets/diagram-TYMM5635-BmpUGltx.js.br +0 -0
  560. package/payload/server/public/assets/diagram-TYMM5635-BmpUGltx.js.gz +0 -0
  561. package/payload/server/public/assets/erDiagram-SMLLAGMA-DuwuNGqx.js.br +0 -0
  562. package/payload/server/public/assets/erDiagram-SMLLAGMA-DuwuNGqx.js.gz +0 -0
  563. package/payload/server/public/assets/file-download-CiGklOfA.js.br +0 -0
  564. package/payload/server/public/assets/file-download-CiGklOfA.js.gz +0 -0
  565. package/payload/server/public/assets/file-text-XjJPULAZ.js.br +0 -0
  566. package/payload/server/public/assets/file-text-XjJPULAZ.js.gz +0 -0
  567. package/payload/server/public/assets/flatten-Bu-b1uTY.js.br +0 -0
  568. package/payload/server/public/assets/flatten-Bu-b1uTY.js.gz +0 -0
  569. package/payload/server/public/assets/flowDiagram-DWJPFMVM-Bpp8P6Ba.js.br +0 -0
  570. package/payload/server/public/assets/flowDiagram-DWJPFMVM-Bpp8P6Ba.js.gz +0 -0
  571. package/payload/server/public/assets/ganttDiagram-T4ZO3ILL-CE6ppjB4.js.br +0 -0
  572. package/payload/server/public/assets/ganttDiagram-T4ZO3ILL-CE6ppjB4.js.gz +0 -0
  573. package/payload/server/public/assets/gitGraph-7Q5UKJZL-B0OUwOUx.js +0 -1
  574. package/payload/server/public/assets/gitGraph-7Q5UKJZL-B0OUwOUx.js.br +0 -0
  575. package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-BdK1GjPr.js.br +0 -0
  576. package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-BdK1GjPr.js.gz +0 -0
  577. package/payload/server/public/assets/graph-BjHJ0z_6.js.br +0 -0
  578. package/payload/server/public/assets/graph-BjHJ0z_6.js.gz +0 -0
  579. package/payload/server/public/assets/graph-labels-D-0u37KA.js.br +0 -0
  580. package/payload/server/public/assets/graph-labels-D-0u37KA.js.gz +0 -0
  581. package/payload/server/public/assets/graphlib-CHEXylyU.js.br +0 -0
  582. package/payload/server/public/assets/graphlib-CHEXylyU.js.gz +0 -0
  583. package/payload/server/public/assets/info-OMHHGYJF-C_8TwPDe.js +0 -1
  584. package/payload/server/public/assets/info-OMHHGYJF-C_8TwPDe.js.br +0 -0
  585. package/payload/server/public/assets/infoDiagram-42DDH7IO-msfwyvbV.js +0 -2
  586. package/payload/server/public/assets/infoDiagram-42DDH7IO-msfwyvbV.js.br +0 -0
  587. package/payload/server/public/assets/infoDiagram-42DDH7IO-msfwyvbV.js.gz +0 -0
  588. package/payload/server/public/assets/isEmpty-CjH0UASp.js.br +0 -0
  589. package/payload/server/public/assets/isEmpty-CjH0UASp.js.gz +0 -0
  590. package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-CgkVZ4-3.js.br +0 -0
  591. package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-CgkVZ4-3.js.gz +0 -0
  592. package/payload/server/public/assets/journeyDiagram-VCZTEJTY-ByUPv8q6.js.br +0 -0
  593. package/payload/server/public/assets/journeyDiagram-VCZTEJTY-ByUPv8q6.js.gz +0 -0
  594. package/payload/server/public/assets/kanban-definition-6JOO6SKY-CFinqhpu.js.br +0 -0
  595. package/payload/server/public/assets/kanban-definition-6JOO6SKY-CFinqhpu.js.gz +0 -0
  596. package/payload/server/public/assets/line-Y4ns5Ghi.js.br +0 -0
  597. package/payload/server/public/assets/line-Y4ns5Ghi.js.gz +0 -0
  598. package/payload/server/public/assets/linear-l39GooQ5.js.br +0 -0
  599. package/payload/server/public/assets/linear-l39GooQ5.js.gz +0 -0
  600. package/payload/server/public/assets/maximize-2-BJ9S-nfS.js.br +0 -0
  601. package/payload/server/public/assets/maximize-2-BJ9S-nfS.js.gz +0 -0
  602. package/payload/server/public/assets/mermaid-parser.core-5w0T1dRj.js.br +0 -0
  603. package/payload/server/public/assets/mermaid-parser.core-5w0T1dRj.js.gz +0 -0
  604. package/payload/server/public/assets/mermaid.core-DBADY5VW.js.br +0 -0
  605. package/payload/server/public/assets/mermaid.core-DBADY5VW.js.gz +0 -0
  606. package/payload/server/public/assets/mindmap-definition-QFDTVHPH-rHz37loq.js.br +0 -0
  607. package/payload/server/public/assets/mindmap-definition-QFDTVHPH-rHz37loq.js.gz +0 -0
  608. package/payload/server/public/assets/operator-Cay4rOOK.js +0 -1
  609. package/payload/server/public/assets/operator-Cay4rOOK.js.br +0 -0
  610. package/payload/server/public/assets/operator-Cay4rOOK.js.gz +0 -0
  611. package/payload/server/public/assets/ordinal-D6D6WcTC.js.br +0 -0
  612. package/payload/server/public/assets/ordinal-D6D6WcTC.js.gz +0 -0
  613. package/payload/server/public/assets/packet-4T2RLAQJ-CCQdbIqO.js +0 -1
  614. package/payload/server/public/assets/packet-4T2RLAQJ-CCQdbIqO.js.br +0 -0
  615. package/payload/server/public/assets/page-Cci_j_y7.js +0 -32
  616. package/payload/server/public/assets/page-Cci_j_y7.js.br +0 -0
  617. package/payload/server/public/assets/page-Cci_j_y7.js.gz +0 -0
  618. package/payload/server/public/assets/page-shuh4ES9.js +0 -1
  619. package/payload/server/public/assets/page-shuh4ES9.js.br +0 -0
  620. package/payload/server/public/assets/page-shuh4ES9.js.gz +0 -0
  621. package/payload/server/public/assets/pdf-render-BSgBp8Fr.js.br +0 -0
  622. package/payload/server/public/assets/pdf-render-BSgBp8Fr.js.gz +0 -0
  623. package/payload/server/public/assets/pie-ZZUOXDRM-Bdw3Iqs7.js +0 -1
  624. package/payload/server/public/assets/pie-ZZUOXDRM-Bdw3Iqs7.js.br +0 -0
  625. package/payload/server/public/assets/pieDiagram-DEJITSTG-as0e_DSH.js.br +0 -0
  626. package/payload/server/public/assets/pieDiagram-DEJITSTG-as0e_DSH.js.gz +0 -0
  627. package/payload/server/public/assets/public-BbJcQGsO.js.br +0 -0
  628. package/payload/server/public/assets/public-BbJcQGsO.js.gz +0 -0
  629. package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-B4t8HO9J.js.br +0 -0
  630. package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-B4t8HO9J.js.gz +0 -0
  631. package/payload/server/public/assets/radar-PYXPWWZC-D3FUdA3r.js +0 -1
  632. package/payload/server/public/assets/radar-PYXPWWZC-D3FUdA3r.js.br +0 -0
  633. package/payload/server/public/assets/reduce-BtXXK8Ma.js.br +0 -0
  634. package/payload/server/public/assets/reduce-BtXXK8Ma.js.gz +0 -0
  635. package/payload/server/public/assets/requirementDiagram-MS252O5E-yxh30zHX.js.br +0 -0
  636. package/payload/server/public/assets/requirementDiagram-MS252O5E-yxh30zHX.js.gz +0 -0
  637. package/payload/server/public/assets/rotate-ccw-jeSVwUAv.js.br +0 -0
  638. package/payload/server/public/assets/rotate-ccw-jeSVwUAv.js.gz +0 -0
  639. package/payload/server/public/assets/routines-D3M1Wh3a.js.br +0 -0
  640. package/payload/server/public/assets/routines-D3M1Wh3a.js.gz +0 -0
  641. package/payload/server/public/assets/sankeyDiagram-XADWPNL6-j-k9Wfty.js.br +0 -0
  642. package/payload/server/public/assets/sankeyDiagram-XADWPNL6-j-k9Wfty.js.gz +0 -0
  643. package/payload/server/public/assets/sequenceDiagram-FGHM5R23-DGLgcLhC.js.br +0 -0
  644. package/payload/server/public/assets/sequenceDiagram-FGHM5R23-DGLgcLhC.js.gz +0 -0
  645. package/payload/server/public/assets/skills-Bhej2ub1.js.br +0 -0
  646. package/payload/server/public/assets/skills-Bhej2ub1.js.gz +0 -0
  647. package/payload/server/public/assets/stateDiagram-FHFEXIEX-C9p1OUMI.js.br +0 -0
  648. package/payload/server/public/assets/stateDiagram-FHFEXIEX-C9p1OUMI.js.gz +0 -0
  649. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-Bf808Apk.js +0 -1
  650. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-Bf808Apk.js.br +0 -0
  651. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-Bf808Apk.js.gz +0 -0
  652. package/payload/server/public/assets/tasks-qY-dtOI2.js +0 -1
  653. package/payload/server/public/assets/tasks-qY-dtOI2.js.br +0 -0
  654. package/payload/server/public/assets/tasks-qY-dtOI2.js.gz +0 -0
  655. package/payload/server/public/assets/time-entry-format-r5UY9rjG.js.br +0 -0
  656. package/payload/server/public/assets/time-entry-format-r5UY9rjG.js.gz +0 -0
  657. package/payload/server/public/assets/timeline-definition-GMOUNBTQ-B1g7pgkH.js.br +0 -0
  658. package/payload/server/public/assets/timeline-definition-GMOUNBTQ-B1g7pgkH.js.gz +0 -0
  659. package/payload/server/public/assets/treeView-SZITEDCU-DetKw0D0.js +0 -1
  660. package/payload/server/public/assets/treeView-SZITEDCU-DetKw0D0.js.br +0 -0
  661. package/payload/server/public/assets/treemap-W4RFUUIX-zQkIANxW.js +0 -1
  662. package/payload/server/public/assets/treemap-W4RFUUIX-zQkIANxW.js.br +0 -0
  663. package/payload/server/public/assets/triangle-alert--PCKaewD.js.br +0 -2
  664. package/payload/server/public/assets/triangle-alert--PCKaewD.js.gz +0 -0
  665. package/payload/server/public/assets/useCopyFeedback-Dg5lNgqH.js.br +0 -0
  666. package/payload/server/public/assets/useCopyFeedback-Dg5lNgqH.js.gz +0 -0
  667. package/payload/server/public/assets/useSubAccountSwitcher-BYfe9vj8.css +0 -1
  668. package/payload/server/public/assets/useSubAccountSwitcher-BYfe9vj8.css.br +0 -0
  669. package/payload/server/public/assets/useSubAccountSwitcher-BYfe9vj8.css.gz +0 -0
  670. package/payload/server/public/assets/useSubAccountSwitcher-CnpeWIYq.js +0 -14
  671. package/payload/server/public/assets/useSubAccountSwitcher-CnpeWIYq.js.br +0 -0
  672. package/payload/server/public/assets/useSubAccountSwitcher-CnpeWIYq.js.gz +0 -0
  673. package/payload/server/public/assets/useVoiceRecorder-BY6ZsGMH.js.br +0 -0
  674. package/payload/server/public/assets/useVoiceRecorder-BY6ZsGMH.js.gz +0 -0
  675. package/payload/server/public/assets/vennDiagram-DHZGUBPP-D2ZjFfh4.js.br +0 -0
  676. package/payload/server/public/assets/vennDiagram-DHZGUBPP-D2ZjFfh4.js.gz +0 -0
  677. package/payload/server/public/assets/wardley-RL74JXVD-DkQV3DvB.js +0 -1
  678. package/payload/server/public/assets/wardley-RL74JXVD-DkQV3DvB.js.br +0 -0
  679. package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-BFAhfkD8.js.br +0 -0
  680. package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-BFAhfkD8.js.gz +0 -0
  681. package/payload/server/public/assets/wrench-Bw1FMolk.js.br +0 -0
  682. package/payload/server/public/assets/wrench-Bw1FMolk.js.gz +0 -0
  683. package/payload/server/public/assets/xychartDiagram-5P7HB3ND-Dt94h2RQ.js.br +0 -0
  684. package/payload/server/public/assets/xychartDiagram-5P7HB3ND-Dt94h2RQ.js.gz +0 -0
  685. /package/payload/server/public/assets/{_baseFor-B12He5Rp.js → _baseFor-BApe6Tla.js} +0 -0
  686. /package/payload/server/public/assets/{_baseFor-B12He5Rp.js.br → _baseFor-BApe6Tla.js.br} +0 -0
  687. /package/payload/server/public/assets/{_baseFor-B12He5Rp.js.gz → _baseFor-BApe6Tla.js.gz} +0 -0
  688. /package/payload/server/public/assets/{array-DO1uCttT.js → array-eiH4WfvY.js} +0 -0
  689. /package/payload/server/public/assets/{array-DO1uCttT.js.br → array-eiH4WfvY.js.br} +0 -0
  690. /package/payload/server/public/assets/{cytoscape.esm-DFn2foqy.js → cytoscape.esm-BZ6NYo0w.js} +0 -0
  691. /package/payload/server/public/assets/{cytoscape.esm-DFn2foqy.js.br → cytoscape.esm-BZ6NYo0w.js.br} +0 -0
  692. /package/payload/server/public/assets/{cytoscape.esm-DFn2foqy.js.gz → cytoscape.esm-BZ6NYo0w.js.gz} +0 -0
  693. /package/payload/server/public/assets/{defaultLocale-ieI3yFoA.js → defaultLocale-DWHqsa6O.js} +0 -0
  694. /package/payload/server/public/assets/{defaultLocale-ieI3yFoA.js.br → defaultLocale-DWHqsa6O.js.br} +0 -0
  695. /package/payload/server/public/assets/{defaultLocale-ieI3yFoA.js.gz → defaultLocale-DWHqsa6O.js.gz} +0 -0
  696. /package/payload/server/public/assets/{dist-DlU7AEeD.js → dist-IoQuidkp.js} +0 -0
  697. /package/payload/server/public/assets/{dist-DlU7AEeD.js.br → dist-IoQuidkp.js.br} +0 -0
  698. /package/payload/server/public/assets/{dist-DlU7AEeD.js.gz → dist-IoQuidkp.js.gz} +0 -0
  699. /package/payload/server/public/assets/{init-BCRlEgNP.js → init-BdkYWjJJ.js} +0 -0
  700. /package/payload/server/public/assets/{init-BCRlEgNP.js.br → init-BdkYWjJJ.js.br} +0 -0
  701. /package/payload/server/public/assets/{init-BCRlEgNP.js.gz → init-BdkYWjJJ.js.gz} +0 -0
  702. /package/payload/server/public/assets/{katex-gkTaZgi6.js → katex-BCzoGtFh.js} +0 -0
  703. /package/payload/server/public/assets/{katex-gkTaZgi6.js.br → katex-BCzoGtFh.js.br} +0 -0
  704. /package/payload/server/public/assets/{katex-gkTaZgi6.js.gz → katex-BCzoGtFh.js.gz} +0 -0
  705. /package/payload/server/public/assets/{path-DTmzQFjQ.js → path-DY2qBuPM.js} +0 -0
  706. /package/payload/server/public/assets/{path-DTmzQFjQ.js.br → path-DY2qBuPM.js.br} +0 -0
  707. /package/payload/server/public/assets/{path-DTmzQFjQ.js.gz → path-DY2qBuPM.js.gz} +0 -0
  708. /package/payload/server/public/assets/{preload-helper-eAV8hweq.js → preload-helper-3YNEDsJZ.js} +0 -0
  709. /package/payload/server/public/assets/{preload-helper-eAV8hweq.js.br → preload-helper-3YNEDsJZ.js.br} +0 -0
  710. /package/payload/server/public/assets/{preload-helper-eAV8hweq.js.gz → preload-helper-3YNEDsJZ.js.gz} +0 -0
  711. /package/payload/server/public/assets/{rough.esm-BFJ-MgcB.js → rough.esm-ec8xsRC7.js} +0 -0
  712. /package/payload/server/public/assets/{rough.esm-BFJ-MgcB.js.br → rough.esm-ec8xsRC7.js.br} +0 -0
  713. /package/payload/server/public/assets/{rough.esm-BFJ-MgcB.js.gz → rough.esm-ec8xsRC7.js.gz} +0 -0
  714. /package/payload/server/public/assets/{src-9CNk4JU0.js → src-C-STKunZ.js} +0 -0
  715. /package/payload/server/public/assets/{src-9CNk4JU0.js.br → src-C-STKunZ.js.br} +0 -0
  716. /package/payload/server/public/assets/{src-9CNk4JU0.js.gz → src-C-STKunZ.js.gz} +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "email",
3
- "description": "Email — one or more dedicated email mailboxes per account, each addressable by a `mailbox` selector. Retrieval: email-graph-query for stored email-thread history as :ConversationArchive {source:'email'} with :Section chunks (recall, search, 'threads about X', 'what did Y send?'); email-read / email-search for live IMAP inbox previews (with best-effort per-archive section hints from the graph); email-fetch-body for the COMPLETE decoded body of one message (by uid or message_id) when a preview is not enough; email-fetch-attachment for the extracted TEXT of one attachment (PDF via pdftotext, text/* by decode) when data sits inside a file rather than the body. Ingestion (operator-initiated, human-in-the-loop): email-fetch lists new messages, email-ingest writes the operator-approved subset via the conversation-archive pipeline. Sending: email-send (new), email-reply (threaded — resolves the original via IMAP Message-ID search), email-draft (compose to the mailbox Drafts folder, unsent, for operator review; pass messageId for a threaded draft-reply), email-draft-edit (revise a stored draft, located by its Drafts UID or, when Gmail has renumbered it, its draft Message-ID), email-draft-send (dispatch a stored draft by Drafts UID, then remove it), email-draft-list (read the Drafts folder back and confirm what is actually in it — the only tool that can verify a draft's presence). Deleting: email-delete (move named UIDs from email-read/email-search to the mailbox Trash — recoverable, never an expunge). Config: email-provider-info (pre-password host + app-password lookup from an address alone), email-setup, email-signature-set (install the signature every email-draft then appends automatically — never hand-write a signature into a draft body), email-status, email-otp-extract.",
3
+ "description": "Email — one or more dedicated email mailboxes per account, each addressable by a `mailbox` selector. Retrieval: email-graph-query for stored email-thread history as :ConversationArchive {source:'email'} with :Section chunks (recall, search, 'threads about X', 'what did Y send?'); email-read / email-search for live IMAP inbox previews (with best-effort per-archive section hints from the graph); email-fetch-body for the COMPLETE decoded body of one message (by uid or message_id) when a preview is not enough; email-fetch-attachment for the extracted TEXT of one attachment (PDF via pdftotext, text/* by decode) when data sits inside a file rather than the body. Ingestion (operator-initiated, human-in-the-loop): email-fetch lists new messages, email-ingest writes the operator-approved subset via the conversation-archive pipeline. Sending: email-send (new), email-reply (threaded — resolves the original via IMAP Message-ID search), email-draft (compose to the mailbox Drafts folder, unsent, for operator review; pass messageId for a threaded draft-reply), email-draft-edit (revise a stored draft, located by its Drafts UID or, when Gmail has renumbered it, its draft Message-ID), email-draft-send (dispatch a stored draft by Drafts UID, then remove it), email-draft-list (read the Drafts folder back and confirm what is actually in it — the only tool that can verify a draft's presence). Deleting: email-delete (move named UIDs from email-read/email-search to the mailbox Trash — recoverable, never an expunge). Config: email-provider-info (pre-password host + app-password lookup from an address alone), email-setup, email-signature-set (install the signature every email-draft then appends automatically — never hand-write a signature into a draft body), email-sending-identity-set (designate which attached mailbox this account sends from, so a send or draft that names no mailbox resolves it from the account instead of being refused), email-status, email-otp-extract.",
4
4
  "version": "0.1.0",
5
5
  "author": {
6
6
  "name": "Rubytech LLC"
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: email
3
- description: "Email — one or more dedicated email mailboxes per account, each addressable by a `mailbox` selector. Retrieval: email-graph-query for stored email-thread history as :ConversationArchive {source:'email'} with :Section chunks (recall, search, 'threads about X', 'what did Y send?'); email-read / email-search for live IMAP inbox previews (with best-effort per-archive section hints from the graph); email-fetch-body for the COMPLETE decoded body of one message (by uid or message_id) when a preview is not enough; email-fetch-attachment for the extracted TEXT of one attachment (PDF via pdftotext, text/* by decode) when data sits inside a file rather than the body. Ingestion (operator-initiated, human-in-the-loop): email-fetch lists new messages, email-ingest writes the operator-approved subset via the conversation-archive pipeline. Sending: email-send (new), email-reply (threaded — resolves the original via IMAP Message-ID search), email-draft (compose to the mailbox Drafts folder, unsent, for operator review; pass messageId for a threaded draft-reply), email-draft-edit (revise a stored draft, located by its Drafts UID or, when Gmail has renumbered it, its draft Message-ID), email-draft-send (dispatch a stored draft by Drafts UID, then remove it), email-draft-list (read the Drafts folder back and confirm what is actually in it — the only tool that can verify a draft's presence). Deleting: email-delete (move named UIDs from email-read/email-search to the mailbox Trash — recoverable, never an expunge). Config: email-provider-info (pre-password host + app-password lookup from an address alone), email-setup, email-signature-set (install the signature every email-draft then appends automatically — never hand-write a signature into a draft body), email-status, email-otp-extract."
3
+ description: "Email — one or more dedicated email mailboxes per account, each addressable by a `mailbox` selector. Retrieval: email-graph-query for stored email-thread history as :ConversationArchive {source:'email'} with :Section chunks (recall, search, 'threads about X', 'what did Y send?'); email-read / email-search for live IMAP inbox previews (with best-effort per-archive section hints from the graph); email-fetch-body for the COMPLETE decoded body of one message (by uid or message_id) when a preview is not enough; email-fetch-attachment for the extracted TEXT of one attachment (PDF via pdftotext, text/* by decode) when data sits inside a file rather than the body. Ingestion (operator-initiated, human-in-the-loop): email-fetch lists new messages, email-ingest writes the operator-approved subset via the conversation-archive pipeline. Sending: email-send (new), email-reply (threaded — resolves the original via IMAP Message-ID search), email-draft (compose to the mailbox Drafts folder, unsent, for operator review; pass messageId for a threaded draft-reply), email-draft-edit (revise a stored draft, located by its Drafts UID or, when Gmail has renumbered it, its draft Message-ID), email-draft-send (dispatch a stored draft by Drafts UID, then remove it), email-draft-list (read the Drafts folder back and confirm what is actually in it — the only tool that can verify a draft's presence). Deleting: email-delete (move named UIDs from email-read/email-search to the mailbox Trash — recoverable, never an expunge). Config: email-provider-info (pre-password host + app-password lookup from an address alone), email-setup, email-signature-set (install the signature every email-draft then appends automatically — never hand-write a signature into a draft body), email-sending-identity-set (designate which attached mailbox this account sends from, so a send or draft that names no mailbox resolves it from the account instead of being refused), email-status, email-otp-extract."
4
4
  tools:
5
5
  - name: email-provider-info
6
6
  publicAllowlist: false
@@ -14,6 +14,10 @@ tools:
14
14
  publicAllowlist: false
15
15
  adminAllowlist: false
16
16
  riskClass: write_local
17
+ - name: email-sending-identity-set
18
+ publicAllowlist: false
19
+ adminAllowlist: false
20
+ riskClass: write_local
17
21
  - name: email-read
18
22
  publicAllowlist: false
19
23
  adminAllowlist: false
@@ -106,13 +110,14 @@ Manages the agent's own dedicated email account — IMAP for reading, SMTP for s
106
110
 
107
111
  **Login vs alias — the default recipient set.** A config carries two addresses. `email` is the IMAP login: the address you authenticate as, and an address this mailbox owns. `agentAddress` is an *additional* alias to surface (often a per-agent address on a shared catch-all mailbox). When they differ, `email-read`, `email-search`, `email-otp-extract`, and `email-fetch` default to surfacing mail whose **To or Cc** carries **either** address — not the alias alone — because replies commonly arrive at the login address, and a reply or multi-party thread routinely Cc's the alias rather than To'ing it (a proposal sent from `info@` is answered to `info@`, not the `maxy@` alias; a thread copies `maxy@` on Cc). When no distinct alias is configured, no recipient filter is applied. Pass an explicit `to=` to narrow to a single address. Whenever the default filter hides messages from the fetched window, `email-read`/`email-search` append a `Recipient filter: kept N, hid M (to ∈ {…}); pass to="…" to change.` line — including when every message was hidden — so "I can't see it" is never indistinguishable from "it isn't there". `email-fetch` has no tool-output filter line; its kept-vs-hidden split is recorded in the stderr `diag("fetchSinceUid", "filter applied", …)` log instead.
108
112
 
109
- **Multiple mailboxes.** An account holds any number of mailboxes at once. Each is its own `:EmailAccount` node keyed by `(accountId, email)`, and `email-setup` adds one without touching the others (no destructive re-point to act on a second inbox). Every operational tool takes an optional `mailbox` argument naming which configured mailbox to act on. Resolution order: the named mailbox if given; the single configured mailbox when only one exists (so single-mailbox installs pass nothing); otherwise the call is refused with a line listing the stored mailbox identities, so the agent picks one rather than guessing an address. The poll high-water mark and the pending fetch/ingest batch are per-mailbox. `email-status` lists every attached mailbox.
113
+ **Multiple mailboxes.** An account holds any number of mailboxes at once. Each is its own `:EmailAccount` node keyed by `(accountId, email)`, and `email-setup` adds one without touching the others (no destructive re-point to act on a second inbox). Every operational tool takes an optional `mailbox` argument naming which configured mailbox to act on. Resolution order: the named mailbox if given; the single configured mailbox when only one exists (so single-mailbox installs pass nothing); the mailbox designated as the account's **sending identity** when two or more exist and none was named; otherwise the call is refused with a line listing the stored mailbox identities and naming `email-sending-identity-set`, so the account is given an answer rather than the caller guessing an address. Exactly one mailbox carries the designation — the setter clears every sibling in the same write — and a graph holding two is refused naming both rather than one being elected. The poll high-water mark and the pending fetch/ingest batch are per-mailbox. `email-status` lists every attached mailbox.
110
114
 
111
115
  ## Capabilities
112
116
 
113
117
  - **Provider lookup:** `email-provider-info` — given just an email address, returns the inferred IMAP/SMTP hosts and the provider's app-password / trusted-application / IMAP-enable requirement, deterministically from the provider map. Call this BEFORE soliciting a password so the requirement is relayed first; most providers reject the normal login password. Returns "unknown" (operator supplies hosts) or "unsupported" (provider blocks IMAP/SMTP, e.g. Tuta).
114
118
  - **Setup:** `email-setup` — collect credentials in plain chat and connect IMAP/SMTP. Hosts are auto-inferred for known providers; supports alias addresses (`agentAddress`). For hosts where the client-visible Drafts folder is not the one flagged `\Drafts`, pass `draftsFolder` to name it explicitly (e.g. `INBOX.Drafts`).
115
- - **Signature:** `email-signature-set` — install the account's signature into the three files `email-draft` already reads at the account root (`email-signature.txt`, `.html`, `.font`). Plain text and HTML are stored and appended byte-for-byte; `font` is one CSS font-family value that wraps the HTML body and has no plain-text effect. **A part you omit is removed**, so a text-only call clears a stale HTML signature rather than leaving it to keep being appended; pass every part you want to keep on each call. A call with no parts at all is refused rather than treated as "erase everything". Because the append is deterministic and happens on every draft, a signature must never be written into a draft body by hand — that duplicates the stored one and drifts from it. Pass the operator's real signature read from its source of truth; reconstructing markup from memory or from stripped graph text is what put a dead logo URL into a client draft. Account-scoped, no `mailbox` selector: one signature per account.
119
+ - **Signature:** `email-signature-set` — install the account's signature into the three files `email-draft` already reads at the account root (`email-signature.txt`, `.html`, `.font`). Plain text and HTML are stored and appended byte-for-byte; `font` is one CSS font-family value that wraps the HTML body and has no plain-text effect. A stored HTML signature lands on every draft, including one composed with no HTML body: the plugin derives an HTML body from the plain text (escaped, blank line to paragraph, single newline to line break) so the branded signature has somewhere to go, which makes that draft `multipart/alternative`. An account with no stored HTML signature derives nothing and its drafts stay `text/plain`. **A part you omit is removed**, so a text-only call clears a stale HTML signature rather than leaving it to keep being appended; pass every part you want to keep on each call. A call with no parts at all is refused rather than treated as "erase everything". Because the append is deterministic and happens on every draft, a signature must never be written into a draft body by hand — that duplicates the stored one and drifts from it. Pass the operator's real signature read from its source of truth; reconstructing markup from memory or from stripped graph text is what put a dead logo URL into a client draft. Account-scoped, no `mailbox` selector: one signature per account.
120
+ - **Sending identity:** `email-sending-identity-set` — designate which attached mailbox is the account's own outbound address. Afterwards an `email-draft`, `email-send` or `email-reply` that names no `mailbox` composes from it, instead of being refused with a list of addresses. Exactly one mailbox carries the designation: the call clears it from every sibling in the same write, so uniqueness is a property of the write rather than of a later check. The address comes from the operator, never from inference — a routing rule, a signature or an inbound trigger names an address for a different purpose, and reading one of those as the sending address is what put a mailbox the operator never sends from into a draft brief. Re-running `email-setup` on a designated mailbox preserves the designation. `email-status` reports which mailbox holds it, and says so when a multi-mailbox account has none.
116
121
  - **Read inbox:** `email-read` — metadata only (UID, sender, subject, date), plus a best-effort `Archive`/`Archive-Section` hint when the IMAP message's `receivedAt` falls inside a stored `:ConversationArchive {source:'email'}` section, plus an `Attachments (N): filename (mime, size); …` footer when the message carries enclosures. Supports pagination (`before_uid`), folders (`inbox`/`sent`), filtering by sender/date/subject. Metadata is derived from IMAP `bodyStructure` — no bytes downloaded.
117
122
  - **Search inbox:** `email-search` — live IMAP search by sender, subject, body keyword, date range. Same per-archive hint and attachment footer as `email-read`.
118
123
  - **Delete (move to Trash):** `email-delete` — move the messages named by `uids` (from a prior `email-read`/`email-search`, scoped to a source `folder` of `inbox` or `sent`) into the mailbox's Trash folder. **Recoverable, never an expunge** — the message leaves the inbox and permanent removal is left to the operator's own mail client or the provider's Trash auto-purge; this tool never permanently deletes. Trash is resolved per provider: the `\Trash` special-use folder if advertised, else the first existing of `Trash`, `[Gmail]/Trash`, `Deleted Items`, `Deleted Messages`. `Junk` is never treated as Trash. A mailbox with no resolvable Trash yields a typed error and moves nothing — there is no silent expunge fallback. A `uid` that is already gone is counted not-moved without failing the rest; the result reports `Moved N of M message(s) to <Trash>`. It deletes only the UIDs you name, never by search criteria.
@@ -32,22 +32,79 @@ describe('Task 1952 — composeDraft applies signature', () => {
32
32
  expect(text).toContain('Quote attached.');
33
33
  expect(text).toMatch(/Regards,\r?\nDale/);
34
34
  });
35
- it('logs applied=true with the account id prefix and asset path', async () => {
35
+ it('logs the per-part flags with the account id prefix and asset path', async () => {
36
36
  writeFileSync(join(accountDir, 'email-signature.txt'), 'Regards,\nDale');
37
37
  const err = vi.spyOn(console, 'error').mockImplementation(() => { });
38
38
  await composeDraft(config, 'pw', accountId, { to: 'x@y.test', subject: 'Hi', body: 'Body.' });
39
39
  const line = err.mock.calls.map((c) => String(c[0])).find((s) => s.includes('op=signature'));
40
40
  expect(line).toContain('accountId=gls12345');
41
- expect(line).toContain('applied=true');
41
+ expect(line).toContain('text=true');
42
+ expect(line).toContain('html=false');
43
+ expect(line).toContain('derivedHtml=false');
44
+ expect(line).not.toMatch(/\bapplied=/);
42
45
  expect(line).toContain(join(accountDir, 'email-signature'));
43
46
  err.mockRestore();
44
47
  });
45
- it('logs applied=false when no signature file is present', async () => {
48
+ it('logs all three false when no signature file is present', async () => {
46
49
  const err = vi.spyOn(console, 'error').mockImplementation(() => { });
47
50
  await composeDraft(config, 'pw', accountId, { to: 'x@y.test', subject: 'Hi', body: 'Body.' });
48
51
  const line = err.mock.calls.map((c) => String(c[0])).find((s) => s.includes('op=signature'));
49
- expect(line).toContain('applied=false');
52
+ expect(line).toContain('text=false');
53
+ expect(line).toContain('html=false');
54
+ expect(line).toContain('derivedHtml=false');
50
55
  err.mockRestore();
51
56
  });
52
57
  });
58
+ describe('Task 2193 — a stored HTML signature reaches a draft composed without an HTML body', () => {
59
+ let root = '';
60
+ let accountDir = '';
61
+ const accountId = 'gls12345-aaaa';
62
+ const saved = { ...process.env };
63
+ beforeEach(() => {
64
+ root = realpathSync(mkdtempSync(join(tmpdir(), 'cmp-')));
65
+ const platformRoot = join(root, 'platform');
66
+ mkdirSync(platformRoot, { recursive: true });
67
+ accountDir = join(root, 'data', 'accounts', accountId);
68
+ mkdirSync(accountDir, { recursive: true });
69
+ process.env.PLATFORM_ROOT = platformRoot;
70
+ delete process.env.ACCOUNT_DIR;
71
+ });
72
+ afterEach(() => {
73
+ process.env = { ...saved };
74
+ if (root)
75
+ rmSync(root, { recursive: true, force: true });
76
+ });
77
+ it('composes multipart/alternative carrying the html signature, and reports all three flags', async () => {
78
+ writeFileSync(join(accountDir, 'email-signature.txt'), 'Regards,\nDale');
79
+ writeFileSync(join(accountDir, 'email-signature.html'), '<table><tr><td>WORDMARK</td></tr></table>');
80
+ const err = vi.spyOn(console, 'error').mockImplementation(() => { });
81
+ const { raw, textApplied, htmlApplied, derivedHtml } = await composeDraft(config, 'pw', accountId, {
82
+ to: 'x@y.test', subject: 'Hi', body: 'Quote attached.',
83
+ });
84
+ const line = err.mock.calls.map((c) => String(c[0])).find((s) => s.includes('op=signature'));
85
+ err.mockRestore();
86
+ expect(line).toContain('text=true');
87
+ expect(line).toContain('html=true');
88
+ expect(line).toContain('derivedHtml=true');
89
+ expect({ textApplied, htmlApplied, derivedHtml }).toEqual({
90
+ textApplied: true, htmlApplied: true, derivedHtml: true,
91
+ });
92
+ const mime = raw.toString('utf8');
93
+ expect(mime).toContain('multipart/alternative');
94
+ expect(mime).toContain('WORDMARK');
95
+ expect(mime).toMatch(/Regards,\r?\nDale/);
96
+ });
97
+ it('a .txt-only account still composes a text/plain draft with no html part', async () => {
98
+ writeFileSync(join(accountDir, 'email-signature.txt'), 'Regards,\nDale');
99
+ const { raw, htmlApplied, derivedHtml } = await composeDraft(config, 'pw', accountId, {
100
+ to: 'x@y.test', subject: 'Hi', body: 'Quote attached.',
101
+ });
102
+ expect(htmlApplied).toBe(false);
103
+ expect(derivedHtml).toBe(false);
104
+ const mime = raw.toString('utf8');
105
+ expect(mime).toContain('text/plain');
106
+ expect(mime).not.toContain('multipart/alternative');
107
+ expect(mime).not.toContain('text/html');
108
+ });
109
+ });
53
110
  //# sourceMappingURL=compose-signature.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compose-signature.test.js","sourceRoot":"","sources":["../../src/__tests__/compose-signature.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compose-signature.test.js","sourceRoot":"","sources":["../../src/__tests__/compose-signature.test.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,9 @@ const { composeMock, replaceMock } = vi.hoisted(() => ({
6
6
  threadedParentId: null,
7
7
  draftMessageId: "<new-draft@x>",
8
8
  attachments: [],
9
+ textApplied: false,
10
+ htmlApplied: false,
11
+ derivedHtml: false,
9
12
  })),
10
13
  replaceMock: vi.fn(async () => ({
11
14
  folder: "Drafts",
@@ -33,6 +36,9 @@ describe("Task 819 — email-draft-edit", () => {
33
36
  threadedParentId: null,
34
37
  draftMessageId: "<new-draft@x>",
35
38
  attachments: [],
39
+ textApplied: false,
40
+ htmlApplied: false,
41
+ derivedHtml: false,
36
42
  });
37
43
  replaceMock.mockResolvedValue({
38
44
  folder: "Drafts",
@@ -58,6 +64,38 @@ describe("Task 819 — email-draft-edit", () => {
58
64
  expect(text).toContain("99");
59
65
  expect(text).toMatch(/unsent/); // a revise never dispatches
60
66
  });
67
+ // Task 2193 — composeDraft is mocked here, which is the right seam: what this
68
+ // tool owns is rendering the flags it is handed, identically to email-draft.
69
+ it("states which signature parts landed, from the flags composeDraft reports", async () => {
70
+ composeMock.mockResolvedValueOnce({
71
+ raw: Buffer.from("MIME"),
72
+ resolvedSubject: "Re: Quote",
73
+ threadedParentId: null,
74
+ draftMessageId: "<new-draft@x>",
75
+ attachments: [],
76
+ textApplied: true,
77
+ htmlApplied: true,
78
+ derivedHtml: true,
79
+ });
80
+ const text = await emailDraftEdit({
81
+ accountId: "acc-1",
82
+ targetUid: 5,
83
+ to: "c@d.e",
84
+ subject: "Quote",
85
+ body: "Revised body.",
86
+ });
87
+ expect(text).toContain("Signature: plain text and HTML (body derived from the plain text) applied.");
88
+ });
89
+ it("reports a bare account the same way email-draft does", async () => {
90
+ const text = await emailDraftEdit({
91
+ accountId: "acc-1",
92
+ targetUid: 5,
93
+ to: "c@d.e",
94
+ subject: "Quote",
95
+ body: "Revised body.",
96
+ });
97
+ expect(text).toContain("Signature: none stored for this account.");
98
+ });
61
99
  it("passes the prior draft Message-ID to replaceDraft for relocation", async () => {
62
100
  await emailDraftEdit({
63
101
  accountId: "acc-1",
@@ -106,6 +144,9 @@ describe("Task 819 — email-draft-edit", () => {
106
144
  threadedParentId: "<parent@x>",
107
145
  draftMessageId: "<new-draft@x>",
108
146
  attachments: [],
147
+ textApplied: false,
148
+ htmlApplied: false,
149
+ derivedHtml: false,
109
150
  });
110
151
  const text = await emailDraftEdit({
111
152
  accountId: "acc-1",
@@ -1 +1 @@
1
- {"version":3,"file":"email-draft-edit.test.js","sourceRoot":"","sources":["../../src/__tests__/email-draft-edit.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"email-draft-edit.test.js","sourceRoot":"","sources":["../../src/__tests__/email-draft-edit.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9D,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACrD,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAC9B,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACxB,eAAe,EAAE,WAAW;QAC5B,gBAAgB,EAAE,IAAqB;QACvC,cAAc,EAAE,eAAe;QAC/B,WAAW,EAAE,EAA+C;QAC5D,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,KAAK;KACnB,CAAC,CAAC;IACH,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAC9B,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,CAAC;QACT,MAAM,EAAE,EAAmB;QAC3B,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,KAAK;QACd,UAAU,EAAE,SAAgE;KAC7E,CAAC,CAAC;CACJ,CAAC,CAAC,CAAC;AACJ,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;AACpE,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;AACjE,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE,CAAC,CAAC;IACtC,eAAe,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAClC,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KACnF,CAAC,CAAC;CACJ,CAAC,CAAC,CAAC;AAEJ,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,WAAW,CAAC,iBAAiB,CAAC;YAC5B,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;YACxB,eAAe,EAAE,WAAW;YAC5B,gBAAgB,EAAE,IAAI;YACtB,cAAc,EAAE,eAAe;YAC/B,WAAW,EAAE,EAAE;YACf,WAAW,EAAE,KAAK;YAClB,WAAW,EAAE,KAAK;YAClB,WAAW,EAAE,KAAK;SACnB,CAAC,CAAC;QACH,WAAW,CAAC,iBAAiB,CAAC;YAC5B,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,SAAS;SACtB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+EAA+E,EAAE,KAAK,IAAI,EAAE;QAC7F,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC;YAChC,SAAS,EAAE,OAAO;YAClB,SAAS,EAAE,CAAC;YACZ,EAAE,EAAE,OAAO;YACX,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,eAAe;SACtB,CAAC,CAAC;QACH,MAAM,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,WAAW,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;QAC/F,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,4BAA4B;IAC9D,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,6EAA6E;IAC7E,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;QACxF,WAAW,CAAC,qBAAqB,CAAC;YAChC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;YACxB,eAAe,EAAE,WAAW;YAC5B,gBAAgB,EAAE,IAAI;YACtB,cAAc,EAAE,eAAe;YAC/B,WAAW,EAAE,EAAE;YACf,WAAW,EAAE,IAAI;YACjB,WAAW,EAAE,IAAI;YACjB,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC;YAChC,SAAS,EAAE,OAAO;YAClB,SAAS,EAAE,CAAC;YACZ,EAAE,EAAE,OAAO;YACX,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,eAAe;SACtB,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CACpB,4EAA4E,CAC7E,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC;YAChC,SAAS,EAAE,OAAO;YAClB,SAAS,EAAE,CAAC;YACZ,EAAE,EAAE,OAAO;YACX,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,eAAe;SACtB,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,0CAA0C,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,MAAM,cAAc,CAAC;YACnB,SAAS,EAAE,OAAO;YAClB,SAAS,EAAE,CAAC;YACZ,EAAE,EAAE,OAAO;YACX,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,IAAI;YACV,cAAc,EAAE,eAAe;SAChC,CAAC,CAAC;QACH,MAAM,CAAC,WAAW,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC,CAAC;IAC5G,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;QACpF,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC;YAChC,SAAS,EAAE,OAAO;YAClB,SAAS,EAAE,CAAC;YACZ,EAAE,EAAE,OAAO;YACX,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACnF,WAAW,CAAC,qBAAqB,CAAC;YAChC,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,eAAe;SAC5B,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC;YAChC,SAAS,EAAE,OAAO;YAClB,SAAS,EAAE,CAAC;YACZ,EAAE,EAAE,OAAO;YACX,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,IAAI;YACV,cAAc,EAAE,eAAe;SAChC,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;QAC/E,WAAW,CAAC,qBAAqB,CAAC;YAChC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;YACxB,eAAe,EAAE,WAAW;YAC5B,gBAAgB,EAAE,YAAY;YAC9B,cAAc,EAAE,eAAe;YAC/B,WAAW,EAAE,EAAE;YACf,WAAW,EAAE,KAAK;YAClB,WAAW,EAAE,KAAK;YAClB,WAAW,EAAE,KAAK;SACnB,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC;YAChC,SAAS,EAAE,OAAO;YAClB,SAAS,EAAE,CAAC;YACZ,EAAE,EAAE,OAAO;YACX,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,YAAY;SACxB,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;QACxF,WAAW,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC,CAAC;QACxF,MAAM,MAAM,CACV,cAAc,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CACrG,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACpC,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,WAAW,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACzE,MAAM,MAAM,CACV,cAAc,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAC9F,CAAC,OAAO,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,4 +1,7 @@
1
- import { beforeEach, describe, expect, it, vi } from "vitest";
1
+ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
2
+ import { mkdtempSync, mkdirSync, writeFileSync, rmSync, realpathSync } from "node:fs";
3
+ import { join } from "node:path";
4
+ import { tmpdir } from "node:os";
2
5
  const { appendDraftMock, sendEmailMock, fetchEnvMock } = vi.hoisted(() => ({
3
6
  appendDraftMock: vi.fn(async () => ({ folder: "[Gmail]/Drafts", uid: 27675 })),
4
7
  sendEmailMock: vi.fn(),
@@ -138,4 +141,47 @@ describe("Task 818 — threaded draft via messageId", () => {
138
141
  expect(appendDraftMock).not.toHaveBeenCalled();
139
142
  });
140
143
  });
144
+ describe("Task 2193 — the draft result names the signature parts", () => {
145
+ // composeDraft is real here (only imap/smtp/credentials are mocked), so the
146
+ // signature is read from a real account directory: accountDirFor resolves
147
+ // PLATFORM_ROOT/../data/accounts/<accountId>.
148
+ let root = "";
149
+ let accountDir = "";
150
+ const accountId = "sig2193-aaaa";
151
+ const saved = { ...process.env };
152
+ beforeEach(() => {
153
+ vi.clearAllMocks();
154
+ root = realpathSync(mkdtempSync(join(tmpdir(), "draft-sig-")));
155
+ const platformRoot = join(root, "platform");
156
+ mkdirSync(platformRoot, { recursive: true });
157
+ accountDir = join(root, "data", "accounts", accountId);
158
+ mkdirSync(accountDir, { recursive: true });
159
+ process.env.PLATFORM_ROOT = platformRoot;
160
+ delete process.env.ACCOUNT_DIR;
161
+ });
162
+ afterEach(() => {
163
+ process.env = { ...saved };
164
+ if (root)
165
+ rmSync(root, { recursive: true, force: true });
166
+ });
167
+ it("names both parts, and says the html body was derived, when both files are stored", async () => {
168
+ writeFileSync(join(accountDir, "email-signature.txt"), "Regards,\nDale");
169
+ writeFileSync(join(accountDir, "email-signature.html"), "<table><tr><td>WORDMARK</td></tr></table>");
170
+ const out = await emailDraft({ accountId, to: "x@y.test", subject: "Hi", body: "Body." });
171
+ expect(out).toContain("Signature: plain text and HTML (body derived from the plain text) applied.");
172
+ const [, , raw] = appendDraftMock.mock.calls[0];
173
+ expect(raw.toString()).toContain("WORDMARK");
174
+ });
175
+ it("says no HTML signature is stored on a text-only account, and appends no html part", async () => {
176
+ writeFileSync(join(accountDir, "email-signature.txt"), "Regards,\nDale");
177
+ const out = await emailDraft({ accountId, to: "x@y.test", subject: "Hi", body: "Body." });
178
+ expect(out).toContain("Signature: plain text applied. No HTML signature is stored.");
179
+ const [, , raw] = appendDraftMock.mock.calls[0];
180
+ expect(raw.toString()).not.toContain("text/html");
181
+ });
182
+ it("says none stored when the account has no signature", async () => {
183
+ const out = await emailDraft({ accountId, to: "x@y.test", subject: "Hi", body: "Body." });
184
+ expect(out).toContain("Signature: none stored for this account.");
185
+ });
186
+ });
141
187
  //# sourceMappingURL=email-draft.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"email-draft.test.js","sourceRoot":"","sources":["../../src/__tests__/email-draft.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"email-draft.test.js","sourceRoot":"","sources":["../../src/__tests__/email-draft.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=email-sending-identity-set.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-sending-identity-set.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/email-sending-identity-set.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,184 @@
1
+ import { describe, it, expect, beforeEach, afterEach, vi } from "vitest";
2
+ import neo4j from "neo4j-driver";
3
+ // Mocked graph. The write is one statement whose shape the plugin owns, so the
4
+ // mock recognises it by the FOREACH clause and applies the same semantics Neo4j
5
+ // would: designate the target, clear every sibling, report both counts. Every
6
+ // other query falls through to the read filter, which is what listConfigs and
7
+ // readConfig use.
8
+ const graphState = vi.hoisted(() => ({ accounts: [] }));
9
+ vi.mock("../lib/neo4j.js", () => ({
10
+ getSession: () => ({
11
+ run: async (query, params) => {
12
+ if (query.includes("FOREACH (s IN stale")) {
13
+ const mailboxes = graphState.accounts.filter((a) => a.accountId === params.accountId);
14
+ const targets = mailboxes.filter((a) => a.email === params.email);
15
+ // Mirrors the statement's `x.sendingIdentity = true`: a sibling holding
16
+ // a stored false never held the designation, so it is neither cleared
17
+ // nor counted.
18
+ const stale = mailboxes.filter((a) => a.email !== params.email && a.sendingIdentity === true);
19
+ for (const t of targets)
20
+ t.sendingIdentity = true;
21
+ for (const s of stale)
22
+ delete s.sendingIdentity;
23
+ // The real statement aggregates with collect(), so it returns exactly
24
+ // one row whatever the account holds — including an account with no
25
+ // mailbox at all, where both counts are 0.
26
+ const row = {
27
+ designated: targets.length,
28
+ cleared: stale.length,
29
+ };
30
+ return { records: [{ get: (k) => neo4j.int(row[k]) }] };
31
+ }
32
+ let rows = graphState.accounts.filter((a) => a.accountId === params.accountId);
33
+ if (params.email !== undefined)
34
+ rows = rows.filter((a) => a.email === params.email);
35
+ return { records: rows.map((a) => ({ get: () => ({ properties: a }) })) };
36
+ },
37
+ close: async () => { },
38
+ }),
39
+ }));
40
+ function acct(accountId, email) {
41
+ return {
42
+ accountId, email, agentAddress: email,
43
+ imapHost: "imap.x.com", imapPort: neo4j.int(993), imapSecurity: "tls",
44
+ smtpHost: "smtp.x.com", smtpPort: neo4j.int(587), smtpSecurity: "starttls",
45
+ };
46
+ }
47
+ const designated = () => graphState.accounts.filter((a) => a.sendingIdentity === true).map((a) => a.email);
48
+ beforeEach(() => {
49
+ graphState.accounts = [];
50
+ });
51
+ afterEach(() => {
52
+ vi.restoreAllMocks();
53
+ });
54
+ describe("Task 2194 — writeSendingIdentity", () => {
55
+ it("designates one mailbox and clears the two siblings that carried the flag", async () => {
56
+ graphState.accounts = [
57
+ { ...acct("acct1", "a@x.com"), sendingIdentity: true },
58
+ { ...acct("acct1", "b@x.com"), sendingIdentity: true },
59
+ acct("acct1", "c@x.com"),
60
+ ];
61
+ const { writeSendingIdentity } = await import("../lib/credentials.js");
62
+ const cleared = await writeSendingIdentity("acct1", "c@x.com");
63
+ expect(cleared).toBe(2);
64
+ expect(designated()).toEqual(["c@x.com"]);
65
+ });
66
+ it("designates the first mailbox on an account where none carried the flag", async () => {
67
+ graphState.accounts = [
68
+ acct("acct1", "a@x.com"),
69
+ acct("acct1", "b@x.com"),
70
+ acct("acct1", "c@x.com"),
71
+ ];
72
+ const { writeSendingIdentity } = await import("../lib/credentials.js");
73
+ expect(await writeSendingIdentity("acct1", "b@x.com")).toBe(0);
74
+ expect(designated()).toEqual(["b@x.com"]);
75
+ });
76
+ it("leaves exactly one designated after a second call on a different mailbox", async () => {
77
+ graphState.accounts = [
78
+ acct("acct1", "a@x.com"),
79
+ acct("acct1", "b@x.com"),
80
+ acct("acct1", "c@x.com"),
81
+ ];
82
+ const { writeSendingIdentity } = await import("../lib/credentials.js");
83
+ await writeSendingIdentity("acct1", "b@x.com");
84
+ expect(await writeSendingIdentity("acct1", "c@x.com")).toBe(1);
85
+ expect(designated()).toEqual(["c@x.com"]);
86
+ });
87
+ it("is idempotent: re-designating the same mailbox clears nothing", async () => {
88
+ graphState.accounts = [acct("acct1", "a@x.com"), acct("acct1", "b@x.com")];
89
+ const { writeSendingIdentity } = await import("../lib/credentials.js");
90
+ await writeSendingIdentity("acct1", "b@x.com");
91
+ expect(await writeSendingIdentity("acct1", "b@x.com")).toBe(0);
92
+ expect(designated()).toEqual(["b@x.com"]);
93
+ });
94
+ it("never touches another account's mailboxes", async () => {
95
+ graphState.accounts = [
96
+ { ...acct("acct2", "other@x.com"), sendingIdentity: true },
97
+ acct("acct1", "a@x.com"),
98
+ acct("acct1", "b@x.com"),
99
+ ];
100
+ const { writeSendingIdentity } = await import("../lib/credentials.js");
101
+ expect(await writeSendingIdentity("acct1", "a@x.com")).toBe(0);
102
+ expect(designated().sort()).toEqual(["a@x.com", "other@x.com"]);
103
+ });
104
+ // `cleared` is the audit number the uniqueness claim rests on, and the tool
105
+ // renders it as "cleared the designation from N other mailboxes". A sibling
106
+ // holding a stored false never had the designation, so counting it would
107
+ // state something untrue in operator-facing output. This plugin only ever
108
+ // writes true or removes, so a stored false arrives from outside it — the
109
+ // same class of state the two-designated refusal exists to handle.
110
+ it("does not count a sibling holding a stored false as a cleared designation", async () => {
111
+ graphState.accounts = [
112
+ { ...acct("acct1", "a@x.com"), sendingIdentity: false },
113
+ { ...acct("acct1", "b@x.com"), sendingIdentity: true },
114
+ acct("acct1", "c@x.com"),
115
+ ];
116
+ const { writeSendingIdentity } = await import("../lib/credentials.js");
117
+ expect(await writeSendingIdentity("acct1", "c@x.com")).toBe(1);
118
+ expect(designated()).toEqual(["c@x.com"]);
119
+ });
120
+ // Reporting a successful designate that wrote nothing is the failure mode the
121
+ // return value exists to prevent.
122
+ it("throws instead of reporting a designate that wrote nothing", async () => {
123
+ graphState.accounts = [acct("acct1", "a@x.com")];
124
+ const { writeSendingIdentity } = await import("../lib/credentials.js");
125
+ await expect(writeSendingIdentity("acct1", "nobody@x.com")).rejects.toThrow(/nobody@x\.com/);
126
+ });
127
+ });
128
+ describe("Task 2194 — email-sending-identity-set", () => {
129
+ let writes;
130
+ beforeEach(() => {
131
+ writes = [];
132
+ vi.spyOn(console, "error").mockImplementation((...args) => {
133
+ writes.push(args.map(String).join(" "));
134
+ });
135
+ vi.spyOn(process.stderr, "write").mockImplementation((() => true));
136
+ });
137
+ const writeLines = () => writes.filter((w) => w.includes("[email-sending-identity-set]"));
138
+ it("designates the named mailbox and reports how many were cleared", async () => {
139
+ graphState.accounts = [
140
+ { ...acct("acct12345678", "a@x.com"), sendingIdentity: true },
141
+ acct("acct12345678", "b@x.com"),
142
+ acct("acct12345678", "c@x.com"),
143
+ ];
144
+ const { emailSendingIdentitySet } = await import("../tools/email-sending-identity-set.js");
145
+ const out = await emailSendingIdentitySet({
146
+ accountId: "acct12345678",
147
+ mailbox: "c@x.com",
148
+ });
149
+ expect(out).toMatch(/c@x\.com is now this account's sending identity/);
150
+ expect(out).toMatch(/1 other mailbox/);
151
+ expect(designated()).toEqual(["c@x.com"]);
152
+ });
153
+ it("logs the write with the truncated accountId, the mailbox and the cleared count", async () => {
154
+ graphState.accounts = [
155
+ { ...acct("acct12345678", "a@x.com"), sendingIdentity: true },
156
+ acct("acct12345678", "b@x.com"),
157
+ ];
158
+ const { emailSendingIdentitySet } = await import("../tools/email-sending-identity-set.js");
159
+ await emailSendingIdentitySet({ accountId: "acct12345678", mailbox: "b@x.com" });
160
+ expect(writeLines()).toHaveLength(1);
161
+ expect(writeLines()[0]).toBe("[email-sending-identity-set] op=write accountId=acct1234 mailbox=b@x.com cleared=1");
162
+ });
163
+ it("says plainly when no other mailbox carried the designation", async () => {
164
+ graphState.accounts = [acct("acct12345678", "a@x.com"), acct("acct12345678", "b@x.com")];
165
+ const { emailSendingIdentitySet } = await import("../tools/email-sending-identity-set.js");
166
+ const out = await emailSendingIdentitySet({ accountId: "acct12345678", mailbox: "a@x.com" });
167
+ expect(out).toMatch(/No other mailbox carried the designation/);
168
+ });
169
+ it("refuses an address the account does not hold, naming the stored identities", async () => {
170
+ graphState.accounts = [acct("acct12345678", "a@x.com"), acct("acct12345678", "b@x.com")];
171
+ const { emailSendingIdentitySet } = await import("../tools/email-sending-identity-set.js");
172
+ await expect(emailSendingIdentitySet({ accountId: "acct12345678", mailbox: "c@x.com" })).rejects.toThrow(/Stored mailbox identities: \[a@x\.com, b@x\.com\]/);
173
+ // Refused before the write: nothing designated, nothing logged.
174
+ expect(designated()).toEqual([]);
175
+ expect(writeLines()).toHaveLength(0);
176
+ });
177
+ it("refuses on an account with no configured mailbox", async () => {
178
+ graphState.accounts = [];
179
+ const { emailSendingIdentitySet } = await import("../tools/email-sending-identity-set.js");
180
+ await expect(emailSendingIdentitySet({ accountId: "acct12345678", mailbox: "a@x.com" })).rejects.toThrow(/No IMAP mailbox is configured/);
181
+ expect(writeLines()).toHaveLength(0);
182
+ });
183
+ });
184
+ //# sourceMappingURL=email-sending-identity-set.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-sending-identity-set.test.js","sourceRoot":"","sources":["../../src/__tests__/email-sending-identity-set.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,KAAK,MAAM,cAAc,CAAC;AAEjC,+EAA+E;AAC/E,gFAAgF;AAChF,8EAA8E;AAC9E,8EAA8E;AAC9E,kBAAkB;AAClB,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,EAA+B,EAAE,CAAC,CAAC,CAAC;AAErF,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC;IAChC,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QACjB,GAAG,EAAE,KAAK,EAAE,KAAa,EAAE,MAA+B,EAAE,EAAE;YAC5D,IAAI,KAAK,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;gBAC1C,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC;gBACtF,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC;gBAClE,wEAAwE;gBACxE,sEAAsE;gBACtE,eAAe;gBACf,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAC5B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,eAAe,KAAK,IAAI,CAC9D,CAAC;gBACF,KAAK,MAAM,CAAC,IAAI,OAAO;oBAAE,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC;gBAClD,KAAK,MAAM,CAAC,IAAI,KAAK;oBAAE,OAAO,CAAC,CAAC,eAAe,CAAC;gBAChD,sEAAsE;gBACtE,oEAAoE;gBACpE,2CAA2C;gBAC3C,MAAM,GAAG,GAA2B;oBAClC,UAAU,EAAE,OAAO,CAAC,MAAM;oBAC1B,OAAO,EAAE,KAAK,CAAC,MAAM;iBACtB,CAAC;gBACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAClE,CAAC;YACD,IAAI,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC;YAC/E,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;gBAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC;YACpF,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC5E,CAAC;QACD,KAAK,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;KACtB,CAAC;CACH,CAAC,CAAC,CAAC;AAEJ,SAAS,IAAI,CAAC,SAAiB,EAAE,KAAa;IAC5C,OAAO;QACL,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK;QACrC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,KAAK;QACrE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,UAAU;KAC3E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,GAAG,GAAG,EAAE,CACtB,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAEpF,UAAU,CAAC,GAAG,EAAE;IACd,UAAU,CAAC,QAAQ,GAAG,EAAE,CAAC;AAC3B,CAAC,CAAC,CAAC;AAEH,SAAS,CAAC,GAAG,EAAE;IACb,EAAE,CAAC,eAAe,EAAE,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;QACxF,UAAU,CAAC,QAAQ,GAAG;YACpB,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE;YACtD,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE;YACtD,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;SACzB,CAAC;QACF,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QACvE,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC/D,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;QACtF,UAAU,CAAC,QAAQ,GAAG;YACpB,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;YACxB,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;YACxB,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;SACzB,CAAC;QACF,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QACvE,MAAM,CAAC,MAAM,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;QACxF,UAAU,CAAC,QAAQ,GAAG;YACpB,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;YACxB,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;YACxB,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;SACzB,CAAC;QACF,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QACvE,MAAM,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC7E,UAAU,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;QAC3E,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QACvE,MAAM,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,UAAU,CAAC,QAAQ,GAAG;YACpB,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE;YAC1D,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;YACxB,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;SACzB,CAAC;QACF,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QACvE,MAAM,CAAC,MAAM,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,4EAA4E;IAC5E,yEAAyE;IACzE,0EAA0E;IAC1E,0EAA0E;IAC1E,mEAAmE;IACnE,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;QACxF,UAAU,CAAC,QAAQ,GAAG;YACpB,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE;YACvD,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE;YACtD,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;SACzB,CAAC;QACF,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QACvE,MAAM,CAAC,MAAM,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,kCAAkC;IAClC,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,UAAU,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;QACjD,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QACvE,MAAM,MAAM,CAAC,oBAAoB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACzE,eAAe,CAChB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,wCAAwC,EAAE,GAAG,EAAE;IACtD,IAAI,MAAgB,CAAC;IAErB,UAAU,CAAC,GAAG,EAAE;QACd,MAAM,GAAG,EAAE,CAAC;QACZ,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC,GAAG,IAAe,EAAE,EAAE;YACnE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAgC,CAAC,CAAC;IACpG,CAAC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC,CAAC;IAE1F,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC9E,UAAU,CAAC,QAAQ,GAAG;YACpB,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE;YAC7D,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC;YAC/B,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC;SAChC,CAAC;QACF,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CAAC,wCAAwC,CAAC,CAAC;QAC3F,MAAM,GAAG,GAAG,MAAM,uBAAuB,CAAC;YACxC,SAAS,EAAE,cAAc;YACzB,OAAO,EAAE,SAAS;SACnB,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC;QACvE,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACvC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gFAAgF,EAAE,KAAK,IAAI,EAAE;QAC9F,UAAU,CAAC,QAAQ,GAAG;YACpB,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE;YAC7D,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC;SAChC,CAAC;QACF,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CAAC,wCAAwC,CAAC,CAAC;QAC3F,MAAM,uBAAuB,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;QACjF,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAC1B,oFAAoF,CACrF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,UAAU,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC;QACzF,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CAAC,wCAAwC,CAAC,CAAC;QAC3F,MAAM,GAAG,GAAG,MAAM,uBAAuB,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;QAC7F,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;QAC1F,UAAU,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC;QACzF,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CAAC,wCAAwC,CAAC,CAAC;QAC3F,MAAM,MAAM,CACV,uBAAuB,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAC3E,CAAC,OAAO,CAAC,OAAO,CAAC,mDAAmD,CAAC,CAAC;QACvE,gEAAgE;QAChE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACjC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,UAAU,CAAC,QAAQ,GAAG,EAAE,CAAC;QACzB,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CAAC,wCAAwC,CAAC,CAAC;QAC3F,MAAM,MAAM,CACV,uBAAuB,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAC3E,CAAC,OAAO,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;QACnD,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}