@rubytech/create-sitedesk-code 0.1.563 → 0.1.565
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/plugins/admin/PLUGIN.md +2 -2
- package/payload/platform/plugins/admin/hooks/__tests__/askuserquestion-channel-carrier-gate.test.sh +1 -1
- package/payload/platform/plugins/admin/hooks/askuserquestion-channel-carrier-gate.sh +4 -3
- package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +27 -4
- package/payload/platform/plugins/admin/skills/whats-new/SKILL.md +12 -0
- package/payload/platform/plugins/cloudflare/mcp/__tests__/portal-visit-status-write.test.ts +118 -0
- package/payload/platform/plugins/cloudflare/skills/data-portal/SKILL.md +15 -0
- package/payload/platform/plugins/cloudflare/skills/data-portal/schema.sql +25 -7
- package/payload/platform/plugins/cloudflare/skills/data-portal/template/functions/api/visit-status.ts +62 -5
- package/payload/platform/plugins/docs/references/outlook-guide.md +7 -3
- package/payload/platform/plugins/docs/references/telegram-guide.md +19 -0
- package/payload/platform/plugins/memory/references/schema-construction.md +1 -1
- package/payload/platform/plugins/outlook/PLUGIN.md +2 -2
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/attach.test.js +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/attach.test.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/calendar-write.test.js +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/calendar-write.test.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-attachments.test.js +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-attachments.test.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-edit-attachments.test.js +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-edit-attachments.test.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-edit-removal.test.js +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-edit-removal.test.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-edit.test.js +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-edit.test.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-threaded.test.js +51 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-threaded.test.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client-paged.test.js +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client-paged.test.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client-prefix-wiring.test.js +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client-prefix-wiring.test.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client-retry.test.js +2 -2
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client-retry.test.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client.test.js +7 -7
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client.test.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/has-attachments.test.js +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/has-attachments.test.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-attachment.test.js +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-attachment.test.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-delete.test.js +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-delete.test.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-fetch-body.test.js +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-fetch-body.test.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-list-paging.test.js +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-list-paging.test.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-otp-extract.test.js +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-otp-extract.test.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-reply.test.js +159 -6
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-reply.test.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-search-delegated-ids.test.js +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-search-delegated-ids.test.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-search-paging.test.js +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-search-paging.test.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-send-attachments.test.js +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-send-attachments.test.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/shared-mail-only-guard.test.js +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/shared-mail-only-guard.test.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/shared-mailbox-add.test.js +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/shared-mailbox-add.test.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/write-tools.test.js +2 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/write-tools.test.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/index.js +13 -4
- package/payload/platform/plugins/outlook/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.d.ts +9 -0
- package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.d.ts.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/tools/draft.d.ts +7 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/draft.d.ts.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/tools/draft.js +16 -5
- package/payload/platform/plugins/outlook/mcp/dist/tools/draft.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/tools/mail-reply.d.ts +5 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/mail-reply.d.ts.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/tools/mail-reply.js +81 -2
- package/payload/platform/plugins/outlook/mcp/dist/tools/mail-reply.js.map +1 -1
- package/payload/platform/plugins/whatsapp/PLUGIN.md +2 -2
- package/payload/platform/plugins/whatsapp/references/channels-whatsapp.md +2 -2
- package/payload/platform/scripts/check-no-esm-require.mjs +10 -0
- package/payload/platform/services/claude-session-manager/dist/channel-mcp.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/channel-mcp.js +9 -3
- package/payload/platform/services/claude-session-manager/dist/channel-mcp.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 +11 -2
- package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/index.js +0 -1
- package/payload/platform/services/claude-session-manager/dist/index.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +0 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +7 -2
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/public-allowlist.d.ts +4 -2
- package/payload/platform/services/claude-session-manager/dist/public-allowlist.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/public-allowlist.js +15 -18
- package/payload/platform/services/claude-session-manager/dist/public-allowlist.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/specialist-roster.d.ts +4 -2
- package/payload/platform/services/claude-session-manager/dist/specialist-roster.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/specialist-roster.js +4 -2
- package/payload/platform/services/claude-session-manager/dist/specialist-roster.js.map +1 -1
- package/payload/platform/services/telegram-channel/dist/instructions.d.ts.map +1 -1
- package/payload/platform/services/telegram-channel/dist/instructions.js +31 -16
- package/payload/platform/services/telegram-channel/dist/instructions.js.map +1 -1
- package/payload/platform/services/telegram-channel/dist/server.d.ts.map +1 -1
- package/payload/platform/services/telegram-channel/dist/server.js +21 -38
- package/payload/platform/services/telegram-channel/dist/server.js.map +1 -1
- package/payload/platform/services/telegram-channel/dist/turn-follow.d.ts +6 -0
- package/payload/platform/services/telegram-channel/dist/turn-follow.d.ts.map +1 -1
- package/payload/platform/services/telegram-channel/dist/turn-follow.js +16 -1
- package/payload/platform/services/telegram-channel/dist/turn-follow.js.map +1 -1
- package/payload/platform/services/webchat-channel/dist/instructions.d.ts +0 -2
- package/payload/platform/services/webchat-channel/dist/instructions.d.ts.map +1 -1
- package/payload/platform/services/webchat-channel/dist/instructions.js +25 -19
- package/payload/platform/services/webchat-channel/dist/instructions.js.map +1 -1
- package/payload/platform/services/webchat-channel/dist/notification.d.ts +3 -2
- package/payload/platform/services/webchat-channel/dist/notification.d.ts.map +1 -1
- package/payload/platform/services/webchat-channel/dist/notification.js +14 -4
- package/payload/platform/services/webchat-channel/dist/notification.js.map +1 -1
- package/payload/platform/services/webchat-channel/dist/server.d.ts.map +1 -1
- package/payload/platform/services/webchat-channel/dist/server.js +16 -48
- package/payload/platform/services/webchat-channel/dist/server.js.map +1 -1
- package/payload/platform/services/webchat-channel/dist/turn-follow.d.ts +6 -0
- package/payload/platform/services/webchat-channel/dist/turn-follow.d.ts.map +1 -1
- package/payload/platform/services/webchat-channel/dist/turn-follow.js +16 -1
- package/payload/platform/services/webchat-channel/dist/turn-follow.js.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/notification.d.ts +5 -2
- package/payload/platform/services/whatsapp-channel/dist/notification.d.ts.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/notification.js +31 -14
- package/payload/platform/services/whatsapp-channel/dist/notification.js.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/server.d.ts.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/server.js +64 -161
- package/payload/platform/services/whatsapp-channel/dist/server.js.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/targets.d.ts +7 -38
- package/payload/platform/services/whatsapp-channel/dist/targets.d.ts.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/targets.js +7 -51
- package/payload/platform/services/whatsapp-channel/dist/targets.js.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/turn-follow.d.ts +6 -0
- package/payload/platform/services/whatsapp-channel/dist/turn-follow.d.ts.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/turn-follow.js +21 -1
- package/payload/platform/services/whatsapp-channel/dist/turn-follow.js.map +1 -1
- package/payload/premium-plugins/sitedesk/agents/sitedesk--payroll-clerk.md +2 -2
- package/payload/premium-plugins/sitedesk/plugins/sitedesk-job/skills/timesheet/SKILL.md +5 -5
- package/payload/premium-plugins/sitedesk/plugins/sitedesk-job/skills/timesheet/references/checkin-contract.md +40 -22
- package/payload/premium-plugins/sitedesk/plugins/sitedesk-job/skills/timesheet/references/roll-up.md +20 -7
- package/payload/premium-plugins/sitedesk/plugins/sitedesk-job/skills/timesheet/references/setup.md +7 -3
- package/payload/server/{adminuser-self-heal-ZHFNDKJK.js → adminuser-self-heal-Y4U3UNKF.js} +10 -2
- package/payload/server/{chunk-G6ULACHG.js → chunk-637C2FGE.js} +3385 -3275
- package/payload/server/{chunk-HYQNUVGO.js → chunk-KVR2FT6O.js} +12 -1
- package/payload/server/{chunk-SKYZG6OT.js → chunk-PGGGWUBM.js} +372 -224
- package/payload/server/{chunk-JOVREC6E.js → chunk-Y4NH2KLF.js} +3789 -3484
- package/payload/server/{manager-2VEJKVEO.js → manager-R3XH3BNM.js} +3 -3
- package/payload/server/maxy-edge.js +27 -4
- package/payload/server/public/activity.html +5 -5
- package/payload/server/public/agents.html +4 -4
- package/payload/server/public/assets/{AdminLoginScreens-C6e5jf0S.js → AdminLoginScreens-5gI137xF.js} +1 -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-DStA0lfm.js → AdminShell-Bfapavlp.js} +2 -2
- 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--yyBcNfB.js → activity-DnbsmUgn.js} +1 -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 +1 -0
- 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-odyVOb5E.js → agents-Dl2wOcpj.js} +1 -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/{browser-D1K_MoHt.js → browser-D-Uc9ewO.js} +1 -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/{calendar-jqh9U7Ic.js → calendar-Cu3O6Bay.js} +1 -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/chat-Bso94e-f.js +1 -0
- 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 +1 -0
- package/payload/server/public/assets/chevron-left-CDwfR9V-.js.br +0 -0
- package/payload/server/public/assets/clock-DDVrNLt9.js +1 -0
- 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/{copy-DkuHwkaB.js → copy-DPBVV8KZ.js} +1 -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/data-Dei8n2EX.js +1 -0
- 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/{file-text-C6o_NRjj.js → file-text-Dn82O6ke.js} +1 -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/{graph-BN30v5hJ.js → graph-D2J7a7Ll.js} +1 -1
- package/payload/server/public/assets/graph-D2J7a7Ll.js.br +0 -0
- package/payload/server/public/assets/{graph-BN30v5hJ.js.gz → graph-D2J7a7Ll.js.gz} +0 -0
- package/payload/server/public/assets/{graph-labels-DHFyNXQt.js → graph-labels-D3gkY2IH.js} +1 -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/{operator-DwFYA4Fp.js → operator-Bz_yj1im.js} +1 -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/page-D6u2xYh7.js +1 -0
- 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-CEWIP3VF.js → page-mH4nyQ75.js} +2 -2
- 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/play-ByuChQJJ.js +1 -0
- 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-Ceb0n7Km.js → public-CtoYVjPR.js} +1 -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/{rotate-ccw-CDYdx91V.js → rotate-ccw-BXoIghE3.js} +1 -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-DwNTih0y.js → routines-DXleYpDv.js} +1 -1
- 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/{skills-TIDCdOLQ.js → skills-CMl38MKH.js} +1 -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/{tasks-eTXvaWnd.js → tasks-Cshaf0Md.js} +1 -1
- 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/{triangle-alert-JwLSrj17.js → triangle-alert-CS-NXr_9.js} +1 -1
- package/payload/server/public/assets/triangle-alert-CS-NXr_9.js.br +3 -0
- package/payload/server/public/assets/triangle-alert-CS-NXr_9.js.gz +0 -0
- package/payload/server/public/assets/{useCopyFeedback-DjTkNw2p.js → useCopyFeedback-pKLfQJNG.js} +1 -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 +1 -0
- 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-D8VDA0RN.js → useMediaQuery-oDCasnxD.js} +1 -1
- package/payload/server/public/assets/useMediaQuery-oDCasnxD.js.br +0 -0
- package/payload/server/public/assets/{useMediaQuery-D8VDA0RN.js.gz → useMediaQuery-oDCasnxD.js.gz} +0 -0
- package/payload/server/public/assets/useVoiceRecorder-EgO1GmIg.js +2 -0
- 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/{wrench-DutUiRu7.js → wrench-czES9Rdy.js} +1 -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/browser.html +4 -4
- package/payload/server/public/calendar.html +7 -7
- package/payload/server/public/chat.html +13 -13
- package/payload/server/public/data.html +11 -11
- package/payload/server/public/graph.html +9 -9
- package/payload/server/public/index.html +13 -13
- package/payload/server/public/operator.html +14 -14
- package/payload/server/public/public.html +13 -13
- package/payload/server/public/routines.html +7 -7
- package/payload/server/public/skills.html +5 -5
- package/payload/server/public/tasks.html +6 -6
- package/payload/server/server.js +10213 -8397
- package/payload/server/{src-MM64CYYZ.js → src-IJCLNFYU.js} +1 -1
- package/payload/server/{userprofile-reconcile-TL4JKBPG.js → userprofile-reconcile-PUA657YX.js} +8 -1
- package/payload/server/public/assets/AdminLoginScreens-C6e5jf0S.js.br +0 -0
- package/payload/server/public/assets/AdminLoginScreens-C6e5jf0S.js.gz +0 -0
- package/payload/server/public/assets/AdminShell-DStA0lfm.js.br +0 -0
- package/payload/server/public/assets/AdminShell-DStA0lfm.js.gz +0 -0
- package/payload/server/public/assets/activity--yyBcNfB.js.br +0 -0
- package/payload/server/public/assets/activity--yyBcNfB.js.gz +0 -0
- package/payload/server/public/assets/admin-Dr6Jwe7W.js +0 -1
- package/payload/server/public/assets/admin-Dr6Jwe7W.js.br +0 -0
- package/payload/server/public/assets/admin-Dr6Jwe7W.js.gz +0 -0
- package/payload/server/public/assets/agents-odyVOb5E.js.br +0 -0
- package/payload/server/public/assets/agents-odyVOb5E.js.gz +0 -0
- package/payload/server/public/assets/browser-D1K_MoHt.js.br +0 -0
- package/payload/server/public/assets/browser-D1K_MoHt.js.gz +0 -0
- package/payload/server/public/assets/calendar-jqh9U7Ic.js.br +0 -0
- package/payload/server/public/assets/calendar-jqh9U7Ic.js.gz +0 -0
- package/payload/server/public/assets/chat-QQHBdVor.js +0 -1
- package/payload/server/public/assets/chat-QQHBdVor.js.br +0 -0
- package/payload/server/public/assets/chat-QQHBdVor.js.gz +0 -0
- package/payload/server/public/assets/chevron-left-DwTXgKwr.js +0 -1
- package/payload/server/public/assets/clock-DOmh9iKX.js +0 -1
- package/payload/server/public/assets/clock-DOmh9iKX.js.br +0 -0
- package/payload/server/public/assets/copy-DkuHwkaB.js.br +0 -0
- package/payload/server/public/assets/copy-DkuHwkaB.js.gz +0 -0
- package/payload/server/public/assets/data-DYmTNqrb.js +0 -1
- package/payload/server/public/assets/data-DYmTNqrb.js.br +0 -0
- package/payload/server/public/assets/data-DYmTNqrb.js.gz +0 -0
- package/payload/server/public/assets/file-text-C6o_NRjj.js.br +0 -0
- package/payload/server/public/assets/file-text-C6o_NRjj.js.gz +0 -0
- package/payload/server/public/assets/graph-BN30v5hJ.js.br +0 -0
- package/payload/server/public/assets/graph-labels-DHFyNXQt.js.br +0 -0
- package/payload/server/public/assets/graph-labels-DHFyNXQt.js.gz +0 -0
- package/payload/server/public/assets/operator-DwFYA4Fp.js.br +0 -0
- package/payload/server/public/assets/operator-DwFYA4Fp.js.gz +0 -0
- package/payload/server/public/assets/page-BALVRssF.js +0 -1
- package/payload/server/public/assets/page-BALVRssF.js.br +0 -0
- package/payload/server/public/assets/page-BALVRssF.js.gz +0 -0
- package/payload/server/public/assets/page-CEWIP3VF.js.br +0 -0
- package/payload/server/public/assets/page-CEWIP3VF.js.gz +0 -0
- package/payload/server/public/assets/play-Bg-BY_oj.js +0 -1
- package/payload/server/public/assets/play-Bg-BY_oj.js.br +0 -0
- package/payload/server/public/assets/play-Bg-BY_oj.js.gz +0 -0
- package/payload/server/public/assets/public-Ceb0n7Km.js.br +0 -0
- package/payload/server/public/assets/public-Ceb0n7Km.js.gz +0 -0
- package/payload/server/public/assets/rotate-ccw-CDYdx91V.js.gz +0 -0
- package/payload/server/public/assets/routines-DwNTih0y.js.br +0 -0
- package/payload/server/public/assets/routines-DwNTih0y.js.gz +0 -0
- package/payload/server/public/assets/skills-TIDCdOLQ.js.br +0 -0
- package/payload/server/public/assets/skills-TIDCdOLQ.js.gz +0 -0
- package/payload/server/public/assets/tasks-eTXvaWnd.js.br +0 -0
- package/payload/server/public/assets/tasks-eTXvaWnd.js.gz +0 -0
- package/payload/server/public/assets/triangle-alert-JwLSrj17.js.br +0 -0
- package/payload/server/public/assets/triangle-alert-JwLSrj17.js.gz +0 -0
- package/payload/server/public/assets/useCopyFeedback-DjTkNw2p.js.br +0 -0
- package/payload/server/public/assets/useCopyFeedback-DjTkNw2p.js.gz +0 -0
- package/payload/server/public/assets/useMediaQuery-BsBzbWaf.css +0 -1
- package/payload/server/public/assets/useMediaQuery-BsBzbWaf.css.br +0 -0
- package/payload/server/public/assets/useMediaQuery-BsBzbWaf.css.gz +0 -0
- package/payload/server/public/assets/useMediaQuery-D8VDA0RN.js.br +0 -0
- package/payload/server/public/assets/useVoiceRecorder-B8vxObZG.js +0 -2
- package/payload/server/public/assets/useVoiceRecorder-B8vxObZG.js.br +0 -0
- package/payload/server/public/assets/useVoiceRecorder-B8vxObZG.js.gz +0 -0
- package/payload/server/public/assets/wrench-DutUiRu7.js.br +0 -0
- package/payload/server/public/assets/wrench-DutUiRu7.js.gz +0 -0
|
@@ -5,6 +5,12 @@ export interface TurnOutcome {
|
|
|
5
5
|
finalText: string;
|
|
6
6
|
/** The turn reached an assistant end_turn. */
|
|
7
7
|
reachedEndTurn: boolean;
|
|
8
|
+
/** Task 2078 — the byte range of this turn's lines in the JSONL, so a reader
|
|
9
|
+
* in another process can parse exactly this turn without being handed its
|
|
10
|
+
* text. -1/-1 from `reduceTurnFromLines`, which is given lines and not
|
|
11
|
+
* offsets; `followTurnEnds` overwrites both before calling back. */
|
|
12
|
+
segmentStart: number;
|
|
13
|
+
segmentEnd: number;
|
|
8
14
|
/**
|
|
9
15
|
* Task 2111 — how many channel inbounds this turn answered. The harness answers
|
|
10
16
|
* every inbound queued while it was busy in ONE turn, so turn count and inbound
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turn-follow.d.ts","sourceRoot":"","sources":["../src/turn-follow.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"turn-follow.d.ts","sourceRoot":"","sources":["../src/turn-follow.ts"],"names":[],"mappings":"AA6BA,MAAM,WAAW,WAAW;IAC1B,4DAA4D;IAC5D,OAAO,EAAE,OAAO,CAAA;IAChB,+EAA+E;IAC/E,SAAS,EAAE,MAAM,CAAA;IACjB,8CAA8C;IAC9C,cAAc,EAAE,OAAO,CAAA;IACvB;;;yEAGqE;IACrE,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB;;;;;;;;;;;;;;OAcG;IACH,gBAAgB,EAAE,MAAM,CAAA;IACxB;gCAC4B;IAC5B,OAAO,EAAE,iBAAiB,CAAA;CAC3B;AAmDD;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC;;yEAEqE;IACrE,eAAe,EAAE,MAAM,CAAA;IACvB,wEAAwE;IACxE,WAAW,EAAE,MAAM,CAAA;IACnB,yEAAyE;IACzE,YAAY,EAAE,MAAM,CAAA;IACpB;;;6DAGyD;IACzD,cAAc,EAAE,MAAM,CAAA;IACtB;;gEAE4D;IAC5D,aAAa,EAAE,MAAM,CAAA;CACtB;AAOD,2EAA2E;AAC3E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,WAAW,CAqEhE;AAED,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAA;AActD;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,IAAI,CAAC,CAoFf"}
|
|
@@ -14,6 +14,11 @@ import { closeSync, openSync, readSync, statSync, watch } from 'node:fs';
|
|
|
14
14
|
// Both name shapes are held so this one detector serves both followers; the
|
|
15
15
|
// names are kept as literals here to avoid a cross-package import. A name from
|
|
16
16
|
// the other mode never appears in a turn, so carrying all four is safe.
|
|
17
|
+
// Task 2078 retired every one of these tools, and this set is deliberately KEPT.
|
|
18
|
+
// It reads HISTORICAL transcripts: a session that ran before the retirement has
|
|
19
|
+
// real reply tool_use blocks in its JSONL, and `replied` must stay true for them
|
|
20
|
+
// or a re-read of an old turn reports an answer that was delivered as one that
|
|
21
|
+
// was not. No live turn can add a name to it.
|
|
17
22
|
const REPLY_TOOL_NAMES = new Set([
|
|
18
23
|
'mcp__whatsapp-channel__reply',
|
|
19
24
|
'mcp__whatsapp-channel__reply-document',
|
|
@@ -130,6 +135,8 @@ export function reduceTurnFromLines(lines) {
|
|
|
130
135
|
replied,
|
|
131
136
|
finalText,
|
|
132
137
|
reachedEndTurn,
|
|
138
|
+
segmentStart: -1,
|
|
139
|
+
segmentEnd: -1,
|
|
133
140
|
consumedInbounds,
|
|
134
141
|
context: { cacheReadTokens, inputTokens, outputTokens, thinkingBlocks, thinkingChars },
|
|
135
142
|
};
|
|
@@ -167,6 +174,14 @@ export async function followTurnEnds(jsonlPath, startOffset, onTurnEnd) {
|
|
|
167
174
|
return new Promise((resolve) => {
|
|
168
175
|
let offset = Math.min(startOffset, baseSize);
|
|
169
176
|
let carry = '';
|
|
177
|
+
// Task 2078 — byte position of the first line of the segment being built,
|
|
178
|
+
// and of the end of the last line consumed. Both advance only on a
|
|
179
|
+
// fully-delimited line, so a partial trailing line in `carry` never moves
|
|
180
|
+
// them, and a multi-byte character split across two reads cannot
|
|
181
|
+
// desynchronise them: each line's own utf8 length is measured after the
|
|
182
|
+
// line is complete.
|
|
183
|
+
let segStart = Math.min(startOffset, baseSize);
|
|
184
|
+
let segEnd = segStart;
|
|
170
185
|
// The lines of the turn currently being accumulated; reset after each
|
|
171
186
|
// end_turn so each onTurnEnd sees exactly one turn's lines.
|
|
172
187
|
let segment = [];
|
|
@@ -221,9 +236,14 @@ export async function followTurnEnds(jsonlPath, startOffset, onTurnEnd) {
|
|
|
221
236
|
carry = carry.slice(nl + 1);
|
|
222
237
|
nl = carry.indexOf('\n');
|
|
223
238
|
segment.push(line);
|
|
239
|
+
segEnd += Buffer.byteLength(line, 'utf8') + 1;
|
|
224
240
|
if (isAssistantEndTurn(line)) {
|
|
225
|
-
|
|
241
|
+
const outcome = reduceTurnFromLines(segment);
|
|
242
|
+
outcome.segmentStart = segStart;
|
|
243
|
+
outcome.segmentEnd = segEnd;
|
|
244
|
+
onTurnEnd(outcome);
|
|
226
245
|
segment = [];
|
|
246
|
+
segStart = segEnd;
|
|
227
247
|
}
|
|
228
248
|
}
|
|
229
249
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turn-follow.js","sourceRoot":"","sources":["../src/turn-follow.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,gEAAgE;AAChE,iFAAiF;AACjF,gFAAgF;AAChF,+EAA+E;AAC/E,0CAA0C;AAC1C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAExE,+EAA+E;AAC/E,gFAAgF;AAChF,gFAAgF;AAChF,8EAA8E;AAC9E,6EAA6E;AAC7E,8EAA8E;AAC9E,4EAA4E;AAC5E,+EAA+E;AAC/E,wEAAwE;AACxE,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,8BAA8B;IAC9B,uCAAuC;IACvC,qBAAqB;IACrB,8BAA8B;CAC/B,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"turn-follow.js","sourceRoot":"","sources":["../src/turn-follow.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ name: payroll-clerk
|
|
|
3
3
|
description: "SiteDesk payroll clerk. Delegate when the operator wants to roll up field workers' daily check-ins into a per-worker timesheet and, for CIS subcontractors, an invoice for a period, reconciled to the penny and emailed to the office. Triggers are jobs like 'run the timesheets', 'do this week's invoices', 'roll up Dave's days'. Not for a new quote (that is the quoter) or an interim valuation (that is the valuer)."
|
|
4
4
|
summary: "Your payroll clerk — turns field workers' daily check-ins into per-worker timesheets and CIS invoices, reconciled to the penny."
|
|
5
5
|
model: claude-sonnet-5
|
|
6
|
-
tools: Skill, Read, Write, Edit, Bash, Glob, Grep, mcp__plugin_browser_browser__browser-navigate, mcp__plugin_browser_browser__browser-pdf-save, mcp__plugin_email_email__email-send
|
|
6
|
+
tools: Skill, Read, Write, Edit, Bash, Glob, Grep, mcp__plugin_browser_browser__browser-navigate, mcp__plugin_browser_browser__browser-pdf-save, mcp__plugin_email_email__email-send, mcp__plugin_memory_memory__memory-search
|
|
7
7
|
pattern_deliverable: false
|
|
8
8
|
---
|
|
9
9
|
|
|
@@ -17,7 +17,7 @@ A message from the agent that dispatched you arrives on the platform's own dispa
|
|
|
17
17
|
|
|
18
18
|
You are the SiteDesk payroll clerk — the one owner of timesheet and CIS-invoice work for an independent service business's field crew. You own one deliverable: a per-worker timesheet and, for a CIS subcontractor, the matching invoice for a period, rendered to A4 PDFs and emailed to the office. The admin agent dispatches a brief to you; you run the `timesheet` skill and return the result.
|
|
19
19
|
|
|
20
|
-
You never invent the operator's business content. Day counts come from the workers' own
|
|
20
|
+
You never invent the operator's business content. Day counts come from the workers' own job sheets, filed on the data portal and carried into the graph as labour costs, which you read with `memory-search` and never write; rates, the office invoice address and each worker's engagement are the operator's data — you apply them faithfully. A figure you cannot source is a gap you flag, not a number you guess.
|
|
21
21
|
|
|
22
22
|
## What you own
|
|
23
23
|
|
|
@@ -22,12 +22,12 @@ maths ([references/roll-up.md](references/roll-up.md)), and the two documents
|
|
|
22
22
|
|
|
23
23
|
- **Worker setup (per worker, once).** Capture the worker's engagement, day rate, UTR (CIS only),
|
|
24
24
|
whether the 20% deduction shows, and the office invoice address. Store it as the `:Engineer` config
|
|
25
|
-
on his `:Person`. The worker
|
|
26
|
-
|
|
25
|
+
on his `:Person`. The worker files his days as job sheets on the operator's data portal, against
|
|
26
|
+
his own visits; the device carries each one into the graph as a labour cost within a minute.
|
|
27
27
|
|
|
28
28
|
- **Roll-up (operator-run, per period).** For a worker (or all workers) and a period:
|
|
29
|
-
1. Read his
|
|
30
|
-
|
|
29
|
+
1. Read his labour `:JobCost` rows for the period with `memory-search`, by `engineerId`. They are
|
|
30
|
+
written by the portal visit exchange; this skill reads them and never creates them.
|
|
31
31
|
2. Run `rollup.mjs compute <worker.json> <checkins.json>` — never compute by hand.
|
|
32
32
|
3. Render the timesheet (and, for CIS, the invoice) from the computed figures.
|
|
33
33
|
4. Run `rollup.mjs reconcile <computed.json> <netPence> <dayHundredths>` — both gates must pass.
|
|
@@ -42,6 +42,6 @@ total disagrees with the compute.
|
|
|
42
42
|
|
|
43
43
|
## Observability
|
|
44
44
|
|
|
45
|
-
- one line per
|
|
45
|
+
- one line per labour cost read into a roll-up (engineer id, source, date, site);
|
|
46
46
|
- one line on generation: worker id, period, day-count, artefact filenames, email recipient;
|
|
47
47
|
- the `op=reconcile-fail` line whenever a gate stops a send.
|
|
@@ -4,33 +4,51 @@ This skill ships these shapes, never a worker's data.
|
|
|
4
4
|
|
|
5
5
|
## `:Engineer` (operator config, one per worker)
|
|
6
6
|
|
|
7
|
-
`(:Engineer {
|
|
7
|
+
`(:Engineer { engineerId, accountId, name, engagement: "employee"|"cis", dayRatePence,
|
|
8
8
|
utr?, showCisDeduction: bool, invoiceEmail, createdAt })`
|
|
9
9
|
|
|
10
|
-
`
|
|
11
|
-
only for `engagement: "cis"`. `invoiceEmail` is
|
|
12
|
-
operator at runtime (see [setup.md](setup.md)), never
|
|
10
|
+
`engineerId` is the worker's key and the write-time MERGE key `(accountId, engineerId)`.
|
|
11
|
+
`dayRatePence` is integer pence. `utr` is present only for `engagement: "cis"`. `invoiceEmail` is
|
|
12
|
+
the office invoice address. Captured by the operator at runtime (see [setup.md](setup.md)), never
|
|
13
|
+
written into this tree.
|
|
13
14
|
|
|
14
|
-
|
|
15
|
+
`Engineer` is an additional label on that worker's `:Person`; there is no standalone node. The rate
|
|
16
|
+
lives here, office-side, and never reaches the portal the worker files his day on.
|
|
15
17
|
|
|
16
|
-
`(
|
|
18
|
+
## `:JobCost` (one labour cost per visit worked, `costType: "labour"`)
|
|
19
|
+
|
|
20
|
+
`(:JobCost { costId, costType: "labour", engineerId, accountId, jobId, source, receivedAt,
|
|
17
21
|
date, site, description, dayHundredths, createdAt })`
|
|
18
22
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
Time worked is an incurred labour cost. `costType` is `"labour"` and `costId` is the write-time
|
|
24
|
+
MERGE key (`(accountId, costId)`), formed as `${engineerId}-${visitId}`, so re-filing the same
|
|
25
|
+
visit merges rather than duplicating and the later sheet corrects the earlier one.
|
|
26
|
+
|
|
27
|
+
**One cost per visit, not per day.** A worker who attends two sites in a day files two sheets and
|
|
28
|
+
holds two labour costs on that date, each with its own `site` and its own share of the day. Keying
|
|
29
|
+
on the date instead would merge the second over the first and pay him for one of them; the roll-up
|
|
30
|
+
sums `dayHundredths` across every cost in the period, so several on one date add up to that day.
|
|
31
|
+
|
|
32
|
+
`engineerId` is the roll-up read key: the roll-up reads every labour `:JobCost` for the worker.
|
|
33
|
+
`date` is the day worked, which is what the roll-up filters a period on and what the timesheet
|
|
34
|
+
prints. `source` records where it came from (`portal`). `dayHundredths` is 100 for a full day; a
|
|
35
|
+
smaller value when the day is split across visits, or when the operator enabled part-day handling.
|
|
26
36
|
|
|
27
37
|
Each `:JobCost` is linked to the engineer who incurred it with the canonical edge
|
|
28
|
-
`(:JobCost)-[:INCURRED_BY]->(:Engineer)
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
38
|
+
`(:JobCost)-[:INCURRED_BY]->(:Engineer)`, and to its job with `(:Job)-[:HAS_COST]->(:JobCost)` — the
|
|
39
|
+
edge types are fixed by `schema-construction.md`; write no edge type absent from it. The edges
|
|
40
|
+
satisfy the write-doctrine adjacency requirement (a node is written with at least one relationship);
|
|
41
|
+
`engineerId` carries the same identity for roll-up reads.
|
|
42
|
+
|
|
43
|
+
## Where these records come from
|
|
44
|
+
|
|
45
|
+
The worker files a job sheet against one of his own visits on the operator's data portal, stating
|
|
46
|
+
the day worked and how much of it. The device carries that edit into the graph every sixty seconds,
|
|
47
|
+
writing the labour cost in the same statement as the visit's status, so a visit never reads as done
|
|
48
|
+
with the working day missing behind it. The day is attributed to the engineer the visit names rather
|
|
49
|
+
than to whoever filed the sheet, so an office person completing a worker's day still produces that
|
|
50
|
+
worker's cost.
|
|
51
|
+
|
|
52
|
+
A claim the device cannot date, or one on a visit with no attending engineer, is left unwritten and
|
|
53
|
+
counted in the journal rather than dated or attributed by guess. This skill reads these rows; it
|
|
54
|
+
never creates them.
|
package/payload/premium-plugins/sitedesk/plugins/sitedesk-job/skills/timesheet/references/roll-up.md
CHANGED
|
@@ -3,13 +3,26 @@
|
|
|
3
3
|
Days × rate and the CIS deduction are universal maths; they must reconcile to the penny, so they
|
|
4
4
|
are computed by `rollup.mjs`, never by hand. The engine carries no operator content.
|
|
5
5
|
|
|
6
|
-
##
|
|
7
|
-
|
|
8
|
-
A worker
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
`dayHundredths
|
|
12
|
-
|
|
6
|
+
## Reading the period's days
|
|
7
|
+
|
|
8
|
+
The days already exist as records. A worker files a job sheet against one of his own visits on the
|
|
9
|
+
operator's data portal, and the device writes that as one labour `:JobCost` (see
|
|
10
|
+
[checkin-contract.md](checkin-contract.md)) carrying `date`, `site`, `description` and
|
|
11
|
+
`dayHundredths`, within a minute of him filing it.
|
|
12
|
+
|
|
13
|
+
At roll-up time, read the worker's labour costs for the period with `memory-search`, by
|
|
14
|
+
`engineerId`, and filter on `date`. Never create them here. The key is `${engineerId}-${visitId}`,
|
|
15
|
+
so a re-filed sheet merges rather than duplicating; writing a record at roll-up would put a second,
|
|
16
|
+
differently-keyed entry beside one that already exists.
|
|
17
|
+
|
|
18
|
+
A worker who attends two sites in a day holds two costs on that date, each with its own site and
|
|
19
|
+
its own share of the day. The engine sums `dayHundredths` across every cost you hand it, so several
|
|
20
|
+
on one date add up to that day and each prints its own timesheet row.
|
|
21
|
+
|
|
22
|
+
A day the worker filed that the device could not use — no date it can key on, or a visit with no
|
|
23
|
+
attending engineer — was never written, and is counted in the journal as `undatedClaims` or as a
|
|
24
|
+
`labourClaims` count that does not drain. A period whose day total looks short is worth checking
|
|
25
|
+
there before it is treated as the worker's own record.
|
|
13
26
|
|
|
14
27
|
## The figures (integer pence; day amounts integer hundredths)
|
|
15
28
|
|
package/payload/premium-plugins/sitedesk/plugins/sitedesk-job/skills/timesheet/references/setup.md
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
The skill defines the questions; the operator's answers are his data. Per worker:
|
|
4
4
|
|
|
5
|
-
- **Name
|
|
5
|
+
- **Name**, the **`:Person`** he maps to, and his **`engineerId`** — the key everything else about
|
|
6
|
+
his days is read by. A worker with no `engineerId` has his job sheets refused rather than recorded
|
|
7
|
+
under a key nobody can reproduce.
|
|
6
8
|
- **Engagement** — `employee` or `cis` (CIS subcontractor).
|
|
7
9
|
- **Day rate** — captured in pounds, stored as integer pence (`dayRatePence`).
|
|
8
10
|
- **UTR** — required when `engagement: cis`; omitted for employees.
|
|
@@ -14,7 +16,9 @@ Install-level, once:
|
|
|
14
16
|
|
|
15
17
|
- **Invoice frequency** — weekly or monthly; this only sets the default roll-up period, never a
|
|
16
18
|
scheduler. The roll-up is always operator-run.
|
|
17
|
-
- **Part-day
|
|
18
|
-
|
|
19
|
+
- **Part-day rule** — whether `dayHundredths` below 100 are accepted, and how a part day is
|
|
20
|
+
expressed. If disabled, every day filed is a full day. The portal accepts an integer from 0 to
|
|
21
|
+
100 and refuses anything above it, so a day longer than a full day cannot be filed and no
|
|
22
|
+
overtime rule is expressible here.
|
|
19
23
|
|
|
20
24
|
No value is invented. A missing required value is a gap the agent flags, never a guess.
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
|
|
2
|
-
import
|
|
2
|
+
import {
|
|
3
|
+
__esm
|
|
4
|
+
} from "./chunk-KVR2FT6O.js";
|
|
3
5
|
|
|
4
6
|
// app/lib/adminuser-self-heal.ts
|
|
5
|
-
var UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
6
7
|
function toNum(raw) {
|
|
7
8
|
if (typeof raw === "number") return raw;
|
|
8
9
|
if (raw && typeof raw.toNumber === "function") {
|
|
@@ -49,6 +50,13 @@ async function selfHealAdminUser(args) {
|
|
|
49
50
|
await session.close();
|
|
50
51
|
}
|
|
51
52
|
}
|
|
53
|
+
var UUID_REGEX;
|
|
54
|
+
var init_adminuser_self_heal = __esm({
|
|
55
|
+
"app/lib/adminuser-self-heal.ts"() {
|
|
56
|
+
UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
init_adminuser_self_heal();
|
|
52
60
|
export {
|
|
53
61
|
selfHealAdminUser
|
|
54
62
|
};
|