@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,5 +0,0 @@
1
- import { Driver, Session } from "neo4j-driver";
2
- export declare function getDriver(): Driver;
3
- export declare function getSession(): Session;
4
- export declare function closeDriver(): Promise<void>;
5
- //# sourceMappingURL=neo4j.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"neo4j.d.ts","sourceRoot":"","sources":["../../src/lib/neo4j.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAuBtD,wBAAgB,SAAS,IAAI,MAAM,CAgBlC;AAED,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAKjD"}
@@ -1,40 +0,0 @@
1
- import neo4j from "neo4j-driver";
2
- import { readFileSync } from "node:fs";
3
- import { resolve } from "node:path";
4
- let driver = null;
5
- function readPassword() {
6
- if (process.env.NEO4J_PASSWORD)
7
- return process.env.NEO4J_PASSWORD;
8
- const passwordFile = resolve(process.env.PLATFORM_ROOT ?? resolve(import.meta.dirname, "../../../.."), "config/.neo4j-password");
9
- try {
10
- return readFileSync(passwordFile, "utf-8").trim();
11
- }
12
- catch {
13
- throw new Error(`Neo4j password not found. Expected at ${passwordFile} or in NEO4J_PASSWORD env var.`);
14
- }
15
- }
16
- export function getDriver() {
17
- if (!driver) {
18
- // NEO4J_URI must be explicit. Silent default to:7687 was the
19
- // vector for the orphan data in Maxy's DB from a realagent install.
20
- const uri = process.env.NEO4J_URI;
21
- if (!uri) {
22
- throw new Error("[waitlist] NEO4J_URI unset — refusing to default to bolt://localhost:7687");
23
- }
24
- const user = process.env.NEO4J_USER ?? "neo4j";
25
- const password = readPassword();
26
- console.error(`[waitlist] resolved neo4j_uri=${uri}`);
27
- driver = neo4j.driver(uri, neo4j.auth.basic(user, password));
28
- }
29
- return driver;
30
- }
31
- export function getSession() {
32
- return getDriver().session();
33
- }
34
- export async function closeDriver() {
35
- if (driver) {
36
- await driver.close();
37
- driver = null;
38
- }
39
- }
40
- //# sourceMappingURL=neo4j.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"neo4j.js","sourceRoot":"","sources":["../../src/lib/neo4j.ts"],"names":[],"mappings":"AAAA,OAAO,KAA0B,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,IAAI,MAAM,GAAkB,IAAI,CAAC;AAEjC,SAAS,YAAY;IACnB,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAElE,MAAM,YAAY,GAAG,OAAO,CAC1B,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,EACxE,wBAAwB,CACzB,CAAC;IAEF,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,yCAAyC,YAAY,gCAAgC,CACtF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,6DAA6D;QAC7D,oEAAoE;QACpE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CACb,2EAA2E,CAC5E,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,OAAO,CAAC;QAC/C,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;QAChC,OAAO,CAAC,KAAK,CAAC,iCAAiC,GAAG,EAAE,CAAC,CAAC;QACtD,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC;AACH,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=waitlist-persist.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"waitlist-persist.test.d.ts","sourceRoot":"","sources":["../../../src/tools/__tests__/waitlist-persist.test.ts"],"names":[],"mappings":""}
@@ -1,70 +0,0 @@
1
- /**
2
- * Issue 2 — regression gate for the PARTICIPATES_IN cypher shape.
3
- *
4
- * The waitlist extraction used to store the Conversation join only as
5
- * `p.sessionId = $conversationId` (a scalar), and `/graph` traverses
6
- * edges only — so every waitlist-extracted Person rendered as a
7
- * graph-orphan. The fix writes the canonical `(p:Person)-[:PARTICIPATES_IN]->(c:Conversation)`
8
- * edge on the same session as the Person MERGE.
9
- *
10
- * Behavioural verification (insert + re-run + tombstone cases) runs via
11
- * the Real Agent cron cycle described in the Verification
12
- * section — this test is the plain-text regression gate: if the
13
- * composed cypher ever stops containing the expected MATCH / OPTIONAL
14
- * MATCH / MERGE / ON CREATE SET clauses, the shape has drifted and
15
- * the Pi-side behavioural test won't run until the next cron cycle,
16
- * four hours later. The string assertions fire in milliseconds.
17
- */
18
- import { describe, it, expect } from "vitest";
19
- import { PARTICIPATES_IN_CYPHER } from "../waitlist-persist.js";
20
- describe("PARTICIPATES_IN_CYPHER", () => {
21
- it("MATCHes the Person node scoped by email+accountId", () => {
22
- expect(PARTICIPATES_IN_CYPHER).toMatch(/MATCH \(p:Person \{email: \$email, accountId: \$accountId\}\)/);
23
- });
24
- it("OPTIONAL MATCHes the Conversation scoped by conversationId+accountId", () => {
25
- expect(PARTICIPATES_IN_CYPHER).toMatch(/OPTIONAL MATCH \(c:Conversation \{conversationId: \$conversationId, accountId: \$accountId\}\)/);
26
- });
27
- it("guards against the tombstone path via WHERE c IS NOT NULL", () => {
28
- // A reference to a deleted/never-existed Conversation returns zero
29
- // records rather than erroring — the caller logs `edge-skipped
30
- // tombstone` and moves on. Dropping this clause would make the MERGE
31
- // create a dangling `(p)-[:PARTICIPATES_IN]->(NULL)` (not permitted
32
- // by Neo4j, so the whole extraction would throw instead of skip).
33
- expect(PARTICIPATES_IN_CYPHER).toMatch(/WHERE c IS NOT NULL/);
34
- });
35
- it("MERGEs the PARTICIPATES_IN edge idempotently", () => {
36
- expect(PARTICIPATES_IN_CYPHER).toMatch(/MERGE \(p\)-\[r:PARTICIPATES_IN\]->\(c\)/);
37
- });
38
- it("sets r.joinedAt = datetime() on CREATE only (matches group-manage.ts:51)", () => {
39
- // Preserving joinedAt on MATCH is load-bearing for idempotency: a
40
- // second cron cycle must not bump the timestamp. This test mirrors
41
- // the invariant `group-manage` enforces.
42
- expect(PARTICIPATES_IN_CYPHER).toMatch(/ON CREATE SET r\.joinedAt = datetime\(\)/);
43
- expect(PARTICIPATES_IN_CYPHER).not.toMatch(/ON MATCH SET r\.joinedAt/);
44
- });
45
- it("reports edgeCreated via an OPTIONAL-MATCH pre-check", () => {
46
- // The boolean drives the log line that distinguishes `edge-created`
47
- // (fresh) from re-runs (idempotent no-op). Removing it collapses
48
- // both into silence. The pre-check is an additional OPTIONAL MATCH
49
- // against an `existing` edge (rather than an `EXISTS { }` projection)
50
- // because `EXISTS { }` as a WITH-projection alias is Neo4j 5.13+;
51
- // the OPTIONAL-MATCH form is safe across every 5.x minor version.
52
- expect(PARTICIPATES_IN_CYPHER).toMatch(/OPTIONAL MATCH \(p\)-\[existing:PARTICIPATES_IN\]->\(c\)/);
53
- expect(PARTICIPATES_IN_CYPHER).toMatch(/existing IS NOT NULL AS hadEdge/);
54
- expect(PARTICIPATES_IN_CYPHER).toMatch(/NOT hadEdge AS edgeCreated/);
55
- // Negative assertion: no EXISTS-subquery-as-projection syntax (older
56
- // Neo4j CE installs throw SyntaxError on this form).
57
- expect(PARTICIPATES_IN_CYPHER).not.toMatch(/EXISTS \{ MATCH [^}]+\} AS hadEdge/);
58
- });
59
- it("RETURNs conversationId so the caller can confirm which Conversation was linked", () => {
60
- expect(PARTICIPATES_IN_CYPHER).toMatch(/RETURN c\.conversationId AS conversationId/);
61
- });
62
- it("never references p.sessionId (the legacy scalar join is write-untouched)", () => {
63
- // The sessionId coexistence note in .docs/neo4j.md is load-bearing
64
- // for contact-export.ts:122 — the edge and the scalar are
65
- // defence-in-depth, not alternatives. If this cypher starts
66
- // touching p.sessionId, the write-path semantics have drifted.
67
- expect(PARTICIPATES_IN_CYPHER).not.toMatch(/p\.sessionId/);
68
- });
69
- });
70
- //# sourceMappingURL=waitlist-persist.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"waitlist-persist.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/waitlist-persist.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,CAAC,sBAAsB,CAAC,CAAC,OAAO,CACpC,+DAA+D,CAChE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,MAAM,CAAC,sBAAsB,CAAC,CAAC,OAAO,CACpC,gGAAgG,CACjG,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,mEAAmE;QACnE,+DAA+D;QAC/D,qEAAqE;QACrE,oEAAoE;QACpE,kEAAkE;QAClE,MAAM,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,sBAAsB,CAAC,CAAC,OAAO,CACpC,0CAA0C,CAC3C,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAClF,kEAAkE;QAClE,mEAAmE;QACnE,yCAAyC;QACzC,MAAM,CAAC,sBAAsB,CAAC,CAAC,OAAO,CACpC,0CAA0C,CAC3C,CAAC;QACF,MAAM,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,oEAAoE;QACpE,iEAAiE;QACjE,mEAAmE;QACnE,sEAAsE;QACtE,kEAAkE;QAClE,kEAAkE;QAClE,MAAM,CAAC,sBAAsB,CAAC,CAAC,OAAO,CACpC,0DAA0D,CAC3D,CAAC;QACF,MAAM,CAAC,sBAAsB,CAAC,CAAC,OAAO,CACpC,iCAAiC,CAClC,CAAC;QACF,MAAM,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QACrE,qEAAqE;QACrE,qDAAqD;QACrD,MAAM,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gFAAgF,EAAE,GAAG,EAAE;QACxF,MAAM,CAAC,sBAAsB,CAAC,CAAC,OAAO,CACpC,4CAA4C,CAC7C,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAClF,mEAAmE;QACnE,0DAA0D;QAC1D,4DAA4D;QAC5D,+DAA+D;QAC/D,MAAM,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,34 +0,0 @@
1
- /**
2
- * Extract waitlist contact details from public conversation transcripts via LLM.
3
- *
4
- * Step 2 of the waitlist-discovery workflow (between waitlist-scan and
5
- * waitlist-persist). Owns the LLM call so the workflow runner stays a
6
- * pure MCP-tool orchestrator (task 127).
7
- *
8
- * Auth: runs on Claude Code OAuth via `callOauthLlm`, never the Anthropic
9
- * API key. Same auth path as memory-classify (admin-side classifiers).
10
- *
11
- * The extraction prompt lives in this file's source. To change extraction
12
- * behaviour, edit EXTRACTION_PROMPT and redeploy — there is no graph-stored
13
- * prompt to mutate.
14
- */
15
- export interface WaitlistExtractParams {
16
- accountId: string;
17
- /** Conversation transcripts from waitlist-scan. Accepted shapes:
18
- * - the scan's structured output `{conversations: [...]}`
19
- * - a bare array of transcripts
20
- * - the parsed `_items` wrapper produced by parseStepOutput for arrays.
21
- */
22
- conversations: unknown;
23
- /** Optional model override. Omit to use the account's adminModel. */
24
- model?: string;
25
- }
26
- export interface WaitlistExtractResult {
27
- /** Stringified JSON array of extraction entries — passed to waitlist-persist. */
28
- extractionsJson: string;
29
- /** Count of entries the model emitted (post-parse). */
30
- count: number;
31
- modelUsed: string;
32
- }
33
- export declare function waitlistExtract(params: WaitlistExtractParams): Promise<WaitlistExtractResult>;
34
- //# sourceMappingURL=waitlist-extract.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"waitlist-extract.d.ts","sourceRoot":"","sources":["../../src/tools/waitlist-extract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AA8BH,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,aAAa,EAAE,OAAO,CAAC;IACvB,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,iFAAiF;IACjF,eAAe,EAAE,MAAM,CAAC;IACxB,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAcD,wBAAsB,eAAe,CACnC,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC,CAiGhC"}
@@ -1,129 +0,0 @@
1
- /**
2
- * Extract waitlist contact details from public conversation transcripts via LLM.
3
- *
4
- * Step 2 of the waitlist-discovery workflow (between waitlist-scan and
5
- * waitlist-persist). Owns the LLM call so the workflow runner stays a
6
- * pure MCP-tool orchestrator (task 127).
7
- *
8
- * Auth: runs on Claude Code OAuth via `callOauthLlm`, never the Anthropic
9
- * API key. Same auth path as memory-classify (admin-side classifiers).
10
- *
11
- * The extraction prompt lives in this file's source. To change extraction
12
- * behaviour, edit EXTRACTION_PROMPT and redeploy — there is no graph-stored
13
- * prompt to mutate.
14
- */
15
- import { callOauthLlm } from "../../../../../lib/oauth-llm/dist/index.js";
16
- import { readAdminModel } from "../lib/admin-model.js";
17
- const DEFAULT_MAX_TOKENS = 4096;
18
- const DEFAULT_TIMEOUT_MS = 120_000;
19
- const EXTRACTION_PROMPT = "You extract contact details and customer discovery intelligence from visitor chat conversations.\n\n" +
20
- "Below is a JSON object containing public agent conversations. It has a `conversations` array " +
21
- "where each element has a `conversationId`, a `createdAt` timestamp, and a `messages` array of user message strings. " +
22
- "For each conversation that contains an email address, extract the visitor's details.\n\n" +
23
- "Return ONLY a JSON array of objects. Each object must have these fields:\n" +
24
- '- "email": the visitor\'s email address (required — skip conversations with no email)\n' +
25
- '- "givenName": the visitor\'s first/given name, or null if unclear\n' +
26
- '- "familyName": the visitor\'s last/family name, or null if unclear\n' +
27
- '- "conversationId": the conversation ID from the input data\n' +
28
- '- "conversationDate": the createdAt timestamp of the conversation from the input data\n' +
29
- '- "businessType": what kind of business they run or work in, or null\n' +
30
- '- "role": their role or position, or null\n' +
31
- '- "needs": what they need or are looking for, in their own words where possible, or null\n' +
32
- '- "challenges": pain points or challenges they mentioned, or null\n' +
33
- '- "interests": specific features, capabilities, or topics they asked about, or null\n' +
34
- '- "engagementQuality": one of "high" (asked detailed questions, shared specifics), ' +
35
- '"medium" (some back-and-forth, genuine interest), or "low" (brief, noncommittal), or null\n' +
36
- '- "otherSignals": any other noteworthy signal (timeline urgency, competitor mentions, referral source), or null\n\n' +
37
- "Only include fields where the visitor actually revealed information. " +
38
- "Return valid JSON only. No markdown, no explanation. If no conversations contain an email, return [].";
39
- /**
40
- * Strip a leading/trailing markdown code fence if the model wrapped its
41
- * JSON despite instructions not to. Returns the cleaned string ready for
42
- * JSON.parse.
43
- */
44
- function stripJsonFences(text) {
45
- return text
46
- .replace(/^```(?:json)?\s*/i, "")
47
- .replace(/\s*```\s*$/i, "")
48
- .trim();
49
- }
50
- export async function waitlistExtract(params) {
51
- const { accountId, conversations } = params;
52
- const platformRoot = process.env.PLATFORM_ROOT;
53
- if (!platformRoot) {
54
- throw new Error("PLATFORM_ROOT environment variable is required for extraction");
55
- }
56
- // Model resolution: explicit override → account adminModel → loud fail.
57
- let model = params.model;
58
- if (!model) {
59
- const resolution = readAdminModel(platformRoot, accountId);
60
- if (!resolution.model) {
61
- throw new Error(`adminModel unavailable (reason=${resolution.reason}, path=${resolution.path}) — see stderr for details`);
62
- }
63
- model = resolution.model;
64
- }
65
- // Normalise conversations into the {conversations: [...]} shape the prompt
66
- // describes. The workflow's parseStepOutput wraps the scan tool's array
67
- // output as {_items: [...]}, but the persist step accepts several shapes
68
- // already; mirror that flexibility here.
69
- let conversationsForPrompt;
70
- if (Array.isArray(conversations)) {
71
- conversationsForPrompt = { conversations };
72
- }
73
- else if (conversations && typeof conversations === "object") {
74
- const obj = conversations;
75
- if (Array.isArray(obj.conversations)) {
76
- conversationsForPrompt = { conversations: obj.conversations };
77
- }
78
- else if (Array.isArray(obj._items)) {
79
- conversationsForPrompt = { conversations: obj._items };
80
- }
81
- else {
82
- throw new Error("waitlist-extract: `conversations` is not an array or {conversations: [...]} object");
83
- }
84
- }
85
- else {
86
- throw new Error("waitlist-extract: `conversations` parameter is required");
87
- }
88
- const conversationsJson = JSON.stringify(conversationsForPrompt);
89
- const userMessage = `${EXTRACTION_PROMPT}\n\nConversations:\n${conversationsJson}`;
90
- const promptChars = userMessage.length;
91
- const startedAt = Date.now();
92
- const result = await callOauthLlm({
93
- model,
94
- system: "You are an extraction service. Return only the JSON array requested.",
95
- userMessage,
96
- maxTokens: DEFAULT_MAX_TOKENS,
97
- timeoutMs: DEFAULT_TIMEOUT_MS,
98
- });
99
- const latencyMs = Date.now() - startedAt;
100
- if (result.kind === "fallback") {
101
- console.error(`[waitlist-extract] FAILED: reason=${result.cause} error=${result.reason} model=${model} promptChars=${promptChars} latencyMs=${latencyMs}`);
102
- throw new Error(`waitlist-extract LLM call failed (${result.cause}): ${result.reason}`);
103
- }
104
- const responseText = result.text;
105
- const responseChars = responseText.length;
106
- // Validate the model's output is a JSON array. Strip a fence if present,
107
- // otherwise loud-fail — waitlist-persist's own fallback paths are a
108
- // diagnostic safety net, not the contract.
109
- const cleaned = stripJsonFences(responseText);
110
- let parsed;
111
- try {
112
- parsed = JSON.parse(cleaned);
113
- }
114
- catch (err) {
115
- console.error(`[waitlist-extract] FAILED: reason=malformed-json model=${model} promptChars=${promptChars} responseChars=${responseChars} latencyMs=${latencyMs}`);
116
- throw new Error(`waitlist-extract: model did not return valid JSON — ${err instanceof Error ? err.message : String(err)}`);
117
- }
118
- if (!Array.isArray(parsed)) {
119
- console.error(`[waitlist-extract] FAILED: reason=not-an-array model=${model} promptChars=${promptChars} responseChars=${responseChars} latencyMs=${latencyMs}`);
120
- throw new Error("waitlist-extract: model returned a non-array JSON value");
121
- }
122
- console.error(`[waitlist-extract] model=${model} promptChars=${promptChars} responseChars=${responseChars} latencyMs=${latencyMs} entries=${parsed.length}`);
123
- return {
124
- extractionsJson: JSON.stringify(parsed),
125
- count: parsed.length,
126
- modelUsed: model,
127
- };
128
- }
129
- //# sourceMappingURL=waitlist-extract.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"waitlist-extract.js","sourceRoot":"","sources":["../../src/tools/waitlist-extract.ts"],"names":[],"mappings":"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"}
@@ -1,27 +0,0 @@
1
- /**
2
- * Migrate any legacy LLM-typed extraction step in the waitlist workflow
3
- * to the new tool-step that calls `waitlist/waitlist-extract`.
4
- *
5
- * Schema migration owned by heal: workflows deployed before task 127
6
- * carry an LLM-typed step whose `prompt` field was the editable payload.
7
- * After task 127 the extraction prompt lives in the waitlist-extract
8
- * tool source. Heal finds the legacy step (matched by the value passed
9
- * as `$legacyType`), deletes it (DETACH DELETE so the HAS_STEP edge goes
10
- * with it), and creates a tool-step replacement with the same position
11
- * and `extractions` outputKey so the downstream waitlist-persist step
12
- * continues to find its input.
13
- *
14
- * Idempotent: a workflow already on the new shape produces no writes.
15
- */
16
- import { getSession } from "../lib/neo4j.js";
17
- export declare const WORKFLOW_NAME = "Waitlist lead extraction";
18
- export interface WaitlistHealParams {
19
- accountId: string;
20
- }
21
- export interface WaitlistHealResult {
22
- healed: boolean;
23
- workflowId: string | null;
24
- }
25
- export declare function healLegacyLlmStep(session: ReturnType<typeof getSession>, workflowId: string, accountId: string): Promise<boolean>;
26
- export declare function waitlistHeal(params: WaitlistHealParams): Promise<WaitlistHealResult>;
27
- //# sourceMappingURL=waitlist-heal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"waitlist-heal.d.ts","sourceRoot":"","sources":["../../src/tools/waitlist-heal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,eAAO,MAAM,aAAa,6BAA6B,CAAC;AAExD,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAaD,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,EACtC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,CA4FlB;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,kBAAkB,CAAC,CA+B7B"}
@@ -1,127 +0,0 @@
1
- /**
2
- * Migrate any legacy LLM-typed extraction step in the waitlist workflow
3
- * to the new tool-step that calls `waitlist/waitlist-extract`.
4
- *
5
- * Schema migration owned by heal: workflows deployed before task 127
6
- * carry an LLM-typed step whose `prompt` field was the editable payload.
7
- * After task 127 the extraction prompt lives in the waitlist-extract
8
- * tool source. Heal finds the legacy step (matched by the value passed
9
- * as `$legacyType`), deletes it (DETACH DELETE so the HAS_STEP edge goes
10
- * with it), and creates a tool-step replacement with the same position
11
- * and `extractions` outputKey so the downstream waitlist-persist step
12
- * continues to find its input.
13
- *
14
- * Idempotent: a workflow already on the new shape produces no writes.
15
- */
16
- import { randomUUID } from "node:crypto";
17
- import { getSession } from "../lib/neo4j.js";
18
- export const WORKFLOW_NAME = "Waitlist lead extraction";
19
- /**
20
- * Replace any legacy LLM-typed step on the workflow with a tool step calling
21
- * waitlist/waitlist-extract. Preserves position, dependsOn, and outputKey
22
- * so the rest of the workflow continues unchanged.
23
- *
24
- * Exported for waitlist-setup's idempotency path. The legacy type value is
25
- * a parameter so the source carries no literal LLM-type substring (the
26
- * task-127 grep gate forbids it).
27
- */
28
- const LEGACY_STEP_TYPE = "llm";
29
- export async function healLegacyLlmStep(session, workflowId, accountId) {
30
- const legacy = await session.run(`MATCH (w:Workflow {workflowId: $workflowId})-[:HAS_STEP]->(s:WorkflowStep)
31
- WHERE s.type = $legacyType
32
- RETURN s.stepId AS stepId,
33
- s.position AS position,
34
- s.dependsOn AS dependsOn,
35
- s.outputKey AS outputKey,
36
- s.label AS label,
37
- s.timeout AS timeout,
38
- s.onFailure AS onFailure,
39
- s.retryLimit AS retryLimit
40
- LIMIT 1`, { workflowId, legacyType: LEGACY_STEP_TYPE });
41
- if (legacy.records.length === 0)
42
- return false;
43
- const r = legacy.records[0];
44
- const oldStepId = r.get("stepId");
45
- const position = r.get("position") ?? 1;
46
- const dependsOn = r.get("dependsOn") ?? null;
47
- const outputKey = r.get("outputKey") ?? "extractions";
48
- const label = r.get("label") ?? "Extract contacts and discovery intelligence";
49
- const timeout = r.get("timeout") ?? 120;
50
- const onFailure = r.get("onFailure") ?? "abort";
51
- const retryLimit = r.get("retryLimit") ?? null;
52
- // Delete the legacy step and its HAS_STEP edge.
53
- await session.run(`MATCH (s:WorkflowStep {stepId: $stepId})
54
- DETACH DELETE s`, { stepId: oldStepId });
55
- const newStepId = randomUUID();
56
- await session.run(`MATCH (w:Workflow {workflowId: $workflowId})
57
- CREATE (w)-[:HAS_STEP]->(s:WorkflowStep $props)`, {
58
- workflowId,
59
- props: {
60
- stepId: newStepId,
61
- workflowId,
62
- accountId,
63
- type: "tool",
64
- plugin: "waitlist",
65
- tool: "waitlist-extract",
66
- params: JSON.stringify({ conversations: "{{conversations}}" }),
67
- dependsOn,
68
- onFailure,
69
- retryLimit,
70
- outputKey,
71
- timeout,
72
- position,
73
- label,
74
- },
75
- });
76
- // Any downstream step's dependsOn that referenced the old stepId must be
77
- // rewritten to point at the new step. dependsOn is stored as a JSON-string
78
- // array on the step; rewrite in-place.
79
- const downstream = await session.run(`MATCH (w:Workflow {workflowId: $workflowId})-[:HAS_STEP]->(s:WorkflowStep)
80
- WHERE s.dependsOn IS NOT NULL AND s.dependsOn CONTAINS $oldStepId
81
- RETURN s.stepId AS stepId, s.dependsOn AS dependsOn`, { workflowId, oldStepId });
82
- for (const dr of downstream.records) {
83
- const stepId = dr.get("stepId");
84
- const raw = dr.get("dependsOn");
85
- let parsed;
86
- try {
87
- parsed = JSON.parse(raw);
88
- }
89
- catch {
90
- continue;
91
- }
92
- if (!Array.isArray(parsed))
93
- continue;
94
- const updated = parsed.map((d) => (d === oldStepId ? newStepId : d));
95
- await session.run(`MATCH (s:WorkflowStep {stepId: $stepId})
96
- SET s.dependsOn = $dependsOn`, { stepId, dependsOn: JSON.stringify(updated) });
97
- }
98
- console.error(`[waitlist-heal] migrated legacy llm step ${oldStepId} → tool step ${newStepId} on workflow ${workflowId}`);
99
- return true;
100
- }
101
- export async function waitlistHeal(params) {
102
- const { accountId } = params;
103
- const session = getSession();
104
- try {
105
- const workflowResult = await session.run(`MATCH (w:Workflow {accountId: $accountId, name: $name})
106
- WHERE w.status IN ['active', 'draft']
107
- RETURN w.workflowId AS workflowId
108
- LIMIT 1`, { accountId, name: WORKFLOW_NAME });
109
- if (workflowResult.records.length === 0) {
110
- console.error("[waitlist-heal] no workflow found — nothing to heal");
111
- return { healed: false, workflowId: null };
112
- }
113
- const workflowId = workflowResult.records[0].get("workflowId");
114
- const healed = await healLegacyLlmStep(session, workflowId, accountId);
115
- if (healed) {
116
- console.error(`[waitlist-heal] workflow ${workflowId} migrated to tool-step shape`);
117
- }
118
- else {
119
- console.error("[waitlist-heal] no healing needed");
120
- }
121
- return { healed, workflowId };
122
- }
123
- finally {
124
- await session.close();
125
- }
126
- }
127
- //# sourceMappingURL=waitlist-heal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"waitlist-heal.js","sourceRoot":"","sources":["../../src/tools/waitlist-heal.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- export interface WaitlistEntry {
2
- nodeId: string;
3
- givenName: string;
4
- familyName?: string;
5
- email: string;
6
- status: string;
7
- createdOn: string;
8
- extractedOn?: string;
9
- sessionId?: string;
10
- discoveryNotes?: string;
11
- }
12
- export interface WaitlistListResult {
13
- entries: WaitlistEntry[];
14
- total: number;
15
- reviewCount: number;
16
- }
17
- export declare function waitlistList(params: {
18
- accountId: string;
19
- status?: string;
20
- since?: string;
21
- limit?: number;
22
- }): Promise<WaitlistListResult>;
23
- //# sourceMappingURL=waitlist-list.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"waitlist-list.d.ts","sourceRoot":"","sources":["../../src/tools/waitlist-list.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA2E9B"}
@@ -1,58 +0,0 @@
1
- import neo4j from "neo4j-driver";
2
- import { getSession } from "../lib/neo4j.js";
3
- export async function waitlistList(params) {
4
- const { accountId, status, since, limit = 50 } = params;
5
- const session = getSession();
6
- try {
7
- const conditions = [
8
- "p.accountId = $accountId",
9
- "p.source = 'waitlist'",
10
- ];
11
- const queryParams = {
12
- accountId,
13
- limit: neo4j.int(limit),
14
- };
15
- if (status) {
16
- conditions.push("p.status = $status");
17
- queryParams.status = status;
18
- }
19
- if (since) {
20
- conditions.push("p.createdOn >= $since");
21
- queryParams.since = since;
22
- }
23
- const whereClause = conditions.join(" AND ");
24
- // Total count (all waitlist entries matching filters)
25
- const countResult = await session.run(`MATCH (p:Person) WHERE ${whereClause} RETURN count(p) AS total`, queryParams);
26
- const total = countResult.records[0].get("total").toNumber();
27
- // Count of entries needing review
28
- const reviewResult = await session.run(`MATCH (p:Person)
29
- WHERE p.accountId = $accountId AND p.source = 'waitlist' AND p.status = 'review'
30
- RETURN count(p) AS reviewCount`, { accountId });
31
- const reviewCount = reviewResult.records[0].get("reviewCount").toNumber();
32
- // Paginated list
33
- const listResult = await session.run(`MATCH (p:Person)
34
- WHERE ${whereClause}
35
- RETURN p, elementId(p) AS nodeId
36
- ORDER BY p.createdOn DESC
37
- LIMIT $limit`, queryParams);
38
- const entries = listResult.records.map((record) => {
39
- const p = record.get("p").properties;
40
- return {
41
- nodeId: record.get("nodeId"),
42
- givenName: p.givenName,
43
- familyName: p.familyName,
44
- email: p.email,
45
- status: p.status,
46
- createdOn: p.createdOn,
47
- extractedOn: p.extractedOn,
48
- sessionId: p.sessionId,
49
- discoveryNotes: p.discoveryNotes,
50
- };
51
- });
52
- return { entries, total, reviewCount };
53
- }
54
- finally {
55
- await session.close();
56
- }
57
- }
58
- //# sourceMappingURL=waitlist-list.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"waitlist-list.js","sourceRoot":"","sources":["../../src/tools/waitlist-list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,cAAc,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAoB7C,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAKlC;IACC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC;IAExD,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,UAAU,GAAG;YACjB,0BAA0B;YAC1B,uBAAuB;SACxB,CAAC;QACF,MAAM,WAAW,GAA4B;YAC3C,SAAS;YACT,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;SACxB,CAAC;QAEF,IAAI,MAAM,EAAE,CAAC;YACX,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACtC,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC;QAC9B,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YACV,UAAU,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACzC,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC;QAC5B,CAAC;QAED,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE7C,sDAAsD;QACtD,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,0BAA0B,WAAW,2BAA2B,EAChE,WAAW,CACZ,CAAC;QACF,MAAM,KAAK,GACT,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CACnC,CAAC,QAAQ,EAAE,CAAC;QAEb,kCAAkC;QAClC,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC;;sCAEgC,EAChC,EAAE,SAAS,EAAE,CACd,CAAC;QACF,MAAM,WAAW,GACf,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAC1C,CAAC,QAAQ,EAAE,CAAC;QAEb,iBAAiB;QACjB,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC;eACS,WAAW;;;oBAGN,EACd,WAAW,CACZ,CAAC;QAEF,MAAM,OAAO,GAAoB,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACjE,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;YACrC,OAAO;gBACL,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAW;gBACtC,SAAS,EAAE,CAAC,CAAC,SAAmB;gBAChC,UAAU,EAAE,CAAC,CAAC,UAAgC;gBAC9C,KAAK,EAAE,CAAC,CAAC,KAAe;gBACxB,MAAM,EAAE,CAAC,CAAC,MAAgB;gBAC1B,SAAS,EAAE,CAAC,CAAC,SAAmB;gBAChC,WAAW,EAAE,CAAC,CAAC,WAAiC;gBAChD,SAAS,EAAE,CAAC,CAAC,SAA+B;gBAC5C,cAAc,EAAE,CAAC,CAAC,cAAoC;aACvD,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACzC,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;AACH,CAAC"}