@rubytech/create-maxy-code 0.1.497 → 0.1.499
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.
- package/package.json +1 -1
- package/payload/platform/lib/active-rules/dist/index.d.ts +3 -7
- package/payload/platform/lib/active-rules/dist/index.d.ts.map +1 -1
- package/payload/platform/lib/active-rules/dist/index.js +20 -52
- package/payload/platform/lib/active-rules/dist/index.js.map +1 -1
- package/payload/platform/lib/active-rules/src/index.test.ts +35 -69
- package/payload/platform/lib/active-rules/src/index.ts +17 -58
- package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +55 -9
- package/payload/platform/plugins/docs/references/admin-ui.md +36 -6
- package/payload/platform/plugins/docs/references/internals.md +2 -2
- package/payload/platform/plugins/docs/references/sweep-guide.md +16 -0
- package/payload/platform/plugins/email/mcp/dist/__tests__/compose-signature.test.d.ts +2 -0
- package/payload/platform/plugins/email/mcp/dist/__tests__/compose-signature.test.d.ts.map +1 -0
- package/payload/platform/plugins/email/mcp/dist/__tests__/compose-signature.test.js +53 -0
- package/payload/platform/plugins/email/mcp/dist/__tests__/compose-signature.test.js.map +1 -0
- package/payload/platform/plugins/email/mcp/dist/__tests__/signature.test.d.ts +2 -0
- package/payload/platform/plugins/email/mcp/dist/__tests__/signature.test.d.ts.map +1 -0
- package/payload/platform/plugins/email/mcp/dist/__tests__/signature.test.js +50 -0
- package/payload/platform/plugins/email/mcp/dist/__tests__/signature.test.js.map +1 -0
- package/payload/platform/plugins/email/mcp/dist/lib/compose.d.ts.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/lib/compose.js +15 -2
- package/payload/platform/plugins/email/mcp/dist/lib/compose.js.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/lib/signature.d.ts +29 -0
- package/payload/platform/plugins/email/mcp/dist/lib/signature.d.ts.map +1 -0
- package/payload/platform/plugins/email/mcp/dist/lib/signature.js +55 -0
- package/payload/platform/plugins/email/mcp/dist/lib/signature.js.map +1 -0
- package/payload/platform/plugins/email/references/email-reference.md +10 -0
- package/payload/platform/plugins/memory/PLUGIN.md +2 -0
- package/payload/platform/plugins/memory/mcp/dist/index.js +2 -2
- package/payload/platform/plugins/memory/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/scripts/__tests__/dream-cycle-sweep-decision.test.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/scripts/__tests__/dream-cycle-sweep-decision.test.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/scripts/__tests__/dream-cycle-sweep-decision.test.js +84 -0
- package/payload/platform/plugins/memory/mcp/dist/scripts/__tests__/dream-cycle-sweep-decision.test.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/scripts/dream-cycle-sweep-decision.d.ts +54 -0
- package/payload/platform/plugins/memory/mcp/dist/scripts/dream-cycle-sweep-decision.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/scripts/dream-cycle-sweep-decision.js +58 -0
- package/payload/platform/plugins/memory/mcp/dist/scripts/dream-cycle-sweep-decision.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/scripts/dream-cycle-sweep.d.ts +30 -0
- package/payload/platform/plugins/memory/mcp/dist/scripts/dream-cycle-sweep.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/scripts/dream-cycle-sweep.js +204 -0
- package/payload/platform/plugins/memory/mcp/dist/scripts/dream-cycle-sweep.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights.test.js +30 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-read-active-rules.test.js +10 -9
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-read-active-rules.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.d.ts +4 -2
- package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.js +38 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/vitest.config.ts +2 -0
- package/payload/platform/plugins/memory/skills/conversation-archive-enrich/SKILL.md +10 -4
- package/payload/platform/plugins/memory/skills/conversational-memory/SKILL.md +2 -0
- package/payload/platform/plugins/memory/skills/preference-audit/SKILL.md +16 -0
- package/payload/platform/plugins/sweep/PLUGIN.md +5 -1
- package/payload/platform/plugins/sweep/skills/email-graph-sweep/SKILL.md +165 -0
- package/payload/platform/services/claude-session-manager/dist/preference-reconciliation-audit.d.ts +19 -19
- package/payload/platform/services/claude-session-manager/dist/preference-reconciliation-audit.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/preference-reconciliation-audit.js +28 -34
- package/payload/platform/services/claude-session-manager/dist/preference-reconciliation-audit.js.map +1 -1
- package/payload/server/package.json +2 -1
- package/payload/server/public/activity.html +6 -6
- package/payload/server/public/assets/{AdminLoginScreens-BXDYzNbq.js → AdminLoginScreens-Ce5aBBWF.js} +1 -1
- package/payload/server/public/assets/AdminShell-BFVVkWFC.js +2 -0
- package/payload/server/public/assets/{activity-cVe5ZnG7.js → activity-CKUYOLd2.js} +1 -1
- package/payload/server/public/assets/admin-BWb8me-E.js +1 -0
- package/payload/server/public/assets/{arc-BrHWN2Kr.js → arc-CpWWSum8.js} +1 -1
- package/payload/server/public/assets/architecture-YZFGNWBL-D-AX2VuA.js +1 -0
- package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-1OxSL3rT.js → architectureDiagram-Q4EWVU46-D2EzaII0.js} +1 -1
- package/payload/server/public/assets/{blockDiagram-DXYQGD6D-C6yKiblF.js → blockDiagram-DXYQGD6D-8kDpaNSZ.js} +1 -1
- package/payload/server/public/assets/{bot-Bb8yj02k.js → bot-DESMpxSQ.js} +1 -1
- package/payload/server/public/assets/{browser-BdWeCfYJ.js → browser-CpLq_DIo.js} +1 -1
- package/payload/server/public/assets/{c4Diagram-AHTNJAMY-BzTyHS1I.js → c4Diagram-AHTNJAMY-CbwmZpK3.js} +1 -1
- package/payload/server/public/assets/{calendar-B4KbpiXR.js → calendar-ClOwyuz-.js} +1 -1
- package/payload/server/public/assets/channel-DZ5sh6YQ.js +1 -0
- package/payload/server/public/assets/chat-MvnxPJZ5.js +1 -0
- package/payload/server/public/assets/chevron-left-BzIg4in6.js +1 -0
- package/payload/server/public/assets/chevron-right-BcFSa9C3.js +1 -0
- package/payload/server/public/assets/{chunk-2KRD3SAO-BGAUfWvM.js → chunk-2KRD3SAO-PFheZ9mw.js} +1 -1
- package/payload/server/public/assets/{chunk-336JU56O-M1H_u2Qv.js → chunk-336JU56O-CCFOp5VK.js} +2 -2
- package/payload/server/public/assets/chunk-426QAEUC-CcjBLp4a.js +1 -0
- package/payload/server/public/assets/{chunk-4BX2VUAB-CkxXXCiF.js → chunk-4BX2VUAB-Hz4JWOf2.js} +1 -1
- package/payload/server/public/assets/{chunk-4TB4RGXK-DPWZYGHH.js → chunk-4TB4RGXK-4xeV0s85.js} +1 -1
- package/payload/server/public/assets/{chunk-55IACEB6-CBkNmqrt.js → chunk-55IACEB6-4QKgBpoh.js} +1 -1
- package/payload/server/public/assets/{chunk-5FUZZQ4R-uIqIu9ha.js → chunk-5FUZZQ4R-ms3K6Z5z.js} +1 -1
- package/payload/server/public/assets/{chunk-5PVQY5BW-B_S7XzpE.js → chunk-5PVQY5BW-CIC4GIGi.js} +1 -1
- package/payload/server/public/assets/{chunk-67CJDMHE-BbMV1lgW.js → chunk-67CJDMHE-B-XrWVmV.js} +1 -1
- package/payload/server/public/assets/{chunk-7N4EOEYR-C49Mv-nQ.js → chunk-7N4EOEYR-C7ECOUYQ.js} +1 -1
- package/payload/server/public/assets/{chunk-AA7GKIK3-Dy_pJOp_.js → chunk-AA7GKIK3-DOZ6Fxwk.js} +1 -1
- package/payload/server/public/assets/{chunk-BSJP7CBP-Ce-OmPqn.js → chunk-BSJP7CBP-4cJ_b0c6.js} +1 -1
- package/payload/server/public/assets/{chunk-CIAEETIT-tnjq-APC.js → chunk-CIAEETIT--mhZipWM.js} +1 -1
- package/payload/server/public/assets/{chunk-EDXVE4YY-uzO7kO4e.js → chunk-EDXVE4YY-jZpVwob_.js} +1 -1
- package/payload/server/public/assets/{chunk-ENJZ2VHE-DQMOsG1f.js → chunk-ENJZ2VHE-Nn-p-xIA.js} +1 -1
- package/payload/server/public/assets/{chunk-FMBD7UC4-Top6y08S.js → chunk-FMBD7UC4-DyNpcKOS.js} +1 -1
- package/payload/server/public/assets/{chunk-FOC6F5B3-B9LPNCUS.js → chunk-FOC6F5B3-C0P8q1uz.js} +1 -1
- package/payload/server/public/assets/{chunk-ICPOFSXX-DeIt3WoY.js → chunk-ICPOFSXX-CdXQ5SfI.js} +2 -2
- package/payload/server/public/assets/{chunk-K5T4RW27-DAnRM04h.js → chunk-K5T4RW27-BVZJKKsT.js} +1 -1
- package/payload/server/public/assets/{chunk-KGLVRYIC-C0QYcbLe.js → chunk-KGLVRYIC-QlVWTe0V.js} +1 -1
- package/payload/server/public/assets/{chunk-LIHQZDEY-BjvA5ykt.js → chunk-LIHQZDEY-CpGVZutP.js} +1 -1
- package/payload/server/public/assets/{chunk-ORNJ4GCN-Cs46Gj7z.js → chunk-ORNJ4GCN-WVcS6fUC.js} +1 -1
- package/payload/server/public/assets/{chunk-OYMX7WX6-CBHIFMBx.js → chunk-OYMX7WX6-B7hiSTed.js} +1 -1
- package/payload/server/public/assets/chunk-QZHKN3VN-B2WjDYBE.js +1 -0
- package/payload/server/public/assets/{chunk-U2HBQHQK-5_DL8yx6.js → chunk-U2HBQHQK-DJPnZxGy.js} +1 -1
- package/payload/server/public/assets/{chunk-X2U36JSP-BDCaWRe9.js → chunk-X2U36JSP-DilBs1Yc.js} +1 -1
- package/payload/server/public/assets/{chunk-XPW4576I-B10QuxYb.js → chunk-XPW4576I-B5-uyrJ0.js} +1 -1
- package/payload/server/public/assets/{chunk-YZCP3GAM-81jJqyDd.js → chunk-YZCP3GAM-BNO4z0Mv.js} +1 -1
- package/payload/server/public/assets/{chunk-ZZ45TVLE-DGx3J6Dx.js → chunk-ZZ45TVLE-BzHMQpip.js} +1 -1
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-CT3jNrze.js +1 -0
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-DJRsjAkC.js +1 -0
- package/payload/server/public/assets/clock-Dr3NGtjR.js +1 -0
- package/payload/server/public/assets/clone-FcEDnoMT.js +1 -0
- package/payload/server/public/assets/{cose-bilkent-S5V4N54A-CRDvLRXs.js → cose-bilkent-S5V4N54A-3DWYmn1o.js} +1 -1
- package/payload/server/public/assets/{dagre--rdjN6xZ.js → dagre-Cpy31xJW.js} +1 -1
- package/payload/server/public/assets/{dagre-KV5264BT-DHbVQPnV.js → dagre-KV5264BT-C8fyxHFd.js} +1 -1
- package/payload/server/public/assets/data-BjqC4hyM.js +1 -0
- package/payload/server/public/assets/{diagram-5BDNPKRD-D8HC1Idg.js → diagram-5BDNPKRD-ycyhnLvr.js} +1 -1
- package/payload/server/public/assets/{diagram-G4DWMVQ6-evvg8aey.js → diagram-G4DWMVQ6-BkeYicIt.js} +1 -1
- package/payload/server/public/assets/{diagram-MMDJMWI5-4hZuk-Dd.js → diagram-MMDJMWI5-BcGZU-Q3.js} +1 -1
- package/payload/server/public/assets/{diagram-TYMM5635-Cwei1ql9.js → diagram-TYMM5635-DuBDCFb_.js} +1 -1
- package/payload/server/public/assets/{dist-B2N0v8hZ.js → dist-BYc_arNy.js} +1 -1
- package/payload/server/public/assets/{erDiagram-SMLLAGMA-BG5OK4Fx.js → erDiagram-SMLLAGMA-DmkeOzvp.js} +1 -1
- package/payload/server/public/assets/{flatten-naJ5PJ4f.js → flatten-QjnJ1Gcl.js} +1 -1
- package/payload/server/public/assets/{flowDiagram-DWJPFMVM-CPB_poda.js → flowDiagram-DWJPFMVM-CkE-pjuB.js} +1 -1
- package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-CD6BL1UP.js → ganttDiagram-T4ZO3ILL-Cjiy3kvE.js} +1 -1
- package/payload/server/public/assets/gitGraph-7Q5UKJZL-D1uhnP9U.js +1 -0
- package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-C-e8FDGn.js → gitGraphDiagram-UUTBAWPF-CsI4lKZm.js} +1 -1
- package/payload/server/public/assets/{graph-COyGp2x1.js → graph-B7niLM97.js} +3 -3
- package/payload/server/public/assets/{graph-labels-CR-HqNdV.js → graph-labels-DykmXYHA.js} +1 -1
- package/payload/server/public/assets/{graphlib-CdCZY1Mj.js → graphlib-BkXxC6D5.js} +1 -1
- package/payload/server/public/assets/info-OMHHGYJF-oNm27GAV.js +1 -0
- package/payload/server/public/assets/infoDiagram-42DDH7IO-LxTftqyS.js +2 -0
- package/payload/server/public/assets/{isEmpty-Bnpg7b8f.js → isEmpty-BavJI9Cn.js} +1 -1
- package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-CFLhfPpo.js → ishikawaDiagram-UXIWVN3A-D8lZtjRc.js} +1 -1
- package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-BN0PaMgT.js → journeyDiagram-VCZTEJTY-kLE7SiR_.js} +1 -1
- package/payload/server/public/assets/{kanban-definition-6JOO6SKY-CmRilACp.js → kanban-definition-6JOO6SKY-ove6JuD3.js} +1 -1
- package/payload/server/public/assets/{line-DR6Zk7d6.js → line-CZMSoxM6.js} +1 -1
- package/payload/server/public/assets/{linear-CAOWPodQ.js → linear-Be8IK9hK.js} +1 -1
- package/payload/server/public/assets/{maximize-2-ne1kaQlS.js → maximize-2-BbzPm7o8.js} +1 -1
- package/payload/server/public/assets/{mermaid-parser.core-0vmQl6Gn.js → mermaid-parser.core-BBADqbnp.js} +2 -2
- package/payload/server/public/assets/{mermaid.core-DWgpHiLh.js → mermaid.core-mH3N7K0I.js} +3 -3
- package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-CViR7VGV.js → mindmap-definition-QFDTVHPH-BjwwwWil.js} +1 -1
- package/payload/server/public/assets/operator-DCNWUKP_.js +1 -0
- package/payload/server/public/assets/{ordinal-Wx4m9zHk.js → ordinal-BHeIKG-K.js} +1 -1
- package/payload/server/public/assets/packet-4T2RLAQJ-eQNVGiK3.js +1 -0
- package/payload/server/public/assets/{page-DwfYACyC.js → page-C4TrTU6r.js} +4 -4
- package/payload/server/public/assets/page-DUgrGrJp.js +1 -0
- package/payload/server/public/assets/{pdf-render-0hyh3Jlf.js → pdf-render-fJz4vym9.js} +1 -1
- package/payload/server/public/assets/pie-ZZUOXDRM-E1u-48rt.js +1 -0
- package/payload/server/public/assets/{pieDiagram-DEJITSTG-B7YQ1_Kr.js → pieDiagram-DEJITSTG-D-lXWWta.js} +1 -1
- package/payload/server/public/assets/{public-BACeh5xm.js → public-DXJXQPwe.js} +1 -1
- package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-Dxs0nGu5.js → quadrantDiagram-34T5L4WZ-13QyG_AO.js} +1 -1
- package/payload/server/public/assets/radar-PYXPWWZC-Cn2cGN90.js +1 -0
- package/payload/server/public/assets/{reduce-BUmc8RDR.js → reduce-Fm685to3.js} +1 -1
- package/payload/server/public/assets/{requirementDiagram-MS252O5E-DDNYDqZc.js → requirementDiagram-MS252O5E-Bx45Bgn4.js} +1 -1
- package/payload/server/public/assets/{rotate-ccw-tY4mfSrJ.js → rotate-ccw-L42fL8ey.js} +1 -1
- package/payload/server/public/assets/routines-JOV6xdYh.js +1 -0
- package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-DLWoegU5.js → sankeyDiagram-XADWPNL6-Cj-Gq25v.js} +1 -1
- package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-DINNPlTY.js → sequenceDiagram-FGHM5R23-B8RDRq93.js} +1 -1
- package/payload/server/public/assets/{src-DHSQDYx-.js → src-D3VYuW_Z.js} +1 -1
- package/payload/server/public/assets/{stateDiagram-FHFEXIEX-Dsan8EIl.js → stateDiagram-FHFEXIEX-DoyFF1Kl.js} +1 -1
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-Bml-X4-H.js +1 -0
- package/payload/server/public/assets/{tasks-C4nPXsbX.js → tasks-GNtvZL8F.js} +1 -1
- package/payload/server/public/assets/{time-entry-format-CmqjpGG2.js → time-entry-format-BreNpFLJ.js} +1 -1
- package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-CISzecz5.js → timeline-definition-GMOUNBTQ-Df4RQXm6.js} +1 -1
- package/payload/server/public/assets/treeView-SZITEDCU-CimabhXy.js +1 -0
- package/payload/server/public/assets/treemap-W4RFUUIX-Cg264rpM.js +1 -0
- package/payload/server/public/assets/{triangle-alert-DKZ69dOa.js → triangle-alert-DumCWC08.js} +1 -1
- package/payload/server/public/assets/{useCopyFeedback-Cf5jFDR5.js → useCopyFeedback-DHCtz8qX.js} +1 -1
- package/payload/server/public/assets/useSubAccountSwitcher-Bc7XHr0L.js +9 -0
- package/payload/server/public/assets/{useSubAccountSwitcher-DFnDNIDO.css → useSubAccountSwitcher-DPHQJO7E.css} +1 -1
- package/payload/server/public/assets/{useVoiceRecorder-BVdKbTku.js → useVoiceRecorder-Cu6zvuFx.js} +2 -2
- package/payload/server/public/assets/{vennDiagram-DHZGUBPP-Bh2s76nJ.js → vennDiagram-DHZGUBPP-D2o5og9l.js} +1 -1
- package/payload/server/public/assets/wardley-RL74JXVD-tbgfCg0E.js +1 -0
- package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-Grzw0FHg.js → wardleyDiagram-NUSXRM2D-BDueObbS.js} +1 -1
- package/payload/server/public/assets/wrench-iWkROE1V.js +1 -0
- package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-7pY90HjH.js → xychartDiagram-5P7HB3ND-BTYs4Fgh.js} +1 -1
- package/payload/server/public/browser.html +5 -5
- package/payload/server/public/calendar.html +8 -7
- package/payload/server/public/chat.html +15 -14
- package/payload/server/public/data.html +12 -12
- package/payload/server/public/graph.html +10 -10
- package/payload/server/public/index.html +16 -16
- package/payload/server/public/operator.html +16 -15
- package/payload/server/public/public.html +15 -14
- package/payload/server/public/routines.html +20 -0
- package/payload/server/public/tasks.html +7 -7
- package/payload/server/server.js +464 -260
- package/payload/server/public/assets/AdminShell-CiTHCp5t.js +0 -2
- package/payload/server/public/assets/admin-BbcLizN0.js +0 -1
- package/payload/server/public/assets/architecture-YZFGNWBL-CZQzGRSM.js +0 -1
- package/payload/server/public/assets/channel-uhtvXKHn.js +0 -1
- package/payload/server/public/assets/chat-BEcbZB3e.js +0 -1
- package/payload/server/public/assets/chevron-left-Cy_RXwhn.js +0 -1
- package/payload/server/public/assets/chevron-right-CEjdB4AT.js +0 -1
- package/payload/server/public/assets/chunk-426QAEUC-D4XtWgLR.js +0 -1
- package/payload/server/public/assets/chunk-QZHKN3VN-Qlc2PFAj.js +0 -1
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-CBH5ngSm.js +0 -1
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-Ck3eNZce.js +0 -1
- package/payload/server/public/assets/clone-Cv8evfNb.js +0 -1
- package/payload/server/public/assets/data-L-hMHLBN.js +0 -1
- package/payload/server/public/assets/gitGraph-7Q5UKJZL-CBZPQJLj.js +0 -1
- package/payload/server/public/assets/info-OMHHGYJF-1vIoX-kP.js +0 -1
- package/payload/server/public/assets/infoDiagram-42DDH7IO-BDInZV9G.js +0 -2
- package/payload/server/public/assets/operator-Q0F_EEyq.js +0 -1
- package/payload/server/public/assets/packet-4T2RLAQJ-CTU0gCGb.js +0 -1
- package/payload/server/public/assets/page-bRjlk8Dt.js +0 -1
- package/payload/server/public/assets/pie-ZZUOXDRM-D-EEHxhC.js +0 -1
- package/payload/server/public/assets/radar-PYXPWWZC-DHXATZGB.js +0 -1
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-B4yeYYgL.js +0 -1
- package/payload/server/public/assets/treeView-SZITEDCU-CC7ouMFd.js +0 -1
- package/payload/server/public/assets/treemap-W4RFUUIX-CaCg27im.js +0 -1
- package/payload/server/public/assets/useSubAccountSwitcher-DdctgpPL.js +0 -9
- package/payload/server/public/assets/wardley-RL74JXVD-bMPsqQZ7.js +0 -1
- /package/payload/server/public/assets/{_baseFor-k8hYPe-U.js → _baseFor-Bvwvhrz4.js} +0 -0
- /package/payload/server/public/assets/{array-BFDiaBgf.js → array-D3d-WgFW.js} +0 -0
- /package/payload/server/public/assets/{chunk-TPjIAO9U.js → chunk-fQC6bEKA.js} +0 -0
- /package/payload/server/public/assets/{cytoscape.esm-Ch0xptA4.js → cytoscape.esm-Cun-OM6a.js} +0 -0
- /package/payload/server/public/assets/{defaultLocale-ZeknFqNe.js → defaultLocale-CisKV5Ew.js} +0 -0
- /package/payload/server/public/assets/{init-0VJVrkRJ.js → init-D9ZOVaZ3.js} +0 -0
- /package/payload/server/public/assets/{katex-Br7bH10N.js → katex-C-3ZDK8o.js} +0 -0
- /package/payload/server/public/assets/{path-INs8XTPH.js → path-BMOgQSLM.js} +0 -0
- /package/payload/server/public/assets/{preload-helper-CH6UZRzu.js → preload-helper-DL2DwvxV.js} +0 -0
- /package/payload/server/public/assets/{rough.esm-DU9bZLvZ.js → rough.esm-BrTFrov0.js} +0 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dream-cycle sweep throttle policy (Task 1944) — pure, so it is tested
|
|
3
|
+
* without a Neo4j session.
|
|
4
|
+
*
|
|
5
|
+
* The sweep runs the seven dream-cycle phases per account at most once per
|
|
6
|
+
* cadence window. The window is evaluated from graph state, not from a
|
|
7
|
+
* bookkeeping file: the most-recent dream-cycle `:Report` for the account is
|
|
8
|
+
* the only cursor, so a frequent server tick is idempotent (a tick that finds
|
|
9
|
+
* every account fresh does no phase work).
|
|
10
|
+
*
|
|
11
|
+
* Four outcomes, matching the sweep's observability vocabulary:
|
|
12
|
+
* - run stale (or never swept), graph non-empty, report parent present
|
|
13
|
+
* - skip within-window a dream-cycle report exists inside the window
|
|
14
|
+
* - skip no-graph the account graph holds no nodes to sweep
|
|
15
|
+
* - skip no-report-parent the account has no :AdminUser to parent a :Report, so a
|
|
16
|
+
* run could not persist its throttle cursor and would repeat
|
|
17
|
+
* every tick (a provisioned-but-pre-PIN account). Skipping it
|
|
18
|
+
* keeps the tick idempotent.
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* True iff `latestReportIso` is a parseable timestamp strictly newer than
|
|
22
|
+
* `nowMs - windowMs`. A null (never swept) or unparseable value is not within
|
|
23
|
+
* the window. The window edge is exclusive: a report exactly `windowMs` old is
|
|
24
|
+
* outside, so the sweep runs again at the cadence boundary rather than one tick
|
|
25
|
+
* late.
|
|
26
|
+
*/
|
|
27
|
+
export function isWithinWindow(latestReportIso, nowMs, windowMs) {
|
|
28
|
+
if (latestReportIso === null)
|
|
29
|
+
return false;
|
|
30
|
+
const t = Date.parse(latestReportIso);
|
|
31
|
+
if (!Number.isFinite(t))
|
|
32
|
+
return false;
|
|
33
|
+
return nowMs - t < windowMs;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* The whole per-account throttle policy. Window freshness wins first, so
|
|
37
|
+
* `hasGraph` and `canPersistReport` are only consulted for a stale (or
|
|
38
|
+
* never-swept) account — which is why the caller may skip the graph-existence
|
|
39
|
+
* and admin-parent queries on the common in-window path and still get a correct
|
|
40
|
+
* decision here.
|
|
41
|
+
*
|
|
42
|
+
* `canPersistReport` is whether the account has an `:AdminUser` for
|
|
43
|
+
* `memory-report-write` to parent the run's `:Report` onto. Without it the run
|
|
44
|
+
* would execute the phases but fail to write the `:Report`, so the next tick
|
|
45
|
+
* would see no cursor and run again — the sweep would repeat every tick. A
|
|
46
|
+
* parent-less account is therefore skipped, not run.
|
|
47
|
+
*/
|
|
48
|
+
export function decideSweepAction(input) {
|
|
49
|
+
if (isWithinWindow(input.latestReportIso, input.nowMs, input.windowMs)) {
|
|
50
|
+
return { action: "skip", reason: "within-window" };
|
|
51
|
+
}
|
|
52
|
+
if (!input.hasGraph)
|
|
53
|
+
return { action: "skip", reason: "no-graph" };
|
|
54
|
+
if (!input.canPersistReport)
|
|
55
|
+
return { action: "skip", reason: "no-report-parent" };
|
|
56
|
+
return { action: "run" };
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=dream-cycle-sweep-decision.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dream-cycle-sweep-decision.js","sourceRoot":"","sources":["../../src/scripts/dream-cycle-sweep-decision.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAMH;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,eAA8B,EAC9B,KAAa,EACb,QAAgB;IAEhB,IAAI,eAAe,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC3C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACtC,OAAO,KAAK,GAAG,CAAC,GAAG,QAAQ,CAAC;AAC9B,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAMjC;IACC,IAAI,cAAc,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;IACrD,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,QAAQ;QAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IACnE,IAAI,CAAC,KAAK,CAAC,gBAAgB;QAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;IACnF,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC3B,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scheduled dream-cycle sweep (Task 1944).
|
|
3
|
+
*
|
|
4
|
+
* Runs the existing seven deterministic dream-cycle phases against every
|
|
5
|
+
* account on the install, once per account per cadence window (~24h), with no
|
|
6
|
+
* operator action. Task 327 shipped the sweep operator-initiated only and named
|
|
7
|
+
* this scheduling layer as its follow-up; this binary is that layer.
|
|
8
|
+
*
|
|
9
|
+
* It is self-contained like plugins/email/mcp/scripts/sent-copy-sweep.js and
|
|
10
|
+
* plugins/scheduling/mcp/scripts/reconcile-bookings.js: the Pi has no other
|
|
11
|
+
* periodic surface, so the always-running platform/ui server spawns it on an
|
|
12
|
+
* interval (see platform/ui/server/index.ts, the dream-cycle-sweep loop next to
|
|
13
|
+
* calendar-reconcile). A PID lock prevents overlapping runs. stdio is inherited
|
|
14
|
+
* so its [dream-cycle-sweep] and the phase runner's [dream-cycle] lines land in
|
|
15
|
+
* the brand journal.
|
|
16
|
+
*
|
|
17
|
+
* The per-account 24h throttle is read from graph state, not a bookkeeping
|
|
18
|
+
* file: an account whose most-recent dream-cycle :Report is inside the window is
|
|
19
|
+
* skipped. This makes the frequent server tick idempotent without a scheduler
|
|
20
|
+
* entry (decideSweepAction, dream-cycle-sweep-decision.ts). The seven phases and
|
|
21
|
+
* the :Report write are the existing memoryDreamRun orchestrator; this script
|
|
22
|
+
* only enumerates, throttles, and calls it.
|
|
23
|
+
*
|
|
24
|
+
* Deterministic end to end: no LLM, no API, no channel, no agent turn, no Claude
|
|
25
|
+
* credential. The noisy, opt-in, mailbox-dependent half is Task 1945.
|
|
26
|
+
*
|
|
27
|
+
* PLATFORM_ROOT=... NEO4J_URI=... node dist/scripts/dream-cycle-sweep.js
|
|
28
|
+
*/
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=dream-cycle-sweep.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dream-cycle-sweep.d.ts","sourceRoot":"","sources":["../../src/scripts/dream-cycle-sweep.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scheduled dream-cycle sweep (Task 1944).
|
|
3
|
+
*
|
|
4
|
+
* Runs the existing seven deterministic dream-cycle phases against every
|
|
5
|
+
* account on the install, once per account per cadence window (~24h), with no
|
|
6
|
+
* operator action. Task 327 shipped the sweep operator-initiated only and named
|
|
7
|
+
* this scheduling layer as its follow-up; this binary is that layer.
|
|
8
|
+
*
|
|
9
|
+
* It is self-contained like plugins/email/mcp/scripts/sent-copy-sweep.js and
|
|
10
|
+
* plugins/scheduling/mcp/scripts/reconcile-bookings.js: the Pi has no other
|
|
11
|
+
* periodic surface, so the always-running platform/ui server spawns it on an
|
|
12
|
+
* interval (see platform/ui/server/index.ts, the dream-cycle-sweep loop next to
|
|
13
|
+
* calendar-reconcile). A PID lock prevents overlapping runs. stdio is inherited
|
|
14
|
+
* so its [dream-cycle-sweep] and the phase runner's [dream-cycle] lines land in
|
|
15
|
+
* the brand journal.
|
|
16
|
+
*
|
|
17
|
+
* The per-account 24h throttle is read from graph state, not a bookkeeping
|
|
18
|
+
* file: an account whose most-recent dream-cycle :Report is inside the window is
|
|
19
|
+
* skipped. This makes the frequent server tick idempotent without a scheduler
|
|
20
|
+
* entry (decideSweepAction, dream-cycle-sweep-decision.ts). The seven phases and
|
|
21
|
+
* the :Report write are the existing memoryDreamRun orchestrator; this script
|
|
22
|
+
* only enumerates, throttles, and calls it.
|
|
23
|
+
*
|
|
24
|
+
* Deterministic end to end: no LLM, no API, no channel, no agent turn, no Claude
|
|
25
|
+
* credential. The noisy, opt-in, mailbox-dependent half is Task 1945.
|
|
26
|
+
*
|
|
27
|
+
* PLATFORM_ROOT=... NEO4J_URI=... node dist/scripts/dream-cycle-sweep.js
|
|
28
|
+
*/
|
|
29
|
+
import { readFileSync, writeFileSync, existsSync, unlinkSync, mkdirSync } from "node:fs";
|
|
30
|
+
import { resolve } from "node:path";
|
|
31
|
+
import { homedir } from "node:os";
|
|
32
|
+
import { enumerateValidAccountIds } from "../../../../../lib/account-enumeration/dist/index.js";
|
|
33
|
+
import { getSession, closeDriver } from "../lib/neo4j.js";
|
|
34
|
+
import { memoryDreamRun } from "../tools/memory-dream-run.js";
|
|
35
|
+
import { decideSweepAction, isWithinWindow } from "./dream-cycle-sweep-decision.js";
|
|
36
|
+
/** Cadence: run each account's sweep at most once per 24h. The server ticks
|
|
37
|
+
* more often (hourly); this window, evaluated from the latest :Report, is what
|
|
38
|
+
* enforces the real spacing, so a tick that finds every account fresh does no
|
|
39
|
+
* phase work. */
|
|
40
|
+
const WINDOW_MS = 24 * 60 * 60 * 1000;
|
|
41
|
+
/** All seven phases, explicit rather than relying on memoryDreamRun's default,
|
|
42
|
+
* so the scheduled sweep's scope is unambiguous at the call site. */
|
|
43
|
+
const ALL_PHASES = [1, 2, 3, 4, 5, 6, 7];
|
|
44
|
+
function resolveConfigDir() {
|
|
45
|
+
const platformRoot = process.env.PLATFORM_ROOT;
|
|
46
|
+
if (!platformRoot)
|
|
47
|
+
throw new Error("PLATFORM_ROOT environment variable is required");
|
|
48
|
+
const brandPath = resolve(platformRoot, "config", "brand.json");
|
|
49
|
+
if (!existsSync(brandPath))
|
|
50
|
+
throw new Error(`brand.json not found at ${brandPath}`);
|
|
51
|
+
const brand = JSON.parse(readFileSync(brandPath, "utf-8"));
|
|
52
|
+
if (!brand.configDir)
|
|
53
|
+
throw new Error(`brand.json at ${brandPath} is missing configDir`);
|
|
54
|
+
return resolve(homedir(), brand.configDir);
|
|
55
|
+
}
|
|
56
|
+
const CONFIG_DIR = resolveConfigDir();
|
|
57
|
+
const LOCK_FILE = resolve(CONFIG_DIR, "dream-cycle-sweep.lock");
|
|
58
|
+
function acquireLock() {
|
|
59
|
+
mkdirSync(CONFIG_DIR, { recursive: true });
|
|
60
|
+
if (existsSync(LOCK_FILE)) {
|
|
61
|
+
const storedPid = readFileSync(LOCK_FILE, "utf-8").trim();
|
|
62
|
+
try {
|
|
63
|
+
process.kill(Number(storedPid), 0);
|
|
64
|
+
return false; // a run is in progress
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
unlinkSync(LOCK_FILE); // stale
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
writeFileSync(LOCK_FILE, String(process.pid));
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
function releaseLock() {
|
|
74
|
+
try {
|
|
75
|
+
if (existsSync(LOCK_FILE) && readFileSync(LOCK_FILE, "utf-8").trim() === String(process.pid)) {
|
|
76
|
+
unlinkSync(LOCK_FILE);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
/* best effort */
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/** Most-recent dream-cycle :Report timestamp for the account, ISO or null.
|
|
84
|
+
* The keyword is the same one memory-dream-run stamps (["dream-cycle"]). */
|
|
85
|
+
async function latestDreamReportIso(accountId) {
|
|
86
|
+
const session = getSession();
|
|
87
|
+
try {
|
|
88
|
+
const res = await session.run(`MATCH (r:Report)
|
|
89
|
+
WHERE r.accountId = $accountId AND 'dream-cycle' IN r.keywords
|
|
90
|
+
RETURN toString(r.occurredAt) AS occurredAt
|
|
91
|
+
ORDER BY r.occurredAt DESC LIMIT 1`, { accountId });
|
|
92
|
+
const val = res.records[0]?.get("occurredAt");
|
|
93
|
+
return typeof val === "string" && val.length > 0 ? val : null;
|
|
94
|
+
}
|
|
95
|
+
finally {
|
|
96
|
+
await session.close();
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/** True iff any node carries this accountId. A brand-new account with an empty
|
|
100
|
+
* graph has nothing to sweep and is skipped (op=skip reason=no-graph) rather
|
|
101
|
+
* than run through seven no-op phases. */
|
|
102
|
+
async function accountHasGraph(accountId) {
|
|
103
|
+
const session = getSession();
|
|
104
|
+
try {
|
|
105
|
+
const res = await session.run(`MATCH (n {accountId: $accountId}) RETURN n LIMIT 1`, { accountId });
|
|
106
|
+
return res.records.length > 0;
|
|
107
|
+
}
|
|
108
|
+
finally {
|
|
109
|
+
await session.close();
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/** True iff the account has an `:AdminUser` for `memory-report-write` to parent
|
|
113
|
+
* the run's `:Report` onto. Without it a run executes the phases but throws on
|
|
114
|
+
* the report write (memory-report-write.ts "no parent resolved"), leaving no
|
|
115
|
+
* throttle cursor so the next tick runs again — the sweep would repeat every
|
|
116
|
+
* tick and log op=error each time. A provisioned-but-pre-PIN account is in this
|
|
117
|
+
* state (seeded :LocalBusiness makes accountHasGraph true, but no :AdminUser is
|
|
118
|
+
* stamped until the owner identity is set). Such accounts are skipped. */
|
|
119
|
+
async function accountCanPersistReport(accountId) {
|
|
120
|
+
const session = getSession();
|
|
121
|
+
try {
|
|
122
|
+
const res = await session.run(`MATCH (au:AdminUser {accountId: $accountId}) RETURN au LIMIT 1`, { accountId });
|
|
123
|
+
return res.records.length > 0;
|
|
124
|
+
}
|
|
125
|
+
finally {
|
|
126
|
+
await session.close();
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
async function sweepAccount(accountId, nowMs) {
|
|
130
|
+
const a8 = accountId.slice(0, 8);
|
|
131
|
+
const latestReportIso = await latestDreamReportIso(accountId);
|
|
132
|
+
// Hot path: an in-window account is skipped without the graph-existence or
|
|
133
|
+
// admin-parent queries. The final decision is still made by decideSweepAction,
|
|
134
|
+
// which also checks the window, so the two can never disagree. On the cold
|
|
135
|
+
// path both preconditions are read before deciding.
|
|
136
|
+
const withinWindow = isWithinWindow(latestReportIso, nowMs, WINDOW_MS);
|
|
137
|
+
const hasGraph = withinWindow ? true : await accountHasGraph(accountId);
|
|
138
|
+
const canPersistReport = withinWindow || !hasGraph ? true : await accountCanPersistReport(accountId);
|
|
139
|
+
const decision = decideSweepAction({
|
|
140
|
+
latestReportIso,
|
|
141
|
+
nowMs,
|
|
142
|
+
windowMs: WINDOW_MS,
|
|
143
|
+
hasGraph,
|
|
144
|
+
canPersistReport,
|
|
145
|
+
});
|
|
146
|
+
if (decision.action === "skip") {
|
|
147
|
+
console.error(`[dream-cycle-sweep] op=skip accountId=${a8} reason=${decision.reason} ` +
|
|
148
|
+
`lastReport=${latestReportIso ?? "none"}`);
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
const result = await memoryDreamRun({
|
|
152
|
+
accountId,
|
|
153
|
+
operatorId: "dream-cycle-sweep",
|
|
154
|
+
phases: ALL_PHASES,
|
|
155
|
+
});
|
|
156
|
+
// ranPhases = phases attempted this run (phasesRun), so the line is stable
|
|
157
|
+
// whether or not an individual phase threw; a phase that errored is recorded
|
|
158
|
+
// by memoryDreamRun's own [dream-cycle:phase-<n>:error] line.
|
|
159
|
+
console.error(`[dream-cycle-sweep] op=run accountId=${a8} ranPhases=${result.phasesRun.length} ` +
|
|
160
|
+
`reportId=${result.reportId.slice(0, 8)}`);
|
|
161
|
+
}
|
|
162
|
+
async function main() {
|
|
163
|
+
if (!acquireLock()) {
|
|
164
|
+
console.error("[dream-cycle-sweep] another run holds the lock — exiting");
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
try {
|
|
168
|
+
const platformRoot = process.env.PLATFORM_ROOT;
|
|
169
|
+
if (!platformRoot)
|
|
170
|
+
throw new Error("PLATFORM_ROOT is not set");
|
|
171
|
+
const accountsDir = resolve(platformRoot, "..", "data/accounts");
|
|
172
|
+
const accountIds = existsSync(accountsDir) ? enumerateValidAccountIds(accountsDir) : [];
|
|
173
|
+
if (accountIds.length === 0) {
|
|
174
|
+
console.error("[dream-cycle-sweep] op=skip reason=no-accounts");
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
const nowMs = Date.now();
|
|
178
|
+
for (const accountId of accountIds) {
|
|
179
|
+
try {
|
|
180
|
+
await sweepAccount(accountId, nowMs);
|
|
181
|
+
}
|
|
182
|
+
catch (err) {
|
|
183
|
+
// One account's driver/session/phase failure does not abort the sweep;
|
|
184
|
+
// the next account still runs. memoryDreamRun already isolates a single
|
|
185
|
+
// phase throw ([dream-cycle:phase-<n>:error]); this catches the coarser
|
|
186
|
+
// per-account failure (e.g. a session that cannot open).
|
|
187
|
+
console.error(`[dream-cycle-sweep] op=error accountId=${accountId.slice(0, 8)} err="${err instanceof Error ? err.message : String(err)}"`);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
console.error(`[dream-cycle-sweep] done: ${accountIds.length} accounts`);
|
|
191
|
+
}
|
|
192
|
+
finally {
|
|
193
|
+
await closeDriver();
|
|
194
|
+
releaseLock();
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
main()
|
|
198
|
+
.then(() => process.exit(0))
|
|
199
|
+
.catch((err) => {
|
|
200
|
+
console.error(`[dream-cycle-sweep] fatal err="${err instanceof Error ? err.message : String(err)}"`);
|
|
201
|
+
releaseLock();
|
|
202
|
+
process.exit(1);
|
|
203
|
+
});
|
|
204
|
+
//# sourceMappingURL=dream-cycle-sweep.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dream-cycle-sweep.js","sourceRoot":"","sources":["../../src/scripts/dream-cycle-sweep.ts"],"names":[],"mappings":"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"}
|
|
@@ -140,6 +140,36 @@ describe("conversation-archive-derive-insights — runtime", () => {
|
|
|
140
140
|
expect(result.proposals[0].kind).toBe("preference");
|
|
141
141
|
expect(result.invalidClaims).toBe(2);
|
|
142
142
|
});
|
|
143
|
+
it("returns a proposal for a valid note claim and drops a note with no body", async () => {
|
|
144
|
+
mockSession.run.mockResolvedValueOnce({
|
|
145
|
+
records: [{ get: (k) => (k === "eid" ? "4:CHUNK:1" : null) }],
|
|
146
|
+
});
|
|
147
|
+
const result = await conversationArchiveDeriveInsights({
|
|
148
|
+
accountId: "acct",
|
|
149
|
+
archiveElementId: "4:ARCH:1",
|
|
150
|
+
chunkElementId: "4:CHUNK:1",
|
|
151
|
+
claims: [
|
|
152
|
+
{
|
|
153
|
+
kind: "note",
|
|
154
|
+
evidenceSnippet: "prefers the north car park entrance for viewings",
|
|
155
|
+
subject: null,
|
|
156
|
+
object: null,
|
|
157
|
+
payload: { noteBody: "Client prefers the north car park entrance for viewings." },
|
|
158
|
+
},
|
|
159
|
+
// missing noteBody — invalid note, must drop
|
|
160
|
+
{ kind: "note", evidenceSnippet: "abc", subject: null, object: null, payload: {} },
|
|
161
|
+
],
|
|
162
|
+
});
|
|
163
|
+
expect(result.proposals).toHaveLength(1);
|
|
164
|
+
expect(result.invalidClaims).toBe(1);
|
|
165
|
+
const p = result.proposals[0];
|
|
166
|
+
expect(p.kind).toBe("note");
|
|
167
|
+
expect(p.disambiguation).toBeNull();
|
|
168
|
+
expect(p.mergeCypher).toMatch(/MERGE \(n:Note \{ accountId: \$accountId, contentHash: \$contentHash \}\)/);
|
|
169
|
+
expect(p.mergeCypher).toMatch(/MERGE \(n\)-\[:OBSERVED_IN\]->\(c\)/);
|
|
170
|
+
expect(p.mergeParams.noteBody).toBe("Client prefers the north car park entrance for viewings.");
|
|
171
|
+
expect(p.mergeParams.accountId).toBe("acct");
|
|
172
|
+
});
|
|
143
173
|
it("filters proposals matching a recorded rejection (chunkElementId, kind, contentHash)", async () => {
|
|
144
174
|
// Archive membership check passes.
|
|
145
175
|
mockSession.run.mockResolvedValueOnce({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-archive-derive-insights.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/conversation-archive-derive-insights.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"conversation-archive-derive-insights.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/conversation-archive-derive-insights.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EACL,WAAW,EACX,SAAS,EACT,MAAM,EACN,aAAa,EACb,YAAY,GACb,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,WAAW,GAAG;IAClB,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;IACZ,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;CAC5C,CAAC;AAEF,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC;IACnC,UAAU,EAAE,GAAG,EAAE,CAAC,WAAW;CAC9B,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE,CAAC,CAAC;IACxC,cAAc,EAAE,KAAK,EAAK,KAAc,EAAE,IAAsB,EAAc,EAAE,CAAC,IAAI,EAAE;CACxF,CAAC,CAAC,CAAC;AAEJ,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC1D,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;AACzD,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;AAC7D,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,EAAE,mDAAmD,CAAC,CAAC;AAC7F,MAAM,cAAc,GAAG,OAAO,CAAC,YAAY,EAAE,+CAA+C,CAAC,CAAC;AAE9F,QAAQ,CAAC,qDAAqD,EAAE,GAAG,EAAE;IACnE,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CACnB,+DAA+D,CAChE,CAAC;QACF,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CACnB,mEAAmE,CACpE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,gDAAgD,CAAC,CAAC;QACzE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,oDAAoD,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,GAAG,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC7C,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACxC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,GAAG,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC7C,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,GAAG,GAAG,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;QACrD,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QAClD,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,gDAAgD,EAAE,GAAG,EAAE;IAC9D,IAAI,UAAkB,CAAC;IACvB,IAAI,gBAAoC,CAAC;IACzC,IAAI,iCAAqI,CAAC;IAE1I,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;QAC5D,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC5D,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QAC5B,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QAC9B,EAAE,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,4CAA4C,CAAC,CAAC;QACvE,iCAAiC,GAAG,GAAG,CAAC,iCAAiC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,gBAAgB,KAAK,SAAS;YAAE,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;;YAChE,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,gBAAgB,CAAC;QAClD,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,WAAW,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QACvD,MAAM,MAAM,CACV,iCAAiC,CAAC;YAChC,SAAS,EAAE,MAAM;YACjB,gBAAgB,EAAE,UAAU;YAC5B,cAAc,EAAE,YAAY;YAC5B,MAAM,EAAE,EAAE;SACX,CAAC,CACH,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,WAAW,CAAC,GAAG,CAAC,qBAAqB,CAAC;YACpC,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;SACtE,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,iCAAiC,CAAC;YACrD,SAAS,EAAE,MAAM;YACjB,gBAAgB,EAAE,UAAU;YAC5B,cAAc,EAAE,WAAW;YAC3B,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,SAAS;oBACf,eAAe,EAAE,yBAAyB;oBAC1C,OAAO,EAAE,aAAa;oBACtB,MAAM,EAAE,IAAI;oBACZ,OAAO,EAAE,EAAE;iBACZ;aACF;SACF,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9D,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,IAAI,CAC/E,aAAa,CACd,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QAC7E,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,WAAW,CAAC,GAAG,CAAC,qBAAqB,CAAC;YACpC,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;SACtE,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,iCAAiC,CAAC;YACrD,SAAS,EAAE,MAAM;YACjB,gBAAgB,EAAE,UAAU;YAC5B,cAAc,EAAE,WAAW;YAC3B,MAAM,EAAE;gBACN,oCAAoC;gBACpC,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;gBACnF,mCAAmC;gBACnC,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;gBAClF,mBAAmB;gBACnB;oBACE,IAAI,EAAE,YAAY;oBAClB,eAAe,EAAE,wBAAwB;oBACzC,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,IAAI;oBACZ,OAAO,EAAE;wBACP,kBAAkB,EAAE,SAAS;wBAC7B,aAAa,EAAE,aAAa;wBAC5B,eAAe,EAAE,SAAS;qBAC3B;iBACF;aACF;SACF,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACrD,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;QACvF,WAAW,CAAC,GAAG,CAAC,qBAAqB,CAAC;YACpC,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;SACtE,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,iCAAiC,CAAC;YACrD,SAAS,EAAE,MAAM;YACjB,gBAAgB,EAAE,UAAU;YAC5B,cAAc,EAAE,WAAW;YAC3B,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,MAAM;oBACZ,eAAe,EAAE,kDAAkD;oBACnE,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,IAAI;oBACZ,OAAO,EAAE,EAAE,QAAQ,EAAE,0DAA0D,EAAE;iBAClF;gBACD,6CAA6C;gBAC7C,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;aACnF;SACF,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC;QAC/B,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5B,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC;QACpC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,2EAA2E,CAAC,CAAC;QAC3G,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;QACrE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CACjC,0DAA0D,CAC3D,CAAC;QACF,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qFAAqF,EAAE,KAAK,IAAI,EAAE;QACnG,mCAAmC;QACnC,WAAW,CAAC,GAAG,CAAC,qBAAqB,CAAC;YACpC,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;SACtE,CAAC,CAAC;QAEH,mFAAmF;QACnF,wEAAwE;QACxE,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,4CAA4C,CAAC,CAAC;QAC3F,MAAM,SAAS,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC9C,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,kDAAkD;QAClD,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACnD,MAAM,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACpB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACxB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;QACpC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACpC,aAAa,CACX,SAAS,EACT,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,IAAI,CACrF,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,iCAAiC,CAAC;YACrD,SAAS,EAAE,MAAM;YACjB,gBAAgB,EAAE,UAAU;YAC5B,cAAc,EAAE,WAAW;YAC3B,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,SAAS;oBACf,eAAe,EAAE,yBAAyB;oBAC1C,OAAO,EAAE,aAAa;oBACtB,MAAM,EAAE,IAAI;oBACZ,OAAO,EAAE,EAAE;iBACZ;aACF;SACF,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,oCAAoC;AACpC,8EAA8E;AAE9E,QAAQ,CAAC,0EAA0E,EAAE,GAAG,EAAE;IACxF,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;QAChF,MAAM,GAAG,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC7C,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QACjD,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qGAAqG,EAAE,GAAG,EAAE;QAC7G,MAAM,GAAG,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC7C,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;QACpD,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QAC7C,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;QACpF,WAAW,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7E,MAAM,EAAE,iCAAiC,EAAE,GAAG,MAAM,MAAM,CACxD,qDAAqD,CACtD,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,iCAAiC,CAAC;YACrD,SAAS,EAAE,MAAM;YACjB,gBAAgB,EAAE,MAAM;YACxB,cAAc,EAAE,QAAQ;YACxB,MAAM,EAAE;gBACN,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE;gBACxF,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE;aACxF;SACF,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,aAAa,EAAE,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kFAAkF,EAAE,KAAK,IAAI,EAAE;QAChG,WAAW,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7E,MAAM,EAAE,iCAAiC,EAAE,GAAG,MAAM,MAAM,CACxD,qDAAqD,CACtD,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,iCAAiC,CAAC;YACrD,SAAS,EAAE,MAAM;YACjB,gBAAgB,EAAE,MAAM;YACxB,cAAc,EAAE,QAAQ;YACxB,MAAM,EAAE;gBACN,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE;gBACxF,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE;aACxF;YACD,aAAa,EAAE,IAAI;YACnB,sBAAsB,EAAE,CAAC;SAC1B,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,WAAW,EAAE,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,oBAAqB,CAAC,CAAC,CAAE,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxE,MAAM,CAAC,MAAM,CAAC,oBAAqB,CAAC,CAAC,CAAE,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC9E,WAAW,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7E,MAAM,EAAE,iCAAiC,EAAE,GAAG,MAAM,MAAM,CACxD,qDAAqD,CACtD,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,iCAAiC,CAAC;YACrD,SAAS,EAAE,MAAM;YACjB,gBAAgB,EAAE,MAAM;YACxB,cAAc,EAAE,QAAQ;YACxB,MAAM,EAAE;gBACN,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE;aACzF;YACD,aAAa,EAAE,IAAI;YACnB,sBAAsB,EAAE,CAAC;SAC1B,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;QAClF,WAAW,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7E,MAAM,EAAE,iCAAiC,EAAE,GAAG,MAAM,MAAM,CACxD,qDAAqD,CACtD,CAAC;QACF,2EAA2E;QAC3E,MAAM,MAAM,GAAG,MAAM,iCAAiC,CAAC;YACrD,SAAS,EAAE,MAAM;YACjB,gBAAgB,EAAE,MAAM;YACxB,cAAc,EAAE,QAAQ;YACxB,MAAM,EAAE;gBACN,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE;gBACxF,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE;aACxF;YACD,aAAa,EAAE,IAAI;YACnB,wEAAwE;SACzE,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,oBAAqB,CAAC,CAAC,CAAE,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxE,MAAM,CAAC,MAAM,CAAC,oBAAqB,CAAC,CAAC,CAAE,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8EAA8E,EAAE,KAAK,IAAI,EAAE;QAC5F,WAAW,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7E,MAAM,EAAE,iCAAiC,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAC7E,qDAAqD,CACtD,CAAC;QACF,gFAAgF;QAChF,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACnD,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QAC7D,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC1C,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,MAAM,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACpG,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACpC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QAExG,MAAM,MAAM,GAAG,MAAM,iCAAiC,CAAC;YACrD,SAAS,EAAE,MAAM;YACjB,gBAAgB,EAAE,MAAM;YACxB,cAAc,EAAE,QAAQ;YACxB,MAAM,EAAE;gBACN,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE;gBACxF,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE;aACxF;YACD,aAAa,EAAE,IAAI;YACnB,sBAAsB,EAAE,CAAC;SAC1B,CAAC,CAAC;QACH,mFAAmF;QACnF,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,oBAAqB,CAAC,CAAC,CAAE,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;IACzE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-read-active-rules.test.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
// Task 1486 — profile-read exposes the account's active
|
|
2
|
-
//
|
|
3
|
-
//
|
|
1
|
+
// Task 1486 / 1951 — profile-read exposes the account's active rule-set (the
|
|
2
|
+
// same set injection uses). Injection is uncapped and never dedups: every stored
|
|
3
|
+
// active owner preference is returned verbatim, in confidence/observedAt order.
|
|
4
4
|
import { describe, it, expect, beforeEach, vi } from "vitest";
|
|
5
|
-
import { INJECTION_RULE_CAP } from "../../../../../../lib/active-rules/dist/index.js";
|
|
6
5
|
const mockSession = {
|
|
7
6
|
run: vi.fn(),
|
|
8
7
|
close: vi.fn().mockResolvedValue(undefined),
|
|
@@ -29,7 +28,9 @@ function wire(activeCandidates) {
|
|
|
29
28
|
}
|
|
30
29
|
describe("profile-read — activeRules", () => {
|
|
31
30
|
beforeEach(() => wire([]));
|
|
32
|
-
it("
|
|
31
|
+
it("returns same-subject candidates verbatim, without dedup", async () => {
|
|
32
|
+
// 'a' and 'b' are near-duplicates that the old read-side dedup would have
|
|
33
|
+
// folded; injection no longer dedups, so BOTH are returned.
|
|
33
34
|
wire([
|
|
34
35
|
{ preferenceId: "a", category: "content", key: "header_a", value: "use the standard header", confidence: 0.8, observedAt: "2026-07-01T00:00:00Z", embedding: [1, 0, 0, 0] },
|
|
35
36
|
{ preferenceId: "b", category: "content", key: "header_b", value: "standard header restated", confidence: 0.6, observedAt: "2026-07-02T00:00:00Z", embedding: [0.99, 0.01, 0, 0] },
|
|
@@ -37,9 +38,9 @@ describe("profile-read — activeRules", () => {
|
|
|
37
38
|
]);
|
|
38
39
|
const res = await profileRead({ accountId: "acct-1", userId: "user-1" });
|
|
39
40
|
const ids = res.activeRules.map((r) => r.preferenceId);
|
|
40
|
-
expect(ids).toEqual(["a", "c"]);
|
|
41
|
+
expect(ids).toEqual(["a", "b", "c"]);
|
|
41
42
|
});
|
|
42
|
-
it("
|
|
43
|
+
it("returns the uncapped set — all 20 candidates, no truncation", async () => {
|
|
43
44
|
const many = Array.from({ length: 20 }, (_, i) => ({
|
|
44
45
|
preferenceId: `p${i}`, category: "content", key: `k${i}`, value: `rule ${i}`,
|
|
45
46
|
confidence: 1 - i * 0.01, observedAt: "2026-07-01T00:00:00Z",
|
|
@@ -47,8 +48,8 @@ describe("profile-read — activeRules", () => {
|
|
|
47
48
|
}));
|
|
48
49
|
wire(many);
|
|
49
50
|
const res = await profileRead({ accountId: "acct-1", userId: "user-1" });
|
|
50
|
-
const
|
|
51
|
-
expect(
|
|
51
|
+
const ids = res.activeRules.map((r) => r.preferenceId);
|
|
52
|
+
expect(ids).toEqual(many.map((m) => m.preferenceId));
|
|
52
53
|
});
|
|
53
54
|
});
|
|
54
55
|
//# sourceMappingURL=profile-read-active-rules.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile-read-active-rules.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/profile-read-active-rules.test.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"profile-read-active-rules.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/profile-read-active-rules.test.ts"],"names":[],"mappings":"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"}
|
package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.d.ts
CHANGED
|
@@ -18,12 +18,14 @@
|
|
|
18
18
|
* then this REFERENCES edge via raw cypher.)
|
|
19
19
|
* preference → MERGE (p:Preference {accountId, contentHash})
|
|
20
20
|
* then (p)-[:OBSERVED_IN]->(chunk)
|
|
21
|
+
* note → MERGE (n:Note {accountId, contentHash})
|
|
22
|
+
* then (n)-[:OBSERVED_IN]->(chunk)
|
|
21
23
|
* observed-relationship → (:Person|:Organization)-[:RELATED_TO {contentHash, operatorConfirmed:true}]->(:Person|:Organization)
|
|
22
24
|
*/
|
|
23
25
|
export declare function rejectionsJsonlPath(accountId: string): string;
|
|
24
26
|
export declare function rejectionKey(chunkElementId: string, kind: string, contentHash: string): string;
|
|
25
27
|
export declare function loadRejections(accountId: string): Set<string>;
|
|
26
|
-
export declare const PROPOSAL_KINDS: readonly ["mention", "task", "preference", "observed-relationship"];
|
|
28
|
+
export declare const PROPOSAL_KINDS: readonly ["mention", "task", "preference", "note", "observed-relationship"];
|
|
27
29
|
export type ProposalKind = (typeof PROPOSAL_KINDS)[number];
|
|
28
30
|
export interface AgentClaim {
|
|
29
31
|
kind: ProposalKind;
|
|
@@ -63,7 +65,7 @@ export interface DeriveInsightsParams {
|
|
|
63
65
|
export interface Proposal {
|
|
64
66
|
/** elementId of the source conversation-document :Section chunk. */
|
|
65
67
|
chunkElementId: string;
|
|
66
|
-
/** One of the
|
|
68
|
+
/** One of the five supported kinds. */
|
|
67
69
|
kind: ProposalKind;
|
|
68
70
|
/** Deterministic sha256 over kind + payload — idempotency key on re-runs. */
|
|
69
71
|
contentHash: string;
|
package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-archive-derive-insights.d.ts","sourceRoot":"","sources":["../../src/tools/conversation-archive-derive-insights.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"conversation-archive-derive-insights.d.ts","sourceRoot":"","sources":["../../src/tools/conversation-archive-derive-insights.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AA2BH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAS7D;AAID,wBAAgB,YAAY,CAC1B,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,GAClB,MAAM,CAER;AAID,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAwC7D;AAQD,eAAO,MAAM,cAAc,6EAMjB,CAAC;AACX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAM3D,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,YAAY,CAAC;IACnB,yFAAyF;IACzF,eAAe,EAAE,MAAM,CAAC;IACxB,wFAAwF;IACxF,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,gBAAgB,EAAE,MAAM,CAAC;IACzB,kEAAkE;IAClE,cAAc,EAAE,MAAM,CAAC;IACvB,4EAA4E;IAC5E,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,QAAQ;IACvB,oEAAoE;IACpE,cAAc,EAAE,MAAM,CAAC;IACvB,uCAAuC;IACvC,IAAI,EAAE,YAAY,CAAC;IACnB,6EAA6E;IAC7E,WAAW,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,eAAe,EAAE,MAAM,CAAC;IACxB,qEAAqE;IACrE,cAAc,EAAE,MAAM,CAAC;IACvB,0FAA0F;IAC1F,WAAW,EAAE,MAAM,CAAC;IACpB,0FAA0F;IAC1F,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC;;;;OAIG;IACH,cAAc,EAAE;QACd,eAAe,EAAE,KAAK,CAAC;YACrB,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC;YAC3B,WAAW,EAAE,MAAM,CAAC;YACpB,cAAc,EAAE,KAAK,CAAC,QAAQ,GAAG,cAAc,CAAC,CAAC;SAClD,CAAC,CAAC;KACJ,GAAG,IAAI,CAAC;CACV;AAED,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,uDAAuD;IACvD,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,oFAAoF;IACpF,kBAAkB,EAAE,MAAM,CAAC;IAC3B,6FAA6F;IAC7F,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACxE;AAuUD,wBAAsB,iCAAiC,CACrD,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,oBAAoB,CAAC,CAU/B"}
|
package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.js
CHANGED
|
@@ -18,6 +18,8 @@
|
|
|
18
18
|
* then this REFERENCES edge via raw cypher.)
|
|
19
19
|
* preference → MERGE (p:Preference {accountId, contentHash})
|
|
20
20
|
* then (p)-[:OBSERVED_IN]->(chunk)
|
|
21
|
+
* note → MERGE (n:Note {accountId, contentHash})
|
|
22
|
+
* then (n)-[:OBSERVED_IN]->(chunk)
|
|
21
23
|
* observed-relationship → (:Person|:Organization)-[:RELATED_TO {contentHash, operatorConfirmed:true}]->(:Person|:Organization)
|
|
22
24
|
*/
|
|
23
25
|
import { createHash } from "node:crypto";
|
|
@@ -98,6 +100,7 @@ export const PROPOSAL_KINDS = [
|
|
|
98
100
|
"mention",
|
|
99
101
|
"task",
|
|
100
102
|
"preference",
|
|
103
|
+
"note",
|
|
101
104
|
"observed-relationship",
|
|
102
105
|
];
|
|
103
106
|
// ---------------------------------------------------------------------------
|
|
@@ -249,6 +252,39 @@ RETURN elementId(p) AS preferenceId`,
|
|
|
249
252
|
disambiguation: null,
|
|
250
253
|
};
|
|
251
254
|
}
|
|
255
|
+
function buildNoteProposal(chunkElementId, claim, accountId, sessionId) {
|
|
256
|
+
const payload = claim.payload ?? {};
|
|
257
|
+
const noteBody = typeof payload.noteBody === "string" ? payload.noteBody.trim() : "";
|
|
258
|
+
if (!noteBody)
|
|
259
|
+
return null;
|
|
260
|
+
const contentHash = hashContent("note", [noteBody]);
|
|
261
|
+
const preview = noteBody.length > 60 ? `${noteBody.slice(0, 60)}…` : noteBody;
|
|
262
|
+
return {
|
|
263
|
+
chunkElementId,
|
|
264
|
+
kind: "note",
|
|
265
|
+
contentHash,
|
|
266
|
+
evidenceSnippet: claim.evidenceSnippet,
|
|
267
|
+
proposedAction: `Note "${preview}" OBSERVED_IN this chunk`,
|
|
268
|
+
mergeCypher: `MATCH (c) WHERE elementId(c) = $chunkElementId
|
|
269
|
+
MERGE (n:Note { accountId: $accountId, contentHash: $contentHash })
|
|
270
|
+
ON CREATE SET n.body = $noteBody,
|
|
271
|
+
n.evidenceSnippet = $evidenceSnippet,
|
|
272
|
+
n.createdAt = datetime(),
|
|
273
|
+
n.createdByTool = 'conversation-archive-derive-insights',
|
|
274
|
+
n.createdBySession = $sessionId
|
|
275
|
+
MERGE (n)-[:OBSERVED_IN]->(c)
|
|
276
|
+
RETURN elementId(n) AS noteId`,
|
|
277
|
+
mergeParams: {
|
|
278
|
+
chunkElementId,
|
|
279
|
+
accountId,
|
|
280
|
+
contentHash,
|
|
281
|
+
noteBody,
|
|
282
|
+
evidenceSnippet: claim.evidenceSnippet,
|
|
283
|
+
sessionId: sessionId ?? null,
|
|
284
|
+
},
|
|
285
|
+
disambiguation: null,
|
|
286
|
+
};
|
|
287
|
+
}
|
|
252
288
|
function buildObservedRelationshipProposal(chunkElementId, claim, sessionId) {
|
|
253
289
|
const subject = (claim.subject ?? "").trim();
|
|
254
290
|
const object = (claim.object ?? "").trim();
|
|
@@ -310,6 +346,8 @@ async function buildProposal(chunkElementId, claim, accountId, sessionId) {
|
|
|
310
346
|
return buildTaskProposal(chunkElementId, claim, sessionId);
|
|
311
347
|
case "preference":
|
|
312
348
|
return await buildPreferenceProposal(chunkElementId, claim, accountId, sessionId);
|
|
349
|
+
case "note":
|
|
350
|
+
return buildNoteProposal(chunkElementId, claim, accountId, sessionId);
|
|
313
351
|
case "observed-relationship":
|
|
314
352
|
return buildObservedRelationshipProposal(chunkElementId, claim, sessionId);
|
|
315
353
|
}
|