@rubytech/create-sitedesk-code 0.1.529 → 0.1.531

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 (341) hide show
  1. package/dist/index.js +13 -0
  2. package/package.json +1 -1
  3. package/payload/platform/lib/graph-write/dist/index.d.ts.map +1 -1
  4. package/payload/platform/lib/graph-write/dist/index.js +4 -0
  5. package/payload/platform/lib/graph-write/dist/index.js.map +1 -1
  6. package/payload/platform/lib/graph-write/src/index.ts +4 -0
  7. package/payload/platform/lib/learning-constants/dist/index.d.ts +35 -0
  8. package/payload/platform/lib/learning-constants/dist/index.d.ts.map +1 -0
  9. package/payload/platform/lib/learning-constants/dist/index.js +50 -0
  10. package/payload/platform/lib/learning-constants/dist/index.js.map +1 -0
  11. package/payload/platform/lib/learning-constants/package.json +7 -0
  12. package/payload/platform/lib/learning-constants/src/index.test.ts +47 -0
  13. package/payload/platform/lib/learning-constants/src/index.ts +57 -0
  14. package/payload/platform/lib/learning-constants/tsconfig.json +9 -0
  15. package/payload/platform/lib/routine-templates/dist/index.d.ts +19 -3
  16. package/payload/platform/lib/routine-templates/dist/index.d.ts.map +1 -1
  17. package/payload/platform/lib/routine-templates/dist/index.js +22 -4
  18. package/payload/platform/lib/routine-templates/dist/index.js.map +1 -1
  19. package/payload/platform/lib/routine-templates/dist/roster.d.ts +19 -6
  20. package/payload/platform/lib/routine-templates/dist/roster.d.ts.map +1 -1
  21. package/payload/platform/lib/routine-templates/dist/roster.js +127 -17
  22. package/payload/platform/lib/routine-templates/dist/roster.js.map +1 -1
  23. package/payload/platform/lib/routine-templates/src/__tests__/roster.test.ts +46 -3
  24. package/payload/platform/lib/routine-templates/src/__tests__/seed.test.ts +52 -10
  25. package/payload/platform/lib/routine-templates/src/index.ts +30 -4
  26. package/payload/platform/lib/routine-templates/src/roster.ts +147 -17
  27. package/payload/platform/neo4j/schema.cypher +24 -0
  28. package/payload/platform/package.json +1 -1
  29. package/payload/platform/plugins/admin/.claude-plugin/plugin.json +1 -1
  30. package/payload/platform/plugins/admin/PLUGIN.md +1 -1
  31. package/payload/platform/plugins/admin/mcp/dist/index.js +2 -2
  32. package/payload/platform/plugins/admin/mcp/dist/index.js.map +1 -1
  33. package/payload/platform/plugins/admin/skills/insight/SKILL.md +1 -1
  34. package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +64 -12
  35. package/payload/platform/plugins/admin/skills/whats-new/SKILL.md +13 -0
  36. package/payload/platform/plugins/docs/references/admin-ui.md +6 -2
  37. package/payload/platform/plugins/docs/references/linkedin-extension.md +18 -9
  38. package/payload/platform/plugins/docs/references/session-retrospective.md +39 -0
  39. package/payload/platform/plugins/linkedin-extension/.claude-plugin/plugin.json +1 -1
  40. package/payload/platform/plugins/linkedin-extension/PLUGIN.md +7 -10
  41. package/payload/platform/plugins/linkedin-extension/extension/README.md +20 -17
  42. package/payload/platform/plugins/linkedin-extension/extension/background/sw.js +96 -13
  43. package/payload/platform/plugins/linkedin-extension/extension/manifest.json +3 -18
  44. package/payload/platform/plugins/linkedin-extension/extension/options/options.html +2 -2
  45. package/payload/platform/plugins/linkedin-extension/extension/options/options.js +1 -1
  46. package/payload/platform/plugins/memory/.claude-plugin/plugin.json +1 -1
  47. package/payload/platform/plugins/memory/PLUGIN.md +15 -1
  48. package/payload/platform/plugins/memory/mcp/dist/index.js +169 -0
  49. package/payload/platform/plugins/memory/mcp/dist/index.js.map +1 -1
  50. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/session-jsonl.test.d.ts +2 -0
  51. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/session-jsonl.test.d.ts.map +1 -0
  52. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/session-jsonl.test.js +95 -0
  53. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/session-jsonl.test.js.map +1 -0
  54. package/payload/platform/plugins/memory/mcp/dist/lib/session-jsonl.d.ts +60 -0
  55. package/payload/platform/plugins/memory/mcp/dist/lib/session-jsonl.d.ts.map +1 -0
  56. package/payload/platform/plugins/memory/mcp/dist/lib/session-jsonl.js +153 -0
  57. package/payload/platform/plugins/memory/mcp/dist/lib/session-jsonl.js.map +1 -0
  58. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/cross-account.test.js +6 -4
  59. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/cross-account.test.js.map +1 -1
  60. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/learnings-derive.test.d.ts +2 -0
  61. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/learnings-derive.test.d.ts.map +1 -0
  62. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/learnings-derive.test.js +160 -0
  63. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/learnings-derive.test.js.map +1 -0
  64. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/learnings-recall.test.d.ts +2 -0
  65. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/learnings-recall.test.d.ts.map +1 -0
  66. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/learnings-recall.test.js +64 -0
  67. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/learnings-recall.test.js.map +1 -0
  68. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/learnings-scan.test.d.ts +2 -0
  69. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/learnings-scan.test.d.ts.map +1 -0
  70. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/learnings-scan.test.js +78 -0
  71. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/learnings-scan.test.js.map +1 -0
  72. package/payload/platform/plugins/memory/mcp/dist/tools/learnings-derive.d.ts +41 -0
  73. package/payload/platform/plugins/memory/mcp/dist/tools/learnings-derive.d.ts.map +1 -0
  74. package/payload/platform/plugins/memory/mcp/dist/tools/learnings-derive.js +225 -0
  75. package/payload/platform/plugins/memory/mcp/dist/tools/learnings-derive.js.map +1 -0
  76. package/payload/platform/plugins/memory/mcp/dist/tools/learnings-recall.d.ts +31 -0
  77. package/payload/platform/plugins/memory/mcp/dist/tools/learnings-recall.d.ts.map +1 -0
  78. package/payload/platform/plugins/memory/mcp/dist/tools/learnings-recall.js +67 -0
  79. package/payload/platform/plugins/memory/mcp/dist/tools/learnings-recall.js.map +1 -0
  80. package/payload/platform/plugins/memory/mcp/dist/tools/learnings-scan.d.ts +40 -0
  81. package/payload/platform/plugins/memory/mcp/dist/tools/learnings-scan.d.ts.map +1 -0
  82. package/payload/platform/plugins/memory/mcp/dist/tools/learnings-scan.js +55 -0
  83. package/payload/platform/plugins/memory/mcp/dist/tools/learnings-scan.js.map +1 -0
  84. package/payload/platform/plugins/memory/references/schema-base.md +3 -0
  85. package/payload/platform/plugins/memory/skills/learnings-recall/SKILL.md +27 -0
  86. package/payload/platform/plugins/scheduling/PLUGIN.md +2 -0
  87. package/payload/platform/plugins/scheduling/mcp/dist/index.js +5 -0
  88. package/payload/platform/plugins/scheduling/mcp/dist/index.js.map +1 -1
  89. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/normalise-start-date.test.d.ts +2 -0
  90. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/normalise-start-date.test.d.ts.map +1 -0
  91. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/normalise-start-date.test.js +100 -0
  92. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/normalise-start-date.test.js.map +1 -0
  93. package/payload/platform/plugins/scheduling/mcp/dist/lib/dispatcher-env.d.ts +36 -0
  94. package/payload/platform/plugins/scheduling/mcp/dist/lib/dispatcher-env.d.ts.map +1 -0
  95. package/payload/platform/plugins/scheduling/mcp/dist/lib/dispatcher-env.js +82 -0
  96. package/payload/platform/plugins/scheduling/mcp/dist/lib/dispatcher-env.js.map +1 -0
  97. package/payload/platform/plugins/scheduling/mcp/dist/lib/time-format.d.ts +31 -0
  98. package/payload/platform/plugins/scheduling/mcp/dist/lib/time-format.d.ts.map +1 -1
  99. package/payload/platform/plugins/scheduling/mcp/dist/lib/time-format.js +99 -0
  100. package/payload/platform/plugins/scheduling/mcp/dist/lib/time-format.js.map +1 -1
  101. package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/agent-turn-dispatch.test.js +12 -12
  102. package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/agent-turn-dispatch.test.js.map +1 -1
  103. package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/converge-startdate-utc.test.d.ts +2 -0
  104. package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/converge-startdate-utc.test.d.ts.map +1 -0
  105. package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/converge-startdate-utc.test.js +79 -0
  106. package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/converge-startdate-utc.test.js.map +1 -0
  107. package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/dispatch-lateness.test.d.ts +2 -0
  108. package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/dispatch-lateness.test.d.ts.map +1 -0
  109. package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/dispatch-lateness.test.js +23 -0
  110. package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/dispatch-lateness.test.js.map +1 -0
  111. package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/routine-roster-audit.test.js +61 -1
  112. package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/routine-roster-audit.test.js.map +1 -1
  113. package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.d.ts +33 -1
  114. package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.d.ts.map +1 -1
  115. package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.js +96 -7
  116. package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.js.map +1 -1
  117. package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.js +21 -69
  118. package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.js.map +1 -1
  119. package/payload/platform/plugins/scheduling/mcp/dist/scripts/converge-startdate-utc.d.ts +24 -0
  120. package/payload/platform/plugins/scheduling/mcp/dist/scripts/converge-startdate-utc.d.ts.map +1 -0
  121. package/payload/platform/plugins/scheduling/mcp/dist/scripts/converge-startdate-utc.js +87 -0
  122. package/payload/platform/plugins/scheduling/mcp/dist/scripts/converge-startdate-utc.js.map +1 -0
  123. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-event-startdate.test.d.ts +2 -0
  124. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-event-startdate.test.d.ts.map +1 -0
  125. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-event-startdate.test.js +123 -0
  126. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-event-startdate.test.js.map +1 -0
  127. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-update-startdate.test.d.ts +2 -0
  128. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-update-startdate.test.d.ts.map +1 -0
  129. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-update-startdate.test.js +71 -0
  130. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-update-startdate.test.js.map +1 -0
  131. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-update-status.test.js +14 -3
  132. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-update-status.test.js.map +1 -1
  133. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-event.d.ts +9 -0
  134. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-event.d.ts.map +1 -1
  135. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-event.js +19 -3
  136. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-event.js.map +1 -1
  137. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-update.d.ts.map +1 -1
  138. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-update.js +24 -9
  139. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-update.js.map +1 -1
  140. package/payload/platform/plugins/whatsapp/mcp/dist/index.js +4 -4
  141. package/payload/platform/plugins/whatsapp/mcp/dist/index.js.map +1 -1
  142. package/payload/platform/plugins/whatsapp/references/channels-whatsapp.md +3 -3
  143. package/payload/platform/plugins/whatsapp/skills/connect-whatsapp/SKILL.md +6 -2
  144. package/payload/platform/plugins/whatsapp/skills/manage-whatsapp-config/SKILL.md +5 -1
  145. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.d.ts.map +1 -1
  146. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js +3 -0
  147. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js.map +1 -1
  148. package/payload/platform/services/claude-session-manager/dist/learning-index.d.ts +28 -0
  149. package/payload/platform/services/claude-session-manager/dist/learning-index.d.ts.map +1 -0
  150. package/payload/platform/services/claude-session-manager/dist/learning-index.js +70 -0
  151. package/payload/platform/services/claude-session-manager/dist/learning-index.js.map +1 -0
  152. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
  153. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +18 -0
  154. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
  155. package/payload/platform/services/claude-session-manager/dist/system-prompt.d.ts +6 -0
  156. package/payload/platform/services/claude-session-manager/dist/system-prompt.d.ts.map +1 -1
  157. package/payload/platform/services/claude-session-manager/dist/system-prompt.js +17 -0
  158. package/payload/platform/services/claude-session-manager/dist/system-prompt.js.map +1 -1
  159. package/payload/platform/templates/specialists/agents/librarian.md +1 -1
  160. package/payload/server/{chunk-UTIHI6KV.js → chunk-SVB5NZ64.js} +53 -42
  161. package/payload/server/{manager-B4LRDZKC.js → manager-4Q3DTLXO.js} +5 -1
  162. package/payload/server/package.json +1 -1
  163. package/payload/server/public/activity.html +5 -5
  164. package/payload/server/public/agents.html +4 -4
  165. package/payload/server/public/assets/{AdminLoginScreens-zfexKfbT.js → AdminLoginScreens-7Czw3MAC.js} +1 -1
  166. package/payload/server/public/assets/AdminLoginScreens-7Czw3MAC.js.br +0 -0
  167. package/payload/server/public/assets/AdminLoginScreens-7Czw3MAC.js.gz +0 -0
  168. package/payload/server/public/assets/{AdminShell-Cbk0TL1B.js → AdminShell-D5GApZ_n.js} +1 -1
  169. package/payload/server/public/assets/AdminShell-D5GApZ_n.js.br +0 -0
  170. package/payload/server/public/assets/AdminShell-D5GApZ_n.js.gz +0 -0
  171. package/payload/server/public/assets/{CdpScreencastSurface-CLSQHh4e.js → CdpScreencastSurface-BbekDUFw.js} +1 -1
  172. package/payload/server/public/assets/CdpScreencastSurface-BbekDUFw.js.br +0 -0
  173. package/payload/server/public/assets/CdpScreencastSurface-BbekDUFw.js.gz +0 -0
  174. package/payload/server/public/assets/{activity-u275Oc-u.js → activity-ClI-RgJu.js} +1 -1
  175. package/payload/server/public/assets/activity-ClI-RgJu.js.br +0 -0
  176. package/payload/server/public/assets/activity-ClI-RgJu.js.gz +0 -0
  177. package/payload/server/public/assets/{admin-Du1nR_hP.js → admin-svtCmBPk.js} +1 -1
  178. package/payload/server/public/assets/admin-svtCmBPk.js.br +0 -0
  179. package/payload/server/public/assets/admin-svtCmBPk.js.gz +0 -0
  180. package/payload/server/public/assets/{agents-DJTxRLLU.js → agents-BO8YBj8d.js} +1 -1
  181. package/payload/server/public/assets/agents-BO8YBj8d.js.br +0 -0
  182. package/payload/server/public/assets/agents-BO8YBj8d.js.gz +0 -0
  183. package/payload/server/public/assets/{browser-Bft6zVkX.js → browser-Bj8oTG5R.js} +1 -1
  184. package/payload/server/public/assets/browser-Bj8oTG5R.js.br +0 -0
  185. package/payload/server/public/assets/browser-Bj8oTG5R.js.gz +0 -0
  186. package/payload/server/public/assets/{calendar-Ct-DCCqY.js → calendar-CrkSY8U7.js} +1 -1
  187. package/payload/server/public/assets/calendar-CrkSY8U7.js.br +0 -0
  188. package/payload/server/public/assets/calendar-CrkSY8U7.js.gz +0 -0
  189. package/payload/server/public/assets/chat-Bvxoni2e.js +1 -0
  190. package/payload/server/public/assets/chat-Bvxoni2e.js.br +0 -0
  191. package/payload/server/public/assets/chat-Bvxoni2e.js.gz +0 -0
  192. package/payload/server/public/assets/chevron-left-CdUzxzeB.js +1 -0
  193. package/payload/server/public/assets/chevron-left-CdUzxzeB.js.br +0 -0
  194. package/payload/server/public/assets/chevron-right-CKGwd-M0.js +1 -0
  195. package/payload/server/public/assets/chevron-right-CKGwd-M0.js.br +0 -0
  196. package/payload/server/public/assets/clock-Cf8Oe9qi.js +1 -0
  197. package/payload/server/public/assets/clock-Cf8Oe9qi.js.br +0 -0
  198. package/payload/server/public/assets/clock-Cf8Oe9qi.js.gz +0 -0
  199. package/payload/server/public/assets/data-DF0Pstdp.js +1 -0
  200. package/payload/server/public/assets/data-DF0Pstdp.js.br +1 -0
  201. package/payload/server/public/assets/data-DF0Pstdp.js.gz +0 -0
  202. package/payload/server/public/assets/{file-download-C_fSe4dm.js → file-download-Di_s0_4w.js} +1 -1
  203. package/payload/server/public/assets/file-download-Di_s0_4w.js.br +0 -0
  204. package/payload/server/public/assets/file-download-Di_s0_4w.js.gz +0 -0
  205. package/payload/server/public/assets/{file-text-D7GbEcqj.js → file-text-CP1KIrJV.js} +1 -1
  206. package/payload/server/public/assets/file-text-CP1KIrJV.js.br +1 -0
  207. package/payload/server/public/assets/file-text-CP1KIrJV.js.gz +0 -0
  208. package/payload/server/public/assets/{graph-yl5qU1kO.js → graph-BCMscnCV.js} +1 -1
  209. package/payload/server/public/assets/graph-BCMscnCV.js.br +0 -0
  210. package/payload/server/public/assets/graph-BCMscnCV.js.gz +0 -0
  211. package/payload/server/public/assets/{graph-labels-Dlcb6cW7.js → graph-labels-CgP17xHK.js} +1 -1
  212. package/payload/server/public/assets/graph-labels-CgP17xHK.js.br +0 -0
  213. package/payload/server/public/assets/graph-labels-CgP17xHK.js.gz +0 -0
  214. package/payload/server/public/assets/{maximize-2-BS689r4W.js → maximize-2-DkQzDv-g.js} +1 -1
  215. package/payload/server/public/assets/maximize-2-DkQzDv-g.js.br +0 -0
  216. package/payload/server/public/assets/maximize-2-DkQzDv-g.js.gz +0 -0
  217. package/payload/server/public/assets/{operator-CvapnpIW.js → operator-CLbCar9e.js} +1 -1
  218. package/payload/server/public/assets/operator-CLbCar9e.js.br +0 -0
  219. package/payload/server/public/assets/operator-CLbCar9e.js.gz +0 -0
  220. package/payload/server/public/assets/{page-DWkUH4Z_.js → page-CNJl3tWT.js} +1 -1
  221. package/payload/server/public/assets/page-CNJl3tWT.js.br +0 -0
  222. package/payload/server/public/assets/page-CNJl3tWT.js.gz +0 -0
  223. package/payload/server/public/assets/{page-987y4JbQ.js → page-CPVUAwb8.js} +1 -1
  224. package/payload/server/public/assets/page-CPVUAwb8.js.br +0 -0
  225. package/payload/server/public/assets/page-CPVUAwb8.js.gz +0 -0
  226. package/payload/server/public/assets/{public-D5pi-VFn.js → public-DQea3Ybz.js} +1 -1
  227. package/payload/server/public/assets/public-DQea3Ybz.js.br +0 -0
  228. package/payload/server/public/assets/public-DQea3Ybz.js.gz +0 -0
  229. package/payload/server/public/assets/{rotate-ccw-zNxnK36R.js → rotate-ccw-DPw0vXC0.js} +1 -1
  230. package/payload/server/public/assets/rotate-ccw-DPw0vXC0.js.br +0 -0
  231. package/payload/server/public/assets/rotate-ccw-DPw0vXC0.js.gz +0 -0
  232. package/payload/server/public/assets/{routines-mZzrGA5y.js → routines-CwiiYpfK.js} +2 -2
  233. package/payload/server/public/assets/routines-CwiiYpfK.js.br +0 -0
  234. package/payload/server/public/assets/routines-CwiiYpfK.js.gz +0 -0
  235. package/payload/server/public/assets/{skills-5A8PockT.js → skills-0FOjKUM-.js} +1 -1
  236. package/payload/server/public/assets/skills-0FOjKUM-.js.br +0 -0
  237. package/payload/server/public/assets/skills-0FOjKUM-.js.gz +0 -0
  238. package/payload/server/public/assets/{tasks-B1_2wc6L.js → tasks-BUVsPEGm.js} +1 -1
  239. package/payload/server/public/assets/tasks-BUVsPEGm.js.br +0 -0
  240. package/payload/server/public/assets/tasks-BUVsPEGm.js.gz +0 -0
  241. package/payload/server/public/assets/{time-entry-format-CJ2FSSQt.js → time-entry-format-B6fX_19a.js} +1 -1
  242. package/payload/server/public/assets/time-entry-format-B6fX_19a.js.br +0 -0
  243. package/payload/server/public/assets/time-entry-format-B6fX_19a.js.gz +0 -0
  244. package/payload/server/public/assets/{triangle-alert-CedsrgME.js → triangle-alert-vAaSDhVq.js} +1 -1
  245. package/payload/server/public/assets/triangle-alert-vAaSDhVq.js.br +0 -0
  246. package/payload/server/public/assets/triangle-alert-vAaSDhVq.js.gz +0 -0
  247. package/payload/server/public/assets/{useCopyFeedback-zjZZUC2-.js → useCopyFeedback-BvIRgs7W.js} +1 -1
  248. package/payload/server/public/assets/useCopyFeedback-BvIRgs7W.js.br +0 -0
  249. package/payload/server/public/assets/useCopyFeedback-BvIRgs7W.js.gz +0 -0
  250. package/payload/server/public/assets/{useSubAccountSwitcher-72THldvm.css → useSubAccountSwitcher-DM5Y9eio.css} +1 -1
  251. package/payload/server/public/assets/useSubAccountSwitcher-DM5Y9eio.css.br +0 -0
  252. package/payload/server/public/assets/{useSubAccountSwitcher-72THldvm.css.gz → useSubAccountSwitcher-DM5Y9eio.css.gz} +0 -0
  253. package/payload/server/public/assets/{useVoiceRecorder-CJecnefX.js → useVoiceRecorder-CiDOh8PG.js} +1 -1
  254. package/payload/server/public/assets/useVoiceRecorder-CiDOh8PG.js.br +0 -0
  255. package/payload/server/public/assets/useVoiceRecorder-CiDOh8PG.js.gz +0 -0
  256. package/payload/server/public/assets/{wrench-D8BH20W8.js → wrench-BNBtwT2p.js} +1 -1
  257. package/payload/server/public/assets/wrench-BNBtwT2p.js.br +0 -0
  258. package/payload/server/public/assets/wrench-BNBtwT2p.js.gz +0 -0
  259. package/payload/server/public/browser.html +5 -5
  260. package/payload/server/public/calendar.html +7 -7
  261. package/payload/server/public/chat.html +13 -13
  262. package/payload/server/public/data.html +12 -12
  263. package/payload/server/public/graph.html +9 -9
  264. package/payload/server/public/index.html +16 -16
  265. package/payload/server/public/operator.html +15 -15
  266. package/payload/server/public/public.html +13 -13
  267. package/payload/server/public/routines.html +7 -7
  268. package/payload/server/public/skills.html +5 -5
  269. package/payload/server/public/tasks.html +6 -6
  270. package/payload/server/server.js +73 -19
  271. package/payload/platform/plugins/linkedin-extension/extension/assets/pill.css +0 -52
  272. package/payload/platform/plugins/linkedin-extension/extension/content/profile.js +0 -100
  273. package/payload/platform/plugins/linkedin-extension/extension/content/thread.js +0 -102
  274. package/payload/server/public/assets/AdminLoginScreens-zfexKfbT.js.br +0 -0
  275. package/payload/server/public/assets/AdminLoginScreens-zfexKfbT.js.gz +0 -0
  276. package/payload/server/public/assets/AdminShell-Cbk0TL1B.js.br +0 -0
  277. package/payload/server/public/assets/AdminShell-Cbk0TL1B.js.gz +0 -0
  278. package/payload/server/public/assets/CdpScreencastSurface-CLSQHh4e.js.br +0 -0
  279. package/payload/server/public/assets/CdpScreencastSurface-CLSQHh4e.js.gz +0 -0
  280. package/payload/server/public/assets/activity-u275Oc-u.js.br +0 -0
  281. package/payload/server/public/assets/activity-u275Oc-u.js.gz +0 -0
  282. package/payload/server/public/assets/admin-Du1nR_hP.js.br +0 -0
  283. package/payload/server/public/assets/admin-Du1nR_hP.js.gz +0 -0
  284. package/payload/server/public/assets/agents-DJTxRLLU.js.br +0 -0
  285. package/payload/server/public/assets/agents-DJTxRLLU.js.gz +0 -0
  286. package/payload/server/public/assets/browser-Bft6zVkX.js.br +0 -0
  287. package/payload/server/public/assets/browser-Bft6zVkX.js.gz +0 -0
  288. package/payload/server/public/assets/calendar-Ct-DCCqY.js.br +0 -0
  289. package/payload/server/public/assets/calendar-Ct-DCCqY.js.gz +0 -0
  290. package/payload/server/public/assets/chat-pqasbAg8.js +0 -1
  291. package/payload/server/public/assets/chat-pqasbAg8.js.br +0 -0
  292. package/payload/server/public/assets/chat-pqasbAg8.js.gz +0 -0
  293. package/payload/server/public/assets/chevron-left-C8LTc7lb.js +0 -1
  294. package/payload/server/public/assets/chevron-right-Lz9t7Hed.js +0 -1
  295. package/payload/server/public/assets/chevron-right-Lz9t7Hed.js.br +0 -0
  296. package/payload/server/public/assets/clock-D6QQFHwJ.js +0 -1
  297. package/payload/server/public/assets/clock-D6QQFHwJ.js.br +0 -0
  298. package/payload/server/public/assets/clock-D6QQFHwJ.js.gz +0 -0
  299. package/payload/server/public/assets/data-B1JJ3Y1T.js +0 -1
  300. package/payload/server/public/assets/data-B1JJ3Y1T.js.br +0 -0
  301. package/payload/server/public/assets/data-B1JJ3Y1T.js.gz +0 -0
  302. package/payload/server/public/assets/file-download-C_fSe4dm.js.br +0 -0
  303. package/payload/server/public/assets/file-download-C_fSe4dm.js.gz +0 -0
  304. package/payload/server/public/assets/file-text-D7GbEcqj.js.br +0 -0
  305. package/payload/server/public/assets/file-text-D7GbEcqj.js.gz +0 -0
  306. package/payload/server/public/assets/graph-labels-Dlcb6cW7.js.br +0 -0
  307. package/payload/server/public/assets/graph-labels-Dlcb6cW7.js.gz +0 -0
  308. package/payload/server/public/assets/graph-yl5qU1kO.js.br +0 -0
  309. package/payload/server/public/assets/graph-yl5qU1kO.js.gz +0 -0
  310. package/payload/server/public/assets/maximize-2-BS689r4W.js.br +0 -0
  311. package/payload/server/public/assets/maximize-2-BS689r4W.js.gz +0 -0
  312. package/payload/server/public/assets/operator-CvapnpIW.js.br +0 -0
  313. package/payload/server/public/assets/operator-CvapnpIW.js.gz +0 -0
  314. package/payload/server/public/assets/page-987y4JbQ.js.br +0 -0
  315. package/payload/server/public/assets/page-987y4JbQ.js.gz +0 -0
  316. package/payload/server/public/assets/page-DWkUH4Z_.js.br +0 -0
  317. package/payload/server/public/assets/page-DWkUH4Z_.js.gz +0 -0
  318. package/payload/server/public/assets/public-D5pi-VFn.js.br +0 -0
  319. package/payload/server/public/assets/public-D5pi-VFn.js.gz +0 -0
  320. package/payload/server/public/assets/rotate-ccw-zNxnK36R.js.br +0 -0
  321. package/payload/server/public/assets/rotate-ccw-zNxnK36R.js.gz +0 -0
  322. package/payload/server/public/assets/routines-mZzrGA5y.js.br +0 -0
  323. package/payload/server/public/assets/routines-mZzrGA5y.js.gz +0 -0
  324. package/payload/server/public/assets/skills-5A8PockT.js.br +0 -0
  325. package/payload/server/public/assets/skills-5A8PockT.js.gz +0 -0
  326. package/payload/server/public/assets/tasks-B1_2wc6L.js.br +0 -0
  327. package/payload/server/public/assets/tasks-B1_2wc6L.js.gz +0 -0
  328. package/payload/server/public/assets/time-entry-format-CJ2FSSQt.js.br +0 -0
  329. package/payload/server/public/assets/time-entry-format-CJ2FSSQt.js.gz +0 -0
  330. package/payload/server/public/assets/triangle-alert-CedsrgME.js.br +0 -0
  331. package/payload/server/public/assets/triangle-alert-CedsrgME.js.gz +0 -0
  332. package/payload/server/public/assets/useCopyFeedback-zjZZUC2-.js.br +0 -0
  333. package/payload/server/public/assets/useCopyFeedback-zjZZUC2-.js.gz +0 -0
  334. package/payload/server/public/assets/useSubAccountSwitcher-72THldvm.css.br +0 -0
  335. package/payload/server/public/assets/useVoiceRecorder-CJecnefX.js.br +0 -0
  336. package/payload/server/public/assets/useVoiceRecorder-CJecnefX.js.gz +0 -0
  337. package/payload/server/public/assets/wrench-D8BH20W8.js.br +0 -0
  338. package/payload/server/public/assets/wrench-D8BH20W8.js.gz +0 -0
  339. /package/payload/server/public/assets/{useSubAccountSwitcher-HjQZjJBr.js → useSubAccountSwitcher-BEwQMRMo.js} +0 -0
  340. /package/payload/server/public/assets/{useSubAccountSwitcher-HjQZjJBr.js.br → useSubAccountSwitcher-BEwQMRMo.js.br} +0 -0
  341. /package/payload/server/public/assets/{useSubAccountSwitcher-HjQZjJBr.js.gz → useSubAccountSwitcher-BEwQMRMo.js.gz} +0 -0
package/dist/index.js CHANGED
@@ -3385,6 +3385,19 @@ function setupAccount() {
3385
3385
  logFile(` [neo4j] passing NEO4J_URI=${neo4jUri} to seed`);
3386
3386
  shell("bash", [seedScript], { cwd: INSTALL_DIR, env: neo4jEnv });
3387
3387
  }
3388
+ // Task 2213 — converge :Event.startDate onto canonical UTC. The dispatcher
3389
+ // compares startDate to new Date().toISOString() LEXICALLY, so a row storing
3390
+ // a +01:00 offset fires 60 minutes late under BST. Runs after the seed so the
3391
+ // schema exists, with the same Neo4j env, and needs PLATFORM_ROOT to scope
3392
+ // itself to this install's accounts on a shared Neo4j. Idempotent: a converged
3393
+ // install rewrites nothing and prints op=done rewritten=0.
3394
+ const convergeStartDate = join(INSTALL_DIR, "platform/plugins/scheduling/mcp/dist/scripts/converge-startdate-utc.js");
3395
+ if (existsSync(convergeStartDate)) {
3396
+ shell("node", [convergeStartDate], {
3397
+ cwd: INSTALL_DIR,
3398
+ env: { ...neo4jEnv, PLATFORM_ROOT: join(INSTALL_DIR, "platform") },
3399
+ });
3400
+ }
3388
3401
  // Task 165 — register every bundled specialist subagent at
3389
3402
  // $CLAUDE_CONFIG_DIR/agents/<name>.md. Claude Code's `--agent <name>`
3390
3403
  // discovery only resolves under this path; without these symlinks,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rubytech/create-sitedesk-code",
3
- "version": "0.1.529",
3
+ "version": "0.1.531",
4
4
  "description": "Install SiteDesk — automated back office for independent building contractors",
5
5
  "bin": {
6
6
  "create-sitedesk-code": "./dist/index.js"
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,YAAY,CAAC;AAK3B,cAAc,8BAA8B,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAEH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,MAAM,CAQvD,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,MAAM,CAIvD,CAAC;AASH;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,MAAM,CAYpD,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,WAAW,CAAC,MAAM,CAEtD,CAAC;AAuCH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,UAAU,GAAG,UAAU,CAAC;IACnC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6FAA6F;IAC7F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uFAAuF;IACvF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,4EAA4E;IAC5E,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,SAAS,EAAE,SAAS,CAAC;IACrB;;;;;;;;;;OAUG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB;;;;;OAKG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB;AAgBD,uDAAuD;AACvD,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,SAAS,EAAE,SAAS,GACnB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQzB;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC,eAAe,CAAC,CAiU1B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,YAAY,CAAC;AAK3B,cAAc,8BAA8B,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAEH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,MAAM,CAQvD,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,MAAM,CAIvD,CAAC;AASH;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,MAAM,CAgBpD,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,WAAW,CAAC,MAAM,CAEtD,CAAC;AAuCH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,UAAU,GAAG,UAAU,CAAC;IACnC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6FAA6F;IAC7F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uFAAuF;IACvF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,4EAA4E;IAC5E,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,SAAS,EAAE,SAAS,CAAC;IACrB;;;;;;;;;;OAUG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB;;;;;OAKG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB;AAgBD,uDAAuD;AACvD,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,SAAS,EAAE,SAAS,GACnB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQzB;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC,eAAe,CAAC,CAiU1B"}
@@ -138,6 +138,10 @@ exports.VECTOR_INDEXED_LABELS = new Set([
138
138
  // Knowledge-work vertical — the seven gap labels, each carrying a
139
139
  // CREATE VECTOR INDEX in schema.cypher so the chokepoint auto-embeds them.
140
140
  "Objective", "KeyResult", "Decision", "Risk", "Source", "Finding", "Hypothesis",
141
+ // Task 2220 — :Learning carries learning_embedding, which learnings-derive
142
+ // queries by name to reconcile a claim against an existing learning. Without
143
+ // it here the chokepoint cannot detect a null-embedding Learning write.
144
+ "Learning",
141
145
  ]);
142
146
  /**
143
147
  * Document/archive labels whose primary content is a long body. The safety-net
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -124,6 +124,10 @@ export const VECTOR_INDEXED_LABELS: ReadonlySet<string> = new Set([
124
124
  // Knowledge-work vertical — the seven gap labels, each carrying a
125
125
  // CREATE VECTOR INDEX in schema.cypher so the chokepoint auto-embeds them.
126
126
  "Objective", "KeyResult", "Decision", "Risk", "Source", "Finding", "Hypothesis",
127
+ // Task 2220 — :Learning carries learning_embedding, which learnings-derive
128
+ // queries by name to reconcile a claim against an existing learning. Without
129
+ // it here the chokepoint cannot detect a null-embedding Learning write.
130
+ "Learning",
127
131
  ]);
128
132
 
129
133
  /**
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Task 2220 — the learning confidence curve, in one module.
3
+ *
4
+ * Values mirror the preference curve (neo4j-store.ts:2154-2159 and
5
+ * profile-update.ts:15-17), which is duplicated across two processes with
6
+ * nothing enforcing agreement. Learnings do not repeat that mistake: every
7
+ * consumer imports from here.
8
+ *
9
+ * The preference constants are deliberately NOT migrated onto this module —
10
+ * that is a separate change with its own blast radius.
11
+ */
12
+ /** Confidence a newly created :Learning starts at. */
13
+ export declare const LEARNING_INITIAL_CONFIDENCE = 0.5;
14
+ /** Applied as `c + LEARNING_REINFORCEMENT_INCREMENT * (1 - c)` on re-observation. */
15
+ export declare const LEARNING_REINFORCEMENT_INCREMENT = 0.15;
16
+ /** Subtracted outright when a claim contradicts an existing learning. */
17
+ export declare const LEARNING_CONTRADICTION_DECREMENT = 0.3;
18
+ /** No decay at all inside this many days of `observedAt`. */
19
+ export declare const LEARNING_DECAY_THRESHOLD_DAYS = 14;
20
+ /** Linear decay per day once past the threshold. */
21
+ export declare const LEARNING_DECAY_RATE_PER_DAY = 0.05;
22
+ /** A learning's title reaches the system prompt only at or above this confidence. */
23
+ export declare const LEARNING_INDEX_THRESHOLD = 0.4;
24
+ /** Hard cap on injected titles, regardless of how many clear the threshold. */
25
+ export declare const MAX_INDEXED_LEARNINGS = 30;
26
+ /**
27
+ * The decay curve, as a pure function so the tool, the injection read and the
28
+ * tests all agree by construction.
29
+ *
30
+ * `observedAt` is an ISO string because that is what graph writes persist. An
31
+ * unparseable value returns `confidence` unchanged rather than collapsing to
32
+ * NaN — a bad timestamp must not silently zero a real learning.
33
+ */
34
+ export declare function decayedConfidence(confidence: number, observedAt: string, now: Date): number;
35
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,sDAAsD;AACtD,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C,qFAAqF;AACrF,eAAO,MAAM,gCAAgC,OAAO,CAAC;AAErD,yEAAyE;AACzE,eAAO,MAAM,gCAAgC,MAAM,CAAC;AAEpD,6DAA6D;AAC7D,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAEhD,oDAAoD;AACpD,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAEhD,qFAAqF;AACrF,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,+EAA+E;AAC/E,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAIxC;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,IAAI,GACR,MAAM,CASR"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ /**
3
+ * Task 2220 — the learning confidence curve, in one module.
4
+ *
5
+ * Values mirror the preference curve (neo4j-store.ts:2154-2159 and
6
+ * profile-update.ts:15-17), which is duplicated across two processes with
7
+ * nothing enforcing agreement. Learnings do not repeat that mistake: every
8
+ * consumer imports from here.
9
+ *
10
+ * The preference constants are deliberately NOT migrated onto this module —
11
+ * that is a separate change with its own blast radius.
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.MAX_INDEXED_LEARNINGS = exports.LEARNING_INDEX_THRESHOLD = exports.LEARNING_DECAY_RATE_PER_DAY = exports.LEARNING_DECAY_THRESHOLD_DAYS = exports.LEARNING_CONTRADICTION_DECREMENT = exports.LEARNING_REINFORCEMENT_INCREMENT = exports.LEARNING_INITIAL_CONFIDENCE = void 0;
15
+ exports.decayedConfidence = decayedConfidence;
16
+ /** Confidence a newly created :Learning starts at. */
17
+ exports.LEARNING_INITIAL_CONFIDENCE = 0.5;
18
+ /** Applied as `c + LEARNING_REINFORCEMENT_INCREMENT * (1 - c)` on re-observation. */
19
+ exports.LEARNING_REINFORCEMENT_INCREMENT = 0.15;
20
+ /** Subtracted outright when a claim contradicts an existing learning. */
21
+ exports.LEARNING_CONTRADICTION_DECREMENT = 0.3;
22
+ /** No decay at all inside this many days of `observedAt`. */
23
+ exports.LEARNING_DECAY_THRESHOLD_DAYS = 14;
24
+ /** Linear decay per day once past the threshold. */
25
+ exports.LEARNING_DECAY_RATE_PER_DAY = 0.05;
26
+ /** A learning's title reaches the system prompt only at or above this confidence. */
27
+ exports.LEARNING_INDEX_THRESHOLD = 0.4;
28
+ /** Hard cap on injected titles, regardless of how many clear the threshold. */
29
+ exports.MAX_INDEXED_LEARNINGS = 30;
30
+ const MS_PER_DAY = 86_400_000;
31
+ /**
32
+ * The decay curve, as a pure function so the tool, the injection read and the
33
+ * tests all agree by construction.
34
+ *
35
+ * `observedAt` is an ISO string because that is what graph writes persist. An
36
+ * unparseable value returns `confidence` unchanged rather than collapsing to
37
+ * NaN — a bad timestamp must not silently zero a real learning.
38
+ */
39
+ function decayedConfidence(confidence, observedAt, now) {
40
+ const observed = Date.parse(observedAt);
41
+ if (Number.isNaN(observed))
42
+ return confidence;
43
+ const ageDays = (now.getTime() - observed) / MS_PER_DAY;
44
+ if (ageDays <= exports.LEARNING_DECAY_THRESHOLD_DAYS)
45
+ return confidence;
46
+ const decayed = confidence -
47
+ (ageDays - exports.LEARNING_DECAY_THRESHOLD_DAYS) * exports.LEARNING_DECAY_RATE_PER_DAY;
48
+ return decayed > 0 ? decayed : 0;
49
+ }
50
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAiCH,8CAaC;AA5CD,sDAAsD;AACzC,QAAA,2BAA2B,GAAG,GAAG,CAAC;AAE/C,qFAAqF;AACxE,QAAA,gCAAgC,GAAG,IAAI,CAAC;AAErD,yEAAyE;AAC5D,QAAA,gCAAgC,GAAG,GAAG,CAAC;AAEpD,6DAA6D;AAChD,QAAA,6BAA6B,GAAG,EAAE,CAAC;AAEhD,oDAAoD;AACvC,QAAA,2BAA2B,GAAG,IAAI,CAAC;AAEhD,qFAAqF;AACxE,QAAA,wBAAwB,GAAG,GAAG,CAAC;AAE5C,+EAA+E;AAClE,QAAA,qBAAqB,GAAG,EAAE,CAAC;AAExC,MAAM,UAAU,GAAG,UAAU,CAAC;AAE9B;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAC/B,UAAkB,EAClB,UAAkB,EAClB,GAAS;IAET,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACxC,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;QAAE,OAAO,UAAU,CAAC;IAC9C,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,GAAG,UAAU,CAAC;IACxD,IAAI,OAAO,IAAI,qCAA6B;QAAE,OAAO,UAAU,CAAC;IAChE,MAAM,OAAO,GACX,UAAU;QACV,CAAC,OAAO,GAAG,qCAA6B,CAAC,GAAG,mCAA2B,CAAC;IAC1E,OAAO,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC"}
@@ -0,0 +1,7 @@
1
+ {
2
+ "name": "@maxy/learning-constants",
3
+ "version": "0.1.0",
4
+ "private": true,
5
+ "type": "commonjs",
6
+ "main": "dist/index.js"
7
+ }
@@ -0,0 +1,47 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import {
3
+ LEARNING_INITIAL_CONFIDENCE,
4
+ LEARNING_REINFORCEMENT_INCREMENT,
5
+ LEARNING_CONTRADICTION_DECREMENT,
6
+ LEARNING_DECAY_THRESHOLD_DAYS,
7
+ LEARNING_DECAY_RATE_PER_DAY,
8
+ LEARNING_INDEX_THRESHOLD,
9
+ MAX_INDEXED_LEARNINGS,
10
+ decayedConfidence,
11
+ } from "./index";
12
+
13
+ describe("learning constants", () => {
14
+ it("pins the seven values to the preference curve they mirror", () => {
15
+ expect(LEARNING_INITIAL_CONFIDENCE).toBe(0.5);
16
+ expect(LEARNING_REINFORCEMENT_INCREMENT).toBe(0.15);
17
+ expect(LEARNING_CONTRADICTION_DECREMENT).toBe(0.3);
18
+ expect(LEARNING_DECAY_THRESHOLD_DAYS).toBe(14);
19
+ expect(LEARNING_DECAY_RATE_PER_DAY).toBe(0.05);
20
+ expect(LEARNING_INDEX_THRESHOLD).toBe(0.4);
21
+ expect(MAX_INDEXED_LEARNINGS).toBe(30);
22
+ });
23
+ });
24
+
25
+ describe("decayedConfidence", () => {
26
+ const now = new Date("2026-07-30T00:00:00.000Z");
27
+ const daysAgo = (n: number) =>
28
+ new Date(now.getTime() - n * 86_400_000).toISOString();
29
+
30
+ it("does not decay inside the threshold", () => {
31
+ expect(decayedConfidence(0.8, daysAgo(13), now)).toBe(0.8);
32
+ expect(decayedConfidence(0.8, daysAgo(14), now)).toBe(0.8);
33
+ });
34
+
35
+ it("decays linearly past the threshold", () => {
36
+ expect(decayedConfidence(0.8, daysAgo(15), now)).toBeCloseTo(0.75, 10);
37
+ expect(decayedConfidence(0.8, daysAgo(20), now)).toBeCloseTo(0.5, 10);
38
+ });
39
+
40
+ it("floors at zero", () => {
41
+ expect(decayedConfidence(0.1, daysAgo(100), now)).toBe(0);
42
+ });
43
+
44
+ it("returns the input unchanged when observedAt is unparseable", () => {
45
+ expect(decayedConfidence(0.8, "not-a-date", now)).toBe(0.8);
46
+ });
47
+ });
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Task 2220 — the learning confidence curve, in one module.
3
+ *
4
+ * Values mirror the preference curve (neo4j-store.ts:2154-2159 and
5
+ * profile-update.ts:15-17), which is duplicated across two processes with
6
+ * nothing enforcing agreement. Learnings do not repeat that mistake: every
7
+ * consumer imports from here.
8
+ *
9
+ * The preference constants are deliberately NOT migrated onto this module —
10
+ * that is a separate change with its own blast radius.
11
+ */
12
+
13
+ /** Confidence a newly created :Learning starts at. */
14
+ export const LEARNING_INITIAL_CONFIDENCE = 0.5;
15
+
16
+ /** Applied as `c + LEARNING_REINFORCEMENT_INCREMENT * (1 - c)` on re-observation. */
17
+ export const LEARNING_REINFORCEMENT_INCREMENT = 0.15;
18
+
19
+ /** Subtracted outright when a claim contradicts an existing learning. */
20
+ export const LEARNING_CONTRADICTION_DECREMENT = 0.3;
21
+
22
+ /** No decay at all inside this many days of `observedAt`. */
23
+ export const LEARNING_DECAY_THRESHOLD_DAYS = 14;
24
+
25
+ /** Linear decay per day once past the threshold. */
26
+ export const LEARNING_DECAY_RATE_PER_DAY = 0.05;
27
+
28
+ /** A learning's title reaches the system prompt only at or above this confidence. */
29
+ export const LEARNING_INDEX_THRESHOLD = 0.4;
30
+
31
+ /** Hard cap on injected titles, regardless of how many clear the threshold. */
32
+ export const MAX_INDEXED_LEARNINGS = 30;
33
+
34
+ const MS_PER_DAY = 86_400_000;
35
+
36
+ /**
37
+ * The decay curve, as a pure function so the tool, the injection read and the
38
+ * tests all agree by construction.
39
+ *
40
+ * `observedAt` is an ISO string because that is what graph writes persist. An
41
+ * unparseable value returns `confidence` unchanged rather than collapsing to
42
+ * NaN — a bad timestamp must not silently zero a real learning.
43
+ */
44
+ export function decayedConfidence(
45
+ confidence: number,
46
+ observedAt: string,
47
+ now: Date,
48
+ ): number {
49
+ const observed = Date.parse(observedAt);
50
+ if (Number.isNaN(observed)) return confidence;
51
+ const ageDays = (now.getTime() - observed) / MS_PER_DAY;
52
+ if (ageDays <= LEARNING_DECAY_THRESHOLD_DAYS) return confidence;
53
+ const decayed =
54
+ confidence -
55
+ (ageDays - LEARNING_DECAY_THRESHOLD_DAYS) * LEARNING_DECAY_RATE_PER_DAY;
56
+ return decayed > 0 ? decayed : 0;
57
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "extends": "../../tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "outDir": "dist",
5
+ "rootDir": "src"
6
+ },
7
+ "include": ["src"],
8
+ "exclude": ["src/**/*.test.ts"]
9
+ }
@@ -70,6 +70,14 @@ export interface RoutineVerifyCounts {
70
70
  actual: number;
71
71
  suspended: number;
72
72
  nextRunNull: number;
73
+ /** Task 2214 — roster rows holding no description. Zero is the healthy value
74
+ * on every account, not only a fresh one: `VERIFY_CYPHER` matches
75
+ * `routineTemplate IS NOT NULL`, so operator-created routines are outside
76
+ * its scope and cannot contribute, and `ON MATCH` writes the description
77
+ * unconditionally, so an operator-edited row is covered too. Anything above
78
+ * zero while `expected === actual` is a MERGE that wrote no description —
79
+ * the one failure here that emits no error and does not reproduce. */
80
+ descNull: number;
73
81
  }
74
82
  export interface RoutineSeedReport {
75
83
  accountId: string;
@@ -114,11 +122,19 @@ export declare function resolveOwnerTimezone(session: SeedSessionLike, accountId
114
122
  * `agentChannel`, not `agentDestination`, not `recurrence`, not `timezone`. A
115
123
  * re-seed on upgrade must not re-suspend an enabled routine, unbind a bound
116
124
  * destination, or reset a retimed cron. Only the prompt, the name and the
117
- * version move, and only when the row is behind and unedited. */
118
- export declare const MERGE_CYPHER = "\nUNWIND $rows AS row\nOPTIONAL MATCH (pre:Event {accountId: $accountId, routineTemplate: row.key})\nWITH row,\n pre IS NOT NULL AS existed,\n coalesce(pre.routineTemplateVersion, 0) AS priorVersion,\n pre.operatorEdited IS NOT NULL AS edited\nWITH row, existed, priorVersion, edited,\n (existed AND NOT edited AND priorVersion < $version) AS refreshing\nMERGE (e:Event {accountId: $accountId, routineTemplate: row.key})\n ON CREATE SET e.eventId = randomUUID(),\n e.name = row.name,\n e.agentPrompt = row.prompt,\n e.recurrence = row.recurrence,\n e.routineTemplateVersion = $version,\n e.eventStatus = 'suspended',\n e.nextRun = null,\n e.agentChannel = null,\n e.agentDestination = null,\n e.actionPlugin = null,\n e.actionTool = null,\n e.actionArgs = null,\n e.sourcePlugin = null,\n e.timezone = $timezone,\n e.createdBySource = 'installer',\n e.createdByAgent = 'system',\n e.createdByTool = 'routine-roster-seed',\n e.createdAt = $now,\n e.updatedAt = $now\n ON MATCH SET e.agentPrompt = CASE WHEN refreshing THEN row.prompt ELSE e.agentPrompt END,\n e.name = CASE WHEN refreshing THEN row.name ELSE e.name END,\n e.routineTemplateVersion = CASE WHEN refreshing THEN $version ELSE e.routineTemplateVersion END,\n e.updatedAt = CASE WHEN refreshing THEN $now ELSE e.updatedAt END\nRETURN row.key AS key,\n e.eventId AS eventId,\n CASE WHEN NOT existed THEN 'create'\n WHEN priorVersion >= $version THEN 'unchanged'\n WHEN edited THEN 'skip-operator-edited'\n ELSE 'refresh-version' END AS action";
125
+ * version move, and only when the row is behind and unedited.
126
+ *
127
+ * `routineDescription` (Task 2214) is the one property ON MATCH writes on
128
+ * every match rather than only on the refresh branch, and that is not an
129
+ * exception to the rule above. It is roster-owned: the routines route projects
130
+ * it but its PATCH field set refuses it, so no operator edit exists for this
131
+ * to overwrite. Gating it on `refreshing` would leave every operator-edited
132
+ * row description-less permanently, because `skip-operator-edited` takes
133
+ * neither branch, and that row's card would show a title and nothing else. */
134
+ export declare const MERGE_CYPHER = "\nUNWIND $rows AS row\nOPTIONAL MATCH (pre:Event {accountId: $accountId, routineTemplate: row.key})\nWITH row,\n pre IS NOT NULL AS existed,\n coalesce(pre.routineTemplateVersion, 0) AS priorVersion,\n pre.operatorEdited IS NOT NULL AS edited\nWITH row, existed, priorVersion, edited,\n (existed AND NOT edited AND priorVersion < $version) AS refreshing\nMERGE (e:Event {accountId: $accountId, routineTemplate: row.key})\n ON CREATE SET e.eventId = randomUUID(),\n e.name = row.name,\n e.routineDescription = row.description,\n e.agentPrompt = row.prompt,\n e.recurrence = row.recurrence,\n e.routineTemplateVersion = $version,\n e.eventStatus = 'suspended',\n e.nextRun = null,\n e.agentChannel = null,\n e.agentDestination = null,\n e.actionPlugin = null,\n e.actionTool = null,\n e.actionArgs = null,\n e.sourcePlugin = null,\n e.timezone = $timezone,\n e.createdBySource = 'installer',\n e.createdByAgent = 'system',\n e.createdByTool = 'routine-roster-seed',\n e.createdAt = $now,\n e.updatedAt = $now\n ON MATCH SET e.agentPrompt = CASE WHEN refreshing THEN row.prompt ELSE e.agentPrompt END,\n e.name = CASE WHEN refreshing THEN row.name ELSE e.name END,\n e.routineDescription = row.description,\n e.routineTemplateVersion = CASE WHEN refreshing THEN $version ELSE e.routineTemplateVersion END,\n e.updatedAt = CASE WHEN refreshing THEN $now ELSE e.updatedAt END\nRETURN row.key AS key,\n e.eventId AS eventId,\n CASE WHEN NOT existed THEN 'create'\n WHEN priorVersion >= $version THEN 'unchanged'\n WHEN edited THEN 'skip-operator-edited'\n ELSE 'refresh-version' END AS action";
119
135
  /** The post-condition read. Counts every roster row the account actually holds,
120
136
  * independently of what the MERGE above believes it wrote. */
121
- export declare const VERIFY_CYPHER = "\nMATCH (e:Event {accountId: $accountId})\nWHERE e.routineTemplate IS NOT NULL\nRETURN count(e) AS actual,\n sum(CASE WHEN e.eventStatus = 'suspended' THEN 1 ELSE 0 END) AS suspended,\n sum(CASE WHEN e.nextRun IS NULL THEN 1 ELSE 0 END) AS nextRunNull";
137
+ export declare const VERIFY_CYPHER = "\nMATCH (e:Event {accountId: $accountId})\nWHERE e.routineTemplate IS NOT NULL\nRETURN count(e) AS actual,\n sum(CASE WHEN e.eventStatus = 'suspended' THEN 1 ELSE 0 END) AS suspended,\n sum(CASE WHEN e.nextRun IS NULL THEN 1 ELSE 0 END) AS nextRunNull,\n sum(CASE WHEN e.routineDescription IS NULL THEN 1 ELSE 0 END) AS descNull";
122
138
  export interface SeedRoutineRosterArgs {
123
139
  session: SeedSessionLike;
124
140
  accountId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EAA4C,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAE7F,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC5F,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD;;;2EAG2E;AAC3E,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,KAAK,CAAC;YAAE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC,CAAC;CAClH;AAED;;;;;;;4EAO4E;AAC5E,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,iBAAiB,GAAG,sBAAsB,GAAG,WAAW,CAAC;AAErG,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAED;;;;;;0EAM0E;AAC1E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,cAAc,EAAE,eAAe,GAAG,QAAQ,CAAC;IAC3C,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf;AAYD;4DAC4D;AAC5D,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,eAAe,EACxB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,eAAe,GAAG,QAAQ,CAAA;CAAE,CAAC,CAa1E;AAED;;;;;;;;;;;;kEAYkE;AAClE,eAAO,MAAM,YAAY,01DAsCwB,CAAC;AAElD;+DAC+D;AAC/D,eAAO,MAAM,aAAa,4QAK+C,CAAC;AAE1E,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,eAAe,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,MAAM,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IACpC,+DAA+D;IAC/D,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B;sEACkE;IAClE,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAyE/F"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EAA4C,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAE7F,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC5F,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD;;;2EAG2E;AAC3E,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,KAAK,CAAC;YAAE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC,CAAC;CAClH;AAED;;;;;;;4EAO4E;AAC5E,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,iBAAiB,GAAG,sBAAsB,GAAG,WAAW,CAAC;AAErG,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAED;;;;;;0EAM0E;AAC1E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;2EAMuE;IACvE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,cAAc,EAAE,eAAe,GAAG,QAAQ,CAAC;IAC3C,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf;AAYD;4DAC4D;AAC5D,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,eAAe,EACxB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,eAAe,GAAG,QAAQ,CAAA;CAAE,CAAC,CAa1E;AAED;;;;;;;;;;;;;;;;;;;;+EAoB+E;AAC/E,eAAO,MAAM,YAAY,28DAwCwB,CAAC;AAElD;+DAC+D;AAC/D,eAAO,MAAM,aAAa,+VAMuD,CAAC;AAElF,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,eAAe,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,MAAM,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IACpC,+DAA+D;IAC/D,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B;sEACkE;IAClE,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAgF/F"}
@@ -90,7 +90,15 @@ async function resolveOwnerTimezone(session, accountId) {
90
90
  * `agentChannel`, not `agentDestination`, not `recurrence`, not `timezone`. A
91
91
  * re-seed on upgrade must not re-suspend an enabled routine, unbind a bound
92
92
  * destination, or reset a retimed cron. Only the prompt, the name and the
93
- * version move, and only when the row is behind and unedited. */
93
+ * version move, and only when the row is behind and unedited.
94
+ *
95
+ * `routineDescription` (Task 2214) is the one property ON MATCH writes on
96
+ * every match rather than only on the refresh branch, and that is not an
97
+ * exception to the rule above. It is roster-owned: the routines route projects
98
+ * it but its PATCH field set refuses it, so no operator edit exists for this
99
+ * to overwrite. Gating it on `refreshing` would leave every operator-edited
100
+ * row description-less permanently, because `skip-operator-edited` takes
101
+ * neither branch, and that row's card would show a title and nothing else. */
94
102
  exports.MERGE_CYPHER = `
95
103
  UNWIND $rows AS row
96
104
  OPTIONAL MATCH (pre:Event {accountId: $accountId, routineTemplate: row.key})
@@ -103,6 +111,7 @@ WITH row, existed, priorVersion, edited,
103
111
  MERGE (e:Event {accountId: $accountId, routineTemplate: row.key})
104
112
  ON CREATE SET e.eventId = randomUUID(),
105
113
  e.name = row.name,
114
+ e.routineDescription = row.description,
106
115
  e.agentPrompt = row.prompt,
107
116
  e.recurrence = row.recurrence,
108
117
  e.routineTemplateVersion = $version,
@@ -122,6 +131,7 @@ MERGE (e:Event {accountId: $accountId, routineTemplate: row.key})
122
131
  e.updatedAt = $now
123
132
  ON MATCH SET e.agentPrompt = CASE WHEN refreshing THEN row.prompt ELSE e.agentPrompt END,
124
133
  e.name = CASE WHEN refreshing THEN row.name ELSE e.name END,
134
+ e.routineDescription = row.description,
125
135
  e.routineTemplateVersion = CASE WHEN refreshing THEN $version ELSE e.routineTemplateVersion END,
126
136
  e.updatedAt = CASE WHEN refreshing THEN $now ELSE e.updatedAt END
127
137
  RETURN row.key AS key,
@@ -137,7 +147,8 @@ MATCH (e:Event {accountId: $accountId})
137
147
  WHERE e.routineTemplate IS NOT NULL
138
148
  RETURN count(e) AS actual,
139
149
  sum(CASE WHEN e.eventStatus = 'suspended' THEN 1 ELSE 0 END) AS suspended,
140
- sum(CASE WHEN e.nextRun IS NULL THEN 1 ELSE 0 END) AS nextRunNull`;
150
+ sum(CASE WHEN e.nextRun IS NULL THEN 1 ELSE 0 END) AS nextRunNull,
151
+ sum(CASE WHEN e.routineDescription IS NULL THEN 1 ELSE 0 END) AS descNull`;
141
152
  /**
142
153
  * Seed (or re-seed) the roster for one account and report what happened.
143
154
  *
@@ -163,7 +174,13 @@ async function seedRoutineRoster(args) {
163
174
  version,
164
175
  timezone,
165
176
  now,
166
- rows: roster.map((r) => ({ key: r.key, name: r.name, prompt: r.prompt, recurrence: r.recurrence })),
177
+ rows: roster.map((r) => ({
178
+ key: r.key,
179
+ name: r.name,
180
+ description: r.description,
181
+ prompt: r.prompt,
182
+ recurrence: r.recurrence,
183
+ })),
167
184
  });
168
185
  const merges = mergeRes.records.map((rec) => ({
169
186
  key: String(rec.get("key")),
@@ -180,9 +197,10 @@ async function seedRoutineRoster(args) {
180
197
  actual: toInt(verifyRec?.get("actual")),
181
198
  suspended: toInt(verifyRec?.get("suspended")),
182
199
  nextRunNull: toInt(verifyRec?.get("nextRunNull")),
200
+ descNull: toInt(verifyRec?.get("descNull")),
183
201
  };
184
202
  log(`[routine-seed] op=verify acct=${acct} expected=${verify.expected} actual=${verify.actual} ` +
185
- `suspended=${verify.suspended} nextRunNull=${verify.nextRunNull}`);
203
+ `suspended=${verify.suspended} nextRunNull=${verify.nextRunNull} descNull=${verify.descNull}`);
186
204
  const created = merges.filter((m) => m.action === "create").length;
187
205
  const refreshed = merges.filter((m) => m.action === "refresh-version").length;
188
206
  const skippedOperatorEdited = merges.filter((m) => m.action === "skip-operator-edited").length;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -3,15 +3,17 @@
3
3
  *
4
4
  * A fresh install used to ship zero routines, so the only working examples
5
5
  * lived in one customer's graph and every operator wrote the prompts from
6
- * scratch. These eleven are the catalogue that ships with the platform instead.
6
+ * scratch. These thirteen are the catalogue that ships with the platform
7
+ * instead.
7
8
  *
8
9
  * Two properties make a routine shippable, and both are load-bearing:
9
10
  *
10
11
  * 1. It resolves its own surfaces at run time. Every prompt opens on
11
12
  * `capabilities-here`, which reports the account's live install set, and
12
13
  * ends the turn without replying when the surface it needs is absent. That
13
- * is what makes the same eleven rows correct on an estate agency, a web studio
14
- * and a field-service install rather than a template someone must edit.
14
+ * is what makes the same thirteen rows correct on an estate agency, a web
15
+ * studio and a field-service install rather than a template someone must
16
+ * edit.
15
17
  *
16
18
  * 2. It names nobody. No prompt carries a person's name, an email address, a
17
19
  * phone number, a hostname or a database name. `scripts/check-routine-
@@ -32,7 +34,7 @@
32
34
  * routine's prompt only when the stored `routineTemplateVersion` is BELOW this
33
35
  * and no operator has edited the row, so an unbumped edit ships to new installs
34
36
  * and never reaches existing ones — bump it in the same commit as the edit. */
35
- export declare const ROUTINE_TEMPLATE_VERSION = 1;
37
+ export declare const ROUTINE_TEMPLATE_VERSION = 2;
36
38
  export interface RoutineTemplate {
37
39
  /** Stable identity. Half of the MERGE key `(accountId, routineTemplate)`, so
38
40
  * it is never renamed: a renamed key seeds a duplicate row and orphans the
@@ -40,15 +42,26 @@ export interface RoutineTemplate {
40
42
  readonly key: string;
41
43
  /** The title shown on `/routines`. */
42
44
  readonly name: string;
45
+ /** One sentence under the title on the card: what this does and what it will
46
+ * not do. Roster-owned and read-only — projected by the routines route but
47
+ * absent from its PATCH field set, so no operator edit exists for the seed to
48
+ * overwrite and the MERGE rewrites it on every match. */
49
+ readonly description: string;
43
50
  /** The proposed cron. Written ON CREATE only, never refreshed, so an operator
44
51
  * who retimes a routine keeps their expression across upgrades. */
45
52
  readonly recurrence: string;
46
53
  /** The injected turn. Refreshed on a version bump when the row is unedited. */
47
54
  readonly prompt: string;
48
55
  }
49
- /** The eleven. Order is the display order on `/routines` before the operator
56
+ /** The thirteen. Order is the display order on `/routines` before the operator
50
57
  * retimes anything: the daily rhythm first, then the reconciles, then the
51
- * weekly, then the standing check. */
58
+ * weekly, then the standing check, then the two health reports.
59
+ *
60
+ * `description` is what the card shows under the title. It says what the row
61
+ * does and, where the row is deliberately narrower than its name suggests,
62
+ * what it will not do — the send it never makes, the write it never performs,
63
+ * the file it never deletes. That second half is the part an operator cannot
64
+ * infer from a title, and it is why the sentence is not just the name again. */
52
65
  export declare const ROUTINE_ROSTER: readonly RoutineTemplate[];
53
66
  /** Every roster key, in roster order. The scheduling heartbeat's `op=roster`
54
67
  * drift check reconciles this expected set against what is actually in the
@@ -1 +1 @@
1
- {"version":3,"file":"roster.d.ts","sourceRoot":"","sources":["../src/roster.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH;;;gFAGgF;AAChF,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,MAAM,WAAW,eAAe;IAC9B;;mEAE+D;IAC/D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;wEACoE;IACpE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,+EAA+E;IAC/E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAwID;;uCAEuC;AACvC,eAAO,MAAM,cAAc,EAAE,SAAS,eAAe,EAYpD,CAAC;AAEF;;6DAE6D;AAC7D,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAAqC,CAAC"}
1
+ {"version":3,"file":"roster.d.ts","sourceRoot":"","sources":["../src/roster.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH;;;gFAGgF;AAChF,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,MAAM,WAAW,eAAe;IAC9B;;mEAE+D;IAC/D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;8DAG0D;IAC1D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;wEACoE;IACpE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,+EAA+E;IAC/E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAgKD;;;;;;;;iFAQiF;AACjF,eAAO,MAAM,cAAc,EAAE,SAAS,eAAe,EAyGpD,CAAC;AAEF;;6DAE6D;AAC7D,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAAqC,CAAC"}