@rubytech/create-maxy-code 0.1.419 → 0.1.427

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (334) hide show
  1. package/package.json +1 -1
  2. package/payload/platform/neo4j/schema.cypher +13 -0
  3. package/payload/platform/package-lock.json +5158 -2922
  4. package/payload/platform/plugins/admin/.claude-plugin/plugin.json +1 -1
  5. package/payload/platform/plugins/admin/PLUGIN.md +5 -1
  6. package/payload/platform/plugins/admin/hooks/__tests__/datetime-inject.test.sh +119 -0
  7. package/payload/platform/plugins/admin/hooks/__tests__/prompt-optimiser-compliance.test.sh +22 -0
  8. package/payload/platform/plugins/admin/hooks/datetime-inject.sh +115 -0
  9. package/payload/platform/plugins/admin/hooks/prompt-optimiser-compliance.sh +14 -1
  10. package/payload/platform/plugins/admin/mcp/dist/index.js +62 -4
  11. package/payload/platform/plugins/admin/mcp/dist/index.js.map +1 -1
  12. package/payload/platform/plugins/admin/mcp/dist/tools/account-lifecycle.d.ts +44 -0
  13. package/payload/platform/plugins/admin/mcp/dist/tools/account-lifecycle.d.ts.map +1 -1
  14. package/payload/platform/plugins/admin/mcp/dist/tools/account-lifecycle.js +96 -0
  15. package/payload/platform/plugins/admin/mcp/dist/tools/account-lifecycle.js.map +1 -1
  16. package/payload/platform/plugins/admin/skills/datetime/SKILL.md +9 -2
  17. package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +16 -2
  18. package/payload/platform/plugins/docs/references/cross-account-authority.md +8 -0
  19. package/payload/platform/plugins/docs/references/internals.md +4 -0
  20. package/payload/platform/plugins/docs/references/memory-guide.md +2 -0
  21. package/payload/platform/plugins/docs/references/plugins-guide.md +1 -1
  22. package/payload/platform/plugins/email/PLUGIN.md +2 -2
  23. package/payload/platform/plugins/email/mcp/dist/__tests__/imap-drafts.test.js +73 -4
  24. package/payload/platform/plugins/email/mcp/dist/__tests__/imap-drafts.test.js.map +1 -1
  25. package/payload/platform/plugins/email/mcp/dist/__tests__/mailbox-resolve.test.js +42 -1
  26. package/payload/platform/plugins/email/mcp/dist/__tests__/mailbox-resolve.test.js.map +1 -1
  27. package/payload/platform/plugins/email/mcp/dist/index.js +1 -0
  28. package/payload/platform/plugins/email/mcp/dist/index.js.map +1 -1
  29. package/payload/platform/plugins/email/mcp/dist/lib/credentials.d.ts +4 -0
  30. package/payload/platform/plugins/email/mcp/dist/lib/credentials.d.ts.map +1 -1
  31. package/payload/platform/plugins/email/mcp/dist/lib/credentials.js +5 -0
  32. package/payload/platform/plugins/email/mcp/dist/lib/credentials.js.map +1 -1
  33. package/payload/platform/plugins/email/mcp/dist/lib/imap.d.ts +25 -3
  34. package/payload/platform/plugins/email/mcp/dist/lib/imap.d.ts.map +1 -1
  35. package/payload/platform/plugins/email/mcp/dist/lib/imap.js +67 -12
  36. package/payload/platform/plugins/email/mcp/dist/lib/imap.js.map +1 -1
  37. package/payload/platform/plugins/email/mcp/dist/tools/email-setup.d.ts +1 -0
  38. package/payload/platform/plugins/email/mcp/dist/tools/email-setup.d.ts.map +1 -1
  39. package/payload/platform/plugins/email/mcp/dist/tools/email-setup.js +1 -0
  40. package/payload/platform/plugins/email/mcp/dist/tools/email-setup.js.map +1 -1
  41. package/payload/platform/plugins/email/references/email-reference.md +8 -0
  42. package/payload/platform/plugins/memory/PLUGIN.md +3 -0
  43. package/payload/platform/plugins/memory/skills/conversational-memory/SKILL.md +30 -1
  44. package/payload/platform/plugins/memory/skills/preference-audit/SKILL.md +50 -0
  45. package/payload/platform/plugins/scheduling/PLUGIN.md +1 -1
  46. package/payload/platform/plugins/scheduling/mcp/dist/index.js +5 -2
  47. package/payload/platform/plugins/scheduling/mcp/dist/index.js.map +1 -1
  48. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/agent-dispatch.test.js +50 -1
  49. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/agent-dispatch.test.js.map +1 -1
  50. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/scheduled-seat-id.test.d.ts +2 -0
  51. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/scheduled-seat-id.test.d.ts.map +1 -0
  52. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/scheduled-seat-id.test.js +22 -0
  53. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/scheduled-seat-id.test.js.map +1 -0
  54. package/payload/platform/plugins/scheduling/mcp/dist/lib/agent-dispatch.d.ts +35 -0
  55. package/payload/platform/plugins/scheduling/mcp/dist/lib/agent-dispatch.d.ts.map +1 -1
  56. package/payload/platform/plugins/scheduling/mcp/dist/lib/agent-dispatch.js +36 -0
  57. package/payload/platform/plugins/scheduling/mcp/dist/lib/agent-dispatch.js.map +1 -1
  58. package/payload/platform/plugins/scheduling/mcp/dist/lib/scheduled-seat-id.d.ts +11 -0
  59. package/payload/platform/plugins/scheduling/mcp/dist/lib/scheduled-seat-id.d.ts.map +1 -0
  60. package/payload/platform/plugins/scheduling/mcp/dist/lib/scheduled-seat-id.js +19 -0
  61. package/payload/platform/plugins/scheduling/mcp/dist/lib/scheduled-seat-id.js.map +1 -0
  62. package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/agent-turn-dispatch.test.js +85 -3
  63. package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/agent-turn-dispatch.test.js.map +1 -1
  64. package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/standing-audit.test.js +32 -1
  65. package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/standing-audit.test.js.map +1 -1
  66. package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.d.ts +14 -1
  67. package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.d.ts.map +1 -1
  68. package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.js +94 -4
  69. package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.js.map +1 -1
  70. package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.js +23 -7
  71. package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.js.map +1 -1
  72. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-cancel.test.d.ts +2 -0
  73. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-cancel.test.d.ts.map +1 -0
  74. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-cancel.test.js +30 -0
  75. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-cancel.test.js.map +1 -0
  76. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-cancel.d.ts +29 -0
  77. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-cancel.d.ts.map +1 -1
  78. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-cancel.js +47 -2
  79. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-cancel.js.map +1 -1
  80. package/payload/platform/plugins/whatsapp/PLUGIN.md +5 -1
  81. package/payload/platform/plugins/whatsapp/mcp/dist/__tests__/caller-scope-headers.test.d.ts +2 -0
  82. package/payload/platform/plugins/whatsapp/mcp/dist/__tests__/caller-scope-headers.test.d.ts.map +1 -0
  83. package/payload/platform/plugins/whatsapp/mcp/dist/__tests__/caller-scope-headers.test.js +20 -0
  84. package/payload/platform/plugins/whatsapp/mcp/dist/__tests__/caller-scope-headers.test.js.map +1 -0
  85. package/payload/platform/plugins/whatsapp/mcp/dist/__tests__/resolve-read-account.test.d.ts +2 -0
  86. package/payload/platform/plugins/whatsapp/mcp/dist/__tests__/resolve-read-account.test.d.ts.map +1 -0
  87. package/payload/platform/plugins/whatsapp/mcp/dist/__tests__/resolve-read-account.test.js +15 -0
  88. package/payload/platform/plugins/whatsapp/mcp/dist/__tests__/resolve-read-account.test.js.map +1 -0
  89. package/payload/platform/plugins/whatsapp/mcp/dist/call-api.d.ts +1 -1
  90. package/payload/platform/plugins/whatsapp/mcp/dist/call-api.d.ts.map +1 -1
  91. package/payload/platform/plugins/whatsapp/mcp/dist/call-api.js +5 -2
  92. package/payload/platform/plugins/whatsapp/mcp/dist/call-api.js.map +1 -1
  93. package/payload/platform/plugins/whatsapp/mcp/dist/caller-scope-headers.d.ts +9 -0
  94. package/payload/platform/plugins/whatsapp/mcp/dist/caller-scope-headers.d.ts.map +1 -0
  95. package/payload/platform/plugins/whatsapp/mcp/dist/caller-scope-headers.js +18 -0
  96. package/payload/platform/plugins/whatsapp/mcp/dist/caller-scope-headers.js.map +1 -0
  97. package/payload/platform/plugins/whatsapp/mcp/dist/index.js +17 -14
  98. package/payload/platform/plugins/whatsapp/mcp/dist/index.js.map +1 -1
  99. package/payload/platform/plugins/whatsapp/mcp/dist/resolve-read-account.d.ts +7 -0
  100. package/payload/platform/plugins/whatsapp/mcp/dist/resolve-read-account.d.ts.map +1 -0
  101. package/payload/platform/plugins/whatsapp/mcp/dist/resolve-read-account.js +13 -0
  102. package/payload/platform/plugins/whatsapp/mcp/dist/resolve-read-account.js.map +1 -0
  103. package/payload/platform/plugins/work/PLUGIN.md +1 -1
  104. package/payload/platform/plugins/work/mcp/dist/__tests__/work-create-assigned-admin-env.test.d.ts +2 -0
  105. package/payload/platform/plugins/work/mcp/dist/__tests__/work-create-assigned-admin-env.test.d.ts.map +1 -0
  106. package/payload/platform/plugins/work/mcp/dist/__tests__/work-create-assigned-admin-env.test.js +72 -0
  107. package/payload/platform/plugins/work/mcp/dist/__tests__/work-create-assigned-admin-env.test.js.map +1 -0
  108. package/payload/platform/plugins/work/mcp/dist/__tests__/work-create-client-fields.test.d.ts +2 -0
  109. package/payload/platform/plugins/work/mcp/dist/__tests__/work-create-client-fields.test.d.ts.map +1 -0
  110. package/payload/platform/plugins/work/mcp/dist/__tests__/work-create-client-fields.test.js +67 -0
  111. package/payload/platform/plugins/work/mcp/dist/__tests__/work-create-client-fields.test.js.map +1 -0
  112. package/payload/platform/plugins/work/mcp/dist/__tests__/work-create-raised-by-env.test.d.ts +2 -0
  113. package/payload/platform/plugins/work/mcp/dist/__tests__/work-create-raised-by-env.test.d.ts.map +1 -0
  114. package/payload/platform/plugins/work/mcp/dist/__tests__/work-create-raised-by-env.test.js +66 -0
  115. package/payload/platform/plugins/work/mcp/dist/__tests__/work-create-raised-by-env.test.js.map +1 -0
  116. package/payload/platform/plugins/work/mcp/dist/index.js +3 -0
  117. package/payload/platform/plugins/work/mcp/dist/index.js.map +1 -1
  118. package/payload/platform/plugins/work/mcp/dist/tools/work-create.d.ts +6 -0
  119. package/payload/platform/plugins/work/mcp/dist/tools/work-create.d.ts.map +1 -1
  120. package/payload/platform/plugins/work/mcp/dist/tools/work-create.js +41 -1
  121. package/payload/platform/plugins/work/mcp/dist/tools/work-create.js.map +1 -1
  122. package/payload/platform/scripts/lib/provision-account-dir.sh +2 -1
  123. package/payload/platform/services/claude-session-manager/dist/account-admin-census.d.ts +39 -0
  124. package/payload/platform/services/claude-session-manager/dist/account-admin-census.d.ts.map +1 -0
  125. package/payload/platform/services/claude-session-manager/dist/account-admin-census.js +122 -0
  126. package/payload/platform/services/claude-session-manager/dist/account-admin-census.js.map +1 -0
  127. package/payload/platform/services/claude-session-manager/dist/account-timezone.d.ts +40 -0
  128. package/payload/platform/services/claude-session-manager/dist/account-timezone.d.ts.map +1 -0
  129. package/payload/platform/services/claude-session-manager/dist/account-timezone.js +126 -0
  130. package/payload/platform/services/claude-session-manager/dist/account-timezone.js.map +1 -0
  131. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.d.ts.map +1 -1
  132. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js +1 -0
  133. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js.map +1 -1
  134. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
  135. package/payload/platform/services/claude-session-manager/dist/http-server.js +53 -2
  136. package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
  137. package/payload/platform/services/claude-session-manager/dist/index.js +52 -0
  138. package/payload/platform/services/claude-session-manager/dist/index.js.map +1 -1
  139. package/payload/platform/services/claude-session-manager/dist/passive-dispatch-prune.d.ts +37 -0
  140. package/payload/platform/services/claude-session-manager/dist/passive-dispatch-prune.d.ts.map +1 -0
  141. package/payload/platform/services/claude-session-manager/dist/passive-dispatch-prune.js +80 -0
  142. package/payload/platform/services/claude-session-manager/dist/passive-dispatch-prune.js.map +1 -0
  143. package/payload/platform/services/claude-session-manager/dist/passive-intake-audit.d.ts +70 -0
  144. package/payload/platform/services/claude-session-manager/dist/passive-intake-audit.d.ts.map +1 -0
  145. package/payload/platform/services/claude-session-manager/dist/passive-intake-audit.js +129 -0
  146. package/payload/platform/services/claude-session-manager/dist/passive-intake-audit.js.map +1 -0
  147. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +17 -0
  148. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
  149. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +40 -0
  150. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
  151. package/payload/platform/services/telegram-channel/dist/instructions.d.ts.map +1 -1
  152. package/payload/platform/services/telegram-channel/dist/instructions.js +37 -50
  153. package/payload/platform/services/telegram-channel/dist/instructions.js.map +1 -1
  154. package/payload/platform/services/telegram-channel/dist/notification.d.ts +22 -0
  155. package/payload/platform/services/telegram-channel/dist/notification.d.ts.map +1 -1
  156. package/payload/platform/services/telegram-channel/dist/notification.js +22 -1
  157. package/payload/platform/services/telegram-channel/dist/notification.js.map +1 -1
  158. package/payload/platform/services/webchat-channel/dist/instructions.d.ts.map +1 -1
  159. package/payload/platform/services/webchat-channel/dist/instructions.js +44 -78
  160. package/payload/platform/services/webchat-channel/dist/instructions.js.map +1 -1
  161. package/payload/platform/services/webchat-channel/dist/notification.d.ts +22 -0
  162. package/payload/platform/services/webchat-channel/dist/notification.d.ts.map +1 -1
  163. package/payload/platform/services/webchat-channel/dist/notification.js +22 -1
  164. package/payload/platform/services/webchat-channel/dist/notification.js.map +1 -1
  165. package/payload/platform/services/whatsapp-channel/dist/notification.d.ts +42 -38
  166. package/payload/platform/services/whatsapp-channel/dist/notification.d.ts.map +1 -1
  167. package/payload/platform/services/whatsapp-channel/dist/notification.js +66 -82
  168. package/payload/platform/services/whatsapp-channel/dist/notification.js.map +1 -1
  169. package/payload/platform/templates/account.json +2 -1
  170. package/payload/platform/templates/agents/admin/IDENTITY.md +3 -2
  171. package/payload/platform/templates/specialists/agents/content-producer.md +4 -0
  172. package/payload/server/public/assets/{AdminLoginScreens-B1PkOF66.js → AdminLoginScreens-yAIhWcGc.js} +1 -1
  173. package/payload/server/public/assets/AdminShell-Bk1AFQ4D.js +2 -0
  174. package/payload/server/public/assets/{Checkbox-Bm9Er726.js → Checkbox-B_lfjsqd.js} +1 -1
  175. package/payload/server/public/assets/Transcript-D67OZnVM.js +2 -0
  176. package/payload/server/public/assets/admin-DuOhkvrZ.js +1 -0
  177. package/payload/server/public/assets/{arc-DyzjCWmw.js → arc-dVLpR-ec.js} +1 -1
  178. package/payload/server/public/assets/architecture-YZFGNWBL-CgeA3HPD.js +1 -0
  179. package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-qWfElD16.js → architectureDiagram-Q4EWVU46-C6u_CVzb.js} +1 -1
  180. package/payload/server/public/assets/{blockDiagram-DXYQGD6D-DO2fFHC3.js → blockDiagram-DXYQGD6D-Cy8F5b8O.js} +1 -1
  181. package/payload/server/public/assets/browser-CCWufeXr.js +1 -0
  182. package/payload/server/public/assets/{c4Diagram-AHTNJAMY-Ca-q5gDe.js → c4Diagram-AHTNJAMY-DRXrlepj.js} +1 -1
  183. package/payload/server/public/assets/calendar-CNk1iPrA.js +1 -0
  184. package/payload/server/public/assets/channel-B04VBWf7.js +1 -0
  185. package/payload/server/public/assets/chat-7qB-dwBq.js +1 -0
  186. package/payload/server/public/assets/chevron-left-CpcDbHIz.js +1 -0
  187. package/payload/server/public/assets/{chunk-2KRD3SAO-CX2PxuDw.js → chunk-2KRD3SAO-fEyfhRLz.js} +1 -1
  188. package/payload/server/public/assets/{chunk-336JU56O-D8l6U4Ne.js → chunk-336JU56O-NUWO4y7q.js} +2 -2
  189. package/payload/server/public/assets/chunk-426QAEUC-DZkHcXRA.js +1 -0
  190. package/payload/server/public/assets/{chunk-4BX2VUAB-CG32Lkbh.js → chunk-4BX2VUAB-BnfiNR3l.js} +1 -1
  191. package/payload/server/public/assets/{chunk-4TB4RGXK-BnAQbO-v.js → chunk-4TB4RGXK-Bj_aJOz8.js} +1 -1
  192. package/payload/server/public/assets/{chunk-55IACEB6-ejqRH2M5.js → chunk-55IACEB6-aK0DNSKb.js} +1 -1
  193. package/payload/server/public/assets/{chunk-5FUZZQ4R-ClkicQ-T.js → chunk-5FUZZQ4R-DeqAkq5C.js} +1 -1
  194. package/payload/server/public/assets/{chunk-5PVQY5BW-Be-mE_rx.js → chunk-5PVQY5BW-SShlujAQ.js} +1 -1
  195. package/payload/server/public/assets/{chunk-67CJDMHE-DPsemed2.js → chunk-67CJDMHE-CZpzQ0DL.js} +1 -1
  196. package/payload/server/public/assets/{chunk-7N4EOEYR-BQRQJETl.js → chunk-7N4EOEYR-COnjO6jy.js} +1 -1
  197. package/payload/server/public/assets/{chunk-AA7GKIK3-B1wcAVCK.js → chunk-AA7GKIK3-C9V31L2z.js} +1 -1
  198. package/payload/server/public/assets/{chunk-BSJP7CBP-DIua053h.js → chunk-BSJP7CBP-DSwnSGe3.js} +1 -1
  199. package/payload/server/public/assets/{chunk-CIAEETIT-C9GHSCS9.js → chunk-CIAEETIT-CnRUTuta.js} +1 -1
  200. package/payload/server/public/assets/{chunk-EDXVE4YY-C1T3l1xj.js → chunk-EDXVE4YY-BexiL2LH.js} +1 -1
  201. package/payload/server/public/assets/{chunk-ENJZ2VHE-8kPcXEQC.js → chunk-ENJZ2VHE-aTklWdJQ.js} +1 -1
  202. package/payload/server/public/assets/{chunk-FMBD7UC4-Bhoeq9sD.js → chunk-FMBD7UC4-svcEBQzs.js} +1 -1
  203. package/payload/server/public/assets/{chunk-FOC6F5B3-BIBpJi8I.js → chunk-FOC6F5B3-CG7R7Xri.js} +1 -1
  204. package/payload/server/public/assets/{chunk-ICPOFSXX-DELXp6fj.js → chunk-ICPOFSXX-CGN7Z4x9.js} +2 -2
  205. package/payload/server/public/assets/{chunk-K5T4RW27-DdckXldP.js → chunk-K5T4RW27-CWBh78jw.js} +1 -1
  206. package/payload/server/public/assets/{chunk-KGLVRYIC-BJhXejKT.js → chunk-KGLVRYIC-Ctiq4q-5.js} +1 -1
  207. package/payload/server/public/assets/{chunk-LIHQZDEY-BSd8nyM2.js → chunk-LIHQZDEY-BII77Q7K.js} +1 -1
  208. package/payload/server/public/assets/{chunk-ORNJ4GCN-CBi55uxq.js → chunk-ORNJ4GCN-DT7R01H8.js} +1 -1
  209. package/payload/server/public/assets/{chunk-OYMX7WX6-Dfbzl8xh.js → chunk-OYMX7WX6-y-Jkbd4C.js} +1 -1
  210. package/payload/server/public/assets/chunk-QZHKN3VN-D9Mwgzti.js +1 -0
  211. package/payload/server/public/assets/{chunk-U2HBQHQK-BN1w8_Cq.js → chunk-U2HBQHQK-DzFo6KbQ.js} +1 -1
  212. package/payload/server/public/assets/{chunk-X2U36JSP-CrRay1NJ.js → chunk-X2U36JSP-CYSwgtLV.js} +1 -1
  213. package/payload/server/public/assets/{chunk-XPW4576I-C_ZE776O.js → chunk-XPW4576I-DHlM4tOn.js} +1 -1
  214. package/payload/server/public/assets/{chunk-YZCP3GAM-CUSlqWBY.js → chunk-YZCP3GAM-B20rTmLl.js} +1 -1
  215. package/payload/server/public/assets/{chunk-ZZ45TVLE-BdPUfSiD.js → chunk-ZZ45TVLE-C7hP4J8m.js} +1 -1
  216. package/payload/server/public/assets/classDiagram-6PBFFD2Q-CIo_TzfF.js +1 -0
  217. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-SzQYvAUZ.js +1 -0
  218. package/payload/server/public/assets/clone-BVjcjsBA.js +1 -0
  219. package/payload/server/public/assets/{cose-bilkent-S5V4N54A-D4E9htTz.js → cose-bilkent-S5V4N54A-nKjTv9sR.js} +1 -1
  220. package/payload/server/public/assets/{dagre-D1B5TQL1.js → dagre-Cx8LiiUZ.js} +1 -1
  221. package/payload/server/public/assets/{dagre-KV5264BT-ByuvYV7N.js → dagre-KV5264BT-BNJYTnls.js} +1 -1
  222. package/payload/server/public/assets/data-BnHcS27X.js +1 -0
  223. package/payload/server/public/assets/{diagram-5BDNPKRD-B-0KduTa.js → diagram-5BDNPKRD-CoAN5_f9.js} +1 -1
  224. package/payload/server/public/assets/{diagram-G4DWMVQ6-CSQmo3eB.js → diagram-G4DWMVQ6-pRmsN4_x.js} +1 -1
  225. package/payload/server/public/assets/{diagram-MMDJMWI5-DK0kWiB3.js → diagram-MMDJMWI5-CRoylyp4.js} +1 -1
  226. package/payload/server/public/assets/{diagram-TYMM5635-CYbK2reZ.js → diagram-TYMM5635-BT3ZtG5b.js} +1 -1
  227. package/payload/server/public/assets/{dist-CADCHk0t.js → dist-CRpLAnCP.js} +1 -1
  228. package/payload/server/public/assets/{erDiagram-SMLLAGMA-C-JQHvJF.js → erDiagram-SMLLAGMA-DSKws1ZV.js} +1 -1
  229. package/payload/server/public/assets/file-download-Hf_UILaA.js +1 -0
  230. package/payload/server/public/assets/{flatten-ROVzlo1u.js → flatten-jn8bZgcI.js} +1 -1
  231. package/payload/server/public/assets/{flowDiagram-DWJPFMVM-OTOd2czg.js → flowDiagram-DWJPFMVM-C2L38ZE5.js} +1 -1
  232. package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-BWJ778ou.js → ganttDiagram-T4ZO3ILL-Bm2h-vjm.js} +1 -1
  233. package/payload/server/public/assets/gitGraph-7Q5UKJZL-DzQ18i0T.js +1 -0
  234. package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-CkNcyISe.js → gitGraphDiagram-UUTBAWPF-BoowbF7u.js} +1 -1
  235. package/payload/server/public/assets/graph-klLugHEK.js +51 -0
  236. package/payload/server/public/assets/{graph-labels-BFG4bjXQ.js → graph-labels-BLx-0vyT.js} +1 -1
  237. package/payload/server/public/assets/{graphlib-8z59Ng6C.js → graphlib-BvT2s_o1.js} +1 -1
  238. package/payload/server/public/assets/info-OMHHGYJF-CwsoaVzV.js +1 -0
  239. package/payload/server/public/assets/infoDiagram-42DDH7IO-ieNsH2bV.js +2 -0
  240. package/payload/server/public/assets/{isEmpty-DXf_sApt.js → isEmpty-Dkk6_L-B.js} +1 -1
  241. package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-Cg7pRRGp.js → ishikawaDiagram-UXIWVN3A-nxcmj-IX.js} +1 -1
  242. package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-CZT_4r_Z.js → journeyDiagram-VCZTEJTY-q5SNIvmS.js} +1 -1
  243. package/payload/server/public/assets/{kanban-definition-6JOO6SKY-Dp1Vd5YM.js → kanban-definition-6JOO6SKY-BugG9Q1o.js} +1 -1
  244. package/payload/server/public/assets/{line-UPAcwY66.js → line-MZCQLR-q.js} +1 -1
  245. package/payload/server/public/assets/{linear-BeeahLKw.js → linear-DmQGNk-g.js} +1 -1
  246. package/payload/server/public/assets/{maximize-2-DkZ40lSl.js → maximize-2-CnNQnj_v.js} +1 -1
  247. package/payload/server/public/assets/{mermaid-parser.core-CLKle8df.js → mermaid-parser.core-DvoeqLxw.js} +2 -2
  248. package/payload/server/public/assets/{mermaid.core-CwRj5rL5.js → mermaid.core-BLaw7iG4.js} +3 -3
  249. package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-CNQUY9UJ.js → mindmap-definition-QFDTVHPH-DMkt10Vc.js} +1 -1
  250. package/payload/server/public/assets/operator-CRcySYv9.js +1 -0
  251. package/payload/server/public/assets/{ordinal-B2r5L1v4.js → ordinal-DuJYM7p1.js} +1 -1
  252. package/payload/server/public/assets/packet-4T2RLAQJ-DxB-bO4L.js +1 -0
  253. package/payload/server/public/assets/page-CVo3CWIY.js +1 -0
  254. package/payload/server/public/assets/page-DPTbZRwl.js +32 -0
  255. package/payload/server/public/assets/{pdf-render-m08Xm2Nm.js → pdf-render-riHufgrn.js} +1 -1
  256. package/payload/server/public/assets/pie-ZZUOXDRM-PSdKvB8-.js +1 -0
  257. package/payload/server/public/assets/{pieDiagram-DEJITSTG-Scnq58FX.js → pieDiagram-DEJITSTG-DRp4lD2B.js} +1 -1
  258. package/payload/server/public/assets/play-yEkd7ouW.js +1 -0
  259. package/payload/server/public/assets/public-Fi6ccYaE.js +1 -0
  260. package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-wPfZo_vs.js → quadrantDiagram-34T5L4WZ-DkT63Dn4.js} +1 -1
  261. package/payload/server/public/assets/radar-PYXPWWZC-D8FqRiWq.js +1 -0
  262. package/payload/server/public/assets/{reduce-CFlDlJf5.js → reduce-COyotL2V.js} +1 -1
  263. package/payload/server/public/assets/{requirementDiagram-MS252O5E-yYkH12K2.js → requirementDiagram-MS252O5E-65GGtDkc.js} +1 -1
  264. package/payload/server/public/assets/rotate-ccw-xHksz9mr.js +1 -0
  265. package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-fVWRBzzV.js → sankeyDiagram-XADWPNL6-D1vRwLWd.js} +1 -1
  266. package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-Dbap3X6h.js → sequenceDiagram-FGHM5R23-Bp47ZSN2.js} +1 -1
  267. package/payload/server/public/assets/square-BZqaxg7D.js +1 -0
  268. package/payload/server/public/assets/{src-Bi0fLV9t.js → src-xN1oULc8.js} +1 -1
  269. package/payload/server/public/assets/{stateDiagram-FHFEXIEX-DkPLAqIh.js → stateDiagram-FHFEXIEX-BZHHcP_e.js} +1 -1
  270. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-qVtoGx56.js +1 -0
  271. package/payload/server/public/assets/tasks-COWmfts8.js +1 -0
  272. package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-DabKBJyd.js → timeline-definition-GMOUNBTQ-DZ1wUyj-.js} +1 -1
  273. package/payload/server/public/assets/treeView-SZITEDCU-i-w4rJmQ.js +1 -0
  274. package/payload/server/public/assets/treemap-W4RFUUIX-Dij6AlAj.js +1 -0
  275. package/payload/server/public/assets/useSubAccountSwitcher-DADvGnr1.js +9 -0
  276. package/payload/server/public/assets/useSubAccountSwitcher-ayajZz8T.css +1 -0
  277. package/payload/server/public/assets/{vennDiagram-DHZGUBPP-CaKT7c-c.js → vennDiagram-DHZGUBPP-CttBahsn.js} +1 -1
  278. package/payload/server/public/assets/wardley-RL74JXVD-BJhOQVqW.js +1 -0
  279. package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-BZ5TTSOL.js → wardleyDiagram-NUSXRM2D-Y5tWieZg.js} +1 -1
  280. package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-CLfeklJ9.js → xychartDiagram-5P7HB3ND-C78A9qbe.js} +1 -1
  281. package/payload/server/public/browser.html +7 -5
  282. package/payload/server/public/calendar.html +8 -6
  283. package/payload/server/public/chat.html +15 -12
  284. package/payload/server/public/data.html +11 -10
  285. package/payload/server/public/graph.html +12 -10
  286. package/payload/server/public/index.html +16 -14
  287. package/payload/server/public/operator.html +17 -14
  288. package/payload/server/public/public.html +15 -12
  289. package/payload/server/public/tasks.html +18 -0
  290. package/payload/server/server.js +775 -287
  291. package/payload/server/public/assets/AdminShell-D8wNArGQ.js +0 -2
  292. package/payload/server/public/assets/Transcript-CBIyQ8T5.js +0 -2
  293. package/payload/server/public/assets/admin-CWM9G_yA.js +0 -1
  294. package/payload/server/public/assets/architecture-YZFGNWBL-XiVs-N7Z.js +0 -1
  295. package/payload/server/public/assets/browser-D8QhNffV.js +0 -1
  296. package/payload/server/public/assets/calendar-qob5K4t_.js +0 -1
  297. package/payload/server/public/assets/channel-CYBkRz7E.js +0 -1
  298. package/payload/server/public/assets/chat-BNrxVUF6.js +0 -1
  299. package/payload/server/public/assets/chevron-left-BQThFVrd.js +0 -1
  300. package/payload/server/public/assets/chunk-426QAEUC-CPhOHriU.js +0 -1
  301. package/payload/server/public/assets/chunk-QZHKN3VN-CDnAAZVJ.js +0 -1
  302. package/payload/server/public/assets/classDiagram-6PBFFD2Q-BdXUKVrS.js +0 -1
  303. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-DAq-uJr_.js +0 -1
  304. package/payload/server/public/assets/clone-DQl28-jK.js +0 -1
  305. package/payload/server/public/assets/data-C-EqNbRi.js +0 -1
  306. package/payload/server/public/assets/gitGraph-7Q5UKJZL-BM-KaDZy.js +0 -1
  307. package/payload/server/public/assets/graph-DZ2HMpIB.js +0 -51
  308. package/payload/server/public/assets/info-OMHHGYJF-CtZajyAB.js +0 -1
  309. package/payload/server/public/assets/infoDiagram-42DDH7IO-C-_WYlmI.js +0 -2
  310. package/payload/server/public/assets/operator-FrXrSsBj.js +0 -1
  311. package/payload/server/public/assets/packet-4T2RLAQJ-T-SYedp7.js +0 -1
  312. package/payload/server/public/assets/page-CHWMI9Tm.js +0 -32
  313. package/payload/server/public/assets/page-CXKV01gT.js +0 -1
  314. package/payload/server/public/assets/pie-ZZUOXDRM-BWECFVVd.js +0 -1
  315. package/payload/server/public/assets/public-2p1pJ4WF.js +0 -1
  316. package/payload/server/public/assets/radar-PYXPWWZC-Dx0YUklX.js +0 -1
  317. package/payload/server/public/assets/rotate-ccw-D3o_bMBA.js +0 -1
  318. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-DceWO1u6.js +0 -1
  319. package/payload/server/public/assets/treeView-SZITEDCU-C3197Rac.js +0 -1
  320. package/payload/server/public/assets/treemap-W4RFUUIX-BPrpx29h.js +0 -1
  321. package/payload/server/public/assets/useSubAccountSwitcher-8dLvF3Ux.js +0 -9
  322. package/payload/server/public/assets/useSubAccountSwitcher-BUvlETHN.css +0 -1
  323. package/payload/server/public/assets/wardley-RL74JXVD-DW4Jlbhw.js +0 -1
  324. /package/payload/server/public/assets/{_baseFor-BVuIxZJh.js → _baseFor-Bjj9It3Q.js} +0 -0
  325. /package/payload/server/public/assets/{admin-types-hioowVct.js → admin-types-ClHBm0ni.js} +0 -0
  326. /package/payload/server/public/assets/{array-B9UHiPd-.js → array-BrrxEo12.js} +0 -0
  327. /package/payload/server/public/assets/{chunk-CAM3fms7.js → chunk-Ck5AOu5v.js} +0 -0
  328. /package/payload/server/public/assets/{cytoscape.esm-D5_TRwB-.js → cytoscape.esm-CTWJxUxo.js} +0 -0
  329. /package/payload/server/public/assets/{defaultLocale-5eAKkKJC.js → defaultLocale-CFDbRV4k.js} +0 -0
  330. /package/payload/server/public/assets/{init-DlZdxViB.js → init-dXCzGgLP.js} +0 -0
  331. /package/payload/server/public/assets/{katex-Xo0SyWvP.js → katex-CHA1JFYJ.js} +0 -0
  332. /package/payload/server/public/assets/{path-6uRLdFF7.js → path-CCRpdXhK.js} +0 -0
  333. /package/payload/server/public/assets/{preload-helper-CvXuAEud.js → preload-helper-CH6UZRzu.js} +0 -0
  334. /package/payload/server/public/assets/{rough.esm-Djo4Abte.js → rough.esm-Bud4g4fh.js} +0 -0
@@ -1,4 +1,22 @@
1
1
  import { type TelegramChannelRole } from './instructions.js';
2
+ /** Task 1516 — the dispatcher's operator-provenance marker, present only on a
3
+ * scheduled inject. A local copy of the shape (this package never cross-imports
4
+ * platform/ui). Kept byte-identical to the whatsapp/webchat twins. */
5
+ export interface ScheduleProvenance {
6
+ accountId: string;
7
+ eventId: string;
8
+ authoredBy: string[];
9
+ createdByTool: string | null;
10
+ dispatchedAt: string;
11
+ }
12
+ /**
13
+ * Task 1516 — render the dispatcher's operator-provenance as a platform-verified
14
+ * preamble. Every value is dispatcher-stamped (an inbound message cannot produce
15
+ * this block), so the grounding treats a turn opening with it as an authorised
16
+ * standing automation. Copy stays operator-clean (no task numbers, repo paths, or
17
+ * em-dashes). Byte-identical to the whatsapp/webchat twins.
18
+ */
19
+ export declare function composeScheduleMarker(pv: ScheduleProvenance): string;
2
20
  export interface InboundPayload {
3
21
  /** The telegram conversation key this payload is for. */
4
22
  key: string;
@@ -15,6 +33,10 @@ export interface InboundPayload {
15
33
  * `## Context` for ADMIN turns only; a public visitor never receives it.
16
34
  * Absent/blank when the account has no active rules. */
17
35
  standingRules?: string;
36
+ /** Task 1516 — the dispatcher's operator-provenance marker on a scheduled
37
+ * inject; rendered above `## Context` (and above the rules block) for ADMIN
38
+ * turns only. Absent on a real inbound. */
39
+ scheduleProvenance?: ScheduleProvenance;
18
40
  }
19
41
  /** The composed content the agent receives, plus the inner payload's byte
20
42
  * length for the observability line. */
@@ -1 +1 @@
1
- {"version":3,"file":"notification.d.ts","sourceRoot":"","sources":["../src/notification.ts"],"names":[],"mappings":"AAcA,OAAO,EAA6B,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAEvF,MAAM,WAAW,cAAc;IAC7B,yDAAyD;IACzD,GAAG,EAAE,MAAM,CAAA;IACX,gFAAgF;IAChF,IAAI,EAAE,MAAM,CAAA;IACZ,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAA;IACjB;;iFAE6E;IAC7E,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;IAC5B;;;6DAGyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;yCACyC;AACzC,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;CACrB;AAED;;;;;2EAK2E;AAC3E,wBAAgB,cAAc,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,mBAAmB,GAAG,eAAe,CAgB5F;AAED;;2BAE2B;AAC3B,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAErE;AAED;;;mCAGmC;AACnC,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAE7F;AAED;;;2DAG2D;AAC3D,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAEpC;AAED;;;;;;;yCAOyC;AACzC,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,GACf;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAEtD;AAED;;;;cAIc;AACd,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,EAC/B,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,GAChF,OAAO,CAAC,OAAO,CAAC,CAMlB;AAED;;kFAEkF;AAClF,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAIrE;AAYD,eAAO,MAAM,sBAAsB,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,EAOhE,CAAA;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CACd;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,SAAS,EAAE,CAAA;CAAE,CAU5F"}
1
+ {"version":3,"file":"notification.d.ts","sourceRoot":"","sources":["../src/notification.ts"],"names":[],"mappings":"AAcA,OAAO,EAA6B,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAEvF;;uEAEuE;AACvE,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,YAAY,EAAE,MAAM,CAAA;CACrB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,kBAAkB,GAAG,MAAM,CAUpE;AAED,MAAM,WAAW,cAAc;IAC7B,yDAAyD;IACzD,GAAG,EAAE,MAAM,CAAA;IACX,gFAAgF;IAChF,IAAI,EAAE,MAAM,CAAA;IACZ,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAA;IACjB;;iFAE6E;IAC7E,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;IAC5B;;;6DAGyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;gDAE4C;IAC5C,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;CACxC;AAED;yCACyC;AACzC,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;CACrB;AAED;;;;;2EAK2E;AAC3E,wBAAgB,cAAc,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,mBAAmB,GAAG,eAAe,CAqB5F;AAED;;2BAE2B;AAC3B,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAErE;AAED;;;mCAGmC;AACnC,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAE7F;AAED;;;2DAG2D;AAC3D,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAEpC;AAED;;;;;;;yCAOyC;AACzC,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,GACf;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAEtD;AAED;;;;cAIc;AACd,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,EAC/B,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,GAChF,OAAO,CAAC,OAAO,CAAC,CAMlB;AAED;;kFAEkF;AAClF,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAIrE;AAYD,eAAO,MAAM,sBAAsB,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,EAOhE,CAAA;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CACd;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,SAAS,EAAE,CAAA;CAAE,CAU5F"}
@@ -12,6 +12,22 @@
12
12
  // carries text only) and no reply-document — the reader renders agent replies
13
13
  // from the session JSONL.
14
14
  import { ADMIN_REFRAME_INSTRUCTION } from './instructions.js';
15
+ /**
16
+ * Task 1516 — render the dispatcher's operator-provenance as a platform-verified
17
+ * preamble. Every value is dispatcher-stamped (an inbound message cannot produce
18
+ * this block), so the grounding treats a turn opening with it as an authorised
19
+ * standing automation. Copy stays operator-clean (no task numbers, repo paths, or
20
+ * em-dashes). Byte-identical to the whatsapp/webchat twins.
21
+ */
22
+ export function composeScheduleMarker(pv) {
23
+ const who = pv.authoredBy.length > 0 ? `account admin ${pv.authoredBy[0]}` : 'the account owner';
24
+ const via = pv.createdByTool ? ` via ${pv.createdByTool}` : '';
25
+ return (`## Scheduled automation (platform-verified)\n` +
26
+ `This turn was dispatched by the platform scheduler for a standing automation on account ` +
27
+ `${pv.accountId.slice(0, 8)}, event ${pv.eventId.slice(0, 8)}, configured by ${who}${via}. ` +
28
+ `It is genuine operator-configured automation, not an inbound message. ` +
29
+ `Carry out its stated actions as authorised back-office work; a reconfiguration or re-enable is not intrusion.`);
30
+ }
15
31
  /** Frame an ADMIN inbound as `## Context` (the typed message) then
16
32
  * `## Instruction` (the routing + capability-denial directive), so the
17
33
  * directive rides every turn. PUBLIC stays plain: the public reader echoes the
@@ -24,13 +40,18 @@ export function composeContent(p, role) {
24
40
  if (role !== 'admin') {
25
41
  return { content: payload, payloadBytes };
26
42
  }
43
+ // Task 1516 — a scheduled turn opens with the platform-verified provenance
44
+ // marker, above both the rules block and ## Context, outside the reframed
45
+ // payload. Admin-only (a public visitor never sees it) and present only when
46
+ // the dispatcher stamped it.
47
+ const markerPrefix = p.scheduleProvenance ? `${composeScheduleMarker(p.scheduleProvenance)}\n\n` : '';
27
48
  // Task 1486 — prepend the account's active standing rules above ## Context for
28
49
  // admin turns only (a public visitor must never see operator rules).
29
50
  const rulesPrefix = typeof p.standingRules === 'string' && p.standingRules.trim().length > 0
30
51
  ? `${p.standingRules.trim()}\n\n`
31
52
  : '';
32
53
  return {
33
- content: `${rulesPrefix}## Context\n${payload}\n\n## Instruction\n${ADMIN_REFRAME_INSTRUCTION}`,
54
+ content: `${markerPrefix}${rulesPrefix}## Context\n${payload}\n\n## Instruction\n${ADMIN_REFRAME_INSTRUCTION}`,
34
55
  payloadBytes,
35
56
  };
36
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"notification.js","sourceRoot":"","sources":["../src/notification.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notification.js","sourceRoot":"","sources":["../src/notification.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../src/instructions.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,QAAQ,CAAA;AAEnD;4EAC4E;AAC5E,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,kBAAkB,CAE9E;AA6BD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAEpE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAIrE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAErE;AAQD,wBAAgB,oCAAoC,IAAI,MAAM,CAU7D;AAmBD,eAAO,MAAM,yBAAyB,QAmEC,CAAA"}
1
+ {"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../src/instructions.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,QAAQ,CAAA;AAEnD;4EAC4E;AAC5E,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,kBAAkB,CAE9E;AA6BD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAEpE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAIrE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAErE;AAQD,wBAAgB,oCAAoC,IAAI,MAAM,CAU7D;AAwBD,eAAO,MAAM,yBAAyB,QA4BR,CAAA"}
@@ -58,88 +58,54 @@ export function connectorAuthenticateToolDescription() {
58
58
  'connector becomes usable on their next message.',
59
59
  ].join(' ');
60
60
  }
61
- // Task 899 — per-turn admin reframe directive. The server-level INSTRUCTIONS
62
- // above are set once at MCP init; the routing + capability-denial guidance must
63
- // ride EVERY turn, the way the WhatsApp channel's composeAdminContent does
64
- // (Task 753). So composeContent wraps every ADMIN inbound as
65
- // `## Context / ## Instruction` with this text. Mirrors whatsapp-channel's
66
- // REFRAME_INSTRUCTION; the channels own their framing text independently
67
- // (rootDir:"src" blocks a shared module), so the capability-denial clause lives
68
- // in both and is drift-guarded by a test in each. The clause is the Task 890
69
- // fix: the agent must search the skills for the owning capability before
70
- // reporting that something cannot be done — a denial is valid only once that
71
- // search comes back empty.
61
+ // Task 899 — per-turn admin reframe directive, byte-identical to the telegram
62
+ // twin's ADMIN_REFRAME_INSTRUCTION (both use the "operator" recipient word). The
63
+ // server-level INSTRUCTIONS above are set once at MCP init; this routing +
64
+ // capability guidance must ride EVERY turn, the way the WhatsApp channel's
65
+ // composeAdminContent does (Task 753). So composeContent wraps every ADMIN
66
+ // inbound as `## Context / ## Instruction` with this text. The channels own their
67
+ // framing text independently (rootDir:"src" blocks a shared module), so the six
68
+ // guarantees live in each and clauses 4–6 (recipient-neutral) are drift-guarded
69
+ // byte-identical by a test in each service.
70
+ //
71
+ // Compressed under Task 1497. The prior webchat-only connector prose
72
+ // (Tasks 1160/1208/1153) is gone: a claude.ai connector is a tool, so it is now
73
+ // covered by guarantee 2's "search the skills and tools" — the same principle
74
+ // that owns every other capability. The connector_authenticate tool and the
75
+ // connector-directory skill are unchanged; the agent reaches them by searching
76
+ // tools/skills, not by a bespoke wrapper paragraph.
72
77
  //
73
78
  // PUBLIC IS DELIBERATELY EXCLUDED. The public reader echoes the visitor's own
74
79
  // `operator-inbound` turn back to the anonymous browser (it is in
75
80
  // PUBLIC_DELIVERED_KINDS), so wrapping a public inbound would leak this internal
76
81
  // routing language to the visitor — a NO_INTERNALS violation. The public role
77
82
  // keeps plain delivery and relies on the server-level PUBLIC_INSTRUCTIONS.
78
- export const ADMIN_REFRAME_INSTRUCTION = 'Choose the installed specialist that owns this request and dispatch it with the Agent tool. ' +
79
- 'Any deliverable artefact — an email or letter draft, a quote, an order, a report, a PDF, an image, a page — ' +
80
- 'is content-producer work: dispatch content-producer for it, without exception, ' +
81
- 'including follow-up edits to an artefact a specialist already produced. ' +
82
- 'If no specialist fits, load the owning skill. ' +
83
- 'If neither fits (a greeting, a quick question, a confirmation, a direct continuation), just answer. ' +
84
- 'If you are about to do artefact work without an agent or skill, that decision is itself the violation signal ' +
85
- 'stop and reconsider before answering directly. ' +
86
- 'Your capabilities here are very well defined: before you tell the operator something cannot be done, ' +
87
- 'search the skills for the owning capability, and treat a denial as valid only once that search comes back empty. ' +
88
- // Task 1160 capability discovery was connector-blind: a request owned by a
89
- // claude.ai connector (Zoom, Dropbox, Microsoft 365, Cloudflare, Google) has no
90
- // skill, so the skills-only gate above passed a false denial before the agent
91
- // ever reached a connector tool. capabilities-here now lists the loaded
92
- // connectors with their auth state; this clause makes the denial gate consult
93
- // them and routes a live connector into the Task 1153 authenticate path.
94
- 'Some capabilities are owned not by a skill but by a claude.ai connector — Zoom, Dropbox, Microsoft 365, Cloudflare, Google and the like. ' +
95
- 'capabilities-here lists the connectors loaded for this client with their auth state, so before you deny a request that a connector could own, ' +
96
- 'check that list and ToolSearch for mcp__claude_ai_* tools: a connector denial is valid only once the skills AND the connectors both come back empty. ' +
97
- 'When a matching connector exists, use its tool; if the tool result says it needs authentication, call the connector_authenticate tool; ' +
98
- 'and when capabilities-here already shows the connector as needs-auth, offer that authenticate step rather than denying. ' +
99
- // Task 1208 even when the skills and the loaded connectors both come back
100
- // empty, the integration the operator named may exist in the claude.ai
101
- // connector directory as a connector this client has not added yet. The
102
- // managed registry tool is absent from this session, so discovery is
103
- // catalogue-driven via the connector-directory skill, which searches the
104
- // public catalogue and routes the enable step to claude.ai. This stops the
105
- // agent denying a real connector or defaulting to the generic static-key
106
- // connector before it has looked.
107
- 'When the skills and the loaded connectors both come back empty, do not stop at a denial or jump to the generic static-key connector: ' +
108
- 'a connector you have not added to this client yet may still exist in the claude.ai connector directory, ' +
109
- 'so search the connector directory (load the connector-directory skill) first, and route any match\'s enable step to its claude.ai directory link. ' +
110
- 'Then carry it out. ' +
111
- 'Call the reply tool right away to acknowledge you are on it, ' +
112
- 'send a brief progress note with the reply tool before each long step, and call the reply tool again with the result — ' +
113
- 'never stay silent until the end. ' +
114
- // Task 980 — the channel/visibility model. Two turns ended with the substantive
115
- // answer written as plain assistant text and no reply-tool call; nothing was
116
- // delivered and the operator asked "did you do this?". The bare cadence clause
117
- // above read as progress-note etiquette and the word "reply" collided with the
118
- // agent's own text. This clause states the mechanism and the consequence so the
119
- // failure is unmissable: the operator sees ONLY reply-tool text, so a turn-final
120
- // plain text block is invisible. IDENTICAL to the WhatsApp twin's clause in
121
- // REFRAME_INSTRUCTION (recipient-neutral so the literal matches), drift-guarded
122
- // by a test in each service.
123
- 'Remember you are answering over a channel: the person you are replying to is not watching this session ' +
124
- 'and sees only the text you send with the reply tool. ' +
125
- 'Anything you write as an ordinary assistant message, without calling the reply tool, is invisible to them. ' +
126
- 'So a turn that answers them is finished only once you have called the reply tool with the full answer; ' +
127
- 'a turn that ends without a reply tool call delivers nothing, no matter what you wrote. ' +
128
- // Task 919 — the bridge forwards a SendUserFile call to this conversation as a
129
- // real attachment. Steer the agent to deliver the file, not describe it. This
130
- // clause is identical in the WhatsApp twin (REFRAME_INSTRUCTION) and
131
- // drift-guarded by a test in each service.
132
- 'When you have produced a file to deliver, deliver it by calling SendUserFile with its path — ' +
133
- 'the platform forwards it to this conversation as an attachment; ' +
134
- 'a reply that only names or describes the file is not delivery. ' +
135
- // Task 982 — plain English on every operator-facing reply, not only on explicit
136
- // "explain in plain English" requests. The plainly skill is installed but
137
- // otherwise triggers only on that explicit ask, so ordinary replies carry the
138
- // AI tells it already catalogues. This clause points the agent at the skill for
139
- // every reply form. IDENTICAL to the WhatsApp twin's clause in
140
- // REFRAME_INSTRUCTION (recipient-neutral so the literal matches), drift-guarded
141
- // by a test in each service.
142
- 'Write every reply you send (acknowledgement, progress note, answer, or deliverable summary) ' +
143
- 'in plain English, in the spoken register and free of the AI tells the plainly skill catalogues; ' +
144
- 'load that skill for the full rules.';
83
+ export const ADMIN_REFRAME_INSTRUCTION = 'Dispatch the owning specialist with the Agent tool. ' +
84
+ 'Any deliverable artefact — email, letter, quote, order, report, PDF, image, page — ' +
85
+ 'is content-producer work, without exception, including follow-up edits to one already produced. ' +
86
+ 'Else load the owning skill; else (a greeting, quick question, confirmation) just answer. ' +
87
+ 'Artefact work with neither is the violation signal — reconsider. ' +
88
+ 'Your capabilities here are very well defined: before telling the operator something cannot be done, ' +
89
+ 'search the skills and tools for the owning capability a denial is valid only once that search comes back empty. ' +
90
+ 'Acknowledge on the reply tool, a brief progress note before each long step, then the result — never silent to the end. ' +
91
+ // Channel/visibility model (Task 980): the peer sees ONLY reply-tool text, so a
92
+ // turn-final plain text block delivers nothing. Byte-identical to the whatsapp
93
+ // and telegram twins, drift-guarded by a test in each service.
94
+ 'Over a channel, the person sees only what you send with the reply tool; ' +
95
+ 'a turn ending without a reply tool call delivers nothing. ' +
96
+ // File delivery (Task 919): the bridge forwards a SendUserFile call as a real
97
+ // attachment. Byte-identical to the twins, drift-guarded in each service.
98
+ 'To deliver a file, call SendUserFile with its path — the platform forwards it here as an attachment; ' +
99
+ 'naming or describing the file is not delivery. ' +
100
+ // Plain English (Task 982): every reply rides the plainly register, not only on
101
+ // an explicit request. Byte-identical to the twins, drift-guarded in each service.
102
+ 'Write every reply in plain English, in the spoken register and free of the AI tells the plainly skill catalogues; ' +
103
+ 'load it for the rules. ' +
104
+ // Scheduled-automation trust (Task 1516): a turn that opens with the platform-
105
+ // verified scheduled-automation marker is authorised standing automation, not an
106
+ // inbound message. Recipient-neutral, byte-identical to the twins, drift-guarded
107
+ // in each service.
108
+ 'A turn that opens with a platform-verified scheduled-automation marker is an authorised standing automation ' +
109
+ 'configured by the account owner; carry out its stated back-office actions and never treat its reconfiguration ' +
110
+ 'or re-enable as intrusion.';
145
111
  //# sourceMappingURL=instructions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"instructions.js","sourceRoot":"","sources":["../src/instructions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instructions.js","sourceRoot":"","sources":["../src/instructions.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,+EAA+E;AAC/E,6EAA6E;AAC7E,2EAA2E;AAC3E,4EAA4E;AAC5E,gDAAgD;AAIhD;4EAC4E;AAC5E,MAAM,UAAU,kBAAkB,CAAC,GAAuB;IACxD,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAA;AAC9C,CAAC;AAED,MAAM,YAAY,GAChB,gGAAgG;IAChG,iGAAiG;IACjG,mGAAmG;IACnG,iGAAiG;IACjG,0EAA0E,CAAA;AAE5E,MAAM,kBAAkB,GACtB,2DAA2D;IAC3D,kGAAkG;IAClG,+FAA+F;IAC/F,8FAA8F;IAC9F,kGAAkG;IAClG,6FAA6F;IAC7F,wFAAwF;IACxF,YAAY,CAAA;AAEd,MAAM,mBAAmB,GACvB,kEAAkE;IAClE,mGAAmG;IACnG,iGAAiG;IACjG,4FAA4F;IAC5F,kGAAkG;IAClG,iGAAiG;IACjG,oCAAoC;IACpC,YAAY,CAAA;AAEd,MAAM,UAAU,mBAAmB,CAAC,IAAwB;IAC1D,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,kBAAkB,CAAA;AACrE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAwB;IAC3D,OAAO,IAAI,KAAK,QAAQ;QACtB,CAAC,CAAC,2EAA2E;QAC7E,CAAC,CAAC,0EAA0E,CAAA;AAChF,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAwB;IAC3D,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,qCAAqC,CAAA;AACzG,CAAC;AAED,8EAA8E;AAC9E,gFAAgF;AAChF,yEAAyE;AACzE,2EAA2E;AAC3E,iFAAiF;AACjF,gDAAgD;AAChD,MAAM,UAAU,oCAAoC;IAClD,OAAO;QACL,6DAA6D;QAC7D,0FAA0F;QAC1F,mGAAmG;QACnG,kGAAkG;QAClG,6EAA6E;QAC7E,8FAA8F;QAC9F,iDAAiD;KAClD,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACb,CAAC;AAED,8EAA8E;AAC9E,iFAAiF;AACjF,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,kFAAkF;AAClF,gFAAgF;AAChF,gFAAgF;AAChF,4CAA4C;AAC5C,EAAE;AACF,qEAAqE;AACrE,gFAAgF;AAChF,8EAA8E;AAC9E,4EAA4E;AAC5E,+EAA+E;AAC/E,oDAAoD;AACpD,EAAE;AACF,8EAA8E;AAC9E,kEAAkE;AAClE,iFAAiF;AACjF,8EAA8E;AAC9E,2EAA2E;AAC3E,MAAM,CAAC,MAAM,yBAAyB,GACpC,sDAAsD;IACtD,qFAAqF;IACrF,kGAAkG;IAClG,2FAA2F;IAC3F,mEAAmE;IACnE,sGAAsG;IACtG,oHAAoH;IACpH,yHAAyH;IACzH,gFAAgF;IAChF,+EAA+E;IAC/E,+DAA+D;IAC/D,0EAA0E;IAC1E,4DAA4D;IAC5D,8EAA8E;IAC9E,0EAA0E;IAC1E,uGAAuG;IACvG,iDAAiD;IACjD,gFAAgF;IAChF,mFAAmF;IACnF,oHAAoH;IACpH,yBAAyB;IACzB,+EAA+E;IAC/E,iFAAiF;IACjF,iFAAiF;IACjF,mBAAmB;IACnB,8GAA8G;IAC9G,gHAAgH;IAChH,4BAA4B,CAAA"}
@@ -1,4 +1,22 @@
1
1
  import { type WebchatChannelRole } from './instructions.js';
2
+ /** Task 1516 — the dispatcher's operator-provenance marker, present only on a
3
+ * scheduled inject. A local copy of the shape (this package never cross-imports
4
+ * platform/ui). Kept byte-identical to the whatsapp/telegram twins. */
5
+ export interface ScheduleProvenance {
6
+ accountId: string;
7
+ eventId: string;
8
+ authoredBy: string[];
9
+ createdByTool: string | null;
10
+ dispatchedAt: string;
11
+ }
12
+ /**
13
+ * Task 1516 — render the dispatcher's operator-provenance as a platform-verified
14
+ * preamble. Every value is dispatcher-stamped (an inbound message cannot produce
15
+ * this block), so the grounding treats a turn opening with it as an authorised
16
+ * standing automation. Copy stays operator-clean (no task numbers, repo paths, or
17
+ * em-dashes). Byte-identical to the whatsapp/telegram twins.
18
+ */
19
+ export declare function composeScheduleMarker(pv: ScheduleProvenance): string;
2
20
  export interface InboundPayload {
3
21
  /** The webchat conversation key this payload is for. */
4
22
  key: string;
@@ -11,6 +29,10 @@ export interface InboundPayload {
11
29
  * `## Context` for ADMIN turns only; a public visitor never receives it.
12
30
  * Absent/blank when the account has no active rules. */
13
31
  standingRules?: string;
32
+ /** Task 1516 — the dispatcher's operator-provenance marker on a scheduled
33
+ * inject; rendered above `## Context` (and above the rules block) for ADMIN
34
+ * turns only. Absent on a real inbound. */
35
+ scheduleProvenance?: ScheduleProvenance;
14
36
  }
15
37
  /** The composed content the agent receives, plus the inner payload's byte
16
38
  * length for the observability line. */
@@ -1 +1 @@
1
- {"version":3,"file":"notification.d.ts","sourceRoot":"","sources":["../src/notification.ts"],"names":[],"mappings":"AAcA,OAAO,EAA6B,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAEtF,MAAM,WAAW,cAAc;IAC7B,wDAAwD;IACxD,GAAG,EAAE,MAAM,CAAA;IACX,gFAAgF;IAChF,IAAI,EAAE,MAAM,CAAA;IACZ,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAA;IACjB;;;6DAGyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;yCACyC;AACzC,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;CACrB;AAED;;;;;mFAKmF;AACnF,wBAAgB,cAAc,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,kBAAkB,GAAG,eAAe,CAgB3F;AAED;;2BAE2B;AAC3B,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAErE;AAED;;;mCAGmC;AACnC,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAE7F;AAED;;;kFAGkF;AAClF,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAEpC;AAED;;;;;;;;;;0EAU0E;AAC1E,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,GACjB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAE1E;AAED;;;;cAIc;AACd,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,EAC/B,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,GAChF,OAAO,CAAC,OAAO,CAAC,CAMlB;AAED;;;mBAGmB;AACnB,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAIrE;AAYD,eAAO,MAAM,sBAAsB,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,EAOhE,CAAA;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CACd;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,SAAS,EAAE,CAAA;CAAE,CAU5F"}
1
+ {"version":3,"file":"notification.d.ts","sourceRoot":"","sources":["../src/notification.ts"],"names":[],"mappings":"AAcA,OAAO,EAA6B,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAEtF;;wEAEwE;AACxE,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,YAAY,EAAE,MAAM,CAAA;CACrB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,kBAAkB,GAAG,MAAM,CAUpE;AAED,MAAM,WAAW,cAAc;IAC7B,wDAAwD;IACxD,GAAG,EAAE,MAAM,CAAA;IACX,gFAAgF;IAChF,IAAI,EAAE,MAAM,CAAA;IACZ,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAA;IACjB;;;6DAGyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;gDAE4C;IAC5C,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;CACxC;AAED;yCACyC;AACzC,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;CACrB;AAED;;;;;mFAKmF;AACnF,wBAAgB,cAAc,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,kBAAkB,GAAG,eAAe,CAqB3F;AAED;;2BAE2B;AAC3B,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAErE;AAED;;;mCAGmC;AACnC,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAE7F;AAED;;;kFAGkF;AAClF,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAEpC;AAED;;;;;;;;;;0EAU0E;AAC1E,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,GACjB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAE1E;AAED;;;;cAIc;AACd,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,EAC/B,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,GAChF,OAAO,CAAC,OAAO,CAAC,CAMlB;AAED;;;mBAGmB;AACnB,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAIrE;AAYD,eAAO,MAAM,sBAAsB,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,EAOhE,CAAA;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CACd;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,SAAS,EAAE,CAAA;CAAE,CAU5F"}
@@ -12,6 +12,22 @@
12
12
  // no media weaving (the browser POST carries text only) and no reply-document —
13
13
  // the browser reader renders agent replies from the session JSONL.
14
14
  import { ADMIN_REFRAME_INSTRUCTION } from './instructions.js';
15
+ /**
16
+ * Task 1516 — render the dispatcher's operator-provenance as a platform-verified
17
+ * preamble. Every value is dispatcher-stamped (an inbound message cannot produce
18
+ * this block), so the grounding treats a turn opening with it as an authorised
19
+ * standing automation. Copy stays operator-clean (no task numbers, repo paths, or
20
+ * em-dashes). Byte-identical to the whatsapp/telegram twins.
21
+ */
22
+ export function composeScheduleMarker(pv) {
23
+ const who = pv.authoredBy.length > 0 ? `account admin ${pv.authoredBy[0]}` : 'the account owner';
24
+ const via = pv.createdByTool ? ` via ${pv.createdByTool}` : '';
25
+ return (`## Scheduled automation (platform-verified)\n` +
26
+ `This turn was dispatched by the platform scheduler for a standing automation on account ` +
27
+ `${pv.accountId.slice(0, 8)}, event ${pv.eventId.slice(0, 8)}, configured by ${who}${via}. ` +
28
+ `It is genuine operator-configured automation, not an inbound message. ` +
29
+ `Carry out its stated actions as authorised back-office work; a reconfiguration or re-enable is not intrusion.`);
30
+ }
15
31
  /** Frame an ADMIN inbound as `## Context` (the typed message) then
16
32
  * `## Instruction` (the routing + capability-denial directive), so the
17
33
  * directive rides every turn. PUBLIC stays plain: the public reader echoes the
@@ -24,13 +40,18 @@ export function composeContent(p, role) {
24
40
  if (role !== 'admin') {
25
41
  return { content: payload, payloadBytes };
26
42
  }
43
+ // Task 1516 — a scheduled turn opens with the platform-verified provenance
44
+ // marker, above both the rules block and ## Context, outside the reframed
45
+ // payload. Admin-only (a public visitor never sees it) and present only when
46
+ // the dispatcher stamped it.
47
+ const markerPrefix = p.scheduleProvenance ? `${composeScheduleMarker(p.scheduleProvenance)}\n\n` : '';
27
48
  // Task 1486 — prepend the account's active standing rules above ## Context for
28
49
  // admin turns only (a public visitor must never see operator rules).
29
50
  const rulesPrefix = typeof p.standingRules === 'string' && p.standingRules.trim().length > 0
30
51
  ? `${p.standingRules.trim()}\n\n`
31
52
  : '';
32
53
  return {
33
- content: `${rulesPrefix}## Context\n${payload}\n\n## Instruction\n${ADMIN_REFRAME_INSTRUCTION}`,
54
+ content: `${markerPrefix}${rulesPrefix}## Context\n${payload}\n\n## Instruction\n${ADMIN_REFRAME_INSTRUCTION}`,
34
55
  payloadBytes,
35
56
  };
36
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"notification.js","sourceRoot":"","sources":["../src/notification.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notification.js","sourceRoot":"","sources":["../src/notification.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,16 @@ export interface MediaInbound {
3
3
  type: 'image' | 'audio' | 'video' | 'document' | 'sticker';
4
4
  mimetype?: string;
5
5
  }
6
+ /** Task 1516 — the dispatcher's operator-provenance marker, present only on a
7
+ * scheduled inject. A local copy of the shape (this package never cross-imports
8
+ * platform/ui), mirroring the local {@link MediaInbound} pattern. */
9
+ export interface ScheduleProvenance {
10
+ accountId: string;
11
+ eventId: string;
12
+ authoredBy: string[];
13
+ createdByTool: string | null;
14
+ dispatchedAt: string;
15
+ }
6
16
  export interface InboundPayload {
7
17
  /** The WhatsApp sender this payload is for (E.164 digits or JID). */
8
18
  senderId: string;
@@ -26,49 +36,43 @@ export interface InboundPayload {
26
36
  * every turn even after the long-lived session has compacted. Absent/blank on
27
37
  * a turn with no active rules. */
28
38
  standingRules?: string;
39
+ /** Task 1516 — the dispatcher's operator-provenance marker on a scheduled
40
+ * inject. Rendered as a platform-verified preamble ABOVE `## Context` (and
41
+ * above the standing-rules block), outside the reframed untrusted payload.
42
+ * Absent on a real inbound. */
43
+ scheduleProvenance?: ScheduleProvenance;
29
44
  }
30
45
  /**
31
- * Task 753 — the standing select-and-dispatch instruction. The inbound message
32
- * is demoted to payload and the turn becomes a routing question: pick the owning
33
- * specialist (dispatch via the Agent tool), else load the owning skill, else
34
- * answer directly. Freestyle inline authoring is the `direct` floor, reached only
35
- * when nothing owns the work which is why a greeting/confirmation needs no
36
- * separate skip: it falls through to `direct`. The turn is now framed in two
37
- * markdown sections (see {@link composeAdminContent}): `## Context` carries the
38
- * inbound payload first, then `## Instruction` carries this directive so the
39
- * agent reads the request, then how to act on it.
40
- *
41
- * Task 761 — the cadence clause. A long turn (e.g. building a quote across many
42
- * Write/Bash/Edit steps) was producing one channel message, dispatched only at
43
- * turn-end, leaving the sender in silence for minutes. The agent's interim
44
- * narration is surfaced in the dashboard but is never dispatched to the channel;
45
- * only `reply`-tool calls reach WhatsApp. So the clause directs the agent to use
46
- * the reply tool for an early acknowledgement and mid-turn progress, then the
47
- * result — not just the final message. Outcome, not script.
48
- *
49
- * Task 805 — the artefact and self-check clauses. Session e48c2a5e showed the
50
- * cascade alone is ignored on artefact work (0 Agent dispatches across a 52 MB
51
- * session while content-producer owned the work): the agent authored emails,
52
- * an Excel→HTML template, and PDF iterations inline, and the first inline
53
- * artefact anchored every follow-up edit inline. The instruction now names
54
- * content-producer for deliverable artefacts — including follow-up edits to an
55
- * artefact a specialist already produced — and adds a self-check: deciding
56
- * against an agent/skill on artefact work is itself the violation signal.
57
- * Quick conversational replies still fall through to the direct branch.
46
+ * The standing per-turn admin reframe. Every channel inbound is demoted to
47
+ * payload under `## Context`; this directive rides under `## Instruction` (see
48
+ * {@link composeAdminContent}), so the turn becomes a routing question. It
49
+ * carries six guarantees, each stated once: (1) dispatch the owning specialist
50
+ * content-producer for any deliverable artefact, including follow-up edits else
51
+ * load the owning skill, else just answer; (2) search skills and tools before
52
+ * telling the sender something cannot be done; (3) reply-tool cadence ack,
53
+ * progress, result; (4) channel visibility the peer sees only reply-tool text,
54
+ * so a turn ending without a reply-tool call delivers nothing; (5) deliver files
55
+ * via SendUserFile; (6) plain English per the plainly skill.
58
56
  *
59
- * Task 890 the capability-denial clause. A turn framed as an action (not a
60
- * how-to) had the agent answer from the partial state visible to it and report
61
- * the wall it hit as fact (a narrow Cloudflare token seen, "can't list
62
- * databases" declared) without ever loading the owning skill that held the
63
- * full capability. The instruction now states the capabilities are well
64
- * defined and requires a skill search before any "cannot be done" statement —
65
- * a denial is valid only once that search returns nothing.
66
- *
67
- * Exported so the unit tests assert the exact wrapped shape.
57
+ * Compressed under Task 1497 (history: 753/761/805/890/919/980/982). Clauses 4–6
58
+ * are recipient-neutral and byte-identical to the webchat and telegram twins'
59
+ * ADMIN_REFRAME_INSTRUCTION, drift-guarded by a test in each service. Exported so
60
+ * the unit tests assert the exact wrapped shape.
68
61
  */
69
62
  export declare const REFRAME_INSTRUCTION: string;
70
- /** Task 853 — the two doors a unified (multi-target) session can be bound to. */
71
- export type ChannelSource = 'whatsapp' | 'webchat';
63
+ /** Task 853 — the two doors a unified (multi-target) session can be bound to.
64
+ * Task 1516 'scheduler' is not a physical door; it labels a scheduler-injected
65
+ * turn on the wrapped tag so a multi-target reader attributes it to the platform
66
+ * scheduler, not to an inbound message. */
67
+ export type ChannelSource = 'whatsapp' | 'webchat' | 'scheduler';
68
+ /**
69
+ * Task 1516 — render the dispatcher's operator-provenance as a platform-verified
70
+ * preamble. Every value is dispatcher-stamped (an inbound message cannot produce
71
+ * this block), so the grounding treats a turn opening with it as an authorised
72
+ * standing automation. Copy stays operator-clean (no task numbers, repo paths, or
73
+ * em-dashes) so the outbound redactor never trips on it.
74
+ */
75
+ export declare function composeScheduleMarker(pv: ScheduleProvenance): string;
72
76
  /** Task 753 — the reframe decision for one inbound: the wrapped `content` the
73
77
  * agent receives, and `payloadBytes`, the byte length of the inner payload
74
78
  * (message + woven media notes, excluding the wrapper) for the observability
@@ -1 +1 @@
1
- {"version":3,"file":"notification.d.ts","sourceRoot":"","sources":["../src/notification.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notification.d.ts","sourceRoot":"","sources":["../src/notification.ts"],"names":[],"mappings":"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"}