@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,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Dispatch writes, shared by the MCP tools and the field job sheet.
|
|
4
|
+
*
|
|
5
|
+
* The sibling of `dispatch-read`, and for the same reason: the field Mini App's
|
|
6
|
+
* route must be assertable as holding no graph access while still writing to
|
|
7
|
+
* the graph. Two consumption shapes, matching that package — session-taking
|
|
8
|
+
* functions for the plugin, which owns its driver, and session-owning wrappers
|
|
9
|
+
* for the UI route, which must not.
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.checkTransition = checkTransition;
|
|
13
|
+
exports.isTerminal = isTerminal;
|
|
14
|
+
exports.initialStatus = initialStatus;
|
|
15
|
+
exports.firstMissingRequiredField = firstMissingRequiredField;
|
|
16
|
+
exports.formatTransitionRefused = formatTransitionRefused;
|
|
17
|
+
const index_js_1 = require("../../dispatch-read/dist/index.js");
|
|
18
|
+
function checkTransition(kind, from, to, cfg) {
|
|
19
|
+
const edges = kind === "job" ? cfg.statuses.jobTransitions : cfg.statuses.visitTransitions;
|
|
20
|
+
const legal = edges.some(([f, t]) => f === from && t === to);
|
|
21
|
+
return legal ? { legal: true } : { legal: false, reason: "not-in-config" };
|
|
22
|
+
}
|
|
23
|
+
/** Is this a declared terminal status of the given kind? */
|
|
24
|
+
function isTerminal(kind, status, cfg) {
|
|
25
|
+
const list = kind === "job" ? cfg.statuses.job : cfg.statuses.visit;
|
|
26
|
+
return list.some((s) => s.name === status && s.terminal);
|
|
27
|
+
}
|
|
28
|
+
/** The status a newly created job or visit starts in: the first declared. */
|
|
29
|
+
function initialStatus(kind, cfg) {
|
|
30
|
+
const list = kind === "job" ? cfg.statuses.job : cfg.statuses.visit;
|
|
31
|
+
return list[0].name;
|
|
32
|
+
}
|
|
33
|
+
function fieldSatisfied(field, state) {
|
|
34
|
+
switch (field) {
|
|
35
|
+
case "notes":
|
|
36
|
+
return state.notes > 0;
|
|
37
|
+
case "media":
|
|
38
|
+
return state.media > 0;
|
|
39
|
+
case "parts":
|
|
40
|
+
return state.parts > 0;
|
|
41
|
+
case "signature":
|
|
42
|
+
return state.signatures > 0;
|
|
43
|
+
case "checklist":
|
|
44
|
+
// Every item, not merely one: a half-done checklist is the case this
|
|
45
|
+
// guard exists for.
|
|
46
|
+
return state.checklistTotal > 0 && state.checklistDone >= state.checklistTotal;
|
|
47
|
+
default:
|
|
48
|
+
// Unreachable while RECORDABLE_FIELDS and this switch agree. Answering
|
|
49
|
+
// false rather than throwing keeps an unknown field a REFUSAL to close
|
|
50
|
+
// the visit, which is the safe direction: a throw here would abort the
|
|
51
|
+
// status change with a stack trace instead of a named missing field.
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* The first `records.requiredBeforeTerminal` field this visit does not carry,
|
|
57
|
+
* or null when it carries them all. Returns the FIRST rather than all of them
|
|
58
|
+
* so the refusal names one concrete thing to go and do.
|
|
59
|
+
*/
|
|
60
|
+
function firstMissingRequiredField(toStatus, cfg, state) {
|
|
61
|
+
const required = cfg.records.requiredBeforeTerminal[toStatus];
|
|
62
|
+
if (!required)
|
|
63
|
+
return null;
|
|
64
|
+
for (const field of required) {
|
|
65
|
+
if (!index_js_1.RECORDABLE_FIELDS.includes(field))
|
|
66
|
+
continue;
|
|
67
|
+
if (!fieldSatisfied(field, state)) {
|
|
68
|
+
return field;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
function formatTransitionRefused(p) {
|
|
74
|
+
return (`[dispatch] op=transition-refused jobId=${p.jobId} visitId=${p.visitId ?? "none"} ` +
|
|
75
|
+
`from=${p.from} to=${p.to} reason=${p.reason}`);
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=lifecycle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The two visit writes, shared by the MCP tools and the field job sheet.
|
|
3
|
+
*
|
|
4
|
+
* Moved out of `platform/plugins/dispatch/mcp/src/tools/` unchanged except for
|
|
5
|
+
* the return shape. The plugin's tool files are now adapters that map the
|
|
6
|
+
* outcome below onto `ToolResult`.
|
|
7
|
+
*/
|
|
8
|
+
import type { Session } from "neo4j-driver";
|
|
9
|
+
import type { DispatchConfig } from "../../dispatch-read/dist/index.js";
|
|
10
|
+
import { type VisitRecordState } from "./lifecycle.js";
|
|
11
|
+
/**
|
|
12
|
+
* A domain answer, not an MCP one.
|
|
13
|
+
*
|
|
14
|
+
* The plugin maps this onto `ToolResult`; the field route maps it onto an HTTP
|
|
15
|
+
* status and a JSON body. Returning the MCP shape from a shared library would
|
|
16
|
+
* have made the route parse a JSON string out of a text block to learn whether
|
|
17
|
+
* a write succeeded.
|
|
18
|
+
*
|
|
19
|
+
* `reason` is a stable machine token and `message` is the operator-facing text.
|
|
20
|
+
* They are separate because the route branches on the first and renders the
|
|
21
|
+
* second, and a route that branched on prose would break the day somebody
|
|
22
|
+
* improved the wording.
|
|
23
|
+
*/
|
|
24
|
+
export type WriteOutcome<T> = {
|
|
25
|
+
readonly ok: true;
|
|
26
|
+
readonly value: T;
|
|
27
|
+
} | {
|
|
28
|
+
readonly ok: false;
|
|
29
|
+
readonly reason: string;
|
|
30
|
+
readonly message: string;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Record what happened on the visit: a note, a photo, a part, a ticked
|
|
34
|
+
* checklist item, a signature, an arrival.
|
|
35
|
+
*
|
|
36
|
+
* Each arrival property is written with its **own** SET clause and only when
|
|
37
|
+
* that call supplies it. That is the load-bearing detail of the whole tool. A
|
|
38
|
+
* pressed arrival is what somebody said; an observed one is what was measured.
|
|
39
|
+
* If a single write set both, recording one would blank the other, and the
|
|
40
|
+
* disagreement between them — which is the finding worth having — would be
|
|
41
|
+
* destroyed by the act of recording it.
|
|
42
|
+
*
|
|
43
|
+
* An observation with no press is stored and flagged, not dropped: a worker who
|
|
44
|
+
* never pressed arrive is precisely the case the geofence exists to cover.
|
|
45
|
+
*/
|
|
46
|
+
export interface VisitRecordParams {
|
|
47
|
+
session: Session;
|
|
48
|
+
accountId: string;
|
|
49
|
+
cfg: DispatchConfig;
|
|
50
|
+
emit: (line: string) => void;
|
|
51
|
+
visitId: string;
|
|
52
|
+
note?: string;
|
|
53
|
+
mediaRef?: string;
|
|
54
|
+
partId?: string;
|
|
55
|
+
checklistItem?: string;
|
|
56
|
+
signature?: string;
|
|
57
|
+
arrivedPressedAt?: string;
|
|
58
|
+
arrivedObservedAt?: string;
|
|
59
|
+
arrivedObservedDistanceM?: number;
|
|
60
|
+
}
|
|
61
|
+
export interface VisitRecordResult {
|
|
62
|
+
visitId: string;
|
|
63
|
+
jobId: string | null;
|
|
64
|
+
recorded: VisitRecordState;
|
|
65
|
+
arrivedPressedAt: string | null;
|
|
66
|
+
arrivedObservedAt: string | null;
|
|
67
|
+
arrivedObservedDistanceM: number | null;
|
|
68
|
+
vocabulary: DispatchConfig["vocabulary"];
|
|
69
|
+
}
|
|
70
|
+
export declare function visitRecord(p: VisitRecordParams): Promise<WriteOutcome<VisitRecordResult>>;
|
|
71
|
+
/**
|
|
72
|
+
* Move a visit between statuses, and close the job when the last one lands.
|
|
73
|
+
*
|
|
74
|
+
* Two refusals, both loud, both naming what was attempted:
|
|
75
|
+
*
|
|
76
|
+
* - the transition is not in the account's edge list → `not-in-config`
|
|
77
|
+
* - the visit does not carry a field the target status requires →
|
|
78
|
+
* `missing-required-field:<f>`
|
|
79
|
+
*
|
|
80
|
+
* Neither is swallowed. A status that quietly failed to change is
|
|
81
|
+
* indistinguishable from one nobody tried to change, and that is the whole
|
|
82
|
+
* failure mode this tool exists inside of.
|
|
83
|
+
*
|
|
84
|
+
* `op=job-close` carries `recordLagS`: the gap between the work ending and the
|
|
85
|
+
* record being written. On the reference account one worker closed Monday's
|
|
86
|
+
* jobs on Tuesday morning, so every finish time was when a button was pressed.
|
|
87
|
+
* The number is the only way to see that happening again.
|
|
88
|
+
*/
|
|
89
|
+
export type StatusSource = "press" | "geofence" | "office";
|
|
90
|
+
export interface VisitStatusSetParams {
|
|
91
|
+
session: Session;
|
|
92
|
+
accountId: string;
|
|
93
|
+
cfg: DispatchConfig;
|
|
94
|
+
emit: (line: string) => void;
|
|
95
|
+
now: () => number;
|
|
96
|
+
by: string;
|
|
97
|
+
visitId: string;
|
|
98
|
+
to: string;
|
|
99
|
+
source: StatusSource;
|
|
100
|
+
}
|
|
101
|
+
export interface VisitStatusResult {
|
|
102
|
+
visitId: string;
|
|
103
|
+
jobId: string | null;
|
|
104
|
+
from: string;
|
|
105
|
+
to: string;
|
|
106
|
+
at: string;
|
|
107
|
+
source: StatusSource;
|
|
108
|
+
jobClosed: string | null;
|
|
109
|
+
vocabulary: DispatchConfig["vocabulary"];
|
|
110
|
+
}
|
|
111
|
+
export declare function visitStatusSet(p: VisitStatusSetParams): Promise<WriteOutcome<VisitStatusResult>>;
|
|
112
|
+
//# sourceMappingURL=write.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../src/write.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAMxE,OAAO,EAKL,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AAExB;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,IACtB;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GACxC;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAU9E;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,cAAc,CAAC;IACpB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,UAAU,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;CAC1C;AAED,wBAAsB,WAAW,CAC/B,CAAC,EAAE,iBAAiB,GACnB,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CA4G1C;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE3D,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,cAAc,CAAC;IACpB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;CAC1C;AAED,wBAAsB,cAAc,CAClC,CAAC,EAAE,oBAAoB,GACtB,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CA4I1C"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.visitRecord = visitRecord;
|
|
4
|
+
exports.visitStatusSet = visitStatusSet;
|
|
5
|
+
const index_js_1 = require("../../dispatch-read/dist/index.js");
|
|
6
|
+
const lifecycle_js_1 = require("./lifecycle.js");
|
|
7
|
+
function refuse(reason, message) {
|
|
8
|
+
return { ok: false, reason, message };
|
|
9
|
+
}
|
|
10
|
+
async function visitRecord(p) {
|
|
11
|
+
const visit = await (0, index_js_1.readVisit)(p.session, p.accountId, p.visitId);
|
|
12
|
+
if (!visit) {
|
|
13
|
+
return refuse("not-found", `No ${p.cfg.vocabulary.visit} "${p.visitId}" on this account.`);
|
|
14
|
+
}
|
|
15
|
+
const sets = [];
|
|
16
|
+
const params = {
|
|
17
|
+
accountId: p.accountId,
|
|
18
|
+
visitId: p.visitId,
|
|
19
|
+
};
|
|
20
|
+
if (p.note !== undefined) {
|
|
21
|
+
sets.push("v.notes = coalesce(v.notes, []) + $note");
|
|
22
|
+
params.note = p.note;
|
|
23
|
+
}
|
|
24
|
+
if (p.mediaRef !== undefined) {
|
|
25
|
+
sets.push("v.media = coalesce(v.media, []) + $mediaRef");
|
|
26
|
+
params.mediaRef = p.mediaRef;
|
|
27
|
+
}
|
|
28
|
+
if (p.partId !== undefined) {
|
|
29
|
+
sets.push("v.parts = coalesce(v.parts, []) + $partId");
|
|
30
|
+
params.partId = p.partId;
|
|
31
|
+
}
|
|
32
|
+
if (p.checklistItem !== undefined) {
|
|
33
|
+
// Not validated against the job type's template. A worker who ticks
|
|
34
|
+
// something the template does not list has still done it, and refusing the
|
|
35
|
+
// record would lose the only account of it.
|
|
36
|
+
sets.push("v.checklistDone = CASE WHEN $checklistItem IN coalesce(v.checklistDone, []) " +
|
|
37
|
+
"THEN v.checklistDone ELSE coalesce(v.checklistDone, []) + $checklistItem END");
|
|
38
|
+
params.checklistItem = p.checklistItem;
|
|
39
|
+
}
|
|
40
|
+
if (p.signature !== undefined) {
|
|
41
|
+
sets.push("v.signatures = coalesce(v.signatures, []) + $signature");
|
|
42
|
+
params.signature = p.signature;
|
|
43
|
+
}
|
|
44
|
+
// Three separate SET clauses, never one object assignment. Each fires only
|
|
45
|
+
// when this call supplied that value, so neither arrival can clear the other.
|
|
46
|
+
if (p.arrivedPressedAt !== undefined) {
|
|
47
|
+
sets.push("v.arrivedPressedAt = $arrivedPressedAt");
|
|
48
|
+
params.arrivedPressedAt = p.arrivedPressedAt;
|
|
49
|
+
}
|
|
50
|
+
if (p.arrivedObservedAt !== undefined) {
|
|
51
|
+
sets.push("v.arrivedObservedAt = $arrivedObservedAt");
|
|
52
|
+
params.arrivedObservedAt = p.arrivedObservedAt;
|
|
53
|
+
}
|
|
54
|
+
if (p.arrivedObservedDistanceM !== undefined) {
|
|
55
|
+
sets.push("v.arrivedObservedDistanceM = $arrivedObservedDistanceM");
|
|
56
|
+
params.arrivedObservedDistanceM = p.arrivedObservedDistanceM;
|
|
57
|
+
}
|
|
58
|
+
if (sets.length === 0) {
|
|
59
|
+
return refuse("nothing-to-record", `Nothing to record. Supply at least one of: note, mediaRef, partId, checklistItem, signature, arrivedPressedAt, arrivedObservedAt.`);
|
|
60
|
+
}
|
|
61
|
+
await p.session.run(`MATCH (v:Visit {accountId: $accountId, visitId: $visitId}) SET ${sets.join(", ")}`, params);
|
|
62
|
+
const state = await (0, index_js_1.readVisitRecordState)(p.session, p.accountId, p.visitId);
|
|
63
|
+
p.emit(`[dispatch] op=visit-record visitId=${p.visitId} notes=${state.notes} ` +
|
|
64
|
+
`media=${state.media} parts=${state.parts} ` +
|
|
65
|
+
`checklist=${state.checklistDone}/${state.checklistTotal} ` +
|
|
66
|
+
`signatures=${state.signatures}`);
|
|
67
|
+
if (p.arrivedObservedAt !== undefined) {
|
|
68
|
+
// The press this observation is being compared against is whichever one the
|
|
69
|
+
// visit already carried, or the one this same call supplied.
|
|
70
|
+
const pressedAt = p.arrivedPressedAt ?? visit.arrivedPressedAt;
|
|
71
|
+
const deltaS = pressedAt === null || pressedAt === undefined
|
|
72
|
+
? null
|
|
73
|
+
: Math.round((Date.parse(p.arrivedObservedAt) - Date.parse(pressedAt)) / 1000);
|
|
74
|
+
p.emit(`[dispatch] op=arrival-observed visitId=${p.visitId} ` +
|
|
75
|
+
`distanceM=${p.arrivedObservedDistanceM ?? "none"} ` +
|
|
76
|
+
`observedAt=${p.arrivedObservedAt} pressedAt=${pressedAt ?? "none"} ` +
|
|
77
|
+
`deltaS=${deltaS ?? "none"}`);
|
|
78
|
+
}
|
|
79
|
+
const after = await (0, index_js_1.readVisit)(p.session, p.accountId, p.visitId);
|
|
80
|
+
return {
|
|
81
|
+
ok: true,
|
|
82
|
+
value: {
|
|
83
|
+
visitId: p.visitId,
|
|
84
|
+
jobId: visit.jobId,
|
|
85
|
+
recorded: state,
|
|
86
|
+
arrivedPressedAt: after?.arrivedPressedAt ?? null,
|
|
87
|
+
arrivedObservedAt: after?.arrivedObservedAt ?? null,
|
|
88
|
+
arrivedObservedDistanceM: after?.arrivedObservedDistanceM ?? null,
|
|
89
|
+
vocabulary: p.cfg.vocabulary,
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
async function visitStatusSet(p) {
|
|
94
|
+
const visit = await (0, index_js_1.readVisit)(p.session, p.accountId, p.visitId);
|
|
95
|
+
if (!visit) {
|
|
96
|
+
return refuse("not-found", `No ${p.cfg.vocabulary.visit} "${p.visitId}" on this account.`);
|
|
97
|
+
}
|
|
98
|
+
const declared = p.cfg.statuses.visit.some((s) => s.name === p.to);
|
|
99
|
+
if (!declared) {
|
|
100
|
+
p.emit((0, lifecycle_js_1.formatTransitionRefused)({
|
|
101
|
+
jobId: visit.jobId ?? "none",
|
|
102
|
+
visitId: p.visitId,
|
|
103
|
+
from: visit.status,
|
|
104
|
+
to: p.to,
|
|
105
|
+
reason: "not-in-config",
|
|
106
|
+
}));
|
|
107
|
+
return refuse("not-in-config", `"${p.to}" is not a ${p.cfg.vocabulary.visit} status on this account. Declared: ${p.cfg.statuses.visit.map((s) => s.name).join(", ")}.`);
|
|
108
|
+
}
|
|
109
|
+
const check = (0, lifecycle_js_1.checkTransition)("visit", visit.status, p.to, p.cfg);
|
|
110
|
+
if (!check.legal) {
|
|
111
|
+
p.emit((0, lifecycle_js_1.formatTransitionRefused)({
|
|
112
|
+
jobId: visit.jobId ?? "none",
|
|
113
|
+
visitId: p.visitId,
|
|
114
|
+
from: visit.status,
|
|
115
|
+
to: p.to,
|
|
116
|
+
reason: check.reason,
|
|
117
|
+
}));
|
|
118
|
+
const legalNext = p.cfg.statuses.visitTransitions
|
|
119
|
+
.filter(([from]) => from === visit.status)
|
|
120
|
+
.map(([, to]) => to);
|
|
121
|
+
return refuse(check.reason, `This account allows no move from "${visit.status}" to "${p.to}". From "${visit.status}" it allows: ${legalNext.join(", ") || "nothing"}.`);
|
|
122
|
+
}
|
|
123
|
+
const state = await (0, index_js_1.readVisitRecordState)(p.session, p.accountId, p.visitId);
|
|
124
|
+
const missing = (0, lifecycle_js_1.firstMissingRequiredField)(p.to, p.cfg, state);
|
|
125
|
+
if (missing) {
|
|
126
|
+
p.emit((0, lifecycle_js_1.formatTransitionRefused)({
|
|
127
|
+
jobId: visit.jobId ?? "none",
|
|
128
|
+
visitId: p.visitId,
|
|
129
|
+
from: visit.status,
|
|
130
|
+
to: p.to,
|
|
131
|
+
reason: `missing-required-field:${missing}`,
|
|
132
|
+
}));
|
|
133
|
+
return refuse(`missing-required-field:${missing}`, `This account requires ${missing} on a ${p.cfg.vocabulary.visit} before it reaches "${p.to}". Record it with dispatch-visit-record first.`);
|
|
134
|
+
}
|
|
135
|
+
const at = new Date(p.now()).toISOString();
|
|
136
|
+
const terminal = (0, lifecycle_js_1.isTerminal)("visit", p.to, p.cfg);
|
|
137
|
+
// `closedAt` only. `endDate` is the PLANNED end, written at allocation from
|
|
138
|
+
// the job type's duration, and it is the closest thing this ontology has to
|
|
139
|
+
// when the worker left. Overwriting it with the close instant would destroy
|
|
140
|
+
// the plan and make the two identical, so every lag computed from it would
|
|
141
|
+
// be zero — which is exactly the number this task exists to stop reporting.
|
|
142
|
+
await p.session.run(`MATCH (v:Visit {accountId: $accountId, visitId: $visitId})
|
|
143
|
+
SET v.status = $status` + (terminal ? `, v.closedAt = $at` : ``), { accountId: p.accountId, visitId: p.visitId, status: p.to, at });
|
|
144
|
+
p.emit(`[dispatch] op=visit-status jobId=${visit.jobId ?? "none"} visitId=${p.visitId} ` +
|
|
145
|
+
`from=${visit.status} to=${p.to} by=${p.by} at=${at} source=${p.source}`);
|
|
146
|
+
let jobClosed = null;
|
|
147
|
+
if (terminal && visit.jobId) {
|
|
148
|
+
const siblings = await (0, index_js_1.readVisitsForJob)(p.session, p.accountId, visit.jobId);
|
|
149
|
+
const allTerminal = siblings.every((v) => v.visitId === p.visitId || (0, lifecycle_js_1.isTerminal)("visit", v.status, p.cfg));
|
|
150
|
+
if (allTerminal) {
|
|
151
|
+
const terminalJobStatus = p.cfg.statuses.job.find((s) => s.terminal)?.name;
|
|
152
|
+
if (terminalJobStatus) {
|
|
153
|
+
await p.session.run(`MATCH (j:Job {accountId: $accountId, jobId: $jobId}) SET j.status = $status, j.closedAt = $at`, {
|
|
154
|
+
accountId: p.accountId,
|
|
155
|
+
jobId: visit.jobId,
|
|
156
|
+
status: terminalJobStatus,
|
|
157
|
+
at,
|
|
158
|
+
});
|
|
159
|
+
jobClosed = terminalJobStatus;
|
|
160
|
+
}
|
|
161
|
+
// Measured from when the worker was due to LEAVE, not from when they
|
|
162
|
+
// arrived. Nothing in this ontology records leaving site, so the planned
|
|
163
|
+
// `endDate` is the proxy — and it is the right one, because measuring
|
|
164
|
+
// from arrival adds the whole job duration to every lag and would report
|
|
165
|
+
// a two-hour job closed on the doorstep as two hours late.
|
|
166
|
+
//
|
|
167
|
+
// The ladder falls back to an arrival and then to the start only when a
|
|
168
|
+
// visit carries no planned end, which allocation always writes. Falling
|
|
169
|
+
// back to `at` would make every lag zero and hide what this counts.
|
|
170
|
+
const dueToLeaveAt = visit.endDate ??
|
|
171
|
+
visit.arrivedPressedAt ??
|
|
172
|
+
visit.arrivedObservedAt ??
|
|
173
|
+
visit.startDate;
|
|
174
|
+
const recordLagS = dueToLeaveAt === null
|
|
175
|
+
? 0
|
|
176
|
+
: Math.max(0, Math.round((Date.parse(at) - Date.parse(dueToLeaveAt)) / 1000));
|
|
177
|
+
p.emit(`[dispatch] op=job-close jobId=${visit.jobId} visits=${siblings.length} ` +
|
|
178
|
+
`terminal=${p.to} recordLagS=${recordLagS}`);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
return {
|
|
182
|
+
ok: true,
|
|
183
|
+
value: {
|
|
184
|
+
visitId: p.visitId,
|
|
185
|
+
jobId: visit.jobId,
|
|
186
|
+
from: visit.status,
|
|
187
|
+
to: p.to,
|
|
188
|
+
at,
|
|
189
|
+
source: p.source,
|
|
190
|
+
jobClosed,
|
|
191
|
+
vocabulary: p.cfg.vocabulary,
|
|
192
|
+
},
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
//# sourceMappingURL=write.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write.js","sourceRoot":"","sources":["../src/write.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import {
|
|
3
|
+
checkTransition,
|
|
4
|
+
firstMissingRequiredField,
|
|
5
|
+
initialStatus,
|
|
6
|
+
isTerminal,
|
|
7
|
+
} from "../index.js";
|
|
8
|
+
import type { DispatchConfig } from "../../../dispatch-read/src/types.js";
|
|
9
|
+
|
|
10
|
+
const cfg = {
|
|
11
|
+
statuses: {
|
|
12
|
+
job: [{ name: "New", terminal: false }, { name: "Closed", terminal: true }],
|
|
13
|
+
visit: [{ name: "Allocated", terminal: false }, { name: "Complete", terminal: true }],
|
|
14
|
+
jobTransitions: [["New", "Closed"]],
|
|
15
|
+
visitTransitions: [["Allocated", "Complete"]],
|
|
16
|
+
},
|
|
17
|
+
records: { checklists: {}, requiredBeforeTerminal: { Complete: ["signature"] } },
|
|
18
|
+
vocabulary: { job: "job", visit: "visit", worker: "engineer" },
|
|
19
|
+
} as unknown as DispatchConfig;
|
|
20
|
+
|
|
21
|
+
const empty = {
|
|
22
|
+
notes: 0, media: 0, parts: 0, checklistDone: 0, checklistTotal: 0, signatures: 0,
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
describe("dispatch-write lifecycle", () => {
|
|
26
|
+
it("allows a transition the config declares", () => {
|
|
27
|
+
expect(checkTransition("visit", "Allocated", "Complete", cfg)).toEqual({ legal: true });
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
it("refuses one it does not, naming the reason", () => {
|
|
31
|
+
expect(checkTransition("visit", "Complete", "Allocated", cfg)).toEqual({
|
|
32
|
+
legal: false,
|
|
33
|
+
reason: "not-in-config",
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
it("reads terminality from the config, not from a status name", () => {
|
|
38
|
+
expect(isTerminal("visit", "Complete", cfg)).toBe(true);
|
|
39
|
+
expect(isTerminal("visit", "Allocated", cfg)).toBe(false);
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it("takes the initial status from the first declared, whatever it is called", () => {
|
|
43
|
+
expect(initialStatus("visit", cfg)).toBe("Allocated");
|
|
44
|
+
expect(initialStatus("job", cfg)).toBe("New");
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
it("names the first missing required field", () => {
|
|
48
|
+
expect(firstMissingRequiredField("Complete", cfg, empty)).toBe("signature");
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
it("returns null when the target requires nothing", () => {
|
|
52
|
+
expect(firstMissingRequiredField("Allocated", cfg, empty)).toBeNull();
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
it("treats a half-done checklist as missing, not as satisfied", () => {
|
|
56
|
+
const needsChecklist = {
|
|
57
|
+
...cfg,
|
|
58
|
+
records: { checklists: {}, requiredBeforeTerminal: { Complete: ["checklist"] } },
|
|
59
|
+
} as unknown as DispatchConfig;
|
|
60
|
+
expect(
|
|
61
|
+
firstMissingRequiredField("Complete", needsChecklist, { ...empty, checklistDone: 1, checklistTotal: 2 }),
|
|
62
|
+
).toBe("checklist");
|
|
63
|
+
expect(
|
|
64
|
+
firstMissingRequiredField("Complete", needsChecklist, { ...empty, checklistDone: 2, checklistTotal: 2 }),
|
|
65
|
+
).toBeNull();
|
|
66
|
+
});
|
|
67
|
+
});
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { describe, expect, it, vi } from "vitest";
|
|
2
|
+
import { visitRecord, visitStatusSet } from "../write.js";
|
|
3
|
+
import type { DispatchConfig } from "../../../dispatch-read/src/types.js";
|
|
4
|
+
|
|
5
|
+
const cfg = {
|
|
6
|
+
statuses: {
|
|
7
|
+
job: [{ name: "New", terminal: false }, { name: "Closed", terminal: true }],
|
|
8
|
+
visit: [{ name: "Allocated", terminal: false }, { name: "Complete", terminal: true }],
|
|
9
|
+
jobTransitions: [["New", "Closed"]],
|
|
10
|
+
visitTransitions: [["Allocated", "Complete"]],
|
|
11
|
+
},
|
|
12
|
+
records: { checklists: {}, requiredBeforeTerminal: { Complete: ["signature"] } },
|
|
13
|
+
vocabulary: { job: "job", visit: "visit", worker: "engineer" },
|
|
14
|
+
} as unknown as DispatchConfig;
|
|
15
|
+
|
|
16
|
+
const VISIT = {
|
|
17
|
+
visitId: "v1",
|
|
18
|
+
jobId: "j1",
|
|
19
|
+
status: "Allocated",
|
|
20
|
+
startDate: null,
|
|
21
|
+
endDate: null,
|
|
22
|
+
purpose: null,
|
|
23
|
+
workerId: "w1",
|
|
24
|
+
arrivedPressedAt: null,
|
|
25
|
+
arrivedObservedAt: null,
|
|
26
|
+
arrivedObservedDistanceM: null,
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const STATE = {
|
|
30
|
+
notes: 0, media: 0, parts: 0, checklistDone: 0, checklistTotal: 0, signatures: 0,
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* A fake session whose `run` answers per query shape, so these tests exercise
|
|
35
|
+
* the real control flow without opening a socket. Reads are matched on the
|
|
36
|
+
* clause the production query actually uses.
|
|
37
|
+
*/
|
|
38
|
+
function fakeSession(over: { visit?: unknown | null; state?: unknown; siblings?: unknown[] } = {}) {
|
|
39
|
+
const visit = over.visit === undefined ? VISIT : over.visit;
|
|
40
|
+
const state = over.state ?? STATE;
|
|
41
|
+
const writes: Array<{ query: string; params: unknown }> = [];
|
|
42
|
+
const session = {
|
|
43
|
+
run: vi.fn(async (query: string, params: unknown) => {
|
|
44
|
+
const row = (obj: Record<string, unknown>) => ({
|
|
45
|
+
records: [{ get: (k: string) => obj[k] }],
|
|
46
|
+
});
|
|
47
|
+
if (/RETURN[\s\S]*checklistDone/i.test(query)) return row(state as Record<string, unknown>);
|
|
48
|
+
if (/MATCH \(v:Visit[\s\S]*RETURN/i.test(query)) {
|
|
49
|
+
return visit === null ? { records: [] } : row(visit as Record<string, unknown>);
|
|
50
|
+
}
|
|
51
|
+
if (/HAS_VISIT/i.test(query)) {
|
|
52
|
+
return { records: (over.siblings ?? []).map((s) => ({ get: (k: string) => (s as Record<string, unknown>)[k] })) };
|
|
53
|
+
}
|
|
54
|
+
writes.push({ query, params });
|
|
55
|
+
return { records: [] };
|
|
56
|
+
}),
|
|
57
|
+
};
|
|
58
|
+
return { session: session as never, writes };
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
describe("visitStatusSet returns a domain outcome", () => {
|
|
62
|
+
it("refuses a completion missing a required field and names it", async () => {
|
|
63
|
+
const { session } = fakeSession();
|
|
64
|
+
const emitted: string[] = [];
|
|
65
|
+
const out = await visitStatusSet({
|
|
66
|
+
session, accountId: "a1", cfg, emit: (l) => emitted.push(l),
|
|
67
|
+
now: () => 0, by: "w1", visitId: "v1", to: "Complete", source: "press",
|
|
68
|
+
});
|
|
69
|
+
expect(out.ok).toBe(false);
|
|
70
|
+
if (out.ok) throw new Error("expected a refusal");
|
|
71
|
+
expect(out.reason).toBe("missing-required-field:signature");
|
|
72
|
+
expect(out.message).toContain("signature");
|
|
73
|
+
expect(emitted.join("\n")).toContain("op=transition-refused");
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
it("refuses a transition the config does not declare, naming both ends", async () => {
|
|
77
|
+
const { session } = fakeSession({ visit: { ...VISIT, status: "Complete" } });
|
|
78
|
+
const emitted: string[] = [];
|
|
79
|
+
const out = await visitStatusSet({
|
|
80
|
+
session, accountId: "a1", cfg, emit: (l) => emitted.push(l),
|
|
81
|
+
now: () => 0, by: "w1", visitId: "v1", to: "Allocated", source: "press",
|
|
82
|
+
});
|
|
83
|
+
expect(out.ok).toBe(false);
|
|
84
|
+
if (out.ok) throw new Error("expected a refusal");
|
|
85
|
+
expect(out.reason).toBe("not-in-config");
|
|
86
|
+
expect(emitted.join("\n")).toContain("from=Complete to=Allocated");
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
it("refuses a status the account never declared at all", async () => {
|
|
90
|
+
const { session } = fakeSession();
|
|
91
|
+
const out = await visitStatusSet({
|
|
92
|
+
session, accountId: "a1", cfg, emit: () => {},
|
|
93
|
+
now: () => 0, by: "w1", visitId: "v1", to: "Invoiced", source: "press",
|
|
94
|
+
});
|
|
95
|
+
expect(out.ok).toBe(false);
|
|
96
|
+
if (out.ok) throw new Error("expected a refusal");
|
|
97
|
+
expect(out.reason).toBe("not-in-config");
|
|
98
|
+
expect(out.message).toContain("Allocated, Complete");
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
it("refuses a visit that is not on the account", async () => {
|
|
102
|
+
const { session } = fakeSession({ visit: null });
|
|
103
|
+
const out = await visitStatusSet({
|
|
104
|
+
session, accountId: "a1", cfg, emit: () => {},
|
|
105
|
+
now: () => 0, by: "w1", visitId: "nope", to: "Complete", source: "press",
|
|
106
|
+
});
|
|
107
|
+
expect(out.ok).toBe(false);
|
|
108
|
+
if (out.ok) throw new Error("expected a refusal");
|
|
109
|
+
expect(out.reason).toBe("not-found");
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
it("succeeds and returns the domain value when the gate is satisfied", async () => {
|
|
113
|
+
const { session } = fakeSession({ state: { ...STATE, signatures: 1 } });
|
|
114
|
+
const out = await visitStatusSet({
|
|
115
|
+
session, accountId: "a1", cfg, emit: () => {},
|
|
116
|
+
now: () => 1_754_000_000_000, by: "w1", visitId: "v1", to: "Complete", source: "press",
|
|
117
|
+
});
|
|
118
|
+
expect(out.ok).toBe(true);
|
|
119
|
+
if (!out.ok) throw new Error(out.reason);
|
|
120
|
+
expect(out.value).toMatchObject({ visitId: "v1", from: "Allocated", to: "Complete", source: "press" });
|
|
121
|
+
// `at` comes from the injected clock, never from Date.now(), so this is
|
|
122
|
+
// exactly the epoch passed in above.
|
|
123
|
+
expect(out.value.at).toBe(new Date(1_754_000_000_000).toISOString());
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
describe("visitRecord returns a domain outcome", () => {
|
|
128
|
+
it("refuses a call that supplies nothing to record", async () => {
|
|
129
|
+
const { session } = fakeSession();
|
|
130
|
+
const out = await visitRecord({ session, accountId: "a1", cfg, emit: () => {}, visitId: "v1" });
|
|
131
|
+
expect(out.ok).toBe(false);
|
|
132
|
+
if (out.ok) throw new Error("expected a refusal");
|
|
133
|
+
expect(out.reason).toBe("nothing-to-record");
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
it("writes each supplied field with its own SET clause", async () => {
|
|
137
|
+
const { session, writes } = fakeSession();
|
|
138
|
+
const out = await visitRecord({
|
|
139
|
+
session, accountId: "a1", cfg, emit: () => {},
|
|
140
|
+
visitId: "v1", note: "Valve replaced", signature: "sig-data",
|
|
141
|
+
});
|
|
142
|
+
expect(out.ok).toBe(true);
|
|
143
|
+
// Both clauses in one statement, each guarded by its own parameter, is what
|
|
144
|
+
// stops one recorded field blanking another.
|
|
145
|
+
expect(writes[0].query).toContain("v.notes = coalesce(v.notes, []) + $note");
|
|
146
|
+
expect(writes[0].query).toContain("v.signatures = coalesce(v.signatures, []) + $signature");
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
it("never writes an arrival the call did not supply", async () => {
|
|
150
|
+
const { session, writes } = fakeSession();
|
|
151
|
+
await visitRecord({ session, accountId: "a1", cfg, emit: () => {}, visitId: "v1", arrivedObservedAt: "2026-08-07T09:00:00.000Z" });
|
|
152
|
+
// A pressed arrival is what somebody said and an observed one is what was
|
|
153
|
+
// measured; a write that set both would destroy the disagreement between
|
|
154
|
+
// them, which is the finding worth having.
|
|
155
|
+
expect(writes[0].query).toContain("v.arrivedObservedAt = $arrivedObservedAt");
|
|
156
|
+
expect(writes[0].query).not.toContain("v.arrivedPressedAt");
|
|
157
|
+
});
|
|
158
|
+
});
|