@rubytech/create-realagent-code 0.1.114 → 0.1.115

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