@rubytech/create-maxy-code 0.1.546 → 0.1.547

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 (205) hide show
  1. package/package.json +1 -1
  2. package/payload/platform/plugins/admin/mcp/dist/index.js +32 -16
  3. package/payload/platform/plugins/admin/mcp/dist/index.js.map +1 -1
  4. package/payload/platform/plugins/admin/mcp/dist/tools/account-default-agent.d.ts +16 -0
  5. package/payload/platform/plugins/admin/mcp/dist/tools/account-default-agent.d.ts.map +1 -0
  6. package/payload/platform/plugins/admin/mcp/dist/tools/account-default-agent.js +21 -0
  7. package/payload/platform/plugins/admin/mcp/dist/tools/account-default-agent.js.map +1 -0
  8. package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +38 -25
  9. package/payload/platform/plugins/admin/skills/whats-new/SKILL.md +5 -0
  10. package/payload/platform/plugins/docs/references/admin-ui.md +23 -0
  11. package/payload/platform/plugins/docs/references/channel-wake-and-prompt.md +14 -24
  12. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/routine-run.test.js +109 -1
  13. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/routine-run.test.js.map +1 -1
  14. package/payload/platform/plugins/scheduling/mcp/dist/lib/routine-run.d.ts +31 -0
  15. package/payload/platform/plugins/scheduling/mcp/dist/lib/routine-run.d.ts.map +1 -1
  16. package/payload/platform/plugins/scheduling/mcp/dist/lib/routine-run.js +116 -2
  17. package/payload/platform/plugins/scheduling/mcp/dist/lib/routine-run.js.map +1 -1
  18. package/payload/platform/plugins/scheduling/mcp/dist/scripts/reconcile-bookings.js +3 -2
  19. package/payload/platform/plugins/scheduling/mcp/dist/scripts/reconcile-bookings.js.map +1 -1
  20. package/payload/platform/plugins/whatsapp/PLUGIN.md +0 -6
  21. package/payload/platform/plugins/whatsapp/mcp/dist/index.js +2 -34
  22. package/payload/platform/plugins/whatsapp/mcp/dist/index.js.map +1 -1
  23. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.d.ts.map +1 -1
  24. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js +0 -1
  25. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js.map +1 -1
  26. package/payload/platform/services/whatsapp-channel/dist/notification.d.ts +14 -16
  27. package/payload/platform/services/whatsapp-channel/dist/notification.d.ts.map +1 -1
  28. package/payload/platform/services/whatsapp-channel/dist/notification.js +14 -20
  29. package/payload/platform/services/whatsapp-channel/dist/notification.js.map +1 -1
  30. package/payload/platform/services/whatsapp-channel/dist/targets.d.ts +4 -4
  31. package/payload/platform/services/whatsapp-channel/dist/targets.d.ts.map +1 -1
  32. package/payload/platform/services/whatsapp-channel/dist/targets.js +3 -5
  33. package/payload/platform/services/whatsapp-channel/dist/targets.js.map +1 -1
  34. package/payload/server/{chunk-CVUSUNXM.js → chunk-MHNHG3GL.js} +2 -4
  35. package/payload/server/{chunk-X2RRMHVV.js → chunk-Q33KT7YJ.js} +1 -1
  36. package/payload/server/{chunk-DU7GPDJJ.js → chunk-WGMIUXXG.js} +4 -0
  37. package/payload/server/{manager-TI2YJQVZ.js → manager-W32LVPCT.js} +2 -2
  38. package/payload/server/maxy-edge.js +2 -2
  39. package/payload/server/public/activity.html +5 -5
  40. package/payload/server/public/agents.html +4 -4
  41. package/payload/server/public/assets/{AdminLoginScreens-BGKtDqAk.js → AdminLoginScreens-Bjcs9ta9.js} +1 -1
  42. package/payload/server/public/assets/AdminLoginScreens-Bjcs9ta9.js.br +0 -0
  43. package/payload/server/public/assets/AdminLoginScreens-Bjcs9ta9.js.gz +0 -0
  44. package/payload/server/public/assets/{AdminShell-DnfgsAQl.js → AdminShell-DVBAMUCy.js} +1 -1
  45. package/payload/server/public/assets/AdminShell-DVBAMUCy.js.br +0 -0
  46. package/payload/server/public/assets/{AdminShell-DnfgsAQl.js.gz → AdminShell-DVBAMUCy.js.gz} +0 -0
  47. package/payload/server/public/assets/{activity-ByJSut0Q.js → activity-C8E8-EwQ.js} +1 -1
  48. package/payload/server/public/assets/activity-C8E8-EwQ.js.br +0 -0
  49. package/payload/server/public/assets/activity-C8E8-EwQ.js.gz +0 -0
  50. package/payload/server/public/assets/{admin-CkeJO6kA.js → admin-CeWAlpRS.js} +1 -1
  51. package/payload/server/public/assets/admin-CeWAlpRS.js.br +0 -0
  52. package/payload/server/public/assets/admin-CeWAlpRS.js.gz +0 -0
  53. package/payload/server/public/assets/{agents-D8phtRX5.js → agents-DuN92iFb.js} +1 -1
  54. package/payload/server/public/assets/agents-DuN92iFb.js.br +0 -0
  55. package/payload/server/public/assets/agents-DuN92iFb.js.gz +0 -0
  56. package/payload/server/public/assets/{browser-DQSTjdom.js → browser-BxebdKbh.js} +1 -1
  57. package/payload/server/public/assets/browser-BxebdKbh.js.br +0 -0
  58. package/payload/server/public/assets/browser-BxebdKbh.js.gz +0 -0
  59. package/payload/server/public/assets/{calendar-DFJu1XjP.js → calendar-BtFZQ5Np.js} +1 -1
  60. package/payload/server/public/assets/calendar-BtFZQ5Np.js.br +0 -0
  61. package/payload/server/public/assets/calendar-BtFZQ5Np.js.gz +0 -0
  62. package/payload/server/public/assets/chat-CGIwynaH.js +1 -0
  63. package/payload/server/public/assets/chat-CGIwynaH.js.br +3 -0
  64. package/payload/server/public/assets/chat-CGIwynaH.js.gz +0 -0
  65. package/payload/server/public/assets/chevron-left-DaNP1zDb.js +1 -0
  66. package/payload/server/public/assets/chevron-left-DaNP1zDb.js.br +0 -0
  67. package/payload/server/public/assets/chevron-right-BbbuTUnt.js +1 -0
  68. package/payload/server/public/assets/chevron-right-BbbuTUnt.js.br +0 -0
  69. package/payload/server/public/assets/clock-CfDdatjp.js +1 -0
  70. package/payload/server/public/assets/clock-CfDdatjp.js.br +0 -0
  71. package/payload/server/public/assets/clock-CfDdatjp.js.gz +0 -0
  72. package/payload/server/public/assets/{copy-lFFhXRGk.js → copy-DCDHXq3O.js} +1 -1
  73. package/payload/server/public/assets/copy-DCDHXq3O.js.br +0 -0
  74. package/payload/server/public/assets/copy-DCDHXq3O.js.gz +0 -0
  75. package/payload/server/public/assets/data-BchSWOju.js +1 -0
  76. package/payload/server/public/assets/data-BchSWOju.js.br +1 -0
  77. package/payload/server/public/assets/data-BchSWOju.js.gz +0 -0
  78. package/payload/server/public/assets/{file-text-D2Y-bkNy.js → file-text-zQgEQWCF.js} +1 -1
  79. package/payload/server/public/assets/file-text-zQgEQWCF.js.br +0 -0
  80. package/payload/server/public/assets/file-text-zQgEQWCF.js.gz +0 -0
  81. package/payload/server/public/assets/{graph-C-3yN6JD.js → graph-CFCEh_YI.js} +1 -1
  82. package/payload/server/public/assets/graph-CFCEh_YI.js.br +0 -0
  83. package/payload/server/public/assets/graph-CFCEh_YI.js.gz +0 -0
  84. package/payload/server/public/assets/{graph-labels-DiaPLP27.js → graph-labels-CA1UcDuS.js} +1 -1
  85. package/payload/server/public/assets/graph-labels-CA1UcDuS.js.br +0 -0
  86. package/payload/server/public/assets/graph-labels-CA1UcDuS.js.gz +0 -0
  87. package/payload/server/public/assets/{operator-KuGPvSa9.js → operator-hFXPDc2X.js} +1 -1
  88. package/payload/server/public/assets/operator-hFXPDc2X.js.br +0 -0
  89. package/payload/server/public/assets/operator-hFXPDc2X.js.gz +0 -0
  90. package/payload/server/public/assets/{page-BhGeFXWA.js → page-C8jyPH_3.js} +1 -1
  91. package/payload/server/public/assets/page-C8jyPH_3.js.br +0 -0
  92. package/payload/server/public/assets/page-C8jyPH_3.js.gz +0 -0
  93. package/payload/server/public/assets/{page-EnbVC-yM.js → page-ne7I_r9L.js} +1 -1
  94. package/payload/server/public/assets/page-ne7I_r9L.js.br +0 -0
  95. package/payload/server/public/assets/page-ne7I_r9L.js.gz +0 -0
  96. package/payload/server/public/assets/play-Ep0SZTbr.js +1 -0
  97. package/payload/server/public/assets/play-Ep0SZTbr.js.br +0 -0
  98. package/payload/server/public/assets/play-Ep0SZTbr.js.gz +0 -0
  99. package/payload/server/public/assets/{public-CdSgMNC7.js → public-BgnqjAal.js} +1 -1
  100. package/payload/server/public/assets/public-BgnqjAal.js.br +0 -0
  101. package/payload/server/public/assets/public-BgnqjAal.js.gz +0 -0
  102. package/payload/server/public/assets/{rotate-ccw-rTRuTqei.js → rotate-ccw-DfJWjXAg.js} +1 -1
  103. package/payload/server/public/assets/rotate-ccw-DfJWjXAg.js.br +0 -0
  104. package/payload/server/public/assets/rotate-ccw-DfJWjXAg.js.gz +0 -0
  105. package/payload/server/public/assets/routines-Ds0yz7_C.js +2 -0
  106. package/payload/server/public/assets/routines-Ds0yz7_C.js.br +0 -0
  107. package/payload/server/public/assets/routines-Ds0yz7_C.js.gz +0 -0
  108. package/payload/server/public/assets/{skills-DFWtZNkW.js → skills-D-6EbgfP.js} +1 -1
  109. package/payload/server/public/assets/skills-D-6EbgfP.js.br +0 -0
  110. package/payload/server/public/assets/skills-D-6EbgfP.js.gz +0 -0
  111. package/payload/server/public/assets/{tasks-B94AuKSy.js → tasks-DnN5Fyds.js} +1 -1
  112. package/payload/server/public/assets/tasks-DnN5Fyds.js.br +0 -0
  113. package/payload/server/public/assets/tasks-DnN5Fyds.js.gz +0 -0
  114. package/payload/server/public/assets/{triangle-alert-DtWUg6jR.js → triangle-alert-eh9UOKDT.js} +1 -1
  115. package/payload/server/public/assets/triangle-alert-eh9UOKDT.js.br +0 -0
  116. package/payload/server/public/assets/triangle-alert-eh9UOKDT.js.gz +0 -0
  117. package/payload/server/public/assets/{useCopyFeedback-CjKYO-Qf.js → useCopyFeedback-Bz9OJHBb.js} +1 -1
  118. package/payload/server/public/assets/useCopyFeedback-Bz9OJHBb.js.br +0 -0
  119. package/payload/server/public/assets/useCopyFeedback-Bz9OJHBb.js.gz +0 -0
  120. package/payload/server/public/assets/{useMediaQuery-DlOWP56H.css → useMediaQuery-CNxsjKZp.css} +1 -1
  121. package/payload/server/public/assets/useMediaQuery-CNxsjKZp.css.br +0 -0
  122. package/payload/server/public/assets/{useMediaQuery-DlOWP56H.css.gz → useMediaQuery-CNxsjKZp.css.gz} +0 -0
  123. package/payload/server/public/assets/{useVoiceRecorder-BKFAYuzz.js → useVoiceRecorder-BaDpMYxX.js} +1 -1
  124. package/payload/server/public/assets/useVoiceRecorder-BaDpMYxX.js.br +0 -0
  125. package/payload/server/public/assets/useVoiceRecorder-BaDpMYxX.js.gz +0 -0
  126. package/payload/server/public/assets/{wrench-Ct4kf-uv.js → wrench-BO-l46rF.js} +1 -1
  127. package/payload/server/public/assets/wrench-BO-l46rF.js.br +0 -0
  128. package/payload/server/public/assets/wrench-BO-l46rF.js.gz +0 -0
  129. package/payload/server/public/browser.html +4 -4
  130. package/payload/server/public/calendar.html +8 -8
  131. package/payload/server/public/chat.html +13 -13
  132. package/payload/server/public/data.html +11 -11
  133. package/payload/server/public/graph.html +9 -9
  134. package/payload/server/public/index.html +14 -14
  135. package/payload/server/public/operator.html +14 -14
  136. package/payload/server/public/public.html +13 -13
  137. package/payload/server/public/routines.html +6 -6
  138. package/payload/server/public/skills.html +5 -5
  139. package/payload/server/public/tasks.html +6 -6
  140. package/payload/server/server.js +56 -355
  141. package/payload/server/public/assets/AdminLoginScreens-BGKtDqAk.js.br +0 -0
  142. package/payload/server/public/assets/AdminLoginScreens-BGKtDqAk.js.gz +0 -0
  143. package/payload/server/public/assets/AdminShell-DnfgsAQl.js.br +0 -0
  144. package/payload/server/public/assets/activity-ByJSut0Q.js.br +0 -0
  145. package/payload/server/public/assets/activity-ByJSut0Q.js.gz +0 -0
  146. package/payload/server/public/assets/admin-CkeJO6kA.js.br +0 -0
  147. package/payload/server/public/assets/admin-CkeJO6kA.js.gz +0 -0
  148. package/payload/server/public/assets/agents-D8phtRX5.js.br +0 -0
  149. package/payload/server/public/assets/agents-D8phtRX5.js.gz +0 -0
  150. package/payload/server/public/assets/browser-DQSTjdom.js.br +0 -0
  151. package/payload/server/public/assets/browser-DQSTjdom.js.gz +0 -0
  152. package/payload/server/public/assets/calendar-DFJu1XjP.js.br +0 -0
  153. package/payload/server/public/assets/calendar-DFJu1XjP.js.gz +0 -0
  154. package/payload/server/public/assets/chat-DUqtIsOt.js +0 -1
  155. package/payload/server/public/assets/chat-DUqtIsOt.js.br +0 -0
  156. package/payload/server/public/assets/chat-DUqtIsOt.js.gz +0 -0
  157. package/payload/server/public/assets/chevron-left-DFK18xVX.js +0 -1
  158. package/payload/server/public/assets/chevron-left-DFK18xVX.js.br +0 -0
  159. package/payload/server/public/assets/chevron-right-DJ4oaHoN.js +0 -1
  160. package/payload/server/public/assets/chevron-right-DJ4oaHoN.js.br +0 -0
  161. package/payload/server/public/assets/clock-wHIan2DW.js +0 -1
  162. package/payload/server/public/assets/clock-wHIan2DW.js.br +0 -0
  163. package/payload/server/public/assets/copy-lFFhXRGk.js.br +0 -0
  164. package/payload/server/public/assets/copy-lFFhXRGk.js.gz +0 -0
  165. package/payload/server/public/assets/data-Cxv97ARy.js +0 -1
  166. package/payload/server/public/assets/data-Cxv97ARy.js.br +0 -0
  167. package/payload/server/public/assets/data-Cxv97ARy.js.gz +0 -0
  168. package/payload/server/public/assets/file-text-D2Y-bkNy.js.br +0 -0
  169. package/payload/server/public/assets/file-text-D2Y-bkNy.js.gz +0 -0
  170. package/payload/server/public/assets/graph-C-3yN6JD.js.br +0 -0
  171. package/payload/server/public/assets/graph-C-3yN6JD.js.gz +0 -0
  172. package/payload/server/public/assets/graph-labels-DiaPLP27.js.br +0 -0
  173. package/payload/server/public/assets/graph-labels-DiaPLP27.js.gz +0 -0
  174. package/payload/server/public/assets/operator-KuGPvSa9.js.br +0 -0
  175. package/payload/server/public/assets/operator-KuGPvSa9.js.gz +0 -0
  176. package/payload/server/public/assets/page-BhGeFXWA.js.br +0 -0
  177. package/payload/server/public/assets/page-BhGeFXWA.js.gz +0 -0
  178. package/payload/server/public/assets/page-EnbVC-yM.js.br +0 -0
  179. package/payload/server/public/assets/page-EnbVC-yM.js.gz +0 -0
  180. package/payload/server/public/assets/play-jZFZAG-t.js +0 -1
  181. package/payload/server/public/assets/play-jZFZAG-t.js.br +0 -0
  182. package/payload/server/public/assets/play-jZFZAG-t.js.gz +0 -0
  183. package/payload/server/public/assets/public-CdSgMNC7.js.br +0 -0
  184. package/payload/server/public/assets/public-CdSgMNC7.js.gz +0 -0
  185. package/payload/server/public/assets/rotate-ccw-rTRuTqei.js.br +0 -0
  186. package/payload/server/public/assets/rotate-ccw-rTRuTqei.js.gz +0 -0
  187. package/payload/server/public/assets/routines-DNRxNRSQ.js +0 -2
  188. package/payload/server/public/assets/routines-DNRxNRSQ.js.br +0 -0
  189. package/payload/server/public/assets/routines-DNRxNRSQ.js.gz +0 -0
  190. package/payload/server/public/assets/skills-DFWtZNkW.js.br +0 -0
  191. package/payload/server/public/assets/skills-DFWtZNkW.js.gz +0 -0
  192. package/payload/server/public/assets/tasks-B94AuKSy.js.br +0 -0
  193. package/payload/server/public/assets/tasks-B94AuKSy.js.gz +0 -0
  194. package/payload/server/public/assets/triangle-alert-DtWUg6jR.js.br +0 -0
  195. package/payload/server/public/assets/triangle-alert-DtWUg6jR.js.gz +0 -0
  196. package/payload/server/public/assets/useCopyFeedback-CjKYO-Qf.js.br +0 -0
  197. package/payload/server/public/assets/useCopyFeedback-CjKYO-Qf.js.gz +0 -0
  198. package/payload/server/public/assets/useMediaQuery-DlOWP56H.css.br +0 -0
  199. package/payload/server/public/assets/useVoiceRecorder-BKFAYuzz.js.br +0 -0
  200. package/payload/server/public/assets/useVoiceRecorder-BKFAYuzz.js.gz +0 -0
  201. package/payload/server/public/assets/wrench-Ct4kf-uv.js.br +0 -0
  202. package/payload/server/public/assets/wrench-Ct4kf-uv.js.gz +0 -0
  203. /package/payload/server/public/assets/{useMediaQuery-BYIHo-xL.js → useMediaQuery-_mMln3Fu.js} +0 -0
  204. /package/payload/server/public/assets/{useMediaQuery-BYIHo-xL.js.br → useMediaQuery-_mMln3Fu.js.br} +0 -0
  205. /package/payload/server/public/assets/{useMediaQuery-BYIHo-xL.js.gz → useMediaQuery-_mMln3Fu.js.gz} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rubytech/create-maxy-code",
3
- "version": "0.1.546",
3
+ "version": "0.1.547",
4
4
  "description": "Install Maxy — AI for Productive People",
5
5
  "bin": {
6
6
  "create-maxy-code": "./dist/index.js"
@@ -26,6 +26,7 @@ import { resolvePublicHostname } from "./lib/public-hostname.js";
26
26
  import { resolveAdminHostname } from "./lib/admin-hostname.js";
27
27
  import { publishSite } from "./tools/publish-site.js";
28
28
  import { createAgent, updateAgent, projectAgentViaPlatform } from "./tools/agent-write.js";
29
+ import { checkDefaultAgent } from "./tools/account-default-agent.js";
29
30
  import { resolveCapabilitiesHere } from "./tools/capabilities-here.js";
30
31
  import { resolveIngestToken } from "./tools/linkedin-ingest-token.js";
31
32
  import { startCpuTriage, readCpuTriage } from "./tools/cpu-triage.js";
@@ -787,19 +788,30 @@ eagerTool(server, "account-update", "Update a user-configurable setting in accou
787
788
  thinkingView: ["default", "expanded", "collapsed"],
788
789
  effort: ["low", "medium", "high", "max", "auto"],
789
790
  };
790
- // defaultAgent: non-empty slug must reference an existing agent; empty string clears the field
791
+ // defaultAgent: non-empty slug must be slug-shaped AND reference an existing
792
+ // agent; empty string clears the field.
793
+ //
794
+ // Task 2347 — shape before existence. The stored value is read back by
795
+ // resolveDefaultAgentSlug and handed to readAgentFile, which interpolates
796
+ // it into a path; a traversal value's config.json exists on any
797
+ // multi-account install, so existence alone stored a path that led out of
798
+ // the account directory.
799
+ // `defaultAgentSlug` is the canonical value to store: the verdict's trimmed
800
+ // slug, empty for the clear operation. Storing the raw `value` instead
801
+ // would let `" sales "` be accepted here and then refused by the read
802
+ // door's shape rule, which sees the untrimmed string.
803
+ let defaultAgentSlug = "";
791
804
  if (field === "defaultAgent") {
792
- const slug = value.trim();
793
- if (slug) {
794
- const agentConfigPath = join(getAccountDir(), "agents", slug, "config.json");
795
- if (!existsSync(agentConfigPath)) {
796
- return {
797
- content: [{ type: "text", text: `Agent '${slug}' not found no config.json in agents/${slug}/` }],
798
- isError: true,
799
- };
800
- }
805
+ const verdict = checkDefaultAgent(getAccountDir(), value);
806
+ if (!verdict.ok) {
807
+ const slug = value.trim();
808
+ console.error(`[admin:account-update] rejected field=defaultAgent value="${value}" reason=${verdict.reason}`);
809
+ const text = verdict.reason === "shape"
810
+ ? `Invalid agent slug "${slug}" — must be lowercase, start with a letter, and be 3 to 50 characters with no path separators.`
811
+ : `Agent '${slug}' not found — no config.json in agents/${slug}/`;
812
+ return { content: [{ type: "text", text }], isError: true };
801
813
  }
802
- // empty slug is valid — handled below as a delete operation
814
+ defaultAgentSlug = verdict.slug;
803
815
  }
804
816
  // Model fields accept any non-empty string (model IDs change frequently)
805
817
  const FREE_FORM_FIELDS = ["adminModel", "publicModel"];
@@ -822,22 +834,26 @@ eagerTool(server, "account-update", "Update a user-configurable setting in accou
822
834
  const configPath = join(getAccountDir(), "account.json");
823
835
  const config = await readAccountConfig();
824
836
  const oldDefault = field === "defaultAgent" ? config.defaultAgent ?? "(none)" : undefined;
825
- if (field === "defaultAgent" && !value.trim()) {
826
- delete config.defaultAgent;
837
+ if (field === "defaultAgent") {
838
+ if (defaultAgentSlug)
839
+ config.defaultAgent = defaultAgentSlug;
840
+ else
841
+ delete config.defaultAgent;
827
842
  }
828
843
  else {
829
844
  config[field] = value;
830
845
  }
846
+ const writtenValue = field === "defaultAgent" ? defaultAgentSlug : value;
831
847
  await writeFile(configPath, JSON.stringify(config, null, 2) + "\n", "utf-8");
832
- console.error(`[admin:account-update] wrote field=${field} value="${value}" path=${configPath}`);
848
+ console.error(`[admin:account-update] wrote field=${field} value="${writtenValue}" path=${configPath}`);
833
849
  if (field === "defaultAgent") {
834
- if (!value.trim()) {
850
+ if (!defaultAgentSlug) {
835
851
  return {
836
852
  content: [{ type: "text", text: `Default agent cleared (was "${oldDefault}"). Visitors to the root URL will see the first available agent, or a "no agents" message if none exist. Takes effect on next page load.` }],
837
853
  };
838
854
  }
839
855
  return {
840
- content: [{ type: "text", text: `Default agent changed from "${oldDefault}" to "${value}". Takes effect on next page load.` }],
856
+ content: [{ type: "text", text: `Default agent changed from "${oldDefault}" to "${defaultAgentSlug}". Takes effect on next page load.` }],
841
857
  };
842
858
  }
843
859
  return {