@rubytech/create-maxy-code 0.1.74 → 0.1.79

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 (218) hide show
  1. package/dist/__tests__/plugin-install.test.js +2 -2
  2. package/dist/lib/plugin-install.js +1 -1
  3. package/package.json +1 -1
  4. package/payload/platform/config/brand.json +1 -1
  5. package/payload/platform/lib/graph-write/dist/index.js +1 -1
  6. package/payload/platform/lib/graph-write/src/index.ts +1 -1
  7. package/payload/platform/package.json +1 -1
  8. package/payload/platform/plugins/.claude-plugin/marketplace.json +101 -1
  9. package/payload/platform/plugins/admin/mcp/dist/index.js +112 -8
  10. package/payload/platform/plugins/admin/mcp/dist/index.js.map +1 -1
  11. package/payload/platform/plugins/admin/skills/commitment-followthrough/SKILL.md +1 -1
  12. package/payload/platform/plugins/admin/skills/session-management/SKILL.md +1 -1
  13. package/payload/platform/plugins/business-assistant/PLUGIN.md +1 -1
  14. package/payload/platform/plugins/business-assistant/references/task-management.md +13 -13
  15. package/payload/platform/plugins/contacts/mcp/dist/index.js +36 -5
  16. package/payload/platform/plugins/contacts/mcp/dist/index.js.map +1 -1
  17. package/payload/platform/plugins/docs/references/admin-session.md +7 -6
  18. package/payload/platform/plugins/docs/references/internals.md +2 -2
  19. package/payload/platform/plugins/email/mcp/dist/index.js +34 -3
  20. package/payload/platform/plugins/email/mcp/dist/index.js.map +1 -1
  21. package/payload/platform/plugins/memory/PLUGIN.md +1 -1
  22. package/payload/platform/plugins/memory/mcp/dist/index.js +78 -3
  23. package/payload/platform/plugins/memory/mcp/dist/index.js.map +1 -1
  24. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/neo4j-password-path.test.d.ts +2 -0
  25. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/neo4j-password-path.test.d.ts.map +1 -0
  26. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/neo4j-password-path.test.js +57 -0
  27. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/neo4j-password-path.test.js.map +1 -0
  28. package/payload/platform/plugins/memory/mcp/dist/lib/neo4j.d.ts.map +1 -1
  29. package/payload/platform/plugins/memory/mcp/dist/lib/neo4j.js +9 -1
  30. package/payload/platform/plugins/memory/mcp/dist/lib/neo4j.js.map +1 -1
  31. package/payload/platform/plugins/memory/mcp/vitest.config.ts +2 -0
  32. package/payload/platform/plugins/memory/skills/conversation-archive-enrich/SKILL.md +2 -2
  33. package/payload/platform/plugins/outlook/mcp/dist/index.js +37 -5
  34. package/payload/platform/plugins/outlook/mcp/dist/index.js.map +1 -1
  35. package/payload/platform/plugins/projects/PLUGIN.md +3 -3
  36. package/payload/platform/plugins/projects/references/sprint.md +2 -2
  37. package/payload/platform/plugins/replicate/mcp/dist/index.js +27 -6
  38. package/payload/platform/plugins/replicate/mcp/dist/index.js.map +1 -1
  39. package/payload/platform/plugins/scheduling/mcp/dist/index.js +32 -3
  40. package/payload/platform/plugins/scheduling/mcp/dist/index.js.map +1 -1
  41. package/payload/platform/plugins/scheduling/skills/briefing/SKILL.md +2 -2
  42. package/payload/platform/plugins/tasks/.claude-plugin/plugin.json +1 -1
  43. package/payload/platform/plugins/tasks/mcp/dist/index.js +44 -3
  44. package/payload/platform/plugins/tasks/mcp/dist/index.js.map +1 -1
  45. package/payload/platform/plugins/waitlist/mcp/dist/index.js +30 -3
  46. package/payload/platform/plugins/waitlist/mcp/dist/index.js.map +1 -1
  47. package/payload/platform/plugins/work/.claude-plugin/plugin.json +17 -0
  48. package/payload/platform/plugins/{tasks → work}/.mcp.json +2 -2
  49. package/payload/platform/plugins/work/PLUGIN.md +120 -0
  50. package/payload/platform/plugins/work/mcp/dist/index.d.ts +2 -0
  51. package/payload/platform/plugins/work/mcp/dist/index.d.ts.map +1 -0
  52. package/payload/platform/plugins/work/mcp/dist/index.js +543 -0
  53. package/payload/platform/plugins/work/mcp/dist/index.js.map +1 -0
  54. package/payload/platform/plugins/work/mcp/dist/lib/embeddings.d.ts +7 -0
  55. package/payload/platform/plugins/work/mcp/dist/lib/embeddings.d.ts.map +1 -0
  56. package/payload/platform/plugins/work/mcp/dist/lib/embeddings.js +24 -0
  57. package/payload/platform/plugins/work/mcp/dist/lib/embeddings.js.map +1 -0
  58. package/payload/platform/plugins/work/mcp/dist/lib/neo4j.d.ts +5 -0
  59. package/payload/platform/plugins/work/mcp/dist/lib/neo4j.d.ts.map +1 -0
  60. package/payload/platform/plugins/work/mcp/dist/lib/neo4j.js +40 -0
  61. package/payload/platform/plugins/work/mcp/dist/lib/neo4j.js.map +1 -0
  62. package/payload/platform/plugins/work/mcp/dist/tools/project-complete.d.ts +17 -0
  63. package/payload/platform/plugins/work/mcp/dist/tools/project-complete.d.ts.map +1 -0
  64. package/payload/platform/plugins/work/mcp/dist/tools/project-complete.js +76 -0
  65. package/payload/platform/plugins/work/mcp/dist/tools/project-complete.js.map +1 -0
  66. package/payload/platform/plugins/work/mcp/dist/tools/project-create.d.ts +29 -0
  67. package/payload/platform/plugins/work/mcp/dist/tools/project-create.d.ts.map +1 -0
  68. package/payload/platform/plugins/work/mcp/dist/tools/project-create.js +235 -0
  69. package/payload/platform/plugins/work/mcp/dist/tools/project-create.js.map +1 -0
  70. package/payload/platform/plugins/work/mcp/dist/tools/project-get.d.ts +40 -0
  71. package/payload/platform/plugins/work/mcp/dist/tools/project-get.d.ts.map +1 -0
  72. package/payload/platform/plugins/work/mcp/dist/tools/project-get.js +125 -0
  73. package/payload/platform/plugins/work/mcp/dist/tools/project-get.js.map +1 -0
  74. package/payload/platform/plugins/work/mcp/dist/tools/project-list.d.ts +26 -0
  75. package/payload/platform/plugins/work/mcp/dist/tools/project-list.d.ts.map +1 -0
  76. package/payload/platform/plugins/work/mcp/dist/tools/project-list.js +81 -0
  77. package/payload/platform/plugins/work/mcp/dist/tools/project-list.js.map +1 -0
  78. package/payload/platform/plugins/work/mcp/dist/tools/project-update.d.ts +19 -0
  79. package/payload/platform/plugins/work/mcp/dist/tools/project-update.d.ts.map +1 -0
  80. package/payload/platform/plugins/work/mcp/dist/tools/project-update.js +102 -0
  81. package/payload/platform/plugins/work/mcp/dist/tools/project-update.js.map +1 -0
  82. package/payload/platform/plugins/work/mcp/dist/tools/session-list.d.ts +20 -0
  83. package/payload/platform/plugins/work/mcp/dist/tools/session-list.d.ts.map +1 -0
  84. package/payload/platform/plugins/work/mcp/dist/tools/session-list.js +37 -0
  85. package/payload/platform/plugins/work/mcp/dist/tools/session-list.js.map +1 -0
  86. package/payload/platform/plugins/work/mcp/dist/tools/session-name.d.ts +12 -0
  87. package/payload/platform/plugins/work/mcp/dist/tools/session-name.d.ts.map +1 -0
  88. package/payload/platform/plugins/work/mcp/dist/tools/session-name.js +28 -0
  89. package/payload/platform/plugins/work/mcp/dist/tools/session-name.js.map +1 -0
  90. package/payload/platform/plugins/work/mcp/dist/tools/work-complete.d.ts +16 -0
  91. package/payload/platform/plugins/work/mcp/dist/tools/work-complete.d.ts.map +1 -0
  92. package/payload/platform/plugins/work/mcp/dist/tools/work-complete.js +33 -0
  93. package/payload/platform/plugins/work/mcp/dist/tools/work-complete.js.map +1 -0
  94. package/payload/platform/plugins/work/mcp/dist/tools/work-create.d.ts +63 -0
  95. package/payload/platform/plugins/work/mcp/dist/tools/work-create.d.ts.map +1 -0
  96. package/payload/platform/plugins/work/mcp/dist/tools/work-create.js +141 -0
  97. package/payload/platform/plugins/work/mcp/dist/tools/work-create.js.map +1 -0
  98. package/payload/platform/plugins/work/mcp/dist/tools/work-get.d.ts +19 -0
  99. package/payload/platform/plugins/work/mcp/dist/tools/work-get.d.ts.map +1 -0
  100. package/payload/platform/plugins/work/mcp/dist/tools/work-get.js +51 -0
  101. package/payload/platform/plugins/work/mcp/dist/tools/work-get.js.map +1 -0
  102. package/payload/platform/plugins/work/mcp/dist/tools/work-list.d.ts +18 -0
  103. package/payload/platform/plugins/work/mcp/dist/tools/work-list.d.ts.map +1 -0
  104. package/payload/platform/plugins/work/mcp/dist/tools/work-list.js +66 -0
  105. package/payload/platform/plugins/work/mcp/dist/tools/work-list.js.map +1 -0
  106. package/payload/platform/plugins/work/mcp/dist/tools/work-ready.d.ts +21 -0
  107. package/payload/platform/plugins/work/mcp/dist/tools/work-ready.d.ts.map +1 -0
  108. package/payload/platform/plugins/work/mcp/dist/tools/work-ready.js +54 -0
  109. package/payload/platform/plugins/work/mcp/dist/tools/work-ready.js.map +1 -0
  110. package/payload/platform/plugins/work/mcp/dist/tools/work-relate.d.ts +12 -0
  111. package/payload/platform/plugins/work/mcp/dist/tools/work-relate.d.ts.map +1 -0
  112. package/payload/platform/plugins/work/mcp/dist/tools/work-relate.js +59 -0
  113. package/payload/platform/plugins/work/mcp/dist/tools/work-relate.js.map +1 -0
  114. package/payload/platform/plugins/work/mcp/dist/tools/work-update.d.ts +32 -0
  115. package/payload/platform/plugins/work/mcp/dist/tools/work-update.d.ts.map +1 -0
  116. package/payload/platform/plugins/work/mcp/dist/tools/work-update.js +112 -0
  117. package/payload/platform/plugins/work/mcp/dist/tools/work-update.js.map +1 -0
  118. package/payload/platform/plugins/{tasks → work}/mcp/package.json +1 -1
  119. package/payload/platform/plugins/workflows/mcp/dist/index.js +32 -3
  120. package/payload/platform/plugins/workflows/mcp/dist/index.js.map +1 -1
  121. package/payload/platform/scripts/conversation-id-allowlist.txt +4 -4
  122. package/payload/platform/scripts/seed-neo4j.sh +1 -1
  123. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
  124. package/payload/platform/services/claude-session-manager/dist/http-server.js +34 -5
  125. package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
  126. package/payload/platform/services/claude-session-manager/dist/index.js +32 -0
  127. package/payload/platform/services/claude-session-manager/dist/index.js.map +1 -1
  128. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +33 -1
  129. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
  130. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +170 -39
  131. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
  132. package/payload/platform/services/claude-session-manager/dist/specialist-drift.d.ts.map +1 -1
  133. package/payload/platform/services/claude-session-manager/dist/specialist-drift.js +10 -4
  134. package/payload/platform/services/claude-session-manager/dist/specialist-drift.js.map +1 -1
  135. package/payload/platform/templates/agents/admin/IDENTITY.md +22 -38
  136. package/payload/platform/templates/agents/admin/SOUL.md +0 -38
  137. package/payload/platform/templates/specialists/agents/database-operator.md +1 -1
  138. package/payload/platform/templates/specialists/agents/librarian.md +1 -1
  139. package/payload/platform/templates/specialists/agents/personal-assistant.md +1 -1
  140. package/payload/platform/templates/specialists/agents/project-manager.md +3 -3
  141. package/payload/premium-plugins/real-agent/plugins/leads/PLUGIN.md +1 -1
  142. package/payload/server/{chunk-ITQ55PCQ.js → chunk-TFEIFU7F.js} +1 -1
  143. package/payload/server/{chunk-HZ77KMTV.js → chunk-W33UUYYR.js} +1 -4
  144. package/payload/server/{cloudflare-task-tracker-PZBX7X3D.js → cloudflare-task-tracker-7P355PSD.js} +1 -1
  145. package/payload/server/maxy-edge.js +1 -1
  146. package/payload/server/public/assets/{admin-DcqVybWZ.js → admin-Bn3SKHdv.js} +1 -1
  147. package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-C6vU0NST.js → architectureDiagram-Q4EWVU46-VMeuB5OP.js} +1 -1
  148. package/payload/server/public/assets/{blockDiagram-DXYQGD6D-CVaR8-w2.js → blockDiagram-DXYQGD6D-B7mq0Me0.js} +1 -1
  149. package/payload/server/public/assets/{brand-1AQwHifp.css → brand-CZQNuuLo.css} +1 -1
  150. package/payload/server/public/assets/{c4Diagram-AHTNJAMY-DnFHlz0P.js → c4Diagram-AHTNJAMY-Btu6ejD1.js} +1 -1
  151. package/payload/server/public/assets/channel-C_bSLH4h.js +1 -0
  152. package/payload/server/public/assets/{chunk-336JU56O-B6a2-iht.js → chunk-336JU56O-DAL_d_Xa.js} +2 -2
  153. package/payload/server/public/assets/{chunk-426QAEUC-DxIW6EIp.js → chunk-426QAEUC-DPD9ot_N.js} +1 -1
  154. package/payload/server/public/assets/{chunk-4TB4RGXK-Bd_K_Vm8.js → chunk-4TB4RGXK-BexM9T-f.js} +1 -1
  155. package/payload/server/public/assets/{chunk-5FUZZQ4R-BrcNLOWO.js → chunk-5FUZZQ4R-EwDdji3T.js} +1 -1
  156. package/payload/server/public/assets/{chunk-5PVQY5BW-VlQyk4ta.js → chunk-5PVQY5BW-BP9uoVws.js} +1 -1
  157. package/payload/server/public/assets/{chunk-EDXVE4YY-BR-zR5uE.js → chunk-EDXVE4YY-DSFmUMEW.js} +1 -1
  158. package/payload/server/public/assets/{chunk-ENJZ2VHE-SZeptTG4.js → chunk-ENJZ2VHE-IVAy2Qk9.js} +1 -1
  159. package/payload/server/public/assets/{chunk-ICPOFSXX-CtefGo4C.js → chunk-ICPOFSXX-DkUupPox.js} +1 -1
  160. package/payload/server/public/assets/{chunk-OYMX7WX6-BozNOEbo.js → chunk-OYMX7WX6-BPnzam8G.js} +1 -1
  161. package/payload/server/public/assets/{chunk-U2HBQHQK-D96MbvO_.js → chunk-U2HBQHQK-xYNchOVT.js} +1 -1
  162. package/payload/server/public/assets/{chunk-X2U36JSP-gwEYUG8y.js → chunk-X2U36JSP-C1V_V8v8.js} +1 -1
  163. package/payload/server/public/assets/{chunk-YZCP3GAM-DDIFkTtt.js → chunk-YZCP3GAM-CUibW87w.js} +1 -1
  164. package/payload/server/public/assets/{chunk-ZZ45TVLE-C75vepuo.js → chunk-ZZ45TVLE-HkKx4xBt.js} +1 -1
  165. package/payload/server/public/assets/classDiagram-6PBFFD2Q-B6oW43xg.js +1 -0
  166. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-D0237d4h.js +1 -0
  167. package/payload/server/public/assets/clone-AMRCmnen.js +1 -0
  168. package/payload/server/public/assets/{dagre-DwC2Bsrq.js → dagre-DIaJ9oMM.js} +1 -1
  169. package/payload/server/public/assets/{dagre-KV5264BT-DuukLv5C.js → dagre-KV5264BT-Oyox5ACd.js} +1 -1
  170. package/payload/server/public/assets/data-Mm3pTL1b.js +1 -0
  171. package/payload/server/public/assets/{device-url-actions-DDsULUXs.js → device-url-actions-BjDrEVoY.js} +1 -1
  172. package/payload/server/public/assets/{diagram-5BDNPKRD-DQWQd3WX.js → diagram-5BDNPKRD-DoGhkzBd.js} +1 -1
  173. package/payload/server/public/assets/{diagram-G4DWMVQ6-DbS_Ih5q.js → diagram-G4DWMVQ6-Dc3Ix-Dh.js} +1 -1
  174. package/payload/server/public/assets/{diagram-MMDJMWI5-BFDfdYgV.js → diagram-MMDJMWI5-CFM9_Ggj.js} +1 -1
  175. package/payload/server/public/assets/{diagram-TYMM5635-Dp48BsHY.js → diagram-TYMM5635-nMWgzxC3.js} +1 -1
  176. package/payload/server/public/assets/{erDiagram-SMLLAGMA-CKA6q8Cy.js → erDiagram-SMLLAGMA-DcQWiGgF.js} +1 -1
  177. package/payload/server/public/assets/{flowDiagram-DWJPFMVM-BVva2cwM.js → flowDiagram-DWJPFMVM-CcX5waal.js} +1 -1
  178. package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-BuzV7Yj-.js → ganttDiagram-T4ZO3ILL-BTQWoD8W.js} +1 -1
  179. package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-B188dI5e.js → gitGraphDiagram-UUTBAWPF-BHZcRznS.js} +1 -1
  180. package/payload/server/public/assets/graph-Cd4jsDi3.js +1 -0
  181. package/payload/server/public/assets/{graph-labels-Cp9MdDRy.js → graph-labels-CqsRzbp0.js} +1 -1
  182. package/payload/server/public/assets/{graphlib-D-7uYmP9.js → graphlib-BpUb9z9y.js} +1 -1
  183. package/payload/server/public/assets/{infoDiagram-42DDH7IO-CLvYxjeZ.js → infoDiagram-42DDH7IO-CBoiO8yF.js} +1 -1
  184. package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-B9F97qbc.js → ishikawaDiagram-UXIWVN3A-mTDI_0As.js} +1 -1
  185. package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-CWg6xF0d.js → journeyDiagram-VCZTEJTY-CcuU_0rp.js} +1 -1
  186. package/payload/server/public/assets/{kanban-definition-6JOO6SKY-CUM2Zro1.js → kanban-definition-6JOO6SKY-BWA7Do5Y.js} +1 -1
  187. package/payload/server/public/assets/{line-B_dtxHKd.js → line-BlGptbDR.js} +1 -1
  188. package/payload/server/public/assets/{mermaid-parser.core-q8nXkWvq.js → mermaid-parser.core-hslUiqJ-.js} +1 -1
  189. package/payload/server/public/assets/{mermaid.core-BIZvK8d3.js → mermaid.core-DWU_5Faf.js} +3 -3
  190. package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-DOl7v8YY.js → mindmap-definition-QFDTVHPH-B3_sQr-2.js} +1 -1
  191. package/payload/server/public/assets/{page-HcHeXd21.js → page-eQPbgLXP.js} +1 -1
  192. package/payload/server/public/assets/{page-Ybq9fvmk.js → page-lPEIoiHs.js} +1 -1
  193. package/payload/server/public/assets/{pieDiagram-DEJITSTG-CVFDHS9S.js → pieDiagram-DEJITSTG-02u2dI6Z.js} +1 -1
  194. package/payload/server/public/assets/{public-B_FEURBo.js → public-j7U67c6E.js} +3 -3
  195. package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-DIx-sbIM.js → quadrantDiagram-34T5L4WZ-BfgiMQiy.js} +1 -1
  196. package/payload/server/public/assets/{requirementDiagram-MS252O5E-C9yrlgJP.js → requirementDiagram-MS252O5E-JKZoibIp.js} +1 -1
  197. package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-Dn2R2x6-.js → sankeyDiagram-XADWPNL6-N1iaY19u.js} +1 -1
  198. package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-C9QMqZZw.js → sequenceDiagram-FGHM5R23-DjU3oQ0_.js} +1 -1
  199. package/payload/server/public/assets/{stateDiagram-FHFEXIEX-DPzHXWge.js → stateDiagram-FHFEXIEX-BuFcldiV.js} +1 -1
  200. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-rZLYem3J.js +1 -0
  201. package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-gRq4Cvlk.js → timeline-definition-GMOUNBTQ-3vztYjFm.js} +1 -1
  202. package/payload/server/public/assets/{vennDiagram-DHZGUBPP-CJGA-zAB.js → vennDiagram-DHZGUBPP-Zdv9WVqJ.js} +1 -1
  203. package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-BFS9eK0s.js → wardleyDiagram-NUSXRM2D-CkTAZI7f.js} +1 -1
  204. package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-D5Kqs-jt.js → xychartDiagram-5P7HB3ND-CgMCxpms.js} +1 -1
  205. package/payload/server/public/data.html +5 -5
  206. package/payload/server/public/graph.html +5 -5
  207. package/payload/server/public/index.html +7 -7
  208. package/payload/server/public/public.html +4 -4
  209. package/payload/server/server.js +50 -18
  210. package/payload/platform/plugins/tasks/PLUGIN.md +0 -120
  211. package/payload/server/public/assets/channel-Ccfjb07z.js +0 -1
  212. package/payload/server/public/assets/classDiagram-6PBFFD2Q-Ci-ABevb.js +0 -1
  213. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-BDQ3yWGx.js +0 -1
  214. package/payload/server/public/assets/clone-CuYGwTRT.js +0 -1
  215. package/payload/server/public/assets/data-DbNK3_l-.js +0 -1
  216. package/payload/server/public/assets/graph-yTqw4J01.js +0 -1
  217. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-CcDXqSsh.js +0 -1
  218. /package/payload/server/public/assets/{brand-lfvUn_r6.js → brand-BnMilSyt.js} +0 -0
@@ -0,0 +1,57 @@
1
+ import { afterEach, beforeEach, describe, expect, it } from "vitest";
2
+ import { existsSync, mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs";
3
+ import { join, resolve } from "node:path";
4
+ import { tmpdir } from "node:os";
5
+ // Task 207 — `readPassword()` (memory plugin) falls back to a
6
+ // `<platformRoot>/config/.neo4j-password` lookup when neither
7
+ // `NEO4J_PASSWORD` nor `PLATFORM_ROOT` is set in env. Before this task,
8
+ // the fallback's `../../../..` math from `dist/lib/neo4j.js` landed at
9
+ // `platform/plugins/` (one level too high), so the read failed silently
10
+ // while the per-spawn `.mcp.json` masked the bug by always injecting
11
+ // `PLATFORM_ROOT`. With Task 207 dropping the per-spawn JSON for
12
+ // specialists, this fallback is the new load-bearing path; the path
13
+ // math is `../../../../..` (five up).
14
+ //
15
+ // This test verifies the resolved path lands at `<platformRoot>/config/`,
16
+ // not `<platformRoot>/plugins/config/`, by walking the same number of
17
+ // segments up from a fixture directory shaped like the dist layout.
18
+ describe("Task 207 — readPassword fallback path math", () => {
19
+ let tmpRoot = "";
20
+ const originalEnv = { ...process.env };
21
+ beforeEach(() => {
22
+ tmpRoot = mkdtempSync(join(tmpdir(), "task207-neo4j-path-"));
23
+ delete process.env.NEO4J_PASSWORD;
24
+ delete process.env.PLATFORM_ROOT;
25
+ });
26
+ afterEach(() => {
27
+ process.env = { ...originalEnv };
28
+ if (tmpRoot)
29
+ rmSync(tmpRoot, { recursive: true, force: true });
30
+ });
31
+ it("five-segment hop from dist/lib/neo4j.js lands at platform/config/.neo4j-password", () => {
32
+ // Layout mirrors the compiled tree:
33
+ // <tmpRoot>/platform/config/.neo4j-password
34
+ // <tmpRoot>/platform/plugins/memory/mcp/dist/lib/neo4j.js
35
+ const platformRoot = join(tmpRoot, "platform");
36
+ mkdirSync(join(platformRoot, "config"), { recursive: true });
37
+ writeFileSync(join(platformRoot, "config", ".neo4j-password"), "secret-from-file\n", "utf-8");
38
+ // Simulate the source-of-truth math: import.meta.dirname is the
39
+ // directory of the compiled neo4j.js. Five segments up is platform/.
40
+ const distLibDir = join(platformRoot, "plugins", "memory", "mcp", "dist", "lib");
41
+ mkdirSync(distLibDir, { recursive: true });
42
+ const resolved = resolve(distLibDir, "../../../../..", "config/.neo4j-password");
43
+ expect(resolved).toBe(join(platformRoot, "config/.neo4j-password"));
44
+ expect(readFileSync(resolved, "utf-8").trim()).toBe("secret-from-file");
45
+ });
46
+ it("four-segment hop lands at platform/plugins/ which has no .neo4j-password — proves the regression case", () => {
47
+ const platformRoot = join(tmpRoot, "platform");
48
+ mkdirSync(join(platformRoot, "config"), { recursive: true });
49
+ writeFileSync(join(platformRoot, "config", ".neo4j-password"), "secret\n", "utf-8");
50
+ const distLibDir = join(platformRoot, "plugins", "memory", "mcp", "dist", "lib");
51
+ mkdirSync(distLibDir, { recursive: true });
52
+ const wrong = resolve(distLibDir, "../../../..", "config/.neo4j-password");
53
+ expect(wrong).toBe(join(platformRoot, "plugins", "config", ".neo4j-password"));
54
+ expect(existsSync(wrong)).toBe(false);
55
+ });
56
+ });
57
+ //# sourceMappingURL=neo4j-password-path.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"neo4j-password-path.test.js","sourceRoot":"","sources":["../../../src/lib/__tests__/neo4j-password-path.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,8DAA8D;AAC9D,8DAA8D;AAC9D,wEAAwE;AACxE,uEAAuE;AACvE,wEAAwE;AACxE,qEAAqE;AACrE,iEAAiE;AACjE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,0EAA0E;AAC1E,sEAAsE;AACtE,oEAAoE;AAEpE,QAAQ,CAAC,4CAA4C,EAAE,GAAG,EAAE;IAC1D,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,MAAM,WAAW,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAEvC,UAAU,CAAC,GAAG,EAAE;QACd,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,qBAAqB,CAAC,CAAC,CAAC;QAC7D,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QAClC,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,WAAW,EAAE,CAAC;QACjC,IAAI,OAAO;YAAE,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kFAAkF,EAAE,GAAG,EAAE;QAC1F,oCAAoC;QACpC,8CAA8C;QAC9C,4DAA4D;QAC5D,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC/C,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,aAAa,CACX,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,iBAAiB,CAAC,EAC/C,oBAAoB,EACpB,OAAO,CACR,CAAC;QAEF,gEAAgE;QAChE,qEAAqE;QACrE,MAAM,UAAU,GAAG,IAAI,CACrB,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,KAAK,EACL,MAAM,EACN,KAAK,CACN,CAAC;QACF,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,EAAE,gBAAgB,EAAE,wBAAwB,CAAC,CAAC;QACjF,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,wBAAwB,CAAC,CAAC,CAAC;QACpE,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uGAAuG,EAAE,GAAG,EAAE;QAC/G,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC/C,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,aAAa,CACX,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,iBAAiB,CAAC,EAC/C,UAAU,EACV,OAAO,CACR,CAAC;QACF,MAAM,UAAU,GAAG,IAAI,CACrB,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,KAAK,EACL,MAAM,EACN,KAAK,CACN,CAAC;QACF,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,EAAE,aAAa,EAAE,wBAAwB,CAAC,CAAC;QAC3E,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC;QAC/E,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
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
+ {"version":3,"file":"neo4j.d.ts","sourceRoot":"","sources":["../../src/lib/neo4j.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AA+BtD,wBAAgB,SAAS,IAAI,MAAM,CAgBlC;AAED,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAKjD"}
@@ -5,7 +5,15 @@ let driver = null;
5
5
  function readPassword() {
6
6
  if (process.env.NEO4J_PASSWORD)
7
7
  return process.env.NEO4J_PASSWORD;
8
- const passwordFile = resolve(process.env.PLATFORM_ROOT ?? resolve(import.meta.dirname, "../../../.."), "config/.neo4j-password");
8
+ // Task 207 five segments up from the compiled file
9
+ // (`platform/plugins/memory/mcp/dist/lib/neo4j.js`) reaches `platform/`,
10
+ // where the installer writes `config/.neo4j-password`. The previous
11
+ // four-segment hop landed at `platform/plugins/`, where no password
12
+ // file exists; that miscalculation was masked while the per-spawn
13
+ // `.mcp.json` injected `PLATFORM_ROOT` on every MCP child. Task 207
14
+ // drops that JSON for specialists, so this fallback is the new
15
+ // load-bearing path when `process.env.PLATFORM_ROOT` is unset.
16
+ const passwordFile = resolve(process.env.PLATFORM_ROOT ?? resolve(import.meta.dirname, "../../../../.."), "config/.neo4j-password");
9
17
  try {
10
18
  return readFileSync(passwordFile, "utf-8").trim();
11
19
  }
@@ -1 +1 @@
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,yEAAyE,CAC1E,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,+BAA+B,GAAG,EAAE,CAAC,CAAC;QACpD,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
+ {"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,qDAAqD;IACrD,yEAAyE;IACzE,oEAAoE;IACpE,oEAAoE;IACpE,kEAAkE;IAClE,oEAAoE;IACpE,+DAA+D;IAC/D,+DAA+D;IAC/D,MAAM,YAAY,GAAG,OAAO,CAC1B,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,EAC3E,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,yEAAyE,CAC1E,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,+BAA+B,GAAG,EAAE,CAAC,CAAC;QACpD,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"}
@@ -16,6 +16,8 @@ export default defineConfig({
16
16
  include: [
17
17
  "src/tools/__tests__/**/*.test.ts",
18
18
  "src/lib/__tests__/live-schema-source.test.ts",
19
+ // Task 207 — Vitest-style test for `readPassword()` fallback path math.
20
+ "src/lib/__tests__/neo4j-password-path.test.ts",
19
21
  ],
20
22
  testTimeout: 10_000,
21
23
  },
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: conversation-archive-enrich
3
- description: Source-agnostic Phase 2 for any `:ConversationArchive` — walks the `:Section:Conversation` chunks of one named archive and asks the operator to confirm derived claims row-by-row. Fires only when the operator names a specific archive and asks for insights/enrichment; never auto-fires on Phase 1 completion. Per-row gate (wire / skip / reject) over four kinds — `mention`, `task`, `preference`, `observed-relationship`. Re-runs are idempotent on `(elementId(chunk), kind, contentHash)`, so collapsing duplicates is structural. Invokes the read-only MCP tool `mcp__memory__conversation-archive-derive-insights` to obtain proposals; never writes from the tool's return path. Each `wire` decision runs the proposal's returned `mergeCypher` via `mcp__graph__maxy-graph-write_neo4j_cypher`, or, for `task`, mints the `:Task` via `mcp__tasks__task-create` first and then runs the REFERENCES merge.
3
+ description: Source-agnostic Phase 2 for any `:ConversationArchive` — walks the `:Section:Conversation` chunks of one named archive and asks the operator to confirm derived claims row-by-row. Fires only when the operator names a specific archive and asks for insights/enrichment; never auto-fires on Phase 1 completion. Per-row gate (wire / skip / reject) over four kinds — `mention`, `task`, `preference`, `observed-relationship`. Re-runs are idempotent on `(elementId(chunk), kind, contentHash)`, so collapsing duplicates is structural. Invokes the read-only MCP tool `mcp__memory__conversation-archive-derive-insights` to obtain proposals; never writes from the tool's return path. Each `wire` decision runs the proposal's returned `mergeCypher` via `mcp__graph__maxy-graph-write_neo4j_cypher`, or, for `task`, mints the `:Task` via `mcp__work__work-create` first and then runs the REFERENCES merge.
4
4
  ---
5
5
 
6
6
  # Conversation Archive — chunk-anchored insight derivation
@@ -78,7 +78,7 @@ A re-run against the same `(chunkElementId, target, contentHash)` collapses on t
78
78
 
79
79
  ### `task`
80
80
 
81
- 1. Mint the `:Task` via `mcp__tasks__task-create` with `title=mergeParams.taskTitle`, optional due hint from `mergeParams.taskDueHint`, `affects=archiveElementId`, `raisedDuringConversationKey=chunkElementId`.
81
+ 1. Mint the `:Task` via `mcp__work__work-create` with `title=mergeParams.taskTitle`, optional due hint from `mergeParams.taskDueHint`, `affects=archiveElementId`, `raisedDuringConversationKey=chunkElementId`.
82
82
  2. Run the proposal's `mergeCypher` via `mcp__graph__maxy-graph-write_neo4j_cypher` with `mergeParams` plus `taskElementId=<minted Task elementId>`.
83
83
 
84
84
  The `:Task` itself is the durable artefact; the `REFERENCES` edge to the chunk records the evidence that produced it.
@@ -26,19 +26,37 @@ import { runCalendarList } from "./tools/calendar-list.js";
26
26
  import { runCalendarEvent } from "./tools/calendar-event.js";
27
27
  import { runContactsList } from "./tools/contacts-list.js";
28
28
  import { runMailboxInfo } from "./tools/mailbox-info.js";
29
- const ACCOUNT_ID = process.env.ACCOUNT_ID;
29
+ // Plugin-system boot tolerance — see Task 202.
30
+ // Module-init must never exit; the plugin-system spawn enumerates tools/list
31
+ // before any per-account env is set. Per-call refusal preserves isolation.
32
+ const ACCOUNT_ID = process.env.ACCOUNT_ID ?? null;
30
33
  const PLATFORM_ROOT = process.env.PLATFORM_ROOT ?? process.cwd();
31
34
  const ACCOUNTS_DIR = resolve(PLATFORM_ROOT, "..", "data/accounts");
32
35
  const OUTLOOK_CLIENT_ID = process.env.OUTLOOK_CLIENT_ID ?? "";
33
36
  const OUTLOOK_TENANT_ID = process.env.OUTLOOK_TENANT_ID ?? "common";
34
- if (!ACCOUNT_ID) {
35
- process.stderr.write("[outlook-mcp] FATAL: ACCOUNT_ID env var is required\n");
36
- process.exit(1);
37
+ process.stderr.write(`[outlook-mcp] boot accountId=${ACCOUNT_ID ?? "null"}\n`);
38
+ function refuseNoAccount(toolName) {
39
+ process.stderr.write(`[outlook-mcp] tool=${toolName} refuse reason=no-account-context\n`);
40
+ return {
41
+ content: [
42
+ {
43
+ type: "text",
44
+ text: `${toolName} cannot execute: this MCP instance was launched without ACCOUNT_ID (plugin-system metadata-only mode). Per-account access requires ACCOUNT_ID at spawn.`,
45
+ },
46
+ ],
47
+ isError: true,
48
+ };
37
49
  }
38
50
  function getStore() {
51
+ if (!ACCOUNT_ID) {
52
+ throw new Error("getStore() called without ACCOUNT_ID — handler guard missing");
53
+ }
39
54
  return new TokenStore(ACCOUNT_ID, ACCOUNTS_DIR);
40
55
  }
41
56
  function getConfig() {
57
+ if (!ACCOUNT_ID) {
58
+ throw new Error("getConfig() called without ACCOUNT_ID — handler guard missing");
59
+ }
42
60
  if (!OUTLOOK_CLIENT_ID) {
43
61
  throw new Error("OUTLOOK_CLIENT_ID is not configured. Set it in the operator's Maxy install before using outlook tools.");
44
62
  }
@@ -64,6 +82,8 @@ const server = new McpServer({
64
82
  version: "0.1.0",
65
83
  });
66
84
  server.tool("outlook-account-register", "Initiate the OAuth Auth Code + PKCE flow for this account. Returns an authorization URL the operator opens in the VNC browser. Tool blocks until the operator completes consent (5-minute timeout) or fails loudly.", {}, async () => {
85
+ if (!ACCOUNT_ID)
86
+ return refuseNoAccount("outlook-account-register");
67
87
  try {
68
88
  const config = getConfig();
69
89
  const result = await runAccountRegister({
@@ -82,6 +102,8 @@ server.tool("outlook-mail-list", "List recent messages in the mailbox. Defaults
82
102
  top: z.number().int().min(1).max(250).optional(),
83
103
  folder: z.string().optional(),
84
104
  }, async ({ top, folder }) => {
105
+ if (!ACCOUNT_ID)
106
+ return refuseNoAccount("outlook-mail-list");
85
107
  try {
86
108
  const items = await runMailList(getConfig(), { top, folder });
87
109
  return ok(items);
@@ -94,6 +116,8 @@ server.tool("outlook-mail-search", "Search mail with Microsoft Graph $search. Th
94
116
  query: z.string().min(1),
95
117
  top: z.number().int().min(1).max(250).optional(),
96
118
  }, async ({ query, top }) => {
119
+ if (!ACCOUNT_ID)
120
+ return refuseNoAccount("outlook-mail-search");
97
121
  try {
98
122
  const items = await runMailSearch(getConfig(), { query, top });
99
123
  return ok(items);
@@ -106,6 +130,8 @@ server.tool("outlook-calendar-list", "List calendar events in the next rangeDays
106
130
  rangeDays: z.number().int().min(1).max(365).optional(),
107
131
  top: z.number().int().min(1).max(500).optional(),
108
132
  }, async ({ rangeDays, top }) => {
133
+ if (!ACCOUNT_ID)
134
+ return refuseNoAccount("outlook-calendar-list");
109
135
  try {
110
136
  const events = await runCalendarList(getConfig(), { rangeDays, top });
111
137
  return ok(events);
@@ -117,6 +143,8 @@ server.tool("outlook-calendar-list", "List calendar events in the next rangeDays
117
143
  server.tool("outlook-calendar-event", "Fetch a single calendar event by id, including the full body, attendees, and webLink.", {
118
144
  eventId: z.string().min(1),
119
145
  }, async ({ eventId }) => {
146
+ if (!ACCOUNT_ID)
147
+ return refuseNoAccount("outlook-calendar-event");
120
148
  try {
121
149
  const detail = await runCalendarEvent(getConfig(), { eventId });
122
150
  return ok(detail);
@@ -128,6 +156,8 @@ server.tool("outlook-calendar-event", "Fetch a single calendar event by id, incl
128
156
  server.tool("outlook-contacts-list", "List contacts. Defaults to top=50, max 250. Returns id, displayName, emailAddresses, phones, jobTitle, companyName.", {
129
157
  top: z.number().int().min(1).max(250).optional(),
130
158
  }, async ({ top }) => {
159
+ if (!ACCOUNT_ID)
160
+ return refuseNoAccount("outlook-contacts-list");
131
161
  try {
132
162
  const items = await runContactsList(getConfig(), { top });
133
163
  return ok(items);
@@ -137,6 +167,8 @@ server.tool("outlook-contacts-list", "List contacts. Defaults to top=50, max 250
137
167
  }
138
168
  });
139
169
  server.tool("outlook-mailbox-info", "Health probe — reports auth state, refresh-window status, and top-level folder count for this account. Useful for answering 'did account X auth?' without grepping logs.", {}, async () => {
170
+ if (!ACCOUNT_ID)
171
+ return refuseNoAccount("outlook-mailbox-info");
140
172
  try {
141
173
  const info = await runMailboxInfo(getConfig());
142
174
  return ok(info);
@@ -147,5 +179,5 @@ server.tool("outlook-mailbox-info", "Health probe — reports auth state, refres
147
179
  });
148
180
  const transport = new StdioServerTransport();
149
181
  await server.connect(transport);
150
- process.stderr.write(`[outlook-mcp] ready account=${ACCOUNT_ID}\n`);
182
+ process.stderr.write(`[outlook-mcp] ready account=${ACCOUNT_ID ?? "null"}\n`);
151
183
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  name: projects
3
3
  description: "Structured project execution. Phased sprints, operational investigations, deliverable reviews, and retrospectives — backed by :Project:Task graph nodes with HAS_TASK relationships, health signals, and lifecycle tracking."
4
4
  requires:
5
- - tasks
5
+ - work
6
6
  metadata: {"platform":{"always":false,"embed":["admin"],"pluginKey":"projects","optional":true,"recommended":true}}
7
7
  ---
8
8
 
@@ -41,7 +41,7 @@ Choose a tier based on scope:
41
41
  - **standard** — moderate complexity, multiple phases (e.g., kitchen refit)
42
42
  - **full** — significant scope, many dependencies (e.g., new build project)
43
43
 
44
- Include work items with their dependencies when the scope is known. If the user describes work incrementally, create the project first and add tasks later via `task-create` + `task-relate`.
44
+ Include work items with their dependencies when the scope is known. If the user describes work incrementally, create the project first and add tasks later via `work-create` + `work-relate`.
45
45
 
46
46
  ## Checking Project Status
47
47
 
@@ -87,4 +87,4 @@ For scope changes and issues, use `project-update` with a `note` parameter follo
87
87
 
88
88
  ## Dependencies
89
89
 
90
- This plugin requires the `tasks` plugin to be enabled. Project tools are co-located in the tasks MCP server — same data domain, same Neo4j connection. If task tools are unavailable (tasks plugin not enabled), tell the user: "I need the tasks plugin to run structured projects. Would you like to enable it?" Do not attempt structured execution without task tools — fall back to a regular conversational approach until the dependency is resolved.
90
+ This plugin requires the `work` plugin to be enabled. Project tools are co-located in the work MCP server — same data domain, same Neo4j connection. If work tools are unavailable (work plugin not enabled), tell the user: "I need the work plugin to run structured projects. Would you like to enable it?" Do not attempt structured execution without work tools — fall back to a regular conversational approach until the dependency is resolved.
@@ -24,7 +24,7 @@ Understand what needs doing. Confirm the deliverable, the deadline (if any), and
24
24
 
25
25
  ### Execute
26
26
 
27
- Do the work. Track progress via task notes. Check `task-ready` if there are any dependencies. Mark the child task complete when done.
27
+ Do the work. Track progress via task notes. Check `work-ready` if there are any dependencies. Mark the child task complete when done.
28
28
 
29
29
  ### Done
30
30
 
@@ -42,7 +42,7 @@ Check for prior learnings: call `memory-search` with a description of the projec
42
42
 
43
43
  ### Execute
44
44
 
45
- Work through the child tasks in dependency order. Before starting each task, check `task-ready` to confirm no blockers or AFFECTS conflicts. Append progress notes as work progresses. If a blocker is discovered mid-execution, create a new child task for it and link via `BLOCKS`.
45
+ Work through the child tasks in dependency order. Before starting each task, check `work-ready` to confirm no blockers or AFFECTS conflicts. Append progress notes as work progresses. If a blocker is discovered mid-execution, create a new child task for it and link via `BLOCKS`.
46
46
 
47
47
  Record phase transitions: `[PROJECT:PHASE] Execute — starting {task name}`.
48
48
 
@@ -5,12 +5,27 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
5
5
  import { z } from "zod";
6
6
  import { readToken, writeToken, validateToken } from "./lib/replicate-key.js";
7
7
  import { imageGenerate } from "./tools/image-generate.js";
8
- const ACCOUNT_ID = process.env.ACCOUNT_ID;
9
- const PLATFORM_ROOT = process.env.PLATFORM_ROOT;
10
- if (!ACCOUNT_ID)
11
- throw new Error("ACCOUNT_ID environment variable is required");
12
- if (!PLATFORM_ROOT)
13
- throw new Error("PLATFORM_ROOT environment variable is required");
8
+ // Plugin-system boot tolerance — see Task 202.
9
+ // MCP servers launch in two contexts: per-account spawn via .mcp.json
10
+ // (ACCOUNT_ID + PLATFORM_ROOT set, tools execute normally) and plugin-system
11
+ // metadata-only spawn (no env, server must answer tools/list so Claude
12
+ // Code's agent loader can populate registry #1). Module-init must never
13
+ // throw. Per-call refusal preserves account isolation in metadata mode.
14
+ const ACCOUNT_ID = process.env.ACCOUNT_ID ?? null;
15
+ const PLATFORM_ROOT = process.env.PLATFORM_ROOT ?? null;
16
+ process.stderr.write(`[replicate] boot accountId=${ACCOUNT_ID ?? "null"} platformRoot=${PLATFORM_ROOT ?? "null"}\n`);
17
+ function refuseNoAccount(toolName) {
18
+ process.stderr.write(`[replicate] tool=${toolName} refuse reason=no-account-context\n`);
19
+ return {
20
+ content: [
21
+ {
22
+ type: "text",
23
+ text: `${toolName} cannot execute: this MCP instance was launched without ACCOUNT_ID/PLATFORM_ROOT (plugin-system metadata-only mode). Per-account writes require both at spawn.`,
24
+ },
25
+ ],
26
+ isError: true,
27
+ };
28
+ }
14
29
  const server = new McpServer({
15
30
  name: "replicate",
16
31
  version: "0.1.0",
@@ -21,6 +36,8 @@ const server = new McpServer({
21
36
  server.tool("replicate-key-store", "Validate and store a Replicate API token. Token must start with r8_.", {
22
37
  token: z.string().describe("Replicate API token (starts with r8_)"),
23
38
  }, async ({ token }) => {
39
+ if (!ACCOUNT_ID)
40
+ return refuseNoAccount("replicate-key-store");
24
41
  // Format check
25
42
  if (!token.startsWith("r8_")) {
26
43
  return {
@@ -61,6 +78,8 @@ server.tool("replicate-key-store", "Validate and store a Replicate API token. To
61
78
  // replicate-key-verify — check stored token validity
62
79
  // ---------------------------------------------------------------------------
63
80
  server.tool("replicate-key-verify", "Read the stored Replicate API token and verify it against the Replicate API.", {}, async () => {
81
+ if (!ACCOUNT_ID)
82
+ return refuseNoAccount("replicate-key-verify");
64
83
  const tokenResult = readToken();
65
84
  if (!tokenResult) {
66
85
  return {
@@ -94,6 +113,8 @@ server.tool("image-generate", [
94
113
  aspectRatio: z.enum(["1:1", "4:3", "3:2", "16:9", "9:16"]).optional().describe("Image aspect ratio (default: 1:1)"),
95
114
  outputFormat: z.enum(["png", "webp", "svg"]).optional().describe("Output format (default: png, svg only with recraft-v4)"),
96
115
  }, async ({ prompt, model, aspectRatio, outputFormat }) => {
116
+ if (!ACCOUNT_ID || !PLATFORM_ROOT)
117
+ return refuseNoAccount("image-generate");
97
118
  return imageGenerate({ prompt, model, aspectRatio: aspectRatio ?? "1:1", outputFormat: outputFormat ?? "png" }, ACCOUNT_ID, PLATFORM_ROOT);
98
119
  });
99
120
  // ---------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -21,9 +21,22 @@ const server = new McpServer({
21
21
  name: "maxy-scheduling",
22
22
  version: "0.1.0",
23
23
  });
24
- const accountId = process.env.ACCOUNT_ID;
25
- if (!accountId) {
26
- throw new Error("ACCOUNT_ID environment variable is required");
24
+ // Plugin-system boot tolerance — see Task 202.
25
+ // Module-init must never throw; plugin-system spawn enumerates tools/list
26
+ // before ACCOUNT_ID is set. Per-call refusal preserves account isolation.
27
+ const accountId = process.env.ACCOUNT_ID ?? null;
28
+ process.stderr.write(`[scheduling] boot accountId=${accountId ?? "null"}\n`);
29
+ function refuseNoAccount(toolName) {
30
+ process.stderr.write(`[scheduling] tool=${toolName} refuse reason=no-account-context\n`);
31
+ return {
32
+ content: [
33
+ {
34
+ type: "text",
35
+ text: `${toolName} cannot execute: this MCP instance was launched without ACCOUNT_ID (plugin-system metadata-only mode). Per-account scheduling requires ACCOUNT_ID at spawn.`,
36
+ },
37
+ ],
38
+ isError: true,
39
+ };
27
40
  }
28
41
  // userId is read at module load and passed to every UserProfile
29
42
  // read. NOT boot-throw on missing — the silent-compaction path
@@ -59,6 +72,8 @@ eagerTool(server, "schedule-event", "Create a scheduled event or appointment. Fo
59
72
  args: z.record(z.unknown()).optional().describe("Arguments to pass to the tool call"),
60
73
  }).optional().describe("Automated action: dispatches an MCP tool call when the event fires. The plugin must exist in platform/plugins/."),
61
74
  }, async (params) => {
75
+ if (!accountId)
76
+ return refuseNoAccount("schedule-event");
62
77
  try {
63
78
  const timezone = await getUserTimezone(accountId, userId);
64
79
  console.error(`[schedule-event] formatted for timezone: ${timezone}`);
@@ -95,6 +110,8 @@ eagerTool(server, "schedule-list", "List scheduled events. Filter by status, dat
95
110
  upcoming: z.boolean().optional().describe("If true, show only scheduled/due events with future dates"),
96
111
  limit: z.number().optional().describe("Max results (default 50)"),
97
112
  }, async (params) => {
113
+ if (!accountId)
114
+ return refuseNoAccount("schedule-list");
98
115
  try {
99
116
  const timezone = await getUserTimezone(accountId, userId);
100
117
  console.error(`[schedule-list] formatted for timezone: ${timezone}`);
@@ -123,6 +140,8 @@ eagerTool(server, "schedule-list", "List scheduled events. Filter by status, dat
123
140
  eagerTool(server, "schedule-get", "Fetch a single event with its full details, notes history, and all graph relationships.", {
124
141
  eventId: z.string().describe("Event ID (UUID)"),
125
142
  }, async ({ eventId }) => {
143
+ if (!accountId)
144
+ return refuseNoAccount("schedule-get");
126
145
  try {
127
146
  const timezone = await getUserTimezone(accountId, userId);
128
147
  console.error(`[schedule-get] formatted for timezone: ${timezone}`);
@@ -184,6 +203,8 @@ eagerTool(server, "schedule-update", "Update an event's properties or append a n
184
203
  args: z.record(z.unknown()).optional().describe("Arguments to pass to the tool call"),
185
204
  }).nullable().optional().describe("Set/replace the automated action, or pass null to clear it"),
186
205
  }, async (params) => {
206
+ if (!accountId)
207
+ return refuseNoAccount("schedule-update");
187
208
  try {
188
209
  await scheduleUpdate({ ...params, accountId });
189
210
  if (params.skipNext) {
@@ -205,6 +226,8 @@ eagerTool(server, "schedule-cancel", "Cancel a scheduled event. For recurring ev
205
226
  eventId: z.string().describe("Event ID (UUID)"),
206
227
  note: z.string().optional().describe("Cancellation reason"),
207
228
  }, async (params) => {
229
+ if (!accountId)
230
+ return refuseNoAccount("schedule-cancel");
208
231
  try {
209
232
  await scheduleCancel({ ...params, accountId });
210
233
  return { content: [{ type: "text", text: `Event cancelled: ${params.eventId}` }] };
@@ -222,6 +245,8 @@ eagerTool(server, "schedule-cancel", "Cancel a scheduled event. For recurring ev
222
245
  eagerTool(server, "time-resolve", "Any activity involving time (date, timestamp, day of week, month, duration) routes through time-resolve before any other reasoning. Returns the user's locale timezone view of the input expression with a human-readable relative delta.", {
223
246
  expression: z.string().describe("ISO 8601 datetime string to convert (e.g. '2026-04-03T11:00:00.000Z')"),
224
247
  }, async ({ expression }) => {
248
+ if (!accountId)
249
+ return refuseNoAccount("time-resolve");
225
250
  try {
226
251
  const timezone = await getUserTimezone(accountId, userId);
227
252
  const result = formatCombined(expression, timezone);
@@ -241,6 +266,8 @@ eagerTool(server, "time-resolve", "Any activity involving time (date, timestamp,
241
266
  eagerTool(server, "schedule-export-ics", "Export one or more scheduled events as an .ics (iCalendar) file. Returns the file path for use with file-attach. Recurring events with daily/weekly/monthly cron patterns produce RRULE; unmappable cron patterns produce individual VEVENTs per occurrence.", {
242
267
  eventIds: z.array(z.string()).min(1).describe("Array of event IDs (UUIDs) to export"),
243
268
  }, async ({ eventIds }) => {
269
+ if (!accountId)
270
+ return refuseNoAccount("schedule-export-ics");
244
271
  try {
245
272
  const result = await scheduleExportIcs(eventIds, accountId);
246
273
  const parts = [
@@ -268,6 +295,8 @@ eagerTool(server, "schedule-export-ics", "Export one or more scheduled events as
268
295
  eagerTool(server, "schedule-import-ics", "Parse an uploaded .ics (iCalendar) file and return structured event data. Does NOT create events — present the extracted events to the user for confirmation, then use schedule-event to create the confirmed ones.", {
269
296
  filePath: z.string().describe("Absolute path to the .ics file (from an attachment upload)"),
270
297
  }, async ({ filePath }) => {
298
+ if (!accountId)
299
+ return refuseNoAccount("schedule-import-ics");
271
300
  try {
272
301
  const result = await scheduleImportIcs(filePath, accountId);
273
302
  if (result.events.length === 0 && result.parseErrors.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAC7E,aAAa,CAAC,YAAY,CAAC,CAAC;AAE5B,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,4EAA4E;AAC5E,wEAAwE;AACxE,uEAAuE;AACvE,8DAA8D;AAC9D,MAAM,MAAM,GAAQ,IAAI,SAAS,CAAC;IAChC,IAAI,EAAE,iBAAiB;IACvB,OAAO,EAAE,OAAO;CACjB,CAAC,CAAC;AAEH,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;AACzC,IAAI,CAAC,SAAS,EAAE,CAAC;IACf,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;AACjE,CAAC;AACD,gEAAgE;AAChE,+DAA+D;AAC/D,uEAAuE;AACvE,mEAAmE;AACnE,0EAA0E;AAC1E,+CAA+C;AAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;AACzC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,SAAS,CAAC;AACtD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,SAAS,CAAC;AAEtD,8EAA8E;AAC9E,0BAA0B;AAC1B,8EAA8E;AAE9E,MAAM,iBAAiB,GAAG,CAAC;KACxB,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;KACpD,QAAQ,EAAE;KACV,QAAQ,CAAC,cAAc,CAAC,CAAC;AAI5B,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,SAAS,CAAC,MAAM,EACd,gBAAgB,EAChB,gTAAgT,EAChT;IACE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC9C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;IAC5D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IACvE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IAC9E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACtE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iGAAiG,CAAC;IAC7I,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mEAAmE,CAAC;IAC7G,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;IACxG,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;QAClF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sEAAsE,CAAC;QACjG,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;KACtF,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iHAAiH,CAAC;CAC1I,EACD,KAAK,EAAE,MAUN,EAAE,EAAE;IACH,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC1D,OAAO,CAAC,KAAK,CAAC,4CAA4C,QAAQ,EAAE,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;YACjC,GAAG,MAAM;YACT,SAAS;YACT,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,SAAS;YAC1C,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,gBAAgB,EAAE;SAC5E,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,CAAC,mBAAmB,MAAM,CAAC,IAAI,UAAU,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;QAC1E,KAAK,CAAC,IAAI,CAAC,WAAW,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QACpE,IAAI,MAAM,CAAC,UAAU;YAAE,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QAClE,IAAI,MAAM,CAAC,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,aAAa,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QACxF,IAAI,MAAM,CAAC,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACvF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IAC1E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,2BAA2B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACzH,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E,SAAS,CAAC,MAAM,EACd,eAAe,EACf,oGAAoG,EACpG;IACE,MAAM,EAAE,iBAAiB;IACzB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;IAC7F,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;IAC5F,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;IACtG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;CAClE,EACD,KAAK,EAAE,MAAgG,EAAE,EAAE;IACzG,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC1D,OAAO,CAAC,KAAK,CAAC,2CAA2C,QAAQ,EAAE,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAC5D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,8BAA8B,EAAE,CAAC,EAAE,CAAC;QACxF,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC7B,MAAM,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,cAAc,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9E,OAAO,GAAG,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,GAAG,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC;QACrI,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,iBAAiB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IAC7G,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,gBAAgB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YAC9G,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,SAAS,CAAC,MAAM,EACd,cAAc,EACd,yFAAyF,EACzF;IACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;CAChD,EACD,KAAK,EAAE,EAAE,OAAO,EAAuB,EAAE,EAAE;IACzC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC1D,OAAO,CAAC,KAAK,CAAC,0CAA0C,QAAQ,EAAE,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,oBAAoB,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;QACvF,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;YAC7C,CAAC,CAAC,KAAK,CAAC,aAAa;iBAChB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;iBAC9E,IAAI,CAAC,IAAI,CAAC;YACf,CAAC,CAAC,UAAU,CAAC;QAEf,MAAM,KAAK,GAAG;YACZ,UAAU,KAAK,CAAC,IAAI,EAAE;YACtB,OAAO,KAAK,CAAC,OAAO,EAAE;YACtB,WAAW,KAAK,CAAC,WAAW,EAAE;YAC9B,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,gBAAgB,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI;YAC9D,WAAW,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE;YACtD,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;YACzE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI;YACrD,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI;YAC3D,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI;YACrD,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;YAC7E,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,mBAAmB,cAAc,CAAC,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;YAC/F,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI;YACxC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI;YAC/C,EAAE;YACF,mBAAmB,QAAQ,EAAE;YAC7B,EAAE;YACF,YAAY,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,eAAe,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE;SAChH,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAElD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IAC1E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,eAAe,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YAC7G,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,SAAS,CAAC,MAAM,EACd,iBAAiB,EACjB,6NAA6N,EAC7N;IACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAC/C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IACvD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAC9D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IACtE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IAClE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;IACxD,WAAW,EAAE,iBAAiB;IAC9B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IACjE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC7D,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;IAC1F,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;IACrF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QAChE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;QACvE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;KACtF,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;CAChG,EACD,KAAK,EAAE,MAaN,EAAE,EAAE;IACH,IAAI,CAAC;QACH,MAAM,cAAc,CAAC,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAC/C,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,qCAAqC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;QAC/G,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,kBAAkB,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;IAC5F,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,kBAAkB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YAChH,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,SAAS,CAAC,MAAM,EACd,iBAAiB,EACjB,gJAAgJ,EAChJ;IACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAC/C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;CAC5D,EACD,KAAK,EAAE,MAA0C,EAAE,EAAE;IACnD,IAAI,CAAC;QACH,MAAM,cAAc,CAAC,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAC/C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,oBAAoB,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;IAC9F,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,kBAAkB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YAChH,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,SAAS,CAAC,MAAM,EACd,cAAc,EACd,2OAA2O,EAC3O;IACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uEAAuE,CAAC;CACzG,EACD,KAAK,EAAE,EAAE,UAAU,EAA0B,EAAE,EAAE;IAC/C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,cAAc,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACpD,OAAO,CAAC,KAAK,CAAC,kBAAkB,UAAU,MAAM,MAAM,KAAK,QAAQ,GAAG,CAAC,CAAC;QACxE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IAChE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,wBAAwB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACtH,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E,SAAS,CAAC,MAAM,EACd,qBAAqB,EACrB,8PAA8P,EAC9P;IACE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,sCAAsC,CAAC;CACtF,EACD,KAAK,EAAE,EAAE,QAAQ,EAA0B,EAAE,EAAE;IAC7C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAG;YACZ,YAAY,MAAM,CAAC,UAAU,iBAAiB,MAAM,CAAC,UAAU,EAAE;SAClE,CAAC;QACF,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,WAAW,qCAAqC,CAAC,CAAC;QACnG,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,aAAa,wDAAwD,CAAC,CAAC;QAC1H,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvF,KAAK,CAAC,IAAI,CAAC,oCAAoC,MAAM,CAAC,UAAU,yCAAyC,CAAC,CAAC;QAC3G,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IAC1E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,kBAAkB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YAChH,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E,SAAS,CAAC,MAAM,EACd,qBAAqB,EACrB,qNAAqN,EACrN;IACE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;CAC5F,EACD,KAAK,EAAE,EAAE,QAAQ,EAAwB,EAAE,EAAE;IAC3C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC5D,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,kBAAkB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBAC7F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAa,CAAC,UAAU,MAAM,CAAC,MAAM,CAAC,MAAM,kBAAkB,MAAM,CAAC,QAAQ,KAAK,CAAC,CAAC;QAC/F,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACtC,IAAI,CAAC,CAAC,KAAK;gBAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAC/C,IAAI,CAAC,CAAC,QAAQ;gBAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC1D,IAAI,CAAC,CAAC,UAAU;gBAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;YAChE,IAAI,CAAC,CAAC,WAAW;gBAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACrF,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/B,CAAC;QAED,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,uGAAuG,CAAC,CAAC;QAEpH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IAC1E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,kBAAkB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YAChH,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CACF,CAAC;AAEF,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;IAC9B,MAAM,WAAW,EAAE,CAAC;IACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAC7C,MAAO,MAAoB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@ The briefing has four sections, in this fixed order. Sections with no content co
21
21
 
22
22
  ### 1. Outstanding commitments
23
23
 
24
- Call `task-list` filtered to `status: open` AND (`dueDate <= today` OR `priority: high`). Order by due date ascending, then by priority. List the top five with one line each: title, due date, related entity. If more than five qualify, end the list with "+ N more open" and the total count.
24
+ Call `work-list` filtered to `status: open` AND (`dueDate <= today` OR `priority: high`). Order by due date ascending, then by priority. List the top five with one line each: title, due date, related entity. If more than five qualify, end the list with "+ N more open" and the total count.
25
25
 
26
26
  ### 2. Today's calendar
27
27
 
@@ -63,7 +63,7 @@ The whole briefing must fit in one screen. If any section would overflow, collap
63
63
 
64
64
  ## Failure modes
65
65
 
66
- - **`task-list` empty.** Section 1 collapses to "nothing outstanding".
66
+ - **`work-list` empty.** Section 1 collapses to "nothing outstanding".
67
67
  - **`schedule-list` empty.** Section 2 collapses to "nothing in the diary today".
68
68
  - **`memory-rank` returns fewer than five.** List what it returned; do not pad.
69
69
  - **`profile-read` shows the owner has no `lastActiveSession`.** Section 4 collapses to "no prior session recorded" rather than reporting from training data.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tasks",
3
- "description": "Graph-backed task lifecycle management. Task nodes in Neo4j with dependency tracking (BLOCKS), conflict detection (AFFECTS), and a parallel safety query (task-ready). Surfaced by memory-search.",
3
+ "description": "tasks plugin",
4
4
  "version": "0.1.0",
5
5
  "author": {
6
6
  "name": "Rubytech LLC"