@rubytech/create-maxy-code 0.1.570 → 0.1.572

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 (960) hide show
  1. package/package.json +1 -1
  2. package/payload/platform/config/brand.json +1 -0
  3. package/payload/platform/lib/dispatch-read/dist/config.d.ts +35 -0
  4. package/payload/platform/lib/dispatch-read/dist/config.d.ts.map +1 -0
  5. package/payload/platform/lib/dispatch-read/dist/config.js +84 -0
  6. package/payload/platform/lib/dispatch-read/dist/config.js.map +1 -0
  7. package/payload/platform/lib/dispatch-read/dist/index.d.ts +22 -0
  8. package/payload/platform/lib/dispatch-read/dist/index.d.ts.map +1 -0
  9. package/payload/platform/lib/dispatch-read/dist/index.js +56 -0
  10. package/payload/platform/lib/dispatch-read/dist/index.js.map +1 -0
  11. package/payload/platform/lib/dispatch-read/dist/read.d.ts +107 -0
  12. package/payload/platform/lib/dispatch-read/dist/read.d.ts.map +1 -0
  13. package/payload/platform/lib/dispatch-read/dist/read.js +436 -0
  14. package/payload/platform/lib/dispatch-read/dist/read.js.map +1 -0
  15. package/payload/platform/lib/dispatch-read/dist/session.d.ts +6 -0
  16. package/payload/platform/lib/dispatch-read/dist/session.d.ts.map +1 -0
  17. package/payload/platform/lib/dispatch-read/dist/session.js +52 -0
  18. package/payload/platform/lib/dispatch-read/dist/session.js.map +1 -0
  19. package/payload/platform/lib/dispatch-read/dist/types.d.ts +173 -0
  20. package/payload/platform/lib/dispatch-read/dist/types.d.ts.map +1 -0
  21. package/payload/platform/lib/dispatch-read/dist/types.js +15 -0
  22. package/payload/platform/lib/dispatch-read/dist/types.js.map +1 -0
  23. package/payload/platform/lib/dispatch-read/dist/window.d.ts +48 -0
  24. package/payload/platform/lib/dispatch-read/dist/window.d.ts.map +1 -0
  25. package/payload/platform/lib/dispatch-read/dist/window.js +120 -0
  26. package/payload/platform/lib/dispatch-read/dist/window.js.map +1 -0
  27. package/payload/platform/lib/dispatch-read/dist/zone.d.ts +18 -0
  28. package/payload/platform/lib/dispatch-read/dist/zone.d.ts.map +1 -0
  29. package/payload/platform/lib/dispatch-read/dist/zone.js +41 -0
  30. package/payload/platform/lib/dispatch-read/dist/zone.js.map +1 -0
  31. package/payload/platform/lib/dispatch-read/src/__tests__/config.test.ts +62 -0
  32. package/payload/platform/lib/dispatch-read/src/__tests__/read.test.ts +181 -0
  33. package/payload/platform/lib/dispatch-read/src/__tests__/window.test.ts +137 -0
  34. package/payload/platform/lib/dispatch-read/src/__tests__/worker-day.test.ts +141 -0
  35. package/payload/platform/lib/dispatch-read/src/config.d.ts +26 -0
  36. package/payload/platform/lib/dispatch-read/src/config.d.ts.map +1 -0
  37. package/payload/platform/lib/dispatch-read/src/config.ts +85 -0
  38. package/payload/platform/lib/dispatch-read/src/index.ts +54 -0
  39. package/payload/platform/lib/dispatch-read/src/read.ts +562 -0
  40. package/payload/platform/lib/dispatch-read/src/session.ts +50 -0
  41. package/payload/platform/lib/dispatch-read/src/types.d.ts +143 -0
  42. package/payload/platform/lib/dispatch-read/src/types.d.ts.map +1 -0
  43. package/payload/platform/lib/dispatch-read/src/types.ts +188 -0
  44. package/payload/platform/lib/dispatch-read/src/window.ts +131 -0
  45. package/payload/platform/lib/dispatch-read/src/zone.ts +43 -0
  46. package/payload/platform/lib/dispatch-read/tsconfig.json +9 -0
  47. package/payload/platform/lib/dispatch-read/vitest.config.ts +9 -0
  48. package/payload/platform/lib/dispatch-write/dist/index.d.ts +17 -0
  49. package/payload/platform/lib/dispatch-write/dist/index.d.ts.map +1 -0
  50. package/payload/platform/lib/dispatch-write/dist/index.js +26 -0
  51. package/payload/platform/lib/dispatch-write/dist/index.js.map +1 -0
  52. package/payload/platform/lib/dispatch-write/dist/lifecycle.d.ts +57 -0
  53. package/payload/platform/lib/dispatch-write/dist/lifecycle.d.ts.map +1 -0
  54. package/payload/platform/lib/dispatch-write/dist/lifecycle.js +77 -0
  55. package/payload/platform/lib/dispatch-write/dist/lifecycle.js.map +1 -0
  56. package/payload/platform/lib/dispatch-write/dist/write.d.ts +112 -0
  57. package/payload/platform/lib/dispatch-write/dist/write.d.ts.map +1 -0
  58. package/payload/platform/lib/dispatch-write/dist/write.js +195 -0
  59. package/payload/platform/lib/dispatch-write/dist/write.js.map +1 -0
  60. package/payload/platform/lib/dispatch-write/src/__tests__/lifecycle.test.ts +67 -0
  61. package/payload/platform/lib/dispatch-write/src/__tests__/write.test.ts +158 -0
  62. package/payload/platform/lib/dispatch-write/src/index.ts +37 -0
  63. package/payload/platform/lib/dispatch-write/src/lifecycle.ts +128 -0
  64. package/payload/platform/lib/dispatch-write/src/write.ts +389 -0
  65. package/payload/platform/lib/dispatch-write/tsconfig.json +9 -0
  66. package/payload/platform/lib/graph-style/dist/index.d.ts.map +1 -1
  67. package/payload/platform/lib/graph-style/dist/index.js +8 -0
  68. package/payload/platform/lib/graph-style/dist/index.js.map +1 -1
  69. package/payload/platform/lib/graph-style/src/index.ts +8 -0
  70. package/payload/platform/package.json +2 -2
  71. package/payload/platform/plugins/.claude-plugin/marketplace.json +5 -0
  72. package/payload/platform/plugins/admin/hooks/lib/maxy-mcp-plugins.txt +1 -0
  73. package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +165 -1
  74. package/payload/platform/plugins/admin/skills/whats-new/SKILL.md +12 -0
  75. package/payload/platform/plugins/dispatch/.claude-plugin/plugin.json +21 -0
  76. package/payload/platform/plugins/dispatch/PLUGIN.md +116 -0
  77. package/payload/platform/plugins/dispatch/lib/mcp-spawn-tee/index.js +204 -0
  78. package/payload/platform/plugins/dispatch/lib/mcp-spawn-tee/package.json +3 -0
  79. package/payload/platform/plugins/dispatch/mcp/dist/index.d.ts +2 -0
  80. package/payload/platform/plugins/dispatch/mcp/dist/index.d.ts.map +1 -0
  81. package/payload/platform/plugins/dispatch/mcp/dist/index.js +277 -0
  82. package/payload/platform/plugins/dispatch/mcp/dist/index.js.map +1 -0
  83. package/payload/platform/plugins/dispatch/mcp/dist/lib/allocate.d.ts +62 -0
  84. package/payload/platform/plugins/dispatch/mcp/dist/lib/allocate.d.ts.map +1 -0
  85. package/payload/platform/plugins/dispatch/mcp/dist/lib/allocate.js +36 -0
  86. package/payload/platform/plugins/dispatch/mcp/dist/lib/allocate.js.map +1 -0
  87. package/payload/platform/plugins/dispatch/mcp/dist/lib/config.d.ts +38 -0
  88. package/payload/platform/plugins/dispatch/mcp/dist/lib/config.d.ts.map +1 -0
  89. package/payload/platform/plugins/dispatch/mcp/dist/lib/config.js +371 -0
  90. package/payload/platform/plugins/dispatch/mcp/dist/lib/config.js.map +1 -0
  91. package/payload/platform/plugins/dispatch/mcp/dist/lib/ids.d.ts +7 -0
  92. package/payload/platform/plugins/dispatch/mcp/dist/lib/ids.d.ts.map +1 -0
  93. package/payload/platform/plugins/dispatch/mcp/dist/lib/ids.js +16 -0
  94. package/payload/platform/plugins/dispatch/mcp/dist/lib/ids.js.map +1 -0
  95. package/payload/platform/plugins/dispatch/mcp/dist/lib/lifecycle.d.ts +11 -0
  96. package/payload/platform/plugins/dispatch/mcp/dist/lib/lifecycle.d.ts.map +1 -0
  97. package/payload/platform/plugins/dispatch/mcp/dist/lib/lifecycle.js +10 -0
  98. package/payload/platform/plugins/dispatch/mcp/dist/lib/lifecycle.js.map +1 -0
  99. package/payload/platform/plugins/dispatch/mcp/dist/lib/neo4j.d.ts +5 -0
  100. package/payload/platform/plugins/dispatch/mcp/dist/lib/neo4j.d.ts.map +1 -0
  101. package/payload/platform/plugins/dispatch/mcp/dist/lib/neo4j.js +40 -0
  102. package/payload/platform/plugins/dispatch/mcp/dist/lib/neo4j.js.map +1 -0
  103. package/payload/platform/plugins/dispatch/mcp/dist/lib/read.d.ts +11 -0
  104. package/payload/platform/plugins/dispatch/mcp/dist/lib/read.d.ts.map +1 -0
  105. package/payload/platform/plugins/dispatch/mcp/dist/lib/read.js +10 -0
  106. package/payload/platform/plugins/dispatch/mcp/dist/lib/read.js.map +1 -0
  107. package/payload/platform/plugins/dispatch/mcp/dist/lib/types.d.ts +134 -0
  108. package/payload/platform/plugins/dispatch/mcp/dist/lib/types.d.ts.map +1 -0
  109. package/payload/platform/plugins/dispatch/mcp/dist/lib/types.js +12 -0
  110. package/payload/platform/plugins/dispatch/mcp/dist/lib/types.js.map +1 -0
  111. package/payload/platform/plugins/dispatch/mcp/dist/tools/allocate.d.ts +38 -0
  112. package/payload/platform/plugins/dispatch/mcp/dist/tools/allocate.d.ts.map +1 -0
  113. package/payload/platform/plugins/dispatch/mcp/dist/tools/allocate.js +167 -0
  114. package/payload/platform/plugins/dispatch/mcp/dist/tools/allocate.js.map +1 -0
  115. package/payload/platform/plugins/dispatch/mcp/dist/tools/config-get.d.ts +15 -0
  116. package/payload/platform/plugins/dispatch/mcp/dist/tools/config-get.d.ts.map +1 -0
  117. package/payload/platform/plugins/dispatch/mcp/dist/tools/config-get.js +24 -0
  118. package/payload/platform/plugins/dispatch/mcp/dist/tools/config-get.js.map +1 -0
  119. package/payload/platform/plugins/dispatch/mcp/dist/tools/job-create.d.ts +30 -0
  120. package/payload/platform/plugins/dispatch/mcp/dist/tools/job-create.d.ts.map +1 -0
  121. package/payload/platform/plugins/dispatch/mcp/dist/tools/job-create.js +53 -0
  122. package/payload/platform/plugins/dispatch/mcp/dist/tools/job-create.js.map +1 -0
  123. package/payload/platform/plugins/dispatch/mcp/dist/tools/reads.d.ts +38 -0
  124. package/payload/platform/plugins/dispatch/mcp/dist/tools/reads.d.ts.map +1 -0
  125. package/payload/platform/plugins/dispatch/mcp/dist/tools/reads.js +63 -0
  126. package/payload/platform/plugins/dispatch/mcp/dist/tools/reads.js.map +1 -0
  127. package/payload/platform/plugins/dispatch/mcp/dist/tools/result.d.ts +17 -0
  128. package/payload/platform/plugins/dispatch/mcp/dist/tools/result.d.ts.map +1 -0
  129. package/payload/platform/plugins/dispatch/mcp/dist/tools/result.js +7 -0
  130. package/payload/platform/plugins/dispatch/mcp/dist/tools/result.js.map +1 -0
  131. package/payload/platform/plugins/dispatch/mcp/dist/tools/visit-record.d.ts +13 -0
  132. package/payload/platform/plugins/dispatch/mcp/dist/tools/visit-record.d.ts.map +1 -0
  133. package/payload/platform/plugins/dispatch/mcp/dist/tools/visit-record.js +15 -0
  134. package/payload/platform/plugins/dispatch/mcp/dist/tools/visit-record.js.map +1 -0
  135. package/payload/platform/plugins/dispatch/mcp/dist/tools/visit-status-set.d.ts +13 -0
  136. package/payload/platform/plugins/dispatch/mcp/dist/tools/visit-status-set.d.ts.map +1 -0
  137. package/payload/platform/plugins/dispatch/mcp/dist/tools/visit-status-set.js +15 -0
  138. package/payload/platform/plugins/dispatch/mcp/dist/tools/visit-status-set.js.map +1 -0
  139. package/payload/platform/plugins/dispatch/mcp/package.json +21 -0
  140. package/payload/platform/plugins/dispatch/skills/dispatch-setup/SKILL.md +64 -0
  141. package/payload/platform/plugins/docs/references/dispatch.md +159 -0
  142. package/payload/platform/plugins/email/.claude-plugin/plugin.json +1 -1
  143. package/payload/platform/plugins/email/PLUGIN.md +2 -2
  144. package/payload/platform/plugins/email/mcp/dist/__tests__/email-delete.test.js +126 -4
  145. package/payload/platform/plugins/email/mcp/dist/__tests__/email-delete.test.js.map +1 -1
  146. package/payload/platform/plugins/email/mcp/dist/index.js +4 -3
  147. package/payload/platform/plugins/email/mcp/dist/index.js.map +1 -1
  148. package/payload/platform/plugins/email/mcp/dist/lib/imap.d.ts +18 -3
  149. package/payload/platform/plugins/email/mcp/dist/lib/imap.d.ts.map +1 -1
  150. package/payload/platform/plugins/email/mcp/dist/lib/imap.js +28 -6
  151. package/payload/platform/plugins/email/mcp/dist/lib/imap.js.map +1 -1
  152. package/payload/platform/plugins/email/mcp/dist/tools/email-delete.d.ts +6 -3
  153. package/payload/platform/plugins/email/mcp/dist/tools/email-delete.d.ts.map +1 -1
  154. package/payload/platform/plugins/email/mcp/dist/tools/email-delete.js +11 -5
  155. package/payload/platform/plugins/email/mcp/dist/tools/email-delete.js.map +1 -1
  156. package/payload/platform/plugins/email/references/email-reference.md +4 -2
  157. package/payload/platform/plugins/email/skills/email-composition/SKILL.md +4 -3
  158. package/payload/platform/plugins/memory/PLUGIN.md +1 -0
  159. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/dispatch-vertical-coverage.test.d.ts +2 -0
  160. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/dispatch-vertical-coverage.test.d.ts.map +1 -0
  161. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/dispatch-vertical-coverage.test.js +212 -0
  162. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/dispatch-vertical-coverage.test.js.map +1 -0
  163. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/enabled-plugins.test.d.ts +2 -0
  164. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/enabled-plugins.test.d.ts.map +1 -0
  165. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/enabled-plugins.test.js +50 -0
  166. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/enabled-plugins.test.js.map +1 -0
  167. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/ledger-vertical-coverage.test.js +5 -1
  168. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/ledger-vertical-coverage.test.js.map +1 -1
  169. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/phase-estate-census.test.js +3 -1
  170. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/phase-estate-census.test.js.map +1 -1
  171. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/relationship-patterns.test.js +56 -6
  172. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/relationship-patterns.test.js.map +1 -1
  173. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/resolve-active-vertical.test.js +138 -7
  174. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/resolve-active-vertical.test.js.map +1 -1
  175. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-validator.test.js +19 -17
  176. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-validator.test.js.map +1 -1
  177. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-write-path-task802.test.js +16 -5
  178. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-write-path-task802.test.js.map +1 -1
  179. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-estate-census.d.ts.map +1 -1
  180. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-estate-census.js +7 -3
  181. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-estate-census.js.map +1 -1
  182. package/payload/platform/plugins/memory/mcp/dist/lib/enabled-plugins.d.ts +4 -0
  183. package/payload/platform/plugins/memory/mcp/dist/lib/enabled-plugins.d.ts.map +1 -0
  184. package/payload/platform/plugins/memory/mcp/dist/lib/enabled-plugins.js +44 -0
  185. package/payload/platform/plugins/memory/mcp/dist/lib/enabled-plugins.js.map +1 -0
  186. package/payload/platform/plugins/memory/mcp/dist/lib/relationship-patterns.d.ts +9 -7
  187. package/payload/platform/plugins/memory/mcp/dist/lib/relationship-patterns.d.ts.map +1 -1
  188. package/payload/platform/plugins/memory/mcp/dist/lib/relationship-patterns.js +11 -10
  189. package/payload/platform/plugins/memory/mcp/dist/lib/relationship-patterns.js.map +1 -1
  190. package/payload/platform/plugins/memory/mcp/dist/lib/resolve-active-vertical.d.ts +46 -10
  191. package/payload/platform/plugins/memory/mcp/dist/lib/resolve-active-vertical.d.ts.map +1 -1
  192. package/payload/platform/plugins/memory/mcp/dist/lib/resolve-active-vertical.js +46 -11
  193. package/payload/platform/plugins/memory/mcp/dist/lib/resolve-active-vertical.js.map +1 -1
  194. package/payload/platform/plugins/memory/mcp/dist/lib/schema-validator.d.ts.map +1 -1
  195. package/payload/platform/plugins/memory/mcp/dist/lib/schema-validator.js +16 -18
  196. package/payload/platform/plugins/memory/mcp/dist/lib/schema-validator.js.map +1 -1
  197. package/payload/platform/plugins/memory/mcp/dist/tools/memory-edge.d.ts.map +1 -1
  198. package/payload/platform/plugins/memory/mcp/dist/tools/memory-edge.js +4 -2
  199. package/payload/platform/plugins/memory/mcp/dist/tools/memory-edge.js.map +1 -1
  200. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.d.ts.map +1 -1
  201. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.js +8 -5
  202. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.js.map +1 -1
  203. package/payload/platform/plugins/memory/references/schema-construction.md +51 -75
  204. package/payload/platform/plugins/memory/references/schema-dispatch.md +178 -0
  205. package/payload/platform/plugins/telegram/PLUGIN.md +4 -0
  206. package/payload/platform/plugins/telegram/mcp/dist/__tests__/menu-button.test.d.ts +2 -0
  207. package/payload/platform/plugins/telegram/mcp/dist/__tests__/menu-button.test.d.ts.map +1 -0
  208. package/payload/platform/plugins/telegram/mcp/dist/__tests__/menu-button.test.js +51 -0
  209. package/payload/platform/plugins/telegram/mcp/dist/__tests__/menu-button.test.js.map +1 -0
  210. package/payload/platform/plugins/telegram/mcp/dist/index.js +51 -1
  211. package/payload/platform/plugins/telegram/mcp/dist/index.js.map +1 -1
  212. package/payload/platform/plugins/telegram/mcp/dist/lib/menu-button.d.ts +32 -0
  213. package/payload/platform/plugins/telegram/mcp/dist/lib/menu-button.d.ts.map +1 -0
  214. package/payload/platform/plugins/telegram/mcp/dist/lib/menu-button.js +56 -0
  215. package/payload/platform/plugins/telegram/mcp/dist/lib/menu-button.js.map +1 -0
  216. package/payload/platform/plugins/telegram/mcp/dist/lib/telegram.d.ts +26 -0
  217. package/payload/platform/plugins/telegram/mcp/dist/lib/telegram.d.ts.map +1 -1
  218. package/payload/platform/plugins/telegram/mcp/dist/lib/telegram.js +16 -0
  219. package/payload/platform/plugins/telegram/mcp/dist/lib/telegram.js.map +1 -1
  220. package/payload/platform/plugins/telegram/mcp/dist/tools/message.d.ts +2 -5
  221. package/payload/platform/plugins/telegram/mcp/dist/tools/message.d.ts.map +1 -1
  222. package/payload/platform/plugins/telegram/mcp/dist/tools/message.js +4 -11
  223. package/payload/platform/plugins/telegram/mcp/dist/tools/message.js.map +1 -1
  224. package/payload/platform/plugins/whatsapp/references/channels-whatsapp.md +1 -1
  225. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.d.ts.map +1 -1
  226. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js +12 -0
  227. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js.map +1 -1
  228. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
  229. package/payload/platform/services/claude-session-manager/dist/http-server.js +38 -13
  230. package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
  231. package/payload/platform/services/telegram-channel/dist/notification.d.ts +20 -7
  232. package/payload/platform/services/telegram-channel/dist/notification.d.ts.map +1 -1
  233. package/payload/platform/services/telegram-channel/dist/notification.js +38 -4
  234. package/payload/platform/services/telegram-channel/dist/notification.js.map +1 -1
  235. package/payload/server/chunk-6DQCFP2E.js +4868 -0
  236. package/payload/server/maxy-edge.js +1 -1
  237. package/payload/server/public/activity.html +8 -6
  238. package/payload/server/public/agents.html +7 -5
  239. package/payload/server/public/assets/AdminLoginScreens-CMdj1W5p.js +1 -0
  240. package/payload/server/public/assets/AdminLoginScreens-CMdj1W5p.js.br +0 -0
  241. package/payload/server/public/assets/AdminLoginScreens-CMdj1W5p.js.gz +0 -0
  242. package/payload/server/public/assets/AdminShell-CZcaW3BQ.js +3 -0
  243. package/payload/server/public/assets/AdminShell-CZcaW3BQ.js.br +0 -0
  244. package/payload/server/public/assets/AdminShell-CZcaW3BQ.js.gz +0 -0
  245. package/payload/server/public/assets/activity-CAhibgb-.js +1 -0
  246. package/payload/server/public/assets/activity-CAhibgb-.js.br +0 -0
  247. package/payload/server/public/assets/activity-CAhibgb-.js.gz +0 -0
  248. package/payload/server/public/assets/admin-xEXv3w9e.js +1 -0
  249. package/payload/server/public/assets/admin-xEXv3w9e.js.br +0 -0
  250. package/payload/server/public/assets/admin-xEXv3w9e.js.gz +0 -0
  251. package/payload/server/public/assets/agents-CiAmzTaT.js +1 -0
  252. package/payload/server/public/assets/agents-CiAmzTaT.js.br +0 -0
  253. package/payload/server/public/assets/agents-CiAmzTaT.js.gz +0 -0
  254. package/payload/server/public/assets/arc-CWXBKNZd.js +1 -0
  255. package/payload/server/public/assets/arc-CWXBKNZd.js.br +0 -0
  256. package/payload/server/public/assets/arc-CWXBKNZd.js.gz +0 -0
  257. package/payload/server/public/assets/architecture-YZFGNWBL-CIL4I0fc.js +1 -0
  258. package/payload/server/public/assets/architecture-YZFGNWBL-CIL4I0fc.js.br +0 -0
  259. package/payload/server/public/assets/architectureDiagram-Q4EWVU46-C-KPMyG4.js +36 -0
  260. package/payload/server/public/assets/architectureDiagram-Q4EWVU46-C-KPMyG4.js.br +0 -0
  261. package/payload/server/public/assets/architectureDiagram-Q4EWVU46-C-KPMyG4.js.gz +0 -0
  262. package/payload/server/public/assets/blockDiagram-DXYQGD6D-DkYbV9Sf.js +132 -0
  263. package/payload/server/public/assets/blockDiagram-DXYQGD6D-DkYbV9Sf.js.br +0 -0
  264. package/payload/server/public/assets/blockDiagram-DXYQGD6D-DkYbV9Sf.js.gz +0 -0
  265. package/payload/server/public/assets/browser-D36BiYhS.js +1 -0
  266. package/payload/server/public/assets/browser-D36BiYhS.js.br +0 -0
  267. package/payload/server/public/assets/browser-D36BiYhS.js.gz +0 -0
  268. package/payload/server/public/assets/c4Diagram-AHTNJAMY-EYW4kdlx.js +10 -0
  269. package/payload/server/public/assets/c4Diagram-AHTNJAMY-EYW4kdlx.js.br +0 -0
  270. package/payload/server/public/assets/c4Diagram-AHTNJAMY-EYW4kdlx.js.gz +0 -0
  271. package/payload/server/public/assets/calendar-CJAM-iXn.js +1 -0
  272. package/payload/server/public/assets/calendar-CJAM-iXn.js.br +0 -0
  273. package/payload/server/public/assets/calendar-CJAM-iXn.js.gz +0 -0
  274. package/payload/server/public/assets/channel-CbHmRjy_.js +1 -0
  275. package/payload/server/public/assets/channel-CbHmRjy_.js.br +0 -0
  276. package/payload/server/public/assets/chat-DhZSvtZK.js +1 -0
  277. package/payload/server/public/assets/chat-DhZSvtZK.js.br +0 -0
  278. package/payload/server/public/assets/chat-DhZSvtZK.js.gz +0 -0
  279. package/payload/server/public/assets/chevron-left-CXEcNlc3.js +1 -0
  280. package/payload/server/public/assets/chevron-left-CXEcNlc3.js.br +0 -0
  281. package/payload/server/public/assets/chunk-2KRD3SAO-CmAF1UmH.js +1 -0
  282. package/payload/server/public/assets/chunk-2KRD3SAO-CmAF1UmH.js.br +0 -0
  283. package/payload/server/public/assets/chunk-2KRD3SAO-CmAF1UmH.js.gz +0 -0
  284. package/payload/server/public/assets/chunk-336JU56O-CyhmJeMM.js +2 -0
  285. package/payload/server/public/assets/chunk-336JU56O-CyhmJeMM.js.br +0 -0
  286. package/payload/server/public/assets/chunk-336JU56O-CyhmJeMM.js.gz +0 -0
  287. package/payload/server/public/assets/chunk-426QAEUC-C2tnHCM7.js +1 -0
  288. package/payload/server/public/assets/chunk-426QAEUC-C2tnHCM7.js.br +0 -0
  289. package/payload/server/public/assets/chunk-426QAEUC-C2tnHCM7.js.gz +0 -0
  290. package/payload/server/public/assets/chunk-4BX2VUAB-DCzC40-Y.js +1 -0
  291. package/payload/server/public/assets/chunk-4BX2VUAB-DCzC40-Y.js.br +0 -0
  292. package/payload/server/public/assets/chunk-4BX2VUAB-DCzC40-Y.js.gz +0 -0
  293. package/payload/server/public/assets/chunk-4TB4RGXK-D9BXrSA_.js +206 -0
  294. package/payload/server/public/assets/chunk-4TB4RGXK-D9BXrSA_.js.br +0 -0
  295. package/payload/server/public/assets/chunk-4TB4RGXK-D9BXrSA_.js.gz +0 -0
  296. package/payload/server/public/assets/chunk-55IACEB6-BwXC-qTZ.js +1 -0
  297. package/payload/server/public/assets/chunk-55IACEB6-BwXC-qTZ.js.br +0 -0
  298. package/payload/server/public/assets/chunk-55IACEB6-BwXC-qTZ.js.gz +0 -0
  299. package/payload/server/public/assets/chunk-5FUZZQ4R-De7QtXxM.js +62 -0
  300. package/payload/server/public/assets/chunk-5FUZZQ4R-De7QtXxM.js.br +0 -0
  301. package/payload/server/public/assets/chunk-5FUZZQ4R-De7QtXxM.js.gz +0 -0
  302. package/payload/server/public/assets/chunk-5PVQY5BW-B5tsJiCq.js +2 -0
  303. package/payload/server/public/assets/chunk-5PVQY5BW-B5tsJiCq.js.br +0 -0
  304. package/payload/server/public/assets/chunk-5PVQY5BW-B5tsJiCq.js.gz +0 -0
  305. package/payload/server/public/assets/chunk-67CJDMHE-BjTh9STV.js +1 -0
  306. package/payload/server/public/assets/chunk-67CJDMHE-BjTh9STV.js.br +0 -0
  307. package/payload/server/public/assets/chunk-67CJDMHE-BjTh9STV.js.gz +0 -0
  308. package/payload/server/public/assets/chunk-7N4EOEYR-91klRswn.js +1 -0
  309. package/payload/server/public/assets/chunk-7N4EOEYR-91klRswn.js.br +0 -0
  310. package/payload/server/public/assets/chunk-7N4EOEYR-91klRswn.js.gz +0 -0
  311. package/payload/server/public/assets/chunk-AA7GKIK3-XFPGEoBu.js +1 -0
  312. package/payload/server/public/assets/chunk-AA7GKIK3-XFPGEoBu.js.br +3 -0
  313. package/payload/server/public/assets/chunk-AA7GKIK3-XFPGEoBu.js.gz +0 -0
  314. package/payload/server/public/assets/chunk-BSJP7CBP-B7wgMyWq.js +1 -0
  315. package/payload/server/public/assets/chunk-BSJP7CBP-B7wgMyWq.js.br +0 -0
  316. package/payload/server/public/assets/chunk-BSJP7CBP-B7wgMyWq.js.gz +0 -0
  317. package/payload/server/public/assets/chunk-CIAEETIT-WPy9vcOo.js +1 -0
  318. package/payload/server/public/assets/chunk-CIAEETIT-WPy9vcOo.js.br +0 -0
  319. package/payload/server/public/assets/chunk-CIAEETIT-WPy9vcOo.js.gz +0 -0
  320. package/payload/server/public/assets/chunk-EDXVE4YY-D_2JIFFG.js +1 -0
  321. package/payload/server/public/assets/chunk-EDXVE4YY-D_2JIFFG.js.br +0 -0
  322. package/payload/server/public/assets/chunk-EDXVE4YY-D_2JIFFG.js.gz +0 -0
  323. package/payload/server/public/assets/chunk-ENJZ2VHE-xORReRt0.js +10 -0
  324. package/payload/server/public/assets/chunk-ENJZ2VHE-xORReRt0.js.br +0 -0
  325. package/payload/server/public/assets/chunk-ENJZ2VHE-xORReRt0.js.gz +0 -0
  326. package/payload/server/public/assets/chunk-FMBD7UC4-BZsDu4nl.js +15 -0
  327. package/payload/server/public/assets/chunk-FMBD7UC4-BZsDu4nl.js.br +0 -0
  328. package/payload/server/public/assets/chunk-FMBD7UC4-BZsDu4nl.js.gz +0 -0
  329. package/payload/server/public/assets/chunk-FOC6F5B3-QzUp8wXX.js +1 -0
  330. package/payload/server/public/assets/chunk-FOC6F5B3-QzUp8wXX.js.br +0 -0
  331. package/payload/server/public/assets/chunk-FOC6F5B3-QzUp8wXX.js.gz +0 -0
  332. package/payload/server/public/assets/chunk-ICPOFSXX-B64S7i7x.js +122 -0
  333. package/payload/server/public/assets/chunk-ICPOFSXX-B64S7i7x.js.br +0 -0
  334. package/payload/server/public/assets/chunk-ICPOFSXX-B64S7i7x.js.gz +0 -0
  335. package/payload/server/public/assets/chunk-K5T4RW27-DzPc6X1_.js +94 -0
  336. package/payload/server/public/assets/chunk-K5T4RW27-DzPc6X1_.js.br +0 -0
  337. package/payload/server/public/assets/chunk-K5T4RW27-DzPc6X1_.js.gz +0 -0
  338. package/payload/server/public/assets/chunk-KGLVRYIC-A2rPnD7k.js +1 -0
  339. package/payload/server/public/assets/chunk-KGLVRYIC-A2rPnD7k.js.br +1 -0
  340. package/payload/server/public/assets/chunk-KGLVRYIC-A2rPnD7k.js.gz +0 -0
  341. package/payload/server/public/assets/chunk-LIHQZDEY-CaWX327m.js +1 -0
  342. package/payload/server/public/assets/chunk-LIHQZDEY-CaWX327m.js.br +0 -0
  343. package/payload/server/public/assets/chunk-LIHQZDEY-CaWX327m.js.gz +0 -0
  344. package/payload/server/public/assets/chunk-ORNJ4GCN-zrWhdmnc.js +1 -0
  345. package/payload/server/public/assets/chunk-ORNJ4GCN-zrWhdmnc.js.br +0 -0
  346. package/payload/server/public/assets/chunk-ORNJ4GCN-zrWhdmnc.js.gz +0 -0
  347. package/payload/server/public/assets/chunk-OYMX7WX6-B_2qQir6.js +231 -0
  348. package/payload/server/public/assets/chunk-OYMX7WX6-B_2qQir6.js.br +0 -0
  349. package/payload/server/public/assets/chunk-OYMX7WX6-B_2qQir6.js.gz +0 -0
  350. package/payload/server/public/assets/chunk-QZHKN3VN-BzgrgCTo.js +1 -0
  351. package/payload/server/public/assets/chunk-QZHKN3VN-BzgrgCTo.js.br +0 -0
  352. package/payload/server/public/assets/chunk-QZHKN3VN-BzgrgCTo.js.gz +0 -0
  353. package/payload/server/public/assets/chunk-U2HBQHQK-B-IYgxsc.js +70 -0
  354. package/payload/server/public/assets/chunk-U2HBQHQK-B-IYgxsc.js.br +0 -0
  355. package/payload/server/public/assets/chunk-U2HBQHQK-B-IYgxsc.js.gz +0 -0
  356. package/payload/server/public/assets/chunk-X2U36JSP-Y9Y1_EuG.js +1 -0
  357. package/payload/server/public/assets/chunk-X2U36JSP-Y9Y1_EuG.js.br +0 -0
  358. package/payload/server/public/assets/chunk-X2U36JSP-Y9Y1_EuG.js.gz +0 -0
  359. package/payload/server/public/assets/chunk-XPW4576I-C-6yETG_.js +32 -0
  360. package/payload/server/public/assets/chunk-XPW4576I-C-6yETG_.js.br +0 -0
  361. package/payload/server/public/assets/chunk-XPW4576I-C-6yETG_.js.gz +0 -0
  362. package/payload/server/public/assets/chunk-YZCP3GAM-KAuQIU5n.js +1 -0
  363. package/payload/server/public/assets/chunk-YZCP3GAM-KAuQIU5n.js.br +0 -0
  364. package/payload/server/public/assets/chunk-YZCP3GAM-KAuQIU5n.js.gz +0 -0
  365. package/payload/server/public/assets/chunk-ZZ45TVLE-BJcH3KDH.js +1 -0
  366. package/payload/server/public/assets/chunk-ZZ45TVLE-BJcH3KDH.js.br +0 -0
  367. package/payload/server/public/assets/chunk-ZZ45TVLE-BJcH3KDH.js.gz +0 -0
  368. package/payload/server/public/assets/classDiagram-6PBFFD2Q-BxvqeBEj.js +1 -0
  369. package/payload/server/public/assets/classDiagram-6PBFFD2Q-BxvqeBEj.js.br +0 -0
  370. package/payload/server/public/assets/classDiagram-6PBFFD2Q-BxvqeBEj.js.gz +0 -0
  371. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-R3-NzMRG.js +1 -0
  372. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-R3-NzMRG.js.br +0 -0
  373. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-R3-NzMRG.js.gz +0 -0
  374. package/payload/server/public/assets/clock-DdxIJwTr.js +1 -0
  375. package/payload/server/public/assets/clock-DdxIJwTr.js.br +0 -0
  376. package/payload/server/public/assets/clock-DdxIJwTr.js.gz +0 -0
  377. package/payload/server/public/assets/clone-QdOE5SXR.js +1 -0
  378. package/payload/server/public/assets/copy-axBe92iY.js +1 -0
  379. package/payload/server/public/assets/copy-axBe92iY.js.br +0 -0
  380. package/payload/server/public/assets/copy-axBe92iY.js.gz +0 -0
  381. package/payload/server/public/assets/cose-bilkent-S5V4N54A-CcXj8vHa.js +1 -0
  382. package/payload/server/public/assets/cose-bilkent-S5V4N54A-CcXj8vHa.js.br +0 -0
  383. package/payload/server/public/assets/cose-bilkent-S5V4N54A-CcXj8vHa.js.gz +0 -0
  384. package/payload/server/public/assets/dagre-DOtq9kYX.js +1 -0
  385. package/payload/server/public/assets/dagre-DOtq9kYX.js.br +0 -0
  386. package/payload/server/public/assets/dagre-DOtq9kYX.js.gz +0 -0
  387. package/payload/server/public/assets/dagre-KV5264BT-BOhQs4rS.js +4 -0
  388. package/payload/server/public/assets/dagre-KV5264BT-BOhQs4rS.js.br +0 -0
  389. package/payload/server/public/assets/dagre-KV5264BT-BOhQs4rS.js.gz +0 -0
  390. package/payload/server/public/assets/data-DUvkI-zq.js +1 -0
  391. package/payload/server/public/assets/data-DUvkI-zq.js.br +0 -0
  392. package/payload/server/public/assets/data-DUvkI-zq.js.gz +0 -0
  393. package/payload/server/public/assets/diagram-5BDNPKRD-CqJFt5ZM.js +10 -0
  394. package/payload/server/public/assets/diagram-5BDNPKRD-CqJFt5ZM.js.br +0 -0
  395. package/payload/server/public/assets/diagram-5BDNPKRD-CqJFt5ZM.js.gz +0 -0
  396. package/payload/server/public/assets/diagram-G4DWMVQ6-WQIyAZMn.js +24 -0
  397. package/payload/server/public/assets/diagram-G4DWMVQ6-WQIyAZMn.js.br +0 -0
  398. package/payload/server/public/assets/diagram-G4DWMVQ6-WQIyAZMn.js.gz +0 -0
  399. package/payload/server/public/assets/diagram-MMDJMWI5-jcKc4a2w.js +43 -0
  400. package/payload/server/public/assets/diagram-MMDJMWI5-jcKc4a2w.js.br +0 -0
  401. package/payload/server/public/assets/diagram-MMDJMWI5-jcKc4a2w.js.gz +0 -0
  402. package/payload/server/public/assets/diagram-TYMM5635-Bbt2KuWe.js +24 -0
  403. package/payload/server/public/assets/diagram-TYMM5635-Bbt2KuWe.js.br +0 -0
  404. package/payload/server/public/assets/diagram-TYMM5635-Bbt2KuWe.js.gz +0 -0
  405. package/payload/server/public/assets/dispatch-D_i2ko7K.js +1 -0
  406. package/payload/server/public/assets/dispatch-D_i2ko7K.js.br +0 -0
  407. package/payload/server/public/assets/dispatch-D_i2ko7K.js.gz +0 -0
  408. package/payload/server/public/assets/dist-9RiN6lky.js +1 -0
  409. package/payload/server/public/assets/dist-9RiN6lky.js.br +0 -0
  410. package/payload/server/public/assets/dist-9RiN6lky.js.gz +0 -0
  411. package/payload/server/public/assets/erDiagram-SMLLAGMA-BBm6azPJ.js +85 -0
  412. package/payload/server/public/assets/erDiagram-SMLLAGMA-BBm6azPJ.js.br +0 -0
  413. package/payload/server/public/assets/erDiagram-SMLLAGMA-BBm6azPJ.js.gz +0 -0
  414. package/payload/server/public/assets/field-DFgkqq1P.js +1 -0
  415. package/payload/server/public/assets/field-DFgkqq1P.js.br +0 -0
  416. package/payload/server/public/assets/field-DFgkqq1P.js.gz +0 -0
  417. package/payload/server/public/assets/file-text-CEFoq0Je.js +1 -0
  418. package/payload/server/public/assets/file-text-CEFoq0Je.js.br +0 -0
  419. package/payload/server/public/assets/file-text-CEFoq0Je.js.gz +0 -0
  420. package/payload/server/public/assets/flatten-BurGKeIy.js +1 -0
  421. package/payload/server/public/assets/flatten-BurGKeIy.js.br +0 -0
  422. package/payload/server/public/assets/flatten-BurGKeIy.js.gz +0 -0
  423. package/payload/server/public/assets/flowDiagram-DWJPFMVM-_r45DYJ8.js +162 -0
  424. package/payload/server/public/assets/flowDiagram-DWJPFMVM-_r45DYJ8.js.br +0 -0
  425. package/payload/server/public/assets/flowDiagram-DWJPFMVM-_r45DYJ8.js.gz +0 -0
  426. package/payload/server/public/assets/ganttDiagram-T4ZO3ILL-Bjgj9Bej.js +292 -0
  427. package/payload/server/public/assets/ganttDiagram-T4ZO3ILL-Bjgj9Bej.js.br +0 -0
  428. package/payload/server/public/assets/ganttDiagram-T4ZO3ILL-Bjgj9Bej.js.gz +0 -0
  429. package/payload/server/public/assets/gitGraph-7Q5UKJZL-DdbK59od.js +1 -0
  430. package/payload/server/public/assets/gitGraph-7Q5UKJZL-DdbK59od.js.br +0 -0
  431. package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-DTRdhGJA.js +106 -0
  432. package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-DTRdhGJA.js.br +0 -0
  433. package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-DTRdhGJA.js.gz +0 -0
  434. package/payload/server/public/assets/graph-BrpbilNr.js +51 -0
  435. package/payload/server/public/assets/graph-BrpbilNr.js.br +0 -0
  436. package/payload/server/public/assets/graph-BrpbilNr.js.gz +0 -0
  437. package/payload/server/public/assets/graph-labels-BtmcWzo7.js +1 -0
  438. package/payload/server/public/assets/graph-labels-BtmcWzo7.js.br +0 -0
  439. package/payload/server/public/assets/graph-labels-BtmcWzo7.js.gz +0 -0
  440. package/payload/server/public/assets/graphlib-DT4h6-4N.js +1 -0
  441. package/payload/server/public/assets/graphlib-DT4h6-4N.js.br +0 -0
  442. package/payload/server/public/assets/graphlib-DT4h6-4N.js.gz +0 -0
  443. package/payload/server/public/assets/info-OMHHGYJF-BR8gm0wj.js +1 -0
  444. package/payload/server/public/assets/info-OMHHGYJF-BR8gm0wj.js.br +0 -0
  445. package/payload/server/public/assets/infoDiagram-42DDH7IO-Cr3Efss6.js +2 -0
  446. package/payload/server/public/assets/infoDiagram-42DDH7IO-Cr3Efss6.js.br +0 -0
  447. package/payload/server/public/assets/infoDiagram-42DDH7IO-Cr3Efss6.js.gz +0 -0
  448. package/payload/server/public/assets/isEmpty-C5v0-EY7.js +1 -0
  449. package/payload/server/public/assets/isEmpty-C5v0-EY7.js.br +0 -0
  450. package/payload/server/public/assets/isEmpty-C5v0-EY7.js.gz +0 -0
  451. package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-BklHzVHm.js +70 -0
  452. package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-BklHzVHm.js.br +0 -0
  453. package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-BklHzVHm.js.gz +0 -0
  454. package/payload/server/public/assets/journeyDiagram-VCZTEJTY-Ckxx2CmV.js +139 -0
  455. package/payload/server/public/assets/journeyDiagram-VCZTEJTY-Ckxx2CmV.js.br +0 -0
  456. package/payload/server/public/assets/journeyDiagram-VCZTEJTY-Ckxx2CmV.js.gz +0 -0
  457. package/payload/server/public/assets/jsx-runtime-C5Hcfj84.js +9 -0
  458. package/payload/server/public/assets/jsx-runtime-C5Hcfj84.js.br +0 -0
  459. package/payload/server/public/assets/jsx-runtime-C5Hcfj84.js.gz +0 -0
  460. package/payload/server/public/assets/jsx-runtime-XuYKjgVb.css +1 -0
  461. package/payload/server/public/assets/jsx-runtime-XuYKjgVb.css.br +0 -0
  462. package/payload/server/public/assets/jsx-runtime-XuYKjgVb.css.gz +0 -0
  463. package/payload/server/public/assets/kanban-definition-6JOO6SKY-BLELXpqn.js +89 -0
  464. package/payload/server/public/assets/kanban-definition-6JOO6SKY-BLELXpqn.js.br +0 -0
  465. package/payload/server/public/assets/kanban-definition-6JOO6SKY-BLELXpqn.js.gz +0 -0
  466. package/payload/server/public/assets/line-BkI5icOY.js +1 -0
  467. package/payload/server/public/assets/line-BkI5icOY.js.br +0 -0
  468. package/payload/server/public/assets/line-BkI5icOY.js.gz +0 -0
  469. package/payload/server/public/assets/linear-B64ANRVs.js +1 -0
  470. package/payload/server/public/assets/linear-B64ANRVs.js.br +0 -0
  471. package/payload/server/public/assets/linear-B64ANRVs.js.gz +0 -0
  472. package/payload/server/public/assets/mermaid-parser.core-qXPKkdJe.js +4 -0
  473. package/payload/server/public/assets/mermaid-parser.core-qXPKkdJe.js.br +0 -0
  474. package/payload/server/public/assets/mermaid-parser.core-qXPKkdJe.js.gz +0 -0
  475. package/payload/server/public/assets/mermaid.core-BMsz65Wy.js +11 -0
  476. package/payload/server/public/assets/mermaid.core-BMsz65Wy.js.br +0 -0
  477. package/payload/server/public/assets/mermaid.core-BMsz65Wy.js.gz +0 -0
  478. package/payload/server/public/assets/mindmap-definition-QFDTVHPH-DhFTS2sx.js +96 -0
  479. package/payload/server/public/assets/mindmap-definition-QFDTVHPH-DhFTS2sx.js.br +0 -0
  480. package/payload/server/public/assets/mindmap-definition-QFDTVHPH-DhFTS2sx.js.gz +0 -0
  481. package/payload/server/public/assets/operator-Dl7dJt1G.js +1 -0
  482. package/payload/server/public/assets/operator-Dl7dJt1G.js.br +3 -0
  483. package/payload/server/public/assets/operator-Dl7dJt1G.js.gz +0 -0
  484. package/payload/server/public/assets/ordinal-CJ_pL32Z.js +1 -0
  485. package/payload/server/public/assets/ordinal-CJ_pL32Z.js.br +0 -0
  486. package/payload/server/public/assets/ordinal-CJ_pL32Z.js.gz +0 -0
  487. package/payload/server/public/assets/packet-4T2RLAQJ-B31PbAeA.js +1 -0
  488. package/payload/server/public/assets/packet-4T2RLAQJ-B31PbAeA.js.br +0 -0
  489. package/payload/server/public/assets/page-nx31Ij0T.js +1 -0
  490. package/payload/server/public/assets/page-nx31Ij0T.js.br +0 -0
  491. package/payload/server/public/assets/page-nx31Ij0T.js.gz +0 -0
  492. package/payload/server/public/assets/page-zC66xzNT.js +32 -0
  493. package/payload/server/public/assets/page-zC66xzNT.js.br +0 -0
  494. package/payload/server/public/assets/page-zC66xzNT.js.gz +0 -0
  495. package/payload/server/public/assets/pdf-render-ynIPXfRA.js +11 -0
  496. package/payload/server/public/assets/pdf-render-ynIPXfRA.js.br +0 -0
  497. package/payload/server/public/assets/pdf-render-ynIPXfRA.js.gz +0 -0
  498. package/payload/server/public/assets/pie-ZZUOXDRM-BbSc1VXl.js +1 -0
  499. package/payload/server/public/assets/pie-ZZUOXDRM-BbSc1VXl.js.br +0 -0
  500. package/payload/server/public/assets/pieDiagram-DEJITSTG-B2TxkbHK.js +30 -0
  501. package/payload/server/public/assets/pieDiagram-DEJITSTG-B2TxkbHK.js.br +0 -0
  502. package/payload/server/public/assets/pieDiagram-DEJITSTG-B2TxkbHK.js.gz +0 -0
  503. package/payload/server/public/assets/play-MbU8O2iC.js +1 -0
  504. package/payload/server/public/assets/play-MbU8O2iC.js.br +0 -0
  505. package/payload/server/public/assets/play-MbU8O2iC.js.gz +0 -0
  506. package/payload/server/public/assets/public-DEKnH5Q0.js +1 -0
  507. package/payload/server/public/assets/public-DEKnH5Q0.js.br +0 -0
  508. package/payload/server/public/assets/public-DEKnH5Q0.js.gz +0 -0
  509. package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-GsMxIJuS.js +7 -0
  510. package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-GsMxIJuS.js.br +0 -0
  511. package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-GsMxIJuS.js.gz +0 -0
  512. package/payload/server/public/assets/radar-PYXPWWZC-B0La8_mZ.js +1 -0
  513. package/payload/server/public/assets/radar-PYXPWWZC-B0La8_mZ.js.br +0 -0
  514. package/payload/server/public/assets/reduce-CfkEiHc9.js +1 -0
  515. package/payload/server/public/assets/reduce-CfkEiHc9.js.br +0 -0
  516. package/payload/server/public/assets/reduce-CfkEiHc9.js.gz +0 -0
  517. package/payload/server/public/assets/requirementDiagram-MS252O5E-DqNprm-1.js +84 -0
  518. package/payload/server/public/assets/requirementDiagram-MS252O5E-DqNprm-1.js.br +0 -0
  519. package/payload/server/public/assets/requirementDiagram-MS252O5E-DqNprm-1.js.gz +0 -0
  520. package/payload/server/public/assets/rotate-ccw-CBex8gon.js +1 -0
  521. package/payload/server/public/assets/rotate-ccw-CBex8gon.js.br +0 -0
  522. package/payload/server/public/assets/rotate-ccw-CBex8gon.js.gz +0 -0
  523. package/payload/server/public/assets/routines-BqCmbvFJ.js +2 -0
  524. package/payload/server/public/assets/routines-BqCmbvFJ.js.br +0 -0
  525. package/payload/server/public/assets/routines-BqCmbvFJ.js.gz +0 -0
  526. package/payload/server/public/assets/sankeyDiagram-XADWPNL6-B-kRuiuz.js +10 -0
  527. package/payload/server/public/assets/sankeyDiagram-XADWPNL6-B-kRuiuz.js.br +0 -0
  528. package/payload/server/public/assets/sankeyDiagram-XADWPNL6-B-kRuiuz.js.gz +0 -0
  529. package/payload/server/public/assets/sequenceDiagram-FGHM5R23-DEhL9g3K.js +157 -0
  530. package/payload/server/public/assets/sequenceDiagram-FGHM5R23-DEhL9g3K.js.br +0 -0
  531. package/payload/server/public/assets/sequenceDiagram-FGHM5R23-DEhL9g3K.js.gz +0 -0
  532. package/payload/server/public/assets/skills-BmxjPOmq.js +1 -0
  533. package/payload/server/public/assets/skills-BmxjPOmq.js.br +0 -0
  534. package/payload/server/public/assets/skills-BmxjPOmq.js.gz +0 -0
  535. package/payload/server/public/assets/src-BrAT6wKv.js +1 -0
  536. package/payload/server/public/assets/src-BrAT6wKv.js.br +0 -0
  537. package/payload/server/public/assets/src-BrAT6wKv.js.gz +0 -0
  538. package/payload/server/public/assets/stateDiagram-FHFEXIEX-Q-g6BHdz.js +1 -0
  539. package/payload/server/public/assets/stateDiagram-FHFEXIEX-Q-g6BHdz.js.br +0 -0
  540. package/payload/server/public/assets/stateDiagram-FHFEXIEX-Q-g6BHdz.js.gz +0 -0
  541. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-ssRWItVj.js +1 -0
  542. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-ssRWItVj.js.br +0 -0
  543. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-ssRWItVj.js.gz +0 -0
  544. package/payload/server/public/assets/tasks-BTFYO9vT.js +3 -0
  545. package/payload/server/public/assets/tasks-BTFYO9vT.js.br +0 -0
  546. package/payload/server/public/assets/tasks-BTFYO9vT.js.gz +0 -0
  547. package/payload/server/public/assets/timeline-definition-GMOUNBTQ-B3-52q4Q.js +120 -0
  548. package/payload/server/public/assets/timeline-definition-GMOUNBTQ-B3-52q4Q.js.br +0 -0
  549. package/payload/server/public/assets/timeline-definition-GMOUNBTQ-B3-52q4Q.js.gz +0 -0
  550. package/payload/server/public/assets/treeView-SZITEDCU-BBR3hu9P.js +1 -0
  551. package/payload/server/public/assets/treeView-SZITEDCU-BBR3hu9P.js.br +0 -0
  552. package/payload/server/public/assets/treemap-W4RFUUIX-wSQMuzBT.js +1 -0
  553. package/payload/server/public/assets/treemap-W4RFUUIX-wSQMuzBT.js.br +0 -0
  554. package/payload/server/public/assets/triangle-alert-px1YRJJ7.js +1 -0
  555. package/payload/server/public/assets/triangle-alert-px1YRJJ7.js.br +0 -0
  556. package/payload/server/public/assets/triangle-alert-px1YRJJ7.js.gz +0 -0
  557. package/payload/server/public/assets/useCopyFeedback-nMXwRcDX.js +1 -0
  558. package/payload/server/public/assets/useCopyFeedback-nMXwRcDX.js.br +0 -0
  559. package/payload/server/public/assets/useCopyFeedback-nMXwRcDX.js.gz +0 -0
  560. package/payload/server/public/assets/useMediaQuery-DXAuc8G-.css +1 -0
  561. package/payload/server/public/assets/useMediaQuery-DXAuc8G-.css.br +0 -0
  562. package/payload/server/public/assets/useMediaQuery-DXAuc8G-.css.gz +0 -0
  563. package/payload/server/public/assets/useMediaQuery-DjbOTk2X.js +6 -0
  564. package/payload/server/public/assets/useMediaQuery-DjbOTk2X.js.br +0 -0
  565. package/payload/server/public/assets/useMediaQuery-DjbOTk2X.js.gz +0 -0
  566. package/payload/server/public/assets/useVoiceRecorder-Cx7AOmib.js +2 -0
  567. package/payload/server/public/assets/useVoiceRecorder-Cx7AOmib.js.br +0 -0
  568. package/payload/server/public/assets/useVoiceRecorder-Cx7AOmib.js.gz +0 -0
  569. package/payload/server/public/assets/vennDiagram-DHZGUBPP-Bzm1VDi1.js +34 -0
  570. package/payload/server/public/assets/vennDiagram-DHZGUBPP-Bzm1VDi1.js.br +0 -0
  571. package/payload/server/public/assets/vennDiagram-DHZGUBPP-Bzm1VDi1.js.gz +0 -0
  572. package/payload/server/public/assets/wardley-RL74JXVD-3QaECtQN.js +1 -0
  573. package/payload/server/public/assets/wardley-RL74JXVD-3QaECtQN.js.br +0 -0
  574. package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-DIqGZr4v.js +20 -0
  575. package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-DIqGZr4v.js.br +0 -0
  576. package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-DIqGZr4v.js.gz +0 -0
  577. package/payload/server/public/assets/wrench-Cexvlx6J.js +1 -0
  578. package/payload/server/public/assets/wrench-Cexvlx6J.js.br +0 -0
  579. package/payload/server/public/assets/wrench-Cexvlx6J.js.gz +0 -0
  580. package/payload/server/public/assets/xychartDiagram-5P7HB3ND-0W2L2hQA.js +7 -0
  581. package/payload/server/public/assets/xychartDiagram-5P7HB3ND-0W2L2hQA.js.br +0 -0
  582. package/payload/server/public/assets/xychartDiagram-5P7HB3ND-0W2L2hQA.js.gz +0 -0
  583. package/payload/server/public/browser.html +7 -5
  584. package/payload/server/public/calendar.html +10 -8
  585. package/payload/server/public/chat.html +17 -15
  586. package/payload/server/public/data.html +16 -14
  587. package/payload/server/public/dispatch.html +20 -0
  588. package/payload/server/public/field.html +17 -0
  589. package/payload/server/public/graph.html +12 -10
  590. package/payload/server/public/index.html +18 -16
  591. package/payload/server/public/operator.html +18 -16
  592. package/payload/server/public/public.html +17 -15
  593. package/payload/server/public/routines.html +11 -9
  594. package/payload/server/public/skills.html +8 -6
  595. package/payload/server/public/tasks.html +9 -7
  596. package/payload/server/server.js +4085 -1407
  597. package/payload/server/chunk-Y4NH2KLF.js +0 -4844
  598. package/payload/server/public/assets/AdminLoginScreens-5gI137xF.js +0 -1
  599. package/payload/server/public/assets/AdminLoginScreens-5gI137xF.js.br +0 -0
  600. package/payload/server/public/assets/AdminLoginScreens-5gI137xF.js.gz +0 -0
  601. package/payload/server/public/assets/AdminShell-Bfapavlp.js +0 -3
  602. package/payload/server/public/assets/AdminShell-Bfapavlp.js.br +0 -0
  603. package/payload/server/public/assets/AdminShell-Bfapavlp.js.gz +0 -0
  604. package/payload/server/public/assets/activity-DnbsmUgn.js +0 -1
  605. package/payload/server/public/assets/activity-DnbsmUgn.js.br +0 -0
  606. package/payload/server/public/assets/activity-DnbsmUgn.js.gz +0 -0
  607. package/payload/server/public/assets/admin-BXIv0_oj.js +0 -1
  608. package/payload/server/public/assets/admin-BXIv0_oj.js.br +0 -0
  609. package/payload/server/public/assets/admin-BXIv0_oj.js.gz +0 -0
  610. package/payload/server/public/assets/agents-Dl2wOcpj.js +0 -1
  611. package/payload/server/public/assets/agents-Dl2wOcpj.js.br +0 -0
  612. package/payload/server/public/assets/agents-Dl2wOcpj.js.gz +0 -0
  613. package/payload/server/public/assets/arc-DaI5MLTq.js +0 -1
  614. package/payload/server/public/assets/arc-DaI5MLTq.js.br +0 -0
  615. package/payload/server/public/assets/arc-DaI5MLTq.js.gz +0 -0
  616. package/payload/server/public/assets/architecture-YZFGNWBL-DWZIX5aV.js +0 -1
  617. package/payload/server/public/assets/architecture-YZFGNWBL-DWZIX5aV.js.br +0 -0
  618. package/payload/server/public/assets/architectureDiagram-Q4EWVU46-xZ0gDnJQ.js +0 -36
  619. package/payload/server/public/assets/architectureDiagram-Q4EWVU46-xZ0gDnJQ.js.br +0 -0
  620. package/payload/server/public/assets/architectureDiagram-Q4EWVU46-xZ0gDnJQ.js.gz +0 -0
  621. package/payload/server/public/assets/blockDiagram-DXYQGD6D-DwWtWBJp.js +0 -132
  622. package/payload/server/public/assets/blockDiagram-DXYQGD6D-DwWtWBJp.js.br +0 -0
  623. package/payload/server/public/assets/blockDiagram-DXYQGD6D-DwWtWBJp.js.gz +0 -0
  624. package/payload/server/public/assets/browser-D-Uc9ewO.js +0 -1
  625. package/payload/server/public/assets/browser-D-Uc9ewO.js.br +0 -0
  626. package/payload/server/public/assets/browser-D-Uc9ewO.js.gz +0 -0
  627. package/payload/server/public/assets/c4Diagram-AHTNJAMY-qRseEjtL.js +0 -10
  628. package/payload/server/public/assets/c4Diagram-AHTNJAMY-qRseEjtL.js.br +0 -0
  629. package/payload/server/public/assets/c4Diagram-AHTNJAMY-qRseEjtL.js.gz +0 -0
  630. package/payload/server/public/assets/calendar-Cu3O6Bay.js +0 -1
  631. package/payload/server/public/assets/calendar-Cu3O6Bay.js.br +0 -0
  632. package/payload/server/public/assets/calendar-Cu3O6Bay.js.gz +0 -0
  633. package/payload/server/public/assets/channel-DnchwXmx.js +0 -1
  634. package/payload/server/public/assets/chat-Bso94e-f.js +0 -1
  635. package/payload/server/public/assets/chat-Bso94e-f.js.br +0 -0
  636. package/payload/server/public/assets/chat-Bso94e-f.js.gz +0 -0
  637. package/payload/server/public/assets/chevron-left-CDwfR9V-.js +0 -1
  638. package/payload/server/public/assets/chevron-left-CDwfR9V-.js.br +0 -0
  639. package/payload/server/public/assets/chunk-2KRD3SAO-B6koUoB7.js +0 -1
  640. package/payload/server/public/assets/chunk-2KRD3SAO-B6koUoB7.js.br +0 -0
  641. package/payload/server/public/assets/chunk-2KRD3SAO-B6koUoB7.js.gz +0 -0
  642. package/payload/server/public/assets/chunk-336JU56O-ByZrJI-3.js +0 -2
  643. package/payload/server/public/assets/chunk-336JU56O-ByZrJI-3.js.br +0 -0
  644. package/payload/server/public/assets/chunk-336JU56O-ByZrJI-3.js.gz +0 -0
  645. package/payload/server/public/assets/chunk-426QAEUC-fNi5i3SA.js +0 -1
  646. package/payload/server/public/assets/chunk-426QAEUC-fNi5i3SA.js.br +0 -0
  647. package/payload/server/public/assets/chunk-426QAEUC-fNi5i3SA.js.gz +0 -0
  648. package/payload/server/public/assets/chunk-4BX2VUAB-7sO95xR2.js +0 -1
  649. package/payload/server/public/assets/chunk-4BX2VUAB-7sO95xR2.js.br +0 -0
  650. package/payload/server/public/assets/chunk-4BX2VUAB-7sO95xR2.js.gz +0 -0
  651. package/payload/server/public/assets/chunk-4TB4RGXK-KqKMvkA_.js +0 -206
  652. package/payload/server/public/assets/chunk-4TB4RGXK-KqKMvkA_.js.br +0 -0
  653. package/payload/server/public/assets/chunk-4TB4RGXK-KqKMvkA_.js.gz +0 -0
  654. package/payload/server/public/assets/chunk-55IACEB6-ggIJf_TC.js +0 -1
  655. package/payload/server/public/assets/chunk-55IACEB6-ggIJf_TC.js.br +0 -0
  656. package/payload/server/public/assets/chunk-55IACEB6-ggIJf_TC.js.gz +0 -0
  657. package/payload/server/public/assets/chunk-5FUZZQ4R-CEIokxZS.js +0 -62
  658. package/payload/server/public/assets/chunk-5FUZZQ4R-CEIokxZS.js.br +0 -0
  659. package/payload/server/public/assets/chunk-5FUZZQ4R-CEIokxZS.js.gz +0 -0
  660. package/payload/server/public/assets/chunk-5PVQY5BW-BEsb0aTb.js +0 -2
  661. package/payload/server/public/assets/chunk-5PVQY5BW-BEsb0aTb.js.br +0 -0
  662. package/payload/server/public/assets/chunk-5PVQY5BW-BEsb0aTb.js.gz +0 -0
  663. package/payload/server/public/assets/chunk-67CJDMHE-LS8rUbii.js +0 -1
  664. package/payload/server/public/assets/chunk-67CJDMHE-LS8rUbii.js.br +0 -2
  665. package/payload/server/public/assets/chunk-67CJDMHE-LS8rUbii.js.gz +0 -0
  666. package/payload/server/public/assets/chunk-7N4EOEYR-JKOVngS0.js +0 -1
  667. package/payload/server/public/assets/chunk-7N4EOEYR-JKOVngS0.js.br +0 -2
  668. package/payload/server/public/assets/chunk-7N4EOEYR-JKOVngS0.js.gz +0 -0
  669. package/payload/server/public/assets/chunk-AA7GKIK3-CoXnTVK6.js +0 -1
  670. package/payload/server/public/assets/chunk-AA7GKIK3-CoXnTVK6.js.br +0 -0
  671. package/payload/server/public/assets/chunk-AA7GKIK3-CoXnTVK6.js.gz +0 -0
  672. package/payload/server/public/assets/chunk-BSJP7CBP-CcsqObFg.js +0 -1
  673. package/payload/server/public/assets/chunk-BSJP7CBP-CcsqObFg.js.br +0 -0
  674. package/payload/server/public/assets/chunk-BSJP7CBP-CcsqObFg.js.gz +0 -0
  675. package/payload/server/public/assets/chunk-CIAEETIT-CpsybR7q.js +0 -1
  676. package/payload/server/public/assets/chunk-CIAEETIT-CpsybR7q.js.br +0 -0
  677. package/payload/server/public/assets/chunk-CIAEETIT-CpsybR7q.js.gz +0 -0
  678. package/payload/server/public/assets/chunk-EDXVE4YY-CCCHYEbG.js +0 -1
  679. package/payload/server/public/assets/chunk-EDXVE4YY-CCCHYEbG.js.br +0 -2
  680. package/payload/server/public/assets/chunk-EDXVE4YY-CCCHYEbG.js.gz +0 -0
  681. package/payload/server/public/assets/chunk-ENJZ2VHE-yVekovt2.js +0 -10
  682. package/payload/server/public/assets/chunk-ENJZ2VHE-yVekovt2.js.br +0 -0
  683. package/payload/server/public/assets/chunk-ENJZ2VHE-yVekovt2.js.gz +0 -0
  684. package/payload/server/public/assets/chunk-FMBD7UC4-D27VnSCa.js +0 -15
  685. package/payload/server/public/assets/chunk-FMBD7UC4-D27VnSCa.js.br +0 -0
  686. package/payload/server/public/assets/chunk-FMBD7UC4-D27VnSCa.js.gz +0 -0
  687. package/payload/server/public/assets/chunk-FOC6F5B3-C0tU2UFl.js +0 -1
  688. package/payload/server/public/assets/chunk-FOC6F5B3-C0tU2UFl.js.br +0 -0
  689. package/payload/server/public/assets/chunk-FOC6F5B3-C0tU2UFl.js.gz +0 -0
  690. package/payload/server/public/assets/chunk-ICPOFSXX-BmWvYe_5.js +0 -122
  691. package/payload/server/public/assets/chunk-ICPOFSXX-BmWvYe_5.js.br +0 -0
  692. package/payload/server/public/assets/chunk-ICPOFSXX-BmWvYe_5.js.gz +0 -0
  693. package/payload/server/public/assets/chunk-K5T4RW27-DIKxqyYw.js +0 -94
  694. package/payload/server/public/assets/chunk-K5T4RW27-DIKxqyYw.js.br +0 -0
  695. package/payload/server/public/assets/chunk-K5T4RW27-DIKxqyYw.js.gz +0 -0
  696. package/payload/server/public/assets/chunk-KGLVRYIC-CiL4YVLo.js +0 -1
  697. package/payload/server/public/assets/chunk-KGLVRYIC-CiL4YVLo.js.br +0 -0
  698. package/payload/server/public/assets/chunk-KGLVRYIC-CiL4YVLo.js.gz +0 -0
  699. package/payload/server/public/assets/chunk-LIHQZDEY-ejKezVlD.js +0 -1
  700. package/payload/server/public/assets/chunk-LIHQZDEY-ejKezVlD.js.br +0 -0
  701. package/payload/server/public/assets/chunk-LIHQZDEY-ejKezVlD.js.gz +0 -0
  702. package/payload/server/public/assets/chunk-ORNJ4GCN-Cc0vqc-D.js +0 -1
  703. package/payload/server/public/assets/chunk-ORNJ4GCN-Cc0vqc-D.js.br +0 -0
  704. package/payload/server/public/assets/chunk-ORNJ4GCN-Cc0vqc-D.js.gz +0 -0
  705. package/payload/server/public/assets/chunk-OYMX7WX6-BE4b8qC9.js +0 -231
  706. package/payload/server/public/assets/chunk-OYMX7WX6-BE4b8qC9.js.br +0 -0
  707. package/payload/server/public/assets/chunk-OYMX7WX6-BE4b8qC9.js.gz +0 -0
  708. package/payload/server/public/assets/chunk-QZHKN3VN-Dhlh7Pkk.js +0 -1
  709. package/payload/server/public/assets/chunk-QZHKN3VN-Dhlh7Pkk.js.br +0 -0
  710. package/payload/server/public/assets/chunk-QZHKN3VN-Dhlh7Pkk.js.gz +0 -0
  711. package/payload/server/public/assets/chunk-U2HBQHQK-DcEL3so-.js +0 -70
  712. package/payload/server/public/assets/chunk-U2HBQHQK-DcEL3so-.js.br +0 -0
  713. package/payload/server/public/assets/chunk-U2HBQHQK-DcEL3so-.js.gz +0 -0
  714. package/payload/server/public/assets/chunk-X2U36JSP-D0X5qpg6.js +0 -1
  715. package/payload/server/public/assets/chunk-X2U36JSP-D0X5qpg6.js.br +0 -0
  716. package/payload/server/public/assets/chunk-X2U36JSP-D0X5qpg6.js.gz +0 -0
  717. package/payload/server/public/assets/chunk-XPW4576I-DZqqB9Zi.js +0 -32
  718. package/payload/server/public/assets/chunk-XPW4576I-DZqqB9Zi.js.br +0 -0
  719. package/payload/server/public/assets/chunk-XPW4576I-DZqqB9Zi.js.gz +0 -0
  720. package/payload/server/public/assets/chunk-YZCP3GAM-BTxWHFTx.js +0 -1
  721. package/payload/server/public/assets/chunk-YZCP3GAM-BTxWHFTx.js.br +0 -0
  722. package/payload/server/public/assets/chunk-YZCP3GAM-BTxWHFTx.js.gz +0 -0
  723. package/payload/server/public/assets/chunk-ZZ45TVLE-D8nE76c5.js +0 -1
  724. package/payload/server/public/assets/chunk-ZZ45TVLE-D8nE76c5.js.br +0 -0
  725. package/payload/server/public/assets/chunk-ZZ45TVLE-D8nE76c5.js.gz +0 -0
  726. package/payload/server/public/assets/classDiagram-6PBFFD2Q-D9OvkaTQ.js +0 -1
  727. package/payload/server/public/assets/classDiagram-6PBFFD2Q-D9OvkaTQ.js.br +0 -0
  728. package/payload/server/public/assets/classDiagram-6PBFFD2Q-D9OvkaTQ.js.gz +0 -0
  729. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-BEuoBAgN.js +0 -1
  730. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-BEuoBAgN.js.br +0 -0
  731. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-BEuoBAgN.js.gz +0 -0
  732. package/payload/server/public/assets/clock-DDVrNLt9.js +0 -1
  733. package/payload/server/public/assets/clock-DDVrNLt9.js.br +0 -0
  734. package/payload/server/public/assets/clock-DDVrNLt9.js.gz +0 -0
  735. package/payload/server/public/assets/clone-C-YfAPQ_.js +0 -1
  736. package/payload/server/public/assets/copy-DPBVV8KZ.js +0 -1
  737. package/payload/server/public/assets/copy-DPBVV8KZ.js.br +0 -0
  738. package/payload/server/public/assets/copy-DPBVV8KZ.js.gz +0 -0
  739. package/payload/server/public/assets/cose-bilkent-S5V4N54A-D-95BzXL.js +0 -1
  740. package/payload/server/public/assets/cose-bilkent-S5V4N54A-D-95BzXL.js.br +0 -0
  741. package/payload/server/public/assets/cose-bilkent-S5V4N54A-D-95BzXL.js.gz +0 -0
  742. package/payload/server/public/assets/dagre-CrjQCEN9.js +0 -1
  743. package/payload/server/public/assets/dagre-CrjQCEN9.js.br +0 -0
  744. package/payload/server/public/assets/dagre-CrjQCEN9.js.gz +0 -0
  745. package/payload/server/public/assets/dagre-KV5264BT-mcGXOajA.js +0 -4
  746. package/payload/server/public/assets/dagre-KV5264BT-mcGXOajA.js.br +0 -0
  747. package/payload/server/public/assets/dagre-KV5264BT-mcGXOajA.js.gz +0 -0
  748. package/payload/server/public/assets/data-Dei8n2EX.js +0 -1
  749. package/payload/server/public/assets/data-Dei8n2EX.js.br +0 -0
  750. package/payload/server/public/assets/data-Dei8n2EX.js.gz +0 -0
  751. package/payload/server/public/assets/diagram-5BDNPKRD-Colq2XR9.js +0 -10
  752. package/payload/server/public/assets/diagram-5BDNPKRD-Colq2XR9.js.br +0 -0
  753. package/payload/server/public/assets/diagram-5BDNPKRD-Colq2XR9.js.gz +0 -0
  754. package/payload/server/public/assets/diagram-G4DWMVQ6-DafrIgN8.js +0 -24
  755. package/payload/server/public/assets/diagram-G4DWMVQ6-DafrIgN8.js.br +0 -0
  756. package/payload/server/public/assets/diagram-G4DWMVQ6-DafrIgN8.js.gz +0 -0
  757. package/payload/server/public/assets/diagram-MMDJMWI5-CD9pSd2z.js +0 -43
  758. package/payload/server/public/assets/diagram-MMDJMWI5-CD9pSd2z.js.br +0 -0
  759. package/payload/server/public/assets/diagram-MMDJMWI5-CD9pSd2z.js.gz +0 -0
  760. package/payload/server/public/assets/diagram-TYMM5635-DqhsN-Il.js +0 -24
  761. package/payload/server/public/assets/diagram-TYMM5635-DqhsN-Il.js.br +0 -0
  762. package/payload/server/public/assets/diagram-TYMM5635-DqhsN-Il.js.gz +0 -0
  763. package/payload/server/public/assets/dist-QvbmK1IP.js +0 -1
  764. package/payload/server/public/assets/dist-QvbmK1IP.js.br +0 -0
  765. package/payload/server/public/assets/dist-QvbmK1IP.js.gz +0 -0
  766. package/payload/server/public/assets/erDiagram-SMLLAGMA-mf9kQrIs.js +0 -85
  767. package/payload/server/public/assets/erDiagram-SMLLAGMA-mf9kQrIs.js.br +0 -0
  768. package/payload/server/public/assets/erDiagram-SMLLAGMA-mf9kQrIs.js.gz +0 -0
  769. package/payload/server/public/assets/file-text-Dn82O6ke.js +0 -1
  770. package/payload/server/public/assets/file-text-Dn82O6ke.js.br +0 -0
  771. package/payload/server/public/assets/file-text-Dn82O6ke.js.gz +0 -0
  772. package/payload/server/public/assets/flatten-BtIc9jX7.js +0 -1
  773. package/payload/server/public/assets/flatten-BtIc9jX7.js.br +0 -0
  774. package/payload/server/public/assets/flatten-BtIc9jX7.js.gz +0 -0
  775. package/payload/server/public/assets/flowDiagram-DWJPFMVM-CJLkGmFm.js +0 -162
  776. package/payload/server/public/assets/flowDiagram-DWJPFMVM-CJLkGmFm.js.br +0 -0
  777. package/payload/server/public/assets/flowDiagram-DWJPFMVM-CJLkGmFm.js.gz +0 -0
  778. package/payload/server/public/assets/ganttDiagram-T4ZO3ILL-JV6PUFic.js +0 -292
  779. package/payload/server/public/assets/ganttDiagram-T4ZO3ILL-JV6PUFic.js.br +0 -0
  780. package/payload/server/public/assets/ganttDiagram-T4ZO3ILL-JV6PUFic.js.gz +0 -0
  781. package/payload/server/public/assets/gitGraph-7Q5UKJZL-C-FvNTHZ.js +0 -1
  782. package/payload/server/public/assets/gitGraph-7Q5UKJZL-C-FvNTHZ.js.br +0 -0
  783. package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-JhiumTtl.js +0 -106
  784. package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-JhiumTtl.js.br +0 -0
  785. package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-JhiumTtl.js.gz +0 -0
  786. package/payload/server/public/assets/graph-D2J7a7Ll.js +0 -51
  787. package/payload/server/public/assets/graph-D2J7a7Ll.js.br +0 -0
  788. package/payload/server/public/assets/graph-D2J7a7Ll.js.gz +0 -0
  789. package/payload/server/public/assets/graph-labels-D3gkY2IH.js +0 -1
  790. package/payload/server/public/assets/graph-labels-D3gkY2IH.js.br +0 -0
  791. package/payload/server/public/assets/graph-labels-D3gkY2IH.js.gz +0 -0
  792. package/payload/server/public/assets/graphlib-Z7cApv13.js +0 -1
  793. package/payload/server/public/assets/graphlib-Z7cApv13.js.br +0 -0
  794. package/payload/server/public/assets/graphlib-Z7cApv13.js.gz +0 -0
  795. package/payload/server/public/assets/info-OMHHGYJF-BjLPgHAC.js +0 -1
  796. package/payload/server/public/assets/info-OMHHGYJF-BjLPgHAC.js.br +0 -0
  797. package/payload/server/public/assets/infoDiagram-42DDH7IO-B-6k2hmd.js +0 -2
  798. package/payload/server/public/assets/infoDiagram-42DDH7IO-B-6k2hmd.js.br +0 -0
  799. package/payload/server/public/assets/infoDiagram-42DDH7IO-B-6k2hmd.js.gz +0 -0
  800. package/payload/server/public/assets/isEmpty-Bu4fZ8Kf.js +0 -1
  801. package/payload/server/public/assets/isEmpty-Bu4fZ8Kf.js.br +0 -0
  802. package/payload/server/public/assets/isEmpty-Bu4fZ8Kf.js.gz +0 -0
  803. package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-CQIGY8NI.js +0 -70
  804. package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-CQIGY8NI.js.br +0 -0
  805. package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-CQIGY8NI.js.gz +0 -0
  806. package/payload/server/public/assets/journeyDiagram-VCZTEJTY-O5rEHC1o.js +0 -139
  807. package/payload/server/public/assets/journeyDiagram-VCZTEJTY-O5rEHC1o.js.br +0 -0
  808. package/payload/server/public/assets/journeyDiagram-VCZTEJTY-O5rEHC1o.js.gz +0 -0
  809. package/payload/server/public/assets/kanban-definition-6JOO6SKY-BS7huuG7.js +0 -89
  810. package/payload/server/public/assets/kanban-definition-6JOO6SKY-BS7huuG7.js.br +0 -0
  811. package/payload/server/public/assets/kanban-definition-6JOO6SKY-BS7huuG7.js.gz +0 -0
  812. package/payload/server/public/assets/line-DjHTnO_W.js +0 -1
  813. package/payload/server/public/assets/line-DjHTnO_W.js.br +0 -0
  814. package/payload/server/public/assets/line-DjHTnO_W.js.gz +0 -0
  815. package/payload/server/public/assets/linear-RvwZxFzh.js +0 -1
  816. package/payload/server/public/assets/linear-RvwZxFzh.js.br +0 -0
  817. package/payload/server/public/assets/linear-RvwZxFzh.js.gz +0 -0
  818. package/payload/server/public/assets/mermaid-parser.core-CUoZE61Z.js +0 -4
  819. package/payload/server/public/assets/mermaid-parser.core-CUoZE61Z.js.br +0 -0
  820. package/payload/server/public/assets/mermaid-parser.core-CUoZE61Z.js.gz +0 -0
  821. package/payload/server/public/assets/mermaid.core-CHquUUrw.js +0 -11
  822. package/payload/server/public/assets/mermaid.core-CHquUUrw.js.br +0 -0
  823. package/payload/server/public/assets/mermaid.core-CHquUUrw.js.gz +0 -0
  824. package/payload/server/public/assets/mindmap-definition-QFDTVHPH-pHUJa3IP.js +0 -96
  825. package/payload/server/public/assets/mindmap-definition-QFDTVHPH-pHUJa3IP.js.br +0 -0
  826. package/payload/server/public/assets/mindmap-definition-QFDTVHPH-pHUJa3IP.js.gz +0 -0
  827. package/payload/server/public/assets/operator-Bz_yj1im.js +0 -1
  828. package/payload/server/public/assets/operator-Bz_yj1im.js.br +0 -0
  829. package/payload/server/public/assets/operator-Bz_yj1im.js.gz +0 -0
  830. package/payload/server/public/assets/ordinal-C2TEWKNu.js +0 -1
  831. package/payload/server/public/assets/ordinal-C2TEWKNu.js.br +0 -0
  832. package/payload/server/public/assets/ordinal-C2TEWKNu.js.gz +0 -0
  833. package/payload/server/public/assets/packet-4T2RLAQJ-BBAZASfb.js +0 -1
  834. package/payload/server/public/assets/packet-4T2RLAQJ-BBAZASfb.js.br +0 -0
  835. package/payload/server/public/assets/page-D6u2xYh7.js +0 -1
  836. package/payload/server/public/assets/page-D6u2xYh7.js.br +0 -0
  837. package/payload/server/public/assets/page-D6u2xYh7.js.gz +0 -0
  838. package/payload/server/public/assets/page-mH4nyQ75.js +0 -32
  839. package/payload/server/public/assets/page-mH4nyQ75.js.br +0 -0
  840. package/payload/server/public/assets/page-mH4nyQ75.js.gz +0 -0
  841. package/payload/server/public/assets/pdf-render-Bwg_xv1L.js +0 -11
  842. package/payload/server/public/assets/pdf-render-Bwg_xv1L.js.br +0 -0
  843. package/payload/server/public/assets/pdf-render-Bwg_xv1L.js.gz +0 -0
  844. package/payload/server/public/assets/pie-ZZUOXDRM-CCJUnMeG.js +0 -1
  845. package/payload/server/public/assets/pie-ZZUOXDRM-CCJUnMeG.js.br +0 -0
  846. package/payload/server/public/assets/pieDiagram-DEJITSTG-DRIRqqhQ.js +0 -30
  847. package/payload/server/public/assets/pieDiagram-DEJITSTG-DRIRqqhQ.js.br +0 -0
  848. package/payload/server/public/assets/pieDiagram-DEJITSTG-DRIRqqhQ.js.gz +0 -0
  849. package/payload/server/public/assets/play-ByuChQJJ.js +0 -1
  850. package/payload/server/public/assets/play-ByuChQJJ.js.br +0 -0
  851. package/payload/server/public/assets/play-ByuChQJJ.js.gz +0 -0
  852. package/payload/server/public/assets/public-CtoYVjPR.js +0 -1
  853. package/payload/server/public/assets/public-CtoYVjPR.js.br +0 -0
  854. package/payload/server/public/assets/public-CtoYVjPR.js.gz +0 -0
  855. package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-7WHBrI_9.js +0 -7
  856. package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-7WHBrI_9.js.br +0 -0
  857. package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-7WHBrI_9.js.gz +0 -0
  858. package/payload/server/public/assets/radar-PYXPWWZC-BsRU8Aep.js +0 -1
  859. package/payload/server/public/assets/radar-PYXPWWZC-BsRU8Aep.js.br +0 -0
  860. package/payload/server/public/assets/reduce-BGpN5lgn.js +0 -1
  861. package/payload/server/public/assets/reduce-BGpN5lgn.js.br +0 -0
  862. package/payload/server/public/assets/reduce-BGpN5lgn.js.gz +0 -0
  863. package/payload/server/public/assets/requirementDiagram-MS252O5E-CatBEoHm.js +0 -84
  864. package/payload/server/public/assets/requirementDiagram-MS252O5E-CatBEoHm.js.br +0 -0
  865. package/payload/server/public/assets/requirementDiagram-MS252O5E-CatBEoHm.js.gz +0 -0
  866. package/payload/server/public/assets/rotate-ccw-BXoIghE3.js +0 -1
  867. package/payload/server/public/assets/rotate-ccw-BXoIghE3.js.br +0 -0
  868. package/payload/server/public/assets/rotate-ccw-BXoIghE3.js.gz +0 -0
  869. package/payload/server/public/assets/routines-DXleYpDv.js +0 -2
  870. package/payload/server/public/assets/routines-DXleYpDv.js.br +0 -0
  871. package/payload/server/public/assets/routines-DXleYpDv.js.gz +0 -0
  872. package/payload/server/public/assets/sankeyDiagram-XADWPNL6-DfefvhQ6.js +0 -10
  873. package/payload/server/public/assets/sankeyDiagram-XADWPNL6-DfefvhQ6.js.br +0 -0
  874. package/payload/server/public/assets/sankeyDiagram-XADWPNL6-DfefvhQ6.js.gz +0 -0
  875. package/payload/server/public/assets/sequenceDiagram-FGHM5R23-51FmBwFt.js +0 -157
  876. package/payload/server/public/assets/sequenceDiagram-FGHM5R23-51FmBwFt.js.br +0 -0
  877. package/payload/server/public/assets/sequenceDiagram-FGHM5R23-51FmBwFt.js.gz +0 -0
  878. package/payload/server/public/assets/skills-CMl38MKH.js +0 -1
  879. package/payload/server/public/assets/skills-CMl38MKH.js.br +0 -0
  880. package/payload/server/public/assets/skills-CMl38MKH.js.gz +0 -0
  881. package/payload/server/public/assets/src-C2WwTWSY.js +0 -1
  882. package/payload/server/public/assets/src-C2WwTWSY.js.br +0 -0
  883. package/payload/server/public/assets/src-C2WwTWSY.js.gz +0 -0
  884. package/payload/server/public/assets/stateDiagram-FHFEXIEX-CPgxX16e.js +0 -1
  885. package/payload/server/public/assets/stateDiagram-FHFEXIEX-CPgxX16e.js.br +0 -0
  886. package/payload/server/public/assets/stateDiagram-FHFEXIEX-CPgxX16e.js.gz +0 -0
  887. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-DrQl9xC9.js +0 -1
  888. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-DrQl9xC9.js.br +0 -0
  889. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-DrQl9xC9.js.gz +0 -0
  890. package/payload/server/public/assets/tasks-Cshaf0Md.js +0 -3
  891. package/payload/server/public/assets/tasks-Cshaf0Md.js.br +0 -0
  892. package/payload/server/public/assets/tasks-Cshaf0Md.js.gz +0 -0
  893. package/payload/server/public/assets/timeline-definition-GMOUNBTQ-DC4gTR2m.js +0 -120
  894. package/payload/server/public/assets/timeline-definition-GMOUNBTQ-DC4gTR2m.js.br +0 -0
  895. package/payload/server/public/assets/timeline-definition-GMOUNBTQ-DC4gTR2m.js.gz +0 -0
  896. package/payload/server/public/assets/treeView-SZITEDCU-BDzhKA6v.js +0 -1
  897. package/payload/server/public/assets/treeView-SZITEDCU-BDzhKA6v.js.br +0 -0
  898. package/payload/server/public/assets/treemap-W4RFUUIX-epHpdeWa.js +0 -1
  899. package/payload/server/public/assets/treemap-W4RFUUIX-epHpdeWa.js.br +0 -0
  900. package/payload/server/public/assets/triangle-alert-CS-NXr_9.js +0 -1
  901. package/payload/server/public/assets/triangle-alert-CS-NXr_9.js.br +0 -3
  902. package/payload/server/public/assets/triangle-alert-CS-NXr_9.js.gz +0 -0
  903. package/payload/server/public/assets/useCopyFeedback-pKLfQJNG.js +0 -1
  904. package/payload/server/public/assets/useCopyFeedback-pKLfQJNG.js.br +0 -0
  905. package/payload/server/public/assets/useCopyFeedback-pKLfQJNG.js.gz +0 -0
  906. package/payload/server/public/assets/useMediaQuery-BHFn0-S9.css +0 -1
  907. package/payload/server/public/assets/useMediaQuery-BHFn0-S9.css.br +0 -0
  908. package/payload/server/public/assets/useMediaQuery-BHFn0-S9.css.gz +0 -0
  909. package/payload/server/public/assets/useMediaQuery-oDCasnxD.js +0 -14
  910. package/payload/server/public/assets/useMediaQuery-oDCasnxD.js.br +0 -0
  911. package/payload/server/public/assets/useMediaQuery-oDCasnxD.js.gz +0 -0
  912. package/payload/server/public/assets/useVoiceRecorder-EgO1GmIg.js +0 -2
  913. package/payload/server/public/assets/useVoiceRecorder-EgO1GmIg.js.br +0 -0
  914. package/payload/server/public/assets/useVoiceRecorder-EgO1GmIg.js.gz +0 -0
  915. package/payload/server/public/assets/vennDiagram-DHZGUBPP-CADQLMv_.js +0 -34
  916. package/payload/server/public/assets/vennDiagram-DHZGUBPP-CADQLMv_.js.br +0 -0
  917. package/payload/server/public/assets/vennDiagram-DHZGUBPP-CADQLMv_.js.gz +0 -0
  918. package/payload/server/public/assets/wardley-RL74JXVD-DNSZCrxV.js +0 -1
  919. package/payload/server/public/assets/wardley-RL74JXVD-DNSZCrxV.js.br +0 -0
  920. package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-Cs5AyyGo.js +0 -20
  921. package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-Cs5AyyGo.js.br +0 -0
  922. package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-Cs5AyyGo.js.gz +0 -0
  923. package/payload/server/public/assets/wrench-czES9Rdy.js +0 -1
  924. package/payload/server/public/assets/wrench-czES9Rdy.js.br +0 -0
  925. package/payload/server/public/assets/wrench-czES9Rdy.js.gz +0 -0
  926. package/payload/server/public/assets/xychartDiagram-5P7HB3ND-Bp_VDbBp.js +0 -7
  927. package/payload/server/public/assets/xychartDiagram-5P7HB3ND-Bp_VDbBp.js.br +0 -0
  928. package/payload/server/public/assets/xychartDiagram-5P7HB3ND-Bp_VDbBp.js.gz +0 -0
  929. /package/payload/server/public/assets/{_baseFor-Be3EKK3K.js → _baseFor-D1duyODO.js} +0 -0
  930. /package/payload/server/public/assets/{_baseFor-Be3EKK3K.js.br → _baseFor-D1duyODO.js.br} +0 -0
  931. /package/payload/server/public/assets/{_baseFor-Be3EKK3K.js.gz → _baseFor-D1duyODO.js.gz} +0 -0
  932. /package/payload/server/public/assets/{array-X0JlPOfd.js → array-j7Xa9Fap.js} +0 -0
  933. /package/payload/server/public/assets/{array-X0JlPOfd.js.br → array-j7Xa9Fap.js.br} +0 -0
  934. /package/payload/server/public/assets/{chunk-CltuBf4Z.js → chunk-DlZTsV_O.js} +0 -0
  935. /package/payload/server/public/assets/{chunk-CltuBf4Z.js.br → chunk-DlZTsV_O.js.br} +0 -0
  936. /package/payload/server/public/assets/{chunk-CltuBf4Z.js.gz → chunk-DlZTsV_O.js.gz} +0 -0
  937. /package/payload/server/public/assets/{cytoscape.esm-CI2IWMLB.js → cytoscape.esm-Dob3eilA.js} +0 -0
  938. /package/payload/server/public/assets/{cytoscape.esm-CI2IWMLB.js.br → cytoscape.esm-Dob3eilA.js.br} +0 -0
  939. /package/payload/server/public/assets/{cytoscape.esm-CI2IWMLB.js.gz → cytoscape.esm-Dob3eilA.js.gz} +0 -0
  940. /package/payload/server/public/assets/{defaultLocale-B6RGN4id.js → defaultLocale-BNILPWh2.js} +0 -0
  941. /package/payload/server/public/assets/{defaultLocale-B6RGN4id.js.br → defaultLocale-BNILPWh2.js.br} +0 -0
  942. /package/payload/server/public/assets/{defaultLocale-B6RGN4id.js.gz → defaultLocale-BNILPWh2.js.gz} +0 -0
  943. /package/payload/server/public/assets/{file-download-DiQesOd2.js → file-download-CN4H4Eih.js} +0 -0
  944. /package/payload/server/public/assets/{file-download-DiQesOd2.js.br → file-download-CN4H4Eih.js.br} +0 -0
  945. /package/payload/server/public/assets/{file-download-DiQesOd2.js.gz → file-download-CN4H4Eih.js.gz} +0 -0
  946. /package/payload/server/public/assets/{init-BmUWJJHz.js → init-ve51bpJo.js} +0 -0
  947. /package/payload/server/public/assets/{init-BmUWJJHz.js.br → init-ve51bpJo.js.br} +0 -0
  948. /package/payload/server/public/assets/{init-BmUWJJHz.js.gz → init-ve51bpJo.js.gz} +0 -0
  949. /package/payload/server/public/assets/{katex-BjZuzSQn.js → katex-CJNaolDQ.js} +0 -0
  950. /package/payload/server/public/assets/{katex-BjZuzSQn.js.br → katex-CJNaolDQ.js.br} +0 -0
  951. /package/payload/server/public/assets/{katex-BjZuzSQn.js.gz → katex-CJNaolDQ.js.gz} +0 -0
  952. /package/payload/server/public/assets/{path-CoPyR7c2.js → path-B4emajHp.js} +0 -0
  953. /package/payload/server/public/assets/{path-CoPyR7c2.js.br → path-B4emajHp.js.br} +0 -0
  954. /package/payload/server/public/assets/{path-CoPyR7c2.js.gz → path-B4emajHp.js.gz} +0 -0
  955. /package/payload/server/public/assets/{preload-helper-BJ2zoBc3.js → preload-helper-3YNEDsJZ.js} +0 -0
  956. /package/payload/server/public/assets/{preload-helper-BJ2zoBc3.js.br → preload-helper-3YNEDsJZ.js.br} +0 -0
  957. /package/payload/server/public/assets/{preload-helper-BJ2zoBc3.js.gz → preload-helper-3YNEDsJZ.js.gz} +0 -0
  958. /package/payload/server/public/assets/{rough.esm-jSt7UMyi.js → rough.esm-zabqYs6f.js} +0 -0
  959. /package/payload/server/public/assets/{rough.esm-jSt7UMyi.js.br → rough.esm-zabqYs6f.js.br} +0 -0
  960. /package/payload/server/public/assets/{rough.esm-jSt7UMyi.js.gz → rough.esm-zabqYs6f.js.gz} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reads.js","sourceRoot":"","sources":["../../src/tools/reads.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EACL,OAAO,EACP,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,kBAAkB,GAEnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAmB,MAAM,aAAa,CAAC;AAEnE,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,CAK5B;IACC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3D,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,oBAAoB,CAAC,CAAC;IACvF,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,QAAQ,CACb,IAAI,CAAC,SAAS,CACZ,EAAE,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,EACxE,IAAI,EACJ,CAAC,CACF,CACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,CAM7B;IACC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACnF,OAAO,SAAS,CACd,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,cAAc,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,sCAAsC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC/I,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/C,OAAO,QAAQ,CACb,IAAI,CAAC,SAAS,CACZ;QACE,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU;QAC5B,KAAK,EAAE,IAAI,CAAC,MAAM;QAClB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrB,GAAG,CAAC;YACJ,sEAAsE;YACtE,+DAA+D;YAC/D,OAAO,EACL,CAAC,CAAC,WAAW,KAAK,IAAI;gBACtB,CAAC,CAAC,WAAW,GAAG,MAAM;gBACtB,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC;SACtC,CAAC,CAAC;KACJ,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,CAMjC;IACC,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IACpF,OAAO,QAAQ,CACb,IAAI,CAAC,SAAS,CACZ,EAAE,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EACpF,IAAI,EACJ,CAAC,CACF,CACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,CAKzB;IACC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,gBAAgB,CAAC;IACvC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,IAAI,gBAAgB,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAC1E,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,EAAE;QACzD,eAAe,EAAE,IAAI;QACrB,KAAK,EAAE,GAAG;KACX,CAAC,CAAC;IAEH,8EAA8E;IAC9E,4EAA4E;IAC5E,6CAA6C;IAC7C,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACxC,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,YAAY,EAAE,CAAC,CAAC,YAAY;QAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,CAAC;KACxD,CAAC,CAAC,CAAC;IAEJ,OAAO,QAAQ,CACb,IAAI,CAAC,SAAS,CACZ;QACE,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU;QAC5B,OAAO;QACP,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACnC,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,IAAI,EAAE,CAAC,CAAC,OAAO;YACf,WAAW,EAAE,CAAC,CAAC,WAAW;SAC3B,CAAC,CAAC;QACH,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC;KAC5D,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * The MCP tool-result shape, in one place.
3
+ *
4
+ * A refusal is `isError: true` with text naming what to do about it, never a
5
+ * throw: a thrown error inside a tool handler reaches the agent as a stack
6
+ * trace with no instruction in it.
7
+ */
8
+ export interface ToolResult {
9
+ content: Array<{
10
+ type: "text";
11
+ text: string;
12
+ }>;
13
+ isError?: true;
14
+ }
15
+ export declare function toolText(text: string): ToolResult;
16
+ export declare function toolError(text: string): ToolResult;
17
+ //# sourceMappingURL=result.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../src/tools/result.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,IAAI,CAAC;CAChB;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAEjD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAElD"}
@@ -0,0 +1,7 @@
1
+ export function toolText(text) {
2
+ return { content: [{ type: "text", text }] };
3
+ }
4
+ export function toolError(text) {
5
+ return { content: [{ type: "text", text }], isError: true };
6
+ }
7
+ //# sourceMappingURL=result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/tools/result.ts"],"names":[],"mappings":"AAYA,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC9D,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * The MCP adapter for `dispatch-visit-record`.
3
+ *
4
+ * The write itself moved to `platform/lib/dispatch-write` so the field job
5
+ * sheet can call it without a second implementation. This file's only job is
6
+ * the shape: a domain outcome becomes a `ToolResult`, with the refusal text
7
+ * unchanged so the agent-facing wording does not drift.
8
+ */
9
+ import { type VisitRecordParams } from "../../../../../lib/dispatch-write/dist/index.js";
10
+ import { type ToolResult } from "./result.js";
11
+ export type { VisitRecordParams } from "../../../../../lib/dispatch-write/dist/index.js";
12
+ export declare function visitRecord(p: VisitRecordParams): Promise<ToolResult>;
13
+ //# sourceMappingURL=visit-record.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visit-record.d.ts","sourceRoot":"","sources":["../../src/tools/visit-record.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAEnE,YAAY,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AAEzF,wBAAsB,WAAW,CAAC,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAG3E"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * The MCP adapter for `dispatch-visit-record`.
3
+ *
4
+ * The write itself moved to `platform/lib/dispatch-write` so the field job
5
+ * sheet can call it without a second implementation. This file's only job is
6
+ * the shape: a domain outcome becomes a `ToolResult`, with the refusal text
7
+ * unchanged so the agent-facing wording does not drift.
8
+ */
9
+ import { visitRecord as visitRecordWrite, } from "../../../../../lib/dispatch-write/dist/index.js";
10
+ import { toolError, toolText } from "./result.js";
11
+ export async function visitRecord(p) {
12
+ const out = await visitRecordWrite(p);
13
+ return out.ok ? toolText(JSON.stringify(out.value, null, 2)) : toolError(out.message);
14
+ }
15
+ //# sourceMappingURL=visit-record.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visit-record.js","sourceRoot":"","sources":["../../src/tools/visit-record.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EACL,WAAW,IAAI,gBAAgB,GAEhC,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAmB,MAAM,aAAa,CAAC;AAInE,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,CAAoB;IACpD,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACtC,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACxF,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * The MCP adapter for `dispatch-visit-status-set`.
3
+ *
4
+ * The write itself moved to `platform/lib/dispatch-write` so the field job
5
+ * sheet can call it without a second implementation. This file's only job is
6
+ * the shape: a domain outcome becomes a `ToolResult`, with the refusal text
7
+ * unchanged so the agent-facing wording does not drift.
8
+ */
9
+ import { type VisitStatusSetParams } from "../../../../../lib/dispatch-write/dist/index.js";
10
+ import { type ToolResult } from "./result.js";
11
+ export type { StatusSource, VisitStatusSetParams, } from "../../../../../lib/dispatch-write/dist/index.js";
12
+ export declare function visitStatusSet(p: VisitStatusSetParams): Promise<ToolResult>;
13
+ //# sourceMappingURL=visit-status-set.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visit-status-set.d.ts","sourceRoot":"","sources":["../../src/tools/visit-status-set.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAEnE,YAAY,EACV,YAAY,EACZ,oBAAoB,GACrB,MAAM,iDAAiD,CAAC;AAEzD,wBAAsB,cAAc,CAAC,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC,CAGjF"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * The MCP adapter for `dispatch-visit-status-set`.
3
+ *
4
+ * The write itself moved to `platform/lib/dispatch-write` so the field job
5
+ * sheet can call it without a second implementation. This file's only job is
6
+ * the shape: a domain outcome becomes a `ToolResult`, with the refusal text
7
+ * unchanged so the agent-facing wording does not drift.
8
+ */
9
+ import { visitStatusSet as visitStatusSetWrite, } from "../../../../../lib/dispatch-write/dist/index.js";
10
+ import { toolError, toolText } from "./result.js";
11
+ export async function visitStatusSet(p) {
12
+ const out = await visitStatusSetWrite(p);
13
+ return out.ok ? toolText(JSON.stringify(out.value, null, 2)) : toolError(out.message);
14
+ }
15
+ //# sourceMappingURL=visit-status-set.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visit-status-set.js","sourceRoot":"","sources":["../../src/tools/visit-status-set.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EACL,cAAc,IAAI,mBAAmB,GAEtC,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAmB,MAAM,aAAa,CAAC;AAOnE,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,CAAuB;IAC1D,MAAM,GAAG,GAAG,MAAM,mBAAmB,CAAC,CAAC,CAAC,CAAC;IACzC,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACxF,CAAC"}
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "@maxy/dispatch",
3
+ "version": "0.1.0",
4
+ "private": true,
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "scripts": {
8
+ "build": "tsc",
9
+ "start": "node dist/index.js",
10
+ "test": "vitest run"
11
+ },
12
+ "dependencies": {
13
+ "@modelcontextprotocol/sdk": "^1.12.1",
14
+ "neo4j-driver": "^5.28.1"
15
+ },
16
+ "devDependencies": {
17
+ "typescript": "^5.7.0",
18
+ "@types/node": "^22.0.0",
19
+ "vitest": "^4.1.2"
20
+ }
21
+ }
@@ -0,0 +1,64 @@
1
+ ---
2
+ name: dispatch-setup
3
+ description: "Use when an account is switching on dispatch and needs its config.json authored, or when its statuses, job types, worker roster, checklists or vocabulary need changing. Triggers include 'set up dispatch', 'add a job status', 'add an engineer to the roster', 'we call them drivers not engineers', 'why is nobody offered for this job type', and any dispatch tool refusing with reason=no-config."
4
+ ---
5
+
6
+ # Dispatch setup
7
+
8
+ Author `$ACCOUNT_DIR/dispatch/config.json`. Until it exists and validates, every dispatch tool
9
+ registers and refuses with `reason=no-config`.
10
+
11
+ ## What success looks like
12
+
13
+ A file that `dispatch-config-get` reads back without complaint, describing **this** operator's work
14
+ in **this** operator's words. Six keys:
15
+
16
+ | Key | What it holds |
17
+ |---|---|
18
+ | `statuses` | `job[]` and `visit[]`, each `{name, terminal}`; `jobTransitions[]` and `visitTransitions[]` as explicit `[from, to]` pairs |
19
+ | `jobTypes` | `{name, requiredQualification, defaultDurationMin, slaTargetHours?}` |
20
+ | `workers` | `{workerId, name, qualifications[], workingHours}` |
21
+ | `records` | `checklists` keyed by job type; `requiredBeforeTerminal` keyed by terminal visit status, values from `notes`, `media`, `parts`, `checklist`, `signature` |
22
+ | `vocabulary` | the operator's own noun for `job`, `visit`, `worker` |
23
+ | `vehicles` | `{enabled, defaultGeofenceRadiusM?}` |
24
+
25
+ ## Two constraints the file must satisfy before it is written
26
+
27
+ **Every status is reachable.** A status that is not the first of its kind and is not the `to` of any
28
+ transition can never be entered. Nothing fails when this is wrong — no transition ever fires, and
29
+ that is indistinguishable from a status nobody happens to use. `dispatch-config-get` reports it as
30
+ `unreachable`.
31
+
32
+ **Every job type has at least one qualified worker.** A type whose `requiredQualification` no worker
33
+ holds offers nobody, for ever, with no error. `dispatch-config-get` reports it as
34
+ `typesWithNoQualifiedWorker`.
35
+
36
+ Both are reported rather than blocked, because an operator mid-way through hiring legitimately has a
37
+ type nobody covers yet. Say so plainly rather than writing the file silently.
38
+
39
+ ## How to elicit it
40
+
41
+ Ask what the operator already says, not what the schema wants. "What do you call the thing you send
42
+ someone out to do?" gives you `vocabulary.job`. "Walk me through one from the phone ringing to the
43
+ invoice" gives you the statuses in order, and the order gives you the transitions. "Who could do
44
+ that one, and who couldn't?" gives you the qualification, which is usually a certificate or a
45
+ licence they will name unprompted.
46
+
47
+ Do not offer a default status set. A borrowed status list is how an operator ends up with statuses
48
+ they never use and no status for the one thing they do daily.
49
+
50
+ `workingHours` is `{ "mon": ["08:00", "17:00"] }` per day worked; an absent day means not working.
51
+ A worker with no qualification recorded is accepted and reported, because a new starter is real.
52
+
53
+ ## Changing an existing config
54
+
55
+ Read the current file first and change only what was asked. Removing a status that live jobs are
56
+ sitting in strands them: nothing can move them, because no transition names a status that no longer
57
+ exists. Check with `dispatch-job-list` before removing any status, and say what you found.
58
+
59
+ ## What this skill does not do
60
+
61
+ It creates no `:Site`, `:Customer`, `:Person:Engineer` or `:Vehicle` node. A `workerId` in the
62
+ roster must have a matching `:Person:Engineer` on the account before `dispatch-allocate` will use
63
+ it, created with `memory-update`. Say this at the end of setup rather than letting the first
64
+ allocation discover it.
@@ -0,0 +1,159 @@
1
+ # Dispatch
2
+
3
+ Field-work dispatch: create a job, allocate it to a qualified worker, move it through the account's
4
+ own statuses, record what happened on site. Admin agent only, ten tools, ships inert.
5
+
6
+ ## Enabling it
7
+
8
+ `dispatch` is in `plugins.available` on all four brands and in `defaultEnabled` on none. An account
9
+ adds it to `enabledPlugins`, then runs the `dispatch-setup` skill to author
10
+ `$ACCOUNT_DIR/dispatch/config.json`. Until that file exists and validates, every tool registers and
11
+ refuses per call with `reason=no-config`.
12
+
13
+ Enabling it also puts `schema-dispatch.md` in the account's resolved verticals, beside
14
+ `schema-base` and the account's own businessType vertical. That is what makes `:Job`, `:Visit`,
15
+ `:Site`, `:Customer`, `:Asset`, `:Part`, `:JobCost`, `:Contact`, job `:Note` and `:Engineer`
16
+ writable from any businessType rather than from construction alone.
17
+
18
+ ## The config is the vocabulary and the rules
19
+
20
+ Six keys in `$ACCOUNT_DIR/dispatch/config.json`: `statuses` (job and visit lists, each entry
21
+ `{name, terminal}`, plus `jobTransitions` and `visitTransitions` as explicit `[from, to]` pairs),
22
+ `jobTypes` (`{name, requiredQualification, defaultDurationMin, slaTargetHours?}`), `workers`
23
+ (`{workerId, name, qualifications[], workingHours}`), `records` (`checklists` per job type,
24
+ `requiredBeforeTerminal` per terminal visit status), `vocabulary` (`job`, `visit`, `worker`), and
25
+ `vehicles` (`{enabled, defaultGeofenceRadiusM?}`).
26
+
27
+ No status, job type, qualification, checklist, SLA target or operator noun appears in plugin source.
28
+ A test walks every source file and fails if any string from either shipped fixture config appears in
29
+ it.
30
+
31
+ ## The ten tools
32
+
33
+ | Tool | Does | Refuses when |
34
+ |---|---|---|
35
+ | `dispatch-config-get` | Returns the vocabulary, statuses, transitions, job types, roster, checklists and the config audit | no config |
36
+ | `dispatch-job-create` | Raises a job at a site for a customer, in the account's first job status, with `slaTargetAt` computed from the type | unknown job type; site or customer does not exist |
37
+ | `dispatch-job-get` | One job with every visit, its times, who attended and what was recorded | job not on this account |
38
+ | `dispatch-job-list` | Jobs filtered by status, type, worker, date window, or narrowed to never-allocated. `overdue` computed on every read | status not declared |
39
+ | `dispatch-allocate-candidates` | Who could take this job in this window, with clashes shown and exclusions named | job unknown, untyped, or typed to something no longer declared |
40
+ | `dispatch-allocate` | Creates the visit, attends it, moves the job along its own edge, attaches a vehicle | worker not on the roster; worker lacks the qualification; vehicle passed while `vehicles.enabled` is false; no `:Person:Engineer` node for the workerId |
41
+ | `dispatch-visit-status-set` | Moves a visit; closes the job when its last visit reaches a terminal status | status not declared; transition not in the edge list; a required record missing |
42
+ | `dispatch-visit-record` | Note, media reference, fitted part, checklist item, signature, arrival | visit unknown; nothing supplied to record |
43
+ | `dispatch-site-history` | Every visit at one site, newest first, with notes | — |
44
+ | `dispatch-day` | One day: every worker with the visits they hold, plus jobs nobody has been sent to | — |
45
+
46
+ All ten are `adminAllowlist: true`, `publicAllowlist: false`.
47
+
48
+ ## Legality is data
49
+
50
+ A move is legal when the account's own transition list contains that `[from, to]` pair. There is no
51
+ state machine in the code. A refusal names both ends:
52
+ `op=transition-refused … from=X to=Y reason=not-in-config`.
53
+
54
+ A move into a terminal status is refused a second way when the visit is missing a field
55
+ `records.requiredBeforeTerminal` demands there, and that refusal names the field:
56
+ `reason=missing-required-field:notes`.
57
+
58
+ Neither refusal is swallowed. A status that quietly failed to change cannot be told apart from one
59
+ nobody tried to change.
60
+
61
+ ## A busy worker is offered, not hidden
62
+
63
+ Only a missing qualification excludes a worker, and every exclusion is named:
64
+ `exclusions=w1:missing-qualification`. A qualified worker already committed in the window is offered
65
+ with the clash shown. Double-booking is the office's decision, and a tool that drops the busy option
66
+ makes that decision for them with no trace.
67
+
68
+ There is no travel-time estimate.
69
+
70
+ ## Arrival is two properties
71
+
72
+ `arrivedPressedAt` and `arrivedObservedAt` are written by separate `SET` clauses, so recording
73
+ either never clears the other. An observation with no press is stored and flagged. A pressed arrival
74
+ is what somebody said; an observed one is what was measured, and a single `arrivedAt` cannot show
75
+ them disagreeing.
76
+
77
+ ## The standing checks
78
+
79
+ Six failure modes emit no event, because no action occurs: a job created and never allocated, a job
80
+ past its SLA target, a status no transition reaches, a job type no worker is qualified for, a worker
81
+ with no qualification, and visits closing hours after the work ended.
82
+
83
+ - `[dispatch-census]`, per account, every 15 minutes: `jobs= unallocated= oldestUnallocatedAgeH=
84
+ overdue= visitsOpen= visitsOpenOver24h=`
85
+ - `[dispatch-config-audit]`, on config load and each tick: `statuses= unreachable= terminal=
86
+ jobTypes= typesWithNoQualifiedWorker= workersWithNoQualification=`
87
+ - `[dispatch-record-census]`, daily: `closedVisits= withNote= withMedia= medianRecordLagS=
88
+ p90RecordLagS=`
89
+
90
+ They run in the UI server, not in the plugin, because a plugin only runs when somebody calls it.
91
+ Accounts without a dispatch config are skipped silently.
92
+
93
+ `overdue` is the count a typical incumbent system reports as zero because response-time targets were
94
+ never configured. A non-zero, believable number is the feature working.
95
+
96
+ The absence of `[dispatch-census]` is itself the signal: the check died, and every count is stale
97
+ rather than zero.
98
+
99
+ ## The office planner
100
+
101
+ `/dispatch` is an admin surface that renders a dispatch day: worker rows against days over a
102
+ selectable range, a job list with true counts, and each visit's status with its pressed and
103
+ observed arrival side by side. It reads; it does not yet re-time or re-allocate.
104
+
105
+ It does not call these tools. Both it and this plugin read through `platform/lib/dispatch-read`,
106
+ which owns its Neo4j session, so the planner's route holds no graph credentials and issues no
107
+ Cypher — asserted by a test rather than trusted. This plugin's `mcp/src/lib/read.ts` is a
108
+ re-export of that lib, so the tools and the planner cannot disagree about what a filter means.
109
+
110
+ Two things the planner computes for itself. `dispatch-day` bounds a day in UTC, which misplaces a
111
+ Europe/London visit near local midnight for the whole of British Summer Time, so the planner
112
+ derives boundaries in the account's own timezone. And `dispatch-job-list` caps its rows, so the
113
+ planner takes its counts from an aggregate instead of counting what it was given.
114
+
115
+ It also names a defect it cannot fix. `dispatch-allocate` stores `startDate` exactly as the caller
116
+ passed it (`allocate.ts:186`) while normalising `endDate` (`allocate.ts:51`). The window compare is
117
+ lexical, so a start carrying a non-UTC offset reads correctly under GMT and an hour out under
118
+ British Summer Time. The planner logs `op=nonzulu-start` with the offending visit ids; correcting
119
+ it belongs at the writer.
120
+
121
+ Full detail: [`.docs/dispatch-planner.md`](../../../.docs/dispatch-planner.md).
122
+
123
+ ## The field job sheet
124
+
125
+ The engineer's surface is his phone, so the detailed record is made in a Telegram Mini App: the sheet
126
+ opens inside the chat he is already in, with nothing installed and no second login.
127
+
128
+ Set it up once per bot:
129
+
130
+ 1. Run `telegram-menu-button` with the bot's token and the account's public https origin. Give the
131
+ origin only — the tool appends `/field` and stamps the bot id on itself.
132
+ 2. Give each worker in `dispatch/config.json` a `telegramUserId` matching their numeric Telegram id.
133
+ Without one the sheet refuses them with "Ask the office to add you as an engineer."
134
+
135
+ The worker then taps the menu button and sees today's visits, in the order they will be done, each
136
+ card carrying the site, the customer, the contact and what was reported. Opening one shows the
137
+ site's previous visits with their notes and photograph counts, then the checklist for that job type,
138
+ parts, both signatures and a free note. Completion is refused, naming the one missing field, when
139
+ the account's `requiredBeforeTerminal` is not satisfied.
140
+
141
+ Every refusal is named and none of them shows a login form. `unbound-user` is the office's to fix;
142
+ `bad-hash` and `duplicate-bot` mean something is wrong rather than missing.
143
+
144
+ Two limits worth knowing before you deploy it. There is no offline queue yet, so an edit made out of
145
+ signal is refused rather than held; the sheet says so rather than appearing to save it. And a site
146
+ carries no address, because the ontology has none to carry, so a card names the site but cannot give
147
+ a street. `sitesVisitedTodayWithoutAddress=` on the census counts what that costs each day. Both are
148
+ tracked work, not permanent limits.
149
+
150
+ Full detail: [`.docs/dispatch-field-app.md`](../../../.docs/dispatch-field-app.md).
151
+
152
+ ## Diagnostic path
153
+
154
+ ```
155
+ journalctl --user -u <brand>-* | grep -E '\[dispatch\]|\[dispatch-census\]|\[dispatch-config-audit\]|\[dispatch-record-census\]|\[dispatch-field\]|\[dispatch-field-census\]'
156
+ ```
157
+
158
+ Then filter by `jobId=` for one job's lifeline, `op=transition-refused` to audit rejected writes, or
159
+ `exclusions=` to see why allocation offered whom.
@@ -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-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.",
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 to the mailbox Trash — recoverable, never an expunge; folder inbox/sent take UIDs from email-read/email-search, folder drafts takes them from email-draft-list and accepts a draftMessageId because a draft is renumbered on every edit). 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-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."
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 to the mailbox Trash — recoverable, never an expunge; folder inbox/sent take UIDs from email-read/email-search, folder drafts takes them from email-draft-list and accepts a draftMessageId because a draft is renumbered on every edit). 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
@@ -120,7 +120,7 @@ Manages the agent's own dedicated email account — IMAP for reading, SMTP for s
120
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.
121
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.
122
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`.
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.
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`, `sent`, or `drafts`) 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. Deleting a draft uses `folder: "drafts"` with a UID from `email-draft-list`; because a draft is renumbered every time it is edited, pass `draftMessageId` as well and the tool relocates by the draft's own Message-ID when the UID no longer resolves. The Drafts folder is resolved by the account's configured `draftsFolder` override when set, else by the `\Drafts` special-use flag.
124
124
  - **Read one attachment's text:** `email-fetch-attachment` — the extracted text of a single inbox attachment, addressed by `uid` plus an optional `index` (1-based, matching the `Attachments (N): …` footer order) or `filename`. With one attachment and no selector, that attachment is read; with more than one and no selector, or an ambiguous filename, the call is refused with a numbered listing. `application/pdf` is extracted via `pdftotext`, `text/*` by decode; any other type reports that it cannot be extracted, and a PDF with no text layer reports it is a scanned image (no OCR), so "no data in the attachment" never reads the same as "the attachment could not be read". Bytes are downloaded once through the 25 MB-capped fetch path; inbox only. A `text/calendar` part counts as an attachment whatever its disposition and whatever its name — a named one keeps its name, an unnamed one is listed as `invite-<part>.ics` — so a meeting invite whose message body is empty is still readable. A calendar part inside a forwarded `message/rfc822` wrapper is not listed (IMAP gives it the wrapper's part number, which fetches the whole encapsulated message). Use this when actionable data (a meeting date, an amount) may sit inside a file rather than the email body.
125
125
  - **Read one whole message:** `email-fetch-body` — the COMPLETE decoded body of a single message addressed by `uid` (with optional `folder`) or `message_id` (resolved across inbox and sent). No 500-char preview cap. Downloads the full RFC822 source and decodes it with `mailparser`, so every MIME shape — flat text, single-part HTML, `multipart/alternative`, and nested `multipart/related`/`multipart/mixed` (Outlook's inline-image house style) — yields a body; the preview tools above intentionally stay preview-only. Use this when the operator wants to read or act on a message's actual content.
126
126
  - **Send:** `email-send` — new outbound email. Pass `cc`/`bcc` (each an array of email addresses) to copy or blind-copy recipients — CC appears in the message header, BCC recipients receive the message without appearing in any header. Pass `attachments` (absolute file paths under the account directory, ≤25 MB each) to attach files as SMTP attachments; an invalid path fails the send with no email dispatched. The success message names the CC recipients and reports the BCC count without naming them.
@@ -7,7 +7,8 @@ import { beforeEach, describe, expect, it, vi } from "vitest";
7
7
  const state = {
8
8
  folders: [],
9
9
  existingUids: [],
10
- calls: { locked: null, searched: null, moves: [], released: false },
10
+ messageIdUids: {},
11
+ calls: { locked: null, searched: null, headerSearches: [], moves: [], released: false },
11
12
  };
12
13
  const mockClient = {
13
14
  connect: vi.fn(async () => { }),
@@ -18,6 +19,10 @@ const mockClient = {
18
19
  }),
19
20
  search: vi.fn(async (query) => {
20
21
  state.calls.searched = query;
22
+ if (query.header) {
23
+ state.calls.headerSearches.push(query.header);
24
+ return state.messageIdUids[query.header["message-id"]] ?? [];
25
+ }
21
26
  const requested = String(query.uid).split(",").map(Number);
22
27
  return requested.filter((u) => state.existingUids.includes(u));
23
28
  }),
@@ -54,7 +59,7 @@ const { loadCredentials, credConfig } = vi.hoisted(() => {
54
59
  return { loadCredentials, credConfig };
55
60
  });
56
61
  vi.mock("../lib/credentials.js", () => ({ loadCredentials }));
57
- import { moveToTrash, resolveTrashFolder } from "../lib/imap.js";
62
+ import { moveToTrash, resolveTrashFolder, resetDraftsCensusForTest } from "../lib/imap.js";
58
63
  import { emailDelete, deleteLine } from "../tools/email-delete.js";
59
64
  const config = {
60
65
  email: "a@x.com",
@@ -66,12 +71,14 @@ const config = {
66
71
  smtpPort: 587,
67
72
  smtpSecurity: "starttls",
68
73
  };
69
- function reset(folders, existingUids) {
74
+ function reset(folders, existingUids, messageIdUids = {}) {
70
75
  state.folders = folders;
71
76
  state.existingUids = existingUids;
72
- state.calls = { locked: null, searched: null, moves: [], released: false };
77
+ state.messageIdUids = messageIdUids;
78
+ state.calls = { locked: null, searched: null, headerSearches: [], moves: [], released: false };
73
79
  }
74
80
  beforeEach(() => {
81
+ resetDraftsCensusForTest();
75
82
  reset([], []);
76
83
  });
77
84
  describe("resolveTrashFolder", () => {
@@ -119,6 +126,81 @@ describe("moveToTrash", () => {
119
126
  expect(state.calls.moves).toHaveLength(0);
120
127
  });
121
128
  });
129
+ const DRAFT_FOLDERS = [
130
+ { path: "INBOX" },
131
+ { path: "Drafts", specialUse: "\\Drafts" },
132
+ { path: "Trash", specialUse: "\\Trash" },
133
+ ];
134
+ describe("moveToTrash — drafts folder", () => {
135
+ it("locks the \\Drafts folder and moves the named UID to Trash", async () => {
136
+ reset(DRAFT_FOLDERS, [28381]);
137
+ const res = await moveToTrash(config, "pw", { folder: "drafts", uids: [28381] });
138
+ expect(res).toEqual({ moved: 1, requested: 1, trash: "Trash", addressing: "uid-hit" });
139
+ expect(state.calls.locked).toBe("Drafts");
140
+ expect(state.calls.moves[0].dest).toBe("Trash");
141
+ expect(state.calls.headerSearches).toHaveLength(0);
142
+ });
143
+ it("honours a configured draftsFolder override over the \\Drafts special-use folder", async () => {
144
+ reset([{ path: "INBOX" }, { path: "INBOX.Drafts" }, { path: "Drafts", specialUse: "\\Drafts" }, { path: "Trash", specialUse: "\\Trash" }], [7]);
145
+ const overridden = { ...config, draftsFolder: "INBOX.Drafts" };
146
+ const res = await moveToTrash(overridden, "pw", { folder: "drafts", uids: [7] });
147
+ expect(res.moved).toBe(1);
148
+ expect(state.calls.locked).toBe("INBOX.Drafts");
149
+ });
150
+ it("relocates by draft Message-ID when the supplied UID has gone stale", async () => {
151
+ reset(DRAFT_FOLDERS, [], { "<c65a28e4@glsmithandsons.co.uk>": [28402] });
152
+ const res = await moveToTrash(config, "pw", {
153
+ folder: "drafts",
154
+ uids: [28381],
155
+ draftMessageId: "c65a28e4@glsmithandsons.co.uk",
156
+ });
157
+ expect(res).toEqual({ moved: 1, requested: 1, trash: "Trash", addressing: "message-id-relocate" });
158
+ expect(state.calls.headerSearches).toEqual([{ "message-id": "<c65a28e4@glsmithandsons.co.uk>" }]);
159
+ expect(state.calls.moves[0].range).toEqual([28402]);
160
+ });
161
+ it("never searches by Message-ID when the UID still resolves", async () => {
162
+ reset(DRAFT_FOLDERS, [28381], { "<c65a28e4@x.com>": [99] });
163
+ const res = await moveToTrash(config, "pw", {
164
+ folder: "drafts",
165
+ uids: [28381],
166
+ draftMessageId: "c65a28e4@x.com",
167
+ });
168
+ expect(res.addressing).toBe("uid-hit");
169
+ expect(state.calls.headerSearches).toHaveLength(0);
170
+ expect(state.calls.moves[0].range).toEqual([28381]);
171
+ });
172
+ it("moves nothing and reports no addressing when neither the UID nor the Message-ID resolves", async () => {
173
+ reset(DRAFT_FOLDERS, [], {});
174
+ const res = await moveToTrash(config, "pw", {
175
+ folder: "drafts",
176
+ uids: [28381],
177
+ draftMessageId: "gone@x.com",
178
+ });
179
+ expect(res).toEqual({ moved: 0, requested: 1, trash: "Trash" });
180
+ expect(state.calls.moves).toHaveLength(0);
181
+ });
182
+ it("errors and never locks the source when the mailbox has no Trash", async () => {
183
+ reset([{ path: "INBOX" }, { path: "Drafts", specialUse: "\\Drafts" }, { path: "Junk" }], [28381]);
184
+ await expect(moveToTrash(config, "pw", { folder: "drafts", uids: [28381] })).rejects.toMatchObject({ code: "no-trash-folder" });
185
+ expect(state.calls.locked).toBeNull();
186
+ expect(state.calls.moves).toHaveLength(0);
187
+ });
188
+ it("throws before any lock when the server advertises no Drafts folder", async () => {
189
+ reset([{ path: "INBOX" }, { path: "Trash", specialUse: "\\Trash" }], [28381]);
190
+ await expect(moveToTrash(config, "pw", { folder: "drafts", uids: [28381] })).rejects.toThrow(/Drafts folder not found/);
191
+ expect(state.calls.locked).toBeNull();
192
+ });
193
+ it("leaves inbox and sent on resolveFolderName with no addressing", async () => {
194
+ reset([{ path: "INBOX" }, { path: "Sent", specialUse: "\\Sent" }, { path: "Trash", specialUse: "\\Trash" }], [5]);
195
+ const inbox = await moveToTrash(config, "pw", { folder: "inbox", uids: [5] });
196
+ expect(inbox).toEqual({ moved: 1, requested: 1, trash: "Trash" });
197
+ expect(state.calls.locked).toBe("INBOX");
198
+ reset([{ path: "INBOX" }, { path: "Sent", specialUse: "\\Sent" }, { path: "Trash", specialUse: "\\Trash" }], [6]);
199
+ const sent = await moveToTrash(config, "pw", { folder: "sent", uids: [6] });
200
+ expect(sent).toEqual({ moved: 1, requested: 1, trash: "Trash" });
201
+ expect(state.calls.locked).toBe("Sent");
202
+ });
203
+ });
122
204
  describe("emailDelete tool", () => {
123
205
  it("resolves the credential by accountId (no password input) and moves via the resolved Trash", async () => {
124
206
  reset([{ path: "INBOX" }, { path: "Trash", specialUse: "\\Trash" }], [10, 11]);
@@ -130,6 +212,46 @@ describe("emailDelete tool", () => {
130
212
  expect(state.calls.moves[0].dest).toBe("Trash");
131
213
  });
132
214
  });
215
+ describe("emailDelete tool — drafts", () => {
216
+ it("passes the drafts folder and draftMessageId through and reports the move", async () => {
217
+ reset(DRAFT_FOLDERS, [], { "<c65a28e4@x.com>": [28402] });
218
+ const text = await emailDelete({
219
+ accountId: "acct-1",
220
+ uids: [28381],
221
+ folder: "drafts",
222
+ draftMessageId: "c65a28e4@x.com",
223
+ });
224
+ expect(text).toBe("Moved 1 of 1 message(s) to Trash.");
225
+ expect(state.calls.locked).toBe("Drafts");
226
+ expect(state.calls.moves[0].range).toEqual([28402]);
227
+ });
228
+ it("reports a total miss as moved=0 without throwing", async () => {
229
+ reset(DRAFT_FOLDERS, [], {});
230
+ const text = await emailDelete({ accountId: "acct-1", uids: [28381], folder: "drafts" });
231
+ expect(text).toBe("Moved 0 of 1 message(s) to Trash.");
232
+ expect(state.calls.moves).toHaveLength(0);
233
+ });
234
+ });
235
+ describe("deleteLine — addressing", () => {
236
+ it("carries addressing on a drafts delete", () => {
237
+ const hit = deleteLine("owner@x.com", "drafts", 1, 1, "Trash", true, undefined, "uid-hit");
238
+ expect(hit).toContain("folder=drafts");
239
+ expect(hit).toContain("addressing=uid-hit");
240
+ const moved = deleteLine("owner@x.com", "drafts", 1, 1, "Trash", true, undefined, "message-id-relocate");
241
+ expect(moved).toContain("addressing=message-id-relocate");
242
+ });
243
+ it("omits addressing entirely for inbox and sent", () => {
244
+ expect(deleteLine("owner@x.com", "inbox", 1, 1, "Trash", true)).not.toContain("addressing=");
245
+ expect(deleteLine("owner@x.com", "sent", 1, 1, "Trash", true)).not.toContain("addressing=");
246
+ });
247
+ it("still records the typed refusal with no counts", () => {
248
+ const fail = deleteLine("owner@x.com", "drafts", 1, 0, null, false, "no-trash-folder");
249
+ expect(fail).toContain("ok=false");
250
+ expect(fail).toContain("reason=no-trash-folder");
251
+ expect(fail).not.toContain("moved=");
252
+ expect(fail).not.toContain("addressing=");
253
+ });
254
+ });
133
255
  describe("deleteLine", () => {
134
256
  it("carries the mailbox, counts, trash, and ok — never a password", () => {
135
257
  const ok = deleteLine("owner@x.com", "inbox", 3, 2, "Trash", true);