@rubytech/create-realagent-code 0.1.114 → 0.1.116

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