@rubytech/create-maxy-code 0.1.114 → 0.1.116

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 (722) 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 +1 -1
  7. package/payload/platform/neo4j/schema.cypher +1 -1
  8. package/payload/platform/plugins/.claude-plugin/marketplace.json +0 -5
  9. package/payload/platform/plugins/admin/PLUGIN.md +1 -0
  10. package/payload/platform/plugins/admin/hooks/signal-detector-stop.sh +309 -0
  11. package/payload/platform/plugins/contacts/mcp/dist/index.js +3 -3
  12. package/payload/platform/plugins/contacts/mcp/dist/index.js.map +1 -1
  13. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-create.js +1 -1
  14. package/payload/platform/plugins/docs/references/contacts-guide.md +1 -9
  15. package/payload/platform/plugins/docs/references/getting-started.md +1 -1
  16. package/payload/platform/plugins/docs/references/internals.md +1 -1
  17. package/payload/platform/plugins/docs/references/platform.md +1 -1
  18. package/payload/platform/plugins/docs/references/plugins-guide.md +1 -2
  19. package/payload/platform/plugins/linkedin-import/PLUGIN.md +1 -1
  20. package/payload/platform/plugins/memory/PLUGIN.md +8 -1
  21. package/payload/platform/plugins/memory/mcp/dist/index.js +32 -0
  22. package/payload/platform/plugins/memory/mcp/dist/index.js.map +1 -1
  23. package/payload/platform/plugins/memory/mcp/dist/tools/memory-signals-recent.d.ts +35 -0
  24. package/payload/platform/plugins/memory/mcp/dist/tools/memory-signals-recent.d.ts.map +1 -0
  25. package/payload/platform/plugins/memory/mcp/dist/tools/memory-signals-recent.js +73 -0
  26. package/payload/platform/plugins/memory/mcp/dist/tools/memory-signals-recent.js.map +1 -0
  27. package/payload/platform/plugins/sales/.claude-plugin/plugin.json +1 -1
  28. package/payload/platform/plugins/sales/PLUGIN.md +9 -9
  29. package/payload/platform/plugins/sales/references/close-tracking.md +6 -6
  30. package/payload/platform/plugins/sales/references/faq.md +1 -5
  31. package/payload/platform/plugins/sales/references/objection-handling.md +2 -2
  32. package/payload/platform/plugins/scheduling/PLUGIN.md +1 -1
  33. package/payload/platform/plugins/scheduling/mcp/dist/index.js +2 -2
  34. package/payload/platform/plugins/scheduling/mcp/dist/index.js.map +1 -1
  35. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/getUserTimezone.test.js +1 -1
  36. package/payload/platform/plugins/venture-studio/skills/office-hours/SKILL.md +3 -3
  37. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/landing-page.md +4 -4
  38. package/payload/platform/plugins/workflows/PLUGIN.md +1 -1
  39. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.d.ts +1 -1
  40. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.js +2 -2
  41. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.js.map +1 -1
  42. package/payload/platform/scripts/conversation-id-allowlist.txt +0 -7
  43. package/payload/platform/scripts/seed-neo4j.sh +2 -1
  44. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
  45. package/payload/platform/services/claude-session-manager/dist/http-server.js +42 -1
  46. package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
  47. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +34 -0
  48. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
  49. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +83 -2
  50. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
  51. package/payload/platform/templates/agents/admin/IDENTITY.md +12 -0
  52. package/payload/platform/templates/specialists/agents/project-manager.md +1 -3
  53. package/payload/platform/templates/specialists/agents/signal-detector.md +129 -0
  54. package/payload/premium-plugins/.claude-plugin/marketplace.json +0 -10
  55. package/payload/premium-plugins/venture-studio/skills/office-hours/SKILL.md +3 -3
  56. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/landing-page.md +4 -4
  57. package/payload/server/{chunk-FSPPVVWM.js → chunk-FJCI6X3H.js} +192 -0
  58. package/payload/server/maxy-edge.js +1 -1
  59. package/payload/server/public/assets/{ChatInput-CsnIedhS.js → ChatInput-CJo_77bp.js} +5 -1
  60. package/payload/server/public/assets/{Checkbox-CWugFyFT.js → Checkbox-YrQovXpN.js} +1 -1
  61. package/payload/server/public/assets/{admin-D3gZuyUn.js → admin-DloKrK2i.js} +25 -25
  62. package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-CeTRKWDb.js → architectureDiagram-Q4EWVU46-Breg9-99.js} +1 -1
  63. package/payload/server/public/assets/{blockDiagram-DXYQGD6D-DeeIX5U3.js → blockDiagram-DXYQGD6D-DXf1_673.js} +1 -1
  64. package/payload/server/public/assets/{c4Diagram-AHTNJAMY-CFsqZuil.js → c4Diagram-AHTNJAMY-CSZ36W4-.js} +1 -1
  65. package/payload/server/public/assets/channel-BmZnt3PP.js +1 -0
  66. package/payload/server/public/assets/{chunk-336JU56O-DpIXuFM0.js → chunk-336JU56O-DsrLk2eK.js} +2 -2
  67. package/payload/server/public/assets/{chunk-426QAEUC-Qk8qqrvA.js → chunk-426QAEUC-JpNfNf81.js} +1 -1
  68. package/payload/server/public/assets/{chunk-4TB4RGXK-DtM8-CUn.js → chunk-4TB4RGXK-DmClEAD0.js} +1 -1
  69. package/payload/server/public/assets/{chunk-5FUZZQ4R-CrSQ4ySU.js → chunk-5FUZZQ4R-BI9blW3N.js} +1 -1
  70. package/payload/server/public/assets/{chunk-5PVQY5BW-Bn2nQwdj.js → chunk-5PVQY5BW-BbgttEFO.js} +1 -1
  71. package/payload/server/public/assets/{chunk-EDXVE4YY-CzCPnR0P.js → chunk-EDXVE4YY-BX_LCFOx.js} +1 -1
  72. package/payload/server/public/assets/{chunk-ENJZ2VHE-CgZj9RoG.js → chunk-ENJZ2VHE-Bb7EoD0w.js} +1 -1
  73. package/payload/server/public/assets/{chunk-ICPOFSXX-wy-eNjwW.js → chunk-ICPOFSXX-DH8uQk-s.js} +1 -1
  74. package/payload/server/public/assets/{chunk-OYMX7WX6-CMmJtL8S.js → chunk-OYMX7WX6-FH5kgXsw.js} +1 -1
  75. package/payload/server/public/assets/{chunk-U2HBQHQK-CFCW7OaT.js → chunk-U2HBQHQK-D_ljlkHr.js} +1 -1
  76. package/payload/server/public/assets/{chunk-X2U36JSP-Bgh-CJSN.js → chunk-X2U36JSP-BX3EmZvm.js} +1 -1
  77. package/payload/server/public/assets/{chunk-YZCP3GAM-BXKwZ4vN.js → chunk-YZCP3GAM-Vu7-E93h.js} +1 -1
  78. package/payload/server/public/assets/{chunk-ZZ45TVLE-BiOuK5NP.js → chunk-ZZ45TVLE-CwjhNPX5.js} +1 -1
  79. package/payload/server/public/assets/classDiagram-6PBFFD2Q-kmMLFUpV.js +1 -0
  80. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-BV7Ae8ct.js +1 -0
  81. package/payload/server/public/assets/clone-B5eqoN9I.js +1 -0
  82. package/payload/server/public/assets/{dagre-DyCxa9Q2.js → dagre-Ce6gsj0C.js} +1 -1
  83. package/payload/server/public/assets/{dagre-KV5264BT-Cffo_hmf.js → dagre-KV5264BT-BaMGpsoy.js} +1 -1
  84. package/payload/server/public/assets/data-NMvGx6jm.js +1 -0
  85. package/payload/server/public/assets/{diagram-5BDNPKRD-Bt93Du3V.js → diagram-5BDNPKRD-CHEE9rjq.js} +1 -1
  86. package/payload/server/public/assets/{diagram-G4DWMVQ6-v4r-tBsC.js → diagram-G4DWMVQ6-C98sZLW1.js} +1 -1
  87. package/payload/server/public/assets/{diagram-MMDJMWI5-DKrVPOP-.js → diagram-MMDJMWI5-DNvMGsTZ.js} +1 -1
  88. package/payload/server/public/assets/{diagram-TYMM5635-B1PzWQb9.js → diagram-TYMM5635-Cdte4IBa.js} +1 -1
  89. package/payload/server/public/assets/{erDiagram-SMLLAGMA-ClQzsQAs.js → erDiagram-SMLLAGMA-C9VZsWXK.js} +1 -1
  90. package/payload/server/public/assets/{flowDiagram-DWJPFMVM-h3IbpN_7.js → flowDiagram-DWJPFMVM-tuP5fzzR.js} +1 -1
  91. package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-ClaxOJi8.js → ganttDiagram-T4ZO3ILL-SJgRPUwx.js} +1 -1
  92. package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-pM-U4ClD.js → gitGraphDiagram-UUTBAWPF-DU_cI_50.js} +1 -1
  93. package/payload/server/public/assets/graph-CN60KyTy.js +1 -0
  94. package/payload/server/public/assets/graph-labels-h39S93Xo.js +1 -0
  95. package/payload/server/public/assets/{graphlib-CwimOv_M.js → graphlib-D_nAsvmx.js} +1 -1
  96. package/payload/server/public/assets/{infoDiagram-42DDH7IO-DcO3Giwe.js → infoDiagram-42DDH7IO-Cj2Y19m6.js} +1 -1
  97. package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-BcdSL5VS.js → ishikawaDiagram-UXIWVN3A-DMc1xq1y.js} +1 -1
  98. package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-CYahHYzf.js → journeyDiagram-VCZTEJTY-C4CRAQma.js} +1 -1
  99. package/payload/server/public/assets/{kanban-definition-6JOO6SKY-Cl5KhoS4.js → kanban-definition-6JOO6SKY-CTr4AldU.js} +1 -1
  100. package/payload/server/public/assets/lib-Bnh57com.js +29 -0
  101. package/payload/server/public/assets/{line-d_2oTxLp.js → line-Btlm_IAl.js} +1 -1
  102. package/payload/server/public/assets/{mermaid-parser.core-CMMDGv3x.js → mermaid-parser.core-DXFdj_y1.js} +1 -1
  103. package/payload/server/public/assets/{mermaid.core-DK9ENGbr.js → mermaid.core-DFBhoCr5.js} +3 -3
  104. package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-mA3x3MFG.js → mindmap-definition-QFDTVHPH-r9gVQybo.js} +1 -1
  105. package/payload/server/public/assets/{page-CgDmg_fX.js → page-B0iMmY6t.js} +1 -1
  106. package/payload/server/public/assets/{page-D9lluVl7.js → page-CFRU-BdJ.js} +2 -2
  107. package/payload/server/public/assets/{pieDiagram-DEJITSTG-CW1nGFlY.js → pieDiagram-DEJITSTG-CHKZjSaH.js} +1 -1
  108. package/payload/server/public/assets/{public-DdLMkNdS.js → public-DyGWgfaZ.js} +4 -4
  109. package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-DI5igJhR.js → quadrantDiagram-34T5L4WZ-CSGR1HJr.js} +1 -1
  110. package/payload/server/public/assets/{requirementDiagram-MS252O5E-DyVeI4e_.js → requirementDiagram-MS252O5E-DZ6hX9D6.js} +1 -1
  111. package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-CCTTBYKY.js → sankeyDiagram-XADWPNL6-DbZBKh0m.js} +1 -1
  112. package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-hVVf35ly.js → sequenceDiagram-FGHM5R23-BHHpb8dt.js} +1 -1
  113. package/payload/server/public/assets/{stateDiagram-FHFEXIEX-CSLuQDUX.js → stateDiagram-FHFEXIEX-DQ1jiLB4.js} +1 -1
  114. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-CByT2RzF.js +1 -0
  115. package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-sxC3W8Q4.js → timeline-definition-GMOUNBTQ-BlGiEU7p.js} +1 -1
  116. package/payload/server/public/assets/{vennDiagram-DHZGUBPP-Ro-ton6Z.js → vennDiagram-DHZGUBPP-DmEH-hsB.js} +1 -1
  117. package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-T-dKD0Zx.js → wardleyDiagram-NUSXRM2D-C7KJJ40d.js} +1 -1
  118. package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-CfProPts.js → xychartDiagram-5P7HB3ND-JDnusCaa.js} +1 -1
  119. package/payload/server/public/data.html +4 -4
  120. package/payload/server/public/graph.html +5 -5
  121. package/payload/server/public/index.html +7 -7
  122. package/payload/server/public/public.html +4 -4
  123. package/payload/server/server.js +52 -8
  124. package/payload/platform/plugins/waitlist/.claude-plugin/plugin.json +0 -17
  125. package/payload/platform/plugins/waitlist/PLUGIN.md +0 -86
  126. package/payload/platform/plugins/waitlist/mcp/dist/index.d.ts +0 -2
  127. package/payload/platform/plugins/waitlist/mcp/dist/index.d.ts.map +0 -1
  128. package/payload/platform/plugins/waitlist/mcp/dist/index.js +0 -388
  129. package/payload/platform/plugins/waitlist/mcp/dist/index.js.map +0 -1
  130. package/payload/platform/plugins/waitlist/mcp/dist/lib/admin-model.d.ts +0 -16
  131. package/payload/platform/plugins/waitlist/mcp/dist/lib/admin-model.d.ts.map +0 -1
  132. package/payload/platform/plugins/waitlist/mcp/dist/lib/admin-model.js +0 -58
  133. package/payload/platform/plugins/waitlist/mcp/dist/lib/admin-model.js.map +0 -1
  134. package/payload/platform/plugins/waitlist/mcp/dist/lib/embedding.d.ts +0 -3
  135. package/payload/platform/plugins/waitlist/mcp/dist/lib/embedding.d.ts.map +0 -1
  136. package/payload/platform/plugins/waitlist/mcp/dist/lib/embedding.js +0 -48
  137. package/payload/platform/plugins/waitlist/mcp/dist/lib/embedding.js.map +0 -1
  138. package/payload/platform/plugins/waitlist/mcp/dist/lib/neo4j.d.ts +0 -5
  139. package/payload/platform/plugins/waitlist/mcp/dist/lib/neo4j.d.ts.map +0 -1
  140. package/payload/platform/plugins/waitlist/mcp/dist/lib/neo4j.js +0 -40
  141. package/payload/platform/plugins/waitlist/mcp/dist/lib/neo4j.js.map +0 -1
  142. package/payload/platform/plugins/waitlist/mcp/dist/tools/__tests__/waitlist-persist.test.d.ts +0 -2
  143. package/payload/platform/plugins/waitlist/mcp/dist/tools/__tests__/waitlist-persist.test.d.ts.map +0 -1
  144. package/payload/platform/plugins/waitlist/mcp/dist/tools/__tests__/waitlist-persist.test.js +0 -70
  145. package/payload/platform/plugins/waitlist/mcp/dist/tools/__tests__/waitlist-persist.test.js.map +0 -1
  146. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-extract.d.ts +0 -34
  147. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-extract.d.ts.map +0 -1
  148. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-extract.js +0 -129
  149. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-extract.js.map +0 -1
  150. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-heal.d.ts +0 -27
  151. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-heal.d.ts.map +0 -1
  152. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-heal.js +0 -127
  153. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-heal.js.map +0 -1
  154. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-list.d.ts +0 -23
  155. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-list.d.ts.map +0 -1
  156. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-list.js +0 -58
  157. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-list.js.map +0 -1
  158. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-persist.d.ts +0 -83
  159. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-persist.d.ts.map +0 -1
  160. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-persist.js +0 -433
  161. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-persist.js.map +0 -1
  162. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-review.d.ts +0 -19
  163. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-review.d.ts.map +0 -1
  164. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-review.js +0 -81
  165. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-review.js.map +0 -1
  166. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-scan.d.ts +0 -28
  167. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-scan.d.ts.map +0 -1
  168. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-scan.js +0 -50
  169. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-scan.js.map +0 -1
  170. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.d.ts +0 -33
  171. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.d.ts.map +0 -1
  172. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.js +0 -297
  173. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.js.map +0 -1
  174. package/payload/platform/plugins/waitlist/mcp/package.json +0 -23
  175. package/payload/platform/plugins/waitlist/mcp/vitest.config.ts +0 -9
  176. package/payload/premium-plugins/real-agent/BUNDLE.md +0 -47
  177. package/payload/premium-plugins/real-agent/agents/buyer-enquiry/IDENTITY.md +0 -13
  178. package/payload/premium-plugins/real-agent/agents/buyer-enquiry/SOUL.md +0 -19
  179. package/payload/premium-plugins/real-agent/agents/buyer-enquiry/template.json +0 -9
  180. package/payload/premium-plugins/real-agent/agents/compliance.md +0 -317
  181. package/payload/premium-plugins/real-agent/agents/listing-curator.md +0 -152
  182. package/payload/premium-plugins/real-agent/agents/negotiator.md +0 -167
  183. package/payload/premium-plugins/real-agent/agents/valuer.md +0 -155
  184. package/payload/premium-plugins/real-agent/plugins/.claude-plugin/marketplace.json +0 -68
  185. package/payload/premium-plugins/real-agent/plugins/brochures/.claude-plugin/plugin.json +0 -8
  186. package/payload/premium-plugins/real-agent/plugins/brochures/PLUGIN.md +0 -38
  187. package/payload/premium-plugins/real-agent/plugins/brochures/commands/make-brochure.md +0 -11
  188. package/payload/premium-plugins/real-agent/plugins/brochures/skills/a4-print-documents/SKILL.md +0 -478
  189. package/payload/premium-plugins/real-agent/plugins/brochures/skills/brand-design/SKILL.md +0 -235
  190. package/payload/premium-plugins/real-agent/plugins/brochures/skills/make-brochure/SKILL.md +0 -355
  191. package/payload/premium-plugins/real-agent/plugins/brochures/skills/make-brochure/references/seller-brief-template.md +0 -115
  192. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/SKILL.md +0 -195
  193. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/references/build.md +0 -689
  194. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/references/copy.md +0 -211
  195. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/references/images.md +0 -166
  196. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/references/index-landing.md +0 -376
  197. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/references/index.html +0 -1290
  198. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/references/placeholders.md +0 -250
  199. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/references/registers.md +0 -105
  200. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/references/seller-brief.md +0 -56
  201. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/references/structure.md +0 -249
  202. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/references/template.html +0 -2400
  203. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-extract/SKILL.md +0 -366
  204. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-market-report/SKILL.md +0 -100
  205. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-market-report/references/render.py +0 -267
  206. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-market-report/references/template.html +0 -266
  207. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-socials/SKILL.md +0 -143
  208. package/payload/premium-plugins/real-agent/plugins/buyers/.claude-plugin/plugin.json +0 -8
  209. package/payload/premium-plugins/real-agent/plugins/buyers/PLUGIN.md +0 -35
  210. package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-feedback/SKILL.md +0 -109
  211. package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-management/SKILL.md +0 -42
  212. package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-management/references/buyer-qualification-questions.md +0 -16
  213. package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-management/references/buyer-qualification.md +0 -59
  214. package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-management/references/buyer-scripts.md +0 -63
  215. package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-management/references/buyer-working-scripts.md +0 -54
  216. package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-management/references/feedback-collection.md +0 -42
  217. package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-management/references/offer-capture.md +0 -38
  218. package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-management/references/viewing-booking.md +0 -32
  219. package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-management/references/viewing-management.md +0 -52
  220. package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-seller-guides/SKILL.md +0 -407
  221. package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-seller-guides/references/care-fees-guide.md +0 -68
  222. package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-seller-guides/references/divorce-sales-guide.md +0 -61
  223. package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-seller-guides/references/downsizing-guide.md +0 -45
  224. package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-seller-guides/references/first-time-buyers.md +0 -92
  225. package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-seller-guides/references/first-time-sellers.md +0 -78
  226. package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-seller-guides/references/probate-guide.md +0 -53
  227. package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-seller-guides/references/upsizing-guide.md +0 -41
  228. package/payload/premium-plugins/real-agent/plugins/buyers/skills/property-enquiry/SKILL.md +0 -126
  229. package/payload/premium-plugins/real-agent/plugins/buyers/skills/property-recommender/SKILL.md +0 -116
  230. package/payload/premium-plugins/real-agent/plugins/buyers/skills/viewing-management/SKILL.md +0 -111
  231. package/payload/premium-plugins/real-agent/plugins/estate-business/.claude-plugin/plugin.json +0 -8
  232. package/payload/premium-plugins/real-agent/plugins/estate-business/PLUGIN.md +0 -64
  233. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-growth/SKILL.md +0 -133
  234. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-growth/references/buy-back-your-time.md +0 -37
  235. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-growth/references/firewave-gost-scorecards.md +0 -14
  236. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-growth/references/keller-org-model.md +0 -17
  237. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-growth/references/lencioni-team-models.md +0 -22
  238. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-growth/references/listing-management-system.md +0 -11
  239. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-growth/references/net-figure-form.md +0 -11
  240. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-growth/references/serhant-bizinbox-notes.md +0 -13
  241. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-growth/references/team-roles-commission.md +0 -14
  242. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-growth/references/va-2026-ops.md +0 -43
  243. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-growth/references/wingman-structure.md +0 -13
  244. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-operations/SKILL.md +0 -32
  245. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-operations/references/crm-systems.md +0 -57
  246. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-operations/references/hiring-guide.md +0 -59
  247. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-operations/references/impact-framework.md +0 -47
  248. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-operations/references/minutes-equal-money.md +0 -55
  249. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-operations/references/team-management.md +0 -48
  250. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/commission-calculator/SKILL.md +0 -40
  251. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/exp-partnership/SKILL.md +0 -52
  252. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/exp-partnership/references/12-reasons.md +0 -39
  253. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/exp-partnership/references/95-5-system.md +0 -66
  254. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/exp-partnership/references/agent-attraction-scripts.md +0 -90
  255. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/exp-partnership/references/business-partnership.md +0 -92
  256. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/exp-partnership/references/exp-model-overview.md +0 -66
  257. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/exp-partnership/references/model-comparison.md +0 -66
  258. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/exp-partnership/references/revenue-share-explained.md +0 -57
  259. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/month-end-close/SKILL.md +0 -69
  260. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/payment-batch-stager/SKILL.md +0 -42
  261. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/period-reconciler/SKILL.md +0 -42
  262. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/SKILL.md +0 -117
  263. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/attraction-agent-notes.md +0 -31
  264. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/attraction-agent.md +0 -58
  265. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/authenticity-boundaries.md +0 -28
  266. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/become-a-brand-leader-notes.md +0 -19
  267. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/blast-formula.md +0 -42
  268. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/brand-leader.md +0 -48
  269. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/brand-strategy-system.md +0 -59
  270. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/content-engine.md +0 -49
  271. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/firewave-blast-and-blogging.md +0 -23
  272. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/gary-v-content.md +0 -52
  273. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/gary-v-principles.md +0 -20
  274. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/oversubscribed-positioning.md +0 -18
  275. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/platforms.md +0 -41
  276. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/priestley-oversubscribed.md +0 -54
  277. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/storeys-style-examples.md +0 -25
  278. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/visual-identity.md +0 -27
  279. package/payload/premium-plugins/real-agent/plugins/estate-coaching/.claude-plugin/plugin.json +0 -8
  280. package/payload/premium-plugins/real-agent/plugins/estate-coaching/PLUGIN.md +0 -54
  281. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/agent-performance/SKILL.md +0 -371
  282. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/agent-performance/references/atomic-habits.md +0 -52
  283. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/agent-performance/references/daily-routine-scorecard.md +0 -104
  284. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/agent-performance/references/hp6-model.md +0 -63
  285. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/agent-performance/references/twelve-week-year.md +0 -71
  286. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/bespoke-coaching/SKILL.md +0 -36
  287. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/bespoke-coaching/references/coaching-boundaries.md +0 -56
  288. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/bespoke-coaching/references/feedback-framework.md +0 -61
  289. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/bespoke-coaching/references/performance-framework.md +0 -109
  290. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/coaching-toolkit/SKILL.md +0 -421
  291. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/coaching-toolkit/references/coaching-exercises.md +0 -86
  292. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/coaching-toolkit/references/goal-setting.md +0 -78
  293. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/coaching-toolkit/references/one-to-one-framework.md +0 -92
  294. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/coaching-toolkit/references/soi-workbook.md +0 -103
  295. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/serhant-training/SKILL.md +0 -410
  296. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/serhant-training/references/agent-training-guide.md +0 -70
  297. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/serhant-training/references/business-in-a-box.md +0 -72
  298. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/serhant-training/references/buyers-guide.md +0 -53
  299. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/serhant-training/references/codo-method.md +0 -72
  300. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/serhant-training/references/website-planning-guide.md +0 -79
  301. package/payload/premium-plugins/real-agent/plugins/estate-sales/.claude-plugin/plugin.json +0 -8
  302. package/payload/premium-plugins/real-agent/plugins/estate-sales/PLUGIN.md +0 -52
  303. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/chase-progression/SKILL.md +0 -107
  304. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/negotiation/SKILL.md +0 -35
  305. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/negotiation/references/deal-saving.md +0 -47
  306. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/negotiation/references/negotiation-deep-guide.md +0 -64
  307. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/negotiation/references/negotiation-prep-principles.md +0 -29
  308. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/negotiation/references/negotiation-techniques.md +0 -42
  309. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/negotiation/references/offer-presentation.md +0 -43
  310. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/risk-scorer/SKILL.md +0 -42
  311. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-closer/SKILL.md +0 -24
  312. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-closer/references/serhant-emotion-stages.md +0 -36
  313. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-discovery/SKILL.md +0 -30
  314. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-discovery/references/chris-voss-discovery.md +0 -88
  315. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-discovery/references/firewave-gost-journey.md +0 -68
  316. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-discovery/references/phil-jones-openers.md +0 -78
  317. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-discovery/references/pre-listing-checklist.md +0 -77
  318. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-discovery/references/serhant-improv.md +0 -22
  319. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-discovery/references/tom-ferry-discovery.md +0 -103
  320. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-discovery/references/vendor-motivation-competitor.md +0 -52
  321. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-negotiation/SKILL.md +0 -29
  322. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-negotiation/references/chris-voss-negotiation.md +0 -70
  323. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-negotiation/references/phil-jones-price-words.md +0 -40
  324. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-negotiation/references/serhant-negotiation-plus.md +0 -55
  325. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-negotiation/references/tom-panos-commission-pricing.md +0 -57
  326. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-negotiation/references/tony-morris-questioning.md +0 -54
  327. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-progression/SKILL.md +0 -27
  328. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-progression/references/conveyancing-guide.md +0 -54
  329. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-progression/references/transaction-tracking.md +0 -66
  330. package/payload/premium-plugins/real-agent/plugins/estate-teaching/.claude-plugin/plugin.json +0 -8
  331. package/payload/premium-plugins/real-agent/plugins/estate-teaching/PLUGIN.md +0 -30
  332. package/payload/premium-plugins/real-agent/plugins/estate-teaching/skills/content-directory/SKILL.md +0 -39
  333. package/payload/premium-plugins/real-agent/plugins/estate-teaching/skills/content-directory/references/module-delivery.md +0 -65
  334. package/payload/premium-plugins/real-agent/plugins/estate-teaching/skills/content-directory/references/progress-tracking.md +0 -47
  335. package/payload/premium-plugins/real-agent/plugins/leads/.claude-plugin/plugin.json +0 -8
  336. package/payload/premium-plugins/real-agent/plugins/leads/PLUGIN.md +0 -61
  337. package/payload/premium-plugins/real-agent/plugins/leads/skills/chain-progression-tracker/SKILL.md +0 -51
  338. package/payload/premium-plugins/real-agent/plugins/leads/skills/diary-builder/SKILL.md +0 -38
  339. package/payload/premium-plugins/real-agent/plugins/leads/skills/enquiry-triage/SKILL.md +0 -36
  340. package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/SKILL.md +0 -137
  341. package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/buyer-search-letter.md +0 -28
  342. package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/buyer-search-letters.md +0 -37
  343. package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/database-reactivation.md +0 -30
  344. package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/email-nurture-sequences.md +0 -45
  345. package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/facebook-referrals.md +0 -30
  346. package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/firewave-email-nurture-sequences.md +0 -41
  347. package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/keller-33-touch.md +0 -34
  348. package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/neighbour-letters.md +0 -31
  349. package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/neighbour-notification-letter.md +0 -20
  350. package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/ofi-follow-up-dialogue.md +0 -22
  351. package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/ofi-follow-up.md +0 -26
  352. package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/serhant-three-fs-plus.md +0 -21
  353. package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/sharran-10x10x10.md +0 -18
  354. package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/sms-templates.md +0 -40
  355. package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/sphere-of-influence-notes.md +0 -34
  356. package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/sphere-of-influence.md +0 -60
  357. package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/tom-panos-sms-templates.md +0 -59
  358. package/payload/premium-plugins/real-agent/plugins/leads/skills/morning-round/SKILL.md +0 -72
  359. package/payload/premium-plugins/real-agent/plugins/leads/skills/prospecting/SKILL.md +0 -33
  360. package/payload/premium-plugins/real-agent/plugins/leads/skills/prospecting/references/database-matching.md +0 -30
  361. package/payload/premium-plugins/real-agent/plugins/leads/skills/prospecting/references/database-value.md +0 -53
  362. package/payload/premium-plugins/real-agent/plugins/leads/skills/prospecting/references/prospecting-dialogues.md +0 -24
  363. package/payload/premium-plugins/real-agent/plugins/leads/skills/prospecting/references/reactivation.md +0 -34
  364. package/payload/premium-plugins/real-agent/plugins/listings/.claude-plugin/plugin.json +0 -8
  365. package/payload/premium-plugins/real-agent/plugins/listings/PLUGIN.md +0 -100
  366. package/payload/premium-plugins/real-agent/plugins/listings/skills/comparable-finder/SKILL.md +0 -52
  367. package/payload/premium-plugins/real-agent/plugins/listings/skills/home-preparation/SKILL.md +0 -28
  368. package/payload/premium-plugins/real-agent/plugins/listings/skills/home-preparation/references/kerb-appeal.md +0 -38
  369. package/payload/premium-plugins/real-agent/plugins/listings/skills/home-preparation/references/photo-day.md +0 -59
  370. package/payload/premium-plugins/real-agent/plugins/listings/skills/home-preparation/references/situational-tips.md +0 -50
  371. package/payload/premium-plugins/real-agent/plugins/listings/skills/home-preparation/references/staging-guide.md +0 -52
  372. package/payload/premium-plugins/real-agent/plugins/listings/skills/listing-copy-writer/SKILL.md +0 -55
  373. package/payload/premium-plugins/real-agent/plugins/listings/skills/listing-presentation/SKILL.md +0 -286
  374. package/payload/premium-plugins/real-agent/plugins/listings/skills/listing-presentation/references/booking-script.md +0 -51
  375. package/payload/premium-plugins/real-agent/plugins/listings/skills/listing-presentation/references/objection-scripts.md +0 -193
  376. package/payload/premium-plugins/real-agent/plugins/listings/skills/listing-presentation/references/penhaul-presentation.md +0 -123
  377. package/payload/premium-plugins/real-agent/plugins/listings/skills/listing-presentation/references/pre-listing-kit.md +0 -139
  378. package/payload/premium-plugins/real-agent/plugins/listings/skills/listing-presentation/references/set-to-sell.md +0 -55
  379. package/payload/premium-plugins/real-agent/plugins/listings/skills/listing-presentation/references/sharran-frameworks.md +0 -107
  380. package/payload/premium-plugins/real-agent/plugins/listings/skills/local-market-stats/SKILL.md +0 -33
  381. package/payload/premium-plugins/real-agent/plugins/listings/skills/new-instruction/SKILL.md +0 -77
  382. package/payload/premium-plugins/real-agent/plugins/listings/skills/particulars-builder/SKILL.md +0 -48
  383. package/payload/premium-plugins/real-agent/plugins/listings/skills/portal-launch-scheduler/SKILL.md +0 -49
  384. package/payload/premium-plugins/real-agent/plugins/listings/skills/pricing-scenario-builder/SKILL.md +0 -35
  385. package/payload/premium-plugins/real-agent/plugins/listings/skills/property-marketing/SKILL.md +0 -337
  386. package/payload/premium-plugins/real-agent/plugins/listings/skills/property-marketing/references/auction-report-template.md +0 -41
  387. package/payload/premium-plugins/real-agent/plugins/listings/skills/property-marketing/references/coming-soon-campaign.md +0 -43
  388. package/payload/premium-plugins/real-agent/plugins/listings/skills/property-marketing/references/direct-mail-templates.md +0 -121
  389. package/payload/premium-plugins/real-agent/plugins/listings/skills/property-marketing/references/eoi-form-template.md +0 -62
  390. package/payload/premium-plugins/real-agent/plugins/listings/skills/property-marketing/references/monthly-scorecard.md +0 -63
  391. package/payload/premium-plugins/real-agent/plugins/listings/skills/supplier-booker/SKILL.md +0 -39
  392. package/payload/premium-plugins/real-agent/plugins/listings/skills/talk-track-composer/SKILL.md +0 -36
  393. package/payload/premium-plugins/real-agent/plugins/listings/skills/terms-of-business-drafter/SKILL.md +0 -54
  394. package/payload/premium-plugins/real-agent/plugins/listings/skills/valuation-prep/SKILL.md +0 -69
  395. package/payload/premium-plugins/real-agent/plugins/loop/.claude-plugin/plugin.json +0 -8
  396. package/payload/premium-plugins/real-agent/plugins/loop/PLUGIN.md +0 -261
  397. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/index.d.ts +0 -2
  398. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/index.d.ts.map +0 -1
  399. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/index.js +0 -320
  400. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/index.js.map +0 -1
  401. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/crypto.d.ts +0 -10
  402. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/crypto.d.ts.map +0 -1
  403. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/crypto.js +0 -88
  404. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/crypto.js.map +0 -1
  405. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/file-crypto.d.ts +0 -3
  406. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/file-crypto.d.ts.map +0 -1
  407. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/file-crypto.js +0 -48
  408. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/file-crypto.js.map +0 -1
  409. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/key-store.d.ts +0 -22
  410. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/key-store.d.ts.map +0 -1
  411. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/key-store.js +0 -165
  412. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/key-store.js.map +0 -1
  413. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/loop-api.d.ts +0 -82
  414. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/loop-api.d.ts.map +0 -1
  415. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/loop-api.js +0 -392
  416. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/loop-api.js.map +0 -1
  417. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/neo4j.d.ts +0 -5
  418. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/neo4j.d.ts.map +0 -1
  419. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/neo4j.js +0 -40
  420. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/neo4j.js.map +0 -1
  421. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/auto-responder.d.ts +0 -12
  422. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/auto-responder.d.ts.map +0 -1
  423. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/auto-responder.js +0 -22
  424. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/auto-responder.js.map +0 -1
  425. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/customer-preferences.d.ts +0 -10
  426. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/customer-preferences.d.ts.map +0 -1
  427. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/customer-preferences.js +0 -24
  428. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/customer-preferences.js.map +0 -1
  429. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/feedback.d.ts +0 -16
  430. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/feedback.d.ts.map +0 -1
  431. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/feedback.js +0 -35
  432. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/feedback.js.map +0 -1
  433. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/key-deregister.d.ts +0 -5
  434. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/key-deregister.d.ts.map +0 -1
  435. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/key-deregister.js +0 -9
  436. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/key-deregister.js.map +0 -1
  437. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/key-list.d.ts +0 -4
  438. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/key-list.d.ts.map +0 -1
  439. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/key-list.js +0 -14
  440. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/key-list.js.map +0 -1
  441. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/key-register.d.ts +0 -9
  442. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/key-register.d.ts.map +0 -1
  443. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/key-register.js +0 -43
  444. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/key-register.js.map +0 -1
  445. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-enquiry.d.ts +0 -6
  446. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-enquiry.d.ts.map +0 -1
  447. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-enquiry.js +0 -7
  448. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-enquiry.js.map +0 -1
  449. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-match-batch.d.ts +0 -9
  450. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-match-batch.d.ts.map +0 -1
  451. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-match-batch.js +0 -16
  452. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-match-batch.js.map +0 -1
  453. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-match-request.d.ts +0 -15
  454. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-match-request.d.ts.map +0 -1
  455. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-match-request.js +0 -11
  456. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-match-request.js.map +0 -1
  457. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-match.d.ts +0 -10
  458. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-match.d.ts.map +0 -1
  459. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-match.js +0 -39
  460. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-match.js.map +0 -1
  461. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/people-detail.d.ts +0 -9
  462. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/people-detail.d.ts.map +0 -1
  463. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/people-detail.js +0 -125
  464. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/people-detail.js.map +0 -1
  465. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/people-search.d.ts +0 -18
  466. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/people-search.d.ts.map +0 -1
  467. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/people-search.js +0 -87
  468. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/people-search.js.map +0 -1
  469. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-detail.d.ts +0 -10
  470. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-detail.d.ts.map +0 -1
  471. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-detail.js +0 -82
  472. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-detail.js.map +0 -1
  473. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-intent.d.ts +0 -33
  474. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-intent.d.ts.map +0 -1
  475. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-intent.js +0 -19
  476. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-intent.js.map +0 -1
  477. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-listed.d.ts +0 -11
  478. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-listed.d.ts.map +0 -1
  479. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-listed.js +0 -26
  480. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-listed.js.map +0 -1
  481. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-request.d.ts +0 -15
  482. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-request.d.ts.map +0 -1
  483. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-request.js +0 -11
  484. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-request.js.map +0 -1
  485. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-search.d.ts +0 -16
  486. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-search.d.ts.map +0 -1
  487. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-search.js +0 -41
  488. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-search.js.map +0 -1
  489. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-sold.d.ts +0 -9
  490. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-sold.d.ts.map +0 -1
  491. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-sold.js +0 -19
  492. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-sold.js.map +0 -1
  493. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/supplier.d.ts +0 -13
  494. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/supplier.d.ts.map +0 -1
  495. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/supplier.js +0 -49
  496. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/supplier.js.map +0 -1
  497. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/team-availability.d.ts +0 -7
  498. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/team-availability.d.ts.map +0 -1
  499. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/team-availability.js +0 -19
  500. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/team-availability.js.map +0 -1
  501. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/team-info.d.ts +0 -5
  502. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/team-info.d.ts.map +0 -1
  503. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/team-info.js +0 -32
  504. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/team-info.js.map +0 -1
  505. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-create.d.ts +0 -14
  506. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-create.d.ts.map +0 -1
  507. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-create.js +0 -11
  508. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-create.js.map +0 -1
  509. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-detail.d.ts +0 -9
  510. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-detail.d.ts.map +0 -1
  511. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-detail.js +0 -85
  512. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-detail.js.map +0 -1
  513. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-search.d.ts +0 -13
  514. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-search.d.ts.map +0 -1
  515. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-search.js +0 -44
  516. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-search.js.map +0 -1
  517. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-update.d.ts +0 -14
  518. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-update.d.ts.map +0 -1
  519. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-update.js +0 -18
  520. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-update.js.map +0 -1
  521. package/payload/premium-plugins/real-agent/plugins/loop/mcp/package-lock.json +0 -2549
  522. package/payload/premium-plugins/real-agent/plugins/loop/mcp/package.json +0 -21
  523. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/__tests__/loop-swagger.snapshot.json +0 -26467
  524. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/__tests__/new-tool-shape.test.ts +0 -99
  525. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/__tests__/plugin-md-time-doctrine.test.ts +0 -132
  526. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/__tests__/swagger-write-coverage.test.ts +0 -154
  527. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/index.ts +0 -498
  528. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/lib/crypto.ts +0 -105
  529. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/lib/file-crypto.ts +0 -54
  530. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/lib/key-store.ts +0 -221
  531. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/lib/loop-api.ts +0 -567
  532. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/lib/neo4j.ts +0 -51
  533. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/auto-responder.ts +0 -80
  534. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/customer-preferences.ts +0 -66
  535. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/feedback.ts +0 -86
  536. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/key-deregister.ts +0 -12
  537. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/key-list.ts +0 -19
  538. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/key-register.ts +0 -70
  539. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/marketing-enquiry.ts +0 -27
  540. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/marketing-match-batch.ts +0 -53
  541. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/marketing-match-request.ts +0 -42
  542. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/marketing-match.ts +0 -84
  543. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/people-detail.ts +0 -245
  544. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/people-search.ts +0 -180
  545. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/property-detail.ts +0 -145
  546. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/property-intent.ts +0 -84
  547. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/property-listed.ts +0 -81
  548. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/property-search.ts +0 -92
  549. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/property-sold.ts +0 -67
  550. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/supplier.ts +0 -129
  551. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/team-availability.ts +0 -52
  552. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/team-info.ts +0 -95
  553. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/viewing-create.ts +0 -41
  554. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/viewing-detail.ts +0 -171
  555. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/viewing-search.ts +0 -92
  556. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/viewing-update.ts +0 -53
  557. package/payload/premium-plugins/real-agent/plugins/loop/mcp/tsconfig.json +0 -20
  558. package/payload/premium-plugins/real-agent/plugins/loop/mcp/vitest.config.ts +0 -9
  559. package/payload/premium-plugins/real-agent/plugins/loop/skills/compliance-flag-checker/SKILL.md +0 -53
  560. package/payload/premium-plugins/real-agent/plugins/loop/skills/priority-ranker/SKILL.md +0 -40
  561. package/payload/premium-plugins/real-agent/plugins/loop/skills/tone-matched-drafter/SKILL.md +0 -53
  562. package/payload/premium-plugins/real-agent/plugins/loop/skills/variance-narrator/SKILL.md +0 -50
  563. package/payload/premium-plugins/real-agent/plugins/loop/skills/vendor-research/SKILL.md +0 -54
  564. package/payload/premium-plugins/real-agent/plugins/preval/.claude-plugin/plugin.json +0 -8
  565. package/payload/premium-plugins/real-agent/plugins/preval/PLUGIN.md +0 -55
  566. package/payload/premium-plugins/real-agent/plugins/preval/hooks/preval-prompt-required.sh +0 -140
  567. package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/SKILL.md +0 -198
  568. package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/references/__tests__/adherence.test.py +0 -373
  569. package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/references/render.py +0 -814
  570. package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/references/template-inputs.schema.json +0 -204
  571. package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/references/template.html +0 -381
  572. package/payload/premium-plugins/real-agent/plugins/property-data/.claude-plugin/plugin.json +0 -8
  573. package/payload/premium-plugins/real-agent/plugins/property-data/PLUGIN.md +0 -181
  574. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/index.d.ts +0 -2
  575. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/index.d.ts.map +0 -1
  576. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/index.js +0 -236
  577. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/index.js.map +0 -1
  578. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/crypto.d.ts +0 -3
  579. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/crypto.d.ts.map +0 -1
  580. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/crypto.js +0 -72
  581. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/crypto.js.map +0 -1
  582. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/file-crypto.d.ts +0 -3
  583. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/file-crypto.d.ts.map +0 -1
  584. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/file-crypto.js +0 -49
  585. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/file-crypto.js.map +0 -1
  586. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/key-store.d.ts +0 -15
  587. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/key-store.d.ts.map +0 -1
  588. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/key-store.js +0 -135
  589. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/key-store.js.map +0 -1
  590. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/neo4j.d.ts +0 -5
  591. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/neo4j.d.ts.map +0 -1
  592. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/neo4j.js +0 -38
  593. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/neo4j.js.map +0 -1
  594. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/propertydata-api.d.ts +0 -28
  595. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/propertydata-api.d.ts.map +0 -1
  596. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/propertydata-api.js +0 -101
  597. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/propertydata-api.js.map +0 -1
  598. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/endpoints.d.ts +0 -24
  599. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/endpoints.d.ts.map +0 -1
  600. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/endpoints.js +0 -33
  601. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/endpoints.js.map +0 -1
  602. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/key-deregister.d.ts +0 -4
  603. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/key-deregister.d.ts.map +0 -1
  604. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/key-deregister.js +0 -9
  605. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/key-deregister.js.map +0 -1
  606. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/key-list.d.ts +0 -4
  607. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/key-list.d.ts.map +0 -1
  608. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/key-list.js +0 -10
  609. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/key-list.js.map +0 -1
  610. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/key-register.d.ts +0 -5
  611. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/key-register.d.ts.map +0 -1
  612. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/key-register.js +0 -50
  613. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/key-register.js.map +0 -1
  614. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/package-lock.json +0 -2566
  615. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/package.json +0 -21
  616. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/__tests__/endpoints.test.ts +0 -252
  617. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/__tests__/key-roundtrip.test.ts +0 -107
  618. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/__tests__/propertydata-api.test.ts +0 -184
  619. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/__tests__/schema-parity.test.ts +0 -62
  620. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/index.ts +0 -409
  621. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/lib/crypto.ts +0 -79
  622. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/lib/file-crypto.ts +0 -55
  623. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/lib/key-store.ts +0 -181
  624. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/lib/neo4j.ts +0 -47
  625. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/lib/propertydata-api.ts +0 -120
  626. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/tools/endpoints.ts +0 -47
  627. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/tools/key-deregister.ts +0 -9
  628. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/tools/key-list.ts +0 -10
  629. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/tools/key-register.ts +0 -54
  630. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/tsconfig.json +0 -20
  631. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/vitest.config.ts +0 -8
  632. package/payload/premium-plugins/real-agent/plugins/property-data/skills/property-data/SKILL.md +0 -77
  633. package/payload/premium-plugins/real-agent/plugins/vendors/.claude-plugin/plugin.json +0 -8
  634. package/payload/premium-plugins/real-agent/plugins/vendors/PLUGIN.md +0 -33
  635. package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-communication/SKILL.md +0 -42
  636. package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-communication/references/fee-protection-and-agenda.md +0 -28
  637. package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-communication/references/listing-scripts.md +0 -44
  638. package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-communication/references/negotiation-deep-guide.md +0 -70
  639. package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-communication/references/price-alignment-scripts.md +0 -33
  640. package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-communication/references/price-alignment.md +0 -34
  641. package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-communication/references/scenario-scripts.md +0 -38
  642. package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-communication/references/seller-engagement.md +0 -51
  643. package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-communication/references/valuation-booking.md +0 -76
  644. package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-communication/references/vendor-scripts.md +0 -63
  645. package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-communication/references/vendor-updates.md +0 -41
  646. package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-updates/SKILL.md +0 -153
  647. package/payload/premium-plugins/real-agent/specs/00-architecture-and-customization.md +0 -122
  648. package/payload/premium-plugins/real-agent/specs/01-morning-round.md +0 -76
  649. package/payload/premium-plugins/real-agent/specs/02-valuation-prep.md +0 -81
  650. package/payload/premium-plugins/real-agent/specs/03-new-instruction.md +0 -96
  651. package/payload/premium-plugins/real-agent/specs/04-chase-progression.md +0 -120
  652. package/payload/premium-plugins/real-agent/specs/05-month-end-close.md +0 -79
  653. package/payload/premium-plugins/teaching/.claude-plugin/plugin.json +0 -8
  654. package/payload/premium-plugins/teaching/PLUGIN.md +0 -58
  655. package/payload/premium-plugins/teaching/skills/interactive-tutor/SKILL.md +0 -59
  656. package/payload/premium-plugins/teaching/skills/interactive-tutor/references/assessment.md +0 -70
  657. package/payload/premium-plugins/teaching/skills/interactive-tutor/references/classroom-conduct.md +0 -43
  658. package/payload/premium-plugins/teaching/skills/interactive-tutor/references/teaching-modes.md +0 -83
  659. package/payload/premium-plugins/teaching/skills/lesson-planner/SKILL.md +0 -48
  660. package/payload/premium-plugins/teaching/skills/lesson-planner/references/context-gathering.md +0 -41
  661. package/payload/premium-plugins/teaching/skills/lesson-planner/references/plan-structure.md +0 -94
  662. package/payload/premium-plugins/teaching/skills/study-pack-builder/SKILL.md +0 -52
  663. package/payload/premium-plugins/teaching/skills/study-pack-builder/references/disaggregation.md +0 -49
  664. package/payload/premium-plugins/teaching/skills/study-pack-builder/references/materials.md +0 -116
  665. package/payload/premium-plugins/writer-craft/.claude-plugin/plugin.json +0 -8
  666. package/payload/premium-plugins/writer-craft/PLUGIN.md +0 -88
  667. package/payload/premium-plugins/writer-craft/agents/writer-craft--manuscript-reviewer.md +0 -92
  668. package/payload/premium-plugins/writer-craft/skills/citation-style/SKILL.md +0 -94
  669. package/payload/premium-plugins/writer-craft/skills/citation-style/references/book-and-chapter-models.md +0 -77
  670. package/payload/premium-plugins/writer-craft/skills/citation-style/references/citation-rules.md +0 -103
  671. package/payload/premium-plugins/writer-craft/skills/citation-style/references/journal-article-models.md +0 -74
  672. package/payload/premium-plugins/writer-craft/skills/citation-style/references/other-source-models.md +0 -146
  673. package/payload/premium-plugins/writer-craft/skills/citation-style/references/reference-list-rules.md +0 -70
  674. package/payload/premium-plugins/writer-craft/skills/editorial-practice/SKILL.md +0 -108
  675. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/copyediting.md +0 -73
  676. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/developmental-editing.md +0 -85
  677. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/genre-specific-editing.md +0 -78
  678. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/line-editing.md +0 -55
  679. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/self-editing.md +0 -89
  680. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/SKILL.md +0 -114
  681. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/audience-analysis.md +0 -73
  682. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/crafting-persuasive-story.md +0 -76
  683. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/persuasion-case-studies.md +0 -67
  684. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/transformation-framework.md +0 -86
  685. package/payload/premium-plugins/writer-craft/skills/point-of-view/SKILL.md +0 -97
  686. package/payload/premium-plugins/writer-craft/skills/point-of-view/references/indirect-narration.md +0 -72
  687. package/payload/premium-plugins/writer-craft/skills/point-of-view/references/pov-types-and-voice.md +0 -91
  688. package/payload/premium-plugins/writer-craft/skills/point-of-view/references/protagonist-filter.md +0 -71
  689. package/payload/premium-plugins/writer-craft/skills/point-of-view/references/tense-and-person.md +0 -85
  690. package/payload/premium-plugins/writer-craft/skills/prose-craft/SKILL.md +0 -100
  691. package/payload/premium-plugins/writer-craft/skills/prose-craft/references/punctuation-and-grammar.md +0 -72
  692. package/payload/premium-plugins/writer-craft/skills/prose-craft/references/repetition.md +0 -71
  693. package/payload/premium-plugins/writer-craft/skills/prose-craft/references/sound-and-rhythm.md +0 -64
  694. package/payload/premium-plugins/writer-craft/skills/prose-craft/references/word-economy.md +0 -93
  695. package/payload/premium-plugins/writer-craft/skills/reader-engagement/SKILL.md +0 -100
  696. package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/cause-effect-setup-payoff.md +0 -79
  697. package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/conflict-escalation.md +0 -81
  698. package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/hooking-readers.md +0 -67
  699. package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/neurochemistry-of-engagement.md +0 -94
  700. package/payload/premium-plugins/writer-craft/skills/review-manuscript/SKILL.md +0 -111
  701. package/payload/premium-plugins/writer-craft/skills/review-manuscript/references/review-manuscript-checklist.md +0 -119
  702. package/payload/premium-plugins/writer-craft/skills/review-prose/SKILL.md +0 -99
  703. package/payload/premium-plugins/writer-craft/skills/review-prose/references/prose-review-checklist.md +0 -112
  704. package/payload/premium-plugins/writer-craft/skills/review-scene/SKILL.md +0 -99
  705. package/payload/premium-plugins/writer-craft/skills/review-scene/references/scene-analysis-framework.md +0 -95
  706. package/payload/premium-plugins/writer-craft/skills/story-architecture/SKILL.md +0 -106
  707. package/payload/premium-plugins/writer-craft/skills/story-architecture/references/blueprinting-and-scene-cards.md +0 -118
  708. package/payload/premium-plugins/writer-craft/skills/story-architecture/references/inner-issue-and-protagonist-goal.md +0 -66
  709. package/payload/premium-plugins/writer-craft/skills/story-architecture/references/misbelief-desire-worldview.md +0 -87
  710. package/payload/premium-plugins/writer-craft/skills/story-architecture/references/origin-scenes-and-escalation.md +0 -82
  711. package/payload/premium-plugins/writer-craft/skills/story-blueprint/SKILL.md +0 -133
  712. package/payload/premium-plugins/writer-craft/skills/story-blueprint/references/blueprinting-exercises.md +0 -118
  713. package/payload/premium-plugins/writer-craft/skills/story-blueprint/references/blueprinting-process.md +0 -128
  714. package/payload/server/public/assets/channel-CrSx5mnG.js +0 -1
  715. package/payload/server/public/assets/classDiagram-6PBFFD2Q-C3IDJsqN.js +0 -1
  716. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-BOIrJ5Zb.js +0 -1
  717. package/payload/server/public/assets/clone-P8Fkz7JD.js +0 -1
  718. package/payload/server/public/assets/data-DRfwJPja.js +0 -1
  719. package/payload/server/public/assets/graph-B4FFYwus.js +0 -1
  720. package/payload/server/public/assets/graph-labels-Cpk9Ktt0.js +0 -1
  721. package/payload/server/public/assets/lib--yuBd0Xi.js +0 -33
  722. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-C5JejhQU.js +0 -1
@@ -7,7 +7,7 @@ import assert from "node:assert/strict";
7
7
  import { mkdtempSync, mkdirSync, writeFileSync, readlinkSync, lstatSync, rmSync, symlinkSync, readdirSync } from "node:fs";
8
8
  import { tmpdir } from "node:os";
9
9
  import { join, resolve } from "node:path";
10
- import { registerSpecialistAgentsAt, SpecialistSymlinkCollision } from "../specialist-registration.js";
10
+ import { registerSpecialistAgentsAt, registerPremiumBundleAgents, SpecialistSymlinkCollision } from "../specialist-registration.js";
11
11
  function makeTemplates(dir, names) {
12
12
  mkdirSync(dir, { recursive: true });
13
13
  for (const n of names)
@@ -90,6 +90,45 @@ test("skips with reason=no-templates-dir when templates dir is absent", () => {
90
90
  rmSync(agentsDir, { recursive: true, force: true });
91
91
  }
92
92
  });
93
+ // Task 349 — premium-bundle agents must be symlinked into the same
94
+ // $CLAUDE_CONFIG_DIR/agents/ as base specialists. Pre-349, the installer
95
+ // shipped premium-plugins/<bundle>/agents/*.md files in the payload but never
96
+ // wired them in, so `--agent listing-curator` (and the rest of the realagent
97
+ // quartet) threw `specialist-agent-file-missing` at spawn time.
98
+ test("premium bundle: symlinks each agent in the bundle's agents/ into agentsDir", () => {
99
+ const installDir = mkdtempSync(join(tmpdir(), "t349-install-"));
100
+ const agentsDir = mkdtempSync(join(tmpdir(), "t349-agents-"));
101
+ try {
102
+ const bundleAgentsDir = join(installDir, "premium-plugins", "real-agent", "agents");
103
+ makeTemplates(bundleAgentsDir, ["listing-curator", "negotiator", "valuer", "compliance"]);
104
+ const result = registerPremiumBundleAgents(installDir, ["real-agent"], agentsDir);
105
+ assert.deepEqual(result.bundles, ["real-agent"]);
106
+ for (const n of ["listing-curator", "negotiator", "valuer", "compliance"]) {
107
+ const linkPath = join(agentsDir, `${n}.md`);
108
+ const stat = lstatSync(linkPath);
109
+ assert.ok(stat.isSymbolicLink(), `${n}.md must be a symlink`);
110
+ const target = resolve(agentsDir, readlinkSync(linkPath));
111
+ assert.equal(target, resolve(bundleAgentsDir, `${n}.md`));
112
+ }
113
+ }
114
+ finally {
115
+ rmSync(installDir, { recursive: true, force: true });
116
+ rmSync(agentsDir, { recursive: true, force: true });
117
+ }
118
+ });
119
+ test("premium bundle: empty bundle list is a no-op — no error, no writes", () => {
120
+ const installDir = mkdtempSync(join(tmpdir(), "t349-install-"));
121
+ const agentsDir = mkdtempSync(join(tmpdir(), "t349-agents-"));
122
+ try {
123
+ const result = registerPremiumBundleAgents(installDir, [], agentsDir);
124
+ assert.deepEqual(result.bundles, []);
125
+ assert.deepEqual(readdirSync(agentsDir), []);
126
+ }
127
+ finally {
128
+ rmSync(installDir, { recursive: true, force: true });
129
+ rmSync(agentsDir, { recursive: true, force: true });
130
+ }
131
+ });
93
132
  test("collides loudly on a regular file at the destination (no silent overwrite)", () => {
94
133
  const templatesDir = mkdtempSync(join(tmpdir(), "t165-tpl-"));
95
134
  const agentsDir = mkdtempSync(join(tmpdir(), "t165-agents-"));
@@ -0,0 +1,59 @@
1
+ // Tests for the brand-level premium bundle gate (Task 344).
2
+ //
3
+ // The gate normalises `brand.shipsPremiumBundles` and partitions the
4
+ // on-disk bundle list into shipped/skipped/missing. The bundle.js script
5
+ // uses it; tests are ephemeral per the sprint workflow.
6
+ import test from "node:test";
7
+ import assert from "node:assert/strict";
8
+ // @ts-expect-error - sibling .mjs without type declarations
9
+ import { normalisePremiumGate, partitionBundles } from "../../scripts/premium-bundle-gate.mjs";
10
+ test("normalisePremiumGate: undefined → mode 'none'", () => {
11
+ const gate = normalisePremiumGate(undefined);
12
+ assert.equal(gate.mode, "none");
13
+ assert.equal(gate.allow.size, 0);
14
+ });
15
+ test("normalisePremiumGate: null → mode 'none'", () => {
16
+ const gate = normalisePremiumGate(null);
17
+ assert.equal(gate.mode, "none");
18
+ });
19
+ test("normalisePremiumGate: string[] → mode 'allowlist'", () => {
20
+ const gate = normalisePremiumGate(["real-agent", "venture-studio"]);
21
+ assert.equal(gate.mode, "allowlist");
22
+ assert.ok(gate.allow.has("real-agent"));
23
+ assert.ok(gate.allow.has("venture-studio"));
24
+ });
25
+ test("normalisePremiumGate: boolean true is rejected (legacy form)", () => {
26
+ assert.throws(() => normalisePremiumGate(true, "/brands/x/brand.json"), /boolean 'true' no longer accepted/);
27
+ });
28
+ test("normalisePremiumGate: boolean false is rejected (must omit instead)", () => {
29
+ assert.throws(() => normalisePremiumGate(false, "/brands/x/brand.json"), /boolean 'false' no longer accepted/);
30
+ });
31
+ test("normalisePremiumGate: non-array non-bool throws", () => {
32
+ assert.throws(() => normalisePremiumGate("real-agent"));
33
+ assert.throws(() => normalisePremiumGate({}));
34
+ });
35
+ test("normalisePremiumGate: array with non-kebab entry throws", () => {
36
+ assert.throws(() => normalisePremiumGate(["Real-Agent"]), /invalid entry/);
37
+ assert.throws(() => normalisePremiumGate([""]), /invalid entry/);
38
+ assert.throws(() => normalisePremiumGate([42]), /invalid entry/);
39
+ });
40
+ test("partitionBundles: mode 'none' ships nothing; everything on disk is skipped", () => {
41
+ const gate = normalisePremiumGate(undefined);
42
+ const result = partitionBundles(gate, ["real-agent", "venture-studio"]);
43
+ assert.deepEqual(result.shipped, []);
44
+ assert.deepEqual(result.skipped, ["real-agent", "venture-studio"]);
45
+ assert.deepEqual(result.missing, []);
46
+ });
47
+ test("partitionBundles: allowlist filters on-disk set", () => {
48
+ const gate = normalisePremiumGate(["venture-studio"]);
49
+ const result = partitionBundles(gate, ["real-agent", "teaching", "venture-studio", "writer-craft"]);
50
+ assert.deepEqual(result.shipped, ["venture-studio"]);
51
+ assert.deepEqual(result.skipped, ["real-agent", "teaching", "writer-craft"]);
52
+ assert.deepEqual(result.missing, []);
53
+ });
54
+ test("partitionBundles: allowlist entry with no matching directory is missing", () => {
55
+ const gate = normalisePremiumGate(["real-agent", "nope"]);
56
+ const result = partitionBundles(gate, ["real-agent", "teaching"]);
57
+ assert.deepEqual(result.shipped, ["real-agent"]);
58
+ assert.deepEqual(result.missing, ["nope"]);
59
+ });
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { execFileSync, spawn, spawnSync } from "node:child_process";
3
3
  import { existsSync, mkdirSync, writeFileSync, cpSync, readFileSync, rmSync, readdirSync, appendFileSync, openSync, closeSync, chmodSync, statSync, realpathSync } from "node:fs";
4
- import { registerSpecialistAgentsAt, SpecialistSymlinkCollision } from "./specialist-registration.js";
4
+ import { registerSpecialistAgentsAt, registerPremiumBundleAgents, SpecialistSymlinkCollision } from "./specialist-registration.js";
5
5
  import { resolve, join, dirname } from "node:path";
6
6
  import { randomBytes } from "node:crypto";
7
7
  import { resolveInstallPortFromFs, buildMaxyUnitFile, buildClaudeSessionManagerUnitFile, buildClaudePtysSliceUnitFile } from "./port-resolution.js";
@@ -2456,6 +2456,12 @@ function writeEntitlementFromFlag(payload) {
2456
2456
  function registerSpecialistAgents() {
2457
2457
  try {
2458
2458
  registerSpecialistAgentsAt(join(INSTALL_DIR, "platform/templates/specialists/agents"), join(CLAUDE_CONFIG_DIR, "agents"), (line) => { console.log(line); logFile(line); });
2459
+ // Task 349 — symlink each premium-bundle's agents/ into the same
2460
+ // $CLAUDE_CONFIG_DIR/agents/ so `--agent <name>` resolves for premium
2461
+ // specialists (e.g. realagent's listing-curator, negotiator, valuer,
2462
+ // compliance). The pty-spawner reads exactly one agents dir; the bundle
2463
+ // payload alone is insufficient without the symlink step here.
2464
+ registerPremiumBundleAgents(INSTALL_DIR, resolvePremiumBundles(), join(CLAUDE_CONFIG_DIR, "agents"), (line) => { console.log(line); logFile(line); });
2459
2465
  }
2460
2466
  catch (err) {
2461
2467
  if (err instanceof SpecialistSymlinkCollision) {
@@ -2466,6 +2472,23 @@ function registerSpecialistAgents() {
2466
2472
  throw err;
2467
2473
  }
2468
2474
  }
2475
+ // Resolve the brand's premium-bundle list for installer-side iteration.
2476
+ // `true` widens to every directory under <INSTALL_DIR>/premium-plugins/;
2477
+ // an explicit array is used verbatim; absent/false → no premium bundles.
2478
+ function resolvePremiumBundles() {
2479
+ const ships = BRAND.shipsPremiumBundles;
2480
+ if (Array.isArray(ships))
2481
+ return ships;
2482
+ if (ships === true) {
2483
+ const root = join(INSTALL_DIR, "premium-plugins");
2484
+ if (!existsSync(root))
2485
+ return [];
2486
+ return readdirSync(root, { withFileTypes: true })
2487
+ .filter((d) => d.isDirectory())
2488
+ .map((d) => d.name);
2489
+ }
2490
+ return [];
2491
+ }
2469
2492
  // ---------------------------------------------------------------------------
2470
2493
  // Account discovery (shared by installService + the post-install summary)
2471
2494
  //
@@ -47,6 +47,21 @@ export function registerSpecialistAgentsAt(templatesDir, agentsDir, log = () =>
47
47
  }
48
48
  return { registered, skipped: null };
49
49
  }
50
+ // Task 349 — premium-bundle specialist symlinking. The installer wires each
51
+ // brand-shipped premium bundle's `agents/` directory into the same
52
+ // $CLAUDE_CONFIG_DIR/agents/ so `--agent <name>` resolves for premium
53
+ // specialists (e.g. realagent's listing-curator). `bundles` is the resolved
54
+ // list of bundle directory names; an empty list is a no-op (no error, no
55
+ // writes). Missing per-bundle `agents/` dirs are tolerated via
56
+ // registerSpecialistAgentsAt's existing no-templates-dir skip.
57
+ export function registerPremiumBundleAgents(installDir, bundles, agentsDir, log = () => { }) {
58
+ const registered = [];
59
+ for (const bundle of bundles) {
60
+ registerSpecialistAgentsAt(join(installDir, "premium-plugins", bundle, "agents"), agentsDir, log);
61
+ registered.push(bundle);
62
+ }
63
+ return { bundles: registered };
64
+ }
50
65
  export function replaceSpecialistSymlink(linkPath, targetAbs) {
51
66
  let lstat = null;
52
67
  try {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rubytech/create-maxy-code",
3
- "version": "0.1.114",
3
+ "version": "0.1.116",
4
4
  "description": "Install Maxy — AI for Productive People",
5
5
  "bin": {
6
6
  "create-maxy-code": "./dist/index.js"
@@ -50,7 +50,7 @@
50
50
  "plugins": {
51
51
  "core": ["admin", "memory", "docs", "cloudflare", "anthropic", "workflows", "work", "scheduling", "email", "contacts", "projects"],
52
52
  "defaultEnabled": ["business-assistant", "sales"],
53
- "available": ["telegram", "waitlist", "deep-research", "whatsapp", "replicate", "linkedin-import"],
53
+ "available": ["telegram", "deep-research", "whatsapp", "replicate", "linkedin-import"],
54
54
  "excluded": []
55
55
  },
56
56
 
@@ -7,7 +7,7 @@
7
7
  // Constraints
8
8
  // ----------------------------------------------------------
9
9
 
10
- // Person.email must be unique (waitlist signups, future users)
10
+ // Person.email must be unique across all Person nodes.
11
11
  // Allows multiple nulls — phone-only contacts are not affected.
12
12
  CREATE CONSTRAINT person_email_unique IF NOT EXISTS
13
13
  FOR (p:Person) REQUIRE p.email IS UNIQUE;
@@ -89,11 +89,6 @@
89
89
  "source": "./venture-studio",
90
90
  "version": "0.1.0"
91
91
  },
92
- {
93
- "name": "waitlist",
94
- "source": "./waitlist",
95
- "version": "0.1.0"
96
- },
97
92
  {
98
93
  "name": "whatsapp",
99
94
  "source": "./whatsapp",
@@ -136,6 +136,7 @@ Tools are available via the `admin` MCP server.
136
136
  - `hooks/webfetch-preflight.mjs` — short-circuits WebFetch on JS-SPA shells with a structured `WEBFETCH_CANNOT_READ_JS_SPA` error so the agent surfaces a loud failure to the owner instead of paying the 60s extraction timeout. Fail-open on any internal error.
137
137
  - `hooks/askuserquestion-investigate-gate.sh` — PreToolUse matcher=`AskUserQuestion`. Blocks the question (exit 2) when no read-only investigation tool has fired since the latest real user turn in the session JSONL. The structural fix for the failure class where the agent fabricates a menu before evidence-gathering (session `c085ec2c-46fb-4b73-8865-68cf85866ea8` 2026-05-22 — "change remote access password" → invented options "Admin PIN / Cloudflare tunnel / WiFi password" with zero prior tool_use; post-correction the agent immediately fired `remote-auth-status` → `ToolSearch` → `remote-auth-set-password`, proving it knew the moves). **Allowlist** (exact, with trailing `__<tool>` suffix-match for namespaced `mcp__plugin_<plugin>_<server>__<tool>` aliases): `ToolSearch`, `Grep`, `Glob`, `Read`, `LS`, `NotebookRead`, `Bash`, `WebFetch`, `WebSearch`, plus the read-only admin / memory MCP tools (`*-status`, `*-list`, `*-read`, `skill-find`, `memory-find-candidates`, `profile-read`, `conversation-list`, `memory-list-attachments`, `memory-read-attachment`). **Block message:** `Blocked: AskUserQuestion requires at least one investigation tool (ToolSearch, Grep, Read, *-list, *-status, *-read, skill-find, ...) earlier in this turn. Search the operator's literal phrase first.` **Log line** (stderr, one per call): `[ask-gate] decision=<allow|block> sessionId=<id8> seen=<csv|-> reason=<allowlist-hit|no-investigation|fail-open-no-transcript|fail-open-parse-error>`. **Fail-open** on missing transcript or parse error — nudges, never bricks the UI.
138
138
  - `hooks/session-end-retrospective.sh` — **Stop hook.** Fires on every assistant end_turn but exits 0 with `trigger-skipped reason=<role-not-admin|is-specialist|empty-stdin|missing-transcript|no-intent-match>` on every path EXCEPT when the operator's latest real-user message carries an end-intent token (`/end`, `/archive`, `end session`, `archive this session`, case-insensitive, must match the whole message or a standalone line — not embedded in prose). On that path the hook blocks (exit 2 + structured retrospective instruction on stderr per Stop-hook contract) and emits `[session-retrospective] gate-blocked sessionId=<id> reason=sentinel-absent` until the admin agent calls the `session-retrospective-mark-complete` MCP sentinel tool. Completion is recognised by greping the operator's own JSONL (`transcript_path` on the Stop envelope) for a `tool_use` block whose `name` equals that exact string — never by parsing prose ([[feedback_no_stdout_parsing_for_control_flow]], [[feedback_doctrine_paragraph_is_not_a_gate]]). The sentinel-grep doubles as the re-entry guard: every Stop after the sentinel call sees it and exits 0 with `gate-released sessionId=<id>`. Recursion guard: any session whose `MAXY_SPECIALIST` env is set (specialist subagent dispatched via Task tool) skips the gate. The Sidebar archive button POSTs `/:sessionId/archive` directly to the manager which kills the PTY — no Stop fires after that, so clicking archive is the operator's current escape hatch (opt-out remains deferred per the task spec). All emits go through `POST /api/admin/log-ingest`; the only stderr writer is the gate-blocked path (the instruction block the agent reads). The retrospective itself runs as one or more additional turns inside the operator's existing admin session — Task-tool delegation to `database-operator` is the existing IDENTITY.md "Recording" route, not a parallel admin session ([[feedback_deterministic_means_remove_llm]]).
139
+ - `hooks/signal-detector-stop.sh` — **Stop hook.** Task 303 — gbrain port. Fires on every admin-agent end_turn alongside `session-end-retrospective.sh` (both registered on the Stop matcher). Inspects the operator's JSONL transcript and decides whether to dispatch the `signal-detector` specialist for background brain-compounding. Throttle gates: ≥3 new real-user turns since the most recent in-transcript Task call with `subagent_type=signal-detector` (overridable via `MAXY_SIGNAL_DETECTOR_MIN_NEW_TURNS`) AND ≥30 000 ms since the latest real-user message's `timestamp` (overridable via `MAXY_SIGNAL_DETECTOR_MIN_IDLE_MS`). Below either threshold → exit 0 with `trigger-skipped reason=below-{turn,idle}-threshold`. Recursion guard mirrors `session-end-retrospective.sh`: any session with `MAXY_SPECIALIST` set on the PTY env is skipped, plus the in-transcript Task-call grep means the very next Stop after the agent's dispatch turn sees the call and exits 0 (`reason=already-dispatched`). Gate-blocked path emits exit 2 + stderr directive `[system: signal-detector-stop-hook]` per Stop-hook contract; the admin IDENTITY.md "Stop-hook system directives" section binds the agent's response shape (perform one `Task` dispatch, emit a single-space ack, stop). First-fire bootstrap: idempotently copies the template from `$MAXY_PLATFORM_ROOT/templates/specialists/agents/signal-detector.md` into `$ACCOUNT_DIR/specialists/agents/` and appends the AGENTS.md routing line so the specialist is available platform-core without onboarding-flow surgery. All emits go through `POST /api/admin/log-ingest` under tag `signal-detector-hook`. Operator-channel doctrine: by design, only the admin agent's stop fires this hook (public/visitor channels never do — high-value signal flows through the operator, not the visitor).
139
140
  - `hooks/turn-completed-graph-write.sh` — **Dormant since Task 214** — the Stop-hook registration is no longer written to account settings.json; admin delegates graph writes to `database-operator` via the Task tool. The script, envelope walker, loopback `/api/admin/claude-sessions` 127.0.0.1 bypass, `[turn-recorder]` emitters, recorder-auto-archive subscriber, and `initialMessage` envelope spec are preserved as reusable infrastructure for any future autonomous post-turn flow. Historical contract (still describes the dormant path): Stop hook fired once per completed admin-agent turn. Gates on `MAXY_SESSION_ROLE=admin` + `MAXY_SPECIALIST!=database-operator` so it never recurses into the recorder PTY or fires on public sessions. **Task 147** — the recorder is spawned via the same route Sidebar uses. ONE POST to `POST /api/admin/claude-sessions`, body carries `{specialist:'database-operator', model:'haiku', initialMessage:<json-envelope>, adminSessionId:<op>}` — no synthetic `senderId: 'turn-recorder'` marker. The Hono wrapper bypasses cookie auth on this exact method+path when the request originates from `127.0.0.1` (same trust boundary the claude-session-manager itself relies on), looks up the operator's senderId from the manager's `/<adminSessionId>/meta`, and forwards a Sidebar-shape spawn body. The `/recorder-spawn` sibling route is gone. The hook reads its UI port from `MAXY_UI_INTERNAL_PORT` (stamped on the manager systemd unit) — no fallback; absence emits `[turn-recorder] spawn-failed reason=missing-env env=MAXY_UI_INTERNAL_PORT` to stderr instead of silently 19199-ing. **Task 177** — `initialMessage` is a JSON-stringified envelope; the schema lives in [`platform/plugins/docs/references/admin-session.md`](../docs/references/admin-session.md) under "`initialMessage` JSON envelope (Task 177)". Top-level keys exactly: `turns`, `conversationId`, `accountId`, `occurredAt`. `turns` is the full conversation transcript, oldest first, newest last, with each entry `{ role: "user"|"assistant", text, ts, toolCalls? }`. No windowing, no truncation. Multi-record assistant messages collapse on `message.id`. `tool_use` and matching `tool_result` blocks attach as a single `toolCalls` entry on the owning assistant turn; the user record carrying only the `tool_result` does not create a separate user turn. No leading instruction prose. `toolCalls[].input` and `toolCalls[].output` are native JSON values, never re-stringified. (Replaces Task 175's `(operatorMessage, assistantReply)` pair, which asserted a temporal Q→A relationship the walker never enforced.) One observability line `[turn-recorder] envelope sessionId=<op> turnsCount=<n> userTurns=<n> assistantTurns=<n> toolCallTurns=<n>` precedes `spawn-request`. The envelope rides on the `/spawn` body as a trailing positional argv to `claude`, so the database-operator session's JSONL first `role=user` line is the JSON object verbatim. No separate `POST /:id/input` call, no bracketed-paste, no keystroke injection. The recorder-auto-archive subscriber stops the recorder PTY as soon as its JSONL contains an assistant message with `stop_reason === "end_turn"`. **Task 129** — every emit goes through `POST /api/admin/log-ingest` so the lines land in `server.log` keyed by the operator session id. The chain is `trigger` → `spawn-request` → `spawn-success` → `input-delivered` → `tool-call` × N → `tool-result` × N → `write-complete` → `auto-archive`; each gated-off path emits one `trigger-skipped reason=<role-not-admin|is-recorder|empty-stdin|missing-transcript|conversation-empty>` line. Failure modes — `spawn-failed`, `tool-surface-missing`, `input-failed`, `write-empty`, `auto-archive reason=stale-recorder` — each emit one named line; absence is itself a defect.
140
141
 
141
142
  ## Session identifiers (Task 135)
@@ -0,0 +1,309 @@
1
+ #!/usr/bin/env bash
2
+ # Stop hook — gbrain signal-detector dispatch. Task 303.
3
+ #
4
+ # Fires on every admin-agent assistant end_turn. Inspects the operator's
5
+ # JSONL transcript and decides whether to invoke the `signal-detector`
6
+ # specialist to extract entity mentions and original-thinking candidates
7
+ # from the conversation slice since the last dispatch.
8
+ #
9
+ # Trigger logic (must clear both gates to fire):
10
+ # - >= MIN_NEW_TURNS new real-user messages since the most recent
11
+ # in-transcript Task dispatch with subagent_type='signal-detector'
12
+ # (default 3 — overridable via MAXY_SIGNAL_DETECTOR_MIN_NEW_TURNS).
13
+ # - >= MIN_IDLE_MS milliseconds since the latest real-user message's
14
+ # `timestamp` (default 30_000 — overridable via
15
+ # MAXY_SIGNAL_DETECTOR_MIN_IDLE_MS). Captures "operator paused, not
16
+ # mid-thought".
17
+ #
18
+ # Recursion guard. The dispatch resolves through a Task tool call carrying
19
+ # `subagent_type=signal-detector`; once such a call appears in the transcript
20
+ # after the latest real-user message, the gate has already fired for this
21
+ # turn and must NOT re-fire. Same shape as
22
+ # session-end-retrospective.sh's sentinel grep
23
+ # ([[feedback_no_stdout_parsing_for_control_flow]] /
24
+ # [[feedback_doctrine_paragraph_is_not_a_gate]]) — control flow gates on a
25
+ # structural tool_use, never on prose.
26
+ #
27
+ # Specialist auto-install on first fire. The template ships at
28
+ # `$MAXY_TEMPLATES_DIR/specialists/agents/signal-detector.md` (or
29
+ # `$ACCOUNT_DIR/../templates/...` via PLATFORM_ROOT). On the first fire
30
+ # that decides to dispatch, the hook idempotently copies the template into
31
+ # `$ACCOUNT_DIR/specialists/agents/` and appends the AGENTS.md routing line
32
+ # if absent — so signal-detector is platform-core (no operator install
33
+ # step) without surgery on the onboarding flow.
34
+ #
35
+ # Gating (emits via `/api/admin/log-ingest`; stderr stays silent on every
36
+ # skip path; the gate-blocked path is the only stderr emitter, by Stop-hook
37
+ # contract — exit 2 + stderr is how the agent receives the dispatch
38
+ # directive):
39
+ # - MAXY_SESSION_ROLE must equal "admin" → reason=role-not-admin
40
+ # - MAXY_SPECIALIST must be empty → reason=is-specialist
41
+ # - Stop-hook stdin must be non-empty → reason=empty-stdin
42
+ # - transcript_path must exist on disk → reason=missing-transcript
43
+ # - new real-user turns since last fire < MIN_NEW → reason=below-turn-threshold
44
+ # - idle_ms < MIN_IDLE_MS → reason=below-idle-threshold
45
+ # - latest real-user message older than the latest → reason=already-dispatched
46
+ # signal-detector dispatch
47
+ #
48
+ # Blocks:
49
+ # - gate-blocked sessionId=<id> reason=dispatching newTurns=<n> idleMs=<n>
50
+ #
51
+ # Input: Claude Code's Stop hook stdin shape
52
+ # { "session_id": "<intrinsic>", "transcript_path": "<jsonl path>", ... }
53
+
54
+ set -uo pipefail
55
+
56
+ MIN_NEW_TURNS="${MAXY_SIGNAL_DETECTOR_MIN_NEW_TURNS:-3}"
57
+ MIN_IDLE_MS="${MAXY_SIGNAL_DETECTOR_MIN_IDLE_MS:-30000}"
58
+
59
+ UI_PORT="${MAXY_UI_INTERNAL_PORT:-}"
60
+ if [ -z "$UI_PORT" ]; then
61
+ echo "[signal-detector-hook] trigger-skipped sessionId=unknown reason=missing-env env=MAXY_UI_INTERNAL_PORT" >&2
62
+ exit 0
63
+ fi
64
+ UI_BASE="http://127.0.0.1:${UI_PORT}"
65
+ LOG_INGEST_URL="${UI_BASE}/api/admin/log-ingest"
66
+
67
+ emit_log() {
68
+ local line="$1"
69
+ curl -sS -o /dev/null -X POST \
70
+ -H 'Content-Type: application/json' \
71
+ --max-time 2 \
72
+ --data "$(python3 -c '
73
+ import sys, json
74
+ print(json.dumps({"tag": "signal-detector-hook", "level": "info", "line": sys.argv[1]}))
75
+ ' "$line")" \
76
+ "$LOG_INGEST_URL" 2>/dev/null || true
77
+ }
78
+
79
+ INPUT=""
80
+ if [ -t 0 ]; then
81
+ INPUT=""
82
+ else
83
+ INPUT=$(cat)
84
+ fi
85
+
86
+ PARSED=$(printf '%s' "$INPUT" | python3 -c '
87
+ import sys, json
88
+ try:
89
+ d = json.load(sys.stdin)
90
+ sid = d.get("session_id", "") or ""
91
+ tpath = d.get("transcript_path", "") or ""
92
+ print(f"{sid}\t{tpath}")
93
+ except Exception:
94
+ print("\t")
95
+ ' 2>/dev/null)
96
+ SESSION_ID="${PARSED%% *}"
97
+ TRANSCRIPT_PATH="${PARSED#* }"
98
+ SESSION_ID_REPORTED="${SESSION_ID:-unknown}"
99
+
100
+ if [ "${MAXY_SESSION_ROLE:-}" != "admin" ]; then
101
+ emit_log "trigger-skipped sessionId=${SESSION_ID_REPORTED} reason=role-not-admin"
102
+ exit 0
103
+ fi
104
+ # Recursion guard. A specialist subagent (database-operator, signal-detector
105
+ # itself, etc.) stamps `MAXY_SPECIALIST` on its PTY env. Skip — the hook
106
+ # only fires on the operator's own admin session, never on a subagent's
107
+ # own stop.
108
+ if [ -n "${MAXY_SPECIALIST:-}" ]; then
109
+ emit_log "trigger-skipped sessionId=${SESSION_ID_REPORTED} reason=is-specialist specialist=${MAXY_SPECIALIST}"
110
+ exit 0
111
+ fi
112
+ if [ -z "$INPUT" ]; then
113
+ emit_log "trigger-skipped sessionId=${SESSION_ID_REPORTED} reason=empty-stdin"
114
+ exit 0
115
+ fi
116
+ if [ -z "$SESSION_ID" ] || [ -z "$TRANSCRIPT_PATH" ] || [ ! -f "$TRANSCRIPT_PATH" ]; then
117
+ emit_log "trigger-skipped sessionId=${SESSION_ID_REPORTED} reason=missing-transcript"
118
+ exit 0
119
+ fi
120
+
121
+ # Single Python pass over the transcript. Returns three tab-separated
122
+ # fields:
123
+ # 1. count of real-user messages whose timestamp is more recent than the
124
+ # latest in-transcript Task dispatch with subagent_type=signal-detector
125
+ # (or, when no such dispatch exists yet, the total real-user count)
126
+ # 2. idle_ms — milliseconds between the latest real-user message's
127
+ # timestamp and now (hook fire time)
128
+ # 3. excerpt — the latest real-user message's text, truncated to 2000
129
+ # chars and base64-encoded so newlines and quotes survive the shell
130
+ # round-trip
131
+ INSPECTION=$(TRANSCRIPT_PATH="$TRANSCRIPT_PATH" python3 - <<'PY'
132
+ import os, json, base64
133
+ from datetime import datetime, timezone
134
+
135
+ def is_real_user(rec):
136
+ if not isinstance(rec, dict) or rec.get("type") != "user":
137
+ return False
138
+ msg = rec.get("message")
139
+ if not isinstance(msg, dict) or msg.get("role") != "user":
140
+ return False
141
+ content = msg.get("content")
142
+ if isinstance(content, str):
143
+ return True
144
+ if isinstance(content, list):
145
+ for b in content:
146
+ if isinstance(b, dict) and b.get("type") != "tool_result":
147
+ return True
148
+ return False
149
+ return True
150
+
151
+ def extract_user_text(rec):
152
+ msg = rec.get("message", {}) or {}
153
+ content = msg.get("content")
154
+ if isinstance(content, str):
155
+ return content
156
+ if isinstance(content, list):
157
+ out = []
158
+ for b in content:
159
+ if isinstance(b, dict) and b.get("type") == "text":
160
+ t = b.get("text")
161
+ if isinstance(t, str):
162
+ out.append(t)
163
+ return "".join(out)
164
+ return ""
165
+
166
+ def latest_signal_detector_dispatch_index(records):
167
+ """Return the index of the most recent assistant tool_use of `Task`
168
+ whose `subagent_type` is `signal-detector`, or -1 if none."""
169
+ for i in range(len(records) - 1, -1, -1):
170
+ rec = records[i]
171
+ if not isinstance(rec, dict) or rec.get("type") != "assistant":
172
+ continue
173
+ msg = rec.get("message", {}) or {}
174
+ if msg.get("role") != "assistant":
175
+ continue
176
+ content = msg.get("content")
177
+ if not isinstance(content, list):
178
+ continue
179
+ for b in content:
180
+ if not isinstance(b, dict) or b.get("type") != "tool_use":
181
+ continue
182
+ if b.get("name") != "Task":
183
+ continue
184
+ inp = b.get("input", {})
185
+ if isinstance(inp, dict) and inp.get("subagent_type") == "signal-detector":
186
+ return i
187
+ return -1
188
+
189
+ path = os.environ["TRANSCRIPT_PATH"]
190
+ records = []
191
+ try:
192
+ with open(path, "r", encoding="utf-8") as f:
193
+ for raw in f:
194
+ raw = raw.strip()
195
+ if not raw:
196
+ continue
197
+ try:
198
+ records.append(json.loads(raw))
199
+ except Exception:
200
+ continue
201
+ except Exception:
202
+ # Fail-open — print empty fields, the bash side will treat as missing.
203
+ print("0\t0\t")
204
+ raise SystemExit(0)
205
+
206
+ last_dispatch_idx = latest_signal_detector_dispatch_index(records)
207
+
208
+ # Count real-user messages after last_dispatch_idx (exclusive); when
209
+ # last_dispatch_idx is -1, count from the start.
210
+ new_user_count = 0
211
+ latest_user_ts = None
212
+ latest_user_text = ""
213
+ start = last_dispatch_idx + 1
214
+ for i in range(start, len(records)):
215
+ rec = records[i]
216
+ if is_real_user(rec):
217
+ new_user_count += 1
218
+ ts = rec.get("timestamp") or ""
219
+ if isinstance(ts, str) and ts:
220
+ latest_user_ts = ts
221
+ latest_user_text = extract_user_text(rec).strip()
222
+
223
+ if latest_user_ts is None:
224
+ print(f"{new_user_count}\t0\t")
225
+ raise SystemExit(0)
226
+
227
+ try:
228
+ # JSONL timestamps from Claude Code are ISO 8601 with Z suffix.
229
+ parsed = datetime.fromisoformat(latest_user_ts.replace("Z", "+00:00"))
230
+ now = datetime.now(timezone.utc)
231
+ idle_ms = max(0, int((now - parsed).total_seconds() * 1000))
232
+ except Exception:
233
+ idle_ms = 0
234
+
235
+ excerpt = latest_user_text[:2000]
236
+ b64 = base64.b64encode(excerpt.encode("utf-8")).decode("ascii")
237
+ print(f"{new_user_count}\t{idle_ms}\t{b64}")
238
+ PY
239
+ )
240
+ NEW_TURNS="${INSPECTION%% *}"
241
+ REMAINING="${INSPECTION#* }"
242
+ IDLE_MS="${REMAINING%% *}"
243
+ EXCERPT_B64="${REMAINING#* }"
244
+
245
+ # Throttle gates.
246
+ if [ "$NEW_TURNS" -eq 0 ] 2>/dev/null; then
247
+ emit_log "trigger-skipped sessionId=${SESSION_ID} reason=already-dispatched newTurns=0"
248
+ exit 0
249
+ fi
250
+ if [ "$NEW_TURNS" -lt "$MIN_NEW_TURNS" ] 2>/dev/null; then
251
+ emit_log "trigger-skipped sessionId=${SESSION_ID} reason=below-turn-threshold newTurns=${NEW_TURNS} threshold=${MIN_NEW_TURNS}"
252
+ exit 0
253
+ fi
254
+ if [ "$IDLE_MS" -lt "$MIN_IDLE_MS" ] 2>/dev/null; then
255
+ emit_log "trigger-skipped sessionId=${SESSION_ID} reason=below-idle-threshold idleMs=${IDLE_MS} threshold=${MIN_IDLE_MS}"
256
+ exit 0
257
+ fi
258
+
259
+ # Specialist auto-install. The template lives under
260
+ # `$PLATFORM_ROOT/templates/specialists/agents/signal-detector.md`. The
261
+ # installer / seeder copies templates to per-account dirs at onboarding;
262
+ # this fallback heals an account that pre-dates the template's existence
263
+ # without forcing the operator to re-run onboarding.
264
+ PLATFORM_ROOT_FALLBACK="${MAXY_PLATFORM_ROOT:-}"
265
+ ACCOUNT_DIR_LOCAL="${ACCOUNT_DIR:-}"
266
+ SPECIALIST_TARGET="${ACCOUNT_DIR_LOCAL}/specialists/agents/signal-detector.md"
267
+ if [ -n "$ACCOUNT_DIR_LOCAL" ] && [ ! -f "$SPECIALIST_TARGET" ] && [ -n "$PLATFORM_ROOT_FALLBACK" ]; then
268
+ TEMPLATE_SRC="${PLATFORM_ROOT_FALLBACK}/templates/specialists/agents/signal-detector.md"
269
+ if [ -f "$TEMPLATE_SRC" ]; then
270
+ mkdir -p "$(dirname "$SPECIALIST_TARGET")" 2>/dev/null
271
+ cp "$TEMPLATE_SRC" "$SPECIALIST_TARGET" 2>/dev/null
272
+ AGENTS_MD="${ACCOUNT_DIR_LOCAL}/agents/admin/AGENTS.md"
273
+ if [ -f "$AGENTS_MD" ]; then
274
+ if ! grep -q "specialists:signal-detector" "$AGENTS_MD" 2>/dev/null; then
275
+ printf '%s\n' "- **specialists:signal-detector**: Background brain-compounder dispatched only by the admin-agent Stop hook (\`platform/plugins/admin/hooks/signal-detector-stop.sh\`). Never invoke manually." >> "$AGENTS_MD"
276
+ fi
277
+ fi
278
+ emit_log "bootstrap-installed sessionId=${SESSION_ID} target=${SPECIALIST_TARGET}"
279
+ fi
280
+ fi
281
+
282
+ EXCERPT_PREVIEW=$(printf '%s' "$EXCERPT_B64" | base64 --decode 2>/dev/null | head -c 200 | tr '\n' ' ')
283
+ emit_log "gate-blocked sessionId=${SESSION_ID} reason=dispatching newTurns=${NEW_TURNS} idleMs=${IDLE_MS} preview=$(printf '%s' "$EXCERPT_PREVIEW" | sed 's/[\"]//g' | head -c 80)"
284
+
285
+ # Emit the dispatch directive on stderr per Stop-hook contract. The admin
286
+ # IDENTITY.md "Stop-hook system directives" section names this token prefix
287
+ # and the binding response shape — agent must perform the single Agent
288
+ # dispatch and emit an empty acknowledgement on return, nothing else.
289
+ EXCERPT_DECODED=$(printf '%s' "$EXCERPT_B64" | base64 --decode 2>/dev/null)
290
+
291
+ cat >&2 <<DIRECTIVE
292
+ [system: signal-detector-stop-hook]
293
+ Dispatch the signal-detector specialist NOW using the Task tool. Do not respond to the operator; this is a background brain-compounding task and the operator does not see this turn. After the specialist returns its one-line summary, emit a single space character and stop.
294
+
295
+ Agent dispatch parameters:
296
+ subagent_type: signal-detector
297
+ prompt: |
298
+ accountId: ${ACCOUNT_ID:-<unset>}
299
+ sessionId: ${SESSION_ID}
300
+ newUserTurnsSinceLastRun: ${NEW_TURNS}
301
+ idleMsBeforeFire: ${IDLE_MS}
302
+
303
+ The operator's latest turn (truncated to 2000 chars):
304
+ ${EXCERPT_DECODED}
305
+
306
+ Resolve the operator's most recent :Message in this conversation via memory-search (filter by conversationId from your MCP server env), then write :MENTIONS edges and :Idea nodes per your specialist body. Return one line in the documented output shape.
307
+ DIRECTIVE
308
+
309
+ exit 2
@@ -49,7 +49,7 @@ eagerTool(server, "contact-create", "Create a new contact (schema:Person) in the
49
49
  status: z
50
50
  .string()
51
51
  .optional()
52
- .describe("Contact status (e.g. active, prospect, waitlist)"),
52
+ .describe("Contact status (e.g. active, prospect, booked, archived)"),
53
53
  relationships: z
54
54
  .array(z.object({
55
55
  type: z.string().describe("Relationship type (e.g. PARTICIPATES_IN, WORKS_FOR, KNOWN_VIA)"),
@@ -85,7 +85,7 @@ eagerTool(server, "contact-create", "Create a new contact (schema:Person) in the
85
85
  content: [
86
86
  {
87
87
  type: "text",
88
- text: `Contact created: ${result.identifier} (ID: ${result.nodeId}, status: ${params.status ?? "waitlist"})`,
88
+ text: `Contact created: ${result.identifier} (ID: ${result.nodeId}, status: ${params.status ?? "prospect"})`,
89
89
  },
90
90
  ],
91
91
  };
@@ -188,7 +188,7 @@ eagerTool(server, "contact-list", "List contacts with optional filters. Returns
188
188
  status: z
189
189
  .string()
190
190
  .optional()
191
- .describe("Filter by status (e.g. waitlist)"),
191
+ .describe("Filter by status (e.g. prospect)"),
192
192
  source: z
193
193
  .string()
194
194
  .optional()