@rubytech/create-realagent-code 0.1.114 → 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 (403) 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 +1 -1
  8. package/payload/platform/plugins/.claude-plugin/marketplace.json +0 -20
  9. package/payload/platform/plugins/contacts/mcp/dist/index.js +3 -3
  10. package/payload/platform/plugins/contacts/mcp/dist/index.js.map +1 -1
  11. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-create.js +1 -1
  12. package/payload/platform/plugins/docs/references/contacts-guide.md +1 -9
  13. package/payload/platform/plugins/docs/references/getting-started.md +1 -1
  14. package/payload/platform/plugins/docs/references/internals.md +1 -1
  15. package/payload/platform/plugins/docs/references/platform.md +1 -1
  16. package/payload/platform/plugins/docs/references/plugins-guide.md +1 -2
  17. package/payload/platform/plugins/linkedin-import/PLUGIN.md +1 -1
  18. package/payload/platform/plugins/memory/PLUGIN.md +1 -1
  19. package/payload/platform/plugins/sales/.claude-plugin/plugin.json +1 -1
  20. package/payload/platform/plugins/sales/PLUGIN.md +9 -9
  21. package/payload/platform/plugins/sales/references/close-tracking.md +6 -6
  22. package/payload/platform/plugins/sales/references/faq.md +1 -5
  23. package/payload/platform/plugins/sales/references/objection-handling.md +2 -2
  24. package/payload/platform/plugins/scheduling/PLUGIN.md +1 -1
  25. package/payload/platform/plugins/scheduling/mcp/dist/index.js +2 -2
  26. package/payload/platform/plugins/scheduling/mcp/dist/index.js.map +1 -1
  27. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/getUserTimezone.test.js +1 -1
  28. package/payload/platform/plugins/workflows/PLUGIN.md +1 -1
  29. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.d.ts +1 -1
  30. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.js +2 -2
  31. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.js.map +1 -1
  32. package/payload/platform/scripts/conversation-id-allowlist.txt +0 -7
  33. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
  34. package/payload/platform/services/claude-session-manager/dist/http-server.js +42 -1
  35. package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
  36. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +34 -0
  37. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
  38. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +83 -2
  39. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
  40. package/payload/platform/templates/specialists/agents/project-manager.md +1 -3
  41. package/payload/server/{chunk-FSPPVVWM.js → chunk-FJCI6X3H.js} +192 -0
  42. package/payload/server/maxy-edge.js +1 -1
  43. package/payload/server/public/assets/{ChatInput-CsnIedhS.js → ChatInput-CJo_77bp.js} +5 -1
  44. package/payload/server/public/assets/{Checkbox-CWugFyFT.js → Checkbox-YrQovXpN.js} +1 -1
  45. package/payload/server/public/assets/{admin-D3gZuyUn.js → admin-DOxHsV7g.js} +25 -25
  46. package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-CeTRKWDb.js → architectureDiagram-Q4EWVU46-Breg9-99.js} +1 -1
  47. package/payload/server/public/assets/{blockDiagram-DXYQGD6D-DeeIX5U3.js → blockDiagram-DXYQGD6D-DXf1_673.js} +1 -1
  48. package/payload/server/public/assets/{c4Diagram-AHTNJAMY-CFsqZuil.js → c4Diagram-AHTNJAMY-CSZ36W4-.js} +1 -1
  49. package/payload/server/public/assets/channel-BmZnt3PP.js +1 -0
  50. package/payload/server/public/assets/{chunk-336JU56O-DpIXuFM0.js → chunk-336JU56O-DsrLk2eK.js} +2 -2
  51. package/payload/server/public/assets/{chunk-426QAEUC-Qk8qqrvA.js → chunk-426QAEUC-JpNfNf81.js} +1 -1
  52. package/payload/server/public/assets/{chunk-4TB4RGXK-DtM8-CUn.js → chunk-4TB4RGXK-DmClEAD0.js} +1 -1
  53. package/payload/server/public/assets/{chunk-5FUZZQ4R-CrSQ4ySU.js → chunk-5FUZZQ4R-BI9blW3N.js} +1 -1
  54. package/payload/server/public/assets/{chunk-5PVQY5BW-Bn2nQwdj.js → chunk-5PVQY5BW-BbgttEFO.js} +1 -1
  55. package/payload/server/public/assets/{chunk-EDXVE4YY-CzCPnR0P.js → chunk-EDXVE4YY-BX_LCFOx.js} +1 -1
  56. package/payload/server/public/assets/{chunk-ENJZ2VHE-CgZj9RoG.js → chunk-ENJZ2VHE-Bb7EoD0w.js} +1 -1
  57. package/payload/server/public/assets/{chunk-ICPOFSXX-wy-eNjwW.js → chunk-ICPOFSXX-DH8uQk-s.js} +1 -1
  58. package/payload/server/public/assets/{chunk-OYMX7WX6-CMmJtL8S.js → chunk-OYMX7WX6-FH5kgXsw.js} +1 -1
  59. package/payload/server/public/assets/{chunk-U2HBQHQK-CFCW7OaT.js → chunk-U2HBQHQK-D_ljlkHr.js} +1 -1
  60. package/payload/server/public/assets/{chunk-X2U36JSP-Bgh-CJSN.js → chunk-X2U36JSP-BX3EmZvm.js} +1 -1
  61. package/payload/server/public/assets/{chunk-YZCP3GAM-BXKwZ4vN.js → chunk-YZCP3GAM-Vu7-E93h.js} +1 -1
  62. package/payload/server/public/assets/{chunk-ZZ45TVLE-BiOuK5NP.js → chunk-ZZ45TVLE-CwjhNPX5.js} +1 -1
  63. package/payload/server/public/assets/classDiagram-6PBFFD2Q-kmMLFUpV.js +1 -0
  64. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-BV7Ae8ct.js +1 -0
  65. package/payload/server/public/assets/clone-B5eqoN9I.js +1 -0
  66. package/payload/server/public/assets/{dagre-DyCxa9Q2.js → dagre-Ce6gsj0C.js} +1 -1
  67. package/payload/server/public/assets/{dagre-KV5264BT-Cffo_hmf.js → dagre-KV5264BT-BaMGpsoy.js} +1 -1
  68. package/payload/server/public/assets/data-NMvGx6jm.js +1 -0
  69. package/payload/server/public/assets/{diagram-5BDNPKRD-Bt93Du3V.js → diagram-5BDNPKRD-CHEE9rjq.js} +1 -1
  70. package/payload/server/public/assets/{diagram-G4DWMVQ6-v4r-tBsC.js → diagram-G4DWMVQ6-C98sZLW1.js} +1 -1
  71. package/payload/server/public/assets/{diagram-MMDJMWI5-DKrVPOP-.js → diagram-MMDJMWI5-DNvMGsTZ.js} +1 -1
  72. package/payload/server/public/assets/{diagram-TYMM5635-B1PzWQb9.js → diagram-TYMM5635-Cdte4IBa.js} +1 -1
  73. package/payload/server/public/assets/{erDiagram-SMLLAGMA-ClQzsQAs.js → erDiagram-SMLLAGMA-C9VZsWXK.js} +1 -1
  74. package/payload/server/public/assets/{flowDiagram-DWJPFMVM-h3IbpN_7.js → flowDiagram-DWJPFMVM-tuP5fzzR.js} +1 -1
  75. package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-ClaxOJi8.js → ganttDiagram-T4ZO3ILL-SJgRPUwx.js} +1 -1
  76. package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-pM-U4ClD.js → gitGraphDiagram-UUTBAWPF-DU_cI_50.js} +1 -1
  77. package/payload/server/public/assets/graph-BkwTCV2Y.js +1 -0
  78. package/payload/server/public/assets/graph-labels-h39S93Xo.js +1 -0
  79. package/payload/server/public/assets/{graphlib-CwimOv_M.js → graphlib-D_nAsvmx.js} +1 -1
  80. package/payload/server/public/assets/{infoDiagram-42DDH7IO-DcO3Giwe.js → infoDiagram-42DDH7IO-Cj2Y19m6.js} +1 -1
  81. package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-BcdSL5VS.js → ishikawaDiagram-UXIWVN3A-DMc1xq1y.js} +1 -1
  82. package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-CYahHYzf.js → journeyDiagram-VCZTEJTY-C4CRAQma.js} +1 -1
  83. package/payload/server/public/assets/{kanban-definition-6JOO6SKY-Cl5KhoS4.js → kanban-definition-6JOO6SKY-CTr4AldU.js} +1 -1
  84. package/payload/server/public/assets/lib-Bnh57com.js +29 -0
  85. package/payload/server/public/assets/{line-d_2oTxLp.js → line-Btlm_IAl.js} +1 -1
  86. package/payload/server/public/assets/{mermaid-parser.core-CMMDGv3x.js → mermaid-parser.core-DXFdj_y1.js} +1 -1
  87. package/payload/server/public/assets/{mermaid.core-DK9ENGbr.js → mermaid.core-DFBhoCr5.js} +3 -3
  88. package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-mA3x3MFG.js → mindmap-definition-QFDTVHPH-r9gVQybo.js} +1 -1
  89. package/payload/server/public/assets/{page-CgDmg_fX.js → page-B0iMmY6t.js} +1 -1
  90. package/payload/server/public/assets/{page-D9lluVl7.js → page-zQ79YCEt.js} +2 -2
  91. package/payload/server/public/assets/{pieDiagram-DEJITSTG-CW1nGFlY.js → pieDiagram-DEJITSTG-CHKZjSaH.js} +1 -1
  92. package/payload/server/public/assets/{public-DdLMkNdS.js → public-DyGWgfaZ.js} +4 -4
  93. package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-DI5igJhR.js → quadrantDiagram-34T5L4WZ-CSGR1HJr.js} +1 -1
  94. package/payload/server/public/assets/{requirementDiagram-MS252O5E-DyVeI4e_.js → requirementDiagram-MS252O5E-DZ6hX9D6.js} +1 -1
  95. package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-CCTTBYKY.js → sankeyDiagram-XADWPNL6-DbZBKh0m.js} +1 -1
  96. package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-hVVf35ly.js → sequenceDiagram-FGHM5R23-BHHpb8dt.js} +1 -1
  97. package/payload/server/public/assets/{stateDiagram-FHFEXIEX-CSLuQDUX.js → stateDiagram-FHFEXIEX-DQ1jiLB4.js} +1 -1
  98. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-CByT2RzF.js +1 -0
  99. package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-sxC3W8Q4.js → timeline-definition-GMOUNBTQ-BlGiEU7p.js} +1 -1
  100. package/payload/server/public/assets/{vennDiagram-DHZGUBPP-Ro-ton6Z.js → vennDiagram-DHZGUBPP-DmEH-hsB.js} +1 -1
  101. package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-T-dKD0Zx.js → wardleyDiagram-NUSXRM2D-C7KJJ40d.js} +1 -1
  102. package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-CfProPts.js → xychartDiagram-5P7HB3ND-JDnusCaa.js} +1 -1
  103. package/payload/server/public/data.html +4 -4
  104. package/payload/server/public/graph.html +5 -5
  105. package/payload/server/public/index.html +7 -7
  106. package/payload/server/public/public.html +4 -4
  107. package/payload/server/server.js +52 -8
  108. package/payload/platform/plugins/teaching/.claude-plugin/plugin.json +0 -8
  109. package/payload/platform/plugins/teaching/PLUGIN.md +0 -58
  110. package/payload/platform/plugins/teaching/skills/interactive-tutor/SKILL.md +0 -59
  111. package/payload/platform/plugins/teaching/skills/interactive-tutor/references/assessment.md +0 -70
  112. package/payload/platform/plugins/teaching/skills/interactive-tutor/references/classroom-conduct.md +0 -43
  113. package/payload/platform/plugins/teaching/skills/interactive-tutor/references/teaching-modes.md +0 -83
  114. package/payload/platform/plugins/teaching/skills/lesson-planner/SKILL.md +0 -48
  115. package/payload/platform/plugins/teaching/skills/lesson-planner/references/context-gathering.md +0 -41
  116. package/payload/platform/plugins/teaching/skills/lesson-planner/references/plan-structure.md +0 -94
  117. package/payload/platform/plugins/teaching/skills/study-pack-builder/SKILL.md +0 -52
  118. package/payload/platform/plugins/teaching/skills/study-pack-builder/references/disaggregation.md +0 -49
  119. package/payload/platform/plugins/teaching/skills/study-pack-builder/references/materials.md +0 -116
  120. package/payload/platform/plugins/venture-studio/.claude-plugin/plugin.json +0 -8
  121. package/payload/platform/plugins/venture-studio/PLUGIN.md +0 -119
  122. package/payload/platform/plugins/venture-studio/bin/scaffold.sh +0 -116
  123. package/payload/platform/plugins/venture-studio/skills/brand-pack/SKILL.md +0 -256
  124. package/payload/platform/plugins/venture-studio/skills/brand-pack/references/color-psychology.md +0 -118
  125. package/payload/platform/plugins/venture-studio/skills/investor-data-room/SKILL.md +0 -374
  126. package/payload/platform/plugins/venture-studio/skills/investor-data-room/references/business-plan-template.md +0 -64
  127. package/payload/platform/plugins/venture-studio/skills/investor-data-room/references/compliance-research-checklist.md +0 -53
  128. package/payload/platform/plugins/venture-studio/skills/investor-data-room/references/data-room-structure.md +0 -88
  129. package/payload/platform/plugins/venture-studio/skills/investor-data-room/references/deck-blueprint-template.md +0 -39
  130. package/payload/platform/plugins/venture-studio/skills/investor-data-room/references/design-tokens-application.md +0 -79
  131. package/payload/platform/plugins/venture-studio/skills/investor-data-room/references/html-pdf-pipeline.md +0 -236
  132. package/payload/platform/plugins/venture-studio/skills/investor-data-room/references/internal-workings-scrub.md +0 -33
  133. package/payload/platform/plugins/venture-studio/skills/investor-data-room/references/termsheet-template.md +0 -88
  134. package/payload/platform/plugins/venture-studio/skills/investor-data-room/templates/prospectus/index.html +0 -1565
  135. package/payload/platform/plugins/venture-studio/skills/investor-data-room/templates/prospectus/render-pdf.mjs +0 -91
  136. package/payload/platform/plugins/venture-studio/skills/investor-data-room/templates/prospectus/term_sheet.html +0 -715
  137. package/payload/platform/plugins/venture-studio/skills/office-hours/SKILL.md +0 -587
  138. package/payload/platform/plugins/venture-studio/skills/prototype-host/SKILL.md +0 -179
  139. package/payload/platform/plugins/venture-studio/skills/prototype-host/references/cloudflared-ingress-edit.md +0 -81
  140. package/payload/platform/plugins/venture-studio/skills/prototype-host/references/scaffold-frameworks.md +0 -60
  141. package/payload/platform/plugins/venture-studio/skills/prototype-host/references/systemd-user-service.md +0 -104
  142. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/SKILL.md +0 -336
  143. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/aarrr-metrics.md +0 -275
  144. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/assumption-testing.md +0 -93
  145. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/boolean-search.md +0 -308
  146. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/build-measure-learn.md +0 -262
  147. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/business-model-canvas.md +0 -171
  148. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/commitment-signals.md +0 -246
  149. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/design-thinking.md +0 -183
  150. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/earlyvangelist.md +0 -190
  151. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/first-principles.md +0 -58
  152. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/fishbone.md +0 -114
  153. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/five-whys.md +0 -43
  154. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/ice-scoring.md +0 -237
  155. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/innovation-accounting.md +0 -290
  156. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/jtbd.md +0 -105
  157. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/landing-page.md +0 -361
  158. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/market-type.md +0 -167
  159. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/mom-test.md +0 -193
  160. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/mvp-types.md +0 -200
  161. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/og-images.md +0 -239
  162. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/pareto.md +0 -103
  163. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/persona-development.md +0 -291
  164. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/pivot-types.md +0 -225
  165. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/positioning-statement.md +0 -179
  166. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/prd.md +0 -363
  167. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/pre-mortem.md +0 -74
  168. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/problem-validation.md +0 -253
  169. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/product-market-fit.md +0 -256
  170. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/research-synthesis.md +0 -276
  171. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/three-engines-of-growth.md +0 -248
  172. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/validation-tests.md +0 -89
  173. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/value-proposition-canvas.md +0 -121
  174. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/win-loss-analysis.md +0 -242
  175. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/workflow-mapping.md +0 -271
  176. package/payload/platform/plugins/waitlist/.claude-plugin/plugin.json +0 -17
  177. package/payload/platform/plugins/waitlist/PLUGIN.md +0 -86
  178. package/payload/platform/plugins/waitlist/mcp/dist/index.d.ts +0 -2
  179. package/payload/platform/plugins/waitlist/mcp/dist/index.d.ts.map +0 -1
  180. package/payload/platform/plugins/waitlist/mcp/dist/index.js +0 -388
  181. package/payload/platform/plugins/waitlist/mcp/dist/index.js.map +0 -1
  182. package/payload/platform/plugins/waitlist/mcp/dist/lib/admin-model.d.ts +0 -16
  183. package/payload/platform/plugins/waitlist/mcp/dist/lib/admin-model.d.ts.map +0 -1
  184. package/payload/platform/plugins/waitlist/mcp/dist/lib/admin-model.js +0 -58
  185. package/payload/platform/plugins/waitlist/mcp/dist/lib/admin-model.js.map +0 -1
  186. package/payload/platform/plugins/waitlist/mcp/dist/lib/embedding.d.ts +0 -3
  187. package/payload/platform/plugins/waitlist/mcp/dist/lib/embedding.d.ts.map +0 -1
  188. package/payload/platform/plugins/waitlist/mcp/dist/lib/embedding.js +0 -48
  189. package/payload/platform/plugins/waitlist/mcp/dist/lib/embedding.js.map +0 -1
  190. package/payload/platform/plugins/waitlist/mcp/dist/lib/neo4j.d.ts +0 -5
  191. package/payload/platform/plugins/waitlist/mcp/dist/lib/neo4j.d.ts.map +0 -1
  192. package/payload/platform/plugins/waitlist/mcp/dist/lib/neo4j.js +0 -40
  193. package/payload/platform/plugins/waitlist/mcp/dist/lib/neo4j.js.map +0 -1
  194. package/payload/platform/plugins/waitlist/mcp/dist/tools/__tests__/waitlist-persist.test.d.ts +0 -2
  195. package/payload/platform/plugins/waitlist/mcp/dist/tools/__tests__/waitlist-persist.test.d.ts.map +0 -1
  196. package/payload/platform/plugins/waitlist/mcp/dist/tools/__tests__/waitlist-persist.test.js +0 -70
  197. package/payload/platform/plugins/waitlist/mcp/dist/tools/__tests__/waitlist-persist.test.js.map +0 -1
  198. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-extract.d.ts +0 -34
  199. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-extract.d.ts.map +0 -1
  200. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-extract.js +0 -129
  201. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-extract.js.map +0 -1
  202. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-heal.d.ts +0 -27
  203. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-heal.d.ts.map +0 -1
  204. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-heal.js +0 -127
  205. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-heal.js.map +0 -1
  206. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-list.d.ts +0 -23
  207. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-list.d.ts.map +0 -1
  208. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-list.js +0 -58
  209. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-list.js.map +0 -1
  210. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-persist.d.ts +0 -83
  211. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-persist.d.ts.map +0 -1
  212. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-persist.js +0 -433
  213. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-persist.js.map +0 -1
  214. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-review.d.ts +0 -19
  215. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-review.d.ts.map +0 -1
  216. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-review.js +0 -81
  217. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-review.js.map +0 -1
  218. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-scan.d.ts +0 -28
  219. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-scan.d.ts.map +0 -1
  220. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-scan.js +0 -50
  221. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-scan.js.map +0 -1
  222. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.d.ts +0 -33
  223. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.d.ts.map +0 -1
  224. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.js +0 -297
  225. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.js.map +0 -1
  226. package/payload/platform/plugins/waitlist/mcp/package.json +0 -23
  227. package/payload/platform/plugins/waitlist/mcp/vitest.config.ts +0 -9
  228. package/payload/platform/plugins/writer-craft/.claude-plugin/plugin.json +0 -8
  229. package/payload/platform/plugins/writer-craft/PLUGIN.md +0 -88
  230. package/payload/platform/plugins/writer-craft/agents/writer-craft--manuscript-reviewer.md +0 -92
  231. package/payload/platform/plugins/writer-craft/skills/citation-style/SKILL.md +0 -94
  232. package/payload/platform/plugins/writer-craft/skills/citation-style/references/book-and-chapter-models.md +0 -77
  233. package/payload/platform/plugins/writer-craft/skills/citation-style/references/citation-rules.md +0 -103
  234. package/payload/platform/plugins/writer-craft/skills/citation-style/references/journal-article-models.md +0 -74
  235. package/payload/platform/plugins/writer-craft/skills/citation-style/references/other-source-models.md +0 -146
  236. package/payload/platform/plugins/writer-craft/skills/citation-style/references/reference-list-rules.md +0 -70
  237. package/payload/platform/plugins/writer-craft/skills/editorial-practice/SKILL.md +0 -108
  238. package/payload/platform/plugins/writer-craft/skills/editorial-practice/references/copyediting.md +0 -73
  239. package/payload/platform/plugins/writer-craft/skills/editorial-practice/references/developmental-editing.md +0 -85
  240. package/payload/platform/plugins/writer-craft/skills/editorial-practice/references/genre-specific-editing.md +0 -78
  241. package/payload/platform/plugins/writer-craft/skills/editorial-practice/references/line-editing.md +0 -55
  242. package/payload/platform/plugins/writer-craft/skills/editorial-practice/references/self-editing.md +0 -89
  243. package/payload/platform/plugins/writer-craft/skills/persuasive-storytelling/SKILL.md +0 -114
  244. package/payload/platform/plugins/writer-craft/skills/persuasive-storytelling/references/audience-analysis.md +0 -73
  245. package/payload/platform/plugins/writer-craft/skills/persuasive-storytelling/references/crafting-persuasive-story.md +0 -76
  246. package/payload/platform/plugins/writer-craft/skills/persuasive-storytelling/references/persuasion-case-studies.md +0 -67
  247. package/payload/platform/plugins/writer-craft/skills/persuasive-storytelling/references/transformation-framework.md +0 -86
  248. package/payload/platform/plugins/writer-craft/skills/point-of-view/SKILL.md +0 -97
  249. package/payload/platform/plugins/writer-craft/skills/point-of-view/references/indirect-narration.md +0 -72
  250. package/payload/platform/plugins/writer-craft/skills/point-of-view/references/pov-types-and-voice.md +0 -91
  251. package/payload/platform/plugins/writer-craft/skills/point-of-view/references/protagonist-filter.md +0 -71
  252. package/payload/platform/plugins/writer-craft/skills/point-of-view/references/tense-and-person.md +0 -85
  253. package/payload/platform/plugins/writer-craft/skills/prose-craft/SKILL.md +0 -100
  254. package/payload/platform/plugins/writer-craft/skills/prose-craft/references/punctuation-and-grammar.md +0 -72
  255. package/payload/platform/plugins/writer-craft/skills/prose-craft/references/repetition.md +0 -71
  256. package/payload/platform/plugins/writer-craft/skills/prose-craft/references/sound-and-rhythm.md +0 -64
  257. package/payload/platform/plugins/writer-craft/skills/prose-craft/references/word-economy.md +0 -93
  258. package/payload/platform/plugins/writer-craft/skills/reader-engagement/SKILL.md +0 -100
  259. package/payload/platform/plugins/writer-craft/skills/reader-engagement/references/cause-effect-setup-payoff.md +0 -79
  260. package/payload/platform/plugins/writer-craft/skills/reader-engagement/references/conflict-escalation.md +0 -81
  261. package/payload/platform/plugins/writer-craft/skills/reader-engagement/references/hooking-readers.md +0 -67
  262. package/payload/platform/plugins/writer-craft/skills/reader-engagement/references/neurochemistry-of-engagement.md +0 -94
  263. package/payload/platform/plugins/writer-craft/skills/review-manuscript/SKILL.md +0 -111
  264. package/payload/platform/plugins/writer-craft/skills/review-manuscript/references/review-manuscript-checklist.md +0 -119
  265. package/payload/platform/plugins/writer-craft/skills/review-prose/SKILL.md +0 -99
  266. package/payload/platform/plugins/writer-craft/skills/review-prose/references/prose-review-checklist.md +0 -112
  267. package/payload/platform/plugins/writer-craft/skills/review-scene/SKILL.md +0 -99
  268. package/payload/platform/plugins/writer-craft/skills/review-scene/references/scene-analysis-framework.md +0 -95
  269. package/payload/platform/plugins/writer-craft/skills/story-architecture/SKILL.md +0 -106
  270. package/payload/platform/plugins/writer-craft/skills/story-architecture/references/blueprinting-and-scene-cards.md +0 -118
  271. package/payload/platform/plugins/writer-craft/skills/story-architecture/references/inner-issue-and-protagonist-goal.md +0 -66
  272. package/payload/platform/plugins/writer-craft/skills/story-architecture/references/misbelief-desire-worldview.md +0 -87
  273. package/payload/platform/plugins/writer-craft/skills/story-architecture/references/origin-scenes-and-escalation.md +0 -82
  274. package/payload/platform/plugins/writer-craft/skills/story-blueprint/SKILL.md +0 -133
  275. package/payload/platform/plugins/writer-craft/skills/story-blueprint/references/blueprinting-exercises.md +0 -118
  276. package/payload/platform/plugins/writer-craft/skills/story-blueprint/references/blueprinting-process.md +0 -128
  277. package/payload/premium-plugins/.claude-plugin/marketplace.json +0 -23
  278. package/payload/premium-plugins/teaching/.claude-plugin/plugin.json +0 -8
  279. package/payload/premium-plugins/teaching/PLUGIN.md +0 -58
  280. package/payload/premium-plugins/teaching/skills/interactive-tutor/SKILL.md +0 -59
  281. package/payload/premium-plugins/teaching/skills/interactive-tutor/references/assessment.md +0 -70
  282. package/payload/premium-plugins/teaching/skills/interactive-tutor/references/classroom-conduct.md +0 -43
  283. package/payload/premium-plugins/teaching/skills/interactive-tutor/references/teaching-modes.md +0 -83
  284. package/payload/premium-plugins/teaching/skills/lesson-planner/SKILL.md +0 -48
  285. package/payload/premium-plugins/teaching/skills/lesson-planner/references/context-gathering.md +0 -41
  286. package/payload/premium-plugins/teaching/skills/lesson-planner/references/plan-structure.md +0 -94
  287. package/payload/premium-plugins/teaching/skills/study-pack-builder/SKILL.md +0 -52
  288. package/payload/premium-plugins/teaching/skills/study-pack-builder/references/disaggregation.md +0 -49
  289. package/payload/premium-plugins/teaching/skills/study-pack-builder/references/materials.md +0 -116
  290. package/payload/premium-plugins/venture-studio/.claude-plugin/plugin.json +0 -8
  291. package/payload/premium-plugins/venture-studio/PLUGIN.md +0 -119
  292. package/payload/premium-plugins/venture-studio/bin/scaffold.sh +0 -116
  293. package/payload/premium-plugins/venture-studio/skills/brand-pack/SKILL.md +0 -256
  294. package/payload/premium-plugins/venture-studio/skills/brand-pack/references/color-psychology.md +0 -118
  295. package/payload/premium-plugins/venture-studio/skills/investor-data-room/SKILL.md +0 -374
  296. package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/business-plan-template.md +0 -64
  297. package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/compliance-research-checklist.md +0 -53
  298. package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/data-room-structure.md +0 -88
  299. package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/deck-blueprint-template.md +0 -39
  300. package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/design-tokens-application.md +0 -79
  301. package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/html-pdf-pipeline.md +0 -236
  302. package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/internal-workings-scrub.md +0 -33
  303. package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/termsheet-template.md +0 -88
  304. package/payload/premium-plugins/venture-studio/skills/investor-data-room/templates/prospectus/index.html +0 -1565
  305. package/payload/premium-plugins/venture-studio/skills/investor-data-room/templates/prospectus/render-pdf.mjs +0 -91
  306. package/payload/premium-plugins/venture-studio/skills/investor-data-room/templates/prospectus/term_sheet.html +0 -715
  307. package/payload/premium-plugins/venture-studio/skills/office-hours/SKILL.md +0 -587
  308. package/payload/premium-plugins/venture-studio/skills/prototype-host/SKILL.md +0 -179
  309. package/payload/premium-plugins/venture-studio/skills/prototype-host/references/cloudflared-ingress-edit.md +0 -81
  310. package/payload/premium-plugins/venture-studio/skills/prototype-host/references/scaffold-frameworks.md +0 -60
  311. package/payload/premium-plugins/venture-studio/skills/prototype-host/references/systemd-user-service.md +0 -104
  312. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/SKILL.md +0 -336
  313. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/aarrr-metrics.md +0 -275
  314. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/assumption-testing.md +0 -93
  315. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/boolean-search.md +0 -308
  316. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/build-measure-learn.md +0 -262
  317. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/business-model-canvas.md +0 -171
  318. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/commitment-signals.md +0 -246
  319. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/design-thinking.md +0 -183
  320. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/earlyvangelist.md +0 -190
  321. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/first-principles.md +0 -58
  322. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/fishbone.md +0 -114
  323. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/five-whys.md +0 -43
  324. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/ice-scoring.md +0 -237
  325. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/innovation-accounting.md +0 -290
  326. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/jtbd.md +0 -105
  327. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/landing-page.md +0 -361
  328. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/market-type.md +0 -167
  329. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/mom-test.md +0 -193
  330. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/mvp-types.md +0 -200
  331. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/og-images.md +0 -239
  332. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/pareto.md +0 -103
  333. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/persona-development.md +0 -291
  334. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/pivot-types.md +0 -225
  335. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/positioning-statement.md +0 -179
  336. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/prd.md +0 -363
  337. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/pre-mortem.md +0 -74
  338. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/problem-validation.md +0 -253
  339. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/product-market-fit.md +0 -256
  340. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/research-synthesis.md +0 -276
  341. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/three-engines-of-growth.md +0 -248
  342. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/validation-tests.md +0 -89
  343. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/value-proposition-canvas.md +0 -121
  344. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/win-loss-analysis.md +0 -242
  345. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/workflow-mapping.md +0 -271
  346. package/payload/premium-plugins/writer-craft/.claude-plugin/plugin.json +0 -8
  347. package/payload/premium-plugins/writer-craft/PLUGIN.md +0 -88
  348. package/payload/premium-plugins/writer-craft/agents/writer-craft--manuscript-reviewer.md +0 -92
  349. package/payload/premium-plugins/writer-craft/skills/citation-style/SKILL.md +0 -94
  350. package/payload/premium-plugins/writer-craft/skills/citation-style/references/book-and-chapter-models.md +0 -77
  351. package/payload/premium-plugins/writer-craft/skills/citation-style/references/citation-rules.md +0 -103
  352. package/payload/premium-plugins/writer-craft/skills/citation-style/references/journal-article-models.md +0 -74
  353. package/payload/premium-plugins/writer-craft/skills/citation-style/references/other-source-models.md +0 -146
  354. package/payload/premium-plugins/writer-craft/skills/citation-style/references/reference-list-rules.md +0 -70
  355. package/payload/premium-plugins/writer-craft/skills/editorial-practice/SKILL.md +0 -108
  356. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/copyediting.md +0 -73
  357. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/developmental-editing.md +0 -85
  358. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/genre-specific-editing.md +0 -78
  359. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/line-editing.md +0 -55
  360. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/self-editing.md +0 -89
  361. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/SKILL.md +0 -114
  362. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/audience-analysis.md +0 -73
  363. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/crafting-persuasive-story.md +0 -76
  364. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/persuasion-case-studies.md +0 -67
  365. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/transformation-framework.md +0 -86
  366. package/payload/premium-plugins/writer-craft/skills/point-of-view/SKILL.md +0 -97
  367. package/payload/premium-plugins/writer-craft/skills/point-of-view/references/indirect-narration.md +0 -72
  368. package/payload/premium-plugins/writer-craft/skills/point-of-view/references/pov-types-and-voice.md +0 -91
  369. package/payload/premium-plugins/writer-craft/skills/point-of-view/references/protagonist-filter.md +0 -71
  370. package/payload/premium-plugins/writer-craft/skills/point-of-view/references/tense-and-person.md +0 -85
  371. package/payload/premium-plugins/writer-craft/skills/prose-craft/SKILL.md +0 -100
  372. package/payload/premium-plugins/writer-craft/skills/prose-craft/references/punctuation-and-grammar.md +0 -72
  373. package/payload/premium-plugins/writer-craft/skills/prose-craft/references/repetition.md +0 -71
  374. package/payload/premium-plugins/writer-craft/skills/prose-craft/references/sound-and-rhythm.md +0 -64
  375. package/payload/premium-plugins/writer-craft/skills/prose-craft/references/word-economy.md +0 -93
  376. package/payload/premium-plugins/writer-craft/skills/reader-engagement/SKILL.md +0 -100
  377. package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/cause-effect-setup-payoff.md +0 -79
  378. package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/conflict-escalation.md +0 -81
  379. package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/hooking-readers.md +0 -67
  380. package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/neurochemistry-of-engagement.md +0 -94
  381. package/payload/premium-plugins/writer-craft/skills/review-manuscript/SKILL.md +0 -111
  382. package/payload/premium-plugins/writer-craft/skills/review-manuscript/references/review-manuscript-checklist.md +0 -119
  383. package/payload/premium-plugins/writer-craft/skills/review-prose/SKILL.md +0 -99
  384. package/payload/premium-plugins/writer-craft/skills/review-prose/references/prose-review-checklist.md +0 -112
  385. package/payload/premium-plugins/writer-craft/skills/review-scene/SKILL.md +0 -99
  386. package/payload/premium-plugins/writer-craft/skills/review-scene/references/scene-analysis-framework.md +0 -95
  387. package/payload/premium-plugins/writer-craft/skills/story-architecture/SKILL.md +0 -106
  388. package/payload/premium-plugins/writer-craft/skills/story-architecture/references/blueprinting-and-scene-cards.md +0 -118
  389. package/payload/premium-plugins/writer-craft/skills/story-architecture/references/inner-issue-and-protagonist-goal.md +0 -66
  390. package/payload/premium-plugins/writer-craft/skills/story-architecture/references/misbelief-desire-worldview.md +0 -87
  391. package/payload/premium-plugins/writer-craft/skills/story-architecture/references/origin-scenes-and-escalation.md +0 -82
  392. package/payload/premium-plugins/writer-craft/skills/story-blueprint/SKILL.md +0 -133
  393. package/payload/premium-plugins/writer-craft/skills/story-blueprint/references/blueprinting-exercises.md +0 -118
  394. package/payload/premium-plugins/writer-craft/skills/story-blueprint/references/blueprinting-process.md +0 -128
  395. package/payload/server/public/assets/channel-CrSx5mnG.js +0 -1
  396. package/payload/server/public/assets/classDiagram-6PBFFD2Q-C3IDJsqN.js +0 -1
  397. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-BOIrJ5Zb.js +0 -1
  398. package/payload/server/public/assets/clone-P8Fkz7JD.js +0 -1
  399. package/payload/server/public/assets/data-DRfwJPja.js +0 -1
  400. package/payload/server/public/assets/graph-B4FFYwus.js +0 -1
  401. package/payload/server/public/assets/graph-labels-Cpk9Ktt0.js +0 -1
  402. package/payload/server/public/assets/lib--yuBd0Xi.js +0 -33
  403. 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"}