@rubytech/create-realagent-code 0.1.113 → 0.1.115

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 (417) hide show
  1. package/dist/__tests__/installer-specialist-registration.test.js +40 -1
  2. package/dist/__tests__/premium-bundle-gate.test.js +59 -0
  3. package/dist/index.js +24 -1
  4. package/dist/specialist-registration.js +15 -0
  5. package/package.json +1 -1
  6. package/payload/platform/config/brand.json +2 -2
  7. package/payload/platform/neo4j/schema.cypher +8 -3
  8. package/payload/platform/plugins/.claude-plugin/marketplace.json +0 -20
  9. package/payload/platform/plugins/admin/skills/public-agent-manager/SKILL.md +14 -7
  10. package/payload/platform/plugins/contacts/mcp/dist/index.js +3 -3
  11. package/payload/platform/plugins/contacts/mcp/dist/index.js.map +1 -1
  12. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-create.js +1 -1
  13. package/payload/platform/plugins/docs/references/contacts-guide.md +1 -9
  14. package/payload/platform/plugins/docs/references/getting-started.md +1 -1
  15. package/payload/platform/plugins/docs/references/internals.md +10 -26
  16. package/payload/platform/plugins/docs/references/platform.md +1 -1
  17. package/payload/platform/plugins/docs/references/plugins-guide.md +1 -2
  18. package/payload/platform/plugins/linkedin-import/PLUGIN.md +1 -1
  19. package/payload/platform/plugins/memory/PLUGIN.md +3 -2
  20. package/payload/platform/plugins/sales/.claude-plugin/plugin.json +1 -1
  21. package/payload/platform/plugins/sales/PLUGIN.md +9 -9
  22. package/payload/platform/plugins/sales/references/close-tracking.md +6 -6
  23. package/payload/platform/plugins/sales/references/faq.md +1 -5
  24. package/payload/platform/plugins/sales/references/objection-handling.md +2 -2
  25. package/payload/platform/plugins/scheduling/PLUGIN.md +1 -1
  26. package/payload/platform/plugins/scheduling/mcp/dist/index.js +2 -2
  27. package/payload/platform/plugins/scheduling/mcp/dist/index.js.map +1 -1
  28. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/getUserTimezone.test.js +1 -1
  29. package/payload/platform/plugins/whatsapp/.claude-plugin/plugin.json +9 -0
  30. package/payload/platform/plugins/whatsapp/PLUGIN.md +1 -1
  31. package/payload/platform/plugins/workflows/PLUGIN.md +1 -1
  32. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.d.ts +1 -1
  33. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.js +2 -2
  34. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.js.map +1 -1
  35. package/payload/platform/scripts/conversation-id-allowlist.txt +0 -7
  36. package/payload/platform/services/claude-session-manager/dist/brand-foreign-filter.d.ts +30 -0
  37. package/payload/platform/services/claude-session-manager/dist/brand-foreign-filter.d.ts.map +1 -0
  38. package/payload/platform/services/claude-session-manager/dist/brand-foreign-filter.js +86 -0
  39. package/payload/platform/services/claude-session-manager/dist/brand-foreign-filter.js.map +1 -0
  40. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
  41. package/payload/platform/services/claude-session-manager/dist/http-server.js +42 -1
  42. package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
  43. package/payload/platform/services/claude-session-manager/dist/index.js +51 -9
  44. package/payload/platform/services/claude-session-manager/dist/index.js.map +1 -1
  45. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +34 -0
  46. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
  47. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +118 -6
  48. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
  49. package/payload/platform/services/claude-session-manager/dist/system-prompt.d.ts +7 -0
  50. package/payload/platform/services/claude-session-manager/dist/system-prompt.d.ts.map +1 -1
  51. package/payload/platform/services/claude-session-manager/dist/system-prompt.js +7 -0
  52. package/payload/platform/services/claude-session-manager/dist/system-prompt.js.map +1 -1
  53. package/payload/platform/templates/specialists/agents/project-manager.md +1 -3
  54. package/payload/premium-plugins/real-agent/plugins/buyers/skills/property-recommender/SKILL.md +23 -3
  55. package/payload/server/{chunk-FSPPVVWM.js → chunk-FJCI6X3H.js} +192 -0
  56. package/payload/server/maxy-edge.js +1 -1
  57. package/payload/server/public/assets/{ChatInput-CsnIedhS.js → ChatInput-CJo_77bp.js} +5 -1
  58. package/payload/server/public/assets/{Checkbox-CWugFyFT.js → Checkbox-YrQovXpN.js} +1 -1
  59. package/payload/server/public/assets/{admin-D3gZuyUn.js → admin-DOxHsV7g.js} +25 -25
  60. package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-CeTRKWDb.js → architectureDiagram-Q4EWVU46-Breg9-99.js} +1 -1
  61. package/payload/server/public/assets/{blockDiagram-DXYQGD6D-DeeIX5U3.js → blockDiagram-DXYQGD6D-DXf1_673.js} +1 -1
  62. package/payload/server/public/assets/{c4Diagram-AHTNJAMY-CFsqZuil.js → c4Diagram-AHTNJAMY-CSZ36W4-.js} +1 -1
  63. package/payload/server/public/assets/channel-BmZnt3PP.js +1 -0
  64. package/payload/server/public/assets/{chunk-336JU56O-DpIXuFM0.js → chunk-336JU56O-DsrLk2eK.js} +2 -2
  65. package/payload/server/public/assets/{chunk-426QAEUC-Qk8qqrvA.js → chunk-426QAEUC-JpNfNf81.js} +1 -1
  66. package/payload/server/public/assets/{chunk-4TB4RGXK-DtM8-CUn.js → chunk-4TB4RGXK-DmClEAD0.js} +1 -1
  67. package/payload/server/public/assets/{chunk-5FUZZQ4R-CrSQ4ySU.js → chunk-5FUZZQ4R-BI9blW3N.js} +1 -1
  68. package/payload/server/public/assets/{chunk-5PVQY5BW-Bn2nQwdj.js → chunk-5PVQY5BW-BbgttEFO.js} +1 -1
  69. package/payload/server/public/assets/{chunk-EDXVE4YY-CzCPnR0P.js → chunk-EDXVE4YY-BX_LCFOx.js} +1 -1
  70. package/payload/server/public/assets/{chunk-ENJZ2VHE-CgZj9RoG.js → chunk-ENJZ2VHE-Bb7EoD0w.js} +1 -1
  71. package/payload/server/public/assets/{chunk-ICPOFSXX-wy-eNjwW.js → chunk-ICPOFSXX-DH8uQk-s.js} +1 -1
  72. package/payload/server/public/assets/{chunk-OYMX7WX6-CMmJtL8S.js → chunk-OYMX7WX6-FH5kgXsw.js} +1 -1
  73. package/payload/server/public/assets/{chunk-U2HBQHQK-CFCW7OaT.js → chunk-U2HBQHQK-D_ljlkHr.js} +1 -1
  74. package/payload/server/public/assets/{chunk-X2U36JSP-Bgh-CJSN.js → chunk-X2U36JSP-BX3EmZvm.js} +1 -1
  75. package/payload/server/public/assets/{chunk-YZCP3GAM-BXKwZ4vN.js → chunk-YZCP3GAM-Vu7-E93h.js} +1 -1
  76. package/payload/server/public/assets/{chunk-ZZ45TVLE-BiOuK5NP.js → chunk-ZZ45TVLE-CwjhNPX5.js} +1 -1
  77. package/payload/server/public/assets/classDiagram-6PBFFD2Q-kmMLFUpV.js +1 -0
  78. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-BV7Ae8ct.js +1 -0
  79. package/payload/server/public/assets/clone-B5eqoN9I.js +1 -0
  80. package/payload/server/public/assets/{dagre-DyCxa9Q2.js → dagre-Ce6gsj0C.js} +1 -1
  81. package/payload/server/public/assets/{dagre-KV5264BT-Cffo_hmf.js → dagre-KV5264BT-BaMGpsoy.js} +1 -1
  82. package/payload/server/public/assets/data-NMvGx6jm.js +1 -0
  83. package/payload/server/public/assets/{diagram-5BDNPKRD-Bt93Du3V.js → diagram-5BDNPKRD-CHEE9rjq.js} +1 -1
  84. package/payload/server/public/assets/{diagram-G4DWMVQ6-v4r-tBsC.js → diagram-G4DWMVQ6-C98sZLW1.js} +1 -1
  85. package/payload/server/public/assets/{diagram-MMDJMWI5-DKrVPOP-.js → diagram-MMDJMWI5-DNvMGsTZ.js} +1 -1
  86. package/payload/server/public/assets/{diagram-TYMM5635-B1PzWQb9.js → diagram-TYMM5635-Cdte4IBa.js} +1 -1
  87. package/payload/server/public/assets/{erDiagram-SMLLAGMA-ClQzsQAs.js → erDiagram-SMLLAGMA-C9VZsWXK.js} +1 -1
  88. package/payload/server/public/assets/{flowDiagram-DWJPFMVM-h3IbpN_7.js → flowDiagram-DWJPFMVM-tuP5fzzR.js} +1 -1
  89. package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-ClaxOJi8.js → ganttDiagram-T4ZO3ILL-SJgRPUwx.js} +1 -1
  90. package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-pM-U4ClD.js → gitGraphDiagram-UUTBAWPF-DU_cI_50.js} +1 -1
  91. package/payload/server/public/assets/graph-BkwTCV2Y.js +1 -0
  92. package/payload/server/public/assets/graph-labels-h39S93Xo.js +1 -0
  93. package/payload/server/public/assets/{graphlib-CwimOv_M.js → graphlib-D_nAsvmx.js} +1 -1
  94. package/payload/server/public/assets/{infoDiagram-42DDH7IO-DcO3Giwe.js → infoDiagram-42DDH7IO-Cj2Y19m6.js} +1 -1
  95. package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-BcdSL5VS.js → ishikawaDiagram-UXIWVN3A-DMc1xq1y.js} +1 -1
  96. package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-CYahHYzf.js → journeyDiagram-VCZTEJTY-C4CRAQma.js} +1 -1
  97. package/payload/server/public/assets/{kanban-definition-6JOO6SKY-Cl5KhoS4.js → kanban-definition-6JOO6SKY-CTr4AldU.js} +1 -1
  98. package/payload/server/public/assets/lib-Bnh57com.js +29 -0
  99. package/payload/server/public/assets/{line-d_2oTxLp.js → line-Btlm_IAl.js} +1 -1
  100. package/payload/server/public/assets/{mermaid-parser.core-CMMDGv3x.js → mermaid-parser.core-DXFdj_y1.js} +1 -1
  101. package/payload/server/public/assets/{mermaid.core-DK9ENGbr.js → mermaid.core-DFBhoCr5.js} +3 -3
  102. package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-mA3x3MFG.js → mindmap-definition-QFDTVHPH-r9gVQybo.js} +1 -1
  103. package/payload/server/public/assets/{page-CgDmg_fX.js → page-B0iMmY6t.js} +1 -1
  104. package/payload/server/public/assets/{page-D9lluVl7.js → page-zQ79YCEt.js} +2 -2
  105. package/payload/server/public/assets/{pieDiagram-DEJITSTG-CW1nGFlY.js → pieDiagram-DEJITSTG-CHKZjSaH.js} +1 -1
  106. package/payload/server/public/assets/{public-DdLMkNdS.js → public-DyGWgfaZ.js} +4 -4
  107. package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-DI5igJhR.js → quadrantDiagram-34T5L4WZ-CSGR1HJr.js} +1 -1
  108. package/payload/server/public/assets/{requirementDiagram-MS252O5E-DyVeI4e_.js → requirementDiagram-MS252O5E-DZ6hX9D6.js} +1 -1
  109. package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-CCTTBYKY.js → sankeyDiagram-XADWPNL6-DbZBKh0m.js} +1 -1
  110. package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-hVVf35ly.js → sequenceDiagram-FGHM5R23-BHHpb8dt.js} +1 -1
  111. package/payload/server/public/assets/{stateDiagram-FHFEXIEX-CSLuQDUX.js → stateDiagram-FHFEXIEX-DQ1jiLB4.js} +1 -1
  112. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-CByT2RzF.js +1 -0
  113. package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-sxC3W8Q4.js → timeline-definition-GMOUNBTQ-BlGiEU7p.js} +1 -1
  114. package/payload/server/public/assets/{vennDiagram-DHZGUBPP-Ro-ton6Z.js → vennDiagram-DHZGUBPP-DmEH-hsB.js} +1 -1
  115. package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-T-dKD0Zx.js → wardleyDiagram-NUSXRM2D-C7KJJ40d.js} +1 -1
  116. package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-CfProPts.js → xychartDiagram-5P7HB3ND-JDnusCaa.js} +1 -1
  117. package/payload/server/public/data.html +4 -4
  118. package/payload/server/public/graph.html +5 -5
  119. package/payload/server/public/index.html +7 -7
  120. package/payload/server/public/public.html +4 -4
  121. package/payload/server/server.js +144 -49
  122. package/payload/platform/plugins/teaching/.claude-plugin/plugin.json +0 -8
  123. package/payload/platform/plugins/teaching/PLUGIN.md +0 -58
  124. package/payload/platform/plugins/teaching/skills/interactive-tutor/SKILL.md +0 -59
  125. package/payload/platform/plugins/teaching/skills/interactive-tutor/references/assessment.md +0 -70
  126. package/payload/platform/plugins/teaching/skills/interactive-tutor/references/classroom-conduct.md +0 -43
  127. package/payload/platform/plugins/teaching/skills/interactive-tutor/references/teaching-modes.md +0 -83
  128. package/payload/platform/plugins/teaching/skills/lesson-planner/SKILL.md +0 -48
  129. package/payload/platform/plugins/teaching/skills/lesson-planner/references/context-gathering.md +0 -41
  130. package/payload/platform/plugins/teaching/skills/lesson-planner/references/plan-structure.md +0 -94
  131. package/payload/platform/plugins/teaching/skills/study-pack-builder/SKILL.md +0 -52
  132. package/payload/platform/plugins/teaching/skills/study-pack-builder/references/disaggregation.md +0 -49
  133. package/payload/platform/plugins/teaching/skills/study-pack-builder/references/materials.md +0 -116
  134. package/payload/platform/plugins/venture-studio/.claude-plugin/plugin.json +0 -8
  135. package/payload/platform/plugins/venture-studio/PLUGIN.md +0 -119
  136. package/payload/platform/plugins/venture-studio/bin/scaffold.sh +0 -116
  137. package/payload/platform/plugins/venture-studio/skills/brand-pack/SKILL.md +0 -256
  138. package/payload/platform/plugins/venture-studio/skills/brand-pack/references/color-psychology.md +0 -118
  139. package/payload/platform/plugins/venture-studio/skills/investor-data-room/SKILL.md +0 -374
  140. package/payload/platform/plugins/venture-studio/skills/investor-data-room/references/business-plan-template.md +0 -64
  141. package/payload/platform/plugins/venture-studio/skills/investor-data-room/references/compliance-research-checklist.md +0 -53
  142. package/payload/platform/plugins/venture-studio/skills/investor-data-room/references/data-room-structure.md +0 -88
  143. package/payload/platform/plugins/venture-studio/skills/investor-data-room/references/deck-blueprint-template.md +0 -39
  144. package/payload/platform/plugins/venture-studio/skills/investor-data-room/references/design-tokens-application.md +0 -79
  145. package/payload/platform/plugins/venture-studio/skills/investor-data-room/references/html-pdf-pipeline.md +0 -236
  146. package/payload/platform/plugins/venture-studio/skills/investor-data-room/references/internal-workings-scrub.md +0 -33
  147. package/payload/platform/plugins/venture-studio/skills/investor-data-room/references/termsheet-template.md +0 -88
  148. package/payload/platform/plugins/venture-studio/skills/investor-data-room/templates/prospectus/index.html +0 -1565
  149. package/payload/platform/plugins/venture-studio/skills/investor-data-room/templates/prospectus/render-pdf.mjs +0 -91
  150. package/payload/platform/plugins/venture-studio/skills/investor-data-room/templates/prospectus/term_sheet.html +0 -715
  151. package/payload/platform/plugins/venture-studio/skills/office-hours/SKILL.md +0 -587
  152. package/payload/platform/plugins/venture-studio/skills/prototype-host/SKILL.md +0 -179
  153. package/payload/platform/plugins/venture-studio/skills/prototype-host/references/cloudflared-ingress-edit.md +0 -81
  154. package/payload/platform/plugins/venture-studio/skills/prototype-host/references/scaffold-frameworks.md +0 -60
  155. package/payload/platform/plugins/venture-studio/skills/prototype-host/references/systemd-user-service.md +0 -104
  156. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/SKILL.md +0 -336
  157. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/aarrr-metrics.md +0 -275
  158. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/assumption-testing.md +0 -93
  159. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/boolean-search.md +0 -308
  160. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/build-measure-learn.md +0 -262
  161. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/business-model-canvas.md +0 -171
  162. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/commitment-signals.md +0 -246
  163. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/design-thinking.md +0 -183
  164. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/earlyvangelist.md +0 -190
  165. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/first-principles.md +0 -58
  166. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/fishbone.md +0 -114
  167. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/five-whys.md +0 -43
  168. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/ice-scoring.md +0 -237
  169. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/innovation-accounting.md +0 -290
  170. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/jtbd.md +0 -105
  171. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/landing-page.md +0 -361
  172. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/market-type.md +0 -167
  173. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/mom-test.md +0 -193
  174. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/mvp-types.md +0 -200
  175. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/og-images.md +0 -239
  176. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/pareto.md +0 -103
  177. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/persona-development.md +0 -291
  178. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/pivot-types.md +0 -225
  179. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/positioning-statement.md +0 -179
  180. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/prd.md +0 -363
  181. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/pre-mortem.md +0 -74
  182. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/problem-validation.md +0 -253
  183. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/product-market-fit.md +0 -256
  184. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/research-synthesis.md +0 -276
  185. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/three-engines-of-growth.md +0 -248
  186. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/validation-tests.md +0 -89
  187. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/value-proposition-canvas.md +0 -121
  188. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/win-loss-analysis.md +0 -242
  189. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/workflow-mapping.md +0 -271
  190. package/payload/platform/plugins/waitlist/.claude-plugin/plugin.json +0 -17
  191. package/payload/platform/plugins/waitlist/PLUGIN.md +0 -86
  192. package/payload/platform/plugins/waitlist/mcp/dist/index.d.ts +0 -2
  193. package/payload/platform/plugins/waitlist/mcp/dist/index.d.ts.map +0 -1
  194. package/payload/platform/plugins/waitlist/mcp/dist/index.js +0 -388
  195. package/payload/platform/plugins/waitlist/mcp/dist/index.js.map +0 -1
  196. package/payload/platform/plugins/waitlist/mcp/dist/lib/admin-model.d.ts +0 -16
  197. package/payload/platform/plugins/waitlist/mcp/dist/lib/admin-model.d.ts.map +0 -1
  198. package/payload/platform/plugins/waitlist/mcp/dist/lib/admin-model.js +0 -58
  199. package/payload/platform/plugins/waitlist/mcp/dist/lib/admin-model.js.map +0 -1
  200. package/payload/platform/plugins/waitlist/mcp/dist/lib/embedding.d.ts +0 -3
  201. package/payload/platform/plugins/waitlist/mcp/dist/lib/embedding.d.ts.map +0 -1
  202. package/payload/platform/plugins/waitlist/mcp/dist/lib/embedding.js +0 -48
  203. package/payload/platform/plugins/waitlist/mcp/dist/lib/embedding.js.map +0 -1
  204. package/payload/platform/plugins/waitlist/mcp/dist/lib/neo4j.d.ts +0 -5
  205. package/payload/platform/plugins/waitlist/mcp/dist/lib/neo4j.d.ts.map +0 -1
  206. package/payload/platform/plugins/waitlist/mcp/dist/lib/neo4j.js +0 -40
  207. package/payload/platform/plugins/waitlist/mcp/dist/lib/neo4j.js.map +0 -1
  208. package/payload/platform/plugins/waitlist/mcp/dist/tools/__tests__/waitlist-persist.test.d.ts +0 -2
  209. package/payload/platform/plugins/waitlist/mcp/dist/tools/__tests__/waitlist-persist.test.d.ts.map +0 -1
  210. package/payload/platform/plugins/waitlist/mcp/dist/tools/__tests__/waitlist-persist.test.js +0 -70
  211. package/payload/platform/plugins/waitlist/mcp/dist/tools/__tests__/waitlist-persist.test.js.map +0 -1
  212. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-extract.d.ts +0 -34
  213. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-extract.d.ts.map +0 -1
  214. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-extract.js +0 -129
  215. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-extract.js.map +0 -1
  216. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-heal.d.ts +0 -27
  217. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-heal.d.ts.map +0 -1
  218. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-heal.js +0 -127
  219. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-heal.js.map +0 -1
  220. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-list.d.ts +0 -23
  221. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-list.d.ts.map +0 -1
  222. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-list.js +0 -58
  223. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-list.js.map +0 -1
  224. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-persist.d.ts +0 -83
  225. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-persist.d.ts.map +0 -1
  226. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-persist.js +0 -433
  227. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-persist.js.map +0 -1
  228. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-review.d.ts +0 -19
  229. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-review.d.ts.map +0 -1
  230. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-review.js +0 -81
  231. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-review.js.map +0 -1
  232. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-scan.d.ts +0 -28
  233. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-scan.d.ts.map +0 -1
  234. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-scan.js +0 -50
  235. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-scan.js.map +0 -1
  236. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.d.ts +0 -33
  237. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.d.ts.map +0 -1
  238. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.js +0 -297
  239. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.js.map +0 -1
  240. package/payload/platform/plugins/waitlist/mcp/package.json +0 -23
  241. package/payload/platform/plugins/waitlist/mcp/vitest.config.ts +0 -9
  242. package/payload/platform/plugins/writer-craft/.claude-plugin/plugin.json +0 -8
  243. package/payload/platform/plugins/writer-craft/PLUGIN.md +0 -88
  244. package/payload/platform/plugins/writer-craft/agents/writer-craft--manuscript-reviewer.md +0 -92
  245. package/payload/platform/plugins/writer-craft/skills/citation-style/SKILL.md +0 -94
  246. package/payload/platform/plugins/writer-craft/skills/citation-style/references/book-and-chapter-models.md +0 -77
  247. package/payload/platform/plugins/writer-craft/skills/citation-style/references/citation-rules.md +0 -103
  248. package/payload/platform/plugins/writer-craft/skills/citation-style/references/journal-article-models.md +0 -74
  249. package/payload/platform/plugins/writer-craft/skills/citation-style/references/other-source-models.md +0 -146
  250. package/payload/platform/plugins/writer-craft/skills/citation-style/references/reference-list-rules.md +0 -70
  251. package/payload/platform/plugins/writer-craft/skills/editorial-practice/SKILL.md +0 -108
  252. package/payload/platform/plugins/writer-craft/skills/editorial-practice/references/copyediting.md +0 -73
  253. package/payload/platform/plugins/writer-craft/skills/editorial-practice/references/developmental-editing.md +0 -85
  254. package/payload/platform/plugins/writer-craft/skills/editorial-practice/references/genre-specific-editing.md +0 -78
  255. package/payload/platform/plugins/writer-craft/skills/editorial-practice/references/line-editing.md +0 -55
  256. package/payload/platform/plugins/writer-craft/skills/editorial-practice/references/self-editing.md +0 -89
  257. package/payload/platform/plugins/writer-craft/skills/persuasive-storytelling/SKILL.md +0 -114
  258. package/payload/platform/plugins/writer-craft/skills/persuasive-storytelling/references/audience-analysis.md +0 -73
  259. package/payload/platform/plugins/writer-craft/skills/persuasive-storytelling/references/crafting-persuasive-story.md +0 -76
  260. package/payload/platform/plugins/writer-craft/skills/persuasive-storytelling/references/persuasion-case-studies.md +0 -67
  261. package/payload/platform/plugins/writer-craft/skills/persuasive-storytelling/references/transformation-framework.md +0 -86
  262. package/payload/platform/plugins/writer-craft/skills/point-of-view/SKILL.md +0 -97
  263. package/payload/platform/plugins/writer-craft/skills/point-of-view/references/indirect-narration.md +0 -72
  264. package/payload/platform/plugins/writer-craft/skills/point-of-view/references/pov-types-and-voice.md +0 -91
  265. package/payload/platform/plugins/writer-craft/skills/point-of-view/references/protagonist-filter.md +0 -71
  266. package/payload/platform/plugins/writer-craft/skills/point-of-view/references/tense-and-person.md +0 -85
  267. package/payload/platform/plugins/writer-craft/skills/prose-craft/SKILL.md +0 -100
  268. package/payload/platform/plugins/writer-craft/skills/prose-craft/references/punctuation-and-grammar.md +0 -72
  269. package/payload/platform/plugins/writer-craft/skills/prose-craft/references/repetition.md +0 -71
  270. package/payload/platform/plugins/writer-craft/skills/prose-craft/references/sound-and-rhythm.md +0 -64
  271. package/payload/platform/plugins/writer-craft/skills/prose-craft/references/word-economy.md +0 -93
  272. package/payload/platform/plugins/writer-craft/skills/reader-engagement/SKILL.md +0 -100
  273. package/payload/platform/plugins/writer-craft/skills/reader-engagement/references/cause-effect-setup-payoff.md +0 -79
  274. package/payload/platform/plugins/writer-craft/skills/reader-engagement/references/conflict-escalation.md +0 -81
  275. package/payload/platform/plugins/writer-craft/skills/reader-engagement/references/hooking-readers.md +0 -67
  276. package/payload/platform/plugins/writer-craft/skills/reader-engagement/references/neurochemistry-of-engagement.md +0 -94
  277. package/payload/platform/plugins/writer-craft/skills/review-manuscript/SKILL.md +0 -111
  278. package/payload/platform/plugins/writer-craft/skills/review-manuscript/references/review-manuscript-checklist.md +0 -119
  279. package/payload/platform/plugins/writer-craft/skills/review-prose/SKILL.md +0 -99
  280. package/payload/platform/plugins/writer-craft/skills/review-prose/references/prose-review-checklist.md +0 -112
  281. package/payload/platform/plugins/writer-craft/skills/review-scene/SKILL.md +0 -99
  282. package/payload/platform/plugins/writer-craft/skills/review-scene/references/scene-analysis-framework.md +0 -95
  283. package/payload/platform/plugins/writer-craft/skills/story-architecture/SKILL.md +0 -106
  284. package/payload/platform/plugins/writer-craft/skills/story-architecture/references/blueprinting-and-scene-cards.md +0 -118
  285. package/payload/platform/plugins/writer-craft/skills/story-architecture/references/inner-issue-and-protagonist-goal.md +0 -66
  286. package/payload/platform/plugins/writer-craft/skills/story-architecture/references/misbelief-desire-worldview.md +0 -87
  287. package/payload/platform/plugins/writer-craft/skills/story-architecture/references/origin-scenes-and-escalation.md +0 -82
  288. package/payload/platform/plugins/writer-craft/skills/story-blueprint/SKILL.md +0 -133
  289. package/payload/platform/plugins/writer-craft/skills/story-blueprint/references/blueprinting-exercises.md +0 -118
  290. package/payload/platform/plugins/writer-craft/skills/story-blueprint/references/blueprinting-process.md +0 -128
  291. package/payload/premium-plugins/.claude-plugin/marketplace.json +0 -23
  292. package/payload/premium-plugins/teaching/.claude-plugin/plugin.json +0 -8
  293. package/payload/premium-plugins/teaching/PLUGIN.md +0 -58
  294. package/payload/premium-plugins/teaching/skills/interactive-tutor/SKILL.md +0 -59
  295. package/payload/premium-plugins/teaching/skills/interactive-tutor/references/assessment.md +0 -70
  296. package/payload/premium-plugins/teaching/skills/interactive-tutor/references/classroom-conduct.md +0 -43
  297. package/payload/premium-plugins/teaching/skills/interactive-tutor/references/teaching-modes.md +0 -83
  298. package/payload/premium-plugins/teaching/skills/lesson-planner/SKILL.md +0 -48
  299. package/payload/premium-plugins/teaching/skills/lesson-planner/references/context-gathering.md +0 -41
  300. package/payload/premium-plugins/teaching/skills/lesson-planner/references/plan-structure.md +0 -94
  301. package/payload/premium-plugins/teaching/skills/study-pack-builder/SKILL.md +0 -52
  302. package/payload/premium-plugins/teaching/skills/study-pack-builder/references/disaggregation.md +0 -49
  303. package/payload/premium-plugins/teaching/skills/study-pack-builder/references/materials.md +0 -116
  304. package/payload/premium-plugins/venture-studio/.claude-plugin/plugin.json +0 -8
  305. package/payload/premium-plugins/venture-studio/PLUGIN.md +0 -119
  306. package/payload/premium-plugins/venture-studio/bin/scaffold.sh +0 -116
  307. package/payload/premium-plugins/venture-studio/skills/brand-pack/SKILL.md +0 -256
  308. package/payload/premium-plugins/venture-studio/skills/brand-pack/references/color-psychology.md +0 -118
  309. package/payload/premium-plugins/venture-studio/skills/investor-data-room/SKILL.md +0 -374
  310. package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/business-plan-template.md +0 -64
  311. package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/compliance-research-checklist.md +0 -53
  312. package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/data-room-structure.md +0 -88
  313. package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/deck-blueprint-template.md +0 -39
  314. package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/design-tokens-application.md +0 -79
  315. package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/html-pdf-pipeline.md +0 -236
  316. package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/internal-workings-scrub.md +0 -33
  317. package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/termsheet-template.md +0 -88
  318. package/payload/premium-plugins/venture-studio/skills/investor-data-room/templates/prospectus/index.html +0 -1565
  319. package/payload/premium-plugins/venture-studio/skills/investor-data-room/templates/prospectus/render-pdf.mjs +0 -91
  320. package/payload/premium-plugins/venture-studio/skills/investor-data-room/templates/prospectus/term_sheet.html +0 -715
  321. package/payload/premium-plugins/venture-studio/skills/office-hours/SKILL.md +0 -587
  322. package/payload/premium-plugins/venture-studio/skills/prototype-host/SKILL.md +0 -179
  323. package/payload/premium-plugins/venture-studio/skills/prototype-host/references/cloudflared-ingress-edit.md +0 -81
  324. package/payload/premium-plugins/venture-studio/skills/prototype-host/references/scaffold-frameworks.md +0 -60
  325. package/payload/premium-plugins/venture-studio/skills/prototype-host/references/systemd-user-service.md +0 -104
  326. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/SKILL.md +0 -336
  327. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/aarrr-metrics.md +0 -275
  328. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/assumption-testing.md +0 -93
  329. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/boolean-search.md +0 -308
  330. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/build-measure-learn.md +0 -262
  331. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/business-model-canvas.md +0 -171
  332. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/commitment-signals.md +0 -246
  333. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/design-thinking.md +0 -183
  334. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/earlyvangelist.md +0 -190
  335. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/first-principles.md +0 -58
  336. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/fishbone.md +0 -114
  337. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/five-whys.md +0 -43
  338. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/ice-scoring.md +0 -237
  339. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/innovation-accounting.md +0 -290
  340. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/jtbd.md +0 -105
  341. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/landing-page.md +0 -361
  342. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/market-type.md +0 -167
  343. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/mom-test.md +0 -193
  344. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/mvp-types.md +0 -200
  345. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/og-images.md +0 -239
  346. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/pareto.md +0 -103
  347. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/persona-development.md +0 -291
  348. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/pivot-types.md +0 -225
  349. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/positioning-statement.md +0 -179
  350. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/prd.md +0 -363
  351. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/pre-mortem.md +0 -74
  352. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/problem-validation.md +0 -253
  353. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/product-market-fit.md +0 -256
  354. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/research-synthesis.md +0 -276
  355. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/three-engines-of-growth.md +0 -248
  356. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/validation-tests.md +0 -89
  357. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/value-proposition-canvas.md +0 -121
  358. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/win-loss-analysis.md +0 -242
  359. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/workflow-mapping.md +0 -271
  360. package/payload/premium-plugins/writer-craft/.claude-plugin/plugin.json +0 -8
  361. package/payload/premium-plugins/writer-craft/PLUGIN.md +0 -88
  362. package/payload/premium-plugins/writer-craft/agents/writer-craft--manuscript-reviewer.md +0 -92
  363. package/payload/premium-plugins/writer-craft/skills/citation-style/SKILL.md +0 -94
  364. package/payload/premium-plugins/writer-craft/skills/citation-style/references/book-and-chapter-models.md +0 -77
  365. package/payload/premium-plugins/writer-craft/skills/citation-style/references/citation-rules.md +0 -103
  366. package/payload/premium-plugins/writer-craft/skills/citation-style/references/journal-article-models.md +0 -74
  367. package/payload/premium-plugins/writer-craft/skills/citation-style/references/other-source-models.md +0 -146
  368. package/payload/premium-plugins/writer-craft/skills/citation-style/references/reference-list-rules.md +0 -70
  369. package/payload/premium-plugins/writer-craft/skills/editorial-practice/SKILL.md +0 -108
  370. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/copyediting.md +0 -73
  371. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/developmental-editing.md +0 -85
  372. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/genre-specific-editing.md +0 -78
  373. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/line-editing.md +0 -55
  374. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/self-editing.md +0 -89
  375. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/SKILL.md +0 -114
  376. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/audience-analysis.md +0 -73
  377. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/crafting-persuasive-story.md +0 -76
  378. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/persuasion-case-studies.md +0 -67
  379. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/transformation-framework.md +0 -86
  380. package/payload/premium-plugins/writer-craft/skills/point-of-view/SKILL.md +0 -97
  381. package/payload/premium-plugins/writer-craft/skills/point-of-view/references/indirect-narration.md +0 -72
  382. package/payload/premium-plugins/writer-craft/skills/point-of-view/references/pov-types-and-voice.md +0 -91
  383. package/payload/premium-plugins/writer-craft/skills/point-of-view/references/protagonist-filter.md +0 -71
  384. package/payload/premium-plugins/writer-craft/skills/point-of-view/references/tense-and-person.md +0 -85
  385. package/payload/premium-plugins/writer-craft/skills/prose-craft/SKILL.md +0 -100
  386. package/payload/premium-plugins/writer-craft/skills/prose-craft/references/punctuation-and-grammar.md +0 -72
  387. package/payload/premium-plugins/writer-craft/skills/prose-craft/references/repetition.md +0 -71
  388. package/payload/premium-plugins/writer-craft/skills/prose-craft/references/sound-and-rhythm.md +0 -64
  389. package/payload/premium-plugins/writer-craft/skills/prose-craft/references/word-economy.md +0 -93
  390. package/payload/premium-plugins/writer-craft/skills/reader-engagement/SKILL.md +0 -100
  391. package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/cause-effect-setup-payoff.md +0 -79
  392. package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/conflict-escalation.md +0 -81
  393. package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/hooking-readers.md +0 -67
  394. package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/neurochemistry-of-engagement.md +0 -94
  395. package/payload/premium-plugins/writer-craft/skills/review-manuscript/SKILL.md +0 -111
  396. package/payload/premium-plugins/writer-craft/skills/review-manuscript/references/review-manuscript-checklist.md +0 -119
  397. package/payload/premium-plugins/writer-craft/skills/review-prose/SKILL.md +0 -99
  398. package/payload/premium-plugins/writer-craft/skills/review-prose/references/prose-review-checklist.md +0 -112
  399. package/payload/premium-plugins/writer-craft/skills/review-scene/SKILL.md +0 -99
  400. package/payload/premium-plugins/writer-craft/skills/review-scene/references/scene-analysis-framework.md +0 -95
  401. package/payload/premium-plugins/writer-craft/skills/story-architecture/SKILL.md +0 -106
  402. package/payload/premium-plugins/writer-craft/skills/story-architecture/references/blueprinting-and-scene-cards.md +0 -118
  403. package/payload/premium-plugins/writer-craft/skills/story-architecture/references/inner-issue-and-protagonist-goal.md +0 -66
  404. package/payload/premium-plugins/writer-craft/skills/story-architecture/references/misbelief-desire-worldview.md +0 -87
  405. package/payload/premium-plugins/writer-craft/skills/story-architecture/references/origin-scenes-and-escalation.md +0 -82
  406. package/payload/premium-plugins/writer-craft/skills/story-blueprint/SKILL.md +0 -133
  407. package/payload/premium-plugins/writer-craft/skills/story-blueprint/references/blueprinting-exercises.md +0 -118
  408. package/payload/premium-plugins/writer-craft/skills/story-blueprint/references/blueprinting-process.md +0 -128
  409. package/payload/server/public/assets/channel-CrSx5mnG.js +0 -1
  410. package/payload/server/public/assets/classDiagram-6PBFFD2Q-C3IDJsqN.js +0 -1
  411. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-BOIrJ5Zb.js +0 -1
  412. package/payload/server/public/assets/clone-P8Fkz7JD.js +0 -1
  413. package/payload/server/public/assets/data-DRfwJPja.js +0 -1
  414. package/payload/server/public/assets/graph-B4FFYwus.js +0 -1
  415. package/payload/server/public/assets/graph-labels-Cpk9Ktt0.js +0 -1
  416. package/payload/server/public/assets/lib--yuBd0Xi.js +0 -33
  417. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-C5JejhQU.js +0 -1
@@ -60,7 +60,9 @@ import {
60
60
  requireAdminSession,
61
61
  requirePortEnv,
62
62
  resolveAccount,
63
+ resolveAgentConfig,
63
64
  resolveClientIp,
65
+ resolveDefaultAgentSlug,
64
66
  resolveUserAccounts,
65
67
  runAdminUserSelfHeal,
66
68
  safeJson,
@@ -80,7 +82,7 @@ import {
80
82
  vncLog,
81
83
  walkPremiumBundles,
82
84
  writeAdminUserAndPerson
83
- } from "./chunk-FSPPVVWM.js";
85
+ } from "./chunk-FJCI6X3H.js";
84
86
  import {
85
87
  __commonJS,
86
88
  __toESM
@@ -4415,6 +4417,8 @@ async function managerSpawn(opts) {
4415
4417
  role: opts.role,
4416
4418
  channel: opts.channel,
4417
4419
  accountId: opts.accountId,
4420
+ agentSlug: opts.agentSlug,
4421
+ liveMemory: opts.liveMemory,
4418
4422
  attachmentDir: opts.attachmentDir,
4419
4423
  aboutOwner: opts.aboutOwner,
4420
4424
  dormantPlugins: opts.dormantPlugins,
@@ -4540,12 +4544,12 @@ function publicIdleMs() {
4540
4544
  return Number(process.env.CHANNEL_PTY_IDLE_MS ?? String(30 * 6e4));
4541
4545
  }
4542
4546
  var index = /* @__PURE__ */ new Map();
4543
- function indexKey(accountId, senderId) {
4544
- return `${accountId}:${senderId}`;
4547
+ function indexKey(accountId, agentSlug, senderId, liveMemory) {
4548
+ return `${accountId}:${agentSlug}:${liveMemory ? "lm1" : "lm0"}:${senderId}`;
4545
4549
  }
4546
4550
  async function ensureEntry(input) {
4547
4551
  startReaper();
4548
- const key = indexKey(input.accountId, input.senderId);
4552
+ const key = indexKey(input.accountId, input.agentSlug, input.senderId, input.liveMemory);
4549
4553
  const existing = index.get(key);
4550
4554
  const tag = tagFor(input.channel);
4551
4555
  if (existing) {
@@ -4567,6 +4571,8 @@ async function ensureEntry(input) {
4567
4571
  role: input.role,
4568
4572
  channel: input.channel,
4569
4573
  accountId: input.accountId,
4574
+ agentSlug: input.agentSlug,
4575
+ liveMemory: input.liveMemory,
4570
4576
  attachmentDir
4571
4577
  });
4572
4578
  if ("error" in spawned) {
@@ -4581,12 +4587,14 @@ async function ensureEntry(input) {
4581
4587
  channel: input.channel,
4582
4588
  accountId: input.accountId,
4583
4589
  senderId: input.senderId,
4590
+ agentSlug: input.agentSlug,
4584
4591
  lastInboundAt: Date.now(),
4585
4592
  writeChain: Promise.resolve(),
4586
4593
  subscribers: /* @__PURE__ */ new Set(),
4587
4594
  pendingTurnText: "",
4588
4595
  followerAbort: null,
4589
- followerRunning: false
4596
+ followerRunning: false,
4597
+ liveMemory: input.liveMemory
4590
4598
  };
4591
4599
  entry.followerAbort = startFollower({
4592
4600
  entry,
@@ -4613,12 +4621,14 @@ async function writeInput(entry, text) {
4613
4621
  `${tag} session-resolved senderId=${entry.senderId} action=respawn reason=session-gone-${result.status} sessionId=${entry.sessionId.slice(0, 8)}`
4614
4622
  );
4615
4623
  if (entry.followerAbort) entry.followerAbort.abort();
4616
- index.delete(indexKey(entry.accountId, entry.senderId));
4624
+ index.delete(indexKey(entry.accountId, entry.agentSlug, entry.senderId, entry.liveMemory));
4617
4625
  const respawned = await ensureEntry({
4618
4626
  accountId: entry.accountId,
4619
4627
  senderId: entry.senderId,
4620
4628
  role: entry.role,
4621
- channel: entry.channel
4629
+ channel: entry.channel,
4630
+ agentSlug: entry.agentSlug,
4631
+ liveMemory: entry.liveMemory
4622
4632
  });
4623
4633
  if (!respawned) return false;
4624
4634
  for (const cb of entry.subscribers) respawned.subscribers.add(cb);
@@ -4654,7 +4664,9 @@ async function dispatchOnce(input) {
4654
4664
  accountId: input.accountId,
4655
4665
  senderId: input.senderId,
4656
4666
  role: input.role,
4657
- channel: input.channel
4667
+ channel: input.channel,
4668
+ agentSlug: input.agentSlug,
4669
+ liveMemory: input.liveMemory
4658
4670
  });
4659
4671
  if (!entry) return { error: "spawn-failed" };
4660
4672
  entry.lastInboundAt = Date.now();
@@ -4860,6 +4872,18 @@ ${lines}]`;
4860
4872
  if (!account) {
4861
4873
  return c.json({ error: "No account configured" }, 500);
4862
4874
  }
4875
+ const agentSlug = resolveDefaultAgentSlug(account.accountDir);
4876
+ if (!agentSlug) {
4877
+ return c.json({ error: "No default agent configured" }, 500);
4878
+ }
4879
+ let liveMemory = false;
4880
+ try {
4881
+ liveMemory = resolveAgentConfig(account.accountDir, agentSlug).liveMemory;
4882
+ } catch (err) {
4883
+ const m = err instanceof Error ? err.message : String(err);
4884
+ console.error(`${WEBCHAT_TAG} reject reason=agent-config-failed agentSlug=${agentSlug} message=${m}`);
4885
+ return c.json({ error: "Agent config invalid" }, 500);
4886
+ }
4863
4887
  const sk = session_key.slice(0, 8);
4864
4888
  console.error(
4865
4889
  `${WEBCHAT_TAG} inbound from=${sk} bytes=${Buffer.byteLength(fullMessage, "utf8")} attachments=${attachmentCount} accountId=${account.accountId}`
@@ -4872,6 +4896,8 @@ ${lines}]`;
4872
4896
  senderId: session_key,
4873
4897
  role: "public",
4874
4898
  channel: "webchat",
4899
+ agentSlug,
4900
+ liveMemory,
4875
4901
  text: fullMessage,
4876
4902
  timeoutMs: webchatTurnTimeoutMs()
4877
4903
  });
@@ -12134,6 +12160,55 @@ app34.get("/:rel{.*}", (c) => {
12134
12160
  });
12135
12161
  var sites_default = app34;
12136
12162
 
12163
+ // server/routes/listings.ts
12164
+ var SAFE_SLUG_RE = /^[a-z0-9](?:[a-z0-9-]{0,118}[a-z0-9])?$/;
12165
+ var CHAT_SESSION_KEY_RE = /^[A-Za-z0-9][A-Za-z0-9_-]{7,127}$/;
12166
+ var app35 = new Hono();
12167
+ app35.get("/:slug/click", async (c) => {
12168
+ const slug = c.req.param("slug") ?? "";
12169
+ const rawSession = c.req.query("session") ?? "";
12170
+ const sessionKey = CHAT_SESSION_KEY_RE.test(rawSession) ? rawSession : "invalid";
12171
+ if (!SAFE_SLUG_RE.test(slug)) {
12172
+ console.error(`[property-card-click] reject reason=bad-slug-shape slug=${JSON.stringify(slug)} status=400`);
12173
+ return c.text("Bad Request", 400);
12174
+ }
12175
+ const account = resolveAccount();
12176
+ if (!account) {
12177
+ console.error(`[property-card-click] reject reason=no-account slug=${slug} status=404`);
12178
+ return c.text("Not Found", 404);
12179
+ }
12180
+ let pageUrl = null;
12181
+ const session = getSession();
12182
+ try {
12183
+ const result = await session.run(
12184
+ `MATCH (l:Listing {accountId: $accountId, slug: $slug})
12185
+ WHERE l.scope = 'public'
12186
+ RETURN l.pageUrl AS pageUrl
12187
+ LIMIT 1`,
12188
+ { accountId: account.accountId, slug }
12189
+ );
12190
+ const record = result.records[0];
12191
+ const raw = record?.get("pageUrl");
12192
+ pageUrl = typeof raw === "string" && raw.length > 0 ? raw : null;
12193
+ } catch (err) {
12194
+ const message = err instanceof Error ? err.message : String(err);
12195
+ console.error(`[property-card-click] reject reason=neo4j-error slug=${slug} sessionKey=${sessionKey} err=${JSON.stringify(message)} status=503`);
12196
+ await session.close().catch(() => {
12197
+ });
12198
+ return c.text("Service Unavailable", 503);
12199
+ } finally {
12200
+ await session.close().catch(() => {
12201
+ });
12202
+ }
12203
+ if (!pageUrl) {
12204
+ console.error(`[property-card-click] reject reason=listing-not-found slug=${slug} sessionKey=${sessionKey} accountId=${account.accountId} status=404`);
12205
+ return c.text("Not Found", 404);
12206
+ }
12207
+ console.log(`[property-card-click] sessionKey=${sessionKey} listingSlug=${slug} ts=${(/* @__PURE__ */ new Date()).toISOString()}`);
12208
+ return c.redirect(pageUrl, 302);
12209
+ });
12210
+ var listings_default = app35;
12211
+
12137
12212
  // app/lib/graph-health.ts
12138
12213
  var HOUR_MS = 60 * 60 * 1e3;
12139
12214
  var timer = null;
@@ -12227,6 +12302,8 @@ async function dispatchToClaude(input) {
12227
12302
  senderId: input.senderId,
12228
12303
  role: input.role,
12229
12304
  channel: "whatsapp",
12305
+ agentSlug: input.agentSlug,
12306
+ liveMemory: input.liveMemory,
12230
12307
  text: input.text,
12231
12308
  timeoutMs: whatsappTurnTimeoutMs()
12232
12309
  });
@@ -12567,9 +12644,9 @@ watchFile(ALIAS_DOMAINS_PATH, { interval: 2e3 }, () => {
12567
12644
  function isPublicHost(host) {
12568
12645
  return host.startsWith("public.") || aliasDomains.has(host);
12569
12646
  }
12570
- var app35 = new Hono();
12571
- app35.use("*", clientIpMiddleware);
12572
- app35.use("*", async (c, next) => {
12647
+ var app36 = new Hono();
12648
+ app36.use("*", clientIpMiddleware);
12649
+ app36.use("*", async (c, next) => {
12573
12650
  await next();
12574
12651
  c.header("X-Content-Type-Options", "nosniff");
12575
12652
  c.header("Referrer-Policy", "strict-origin-when-cross-origin");
@@ -12579,7 +12656,7 @@ app35.use("*", async (c, next) => {
12579
12656
  );
12580
12657
  });
12581
12658
  var HTTP_LOG_PATHS = /* @__PURE__ */ new Set(["/vnc-viewer.html", "/vnc-popout.html"]);
12582
- app35.use("*", async (c, next) => {
12659
+ app36.use("*", async (c, next) => {
12583
12660
  if (!HTTP_LOG_PATHS.has(c.req.path)) {
12584
12661
  await next();
12585
12662
  return;
@@ -12612,7 +12689,7 @@ var PUBLIC_ALLOWED_PREFIXES = [
12612
12689
  "/sites/"
12613
12690
  ];
12614
12691
  var PUBLIC_ALLOWED_EXACT = ["/favicon.ico"];
12615
- app35.use("*", async (c, next) => {
12692
+ app36.use("*", async (c, next) => {
12616
12693
  const host = (c.req.header("host") ?? "").split(":")[0];
12617
12694
  if (!isPublicHost(host)) {
12618
12695
  await next();
@@ -12652,7 +12729,7 @@ function resolveRemoteAuthOpts() {
12652
12729
  return brandLoginOpts;
12653
12730
  }
12654
12731
  var MAX_LOGIN_BODY = 8 * 1024;
12655
- app35.post("/__remote-auth/login", async (c) => {
12732
+ app36.post("/__remote-auth/login", async (c) => {
12656
12733
  const client = clientFrom(c);
12657
12734
  const clientIp = client.ip || "unknown";
12658
12735
  if (!requestIsTlsTerminated(c)) {
@@ -12697,7 +12774,7 @@ app35.post("/__remote-auth/login", async (c) => {
12697
12774
  }
12698
12775
  });
12699
12776
  });
12700
- app35.get("/__remote-auth/logout", (c) => {
12777
+ app36.get("/__remote-auth/logout", (c) => {
12701
12778
  const client = clientFrom(c);
12702
12779
  const clientIp = client.ip || "unknown";
12703
12780
  console.error(`[remote-auth] logout ip=${clientIp}`);
@@ -12710,7 +12787,7 @@ app35.get("/__remote-auth/logout", (c) => {
12710
12787
  }
12711
12788
  });
12712
12789
  });
12713
- app35.post("/__remote-auth/change-password", async (c) => {
12790
+ app36.post("/__remote-auth/change-password", async (c) => {
12714
12791
  const client = clientFrom(c);
12715
12792
  const clientIp = client.ip || "unknown";
12716
12793
  const rateLimited = checkRateLimit(client);
@@ -12761,13 +12838,13 @@ app35.post("/__remote-auth/change-password", async (c) => {
12761
12838
  return c.html(renderLoginPage({ ...resolveRemoteAuthOpts(), mode: "change", changeError: "Failed to save password", redirect }), 200);
12762
12839
  }
12763
12840
  });
12764
- app35.get("/__remote-auth/setup", (c) => {
12841
+ app36.get("/__remote-auth/setup", (c) => {
12765
12842
  if (isRemoteAuthConfigured()) {
12766
12843
  return c.redirect("/");
12767
12844
  }
12768
12845
  return c.html(renderLoginPage({ ...resolveRemoteAuthOpts(), mode: "setup" }), 200);
12769
12846
  });
12770
- app35.post("/__remote-auth/set-initial-password", async (c) => {
12847
+ app36.post("/__remote-auth/set-initial-password", async (c) => {
12771
12848
  if (isRemoteAuthConfigured()) {
12772
12849
  return c.redirect("/");
12773
12850
  }
@@ -12805,10 +12882,10 @@ app35.post("/__remote-auth/set-initial-password", async (c) => {
12805
12882
  return c.html(renderLoginPage({ ...resolveRemoteAuthOpts(), mode: "setup", setupError: "Failed to save password. Please try again." }), 200);
12806
12883
  }
12807
12884
  });
12808
- app35.get("/api/remote-auth/status", (c) => {
12885
+ app36.get("/api/remote-auth/status", (c) => {
12809
12886
  return c.json({ configured: isRemoteAuthConfigured() });
12810
12887
  });
12811
- app35.post("/api/remote-auth/set-password", async (c) => {
12888
+ app36.post("/api/remote-auth/set-password", async (c) => {
12812
12889
  let body;
12813
12890
  try {
12814
12891
  body = await c.req.json();
@@ -12839,9 +12916,9 @@ app35.post("/api/remote-auth/set-password", async (c) => {
12839
12916
  return c.json({ error: "Failed to save password" }, 500);
12840
12917
  }
12841
12918
  });
12842
- app35.route("/api/_client-error", client_error_default);
12919
+ app36.route("/api/_client-error", client_error_default);
12843
12920
  console.log("[client-error-route] mounted");
12844
- app35.use("*", async (c, next) => {
12921
+ app36.use("*", async (c, next) => {
12845
12922
  const host = (c.req.header("host") ?? "").split(":")[0];
12846
12923
  const path2 = c.req.path;
12847
12924
  if (path2 === "/favicon.ico" || path2.startsWith("/assets/") || path2.startsWith("/brand/")) {
@@ -12874,12 +12951,12 @@ app35.use("*", async (c, next) => {
12874
12951
  console.error(`[remote-auth] login required ip=${clientIp} path=${path2} ${disambig}`);
12875
12952
  return c.html(renderLoginPage({ ...resolveRemoteAuthOpts(), redirect: path2 }), 200);
12876
12953
  });
12877
- app35.route("/api/health", health_default);
12878
- app35.route("/api/chat", chat_default);
12879
- app35.route("/api/whatsapp", whatsapp_default);
12880
- app35.route("/api/onboarding", onboarding_default);
12881
- app35.route("/api/admin", admin_default);
12882
- var SAFE_SLUG_RE = /^[a-z][a-z0-9-]{2,49}$/;
12954
+ app36.route("/api/health", health_default);
12955
+ app36.route("/api/chat", chat_default);
12956
+ app36.route("/api/whatsapp", whatsapp_default);
12957
+ app36.route("/api/onboarding", onboarding_default);
12958
+ app36.route("/api/admin", admin_default);
12959
+ var SAFE_SLUG_RE2 = /^[a-z][a-z0-9-]{2,49}$/;
12883
12960
  var SAFE_FILENAME_RE = /^[a-z0-9_][a-z0-9_.-]{0,99}$/i;
12884
12961
  var IMAGE_MIME = {
12885
12962
  ".png": "image/png",
@@ -12890,10 +12967,10 @@ var IMAGE_MIME = {
12890
12967
  ".svg": "image/svg+xml",
12891
12968
  ".ico": "image/x-icon"
12892
12969
  };
12893
- app35.get("/agent-assets/:slug/:filename", (c) => {
12970
+ app36.get("/agent-assets/:slug/:filename", (c) => {
12894
12971
  const slug = c.req.param("slug");
12895
12972
  const filename = c.req.param("filename");
12896
- if (!SAFE_SLUG_RE.test(slug)) {
12973
+ if (!SAFE_SLUG_RE2.test(slug)) {
12897
12974
  console.error(`[agent-assets] invalid-slug slug=${slug}`);
12898
12975
  return c.text("Not found", 404);
12899
12976
  }
@@ -12925,7 +13002,7 @@ app35.get("/agent-assets/:slug/:filename", (c) => {
12925
13002
  "Cache-Control": "public, max-age=3600"
12926
13003
  });
12927
13004
  });
12928
- app35.get("/generated/:filename", (c) => {
13005
+ app36.get("/generated/:filename", (c) => {
12929
13006
  const filename = c.req.param("filename");
12930
13007
  if (!SAFE_FILENAME_RE.test(filename) || filename.includes("..")) {
12931
13008
  console.error(`[generated] serve file=${filename} status=403`);
@@ -12955,7 +13032,8 @@ app35.get("/generated/:filename", (c) => {
12955
13032
  "Cache-Control": "public, max-age=86400"
12956
13033
  });
12957
13034
  });
12958
- app35.route("/sites", sites_default);
13035
+ app36.route("/sites", sites_default);
13036
+ app36.route("/listings", listings_default);
12959
13037
  var htmlCache = /* @__PURE__ */ new Map();
12960
13038
  var brandLogoPath = "/brand/maxy-monochrome.png";
12961
13039
  var brandIconPath = "/brand/maxy-monochrome.png";
@@ -13092,7 +13170,7 @@ function brandedPublicHtml(agentSlug) {
13092
13170
  function escapeHtml(s) {
13093
13171
  return s.replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
13094
13172
  }
13095
- app35.get("/", (c) => {
13173
+ app36.get("/", (c) => {
13096
13174
  const host = (c.req.header("host") ?? "").split(":")[0];
13097
13175
  if (isPublicHost(host)) {
13098
13176
  const defaultSlug = resolveDefaultSlug();
@@ -13100,12 +13178,12 @@ app35.get("/", (c) => {
13100
13178
  }
13101
13179
  return c.html(cachedHtml("index.html"));
13102
13180
  });
13103
- app35.get("/public", (c) => {
13181
+ app36.get("/public", (c) => {
13104
13182
  const host = (c.req.header("host") ?? "").split(":")[0];
13105
13183
  if (isPublicHost(host)) return c.text("Not found", 404);
13106
13184
  return c.html(cachedHtml("public.html"));
13107
13185
  });
13108
- app35.get("/chat", (c) => {
13186
+ app36.get("/chat", (c) => {
13109
13187
  const host = (c.req.header("host") ?? "").split(":")[0];
13110
13188
  if (isPublicHost(host)) return c.text("Not found", 404);
13111
13189
  return c.html(cachedHtml("public.html"));
@@ -13124,9 +13202,9 @@ async function logViewerFetch(c, next) {
13124
13202
  duration_ms: Date.now() - start
13125
13203
  });
13126
13204
  }
13127
- app35.use("/vnc-viewer.html", logViewerFetch);
13128
- app35.use("/vnc-popout.html", logViewerFetch);
13129
- app35.get("/vnc-popout.html", (c) => {
13205
+ app36.use("/vnc-viewer.html", logViewerFetch);
13206
+ app36.use("/vnc-popout.html", logViewerFetch);
13207
+ app36.get("/vnc-popout.html", (c) => {
13130
13208
  let html = htmlCache.get("vnc-popout.html");
13131
13209
  if (!html) {
13132
13210
  html = readFileSync19(resolve21(process.cwd(), "public", "vnc-popout.html"), "utf-8");
@@ -13139,7 +13217,7 @@ app35.get("/vnc-popout.html", (c) => {
13139
13217
  }
13140
13218
  return c.html(html);
13141
13219
  });
13142
- app35.post("/api/vnc/client-event", async (c) => {
13220
+ app36.post("/api/vnc/client-event", async (c) => {
13143
13221
  let body;
13144
13222
  try {
13145
13223
  body = await c.req.json();
@@ -13160,25 +13238,25 @@ app35.post("/api/vnc/client-event", async (c) => {
13160
13238
  });
13161
13239
  return c.json({ ok: true });
13162
13240
  });
13163
- app35.get("/g/:slug", (c) => {
13241
+ app36.get("/g/:slug", (c) => {
13164
13242
  return c.html(brandedPublicHtml());
13165
13243
  });
13166
- app35.get("/graph", (c) => {
13244
+ app36.get("/graph", (c) => {
13167
13245
  const host = (c.req.header("host") ?? "").split(":")[0];
13168
13246
  if (isPublicHost(host)) return c.text("Not found", 404);
13169
13247
  return c.html(cachedHtml("graph.html"));
13170
13248
  });
13171
- app35.get("/sessions", (c) => {
13249
+ app36.get("/sessions", (c) => {
13172
13250
  const host = (c.req.header("host") ?? "").split(":")[0];
13173
13251
  if (isPublicHost(host)) return c.text("Not found", 404);
13174
13252
  return c.html(cachedHtml("sessions.html"));
13175
13253
  });
13176
- app35.get("/data", (c) => {
13254
+ app36.get("/data", (c) => {
13177
13255
  const host = (c.req.header("host") ?? "").split(":")[0];
13178
13256
  if (isPublicHost(host)) return c.text("Not found", 404);
13179
13257
  return c.html(cachedHtml("data.html"));
13180
13258
  });
13181
- app35.get("/:slug", async (c, next) => {
13259
+ app36.get("/:slug", async (c, next) => {
13182
13260
  const slug = c.req.param("slug");
13183
13261
  if (AGENT_SLUG_PATTERN.test(`/${slug}`)) {
13184
13262
  const branding = loadBrandingCache(slug);
@@ -13188,15 +13266,15 @@ app35.get("/:slug", async (c, next) => {
13188
13266
  await next();
13189
13267
  });
13190
13268
  if (brandFaviconPath !== "/favicon.ico") {
13191
- app35.get("/favicon.ico", (c) => {
13269
+ app36.get("/favicon.ico", (c) => {
13192
13270
  c.header("Cache-Control", "public, max-age=300");
13193
13271
  return c.redirect(brandFaviconPath, 302);
13194
13272
  });
13195
13273
  }
13196
- app35.use("/*", serveStatic({ root: "./public" }));
13274
+ app36.use("/*", serveStatic({ root: "./public" }));
13197
13275
  var port = requirePortEnv("MAXY_UI_INTERNAL_PORT", { tag: "ui-server" });
13198
13276
  var hostname = process.env.HOSTNAME ?? "127.0.0.1";
13199
- var httpServer = serve({ fetch: app35.fetch, port, hostname });
13277
+ var httpServer = serve({ fetch: app36.fetch, port, hostname });
13200
13278
  console.log(`${BRAND.productName} listening on http://${hostname}:${port}`);
13201
13279
  {
13202
13280
  const loopHist = monitorEventLoopDelay({ resolution: 50 });
@@ -13220,7 +13298,8 @@ var SUBAPP_MANIFEST = [
13220
13298
  { prefix: "/api/whatsapp", file: "server/routes/whatsapp.ts", subapp: whatsapp_default },
13221
13299
  { prefix: "/api/onboarding", file: "server/routes/onboarding.ts", subapp: onboarding_default },
13222
13300
  { prefix: "/api/admin", file: "server/routes/admin/index.ts", subapp: admin_default },
13223
- { prefix: "/api/_client-error", file: "server/routes/client-error.ts", subapp: client_error_default }
13301
+ { prefix: "/api/_client-error", file: "server/routes/client-error.ts", subapp: client_error_default },
13302
+ { prefix: "/listings", file: "server/routes/listings.ts", subapp: listings_default }
13224
13303
  ];
13225
13304
  for (const m of SUBAPP_MANIFEST) {
13226
13305
  const routeCount = Array.isArray(m.subapp.routes) ? m.subapp.routes.length : 0;
@@ -13228,7 +13307,7 @@ for (const m of SUBAPP_MANIFEST) {
13228
13307
  }
13229
13308
  try {
13230
13309
  const registered = [];
13231
- for (const r of app35.routes ?? []) {
13310
+ for (const r of app36.routes ?? []) {
13232
13311
  if (typeof r.path !== "string" || r.path.includes(":") || r.path.includes("*")) continue;
13233
13312
  if (AGENT_SLUG_PATTERN.test(r.path)) {
13234
13313
  registered.push({ method: (r.method ?? "ALL").toUpperCase(), path: r.path });
@@ -13348,11 +13427,27 @@ init({
13348
13427
  onMessage: async (msg) => {
13349
13428
  if (process.env.WHATSAPP_PTY_BRIDGE_ENABLED === "true" && msg.text && !msg.isOwnerMirror) {
13350
13429
  try {
13430
+ let agentSlugForBridge;
13431
+ let liveMemoryForBridge;
13432
+ if (msg.agentType === "admin") {
13433
+ agentSlugForBridge = "admin";
13434
+ liveMemoryForBridge = true;
13435
+ } else {
13436
+ const resolved = bootAccount ? resolvePublicAgent(bootAccount.accountDir, { accountId: msg.accountId, groupJid: msg.groupJid }) : null;
13437
+ if (!resolved) {
13438
+ console.error(`[whatsapp-adaptor] reject reason=no-public-agent senderId=${msg.senderPhone} accountId=${msg.accountId} groupJid=${msg.groupJid ?? "none"}`);
13439
+ return;
13440
+ }
13441
+ agentSlugForBridge = resolved.slug;
13442
+ liveMemoryForBridge = bootAccount ? resolveAgentConfig(bootAccount.accountDir, resolved.slug).liveMemory : false;
13443
+ }
13351
13444
  startReaper2();
13352
13445
  await dispatchToClaude({
13353
13446
  accountId: msg.accountId,
13354
13447
  senderId: msg.senderPhone,
13355
13448
  role: msg.agentType,
13449
+ agentSlug: agentSlugForBridge,
13450
+ liveMemory: liveMemoryForBridge,
13356
13451
  text: msg.text,
13357
13452
  reply: msg.reply
13358
13453
  });
@@ -1,8 +0,0 @@
1
- {
2
- "name": "teaching",
3
- "description": "Interactive tutoring, lesson planning, and study pack generation. Teaches any subject from the knowledge base, adapting to learner age and pace. Three skills: live tutoring, parent-delivered lesson plans, and independent revision packs.",
4
- "version": "0.1.0",
5
- "author": {
6
- "name": "Rubytech LLC"
7
- }
8
- }
@@ -1,58 +0,0 @@
1
- ---
2
- name: teaching
3
- description: "Interactive tutoring, lesson planning, and study pack generation. Teaches any subject from the knowledge base, adapting to learner age and pace. Three skills: live tutoring, parent-delivered lesson plans, and independent revision packs."
4
- icon: 🎓
5
- tools: []
6
- always: false
7
- metadata: {"platform":{"optional":true,"pluginKey":"teaching","embed":["public","admin"]}}
8
- ---
9
-
10
- # Teaching
11
-
12
- Three skills for knowledge-based teaching and learning. Each skill draws content exclusively from the account's knowledge base — never from training data — and adapts to the learner's age (5–18).
13
-
14
- ## Skills
15
-
16
- | Skill | Purpose | Audience |
17
- |-------|---------|----------|
18
- | `interactive-tutor` | Teaches a learner directly through conversation, adapting in real time | Student (via chat) |
19
- | `lesson-planner` | Generates self-contained lesson plans a parent or instructor can deliver | Parent / instructor |
20
- | `study-pack-builder` | Produces structured revision packs (flashcards, summaries, assessments) | Student (independent study) |
21
-
22
- ## When to Activate
23
-
24
- The user wants to:
25
- - Teach a child or student a topic from the knowledge base
26
- - Create a lesson plan for home education or tutoring
27
- - Build revision materials, flashcards, or study packs from stored content
28
- - Prepare a student for an assessment using knowledge base content
29
-
30
- ## Shared Principles
31
-
32
- - **Content from knowledge base only.** Every skill searches memory first. If the knowledge base lacks sufficient material, the skill says so — it never fills gaps from training data.
33
- - **Conversational context gathering.** Each skill collects requirements one question at a time, confirming before generating.
34
- - **Age-appropriate adaptation.** Language, examples, and complexity scale to the learner's age (5–18 years).
35
- - **Self-contained output.** Lesson plans, study packs, and tutoring sessions require no external resources.
36
- - **Domain-neutral.** The skills work for any subject present in the knowledge base — not limited to any specific curriculum, exam board, or educational system.
37
-
38
- ## Tools Used
39
-
40
- No MCP server. Skills operate via existing platform tools:
41
- - `memory-search` — retrieve subject content from the knowledge base
42
- - `image_generate` — create visual aids, diagrams, and infographics
43
-
44
- Structured choices are presented as numbered lists in plain chat — the platform has no inline-UI component primitive on the admin / native-CC surface.
45
-
46
- ## References
47
-
48
- Domain knowledge files loaded on demand by each skill:
49
-
50
- | Reference | Used By | Purpose |
51
- |-----------|---------|---------|
52
- | `references/assessment.md` | interactive-tutor | Prior knowledge assessment and comprehension checking |
53
- | `references/classroom-conduct.md` | interactive-tutor | Standing rules for language, output format, and boundaries |
54
- | `references/teaching-modes.md` | interactive-tutor | Four teaching approaches (Socratic, Direct, Guided Discovery, Adaptive) |
55
- | `references/context-gathering.md` | lesson-planner | Student context fields and teaching mode descriptions |
56
- | `references/plan-structure.md` | lesson-planner | Lesson plan format, content requirements, and quality standards |
57
- | `references/disaggregation.md` | study-pack-builder | Building topic hierarchies from knowledge base content |
58
- | `references/materials.md` | study-pack-builder | Per-topic revision material generation (summaries, flashcards, assessments) |
@@ -1,59 +0,0 @@
1
- ---
2
- name: interactive-tutor
3
- description: "Teach learners interactively through conversation. Adapts to the student's age, assesses prior knowledge, teaches using four modes (Socratic, Direct, Guided Discovery, Adaptive), checks comprehension, and adjusts complexity in real time."
4
- ---
5
-
6
- # Interactive Tutor
7
-
8
- You teach learners directly through conversation. When a student wants to learn something, you become their teacher — engaging, age-appropriate, and responsive to their understanding.
9
-
10
- ## Teaching Flow
11
-
12
- ```
13
- 1. Gather basics (age, topic, lesson length, teaching mode)
14
- 2. Assess prior knowledge (warm greeting, 1-2 questions)
15
- 3. Teach with adaptive complexity (main loop)
16
- ```
17
-
18
- ## Step 1: Gather Basics
19
-
20
- Collect from the parent or student:
21
- - **Student's age**
22
- - **Topic** to learn
23
- - **Lesson length** (10-20 minutes)
24
- - **Teaching mode** (Socratic, Direct, Guided Discovery, or Adaptive)
25
-
26
- If the parent is present, gather from them. If the student is chatting directly, ask in age-appropriate language.
27
-
28
- ## Step 2: Assess Prior Knowledge
29
-
30
- Greet the student warmly. You are now speaking DIRECTLY to the child, not the parent.
31
- - Brief introduction about what you'll learn together
32
- - 1-2 engaging questions to gauge what they already know
33
- - Then transition directly into teaching — don't announce a plan
34
-
35
- Load `references/assessment.md` for the full assessment approach.
36
-
37
- ## Step 3: Teach
38
-
39
- Search memory for content on the topic before teaching. Teach from what the knowledge base provides — do not teach from training data.
40
-
41
- Use the selected mode. Load `references/teaching-modes.md` for mode-specific strategies.
42
-
43
- During teaching:
44
- - Use concrete, age-appropriate examples (toys, games, food, animals — things they know)
45
- - Check comprehension periodically
46
- - Adjust complexity based on their responses
47
- - Celebrate their thinking process and effort
48
- - Generate images with `image_generate` when a visual would help — diagrams, illustrations, worked examples. Don't narrate that you're generating; just include the image naturally in the teaching flow.
49
-
50
- Load `references/classroom-conduct.md` for conduct rules that apply at all times.
51
-
52
- ## Critical Rules
53
-
54
- 1. **Speak only dialogue** — no action descriptions, no asterisks, no stage directions. Only words you would say out loud.
55
- 2. **Don't ask permission** — "Would you like me to teach you?" is wrong. Just teach.
56
- 3. **Lead with confidence** — you are the teacher. Ask questions, guide discovery, explain concepts.
57
- 4. **Adapt immediately** — if they struggle once, simplify. If they excel once, increase the challenge. Don't wait for patterns.
58
- 5. **Stay on topic** — if the student goes off-topic, redirect warmly but firmly.
59
- 6. **Content from memory only** — search the knowledge base for topic content. Do not teach from training data.
@@ -1,70 +0,0 @@
1
- # Assessment and Comprehension
2
-
3
- ## Initial Assessment (Prior Knowledge)
4
-
5
- When transitioning from gathering basics to teaching, assess what the student already knows.
6
-
7
- **You are speaking DIRECTLY to the student, not the parent.**
8
-
9
- ### Opening
10
- 1. Warm greeting: "Hello! I'm excited to teach you about [topic] today."
11
- 2. Brief introduction: explain what you'll be learning together in simple terms
12
- 3. Transition to assessment: "Before we dive in, I'd like to understand what you already know."
13
-
14
- ### Assessment Questions
15
- - Ask open, engaging questions — not test questions
16
- - "What do you know about [topic]?" not "Can you define [topic]?"
17
- - "Have you ever noticed..." or "What happens when you..."
18
- - Keep it light — this isn't a test
19
- - Build on what they say with follow-up questions
20
-
21
- ### Quick Assessment (1-2 Questions Max)
22
- 1. Start with an open question about what they know
23
- 2. Based on their answer, ask one follow-up to gauge depth
24
- 3. Then START TEACHING immediately — don't announce a plan
25
-
26
- ### Transition to Teaching
27
- - Wrong: "I'll now create a lesson plan for you..."
28
- - Right: "Let me show you something cool about [topic]..."
29
- - Wrong: "Would you like me to start teaching?"
30
- - Right: "Here's an interesting question..."
31
-
32
- ## Comprehension Checks During Teaching
33
-
34
- Periodically assess whether the student understands the current concept.
35
-
36
- ### How to Check
37
- Ask a question that tests understanding, not recall:
38
- - "If I changed [variable], what would happen?"
39
- - "Can you explain that to me in your own words?"
40
- - "Why do you think [concept] works that way?"
41
-
42
- ### Interpreting Responses
43
-
44
- | Level | Signs | Action |
45
- |-------|-------|--------|
46
- | Full understanding | Explains concept accurately, applies it to new examples | Move on. Increase complexity. |
47
- | Partial understanding | Gets the idea but misses details or can't apply it | Clarify the gaps. Try a different example. |
48
- | Minimal understanding | Vague or partially wrong answers | Simplify. Reteach with a different approach. |
49
- | No understanding | Confused, silent, or completely wrong | Step back. Start from a more basic concept. |
50
-
51
- ### Complexity Adjustment
52
-
53
- Track complexity on a 1-10 scale (1 = very simple, 10 = advanced).
54
-
55
- **Decrease complexity when:** Multiple wrong answers, asks for explanations, says "I don't understand", long pauses.
56
-
57
- **Increase complexity when:** Answers quickly and correctly, asks advanced questions, shows mastery, seems bored.
58
-
59
- **Maintain when:** Appropriately challenged, engaged, occasional mistakes but learning.
60
-
61
- Adjustments should be decisive (+/-2-3 levels) when the signal is clear, gradual (+/-1) when uncertain.
62
-
63
- ## Mastery Tracking
64
-
65
- Throughout the session, mentally track:
66
- - **Concepts introduced** — what you've taught
67
- - **Concepts mastered** — what the student demonstrated understanding of
68
- - **Concepts needing work** — where they struggled
69
-
70
- Use this to guide what to focus on next. Don't move on from a concept the student hasn't grasped — reteach it differently before progressing.