@rubytech/create-realagent-code 0.1.573 → 0.1.575

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 (1001) hide show
  1. package/dist/index.js +14 -0
  2. package/package.json +1 -1
  3. package/payload/platform/lib/admins-write/__tests__/index.test.ts +97 -0
  4. package/payload/platform/lib/admins-write/dist/index.d.ts +12 -0
  5. package/payload/platform/lib/admins-write/dist/index.d.ts.map +1 -1
  6. package/payload/platform/lib/admins-write/dist/index.js +27 -5
  7. package/payload/platform/lib/admins-write/dist/index.js.map +1 -1
  8. package/payload/platform/lib/admins-write/src/index.ts +35 -5
  9. package/payload/platform/lib/admins-write/vitest.config.ts +14 -0
  10. package/payload/platform/lib/canonical-instant/dist/index.d.ts +57 -0
  11. package/payload/platform/lib/canonical-instant/dist/index.d.ts.map +1 -0
  12. package/payload/platform/lib/canonical-instant/dist/index.js +139 -0
  13. package/payload/platform/lib/canonical-instant/dist/index.js.map +1 -0
  14. package/payload/platform/lib/canonical-instant/src/__tests__/normalise-instant.test.ts +158 -0
  15. package/payload/platform/lib/canonical-instant/src/index.ts +147 -0
  16. package/payload/platform/lib/canonical-instant/tsconfig.json +9 -0
  17. package/payload/platform/lib/canonical-instant/vitest.config.ts +9 -0
  18. package/payload/platform/lib/dispatch-read/dist/geo.d.ts +34 -0
  19. package/payload/platform/lib/dispatch-read/dist/geo.d.ts.map +1 -0
  20. package/payload/platform/lib/dispatch-read/dist/geo.js +27 -0
  21. package/payload/platform/lib/dispatch-read/dist/geo.js.map +1 -0
  22. package/payload/platform/lib/dispatch-read/dist/index.d.ts +6 -2
  23. package/payload/platform/lib/dispatch-read/dist/index.d.ts.map +1 -1
  24. package/payload/platform/lib/dispatch-read/dist/index.js +21 -1
  25. package/payload/platform/lib/dispatch-read/dist/index.js.map +1 -1
  26. package/payload/platform/lib/dispatch-read/dist/keyboard.d.ts +66 -0
  27. package/payload/platform/lib/dispatch-read/dist/keyboard.d.ts.map +1 -0
  28. package/payload/platform/lib/dispatch-read/dist/keyboard.js +64 -0
  29. package/payload/platform/lib/dispatch-read/dist/keyboard.js.map +1 -0
  30. package/payload/platform/lib/dispatch-read/dist/read.d.ts +144 -9
  31. package/payload/platform/lib/dispatch-read/dist/read.d.ts.map +1 -1
  32. package/payload/platform/lib/dispatch-read/dist/read.js +437 -118
  33. package/payload/platform/lib/dispatch-read/dist/read.js.map +1 -1
  34. package/payload/platform/lib/dispatch-read/dist/session.d.ts.map +1 -1
  35. package/payload/platform/lib/dispatch-read/dist/session.js +19 -4
  36. package/payload/platform/lib/dispatch-read/dist/session.js.map +1 -1
  37. package/payload/platform/lib/dispatch-read/dist/types.d.ts +80 -11
  38. package/payload/platform/lib/dispatch-read/dist/types.d.ts.map +1 -1
  39. package/payload/platform/lib/dispatch-read/src/__tests__/geo.test.ts +86 -0
  40. package/payload/platform/lib/dispatch-read/src/__tests__/keyboard.test.ts +124 -0
  41. package/payload/platform/lib/dispatch-read/src/__tests__/previous-visit.test.ts +98 -0
  42. package/payload/platform/lib/dispatch-read/src/__tests__/read.test.ts +107 -8
  43. package/payload/platform/lib/dispatch-read/src/__tests__/session.test.ts +91 -0
  44. package/payload/platform/lib/dispatch-read/src/__tests__/worker-day.test.ts +215 -10
  45. package/payload/platform/lib/dispatch-read/src/geo.ts +56 -0
  46. package/payload/platform/lib/dispatch-read/src/index.ts +25 -1
  47. package/payload/platform/lib/dispatch-read/src/keyboard.ts +98 -0
  48. package/payload/platform/lib/dispatch-read/src/read.ts +522 -119
  49. package/payload/platform/lib/dispatch-read/src/session.ts +25 -6
  50. package/payload/platform/lib/dispatch-read/src/types.ts +83 -11
  51. package/payload/platform/lib/dispatch-write/dist/write.d.ts +14 -0
  52. package/payload/platform/lib/dispatch-write/dist/write.d.ts.map +1 -1
  53. package/payload/platform/lib/dispatch-write/dist/write.js +50 -11
  54. package/payload/platform/lib/dispatch-write/dist/write.js.map +1 -1
  55. package/payload/platform/lib/dispatch-write/src/__tests__/write.test.ts +72 -2
  56. package/payload/platform/lib/dispatch-write/src/write.ts +79 -14
  57. package/payload/platform/neo4j/schema.cypher +66 -1
  58. package/payload/platform/package.json +2 -2
  59. package/payload/platform/plugins/admin/.claude-plugin/plugin.json +1 -1
  60. package/payload/platform/plugins/admin/PLUGIN.md +11 -3
  61. package/payload/platform/plugins/admin/hooks/__tests__/fs-schema-guard-bash.test.sh +106 -0
  62. package/payload/platform/plugins/admin/hooks/__tests__/fs-schema-guard.test.sh +66 -0
  63. package/payload/platform/plugins/admin/hooks/__tests__/html-structure-gate.test.sh +264 -0
  64. package/payload/platform/plugins/admin/hooks/__tests__/quote-render-pdf-conformance.test.sh +122 -24
  65. package/payload/platform/plugins/admin/hooks/__tests__/specialist-dispatch-gate.test.sh +158 -0
  66. package/payload/platform/plugins/admin/hooks/fs-schema-guard-bash-post.sh +85 -12
  67. package/payload/platform/plugins/admin/hooks/fs-schema-guard.sh +18 -0
  68. package/payload/platform/plugins/admin/hooks/html-structure-gate.sh +165 -0
  69. package/payload/platform/plugins/admin/hooks/quote-render-pdf-conformance.sh +111 -19
  70. package/payload/platform/plugins/admin/hooks/specialist-dispatch-gate.sh +159 -0
  71. package/payload/platform/plugins/admin/mcp/dist/admin-bind-classify.d.ts +27 -0
  72. package/payload/platform/plugins/admin/mcp/dist/admin-bind-classify.d.ts.map +1 -0
  73. package/payload/platform/plugins/admin/mcp/dist/admin-bind-classify.js +29 -0
  74. package/payload/platform/plugins/admin/mcp/dist/admin-bind-classify.js.map +1 -0
  75. package/payload/platform/plugins/admin/mcp/dist/binding-validate.d.ts +11 -0
  76. package/payload/platform/plugins/admin/mcp/dist/binding-validate.d.ts.map +1 -0
  77. package/payload/platform/plugins/admin/mcp/dist/binding-validate.js +20 -0
  78. package/payload/platform/plugins/admin/mcp/dist/binding-validate.js.map +1 -0
  79. package/payload/platform/plugins/admin/mcp/dist/index.js +133 -1
  80. package/payload/platform/plugins/admin/mcp/dist/index.js.map +1 -1
  81. package/payload/platform/plugins/admin/skills/admin-user-management/SKILL.md +31 -2
  82. package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +242 -61
  83. package/payload/platform/plugins/admin/skills/whats-new/SKILL.md +16 -0
  84. package/payload/platform/plugins/cloudflare/mcp/__tests__/portal-visits-scope.test.ts +130 -1
  85. package/payload/platform/plugins/cloudflare/skills/data-portal/schema.sql +63 -0
  86. package/payload/platform/plugins/cloudflare/skills/data-portal/template/functions/api/visits.ts +104 -3
  87. package/payload/platform/plugins/dispatch/.claude-plugin/plugin.json +1 -1
  88. package/payload/platform/plugins/dispatch/PLUGIN.md +49 -6
  89. package/payload/platform/plugins/dispatch/mcp/dist/index.js +200 -2
  90. package/payload/platform/plugins/dispatch/mcp/dist/index.js.map +1 -1
  91. package/payload/platform/plugins/dispatch/mcp/dist/lib/allocate.d.ts +22 -4
  92. package/payload/platform/plugins/dispatch/mcp/dist/lib/allocate.d.ts.map +1 -1
  93. package/payload/platform/plugins/dispatch/mcp/dist/lib/allocate.js +4 -0
  94. package/payload/platform/plugins/dispatch/mcp/dist/lib/allocate.js.map +1 -1
  95. package/payload/platform/plugins/dispatch/mcp/dist/lib/bot-token.d.ts +10 -0
  96. package/payload/platform/plugins/dispatch/mcp/dist/lib/bot-token.d.ts.map +1 -0
  97. package/payload/platform/plugins/dispatch/mcp/dist/lib/bot-token.js +47 -0
  98. package/payload/platform/plugins/dispatch/mcp/dist/lib/bot-token.js.map +1 -0
  99. package/payload/platform/plugins/dispatch/mcp/dist/lib/config.d.ts.map +1 -1
  100. package/payload/platform/plugins/dispatch/mcp/dist/lib/config.js +12 -0
  101. package/payload/platform/plugins/dispatch/mcp/dist/lib/config.js.map +1 -1
  102. package/payload/platform/plugins/dispatch/mcp/dist/lib/ids.d.ts +1 -0
  103. package/payload/platform/plugins/dispatch/mcp/dist/lib/ids.d.ts.map +1 -1
  104. package/payload/platform/plugins/dispatch/mcp/dist/lib/ids.js +1 -0
  105. package/payload/platform/plugins/dispatch/mcp/dist/lib/ids.js.map +1 -1
  106. package/payload/platform/plugins/dispatch/mcp/dist/lib/intake.d.ts +36 -0
  107. package/payload/platform/plugins/dispatch/mcp/dist/lib/intake.d.ts.map +1 -0
  108. package/payload/platform/plugins/dispatch/mcp/dist/lib/intake.js +36 -0
  109. package/payload/platform/plugins/dispatch/mcp/dist/lib/intake.js.map +1 -0
  110. package/payload/platform/plugins/dispatch/mcp/dist/lib/keyboard.d.ts +11 -0
  111. package/payload/platform/plugins/dispatch/mcp/dist/lib/keyboard.d.ts.map +1 -0
  112. package/payload/platform/plugins/dispatch/mcp/dist/lib/keyboard.js +10 -0
  113. package/payload/platform/plugins/dispatch/mcp/dist/lib/keyboard.js.map +1 -0
  114. package/payload/platform/plugins/dispatch/mcp/dist/lib/read.d.ts +2 -2
  115. package/payload/platform/plugins/dispatch/mcp/dist/lib/read.d.ts.map +1 -1
  116. package/payload/platform/plugins/dispatch/mcp/dist/lib/read.js +9 -1
  117. package/payload/platform/plugins/dispatch/mcp/dist/lib/read.js.map +1 -1
  118. package/payload/platform/plugins/dispatch/mcp/dist/lib/travel.d.ts +43 -0
  119. package/payload/platform/plugins/dispatch/mcp/dist/lib/travel.d.ts.map +1 -0
  120. package/payload/platform/plugins/dispatch/mcp/dist/lib/travel.js +53 -0
  121. package/payload/platform/plugins/dispatch/mcp/dist/lib/travel.js.map +1 -0
  122. package/payload/platform/plugins/dispatch/mcp/dist/lib/types.d.ts +13 -2
  123. package/payload/platform/plugins/dispatch/mcp/dist/lib/types.d.ts.map +1 -1
  124. package/payload/platform/plugins/dispatch/mcp/dist/scripts/converge-visit-instants.d.ts +6 -0
  125. package/payload/platform/plugins/dispatch/mcp/dist/scripts/converge-visit-instants.d.ts.map +1 -0
  126. package/payload/platform/plugins/dispatch/mcp/dist/scripts/converge-visit-instants.js +102 -0
  127. package/payload/platform/plugins/dispatch/mcp/dist/scripts/converge-visit-instants.js.map +1 -0
  128. package/payload/platform/plugins/dispatch/mcp/dist/tools/allocate.d.ts +18 -0
  129. package/payload/platform/plugins/dispatch/mcp/dist/tools/allocate.d.ts.map +1 -1
  130. package/payload/platform/plugins/dispatch/mcp/dist/tools/allocate.js +251 -40
  131. package/payload/platform/plugins/dispatch/mcp/dist/tools/allocate.js.map +1 -1
  132. package/payload/platform/plugins/dispatch/mcp/dist/tools/intake.d.ts +75 -0
  133. package/payload/platform/plugins/dispatch/mcp/dist/tools/intake.d.ts.map +1 -0
  134. package/payload/platform/plugins/dispatch/mcp/dist/tools/intake.js +194 -0
  135. package/payload/platform/plugins/dispatch/mcp/dist/tools/intake.js.map +1 -0
  136. package/payload/platform/plugins/dispatch/mcp/dist/tools/notify-worker.d.ts +61 -0
  137. package/payload/platform/plugins/dispatch/mcp/dist/tools/notify-worker.d.ts.map +1 -0
  138. package/payload/platform/plugins/dispatch/mcp/dist/tools/notify-worker.js +130 -0
  139. package/payload/platform/plugins/dispatch/mcp/dist/tools/notify-worker.js.map +1 -0
  140. package/payload/platform/plugins/dispatch/mcp/dist/tools/site-location-set.d.ts +28 -0
  141. package/payload/platform/plugins/dispatch/mcp/dist/tools/site-location-set.d.ts.map +1 -0
  142. package/payload/platform/plugins/dispatch/mcp/dist/tools/site-location-set.js +44 -0
  143. package/payload/platform/plugins/dispatch/mcp/dist/tools/site-location-set.js.map +1 -0
  144. package/payload/platform/plugins/dispatch/mcp/dist/tools/site-upsert.d.ts +43 -0
  145. package/payload/platform/plugins/dispatch/mcp/dist/tools/site-upsert.d.ts.map +1 -0
  146. package/payload/platform/plugins/dispatch/mcp/dist/tools/site-upsert.js +139 -0
  147. package/payload/platform/plugins/dispatch/mcp/dist/tools/site-upsert.js.map +1 -0
  148. package/payload/platform/plugins/dispatch/skills/dispatch-page/SKILL.md +85 -0
  149. package/payload/platform/plugins/dispatch/skills/dispatch-page/template/planner.css +97 -0
  150. package/payload/platform/plugins/dispatch/skills/dispatch-page/template/planner.html +59 -0
  151. package/payload/platform/plugins/dispatch/skills/dispatch-page/template/planner.js +343 -0
  152. package/payload/platform/plugins/dispatch/skills/dispatch-setup/SKILL.md +9 -4
  153. package/payload/platform/plugins/docs/references/admin-ui.md +71 -31
  154. package/payload/platform/plugins/docs/references/channel-wake-and-prompt.md +29 -13
  155. package/payload/platform/plugins/docs/references/dispatch.md +94 -15
  156. package/payload/platform/plugins/docs/references/internals.md +6 -0
  157. package/payload/platform/plugins/docs/references/outlook-guide.md +31 -1
  158. package/payload/platform/plugins/docs/references/troubleshooting.md +10 -0
  159. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/dispatch-vertical-coverage.test.js +4 -1
  160. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/dispatch-vertical-coverage.test.js.map +1 -1
  161. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/relationship-patterns.test.js +24 -1
  162. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/relationship-patterns.test.js.map +1 -1
  163. package/payload/platform/plugins/memory/references/schema-dispatch.md +70 -4
  164. package/payload/platform/plugins/outlook/PLUGIN.md +3 -1
  165. package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-ledger-write-sites.test.d.ts +2 -0
  166. package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-ledger-write-sites.test.d.ts.map +1 -0
  167. package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-ledger-write-sites.test.js +177 -0
  168. package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-ledger-write-sites.test.js.map +1 -0
  169. package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-ledger.test.d.ts +2 -0
  170. package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-ledger.test.d.ts.map +1 -0
  171. package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-ledger.test.js +130 -0
  172. package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-ledger.test.js.map +1 -0
  173. package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-reconcile.test.d.ts +2 -0
  174. package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-reconcile.test.d.ts.map +1 -0
  175. package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-reconcile.test.js +162 -0
  176. package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-reconcile.test.js.map +1 -0
  177. package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-state-fields.test.d.ts +2 -0
  178. package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-state-fields.test.d.ts.map +1 -0
  179. package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-state-fields.test.js +168 -0
  180. package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-state-fields.test.js.map +1 -0
  181. package/payload/platform/plugins/outlook/mcp/dist/lib/draft-ledger.d.ts +64 -0
  182. package/payload/platform/plugins/outlook/mcp/dist/lib/draft-ledger.d.ts.map +1 -0
  183. package/payload/platform/plugins/outlook/mcp/dist/lib/draft-ledger.js +110 -0
  184. package/payload/platform/plugins/outlook/mcp/dist/lib/draft-ledger.js.map +1 -0
  185. package/payload/platform/plugins/outlook/mcp/dist/lib/draft-reconcile.d.ts +119 -0
  186. package/payload/platform/plugins/outlook/mcp/dist/lib/draft-reconcile.d.ts.map +1 -0
  187. package/payload/platform/plugins/outlook/mcp/dist/lib/draft-reconcile.js +0 -0
  188. package/payload/platform/plugins/outlook/mcp/dist/lib/draft-reconcile.js.map +1 -0
  189. package/payload/platform/plugins/outlook/mcp/dist/scripts/draft-reconcile.d.ts +8 -0
  190. package/payload/platform/plugins/outlook/mcp/dist/scripts/draft-reconcile.d.ts.map +1 -0
  191. package/payload/platform/plugins/outlook/mcp/dist/scripts/draft-reconcile.js +247 -0
  192. package/payload/platform/plugins/outlook/mcp/dist/scripts/draft-reconcile.js.map +1 -0
  193. package/payload/platform/plugins/outlook/mcp/dist/tools/draft-send.d.ts.map +1 -1
  194. package/payload/platform/plugins/outlook/mcp/dist/tools/draft-send.js +10 -0
  195. package/payload/platform/plugins/outlook/mcp/dist/tools/draft-send.js.map +1 -1
  196. package/payload/platform/plugins/outlook/mcp/dist/tools/draft.d.ts.map +1 -1
  197. package/payload/platform/plugins/outlook/mcp/dist/tools/draft.js +21 -0
  198. package/payload/platform/plugins/outlook/mcp/dist/tools/draft.js.map +1 -1
  199. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-fetch-body.d.ts +16 -0
  200. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-fetch-body.d.ts.map +1 -1
  201. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-fetch-body.js +5 -1
  202. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-fetch-body.js.map +1 -1
  203. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-list.d.ts +4 -0
  204. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-list.d.ts.map +1 -1
  205. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-list.js +2 -1
  206. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-list.js.map +1 -1
  207. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-reply.d.ts.map +1 -1
  208. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-reply.js +24 -0
  209. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-reply.js.map +1 -1
  210. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-search.d.ts.map +1 -1
  211. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-search.js +2 -1
  212. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-search.js.map +1 -1
  213. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-send.d.ts.map +1 -1
  214. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-send.js +29 -0
  215. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-send.js.map +1 -1
  216. package/payload/platform/plugins/scheduling/mcp/dist/__tests__/draft-reconcile-throttle.test.d.ts +2 -0
  217. package/payload/platform/plugins/scheduling/mcp/dist/__tests__/draft-reconcile-throttle.test.d.ts.map +1 -0
  218. package/payload/platform/plugins/scheduling/mcp/dist/__tests__/draft-reconcile-throttle.test.js +21 -0
  219. package/payload/platform/plugins/scheduling/mcp/dist/__tests__/draft-reconcile-throttle.test.js.map +1 -0
  220. package/payload/platform/plugins/scheduling/mcp/dist/lib/draft-reconcile-throttle.d.ts +13 -0
  221. package/payload/platform/plugins/scheduling/mcp/dist/lib/draft-reconcile-throttle.d.ts.map +1 -0
  222. package/payload/platform/plugins/scheduling/mcp/dist/lib/draft-reconcile-throttle.js +10 -0
  223. package/payload/platform/plugins/scheduling/mcp/dist/lib/draft-reconcile-throttle.js.map +1 -0
  224. package/payload/platform/plugins/scheduling/mcp/dist/lib/time-format.d.ts +2 -35
  225. package/payload/platform/plugins/scheduling/mcp/dist/lib/time-format.d.ts.map +1 -1
  226. package/payload/platform/plugins/scheduling/mcp/dist/lib/time-format.js +6 -114
  227. package/payload/platform/plugins/scheduling/mcp/dist/lib/time-format.js.map +1 -1
  228. package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.js +54 -0
  229. package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.js.map +1 -1
  230. package/payload/platform/plugins/scheduling/mcp/dist/scripts/converge-startdate-utc.d.ts +1 -1
  231. package/payload/platform/plugins/scheduling/mcp/dist/scripts/converge-startdate-utc.js +3 -3
  232. package/payload/platform/plugins/scheduling/mcp/dist/scripts/converge-startdate-utc.js.map +1 -1
  233. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-event.js +2 -2
  234. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-event.js.map +1 -1
  235. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-update.js +3 -3
  236. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-update.js.map +1 -1
  237. package/payload/platform/services/claude-session-manager/dist/authored-specialist-tools.d.ts +32 -0
  238. package/payload/platform/services/claude-session-manager/dist/authored-specialist-tools.d.ts.map +1 -0
  239. package/payload/platform/services/claude-session-manager/dist/authored-specialist-tools.js +144 -0
  240. package/payload/platform/services/claude-session-manager/dist/authored-specialist-tools.js.map +1 -0
  241. package/payload/platform/services/claude-session-manager/dist/blocked-tool-census.d.ts +40 -6
  242. package/payload/platform/services/claude-session-manager/dist/blocked-tool-census.d.ts.map +1 -1
  243. package/payload/platform/services/claude-session-manager/dist/blocked-tool-census.js +116 -15
  244. package/payload/platform/services/claude-session-manager/dist/blocked-tool-census.js.map +1 -1
  245. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.d.ts.map +1 -1
  246. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js +7 -0
  247. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js.map +1 -1
  248. package/payload/platform/services/claude-session-manager/dist/html-structure-census.d.ts +44 -0
  249. package/payload/platform/services/claude-session-manager/dist/html-structure-census.d.ts.map +1 -0
  250. package/payload/platform/services/claude-session-manager/dist/html-structure-census.js +185 -0
  251. package/payload/platform/services/claude-session-manager/dist/html-structure-census.js.map +1 -0
  252. package/payload/platform/services/claude-session-manager/dist/index.js +125 -0
  253. package/payload/platform/services/claude-session-manager/dist/index.js.map +1 -1
  254. package/payload/platform/services/claude-session-manager/dist/quote-delivery-reconcile.d.ts.map +1 -1
  255. package/payload/platform/services/claude-session-manager/dist/quote-delivery-reconcile.js +7 -0
  256. package/payload/platform/services/claude-session-manager/dist/quote-delivery-reconcile.js.map +1 -1
  257. package/payload/platform/services/claude-session-manager/dist/quote-print-census.d.ts +42 -0
  258. package/payload/platform/services/claude-session-manager/dist/quote-print-census.d.ts.map +1 -0
  259. package/payload/platform/services/claude-session-manager/dist/quote-print-census.js +254 -0
  260. package/payload/platform/services/claude-session-manager/dist/quote-print-census.js.map +1 -0
  261. package/payload/platform/services/claude-session-manager/dist/specialist-census.d.ts +92 -0
  262. package/payload/platform/services/claude-session-manager/dist/specialist-census.d.ts.map +1 -0
  263. package/payload/platform/services/claude-session-manager/dist/specialist-census.js +227 -0
  264. package/payload/platform/services/claude-session-manager/dist/specialist-census.js.map +1 -0
  265. package/payload/platform/services/telegram-channel/dist/notification.d.ts +0 -12
  266. package/payload/platform/services/telegram-channel/dist/notification.d.ts.map +1 -1
  267. package/payload/platform/services/telegram-channel/dist/notification.js +8 -29
  268. package/payload/platform/services/telegram-channel/dist/notification.js.map +1 -1
  269. package/payload/platform/services/telegram-channel/dist/server.d.ts.map +1 -1
  270. package/payload/platform/services/telegram-channel/dist/server.js +8 -11
  271. package/payload/platform/services/telegram-channel/dist/server.js.map +1 -1
  272. package/payload/platform/templates/account-settings.json +8 -4
  273. package/payload/server/public/activity.html +7 -7
  274. package/payload/server/public/agents.html +6 -6
  275. package/payload/server/public/assets/AdminLoginScreens-BLGZEaKU.js +1 -0
  276. package/payload/server/public/assets/AdminLoginScreens-BLGZEaKU.js.br +0 -0
  277. package/payload/server/public/assets/AdminLoginScreens-BLGZEaKU.js.gz +0 -0
  278. package/payload/server/public/assets/AdminShell-C_M7YE5Z.js +3 -0
  279. package/payload/server/public/assets/AdminShell-C_M7YE5Z.js.br +0 -0
  280. package/payload/server/public/assets/AdminShell-C_M7YE5Z.js.gz +0 -0
  281. package/payload/server/public/assets/activity-BL6qbB9a.js +1 -0
  282. package/payload/server/public/assets/activity-BL6qbB9a.js.br +0 -0
  283. package/payload/server/public/assets/activity-BL6qbB9a.js.gz +0 -0
  284. package/payload/server/public/assets/admin-jnJ3P2u4.js +1 -0
  285. package/payload/server/public/assets/admin-jnJ3P2u4.js.br +0 -0
  286. package/payload/server/public/assets/admin-jnJ3P2u4.js.gz +0 -0
  287. package/payload/server/public/assets/agents-BzhfKZDN.js +1 -0
  288. package/payload/server/public/assets/agents-BzhfKZDN.js.br +0 -0
  289. package/payload/server/public/assets/agents-BzhfKZDN.js.gz +0 -0
  290. package/payload/server/public/assets/arc-Bge2fWf4.js +1 -0
  291. package/payload/server/public/assets/arc-Bge2fWf4.js.br +0 -0
  292. package/payload/server/public/assets/arc-Bge2fWf4.js.gz +0 -0
  293. package/payload/server/public/assets/architecture-YZFGNWBL-B9jqFTbw.js +1 -0
  294. package/payload/server/public/assets/architecture-YZFGNWBL-B9jqFTbw.js.br +0 -0
  295. package/payload/server/public/assets/architectureDiagram-Q4EWVU46-BRauf5b8.js +36 -0
  296. package/payload/server/public/assets/architectureDiagram-Q4EWVU46-BRauf5b8.js.br +0 -0
  297. package/payload/server/public/assets/architectureDiagram-Q4EWVU46-BRauf5b8.js.gz +0 -0
  298. package/payload/server/public/assets/blockDiagram-DXYQGD6D-CUJ554WZ.js +132 -0
  299. package/payload/server/public/assets/blockDiagram-DXYQGD6D-CUJ554WZ.js.br +0 -0
  300. package/payload/server/public/assets/blockDiagram-DXYQGD6D-CUJ554WZ.js.gz +0 -0
  301. package/payload/server/public/assets/browser-C-6io2B9.js +1 -0
  302. package/payload/server/public/assets/browser-C-6io2B9.js.br +0 -0
  303. package/payload/server/public/assets/browser-C-6io2B9.js.gz +0 -0
  304. package/payload/server/public/assets/c4Diagram-AHTNJAMY-CV9gKsKo.js +10 -0
  305. package/payload/server/public/assets/c4Diagram-AHTNJAMY-CV9gKsKo.js.br +0 -0
  306. package/payload/server/public/assets/c4Diagram-AHTNJAMY-CV9gKsKo.js.gz +0 -0
  307. package/payload/server/public/assets/calendar-Dt3gS88s.js +1 -0
  308. package/payload/server/public/assets/calendar-Dt3gS88s.js.br +0 -0
  309. package/payload/server/public/assets/calendar-Dt3gS88s.js.gz +0 -0
  310. package/payload/server/public/assets/channel-DUwJcjZw.js +1 -0
  311. package/payload/server/public/assets/channel-DUwJcjZw.js.br +0 -0
  312. package/payload/server/public/assets/chat-IUOvVkL-.js +1 -0
  313. package/payload/server/public/assets/chat-IUOvVkL-.js.br +1 -0
  314. package/payload/server/public/assets/chat-IUOvVkL-.js.gz +0 -0
  315. package/payload/server/public/assets/chevron-left-DSzR9zR7.js +1 -0
  316. package/payload/server/public/assets/chevron-left-DSzR9zR7.js.br +0 -0
  317. package/payload/server/public/assets/chunk-2KRD3SAO-HzWGrran.js +1 -0
  318. package/payload/server/public/assets/chunk-2KRD3SAO-HzWGrran.js.br +0 -0
  319. package/payload/server/public/assets/chunk-2KRD3SAO-HzWGrran.js.gz +0 -0
  320. package/payload/server/public/assets/chunk-336JU56O-ChGDYu_S.js +2 -0
  321. package/payload/server/public/assets/chunk-336JU56O-ChGDYu_S.js.br +0 -0
  322. package/payload/server/public/assets/chunk-336JU56O-ChGDYu_S.js.gz +0 -0
  323. package/payload/server/public/assets/chunk-426QAEUC-DLLi1nAr.js +1 -0
  324. package/payload/server/public/assets/chunk-426QAEUC-DLLi1nAr.js.br +0 -0
  325. package/payload/server/public/assets/chunk-426QAEUC-DLLi1nAr.js.gz +0 -0
  326. package/payload/server/public/assets/chunk-4BX2VUAB-BJunAy2u.js +1 -0
  327. package/payload/server/public/assets/chunk-4BX2VUAB-BJunAy2u.js.br +0 -0
  328. package/payload/server/public/assets/chunk-4BX2VUAB-BJunAy2u.js.gz +0 -0
  329. package/payload/server/public/assets/chunk-4TB4RGXK-Df9Ew0fN.js +206 -0
  330. package/payload/server/public/assets/chunk-4TB4RGXK-Df9Ew0fN.js.br +0 -0
  331. package/payload/server/public/assets/chunk-4TB4RGXK-Df9Ew0fN.js.gz +0 -0
  332. package/payload/server/public/assets/chunk-55IACEB6-DtquCg7p.js +1 -0
  333. package/payload/server/public/assets/chunk-55IACEB6-DtquCg7p.js.br +0 -0
  334. package/payload/server/public/assets/chunk-55IACEB6-DtquCg7p.js.gz +0 -0
  335. package/payload/server/public/assets/chunk-5FUZZQ4R-B3s1YuQa.js +62 -0
  336. package/payload/server/public/assets/chunk-5FUZZQ4R-B3s1YuQa.js.br +0 -0
  337. package/payload/server/public/assets/chunk-5FUZZQ4R-B3s1YuQa.js.gz +0 -0
  338. package/payload/server/public/assets/chunk-5PVQY5BW-C0bRnMKQ.js +2 -0
  339. package/payload/server/public/assets/chunk-5PVQY5BW-C0bRnMKQ.js.br +0 -0
  340. package/payload/server/public/assets/chunk-5PVQY5BW-C0bRnMKQ.js.gz +0 -0
  341. package/payload/server/public/assets/chunk-67CJDMHE-B9jxnEpu.js +1 -0
  342. package/payload/server/public/assets/chunk-67CJDMHE-B9jxnEpu.js.br +0 -0
  343. package/payload/server/public/assets/chunk-67CJDMHE-B9jxnEpu.js.gz +0 -0
  344. package/payload/server/public/assets/chunk-7N4EOEYR-DaimaIlO.js +1 -0
  345. package/payload/server/public/assets/chunk-7N4EOEYR-DaimaIlO.js.br +0 -0
  346. package/payload/server/public/assets/chunk-7N4EOEYR-DaimaIlO.js.gz +0 -0
  347. package/payload/server/public/assets/chunk-AA7GKIK3-htgz4y5z.js +1 -0
  348. package/payload/server/public/assets/chunk-AA7GKIK3-htgz4y5z.js.br +0 -0
  349. package/payload/server/public/assets/chunk-AA7GKIK3-htgz4y5z.js.gz +0 -0
  350. package/payload/server/public/assets/chunk-BSJP7CBP-0xBlnKJN.js +1 -0
  351. package/payload/server/public/assets/chunk-BSJP7CBP-0xBlnKJN.js.br +0 -0
  352. package/payload/server/public/assets/chunk-BSJP7CBP-0xBlnKJN.js.gz +0 -0
  353. package/payload/server/public/assets/chunk-CIAEETIT-HZOrcAzJ.js +1 -0
  354. package/payload/server/public/assets/chunk-CIAEETIT-HZOrcAzJ.js.br +0 -0
  355. package/payload/server/public/assets/chunk-CIAEETIT-HZOrcAzJ.js.gz +0 -0
  356. package/payload/server/public/assets/chunk-EDXVE4YY-CC8hCcuU.js +1 -0
  357. package/payload/server/public/assets/chunk-EDXVE4YY-CC8hCcuU.js.br +0 -0
  358. package/payload/server/public/assets/chunk-EDXVE4YY-CC8hCcuU.js.gz +0 -0
  359. package/payload/server/public/assets/chunk-ENJZ2VHE-BdPfdZYB.js +10 -0
  360. package/payload/server/public/assets/chunk-ENJZ2VHE-BdPfdZYB.js.br +0 -0
  361. package/payload/server/public/assets/chunk-ENJZ2VHE-BdPfdZYB.js.gz +0 -0
  362. package/payload/server/public/assets/chunk-FMBD7UC4-MHdn_KgF.js +15 -0
  363. package/payload/server/public/assets/chunk-FMBD7UC4-MHdn_KgF.js.br +0 -0
  364. package/payload/server/public/assets/chunk-FMBD7UC4-MHdn_KgF.js.gz +0 -0
  365. package/payload/server/public/assets/chunk-FOC6F5B3-Ti8BlQKX.js +1 -0
  366. package/payload/server/public/assets/chunk-FOC6F5B3-Ti8BlQKX.js.br +0 -0
  367. package/payload/server/public/assets/chunk-FOC6F5B3-Ti8BlQKX.js.gz +0 -0
  368. package/payload/server/public/assets/chunk-ICPOFSXX-BP8A8zb1.js +122 -0
  369. package/payload/server/public/assets/chunk-ICPOFSXX-BP8A8zb1.js.br +0 -0
  370. package/payload/server/public/assets/chunk-ICPOFSXX-BP8A8zb1.js.gz +0 -0
  371. package/payload/server/public/assets/chunk-K5T4RW27-F30EnSBL.js +94 -0
  372. package/payload/server/public/assets/chunk-K5T4RW27-F30EnSBL.js.br +0 -0
  373. package/payload/server/public/assets/chunk-K5T4RW27-F30EnSBL.js.gz +0 -0
  374. package/payload/server/public/assets/chunk-KGLVRYIC-DNSEkg2Q.js +1 -0
  375. package/payload/server/public/assets/chunk-KGLVRYIC-DNSEkg2Q.js.br +2 -0
  376. package/payload/server/public/assets/chunk-KGLVRYIC-DNSEkg2Q.js.gz +0 -0
  377. package/payload/server/public/assets/chunk-LIHQZDEY-DM7b0dec.js +1 -0
  378. package/payload/server/public/assets/chunk-LIHQZDEY-DM7b0dec.js.br +0 -0
  379. package/payload/server/public/assets/chunk-LIHQZDEY-DM7b0dec.js.gz +0 -0
  380. package/payload/server/public/assets/chunk-ORNJ4GCN-B0qoI_vp.js +1 -0
  381. package/payload/server/public/assets/chunk-ORNJ4GCN-B0qoI_vp.js.br +0 -0
  382. package/payload/server/public/assets/chunk-ORNJ4GCN-B0qoI_vp.js.gz +0 -0
  383. package/payload/server/public/assets/chunk-OYMX7WX6-Bfzo53eI.js +231 -0
  384. package/payload/server/public/assets/chunk-OYMX7WX6-Bfzo53eI.js.br +0 -0
  385. package/payload/server/public/assets/chunk-OYMX7WX6-Bfzo53eI.js.gz +0 -0
  386. package/payload/server/public/assets/chunk-QZHKN3VN-A6b8ZN9i.js +1 -0
  387. package/payload/server/public/assets/chunk-QZHKN3VN-A6b8ZN9i.js.br +0 -0
  388. package/payload/server/public/assets/chunk-QZHKN3VN-A6b8ZN9i.js.gz +0 -0
  389. package/payload/server/public/assets/chunk-U2HBQHQK-DcqGPXEy.js +70 -0
  390. package/payload/server/public/assets/chunk-U2HBQHQK-DcqGPXEy.js.br +0 -0
  391. package/payload/server/public/assets/chunk-U2HBQHQK-DcqGPXEy.js.gz +0 -0
  392. package/payload/server/public/assets/chunk-X2U36JSP-DtRi7n5Z.js +1 -0
  393. package/payload/server/public/assets/chunk-X2U36JSP-DtRi7n5Z.js.br +0 -0
  394. package/payload/server/public/assets/chunk-X2U36JSP-DtRi7n5Z.js.gz +0 -0
  395. package/payload/server/public/assets/chunk-XPW4576I-DmuDCcY3.js +32 -0
  396. package/payload/server/public/assets/chunk-XPW4576I-DmuDCcY3.js.br +0 -0
  397. package/payload/server/public/assets/chunk-XPW4576I-DmuDCcY3.js.gz +0 -0
  398. package/payload/server/public/assets/chunk-YZCP3GAM-oKk9Gv_e.js +1 -0
  399. package/payload/server/public/assets/chunk-YZCP3GAM-oKk9Gv_e.js.br +0 -0
  400. package/payload/server/public/assets/chunk-YZCP3GAM-oKk9Gv_e.js.gz +0 -0
  401. package/payload/server/public/assets/chunk-ZZ45TVLE-teET41Yh.js +1 -0
  402. package/payload/server/public/assets/chunk-ZZ45TVLE-teET41Yh.js.br +0 -0
  403. package/payload/server/public/assets/chunk-ZZ45TVLE-teET41Yh.js.gz +0 -0
  404. package/payload/server/public/assets/classDiagram-6PBFFD2Q-CMXajSzA.js +1 -0
  405. package/payload/server/public/assets/classDiagram-6PBFFD2Q-CMXajSzA.js.br +0 -0
  406. package/payload/server/public/assets/classDiagram-6PBFFD2Q-CMXajSzA.js.gz +0 -0
  407. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-Cz5Kib2r.js +1 -0
  408. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-Cz5Kib2r.js.br +0 -0
  409. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-Cz5Kib2r.js.gz +0 -0
  410. package/payload/server/public/assets/clock-C5xE5p2I.js +1 -0
  411. package/payload/server/public/assets/clock-C5xE5p2I.js.br +0 -0
  412. package/payload/server/public/assets/clone-BORhq8On.js +1 -0
  413. package/payload/server/public/assets/clone-BORhq8On.js.br +0 -0
  414. package/payload/server/public/assets/copy-TkPJgllS.js +1 -0
  415. package/payload/server/public/assets/copy-TkPJgllS.js.br +0 -0
  416. package/payload/server/public/assets/copy-TkPJgllS.js.gz +0 -0
  417. package/payload/server/public/assets/cose-bilkent-S5V4N54A-D1xLpHGm.js +1 -0
  418. package/payload/server/public/assets/cose-bilkent-S5V4N54A-D1xLpHGm.js.br +0 -0
  419. package/payload/server/public/assets/cose-bilkent-S5V4N54A-D1xLpHGm.js.gz +0 -0
  420. package/payload/server/public/assets/dagre-KV5264BT-Byl65NKT.js +4 -0
  421. package/payload/server/public/assets/dagre-KV5264BT-Byl65NKT.js.br +0 -0
  422. package/payload/server/public/assets/dagre-KV5264BT-Byl65NKT.js.gz +0 -0
  423. package/payload/server/public/assets/dagre-ZzXkSDir.js +1 -0
  424. package/payload/server/public/assets/dagre-ZzXkSDir.js.br +0 -0
  425. package/payload/server/public/assets/dagre-ZzXkSDir.js.gz +0 -0
  426. package/payload/server/public/assets/data-Bhv0Pvfl.js +1 -0
  427. package/payload/server/public/assets/data-Bhv0Pvfl.js.br +0 -0
  428. package/payload/server/public/assets/data-Bhv0Pvfl.js.gz +0 -0
  429. package/payload/server/public/assets/diagram-5BDNPKRD-BFNkV5GK.js +10 -0
  430. package/payload/server/public/assets/diagram-5BDNPKRD-BFNkV5GK.js.br +0 -0
  431. package/payload/server/public/assets/diagram-5BDNPKRD-BFNkV5GK.js.gz +0 -0
  432. package/payload/server/public/assets/diagram-G4DWMVQ6-1n6vHXzR.js +24 -0
  433. package/payload/server/public/assets/diagram-G4DWMVQ6-1n6vHXzR.js.br +0 -0
  434. package/payload/server/public/assets/diagram-G4DWMVQ6-1n6vHXzR.js.gz +0 -0
  435. package/payload/server/public/assets/diagram-MMDJMWI5-D4QOzaw0.js +43 -0
  436. package/payload/server/public/assets/diagram-MMDJMWI5-D4QOzaw0.js.br +0 -0
  437. package/payload/server/public/assets/diagram-MMDJMWI5-D4QOzaw0.js.gz +0 -0
  438. package/payload/server/public/assets/diagram-TYMM5635-z8lBRsaV.js +24 -0
  439. package/payload/server/public/assets/diagram-TYMM5635-z8lBRsaV.js.br +0 -0
  440. package/payload/server/public/assets/diagram-TYMM5635-z8lBRsaV.js.gz +0 -0
  441. package/payload/server/public/assets/dist-DjYA4E4S.js +1 -0
  442. package/payload/server/public/assets/dist-DjYA4E4S.js.br +0 -0
  443. package/payload/server/public/assets/dist-DjYA4E4S.js.gz +0 -0
  444. package/payload/server/public/assets/erDiagram-SMLLAGMA-CXj3tbtX.js +85 -0
  445. package/payload/server/public/assets/erDiagram-SMLLAGMA-CXj3tbtX.js.br +0 -0
  446. package/payload/server/public/assets/erDiagram-SMLLAGMA-CXj3tbtX.js.gz +0 -0
  447. package/payload/server/public/assets/field-B490-evJ.js +1 -0
  448. package/payload/server/public/assets/field-B490-evJ.js.br +0 -0
  449. package/payload/server/public/assets/field-B490-evJ.js.gz +0 -0
  450. package/payload/server/public/assets/file-text-DyAL2DCh.js +1 -0
  451. package/payload/server/public/assets/file-text-DyAL2DCh.js.br +0 -0
  452. package/payload/server/public/assets/file-text-DyAL2DCh.js.gz +0 -0
  453. package/payload/server/public/assets/flatten-UdUTbm8v.js +1 -0
  454. package/payload/server/public/assets/flatten-UdUTbm8v.js.br +0 -0
  455. package/payload/server/public/assets/flatten-UdUTbm8v.js.gz +0 -0
  456. package/payload/server/public/assets/flowDiagram-DWJPFMVM-DnySI-I4.js +162 -0
  457. package/payload/server/public/assets/flowDiagram-DWJPFMVM-DnySI-I4.js.br +0 -0
  458. package/payload/server/public/assets/flowDiagram-DWJPFMVM-DnySI-I4.js.gz +0 -0
  459. package/payload/server/public/assets/ganttDiagram-T4ZO3ILL-BIE2Q78F.js +292 -0
  460. package/payload/server/public/assets/ganttDiagram-T4ZO3ILL-BIE2Q78F.js.br +0 -0
  461. package/payload/server/public/assets/ganttDiagram-T4ZO3ILL-BIE2Q78F.js.gz +0 -0
  462. package/payload/server/public/assets/gitGraph-7Q5UKJZL-Ua2z-DNt.js +1 -0
  463. package/payload/server/public/assets/gitGraph-7Q5UKJZL-Ua2z-DNt.js.br +0 -0
  464. package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-B2RTRpyG.js +106 -0
  465. package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-B2RTRpyG.js.br +0 -0
  466. package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-B2RTRpyG.js.gz +0 -0
  467. package/payload/server/public/assets/graph-PiNIcCfX.js +51 -0
  468. package/payload/server/public/assets/graph-PiNIcCfX.js.br +0 -0
  469. package/payload/server/public/assets/graph-PiNIcCfX.js.gz +0 -0
  470. package/payload/server/public/assets/graph-labels-8jKFrLHn.js +1 -0
  471. package/payload/server/public/assets/graph-labels-8jKFrLHn.js.br +0 -0
  472. package/payload/server/public/assets/graph-labels-8jKFrLHn.js.gz +0 -0
  473. package/payload/server/public/assets/graphlib-SOh92ucm.js +1 -0
  474. package/payload/server/public/assets/graphlib-SOh92ucm.js.br +0 -0
  475. package/payload/server/public/assets/graphlib-SOh92ucm.js.gz +0 -0
  476. package/payload/server/public/assets/info-OMHHGYJF-CNYp42iX.js +1 -0
  477. package/payload/server/public/assets/info-OMHHGYJF-CNYp42iX.js.br +0 -0
  478. package/payload/server/public/assets/infoDiagram-42DDH7IO-DklHffYr.js +2 -0
  479. package/payload/server/public/assets/infoDiagram-42DDH7IO-DklHffYr.js.br +0 -0
  480. package/payload/server/public/assets/infoDiagram-42DDH7IO-DklHffYr.js.gz +0 -0
  481. package/payload/server/public/assets/isEmpty-DY_Xp9Na.js +1 -0
  482. package/payload/server/public/assets/isEmpty-DY_Xp9Na.js.br +0 -0
  483. package/payload/server/public/assets/isEmpty-DY_Xp9Na.js.gz +0 -0
  484. package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-KAC06i3M.js +70 -0
  485. package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-KAC06i3M.js.br +0 -0
  486. package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-KAC06i3M.js.gz +0 -0
  487. package/payload/server/public/assets/journeyDiagram-VCZTEJTY-cA37ob8S.js +139 -0
  488. package/payload/server/public/assets/journeyDiagram-VCZTEJTY-cA37ob8S.js.br +0 -0
  489. package/payload/server/public/assets/journeyDiagram-VCZTEJTY-cA37ob8S.js.gz +0 -0
  490. package/payload/server/public/assets/jsx-runtime-ChVh0xOm.css +1 -0
  491. package/payload/server/public/assets/jsx-runtime-ChVh0xOm.css.br +0 -0
  492. package/payload/server/public/assets/jsx-runtime-ChVh0xOm.css.gz +0 -0
  493. package/payload/server/public/assets/jsx-runtime-YcUntiud.js +9 -0
  494. package/payload/server/public/assets/jsx-runtime-YcUntiud.js.br +0 -0
  495. package/payload/server/public/assets/jsx-runtime-YcUntiud.js.gz +0 -0
  496. package/payload/server/public/assets/kanban-definition-6JOO6SKY-CBjL70wU.js +89 -0
  497. package/payload/server/public/assets/kanban-definition-6JOO6SKY-CBjL70wU.js.br +0 -0
  498. package/payload/server/public/assets/kanban-definition-6JOO6SKY-CBjL70wU.js.gz +0 -0
  499. package/payload/server/public/assets/line-K8229GLG.js +1 -0
  500. package/payload/server/public/assets/line-K8229GLG.js.br +0 -0
  501. package/payload/server/public/assets/line-K8229GLG.js.gz +0 -0
  502. package/payload/server/public/assets/linear-DeX7Wdt6.js +1 -0
  503. package/payload/server/public/assets/linear-DeX7Wdt6.js.br +0 -0
  504. package/payload/server/public/assets/linear-DeX7Wdt6.js.gz +0 -0
  505. package/payload/server/public/assets/mermaid-parser.core-OnNOAzPX.js +4 -0
  506. package/payload/server/public/assets/mermaid-parser.core-OnNOAzPX.js.br +0 -0
  507. package/payload/server/public/assets/mermaid-parser.core-OnNOAzPX.js.gz +0 -0
  508. package/payload/server/public/assets/mermaid.core-DA-Gezeo.js +11 -0
  509. package/payload/server/public/assets/mermaid.core-DA-Gezeo.js.br +0 -0
  510. package/payload/server/public/assets/mermaid.core-DA-Gezeo.js.gz +0 -0
  511. package/payload/server/public/assets/mindmap-definition-QFDTVHPH-C24TcDyS.js +96 -0
  512. package/payload/server/public/assets/mindmap-definition-QFDTVHPH-C24TcDyS.js.br +0 -0
  513. package/payload/server/public/assets/mindmap-definition-QFDTVHPH-C24TcDyS.js.gz +0 -0
  514. package/payload/server/public/assets/operator-DKGKGzrb.js +1 -0
  515. package/payload/server/public/assets/operator-DKGKGzrb.js.br +0 -0
  516. package/payload/server/public/assets/operator-DKGKGzrb.js.gz +0 -0
  517. package/payload/server/public/assets/ordinal-gnpqfIHn.js +1 -0
  518. package/payload/server/public/assets/ordinal-gnpqfIHn.js.br +0 -0
  519. package/payload/server/public/assets/ordinal-gnpqfIHn.js.gz +0 -0
  520. package/payload/server/public/assets/packet-4T2RLAQJ-B3ZAElsg.js +1 -0
  521. package/payload/server/public/assets/packet-4T2RLAQJ-B3ZAElsg.js.br +0 -0
  522. package/payload/server/public/assets/page-BU5vlY9Y.js +1 -0
  523. package/payload/server/public/assets/page-BU5vlY9Y.js.br +0 -0
  524. package/payload/server/public/assets/page-BU5vlY9Y.js.gz +0 -0
  525. package/payload/server/public/assets/page-DXz_K10G.js +32 -0
  526. package/payload/server/public/assets/page-DXz_K10G.js.br +0 -0
  527. package/payload/server/public/assets/page-DXz_K10G.js.gz +0 -0
  528. package/payload/server/public/assets/pdf-render-B5af7vu1.js +11 -0
  529. package/payload/server/public/assets/pdf-render-B5af7vu1.js.br +0 -0
  530. package/payload/server/public/assets/pdf-render-B5af7vu1.js.gz +0 -0
  531. package/payload/server/public/assets/pie-ZZUOXDRM-BWsRCj8p.js +1 -0
  532. package/payload/server/public/assets/pie-ZZUOXDRM-BWsRCj8p.js.br +0 -0
  533. package/payload/server/public/assets/pieDiagram-DEJITSTG-ChS9jalQ.js +30 -0
  534. package/payload/server/public/assets/pieDiagram-DEJITSTG-ChS9jalQ.js.br +0 -0
  535. package/payload/server/public/assets/pieDiagram-DEJITSTG-ChS9jalQ.js.gz +0 -0
  536. package/payload/server/public/assets/play-CmSyYrB6.js +1 -0
  537. package/payload/server/public/assets/play-CmSyYrB6.js.br +0 -0
  538. package/payload/server/public/assets/play-CmSyYrB6.js.gz +0 -0
  539. package/payload/server/public/assets/public-BmA3-jLj.js +1 -0
  540. package/payload/server/public/assets/public-BmA3-jLj.js.br +0 -0
  541. package/payload/server/public/assets/public-BmA3-jLj.js.gz +0 -0
  542. package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-BxLfRK0z.js +7 -0
  543. package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-BxLfRK0z.js.br +0 -0
  544. package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-BxLfRK0z.js.gz +0 -0
  545. package/payload/server/public/assets/radar-PYXPWWZC-Gxbt2rGT.js +1 -0
  546. package/payload/server/public/assets/radar-PYXPWWZC-Gxbt2rGT.js.br +0 -0
  547. package/payload/server/public/assets/reduce-BvezuHIe.js +1 -0
  548. package/payload/server/public/assets/reduce-BvezuHIe.js.br +0 -0
  549. package/payload/server/public/assets/reduce-BvezuHIe.js.gz +0 -0
  550. package/payload/server/public/assets/requirementDiagram-MS252O5E-CWy48VI3.js +84 -0
  551. package/payload/server/public/assets/requirementDiagram-MS252O5E-CWy48VI3.js.br +0 -0
  552. package/payload/server/public/assets/requirementDiagram-MS252O5E-CWy48VI3.js.gz +0 -0
  553. package/payload/server/public/assets/rotate-ccw-fCH0LSMq.js +1 -0
  554. package/payload/server/public/assets/rotate-ccw-fCH0LSMq.js.br +0 -0
  555. package/payload/server/public/assets/rotate-ccw-fCH0LSMq.js.gz +0 -0
  556. package/payload/server/public/assets/routines-BeFrmkls.js +2 -0
  557. package/payload/server/public/assets/routines-BeFrmkls.js.br +0 -0
  558. package/payload/server/public/assets/routines-BeFrmkls.js.gz +0 -0
  559. package/payload/server/public/assets/sankeyDiagram-XADWPNL6-BBCLEJA3.js +10 -0
  560. package/payload/server/public/assets/sankeyDiagram-XADWPNL6-BBCLEJA3.js.br +0 -0
  561. package/payload/server/public/assets/sankeyDiagram-XADWPNL6-BBCLEJA3.js.gz +0 -0
  562. package/payload/server/public/assets/sequenceDiagram-FGHM5R23-wu64F04G.js +157 -0
  563. package/payload/server/public/assets/sequenceDiagram-FGHM5R23-wu64F04G.js.br +0 -0
  564. package/payload/server/public/assets/sequenceDiagram-FGHM5R23-wu64F04G.js.gz +0 -0
  565. package/payload/server/public/assets/skills-mjls5HBa.js +1 -0
  566. package/payload/server/public/assets/skills-mjls5HBa.js.br +0 -0
  567. package/payload/server/public/assets/skills-mjls5HBa.js.gz +0 -0
  568. package/payload/server/public/assets/src-BvINb2fL.js +1 -0
  569. package/payload/server/public/assets/src-BvINb2fL.js.br +0 -0
  570. package/payload/server/public/assets/src-BvINb2fL.js.gz +0 -0
  571. package/payload/server/public/assets/stateDiagram-FHFEXIEX-Bq6BFFDC.js +1 -0
  572. package/payload/server/public/assets/stateDiagram-FHFEXIEX-Bq6BFFDC.js.br +0 -0
  573. package/payload/server/public/assets/stateDiagram-FHFEXIEX-Bq6BFFDC.js.gz +0 -0
  574. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-PxPsWt1r.js +1 -0
  575. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-PxPsWt1r.js.br +0 -0
  576. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-PxPsWt1r.js.gz +0 -0
  577. package/payload/server/public/assets/tasks-p6puHHD0.js +3 -0
  578. package/payload/server/public/assets/tasks-p6puHHD0.js.br +0 -0
  579. package/payload/server/public/assets/tasks-p6puHHD0.js.gz +0 -0
  580. package/payload/server/public/assets/timeline-definition-GMOUNBTQ-DTdvVZp-.js +120 -0
  581. package/payload/server/public/assets/timeline-definition-GMOUNBTQ-DTdvVZp-.js.br +0 -0
  582. package/payload/server/public/assets/timeline-definition-GMOUNBTQ-DTdvVZp-.js.gz +0 -0
  583. package/payload/server/public/assets/treeView-SZITEDCU-Bl-aPmE3.js +1 -0
  584. package/payload/server/public/assets/treeView-SZITEDCU-Bl-aPmE3.js.br +0 -0
  585. package/payload/server/public/assets/treemap-W4RFUUIX-CUxE8Ofg.js +1 -0
  586. package/payload/server/public/assets/treemap-W4RFUUIX-CUxE8Ofg.js.br +0 -0
  587. package/payload/server/public/assets/triangle-alert-CrZ1ewbd.js +1 -0
  588. package/payload/server/public/assets/triangle-alert-CrZ1ewbd.js.br +0 -0
  589. package/payload/server/public/assets/triangle-alert-CrZ1ewbd.js.gz +0 -0
  590. package/payload/server/public/assets/useCopyFeedback-zOQNrIwd.js +1 -0
  591. package/payload/server/public/assets/useCopyFeedback-zOQNrIwd.js.br +0 -0
  592. package/payload/server/public/assets/useCopyFeedback-zOQNrIwd.js.gz +0 -0
  593. package/payload/server/public/assets/useMediaQuery-BmG090FR.js +6 -0
  594. package/payload/server/public/assets/useMediaQuery-BmG090FR.js.br +0 -0
  595. package/payload/server/public/assets/useMediaQuery-BmG090FR.js.gz +0 -0
  596. package/payload/server/public/assets/useVoiceRecorder-9pf6FFJ-.js +2 -0
  597. package/payload/server/public/assets/useVoiceRecorder-9pf6FFJ-.js.br +0 -0
  598. package/payload/server/public/assets/useVoiceRecorder-9pf6FFJ-.js.gz +0 -0
  599. package/payload/server/public/assets/vennDiagram-DHZGUBPP-CigqIBdl.js +34 -0
  600. package/payload/server/public/assets/vennDiagram-DHZGUBPP-CigqIBdl.js.br +0 -0
  601. package/payload/server/public/assets/vennDiagram-DHZGUBPP-CigqIBdl.js.gz +0 -0
  602. package/payload/server/public/assets/wardley-RL74JXVD-DPB13D22.js +1 -0
  603. package/payload/server/public/assets/wardley-RL74JXVD-DPB13D22.js.br +0 -0
  604. package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-VhV1plUD.js +20 -0
  605. package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-VhV1plUD.js.br +0 -0
  606. package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-VhV1plUD.js.gz +0 -0
  607. package/payload/server/public/assets/wrench-k4GYG5rc.js +1 -0
  608. package/payload/server/public/assets/wrench-k4GYG5rc.js.br +0 -0
  609. package/payload/server/public/assets/wrench-k4GYG5rc.js.gz +0 -0
  610. package/payload/server/public/assets/xychartDiagram-5P7HB3ND-DGkkNLZt.js +7 -0
  611. package/payload/server/public/assets/xychartDiagram-5P7HB3ND-DGkkNLZt.js.br +0 -0
  612. package/payload/server/public/assets/xychartDiagram-5P7HB3ND-DGkkNLZt.js.gz +0 -0
  613. package/payload/server/public/browser.html +6 -6
  614. package/payload/server/public/calendar.html +9 -9
  615. package/payload/server/public/chat.html +16 -16
  616. package/payload/server/public/data.html +15 -15
  617. package/payload/server/public/field.html +4 -4
  618. package/payload/server/public/graph.html +11 -11
  619. package/payload/server/public/index.html +17 -17
  620. package/payload/server/public/operator.html +17 -17
  621. package/payload/server/public/public.html +16 -16
  622. package/payload/server/public/routines.html +10 -10
  623. package/payload/server/public/skills.html +7 -7
  624. package/payload/server/public/tasks.html +8 -8
  625. package/payload/server/server.js +2894 -1985
  626. package/payload/platform/lib/dispatch-read/src/config.d.ts +0 -26
  627. package/payload/platform/lib/dispatch-read/src/types.d.ts +0 -143
  628. package/payload/server/public/assets/AdminLoginScreens-Dp6k1XgD.js +0 -1
  629. package/payload/server/public/assets/AdminLoginScreens-Dp6k1XgD.js.br +0 -0
  630. package/payload/server/public/assets/AdminLoginScreens-Dp6k1XgD.js.gz +0 -0
  631. package/payload/server/public/assets/AdminShell-D-wB90c3.js +0 -3
  632. package/payload/server/public/assets/AdminShell-D-wB90c3.js.br +0 -0
  633. package/payload/server/public/assets/AdminShell-D-wB90c3.js.gz +0 -0
  634. package/payload/server/public/assets/activity-BJxhblz-.js +0 -1
  635. package/payload/server/public/assets/activity-BJxhblz-.js.br +0 -0
  636. package/payload/server/public/assets/activity-BJxhblz-.js.gz +0 -0
  637. package/payload/server/public/assets/admin-DzEi8shs.js +0 -1
  638. package/payload/server/public/assets/admin-DzEi8shs.js.br +0 -0
  639. package/payload/server/public/assets/admin-DzEi8shs.js.gz +0 -0
  640. package/payload/server/public/assets/agents-DTL8kjfD.js +0 -1
  641. package/payload/server/public/assets/agents-DTL8kjfD.js.br +0 -0
  642. package/payload/server/public/assets/agents-DTL8kjfD.js.gz +0 -0
  643. package/payload/server/public/assets/arc-CWXBKNZd.js +0 -1
  644. package/payload/server/public/assets/arc-CWXBKNZd.js.br +0 -0
  645. package/payload/server/public/assets/arc-CWXBKNZd.js.gz +0 -0
  646. package/payload/server/public/assets/architecture-YZFGNWBL-CIL4I0fc.js +0 -1
  647. package/payload/server/public/assets/architecture-YZFGNWBL-CIL4I0fc.js.br +0 -0
  648. package/payload/server/public/assets/architectureDiagram-Q4EWVU46-C-KPMyG4.js +0 -36
  649. package/payload/server/public/assets/architectureDiagram-Q4EWVU46-C-KPMyG4.js.br +0 -0
  650. package/payload/server/public/assets/architectureDiagram-Q4EWVU46-C-KPMyG4.js.gz +0 -0
  651. package/payload/server/public/assets/blockDiagram-DXYQGD6D-DkYbV9Sf.js +0 -132
  652. package/payload/server/public/assets/blockDiagram-DXYQGD6D-DkYbV9Sf.js.br +0 -0
  653. package/payload/server/public/assets/blockDiagram-DXYQGD6D-DkYbV9Sf.js.gz +0 -0
  654. package/payload/server/public/assets/browser-UZp75zhx.js +0 -1
  655. package/payload/server/public/assets/browser-UZp75zhx.js.br +0 -0
  656. package/payload/server/public/assets/browser-UZp75zhx.js.gz +0 -0
  657. package/payload/server/public/assets/c4Diagram-AHTNJAMY-EYW4kdlx.js +0 -10
  658. package/payload/server/public/assets/c4Diagram-AHTNJAMY-EYW4kdlx.js.br +0 -0
  659. package/payload/server/public/assets/c4Diagram-AHTNJAMY-EYW4kdlx.js.gz +0 -0
  660. package/payload/server/public/assets/calendar-Dfo0O2K_.js +0 -1
  661. package/payload/server/public/assets/calendar-Dfo0O2K_.js.br +0 -0
  662. package/payload/server/public/assets/calendar-Dfo0O2K_.js.gz +0 -0
  663. package/payload/server/public/assets/channel-CbHmRjy_.js +0 -1
  664. package/payload/server/public/assets/channel-CbHmRjy_.js.br +0 -0
  665. package/payload/server/public/assets/chat-ByJAvEWZ.js +0 -1
  666. package/payload/server/public/assets/chat-ByJAvEWZ.js.br +0 -0
  667. package/payload/server/public/assets/chat-ByJAvEWZ.js.gz +0 -0
  668. package/payload/server/public/assets/chevron-left-iG7sYNm7.js +0 -1
  669. package/payload/server/public/assets/chevron-left-iG7sYNm7.js.br +0 -0
  670. package/payload/server/public/assets/chunk-2KRD3SAO-CmAF1UmH.js +0 -1
  671. package/payload/server/public/assets/chunk-2KRD3SAO-CmAF1UmH.js.br +0 -0
  672. package/payload/server/public/assets/chunk-2KRD3SAO-CmAF1UmH.js.gz +0 -0
  673. package/payload/server/public/assets/chunk-336JU56O-CyhmJeMM.js +0 -2
  674. package/payload/server/public/assets/chunk-336JU56O-CyhmJeMM.js.br +0 -0
  675. package/payload/server/public/assets/chunk-336JU56O-CyhmJeMM.js.gz +0 -0
  676. package/payload/server/public/assets/chunk-426QAEUC-C2tnHCM7.js +0 -1
  677. package/payload/server/public/assets/chunk-426QAEUC-C2tnHCM7.js.br +0 -0
  678. package/payload/server/public/assets/chunk-426QAEUC-C2tnHCM7.js.gz +0 -0
  679. package/payload/server/public/assets/chunk-4BX2VUAB-DCzC40-Y.js +0 -1
  680. package/payload/server/public/assets/chunk-4BX2VUAB-DCzC40-Y.js.br +0 -0
  681. package/payload/server/public/assets/chunk-4BX2VUAB-DCzC40-Y.js.gz +0 -0
  682. package/payload/server/public/assets/chunk-4TB4RGXK-D9BXrSA_.js +0 -206
  683. package/payload/server/public/assets/chunk-4TB4RGXK-D9BXrSA_.js.br +0 -0
  684. package/payload/server/public/assets/chunk-4TB4RGXK-D9BXrSA_.js.gz +0 -0
  685. package/payload/server/public/assets/chunk-55IACEB6-BwXC-qTZ.js +0 -1
  686. package/payload/server/public/assets/chunk-55IACEB6-BwXC-qTZ.js.br +0 -0
  687. package/payload/server/public/assets/chunk-55IACEB6-BwXC-qTZ.js.gz +0 -0
  688. package/payload/server/public/assets/chunk-5FUZZQ4R-De7QtXxM.js +0 -62
  689. package/payload/server/public/assets/chunk-5FUZZQ4R-De7QtXxM.js.br +0 -0
  690. package/payload/server/public/assets/chunk-5FUZZQ4R-De7QtXxM.js.gz +0 -0
  691. package/payload/server/public/assets/chunk-5PVQY5BW-B5tsJiCq.js +0 -2
  692. package/payload/server/public/assets/chunk-5PVQY5BW-B5tsJiCq.js.br +0 -0
  693. package/payload/server/public/assets/chunk-5PVQY5BW-B5tsJiCq.js.gz +0 -0
  694. package/payload/server/public/assets/chunk-67CJDMHE-BjTh9STV.js +0 -1
  695. package/payload/server/public/assets/chunk-67CJDMHE-BjTh9STV.js.br +0 -0
  696. package/payload/server/public/assets/chunk-67CJDMHE-BjTh9STV.js.gz +0 -0
  697. package/payload/server/public/assets/chunk-7N4EOEYR-91klRswn.js +0 -1
  698. package/payload/server/public/assets/chunk-7N4EOEYR-91klRswn.js.br +0 -0
  699. package/payload/server/public/assets/chunk-7N4EOEYR-91klRswn.js.gz +0 -0
  700. package/payload/server/public/assets/chunk-AA7GKIK3-XFPGEoBu.js +0 -1
  701. package/payload/server/public/assets/chunk-AA7GKIK3-XFPGEoBu.js.br +0 -3
  702. package/payload/server/public/assets/chunk-AA7GKIK3-XFPGEoBu.js.gz +0 -0
  703. package/payload/server/public/assets/chunk-BSJP7CBP-B7wgMyWq.js +0 -1
  704. package/payload/server/public/assets/chunk-BSJP7CBP-B7wgMyWq.js.br +0 -0
  705. package/payload/server/public/assets/chunk-BSJP7CBP-B7wgMyWq.js.gz +0 -0
  706. package/payload/server/public/assets/chunk-CIAEETIT-WPy9vcOo.js +0 -1
  707. package/payload/server/public/assets/chunk-CIAEETIT-WPy9vcOo.js.br +0 -0
  708. package/payload/server/public/assets/chunk-CIAEETIT-WPy9vcOo.js.gz +0 -0
  709. package/payload/server/public/assets/chunk-EDXVE4YY-D_2JIFFG.js +0 -1
  710. package/payload/server/public/assets/chunk-EDXVE4YY-D_2JIFFG.js.br +0 -0
  711. package/payload/server/public/assets/chunk-EDXVE4YY-D_2JIFFG.js.gz +0 -0
  712. package/payload/server/public/assets/chunk-ENJZ2VHE-xORReRt0.js +0 -10
  713. package/payload/server/public/assets/chunk-ENJZ2VHE-xORReRt0.js.br +0 -0
  714. package/payload/server/public/assets/chunk-ENJZ2VHE-xORReRt0.js.gz +0 -0
  715. package/payload/server/public/assets/chunk-FMBD7UC4-BZsDu4nl.js +0 -15
  716. package/payload/server/public/assets/chunk-FMBD7UC4-BZsDu4nl.js.br +0 -0
  717. package/payload/server/public/assets/chunk-FMBD7UC4-BZsDu4nl.js.gz +0 -0
  718. package/payload/server/public/assets/chunk-FOC6F5B3-QzUp8wXX.js +0 -1
  719. package/payload/server/public/assets/chunk-FOC6F5B3-QzUp8wXX.js.br +0 -0
  720. package/payload/server/public/assets/chunk-FOC6F5B3-QzUp8wXX.js.gz +0 -0
  721. package/payload/server/public/assets/chunk-ICPOFSXX-B64S7i7x.js +0 -122
  722. package/payload/server/public/assets/chunk-ICPOFSXX-B64S7i7x.js.br +0 -0
  723. package/payload/server/public/assets/chunk-ICPOFSXX-B64S7i7x.js.gz +0 -0
  724. package/payload/server/public/assets/chunk-K5T4RW27-DzPc6X1_.js +0 -94
  725. package/payload/server/public/assets/chunk-K5T4RW27-DzPc6X1_.js.br +0 -0
  726. package/payload/server/public/assets/chunk-K5T4RW27-DzPc6X1_.js.gz +0 -0
  727. package/payload/server/public/assets/chunk-KGLVRYIC-A2rPnD7k.js +0 -1
  728. package/payload/server/public/assets/chunk-KGLVRYIC-A2rPnD7k.js.br +0 -1
  729. package/payload/server/public/assets/chunk-KGLVRYIC-A2rPnD7k.js.gz +0 -0
  730. package/payload/server/public/assets/chunk-LIHQZDEY-CaWX327m.js +0 -1
  731. package/payload/server/public/assets/chunk-LIHQZDEY-CaWX327m.js.br +0 -0
  732. package/payload/server/public/assets/chunk-LIHQZDEY-CaWX327m.js.gz +0 -0
  733. package/payload/server/public/assets/chunk-ORNJ4GCN-zrWhdmnc.js +0 -1
  734. package/payload/server/public/assets/chunk-ORNJ4GCN-zrWhdmnc.js.br +0 -0
  735. package/payload/server/public/assets/chunk-ORNJ4GCN-zrWhdmnc.js.gz +0 -0
  736. package/payload/server/public/assets/chunk-OYMX7WX6-B_2qQir6.js +0 -231
  737. package/payload/server/public/assets/chunk-OYMX7WX6-B_2qQir6.js.br +0 -0
  738. package/payload/server/public/assets/chunk-OYMX7WX6-B_2qQir6.js.gz +0 -0
  739. package/payload/server/public/assets/chunk-QZHKN3VN-BzgrgCTo.js +0 -1
  740. package/payload/server/public/assets/chunk-QZHKN3VN-BzgrgCTo.js.br +0 -0
  741. package/payload/server/public/assets/chunk-QZHKN3VN-BzgrgCTo.js.gz +0 -0
  742. package/payload/server/public/assets/chunk-U2HBQHQK-B-IYgxsc.js +0 -70
  743. package/payload/server/public/assets/chunk-U2HBQHQK-B-IYgxsc.js.br +0 -0
  744. package/payload/server/public/assets/chunk-U2HBQHQK-B-IYgxsc.js.gz +0 -0
  745. package/payload/server/public/assets/chunk-X2U36JSP-Y9Y1_EuG.js +0 -1
  746. package/payload/server/public/assets/chunk-X2U36JSP-Y9Y1_EuG.js.br +0 -0
  747. package/payload/server/public/assets/chunk-X2U36JSP-Y9Y1_EuG.js.gz +0 -0
  748. package/payload/server/public/assets/chunk-XPW4576I-C-6yETG_.js +0 -32
  749. package/payload/server/public/assets/chunk-XPW4576I-C-6yETG_.js.br +0 -0
  750. package/payload/server/public/assets/chunk-XPW4576I-C-6yETG_.js.gz +0 -0
  751. package/payload/server/public/assets/chunk-YZCP3GAM-KAuQIU5n.js +0 -1
  752. package/payload/server/public/assets/chunk-YZCP3GAM-KAuQIU5n.js.br +0 -0
  753. package/payload/server/public/assets/chunk-YZCP3GAM-KAuQIU5n.js.gz +0 -0
  754. package/payload/server/public/assets/chunk-ZZ45TVLE-BJcH3KDH.js +0 -1
  755. package/payload/server/public/assets/chunk-ZZ45TVLE-BJcH3KDH.js.br +0 -0
  756. package/payload/server/public/assets/chunk-ZZ45TVLE-BJcH3KDH.js.gz +0 -0
  757. package/payload/server/public/assets/classDiagram-6PBFFD2Q-BxvqeBEj.js +0 -1
  758. package/payload/server/public/assets/classDiagram-6PBFFD2Q-BxvqeBEj.js.br +0 -0
  759. package/payload/server/public/assets/classDiagram-6PBFFD2Q-BxvqeBEj.js.gz +0 -0
  760. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-R3-NzMRG.js +0 -1
  761. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-R3-NzMRG.js.br +0 -0
  762. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-R3-NzMRG.js.gz +0 -0
  763. package/payload/server/public/assets/clock-xSs0UF10.js +0 -1
  764. package/payload/server/public/assets/clock-xSs0UF10.js.br +0 -0
  765. package/payload/server/public/assets/clock-xSs0UF10.js.gz +0 -0
  766. package/payload/server/public/assets/clone-QdOE5SXR.js +0 -1
  767. package/payload/server/public/assets/copy-CGI2jioK.js +0 -1
  768. package/payload/server/public/assets/copy-CGI2jioK.js.br +0 -0
  769. package/payload/server/public/assets/copy-CGI2jioK.js.gz +0 -0
  770. package/payload/server/public/assets/cose-bilkent-S5V4N54A-CcXj8vHa.js +0 -1
  771. package/payload/server/public/assets/cose-bilkent-S5V4N54A-CcXj8vHa.js.br +0 -0
  772. package/payload/server/public/assets/cose-bilkent-S5V4N54A-CcXj8vHa.js.gz +0 -0
  773. package/payload/server/public/assets/dagre-DOtq9kYX.js +0 -1
  774. package/payload/server/public/assets/dagre-DOtq9kYX.js.br +0 -0
  775. package/payload/server/public/assets/dagre-DOtq9kYX.js.gz +0 -0
  776. package/payload/server/public/assets/dagre-KV5264BT-BOhQs4rS.js +0 -4
  777. package/payload/server/public/assets/dagre-KV5264BT-BOhQs4rS.js.br +0 -0
  778. package/payload/server/public/assets/dagre-KV5264BT-BOhQs4rS.js.gz +0 -0
  779. package/payload/server/public/assets/data-dvwK4BcP.js +0 -1
  780. package/payload/server/public/assets/data-dvwK4BcP.js.br +0 -0
  781. package/payload/server/public/assets/data-dvwK4BcP.js.gz +0 -0
  782. package/payload/server/public/assets/diagram-5BDNPKRD-CqJFt5ZM.js +0 -10
  783. package/payload/server/public/assets/diagram-5BDNPKRD-CqJFt5ZM.js.br +0 -0
  784. package/payload/server/public/assets/diagram-5BDNPKRD-CqJFt5ZM.js.gz +0 -0
  785. package/payload/server/public/assets/diagram-G4DWMVQ6-WQIyAZMn.js +0 -24
  786. package/payload/server/public/assets/diagram-G4DWMVQ6-WQIyAZMn.js.br +0 -0
  787. package/payload/server/public/assets/diagram-G4DWMVQ6-WQIyAZMn.js.gz +0 -0
  788. package/payload/server/public/assets/diagram-MMDJMWI5-jcKc4a2w.js +0 -43
  789. package/payload/server/public/assets/diagram-MMDJMWI5-jcKc4a2w.js.br +0 -0
  790. package/payload/server/public/assets/diagram-MMDJMWI5-jcKc4a2w.js.gz +0 -0
  791. package/payload/server/public/assets/diagram-TYMM5635-Bbt2KuWe.js +0 -24
  792. package/payload/server/public/assets/diagram-TYMM5635-Bbt2KuWe.js.br +0 -0
  793. package/payload/server/public/assets/diagram-TYMM5635-Bbt2KuWe.js.gz +0 -0
  794. package/payload/server/public/assets/dispatch-Dx9-ty1K.js +0 -1
  795. package/payload/server/public/assets/dispatch-Dx9-ty1K.js.br +0 -0
  796. package/payload/server/public/assets/dispatch-Dx9-ty1K.js.gz +0 -0
  797. package/payload/server/public/assets/dist-9RiN6lky.js +0 -1
  798. package/payload/server/public/assets/dist-9RiN6lky.js.br +0 -0
  799. package/payload/server/public/assets/dist-9RiN6lky.js.gz +0 -0
  800. package/payload/server/public/assets/erDiagram-SMLLAGMA-BBm6azPJ.js +0 -85
  801. package/payload/server/public/assets/erDiagram-SMLLAGMA-BBm6azPJ.js.br +0 -0
  802. package/payload/server/public/assets/erDiagram-SMLLAGMA-BBm6azPJ.js.gz +0 -0
  803. package/payload/server/public/assets/field-D-P6CsWA.js +0 -1
  804. package/payload/server/public/assets/field-D-P6CsWA.js.br +0 -0
  805. package/payload/server/public/assets/field-D-P6CsWA.js.gz +0 -0
  806. package/payload/server/public/assets/file-text-RWintp9q.js +0 -1
  807. package/payload/server/public/assets/file-text-RWintp9q.js.br +0 -0
  808. package/payload/server/public/assets/file-text-RWintp9q.js.gz +0 -0
  809. package/payload/server/public/assets/flatten-BurGKeIy.js +0 -1
  810. package/payload/server/public/assets/flatten-BurGKeIy.js.br +0 -0
  811. package/payload/server/public/assets/flatten-BurGKeIy.js.gz +0 -0
  812. package/payload/server/public/assets/flowDiagram-DWJPFMVM-_r45DYJ8.js +0 -162
  813. package/payload/server/public/assets/flowDiagram-DWJPFMVM-_r45DYJ8.js.br +0 -0
  814. package/payload/server/public/assets/flowDiagram-DWJPFMVM-_r45DYJ8.js.gz +0 -0
  815. package/payload/server/public/assets/ganttDiagram-T4ZO3ILL-Bjgj9Bej.js +0 -292
  816. package/payload/server/public/assets/ganttDiagram-T4ZO3ILL-Bjgj9Bej.js.br +0 -0
  817. package/payload/server/public/assets/ganttDiagram-T4ZO3ILL-Bjgj9Bej.js.gz +0 -0
  818. package/payload/server/public/assets/gitGraph-7Q5UKJZL-DdbK59od.js +0 -1
  819. package/payload/server/public/assets/gitGraph-7Q5UKJZL-DdbK59od.js.br +0 -0
  820. package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-DTRdhGJA.js +0 -106
  821. package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-DTRdhGJA.js.br +0 -0
  822. package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-DTRdhGJA.js.gz +0 -0
  823. package/payload/server/public/assets/graph-CpBlfYrJ.js +0 -51
  824. package/payload/server/public/assets/graph-CpBlfYrJ.js.br +0 -0
  825. package/payload/server/public/assets/graph-CpBlfYrJ.js.gz +0 -0
  826. package/payload/server/public/assets/graph-labels-BOMyPppX.js +0 -1
  827. package/payload/server/public/assets/graph-labels-BOMyPppX.js.br +0 -0
  828. package/payload/server/public/assets/graph-labels-BOMyPppX.js.gz +0 -0
  829. package/payload/server/public/assets/graphlib-DT4h6-4N.js +0 -1
  830. package/payload/server/public/assets/graphlib-DT4h6-4N.js.br +0 -0
  831. package/payload/server/public/assets/graphlib-DT4h6-4N.js.gz +0 -0
  832. package/payload/server/public/assets/info-OMHHGYJF-BR8gm0wj.js +0 -1
  833. package/payload/server/public/assets/info-OMHHGYJF-BR8gm0wj.js.br +0 -0
  834. package/payload/server/public/assets/infoDiagram-42DDH7IO-Cr3Efss6.js +0 -2
  835. package/payload/server/public/assets/infoDiagram-42DDH7IO-Cr3Efss6.js.br +0 -0
  836. package/payload/server/public/assets/infoDiagram-42DDH7IO-Cr3Efss6.js.gz +0 -0
  837. package/payload/server/public/assets/isEmpty-C5v0-EY7.js +0 -1
  838. package/payload/server/public/assets/isEmpty-C5v0-EY7.js.br +0 -0
  839. package/payload/server/public/assets/isEmpty-C5v0-EY7.js.gz +0 -0
  840. package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-BklHzVHm.js +0 -70
  841. package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-BklHzVHm.js.br +0 -0
  842. package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-BklHzVHm.js.gz +0 -0
  843. package/payload/server/public/assets/journeyDiagram-VCZTEJTY-Ckxx2CmV.js +0 -139
  844. package/payload/server/public/assets/journeyDiagram-VCZTEJTY-Ckxx2CmV.js.br +0 -0
  845. package/payload/server/public/assets/journeyDiagram-VCZTEJTY-Ckxx2CmV.js.gz +0 -0
  846. package/payload/server/public/assets/jsx-runtime-5lmxFBIw.js +0 -9
  847. package/payload/server/public/assets/jsx-runtime-5lmxFBIw.js.br +0 -0
  848. package/payload/server/public/assets/jsx-runtime-5lmxFBIw.js.gz +0 -0
  849. package/payload/server/public/assets/jsx-runtime-DxsQ5Y-z.css +0 -1
  850. package/payload/server/public/assets/jsx-runtime-DxsQ5Y-z.css.br +0 -0
  851. package/payload/server/public/assets/jsx-runtime-DxsQ5Y-z.css.gz +0 -0
  852. package/payload/server/public/assets/kanban-definition-6JOO6SKY-BLELXpqn.js +0 -89
  853. package/payload/server/public/assets/kanban-definition-6JOO6SKY-BLELXpqn.js.br +0 -0
  854. package/payload/server/public/assets/kanban-definition-6JOO6SKY-BLELXpqn.js.gz +0 -0
  855. package/payload/server/public/assets/line-BkI5icOY.js +0 -1
  856. package/payload/server/public/assets/line-BkI5icOY.js.br +0 -0
  857. package/payload/server/public/assets/line-BkI5icOY.js.gz +0 -0
  858. package/payload/server/public/assets/linear-B64ANRVs.js +0 -1
  859. package/payload/server/public/assets/linear-B64ANRVs.js.br +0 -0
  860. package/payload/server/public/assets/linear-B64ANRVs.js.gz +0 -0
  861. package/payload/server/public/assets/mermaid-parser.core-qXPKkdJe.js +0 -4
  862. package/payload/server/public/assets/mermaid-parser.core-qXPKkdJe.js.br +0 -0
  863. package/payload/server/public/assets/mermaid-parser.core-qXPKkdJe.js.gz +0 -0
  864. package/payload/server/public/assets/mermaid.core-BMsz65Wy.js +0 -11
  865. package/payload/server/public/assets/mermaid.core-BMsz65Wy.js.br +0 -0
  866. package/payload/server/public/assets/mermaid.core-BMsz65Wy.js.gz +0 -0
  867. package/payload/server/public/assets/mindmap-definition-QFDTVHPH-DhFTS2sx.js +0 -96
  868. package/payload/server/public/assets/mindmap-definition-QFDTVHPH-DhFTS2sx.js.br +0 -0
  869. package/payload/server/public/assets/mindmap-definition-QFDTVHPH-DhFTS2sx.js.gz +0 -0
  870. package/payload/server/public/assets/operator-DFgW6GiH.js +0 -1
  871. package/payload/server/public/assets/operator-DFgW6GiH.js.br +0 -0
  872. package/payload/server/public/assets/operator-DFgW6GiH.js.gz +0 -0
  873. package/payload/server/public/assets/ordinal-CJ_pL32Z.js +0 -1
  874. package/payload/server/public/assets/ordinal-CJ_pL32Z.js.br +0 -0
  875. package/payload/server/public/assets/ordinal-CJ_pL32Z.js.gz +0 -0
  876. package/payload/server/public/assets/packet-4T2RLAQJ-B31PbAeA.js +0 -1
  877. package/payload/server/public/assets/packet-4T2RLAQJ-B31PbAeA.js.br +0 -0
  878. package/payload/server/public/assets/page-BRShHSH0.js +0 -1
  879. package/payload/server/public/assets/page-BRShHSH0.js.br +0 -0
  880. package/payload/server/public/assets/page-BRShHSH0.js.gz +0 -0
  881. package/payload/server/public/assets/page-BbBCu9iP.js +0 -32
  882. package/payload/server/public/assets/page-BbBCu9iP.js.br +0 -0
  883. package/payload/server/public/assets/page-BbBCu9iP.js.gz +0 -0
  884. package/payload/server/public/assets/pdf-render-ynIPXfRA.js +0 -11
  885. package/payload/server/public/assets/pdf-render-ynIPXfRA.js.br +0 -0
  886. package/payload/server/public/assets/pdf-render-ynIPXfRA.js.gz +0 -0
  887. package/payload/server/public/assets/pie-ZZUOXDRM-BbSc1VXl.js +0 -1
  888. package/payload/server/public/assets/pie-ZZUOXDRM-BbSc1VXl.js.br +0 -0
  889. package/payload/server/public/assets/pieDiagram-DEJITSTG-B2TxkbHK.js +0 -30
  890. package/payload/server/public/assets/pieDiagram-DEJITSTG-B2TxkbHK.js.br +0 -0
  891. package/payload/server/public/assets/pieDiagram-DEJITSTG-B2TxkbHK.js.gz +0 -0
  892. package/payload/server/public/assets/play-BJxUaf6-.js +0 -1
  893. package/payload/server/public/assets/play-BJxUaf6-.js.br +0 -0
  894. package/payload/server/public/assets/play-BJxUaf6-.js.gz +0 -0
  895. package/payload/server/public/assets/public-DkObqkzL.js +0 -1
  896. package/payload/server/public/assets/public-DkObqkzL.js.br +0 -0
  897. package/payload/server/public/assets/public-DkObqkzL.js.gz +0 -0
  898. package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-GsMxIJuS.js +0 -7
  899. package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-GsMxIJuS.js.br +0 -0
  900. package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-GsMxIJuS.js.gz +0 -0
  901. package/payload/server/public/assets/radar-PYXPWWZC-B0La8_mZ.js +0 -1
  902. package/payload/server/public/assets/radar-PYXPWWZC-B0La8_mZ.js.br +0 -0
  903. package/payload/server/public/assets/reduce-CfkEiHc9.js +0 -1
  904. package/payload/server/public/assets/reduce-CfkEiHc9.js.br +0 -0
  905. package/payload/server/public/assets/reduce-CfkEiHc9.js.gz +0 -0
  906. package/payload/server/public/assets/requirementDiagram-MS252O5E-DqNprm-1.js +0 -84
  907. package/payload/server/public/assets/requirementDiagram-MS252O5E-DqNprm-1.js.br +0 -0
  908. package/payload/server/public/assets/requirementDiagram-MS252O5E-DqNprm-1.js.gz +0 -0
  909. package/payload/server/public/assets/rotate-ccw-DgMO69nh.js +0 -1
  910. package/payload/server/public/assets/rotate-ccw-DgMO69nh.js.br +0 -0
  911. package/payload/server/public/assets/rotate-ccw-DgMO69nh.js.gz +0 -0
  912. package/payload/server/public/assets/routines-D9kvg_Xu.js +0 -2
  913. package/payload/server/public/assets/routines-D9kvg_Xu.js.br +0 -0
  914. package/payload/server/public/assets/routines-D9kvg_Xu.js.gz +0 -0
  915. package/payload/server/public/assets/sankeyDiagram-XADWPNL6-B-kRuiuz.js +0 -10
  916. package/payload/server/public/assets/sankeyDiagram-XADWPNL6-B-kRuiuz.js.br +0 -0
  917. package/payload/server/public/assets/sankeyDiagram-XADWPNL6-B-kRuiuz.js.gz +0 -0
  918. package/payload/server/public/assets/sequenceDiagram-FGHM5R23-DEhL9g3K.js +0 -157
  919. package/payload/server/public/assets/sequenceDiagram-FGHM5R23-DEhL9g3K.js.br +0 -0
  920. package/payload/server/public/assets/sequenceDiagram-FGHM5R23-DEhL9g3K.js.gz +0 -0
  921. package/payload/server/public/assets/skills-l5I9HZ3D.js +0 -1
  922. package/payload/server/public/assets/skills-l5I9HZ3D.js.br +0 -0
  923. package/payload/server/public/assets/skills-l5I9HZ3D.js.gz +0 -0
  924. package/payload/server/public/assets/src-BrAT6wKv.js +0 -1
  925. package/payload/server/public/assets/src-BrAT6wKv.js.br +0 -0
  926. package/payload/server/public/assets/src-BrAT6wKv.js.gz +0 -0
  927. package/payload/server/public/assets/stateDiagram-FHFEXIEX-Q-g6BHdz.js +0 -1
  928. package/payload/server/public/assets/stateDiagram-FHFEXIEX-Q-g6BHdz.js.br +0 -0
  929. package/payload/server/public/assets/stateDiagram-FHFEXIEX-Q-g6BHdz.js.gz +0 -0
  930. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-ssRWItVj.js +0 -1
  931. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-ssRWItVj.js.br +0 -0
  932. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-ssRWItVj.js.gz +0 -0
  933. package/payload/server/public/assets/tasks-C2qJMv6i.js +0 -3
  934. package/payload/server/public/assets/tasks-C2qJMv6i.js.br +0 -0
  935. package/payload/server/public/assets/tasks-C2qJMv6i.js.gz +0 -0
  936. package/payload/server/public/assets/timeline-definition-GMOUNBTQ-B3-52q4Q.js +0 -120
  937. package/payload/server/public/assets/timeline-definition-GMOUNBTQ-B3-52q4Q.js.br +0 -0
  938. package/payload/server/public/assets/timeline-definition-GMOUNBTQ-B3-52q4Q.js.gz +0 -0
  939. package/payload/server/public/assets/treeView-SZITEDCU-BBR3hu9P.js +0 -1
  940. package/payload/server/public/assets/treeView-SZITEDCU-BBR3hu9P.js.br +0 -0
  941. package/payload/server/public/assets/treemap-W4RFUUIX-wSQMuzBT.js +0 -1
  942. package/payload/server/public/assets/treemap-W4RFUUIX-wSQMuzBT.js.br +0 -0
  943. package/payload/server/public/assets/triangle-alert-BnC67uSs.js +0 -1
  944. package/payload/server/public/assets/triangle-alert-BnC67uSs.js.br +0 -0
  945. package/payload/server/public/assets/triangle-alert-BnC67uSs.js.gz +0 -0
  946. package/payload/server/public/assets/useCopyFeedback-1RmgkTFh.js +0 -1
  947. package/payload/server/public/assets/useCopyFeedback-1RmgkTFh.js.br +0 -0
  948. package/payload/server/public/assets/useCopyFeedback-1RmgkTFh.js.gz +0 -0
  949. package/payload/server/public/assets/useMediaQuery-BQslddHQ.js +0 -6
  950. package/payload/server/public/assets/useMediaQuery-BQslddHQ.js.br +0 -0
  951. package/payload/server/public/assets/useMediaQuery-BQslddHQ.js.gz +0 -0
  952. package/payload/server/public/assets/useVoiceRecorder-BeZNQEC4.js +0 -2
  953. package/payload/server/public/assets/useVoiceRecorder-BeZNQEC4.js.br +0 -0
  954. package/payload/server/public/assets/useVoiceRecorder-BeZNQEC4.js.gz +0 -0
  955. package/payload/server/public/assets/vennDiagram-DHZGUBPP-Bzm1VDi1.js +0 -34
  956. package/payload/server/public/assets/vennDiagram-DHZGUBPP-Bzm1VDi1.js.br +0 -0
  957. package/payload/server/public/assets/vennDiagram-DHZGUBPP-Bzm1VDi1.js.gz +0 -0
  958. package/payload/server/public/assets/wardley-RL74JXVD-3QaECtQN.js +0 -1
  959. package/payload/server/public/assets/wardley-RL74JXVD-3QaECtQN.js.br +0 -0
  960. package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-DIqGZr4v.js +0 -20
  961. package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-DIqGZr4v.js.br +0 -0
  962. package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-DIqGZr4v.js.gz +0 -0
  963. package/payload/server/public/assets/wrench-D4ufQG6C.js +0 -1
  964. package/payload/server/public/assets/wrench-D4ufQG6C.js.br +0 -0
  965. package/payload/server/public/assets/wrench-D4ufQG6C.js.gz +0 -0
  966. package/payload/server/public/assets/xychartDiagram-5P7HB3ND-0W2L2hQA.js +0 -7
  967. package/payload/server/public/assets/xychartDiagram-5P7HB3ND-0W2L2hQA.js.br +0 -0
  968. package/payload/server/public/assets/xychartDiagram-5P7HB3ND-0W2L2hQA.js.gz +0 -0
  969. package/payload/server/public/dispatch.html +0 -20
  970. /package/payload/server/public/assets/{_baseFor-D1duyODO.js → _baseFor-BApe6Tla.js} +0 -0
  971. /package/payload/server/public/assets/{_baseFor-D1duyODO.js.br → _baseFor-BApe6Tla.js.br} +0 -0
  972. /package/payload/server/public/assets/{_baseFor-D1duyODO.js.gz → _baseFor-BApe6Tla.js.gz} +0 -0
  973. /package/payload/server/public/assets/{array-j7Xa9Fap.js → array-eiH4WfvY.js} +0 -0
  974. /package/payload/server/public/assets/{array-j7Xa9Fap.js.br → array-eiH4WfvY.js.br} +0 -0
  975. /package/payload/server/public/assets/{chunk-DlZTsV_O.js → chunk-BycB0eMI.js} +0 -0
  976. /package/payload/server/public/assets/{chunk-DlZTsV_O.js.br → chunk-BycB0eMI.js.br} +0 -0
  977. /package/payload/server/public/assets/{chunk-DlZTsV_O.js.gz → chunk-BycB0eMI.js.gz} +0 -0
  978. /package/payload/server/public/assets/{cytoscape.esm-Dob3eilA.js → cytoscape.esm-BZ6NYo0w.js} +0 -0
  979. /package/payload/server/public/assets/{cytoscape.esm-Dob3eilA.js.br → cytoscape.esm-BZ6NYo0w.js.br} +0 -0
  980. /package/payload/server/public/assets/{cytoscape.esm-Dob3eilA.js.gz → cytoscape.esm-BZ6NYo0w.js.gz} +0 -0
  981. /package/payload/server/public/assets/{defaultLocale-BNILPWh2.js → defaultLocale-DWHqsa6O.js} +0 -0
  982. /package/payload/server/public/assets/{defaultLocale-BNILPWh2.js.br → defaultLocale-DWHqsa6O.js.br} +0 -0
  983. /package/payload/server/public/assets/{defaultLocale-BNILPWh2.js.gz → defaultLocale-DWHqsa6O.js.gz} +0 -0
  984. /package/payload/server/public/assets/{file-download-CN4H4Eih.js → file-download-B7zwa78w.js} +0 -0
  985. /package/payload/server/public/assets/{file-download-CN4H4Eih.js.br → file-download-B7zwa78w.js.br} +0 -0
  986. /package/payload/server/public/assets/{file-download-CN4H4Eih.js.gz → file-download-B7zwa78w.js.gz} +0 -0
  987. /package/payload/server/public/assets/{init-ve51bpJo.js → init-BdkYWjJJ.js} +0 -0
  988. /package/payload/server/public/assets/{init-ve51bpJo.js.br → init-BdkYWjJJ.js.br} +0 -0
  989. /package/payload/server/public/assets/{init-ve51bpJo.js.gz → init-BdkYWjJJ.js.gz} +0 -0
  990. /package/payload/server/public/assets/{katex-CJNaolDQ.js → katex-BCzoGtFh.js} +0 -0
  991. /package/payload/server/public/assets/{katex-CJNaolDQ.js.br → katex-BCzoGtFh.js.br} +0 -0
  992. /package/payload/server/public/assets/{katex-CJNaolDQ.js.gz → katex-BCzoGtFh.js.gz} +0 -0
  993. /package/payload/server/public/assets/{path-B4emajHp.js → path-DY2qBuPM.js} +0 -0
  994. /package/payload/server/public/assets/{path-B4emajHp.js.br → path-DY2qBuPM.js.br} +0 -0
  995. /package/payload/server/public/assets/{path-B4emajHp.js.gz → path-DY2qBuPM.js.gz} +0 -0
  996. /package/payload/server/public/assets/{preload-helper-3YNEDsJZ.js → preload-helper-eAV8hweq.js} +0 -0
  997. /package/payload/server/public/assets/{preload-helper-3YNEDsJZ.js.br → preload-helper-eAV8hweq.js.br} +0 -0
  998. /package/payload/server/public/assets/{preload-helper-3YNEDsJZ.js.gz → preload-helper-eAV8hweq.js.gz} +0 -0
  999. /package/payload/server/public/assets/{rough.esm-zabqYs6f.js → rough.esm-ec8xsRC7.js} +0 -0
  1000. /package/payload/server/public/assets/{rough.esm-zabqYs6f.js.br → rough.esm-ec8xsRC7.js.br} +0 -0
  1001. /package/payload/server/public/assets/{rough.esm-zabqYs6f.js.gz → rough.esm-ec8xsRC7.js.gz} +0 -0
@@ -14,11 +14,13 @@
14
14
  import type { Session } from "neo4j-driver";
15
15
  import { withSession } from "./session.js";
16
16
  import type {
17
+ Attendance,
17
18
  DispatchCounts,
18
19
  FieldVisit,
19
20
  JobListFilter,
20
21
  JobRow,
21
22
  PlannerVisit,
23
+ SiteLocation,
22
24
  VisitRow,
23
25
  } from "./types.js";
24
26
 
@@ -52,6 +54,70 @@ export interface VisitRecordState {
52
54
  readonly signatures: number;
53
55
  }
54
56
 
57
+ /**
58
+ * The attendance sub-pattern, as one string every visit query interpolates
59
+ * (Task 2512).
60
+ *
61
+ * It COLLECTS rather than returning a row per attender, and that is the whole
62
+ * point: `OPTIONAL MATCH (v)-[:ATTENDED_BY]->(e:Engineer)` returned one record
63
+ * per edge, so a two-worker visit arrived as two rows carrying one set of times
64
+ * and rendered as two separate visits. `collect` drops nulls, so an unallocated
65
+ * visit yields `[]` and never a list holding one empty map.
66
+ *
67
+ * Interpolated rather than repeated by hand because nine queries need it, and a
68
+ * hand-copied ninth is the one that keeps the old shape.
69
+ */
70
+ export const ATTENDANCE_MATCH =
71
+ `OPTIONAL MATCH (v)-[:HAS_ATTENDANCE]->(att:Attendance)-[:BY_ENGINEER]->(e:Engineer)`;
72
+
73
+ /** The collected list, named `attendances`. Pair with `ATTENDANCE_MATCH`. */
74
+ export const ATTENDANCE_COLLECT =
75
+ `collect(CASE WHEN att IS NULL THEN NULL ELSE {
76
+ workerId: e.engineerId,
77
+ arrivedPressedAt: att.arrivedPressedAt,
78
+ arrivedObservedAt: att.arrivedObservedAt,
79
+ arrivedObservedDistanceM: att.arrivedObservedDistanceM
80
+ } END) AS attendances`;
81
+
82
+ /**
83
+ * Project the collected list, and derive the sole-attendee scalars from it.
84
+ *
85
+ * The scalars are populated only at exactly one attendance. At two they are
86
+ * null, because "which single worker?" has no answer and returning either one
87
+ * is a silent cross-assignment — the same failure `portal-visits-push.ts`
88
+ * refuses by binding on a property rather than matching a name.
89
+ */
90
+ export function projectAttendances(g: { get(key: string): unknown }): {
91
+ attendances: Attendance[];
92
+ workerId: string | null;
93
+ arrivedPressedAt: string | null;
94
+ arrivedObservedAt: string | null;
95
+ arrivedObservedDistanceM: number | null;
96
+ } {
97
+ const raw = (g.get("attendances") as Array<Record<string, unknown>> | null) ?? [];
98
+ const attendances: Attendance[] = raw
99
+ .filter((a) => a && typeof a.workerId === "string" && a.workerId.length > 0)
100
+ .map((a) => ({
101
+ workerId: String(a.workerId),
102
+ arrivedPressedAt: str(a.arrivedPressedAt),
103
+ arrivedObservedAt: str(a.arrivedObservedAt),
104
+ arrivedObservedDistanceM:
105
+ a.arrivedObservedDistanceM == null ? null : num(a.arrivedObservedDistanceM),
106
+ }))
107
+ // Sorted here rather than in Cypher: `collect` has no ORDER BY of its own,
108
+ // and two reads of one visit returning different orders would make a
109
+ // rendered card's worker order arbitrary.
110
+ .sort((x, y) => (x.workerId < y.workerId ? -1 : x.workerId > y.workerId ? 1 : 0));
111
+ const sole = attendances.length === 1 ? attendances[0] : null;
112
+ return {
113
+ attendances,
114
+ workerId: sole?.workerId ?? null,
115
+ arrivedPressedAt: sole?.arrivedPressedAt ?? null,
116
+ arrivedObservedAt: sole?.arrivedObservedAt ?? null,
117
+ arrivedObservedDistanceM: sole?.arrivedObservedDistanceM ?? null,
118
+ };
119
+ }
120
+
55
121
  /** Shared job projection, so every job query returns one shape. */
56
122
  export function projectJob(g: { get(key: string): unknown }): JobRow {
57
123
  return {
@@ -68,7 +134,6 @@ export function projectJob(g: { get(key: string): unknown }): JobRow {
68
134
 
69
135
  /** Shared visit projection, so the day read and its tests cannot drift apart. */
70
136
  export function projectVisit(g: { get(key: string): unknown }): PlannerVisit {
71
- const dist = g.get("arrivedObservedDistanceM");
72
137
  return {
73
138
  visitId: String(g.get("visitId")),
74
139
  jobId: str(g.get("jobId")),
@@ -76,14 +141,11 @@ export function projectVisit(g: { get(key: string): unknown }): PlannerVisit {
76
141
  startDate: str(g.get("startDate")),
77
142
  endDate: str(g.get("endDate")),
78
143
  purpose: str(g.get("purpose")),
79
- workerId: str(g.get("workerId")),
80
144
  siteName: str(g.get("siteName")),
81
145
  customerId: str(g.get("customerId")),
82
146
  customerName: str(g.get("customerName")),
83
147
  jobType: str(g.get("jobType")),
84
- arrivedPressedAt: str(g.get("arrivedPressedAt")),
85
- arrivedObservedAt: str(g.get("arrivedObservedAt")),
86
- arrivedObservedDistanceM: dist == null ? null : num(dist),
148
+ ...projectAttendances(g),
87
149
  };
88
150
  }
89
151
 
@@ -114,19 +176,16 @@ export async function readVisit(
114
176
  const r = await session.run(
115
177
  `MATCH (v:Visit {accountId: $accountId, visitId: $visitId})
116
178
  OPTIONAL MATCH (j:Job)-[:HAS_VISIT]->(v)
117
- OPTIONAL MATCH (v)-[:ATTENDED_BY]->(e:Engineer)
179
+ ${ATTENDANCE_MATCH}
180
+ WITH v, j, ${ATTENDANCE_COLLECT}
118
181
  RETURN v.visitId AS visitId, j.jobId AS jobId, v.status AS status,
119
182
  v.startDate AS startDate, v.endDate AS endDate, v.purpose AS purpose,
120
- e.engineerId AS workerId,
121
- v.arrivedPressedAt AS arrivedPressedAt,
122
- v.arrivedObservedAt AS arrivedObservedAt,
123
- v.arrivedObservedDistanceM AS arrivedObservedDistanceM
183
+ attendances
124
184
  LIMIT 1`,
125
185
  { accountId, visitId },
126
186
  );
127
187
  if (r.records.length === 0) return null;
128
188
  const g = r.records[0];
129
- const dist = g.get("arrivedObservedDistanceM");
130
189
  return {
131
190
  visitId: String(g.get("visitId")),
132
191
  jobId: str(g.get("jobId")),
@@ -134,10 +193,7 @@ export async function readVisit(
134
193
  startDate: str(g.get("startDate")),
135
194
  endDate: str(g.get("endDate")),
136
195
  purpose: str(g.get("purpose")),
137
- workerId: str(g.get("workerId")),
138
- arrivedPressedAt: str(g.get("arrivedPressedAt")),
139
- arrivedObservedAt: str(g.get("arrivedObservedAt")),
140
- arrivedObservedDistanceM: dist == null ? null : num(dist),
196
+ ...projectAttendances(g),
141
197
  };
142
198
  }
143
199
 
@@ -185,27 +241,69 @@ export async function readVisitsForJob(
185
241
  ): Promise<VisitRow[]> {
186
242
  const r = await session.run(
187
243
  `MATCH (j:Job {accountId: $accountId, jobId: $jobId})-[:HAS_VISIT]->(v:Visit)
188
- OPTIONAL MATCH (v)-[:ATTENDED_BY]->(e:Engineer)
244
+ ${ATTENDANCE_MATCH}
245
+ WITH v, ${ATTENDANCE_COLLECT}
189
246
  RETURN v.visitId AS visitId, v.status AS status, v.startDate AS startDate,
190
- v.endDate AS endDate, v.purpose AS purpose, e.engineerId AS workerId,
191
- v.arrivedPressedAt AS arrivedPressedAt,
192
- v.arrivedObservedAt AS arrivedObservedAt,
193
- v.arrivedObservedDistanceM AS arrivedObservedDistanceM
247
+ v.endDate AS endDate, v.purpose AS purpose, attendances
194
248
  ORDER BY v.startDate ASC`,
195
249
  { accountId, jobId },
196
250
  );
251
+ return r.records.map((g) => ({
252
+ visitId: String(g.get("visitId")),
253
+ jobId,
254
+ status: String(g.get("status")),
255
+ startDate: str(g.get("startDate")),
256
+ endDate: str(g.get("endDate")),
257
+ purpose: str(g.get("purpose")),
258
+ ...projectAttendances(g),
259
+ }));
260
+ }
261
+
262
+ /**
263
+ * A worker's visits that are not finished, newest first (Task 2510).
264
+ *
265
+ * Deliberately not scoped to today. A visit that overran yesterday is still
266
+ * open, and a day window would silently drop the photo of the job most likely to
267
+ * need one.
268
+ */
269
+ export async function readOpenVisitsForWorker(
270
+ session: Session,
271
+ accountId: string,
272
+ workerId: string,
273
+ terminalStatuses: readonly string[],
274
+ ): Promise<VisitRow[]> {
275
+ const r = await session.run(
276
+ // Anchored on the caller's own attendance, then the whole visit's collected
277
+ // beside it — the shape `readWorkerDay` uses, for the same reason: the
278
+ // sole-attendee rule returns null on a visit they share, and this list is
279
+ // what a worker's photo or voice note gets attached to.
280
+ `MATCH (v:Visit {accountId: $accountId})-[:HAS_ATTENDANCE]->(mine:Attendance)-[:BY_ENGINEER]->(:Engineer {engineerId: $workerId})
281
+ WHERE NOT v.status IN $terminal
282
+ OPTIONAL MATCH (j:Job)-[:HAS_VISIT]->(v)
283
+ ${ATTENDANCE_MATCH}
284
+ WITH v, j, mine, ${ATTENDANCE_COLLECT}
285
+ RETURN v.visitId AS visitId, j.jobId AS jobId, v.status AS status,
286
+ v.startDate AS startDate, v.endDate AS endDate, v.purpose AS purpose,
287
+ attendances,
288
+ mine.arrivedPressedAt AS ownArrivedPressedAt,
289
+ mine.arrivedObservedAt AS ownArrivedObservedAt,
290
+ mine.arrivedObservedDistanceM AS ownArrivedObservedDistanceM
291
+ ORDER BY v.startDate DESC`,
292
+ { accountId, workerId, terminal: [...terminalStatuses] },
293
+ );
197
294
  return r.records.map((g) => {
198
- const dist = g.get("arrivedObservedDistanceM");
295
+ const dist = g.get("ownArrivedObservedDistanceM");
199
296
  return {
200
297
  visitId: String(g.get("visitId")),
201
- jobId,
298
+ jobId: str(g.get("jobId")),
202
299
  status: String(g.get("status")),
203
300
  startDate: str(g.get("startDate")),
204
301
  endDate: str(g.get("endDate")),
205
302
  purpose: str(g.get("purpose")),
206
- workerId: str(g.get("workerId")),
207
- arrivedPressedAt: str(g.get("arrivedPressedAt")),
208
- arrivedObservedAt: str(g.get("arrivedObservedAt")),
303
+ attendances: projectAttendances(g).attendances,
304
+ workerId,
305
+ arrivedPressedAt: str(g.get("ownArrivedPressedAt")),
306
+ arrivedObservedAt: str(g.get("ownArrivedObservedAt")),
209
307
  arrivedObservedDistanceM: dist == null ? null : num(dist),
210
308
  };
211
309
  });
@@ -219,7 +317,9 @@ export async function readCommitments(
219
317
  to: string,
220
318
  ): Promise<Map<string, Commitment[]>> {
221
319
  const r = await session.run(
222
- `MATCH (v:Visit {accountId: $accountId})-[:ATTENDED_BY]->(e:Engineer)
320
+ // One row per ATTENDANCE is correct here and nowhere else: a commitment
321
+ // belongs to a worker, so a two-worker visit legitimately commits both.
322
+ `MATCH (v:Visit {accountId: $accountId})-[:HAS_ATTENDANCE]->(:Attendance)-[:BY_ENGINEER]->(e:Engineer)
223
323
  WHERE v.startDate < $to AND coalesce(v.endDate, v.startDate) > $from
224
324
  RETURN e.engineerId AS workerId, v.visitId AS visitId,
225
325
  v.startDate AS start, coalesce(v.endDate, v.startDate) AS end`,
@@ -240,6 +340,72 @@ export async function readCommitments(
240
340
  return out;
241
341
  }
242
342
 
343
+ /** Where a worker was last, for the travel estimate at allocation. */
344
+ export interface PreviousVisit {
345
+ readonly visitId: string;
346
+ /** Null when the visit's job was never linked to a site. */
347
+ readonly siteId: string | null;
348
+ }
349
+
350
+ /**
351
+ * Each worker's latest visit ending at or before `before`, no earlier than
352
+ * `dayStart`.
353
+ *
354
+ * `readCommitments` cannot answer this: it reads only inside the requested
355
+ * window, and the origin of a journey is by definition outside it.
356
+ *
357
+ * **Both bounds, always.** Without the upper one, a worker's current job
358
+ * becomes the origin and the estimate measures a journey that has not happened
359
+ * yet. Without the lower one, yesterday's last job becomes this morning's
360
+ * origin and the office is shown a drive nobody will make. `dayStart` is the
361
+ * caller's, computed in the account's timezone, because "that day" is not a
362
+ * UTC fact.
363
+ *
364
+ * The collapse to one visit per worker is done here rather than in the Cypher.
365
+ * A `head(collect(...))` would be invisible to every test that does not hold a
366
+ * real database, and picking the wrong origin visit is the failure that
367
+ * produces a confident number for the wrong journey.
368
+ */
369
+ export async function readPreviousVisits(
370
+ session: Session,
371
+ accountId: string,
372
+ before: string,
373
+ dayStart: string,
374
+ ): Promise<Map<string, PreviousVisit>> {
375
+ const r = await session.run(
376
+ // One row per ATTENDANCE, as `readCommitments` above: a two-worker visit is
377
+ // where BOTH of them were, so each is legitimately coming from it. Task 2512
378
+ // retired `ATTENDED_BY`; this query was written against it and would have
379
+ // matched nothing, reporting every worker as having no previous visit.
380
+ `MATCH (v:Visit {accountId: $accountId})-[:HAS_ATTENDANCE]->(:Attendance)-[:BY_ENGINEER]->(e:Engineer)
381
+ WHERE coalesce(v.endDate, v.startDate) <= $before
382
+ AND coalesce(v.endDate, v.startDate) >= $dayStart
383
+ OPTIONAL MATCH (j:Job {accountId: $accountId})-[:HAS_VISIT]->(v)
384
+ OPTIONAL MATCH (j)-[:AT_SITE]->(s:Site {accountId: $accountId})
385
+ RETURN e.engineerId AS workerId, v.visitId AS visitId,
386
+ coalesce(v.endDate, v.startDate) AS endDate, s.siteId AS siteId`,
387
+ { accountId, before, dayStart },
388
+ );
389
+ const out = new Map<string, PreviousVisit>();
390
+ const latest = new Map<string, string>();
391
+ for (const g of r.records) {
392
+ const workerId = str(g.get("workerId"));
393
+ if (!workerId) continue;
394
+ const endDate = str(g.get("endDate"));
395
+ if (endDate === null) continue;
396
+ const held = latest.get(workerId);
397
+ // Strictly later, so two visits ending on the same instant keep the first
398
+ // the query returned rather than flipping between runs.
399
+ if (held !== undefined && held >= endDate) continue;
400
+ latest.set(workerId, endDate);
401
+ out.set(workerId, {
402
+ visitId: String(g.get("visitId")),
403
+ siteId: str(g.get("siteId")),
404
+ });
405
+ }
406
+ return out;
407
+ }
408
+
243
409
  /**
244
410
  * The job-list query as text plus params, extracted so its shape is testable
245
411
  * without a database.
@@ -254,7 +420,7 @@ export function buildJobListQuery(filter: JobListFilter): {
254
420
  if (filter.unallocatedOnly) clauses.push("NOT (j)-[:HAS_VISIT]->(:Visit)");
255
421
  if (filter.workerId) {
256
422
  clauses.push(
257
- "EXISTS { MATCH (j)-[:HAS_VISIT]->(:Visit)-[:ATTENDED_BY]->(w:Engineer) WHERE w.engineerId = $workerId }",
423
+ "EXISTS { MATCH (j)-[:HAS_VISIT]->(:Visit)-[:HAS_ATTENDANCE]->(:Attendance)-[:BY_ENGINEER]->(w:Engineer) WHERE w.engineerId = $workerId }",
258
424
  );
259
425
  }
260
426
  // One EXISTS carrying both bounds, never two. Two independent clauses are
@@ -306,7 +472,7 @@ export async function readJobs(
306
472
  export async function readNodeId(
307
473
  session: Session,
308
474
  accountId: string,
309
- label: "Site" | "Customer" | "Engineer" | "Vehicle",
475
+ label: "Site" | "Customer" | "Engineer" | "Vehicle" | "Job",
310
476
  keyProp: string,
311
477
  keyValue: string,
312
478
  ): Promise<string | null> {
@@ -318,6 +484,128 @@ export async function readNodeId(
318
484
  return r.records.length === 0 ? null : String(r.records[0].get("id"));
319
485
  }
320
486
 
487
+ /**
488
+ * A site's position and radius, or null when the account holds no such site
489
+ * (Task 2510).
490
+ *
491
+ * A site that exists but carries no coordinates returns nulls rather than null:
492
+ * "this site is not on the account" and "this site has never been placed" are
493
+ * different problems, and the geofence names each of them separately.
494
+ */
495
+ export async function readSiteLocation(
496
+ session: Session,
497
+ accountId: string,
498
+ siteId: string,
499
+ ): Promise<SiteLocation | null> {
500
+ const r = await session.run(
501
+ `MATCH (s:Site {accountId: $accountId, siteId: $siteId})
502
+ RETURN s.siteId AS siteId, s.latitude AS latitude, s.longitude AS longitude,
503
+ s.geofenceRadiusM AS geofenceRadiusM
504
+ LIMIT 1`,
505
+ { accountId, siteId },
506
+ );
507
+ if (r.records.length === 0) return null;
508
+ const g = r.records[0];
509
+ const lat = g.get("latitude");
510
+ const lon = g.get("longitude");
511
+ const rad = g.get("geofenceRadiusM");
512
+ return {
513
+ siteId: String(g.get("siteId")),
514
+ latitude: lat == null ? null : num(lat),
515
+ longitude: lon == null ? null : num(lon),
516
+ geofenceRadiusM: rad == null ? null : num(rad),
517
+ };
518
+ }
519
+
520
+
521
+ /**
522
+ * One intake draft. Every optional property is returned explicitly as null
523
+ * rather than omitted, so a caller can tell "the draft does not carry this"
524
+ * from "the read did not ask for it".
525
+ */
526
+ export interface DraftRow {
527
+ draftId: string;
528
+ receivedAt: string;
529
+ source: string;
530
+ sourceRef: string;
531
+ jobType: string | null;
532
+ siteId: string | null;
533
+ customerId: string | null;
534
+ description: string | null;
535
+ verdict: string | null;
536
+ decidedAt: string | null;
537
+ decidedBy: string | null;
538
+ reason: string | null;
539
+ jobId: string | null;
540
+ }
541
+
542
+ const DRAFT_RETURN = `d.draftId AS draftId, d.receivedAt AS receivedAt, d.source AS source,
543
+ d.sourceRef AS sourceRef, d.jobType AS jobType, d.siteId AS siteId,
544
+ d.customerId AS customerId, d.description AS description,
545
+ d.verdict AS verdict, d.decidedAt AS decidedAt, d.decidedBy AS decidedBy,
546
+ d.reason AS reason, d.jobId AS jobId`;
547
+
548
+ function projectDraft(rec: { get(key: string): unknown }): DraftRow {
549
+ const s = (k: string): string | null => {
550
+ const v = rec.get(k);
551
+ return typeof v === "string" && v.length > 0 ? v : null;
552
+ };
553
+ return {
554
+ draftId: s("draftId") ?? "",
555
+ receivedAt: s("receivedAt") ?? "",
556
+ source: s("source") ?? "",
557
+ sourceRef: s("sourceRef") ?? "",
558
+ jobType: s("jobType"),
559
+ siteId: s("siteId"),
560
+ customerId: s("customerId"),
561
+ description: s("description"),
562
+ verdict: s("verdict"),
563
+ decidedAt: s("decidedAt"),
564
+ decidedBy: s("decidedBy"),
565
+ reason: s("reason"),
566
+ jobId: s("jobId"),
567
+ };
568
+ }
569
+
570
+ /** One draft by its id, or null. */
571
+ export async function readDraft(
572
+ session: Session,
573
+ accountId: string,
574
+ draftId: string,
575
+ ): Promise<DraftRow | null> {
576
+ const r = await session.run(
577
+ `MATCH (d:IntakeDraft {accountId: $accountId, draftId: $draftId})
578
+ RETURN ${DRAFT_RETURN}`,
579
+ { accountId, draftId },
580
+ );
581
+ return r.records.length === 0 ? null : projectDraft(r.records[0]);
582
+ }
583
+
584
+ /**
585
+ * The queue, oldest first. A null `verdict` argument means undecided only,
586
+ * which is what the queue is; a named verdict returns those already decided,
587
+ * because a rejection whose reason nobody can read is not a record of anything.
588
+ *
589
+ * Undecided is the ABSENCE of the property, never a written value, so the
590
+ * predicate is `IS NULL` rather than an equality against a sentinel.
591
+ */
592
+ export async function readDrafts(
593
+ session: Session,
594
+ accountId: string,
595
+ verdict: string | null,
596
+ limit: number,
597
+ ): Promise<DraftRow[]> {
598
+ const r = await session.run(
599
+ `MATCH (d:IntakeDraft {accountId: $accountId})
600
+ WHERE ($verdict IS NULL AND d.verdict IS NULL) OR d.verdict = $verdict
601
+ RETURN ${DRAFT_RETURN}
602
+ ORDER BY d.receivedAt ASC
603
+ LIMIT $limit`,
604
+ { accountId, verdict, limit: Math.min(Math.max(limit, 1), 200) },
605
+ );
606
+ return r.records.map(projectDraft);
607
+ }
608
+
321
609
  /** Every visit at one site, newest first, with its job. */
322
610
  export async function readSiteHistory(
323
611
  session: Session,
@@ -328,39 +616,31 @@ export async function readSiteHistory(
328
616
  const r = await session.run(
329
617
  `MATCH (j:Job {accountId: $accountId})-[:AT_SITE]->(:Site {accountId: $accountId, siteId: $siteId})
330
618
  MATCH (j)-[:HAS_VISIT]->(v:Visit)
331
- OPTIONAL MATCH (v)-[:ATTENDED_BY]->(e:Engineer)
619
+ ${ATTENDANCE_MATCH}
620
+ WITH j, v, ${ATTENDANCE_COLLECT}
332
621
  RETURN j.jobId AS jobId, j.status AS jobStatus, v.visitId AS visitId,
333
622
  v.status AS status, v.startDate AS startDate, v.endDate AS endDate,
334
- v.purpose AS purpose, e.engineerId AS workerId,
623
+ v.purpose AS purpose, attendances,
335
624
  coalesce(v.notes, []) AS notes,
336
- size(coalesce(v.media, [])) AS mediaCount,
337
- v.arrivedPressedAt AS arrivedPressedAt,
338
- v.arrivedObservedAt AS arrivedObservedAt,
339
- v.arrivedObservedDistanceM AS arrivedObservedDistanceM
625
+ size(coalesce(v.media, [])) AS mediaCount
340
626
  ORDER BY v.startDate DESC
341
627
  LIMIT $limit`,
342
628
  { accountId, siteId, limit: Math.min(Math.max(limit, 1), 200) },
343
629
  );
344
- return r.records.map((g) => {
345
- const dist = g.get("arrivedObservedDistanceM");
346
- return {
347
- visitId: String(g.get("visitId")),
348
- jobId: String(g.get("jobId")),
349
- jobStatus: String(g.get("jobStatus")),
350
- status: String(g.get("status")),
351
- startDate: str(g.get("startDate")),
352
- endDate: str(g.get("endDate")),
353
- purpose: str(g.get("purpose")),
354
- workerId: str(g.get("workerId")),
355
- notes: (g.get("notes") as string[]) ?? [],
356
- // A count, not the references. A worker at a door needs to know whether
357
- // photographs exist before deciding to load them on a bad signal.
358
- mediaCount: num(g.get("mediaCount") ?? 0),
359
- arrivedPressedAt: str(g.get("arrivedPressedAt")),
360
- arrivedObservedAt: str(g.get("arrivedObservedAt")),
361
- arrivedObservedDistanceM: dist == null ? null : num(dist),
362
- };
363
- });
630
+ return r.records.map((g) => ({
631
+ visitId: String(g.get("visitId")),
632
+ jobId: String(g.get("jobId")),
633
+ jobStatus: String(g.get("jobStatus")),
634
+ status: String(g.get("status")),
635
+ startDate: str(g.get("startDate")),
636
+ endDate: str(g.get("endDate")),
637
+ purpose: str(g.get("purpose")),
638
+ notes: (g.get("notes") as string[]) ?? [],
639
+ // A count, not the references. A worker at a door needs to know whether
640
+ // photographs exist before deciding to load them on a bad signal.
641
+ mediaCount: num(g.get("mediaCount") ?? 0),
642
+ ...projectAttendances(g),
643
+ }));
364
644
  }
365
645
 
366
646
  /** Every visit starting inside `[from, to)`. */
@@ -375,32 +655,24 @@ export async function readVisitsInWindow(
375
655
  WHERE v.startDate >= $from AND v.startDate < $to
376
656
  OPTIONAL MATCH (j:Job)-[:HAS_VISIT]->(v)
377
657
  OPTIONAL MATCH (j)-[:AT_SITE]->(s:Site)
378
- OPTIONAL MATCH (v)-[:ATTENDED_BY]->(e:Engineer)
658
+ ${ATTENDANCE_MATCH}
659
+ WITH v, j, s, ${ATTENDANCE_COLLECT}
379
660
  RETURN v.visitId AS visitId, j.jobId AS jobId, v.status AS status,
380
661
  v.startDate AS startDate, v.endDate AS endDate, v.purpose AS purpose,
381
- e.engineerId AS workerId, s.name AS siteName,
382
- v.arrivedPressedAt AS arrivedPressedAt,
383
- v.arrivedObservedAt AS arrivedObservedAt,
384
- v.arrivedObservedDistanceM AS arrivedObservedDistanceM
662
+ attendances, s.name AS siteName
385
663
  ORDER BY v.startDate ASC`,
386
664
  { accountId, from, to },
387
665
  );
388
- return r.records.map((g) => {
389
- const dist = g.get("arrivedObservedDistanceM");
390
- return {
391
- visitId: String(g.get("visitId")),
392
- jobId: str(g.get("jobId")),
393
- status: String(g.get("status")),
394
- startDate: str(g.get("startDate")),
395
- endDate: str(g.get("endDate")),
396
- purpose: str(g.get("purpose")),
397
- workerId: str(g.get("workerId")),
398
- siteName: str(g.get("siteName")),
399
- arrivedPressedAt: str(g.get("arrivedPressedAt")),
400
- arrivedObservedAt: str(g.get("arrivedObservedAt")),
401
- arrivedObservedDistanceM: dist == null ? null : num(dist),
402
- };
403
- });
666
+ return r.records.map((g) => ({
667
+ visitId: String(g.get("visitId")),
668
+ jobId: str(g.get("jobId")),
669
+ status: String(g.get("status")),
670
+ startDate: str(g.get("startDate")),
671
+ endDate: str(g.get("endDate")),
672
+ purpose: str(g.get("purpose")),
673
+ siteName: str(g.get("siteName")),
674
+ ...projectAttendances(g),
675
+ }));
404
676
  }
405
677
 
406
678
  /**
@@ -435,15 +707,13 @@ export async function readDay(
435
707
  OPTIONAL MATCH (j:Job)-[:HAS_VISIT]->(v)
436
708
  OPTIONAL MATCH (j)-[:AT_SITE]->(s:Site)
437
709
  OPTIONAL MATCH (j)-[:FOR_CUSTOMER]->(c:Customer)
438
- OPTIONAL MATCH (v)-[:ATTENDED_BY]->(e:Engineer)
710
+ ${ATTENDANCE_MATCH}
711
+ WITH v, j, s, c, ${ATTENDANCE_COLLECT}
439
712
  RETURN v.visitId AS visitId, j.jobId AS jobId, v.status AS status,
440
713
  v.startDate AS startDate, v.endDate AS endDate, v.purpose AS purpose,
441
- e.engineerId AS workerId, s.name AS siteName,
714
+ attendances, s.name AS siteName,
442
715
  c.customerId AS customerId, c.name AS customerName,
443
- j.jobType AS jobType,
444
- v.arrivedPressedAt AS arrivedPressedAt,
445
- v.arrivedObservedAt AS arrivedObservedAt,
446
- v.arrivedObservedDistanceM AS arrivedObservedDistanceM
716
+ j.jobType AS jobType
447
717
  ORDER BY v.startDate ASC`,
448
718
  { accountId, from: fromUtc, to: toUtc },
449
719
  );
@@ -452,17 +722,131 @@ export async function readDay(
452
722
  }
453
723
 
454
724
  /**
455
- * One worker's visits in a window, with the contact detail a doorstep needs.
725
+ * The columns a field card needs beyond a plain visit row, as one clause.
726
+ *
727
+ * Written once because two reads return this shape — the day list and the
728
+ * single-visit sheet read — and a card that differed between the two would be
729
+ * a worker seeing a telephone on one screen and not the other.
730
+ *
731
+ * It returns `attendances` and NO arrival columns, because the two reads
732
+ * legitimately differ on whose arrival a card shows: `readWorkerDay` shows the
733
+ * caller their own, and `readFieldVisit`, which names no worker, falls back to
734
+ * the sole-attendee rule. Each adds its own arrival clause; the columns they
735
+ * share stay here.
736
+ */
737
+ const FIELD_RETURN = `v.visitId AS visitId, j.jobId AS jobId, v.status AS status,
738
+ v.startDate AS startDate, v.endDate AS endDate, v.purpose AS purpose,
739
+ attendances,
740
+ s.siteId AS siteId, s.name AS siteName,
741
+ c.name AS customerName,
742
+ ct.name AS contactName, ct.telephone AS contactTelephone,
743
+ pa IS NOT NULL AS addressed,
744
+ pa.streetAddress AS streetAddress, pa.addressLocality AS addressLocality,
745
+ pa.postalCode AS postalCode`;
746
+
747
+ /**
748
+ * The optional neighbourhood a visit hangs in.
749
+ *
750
+ * Every hop is optional: a visit allocated before its job was linked must stay
751
+ * in the day rather than drop out of it.
752
+ *
753
+ * **The `WITH` is what stops a visit appearing twice.** An `OPTIONAL MATCH`
754
+ * that finds two nodes returns two rows, so a site holding two `AT_ADDRESS`
755
+ * edges — or a customer holding two contacts — would put the same visit on the
756
+ * worker's list once per match, each copy showing a different address. That
757
+ * state is reachable: `memory-write`'s edge check is warn-only, so nothing
758
+ * blocks a second edge being written directly.
759
+ *
760
+ * Which of two the collapse keeps is arbitrary, and it is not this query's job
761
+ * to choose. `dispatch-site-upsert` is what guarantees a site has one address:
762
+ * it clears the previous edge before writing the next.
763
+ *
764
+ * **Two aggregating `WITH`s, not one.** The attendance collect is a second
765
+ * multiplication on the same rows, and folding both into one `WITH` would make
766
+ * each address appear once per attendance and each attendance once per address.
767
+ * Collapsing them in turn keeps every grouping key a plain node.
768
+ *
769
+ * `carry` is the extra binding a caller needs kept alive across both — `, mine`
770
+ * for the worker day, empty for the sheet. Anything not named in a `WITH` is
771
+ * dropped, so a caller that binds a variable before this clause and reads it
772
+ * after must pass it here.
773
+ */
774
+ const fieldOptionalMatches = (carry: string) =>
775
+ `OPTIONAL MATCH (j:Job {accountId: $accountId})-[:HAS_VISIT]->(v)
776
+ OPTIONAL MATCH (j)-[:AT_SITE]->(s:Site {accountId: $accountId})
777
+ OPTIONAL MATCH (j)-[:FOR_CUSTOMER]->(c:Customer {accountId: $accountId})
778
+ OPTIONAL MATCH (s)-[:AT_ADDRESS]->(pa0:PostalAddress)
779
+ OPTIONAL MATCH (ct0:Contact {accountId: $accountId})-[:CONTACT_FOR]->(c)
780
+ WITH v${carry}, j, s, c,
781
+ head(collect(DISTINCT pa0)) AS pa,
782
+ head(collect(DISTINCT ct0)) AS ct
783
+ ${ATTENDANCE_MATCH}
784
+ WITH v${carry}, j, s, c, pa, ct, ${ATTENDANCE_COLLECT}`;
785
+
786
+ /**
787
+ * One field card from one record.
788
+ *
789
+ * `address` is set when the `AT_ADDRESS` edge resolved and omitted when it did
790
+ * not. The **edge** decides the key, read off its own `addressed` column rather
791
+ * than inferred from the three property columns: a PostalAddress missing its
792
+ * locality is still somewhere a worker can drive to, and inferring absence from
793
+ * empty properties would report the site unaddressed while the census, which
794
+ * counts the edge, called it addressed.
795
+ *
796
+ * `own` is the caller's own attendance, passed by `readWorkerDay` and omitted by
797
+ * the sheet read. With it, the four worker fields are that worker's; without it
798
+ * they fall back to the sole-attendee rule and go null on a shared visit. The
799
+ * distinction is load-bearing: a sheet that showed no arrival to the worker who
800
+ * pressed it would read as a lost press (Task 2512).
801
+ */
802
+ export function projectFieldVisit(
803
+ g: { get(key: string): unknown },
804
+ own?: Attendance,
805
+ ): FieldVisit {
806
+ const addressed = g.get("addressed") === true;
807
+ const att = projectAttendances(g);
808
+ const worker = own ?? {
809
+ workerId: att.workerId,
810
+ arrivedPressedAt: att.arrivedPressedAt,
811
+ arrivedObservedAt: att.arrivedObservedAt,
812
+ arrivedObservedDistanceM: att.arrivedObservedDistanceM,
813
+ };
814
+ return {
815
+ visitId: String(g.get("visitId")),
816
+ jobId: str(g.get("jobId")),
817
+ status: String(g.get("status")),
818
+ startDate: str(g.get("startDate")),
819
+ endDate: str(g.get("endDate")),
820
+ purpose: str(g.get("purpose")),
821
+ attendances: att.attendances,
822
+ workerId: worker.workerId,
823
+ arrivedPressedAt: worker.arrivedPressedAt,
824
+ arrivedObservedAt: worker.arrivedObservedAt,
825
+ arrivedObservedDistanceM: worker.arrivedObservedDistanceM,
826
+ siteId: str(g.get("siteId")),
827
+ siteName: str(g.get("siteName")),
828
+ customerName: str(g.get("customerName")),
829
+ contactName: str(g.get("contactName")),
830
+ contactTelephone: str(g.get("contactTelephone")),
831
+ ...(addressed
832
+ ? {
833
+ address: {
834
+ streetAddress: str(g.get("streetAddress")),
835
+ addressLocality: str(g.get("addressLocality")),
836
+ postalCode: str(g.get("postalCode")),
837
+ },
838
+ }
839
+ : {}),
840
+ };
841
+ }
842
+
843
+ /**
844
+ * One worker's visits in a window, with the contact detail and the street a
845
+ * doorstep needs.
456
846
  *
457
847
  * A separate function rather than a widening of `readDay`, because the planner
458
848
  * draws a week of cards for the whole roster and needs a customer's telephone
459
849
  * on none of them.
460
- *
461
- * **No address and no postcode.** `schema-dispatch.md` declares neither on
462
- * `:Site`, and the only `PostalAddress` edge in the whole ontology is
463
- * logistics' `(:Stop)-[:AT_ADDRESS]->(:PostalAddress)`. Returning them as
464
- * always-null columns would read to a worker as "this site has no address"
465
- * rather than "we do not store one". Task 2514 adds the edge.
466
850
  */
467
851
  export async function readWorkerDay(
468
852
  accountId: string,
@@ -472,49 +856,68 @@ export async function readWorkerDay(
472
856
  ): Promise<FieldVisit[]> {
473
857
  return withSession(async (session) => {
474
858
  const r = await session.run(
475
- `MATCH (v:Visit {accountId: $accountId})-[:ATTENDED_BY]->(e:Engineer {accountId: $accountId, engineerId: $workerId})
859
+ // Anchored on the CALLER'S OWN attendance (`mine`), then the whole
860
+ // visit's attendances collected beside it. The worker's arrival times are
861
+ // read off `mine` rather than through the sole-attendee rule: on a visit
862
+ // they share with somebody, that rule returns null, and a field sheet
863
+ // showing no arrival to the worker who pressed it reads as a lost press.
864
+ `MATCH (v:Visit {accountId: $accountId})-[:HAS_ATTENDANCE]->(mine:Attendance)-[:BY_ENGINEER]->(:Engineer {accountId: $accountId, engineerId: $workerId})
476
865
  WHERE v.startDate >= $from AND v.startDate < $to
477
- OPTIONAL MATCH (j:Job {accountId: $accountId})-[:HAS_VISIT]->(v)
478
- OPTIONAL MATCH (j)-[:AT_SITE]->(s:Site {accountId: $accountId})
479
- OPTIONAL MATCH (j)-[:FOR_CUSTOMER]->(c:Customer {accountId: $accountId})
480
- OPTIONAL MATCH (ct:Contact {accountId: $accountId})-[:CONTACT_FOR]->(c)
481
- RETURN v.visitId AS visitId, j.jobId AS jobId, v.status AS status,
482
- v.startDate AS startDate, v.endDate AS endDate, v.purpose AS purpose,
483
- e.engineerId AS workerId,
484
- v.arrivedPressedAt AS arrivedPressedAt,
485
- v.arrivedObservedAt AS arrivedObservedAt,
486
- v.arrivedObservedDistanceM AS arrivedObservedDistanceM,
487
- s.siteId AS siteId, s.name AS siteName,
488
- c.name AS customerName,
489
- ct.name AS contactName, ct.telephone AS contactTelephone
866
+ ${fieldOptionalMatches(", mine")}
867
+ RETURN ${FIELD_RETURN},
868
+ mine.arrivedPressedAt AS ownArrivedPressedAt,
869
+ mine.arrivedObservedAt AS ownArrivedObservedAt,
870
+ mine.arrivedObservedDistanceM AS ownArrivedObservedDistanceM
490
871
  ORDER BY v.startDate ASC`,
491
872
  { accountId, workerId, from: fromUtc, to: toUtc },
492
873
  );
493
874
  // Sorted in the query, not on the client: an empty result and an unsorted
494
875
  // one must not be able to look alike.
495
876
  return r.records.map((g) => {
496
- const dist = g.get("arrivedObservedDistanceM");
497
- return {
498
- visitId: String(g.get("visitId")),
499
- jobId: str(g.get("jobId")),
500
- status: String(g.get("status")),
501
- startDate: str(g.get("startDate")),
502
- endDate: str(g.get("endDate")),
503
- purpose: str(g.get("purpose")),
504
- workerId: str(g.get("workerId")),
505
- arrivedPressedAt: str(g.get("arrivedPressedAt")),
506
- arrivedObservedAt: str(g.get("arrivedObservedAt")),
877
+ const dist = g.get("ownArrivedObservedDistanceM");
878
+ return projectFieldVisit(g, {
879
+ workerId,
880
+ arrivedPressedAt: str(g.get("ownArrivedPressedAt")),
881
+ arrivedObservedAt: str(g.get("ownArrivedObservedAt")),
507
882
  arrivedObservedDistanceM: dist == null ? null : num(dist),
508
- siteId: str(g.get("siteId")),
509
- siteName: str(g.get("siteName")),
510
- customerName: str(g.get("customerName")),
511
- contactName: str(g.get("contactName")),
512
- contactTelephone: str(g.get("contactTelephone")),
513
- };
883
+ });
514
884
  });
515
885
  });
516
886
  }
517
887
 
888
+ /**
889
+ * One visit as a field card, for the job sheet.
890
+ *
891
+ * The sheet used to serve a plain `VisitRow`, which carries no site name, no
892
+ * customer and no contact, so every sheet rendered "Site not named" with no
893
+ * telephone on it. This is the same projection the day list uses, so the two
894
+ * screens cannot disagree.
895
+ *
896
+ * It takes a session because the sheet route already holds one, and it applies
897
+ * no worker filter: the route does its own ownership check, and a read that
898
+ * also filtered would turn another worker's visit into a 404 where the route
899
+ * means to return a 403.
900
+ */
901
+ export async function readFieldVisit(
902
+ session: Session,
903
+ accountId: string,
904
+ visitId: string,
905
+ ): Promise<FieldVisit | null> {
906
+ const r = await session.run(
907
+ // No `mine` to anchor on, because the sheet applies no worker filter, so the
908
+ // four worker fields fall to the sole-attendee rule and go null on a shared
909
+ // visit. `attendances` carries everyone either way, which is what the sheet
910
+ // renders (Task 2512).
911
+ `MATCH (v:Visit {accountId: $accountId, visitId: $visitId})
912
+ ${fieldOptionalMatches("")}
913
+ RETURN ${FIELD_RETURN}
914
+ LIMIT 1`,
915
+ { accountId, visitId },
916
+ );
917
+ if (r.records.length === 0) return null;
918
+ return projectFieldVisit(r.records[0]);
919
+ }
920
+
518
921
  /** The job list, owning its own session. */
519
922
  export async function readJobList(
520
923
  accountId: string,