@rubytech/create-realagent 1.0.640 → 1.0.643

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 (148) hide show
  1. package/dist/index.js +7 -3
  2. package/package.json +1 -1
  3. package/payload/platform/plugins/memory/PLUGIN.md +8 -12
  4. package/payload/platform/plugins/memory/mcp/dist/index.js +19 -47
  5. package/payload/platform/plugins/memory/mcp/dist/index.js.map +1 -1
  6. package/payload/platform/plugins/memory/mcp/dist/lib/graph-prune.d.ts +20 -48
  7. package/payload/platform/plugins/memory/mcp/dist/lib/graph-prune.d.ts.map +1 -1
  8. package/payload/platform/plugins/memory/mcp/dist/lib/graph-prune.js +21 -287
  9. package/payload/platform/plugins/memory/mcp/dist/lib/graph-prune.js.map +1 -1
  10. package/payload/platform/plugins/memory/references/graph-primitives.md +24 -13
  11. package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.js +46 -2
  12. package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.js.map +1 -1
  13. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.d.ts.map +1 -1
  14. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.js +9 -0
  15. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.js.map +1 -1
  16. package/payload/platform/plugins/workflows/mcp/dist/index.js +16 -0
  17. package/payload/platform/plugins/workflows/mcp/dist/index.js.map +1 -1
  18. package/payload/platform/plugins/workflows/mcp/dist/lib/active-runs.d.ts +38 -0
  19. package/payload/platform/plugins/workflows/mcp/dist/lib/active-runs.d.ts.map +1 -0
  20. package/payload/platform/plugins/workflows/mcp/dist/lib/active-runs.js +82 -0
  21. package/payload/platform/plugins/workflows/mcp/dist/lib/active-runs.js.map +1 -0
  22. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.d.ts.map +1 -1
  23. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.js +35 -0
  24. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.js.map +1 -1
  25. package/payload/server/public/assets/{admin-jpGCzN83.js → admin-BTfeGAIg.js} +41 -41
  26. package/payload/server/public/assets/{arc-DaD1u5gI.js → arc-DcrodP5U.js} +1 -1
  27. package/payload/server/public/assets/architecture-YZFGNWBL-C38eyeNF.js +1 -0
  28. package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-OaixqJSY.js → architectureDiagram-Q4EWVU46-Cvo_8X6C.js} +1 -1
  29. package/payload/server/public/assets/{blockDiagram-DXYQGD6D-ChbWwdfi.js → blockDiagram-DXYQGD6D-CEK06TEn.js} +1 -1
  30. package/payload/server/public/assets/{c4Diagram-AHTNJAMY-6r7dvkBG.js → c4Diagram-AHTNJAMY-QjYUSwTU.js} +1 -1
  31. package/payload/server/public/assets/channel-D0dIwjlN.js +1 -0
  32. package/payload/server/public/assets/{chunk-2KRD3SAO-DNeXC6EU.js → chunk-2KRD3SAO-BBifNfFc.js} +1 -1
  33. package/payload/server/public/assets/{chunk-336JU56O-CZH22klX.js → chunk-336JU56O-B-N_zWuf.js} +2 -2
  34. package/payload/server/public/assets/chunk-426QAEUC-C8oXXITm.js +1 -0
  35. package/payload/server/public/assets/{chunk-4BX2VUAB-IcfD9Mfv.js → chunk-4BX2VUAB-CtDQKj9B.js} +1 -1
  36. package/payload/server/public/assets/{chunk-4TB4RGXK-CKA9rXZu.js → chunk-4TB4RGXK-Dnu9n3p1.js} +1 -1
  37. package/payload/server/public/assets/{chunk-55IACEB6-B65N4qpl.js → chunk-55IACEB6-DSLoJJSj.js} +1 -1
  38. package/payload/server/public/assets/{chunk-5FUZZQ4R-u7p0S5bJ.js → chunk-5FUZZQ4R-rx-IvMNE.js} +1 -1
  39. package/payload/server/public/assets/{chunk-5PVQY5BW-B1E88VcH.js → chunk-5PVQY5BW-B9w9AKCS.js} +1 -1
  40. package/payload/server/public/assets/{chunk-67CJDMHE-DIue23pI.js → chunk-67CJDMHE-C1yEjtiu.js} +1 -1
  41. package/payload/server/public/assets/{chunk-7N4EOEYR-BQ9OzsfS.js → chunk-7N4EOEYR-C2f3zeVH.js} +1 -1
  42. package/payload/server/public/assets/{chunk-AA7GKIK3-RpSCHdZM.js → chunk-AA7GKIK3-B_U-NsDK.js} +1 -1
  43. package/payload/server/public/assets/{chunk-BSJP7CBP-Dg2E_8Wn.js → chunk-BSJP7CBP-DM6_wafW.js} +1 -1
  44. package/payload/server/public/assets/{chunk-CIAEETIT-BKZA8eJP.js → chunk-CIAEETIT-DG7WkfNj.js} +1 -1
  45. package/payload/server/public/assets/{chunk-EDXVE4YY-jDBKFDJB.js → chunk-EDXVE4YY-aS3_rdwQ.js} +1 -1
  46. package/payload/server/public/assets/{chunk-ENJZ2VHE-CAHIipTH.js → chunk-ENJZ2VHE-r1I0uoCf.js} +1 -1
  47. package/payload/server/public/assets/{chunk-FMBD7UC4-FHlW2hpP.js → chunk-FMBD7UC4-CTm3YRE5.js} +1 -1
  48. package/payload/server/public/assets/{chunk-FOC6F5B3-CAIHldV7.js → chunk-FOC6F5B3-CAIttx3K.js} +1 -1
  49. package/payload/server/public/assets/{chunk-ICPOFSXX-C9ojfLDm.js → chunk-ICPOFSXX-DQFV4c1l.js} +2 -2
  50. package/payload/server/public/assets/{chunk-K5T4RW27-HA4lma0b.js → chunk-K5T4RW27-B2WCPQBa.js} +1 -1
  51. package/payload/server/public/assets/{chunk-KGLVRYIC-CimijL8o.js → chunk-KGLVRYIC-C6w2sUOF.js} +1 -1
  52. package/payload/server/public/assets/{chunk-LIHQZDEY-B5hk7dNX.js → chunk-LIHQZDEY-BT1hcDTK.js} +1 -1
  53. package/payload/server/public/assets/{chunk-ORNJ4GCN-BVm-YmZh.js → chunk-ORNJ4GCN-Brl32BSe.js} +1 -1
  54. package/payload/server/public/assets/{chunk-OYMX7WX6-Bc8ZyHQH.js → chunk-OYMX7WX6-BCO6n1CX.js} +1 -1
  55. package/payload/server/public/assets/chunk-QZHKN3VN-BE_lylks.js +1 -0
  56. package/payload/server/public/assets/{chunk-U2HBQHQK-CgwbVvji.js → chunk-U2HBQHQK-BvgC0fpb.js} +1 -1
  57. package/payload/server/public/assets/{chunk-X2U36JSP-D4PiRakQ.js → chunk-X2U36JSP-3yLdcqYf.js} +1 -1
  58. package/payload/server/public/assets/{chunk-XPW4576I-DgiaNQ32.js → chunk-XPW4576I-D876RWxK.js} +1 -1
  59. package/payload/server/public/assets/{chunk-YZCP3GAM-jgwS2uNT.js → chunk-YZCP3GAM-CiuA4hOC.js} +1 -1
  60. package/payload/server/public/assets/{chunk-ZZ45TVLE-UdCCrEj5.js → chunk-ZZ45TVLE-COjEBPzv.js} +1 -1
  61. package/payload/server/public/assets/classDiagram-6PBFFD2Q-DH37CWIF.js +1 -0
  62. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-DNJ7bv8r.js +1 -0
  63. package/payload/server/public/assets/clone-rrGuX3ZR.js +1 -0
  64. package/payload/server/public/assets/{cose-bilkent-S5V4N54A-D8laakap.js → cose-bilkent-S5V4N54A-Dap0yL0o.js} +1 -1
  65. package/payload/server/public/assets/{dagre-3T6_8Ajq.js → dagre-DBbjK-Cf.js} +1 -1
  66. package/payload/server/public/assets/{dagre-KV5264BT-CzjS08zx.js → dagre-KV5264BT-DEia9UJj.js} +1 -1
  67. package/payload/server/public/assets/data-DHhDRGaC.js +1 -0
  68. package/payload/server/public/assets/{diagram-5BDNPKRD-eG7XwxOn.js → diagram-5BDNPKRD-CWSP9MzJ.js} +1 -1
  69. package/payload/server/public/assets/{diagram-G4DWMVQ6-DmVrtCUt.js → diagram-G4DWMVQ6-DWRsfitL.js} +1 -1
  70. package/payload/server/public/assets/{diagram-MMDJMWI5-ER1KP2RD.js → diagram-MMDJMWI5-n-jyzS4D.js} +1 -1
  71. package/payload/server/public/assets/{diagram-TYMM5635-kH-bn3pm.js → diagram-TYMM5635-CLPTbfLq.js} +1 -1
  72. package/payload/server/public/assets/{dist-Dl3zB445.js → dist-Tkw8EOuG.js} +1 -1
  73. package/payload/server/public/assets/{erDiagram-SMLLAGMA-Clya83Yf.js → erDiagram-SMLLAGMA-CmPC9Cnc.js} +1 -1
  74. package/payload/server/public/assets/{flatten-DOi5FhnR.js → flatten-Db2kUB5j.js} +1 -1
  75. package/payload/server/public/assets/{flowDiagram-DWJPFMVM-BG1UIazn.js → flowDiagram-DWJPFMVM-DKMNmUbX.js} +1 -1
  76. package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-BF6t7cgR.js → ganttDiagram-T4ZO3ILL-C5-y3w-l.js} +1 -1
  77. package/payload/server/public/assets/gitGraph-7Q5UKJZL-CCjgA3FG.js +1 -0
  78. package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-GeyVCma5.js → gitGraphDiagram-UUTBAWPF-D9hG5kTg.js} +1 -1
  79. package/payload/server/public/assets/{graphlib-CvvxOMJO.js → graphlib-StP6GUhM.js} +1 -1
  80. package/payload/server/public/assets/info-OMHHGYJF-B65K6dQJ.js +1 -0
  81. package/payload/server/public/assets/infoDiagram-42DDH7IO-DUJfTICr.js +2 -0
  82. package/payload/server/public/assets/{isEmpty-BlYSjjLF.js → isEmpty-CXH_nKTs.js} +1 -1
  83. package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-CC_sxiqJ.js → ishikawaDiagram-UXIWVN3A--K4KOS61.js} +1 -1
  84. package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-T5_FJJp9.js → journeyDiagram-VCZTEJTY-DE-28YrW.js} +1 -1
  85. package/payload/server/public/assets/jsx-runtime-SjVUZj3J.js +9 -0
  86. package/payload/server/public/assets/{kanban-definition-6JOO6SKY-DmX2Qjbn.js → kanban-definition-6JOO6SKY-CxSHjau2.js} +1 -1
  87. package/payload/server/public/assets/{line-N5bPNRcv.js → line-DbcqYIG0.js} +1 -1
  88. package/payload/server/public/assets/{linear-2x7ZHX-K.js → linear-DXHoZSN3.js} +1 -1
  89. package/payload/server/public/assets/{mermaid-parser.core-C66sw0ru.js → mermaid-parser.core-CNGUA13J.js} +2 -2
  90. package/payload/server/public/assets/{mermaid.core-C_cBOsxO.js → mermaid.core-IQgx_upQ.js} +3 -3
  91. package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-gBgI6iwA.js → mindmap-definition-QFDTVHPH-BT9Up6-C.js} +1 -1
  92. package/payload/server/public/assets/{ordinal-Crx1uav8.js → ordinal-CN3oz6oW.js} +1 -1
  93. package/payload/server/public/assets/packet-4T2RLAQJ-fp5ishAK.js +1 -0
  94. package/payload/server/public/assets/pie-ZZUOXDRM-Bc3VMuuU.js +1 -0
  95. package/payload/server/public/assets/{pieDiagram-DEJITSTG-DU2SKMGa.js → pieDiagram-DEJITSTG-BuewQTi6.js} +1 -1
  96. package/payload/server/public/assets/public-C-nsHZgC.js +5 -0
  97. package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-CfTfCdKE.js → quadrantDiagram-34T5L4WZ-Cu8y2zQL.js} +1 -1
  98. package/payload/server/public/assets/radar-PYXPWWZC-D9jy5QAa.js +1 -0
  99. package/payload/server/public/assets/{reduce-DhQ6Q49z.js → reduce-SDh8_UdG.js} +1 -1
  100. package/payload/server/public/assets/{requirementDiagram-MS252O5E-CdJ1ecPK.js → requirementDiagram-MS252O5E-DiT9bo27.js} +1 -1
  101. package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-C6oTo_BW.js → sankeyDiagram-XADWPNL6-EkRnGTxM.js} +1 -1
  102. package/payload/server/public/assets/search-BzKUsdMm.js +1 -0
  103. package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-DZhUqa93.js → sequenceDiagram-FGHM5R23-BUiQA3SI.js} +1 -1
  104. package/payload/server/public/assets/{src-CE18leCm.js → src-DQQCRlaQ.js} +1 -1
  105. package/payload/server/public/assets/{stateDiagram-FHFEXIEX-BHHHyE3Q.js → stateDiagram-FHFEXIEX-Fij35Tic.js} +1 -1
  106. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-DQzhSd8K.js +1 -0
  107. package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-CO7-xxpE.js → timeline-definition-GMOUNBTQ-BMsyr7wU.js} +1 -1
  108. package/payload/server/public/assets/treeView-SZITEDCU-CHyRL9e4.js +1 -0
  109. package/payload/server/public/assets/treemap-W4RFUUIX-DpQ_FOO6.js +1 -0
  110. package/payload/server/public/assets/useVoiceRecorder-t2l8eU6m.js +36 -0
  111. package/payload/server/public/assets/{vennDiagram-DHZGUBPP-CLOInE0r.js → vennDiagram-DHZGUBPP-6fegYFB3.js} +1 -1
  112. package/payload/server/public/assets/wardley-RL74JXVD-CWBIAatW.js +1 -0
  113. package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-BjgSwG0b.js → wardleyDiagram-NUSXRM2D-BtJ_B35h.js} +1 -1
  114. package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-B3z4BK4L.js → xychartDiagram-5P7HB3ND-DJ20B4NY.js} +1 -1
  115. package/payload/server/public/data.html +17 -0
  116. package/payload/server/public/index.html +7 -5
  117. package/payload/server/public/public.html +6 -5
  118. package/payload/server/server.js +133 -120
  119. package/payload/server/public/assets/architecture-YZFGNWBL-BUDIBJAP.js +0 -1
  120. package/payload/server/public/assets/channel-BrpIlIyG.js +0 -1
  121. package/payload/server/public/assets/chunk-426QAEUC-GSccNhhE.js +0 -1
  122. package/payload/server/public/assets/chunk-QZHKN3VN-tM7_0fxy.js +0 -1
  123. package/payload/server/public/assets/classDiagram-6PBFFD2Q-C4ZqhHGM.js +0 -1
  124. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-DiXqUWgc.js +0 -1
  125. package/payload/server/public/assets/clone-BdpG6seo.js +0 -1
  126. package/payload/server/public/assets/gitGraph-7Q5UKJZL-DDaWNf-D.js +0 -1
  127. package/payload/server/public/assets/info-OMHHGYJF-CzeItRxz.js +0 -1
  128. package/payload/server/public/assets/infoDiagram-42DDH7IO-CI_73SMs.js +0 -2
  129. package/payload/server/public/assets/packet-4T2RLAQJ-B22Ofvhw.js +0 -1
  130. package/payload/server/public/assets/pie-ZZUOXDRM-Pt4vBFsr.js +0 -1
  131. package/payload/server/public/assets/public-DdVq1Jag.js +0 -5
  132. package/payload/server/public/assets/radar-PYXPWWZC-C6F-a-Hg.js +0 -1
  133. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-5wdzy-za.js +0 -1
  134. package/payload/server/public/assets/treeView-SZITEDCU-BHz6YkPq.js +0 -1
  135. package/payload/server/public/assets/treemap-W4RFUUIX-qbRo1jie.js +0 -1
  136. package/payload/server/public/assets/useVoiceRecorder-3Qblv7wH.js +0 -44
  137. package/payload/server/public/assets/wardley-RL74JXVD-BVKDrbVC.js +0 -1
  138. /package/payload/server/public/assets/{_baseFor-DxqHO4yN.js → _baseFor-D71p92tl.js} +0 -0
  139. /package/payload/server/public/assets/{array-B0pZ4ajb.js → array-Bs_owIvv.js} +0 -0
  140. /package/payload/server/public/assets/{chunk-Be6NvmcD.js → chunk-lgnzUk6H.js} +0 -0
  141. /package/payload/server/public/assets/{cytoscape.esm-yP0g-0RD.js → cytoscape.esm-DLG5qhup.js} +0 -0
  142. /package/payload/server/public/assets/{defaultLocale-DOAzocMZ.js → defaultLocale-Du_2bjyv.js} +0 -0
  143. /package/payload/server/public/assets/{init-JRXXbB84.js → init-BYLBkHX_.js} +0 -0
  144. /package/payload/server/public/assets/{useVoiceRecorder-BNLXzSN4.css → jsx-runtime-BNLXzSN4.css} +0 -0
  145. /package/payload/server/public/assets/{katex-zjckjCBG.js → katex-lkho_UhZ.js} +0 -0
  146. /package/payload/server/public/assets/{path-DX61D_oX.js → path-BO54iFkf.js} +0 -0
  147. /package/payload/server/public/assets/{preload-helper-rov5CBGT.js → preload-helper-DWTEM3RW.js} +0 -0
  148. /package/payload/server/public/assets/{rough.esm-Cs8YDIX4.js → rough.esm-BCiZEpQC.js} +0 -0
@@ -1,72 +1,33 @@
1
1
  /**
2
- * graph-prune shared helpers for the daily graph-hygiene cron and on-demand tools.
2
+ * Deny-list storage + agent-directed expunge helper.
3
3
  *
4
- * Two classes of action:
5
- * 1. Autonomous nulls — string properties containing a deny-list value (safety-ceiling gated, audit entry)
6
- * 2. Flag-only exact + near-duplicate detection, contradictions (no auto-merge per user decision 2026-04-19)
4
+ * Historical note: this file once hosted `runPrune`, a four-rule autonomous
5
+ * engine (orphan-delete, deny-list null, candidate-merge flag, contradiction
6
+ * flag) invoked by a 03:00 cron and the `graph-prune-run` MCP tool. The
7
+ * 2026-04-20 incident — one `graph-prune-run` call wiped nodeId=1
8
+ * `OnboardingState` plus 18 unrelated nodes via the orphan-delete rule — ended
9
+ * the autonomous-rule doctrine for graph hygiene. The LLM agent now applies
10
+ * discretion on what to null / delete / flag, using `memory-update`,
11
+ * `memory-delete` (soft-delete per Task 576), and `conversation-memory-expunge`
12
+ * on a per-case basis. The operator-curated deny-list remains as a stored
13
+ * signal the agent reads and reasons about; nothing auto-applies it.
7
14
  *
8
- * Conversation-bound :Memory nodes get the same deny-list null treatment plus
9
- * are the target of the conversation-memory-expunge manual tool.
10
- *
11
- * No orphan-delete rule. "Has no relationships" is not a deletion criterion —
12
- * many legitimate node types (OnboardingState, configuration nodes, freshly-
13
- * discovered Persons before edges land) are standalone by design or by timing.
14
- * On 2026-04-20 the prior orphan-delete rule wiped nodeId=1 OnboardingState
15
- * and 18 unrelated nodes during a single graph-prune-run; deletion-by-shape
16
- * is no longer a sanctioned action class.
17
- *
18
- * Per the user's "deterministic = shell script" doctrine, the cron is a
19
- * Node script that runs Cypher queries with no LLM in the per-rule loop.
20
- * Rule decisions are pure data: canonical keys, deny-list strings.
21
- * The runPrune function is the same code path the cron and graph-prune-run
22
- * MCP tool both invoke, so behaviour matches whether the trigger is a
23
- * 03:00 cron or an operator chat command.
24
- *
25
- * Safety ceiling: any single rule that would touch more than 5 % of total
26
- * account nodes aborts that rule and emits [graph:prune:ceiling-tripped].
27
- * Other rules in the same run continue; the ceiling protects against a
28
- * deny-list typo or schema drift nuking legitimate data.
15
+ * What this file still exports:
16
+ * - `DenyList`, `loadDenylist`, `saveDenylist`, `denylistPath` operator
17
+ * curation storage for the `graph-prune-denylist-{add,list,remove}` tools.
18
+ * Reads are advisory context for the agent, not automatic hits.
19
+ * - `resolveConfigDir` brand config-dir resolver, shared with other plugins.
20
+ * - `expungeConversationMemory` the helper behind the manual
21
+ * `conversation-memory-expunge` tool. Agent-directed: caller passes a
22
+ * conversationId + pattern, the helper nulls matching string properties on
23
+ * `:Memory` nodes linked to that conversation. No bulk logic.
29
24
  */
30
25
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
31
26
  import { resolve } from "node:path";
32
27
  import { homedir } from "node:os";
33
- const DEFAULT_CONFIG = {
34
- enabled: true,
35
- runHour: 3,
36
- safetyCeilingPercent: 5,
37
- };
38
- // ---------------------------------------------------------------------------
39
- // Config + deny-list paths
40
- //
41
- // Both files live under ${configDir} (e.g. ~/.maxy/) so they are stable across
42
- // upgrades and shared across accounts on the device. Per-account override via
43
- // account-scoped subdirs is left for a future task — Phase 0 is single-account
44
- // in practice and the deny-list is a coarse "this string is poison" instrument.
45
- // ---------------------------------------------------------------------------
46
- export function configPath(configDir) {
47
- return resolve(configDir, "graph-prune.config.json");
48
- }
49
28
  export function denylistPath(configDir) {
50
29
  return resolve(configDir, "graph-prune-denylist.json");
51
30
  }
52
- export function loadConfig(configDir) {
53
- const path = configPath(configDir);
54
- if (!existsSync(path))
55
- return { ...DEFAULT_CONFIG };
56
- try {
57
- const raw = JSON.parse(readFileSync(path, "utf-8"));
58
- return { ...DEFAULT_CONFIG, ...raw };
59
- }
60
- catch (err) {
61
- // Malformed config falls back to defaults but the failure is loud.
62
- process.stderr.write(`[graph-prune:config] failed to parse ${path}: ${err instanceof Error ? err.message : String(err)} — using defaults\n`);
63
- return { ...DEFAULT_CONFIG };
64
- }
65
- }
66
- export function saveConfig(configDir, config) {
67
- mkdirSync(configDir, { recursive: true });
68
- writeFileSync(configPath(configDir), JSON.stringify(config, null, 2) + "\n", "utf-8");
69
- }
70
31
  export function loadDenylist(configDir) {
71
32
  const path = denylistPath(configDir);
72
33
  if (!existsSync(path)) {
@@ -80,7 +41,7 @@ export function loadDenylist(configDir) {
80
41
  };
81
42
  }
82
43
  catch (err) {
83
- process.stderr.write(`[graph-prune:denylist] failed to parse ${path}: ${err instanceof Error ? err.message : String(err)} — treating as empty\n`);
44
+ process.stderr.write(`[denylist] failed to parse ${path}: ${err instanceof Error ? err.message : String(err)} — treating as empty\n`);
84
45
  return { values: [], updatedAt: new Date(0).toISOString() };
85
46
  }
86
47
  }
@@ -103,233 +64,6 @@ export function resolveConfigDir() {
103
64
  }
104
65
  return resolve(homedir(), brand.configDir);
105
66
  }
106
- const CANONICAL_KEYS = [
107
- { label: "Person", keyTuples: [["email"], ["phone"]] },
108
- { label: "LocalBusiness", keyTuples: [["name"]] },
109
- { label: "Tunnel", keyTuples: [["tunnelId"]] },
110
- { label: "Account", keyTuples: [["accountId"]] },
111
- { label: "Conversation", keyTuples: [["conversationId"]] },
112
- ];
113
- // ---------------------------------------------------------------------------
114
- // Helpers
115
- // ---------------------------------------------------------------------------
116
- function logLine(line) {
117
- process.stderr.write(line.endsWith("\n") ? line : line + "\n");
118
- }
119
- function tripsCeiling(wouldAffect, totalNodes, ceilingPercent) {
120
- if (totalNodes === 0)
121
- return false;
122
- return (wouldAffect / totalNodes) * 100 > ceilingPercent;
123
- }
124
- export async function runPrune(driver, accountId, config, denylist, opts = {}) {
125
- const dryRun = opts.dryRun ?? false;
126
- const t0 = Date.now();
127
- const summary = {
128
- accountId,
129
- totalNodes: 0,
130
- denylistNulled: 0,
131
- conversationMemoryNulled: 0,
132
- candidateMergesFlagged: 0,
133
- contradictionsFlagged: 0,
134
- ceilingTripped: [],
135
- elapsedMs: 0,
136
- dryRun,
137
- };
138
- const session = driver.session();
139
- try {
140
- // Total node count for safety ceiling.
141
- const totalRes = await session.run("MATCH (n) WHERE n.accountId = $accountId RETURN count(n) AS c", { accountId });
142
- summary.totalNodes = Number(totalRes.records[0]?.get("c") ?? 0);
143
- logLine(`[graph:prune:start] account=${accountId} totalNodes=${summary.totalNodes} dryRun=${dryRun} denylistSize=${denylist.values.length}`);
144
- if (summary.totalNodes === 0) {
145
- logLine(`[graph:prune:summary] account=${accountId} nulled=0 convNulled=0 flagged=0 contradictions=0 elapsed=${Date.now() - t0}ms (empty graph)`);
146
- summary.elapsedMs = Date.now() - t0;
147
- return summary;
148
- }
149
- // No orphan-delete rule. "Has no relationships" is not a deletion
150
- // criterion — many legitimate node types (OnboardingState, freshly
151
- // MERGE'd Persons before edges land, any standalone-config pattern)
152
- // lack edges by design or by timing, and deleting them on a 7-day
153
- // timer is a data-loss event. See the file header for the 2026-04-20
154
- // incident. Removal intents now go through memory-delete (single
155
- // node, explicit elementId) or contact-erase (GDPR cascade).
156
- // -----------------------------------------------------------------------
157
- // Rule 1: deny-list null
158
- //
159
- // Scan every node for string properties whose value contains any deny-list
160
- // entry (substring match). Null those properties, append an audit entry to
161
- // a per-node `_denylistAudit` JSON-encoded property. Excludes the audit
162
- // property itself from the scan to avoid runaway re-matching on stored
163
- // history.
164
- // -----------------------------------------------------------------------
165
- if (denylist.values.length > 0) {
166
- const matchingRes = await session.run(`MATCH (n)
167
- WHERE n.accountId = $accountId
168
- WITH n, [k IN keys(n) WHERE k <> '_denylistAudit'
169
- AND k <> 'embedding'
170
- AND apoc.meta.cypher.isType(n[k], 'STRING')
171
- AND any(deny IN $denylist WHERE n[k] CONTAINS deny)] AS hits
172
- WHERE size(hits) > 0
173
- RETURN id(n) AS nid, labels(n) AS labels, hits LIMIT 5000`, { accountId, denylist: denylist.values }).catch(async (apocErr) => {
174
- // APOC may be unavailable on minimal Neo4j installs; fall back to a
175
- // pure-Cypher type check that is slower but functional.
176
- process.stderr.write(`[graph:prune:denylist] APOC unavailable (${apocErr instanceof Error ? apocErr.message : String(apocErr)}); using pure-Cypher fallback\n`);
177
- return session.run(`MATCH (n)
178
- WHERE n.accountId = $accountId
179
- WITH n, [k IN keys(n) WHERE k <> '_denylistAudit'
180
- AND k <> 'embedding'
181
- AND any(deny IN $denylist WHERE
182
- CASE
183
- WHEN n[k] IS NULL THEN false
184
- WHEN toString(n[k]) = n[k] THEN n[k] CONTAINS deny
185
- ELSE false
186
- END)] AS hits
187
- WHERE size(hits) > 0
188
- RETURN id(n) AS nid, labels(n) AS labels, hits LIMIT 5000`, { accountId, denylist: denylist.values });
189
- });
190
- const matchCount = matchingRes.records.length;
191
- if (matchCount > 0) {
192
- if (tripsCeiling(matchCount, summary.totalNodes, config.safetyCeilingPercent)) {
193
- logLine(`[graph:prune:ceiling-tripped] rule=denylist-null wouldAffect=${matchCount} totalNodes=${summary.totalNodes} ceiling=${config.safetyCeilingPercent}%`);
194
- summary.ceilingTripped.push("denylist-null");
195
- }
196
- else {
197
- logLine(`[graph:prune:rule-start] rule=denylist-null nodes=${matchCount}`);
198
- for (const r of matchingRes.records) {
199
- const nid = Number(r.get("nid"));
200
- const labels = r.get("labels").join(",");
201
- const hits = r.get("hits");
202
- for (const propKey of hits) {
203
- logLine(`[graph:prune:action] rule=denylist-null op=null nodeId=${nid} labels=${labels} property=${propKey}`);
204
- }
205
- if (!dryRun) {
206
- const auditEntry = JSON.stringify({
207
- ts: new Date().toISOString(),
208
- properties: hits,
209
- denylistMatches: denylist.values,
210
- });
211
- const setClauses = hits.map((k) => `n.\`${k.replace(/`/g, "")}\` = null`).join(", ");
212
- await session.run(`MATCH (n) WHERE id(n) = $nid
213
- SET ${setClauses},
214
- n._denylistAudit = coalesce(n._denylistAudit, '') + $entry + '\n'`, { nid, entry: auditEntry });
215
- summary.denylistNulled += hits.length;
216
- }
217
- else {
218
- summary.denylistNulled += hits.length;
219
- }
220
- }
221
- }
222
- }
223
- }
224
- // -----------------------------------------------------------------------
225
- // Rule 2: conversation-memory deny-list null
226
- //
227
- // Pollution surface: :Memory nodes tied to :Conversation. Same scan as
228
- // rule 2 but scoped to that label so the cost stays bounded even when
229
- // the deny-list grows.
230
- // -----------------------------------------------------------------------
231
- if (denylist.values.length > 0) {
232
- const memRes = await session.run(`MATCH (m:Memory)-[:PART_OF|:ABOUT]->(c:Conversation)
233
- WHERE m.accountId = $accountId
234
- WITH m, [k IN keys(m) WHERE k <> '_denylistAudit'
235
- AND k <> 'embedding'
236
- AND any(deny IN $denylist WHERE
237
- CASE
238
- WHEN m[k] IS NULL THEN false
239
- WHEN toString(m[k]) = m[k] THEN m[k] CONTAINS deny
240
- ELSE false
241
- END)] AS hits
242
- WHERE size(hits) > 0
243
- RETURN id(m) AS nid, hits LIMIT 5000`, { accountId, denylist: denylist.values });
244
- const memCount = memRes.records.length;
245
- if (memCount > 0) {
246
- if (tripsCeiling(memCount, summary.totalNodes, config.safetyCeilingPercent)) {
247
- logLine(`[graph:prune:ceiling-tripped] rule=conversation-memory-null wouldAffect=${memCount} totalNodes=${summary.totalNodes} ceiling=${config.safetyCeilingPercent}%`);
248
- summary.ceilingTripped.push("conversation-memory-null");
249
- }
250
- else {
251
- logLine(`[graph:prune:rule-start] rule=conversation-memory-null nodes=${memCount}`);
252
- for (const r of memRes.records) {
253
- const nid = Number(r.get("nid"));
254
- const hits = r.get("hits");
255
- for (const k of hits) {
256
- logLine(`[graph:prune:action] rule=conversation-memory-null op=null nodeId=${nid} property=${k}`);
257
- }
258
- if (!dryRun) {
259
- const setClauses = hits.map((k) => `m.\`${k.replace(/`/g, "")}\` = null`).join(", ");
260
- const auditEntry = JSON.stringify({
261
- ts: new Date().toISOString(),
262
- properties: hits,
263
- denylistMatches: denylist.values,
264
- });
265
- await session.run(`MATCH (m) WHERE id(m) = $nid
266
- SET ${setClauses},
267
- m._denylistAudit = coalesce(m._denylistAudit, '') + $entry + '\n'`, { nid, entry: auditEntry });
268
- }
269
- summary.conversationMemoryNulled += hits.length;
270
- }
271
- }
272
- }
273
- }
274
- // -----------------------------------------------------------------------
275
- // Rule 3: candidate-merge flagging (per the 2026-04-19 user decision —
276
- // never auto-merge; admin agent reviews next turn).
277
- //
278
- // For each canonical-key spec, find pairs of nodes sharing the key value.
279
- // Emit a flag line per pair; stored as :PruneFlag nodes so the
280
- // review-detector pattern (graph:prune:candidate-merge) can surface them.
281
- // -----------------------------------------------------------------------
282
- for (const spec of CANONICAL_KEYS) {
283
- for (const tuple of spec.keyTuples) {
284
- const matchProps = tuple.map((k) => `a.\`${k}\` IS NOT NULL AND a.\`${k}\` = b.\`${k}\``).join(" AND ");
285
- const returnProps = tuple.map((k) => `a.\`${k}\` AS \`${k}\``).join(", ");
286
- const dupRes = await session.run(`MATCH (a:${spec.label}), (b:${spec.label})
287
- WHERE a.accountId = $accountId AND b.accountId = $accountId
288
- AND id(a) < id(b)
289
- AND ${matchProps}
290
- RETURN id(a) AS aid, id(b) AS bid, ${returnProps} LIMIT 500`, { accountId });
291
- for (const r of dupRes.records) {
292
- const aid = Number(r.get("aid"));
293
- const bid = Number(r.get("bid"));
294
- const keyValues = tuple.map((k) => `${k}=${r.get(k)}`).join(",");
295
- logLine(`[graph:prune:candidate-merge] label=${spec.label} keys=${keyValues} sourceId=${aid} targetId=${bid}`);
296
- summary.candidateMergesFlagged += 1;
297
- if (!dryRun) {
298
- await session.run(`MERGE (f:PruneFlag {accountId: $accountId, kind: 'candidate-merge', sourceId: $aid, targetId: $bid})
299
- ON CREATE SET f.label = $label, f.keys = $keys, f.createdAt = datetime()`, { accountId, aid, bid, label: spec.label, keys: keyValues });
300
- }
301
- }
302
- }
303
- }
304
- // -----------------------------------------------------------------------
305
- // Rule 4: contradiction detection
306
- //
307
- // Same node, same atomic property, multiple recent writes with diverging
308
- // values. Detected via the audit trail Task 343 lays down on ToolCall
309
- // records — but those are append-only, so the simpler signal here is
310
- // Preference nodes whose status indicates contradiction (set by
311
- // profile-update mode=contradict).
312
- // -----------------------------------------------------------------------
313
- const contraRes = await session.run(`MATCH (p:Preference)
314
- WHERE p.accountId = $accountId AND p.status = 'contradicted'
315
- AND p.flaggedByPrune IS NULL
316
- RETURN id(p) AS pid, p.category AS category, p.key AS key LIMIT 200`, { accountId });
317
- for (const r of contraRes.records) {
318
- const pid = Number(r.get("pid"));
319
- logLine(`[graph:prune:contradiction] nodeId=${pid} category=${r.get("category")} key=${r.get("key")}`);
320
- summary.contradictionsFlagged += 1;
321
- if (!dryRun) {
322
- await session.run(`MATCH (p) WHERE id(p) = $pid SET p.flaggedByPrune = datetime()`, { pid });
323
- }
324
- }
325
- summary.elapsedMs = Date.now() - t0;
326
- logLine(`[graph:prune:summary] account=${accountId} nulled=${summary.denylistNulled} convNulled=${summary.conversationMemoryNulled} flagged=${summary.candidateMergesFlagged} contradictions=${summary.contradictionsFlagged} ceilingTripped=${summary.ceilingTripped.join(",") || "none"} elapsed=${summary.elapsedMs}ms dryRun=${dryRun}`);
327
- return summary;
328
- }
329
- finally {
330
- await session.close();
331
- }
332
- }
333
67
  export async function expungeConversationMemory(driver, accountId, conversationId, pattern) {
334
68
  const session = driver.session();
335
69
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"graph-prune.js","sourceRoot":"","sources":["../../src/lib/graph-prune.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph-prune.js","sourceRoot":"","sources":["../../src/lib/graph-prune.ts"],"names":[],"mappings":"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"}
@@ -43,19 +43,24 @@ token-limit discipline the upstream server enforces.
43
43
  The graph tools above are read-only. Every write intent has a schema-aware
44
44
  tool that already exists — match the user's prose to a tool in this table
45
45
  rather than improvising. `mcp__admin__admin-remove` is in your initial
46
- tool list; the other five tools below are deferred (they do not appear
47
- until you invoke `ToolSearch` by the exact name you pick from the table).
46
+ tool list; the other tools below are deferred (they do not appear until
47
+ you invoke `ToolSearch` by the exact name you pick from the table).
48
48
  Do not use `ToolSearch` to *discover* the tool by keyword — identify it
49
49
  from the table first, then fetch its schema by exact name.
50
50
 
51
+ There is **no autonomous rule engine and no cron** for graph hygiene.
52
+ Cleanup is agent-directed, case by case, using your judgment on the
53
+ evidence in front of you (memory-search results, cypher reads, the
54
+ operator-curated deny-list). Never apply a bulk transformation to the
55
+ graph as a single action.
56
+
51
57
  | User intent | Tool | When to pick this, not the next row |
52
58
  |---|---|---|
53
- | "prune", "clean up", "graph hygiene" | `mcp__memory__graph-prune-run` | On-demand run of the nightly 03:00 cron: deny-list null, candidate-merge flag, contradiction flag. Does not delete nodes — "orphan-delete-by-shape" is not a sanctioned action. Run with `dryRun: true` first when the blast radius is unknown. For single-node removal, use `memory-delete`. |
54
59
  | "remove admin X", "take away their admin access", "revoke admin" | `mcp__admin__admin-remove` | Device-level admin offboarding — detaches the `(AdminUser)-[:ADMIN_OF]->(LocalBusiness)` edge and updates `platform/config/users.json`. Not for scrubbing personal data — use the GDPR contact-erase tools for that. |
55
- | "delete this specific node", "remove this entry by its id", "get rid of node X", "remove orphans" | `mcp__memory__memory-delete` | Deterministic single-node deletion by `elementId`. For KnowledgeDocument, cascades to Sections and Chunks. The supported path for removing any individual orphan — enumerate them first with a Cypher read, then delete each by `elementId`. There is no bulk "delete everything without relationships" tool and there will not be one; standalone nodes are legitimate for many labels. |
56
- | "scrub this conversation's memory", "remove this claim the bot picked up", "forget what we said in that thread" | `mcp__memory__conversation-memory-expunge` | Removes the `:Memory` payload attached to a specific conversation without deleting the conversation itself. Not for deleting individual nodes — use `memory-delete`. |
57
- | "update a property", "fix a typo in a node", "change the role field on X" | `mcp__memory__memory-update` | Targeted property edit on an existing node, schema-validated. Not for creating new nodes — use `memory-write`. |
58
- | "don't surface these substrings in future memory results", "block this string from search" | `mcp__memory__graph-prune-denylist-add` | Adds a substring to the deny-list; the next `graph-prune-run` nulls matching property values. Not for removing nodes outright use `memory-delete`. |
60
+ | "delete this specific node", "remove this entry by its id", "get rid of node X", "remove orphans", "prune", "clean up" | `mcp__memory__memory-delete` | Single-node deletion by `elementId`. For KnowledgeDocument, cascades to Sections and Chunks. Enumerate candidates first with a Cypher read, confirm with the user, then delete each by `elementId`. There is no bulk "delete everything without relationships" tool standalone nodes are legitimate for many labels (OnboardingState, configuration nodes, freshly-discovered Persons before edges land). |
61
+ | "scrub this conversation's memory", "remove this claim the bot picked up", "forget what we said in that thread" | `mcp__memory__conversation-memory-expunge` | Removes deny-listable content from `:Memory` nodes scoped to one conversation. Requires an explicit pattern and conversationId. Not for deleting individual nodes — use `memory-delete`. |
62
+ | "update a property", "fix a typo in a node", "change the role field on X", "null this poisonous string" | `mcp__memory__memory-update` | Targeted property edit on an existing node, schema-validated. Use to null individual string properties matching a deny-list entry once you've identified the offender via a Cypher read. Not for creating new nodes — use `memory-write`. |
63
+ | "don't surface these substrings in future memory results", "watch for this string" | `mcp__memory__graph-prune-denylist-add` | Records a substring as operator-curated signal. Nothing auto-applies it when a subsequent memory-search or cypher read surfaces a match, use `memory-update` or `memory-delete` with discretion to scrub it. |
59
64
 
60
65
  **Never run `cypher-shell` via `Bash` to work around the read-only tool.**
61
66
  The admin session's `Bash` surface has no path to the per-brand Neo4j
@@ -70,12 +75,18 @@ surface. It can be added as a task."* — do not invent a workaround.
70
75
  **Worked example — "prune the stale AdminUsers".** When an admin asks to
71
76
  prune stale AdminUser entries (e.g., 15 nodes left over from prior
72
77
  installs, none linked by `ADMIN_OF` to a `LocalBusiness`), enumerate them
73
- with a Cypher read (`MATCH (a:AdminUser) WHERE NOT (a)--() RETURN
74
- elementId(a), a.userId, a.createdAt`), confirm the list with the user,
75
- then delete each by `elementId` via `mcp__memory__memory-delete`.
76
- `graph-prune-run` does not and will not delete nodes — on 2026-04-20 a
77
- prior orphan-delete-by-shape rule wiped the sole `OnboardingState` node
78
- along with 18 other unrelated nodes, so structural deletion is banned.
78
+ with a Cypher read:
79
+
80
+ ```cypher
81
+ MATCH (a:AdminUser) WHERE NOT (a)--() RETURN elementId(a), a.userId, a.createdAt
82
+ ```
83
+
84
+ Show the list to the user. For each confirmed entry, call
85
+ `mcp__memory__memory-delete` with the `elementId`. Do not batch-delete
86
+ by pattern — on 2026-04-20 an autonomous orphan-delete rule wiped the
87
+ sole `OnboardingState` node plus 18 unrelated nodes in one call, with
88
+ no property recovery possible. Structural mass-deletion by shape is
89
+ banned; discretion per node is the only sanctioned path.
79
90
 
80
91
  ## Non-negotiable: never return raw nodes
81
92
 
@@ -114,7 +114,12 @@ function connectNeo4j() {
114
114
  // ---------------------------------------------------------------------------
115
115
  // MCP tool dispatch
116
116
  // ---------------------------------------------------------------------------
117
- const DISPATCH_TIMEOUT_MS = 30_000;
117
+ // 10-minute ceiling — accommodates normal workflow durations (30-90 s for
118
+ // agentic LLM steps on Sonnet 4.6; occasionally longer under degraded
119
+ // conditions). Tail of the protection stack: workflow-execute's SIGTERM
120
+ // handler (platform/plugins/workflows/mcp/src/index.ts) still terminal-
121
+ // transitions the run if this ceiling fires (Task 578).
122
+ const DISPATCH_TIMEOUT_MS = 600_000;
118
123
  async function dispatchAction(eventId, actionPlugin, actionTool, actionArgs, eventAccountId, driver) {
119
124
  const platformRoot = process.env.PLATFORM_ROOT;
120
125
  const serverPath = resolve(platformRoot, "plugins", actionPlugin, "mcp", "dist", "index.js");
@@ -376,6 +381,35 @@ async function reconcilePluginLifecycles(driver) {
376
381
  // ---------------------------------------------------------------------------
377
382
  // Main
378
383
  // ---------------------------------------------------------------------------
384
+ /**
385
+ * Account IDs present on this install's filesystem. Dispatch queries
386
+ * are scoped to this set so a scheduler connected (by env misconfig or
387
+ * intent) to a Neo4j instance shared with another install never
388
+ * dispatches foreign events against the local platformRoot. Without
389
+ * this guard, install A's workflow-execute runs against install B's
390
+ * accountId, finds no matching data/accounts/<id>/ directory under A's
391
+ * platformRoot, and surfaces as silent "No model configured" failures
392
+ * on B's Events — the root cause pattern Task 571 tracked to stale
393
+ * cross-install cron dispatches.
394
+ */
395
+ function listLocalAccountIds(platformRoot) {
396
+ const accountsDir = resolve(platformRoot, "..", "data/accounts");
397
+ if (!existsSync(accountsDir))
398
+ return [];
399
+ try {
400
+ return readdirSync(accountsDir).filter((d) => {
401
+ try {
402
+ return existsSync(join(accountsDir, d, "account.json"));
403
+ }
404
+ catch {
405
+ return false;
406
+ }
407
+ });
408
+ }
409
+ catch {
410
+ return [];
411
+ }
412
+ }
379
413
  async function main() {
380
414
  if (!acquireLock()) {
381
415
  console.error("[check-due] another instance running, exiting");
@@ -384,17 +418,24 @@ async function main() {
384
418
  console.error("[check-due] lock acquired");
385
419
  const driver = connectNeo4j();
386
420
  const now = new Date().toISOString();
421
+ const localAccountIds = listLocalAccountIds(process.env.PLATFORM_ROOT);
387
422
  let processed = 0;
388
423
  let dispatched = 0;
389
424
  let errors = 0;
425
+ if (localAccountIds.length === 0) {
426
+ console.error("[check-due] no local accounts under platformRoot — skipping dispatch sweep (reconcile still runs)");
427
+ }
390
428
  try {
391
429
  // --- One-time events: startDate <= now AND status = 'scheduled' AND no recurrence ---
430
+ // Scoped to local accounts so a scheduler sharing a Neo4j instance with
431
+ // another install never dispatches foreign events (Task 571).
392
432
  const oneTimeSession = driver.session();
393
433
  try {
394
434
  const oneTimeResult = await oneTimeSession.run(`MATCH (e:Event)
395
435
  WHERE e.eventStatus = 'scheduled'
396
436
  AND e.recurrence IS NULL
397
437
  AND e.startDate <= $now
438
+ AND e.accountId IN $localAccountIds
398
439
  SET e.eventStatus = 'due',
399
440
  e.updatedAt = $now,
400
441
  e.notes = COALESCE(e.notes, '') + $noteEntry
@@ -404,6 +445,7 @@ async function main() {
404
445
  e.actionTool AS actionTool,
405
446
  e.actionArgs AS actionArgs`, {
406
447
  now,
448
+ localAccountIds,
407
449
  noteEntry: `\n[${now}] Marked due by cron`,
408
450
  });
409
451
  for (const record of oneTimeResult.records) {
@@ -425,6 +467,7 @@ async function main() {
425
467
  await oneTimeSession.close();
426
468
  }
427
469
  // --- Recurring events: nextRun <= now AND status = 'scheduled' ---
470
+ // Scoped to local accounts (see one-time query above).
428
471
  const recurringSession = driver.session();
429
472
  try {
430
473
  const recurringResult = await recurringSession.run(`MATCH (e:Event)
@@ -432,12 +475,13 @@ async function main() {
432
475
  AND e.recurrence IS NOT NULL
433
476
  AND e.nextRun IS NOT NULL
434
477
  AND e.nextRun <= $now
478
+ AND e.accountId IN $localAccountIds
435
479
  RETURN e.eventId AS eventId, e.name AS name,
436
480
  e.recurrence AS recurrence, e.nextRun AS nextRun,
437
481
  e.timezone AS timezone, e.accountId AS accountId,
438
482
  e.actionPlugin AS actionPlugin,
439
483
  e.actionTool AS actionTool,
440
- e.actionArgs AS actionArgs`, { now });
484
+ e.actionArgs AS actionArgs`, { now, localAccountIds });
441
485
  for (const record of recurringResult.records) {
442
486
  const eventId = record.get("eventId");
443
487
  const name = record.get("name");
@@ -1 +1 @@
1
- {"version":3,"file":"check-due-events.js","sourceRoot":"","sources":["../../src/scripts/check-due-events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check-due-events.js","sourceRoot":"","sources":["../../src/scripts/check-due-events.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"waitlist-setup.d.ts","sourceRoot":"","sources":["../../src/tools/waitlist-setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AA+CH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;CACxB;AAMD,wBAAsB,aAAa,CACjC,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CA8O9B"}
1
+ {"version":3,"file":"waitlist-setup.d.ts","sourceRoot":"","sources":["../../src/tools/waitlist-setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AA+CH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;CACxB;AAMD,wBAAsB,aAAa,CACjC,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CA0P9B"}