@rubytech/create-realagent-code 0.1.113 → 0.1.115

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (417) hide show
  1. package/dist/__tests__/installer-specialist-registration.test.js +40 -1
  2. package/dist/__tests__/premium-bundle-gate.test.js +59 -0
  3. package/dist/index.js +24 -1
  4. package/dist/specialist-registration.js +15 -0
  5. package/package.json +1 -1
  6. package/payload/platform/config/brand.json +2 -2
  7. package/payload/platform/neo4j/schema.cypher +8 -3
  8. package/payload/platform/plugins/.claude-plugin/marketplace.json +0 -20
  9. package/payload/platform/plugins/admin/skills/public-agent-manager/SKILL.md +14 -7
  10. package/payload/platform/plugins/contacts/mcp/dist/index.js +3 -3
  11. package/payload/platform/plugins/contacts/mcp/dist/index.js.map +1 -1
  12. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-create.js +1 -1
  13. package/payload/platform/plugins/docs/references/contacts-guide.md +1 -9
  14. package/payload/platform/plugins/docs/references/getting-started.md +1 -1
  15. package/payload/platform/plugins/docs/references/internals.md +10 -26
  16. package/payload/platform/plugins/docs/references/platform.md +1 -1
  17. package/payload/platform/plugins/docs/references/plugins-guide.md +1 -2
  18. package/payload/platform/plugins/linkedin-import/PLUGIN.md +1 -1
  19. package/payload/platform/plugins/memory/PLUGIN.md +3 -2
  20. package/payload/platform/plugins/sales/.claude-plugin/plugin.json +1 -1
  21. package/payload/platform/plugins/sales/PLUGIN.md +9 -9
  22. package/payload/platform/plugins/sales/references/close-tracking.md +6 -6
  23. package/payload/platform/plugins/sales/references/faq.md +1 -5
  24. package/payload/platform/plugins/sales/references/objection-handling.md +2 -2
  25. package/payload/platform/plugins/scheduling/PLUGIN.md +1 -1
  26. package/payload/platform/plugins/scheduling/mcp/dist/index.js +2 -2
  27. package/payload/platform/plugins/scheduling/mcp/dist/index.js.map +1 -1
  28. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/getUserTimezone.test.js +1 -1
  29. package/payload/platform/plugins/whatsapp/.claude-plugin/plugin.json +9 -0
  30. package/payload/platform/plugins/whatsapp/PLUGIN.md +1 -1
  31. package/payload/platform/plugins/workflows/PLUGIN.md +1 -1
  32. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.d.ts +1 -1
  33. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.js +2 -2
  34. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.js.map +1 -1
  35. package/payload/platform/scripts/conversation-id-allowlist.txt +0 -7
  36. package/payload/platform/services/claude-session-manager/dist/brand-foreign-filter.d.ts +30 -0
  37. package/payload/platform/services/claude-session-manager/dist/brand-foreign-filter.d.ts.map +1 -0
  38. package/payload/platform/services/claude-session-manager/dist/brand-foreign-filter.js +86 -0
  39. package/payload/platform/services/claude-session-manager/dist/brand-foreign-filter.js.map +1 -0
  40. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
  41. package/payload/platform/services/claude-session-manager/dist/http-server.js +42 -1
  42. package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
  43. package/payload/platform/services/claude-session-manager/dist/index.js +51 -9
  44. package/payload/platform/services/claude-session-manager/dist/index.js.map +1 -1
  45. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +34 -0
  46. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
  47. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +118 -6
  48. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
  49. package/payload/platform/services/claude-session-manager/dist/system-prompt.d.ts +7 -0
  50. package/payload/platform/services/claude-session-manager/dist/system-prompt.d.ts.map +1 -1
  51. package/payload/platform/services/claude-session-manager/dist/system-prompt.js +7 -0
  52. package/payload/platform/services/claude-session-manager/dist/system-prompt.js.map +1 -1
  53. package/payload/platform/templates/specialists/agents/project-manager.md +1 -3
  54. package/payload/premium-plugins/real-agent/plugins/buyers/skills/property-recommender/SKILL.md +23 -3
  55. package/payload/server/{chunk-FSPPVVWM.js → chunk-FJCI6X3H.js} +192 -0
  56. package/payload/server/maxy-edge.js +1 -1
  57. package/payload/server/public/assets/{ChatInput-CsnIedhS.js → ChatInput-CJo_77bp.js} +5 -1
  58. package/payload/server/public/assets/{Checkbox-CWugFyFT.js → Checkbox-YrQovXpN.js} +1 -1
  59. package/payload/server/public/assets/{admin-D3gZuyUn.js → admin-DOxHsV7g.js} +25 -25
  60. package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-CeTRKWDb.js → architectureDiagram-Q4EWVU46-Breg9-99.js} +1 -1
  61. package/payload/server/public/assets/{blockDiagram-DXYQGD6D-DeeIX5U3.js → blockDiagram-DXYQGD6D-DXf1_673.js} +1 -1
  62. package/payload/server/public/assets/{c4Diagram-AHTNJAMY-CFsqZuil.js → c4Diagram-AHTNJAMY-CSZ36W4-.js} +1 -1
  63. package/payload/server/public/assets/channel-BmZnt3PP.js +1 -0
  64. package/payload/server/public/assets/{chunk-336JU56O-DpIXuFM0.js → chunk-336JU56O-DsrLk2eK.js} +2 -2
  65. package/payload/server/public/assets/{chunk-426QAEUC-Qk8qqrvA.js → chunk-426QAEUC-JpNfNf81.js} +1 -1
  66. package/payload/server/public/assets/{chunk-4TB4RGXK-DtM8-CUn.js → chunk-4TB4RGXK-DmClEAD0.js} +1 -1
  67. package/payload/server/public/assets/{chunk-5FUZZQ4R-CrSQ4ySU.js → chunk-5FUZZQ4R-BI9blW3N.js} +1 -1
  68. package/payload/server/public/assets/{chunk-5PVQY5BW-Bn2nQwdj.js → chunk-5PVQY5BW-BbgttEFO.js} +1 -1
  69. package/payload/server/public/assets/{chunk-EDXVE4YY-CzCPnR0P.js → chunk-EDXVE4YY-BX_LCFOx.js} +1 -1
  70. package/payload/server/public/assets/{chunk-ENJZ2VHE-CgZj9RoG.js → chunk-ENJZ2VHE-Bb7EoD0w.js} +1 -1
  71. package/payload/server/public/assets/{chunk-ICPOFSXX-wy-eNjwW.js → chunk-ICPOFSXX-DH8uQk-s.js} +1 -1
  72. package/payload/server/public/assets/{chunk-OYMX7WX6-CMmJtL8S.js → chunk-OYMX7WX6-FH5kgXsw.js} +1 -1
  73. package/payload/server/public/assets/{chunk-U2HBQHQK-CFCW7OaT.js → chunk-U2HBQHQK-D_ljlkHr.js} +1 -1
  74. package/payload/server/public/assets/{chunk-X2U36JSP-Bgh-CJSN.js → chunk-X2U36JSP-BX3EmZvm.js} +1 -1
  75. package/payload/server/public/assets/{chunk-YZCP3GAM-BXKwZ4vN.js → chunk-YZCP3GAM-Vu7-E93h.js} +1 -1
  76. package/payload/server/public/assets/{chunk-ZZ45TVLE-BiOuK5NP.js → chunk-ZZ45TVLE-CwjhNPX5.js} +1 -1
  77. package/payload/server/public/assets/classDiagram-6PBFFD2Q-kmMLFUpV.js +1 -0
  78. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-BV7Ae8ct.js +1 -0
  79. package/payload/server/public/assets/clone-B5eqoN9I.js +1 -0
  80. package/payload/server/public/assets/{dagre-DyCxa9Q2.js → dagre-Ce6gsj0C.js} +1 -1
  81. package/payload/server/public/assets/{dagre-KV5264BT-Cffo_hmf.js → dagre-KV5264BT-BaMGpsoy.js} +1 -1
  82. package/payload/server/public/assets/data-NMvGx6jm.js +1 -0
  83. package/payload/server/public/assets/{diagram-5BDNPKRD-Bt93Du3V.js → diagram-5BDNPKRD-CHEE9rjq.js} +1 -1
  84. package/payload/server/public/assets/{diagram-G4DWMVQ6-v4r-tBsC.js → diagram-G4DWMVQ6-C98sZLW1.js} +1 -1
  85. package/payload/server/public/assets/{diagram-MMDJMWI5-DKrVPOP-.js → diagram-MMDJMWI5-DNvMGsTZ.js} +1 -1
  86. package/payload/server/public/assets/{diagram-TYMM5635-B1PzWQb9.js → diagram-TYMM5635-Cdte4IBa.js} +1 -1
  87. package/payload/server/public/assets/{erDiagram-SMLLAGMA-ClQzsQAs.js → erDiagram-SMLLAGMA-C9VZsWXK.js} +1 -1
  88. package/payload/server/public/assets/{flowDiagram-DWJPFMVM-h3IbpN_7.js → flowDiagram-DWJPFMVM-tuP5fzzR.js} +1 -1
  89. package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-ClaxOJi8.js → ganttDiagram-T4ZO3ILL-SJgRPUwx.js} +1 -1
  90. package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-pM-U4ClD.js → gitGraphDiagram-UUTBAWPF-DU_cI_50.js} +1 -1
  91. package/payload/server/public/assets/graph-BkwTCV2Y.js +1 -0
  92. package/payload/server/public/assets/graph-labels-h39S93Xo.js +1 -0
  93. package/payload/server/public/assets/{graphlib-CwimOv_M.js → graphlib-D_nAsvmx.js} +1 -1
  94. package/payload/server/public/assets/{infoDiagram-42DDH7IO-DcO3Giwe.js → infoDiagram-42DDH7IO-Cj2Y19m6.js} +1 -1
  95. package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-BcdSL5VS.js → ishikawaDiagram-UXIWVN3A-DMc1xq1y.js} +1 -1
  96. package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-CYahHYzf.js → journeyDiagram-VCZTEJTY-C4CRAQma.js} +1 -1
  97. package/payload/server/public/assets/{kanban-definition-6JOO6SKY-Cl5KhoS4.js → kanban-definition-6JOO6SKY-CTr4AldU.js} +1 -1
  98. package/payload/server/public/assets/lib-Bnh57com.js +29 -0
  99. package/payload/server/public/assets/{line-d_2oTxLp.js → line-Btlm_IAl.js} +1 -1
  100. package/payload/server/public/assets/{mermaid-parser.core-CMMDGv3x.js → mermaid-parser.core-DXFdj_y1.js} +1 -1
  101. package/payload/server/public/assets/{mermaid.core-DK9ENGbr.js → mermaid.core-DFBhoCr5.js} +3 -3
  102. package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-mA3x3MFG.js → mindmap-definition-QFDTVHPH-r9gVQybo.js} +1 -1
  103. package/payload/server/public/assets/{page-CgDmg_fX.js → page-B0iMmY6t.js} +1 -1
  104. package/payload/server/public/assets/{page-D9lluVl7.js → page-zQ79YCEt.js} +2 -2
  105. package/payload/server/public/assets/{pieDiagram-DEJITSTG-CW1nGFlY.js → pieDiagram-DEJITSTG-CHKZjSaH.js} +1 -1
  106. package/payload/server/public/assets/{public-DdLMkNdS.js → public-DyGWgfaZ.js} +4 -4
  107. package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-DI5igJhR.js → quadrantDiagram-34T5L4WZ-CSGR1HJr.js} +1 -1
  108. package/payload/server/public/assets/{requirementDiagram-MS252O5E-DyVeI4e_.js → requirementDiagram-MS252O5E-DZ6hX9D6.js} +1 -1
  109. package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-CCTTBYKY.js → sankeyDiagram-XADWPNL6-DbZBKh0m.js} +1 -1
  110. package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-hVVf35ly.js → sequenceDiagram-FGHM5R23-BHHpb8dt.js} +1 -1
  111. package/payload/server/public/assets/{stateDiagram-FHFEXIEX-CSLuQDUX.js → stateDiagram-FHFEXIEX-DQ1jiLB4.js} +1 -1
  112. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-CByT2RzF.js +1 -0
  113. package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-sxC3W8Q4.js → timeline-definition-GMOUNBTQ-BlGiEU7p.js} +1 -1
  114. package/payload/server/public/assets/{vennDiagram-DHZGUBPP-Ro-ton6Z.js → vennDiagram-DHZGUBPP-DmEH-hsB.js} +1 -1
  115. package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-T-dKD0Zx.js → wardleyDiagram-NUSXRM2D-C7KJJ40d.js} +1 -1
  116. package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-CfProPts.js → xychartDiagram-5P7HB3ND-JDnusCaa.js} +1 -1
  117. package/payload/server/public/data.html +4 -4
  118. package/payload/server/public/graph.html +5 -5
  119. package/payload/server/public/index.html +7 -7
  120. package/payload/server/public/public.html +4 -4
  121. package/payload/server/server.js +144 -49
  122. package/payload/platform/plugins/teaching/.claude-plugin/plugin.json +0 -8
  123. package/payload/platform/plugins/teaching/PLUGIN.md +0 -58
  124. package/payload/platform/plugins/teaching/skills/interactive-tutor/SKILL.md +0 -59
  125. package/payload/platform/plugins/teaching/skills/interactive-tutor/references/assessment.md +0 -70
  126. package/payload/platform/plugins/teaching/skills/interactive-tutor/references/classroom-conduct.md +0 -43
  127. package/payload/platform/plugins/teaching/skills/interactive-tutor/references/teaching-modes.md +0 -83
  128. package/payload/platform/plugins/teaching/skills/lesson-planner/SKILL.md +0 -48
  129. package/payload/platform/plugins/teaching/skills/lesson-planner/references/context-gathering.md +0 -41
  130. package/payload/platform/plugins/teaching/skills/lesson-planner/references/plan-structure.md +0 -94
  131. package/payload/platform/plugins/teaching/skills/study-pack-builder/SKILL.md +0 -52
  132. package/payload/platform/plugins/teaching/skills/study-pack-builder/references/disaggregation.md +0 -49
  133. package/payload/platform/plugins/teaching/skills/study-pack-builder/references/materials.md +0 -116
  134. package/payload/platform/plugins/venture-studio/.claude-plugin/plugin.json +0 -8
  135. package/payload/platform/plugins/venture-studio/PLUGIN.md +0 -119
  136. package/payload/platform/plugins/venture-studio/bin/scaffold.sh +0 -116
  137. package/payload/platform/plugins/venture-studio/skills/brand-pack/SKILL.md +0 -256
  138. package/payload/platform/plugins/venture-studio/skills/brand-pack/references/color-psychology.md +0 -118
  139. package/payload/platform/plugins/venture-studio/skills/investor-data-room/SKILL.md +0 -374
  140. package/payload/platform/plugins/venture-studio/skills/investor-data-room/references/business-plan-template.md +0 -64
  141. package/payload/platform/plugins/venture-studio/skills/investor-data-room/references/compliance-research-checklist.md +0 -53
  142. package/payload/platform/plugins/venture-studio/skills/investor-data-room/references/data-room-structure.md +0 -88
  143. package/payload/platform/plugins/venture-studio/skills/investor-data-room/references/deck-blueprint-template.md +0 -39
  144. package/payload/platform/plugins/venture-studio/skills/investor-data-room/references/design-tokens-application.md +0 -79
  145. package/payload/platform/plugins/venture-studio/skills/investor-data-room/references/html-pdf-pipeline.md +0 -236
  146. package/payload/platform/plugins/venture-studio/skills/investor-data-room/references/internal-workings-scrub.md +0 -33
  147. package/payload/platform/plugins/venture-studio/skills/investor-data-room/references/termsheet-template.md +0 -88
  148. package/payload/platform/plugins/venture-studio/skills/investor-data-room/templates/prospectus/index.html +0 -1565
  149. package/payload/platform/plugins/venture-studio/skills/investor-data-room/templates/prospectus/render-pdf.mjs +0 -91
  150. package/payload/platform/plugins/venture-studio/skills/investor-data-room/templates/prospectus/term_sheet.html +0 -715
  151. package/payload/platform/plugins/venture-studio/skills/office-hours/SKILL.md +0 -587
  152. package/payload/platform/plugins/venture-studio/skills/prototype-host/SKILL.md +0 -179
  153. package/payload/platform/plugins/venture-studio/skills/prototype-host/references/cloudflared-ingress-edit.md +0 -81
  154. package/payload/platform/plugins/venture-studio/skills/prototype-host/references/scaffold-frameworks.md +0 -60
  155. package/payload/platform/plugins/venture-studio/skills/prototype-host/references/systemd-user-service.md +0 -104
  156. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/SKILL.md +0 -336
  157. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/aarrr-metrics.md +0 -275
  158. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/assumption-testing.md +0 -93
  159. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/boolean-search.md +0 -308
  160. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/build-measure-learn.md +0 -262
  161. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/business-model-canvas.md +0 -171
  162. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/commitment-signals.md +0 -246
  163. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/design-thinking.md +0 -183
  164. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/earlyvangelist.md +0 -190
  165. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/first-principles.md +0 -58
  166. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/fishbone.md +0 -114
  167. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/five-whys.md +0 -43
  168. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/ice-scoring.md +0 -237
  169. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/innovation-accounting.md +0 -290
  170. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/jtbd.md +0 -105
  171. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/landing-page.md +0 -361
  172. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/market-type.md +0 -167
  173. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/mom-test.md +0 -193
  174. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/mvp-types.md +0 -200
  175. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/og-images.md +0 -239
  176. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/pareto.md +0 -103
  177. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/persona-development.md +0 -291
  178. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/pivot-types.md +0 -225
  179. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/positioning-statement.md +0 -179
  180. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/prd.md +0 -363
  181. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/pre-mortem.md +0 -74
  182. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/problem-validation.md +0 -253
  183. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/product-market-fit.md +0 -256
  184. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/research-synthesis.md +0 -276
  185. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/three-engines-of-growth.md +0 -248
  186. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/validation-tests.md +0 -89
  187. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/value-proposition-canvas.md +0 -121
  188. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/win-loss-analysis.md +0 -242
  189. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/workflow-mapping.md +0 -271
  190. package/payload/platform/plugins/waitlist/.claude-plugin/plugin.json +0 -17
  191. package/payload/platform/plugins/waitlist/PLUGIN.md +0 -86
  192. package/payload/platform/plugins/waitlist/mcp/dist/index.d.ts +0 -2
  193. package/payload/platform/plugins/waitlist/mcp/dist/index.d.ts.map +0 -1
  194. package/payload/platform/plugins/waitlist/mcp/dist/index.js +0 -388
  195. package/payload/platform/plugins/waitlist/mcp/dist/index.js.map +0 -1
  196. package/payload/platform/plugins/waitlist/mcp/dist/lib/admin-model.d.ts +0 -16
  197. package/payload/platform/plugins/waitlist/mcp/dist/lib/admin-model.d.ts.map +0 -1
  198. package/payload/platform/plugins/waitlist/mcp/dist/lib/admin-model.js +0 -58
  199. package/payload/platform/plugins/waitlist/mcp/dist/lib/admin-model.js.map +0 -1
  200. package/payload/platform/plugins/waitlist/mcp/dist/lib/embedding.d.ts +0 -3
  201. package/payload/platform/plugins/waitlist/mcp/dist/lib/embedding.d.ts.map +0 -1
  202. package/payload/platform/plugins/waitlist/mcp/dist/lib/embedding.js +0 -48
  203. package/payload/platform/plugins/waitlist/mcp/dist/lib/embedding.js.map +0 -1
  204. package/payload/platform/plugins/waitlist/mcp/dist/lib/neo4j.d.ts +0 -5
  205. package/payload/platform/plugins/waitlist/mcp/dist/lib/neo4j.d.ts.map +0 -1
  206. package/payload/platform/plugins/waitlist/mcp/dist/lib/neo4j.js +0 -40
  207. package/payload/platform/plugins/waitlist/mcp/dist/lib/neo4j.js.map +0 -1
  208. package/payload/platform/plugins/waitlist/mcp/dist/tools/__tests__/waitlist-persist.test.d.ts +0 -2
  209. package/payload/platform/plugins/waitlist/mcp/dist/tools/__tests__/waitlist-persist.test.d.ts.map +0 -1
  210. package/payload/platform/plugins/waitlist/mcp/dist/tools/__tests__/waitlist-persist.test.js +0 -70
  211. package/payload/platform/plugins/waitlist/mcp/dist/tools/__tests__/waitlist-persist.test.js.map +0 -1
  212. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-extract.d.ts +0 -34
  213. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-extract.d.ts.map +0 -1
  214. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-extract.js +0 -129
  215. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-extract.js.map +0 -1
  216. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-heal.d.ts +0 -27
  217. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-heal.d.ts.map +0 -1
  218. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-heal.js +0 -127
  219. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-heal.js.map +0 -1
  220. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-list.d.ts +0 -23
  221. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-list.d.ts.map +0 -1
  222. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-list.js +0 -58
  223. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-list.js.map +0 -1
  224. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-persist.d.ts +0 -83
  225. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-persist.d.ts.map +0 -1
  226. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-persist.js +0 -433
  227. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-persist.js.map +0 -1
  228. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-review.d.ts +0 -19
  229. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-review.d.ts.map +0 -1
  230. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-review.js +0 -81
  231. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-review.js.map +0 -1
  232. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-scan.d.ts +0 -28
  233. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-scan.d.ts.map +0 -1
  234. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-scan.js +0 -50
  235. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-scan.js.map +0 -1
  236. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.d.ts +0 -33
  237. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.d.ts.map +0 -1
  238. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.js +0 -297
  239. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.js.map +0 -1
  240. package/payload/platform/plugins/waitlist/mcp/package.json +0 -23
  241. package/payload/platform/plugins/waitlist/mcp/vitest.config.ts +0 -9
  242. package/payload/platform/plugins/writer-craft/.claude-plugin/plugin.json +0 -8
  243. package/payload/platform/plugins/writer-craft/PLUGIN.md +0 -88
  244. package/payload/platform/plugins/writer-craft/agents/writer-craft--manuscript-reviewer.md +0 -92
  245. package/payload/platform/plugins/writer-craft/skills/citation-style/SKILL.md +0 -94
  246. package/payload/platform/plugins/writer-craft/skills/citation-style/references/book-and-chapter-models.md +0 -77
  247. package/payload/platform/plugins/writer-craft/skills/citation-style/references/citation-rules.md +0 -103
  248. package/payload/platform/plugins/writer-craft/skills/citation-style/references/journal-article-models.md +0 -74
  249. package/payload/platform/plugins/writer-craft/skills/citation-style/references/other-source-models.md +0 -146
  250. package/payload/platform/plugins/writer-craft/skills/citation-style/references/reference-list-rules.md +0 -70
  251. package/payload/platform/plugins/writer-craft/skills/editorial-practice/SKILL.md +0 -108
  252. package/payload/platform/plugins/writer-craft/skills/editorial-practice/references/copyediting.md +0 -73
  253. package/payload/platform/plugins/writer-craft/skills/editorial-practice/references/developmental-editing.md +0 -85
  254. package/payload/platform/plugins/writer-craft/skills/editorial-practice/references/genre-specific-editing.md +0 -78
  255. package/payload/platform/plugins/writer-craft/skills/editorial-practice/references/line-editing.md +0 -55
  256. package/payload/platform/plugins/writer-craft/skills/editorial-practice/references/self-editing.md +0 -89
  257. package/payload/platform/plugins/writer-craft/skills/persuasive-storytelling/SKILL.md +0 -114
  258. package/payload/platform/plugins/writer-craft/skills/persuasive-storytelling/references/audience-analysis.md +0 -73
  259. package/payload/platform/plugins/writer-craft/skills/persuasive-storytelling/references/crafting-persuasive-story.md +0 -76
  260. package/payload/platform/plugins/writer-craft/skills/persuasive-storytelling/references/persuasion-case-studies.md +0 -67
  261. package/payload/platform/plugins/writer-craft/skills/persuasive-storytelling/references/transformation-framework.md +0 -86
  262. package/payload/platform/plugins/writer-craft/skills/point-of-view/SKILL.md +0 -97
  263. package/payload/platform/plugins/writer-craft/skills/point-of-view/references/indirect-narration.md +0 -72
  264. package/payload/platform/plugins/writer-craft/skills/point-of-view/references/pov-types-and-voice.md +0 -91
  265. package/payload/platform/plugins/writer-craft/skills/point-of-view/references/protagonist-filter.md +0 -71
  266. package/payload/platform/plugins/writer-craft/skills/point-of-view/references/tense-and-person.md +0 -85
  267. package/payload/platform/plugins/writer-craft/skills/prose-craft/SKILL.md +0 -100
  268. package/payload/platform/plugins/writer-craft/skills/prose-craft/references/punctuation-and-grammar.md +0 -72
  269. package/payload/platform/plugins/writer-craft/skills/prose-craft/references/repetition.md +0 -71
  270. package/payload/platform/plugins/writer-craft/skills/prose-craft/references/sound-and-rhythm.md +0 -64
  271. package/payload/platform/plugins/writer-craft/skills/prose-craft/references/word-economy.md +0 -93
  272. package/payload/platform/plugins/writer-craft/skills/reader-engagement/SKILL.md +0 -100
  273. package/payload/platform/plugins/writer-craft/skills/reader-engagement/references/cause-effect-setup-payoff.md +0 -79
  274. package/payload/platform/plugins/writer-craft/skills/reader-engagement/references/conflict-escalation.md +0 -81
  275. package/payload/platform/plugins/writer-craft/skills/reader-engagement/references/hooking-readers.md +0 -67
  276. package/payload/platform/plugins/writer-craft/skills/reader-engagement/references/neurochemistry-of-engagement.md +0 -94
  277. package/payload/platform/plugins/writer-craft/skills/review-manuscript/SKILL.md +0 -111
  278. package/payload/platform/plugins/writer-craft/skills/review-manuscript/references/review-manuscript-checklist.md +0 -119
  279. package/payload/platform/plugins/writer-craft/skills/review-prose/SKILL.md +0 -99
  280. package/payload/platform/plugins/writer-craft/skills/review-prose/references/prose-review-checklist.md +0 -112
  281. package/payload/platform/plugins/writer-craft/skills/review-scene/SKILL.md +0 -99
  282. package/payload/platform/plugins/writer-craft/skills/review-scene/references/scene-analysis-framework.md +0 -95
  283. package/payload/platform/plugins/writer-craft/skills/story-architecture/SKILL.md +0 -106
  284. package/payload/platform/plugins/writer-craft/skills/story-architecture/references/blueprinting-and-scene-cards.md +0 -118
  285. package/payload/platform/plugins/writer-craft/skills/story-architecture/references/inner-issue-and-protagonist-goal.md +0 -66
  286. package/payload/platform/plugins/writer-craft/skills/story-architecture/references/misbelief-desire-worldview.md +0 -87
  287. package/payload/platform/plugins/writer-craft/skills/story-architecture/references/origin-scenes-and-escalation.md +0 -82
  288. package/payload/platform/plugins/writer-craft/skills/story-blueprint/SKILL.md +0 -133
  289. package/payload/platform/plugins/writer-craft/skills/story-blueprint/references/blueprinting-exercises.md +0 -118
  290. package/payload/platform/plugins/writer-craft/skills/story-blueprint/references/blueprinting-process.md +0 -128
  291. package/payload/premium-plugins/.claude-plugin/marketplace.json +0 -23
  292. package/payload/premium-plugins/teaching/.claude-plugin/plugin.json +0 -8
  293. package/payload/premium-plugins/teaching/PLUGIN.md +0 -58
  294. package/payload/premium-plugins/teaching/skills/interactive-tutor/SKILL.md +0 -59
  295. package/payload/premium-plugins/teaching/skills/interactive-tutor/references/assessment.md +0 -70
  296. package/payload/premium-plugins/teaching/skills/interactive-tutor/references/classroom-conduct.md +0 -43
  297. package/payload/premium-plugins/teaching/skills/interactive-tutor/references/teaching-modes.md +0 -83
  298. package/payload/premium-plugins/teaching/skills/lesson-planner/SKILL.md +0 -48
  299. package/payload/premium-plugins/teaching/skills/lesson-planner/references/context-gathering.md +0 -41
  300. package/payload/premium-plugins/teaching/skills/lesson-planner/references/plan-structure.md +0 -94
  301. package/payload/premium-plugins/teaching/skills/study-pack-builder/SKILL.md +0 -52
  302. package/payload/premium-plugins/teaching/skills/study-pack-builder/references/disaggregation.md +0 -49
  303. package/payload/premium-plugins/teaching/skills/study-pack-builder/references/materials.md +0 -116
  304. package/payload/premium-plugins/venture-studio/.claude-plugin/plugin.json +0 -8
  305. package/payload/premium-plugins/venture-studio/PLUGIN.md +0 -119
  306. package/payload/premium-plugins/venture-studio/bin/scaffold.sh +0 -116
  307. package/payload/premium-plugins/venture-studio/skills/brand-pack/SKILL.md +0 -256
  308. package/payload/premium-plugins/venture-studio/skills/brand-pack/references/color-psychology.md +0 -118
  309. package/payload/premium-plugins/venture-studio/skills/investor-data-room/SKILL.md +0 -374
  310. package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/business-plan-template.md +0 -64
  311. package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/compliance-research-checklist.md +0 -53
  312. package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/data-room-structure.md +0 -88
  313. package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/deck-blueprint-template.md +0 -39
  314. package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/design-tokens-application.md +0 -79
  315. package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/html-pdf-pipeline.md +0 -236
  316. package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/internal-workings-scrub.md +0 -33
  317. package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/termsheet-template.md +0 -88
  318. package/payload/premium-plugins/venture-studio/skills/investor-data-room/templates/prospectus/index.html +0 -1565
  319. package/payload/premium-plugins/venture-studio/skills/investor-data-room/templates/prospectus/render-pdf.mjs +0 -91
  320. package/payload/premium-plugins/venture-studio/skills/investor-data-room/templates/prospectus/term_sheet.html +0 -715
  321. package/payload/premium-plugins/venture-studio/skills/office-hours/SKILL.md +0 -587
  322. package/payload/premium-plugins/venture-studio/skills/prototype-host/SKILL.md +0 -179
  323. package/payload/premium-plugins/venture-studio/skills/prototype-host/references/cloudflared-ingress-edit.md +0 -81
  324. package/payload/premium-plugins/venture-studio/skills/prototype-host/references/scaffold-frameworks.md +0 -60
  325. package/payload/premium-plugins/venture-studio/skills/prototype-host/references/systemd-user-service.md +0 -104
  326. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/SKILL.md +0 -336
  327. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/aarrr-metrics.md +0 -275
  328. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/assumption-testing.md +0 -93
  329. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/boolean-search.md +0 -308
  330. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/build-measure-learn.md +0 -262
  331. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/business-model-canvas.md +0 -171
  332. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/commitment-signals.md +0 -246
  333. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/design-thinking.md +0 -183
  334. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/earlyvangelist.md +0 -190
  335. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/first-principles.md +0 -58
  336. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/fishbone.md +0 -114
  337. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/five-whys.md +0 -43
  338. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/ice-scoring.md +0 -237
  339. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/innovation-accounting.md +0 -290
  340. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/jtbd.md +0 -105
  341. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/landing-page.md +0 -361
  342. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/market-type.md +0 -167
  343. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/mom-test.md +0 -193
  344. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/mvp-types.md +0 -200
  345. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/og-images.md +0 -239
  346. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/pareto.md +0 -103
  347. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/persona-development.md +0 -291
  348. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/pivot-types.md +0 -225
  349. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/positioning-statement.md +0 -179
  350. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/prd.md +0 -363
  351. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/pre-mortem.md +0 -74
  352. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/problem-validation.md +0 -253
  353. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/product-market-fit.md +0 -256
  354. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/research-synthesis.md +0 -276
  355. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/three-engines-of-growth.md +0 -248
  356. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/validation-tests.md +0 -89
  357. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/value-proposition-canvas.md +0 -121
  358. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/win-loss-analysis.md +0 -242
  359. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/workflow-mapping.md +0 -271
  360. package/payload/premium-plugins/writer-craft/.claude-plugin/plugin.json +0 -8
  361. package/payload/premium-plugins/writer-craft/PLUGIN.md +0 -88
  362. package/payload/premium-plugins/writer-craft/agents/writer-craft--manuscript-reviewer.md +0 -92
  363. package/payload/premium-plugins/writer-craft/skills/citation-style/SKILL.md +0 -94
  364. package/payload/premium-plugins/writer-craft/skills/citation-style/references/book-and-chapter-models.md +0 -77
  365. package/payload/premium-plugins/writer-craft/skills/citation-style/references/citation-rules.md +0 -103
  366. package/payload/premium-plugins/writer-craft/skills/citation-style/references/journal-article-models.md +0 -74
  367. package/payload/premium-plugins/writer-craft/skills/citation-style/references/other-source-models.md +0 -146
  368. package/payload/premium-plugins/writer-craft/skills/citation-style/references/reference-list-rules.md +0 -70
  369. package/payload/premium-plugins/writer-craft/skills/editorial-practice/SKILL.md +0 -108
  370. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/copyediting.md +0 -73
  371. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/developmental-editing.md +0 -85
  372. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/genre-specific-editing.md +0 -78
  373. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/line-editing.md +0 -55
  374. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/self-editing.md +0 -89
  375. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/SKILL.md +0 -114
  376. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/audience-analysis.md +0 -73
  377. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/crafting-persuasive-story.md +0 -76
  378. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/persuasion-case-studies.md +0 -67
  379. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/transformation-framework.md +0 -86
  380. package/payload/premium-plugins/writer-craft/skills/point-of-view/SKILL.md +0 -97
  381. package/payload/premium-plugins/writer-craft/skills/point-of-view/references/indirect-narration.md +0 -72
  382. package/payload/premium-plugins/writer-craft/skills/point-of-view/references/pov-types-and-voice.md +0 -91
  383. package/payload/premium-plugins/writer-craft/skills/point-of-view/references/protagonist-filter.md +0 -71
  384. package/payload/premium-plugins/writer-craft/skills/point-of-view/references/tense-and-person.md +0 -85
  385. package/payload/premium-plugins/writer-craft/skills/prose-craft/SKILL.md +0 -100
  386. package/payload/premium-plugins/writer-craft/skills/prose-craft/references/punctuation-and-grammar.md +0 -72
  387. package/payload/premium-plugins/writer-craft/skills/prose-craft/references/repetition.md +0 -71
  388. package/payload/premium-plugins/writer-craft/skills/prose-craft/references/sound-and-rhythm.md +0 -64
  389. package/payload/premium-plugins/writer-craft/skills/prose-craft/references/word-economy.md +0 -93
  390. package/payload/premium-plugins/writer-craft/skills/reader-engagement/SKILL.md +0 -100
  391. package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/cause-effect-setup-payoff.md +0 -79
  392. package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/conflict-escalation.md +0 -81
  393. package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/hooking-readers.md +0 -67
  394. package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/neurochemistry-of-engagement.md +0 -94
  395. package/payload/premium-plugins/writer-craft/skills/review-manuscript/SKILL.md +0 -111
  396. package/payload/premium-plugins/writer-craft/skills/review-manuscript/references/review-manuscript-checklist.md +0 -119
  397. package/payload/premium-plugins/writer-craft/skills/review-prose/SKILL.md +0 -99
  398. package/payload/premium-plugins/writer-craft/skills/review-prose/references/prose-review-checklist.md +0 -112
  399. package/payload/premium-plugins/writer-craft/skills/review-scene/SKILL.md +0 -99
  400. package/payload/premium-plugins/writer-craft/skills/review-scene/references/scene-analysis-framework.md +0 -95
  401. package/payload/premium-plugins/writer-craft/skills/story-architecture/SKILL.md +0 -106
  402. package/payload/premium-plugins/writer-craft/skills/story-architecture/references/blueprinting-and-scene-cards.md +0 -118
  403. package/payload/premium-plugins/writer-craft/skills/story-architecture/references/inner-issue-and-protagonist-goal.md +0 -66
  404. package/payload/premium-plugins/writer-craft/skills/story-architecture/references/misbelief-desire-worldview.md +0 -87
  405. package/payload/premium-plugins/writer-craft/skills/story-architecture/references/origin-scenes-and-escalation.md +0 -82
  406. package/payload/premium-plugins/writer-craft/skills/story-blueprint/SKILL.md +0 -133
  407. package/payload/premium-plugins/writer-craft/skills/story-blueprint/references/blueprinting-exercises.md +0 -118
  408. package/payload/premium-plugins/writer-craft/skills/story-blueprint/references/blueprinting-process.md +0 -128
  409. package/payload/server/public/assets/channel-CrSx5mnG.js +0 -1
  410. package/payload/server/public/assets/classDiagram-6PBFFD2Q-C3IDJsqN.js +0 -1
  411. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-BOIrJ5Zb.js +0 -1
  412. package/payload/server/public/assets/clone-P8Fkz7JD.js +0 -1
  413. package/payload/server/public/assets/data-DRfwJPja.js +0 -1
  414. package/payload/server/public/assets/graph-B4FFYwus.js +0 -1
  415. package/payload/server/public/assets/graph-labels-Cpk9Ktt0.js +0 -1
  416. package/payload/server/public/assets/lib--yuBd0Xi.js +0 -33
  417. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-C5JejhQU.js +0 -1
@@ -1,86 +0,0 @@
1
- ---
2
- name: waitlist
3
- description: "Waitlist lifecycle — workflow-based extraction from public conversations, admin review, and scheduled automation."
4
- tools:
5
- - name: waitlist-scan
6
- publicAllowlist: false
7
- adminAllowlist: true
8
- - name: waitlist-extract
9
- publicAllowlist: false
10
- adminAllowlist: true
11
- - name: waitlist-persist
12
- publicAllowlist: false
13
- adminAllowlist: true
14
- - name: waitlist-list
15
- publicAllowlist: false
16
- adminAllowlist: true
17
- - name: waitlist-review
18
- publicAllowlist: false
19
- adminAllowlist: true
20
- - name: waitlist-setup
21
- publicAllowlist: false
22
- adminAllowlist: true
23
- - name: waitlist-heal
24
- publicAllowlist: false
25
- adminAllowlist: true
26
- always: false
27
- embed: false
28
- lifecycle: {"activate": "waitlist-setup", "heal": "waitlist-heal"}
29
- metadata: {"platform":{"optional":true}}
30
- mcp:
31
- command: node
32
- args:
33
- - ${PLATFORM_ROOT}/lib/mcp-spawn-tee/dist/index.js
34
- - ${PLATFORM_ROOT}/plugins/waitlist/mcp/dist/index.js
35
- env:
36
- MCP_SPAWN_TEE_NAME: waitlist
37
- LOG_DIR: ${LOG_DIR}
38
- PLATFORM_ROOT: ${PLATFORM_ROOT}
39
- ACCOUNT_ID: ${ACCOUNT_ID}
40
- SESSION_ID: ${SESSION_ID}
41
- mcp-manifest: auto
42
- ---
43
-
44
- # Waitlist
45
-
46
- Manages the waitlist lifecycle: extracting sign-ups from public conversations, reviewing entries, and scheduling automatic extraction.
47
-
48
- ## How it works
49
-
50
- The **only** intake path is public agent conversations. The public agent captures name and email in conversation (via the sales plugin). This plugin uses a **workflow** (3-step pipeline) to scan those conversation transcripts, extract structured contact details and customer discovery intelligence via LLM, and create Person nodes in the graph. There are no other sources: no email inboxes, no web forms, no external imports. Do not suggest or speculate about alternative sign-up sources.
51
-
52
- ### Extraction workflow
53
-
54
- The extraction runs as a standard workflow (managed by the workflows plugin), composed of three MCP tool steps:
55
-
56
- 1. **Scan** (`waitlist-scan`) — queries all public conversations and returns structured transcripts
57
- 2. **Extract** (`waitlist-extract`) — sends transcripts to the model via Claude Code OAuth, returns a JSON array of identity (email, given name, family name) and discovery notes (business type, role, needs, challenges, interests, engagement quality, other signals). The extraction prompt lives in the `waitlist-extract` tool source; redeploy the waitlist plugin to change behaviour.
58
- 3. **Persist** (`waitlist-persist`) — creates/updates Person nodes idempotently via MERGE. Validates that extracted emails actually appear in source conversations (hallucination guard). Merges discovery notes with existing data (new signal enriches, never overwrites).
59
-
60
- - Entries where both name and email are found get `status: 'waitlist'`.
61
- - Entries where only an email is found (no name match) get `status: 'review'` — the admin resolves these manually.
62
- - Discovery notes are stored as a JSON string on the Person node's `discoveryNotes` property.
63
-
64
- ### Modifying the extraction
65
-
66
- The extraction prompt lives in the `waitlist-extract` tool source (`platform/plugins/waitlist/mcp/src/tools/waitlist-extract.ts`). To change what fields are extracted, adjust instructions, or modify behaviour, edit `EXTRACTION_PROMPT` there and redeploy the waitlist plugin. The model defaults to the account's `adminModel`; passing an explicit `model` argument to `waitlist-extract` overrides per call.
67
-
68
- ## When to use each tool
69
-
70
- - `waitlist-scan` — Gather public conversation transcripts. Normally called by the extraction workflow, not directly. Returns structured JSON.
71
- - `waitlist-extract` — Run the LLM extraction over conversation transcripts and return a JSON array of contacts with discovery notes. Normally called by the extraction workflow, not directly. Runs on Claude Code OAuth.
72
- - `waitlist-persist` — Persist LLM extraction results as Person nodes. Normally called by the extraction workflow, not directly. Validates input and applies hallucination guard.
73
- - `waitlist-list` — Show the admin their waitlist entries with discovery notes. Highlight the review count — entries needing name resolution.
74
- - `waitlist-review` — Resolve flagged entries and view discovery context: add a name and change status from `review` to `waitlist` or `approved`. Also use to reject spam entries. Returns discovery notes alongside the status update.
75
- - `waitlist-setup` — Create the extraction workflow and a recurring scheduled event that triggers it. Default: every 4 hours. Idempotent — if the workflow already exists, returns its details. Cleans up old-style extraction events automatically. To change the schedule, cancel the existing event (via `schedule-cancel`) and run `waitlist-setup` with the new recurrence.
76
-
77
- ## First-time setup
78
-
79
- When the admin first asks about waitlist management or wants to see sign-ups, run `waitlist-setup` to create the extraction workflow and schedule. Then run `workflow-execute` on the created workflow to populate entries from existing conversations, followed by `waitlist-list` to show results.
80
-
81
- ## Relationship to other plugins
82
-
83
- - **Sales plugin** — handles the public-facing conversation that captures name and email. The sales plugin collects; the waitlist plugin extracts and manages.
84
- - **Contacts plugin** — waitlist entries are Person nodes (same schema). `contact-list` with `source: 'waitlist'` shows the same data. The waitlist tools add extraction and review workflows on top.
85
- - **Workflows plugin** — the extraction runs as a standard workflow. The user manages the extraction prompt and execution through workflow tools.
86
- - **Scheduling plugin** — `waitlist-setup` creates an Event node that triggers `workflow-execute` via the platform heartbeat. The admin can view and manage this event via scheduling tools.
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
@@ -1,388 +0,0 @@
1
- import { initStderrTee } from "../../../../lib/mcp-stderr-tee/dist/index.js";
2
- initStderrTee("waitlist");
3
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
4
- import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
5
- import { z } from "zod";
6
- import { waitlistScan } from "./tools/waitlist-scan.js";
7
- import { waitlistExtract } from "./tools/waitlist-extract.js";
8
- import { waitlistPersist } from "./tools/waitlist-persist.js";
9
- import { waitlistList } from "./tools/waitlist-list.js";
10
- import { waitlistReview } from "./tools/waitlist-review.js";
11
- import { waitlistSetup } from "./tools/waitlist-setup.js";
12
- import { waitlistHeal } from "./tools/waitlist-heal.js";
13
- import { closeDriver } from "./lib/neo4j.js";
14
- // Cast to `any` to avoid TS2589. TypeScript hits its 50-level instantiation
15
- // limit when accumulating typed tool signatures on a generic McpServer.
16
- // Individual tool handlers retain full type safety in their own files.
17
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
- const server = new McpServer({
19
- name: "maxy-waitlist",
20
- version: "0.1.0",
21
- });
22
- // Plugin-system boot tolerance — see Task 202.
23
- // Module-init must never throw; plugin-system spawn enumerates tools/list
24
- // before ACCOUNT_ID is set. Per-call refusal preserves account isolation.
25
- const accountId = process.env.ACCOUNT_ID ?? null;
26
- process.stderr.write(`[waitlist] boot accountId=${accountId ?? "null"}\n`);
27
- function refuseNoAccount(toolName) {
28
- process.stderr.write(`[waitlist] tool=${toolName} refuse reason=no-account-context\n`);
29
- return {
30
- content: [
31
- {
32
- type: "text",
33
- text: `${toolName} cannot execute: this MCP instance was launched without ACCOUNT_ID (plugin-system metadata-only mode). Per-account waitlist work requires ACCOUNT_ID at spawn.`,
34
- },
35
- ],
36
- isError: true,
37
- };
38
- }
39
- const agentSlug = process.env.AGENT_SLUG || undefined;
40
- const sessionId = process.env.SESSION_ID || undefined;
41
- // ---------------------------------------------------------------------------
42
- // waitlist-scan
43
- // ---------------------------------------------------------------------------
44
- server.tool("waitlist-scan", "Scan public agent conversations and return structured transcripts. Used as step 1 of the waitlist extraction workflow — gathers conversation data for the LLM extraction step. Returns JSON with conversation IDs and user messages.", {}, async () => {
45
- if (!accountId)
46
- return refuseNoAccount("waitlist-scan");
47
- try {
48
- const result = await waitlistScan(accountId);
49
- return {
50
- content: [{ type: "text", text: JSON.stringify(result) }],
51
- };
52
- }
53
- catch (err) {
54
- return {
55
- content: [
56
- {
57
- type: "text",
58
- text: `Scan failed: ${err instanceof Error ? err.message : String(err)}`,
59
- },
60
- ],
61
- isError: true,
62
- };
63
- }
64
- });
65
- // ---------------------------------------------------------------------------
66
- // waitlist-extract
67
- // ---------------------------------------------------------------------------
68
- server.tool("waitlist-extract", "Extract contact details and customer discovery intelligence from public conversation transcripts via LLM. Step 2 of the waitlist-discovery workflow — called between waitlist-scan and waitlist-persist. Runs on Claude Code OAuth. Returns a JSON array of extraction entries (one per visitor with an email address).", {
69
- conversations: z.unknown().describe("Conversation transcripts from waitlist-scan: either {conversations: [...]} or a bare array."),
70
- model: z
71
- .string()
72
- .optional()
73
- .describe("Anthropic model ID override. Omit to use the account's adminModel."),
74
- }, async (params) => {
75
- if (!accountId)
76
- return refuseNoAccount("waitlist-extract");
77
- try {
78
- const result = await waitlistExtract({
79
- accountId,
80
- conversations: params.conversations,
81
- model: params.model,
82
- });
83
- return {
84
- content: [{ type: "text", text: result.extractionsJson }],
85
- };
86
- }
87
- catch (err) {
88
- return {
89
- content: [
90
- {
91
- type: "text",
92
- text: `Extract failed: ${err instanceof Error ? err.message : String(err)}`,
93
- },
94
- ],
95
- isError: true,
96
- };
97
- }
98
- });
99
- // ---------------------------------------------------------------------------
100
- // waitlist-persist
101
- // ---------------------------------------------------------------------------
102
- server.tool("waitlist-persist", "Persist LLM extraction results as Person nodes. Used as step 3 of the waitlist extraction workflow — takes structured JSON from the LLM step and creates/updates Person nodes idempotently via MERGE. Validates emails against source conversations (hallucination guard), merges discovery notes, computes embeddings.", {
103
- extractions: z.unknown().describe("JSON array of extraction results from the LLM step"),
104
- conversations: z.unknown().describe("Conversation data from the scan step (for email validation)"),
105
- }, async (params) => {
106
- if (!accountId)
107
- return refuseNoAccount("waitlist-persist");
108
- try {
109
- const result = await waitlistPersist({
110
- accountId,
111
- extractions: params.extractions,
112
- conversations: params.conversations,
113
- });
114
- const parts = [`Processed ${result.processed} extractions`];
115
- if (result.created > 0)
116
- parts.push(`${result.created} new entries created`);
117
- if (result.updated > 0)
118
- parts.push(`${result.updated} entries updated`);
119
- if (result.flaggedForReview > 0)
120
- parts.push(`${result.flaggedForReview} flagged for review (email only)`);
121
- if (result.existing > 0)
122
- parts.push(`${result.existing} already existed`);
123
- if (result.withDiscoveryNotes > 0)
124
- parts.push(`${result.withDiscoveryNotes} with discovery notes`);
125
- if (result.filtered > 0)
126
- parts.push(`${result.filtered} filtered (invalid/hallucinated)`);
127
- if (result.errors > 0)
128
- parts.push(`${result.errors} errors`);
129
- if (result.processed === 0)
130
- parts.push("no extractions to process");
131
- return {
132
- content: [{ type: "text", text: parts.join(". ") + "." }],
133
- };
134
- }
135
- catch (err) {
136
- return {
137
- content: [
138
- {
139
- type: "text",
140
- text: `Persist failed: ${err instanceof Error ? err.message : String(err)}`,
141
- },
142
- ],
143
- isError: true,
144
- };
145
- }
146
- });
147
- // ---------------------------------------------------------------------------
148
- // waitlist-list
149
- // ---------------------------------------------------------------------------
150
- server.tool("waitlist-list", "List waitlist entries with discovery notes. Returns Person nodes created by the extraction process (source=waitlist). Shows total count, how many need review, and customer discovery intelligence (business type, needs, challenges, interests) when available.", {
151
- status: z
152
- .string()
153
- .optional()
154
- .describe("Filter by status (waitlist, review, approved, rejected)"),
155
- since: z
156
- .string()
157
- .optional()
158
- .describe("ISO date — only entries created after this date"),
159
- limit: z
160
- .number()
161
- .int()
162
- .optional()
163
- .describe("Max results (default 50)"),
164
- }, async (params) => {
165
- if (!accountId)
166
- return refuseNoAccount("waitlist-list");
167
- try {
168
- const result = await waitlistList({ ...params, accountId });
169
- if (result.entries.length === 0) {
170
- return {
171
- content: [{ type: "text", text: "No waitlist entries found." }],
172
- };
173
- }
174
- const header = `${result.total} waitlist entries (${result.reviewCount} needing review):\n\n`;
175
- const formatted = result.entries
176
- .map((e) => {
177
- let line = `${e.givenName}${e.familyName ? ` ${e.familyName}` : ""} <${e.email}> — ${e.status} (${e.createdOn})`;
178
- if (e.extractedOn)
179
- line += ` [extracted: ${e.extractedOn}]`;
180
- if (e.discoveryNotes) {
181
- try {
182
- const notes = JSON.parse(e.discoveryNotes);
183
- const parts = [];
184
- if (notes.businessType)
185
- parts.push(`business: ${notes.businessType}`);
186
- if (notes.role)
187
- parts.push(`role: ${notes.role}`);
188
- if (notes.needs)
189
- parts.push(`needs: ${notes.needs}`);
190
- if (notes.challenges)
191
- parts.push(`challenges: ${notes.challenges}`);
192
- if (notes.interests)
193
- parts.push(`interests: ${notes.interests}`);
194
- if (notes.engagementQuality)
195
- parts.push(`engagement: ${notes.engagementQuality}`);
196
- if (notes.otherSignals)
197
- parts.push(`signals: ${notes.otherSignals}`);
198
- if (parts.length > 0)
199
- line += `\n Discovery: ${parts.join("; ")}`;
200
- }
201
- catch {
202
- // Malformed discoveryNotes — skip display
203
- }
204
- }
205
- return line;
206
- })
207
- .join("\n");
208
- return {
209
- content: [{ type: "text", text: header + formatted }],
210
- };
211
- }
212
- catch (err) {
213
- return {
214
- content: [
215
- {
216
- type: "text",
217
- text: `List failed: ${err instanceof Error ? err.message : String(err)}`,
218
- },
219
- ],
220
- isError: true,
221
- };
222
- }
223
- });
224
- // ---------------------------------------------------------------------------
225
- // waitlist-review
226
- // ---------------------------------------------------------------------------
227
- server.tool("waitlist-review", "Update a waitlist entry and view discovery notes. Find by email, node ID, or name (partial, case-insensitive). Returns the entry's customer discovery intelligence (business type, needs, challenges, interests) alongside the status update. Use to resolve entries flagged for review (email-only, no name) by adding a name and setting the appropriate status. Also use to approve or reject entries. If status is omitted, the current status is preserved.", {
228
- email: z.string().optional().describe("Find entry by email address"),
229
- nodeId: z.string().optional().describe("Find entry by Neo4j node ID"),
230
- name: z.string().optional().describe("Find entry by name (partial match, case-insensitive)"),
231
- status: z
232
- .string()
233
- .optional()
234
- .describe("New status (e.g. waitlist, approved, rejected). Omit to keep current status."),
235
- givenName: z.string().optional().describe("Update first name (for review entries)"),
236
- familyName: z.string().optional().describe("Update last name"),
237
- }, async (params) => {
238
- if (!accountId)
239
- return refuseNoAccount("waitlist-review");
240
- try {
241
- const result = await waitlistReview({ ...params, accountId });
242
- let text = `Updated ${result.email}: ${result.previousStatus} → ${result.newStatus}`;
243
- if (result.extractedOn)
244
- text += ` [extracted: ${result.extractedOn}]`;
245
- if (result.discoveryNotes) {
246
- try {
247
- const notes = JSON.parse(result.discoveryNotes);
248
- const parts = [];
249
- if (notes.businessType)
250
- parts.push(`business: ${notes.businessType}`);
251
- if (notes.role)
252
- parts.push(`role: ${notes.role}`);
253
- if (notes.needs)
254
- parts.push(`needs: ${notes.needs}`);
255
- if (notes.challenges)
256
- parts.push(`challenges: ${notes.challenges}`);
257
- if (notes.interests)
258
- parts.push(`interests: ${notes.interests}`);
259
- if (notes.engagementQuality)
260
- parts.push(`engagement: ${notes.engagementQuality}`);
261
- if (notes.otherSignals)
262
- parts.push(`signals: ${notes.otherSignals}`);
263
- if (parts.length > 0)
264
- text += `\nDiscovery: ${parts.join("; ")}`;
265
- }
266
- catch {
267
- // Malformed discoveryNotes — skip display
268
- }
269
- }
270
- return {
271
- content: [{ type: "text", text }],
272
- };
273
- }
274
- catch (err) {
275
- return {
276
- content: [
277
- {
278
- type: "text",
279
- text: `Review failed: ${err instanceof Error ? err.message : String(err)}`,
280
- },
281
- ],
282
- isError: true,
283
- };
284
- }
285
- });
286
- // ---------------------------------------------------------------------------
287
- // waitlist-setup
288
- // ---------------------------------------------------------------------------
289
- server.tool("waitlist-setup", "Set up automatic waitlist extraction as a workflow. Creates a 3-step workflow (scan conversations → LLM extraction → persist Person nodes) and a recurring scheduled event that triggers it. The extraction prompt is visible via workflow-get and editable via workflow-update. Default schedule: every 4 hours. If the workflow already exists, returns its details. Cleans up any old-style extraction events automatically.", {
290
- recurrence: z
291
- .string()
292
- .optional()
293
- .describe("Cron expression (5-field: min hour dom mon dow). Default: '0 */4 * * *' (every 4 hours)"),
294
- timezone: z
295
- .string()
296
- .optional()
297
- .describe("IANA timezone (e.g. Europe/London). Defaults to server timezone."),
298
- }, async (params) => {
299
- if (!accountId)
300
- return refuseNoAccount("waitlist-setup");
301
- try {
302
- const result = await waitlistSetup({
303
- ...params,
304
- accountId,
305
- createdBy: { agent: agentSlug, session: sessionId, tool: "waitlist-setup" },
306
- });
307
- if (result.alreadyExists) {
308
- return {
309
- content: [
310
- {
311
- type: "text",
312
- text: `Waitlist extraction already configured (workflow: ${result.workflowId}, event: ${result.eventId}, recurrence: ${result.recurrence}, next run: ${result.nextRun}). View the extraction prompt with workflow-get. To change the schedule, cancel the event with schedule-cancel then run waitlist-setup again.`,
313
- },
314
- ],
315
- };
316
- }
317
- return {
318
- content: [
319
- {
320
- type: "text",
321
- text: `Waitlist extraction workflow created and scheduled: every ${result.recurrence} (workflow: ${result.workflowId}, event: ${result.eventId}, next run: ${result.nextRun}). View or edit the extraction prompt with workflow-get / workflow-update.`,
322
- },
323
- ],
324
- };
325
- }
326
- catch (err) {
327
- return {
328
- content: [
329
- {
330
- type: "text",
331
- text: `Setup failed: ${err instanceof Error ? err.message : String(err)}`,
332
- },
333
- ],
334
- isError: true,
335
- };
336
- }
337
- });
338
- // ---------------------------------------------------------------------------
339
- // waitlist-heal
340
- // ---------------------------------------------------------------------------
341
- server.tool("waitlist-heal", "Heal broken prompt patterns in the waitlist extraction workflow. Idempotent — safe to call on every heartbeat cycle. Reads the LLM step's prompt, replaces known broken patterns with the correct versions, and writes back only if something changed. Returns immediately with no changes when the prompt is already healthy.", {}, async () => {
342
- if (!accountId)
343
- return refuseNoAccount("waitlist-heal");
344
- try {
345
- const result = await waitlistHeal({ accountId });
346
- if (result.healed) {
347
- return {
348
- content: [
349
- {
350
- type: "text",
351
- text: `Prompt healed for workflow ${result.workflowId}`,
352
- },
353
- ],
354
- };
355
- }
356
- return {
357
- content: [
358
- {
359
- type: "text",
360
- text: result.workflowId
361
- ? "No healing needed — prompt is healthy"
362
- : "No waitlist workflow found — nothing to heal",
363
- },
364
- ],
365
- };
366
- }
367
- catch (err) {
368
- return {
369
- content: [
370
- {
371
- type: "text",
372
- text: `Heal failed: ${err instanceof Error ? err.message : String(err)}`,
373
- },
374
- ],
375
- isError: true,
376
- };
377
- }
378
- });
379
- // ---------------------------------------------------------------------------
380
- // Shutdown + start
381
- // ---------------------------------------------------------------------------
382
- process.on("SIGINT", async () => {
383
- await closeDriver();
384
- process.exit(0);
385
- });
386
- const transport = new StdioServerTransport();
387
- await server.connect(transport);
388
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- /**
2
- * Read the account's adminModel from account.json.
3
- *
4
- * Relocated from workflows/mcp/src/lib/llm-call.ts (deleted in task 127).
5
- * The waitlist-extract tool is the surviving consumer; any future plugin
6
- * needing the same lookup imports from here.
7
- */
8
- export type AdminModelReason = "ok" | "enoent" | "eacces" | "fs_error" | "parse_error" | "field_missing" | "field_wrong_type" | "field_empty";
9
- export interface AdminModelResolution {
10
- model: string | null;
11
- reason: AdminModelReason;
12
- path: string;
13
- error?: string;
14
- }
15
- export declare function readAdminModel(platformRoot: string, accountId: string): AdminModelResolution;
16
- //# sourceMappingURL=admin-model.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"admin-model.d.ts","sourceRoot":"","sources":["../../src/lib/admin-model.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,MAAM,MAAM,gBAAgB,GACxB,IAAI,GACJ,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,aAAa,GACb,eAAe,GACf,kBAAkB,GAClB,aAAa,CAAC;AAElB,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,gBAAgB,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,oBAAoB,CA+C5F"}
@@ -1,58 +0,0 @@
1
- /**
2
- * Read the account's adminModel from account.json.
3
- *
4
- * Relocated from workflows/mcp/src/lib/llm-call.ts (deleted in task 127).
5
- * The waitlist-extract tool is the surviving consumer; any future plugin
6
- * needing the same lookup imports from here.
7
- */
8
- import { readFileSync } from "node:fs";
9
- import { resolve } from "node:path";
10
- export function readAdminModel(platformRoot, accountId) {
11
- if (accountId.includes("..") || accountId.includes("/") || accountId.includes("\\")) {
12
- throw new Error(`Invalid accountId: "${accountId}" — path traversal blocked`);
13
- }
14
- const configPath = resolve(platformRoot, "..", "data", "accounts", accountId, "account.json");
15
- let raw;
16
- try {
17
- raw = readFileSync(configPath, "utf-8");
18
- }
19
- catch (err) {
20
- const code = err instanceof Error && "code" in err
21
- ? err.code
22
- : undefined;
23
- const message = err instanceof Error ? err.message : String(err);
24
- const reason = code === "ENOENT" ? "enoent" :
25
- code === "EACCES" ? "eacces" :
26
- "fs_error";
27
- logResolutionFailure(reason, configPath, message);
28
- return { model: null, reason, path: configPath, error: message };
29
- }
30
- let config;
31
- try {
32
- config = JSON.parse(raw);
33
- }
34
- catch (err) {
35
- const message = err instanceof Error ? err.message : String(err);
36
- logResolutionFailure("parse_error", configPath, message);
37
- return { model: null, reason: "parse_error", path: configPath, error: message };
38
- }
39
- const adminModel = config.adminModel;
40
- if (adminModel === undefined) {
41
- logResolutionFailure("field_missing", configPath);
42
- return { model: null, reason: "field_missing", path: configPath };
43
- }
44
- if (typeof adminModel !== "string") {
45
- logResolutionFailure("field_wrong_type", configPath, `adminModel is typeof ${typeof adminModel}`);
46
- return { model: null, reason: "field_wrong_type", path: configPath };
47
- }
48
- if (adminModel === "") {
49
- logResolutionFailure("field_empty", configPath);
50
- return { model: null, reason: "field_empty", path: configPath };
51
- }
52
- return { model: adminModel, reason: "ok", path: configPath };
53
- }
54
- function logResolutionFailure(reason, path, error) {
55
- const errSegment = error ? ` error=${error}` : "";
56
- console.error(`[waitlist-extract] adminModel resolution FAILED: reason=${reason} path=${path}${errSegment}`);
57
- }
58
- //# sourceMappingURL=admin-model.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"admin-model.js","sourceRoot":"","sources":["../../src/lib/admin-model.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export declare function buildPersonEmbeddingText(givenName: string, familyName: string | null, email: string, status: string, notesJson: string | null): string;
2
- export declare function computeEmbedding(text: string): Promise<number[]>;
3
- //# sourceMappingURL=embedding.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"embedding.d.ts","sourceRoot":"","sources":["../../src/lib/embedding.ts"],"names":[],"mappings":"AAKA,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAG,IAAI,GACvB,MAAM,CAmBR;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAatE"}
@@ -1,48 +0,0 @@
1
- const OLLAMA_URL = process.env.OLLAMA_URL ?? "http://localhost:11434";
2
- const EMBED_MODEL = process.env.EMBED_MODEL ?? "nomic-embed-text";
3
- export function buildPersonEmbeddingText(givenName, familyName, email, status, notesJson) {
4
- let text = `Person: ${givenName}${familyName ? ` ${familyName}` : ""} <${email}> source: waitlist status: ${status}`;
5
- if (notesJson) {
6
- try {
7
- const notes = JSON.parse(notesJson);
8
- const parts = [];
9
- if (notes.businessType)
10
- parts.push(`business: ${notes.businessType}`);
11
- if (notes.role)
12
- parts.push(`role: ${notes.role}`);
13
- if (notes.needs)
14
- parts.push(`needs: ${notes.needs}`);
15
- if (notes.challenges)
16
- parts.push(`challenges: ${notes.challenges}`);
17
- if (notes.interests)
18
- parts.push(`interests: ${notes.interests}`);
19
- if (notes.engagementQuality)
20
- parts.push(`engagement: ${notes.engagementQuality}`);
21
- if (notes.otherSignals)
22
- parts.push(`signals: ${notes.otherSignals}`);
23
- if (parts.length > 0)
24
- text += ` | ${parts.join("; ")}`;
25
- }
26
- catch {
27
- // Malformed notes — embed without discovery context
28
- }
29
- }
30
- return text;
31
- }
32
- export async function computeEmbedding(text) {
33
- try {
34
- const res = await fetch(`${OLLAMA_URL}/api/embed`, {
35
- method: "POST",
36
- headers: { "Content-Type": "application/json" },
37
- body: JSON.stringify({ model: EMBED_MODEL, input: text }),
38
- });
39
- if (!res.ok)
40
- return [];
41
- const data = (await res.json());
42
- return data.embeddings[0] ?? [];
43
- }
44
- catch {
45
- return [];
46
- }
47
- }
48
- //# sourceMappingURL=embedding.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"embedding.js","sourceRoot":"","sources":["../../src/lib/embedding.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,wBAAwB,CAAC;AACtE,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,kBAAkB,CAAC;AAElE,MAAM,UAAU,wBAAwB,CACtC,SAAiB,EACjB,UAAyB,EACzB,KAAa,EACb,MAAc,EACd,SAAwB;IAExB,IAAI,IAAI,GAAG,WAAW,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,8BAA8B,MAAM,EAAE,CAAC;IACrH,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAmB,CAAC;YACtD,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,YAAY;gBAAE,KAAK,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;YACtE,IAAI,KAAK,CAAC,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAClD,IAAI,KAAK,CAAC,KAAK;gBAAE,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YACrD,IAAI,KAAK,CAAC,UAAU;gBAAE,KAAK,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;YACpE,IAAI,KAAK,CAAC,SAAS;gBAAE,KAAK,CAAC,IAAI,CAAC,cAAc,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YACjE,IAAI,KAAK,CAAC,iBAAiB;gBAAE,KAAK,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAClF,IAAI,KAAK,CAAC,YAAY;gBAAE,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;YACrE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,IAAI,IAAI,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,oDAAoD;QACtD,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAY;IACjD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,UAAU,YAAY,EAAE;YACjD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SAC1D,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA+B,CAAC;QAC9D,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}