@rubytech/create-maxy-code 0.1.557 → 0.1.559

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 (262) hide show
  1. package/package.json +1 -1
  2. package/payload/platform/plugins/admin/PLUGIN.md +2 -1
  3. package/payload/platform/plugins/admin/mcp/dist/content-producer-authoring-skills.d.ts +1 -1
  4. package/payload/platform/plugins/admin/mcp/dist/content-producer-authoring-skills.d.ts.map +1 -1
  5. package/payload/platform/plugins/admin/mcp/dist/content-producer-authoring-skills.js +7 -0
  6. package/payload/platform/plugins/admin/mcp/dist/content-producer-authoring-skills.js.map +1 -1
  7. package/payload/platform/plugins/admin/mcp/dist/index.js +20 -0
  8. package/payload/platform/plugins/admin/mcp/dist/index.js.map +1 -1
  9. package/payload/platform/plugins/admin/mcp/dist/lib/roster-census.d.ts +14 -0
  10. package/payload/platform/plugins/admin/mcp/dist/lib/roster-census.d.ts.map +1 -0
  11. package/payload/platform/plugins/admin/mcp/dist/lib/roster-census.js +18 -0
  12. package/payload/platform/plugins/admin/mcp/dist/lib/roster-census.js.map +1 -0
  13. package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +43 -1
  14. package/payload/platform/plugins/admin/skills/video-production/SKILL.md +106 -0
  15. package/payload/platform/plugins/admin/skills/video-production/__tests__/registration.sh +54 -0
  16. package/payload/platform/plugins/admin/skills/video-production/references/reel-authoring.md +83 -0
  17. package/payload/platform/plugins/admin/skills/video-production/render.mjs +429 -0
  18. package/payload/platform/plugins/admin/skills/whats-new/SKILL.md +17 -0
  19. package/payload/platform/plugins/docs/PLUGIN.md +1 -0
  20. package/payload/platform/plugins/docs/references/video-production.md +37 -0
  21. package/payload/platform/plugins/filesystem/mcp/dist/lib/result.d.ts +5 -1
  22. package/payload/platform/plugins/filesystem/mcp/dist/lib/result.d.ts.map +1 -1
  23. package/payload/platform/plugins/filesystem/mcp/dist/lib/result.js +4 -1
  24. package/payload/platform/plugins/filesystem/mcp/dist/lib/result.js.map +1 -1
  25. package/payload/platform/plugins/filesystem/mcp/dist/tools/file-read.d.ts.map +1 -1
  26. package/payload/platform/plugins/filesystem/mcp/dist/tools/file-read.js +2 -1
  27. package/payload/platform/plugins/filesystem/mcp/dist/tools/file-read.js.map +1 -1
  28. package/payload/platform/plugins/filesystem/mcp/dist/tools/file-write.d.ts.map +1 -1
  29. package/payload/platform/plugins/filesystem/mcp/dist/tools/file-write.js +2 -1
  30. package/payload/platform/plugins/filesystem/mcp/dist/tools/file-write.js.map +1 -1
  31. package/payload/platform/plugins/scheduling/PLUGIN.md +4 -2
  32. package/payload/platform/plugins/scheduling/mcp/dist/index.js +15 -3
  33. package/payload/platform/plugins/scheduling/mcp/dist/index.js.map +1 -1
  34. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/schedule-audit.test.js +72 -0
  35. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/schedule-audit.test.js.map +1 -1
  36. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/workflow-census.test.d.ts +2 -0
  37. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/workflow-census.test.d.ts.map +1 -0
  38. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/workflow-census.test.js +112 -0
  39. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/workflow-census.test.js.map +1 -0
  40. package/payload/platform/plugins/scheduling/mcp/dist/lib/schedule-audit.d.ts +59 -6
  41. package/payload/platform/plugins/scheduling/mcp/dist/lib/schedule-audit.d.ts.map +1 -1
  42. package/payload/platform/plugins/scheduling/mcp/dist/lib/schedule-audit.js +154 -18
  43. package/payload/platform/plugins/scheduling/mcp/dist/lib/schedule-audit.js.map +1 -1
  44. package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.js +17 -2
  45. package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.js.map +1 -1
  46. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-list-kind.test.d.ts +2 -0
  47. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-list-kind.test.d.ts.map +1 -0
  48. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-list-kind.test.js +25 -0
  49. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-list-kind.test.js.map +1 -0
  50. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-list.d.ts +15 -0
  51. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-list.d.ts.map +1 -1
  52. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-list.js +66 -46
  53. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-list.js.map +1 -1
  54. package/payload/platform/plugins/storage-broker/mcp/dist/index.js +5 -2
  55. package/payload/platform/plugins/storage-broker/mcp/dist/index.js.map +1 -1
  56. package/payload/platform/plugins/url-get/mcp/dist/index.js +13 -13
  57. package/payload/platform/plugins/url-get/mcp/dist/index.js.map +1 -1
  58. package/payload/platform/plugins/workflows/PLUGIN.md +4 -1
  59. package/payload/platform/plugins/workflows/mcp/dist/__tests__/retry-delay.test.d.ts +2 -0
  60. package/payload/platform/plugins/workflows/mcp/dist/__tests__/retry-delay.test.d.ts.map +1 -0
  61. package/payload/platform/plugins/workflows/mcp/dist/__tests__/retry-delay.test.js +33 -0
  62. package/payload/platform/plugins/workflows/mcp/dist/__tests__/retry-delay.test.js.map +1 -0
  63. package/payload/platform/plugins/workflows/mcp/dist/index.js +1 -0
  64. package/payload/platform/plugins/workflows/mcp/dist/index.js.map +1 -1
  65. package/payload/platform/plugins/workflows/mcp/dist/lib/__tests__/step-resolver.test.d.ts +2 -0
  66. package/payload/platform/plugins/workflows/mcp/dist/lib/__tests__/step-resolver.test.d.ts.map +1 -0
  67. package/payload/platform/plugins/workflows/mcp/dist/lib/__tests__/step-resolver.test.js +42 -0
  68. package/payload/platform/plugins/workflows/mcp/dist/lib/__tests__/step-resolver.test.js.map +1 -0
  69. package/payload/platform/plugins/workflows/mcp/dist/lib/step-resolver.d.ts +23 -5
  70. package/payload/platform/plugins/workflows/mcp/dist/lib/step-resolver.d.ts.map +1 -1
  71. package/payload/platform/plugins/workflows/mcp/dist/lib/step-resolver.js +20 -12
  72. package/payload/platform/plugins/workflows/mcp/dist/lib/step-resolver.js.map +1 -1
  73. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-create.d.ts +2 -0
  74. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-create.d.ts.map +1 -1
  75. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-create.js +2 -0
  76. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-create.js.map +1 -1
  77. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.d.ts +10 -0
  78. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.d.ts.map +1 -1
  79. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.js +53 -7
  80. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.js.map +1 -1
  81. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-update.d.ts.map +1 -1
  82. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-update.js +2 -0
  83. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-update.js.map +1 -1
  84. package/payload/platform/scripts/__tests__/provision-honours-disabled-agents.test.sh +4 -3
  85. package/payload/platform/scripts/__tests__/provision-specialist-retirement.test.sh +115 -0
  86. package/payload/platform/scripts/lib/provision-account-dir.sh +88 -13
  87. package/payload/platform/scripts/logs-rotate.sh +6 -1
  88. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
  89. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +48 -0
  90. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
  91. package/payload/platform/services/claude-session-manager/dist/pty-tee.d.ts +16 -0
  92. package/payload/platform/services/claude-session-manager/dist/pty-tee.d.ts.map +1 -0
  93. package/payload/platform/services/claude-session-manager/dist/pty-tee.js +84 -0
  94. package/payload/platform/services/claude-session-manager/dist/pty-tee.js.map +1 -0
  95. package/payload/platform/templates/specialists/agents/content-producer.md +8 -0
  96. package/payload/premium-plugins/writer-craft/agents/writer-craft--manuscript-reviewer.md +2 -0
  97. package/payload/server/public/activity.html +5 -5
  98. package/payload/server/public/agents.html +4 -4
  99. package/payload/server/public/assets/{AdminLoginScreens-DrF7rAcb.js → AdminLoginScreens-DLogIsJT.js} +1 -1
  100. package/payload/server/public/assets/AdminLoginScreens-DLogIsJT.js.br +0 -0
  101. package/payload/server/public/assets/AdminLoginScreens-DLogIsJT.js.gz +0 -0
  102. package/payload/server/public/assets/{AdminShell-BVKfxSgh.js → AdminShell-B67tPTyE.js} +1 -1
  103. package/payload/server/public/assets/AdminShell-B67tPTyE.js.br +0 -0
  104. package/payload/server/public/assets/AdminShell-B67tPTyE.js.gz +0 -0
  105. package/payload/server/public/assets/{activity-CBcvL5MZ.js → activity-AVJSFESV.js} +1 -1
  106. package/payload/server/public/assets/activity-AVJSFESV.js.br +0 -0
  107. package/payload/server/public/assets/activity-AVJSFESV.js.gz +0 -0
  108. package/payload/server/public/assets/{admin-CCB9k3GB.js → admin-eFgbld42.js} +1 -1
  109. package/payload/server/public/assets/admin-eFgbld42.js.br +0 -0
  110. package/payload/server/public/assets/admin-eFgbld42.js.gz +0 -0
  111. package/payload/server/public/assets/{agents-Dzx8Uxgz.js → agents-CoWLZMf7.js} +1 -1
  112. package/payload/server/public/assets/agents-CoWLZMf7.js.br +0 -0
  113. package/payload/server/public/assets/agents-CoWLZMf7.js.gz +0 -0
  114. package/payload/server/public/assets/{browser-B7EsGyVd.js → browser-C6K66_fw.js} +1 -1
  115. package/payload/server/public/assets/browser-C6K66_fw.js.br +0 -0
  116. package/payload/server/public/assets/browser-C6K66_fw.js.gz +0 -0
  117. package/payload/server/public/assets/{calendar-D4qD0upn.js → calendar-Dnw_cP4b.js} +1 -1
  118. package/payload/server/public/assets/calendar-Dnw_cP4b.js.br +0 -0
  119. package/payload/server/public/assets/calendar-Dnw_cP4b.js.gz +0 -0
  120. package/payload/server/public/assets/chat-Cm0fkpg1.js +1 -0
  121. package/payload/server/public/assets/chat-Cm0fkpg1.js.br +0 -0
  122. package/payload/server/public/assets/chat-Cm0fkpg1.js.gz +0 -0
  123. package/payload/server/public/assets/chevron-left-CjRH-BtF.js +1 -0
  124. package/payload/server/public/assets/chevron-left-CjRH-BtF.js.br +0 -0
  125. package/payload/server/public/assets/clock-wbYEt1kM.js +1 -0
  126. package/payload/server/public/assets/clock-wbYEt1kM.js.br +0 -0
  127. package/payload/server/public/assets/clock-wbYEt1kM.js.gz +0 -0
  128. package/payload/server/public/assets/{copy-CG2tAK16.js → copy-kuNM0Etw.js} +1 -1
  129. package/payload/server/public/assets/copy-kuNM0Etw.js.br +0 -0
  130. package/payload/server/public/assets/copy-kuNM0Etw.js.gz +0 -0
  131. package/payload/server/public/assets/data-c47T2NCd.js +1 -0
  132. package/payload/server/public/assets/data-c47T2NCd.js.br +1 -0
  133. package/payload/server/public/assets/data-c47T2NCd.js.gz +0 -0
  134. package/payload/server/public/assets/{file-text-47cIljhV.js → file-text-BWkobrcx.js} +1 -1
  135. package/payload/server/public/assets/file-text-BWkobrcx.js.br +0 -0
  136. package/payload/server/public/assets/file-text-BWkobrcx.js.gz +0 -0
  137. package/payload/server/public/assets/{graph-CDbi-eqF.js → graph-BGjTL5Vz.js} +1 -1
  138. package/payload/server/public/assets/graph-BGjTL5Vz.js.br +0 -0
  139. package/payload/server/public/assets/graph-BGjTL5Vz.js.gz +0 -0
  140. package/payload/server/public/assets/{graph-labels-Byp2RkVg.js → graph-labels-Dvc5Kw_r.js} +1 -1
  141. package/payload/server/public/assets/graph-labels-Dvc5Kw_r.js.br +0 -0
  142. package/payload/server/public/assets/graph-labels-Dvc5Kw_r.js.gz +0 -0
  143. package/payload/server/public/assets/{operator-B0oOVB8R.js → operator-CzBGv_he.js} +1 -1
  144. package/payload/server/public/assets/operator-CzBGv_he.js.br +0 -0
  145. package/payload/server/public/assets/operator-CzBGv_he.js.gz +0 -0
  146. package/payload/server/public/assets/{page-Dfce3YQd.js → page-BIY4Ku8Q.js} +1 -1
  147. package/payload/server/public/assets/page-BIY4Ku8Q.js.br +0 -0
  148. package/payload/server/public/assets/page-BIY4Ku8Q.js.gz +0 -0
  149. package/payload/server/public/assets/{page-DrbfHSQ9.js → page-DaySqamH.js} +1 -1
  150. package/payload/server/public/assets/page-DaySqamH.js.br +0 -0
  151. package/payload/server/public/assets/page-DaySqamH.js.gz +0 -0
  152. package/payload/server/public/assets/play-C8RA52_i.js +1 -0
  153. package/payload/server/public/assets/play-C8RA52_i.js.br +0 -0
  154. package/payload/server/public/assets/play-C8RA52_i.js.gz +0 -0
  155. package/payload/server/public/assets/{public-DJwMfl-4.js → public-pwDSvhBv.js} +1 -1
  156. package/payload/server/public/assets/public-pwDSvhBv.js.br +0 -0
  157. package/payload/server/public/assets/public-pwDSvhBv.js.gz +0 -0
  158. package/payload/server/public/assets/{rotate-ccw-Dbj7NrEB.js → rotate-ccw-B6s7tkEt.js} +1 -1
  159. package/payload/server/public/assets/rotate-ccw-B6s7tkEt.js.br +0 -0
  160. package/payload/server/public/assets/rotate-ccw-B6s7tkEt.js.gz +0 -0
  161. package/payload/server/public/assets/routines-CFlyRdYg.js +2 -0
  162. package/payload/server/public/assets/routines-CFlyRdYg.js.br +0 -0
  163. package/payload/server/public/assets/routines-CFlyRdYg.js.gz +0 -0
  164. package/payload/server/public/assets/{skills-EtKyNK_3.js → skills-C45kfL_Q.js} +1 -1
  165. package/payload/server/public/assets/skills-C45kfL_Q.js.br +0 -0
  166. package/payload/server/public/assets/skills-C45kfL_Q.js.gz +0 -0
  167. package/payload/server/public/assets/{tasks-U0poqfi9.js → tasks-BwoCTCu5.js} +1 -1
  168. package/payload/server/public/assets/tasks-BwoCTCu5.js.br +0 -0
  169. package/payload/server/public/assets/tasks-BwoCTCu5.js.gz +0 -0
  170. package/payload/server/public/assets/{triangle-alert-D7zwttJW.js → triangle-alert-B3bthSzx.js} +1 -1
  171. package/payload/server/public/assets/triangle-alert-B3bthSzx.js.br +0 -0
  172. package/payload/server/public/assets/triangle-alert-B3bthSzx.js.gz +0 -0
  173. package/payload/server/public/assets/{useCopyFeedback-Ae_va0Ps.js → useCopyFeedback-BzJAkFEb.js} +1 -1
  174. package/payload/server/public/assets/useCopyFeedback-BzJAkFEb.js.br +0 -0
  175. package/payload/server/public/assets/useCopyFeedback-BzJAkFEb.js.gz +0 -0
  176. package/payload/server/public/assets/{useMediaQuery-HRgPNA8l.css → useMediaQuery-DW_xRrMl.css} +1 -1
  177. package/payload/server/public/assets/useMediaQuery-DW_xRrMl.css.br +0 -0
  178. package/payload/server/public/assets/{useMediaQuery-HRgPNA8l.css.gz → useMediaQuery-DW_xRrMl.css.gz} +0 -0
  179. package/payload/server/public/assets/useVoiceRecorder-_qI_BAOo.js +2 -0
  180. package/payload/server/public/assets/useVoiceRecorder-_qI_BAOo.js.br +0 -0
  181. package/payload/server/public/assets/useVoiceRecorder-_qI_BAOo.js.gz +0 -0
  182. package/payload/server/public/assets/{wrench-BmXV4Tmh.js → wrench-Bqux9jaw.js} +1 -1
  183. package/payload/server/public/assets/wrench-Bqux9jaw.js.br +0 -0
  184. package/payload/server/public/assets/wrench-Bqux9jaw.js.gz +0 -0
  185. package/payload/server/public/browser.html +4 -4
  186. package/payload/server/public/calendar.html +7 -7
  187. package/payload/server/public/chat.html +13 -13
  188. package/payload/server/public/data.html +11 -11
  189. package/payload/server/public/graph.html +9 -9
  190. package/payload/server/public/index.html +13 -13
  191. package/payload/server/public/operator.html +14 -14
  192. package/payload/server/public/public.html +13 -13
  193. package/payload/server/public/routines.html +7 -7
  194. package/payload/server/public/skills.html +5 -5
  195. package/payload/server/public/tasks.html +6 -6
  196. package/payload/server/server.js +262 -85
  197. package/payload/server/public/assets/AdminLoginScreens-DrF7rAcb.js.br +0 -0
  198. package/payload/server/public/assets/AdminLoginScreens-DrF7rAcb.js.gz +0 -0
  199. package/payload/server/public/assets/AdminShell-BVKfxSgh.js.br +0 -0
  200. package/payload/server/public/assets/AdminShell-BVKfxSgh.js.gz +0 -0
  201. package/payload/server/public/assets/activity-CBcvL5MZ.js.br +0 -0
  202. package/payload/server/public/assets/activity-CBcvL5MZ.js.gz +0 -0
  203. package/payload/server/public/assets/admin-CCB9k3GB.js.br +0 -0
  204. package/payload/server/public/assets/admin-CCB9k3GB.js.gz +0 -0
  205. package/payload/server/public/assets/agents-Dzx8Uxgz.js.br +0 -0
  206. package/payload/server/public/assets/agents-Dzx8Uxgz.js.gz +0 -0
  207. package/payload/server/public/assets/browser-B7EsGyVd.js.br +0 -0
  208. package/payload/server/public/assets/browser-B7EsGyVd.js.gz +0 -0
  209. package/payload/server/public/assets/calendar-D4qD0upn.js.br +0 -0
  210. package/payload/server/public/assets/calendar-D4qD0upn.js.gz +0 -0
  211. package/payload/server/public/assets/chat-BgOUm7r1.js +0 -1
  212. package/payload/server/public/assets/chat-BgOUm7r1.js.br +0 -0
  213. package/payload/server/public/assets/chat-BgOUm7r1.js.gz +0 -0
  214. package/payload/server/public/assets/chevron-left-CGsW9Vsp.js +0 -1
  215. package/payload/server/public/assets/chevron-left-CGsW9Vsp.js.br +0 -0
  216. package/payload/server/public/assets/clock-B_xWWLQW.js +0 -1
  217. package/payload/server/public/assets/clock-B_xWWLQW.js.br +0 -0
  218. package/payload/server/public/assets/clock-B_xWWLQW.js.gz +0 -0
  219. package/payload/server/public/assets/copy-CG2tAK16.js.br +0 -0
  220. package/payload/server/public/assets/copy-CG2tAK16.js.gz +0 -0
  221. package/payload/server/public/assets/data-YEC6LkxI.js +0 -1
  222. package/payload/server/public/assets/data-YEC6LkxI.js.br +0 -0
  223. package/payload/server/public/assets/data-YEC6LkxI.js.gz +0 -0
  224. package/payload/server/public/assets/file-text-47cIljhV.js.br +0 -0
  225. package/payload/server/public/assets/file-text-47cIljhV.js.gz +0 -0
  226. package/payload/server/public/assets/graph-CDbi-eqF.js.br +0 -0
  227. package/payload/server/public/assets/graph-CDbi-eqF.js.gz +0 -0
  228. package/payload/server/public/assets/graph-labels-Byp2RkVg.js.br +0 -0
  229. package/payload/server/public/assets/graph-labels-Byp2RkVg.js.gz +0 -0
  230. package/payload/server/public/assets/operator-B0oOVB8R.js.br +0 -0
  231. package/payload/server/public/assets/operator-B0oOVB8R.js.gz +0 -0
  232. package/payload/server/public/assets/page-Dfce3YQd.js.br +0 -0
  233. package/payload/server/public/assets/page-Dfce3YQd.js.gz +0 -0
  234. package/payload/server/public/assets/page-DrbfHSQ9.js.br +0 -0
  235. package/payload/server/public/assets/page-DrbfHSQ9.js.gz +0 -0
  236. package/payload/server/public/assets/play-Bankj0zU.js +0 -1
  237. package/payload/server/public/assets/play-Bankj0zU.js.br +0 -0
  238. package/payload/server/public/assets/play-Bankj0zU.js.gz +0 -0
  239. package/payload/server/public/assets/public-DJwMfl-4.js.br +0 -0
  240. package/payload/server/public/assets/public-DJwMfl-4.js.gz +0 -0
  241. package/payload/server/public/assets/rotate-ccw-Dbj7NrEB.js.br +0 -0
  242. package/payload/server/public/assets/rotate-ccw-Dbj7NrEB.js.gz +0 -0
  243. package/payload/server/public/assets/routines-CdqGJwyD.js +0 -2
  244. package/payload/server/public/assets/routines-CdqGJwyD.js.br +0 -0
  245. package/payload/server/public/assets/routines-CdqGJwyD.js.gz +0 -0
  246. package/payload/server/public/assets/skills-EtKyNK_3.js.br +0 -0
  247. package/payload/server/public/assets/skills-EtKyNK_3.js.gz +0 -0
  248. package/payload/server/public/assets/tasks-U0poqfi9.js.br +0 -0
  249. package/payload/server/public/assets/tasks-U0poqfi9.js.gz +0 -0
  250. package/payload/server/public/assets/triangle-alert-D7zwttJW.js.br +0 -0
  251. package/payload/server/public/assets/triangle-alert-D7zwttJW.js.gz +0 -0
  252. package/payload/server/public/assets/useCopyFeedback-Ae_va0Ps.js.br +0 -4
  253. package/payload/server/public/assets/useCopyFeedback-Ae_va0Ps.js.gz +0 -0
  254. package/payload/server/public/assets/useMediaQuery-HRgPNA8l.css.br +0 -0
  255. package/payload/server/public/assets/useVoiceRecorder-9qVOHhkb.js +0 -2
  256. package/payload/server/public/assets/useVoiceRecorder-9qVOHhkb.js.br +0 -0
  257. package/payload/server/public/assets/useVoiceRecorder-9qVOHhkb.js.gz +0 -0
  258. package/payload/server/public/assets/wrench-BmXV4Tmh.js.br +0 -0
  259. package/payload/server/public/assets/wrench-BmXV4Tmh.js.gz +0 -0
  260. /package/payload/server/public/assets/{useMediaQuery-DIm6yGOl.js → useMediaQuery-DJ6XeNN7.js} +0 -0
  261. /package/payload/server/public/assets/{useMediaQuery-DIm6yGOl.js.br → useMediaQuery-DJ6XeNN7.js.br} +0 -0
  262. /package/payload/server/public/assets/{useMediaQuery-DIm6yGOl.js.gz → useMediaQuery-DJ6XeNN7.js.gz} +0 -0
@@ -0,0 +1,14 @@
1
+ export interface RosterCensusInput {
2
+ /** `<accountDir>/agents/admin/AGENTS.md` — the admin's routing prose. */
3
+ agentsMdPath: string;
4
+ /** `<accountDir>/specialists/agents` — the directory spawn-context reads. */
5
+ specialistsAgentsDir: string;
6
+ }
7
+ export interface RosterCensusResult {
8
+ declared: number;
9
+ dispatchable: number;
10
+ /** Declared names with no `<name>.md` in the dispatch directory. */
11
+ orphaned: string[];
12
+ }
13
+ export declare function runRosterCensus(input: RosterCensusInput): RosterCensusResult;
14
+ //# sourceMappingURL=roster-census.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roster-census.d.ts","sourceRoot":"","sources":["../../src/lib/roster-census.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,iBAAiB;IAChC,yEAAyE;IACzE,YAAY,EAAE,MAAM,CAAC;IACrB,6EAA6E;IAC7E,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,oEAAoE;IACpE,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,iBAAiB,GAAG,kBAAkB,CAgB5E"}
@@ -0,0 +1,18 @@
1
+ import { existsSync, readFileSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ export function runRosterCensus(input) {
4
+ const body = existsSync(input.agentsMdPath)
5
+ ? readFileSync(input.agentsMdPath, "utf8")
6
+ : "";
7
+ const declared = [];
8
+ for (const match of body.matchAll(/^- \*\*specialists:([^*]+)\*\*:/gm)) {
9
+ declared.push(match[1]);
10
+ }
11
+ const orphaned = declared.filter((name) => !existsSync(join(input.specialistsAgentsDir, `${name}.md`)));
12
+ return {
13
+ declared: declared.length,
14
+ dispatchable: declared.length - orphaned.length,
15
+ orphaned,
16
+ };
17
+ }
18
+ //# sourceMappingURL=roster-census.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roster-census.js","sourceRoot":"","sources":["../../src/lib/roster-census.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AA+BjC,MAAM,UAAU,eAAe,CAAC,KAAwB;IACtD,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC;QACzC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC;QAC1C,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,mCAAmC,CAAC,EAAE,CAAC;QACvE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAC9B,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC,CACtE,CAAC;IACF,OAAO;QACL,QAAQ,EAAE,QAAQ,CAAC,MAAM;QACzB,YAAY,EAAE,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM;QAC/C,QAAQ;KACT,CAAC;AACJ,CAAC"}
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: platform-architecture
3
3
  description: Use when grounding any documented-surface claim about what Maxy ships — plugins, skills, specialists, install/deploy flows, internals. This is the install catalogue, not evidence of what is enabled on the current account. For install state on this account, call `capabilities-here`; for documented surface, cite the `Source:` URL inline.
4
- content-hash: sha256:954efb55d2fa57e9dcf65b855682a265cc70e1b6739d32bce4a59fcd2b0297c6
4
+ content-hash: sha256:0a9fdc97ea6caba4625dfee58ef5c504befcd1adfef8c892330bf95b3c17c3ee
5
5
  brand: maxy-code
6
6
  product-name: Maxy
7
7
  ---
@@ -2346,6 +2346,48 @@ A 25-component design system (title slides, metric cards, quotes, comparison tab
2346
2346
 
2347
2347
  This is a frozen, vendored copy of the open-source Slides™ framework (MIT). It ships installed and available on every account; enable it per session like any other plugin if it is not already active.
2348
2348
 
2349
+ ---
2350
+ # Making Videos
2351
+ Source: https://docs.getmaxy.com/video-production.md
2352
+
2353
+ # Making videos
2354
+
2355
+ Maxy makes real video files on your own device. No upload, no external service, no subscription. Ask for one in plain words.
2356
+
2357
+ > "Make me three social reels about the free trial."
2358
+ >
2359
+ > "Can I have that in portrait and landscape?"
2360
+ >
2361
+ > "Record that page playing its animation."
2362
+
2363
+ ## What you get
2364
+
2365
+ An MP4 file, silent, at whatever size you need. Portrait (1080x1920) for stories and reels, landscape (1920x1080) for a website or a presentation, or any other shape you ask for. Each video comes with a poster image, which is the still that shows before someone presses play.
2366
+
2367
+ Ask for another shape at any time and the same content is recut for it. You do not have to describe it again.
2368
+
2369
+ ## Two kinds of video
2370
+
2371
+ **Made from scratch.** The agent designs the video itself, in your brand's colours and type, and animates it frame by frame. This is what you want for a social reel, an explainer, or anything with a message to land.
2372
+
2373
+ **A recording of a page.** If you already have a page that animates, the agent can record it playing. Useful when the page is the thing you want to show.
2374
+
2375
+ ## How long it takes
2376
+
2377
+ A short reel takes a few minutes. A long recording of a full page can take considerably longer. The agent tells you when it starts and comes back when it is done.
2378
+
2379
+ ## What to check
2380
+
2381
+ The agent looks at four frames from every video it makes before telling you it is finished, so a video that came out blank or with text running off the edge gets caught and re-rendered. You should still watch it. Text that is correct but reads badly is a judgement only you can make.
2382
+
2383
+ ## Where the files go
2384
+
2385
+ Finished videos land in your account's output folder, and the agent sends them to you in the chat. Ask for them on a web page and they get published to your site with everything on one page you can open on a phone.
2386
+
2387
+ ## Fonts
2388
+
2389
+ Videos use the fonts installed on your device. If you want a specific brand font and it has never been used on this device before, say so — it may need installing first.
2390
+
2349
2391
  ---
2350
2392
  # Connectors
2351
2393
  Source: https://docs.getmaxy.com/connectors.md
@@ -0,0 +1,106 @@
1
+ ---
2
+ name: video-production
3
+ description: >
4
+ Produce real MP4 video on the device — social reels, animated explainers, motion
5
+ graphics, and screen recordings of a web page playing its own animation. Renders
6
+ portrait (1080x1920), landscape (1920x1080) or any size, silent, H.264. Use when
7
+ asked for a video, a reel, an MP4, an animation, a motion graphic, a screen
8
+ recording, a social clip, or "can you make that move".
9
+ ---
10
+
11
+ # Video Production
12
+
13
+ **Invoked from `specialists:content-producer`** when the brief asks for moving picture rather than a still or a document.
14
+
15
+ The device already has everything this needs: a headless browser and `ffmpeg` with H.264. Nothing is uploaded and no external service is called. The whole pipeline is one script.
16
+
17
+ ## When to use
18
+
19
+ Activate when the brief wants a **video file**: a social reel, an animated explainer, a motion graphic, a clip of an existing page animating, or a recut of an existing video into another shape.
20
+
21
+ Do **not** activate for a still image (`image-generate`), a PDF (`a4-print-documents`), a slide deck (`deck-pages`), or a screenshot (`browser-screenshot`). Those have their own skills and their own tools.
22
+
23
+ ## The one command
24
+
25
+ ```
26
+ node "$PLATFORM_ROOT/plugins/admin/skills/video-production/render.mjs" \
27
+ --mode <reel|page> --target <path|file:|http:> --out <dir> --name <slug> \
28
+ --width <px> --height <px> [--frames <n>] [--dsf <n>] [--mobile] [--pre '<js>'] [--port 9333]
29
+ ```
30
+
31
+ It resolves the browser, launches its own copy, captures every frame, encodes, writes a poster and four verification stills, tears the browser down and removes the frames. Do not run `ffmpeg` yourself, and do not use the `browser-*` tools for this — they drive the platform's shared browser, whose session you would steal.
32
+
33
+ | Flag | Meaning |
34
+ |---|---|
35
+ | `--mode` | `reel` for an HTML file you author, `page` for a page that animates itself |
36
+ | `--target` | A file path, a `file:` URL, or an `http:` URL |
37
+ | `--out` | Where the MP4 and poster land |
38
+ | `--name` | Slug for the output files and for `run=` in every log line |
39
+ | `--width` / `--height` | 1080x1920 portrait, 1920x1080 landscape, or anything else |
40
+ | `--frames` | **Required in `page` mode.** Ignored in `reel` mode, which reads `window.__frames` |
41
+ | `--dsf` | Device scale factor. Above 1 renders a small CSS viewport at full output size |
42
+ | `--mobile` | Emulate a mobile viewport, so the page takes its narrow layout |
43
+ | `--pre` | JavaScript run once after load, before capture. Scroll to the animation and start it |
44
+
45
+ `--name` is a path component, not a label: letters, digits, dot, dash and underscore only. Render one video at a time. Two runs sharing a `--name` delete each other's frames at start, and two sharing a `--port` fight over the same browser — give each its own `--name` and its own `--port` if you must overlap them.
46
+
47
+ ## Choosing the mode
48
+
49
+ **`reel`** — you author the HTML. It defines `window.__frames` and `window.__seek(i)`, and the driver seeks frame by frame, so the timeline is exact and nothing races. This is the mode for anything designed as a video. Load `references/reel-authoring.md` before writing the file; it carries the contract and the layout traps that cost a re-render last time.
50
+
51
+ **`page`** — the target is a page that animates on its own, and you want a recording of it. The driver advances Chrome's virtual clock one frame at a time, so the page's own animation is captured frame-accurately rather than at whatever speed the device manages. You must supply `--frames`, because the page does not declare a length.
52
+
53
+ In `page` mode, serve the site locally and point at `127.0.0.1`, or use a `file:` URL. Navigating to the public https URL times out. Start a server with `python3 -m http.server <port> --bind 127.0.0.1` from the site directory, and stop it when you are done.
54
+
55
+ Use `--pre` to put the page in its starting state, for example:
56
+
57
+ ```
58
+ --pre 'window.scrollTo(0, document.querySelector(".hero").getBoundingClientRect().top + scrollY - 28); document.getElementById("btnPlay").click()'
59
+ ```
60
+
61
+ ## Long renders
62
+
63
+ A few hundred frames takes minutes and will exceed the two-minute Bash bound. Run it detached and poll for the marker. Never use `sleep` on its own; the harness refuses it.
64
+
65
+ ```bash
66
+ nohup node "$PLATFORM_ROOT/plugins/admin/skills/video-production/render.mjs" \
67
+ --mode reel --target ./reel.html --out "$OUT" --name reel-1 \
68
+ --width 1080 --height 1920 > /tmp/reel-1.log 2>&1 &
69
+ ```
70
+
71
+ then
72
+
73
+ ```bash
74
+ until grep -q "op=exit\|op=chromium-missing\|op=frames-missing\|op=capture-failed" /tmp/reel-1.log; do sleep 20; done; tail -20 /tmp/reel-1.log
75
+ ```
76
+
77
+ ## Verification is not optional
78
+
79
+ The driver prints four still paths on its `op=stills` line. **Read all four.** A render can finish, probe clean and still be wrong: a wrapped counter, a clipped headline, a frozen animation. Reading the stills is the only step that catches it, and it is how the last landscape cut was caught wrapping at step 13.
80
+
81
+ Check three things in the log before you report success:
82
+
83
+ - `op=capture-done` — `bytesMax` must be clearly larger than `bytesMin`. If they are nearly equal, every frame is identical and the video is frozen, however valid the file.
84
+ - `op=encode` — `wxh` and `codec` are read back from the file, not from the command. Confirm they are what you asked for.
85
+ - `op=exit` — `framesDirRemoved=true`, and the closing `[video-census]` shows `frameDirs=0 chromiumLive=0`.
86
+
87
+ ## Where the files go
88
+
89
+ Write the MP4 and poster to `<accountDir>/output/<slug>/`. That is the delivery surface: the main session sends from there, and the same file shows in the Artefacts panel.
90
+
91
+ Never write to a new top-level directory in the account. `fs-schema-guard` refuses anything outside the layout in `SCHEMA.md`, and a blocked write mid-render wastes the whole run.
92
+
93
+ To put the videos on a page, hand the finished directory to `publish-site`. That skill owns publishing; this one stops at the file.
94
+
95
+ ## When it fails
96
+
97
+ | Log line | What it means | What to do |
98
+ |---|---|---|
99
+ | `op=chromium-missing` | No browser recorded at `platform/config/chromium-binary.path` | Report it. The install has no browser registered; this is not something to work around with a guessed path |
100
+ | `op=tool-missing tool=ffmpeg` | `ffmpeg` absent | Report it. It is a base install dependency, so its absence is an install fault |
101
+ | `op=frames-missing` | `reel` mode and the page defines no `window.__frames` | Fix the HTML against `references/reel-authoring.md` |
102
+ | `op=navigate-failed` | The page would not load | Check the URL. A public https URL will do this; serve locally instead |
103
+ | `op=capture-failed` | Four screenshot attempts failed at one frame | The browser died mid-run. Check device memory, then re-run |
104
+ | `op=survives-stop alive=true` | The browser outlived teardown | An orphan is holding the port. Report it with the pid from the line |
105
+
106
+ Every one of these exits non-zero and tears the browser down first. None of them writes a partial MP4.
@@ -0,0 +1,54 @@
1
+ #!/usr/bin/env bash
2
+ # A skill is not shipped when its SKILL.md exists. It is shipped when all four
3
+ # registration surfaces agree, and nothing else in the tree fails when one of
4
+ # them silently disappears. This test is that missing failure.
5
+ #
6
+ # Run: bash platform/plugins/admin/skills/video-production/__tests__/registration.sh
7
+ # Exits 0 when every surface is registered, 1 naming each one that is not.
8
+
9
+ set -uo pipefail
10
+
11
+ HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)"
12
+ PLATFORM="$(cd "$HERE/../../../../.." && pwd -P)"
13
+
14
+ SLUG="video-production"
15
+ OWNED_TS="$PLATFORM/plugins/admin/mcp/src/content-producer-authoring-skills.ts"
16
+ SKILL_MD="$PLATFORM/plugins/admin/skills/$SLUG/SKILL.md"
17
+ PLUGIN_MD="$PLATFORM/plugins/admin/PLUGIN.md"
18
+ PRODUCER_MD="$PLATFORM/templates/specialists/agents/content-producer.md"
19
+
20
+ fails=0
21
+
22
+ check() { # <label> <file> <fixed-string> <why>
23
+ local label="$1" file="$2" needle="$3" why="$4"
24
+ if [ ! -f "$file" ]; then
25
+ echo "FAIL $label — file missing: $file"
26
+ fails=$((fails + 1))
27
+ return
28
+ fi
29
+ if grep -qF -- "$needle" "$file"; then
30
+ echo "PASS $label"
31
+ else
32
+ echo "FAIL $label — '$needle' absent from $file"
33
+ echo " why it matters: $why"
34
+ fails=$((fails + 1))
35
+ fi
36
+ }
37
+
38
+ check "owned-set" "$OWNED_TS" "\"$SLUG\"" \
39
+ "the admin seat would author this inline instead of dispatching content-producer, and admin-skills-bootstrap.sh would offer it on the admin surface"
40
+
41
+ check "skill-declaration" "$SKILL_MD" "specialists:content-producer" \
42
+ "admin-skills-bootstrap.sh reads this exact string; without it the skill is reported as missing-declaration and excluded"
43
+
44
+ check "plugin-catalogue" "$PLUGIN_MD" "skills/$SLUG/SKILL.md" \
45
+ "the skill would be absent from the admin plugin's discovery table"
46
+
47
+ check "producer-branch" "$PRODUCER_MD" "Skill $SLUG" \
48
+ "content-producer would improvise a pipeline instead of loading the skill — the exact failure this skill exists to prevent"
49
+
50
+ if [ "$fails" -ne 0 ]; then
51
+ echo "registration.sh: $fails of 4 surfaces unregistered"
52
+ exit 1
53
+ fi
54
+ echo "registration.sh: all 4 surfaces registered"
@@ -0,0 +1,83 @@
1
+ # Authoring a reel
2
+
3
+ A reel is one self-contained HTML file that draws a single frame on demand. The driver never waits for it, never races it, and never guesses how long it runs. The file tells the driver both things itself.
4
+
5
+ ## The two globals
6
+
7
+ ```js
8
+ window.__frames = 512; // an integer: how many frames exist
9
+ window.__seek = function (f) { ... }; // paint frame f, synchronously
10
+ ```
11
+
12
+ `__seek(f)` must paint frame `f` from the index alone. Given the same `f` it must always produce the same picture, whatever came before it.
13
+
14
+ That rules out three things:
15
+
16
+ - `requestAnimationFrame`, `setTimeout`, `setInterval`, or anything else that waits.
17
+ - CSS `transition` and `animation`. Both advance on wall-clock time, which the driver has stopped.
18
+ - State carried between calls. A counter that increments each time `__seek` runs makes the output depend on capture order.
19
+
20
+ Compute every visual property from `f`. The driver seeks, screenshots, seeks, screenshots. Nothing moves in between.
21
+
22
+ Call `window.__seek(0)` once at the end of your script, so the page is not blank before the driver starts.
23
+
24
+ ## The shape that works
25
+
26
+ The reels that shipped used a cut list, a running start table, and a total:
27
+
28
+ ```js
29
+ var CUTS = [
30
+ // [frames, kicker, headline, line, railIndex]
31
+ [42, "", "One workflow", "From the first click to the day they decide.", -1],
32
+ [72, "Moment one", "The form", "Short on purpose. A few questions, then a booking link.", 0],
33
+ [72, "Moment two", "The meeting", "Why, what, when, who, where, how.", 1]
34
+ ];
35
+ var OUTRO = 100;
36
+ var starts = [], t = 0;
37
+ CUTS.forEach(function (c) { starts.push(t); t += c[0]; });
38
+ window.__frames = t + OUTRO;
39
+ ```
40
+
41
+ `__seek(f)` then finds the current cut by walking `starts`, computes `local = f - starts[k]`, and drives every animated property off `local` and `frac = local / c[0]`.
42
+
43
+ Easing is a pure function of a fraction, so it stays deterministic:
44
+
45
+ ```js
46
+ function ease(t) { return t < 0 ? 0 : t > 1 ? 1 : 1 - Math.pow(1 - t, 3); }
47
+ ```
48
+
49
+ A two-frame flash on each cut is `local < 2`. A wipe is `width = Math.min(1, frac * 2.2) * 420 + "px"`. A fade-in over the first seven frames is `ease(Math.min(1, local / 7))`.
50
+
51
+ ## At 30 frames a second
52
+
53
+ The driver encodes at 30 fps, so frame counts are durations: 42 frames is 1.4 seconds, 72 is 2.4, 512 is just over 17. Write the cut list in frames and read it as time.
54
+
55
+ ## Layout traps
56
+
57
+ These all bit the reels that shipped.
58
+
59
+ **Size the counter for its largest value, not its first.** A step counter laid out against "Step 1 of 13" wrapped when it reached 13, and the landscape cut had to be rendered twice. Set the widest string you will ever show, then check it.
60
+
61
+ **Headlines need a size class.** At 1080 wide, a headline over about 14 characters overflows at the display size. The shipped reels dropped from 132px to 104px on the long ones:
62
+
63
+ ```js
64
+ big.className = c[2].length > 14 ? "small" : "";
65
+ ```
66
+
67
+ **Fix the page to the output size.** `html, body { width: 1080px; height: 1920px; overflow: hidden }`. Any scrollbar or overflow shows up in every frame.
68
+
69
+ **Landscape is not portrait with different numbers.** A 1920x1080 recut needs its own type sizes and its own line breaks. Re-check the counter and the headline class after the swap.
70
+
71
+ ## Fonts
72
+
73
+ The reel renders with whatever the device has installed. Check first:
74
+
75
+ ```bash
76
+ fc-list : family | tr ',' '\n' | sort -u | grep -iE 'archivo|inter'
77
+ ```
78
+
79
+ The shipped reels used Archivo and Inter because both were present on that device. Always give a real fallback stack (`'Archivo', system-ui, sans-serif`) so a missing font degrades instead of breaking the layout. A font that is absent will not be fetched: the driver blocks background networking.
80
+
81
+ ## Checking before you commit to a full render
82
+
83
+ A 512-frame render takes a while. Render a short probe first by temporarily lowering `__frames`, read the stills, then restore it.