@rubytech/create-maxy-code 0.1.570 → 0.1.572
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/payload/platform/config/brand.json +1 -0
- package/payload/platform/lib/dispatch-read/dist/config.d.ts +35 -0
- package/payload/platform/lib/dispatch-read/dist/config.d.ts.map +1 -0
- package/payload/platform/lib/dispatch-read/dist/config.js +84 -0
- package/payload/platform/lib/dispatch-read/dist/config.js.map +1 -0
- package/payload/platform/lib/dispatch-read/dist/index.d.ts +22 -0
- package/payload/platform/lib/dispatch-read/dist/index.d.ts.map +1 -0
- package/payload/platform/lib/dispatch-read/dist/index.js +56 -0
- package/payload/platform/lib/dispatch-read/dist/index.js.map +1 -0
- package/payload/platform/lib/dispatch-read/dist/read.d.ts +107 -0
- package/payload/platform/lib/dispatch-read/dist/read.d.ts.map +1 -0
- package/payload/platform/lib/dispatch-read/dist/read.js +436 -0
- package/payload/platform/lib/dispatch-read/dist/read.js.map +1 -0
- package/payload/platform/lib/dispatch-read/dist/session.d.ts +6 -0
- package/payload/platform/lib/dispatch-read/dist/session.d.ts.map +1 -0
- package/payload/platform/lib/dispatch-read/dist/session.js +52 -0
- package/payload/platform/lib/dispatch-read/dist/session.js.map +1 -0
- package/payload/platform/lib/dispatch-read/dist/types.d.ts +173 -0
- package/payload/platform/lib/dispatch-read/dist/types.d.ts.map +1 -0
- package/payload/platform/lib/dispatch-read/dist/types.js +15 -0
- package/payload/platform/lib/dispatch-read/dist/types.js.map +1 -0
- package/payload/platform/lib/dispatch-read/dist/window.d.ts +48 -0
- package/payload/platform/lib/dispatch-read/dist/window.d.ts.map +1 -0
- package/payload/platform/lib/dispatch-read/dist/window.js +120 -0
- package/payload/platform/lib/dispatch-read/dist/window.js.map +1 -0
- package/payload/platform/lib/dispatch-read/dist/zone.d.ts +18 -0
- package/payload/platform/lib/dispatch-read/dist/zone.d.ts.map +1 -0
- package/payload/platform/lib/dispatch-read/dist/zone.js +41 -0
- package/payload/platform/lib/dispatch-read/dist/zone.js.map +1 -0
- package/payload/platform/lib/dispatch-read/src/__tests__/config.test.ts +62 -0
- package/payload/platform/lib/dispatch-read/src/__tests__/read.test.ts +181 -0
- package/payload/platform/lib/dispatch-read/src/__tests__/window.test.ts +137 -0
- package/payload/platform/lib/dispatch-read/src/__tests__/worker-day.test.ts +141 -0
- package/payload/platform/lib/dispatch-read/src/config.d.ts +26 -0
- package/payload/platform/lib/dispatch-read/src/config.d.ts.map +1 -0
- package/payload/platform/lib/dispatch-read/src/config.ts +85 -0
- package/payload/platform/lib/dispatch-read/src/index.ts +54 -0
- package/payload/platform/lib/dispatch-read/src/read.ts +562 -0
- package/payload/platform/lib/dispatch-read/src/session.ts +50 -0
- package/payload/platform/lib/dispatch-read/src/types.d.ts +143 -0
- package/payload/platform/lib/dispatch-read/src/types.d.ts.map +1 -0
- package/payload/platform/lib/dispatch-read/src/types.ts +188 -0
- package/payload/platform/lib/dispatch-read/src/window.ts +131 -0
- package/payload/platform/lib/dispatch-read/src/zone.ts +43 -0
- package/payload/platform/lib/dispatch-read/tsconfig.json +9 -0
- package/payload/platform/lib/dispatch-read/vitest.config.ts +9 -0
- package/payload/platform/lib/dispatch-write/dist/index.d.ts +17 -0
- package/payload/platform/lib/dispatch-write/dist/index.d.ts.map +1 -0
- package/payload/platform/lib/dispatch-write/dist/index.js +26 -0
- package/payload/platform/lib/dispatch-write/dist/index.js.map +1 -0
- package/payload/platform/lib/dispatch-write/dist/lifecycle.d.ts +57 -0
- package/payload/platform/lib/dispatch-write/dist/lifecycle.d.ts.map +1 -0
- package/payload/platform/lib/dispatch-write/dist/lifecycle.js +77 -0
- package/payload/platform/lib/dispatch-write/dist/lifecycle.js.map +1 -0
- package/payload/platform/lib/dispatch-write/dist/write.d.ts +112 -0
- package/payload/platform/lib/dispatch-write/dist/write.d.ts.map +1 -0
- package/payload/platform/lib/dispatch-write/dist/write.js +195 -0
- package/payload/platform/lib/dispatch-write/dist/write.js.map +1 -0
- package/payload/platform/lib/dispatch-write/src/__tests__/lifecycle.test.ts +67 -0
- package/payload/platform/lib/dispatch-write/src/__tests__/write.test.ts +158 -0
- package/payload/platform/lib/dispatch-write/src/index.ts +37 -0
- package/payload/platform/lib/dispatch-write/src/lifecycle.ts +128 -0
- package/payload/platform/lib/dispatch-write/src/write.ts +389 -0
- package/payload/platform/lib/dispatch-write/tsconfig.json +9 -0
- package/payload/platform/lib/graph-style/dist/index.d.ts.map +1 -1
- package/payload/platform/lib/graph-style/dist/index.js +8 -0
- package/payload/platform/lib/graph-style/dist/index.js.map +1 -1
- package/payload/platform/lib/graph-style/src/index.ts +8 -0
- package/payload/platform/package.json +2 -2
- package/payload/platform/plugins/.claude-plugin/marketplace.json +5 -0
- package/payload/platform/plugins/admin/hooks/lib/maxy-mcp-plugins.txt +1 -0
- package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +165 -1
- package/payload/platform/plugins/admin/skills/whats-new/SKILL.md +12 -0
- package/payload/platform/plugins/dispatch/.claude-plugin/plugin.json +21 -0
- package/payload/platform/plugins/dispatch/PLUGIN.md +116 -0
- package/payload/platform/plugins/dispatch/lib/mcp-spawn-tee/index.js +204 -0
- package/payload/platform/plugins/dispatch/lib/mcp-spawn-tee/package.json +3 -0
- package/payload/platform/plugins/dispatch/mcp/dist/index.d.ts +2 -0
- package/payload/platform/plugins/dispatch/mcp/dist/index.d.ts.map +1 -0
- package/payload/platform/plugins/dispatch/mcp/dist/index.js +277 -0
- package/payload/platform/plugins/dispatch/mcp/dist/index.js.map +1 -0
- package/payload/platform/plugins/dispatch/mcp/dist/lib/allocate.d.ts +62 -0
- package/payload/platform/plugins/dispatch/mcp/dist/lib/allocate.d.ts.map +1 -0
- package/payload/platform/plugins/dispatch/mcp/dist/lib/allocate.js +36 -0
- package/payload/platform/plugins/dispatch/mcp/dist/lib/allocate.js.map +1 -0
- package/payload/platform/plugins/dispatch/mcp/dist/lib/config.d.ts +38 -0
- package/payload/platform/plugins/dispatch/mcp/dist/lib/config.d.ts.map +1 -0
- package/payload/platform/plugins/dispatch/mcp/dist/lib/config.js +371 -0
- package/payload/platform/plugins/dispatch/mcp/dist/lib/config.js.map +1 -0
- package/payload/platform/plugins/dispatch/mcp/dist/lib/ids.d.ts +7 -0
- package/payload/platform/plugins/dispatch/mcp/dist/lib/ids.d.ts.map +1 -0
- package/payload/platform/plugins/dispatch/mcp/dist/lib/ids.js +16 -0
- package/payload/platform/plugins/dispatch/mcp/dist/lib/ids.js.map +1 -0
- package/payload/platform/plugins/dispatch/mcp/dist/lib/lifecycle.d.ts +11 -0
- package/payload/platform/plugins/dispatch/mcp/dist/lib/lifecycle.d.ts.map +1 -0
- package/payload/platform/plugins/dispatch/mcp/dist/lib/lifecycle.js +10 -0
- package/payload/platform/plugins/dispatch/mcp/dist/lib/lifecycle.js.map +1 -0
- package/payload/platform/plugins/dispatch/mcp/dist/lib/neo4j.d.ts +5 -0
- package/payload/platform/plugins/dispatch/mcp/dist/lib/neo4j.d.ts.map +1 -0
- package/payload/platform/plugins/dispatch/mcp/dist/lib/neo4j.js +40 -0
- package/payload/platform/plugins/dispatch/mcp/dist/lib/neo4j.js.map +1 -0
- package/payload/platform/plugins/dispatch/mcp/dist/lib/read.d.ts +11 -0
- package/payload/platform/plugins/dispatch/mcp/dist/lib/read.d.ts.map +1 -0
- package/payload/platform/plugins/dispatch/mcp/dist/lib/read.js +10 -0
- package/payload/platform/plugins/dispatch/mcp/dist/lib/read.js.map +1 -0
- package/payload/platform/plugins/dispatch/mcp/dist/lib/types.d.ts +134 -0
- package/payload/platform/plugins/dispatch/mcp/dist/lib/types.d.ts.map +1 -0
- package/payload/platform/plugins/dispatch/mcp/dist/lib/types.js +12 -0
- package/payload/platform/plugins/dispatch/mcp/dist/lib/types.js.map +1 -0
- package/payload/platform/plugins/dispatch/mcp/dist/tools/allocate.d.ts +38 -0
- package/payload/platform/plugins/dispatch/mcp/dist/tools/allocate.d.ts.map +1 -0
- package/payload/platform/plugins/dispatch/mcp/dist/tools/allocate.js +167 -0
- package/payload/platform/plugins/dispatch/mcp/dist/tools/allocate.js.map +1 -0
- package/payload/platform/plugins/dispatch/mcp/dist/tools/config-get.d.ts +15 -0
- package/payload/platform/plugins/dispatch/mcp/dist/tools/config-get.d.ts.map +1 -0
- package/payload/platform/plugins/dispatch/mcp/dist/tools/config-get.js +24 -0
- package/payload/platform/plugins/dispatch/mcp/dist/tools/config-get.js.map +1 -0
- package/payload/platform/plugins/dispatch/mcp/dist/tools/job-create.d.ts +30 -0
- package/payload/platform/plugins/dispatch/mcp/dist/tools/job-create.d.ts.map +1 -0
- package/payload/platform/plugins/dispatch/mcp/dist/tools/job-create.js +53 -0
- package/payload/platform/plugins/dispatch/mcp/dist/tools/job-create.js.map +1 -0
- package/payload/platform/plugins/dispatch/mcp/dist/tools/reads.d.ts +38 -0
- package/payload/platform/plugins/dispatch/mcp/dist/tools/reads.d.ts.map +1 -0
- package/payload/platform/plugins/dispatch/mcp/dist/tools/reads.js +63 -0
- package/payload/platform/plugins/dispatch/mcp/dist/tools/reads.js.map +1 -0
- package/payload/platform/plugins/dispatch/mcp/dist/tools/result.d.ts +17 -0
- package/payload/platform/plugins/dispatch/mcp/dist/tools/result.d.ts.map +1 -0
- package/payload/platform/plugins/dispatch/mcp/dist/tools/result.js +7 -0
- package/payload/platform/plugins/dispatch/mcp/dist/tools/result.js.map +1 -0
- package/payload/platform/plugins/dispatch/mcp/dist/tools/visit-record.d.ts +13 -0
- package/payload/platform/plugins/dispatch/mcp/dist/tools/visit-record.d.ts.map +1 -0
- package/payload/platform/plugins/dispatch/mcp/dist/tools/visit-record.js +15 -0
- package/payload/platform/plugins/dispatch/mcp/dist/tools/visit-record.js.map +1 -0
- package/payload/platform/plugins/dispatch/mcp/dist/tools/visit-status-set.d.ts +13 -0
- package/payload/platform/plugins/dispatch/mcp/dist/tools/visit-status-set.d.ts.map +1 -0
- package/payload/platform/plugins/dispatch/mcp/dist/tools/visit-status-set.js +15 -0
- package/payload/platform/plugins/dispatch/mcp/dist/tools/visit-status-set.js.map +1 -0
- package/payload/platform/plugins/dispatch/mcp/package.json +21 -0
- package/payload/platform/plugins/dispatch/skills/dispatch-setup/SKILL.md +64 -0
- package/payload/platform/plugins/docs/references/dispatch.md +159 -0
- package/payload/platform/plugins/email/.claude-plugin/plugin.json +1 -1
- package/payload/platform/plugins/email/PLUGIN.md +2 -2
- package/payload/platform/plugins/email/mcp/dist/__tests__/email-delete.test.js +126 -4
- package/payload/platform/plugins/email/mcp/dist/__tests__/email-delete.test.js.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/index.js +4 -3
- package/payload/platform/plugins/email/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/lib/imap.d.ts +18 -3
- package/payload/platform/plugins/email/mcp/dist/lib/imap.d.ts.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/lib/imap.js +28 -6
- package/payload/platform/plugins/email/mcp/dist/lib/imap.js.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/tools/email-delete.d.ts +6 -3
- package/payload/platform/plugins/email/mcp/dist/tools/email-delete.d.ts.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/tools/email-delete.js +11 -5
- package/payload/platform/plugins/email/mcp/dist/tools/email-delete.js.map +1 -1
- package/payload/platform/plugins/email/references/email-reference.md +4 -2
- package/payload/platform/plugins/email/skills/email-composition/SKILL.md +4 -3
- package/payload/platform/plugins/memory/PLUGIN.md +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/dispatch-vertical-coverage.test.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/dispatch-vertical-coverage.test.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/dispatch-vertical-coverage.test.js +212 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/dispatch-vertical-coverage.test.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/enabled-plugins.test.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/enabled-plugins.test.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/enabled-plugins.test.js +50 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/enabled-plugins.test.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/ledger-vertical-coverage.test.js +5 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/ledger-vertical-coverage.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/phase-estate-census.test.js +3 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/phase-estate-census.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/relationship-patterns.test.js +56 -6
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/relationship-patterns.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/resolve-active-vertical.test.js +138 -7
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/resolve-active-vertical.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-validator.test.js +19 -17
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-validator.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-write-path-task802.test.js +16 -5
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-write-path-task802.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-estate-census.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-estate-census.js +7 -3
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-estate-census.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/enabled-plugins.d.ts +4 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/enabled-plugins.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/enabled-plugins.js +44 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/enabled-plugins.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/relationship-patterns.d.ts +9 -7
- package/payload/platform/plugins/memory/mcp/dist/lib/relationship-patterns.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/relationship-patterns.js +11 -10
- package/payload/platform/plugins/memory/mcp/dist/lib/relationship-patterns.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/resolve-active-vertical.d.ts +46 -10
- package/payload/platform/plugins/memory/mcp/dist/lib/resolve-active-vertical.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/resolve-active-vertical.js +46 -11
- package/payload/platform/plugins/memory/mcp/dist/lib/resolve-active-vertical.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/schema-validator.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/schema-validator.js +16 -18
- package/payload/platform/plugins/memory/mcp/dist/lib/schema-validator.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-edge.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-edge.js +4 -2
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-edge.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.js +8 -5
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.js.map +1 -1
- package/payload/platform/plugins/memory/references/schema-construction.md +51 -75
- package/payload/platform/plugins/memory/references/schema-dispatch.md +178 -0
- package/payload/platform/plugins/telegram/PLUGIN.md +4 -0
- package/payload/platform/plugins/telegram/mcp/dist/__tests__/menu-button.test.d.ts +2 -0
- package/payload/platform/plugins/telegram/mcp/dist/__tests__/menu-button.test.d.ts.map +1 -0
- package/payload/platform/plugins/telegram/mcp/dist/__tests__/menu-button.test.js +51 -0
- package/payload/platform/plugins/telegram/mcp/dist/__tests__/menu-button.test.js.map +1 -0
- package/payload/platform/plugins/telegram/mcp/dist/index.js +51 -1
- package/payload/platform/plugins/telegram/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/telegram/mcp/dist/lib/menu-button.d.ts +32 -0
- package/payload/platform/plugins/telegram/mcp/dist/lib/menu-button.d.ts.map +1 -0
- package/payload/platform/plugins/telegram/mcp/dist/lib/menu-button.js +56 -0
- package/payload/platform/plugins/telegram/mcp/dist/lib/menu-button.js.map +1 -0
- package/payload/platform/plugins/telegram/mcp/dist/lib/telegram.d.ts +26 -0
- package/payload/platform/plugins/telegram/mcp/dist/lib/telegram.d.ts.map +1 -1
- package/payload/platform/plugins/telegram/mcp/dist/lib/telegram.js +16 -0
- package/payload/platform/plugins/telegram/mcp/dist/lib/telegram.js.map +1 -1
- package/payload/platform/plugins/telegram/mcp/dist/tools/message.d.ts +2 -5
- package/payload/platform/plugins/telegram/mcp/dist/tools/message.d.ts.map +1 -1
- package/payload/platform/plugins/telegram/mcp/dist/tools/message.js +4 -11
- package/payload/platform/plugins/telegram/mcp/dist/tools/message.js.map +1 -1
- package/payload/platform/plugins/whatsapp/references/channels-whatsapp.md +1 -1
- package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js +12 -0
- package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/http-server.js +38 -13
- package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
- package/payload/platform/services/telegram-channel/dist/notification.d.ts +20 -7
- package/payload/platform/services/telegram-channel/dist/notification.d.ts.map +1 -1
- package/payload/platform/services/telegram-channel/dist/notification.js +38 -4
- package/payload/platform/services/telegram-channel/dist/notification.js.map +1 -1
- package/payload/server/chunk-6DQCFP2E.js +4868 -0
- package/payload/server/maxy-edge.js +1 -1
- package/payload/server/public/activity.html +8 -6
- package/payload/server/public/agents.html +7 -5
- package/payload/server/public/assets/AdminLoginScreens-CMdj1W5p.js +1 -0
- package/payload/server/public/assets/AdminLoginScreens-CMdj1W5p.js.br +0 -0
- package/payload/server/public/assets/AdminLoginScreens-CMdj1W5p.js.gz +0 -0
- package/payload/server/public/assets/AdminShell-CZcaW3BQ.js +3 -0
- package/payload/server/public/assets/AdminShell-CZcaW3BQ.js.br +0 -0
- package/payload/server/public/assets/AdminShell-CZcaW3BQ.js.gz +0 -0
- package/payload/server/public/assets/activity-CAhibgb-.js +1 -0
- package/payload/server/public/assets/activity-CAhibgb-.js.br +0 -0
- package/payload/server/public/assets/activity-CAhibgb-.js.gz +0 -0
- package/payload/server/public/assets/admin-xEXv3w9e.js +1 -0
- package/payload/server/public/assets/admin-xEXv3w9e.js.br +0 -0
- package/payload/server/public/assets/admin-xEXv3w9e.js.gz +0 -0
- package/payload/server/public/assets/agents-CiAmzTaT.js +1 -0
- package/payload/server/public/assets/agents-CiAmzTaT.js.br +0 -0
- package/payload/server/public/assets/agents-CiAmzTaT.js.gz +0 -0
- package/payload/server/public/assets/arc-CWXBKNZd.js +1 -0
- package/payload/server/public/assets/arc-CWXBKNZd.js.br +0 -0
- package/payload/server/public/assets/arc-CWXBKNZd.js.gz +0 -0
- package/payload/server/public/assets/architecture-YZFGNWBL-CIL4I0fc.js +1 -0
- package/payload/server/public/assets/architecture-YZFGNWBL-CIL4I0fc.js.br +0 -0
- package/payload/server/public/assets/architectureDiagram-Q4EWVU46-C-KPMyG4.js +36 -0
- package/payload/server/public/assets/architectureDiagram-Q4EWVU46-C-KPMyG4.js.br +0 -0
- package/payload/server/public/assets/architectureDiagram-Q4EWVU46-C-KPMyG4.js.gz +0 -0
- package/payload/server/public/assets/blockDiagram-DXYQGD6D-DkYbV9Sf.js +132 -0
- package/payload/server/public/assets/blockDiagram-DXYQGD6D-DkYbV9Sf.js.br +0 -0
- package/payload/server/public/assets/blockDiagram-DXYQGD6D-DkYbV9Sf.js.gz +0 -0
- package/payload/server/public/assets/browser-D36BiYhS.js +1 -0
- package/payload/server/public/assets/browser-D36BiYhS.js.br +0 -0
- package/payload/server/public/assets/browser-D36BiYhS.js.gz +0 -0
- package/payload/server/public/assets/c4Diagram-AHTNJAMY-EYW4kdlx.js +10 -0
- package/payload/server/public/assets/c4Diagram-AHTNJAMY-EYW4kdlx.js.br +0 -0
- package/payload/server/public/assets/c4Diagram-AHTNJAMY-EYW4kdlx.js.gz +0 -0
- package/payload/server/public/assets/calendar-CJAM-iXn.js +1 -0
- package/payload/server/public/assets/calendar-CJAM-iXn.js.br +0 -0
- package/payload/server/public/assets/calendar-CJAM-iXn.js.gz +0 -0
- package/payload/server/public/assets/channel-CbHmRjy_.js +1 -0
- package/payload/server/public/assets/channel-CbHmRjy_.js.br +0 -0
- package/payload/server/public/assets/chat-DhZSvtZK.js +1 -0
- package/payload/server/public/assets/chat-DhZSvtZK.js.br +0 -0
- package/payload/server/public/assets/chat-DhZSvtZK.js.gz +0 -0
- package/payload/server/public/assets/chevron-left-CXEcNlc3.js +1 -0
- package/payload/server/public/assets/chevron-left-CXEcNlc3.js.br +0 -0
- package/payload/server/public/assets/chunk-2KRD3SAO-CmAF1UmH.js +1 -0
- package/payload/server/public/assets/chunk-2KRD3SAO-CmAF1UmH.js.br +0 -0
- package/payload/server/public/assets/chunk-2KRD3SAO-CmAF1UmH.js.gz +0 -0
- package/payload/server/public/assets/chunk-336JU56O-CyhmJeMM.js +2 -0
- package/payload/server/public/assets/chunk-336JU56O-CyhmJeMM.js.br +0 -0
- package/payload/server/public/assets/chunk-336JU56O-CyhmJeMM.js.gz +0 -0
- package/payload/server/public/assets/chunk-426QAEUC-C2tnHCM7.js +1 -0
- package/payload/server/public/assets/chunk-426QAEUC-C2tnHCM7.js.br +0 -0
- package/payload/server/public/assets/chunk-426QAEUC-C2tnHCM7.js.gz +0 -0
- package/payload/server/public/assets/chunk-4BX2VUAB-DCzC40-Y.js +1 -0
- package/payload/server/public/assets/chunk-4BX2VUAB-DCzC40-Y.js.br +0 -0
- package/payload/server/public/assets/chunk-4BX2VUAB-DCzC40-Y.js.gz +0 -0
- package/payload/server/public/assets/chunk-4TB4RGXK-D9BXrSA_.js +206 -0
- package/payload/server/public/assets/chunk-4TB4RGXK-D9BXrSA_.js.br +0 -0
- package/payload/server/public/assets/chunk-4TB4RGXK-D9BXrSA_.js.gz +0 -0
- package/payload/server/public/assets/chunk-55IACEB6-BwXC-qTZ.js +1 -0
- package/payload/server/public/assets/chunk-55IACEB6-BwXC-qTZ.js.br +0 -0
- package/payload/server/public/assets/chunk-55IACEB6-BwXC-qTZ.js.gz +0 -0
- package/payload/server/public/assets/chunk-5FUZZQ4R-De7QtXxM.js +62 -0
- package/payload/server/public/assets/chunk-5FUZZQ4R-De7QtXxM.js.br +0 -0
- package/payload/server/public/assets/chunk-5FUZZQ4R-De7QtXxM.js.gz +0 -0
- package/payload/server/public/assets/chunk-5PVQY5BW-B5tsJiCq.js +2 -0
- package/payload/server/public/assets/chunk-5PVQY5BW-B5tsJiCq.js.br +0 -0
- package/payload/server/public/assets/chunk-5PVQY5BW-B5tsJiCq.js.gz +0 -0
- package/payload/server/public/assets/chunk-67CJDMHE-BjTh9STV.js +1 -0
- package/payload/server/public/assets/chunk-67CJDMHE-BjTh9STV.js.br +0 -0
- package/payload/server/public/assets/chunk-67CJDMHE-BjTh9STV.js.gz +0 -0
- package/payload/server/public/assets/chunk-7N4EOEYR-91klRswn.js +1 -0
- package/payload/server/public/assets/chunk-7N4EOEYR-91klRswn.js.br +0 -0
- package/payload/server/public/assets/chunk-7N4EOEYR-91klRswn.js.gz +0 -0
- package/payload/server/public/assets/chunk-AA7GKIK3-XFPGEoBu.js +1 -0
- package/payload/server/public/assets/chunk-AA7GKIK3-XFPGEoBu.js.br +3 -0
- package/payload/server/public/assets/chunk-AA7GKIK3-XFPGEoBu.js.gz +0 -0
- package/payload/server/public/assets/chunk-BSJP7CBP-B7wgMyWq.js +1 -0
- package/payload/server/public/assets/chunk-BSJP7CBP-B7wgMyWq.js.br +0 -0
- package/payload/server/public/assets/chunk-BSJP7CBP-B7wgMyWq.js.gz +0 -0
- package/payload/server/public/assets/chunk-CIAEETIT-WPy9vcOo.js +1 -0
- package/payload/server/public/assets/chunk-CIAEETIT-WPy9vcOo.js.br +0 -0
- package/payload/server/public/assets/chunk-CIAEETIT-WPy9vcOo.js.gz +0 -0
- package/payload/server/public/assets/chunk-EDXVE4YY-D_2JIFFG.js +1 -0
- package/payload/server/public/assets/chunk-EDXVE4YY-D_2JIFFG.js.br +0 -0
- package/payload/server/public/assets/chunk-EDXVE4YY-D_2JIFFG.js.gz +0 -0
- package/payload/server/public/assets/chunk-ENJZ2VHE-xORReRt0.js +10 -0
- package/payload/server/public/assets/chunk-ENJZ2VHE-xORReRt0.js.br +0 -0
- package/payload/server/public/assets/chunk-ENJZ2VHE-xORReRt0.js.gz +0 -0
- package/payload/server/public/assets/chunk-FMBD7UC4-BZsDu4nl.js +15 -0
- package/payload/server/public/assets/chunk-FMBD7UC4-BZsDu4nl.js.br +0 -0
- package/payload/server/public/assets/chunk-FMBD7UC4-BZsDu4nl.js.gz +0 -0
- package/payload/server/public/assets/chunk-FOC6F5B3-QzUp8wXX.js +1 -0
- package/payload/server/public/assets/chunk-FOC6F5B3-QzUp8wXX.js.br +0 -0
- package/payload/server/public/assets/chunk-FOC6F5B3-QzUp8wXX.js.gz +0 -0
- package/payload/server/public/assets/chunk-ICPOFSXX-B64S7i7x.js +122 -0
- package/payload/server/public/assets/chunk-ICPOFSXX-B64S7i7x.js.br +0 -0
- package/payload/server/public/assets/chunk-ICPOFSXX-B64S7i7x.js.gz +0 -0
- package/payload/server/public/assets/chunk-K5T4RW27-DzPc6X1_.js +94 -0
- package/payload/server/public/assets/chunk-K5T4RW27-DzPc6X1_.js.br +0 -0
- package/payload/server/public/assets/chunk-K5T4RW27-DzPc6X1_.js.gz +0 -0
- package/payload/server/public/assets/chunk-KGLVRYIC-A2rPnD7k.js +1 -0
- package/payload/server/public/assets/chunk-KGLVRYIC-A2rPnD7k.js.br +1 -0
- package/payload/server/public/assets/chunk-KGLVRYIC-A2rPnD7k.js.gz +0 -0
- package/payload/server/public/assets/chunk-LIHQZDEY-CaWX327m.js +1 -0
- package/payload/server/public/assets/chunk-LIHQZDEY-CaWX327m.js.br +0 -0
- package/payload/server/public/assets/chunk-LIHQZDEY-CaWX327m.js.gz +0 -0
- package/payload/server/public/assets/chunk-ORNJ4GCN-zrWhdmnc.js +1 -0
- package/payload/server/public/assets/chunk-ORNJ4GCN-zrWhdmnc.js.br +0 -0
- package/payload/server/public/assets/chunk-ORNJ4GCN-zrWhdmnc.js.gz +0 -0
- package/payload/server/public/assets/chunk-OYMX7WX6-B_2qQir6.js +231 -0
- package/payload/server/public/assets/chunk-OYMX7WX6-B_2qQir6.js.br +0 -0
- package/payload/server/public/assets/chunk-OYMX7WX6-B_2qQir6.js.gz +0 -0
- package/payload/server/public/assets/chunk-QZHKN3VN-BzgrgCTo.js +1 -0
- package/payload/server/public/assets/chunk-QZHKN3VN-BzgrgCTo.js.br +0 -0
- package/payload/server/public/assets/chunk-QZHKN3VN-BzgrgCTo.js.gz +0 -0
- package/payload/server/public/assets/chunk-U2HBQHQK-B-IYgxsc.js +70 -0
- package/payload/server/public/assets/chunk-U2HBQHQK-B-IYgxsc.js.br +0 -0
- package/payload/server/public/assets/chunk-U2HBQHQK-B-IYgxsc.js.gz +0 -0
- package/payload/server/public/assets/chunk-X2U36JSP-Y9Y1_EuG.js +1 -0
- package/payload/server/public/assets/chunk-X2U36JSP-Y9Y1_EuG.js.br +0 -0
- package/payload/server/public/assets/chunk-X2U36JSP-Y9Y1_EuG.js.gz +0 -0
- package/payload/server/public/assets/chunk-XPW4576I-C-6yETG_.js +32 -0
- package/payload/server/public/assets/chunk-XPW4576I-C-6yETG_.js.br +0 -0
- package/payload/server/public/assets/chunk-XPW4576I-C-6yETG_.js.gz +0 -0
- package/payload/server/public/assets/chunk-YZCP3GAM-KAuQIU5n.js +1 -0
- package/payload/server/public/assets/chunk-YZCP3GAM-KAuQIU5n.js.br +0 -0
- package/payload/server/public/assets/chunk-YZCP3GAM-KAuQIU5n.js.gz +0 -0
- package/payload/server/public/assets/chunk-ZZ45TVLE-BJcH3KDH.js +1 -0
- package/payload/server/public/assets/chunk-ZZ45TVLE-BJcH3KDH.js.br +0 -0
- package/payload/server/public/assets/chunk-ZZ45TVLE-BJcH3KDH.js.gz +0 -0
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-BxvqeBEj.js +1 -0
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-BxvqeBEj.js.br +0 -0
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-BxvqeBEj.js.gz +0 -0
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-R3-NzMRG.js +1 -0
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-R3-NzMRG.js.br +0 -0
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-R3-NzMRG.js.gz +0 -0
- package/payload/server/public/assets/clock-DdxIJwTr.js +1 -0
- package/payload/server/public/assets/clock-DdxIJwTr.js.br +0 -0
- package/payload/server/public/assets/clock-DdxIJwTr.js.gz +0 -0
- package/payload/server/public/assets/clone-QdOE5SXR.js +1 -0
- package/payload/server/public/assets/copy-axBe92iY.js +1 -0
- package/payload/server/public/assets/copy-axBe92iY.js.br +0 -0
- package/payload/server/public/assets/copy-axBe92iY.js.gz +0 -0
- package/payload/server/public/assets/cose-bilkent-S5V4N54A-CcXj8vHa.js +1 -0
- package/payload/server/public/assets/cose-bilkent-S5V4N54A-CcXj8vHa.js.br +0 -0
- package/payload/server/public/assets/cose-bilkent-S5V4N54A-CcXj8vHa.js.gz +0 -0
- package/payload/server/public/assets/dagre-DOtq9kYX.js +1 -0
- package/payload/server/public/assets/dagre-DOtq9kYX.js.br +0 -0
- package/payload/server/public/assets/dagre-DOtq9kYX.js.gz +0 -0
- package/payload/server/public/assets/dagre-KV5264BT-BOhQs4rS.js +4 -0
- package/payload/server/public/assets/dagre-KV5264BT-BOhQs4rS.js.br +0 -0
- package/payload/server/public/assets/dagre-KV5264BT-BOhQs4rS.js.gz +0 -0
- package/payload/server/public/assets/data-DUvkI-zq.js +1 -0
- package/payload/server/public/assets/data-DUvkI-zq.js.br +0 -0
- package/payload/server/public/assets/data-DUvkI-zq.js.gz +0 -0
- package/payload/server/public/assets/diagram-5BDNPKRD-CqJFt5ZM.js +10 -0
- package/payload/server/public/assets/diagram-5BDNPKRD-CqJFt5ZM.js.br +0 -0
- package/payload/server/public/assets/diagram-5BDNPKRD-CqJFt5ZM.js.gz +0 -0
- package/payload/server/public/assets/diagram-G4DWMVQ6-WQIyAZMn.js +24 -0
- package/payload/server/public/assets/diagram-G4DWMVQ6-WQIyAZMn.js.br +0 -0
- package/payload/server/public/assets/diagram-G4DWMVQ6-WQIyAZMn.js.gz +0 -0
- package/payload/server/public/assets/diagram-MMDJMWI5-jcKc4a2w.js +43 -0
- package/payload/server/public/assets/diagram-MMDJMWI5-jcKc4a2w.js.br +0 -0
- package/payload/server/public/assets/diagram-MMDJMWI5-jcKc4a2w.js.gz +0 -0
- package/payload/server/public/assets/diagram-TYMM5635-Bbt2KuWe.js +24 -0
- package/payload/server/public/assets/diagram-TYMM5635-Bbt2KuWe.js.br +0 -0
- package/payload/server/public/assets/diagram-TYMM5635-Bbt2KuWe.js.gz +0 -0
- package/payload/server/public/assets/dispatch-D_i2ko7K.js +1 -0
- package/payload/server/public/assets/dispatch-D_i2ko7K.js.br +0 -0
- package/payload/server/public/assets/dispatch-D_i2ko7K.js.gz +0 -0
- package/payload/server/public/assets/dist-9RiN6lky.js +1 -0
- package/payload/server/public/assets/dist-9RiN6lky.js.br +0 -0
- package/payload/server/public/assets/dist-9RiN6lky.js.gz +0 -0
- package/payload/server/public/assets/erDiagram-SMLLAGMA-BBm6azPJ.js +85 -0
- package/payload/server/public/assets/erDiagram-SMLLAGMA-BBm6azPJ.js.br +0 -0
- package/payload/server/public/assets/erDiagram-SMLLAGMA-BBm6azPJ.js.gz +0 -0
- package/payload/server/public/assets/field-DFgkqq1P.js +1 -0
- package/payload/server/public/assets/field-DFgkqq1P.js.br +0 -0
- package/payload/server/public/assets/field-DFgkqq1P.js.gz +0 -0
- package/payload/server/public/assets/file-text-CEFoq0Je.js +1 -0
- package/payload/server/public/assets/file-text-CEFoq0Je.js.br +0 -0
- package/payload/server/public/assets/file-text-CEFoq0Je.js.gz +0 -0
- package/payload/server/public/assets/flatten-BurGKeIy.js +1 -0
- package/payload/server/public/assets/flatten-BurGKeIy.js.br +0 -0
- package/payload/server/public/assets/flatten-BurGKeIy.js.gz +0 -0
- package/payload/server/public/assets/flowDiagram-DWJPFMVM-_r45DYJ8.js +162 -0
- package/payload/server/public/assets/flowDiagram-DWJPFMVM-_r45DYJ8.js.br +0 -0
- package/payload/server/public/assets/flowDiagram-DWJPFMVM-_r45DYJ8.js.gz +0 -0
- package/payload/server/public/assets/ganttDiagram-T4ZO3ILL-Bjgj9Bej.js +292 -0
- package/payload/server/public/assets/ganttDiagram-T4ZO3ILL-Bjgj9Bej.js.br +0 -0
- package/payload/server/public/assets/ganttDiagram-T4ZO3ILL-Bjgj9Bej.js.gz +0 -0
- package/payload/server/public/assets/gitGraph-7Q5UKJZL-DdbK59od.js +1 -0
- package/payload/server/public/assets/gitGraph-7Q5UKJZL-DdbK59od.js.br +0 -0
- package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-DTRdhGJA.js +106 -0
- package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-DTRdhGJA.js.br +0 -0
- package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-DTRdhGJA.js.gz +0 -0
- package/payload/server/public/assets/graph-BrpbilNr.js +51 -0
- package/payload/server/public/assets/graph-BrpbilNr.js.br +0 -0
- package/payload/server/public/assets/graph-BrpbilNr.js.gz +0 -0
- package/payload/server/public/assets/graph-labels-BtmcWzo7.js +1 -0
- package/payload/server/public/assets/graph-labels-BtmcWzo7.js.br +0 -0
- package/payload/server/public/assets/graph-labels-BtmcWzo7.js.gz +0 -0
- package/payload/server/public/assets/graphlib-DT4h6-4N.js +1 -0
- package/payload/server/public/assets/graphlib-DT4h6-4N.js.br +0 -0
- package/payload/server/public/assets/graphlib-DT4h6-4N.js.gz +0 -0
- package/payload/server/public/assets/info-OMHHGYJF-BR8gm0wj.js +1 -0
- package/payload/server/public/assets/info-OMHHGYJF-BR8gm0wj.js.br +0 -0
- package/payload/server/public/assets/infoDiagram-42DDH7IO-Cr3Efss6.js +2 -0
- package/payload/server/public/assets/infoDiagram-42DDH7IO-Cr3Efss6.js.br +0 -0
- package/payload/server/public/assets/infoDiagram-42DDH7IO-Cr3Efss6.js.gz +0 -0
- package/payload/server/public/assets/isEmpty-C5v0-EY7.js +1 -0
- package/payload/server/public/assets/isEmpty-C5v0-EY7.js.br +0 -0
- package/payload/server/public/assets/isEmpty-C5v0-EY7.js.gz +0 -0
- package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-BklHzVHm.js +70 -0
- package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-BklHzVHm.js.br +0 -0
- package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-BklHzVHm.js.gz +0 -0
- package/payload/server/public/assets/journeyDiagram-VCZTEJTY-Ckxx2CmV.js +139 -0
- package/payload/server/public/assets/journeyDiagram-VCZTEJTY-Ckxx2CmV.js.br +0 -0
- package/payload/server/public/assets/journeyDiagram-VCZTEJTY-Ckxx2CmV.js.gz +0 -0
- package/payload/server/public/assets/jsx-runtime-C5Hcfj84.js +9 -0
- package/payload/server/public/assets/jsx-runtime-C5Hcfj84.js.br +0 -0
- package/payload/server/public/assets/jsx-runtime-C5Hcfj84.js.gz +0 -0
- package/payload/server/public/assets/jsx-runtime-XuYKjgVb.css +1 -0
- package/payload/server/public/assets/jsx-runtime-XuYKjgVb.css.br +0 -0
- package/payload/server/public/assets/jsx-runtime-XuYKjgVb.css.gz +0 -0
- package/payload/server/public/assets/kanban-definition-6JOO6SKY-BLELXpqn.js +89 -0
- package/payload/server/public/assets/kanban-definition-6JOO6SKY-BLELXpqn.js.br +0 -0
- package/payload/server/public/assets/kanban-definition-6JOO6SKY-BLELXpqn.js.gz +0 -0
- package/payload/server/public/assets/line-BkI5icOY.js +1 -0
- package/payload/server/public/assets/line-BkI5icOY.js.br +0 -0
- package/payload/server/public/assets/line-BkI5icOY.js.gz +0 -0
- package/payload/server/public/assets/linear-B64ANRVs.js +1 -0
- package/payload/server/public/assets/linear-B64ANRVs.js.br +0 -0
- package/payload/server/public/assets/linear-B64ANRVs.js.gz +0 -0
- package/payload/server/public/assets/mermaid-parser.core-qXPKkdJe.js +4 -0
- package/payload/server/public/assets/mermaid-parser.core-qXPKkdJe.js.br +0 -0
- package/payload/server/public/assets/mermaid-parser.core-qXPKkdJe.js.gz +0 -0
- package/payload/server/public/assets/mermaid.core-BMsz65Wy.js +11 -0
- package/payload/server/public/assets/mermaid.core-BMsz65Wy.js.br +0 -0
- package/payload/server/public/assets/mermaid.core-BMsz65Wy.js.gz +0 -0
- package/payload/server/public/assets/mindmap-definition-QFDTVHPH-DhFTS2sx.js +96 -0
- package/payload/server/public/assets/mindmap-definition-QFDTVHPH-DhFTS2sx.js.br +0 -0
- package/payload/server/public/assets/mindmap-definition-QFDTVHPH-DhFTS2sx.js.gz +0 -0
- package/payload/server/public/assets/operator-Dl7dJt1G.js +1 -0
- package/payload/server/public/assets/operator-Dl7dJt1G.js.br +3 -0
- package/payload/server/public/assets/operator-Dl7dJt1G.js.gz +0 -0
- package/payload/server/public/assets/ordinal-CJ_pL32Z.js +1 -0
- package/payload/server/public/assets/ordinal-CJ_pL32Z.js.br +0 -0
- package/payload/server/public/assets/ordinal-CJ_pL32Z.js.gz +0 -0
- package/payload/server/public/assets/packet-4T2RLAQJ-B31PbAeA.js +1 -0
- package/payload/server/public/assets/packet-4T2RLAQJ-B31PbAeA.js.br +0 -0
- package/payload/server/public/assets/page-nx31Ij0T.js +1 -0
- package/payload/server/public/assets/page-nx31Ij0T.js.br +0 -0
- package/payload/server/public/assets/page-nx31Ij0T.js.gz +0 -0
- package/payload/server/public/assets/page-zC66xzNT.js +32 -0
- package/payload/server/public/assets/page-zC66xzNT.js.br +0 -0
- package/payload/server/public/assets/page-zC66xzNT.js.gz +0 -0
- package/payload/server/public/assets/pdf-render-ynIPXfRA.js +11 -0
- package/payload/server/public/assets/pdf-render-ynIPXfRA.js.br +0 -0
- package/payload/server/public/assets/pdf-render-ynIPXfRA.js.gz +0 -0
- package/payload/server/public/assets/pie-ZZUOXDRM-BbSc1VXl.js +1 -0
- package/payload/server/public/assets/pie-ZZUOXDRM-BbSc1VXl.js.br +0 -0
- package/payload/server/public/assets/pieDiagram-DEJITSTG-B2TxkbHK.js +30 -0
- package/payload/server/public/assets/pieDiagram-DEJITSTG-B2TxkbHK.js.br +0 -0
- package/payload/server/public/assets/pieDiagram-DEJITSTG-B2TxkbHK.js.gz +0 -0
- package/payload/server/public/assets/play-MbU8O2iC.js +1 -0
- package/payload/server/public/assets/play-MbU8O2iC.js.br +0 -0
- package/payload/server/public/assets/play-MbU8O2iC.js.gz +0 -0
- package/payload/server/public/assets/public-DEKnH5Q0.js +1 -0
- package/payload/server/public/assets/public-DEKnH5Q0.js.br +0 -0
- package/payload/server/public/assets/public-DEKnH5Q0.js.gz +0 -0
- package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-GsMxIJuS.js +7 -0
- package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-GsMxIJuS.js.br +0 -0
- package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-GsMxIJuS.js.gz +0 -0
- package/payload/server/public/assets/radar-PYXPWWZC-B0La8_mZ.js +1 -0
- package/payload/server/public/assets/radar-PYXPWWZC-B0La8_mZ.js.br +0 -0
- package/payload/server/public/assets/reduce-CfkEiHc9.js +1 -0
- package/payload/server/public/assets/reduce-CfkEiHc9.js.br +0 -0
- package/payload/server/public/assets/reduce-CfkEiHc9.js.gz +0 -0
- package/payload/server/public/assets/requirementDiagram-MS252O5E-DqNprm-1.js +84 -0
- package/payload/server/public/assets/requirementDiagram-MS252O5E-DqNprm-1.js.br +0 -0
- package/payload/server/public/assets/requirementDiagram-MS252O5E-DqNprm-1.js.gz +0 -0
- package/payload/server/public/assets/rotate-ccw-CBex8gon.js +1 -0
- package/payload/server/public/assets/rotate-ccw-CBex8gon.js.br +0 -0
- package/payload/server/public/assets/rotate-ccw-CBex8gon.js.gz +0 -0
- package/payload/server/public/assets/routines-BqCmbvFJ.js +2 -0
- package/payload/server/public/assets/routines-BqCmbvFJ.js.br +0 -0
- package/payload/server/public/assets/routines-BqCmbvFJ.js.gz +0 -0
- package/payload/server/public/assets/sankeyDiagram-XADWPNL6-B-kRuiuz.js +10 -0
- package/payload/server/public/assets/sankeyDiagram-XADWPNL6-B-kRuiuz.js.br +0 -0
- package/payload/server/public/assets/sankeyDiagram-XADWPNL6-B-kRuiuz.js.gz +0 -0
- package/payload/server/public/assets/sequenceDiagram-FGHM5R23-DEhL9g3K.js +157 -0
- package/payload/server/public/assets/sequenceDiagram-FGHM5R23-DEhL9g3K.js.br +0 -0
- package/payload/server/public/assets/sequenceDiagram-FGHM5R23-DEhL9g3K.js.gz +0 -0
- package/payload/server/public/assets/skills-BmxjPOmq.js +1 -0
- package/payload/server/public/assets/skills-BmxjPOmq.js.br +0 -0
- package/payload/server/public/assets/skills-BmxjPOmq.js.gz +0 -0
- package/payload/server/public/assets/src-BrAT6wKv.js +1 -0
- package/payload/server/public/assets/src-BrAT6wKv.js.br +0 -0
- package/payload/server/public/assets/src-BrAT6wKv.js.gz +0 -0
- package/payload/server/public/assets/stateDiagram-FHFEXIEX-Q-g6BHdz.js +1 -0
- package/payload/server/public/assets/stateDiagram-FHFEXIEX-Q-g6BHdz.js.br +0 -0
- package/payload/server/public/assets/stateDiagram-FHFEXIEX-Q-g6BHdz.js.gz +0 -0
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-ssRWItVj.js +1 -0
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-ssRWItVj.js.br +0 -0
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-ssRWItVj.js.gz +0 -0
- package/payload/server/public/assets/tasks-BTFYO9vT.js +3 -0
- package/payload/server/public/assets/tasks-BTFYO9vT.js.br +0 -0
- package/payload/server/public/assets/tasks-BTFYO9vT.js.gz +0 -0
- package/payload/server/public/assets/timeline-definition-GMOUNBTQ-B3-52q4Q.js +120 -0
- package/payload/server/public/assets/timeline-definition-GMOUNBTQ-B3-52q4Q.js.br +0 -0
- package/payload/server/public/assets/timeline-definition-GMOUNBTQ-B3-52q4Q.js.gz +0 -0
- package/payload/server/public/assets/treeView-SZITEDCU-BBR3hu9P.js +1 -0
- package/payload/server/public/assets/treeView-SZITEDCU-BBR3hu9P.js.br +0 -0
- package/payload/server/public/assets/treemap-W4RFUUIX-wSQMuzBT.js +1 -0
- package/payload/server/public/assets/treemap-W4RFUUIX-wSQMuzBT.js.br +0 -0
- package/payload/server/public/assets/triangle-alert-px1YRJJ7.js +1 -0
- package/payload/server/public/assets/triangle-alert-px1YRJJ7.js.br +0 -0
- package/payload/server/public/assets/triangle-alert-px1YRJJ7.js.gz +0 -0
- package/payload/server/public/assets/useCopyFeedback-nMXwRcDX.js +1 -0
- package/payload/server/public/assets/useCopyFeedback-nMXwRcDX.js.br +0 -0
- package/payload/server/public/assets/useCopyFeedback-nMXwRcDX.js.gz +0 -0
- package/payload/server/public/assets/useMediaQuery-DXAuc8G-.css +1 -0
- package/payload/server/public/assets/useMediaQuery-DXAuc8G-.css.br +0 -0
- package/payload/server/public/assets/useMediaQuery-DXAuc8G-.css.gz +0 -0
- package/payload/server/public/assets/useMediaQuery-DjbOTk2X.js +6 -0
- package/payload/server/public/assets/useMediaQuery-DjbOTk2X.js.br +0 -0
- package/payload/server/public/assets/useMediaQuery-DjbOTk2X.js.gz +0 -0
- package/payload/server/public/assets/useVoiceRecorder-Cx7AOmib.js +2 -0
- package/payload/server/public/assets/useVoiceRecorder-Cx7AOmib.js.br +0 -0
- package/payload/server/public/assets/useVoiceRecorder-Cx7AOmib.js.gz +0 -0
- package/payload/server/public/assets/vennDiagram-DHZGUBPP-Bzm1VDi1.js +34 -0
- package/payload/server/public/assets/vennDiagram-DHZGUBPP-Bzm1VDi1.js.br +0 -0
- package/payload/server/public/assets/vennDiagram-DHZGUBPP-Bzm1VDi1.js.gz +0 -0
- package/payload/server/public/assets/wardley-RL74JXVD-3QaECtQN.js +1 -0
- package/payload/server/public/assets/wardley-RL74JXVD-3QaECtQN.js.br +0 -0
- package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-DIqGZr4v.js +20 -0
- package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-DIqGZr4v.js.br +0 -0
- package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-DIqGZr4v.js.gz +0 -0
- package/payload/server/public/assets/wrench-Cexvlx6J.js +1 -0
- package/payload/server/public/assets/wrench-Cexvlx6J.js.br +0 -0
- package/payload/server/public/assets/wrench-Cexvlx6J.js.gz +0 -0
- package/payload/server/public/assets/xychartDiagram-5P7HB3ND-0W2L2hQA.js +7 -0
- package/payload/server/public/assets/xychartDiagram-5P7HB3ND-0W2L2hQA.js.br +0 -0
- package/payload/server/public/assets/xychartDiagram-5P7HB3ND-0W2L2hQA.js.gz +0 -0
- package/payload/server/public/browser.html +7 -5
- package/payload/server/public/calendar.html +10 -8
- package/payload/server/public/chat.html +17 -15
- package/payload/server/public/data.html +16 -14
- package/payload/server/public/dispatch.html +20 -0
- package/payload/server/public/field.html +17 -0
- package/payload/server/public/graph.html +12 -10
- package/payload/server/public/index.html +18 -16
- package/payload/server/public/operator.html +18 -16
- package/payload/server/public/public.html +17 -15
- package/payload/server/public/routines.html +11 -9
- package/payload/server/public/skills.html +8 -6
- package/payload/server/public/tasks.html +9 -7
- package/payload/server/server.js +4085 -1407
- package/payload/server/chunk-Y4NH2KLF.js +0 -4844
- package/payload/server/public/assets/AdminLoginScreens-5gI137xF.js +0 -1
- package/payload/server/public/assets/AdminLoginScreens-5gI137xF.js.br +0 -0
- package/payload/server/public/assets/AdminLoginScreens-5gI137xF.js.gz +0 -0
- package/payload/server/public/assets/AdminShell-Bfapavlp.js +0 -3
- package/payload/server/public/assets/AdminShell-Bfapavlp.js.br +0 -0
- package/payload/server/public/assets/AdminShell-Bfapavlp.js.gz +0 -0
- package/payload/server/public/assets/activity-DnbsmUgn.js +0 -1
- package/payload/server/public/assets/activity-DnbsmUgn.js.br +0 -0
- package/payload/server/public/assets/activity-DnbsmUgn.js.gz +0 -0
- package/payload/server/public/assets/admin-BXIv0_oj.js +0 -1
- package/payload/server/public/assets/admin-BXIv0_oj.js.br +0 -0
- package/payload/server/public/assets/admin-BXIv0_oj.js.gz +0 -0
- package/payload/server/public/assets/agents-Dl2wOcpj.js +0 -1
- package/payload/server/public/assets/agents-Dl2wOcpj.js.br +0 -0
- package/payload/server/public/assets/agents-Dl2wOcpj.js.gz +0 -0
- package/payload/server/public/assets/arc-DaI5MLTq.js +0 -1
- package/payload/server/public/assets/arc-DaI5MLTq.js.br +0 -0
- package/payload/server/public/assets/arc-DaI5MLTq.js.gz +0 -0
- package/payload/server/public/assets/architecture-YZFGNWBL-DWZIX5aV.js +0 -1
- package/payload/server/public/assets/architecture-YZFGNWBL-DWZIX5aV.js.br +0 -0
- package/payload/server/public/assets/architectureDiagram-Q4EWVU46-xZ0gDnJQ.js +0 -36
- package/payload/server/public/assets/architectureDiagram-Q4EWVU46-xZ0gDnJQ.js.br +0 -0
- package/payload/server/public/assets/architectureDiagram-Q4EWVU46-xZ0gDnJQ.js.gz +0 -0
- package/payload/server/public/assets/blockDiagram-DXYQGD6D-DwWtWBJp.js +0 -132
- package/payload/server/public/assets/blockDiagram-DXYQGD6D-DwWtWBJp.js.br +0 -0
- package/payload/server/public/assets/blockDiagram-DXYQGD6D-DwWtWBJp.js.gz +0 -0
- package/payload/server/public/assets/browser-D-Uc9ewO.js +0 -1
- package/payload/server/public/assets/browser-D-Uc9ewO.js.br +0 -0
- package/payload/server/public/assets/browser-D-Uc9ewO.js.gz +0 -0
- package/payload/server/public/assets/c4Diagram-AHTNJAMY-qRseEjtL.js +0 -10
- package/payload/server/public/assets/c4Diagram-AHTNJAMY-qRseEjtL.js.br +0 -0
- package/payload/server/public/assets/c4Diagram-AHTNJAMY-qRseEjtL.js.gz +0 -0
- package/payload/server/public/assets/calendar-Cu3O6Bay.js +0 -1
- package/payload/server/public/assets/calendar-Cu3O6Bay.js.br +0 -0
- package/payload/server/public/assets/calendar-Cu3O6Bay.js.gz +0 -0
- package/payload/server/public/assets/channel-DnchwXmx.js +0 -1
- package/payload/server/public/assets/chat-Bso94e-f.js +0 -1
- package/payload/server/public/assets/chat-Bso94e-f.js.br +0 -0
- package/payload/server/public/assets/chat-Bso94e-f.js.gz +0 -0
- package/payload/server/public/assets/chevron-left-CDwfR9V-.js +0 -1
- package/payload/server/public/assets/chevron-left-CDwfR9V-.js.br +0 -0
- package/payload/server/public/assets/chunk-2KRD3SAO-B6koUoB7.js +0 -1
- package/payload/server/public/assets/chunk-2KRD3SAO-B6koUoB7.js.br +0 -0
- package/payload/server/public/assets/chunk-2KRD3SAO-B6koUoB7.js.gz +0 -0
- package/payload/server/public/assets/chunk-336JU56O-ByZrJI-3.js +0 -2
- package/payload/server/public/assets/chunk-336JU56O-ByZrJI-3.js.br +0 -0
- package/payload/server/public/assets/chunk-336JU56O-ByZrJI-3.js.gz +0 -0
- package/payload/server/public/assets/chunk-426QAEUC-fNi5i3SA.js +0 -1
- package/payload/server/public/assets/chunk-426QAEUC-fNi5i3SA.js.br +0 -0
- package/payload/server/public/assets/chunk-426QAEUC-fNi5i3SA.js.gz +0 -0
- package/payload/server/public/assets/chunk-4BX2VUAB-7sO95xR2.js +0 -1
- package/payload/server/public/assets/chunk-4BX2VUAB-7sO95xR2.js.br +0 -0
- package/payload/server/public/assets/chunk-4BX2VUAB-7sO95xR2.js.gz +0 -0
- package/payload/server/public/assets/chunk-4TB4RGXK-KqKMvkA_.js +0 -206
- package/payload/server/public/assets/chunk-4TB4RGXK-KqKMvkA_.js.br +0 -0
- package/payload/server/public/assets/chunk-4TB4RGXK-KqKMvkA_.js.gz +0 -0
- package/payload/server/public/assets/chunk-55IACEB6-ggIJf_TC.js +0 -1
- package/payload/server/public/assets/chunk-55IACEB6-ggIJf_TC.js.br +0 -0
- package/payload/server/public/assets/chunk-55IACEB6-ggIJf_TC.js.gz +0 -0
- package/payload/server/public/assets/chunk-5FUZZQ4R-CEIokxZS.js +0 -62
- package/payload/server/public/assets/chunk-5FUZZQ4R-CEIokxZS.js.br +0 -0
- package/payload/server/public/assets/chunk-5FUZZQ4R-CEIokxZS.js.gz +0 -0
- package/payload/server/public/assets/chunk-5PVQY5BW-BEsb0aTb.js +0 -2
- package/payload/server/public/assets/chunk-5PVQY5BW-BEsb0aTb.js.br +0 -0
- package/payload/server/public/assets/chunk-5PVQY5BW-BEsb0aTb.js.gz +0 -0
- package/payload/server/public/assets/chunk-67CJDMHE-LS8rUbii.js +0 -1
- package/payload/server/public/assets/chunk-67CJDMHE-LS8rUbii.js.br +0 -2
- package/payload/server/public/assets/chunk-67CJDMHE-LS8rUbii.js.gz +0 -0
- package/payload/server/public/assets/chunk-7N4EOEYR-JKOVngS0.js +0 -1
- package/payload/server/public/assets/chunk-7N4EOEYR-JKOVngS0.js.br +0 -2
- package/payload/server/public/assets/chunk-7N4EOEYR-JKOVngS0.js.gz +0 -0
- package/payload/server/public/assets/chunk-AA7GKIK3-CoXnTVK6.js +0 -1
- package/payload/server/public/assets/chunk-AA7GKIK3-CoXnTVK6.js.br +0 -0
- package/payload/server/public/assets/chunk-AA7GKIK3-CoXnTVK6.js.gz +0 -0
- package/payload/server/public/assets/chunk-BSJP7CBP-CcsqObFg.js +0 -1
- package/payload/server/public/assets/chunk-BSJP7CBP-CcsqObFg.js.br +0 -0
- package/payload/server/public/assets/chunk-BSJP7CBP-CcsqObFg.js.gz +0 -0
- package/payload/server/public/assets/chunk-CIAEETIT-CpsybR7q.js +0 -1
- package/payload/server/public/assets/chunk-CIAEETIT-CpsybR7q.js.br +0 -0
- package/payload/server/public/assets/chunk-CIAEETIT-CpsybR7q.js.gz +0 -0
- package/payload/server/public/assets/chunk-EDXVE4YY-CCCHYEbG.js +0 -1
- package/payload/server/public/assets/chunk-EDXVE4YY-CCCHYEbG.js.br +0 -2
- package/payload/server/public/assets/chunk-EDXVE4YY-CCCHYEbG.js.gz +0 -0
- package/payload/server/public/assets/chunk-ENJZ2VHE-yVekovt2.js +0 -10
- package/payload/server/public/assets/chunk-ENJZ2VHE-yVekovt2.js.br +0 -0
- package/payload/server/public/assets/chunk-ENJZ2VHE-yVekovt2.js.gz +0 -0
- package/payload/server/public/assets/chunk-FMBD7UC4-D27VnSCa.js +0 -15
- package/payload/server/public/assets/chunk-FMBD7UC4-D27VnSCa.js.br +0 -0
- package/payload/server/public/assets/chunk-FMBD7UC4-D27VnSCa.js.gz +0 -0
- package/payload/server/public/assets/chunk-FOC6F5B3-C0tU2UFl.js +0 -1
- package/payload/server/public/assets/chunk-FOC6F5B3-C0tU2UFl.js.br +0 -0
- package/payload/server/public/assets/chunk-FOC6F5B3-C0tU2UFl.js.gz +0 -0
- package/payload/server/public/assets/chunk-ICPOFSXX-BmWvYe_5.js +0 -122
- package/payload/server/public/assets/chunk-ICPOFSXX-BmWvYe_5.js.br +0 -0
- package/payload/server/public/assets/chunk-ICPOFSXX-BmWvYe_5.js.gz +0 -0
- package/payload/server/public/assets/chunk-K5T4RW27-DIKxqyYw.js +0 -94
- package/payload/server/public/assets/chunk-K5T4RW27-DIKxqyYw.js.br +0 -0
- package/payload/server/public/assets/chunk-K5T4RW27-DIKxqyYw.js.gz +0 -0
- package/payload/server/public/assets/chunk-KGLVRYIC-CiL4YVLo.js +0 -1
- package/payload/server/public/assets/chunk-KGLVRYIC-CiL4YVLo.js.br +0 -0
- package/payload/server/public/assets/chunk-KGLVRYIC-CiL4YVLo.js.gz +0 -0
- package/payload/server/public/assets/chunk-LIHQZDEY-ejKezVlD.js +0 -1
- package/payload/server/public/assets/chunk-LIHQZDEY-ejKezVlD.js.br +0 -0
- package/payload/server/public/assets/chunk-LIHQZDEY-ejKezVlD.js.gz +0 -0
- package/payload/server/public/assets/chunk-ORNJ4GCN-Cc0vqc-D.js +0 -1
- package/payload/server/public/assets/chunk-ORNJ4GCN-Cc0vqc-D.js.br +0 -0
- package/payload/server/public/assets/chunk-ORNJ4GCN-Cc0vqc-D.js.gz +0 -0
- package/payload/server/public/assets/chunk-OYMX7WX6-BE4b8qC9.js +0 -231
- package/payload/server/public/assets/chunk-OYMX7WX6-BE4b8qC9.js.br +0 -0
- package/payload/server/public/assets/chunk-OYMX7WX6-BE4b8qC9.js.gz +0 -0
- package/payload/server/public/assets/chunk-QZHKN3VN-Dhlh7Pkk.js +0 -1
- package/payload/server/public/assets/chunk-QZHKN3VN-Dhlh7Pkk.js.br +0 -0
- package/payload/server/public/assets/chunk-QZHKN3VN-Dhlh7Pkk.js.gz +0 -0
- package/payload/server/public/assets/chunk-U2HBQHQK-DcEL3so-.js +0 -70
- package/payload/server/public/assets/chunk-U2HBQHQK-DcEL3so-.js.br +0 -0
- package/payload/server/public/assets/chunk-U2HBQHQK-DcEL3so-.js.gz +0 -0
- package/payload/server/public/assets/chunk-X2U36JSP-D0X5qpg6.js +0 -1
- package/payload/server/public/assets/chunk-X2U36JSP-D0X5qpg6.js.br +0 -0
- package/payload/server/public/assets/chunk-X2U36JSP-D0X5qpg6.js.gz +0 -0
- package/payload/server/public/assets/chunk-XPW4576I-DZqqB9Zi.js +0 -32
- package/payload/server/public/assets/chunk-XPW4576I-DZqqB9Zi.js.br +0 -0
- package/payload/server/public/assets/chunk-XPW4576I-DZqqB9Zi.js.gz +0 -0
- package/payload/server/public/assets/chunk-YZCP3GAM-BTxWHFTx.js +0 -1
- package/payload/server/public/assets/chunk-YZCP3GAM-BTxWHFTx.js.br +0 -0
- package/payload/server/public/assets/chunk-YZCP3GAM-BTxWHFTx.js.gz +0 -0
- package/payload/server/public/assets/chunk-ZZ45TVLE-D8nE76c5.js +0 -1
- package/payload/server/public/assets/chunk-ZZ45TVLE-D8nE76c5.js.br +0 -0
- package/payload/server/public/assets/chunk-ZZ45TVLE-D8nE76c5.js.gz +0 -0
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-D9OvkaTQ.js +0 -1
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-D9OvkaTQ.js.br +0 -0
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-D9OvkaTQ.js.gz +0 -0
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-BEuoBAgN.js +0 -1
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-BEuoBAgN.js.br +0 -0
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-BEuoBAgN.js.gz +0 -0
- package/payload/server/public/assets/clock-DDVrNLt9.js +0 -1
- package/payload/server/public/assets/clock-DDVrNLt9.js.br +0 -0
- package/payload/server/public/assets/clock-DDVrNLt9.js.gz +0 -0
- package/payload/server/public/assets/clone-C-YfAPQ_.js +0 -1
- package/payload/server/public/assets/copy-DPBVV8KZ.js +0 -1
- package/payload/server/public/assets/copy-DPBVV8KZ.js.br +0 -0
- package/payload/server/public/assets/copy-DPBVV8KZ.js.gz +0 -0
- package/payload/server/public/assets/cose-bilkent-S5V4N54A-D-95BzXL.js +0 -1
- package/payload/server/public/assets/cose-bilkent-S5V4N54A-D-95BzXL.js.br +0 -0
- package/payload/server/public/assets/cose-bilkent-S5V4N54A-D-95BzXL.js.gz +0 -0
- package/payload/server/public/assets/dagre-CrjQCEN9.js +0 -1
- package/payload/server/public/assets/dagre-CrjQCEN9.js.br +0 -0
- package/payload/server/public/assets/dagre-CrjQCEN9.js.gz +0 -0
- package/payload/server/public/assets/dagre-KV5264BT-mcGXOajA.js +0 -4
- package/payload/server/public/assets/dagre-KV5264BT-mcGXOajA.js.br +0 -0
- package/payload/server/public/assets/dagre-KV5264BT-mcGXOajA.js.gz +0 -0
- package/payload/server/public/assets/data-Dei8n2EX.js +0 -1
- package/payload/server/public/assets/data-Dei8n2EX.js.br +0 -0
- package/payload/server/public/assets/data-Dei8n2EX.js.gz +0 -0
- package/payload/server/public/assets/diagram-5BDNPKRD-Colq2XR9.js +0 -10
- package/payload/server/public/assets/diagram-5BDNPKRD-Colq2XR9.js.br +0 -0
- package/payload/server/public/assets/diagram-5BDNPKRD-Colq2XR9.js.gz +0 -0
- package/payload/server/public/assets/diagram-G4DWMVQ6-DafrIgN8.js +0 -24
- package/payload/server/public/assets/diagram-G4DWMVQ6-DafrIgN8.js.br +0 -0
- package/payload/server/public/assets/diagram-G4DWMVQ6-DafrIgN8.js.gz +0 -0
- package/payload/server/public/assets/diagram-MMDJMWI5-CD9pSd2z.js +0 -43
- package/payload/server/public/assets/diagram-MMDJMWI5-CD9pSd2z.js.br +0 -0
- package/payload/server/public/assets/diagram-MMDJMWI5-CD9pSd2z.js.gz +0 -0
- package/payload/server/public/assets/diagram-TYMM5635-DqhsN-Il.js +0 -24
- package/payload/server/public/assets/diagram-TYMM5635-DqhsN-Il.js.br +0 -0
- package/payload/server/public/assets/diagram-TYMM5635-DqhsN-Il.js.gz +0 -0
- package/payload/server/public/assets/dist-QvbmK1IP.js +0 -1
- package/payload/server/public/assets/dist-QvbmK1IP.js.br +0 -0
- package/payload/server/public/assets/dist-QvbmK1IP.js.gz +0 -0
- package/payload/server/public/assets/erDiagram-SMLLAGMA-mf9kQrIs.js +0 -85
- package/payload/server/public/assets/erDiagram-SMLLAGMA-mf9kQrIs.js.br +0 -0
- package/payload/server/public/assets/erDiagram-SMLLAGMA-mf9kQrIs.js.gz +0 -0
- package/payload/server/public/assets/file-text-Dn82O6ke.js +0 -1
- package/payload/server/public/assets/file-text-Dn82O6ke.js.br +0 -0
- package/payload/server/public/assets/file-text-Dn82O6ke.js.gz +0 -0
- package/payload/server/public/assets/flatten-BtIc9jX7.js +0 -1
- package/payload/server/public/assets/flatten-BtIc9jX7.js.br +0 -0
- package/payload/server/public/assets/flatten-BtIc9jX7.js.gz +0 -0
- package/payload/server/public/assets/flowDiagram-DWJPFMVM-CJLkGmFm.js +0 -162
- package/payload/server/public/assets/flowDiagram-DWJPFMVM-CJLkGmFm.js.br +0 -0
- package/payload/server/public/assets/flowDiagram-DWJPFMVM-CJLkGmFm.js.gz +0 -0
- package/payload/server/public/assets/ganttDiagram-T4ZO3ILL-JV6PUFic.js +0 -292
- package/payload/server/public/assets/ganttDiagram-T4ZO3ILL-JV6PUFic.js.br +0 -0
- package/payload/server/public/assets/ganttDiagram-T4ZO3ILL-JV6PUFic.js.gz +0 -0
- package/payload/server/public/assets/gitGraph-7Q5UKJZL-C-FvNTHZ.js +0 -1
- package/payload/server/public/assets/gitGraph-7Q5UKJZL-C-FvNTHZ.js.br +0 -0
- package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-JhiumTtl.js +0 -106
- package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-JhiumTtl.js.br +0 -0
- package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-JhiumTtl.js.gz +0 -0
- package/payload/server/public/assets/graph-D2J7a7Ll.js +0 -51
- package/payload/server/public/assets/graph-D2J7a7Ll.js.br +0 -0
- package/payload/server/public/assets/graph-D2J7a7Ll.js.gz +0 -0
- package/payload/server/public/assets/graph-labels-D3gkY2IH.js +0 -1
- package/payload/server/public/assets/graph-labels-D3gkY2IH.js.br +0 -0
- package/payload/server/public/assets/graph-labels-D3gkY2IH.js.gz +0 -0
- package/payload/server/public/assets/graphlib-Z7cApv13.js +0 -1
- package/payload/server/public/assets/graphlib-Z7cApv13.js.br +0 -0
- package/payload/server/public/assets/graphlib-Z7cApv13.js.gz +0 -0
- package/payload/server/public/assets/info-OMHHGYJF-BjLPgHAC.js +0 -1
- package/payload/server/public/assets/info-OMHHGYJF-BjLPgHAC.js.br +0 -0
- package/payload/server/public/assets/infoDiagram-42DDH7IO-B-6k2hmd.js +0 -2
- package/payload/server/public/assets/infoDiagram-42DDH7IO-B-6k2hmd.js.br +0 -0
- package/payload/server/public/assets/infoDiagram-42DDH7IO-B-6k2hmd.js.gz +0 -0
- package/payload/server/public/assets/isEmpty-Bu4fZ8Kf.js +0 -1
- package/payload/server/public/assets/isEmpty-Bu4fZ8Kf.js.br +0 -0
- package/payload/server/public/assets/isEmpty-Bu4fZ8Kf.js.gz +0 -0
- package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-CQIGY8NI.js +0 -70
- package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-CQIGY8NI.js.br +0 -0
- package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-CQIGY8NI.js.gz +0 -0
- package/payload/server/public/assets/journeyDiagram-VCZTEJTY-O5rEHC1o.js +0 -139
- package/payload/server/public/assets/journeyDiagram-VCZTEJTY-O5rEHC1o.js.br +0 -0
- package/payload/server/public/assets/journeyDiagram-VCZTEJTY-O5rEHC1o.js.gz +0 -0
- package/payload/server/public/assets/kanban-definition-6JOO6SKY-BS7huuG7.js +0 -89
- package/payload/server/public/assets/kanban-definition-6JOO6SKY-BS7huuG7.js.br +0 -0
- package/payload/server/public/assets/kanban-definition-6JOO6SKY-BS7huuG7.js.gz +0 -0
- package/payload/server/public/assets/line-DjHTnO_W.js +0 -1
- package/payload/server/public/assets/line-DjHTnO_W.js.br +0 -0
- package/payload/server/public/assets/line-DjHTnO_W.js.gz +0 -0
- package/payload/server/public/assets/linear-RvwZxFzh.js +0 -1
- package/payload/server/public/assets/linear-RvwZxFzh.js.br +0 -0
- package/payload/server/public/assets/linear-RvwZxFzh.js.gz +0 -0
- package/payload/server/public/assets/mermaid-parser.core-CUoZE61Z.js +0 -4
- package/payload/server/public/assets/mermaid-parser.core-CUoZE61Z.js.br +0 -0
- package/payload/server/public/assets/mermaid-parser.core-CUoZE61Z.js.gz +0 -0
- package/payload/server/public/assets/mermaid.core-CHquUUrw.js +0 -11
- package/payload/server/public/assets/mermaid.core-CHquUUrw.js.br +0 -0
- package/payload/server/public/assets/mermaid.core-CHquUUrw.js.gz +0 -0
- package/payload/server/public/assets/mindmap-definition-QFDTVHPH-pHUJa3IP.js +0 -96
- package/payload/server/public/assets/mindmap-definition-QFDTVHPH-pHUJa3IP.js.br +0 -0
- package/payload/server/public/assets/mindmap-definition-QFDTVHPH-pHUJa3IP.js.gz +0 -0
- package/payload/server/public/assets/operator-Bz_yj1im.js +0 -1
- package/payload/server/public/assets/operator-Bz_yj1im.js.br +0 -0
- package/payload/server/public/assets/operator-Bz_yj1im.js.gz +0 -0
- package/payload/server/public/assets/ordinal-C2TEWKNu.js +0 -1
- package/payload/server/public/assets/ordinal-C2TEWKNu.js.br +0 -0
- package/payload/server/public/assets/ordinal-C2TEWKNu.js.gz +0 -0
- package/payload/server/public/assets/packet-4T2RLAQJ-BBAZASfb.js +0 -1
- package/payload/server/public/assets/packet-4T2RLAQJ-BBAZASfb.js.br +0 -0
- package/payload/server/public/assets/page-D6u2xYh7.js +0 -1
- package/payload/server/public/assets/page-D6u2xYh7.js.br +0 -0
- package/payload/server/public/assets/page-D6u2xYh7.js.gz +0 -0
- package/payload/server/public/assets/page-mH4nyQ75.js +0 -32
- package/payload/server/public/assets/page-mH4nyQ75.js.br +0 -0
- package/payload/server/public/assets/page-mH4nyQ75.js.gz +0 -0
- package/payload/server/public/assets/pdf-render-Bwg_xv1L.js +0 -11
- package/payload/server/public/assets/pdf-render-Bwg_xv1L.js.br +0 -0
- package/payload/server/public/assets/pdf-render-Bwg_xv1L.js.gz +0 -0
- package/payload/server/public/assets/pie-ZZUOXDRM-CCJUnMeG.js +0 -1
- package/payload/server/public/assets/pie-ZZUOXDRM-CCJUnMeG.js.br +0 -0
- package/payload/server/public/assets/pieDiagram-DEJITSTG-DRIRqqhQ.js +0 -30
- package/payload/server/public/assets/pieDiagram-DEJITSTG-DRIRqqhQ.js.br +0 -0
- package/payload/server/public/assets/pieDiagram-DEJITSTG-DRIRqqhQ.js.gz +0 -0
- package/payload/server/public/assets/play-ByuChQJJ.js +0 -1
- package/payload/server/public/assets/play-ByuChQJJ.js.br +0 -0
- package/payload/server/public/assets/play-ByuChQJJ.js.gz +0 -0
- package/payload/server/public/assets/public-CtoYVjPR.js +0 -1
- package/payload/server/public/assets/public-CtoYVjPR.js.br +0 -0
- package/payload/server/public/assets/public-CtoYVjPR.js.gz +0 -0
- package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-7WHBrI_9.js +0 -7
- package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-7WHBrI_9.js.br +0 -0
- package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-7WHBrI_9.js.gz +0 -0
- package/payload/server/public/assets/radar-PYXPWWZC-BsRU8Aep.js +0 -1
- package/payload/server/public/assets/radar-PYXPWWZC-BsRU8Aep.js.br +0 -0
- package/payload/server/public/assets/reduce-BGpN5lgn.js +0 -1
- package/payload/server/public/assets/reduce-BGpN5lgn.js.br +0 -0
- package/payload/server/public/assets/reduce-BGpN5lgn.js.gz +0 -0
- package/payload/server/public/assets/requirementDiagram-MS252O5E-CatBEoHm.js +0 -84
- package/payload/server/public/assets/requirementDiagram-MS252O5E-CatBEoHm.js.br +0 -0
- package/payload/server/public/assets/requirementDiagram-MS252O5E-CatBEoHm.js.gz +0 -0
- package/payload/server/public/assets/rotate-ccw-BXoIghE3.js +0 -1
- package/payload/server/public/assets/rotate-ccw-BXoIghE3.js.br +0 -0
- package/payload/server/public/assets/rotate-ccw-BXoIghE3.js.gz +0 -0
- package/payload/server/public/assets/routines-DXleYpDv.js +0 -2
- package/payload/server/public/assets/routines-DXleYpDv.js.br +0 -0
- package/payload/server/public/assets/routines-DXleYpDv.js.gz +0 -0
- package/payload/server/public/assets/sankeyDiagram-XADWPNL6-DfefvhQ6.js +0 -10
- package/payload/server/public/assets/sankeyDiagram-XADWPNL6-DfefvhQ6.js.br +0 -0
- package/payload/server/public/assets/sankeyDiagram-XADWPNL6-DfefvhQ6.js.gz +0 -0
- package/payload/server/public/assets/sequenceDiagram-FGHM5R23-51FmBwFt.js +0 -157
- package/payload/server/public/assets/sequenceDiagram-FGHM5R23-51FmBwFt.js.br +0 -0
- package/payload/server/public/assets/sequenceDiagram-FGHM5R23-51FmBwFt.js.gz +0 -0
- package/payload/server/public/assets/skills-CMl38MKH.js +0 -1
- package/payload/server/public/assets/skills-CMl38MKH.js.br +0 -0
- package/payload/server/public/assets/skills-CMl38MKH.js.gz +0 -0
- package/payload/server/public/assets/src-C2WwTWSY.js +0 -1
- package/payload/server/public/assets/src-C2WwTWSY.js.br +0 -0
- package/payload/server/public/assets/src-C2WwTWSY.js.gz +0 -0
- package/payload/server/public/assets/stateDiagram-FHFEXIEX-CPgxX16e.js +0 -1
- package/payload/server/public/assets/stateDiagram-FHFEXIEX-CPgxX16e.js.br +0 -0
- package/payload/server/public/assets/stateDiagram-FHFEXIEX-CPgxX16e.js.gz +0 -0
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-DrQl9xC9.js +0 -1
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-DrQl9xC9.js.br +0 -0
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-DrQl9xC9.js.gz +0 -0
- package/payload/server/public/assets/tasks-Cshaf0Md.js +0 -3
- package/payload/server/public/assets/tasks-Cshaf0Md.js.br +0 -0
- package/payload/server/public/assets/tasks-Cshaf0Md.js.gz +0 -0
- package/payload/server/public/assets/timeline-definition-GMOUNBTQ-DC4gTR2m.js +0 -120
- package/payload/server/public/assets/timeline-definition-GMOUNBTQ-DC4gTR2m.js.br +0 -0
- package/payload/server/public/assets/timeline-definition-GMOUNBTQ-DC4gTR2m.js.gz +0 -0
- package/payload/server/public/assets/treeView-SZITEDCU-BDzhKA6v.js +0 -1
- package/payload/server/public/assets/treeView-SZITEDCU-BDzhKA6v.js.br +0 -0
- package/payload/server/public/assets/treemap-W4RFUUIX-epHpdeWa.js +0 -1
- package/payload/server/public/assets/treemap-W4RFUUIX-epHpdeWa.js.br +0 -0
- package/payload/server/public/assets/triangle-alert-CS-NXr_9.js +0 -1
- package/payload/server/public/assets/triangle-alert-CS-NXr_9.js.br +0 -3
- package/payload/server/public/assets/triangle-alert-CS-NXr_9.js.gz +0 -0
- package/payload/server/public/assets/useCopyFeedback-pKLfQJNG.js +0 -1
- package/payload/server/public/assets/useCopyFeedback-pKLfQJNG.js.br +0 -0
- package/payload/server/public/assets/useCopyFeedback-pKLfQJNG.js.gz +0 -0
- package/payload/server/public/assets/useMediaQuery-BHFn0-S9.css +0 -1
- package/payload/server/public/assets/useMediaQuery-BHFn0-S9.css.br +0 -0
- package/payload/server/public/assets/useMediaQuery-BHFn0-S9.css.gz +0 -0
- package/payload/server/public/assets/useMediaQuery-oDCasnxD.js +0 -14
- package/payload/server/public/assets/useMediaQuery-oDCasnxD.js.br +0 -0
- package/payload/server/public/assets/useMediaQuery-oDCasnxD.js.gz +0 -0
- package/payload/server/public/assets/useVoiceRecorder-EgO1GmIg.js +0 -2
- package/payload/server/public/assets/useVoiceRecorder-EgO1GmIg.js.br +0 -0
- package/payload/server/public/assets/useVoiceRecorder-EgO1GmIg.js.gz +0 -0
- package/payload/server/public/assets/vennDiagram-DHZGUBPP-CADQLMv_.js +0 -34
- package/payload/server/public/assets/vennDiagram-DHZGUBPP-CADQLMv_.js.br +0 -0
- package/payload/server/public/assets/vennDiagram-DHZGUBPP-CADQLMv_.js.gz +0 -0
- package/payload/server/public/assets/wardley-RL74JXVD-DNSZCrxV.js +0 -1
- package/payload/server/public/assets/wardley-RL74JXVD-DNSZCrxV.js.br +0 -0
- package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-Cs5AyyGo.js +0 -20
- package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-Cs5AyyGo.js.br +0 -0
- package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-Cs5AyyGo.js.gz +0 -0
- package/payload/server/public/assets/wrench-czES9Rdy.js +0 -1
- package/payload/server/public/assets/wrench-czES9Rdy.js.br +0 -0
- package/payload/server/public/assets/wrench-czES9Rdy.js.gz +0 -0
- package/payload/server/public/assets/xychartDiagram-5P7HB3ND-Bp_VDbBp.js +0 -7
- package/payload/server/public/assets/xychartDiagram-5P7HB3ND-Bp_VDbBp.js.br +0 -0
- package/payload/server/public/assets/xychartDiagram-5P7HB3ND-Bp_VDbBp.js.gz +0 -0
- /package/payload/server/public/assets/{_baseFor-Be3EKK3K.js → _baseFor-D1duyODO.js} +0 -0
- /package/payload/server/public/assets/{_baseFor-Be3EKK3K.js.br → _baseFor-D1duyODO.js.br} +0 -0
- /package/payload/server/public/assets/{_baseFor-Be3EKK3K.js.gz → _baseFor-D1duyODO.js.gz} +0 -0
- /package/payload/server/public/assets/{array-X0JlPOfd.js → array-j7Xa9Fap.js} +0 -0
- /package/payload/server/public/assets/{array-X0JlPOfd.js.br → array-j7Xa9Fap.js.br} +0 -0
- /package/payload/server/public/assets/{chunk-CltuBf4Z.js → chunk-DlZTsV_O.js} +0 -0
- /package/payload/server/public/assets/{chunk-CltuBf4Z.js.br → chunk-DlZTsV_O.js.br} +0 -0
- /package/payload/server/public/assets/{chunk-CltuBf4Z.js.gz → chunk-DlZTsV_O.js.gz} +0 -0
- /package/payload/server/public/assets/{cytoscape.esm-CI2IWMLB.js → cytoscape.esm-Dob3eilA.js} +0 -0
- /package/payload/server/public/assets/{cytoscape.esm-CI2IWMLB.js.br → cytoscape.esm-Dob3eilA.js.br} +0 -0
- /package/payload/server/public/assets/{cytoscape.esm-CI2IWMLB.js.gz → cytoscape.esm-Dob3eilA.js.gz} +0 -0
- /package/payload/server/public/assets/{defaultLocale-B6RGN4id.js → defaultLocale-BNILPWh2.js} +0 -0
- /package/payload/server/public/assets/{defaultLocale-B6RGN4id.js.br → defaultLocale-BNILPWh2.js.br} +0 -0
- /package/payload/server/public/assets/{defaultLocale-B6RGN4id.js.gz → defaultLocale-BNILPWh2.js.gz} +0 -0
- /package/payload/server/public/assets/{file-download-DiQesOd2.js → file-download-CN4H4Eih.js} +0 -0
- /package/payload/server/public/assets/{file-download-DiQesOd2.js.br → file-download-CN4H4Eih.js.br} +0 -0
- /package/payload/server/public/assets/{file-download-DiQesOd2.js.gz → file-download-CN4H4Eih.js.gz} +0 -0
- /package/payload/server/public/assets/{init-BmUWJJHz.js → init-ve51bpJo.js} +0 -0
- /package/payload/server/public/assets/{init-BmUWJJHz.js.br → init-ve51bpJo.js.br} +0 -0
- /package/payload/server/public/assets/{init-BmUWJJHz.js.gz → init-ve51bpJo.js.gz} +0 -0
- /package/payload/server/public/assets/{katex-BjZuzSQn.js → katex-CJNaolDQ.js} +0 -0
- /package/payload/server/public/assets/{katex-BjZuzSQn.js.br → katex-CJNaolDQ.js.br} +0 -0
- /package/payload/server/public/assets/{katex-BjZuzSQn.js.gz → katex-CJNaolDQ.js.gz} +0 -0
- /package/payload/server/public/assets/{path-CoPyR7c2.js → path-B4emajHp.js} +0 -0
- /package/payload/server/public/assets/{path-CoPyR7c2.js.br → path-B4emajHp.js.br} +0 -0
- /package/payload/server/public/assets/{path-CoPyR7c2.js.gz → path-B4emajHp.js.gz} +0 -0
- /package/payload/server/public/assets/{preload-helper-BJ2zoBc3.js → preload-helper-3YNEDsJZ.js} +0 -0
- /package/payload/server/public/assets/{preload-helper-BJ2zoBc3.js.br → preload-helper-3YNEDsJZ.js.br} +0 -0
- /package/payload/server/public/assets/{preload-helper-BJ2zoBc3.js.gz → preload-helper-3YNEDsJZ.js.gz} +0 -0
- /package/payload/server/public/assets/{rough.esm-jSt7UMyi.js → rough.esm-zabqYs6f.js} +0 -0
- /package/payload/server/public/assets/{rough.esm-jSt7UMyi.js.br → rough.esm-zabqYs6f.js.br} +0 -0
- /package/payload/server/public/assets/{rough.esm-jSt7UMyi.js.gz → rough.esm-zabqYs6f.js.gz} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reads.js","sourceRoot":"","sources":["../../src/tools/reads.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EACL,OAAO,EACP,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,kBAAkB,GAEnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAmB,MAAM,aAAa,CAAC;AAEnE,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,CAK5B;IACC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3D,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,oBAAoB,CAAC,CAAC;IACvF,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,QAAQ,CACb,IAAI,CAAC,SAAS,CACZ,EAAE,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,EACxE,IAAI,EACJ,CAAC,CACF,CACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,CAM7B;IACC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACnF,OAAO,SAAS,CACd,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,cAAc,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,sCAAsC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC/I,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/C,OAAO,QAAQ,CACb,IAAI,CAAC,SAAS,CACZ;QACE,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU;QAC5B,KAAK,EAAE,IAAI,CAAC,MAAM;QAClB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrB,GAAG,CAAC;YACJ,sEAAsE;YACtE,+DAA+D;YAC/D,OAAO,EACL,CAAC,CAAC,WAAW,KAAK,IAAI;gBACtB,CAAC,CAAC,WAAW,GAAG,MAAM;gBACtB,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC;SACtC,CAAC,CAAC;KACJ,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,CAMjC;IACC,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IACpF,OAAO,QAAQ,CACb,IAAI,CAAC,SAAS,CACZ,EAAE,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EACpF,IAAI,EACJ,CAAC,CACF,CACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,CAKzB;IACC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,gBAAgB,CAAC;IACvC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,IAAI,gBAAgB,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAC1E,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,EAAE;QACzD,eAAe,EAAE,IAAI;QACrB,KAAK,EAAE,GAAG;KACX,CAAC,CAAC;IAEH,8EAA8E;IAC9E,4EAA4E;IAC5E,6CAA6C;IAC7C,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACxC,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,YAAY,EAAE,CAAC,CAAC,YAAY;QAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,CAAC;KACxD,CAAC,CAAC,CAAC;IAEJ,OAAO,QAAQ,CACb,IAAI,CAAC,SAAS,CACZ;QACE,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU;QAC5B,OAAO;QACP,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACnC,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,IAAI,EAAE,CAAC,CAAC,OAAO;YACf,WAAW,EAAE,CAAC,CAAC,WAAW;SAC3B,CAAC,CAAC;QACH,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC;KAC5D,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The MCP tool-result shape, in one place.
|
|
3
|
+
*
|
|
4
|
+
* A refusal is `isError: true` with text naming what to do about it, never a
|
|
5
|
+
* throw: a thrown error inside a tool handler reaches the agent as a stack
|
|
6
|
+
* trace with no instruction in it.
|
|
7
|
+
*/
|
|
8
|
+
export interface ToolResult {
|
|
9
|
+
content: Array<{
|
|
10
|
+
type: "text";
|
|
11
|
+
text: string;
|
|
12
|
+
}>;
|
|
13
|
+
isError?: true;
|
|
14
|
+
}
|
|
15
|
+
export declare function toolText(text: string): ToolResult;
|
|
16
|
+
export declare function toolError(text: string): ToolResult;
|
|
17
|
+
//# sourceMappingURL=result.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../src/tools/result.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,IAAI,CAAC;CAChB;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAEjD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAElD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/tools/result.ts"],"names":[],"mappings":"AAYA,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC9D,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The MCP adapter for `dispatch-visit-record`.
|
|
3
|
+
*
|
|
4
|
+
* The write itself moved to `platform/lib/dispatch-write` so the field job
|
|
5
|
+
* sheet can call it without a second implementation. This file's only job is
|
|
6
|
+
* the shape: a domain outcome becomes a `ToolResult`, with the refusal text
|
|
7
|
+
* unchanged so the agent-facing wording does not drift.
|
|
8
|
+
*/
|
|
9
|
+
import { type VisitRecordParams } from "../../../../../lib/dispatch-write/dist/index.js";
|
|
10
|
+
import { type ToolResult } from "./result.js";
|
|
11
|
+
export type { VisitRecordParams } from "../../../../../lib/dispatch-write/dist/index.js";
|
|
12
|
+
export declare function visitRecord(p: VisitRecordParams): Promise<ToolResult>;
|
|
13
|
+
//# sourceMappingURL=visit-record.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visit-record.d.ts","sourceRoot":"","sources":["../../src/tools/visit-record.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAEnE,YAAY,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AAEzF,wBAAsB,WAAW,CAAC,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAG3E"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The MCP adapter for `dispatch-visit-record`.
|
|
3
|
+
*
|
|
4
|
+
* The write itself moved to `platform/lib/dispatch-write` so the field job
|
|
5
|
+
* sheet can call it without a second implementation. This file's only job is
|
|
6
|
+
* the shape: a domain outcome becomes a `ToolResult`, with the refusal text
|
|
7
|
+
* unchanged so the agent-facing wording does not drift.
|
|
8
|
+
*/
|
|
9
|
+
import { visitRecord as visitRecordWrite, } from "../../../../../lib/dispatch-write/dist/index.js";
|
|
10
|
+
import { toolError, toolText } from "./result.js";
|
|
11
|
+
export async function visitRecord(p) {
|
|
12
|
+
const out = await visitRecordWrite(p);
|
|
13
|
+
return out.ok ? toolText(JSON.stringify(out.value, null, 2)) : toolError(out.message);
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=visit-record.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visit-record.js","sourceRoot":"","sources":["../../src/tools/visit-record.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EACL,WAAW,IAAI,gBAAgB,GAEhC,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAmB,MAAM,aAAa,CAAC;AAInE,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,CAAoB;IACpD,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACtC,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACxF,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The MCP adapter for `dispatch-visit-status-set`.
|
|
3
|
+
*
|
|
4
|
+
* The write itself moved to `platform/lib/dispatch-write` so the field job
|
|
5
|
+
* sheet can call it without a second implementation. This file's only job is
|
|
6
|
+
* the shape: a domain outcome becomes a `ToolResult`, with the refusal text
|
|
7
|
+
* unchanged so the agent-facing wording does not drift.
|
|
8
|
+
*/
|
|
9
|
+
import { type VisitStatusSetParams } from "../../../../../lib/dispatch-write/dist/index.js";
|
|
10
|
+
import { type ToolResult } from "./result.js";
|
|
11
|
+
export type { StatusSource, VisitStatusSetParams, } from "../../../../../lib/dispatch-write/dist/index.js";
|
|
12
|
+
export declare function visitStatusSet(p: VisitStatusSetParams): Promise<ToolResult>;
|
|
13
|
+
//# sourceMappingURL=visit-status-set.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visit-status-set.d.ts","sourceRoot":"","sources":["../../src/tools/visit-status-set.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAEnE,YAAY,EACV,YAAY,EACZ,oBAAoB,GACrB,MAAM,iDAAiD,CAAC;AAEzD,wBAAsB,cAAc,CAAC,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC,CAGjF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The MCP adapter for `dispatch-visit-status-set`.
|
|
3
|
+
*
|
|
4
|
+
* The write itself moved to `platform/lib/dispatch-write` so the field job
|
|
5
|
+
* sheet can call it without a second implementation. This file's only job is
|
|
6
|
+
* the shape: a domain outcome becomes a `ToolResult`, with the refusal text
|
|
7
|
+
* unchanged so the agent-facing wording does not drift.
|
|
8
|
+
*/
|
|
9
|
+
import { visitStatusSet as visitStatusSetWrite, } from "../../../../../lib/dispatch-write/dist/index.js";
|
|
10
|
+
import { toolError, toolText } from "./result.js";
|
|
11
|
+
export async function visitStatusSet(p) {
|
|
12
|
+
const out = await visitStatusSetWrite(p);
|
|
13
|
+
return out.ok ? toolText(JSON.stringify(out.value, null, 2)) : toolError(out.message);
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=visit-status-set.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visit-status-set.js","sourceRoot":"","sources":["../../src/tools/visit-status-set.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EACL,cAAc,IAAI,mBAAmB,GAEtC,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAmB,MAAM,aAAa,CAAC;AAOnE,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,CAAuB;IAC1D,MAAM,GAAG,GAAG,MAAM,mBAAmB,CAAC,CAAC,CAAC,CAAC;IACzC,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACxF,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@maxy/dispatch",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"private": true,
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"build": "tsc",
|
|
9
|
+
"start": "node dist/index.js",
|
|
10
|
+
"test": "vitest run"
|
|
11
|
+
},
|
|
12
|
+
"dependencies": {
|
|
13
|
+
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
14
|
+
"neo4j-driver": "^5.28.1"
|
|
15
|
+
},
|
|
16
|
+
"devDependencies": {
|
|
17
|
+
"typescript": "^5.7.0",
|
|
18
|
+
"@types/node": "^22.0.0",
|
|
19
|
+
"vitest": "^4.1.2"
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dispatch-setup
|
|
3
|
+
description: "Use when an account is switching on dispatch and needs its config.json authored, or when its statuses, job types, worker roster, checklists or vocabulary need changing. Triggers include 'set up dispatch', 'add a job status', 'add an engineer to the roster', 'we call them drivers not engineers', 'why is nobody offered for this job type', and any dispatch tool refusing with reason=no-config."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Dispatch setup
|
|
7
|
+
|
|
8
|
+
Author `$ACCOUNT_DIR/dispatch/config.json`. Until it exists and validates, every dispatch tool
|
|
9
|
+
registers and refuses with `reason=no-config`.
|
|
10
|
+
|
|
11
|
+
## What success looks like
|
|
12
|
+
|
|
13
|
+
A file that `dispatch-config-get` reads back without complaint, describing **this** operator's work
|
|
14
|
+
in **this** operator's words. Six keys:
|
|
15
|
+
|
|
16
|
+
| Key | What it holds |
|
|
17
|
+
|---|---|
|
|
18
|
+
| `statuses` | `job[]` and `visit[]`, each `{name, terminal}`; `jobTransitions[]` and `visitTransitions[]` as explicit `[from, to]` pairs |
|
|
19
|
+
| `jobTypes` | `{name, requiredQualification, defaultDurationMin, slaTargetHours?}` |
|
|
20
|
+
| `workers` | `{workerId, name, qualifications[], workingHours}` |
|
|
21
|
+
| `records` | `checklists` keyed by job type; `requiredBeforeTerminal` keyed by terminal visit status, values from `notes`, `media`, `parts`, `checklist`, `signature` |
|
|
22
|
+
| `vocabulary` | the operator's own noun for `job`, `visit`, `worker` |
|
|
23
|
+
| `vehicles` | `{enabled, defaultGeofenceRadiusM?}` |
|
|
24
|
+
|
|
25
|
+
## Two constraints the file must satisfy before it is written
|
|
26
|
+
|
|
27
|
+
**Every status is reachable.** A status that is not the first of its kind and is not the `to` of any
|
|
28
|
+
transition can never be entered. Nothing fails when this is wrong — no transition ever fires, and
|
|
29
|
+
that is indistinguishable from a status nobody happens to use. `dispatch-config-get` reports it as
|
|
30
|
+
`unreachable`.
|
|
31
|
+
|
|
32
|
+
**Every job type has at least one qualified worker.** A type whose `requiredQualification` no worker
|
|
33
|
+
holds offers nobody, for ever, with no error. `dispatch-config-get` reports it as
|
|
34
|
+
`typesWithNoQualifiedWorker`.
|
|
35
|
+
|
|
36
|
+
Both are reported rather than blocked, because an operator mid-way through hiring legitimately has a
|
|
37
|
+
type nobody covers yet. Say so plainly rather than writing the file silently.
|
|
38
|
+
|
|
39
|
+
## How to elicit it
|
|
40
|
+
|
|
41
|
+
Ask what the operator already says, not what the schema wants. "What do you call the thing you send
|
|
42
|
+
someone out to do?" gives you `vocabulary.job`. "Walk me through one from the phone ringing to the
|
|
43
|
+
invoice" gives you the statuses in order, and the order gives you the transitions. "Who could do
|
|
44
|
+
that one, and who couldn't?" gives you the qualification, which is usually a certificate or a
|
|
45
|
+
licence they will name unprompted.
|
|
46
|
+
|
|
47
|
+
Do not offer a default status set. A borrowed status list is how an operator ends up with statuses
|
|
48
|
+
they never use and no status for the one thing they do daily.
|
|
49
|
+
|
|
50
|
+
`workingHours` is `{ "mon": ["08:00", "17:00"] }` per day worked; an absent day means not working.
|
|
51
|
+
A worker with no qualification recorded is accepted and reported, because a new starter is real.
|
|
52
|
+
|
|
53
|
+
## Changing an existing config
|
|
54
|
+
|
|
55
|
+
Read the current file first and change only what was asked. Removing a status that live jobs are
|
|
56
|
+
sitting in strands them: nothing can move them, because no transition names a status that no longer
|
|
57
|
+
exists. Check with `dispatch-job-list` before removing any status, and say what you found.
|
|
58
|
+
|
|
59
|
+
## What this skill does not do
|
|
60
|
+
|
|
61
|
+
It creates no `:Site`, `:Customer`, `:Person:Engineer` or `:Vehicle` node. A `workerId` in the
|
|
62
|
+
roster must have a matching `:Person:Engineer` on the account before `dispatch-allocate` will use
|
|
63
|
+
it, created with `memory-update`. Say this at the end of setup rather than letting the first
|
|
64
|
+
allocation discover it.
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
# Dispatch
|
|
2
|
+
|
|
3
|
+
Field-work dispatch: create a job, allocate it to a qualified worker, move it through the account's
|
|
4
|
+
own statuses, record what happened on site. Admin agent only, ten tools, ships inert.
|
|
5
|
+
|
|
6
|
+
## Enabling it
|
|
7
|
+
|
|
8
|
+
`dispatch` is in `plugins.available` on all four brands and in `defaultEnabled` on none. An account
|
|
9
|
+
adds it to `enabledPlugins`, then runs the `dispatch-setup` skill to author
|
|
10
|
+
`$ACCOUNT_DIR/dispatch/config.json`. Until that file exists and validates, every tool registers and
|
|
11
|
+
refuses per call with `reason=no-config`.
|
|
12
|
+
|
|
13
|
+
Enabling it also puts `schema-dispatch.md` in the account's resolved verticals, beside
|
|
14
|
+
`schema-base` and the account's own businessType vertical. That is what makes `:Job`, `:Visit`,
|
|
15
|
+
`:Site`, `:Customer`, `:Asset`, `:Part`, `:JobCost`, `:Contact`, job `:Note` and `:Engineer`
|
|
16
|
+
writable from any businessType rather than from construction alone.
|
|
17
|
+
|
|
18
|
+
## The config is the vocabulary and the rules
|
|
19
|
+
|
|
20
|
+
Six keys in `$ACCOUNT_DIR/dispatch/config.json`: `statuses` (job and visit lists, each entry
|
|
21
|
+
`{name, terminal}`, plus `jobTransitions` and `visitTransitions` as explicit `[from, to]` pairs),
|
|
22
|
+
`jobTypes` (`{name, requiredQualification, defaultDurationMin, slaTargetHours?}`), `workers`
|
|
23
|
+
(`{workerId, name, qualifications[], workingHours}`), `records` (`checklists` per job type,
|
|
24
|
+
`requiredBeforeTerminal` per terminal visit status), `vocabulary` (`job`, `visit`, `worker`), and
|
|
25
|
+
`vehicles` (`{enabled, defaultGeofenceRadiusM?}`).
|
|
26
|
+
|
|
27
|
+
No status, job type, qualification, checklist, SLA target or operator noun appears in plugin source.
|
|
28
|
+
A test walks every source file and fails if any string from either shipped fixture config appears in
|
|
29
|
+
it.
|
|
30
|
+
|
|
31
|
+
## The ten tools
|
|
32
|
+
|
|
33
|
+
| Tool | Does | Refuses when |
|
|
34
|
+
|---|---|---|
|
|
35
|
+
| `dispatch-config-get` | Returns the vocabulary, statuses, transitions, job types, roster, checklists and the config audit | no config |
|
|
36
|
+
| `dispatch-job-create` | Raises a job at a site for a customer, in the account's first job status, with `slaTargetAt` computed from the type | unknown job type; site or customer does not exist |
|
|
37
|
+
| `dispatch-job-get` | One job with every visit, its times, who attended and what was recorded | job not on this account |
|
|
38
|
+
| `dispatch-job-list` | Jobs filtered by status, type, worker, date window, or narrowed to never-allocated. `overdue` computed on every read | status not declared |
|
|
39
|
+
| `dispatch-allocate-candidates` | Who could take this job in this window, with clashes shown and exclusions named | job unknown, untyped, or typed to something no longer declared |
|
|
40
|
+
| `dispatch-allocate` | Creates the visit, attends it, moves the job along its own edge, attaches a vehicle | worker not on the roster; worker lacks the qualification; vehicle passed while `vehicles.enabled` is false; no `:Person:Engineer` node for the workerId |
|
|
41
|
+
| `dispatch-visit-status-set` | Moves a visit; closes the job when its last visit reaches a terminal status | status not declared; transition not in the edge list; a required record missing |
|
|
42
|
+
| `dispatch-visit-record` | Note, media reference, fitted part, checklist item, signature, arrival | visit unknown; nothing supplied to record |
|
|
43
|
+
| `dispatch-site-history` | Every visit at one site, newest first, with notes | — |
|
|
44
|
+
| `dispatch-day` | One day: every worker with the visits they hold, plus jobs nobody has been sent to | — |
|
|
45
|
+
|
|
46
|
+
All ten are `adminAllowlist: true`, `publicAllowlist: false`.
|
|
47
|
+
|
|
48
|
+
## Legality is data
|
|
49
|
+
|
|
50
|
+
A move is legal when the account's own transition list contains that `[from, to]` pair. There is no
|
|
51
|
+
state machine in the code. A refusal names both ends:
|
|
52
|
+
`op=transition-refused … from=X to=Y reason=not-in-config`.
|
|
53
|
+
|
|
54
|
+
A move into a terminal status is refused a second way when the visit is missing a field
|
|
55
|
+
`records.requiredBeforeTerminal` demands there, and that refusal names the field:
|
|
56
|
+
`reason=missing-required-field:notes`.
|
|
57
|
+
|
|
58
|
+
Neither refusal is swallowed. A status that quietly failed to change cannot be told apart from one
|
|
59
|
+
nobody tried to change.
|
|
60
|
+
|
|
61
|
+
## A busy worker is offered, not hidden
|
|
62
|
+
|
|
63
|
+
Only a missing qualification excludes a worker, and every exclusion is named:
|
|
64
|
+
`exclusions=w1:missing-qualification`. A qualified worker already committed in the window is offered
|
|
65
|
+
with the clash shown. Double-booking is the office's decision, and a tool that drops the busy option
|
|
66
|
+
makes that decision for them with no trace.
|
|
67
|
+
|
|
68
|
+
There is no travel-time estimate.
|
|
69
|
+
|
|
70
|
+
## Arrival is two properties
|
|
71
|
+
|
|
72
|
+
`arrivedPressedAt` and `arrivedObservedAt` are written by separate `SET` clauses, so recording
|
|
73
|
+
either never clears the other. An observation with no press is stored and flagged. A pressed arrival
|
|
74
|
+
is what somebody said; an observed one is what was measured, and a single `arrivedAt` cannot show
|
|
75
|
+
them disagreeing.
|
|
76
|
+
|
|
77
|
+
## The standing checks
|
|
78
|
+
|
|
79
|
+
Six failure modes emit no event, because no action occurs: a job created and never allocated, a job
|
|
80
|
+
past its SLA target, a status no transition reaches, a job type no worker is qualified for, a worker
|
|
81
|
+
with no qualification, and visits closing hours after the work ended.
|
|
82
|
+
|
|
83
|
+
- `[dispatch-census]`, per account, every 15 minutes: `jobs= unallocated= oldestUnallocatedAgeH=
|
|
84
|
+
overdue= visitsOpen= visitsOpenOver24h=`
|
|
85
|
+
- `[dispatch-config-audit]`, on config load and each tick: `statuses= unreachable= terminal=
|
|
86
|
+
jobTypes= typesWithNoQualifiedWorker= workersWithNoQualification=`
|
|
87
|
+
- `[dispatch-record-census]`, daily: `closedVisits= withNote= withMedia= medianRecordLagS=
|
|
88
|
+
p90RecordLagS=`
|
|
89
|
+
|
|
90
|
+
They run in the UI server, not in the plugin, because a plugin only runs when somebody calls it.
|
|
91
|
+
Accounts without a dispatch config are skipped silently.
|
|
92
|
+
|
|
93
|
+
`overdue` is the count a typical incumbent system reports as zero because response-time targets were
|
|
94
|
+
never configured. A non-zero, believable number is the feature working.
|
|
95
|
+
|
|
96
|
+
The absence of `[dispatch-census]` is itself the signal: the check died, and every count is stale
|
|
97
|
+
rather than zero.
|
|
98
|
+
|
|
99
|
+
## The office planner
|
|
100
|
+
|
|
101
|
+
`/dispatch` is an admin surface that renders a dispatch day: worker rows against days over a
|
|
102
|
+
selectable range, a job list with true counts, and each visit's status with its pressed and
|
|
103
|
+
observed arrival side by side. It reads; it does not yet re-time or re-allocate.
|
|
104
|
+
|
|
105
|
+
It does not call these tools. Both it and this plugin read through `platform/lib/dispatch-read`,
|
|
106
|
+
which owns its Neo4j session, so the planner's route holds no graph credentials and issues no
|
|
107
|
+
Cypher — asserted by a test rather than trusted. This plugin's `mcp/src/lib/read.ts` is a
|
|
108
|
+
re-export of that lib, so the tools and the planner cannot disagree about what a filter means.
|
|
109
|
+
|
|
110
|
+
Two things the planner computes for itself. `dispatch-day` bounds a day in UTC, which misplaces a
|
|
111
|
+
Europe/London visit near local midnight for the whole of British Summer Time, so the planner
|
|
112
|
+
derives boundaries in the account's own timezone. And `dispatch-job-list` caps its rows, so the
|
|
113
|
+
planner takes its counts from an aggregate instead of counting what it was given.
|
|
114
|
+
|
|
115
|
+
It also names a defect it cannot fix. `dispatch-allocate` stores `startDate` exactly as the caller
|
|
116
|
+
passed it (`allocate.ts:186`) while normalising `endDate` (`allocate.ts:51`). The window compare is
|
|
117
|
+
lexical, so a start carrying a non-UTC offset reads correctly under GMT and an hour out under
|
|
118
|
+
British Summer Time. The planner logs `op=nonzulu-start` with the offending visit ids; correcting
|
|
119
|
+
it belongs at the writer.
|
|
120
|
+
|
|
121
|
+
Full detail: [`.docs/dispatch-planner.md`](../../../.docs/dispatch-planner.md).
|
|
122
|
+
|
|
123
|
+
## The field job sheet
|
|
124
|
+
|
|
125
|
+
The engineer's surface is his phone, so the detailed record is made in a Telegram Mini App: the sheet
|
|
126
|
+
opens inside the chat he is already in, with nothing installed and no second login.
|
|
127
|
+
|
|
128
|
+
Set it up once per bot:
|
|
129
|
+
|
|
130
|
+
1. Run `telegram-menu-button` with the bot's token and the account's public https origin. Give the
|
|
131
|
+
origin only — the tool appends `/field` and stamps the bot id on itself.
|
|
132
|
+
2. Give each worker in `dispatch/config.json` a `telegramUserId` matching their numeric Telegram id.
|
|
133
|
+
Without one the sheet refuses them with "Ask the office to add you as an engineer."
|
|
134
|
+
|
|
135
|
+
The worker then taps the menu button and sees today's visits, in the order they will be done, each
|
|
136
|
+
card carrying the site, the customer, the contact and what was reported. Opening one shows the
|
|
137
|
+
site's previous visits with their notes and photograph counts, then the checklist for that job type,
|
|
138
|
+
parts, both signatures and a free note. Completion is refused, naming the one missing field, when
|
|
139
|
+
the account's `requiredBeforeTerminal` is not satisfied.
|
|
140
|
+
|
|
141
|
+
Every refusal is named and none of them shows a login form. `unbound-user` is the office's to fix;
|
|
142
|
+
`bad-hash` and `duplicate-bot` mean something is wrong rather than missing.
|
|
143
|
+
|
|
144
|
+
Two limits worth knowing before you deploy it. There is no offline queue yet, so an edit made out of
|
|
145
|
+
signal is refused rather than held; the sheet says so rather than appearing to save it. And a site
|
|
146
|
+
carries no address, because the ontology has none to carry, so a card names the site but cannot give
|
|
147
|
+
a street. `sitesVisitedTodayWithoutAddress=` on the census counts what that costs each day. Both are
|
|
148
|
+
tracked work, not permanent limits.
|
|
149
|
+
|
|
150
|
+
Full detail: [`.docs/dispatch-field-app.md`](../../../.docs/dispatch-field-app.md).
|
|
151
|
+
|
|
152
|
+
## Diagnostic path
|
|
153
|
+
|
|
154
|
+
```
|
|
155
|
+
journalctl --user -u <brand>-* | grep -E '\[dispatch\]|\[dispatch-census\]|\[dispatch-config-audit\]|\[dispatch-record-census\]|\[dispatch-field\]|\[dispatch-field-census\]'
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
Then filter by `jobId=` for one job's lifeline, `op=transition-refused` to audit rejected writes, or
|
|
159
|
+
`exclusions=` to see why allocation offered whom.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "email",
|
|
3
|
-
"description": "Email — one or more dedicated email mailboxes per account, each addressable by a `mailbox` selector. Retrieval: email-graph-query for stored email-thread history as :ConversationArchive {source:'email'} with :Section chunks (recall, search, 'threads about X', 'what did Y send?'); email-read / email-search for live IMAP inbox previews (with best-effort per-archive section hints from the graph); email-fetch-body for the COMPLETE decoded body of one message (by uid or message_id) when a preview is not enough; email-fetch-attachment for the extracted TEXT of one attachment (PDF via pdftotext, text/* by decode) when data sits inside a file rather than the body. Ingestion (operator-initiated, human-in-the-loop): email-fetch lists new messages, email-ingest writes the operator-approved subset via the conversation-archive pipeline. Sending: email-send (new), email-reply (threaded — resolves the original via IMAP Message-ID search), email-draft (compose to the mailbox Drafts folder, unsent, for operator review; pass messageId for a threaded draft-reply), email-draft-edit (revise a stored draft, located by its Drafts UID or, when Gmail has renumbered it, its draft Message-ID), email-draft-send (dispatch a stored draft by Drafts UID, then remove it), email-draft-list (read the Drafts folder back and confirm what is actually in it — the only tool that can verify a draft's presence). Deleting: email-delete (move named UIDs from email-read/email-search
|
|
3
|
+
"description": "Email — one or more dedicated email mailboxes per account, each addressable by a `mailbox` selector. Retrieval: email-graph-query for stored email-thread history as :ConversationArchive {source:'email'} with :Section chunks (recall, search, 'threads about X', 'what did Y send?'); email-read / email-search for live IMAP inbox previews (with best-effort per-archive section hints from the graph); email-fetch-body for the COMPLETE decoded body of one message (by uid or message_id) when a preview is not enough; email-fetch-attachment for the extracted TEXT of one attachment (PDF via pdftotext, text/* by decode) when data sits inside a file rather than the body. Ingestion (operator-initiated, human-in-the-loop): email-fetch lists new messages, email-ingest writes the operator-approved subset via the conversation-archive pipeline. Sending: email-send (new), email-reply (threaded — resolves the original via IMAP Message-ID search), email-draft (compose to the mailbox Drafts folder, unsent, for operator review; pass messageId for a threaded draft-reply), email-draft-edit (revise a stored draft, located by its Drafts UID or, when Gmail has renumbered it, its draft Message-ID), email-draft-send (dispatch a stored draft by Drafts UID, then remove it), email-draft-list (read the Drafts folder back and confirm what is actually in it — the only tool that can verify a draft's presence). Deleting: email-delete (move named UIDs to the mailbox Trash — recoverable, never an expunge; folder inbox/sent take UIDs from email-read/email-search, folder drafts takes them from email-draft-list and accepts a draftMessageId because a draft is renumbered on every edit). Config: email-provider-info (pre-password host + app-password lookup from an address alone), email-setup, email-signature-set (install the signature every email-draft then appends automatically — never hand-write a signature into a draft body), email-sending-identity-set (designate which attached mailbox this account sends from, so a send or draft that names no mailbox resolves it from the account instead of being refused), email-status, email-otp-extract.",
|
|
4
4
|
"version": "0.1.0",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Rubytech LLC"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: email
|
|
3
|
-
description: "Email — one or more dedicated email mailboxes per account, each addressable by a `mailbox` selector. Retrieval: email-graph-query for stored email-thread history as :ConversationArchive {source:'email'} with :Section chunks (recall, search, 'threads about X', 'what did Y send?'); email-read / email-search for live IMAP inbox previews (with best-effort per-archive section hints from the graph); email-fetch-body for the COMPLETE decoded body of one message (by uid or message_id) when a preview is not enough; email-fetch-attachment for the extracted TEXT of one attachment (PDF via pdftotext, text/* by decode) when data sits inside a file rather than the body. Ingestion (operator-initiated, human-in-the-loop): email-fetch lists new messages, email-ingest writes the operator-approved subset via the conversation-archive pipeline. Sending: email-send (new), email-reply (threaded — resolves the original via IMAP Message-ID search), email-draft (compose to the mailbox Drafts folder, unsent, for operator review; pass messageId for a threaded draft-reply), email-draft-edit (revise a stored draft, located by its Drafts UID or, when Gmail has renumbered it, its draft Message-ID), email-draft-send (dispatch a stored draft by Drafts UID, then remove it), email-draft-list (read the Drafts folder back and confirm what is actually in it — the only tool that can verify a draft's presence). Deleting: email-delete (move named UIDs from email-read/email-search
|
|
3
|
+
description: "Email — one or more dedicated email mailboxes per account, each addressable by a `mailbox` selector. Retrieval: email-graph-query for stored email-thread history as :ConversationArchive {source:'email'} with :Section chunks (recall, search, 'threads about X', 'what did Y send?'); email-read / email-search for live IMAP inbox previews (with best-effort per-archive section hints from the graph); email-fetch-body for the COMPLETE decoded body of one message (by uid or message_id) when a preview is not enough; email-fetch-attachment for the extracted TEXT of one attachment (PDF via pdftotext, text/* by decode) when data sits inside a file rather than the body. Ingestion (operator-initiated, human-in-the-loop): email-fetch lists new messages, email-ingest writes the operator-approved subset via the conversation-archive pipeline. Sending: email-send (new), email-reply (threaded — resolves the original via IMAP Message-ID search), email-draft (compose to the mailbox Drafts folder, unsent, for operator review; pass messageId for a threaded draft-reply), email-draft-edit (revise a stored draft, located by its Drafts UID or, when Gmail has renumbered it, its draft Message-ID), email-draft-send (dispatch a stored draft by Drafts UID, then remove it), email-draft-list (read the Drafts folder back and confirm what is actually in it — the only tool that can verify a draft's presence). Deleting: email-delete (move named UIDs to the mailbox Trash — recoverable, never an expunge; folder inbox/sent take UIDs from email-read/email-search, folder drafts takes them from email-draft-list and accepts a draftMessageId because a draft is renumbered on every edit). Config: email-provider-info (pre-password host + app-password lookup from an address alone), email-setup, email-signature-set (install the signature every email-draft then appends automatically — never hand-write a signature into a draft body), email-sending-identity-set (designate which attached mailbox this account sends from, so a send or draft that names no mailbox resolves it from the account instead of being refused), email-status, email-otp-extract."
|
|
4
4
|
tools:
|
|
5
5
|
- name: email-provider-info
|
|
6
6
|
publicAllowlist: false
|
|
@@ -120,7 +120,7 @@ Manages the agent's own dedicated email account — IMAP for reading, SMTP for s
|
|
|
120
120
|
- **Sending identity:** `email-sending-identity-set` — designate which attached mailbox is the account's own outbound address. Afterwards an `email-draft`, `email-send` or `email-reply` that names no `mailbox` composes from it, instead of being refused with a list of addresses. Exactly one mailbox carries the designation: the call clears it from every sibling in the same write, so uniqueness is a property of the write rather than of a later check. The address comes from the operator, never from inference — a routing rule, a signature or an inbound trigger names an address for a different purpose, and reading one of those as the sending address is what put a mailbox the operator never sends from into a draft brief. Re-running `email-setup` on a designated mailbox preserves the designation. `email-status` reports which mailbox holds it, and says so when a multi-mailbox account has none.
|
|
121
121
|
- **Read inbox:** `email-read` — metadata only (UID, sender, subject, date), plus a best-effort `Archive`/`Archive-Section` hint when the IMAP message's `receivedAt` falls inside a stored `:ConversationArchive {source:'email'}` section, plus an `Attachments (N): filename (mime, size); …` footer when the message carries enclosures. Supports pagination (`before_uid`), folders (`inbox`/`sent`), filtering by sender/date/subject. Metadata is derived from IMAP `bodyStructure` — no bytes downloaded.
|
|
122
122
|
- **Search inbox:** `email-search` — live IMAP search by sender, subject, body keyword, date range. Same per-archive hint and attachment footer as `email-read`.
|
|
123
|
-
- **Delete (move to Trash):** `email-delete` — move the messages named by `uids` (from a prior `email-read`/`email-search`, scoped to a source `folder` of `inbox` or `
|
|
123
|
+
- **Delete (move to Trash):** `email-delete` — move the messages named by `uids` (from a prior `email-read`/`email-search`, scoped to a source `folder` of `inbox`, `sent`, or `drafts`) into the mailbox's Trash folder. **Recoverable, never an expunge** — the message leaves the inbox and permanent removal is left to the operator's own mail client or the provider's Trash auto-purge; this tool never permanently deletes. Trash is resolved per provider: the `\Trash` special-use folder if advertised, else the first existing of `Trash`, `[Gmail]/Trash`, `Deleted Items`, `Deleted Messages`. `Junk` is never treated as Trash. A mailbox with no resolvable Trash yields a typed error and moves nothing — there is no silent expunge fallback. A `uid` that is already gone is counted not-moved without failing the rest; the result reports `Moved N of M message(s) to <Trash>`. It deletes only the UIDs you name, never by search criteria. Deleting a draft uses `folder: "drafts"` with a UID from `email-draft-list`; because a draft is renumbered every time it is edited, pass `draftMessageId` as well and the tool relocates by the draft's own Message-ID when the UID no longer resolves. The Drafts folder is resolved by the account's configured `draftsFolder` override when set, else by the `\Drafts` special-use flag.
|
|
124
124
|
- **Read one attachment's text:** `email-fetch-attachment` — the extracted text of a single inbox attachment, addressed by `uid` plus an optional `index` (1-based, matching the `Attachments (N): …` footer order) or `filename`. With one attachment and no selector, that attachment is read; with more than one and no selector, or an ambiguous filename, the call is refused with a numbered listing. `application/pdf` is extracted via `pdftotext`, `text/*` by decode; any other type reports that it cannot be extracted, and a PDF with no text layer reports it is a scanned image (no OCR), so "no data in the attachment" never reads the same as "the attachment could not be read". Bytes are downloaded once through the 25 MB-capped fetch path; inbox only. A `text/calendar` part counts as an attachment whatever its disposition and whatever its name — a named one keeps its name, an unnamed one is listed as `invite-<part>.ics` — so a meeting invite whose message body is empty is still readable. A calendar part inside a forwarded `message/rfc822` wrapper is not listed (IMAP gives it the wrapper's part number, which fetches the whole encapsulated message). Use this when actionable data (a meeting date, an amount) may sit inside a file rather than the email body.
|
|
125
125
|
- **Read one whole message:** `email-fetch-body` — the COMPLETE decoded body of a single message addressed by `uid` (with optional `folder`) or `message_id` (resolved across inbox and sent). No 500-char preview cap. Downloads the full RFC822 source and decodes it with `mailparser`, so every MIME shape — flat text, single-part HTML, `multipart/alternative`, and nested `multipart/related`/`multipart/mixed` (Outlook's inline-image house style) — yields a body; the preview tools above intentionally stay preview-only. Use this when the operator wants to read or act on a message's actual content.
|
|
126
126
|
- **Send:** `email-send` — new outbound email. Pass `cc`/`bcc` (each an array of email addresses) to copy or blind-copy recipients — CC appears in the message header, BCC recipients receive the message without appearing in any header. Pass `attachments` (absolute file paths under the account directory, ≤25 MB each) to attach files as SMTP attachments; an invalid path fails the send with no email dispatched. The success message names the CC recipients and reports the BCC count without naming them.
|
|
@@ -7,7 +7,8 @@ import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
|
7
7
|
const state = {
|
|
8
8
|
folders: [],
|
|
9
9
|
existingUids: [],
|
|
10
|
-
|
|
10
|
+
messageIdUids: {},
|
|
11
|
+
calls: { locked: null, searched: null, headerSearches: [], moves: [], released: false },
|
|
11
12
|
};
|
|
12
13
|
const mockClient = {
|
|
13
14
|
connect: vi.fn(async () => { }),
|
|
@@ -18,6 +19,10 @@ const mockClient = {
|
|
|
18
19
|
}),
|
|
19
20
|
search: vi.fn(async (query) => {
|
|
20
21
|
state.calls.searched = query;
|
|
22
|
+
if (query.header) {
|
|
23
|
+
state.calls.headerSearches.push(query.header);
|
|
24
|
+
return state.messageIdUids[query.header["message-id"]] ?? [];
|
|
25
|
+
}
|
|
21
26
|
const requested = String(query.uid).split(",").map(Number);
|
|
22
27
|
return requested.filter((u) => state.existingUids.includes(u));
|
|
23
28
|
}),
|
|
@@ -54,7 +59,7 @@ const { loadCredentials, credConfig } = vi.hoisted(() => {
|
|
|
54
59
|
return { loadCredentials, credConfig };
|
|
55
60
|
});
|
|
56
61
|
vi.mock("../lib/credentials.js", () => ({ loadCredentials }));
|
|
57
|
-
import { moveToTrash, resolveTrashFolder } from "../lib/imap.js";
|
|
62
|
+
import { moveToTrash, resolveTrashFolder, resetDraftsCensusForTest } from "../lib/imap.js";
|
|
58
63
|
import { emailDelete, deleteLine } from "../tools/email-delete.js";
|
|
59
64
|
const config = {
|
|
60
65
|
email: "a@x.com",
|
|
@@ -66,12 +71,14 @@ const config = {
|
|
|
66
71
|
smtpPort: 587,
|
|
67
72
|
smtpSecurity: "starttls",
|
|
68
73
|
};
|
|
69
|
-
function reset(folders, existingUids) {
|
|
74
|
+
function reset(folders, existingUids, messageIdUids = {}) {
|
|
70
75
|
state.folders = folders;
|
|
71
76
|
state.existingUids = existingUids;
|
|
72
|
-
state.
|
|
77
|
+
state.messageIdUids = messageIdUids;
|
|
78
|
+
state.calls = { locked: null, searched: null, headerSearches: [], moves: [], released: false };
|
|
73
79
|
}
|
|
74
80
|
beforeEach(() => {
|
|
81
|
+
resetDraftsCensusForTest();
|
|
75
82
|
reset([], []);
|
|
76
83
|
});
|
|
77
84
|
describe("resolveTrashFolder", () => {
|
|
@@ -119,6 +126,81 @@ describe("moveToTrash", () => {
|
|
|
119
126
|
expect(state.calls.moves).toHaveLength(0);
|
|
120
127
|
});
|
|
121
128
|
});
|
|
129
|
+
const DRAFT_FOLDERS = [
|
|
130
|
+
{ path: "INBOX" },
|
|
131
|
+
{ path: "Drafts", specialUse: "\\Drafts" },
|
|
132
|
+
{ path: "Trash", specialUse: "\\Trash" },
|
|
133
|
+
];
|
|
134
|
+
describe("moveToTrash — drafts folder", () => {
|
|
135
|
+
it("locks the \\Drafts folder and moves the named UID to Trash", async () => {
|
|
136
|
+
reset(DRAFT_FOLDERS, [28381]);
|
|
137
|
+
const res = await moveToTrash(config, "pw", { folder: "drafts", uids: [28381] });
|
|
138
|
+
expect(res).toEqual({ moved: 1, requested: 1, trash: "Trash", addressing: "uid-hit" });
|
|
139
|
+
expect(state.calls.locked).toBe("Drafts");
|
|
140
|
+
expect(state.calls.moves[0].dest).toBe("Trash");
|
|
141
|
+
expect(state.calls.headerSearches).toHaveLength(0);
|
|
142
|
+
});
|
|
143
|
+
it("honours a configured draftsFolder override over the \\Drafts special-use folder", async () => {
|
|
144
|
+
reset([{ path: "INBOX" }, { path: "INBOX.Drafts" }, { path: "Drafts", specialUse: "\\Drafts" }, { path: "Trash", specialUse: "\\Trash" }], [7]);
|
|
145
|
+
const overridden = { ...config, draftsFolder: "INBOX.Drafts" };
|
|
146
|
+
const res = await moveToTrash(overridden, "pw", { folder: "drafts", uids: [7] });
|
|
147
|
+
expect(res.moved).toBe(1);
|
|
148
|
+
expect(state.calls.locked).toBe("INBOX.Drafts");
|
|
149
|
+
});
|
|
150
|
+
it("relocates by draft Message-ID when the supplied UID has gone stale", async () => {
|
|
151
|
+
reset(DRAFT_FOLDERS, [], { "<c65a28e4@glsmithandsons.co.uk>": [28402] });
|
|
152
|
+
const res = await moveToTrash(config, "pw", {
|
|
153
|
+
folder: "drafts",
|
|
154
|
+
uids: [28381],
|
|
155
|
+
draftMessageId: "c65a28e4@glsmithandsons.co.uk",
|
|
156
|
+
});
|
|
157
|
+
expect(res).toEqual({ moved: 1, requested: 1, trash: "Trash", addressing: "message-id-relocate" });
|
|
158
|
+
expect(state.calls.headerSearches).toEqual([{ "message-id": "<c65a28e4@glsmithandsons.co.uk>" }]);
|
|
159
|
+
expect(state.calls.moves[0].range).toEqual([28402]);
|
|
160
|
+
});
|
|
161
|
+
it("never searches by Message-ID when the UID still resolves", async () => {
|
|
162
|
+
reset(DRAFT_FOLDERS, [28381], { "<c65a28e4@x.com>": [99] });
|
|
163
|
+
const res = await moveToTrash(config, "pw", {
|
|
164
|
+
folder: "drafts",
|
|
165
|
+
uids: [28381],
|
|
166
|
+
draftMessageId: "c65a28e4@x.com",
|
|
167
|
+
});
|
|
168
|
+
expect(res.addressing).toBe("uid-hit");
|
|
169
|
+
expect(state.calls.headerSearches).toHaveLength(0);
|
|
170
|
+
expect(state.calls.moves[0].range).toEqual([28381]);
|
|
171
|
+
});
|
|
172
|
+
it("moves nothing and reports no addressing when neither the UID nor the Message-ID resolves", async () => {
|
|
173
|
+
reset(DRAFT_FOLDERS, [], {});
|
|
174
|
+
const res = await moveToTrash(config, "pw", {
|
|
175
|
+
folder: "drafts",
|
|
176
|
+
uids: [28381],
|
|
177
|
+
draftMessageId: "gone@x.com",
|
|
178
|
+
});
|
|
179
|
+
expect(res).toEqual({ moved: 0, requested: 1, trash: "Trash" });
|
|
180
|
+
expect(state.calls.moves).toHaveLength(0);
|
|
181
|
+
});
|
|
182
|
+
it("errors and never locks the source when the mailbox has no Trash", async () => {
|
|
183
|
+
reset([{ path: "INBOX" }, { path: "Drafts", specialUse: "\\Drafts" }, { path: "Junk" }], [28381]);
|
|
184
|
+
await expect(moveToTrash(config, "pw", { folder: "drafts", uids: [28381] })).rejects.toMatchObject({ code: "no-trash-folder" });
|
|
185
|
+
expect(state.calls.locked).toBeNull();
|
|
186
|
+
expect(state.calls.moves).toHaveLength(0);
|
|
187
|
+
});
|
|
188
|
+
it("throws before any lock when the server advertises no Drafts folder", async () => {
|
|
189
|
+
reset([{ path: "INBOX" }, { path: "Trash", specialUse: "\\Trash" }], [28381]);
|
|
190
|
+
await expect(moveToTrash(config, "pw", { folder: "drafts", uids: [28381] })).rejects.toThrow(/Drafts folder not found/);
|
|
191
|
+
expect(state.calls.locked).toBeNull();
|
|
192
|
+
});
|
|
193
|
+
it("leaves inbox and sent on resolveFolderName with no addressing", async () => {
|
|
194
|
+
reset([{ path: "INBOX" }, { path: "Sent", specialUse: "\\Sent" }, { path: "Trash", specialUse: "\\Trash" }], [5]);
|
|
195
|
+
const inbox = await moveToTrash(config, "pw", { folder: "inbox", uids: [5] });
|
|
196
|
+
expect(inbox).toEqual({ moved: 1, requested: 1, trash: "Trash" });
|
|
197
|
+
expect(state.calls.locked).toBe("INBOX");
|
|
198
|
+
reset([{ path: "INBOX" }, { path: "Sent", specialUse: "\\Sent" }, { path: "Trash", specialUse: "\\Trash" }], [6]);
|
|
199
|
+
const sent = await moveToTrash(config, "pw", { folder: "sent", uids: [6] });
|
|
200
|
+
expect(sent).toEqual({ moved: 1, requested: 1, trash: "Trash" });
|
|
201
|
+
expect(state.calls.locked).toBe("Sent");
|
|
202
|
+
});
|
|
203
|
+
});
|
|
122
204
|
describe("emailDelete tool", () => {
|
|
123
205
|
it("resolves the credential by accountId (no password input) and moves via the resolved Trash", async () => {
|
|
124
206
|
reset([{ path: "INBOX" }, { path: "Trash", specialUse: "\\Trash" }], [10, 11]);
|
|
@@ -130,6 +212,46 @@ describe("emailDelete tool", () => {
|
|
|
130
212
|
expect(state.calls.moves[0].dest).toBe("Trash");
|
|
131
213
|
});
|
|
132
214
|
});
|
|
215
|
+
describe("emailDelete tool — drafts", () => {
|
|
216
|
+
it("passes the drafts folder and draftMessageId through and reports the move", async () => {
|
|
217
|
+
reset(DRAFT_FOLDERS, [], { "<c65a28e4@x.com>": [28402] });
|
|
218
|
+
const text = await emailDelete({
|
|
219
|
+
accountId: "acct-1",
|
|
220
|
+
uids: [28381],
|
|
221
|
+
folder: "drafts",
|
|
222
|
+
draftMessageId: "c65a28e4@x.com",
|
|
223
|
+
});
|
|
224
|
+
expect(text).toBe("Moved 1 of 1 message(s) to Trash.");
|
|
225
|
+
expect(state.calls.locked).toBe("Drafts");
|
|
226
|
+
expect(state.calls.moves[0].range).toEqual([28402]);
|
|
227
|
+
});
|
|
228
|
+
it("reports a total miss as moved=0 without throwing", async () => {
|
|
229
|
+
reset(DRAFT_FOLDERS, [], {});
|
|
230
|
+
const text = await emailDelete({ accountId: "acct-1", uids: [28381], folder: "drafts" });
|
|
231
|
+
expect(text).toBe("Moved 0 of 1 message(s) to Trash.");
|
|
232
|
+
expect(state.calls.moves).toHaveLength(0);
|
|
233
|
+
});
|
|
234
|
+
});
|
|
235
|
+
describe("deleteLine — addressing", () => {
|
|
236
|
+
it("carries addressing on a drafts delete", () => {
|
|
237
|
+
const hit = deleteLine("owner@x.com", "drafts", 1, 1, "Trash", true, undefined, "uid-hit");
|
|
238
|
+
expect(hit).toContain("folder=drafts");
|
|
239
|
+
expect(hit).toContain("addressing=uid-hit");
|
|
240
|
+
const moved = deleteLine("owner@x.com", "drafts", 1, 1, "Trash", true, undefined, "message-id-relocate");
|
|
241
|
+
expect(moved).toContain("addressing=message-id-relocate");
|
|
242
|
+
});
|
|
243
|
+
it("omits addressing entirely for inbox and sent", () => {
|
|
244
|
+
expect(deleteLine("owner@x.com", "inbox", 1, 1, "Trash", true)).not.toContain("addressing=");
|
|
245
|
+
expect(deleteLine("owner@x.com", "sent", 1, 1, "Trash", true)).not.toContain("addressing=");
|
|
246
|
+
});
|
|
247
|
+
it("still records the typed refusal with no counts", () => {
|
|
248
|
+
const fail = deleteLine("owner@x.com", "drafts", 1, 0, null, false, "no-trash-folder");
|
|
249
|
+
expect(fail).toContain("ok=false");
|
|
250
|
+
expect(fail).toContain("reason=no-trash-folder");
|
|
251
|
+
expect(fail).not.toContain("moved=");
|
|
252
|
+
expect(fail).not.toContain("addressing=");
|
|
253
|
+
});
|
|
254
|
+
});
|
|
133
255
|
describe("deleteLine", () => {
|
|
134
256
|
it("carries the mailbox, counts, trash, and ok — never a password", () => {
|
|
135
257
|
const ok = deleteLine("owner@x.com", "inbox", 3, 2, "Trash", true);
|