@rubytech/create-maxy-code 0.1.416 → 0.1.419
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/dist/__tests__/brand-port-uniqueness.test.js +74 -0
- package/dist/__tests__/outlook-client-id-env.test.js +46 -0
- package/dist/index.js +31 -0
- package/dist/known-brands.js +1 -0
- package/dist/port-resolution.js +8 -1
- package/package.json +1 -1
- package/payload/platform/config/brand-registry.json +8 -0
- package/payload/platform/config/brand.json +1 -0
- package/payload/platform/lib/account-enumeration/dist/__tests__/is-provisioned.test.d.ts +2 -0
- package/payload/platform/lib/account-enumeration/dist/__tests__/is-provisioned.test.d.ts.map +1 -0
- package/payload/platform/lib/account-enumeration/dist/__tests__/is-provisioned.test.js +81 -0
- package/payload/platform/lib/account-enumeration/dist/__tests__/is-provisioned.test.js.map +1 -0
- package/payload/platform/lib/account-enumeration/dist/index.d.ts +17 -0
- package/payload/platform/lib/account-enumeration/dist/index.d.ts.map +1 -1
- package/payload/platform/lib/account-enumeration/dist/index.js +46 -9
- package/payload/platform/lib/account-enumeration/dist/index.js.map +1 -1
- package/payload/platform/lib/account-enumeration/src/__tests__/is-provisioned.test.ts +86 -0
- package/payload/platform/lib/account-enumeration/src/index.ts +45 -9
- package/payload/platform/lib/account-scope/dist/index.d.ts +14 -5
- package/payload/platform/lib/account-scope/dist/index.d.ts.map +1 -1
- package/payload/platform/lib/account-scope/dist/index.js +14 -5
- package/payload/platform/lib/account-scope/dist/index.js.map +1 -1
- package/payload/platform/lib/account-scope/src/index.ts +22 -5
- package/payload/platform/lib/active-rules/dist/index.d.ts +35 -0
- package/payload/platform/lib/active-rules/dist/index.d.ts.map +1 -0
- package/payload/platform/lib/active-rules/dist/index.js +94 -0
- package/payload/platform/lib/active-rules/dist/index.js.map +1 -0
- package/payload/platform/lib/active-rules/package.json +7 -0
- package/payload/platform/lib/active-rules/src/index.test.ts +89 -0
- package/payload/platform/lib/active-rules/src/index.ts +133 -0
- package/payload/platform/lib/active-rules/tsconfig.json +9 -0
- package/payload/platform/package.json +4 -3
- package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +55 -10
- package/payload/platform/plugins/docs/references/internals.md +10 -0
- package/payload/platform/plugins/docs/references/memory-guide.md +2 -0
- package/payload/platform/plugins/docs/references/outlook-guide.md +42 -9
- package/payload/platform/plugins/email/references/email-reference.md +1 -1
- package/payload/platform/plugins/filesystem/PLUGIN.md +1 -1
- package/payload/platform/plugins/filesystem/mcp/dist/lib/__tests__/scope.test.js +16 -2
- package/payload/platform/plugins/filesystem/mcp/dist/lib/__tests__/scope.test.js.map +1 -1
- package/payload/platform/plugins/filesystem/mcp/dist/lib/scope.d.ts +1 -1
- package/payload/platform/plugins/filesystem/mcp/dist/lib/scope.d.ts.map +1 -1
- package/payload/platform/plugins/filesystem/mcp/dist/lib/scope.js +8 -3
- package/payload/platform/plugins/filesystem/mcp/dist/lib/scope.js.map +1 -1
- package/payload/platform/plugins/filesystem/mcp/dist/tools/__tests__/handlers.test.js +2 -2
- package/payload/platform/plugins/filesystem/mcp/dist/tools/__tests__/handlers.test.js.map +1 -1
- package/payload/platform/plugins/memory/PLUGIN.md +1 -1
- package/payload/platform/plugins/memory/mcp/dist/index-testable.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/index-testable.js +14 -5
- package/payload/platform/plugins/memory/mcp/dist/index-testable.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/index.js +5 -2
- package/payload/platform/plugins/memory/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/neo4j-constraint.d.ts +29 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/neo4j-constraint.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/neo4j-constraint.js +44 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/neo4j-constraint.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/owner-person-embed-text.test.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/owner-person-embed-text.test.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/owner-person-embed-text.test.js +22 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/owner-person-embed-text.test.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-read-active-rules.test.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-read-active-rules.test.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-read-active-rules.test.js +49 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-read-active-rules.test.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-personfields-bootstrap.test.js +105 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-personfields-bootstrap.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-personfields-embed.test.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-personfields-embed.test.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-personfields-embed.test.js +78 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-personfields-embed.test.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-reconcile.test.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-reconcile.test.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-reconcile.test.js +99 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-reconcile.test.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/resolve-tool-account.test.js +2 -2
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/resolve-tool-account.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.d.ts +0 -5
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.js +2 -12
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/profile-read.d.ts +3 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/profile-read.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/profile-read.js +11 -3
- package/payload/platform/plugins/memory/mcp/dist/tools/profile-read.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/profile-update.d.ts +22 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/profile-update.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/profile-update.js +212 -24
- package/payload/platform/plugins/memory/mcp/dist/tools/profile-update.js.map +1 -1
- package/payload/platform/plugins/outlook/.claude-plugin/plugin.json +1 -1
- package/payload/platform/plugins/outlook/PLUGIN.md +40 -7
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/account-register.test.d.ts +2 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/account-register.test.d.ts.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/account-register.test.js +137 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/account-register.test.js.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/calendar-write.test.d.ts +2 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/calendar-write.test.d.ts.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/calendar-write.test.js +210 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/calendar-write.test.js.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/device-flow.test.d.ts +2 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/device-flow.test.d.ts.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/device-flow.test.js +110 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/device-flow.test.js.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client-retry.test.d.ts +2 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client-retry.test.d.ts.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client-retry.test.js +108 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client-retry.test.js.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client.test.js +13 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client.test.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/message.test.d.ts +2 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/message.test.d.ts.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/message.test.js +32 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/message.test.js.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/pending-store.test.d.ts +2 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/pending-store.test.d.ts.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/pending-store.test.js +67 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/pending-store.test.js.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/pkce-flow.test.js +7 -5
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/pkce-flow.test.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/write-tools.test.d.ts +2 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/write-tools.test.d.ts.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/write-tools.test.js +141 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/write-tools.test.js.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/auth/device-flow.d.ts +69 -0
- package/payload/platform/plugins/outlook/mcp/dist/auth/device-flow.d.ts.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/auth/device-flow.js +129 -0
- package/payload/platform/plugins/outlook/mcp/dist/auth/device-flow.js.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/auth/pending-store.d.ts +39 -0
- package/payload/platform/plugins/outlook/mcp/dist/auth/pending-store.d.ts.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/auth/pending-store.js +101 -0
- package/payload/platform/plugins/outlook/mcp/dist/auth/pending-store.js.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/auth/pkce-flow.d.ts.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/auth/pkce-flow.js +3 -2
- package/payload/platform/plugins/outlook/mcp/dist/auth/pkce-flow.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/index.js +187 -5
- package/payload/platform/plugins/outlook/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.d.ts +34 -1
- package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.d.ts.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.js +96 -7
- package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/lib/message.d.ts +31 -0
- package/payload/platform/plugins/outlook/mcp/dist/lib/message.d.ts.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/lib/message.js +30 -0
- package/payload/platform/plugins/outlook/mcp/dist/lib/message.js.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/account-register.d.ts +41 -17
- package/payload/platform/plugins/outlook/mcp/dist/tools/account-register.d.ts.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/tools/account-register.js +87 -28
- package/payload/platform/plugins/outlook/mcp/dist/tools/account-register.js.map +1 -1
- package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-cancel.d.ts +17 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-cancel.d.ts.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-cancel.js +38 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-cancel.js.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-create.d.ts +42 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-create.d.ts.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-create.js +59 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-create.js.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-freebusy.d.ts +34 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-freebusy.d.ts.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-freebusy.js +46 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-freebusy.js.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-respond.d.ts +15 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-respond.d.ts.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-respond.js +27 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-respond.js.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-update.d.ts +11 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-update.d.ts.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-update.js +20 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-update.js.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/draft-send.d.ts +17 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/draft-send.d.ts.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/draft-send.js +26 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/draft-send.js.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/draft.d.ts +11 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/draft.d.ts.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/draft.js +26 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/draft.js.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/mail-send.d.ts +14 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/mail-send.d.ts.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/mail-send.js +26 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/mail-send.js.map +1 -0
- package/payload/platform/plugins/outlook/mcp/scripts/verify-doc-impl.sh +2 -2
- package/payload/platform/plugins/outlook/references/auth.md +51 -54
- package/payload/platform/plugins/outlook/references/graph-surfaces.md +97 -4
- package/payload/platform/plugins/outlook/skills/outlook/SKILL.md +34 -9
- package/payload/platform/plugins/whatsapp/mcp/dist/index.js +10 -5
- package/payload/platform/plugins/whatsapp/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/whatsapp/references/channels-whatsapp.md +9 -1
- package/payload/platform/scripts/__tests__/provision-role-stamp.test.sh +3 -0
- package/payload/platform/scripts/lib/provision-account-dir.sh +9 -1
- package/payload/platform/services/claude-session-manager/dist/agent-identity-locator.d.ts +1 -1
- package/payload/platform/services/claude-session-manager/dist/agent-identity-locator.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/agent-identity-locator.js +5 -1
- package/payload/platform/services/claude-session-manager/dist/agent-identity-locator.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js +9 -0
- package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/config.d.ts +18 -0
- package/payload/platform/services/claude-session-manager/dist/config.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/config.js +16 -0
- package/payload/platform/services/claude-session-manager/dist/config.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/http-server.d.ts +1 -0
- package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/http-server.js +36 -4
- package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/index.js +14 -0
- package/payload/platform/services/claude-session-manager/dist/index.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/preference-reconciliation-audit.d.ts +46 -0
- package/payload/platform/services/claude-session-manager/dist/preference-reconciliation-audit.d.ts.map +1 -0
- package/payload/platform/services/claude-session-manager/dist/preference-reconciliation-audit.js +96 -0
- package/payload/platform/services/claude-session-manager/dist/preference-reconciliation-audit.js.map +1 -0
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +33 -0
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +61 -7
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/public-agent-reachability.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/public-agent-reachability.js +5 -1
- package/payload/platform/services/claude-session-manager/dist/public-agent-reachability.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/system-prompt.d.ts +6 -0
- package/payload/platform/services/claude-session-manager/dist/system-prompt.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/system-prompt.js +20 -0
- package/payload/platform/services/claude-session-manager/dist/system-prompt.js.map +1 -1
- package/payload/platform/services/telegram-channel/dist/instructions.d.ts +9 -0
- package/payload/platform/services/telegram-channel/dist/instructions.d.ts.map +1 -0
- package/payload/platform/services/telegram-channel/dist/instructions.js +100 -0
- package/payload/platform/services/telegram-channel/dist/instructions.js.map +1 -0
- package/payload/platform/services/telegram-channel/dist/notification.d.ts +93 -0
- package/payload/platform/services/telegram-channel/dist/notification.d.ts.map +1 -0
- package/payload/platform/services/telegram-channel/dist/notification.js +119 -0
- package/payload/platform/services/telegram-channel/dist/notification.js.map +1 -0
- package/payload/platform/services/telegram-channel/dist/server.d.ts +40 -0
- package/payload/platform/services/telegram-channel/dist/server.d.ts.map +1 -0
- package/payload/platform/services/telegram-channel/dist/server.js +291 -0
- package/payload/platform/services/telegram-channel/dist/server.js.map +1 -0
- package/payload/platform/services/telegram-channel/dist/turn-follow.d.ts +28 -0
- package/payload/platform/services/telegram-channel/dist/turn-follow.d.ts.map +1 -0
- package/payload/platform/services/telegram-channel/dist/turn-follow.js +188 -0
- package/payload/platform/services/telegram-channel/dist/turn-follow.js.map +1 -0
- package/payload/platform/services/webchat-channel/dist/notification.d.ts +5 -0
- package/payload/platform/services/webchat-channel/dist/notification.d.ts.map +1 -1
- package/payload/platform/services/webchat-channel/dist/notification.js +6 -1
- package/payload/platform/services/webchat-channel/dist/notification.js.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/notification.d.ts +6 -0
- package/payload/platform/services/whatsapp-channel/dist/notification.d.ts.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/notification.js +8 -1
- package/payload/platform/services/whatsapp-channel/dist/notification.js.map +1 -1
- package/payload/platform/templates/agents/passive/IDENTITY.md +21 -0
- package/payload/platform/templates/specialists/agents/personal-assistant.md +1 -1
- package/payload/server/public/assets/{AdminLoginScreens-CBlE6FB4.js → AdminLoginScreens-B1PkOF66.js} +1 -1
- package/payload/server/public/assets/AdminShell-D8wNArGQ.js +2 -0
- package/payload/server/public/assets/{Checkbox-B0pbYJDQ.js → Checkbox-Bm9Er726.js} +1 -1
- package/payload/server/public/assets/{Transcript-CYaAPBFX.js → Transcript-CBIyQ8T5.js} +1 -1
- package/payload/server/public/assets/{admin-CVh9HO-f.js → admin-CWM9G_yA.js} +1 -1
- package/payload/server/public/assets/{browser-C4f_D4Ih.js → browser-D8QhNffV.js} +1 -1
- package/payload/server/public/assets/{calendar-WUxQ4fVo.js → calendar-qob5K4t_.js} +1 -1
- package/payload/server/public/assets/chat-BNrxVUF6.js +1 -0
- package/payload/server/public/assets/chevron-left-BQThFVrd.js +1 -0
- package/payload/server/public/assets/data-C-EqNbRi.js +1 -0
- package/payload/server/public/assets/{graph-BNXE6mKP.js → graph-DZ2HMpIB.js} +1 -1
- package/payload/server/public/assets/{graph-labels-Csnovm_c.js → graph-labels-BFG4bjXQ.js} +1 -1
- package/payload/server/public/assets/{maximize-2-WRUJsg5n.js → maximize-2-DkZ40lSl.js} +1 -1
- package/payload/server/public/assets/{operator-CXtygMh6.js → operator-FrXrSsBj.js} +1 -1
- package/payload/server/public/assets/page-CHWMI9Tm.js +32 -0
- package/payload/server/public/assets/{page-IQDLdebG.js → page-CXKV01gT.js} +1 -1
- package/payload/server/public/assets/{public-DSeYu61E.js → public-2p1pJ4WF.js} +1 -1
- package/payload/server/public/assets/{rotate-ccw-BayMWwfc.js → rotate-ccw-D3o_bMBA.js} +1 -1
- package/payload/server/public/assets/useSubAccountSwitcher-8dLvF3Ux.js +9 -0
- package/payload/server/public/assets/useSubAccountSwitcher-BUvlETHN.css +1 -0
- package/payload/server/public/browser.html +4 -4
- package/payload/server/public/calendar.html +5 -5
- package/payload/server/public/chat.html +9 -9
- package/payload/server/public/data.html +8 -8
- package/payload/server/public/graph.html +9 -9
- package/payload/server/public/index.html +11 -11
- package/payload/server/public/operator.html +11 -11
- package/payload/server/public/public.html +9 -9
- package/payload/server/server.js +245 -40
- package/payload/server/public/assets/AdminShell-d1WQ3lLu.js +0 -2
- package/payload/server/public/assets/chat-NJ2HXhOf.js +0 -1
- package/payload/server/public/assets/chevron-left-Da-iZGi_.js +0 -1
- package/payload/server/public/assets/data-ZUdT44Ba.js +0 -1
- package/payload/server/public/assets/page-DjpQp_ir.js +0 -32
- package/payload/server/public/assets/useSubAccountSwitcher-C9aLg8yI.js +0 -9
- package/payload/server/public/assets/useSubAccountSwitcher-CRZfyJXR.css +0 -1
package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-read-active-rules.test.js
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// Task 1486 — profile-read exposes the account's active, de-conflicted, bounded
|
|
2
|
+
// rule-set (the same set injection uses). Near-duplicate subjects collapse to
|
|
3
|
+
// one; the count never exceeds the injection cap.
|
|
4
|
+
import { describe, it, expect, beforeEach, vi } from "vitest";
|
|
5
|
+
import { INJECTION_RULE_CAP } from "../../../../../../lib/active-rules/dist/index.js";
|
|
6
|
+
const mockSession = {
|
|
7
|
+
run: vi.fn(),
|
|
8
|
+
close: vi.fn().mockResolvedValue(undefined),
|
|
9
|
+
};
|
|
10
|
+
vi.mock("../../lib/neo4j.js", () => ({ getSession: () => mockSession }));
|
|
11
|
+
import { profileRead } from "../profile-read.js";
|
|
12
|
+
const rec = (row) => ({ get: (k) => row[k] });
|
|
13
|
+
const upNode = { properties: { accountId: "acct-1", userId: "user-1", scope: "admin" } };
|
|
14
|
+
function wire(activeCandidates) {
|
|
15
|
+
mockSession.run.mockReset();
|
|
16
|
+
mockSession.run.mockImplementation(async (q) => {
|
|
17
|
+
// The active-rules candidate query keys on Preference with a vector column.
|
|
18
|
+
if (q.includes("pref.embedding AS embedding")) {
|
|
19
|
+
return { records: activeCandidates.map(rec) };
|
|
20
|
+
}
|
|
21
|
+
// The main profile query returns up + person + prefs.
|
|
22
|
+
return { records: [rec({ up: upNode, person: null, prefs: [] })] };
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
describe("profile-read — activeRules", () => {
|
|
26
|
+
beforeEach(() => wire([]));
|
|
27
|
+
it("collapses same-subject candidates and returns activeRules", async () => {
|
|
28
|
+
wire([
|
|
29
|
+
{ 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] },
|
|
30
|
+
{ 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] },
|
|
31
|
+
{ preferenceId: "c", category: "communication", key: "cc_dale", value: "always CC Dale", confidence: 0.7, observedAt: "2026-07-03T00:00:00Z", embedding: [0, 1, 0, 0] },
|
|
32
|
+
]);
|
|
33
|
+
const res = await profileRead({ accountId: "acct-1", userId: "user-1" });
|
|
34
|
+
const ids = res.activeRules.map((r) => r.preferenceId);
|
|
35
|
+
expect(ids).toEqual(["a", "c"]); // b folds into a
|
|
36
|
+
});
|
|
37
|
+
it("never exceeds the injection cap", async () => {
|
|
38
|
+
const many = Array.from({ length: 20 }, (_, i) => ({
|
|
39
|
+
preferenceId: `p${i}`, category: "content", key: `k${i}`, value: `rule ${i}`,
|
|
40
|
+
confidence: 1 - i * 0.01, observedAt: "2026-07-01T00:00:00Z",
|
|
41
|
+
embedding: [Math.cos(i), Math.sin(i), 0, 0],
|
|
42
|
+
}));
|
|
43
|
+
wire(many);
|
|
44
|
+
const res = await profileRead({ accountId: "acct-1", userId: "user-1" });
|
|
45
|
+
const rules = res.activeRules;
|
|
46
|
+
expect(rules.length).toBeLessThanOrEqual(INJECTION_RULE_CAP);
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
//# sourceMappingURL=profile-read-active-rules.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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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"}
|
|
@@ -96,4 +96,109 @@ describe("profile-update — owner Person bootstrap on cross-account personField
|
|
|
96
96
|
expect(src).toContain("bootstrapPerson: crossAccount");
|
|
97
97
|
});
|
|
98
98
|
});
|
|
99
|
+
// Task 1467 — harden the owner Person bootstrap. Two failure modes on the
|
|
100
|
+
// shared personFields person-write are shaped into actionable errors instead
|
|
101
|
+
// of leaking a raw Neo4j fault or a misleading guard message.
|
|
102
|
+
describe("profile-update — owner Person bootstrap hardening (Task 1467)", () => {
|
|
103
|
+
let emit;
|
|
104
|
+
beforeEach(() => {
|
|
105
|
+
emit = setupEmitCapture();
|
|
106
|
+
mockSession.run.mockReset();
|
|
107
|
+
});
|
|
108
|
+
afterEach(() => emit.restore());
|
|
109
|
+
// Drive per-cypher behaviour: only the person-write (`p += $fields`) is
|
|
110
|
+
// special-cased; every other run resolves empty so the surrounding flow
|
|
111
|
+
// reaches the person write.
|
|
112
|
+
function mockPersonRun(behaviour) {
|
|
113
|
+
mockSession.run.mockImplementation(async (q) => {
|
|
114
|
+
const query = String(q);
|
|
115
|
+
if (query.includes("p += $fields"))
|
|
116
|
+
return behaviour(query);
|
|
117
|
+
return { records: [] };
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
// The four cases vary only the mocked person-write behaviour; the call is
|
|
121
|
+
// otherwise identical, so run it through one helper that captures the reject.
|
|
122
|
+
function runBootstrap() {
|
|
123
|
+
return profileUpdate({
|
|
124
|
+
accountId: ACCT,
|
|
125
|
+
userId: USER,
|
|
126
|
+
category: "communication",
|
|
127
|
+
key: "tone",
|
|
128
|
+
value: "polite",
|
|
129
|
+
personFields: { telephone: "+447700900123" },
|
|
130
|
+
validator,
|
|
131
|
+
bootstrapPerson: true,
|
|
132
|
+
}).then(() => null, (e) => e);
|
|
133
|
+
}
|
|
134
|
+
// Neo4j composite-constraint violation message. person_telephone_unique and
|
|
135
|
+
// person_email_unique are COMPOSITE (accountId, <field>) constraints, so the
|
|
136
|
+
// fault message is the PLURAL "properties `accountId` = …, `telephone` = …"
|
|
137
|
+
// form — NOT the singular "property `telephone` = …". The shaped error must
|
|
138
|
+
// name the CONTACT field the operator set, not the co-appearing accountId.
|
|
139
|
+
function compositeTelephoneViolation() {
|
|
140
|
+
const e = new Error("Node(42) already exists with label `Person` and properties " +
|
|
141
|
+
`\`accountId\` = '${ACCT}', \`telephone\` = '+447700900123'`);
|
|
142
|
+
e.code =
|
|
143
|
+
"Neo.ClientError.Schema.ConstraintValidationFailed";
|
|
144
|
+
return e;
|
|
145
|
+
}
|
|
146
|
+
it("shapes a composite telephone constraint violation into an actionable error naming the contact field and value", async () => {
|
|
147
|
+
mockPersonRun(() => {
|
|
148
|
+
throw compositeTelephoneViolation();
|
|
149
|
+
});
|
|
150
|
+
const err = await runBootstrap();
|
|
151
|
+
expect(err).toBeInstanceOf(Error);
|
|
152
|
+
const msg = err.message;
|
|
153
|
+
// Names the colliding CONTACT property and value.
|
|
154
|
+
expect(msg).toMatch(/telephone/);
|
|
155
|
+
expect(msg).toContain("+447700900123");
|
|
156
|
+
// Picks the contact field, not the system accountId that co-appears in the
|
|
157
|
+
// composite-constraint message.
|
|
158
|
+
expect(msg).not.toContain(ACCT);
|
|
159
|
+
// Says the value already belongs to another Person — actionable.
|
|
160
|
+
expect(msg).toMatch(/already belongs to another Person/i);
|
|
161
|
+
// Never leaks the raw Neo4j code.
|
|
162
|
+
expect(msg).not.toContain("ConstraintValidationFailed");
|
|
163
|
+
});
|
|
164
|
+
it("rethrows a non-constraint person-write error unchanged (no collision shaping)", async () => {
|
|
165
|
+
mockPersonRun(() => {
|
|
166
|
+
throw new Error("bolt: connection reset");
|
|
167
|
+
});
|
|
168
|
+
const err = await runBootstrap();
|
|
169
|
+
expect(err.message).toBe("bolt: connection reset");
|
|
170
|
+
expect(err.message).not.toMatch(/already belongs/i);
|
|
171
|
+
});
|
|
172
|
+
it("shapes affected>1 (concurrent-duplicate owner Person) into a duplicate-specific error naming the count", async () => {
|
|
173
|
+
mockPersonRun(() => ({
|
|
174
|
+
records: [
|
|
175
|
+
{
|
|
176
|
+
get: (k) => k === "affected" ? 2 : k === "personElementId" ? "elem-1" : undefined,
|
|
177
|
+
},
|
|
178
|
+
],
|
|
179
|
+
}));
|
|
180
|
+
const err = await runBootstrap();
|
|
181
|
+
const msg = err.message;
|
|
182
|
+
// Duplicate-specific: names the count and the concurrent-bootstrap cause.
|
|
183
|
+
expect(msg).toContain("2");
|
|
184
|
+
expect(msg).toMatch(/duplicate/i);
|
|
185
|
+
expect(msg).toMatch(/concurrent/i);
|
|
186
|
+
// Must NOT reuse the count=0 "OWNS edge is missing" wording — that is the
|
|
187
|
+
// opposite fault (two edges, not zero).
|
|
188
|
+
expect(msg).not.toMatch(/OWNS edge is missing/);
|
|
189
|
+
});
|
|
190
|
+
it("keeps the affected===0 loud-fail wording for a genuinely missing OWNS-Person", async () => {
|
|
191
|
+
mockPersonRun(() => ({
|
|
192
|
+
records: [
|
|
193
|
+
{
|
|
194
|
+
get: (k) => k === "affected" ? 0 : k === "personElementId" ? null : undefined,
|
|
195
|
+
},
|
|
196
|
+
],
|
|
197
|
+
}));
|
|
198
|
+
const err = await runBootstrap();
|
|
199
|
+
const msg = err.message;
|
|
200
|
+
expect(msg).toMatch(/AdminUser-OWNS-Person not found/);
|
|
201
|
+
expect(msg).toMatch(/affected=0/);
|
|
202
|
+
});
|
|
203
|
+
});
|
|
99
204
|
//# sourceMappingURL=profile-update-personfields-bootstrap.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile-update-personfields-bootstrap.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/profile-update-personfields-bootstrap.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,WAAW,GAAG,eAAe,EAAE,CAAC;AAEtC,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,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;CAClD,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9C,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE;CACvB,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC;IACnC,4BAA4B,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;CACzC,CAAC,CAAC,CAAC;AAEJ,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,MAAM,IAAI,GAAG,sCAAsC,CAAC;AACpD,MAAM,IAAI,GAAG,sCAAsC,CAAC;AAEpD,mEAAmE;AACnE,mEAAmE;AACnE,MAAM,SAAS,GAAG,EAAkB,CAAC;AAErC,QAAQ,CAAC,mFAAmF,EAAE,GAAG,EAAE;IACjG,IAAI,IAAyC,CAAC;IAC9C,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,GAAG,gBAAgB,EAAE,CAAC;QAC1B,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QAC5B,WAAW,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IACH,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAEhC,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,MAAM,aAAa,CAAC;YAClB,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,eAAe;YACzB,GAAG,EAAE,MAAM;YACX,KAAK,EAAE,QAAQ;YACf,YAAY,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE;YAC5C,SAAS;YACT,eAAe,EAAE,IAAI;SACtB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAE1B,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;QAClE,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QAChC,0EAA0E;QAC1E,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC;QACzE,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,iEAAiE,CAAC,CAAC;QAC7F,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAC3C,oEAAoE;QACpE,wEAAwE;QACxE,yCAAyC;QACzC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACvC,iCAAiC;QACjC,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;QAC3F,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAyC,CAAA,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC;YAC9E,SAAS,EAAE,eAAe;SAC3B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wFAAwF,EAAE,KAAK,IAAI,EAAE;QACtG,oDAAoD;QACpD,MAAM,MAAM,CACV,aAAa,CAAC;YACZ,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,eAAe;YACzB,GAAG,EAAE,MAAM;YACX,KAAK,EAAE,QAAQ;YACf,YAAY,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE;YAC5C,SAAS;SACV,CAAC,CACH,CAAC,OAAO,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;QAErD,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;QAClE,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QAChC,qEAAqE;QACrE,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CACvB,gGAAgG,CACjG,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8EAA8E,EAAE,GAAG,EAAE;QACtF,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAC/E,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACtC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"profile-update-personfields-bootstrap.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/profile-update-personfields-bootstrap.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile-update-personfields-embed.test.d.ts","sourceRoot":"","sources":["../../../src/tools/__tests__/profile-update-personfields-embed.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task 1470 — a name-present personFields write embeds the owner Person with
|
|
3
|
+
* the writeAdminUserAndPerson parity text; a contact-only write embeds nothing.
|
|
4
|
+
* The session and embed are mocked; the test asserts the embed call and the
|
|
5
|
+
* follow-up embedding SET cypher, not a live graph.
|
|
6
|
+
*/
|
|
7
|
+
import { describe, it, expect, beforeEach, afterEach, vi } from "vitest";
|
|
8
|
+
import { setupEmitCapture, makeMockSession } from "./_helpers/emit-capture.js";
|
|
9
|
+
const mockSession = makeMockSession();
|
|
10
|
+
vi.mock("../../lib/neo4j.js", () => ({ getSession: () => mockSession }));
|
|
11
|
+
const { embedMock } = vi.hoisted(() => ({ embedMock: vi.fn().mockResolvedValue([0.1, 0.2, 0.3]) }));
|
|
12
|
+
vi.mock("../../lib/embeddings.js", () => ({ embed: embedMock, embedBatch: vi.fn() }));
|
|
13
|
+
vi.mock("../../lib/schema-validator.js", () => ({ validateWrite: vi.fn() }));
|
|
14
|
+
vi.mock("../profile-read.js", () => ({ loadEnabledPluginProfileKeys: () => ({}) }));
|
|
15
|
+
import { profileUpdate } from "../profile-update.js";
|
|
16
|
+
const ACCT = "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee";
|
|
17
|
+
const USER = "bbbbbbbb-cccc-dddd-eeee-ffffffffffff";
|
|
18
|
+
const validator = {};
|
|
19
|
+
// The owner-Person SET returns affected=1, an elementId, and the resulting name.
|
|
20
|
+
// Any other session.run (bootstrapProfile MERGE, preference create) returns empty.
|
|
21
|
+
function wireOwnerSet(givenName, familyName) {
|
|
22
|
+
mockSession.run.mockReset();
|
|
23
|
+
mockSession.run.mockImplementation(async (cypher) => {
|
|
24
|
+
if (String(cypher).includes("OWNS") && String(cypher).includes("SET p += $fields")) {
|
|
25
|
+
return {
|
|
26
|
+
records: [
|
|
27
|
+
{
|
|
28
|
+
get: (k) => ({ affected: 1, personElementId: "4:abc:7", givenName, familyName }[k]),
|
|
29
|
+
},
|
|
30
|
+
],
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
return { records: [] };
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
describe("profile-update — owner Person embedding on name-present personFields (Task 1470)", () => {
|
|
37
|
+
let emit;
|
|
38
|
+
beforeEach(() => {
|
|
39
|
+
emit = setupEmitCapture();
|
|
40
|
+
embedMock.mockClear();
|
|
41
|
+
});
|
|
42
|
+
afterEach(() => emit.restore());
|
|
43
|
+
it("embeds with the parity text and writes it back when the write sets a name", async () => {
|
|
44
|
+
wireOwnerSet("Jane", "Doe");
|
|
45
|
+
await profileUpdate({
|
|
46
|
+
accountId: ACCT,
|
|
47
|
+
userId: USER,
|
|
48
|
+
category: "communication",
|
|
49
|
+
key: "tone",
|
|
50
|
+
value: "polite",
|
|
51
|
+
personFields: { givenName: "Jane", familyName: "Doe" },
|
|
52
|
+
validator,
|
|
53
|
+
bootstrapPerson: true,
|
|
54
|
+
}).catch(() => undefined);
|
|
55
|
+
expect(embedMock).toHaveBeenCalledWith("[Person] Jane Doe role: admin-personal");
|
|
56
|
+
const cyphers = mockSession.run.mock.calls.map((c) => String(c[0]));
|
|
57
|
+
expect(cyphers.some((c) => c.includes("SET p.embedding ="))).toBe(true);
|
|
58
|
+
});
|
|
59
|
+
it("does not embed the owner Person on a contact-only write", async () => {
|
|
60
|
+
wireOwnerSet(null, null);
|
|
61
|
+
await profileUpdate({
|
|
62
|
+
accountId: ACCT,
|
|
63
|
+
userId: USER,
|
|
64
|
+
category: "communication",
|
|
65
|
+
key: "tone",
|
|
66
|
+
value: "polite",
|
|
67
|
+
personFields: { telephone: "+447700900123" },
|
|
68
|
+
validator,
|
|
69
|
+
bootstrapPerson: true,
|
|
70
|
+
}).catch(() => undefined);
|
|
71
|
+
// embed may run for the preference text, but never for the owner-Person parity text,
|
|
72
|
+
// and no embedding SET cypher runs.
|
|
73
|
+
expect(embedMock).not.toHaveBeenCalledWith(expect.stringContaining("role: admin-personal"));
|
|
74
|
+
const cyphers = mockSession.run.mock.calls.map((c) => String(c[0]));
|
|
75
|
+
expect(cyphers.some((c) => c.includes("SET p.embedding ="))).toBe(false);
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
//# sourceMappingURL=profile-update-personfields-embed.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile-update-personfields-embed.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/profile-update-personfields-embed.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE/E,MAAM,WAAW,GAAG,eAAe,EAAE,CAAC;AACtC,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AACzE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACpG,EAAE,CAAC,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACtF,EAAE,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7E,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,4BAA4B,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAEpF,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,MAAM,IAAI,GAAG,sCAAsC,CAAC;AACpD,MAAM,IAAI,GAAG,sCAAsC,CAAC;AACpD,MAAM,SAAS,GAAG,EAAkB,CAAC;AAErC,iFAAiF;AACjF,mFAAmF;AACnF,SAAS,YAAY,CAAC,SAAwB,EAAE,UAAyB;IACvE,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;IAC5B,WAAW,CAAC,GAAG,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAc,EAAE,EAAE;QAC1D,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACnF,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,GAAG,EAAE,CAAC,CAAS,EAAE,EAAE,CACjB,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAA8B,CAAC,CAAC,CAAC,CAAA;qBACrG;iBACF;aACF,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,QAAQ,CAAC,kFAAkF,EAAE,GAAG,EAAE;IAChG,IAAI,IAAyC,CAAC;IAC9C,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,GAAG,gBAAgB,EAAE,CAAC;QAC1B,SAAS,CAAC,SAAS,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;IACH,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAEhC,EAAE,CAAC,2EAA2E,EAAE,KAAK,IAAI,EAAE;QACzF,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC5B,MAAM,aAAa,CAAC;YAClB,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,eAAe;YACzB,GAAG,EAAE,MAAM;YACX,KAAK,EAAE,QAAQ;YACf,YAAY,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE;YACtD,SAAS;YACT,eAAe,EAAE,IAAI;SACtB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAE1B,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,wCAAwC,CAAC,CAAC;QACjF,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACzB,MAAM,aAAa,CAAC;YAClB,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,eAAe;YACzB,GAAG,EAAE,MAAM;YACX,KAAK,EAAE,QAAQ;YACf,YAAY,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE;YAC5C,SAAS;YACT,eAAe,EAAE,IAAI;SACtB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAE1B,qFAAqF;QACrF,oCAAoC;QACpC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAC5F,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile-update-reconcile.test.d.ts","sourceRoot":"","sources":["../../../src/tools/__tests__/profile-update-reconcile.test.ts"],"names":[],"mappings":""}
|
package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-reconcile.test.js
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
// Task 1486 — reconcile preferences by meaning on write. A same-subject rule
|
|
2
|
+
// phrased under a new `key` must land on the existing node (via the semantic
|
|
3
|
+
// neighbour lookup), not mint a duplicate. Exact-key matches keep the old fast
|
|
4
|
+
// path and never issue the vector query.
|
|
5
|
+
import { describe, it, expect, beforeEach, vi } from "vitest";
|
|
6
|
+
const mockSession = {
|
|
7
|
+
run: vi.fn(),
|
|
8
|
+
close: vi.fn().mockResolvedValue(undefined),
|
|
9
|
+
};
|
|
10
|
+
vi.mock("../../lib/neo4j.js", () => ({ getSession: () => mockSession }));
|
|
11
|
+
vi.mock("../../lib/embeddings.js", () => ({
|
|
12
|
+
embed: vi.fn().mockResolvedValue([0.1, 0.2, 0.3]),
|
|
13
|
+
}));
|
|
14
|
+
vi.mock("../../lib/schema-validator.js", () => ({ validateWrite: vi.fn() }));
|
|
15
|
+
vi.mock("../profile-read.js", () => ({
|
|
16
|
+
loadEnabledPluginProfileKeys: () => ({}),
|
|
17
|
+
}));
|
|
18
|
+
import { profileUpdate } from "../profile-update.js";
|
|
19
|
+
// Route each session.run() by query content. `exactRows` seeds the exact-key
|
|
20
|
+
// existence match; `neighbourRows` seeds the vector-index neighbour query. All
|
|
21
|
+
// other queries (SET / CREATE / evidence) resolve empty. Records expose get().
|
|
22
|
+
function wireSession(opts) {
|
|
23
|
+
const rec = (row) => ({ get: (k) => row[k] });
|
|
24
|
+
mockSession.run.mockReset();
|
|
25
|
+
mockSession.run.mockImplementation(async (q) => {
|
|
26
|
+
if (q.includes("queryNodes('preference_embedding'")) {
|
|
27
|
+
return { records: (opts.neighbourRows ?? []).map(rec) };
|
|
28
|
+
}
|
|
29
|
+
if (q.includes("HAS_PREFERENCE]->(pref:Preference {category")) {
|
|
30
|
+
return { records: (opts.exactRows ?? []).map(rec) };
|
|
31
|
+
}
|
|
32
|
+
return { records: [] };
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
const base = {
|
|
36
|
+
accountId: "acct-1",
|
|
37
|
+
userId: "user-1",
|
|
38
|
+
category: "content",
|
|
39
|
+
value: "always put the standard header on letters",
|
|
40
|
+
};
|
|
41
|
+
describe("profile-update — reconcile by meaning", () => {
|
|
42
|
+
beforeEach(() => wireSession({}));
|
|
43
|
+
it("reinforces a same-subject neighbour instead of creating a duplicate", async () => {
|
|
44
|
+
wireSession({
|
|
45
|
+
exactRows: [],
|
|
46
|
+
// Neo4j returns a NORMALIZED cosine score (1+cos)/2. 0.96 → raw cosine
|
|
47
|
+
// 0.92, above SAME_SUBJECT_COSINE (0.85).
|
|
48
|
+
neighbourRows: [
|
|
49
|
+
{ preferenceId: "old-1", category: "content", key: "standard_document_header", value: "use the standard header", confidence: 0.5, score: 0.96 },
|
|
50
|
+
],
|
|
51
|
+
});
|
|
52
|
+
const res = await profileUpdate({ ...base, key: "letter_header", mode: "reinforce" });
|
|
53
|
+
expect(res.reconciledVia).toBe("semantic");
|
|
54
|
+
expect(res.preferenceId).toBe("old-1");
|
|
55
|
+
expect(res.action).toBe("reinforced");
|
|
56
|
+
expect(res.confidence).toBeGreaterThan(0.5);
|
|
57
|
+
expect(res.matchedNeighbours?.[0]?.similarity).toBeGreaterThanOrEqual(0.85);
|
|
58
|
+
// No CREATE of a fresh Preference node was issued.
|
|
59
|
+
const createdFresh = mockSession.run.mock.calls.some((c) => String(c[0]).includes("CREATE (pref:Preference $props)"));
|
|
60
|
+
expect(createdFresh).toBe(false);
|
|
61
|
+
});
|
|
62
|
+
it("demotes the prior node on a contradiction, not a second node", async () => {
|
|
63
|
+
wireSession({
|
|
64
|
+
exactRows: [],
|
|
65
|
+
// 0.95 normalized → raw cosine 0.90, above the 0.85 threshold.
|
|
66
|
+
neighbourRows: [
|
|
67
|
+
{ preferenceId: "old-2", category: "content", key: "dials_rate", value: "commercial dials are £200", confidence: 0.7, score: 0.95 },
|
|
68
|
+
],
|
|
69
|
+
});
|
|
70
|
+
const res = await profileUpdate({ ...base, category: "content", value: "commercial dials are now £250, supersede the old rate", key: "dials_rate_new", mode: "contradict" });
|
|
71
|
+
expect(res.reconciledVia).toBe("semantic");
|
|
72
|
+
expect(res.preferenceId).toBe("old-2");
|
|
73
|
+
expect(res.action).toBe("contradicted");
|
|
74
|
+
expect(res.confidence).toBeCloseTo(0.4, 6); // 0.7 - 0.3
|
|
75
|
+
});
|
|
76
|
+
it("creates a new node when no neighbour clears the threshold", async () => {
|
|
77
|
+
wireSession({
|
|
78
|
+
exactRows: [],
|
|
79
|
+
// 0.71 normalized → raw cosine 0.42, well below the 0.85 threshold.
|
|
80
|
+
neighbourRows: [
|
|
81
|
+
{ preferenceId: "far-1", category: "content", key: "unrelated", value: "different subject entirely", confidence: 0.5, score: 0.71 },
|
|
82
|
+
],
|
|
83
|
+
});
|
|
84
|
+
const res = await profileUpdate({ ...base, key: "brand_new_rule", mode: "reinforce" });
|
|
85
|
+
expect(res.reconciledVia).toBe("none");
|
|
86
|
+
expect(res.action).toBe("created");
|
|
87
|
+
});
|
|
88
|
+
it("keeps the exact-key fast path and never issues the vector query", async () => {
|
|
89
|
+
wireSession({
|
|
90
|
+
exactRows: [{ preferenceId: "exact-1", confidence: 0.5 }],
|
|
91
|
+
});
|
|
92
|
+
const res = await profileUpdate({ ...base, key: "standard_document_header", mode: "reinforce" });
|
|
93
|
+
expect(res.reconciledVia).toBe("exact-key");
|
|
94
|
+
expect(res.preferenceId).toBe("exact-1");
|
|
95
|
+
const issuedVector = mockSession.run.mock.calls.some((c) => String(c[0]).includes("queryNodes('preference_embedding'"));
|
|
96
|
+
expect(issuedVector).toBe(false);
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
//# sourceMappingURL=profile-update-reconcile.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile-update-reconcile.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/profile-update-reconcile.test.ts"],"names":[],"mappings":"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"}
|
package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/resolve-tool-account.test.js
CHANGED
|
@@ -15,10 +15,10 @@ describe("resolveToolAccount seam", () => {
|
|
|
15
15
|
expect("reject" in out && out.reject.isError).toBe(true);
|
|
16
16
|
expect("reject" in out && out.reject.content[0].text).toContain("cross-account-denied");
|
|
17
17
|
});
|
|
18
|
-
it("house +
|
|
18
|
+
it("house + not-provisioned target → cross-account-target-not-provisioned error content", () => {
|
|
19
19
|
const r = makeResolveToolAccount({ accountId: "own-account", houseScope: "own-account", isValid });
|
|
20
20
|
const out = r("memory-edge", "ghost-account");
|
|
21
|
-
expect("reject" in out && out.reject.content[0].text).toContain("cross-account-
|
|
21
|
+
expect("reject" in out && out.reject.content[0].text).toContain("cross-account-target-not-provisioned");
|
|
22
22
|
});
|
|
23
23
|
it("house + valid target → resolved target account", () => {
|
|
24
24
|
const r = makeResolveToolAccount({ accountId: "own-account", houseScope: "own-account", isValid });
|
package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/resolve-tool-account.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-tool-account.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/resolve-tool-account.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;AACvC,MAAM,OAAO,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAE9C,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,sBAAsB,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9H,MAAM,CAAC,CAAC,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;QAC5E,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,iDAAiD;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,MAAM,CAAC,GAAG,sBAAsB,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1F,MAAM,GAAG,GAAG,CAAC,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;QAC7C,MAAM,CAAC,QAAQ,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,QAAQ,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;IAC1F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"resolve-tool-account.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/resolve-tool-account.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,11 +37,6 @@ interface WriteResult {
|
|
|
37
37
|
created: boolean;
|
|
38
38
|
}
|
|
39
39
|
export declare function memoryWrite(params: WriteParams): Promise<WriteResult>;
|
|
40
|
-
/** Parse the violated property name and value from a Neo4j constraint error message. */
|
|
41
|
-
export declare function parseConstraintProperty(message: string): {
|
|
42
|
-
propName: string;
|
|
43
|
-
propValue: string;
|
|
44
|
-
} | null;
|
|
45
40
|
export declare function buildTextRepresentation(labels: string[], properties: Record<string, unknown>): string;
|
|
46
41
|
export {};
|
|
47
42
|
//# sourceMappingURL=memory-write.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-write.d.ts","sourceRoot":"","sources":["../../src/tools/memory-write.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"memory-write.d.ts","sourceRoot":"","sources":["../../src/tools/memory-write.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAmB9E,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACf,MAAM,8CAA8C,CAAC;AAEtD,UAAU,WAAW;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6HAA6H;IAC7H,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,+EAA+E;IAC/E,SAAS,EAAE,SAAS,CAAC;IACrB;;;;;;OAMG;IACH,SAAS,EAAE,YAAY,CAAC;IACxB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,UAAU,WAAW;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AA+CD,wBAAsB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAS3E;AAyXD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EAAE,EAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,MAAM,CAYR"}
|
|
@@ -8,6 +8,7 @@ import { extractDatedStatements } from "../lib/timeline-extractor.js";
|
|
|
8
8
|
import { randomUUID } from "node:crypto";
|
|
9
9
|
import { checkLabelOriginGate } from "../lib/label-origin-gate.js";
|
|
10
10
|
import { withWriteEvent, pickName } from "../lib/log-ingest.js";
|
|
11
|
+
import { isConstraintViolation, parseConstraintProperty, } from "../lib/neo4j-constraint.js";
|
|
11
12
|
import { writeNodeWithEdges, injectConversationProvenance, } from "../../../../../lib/graph-write/dist/index.js";
|
|
12
13
|
/** Admin-twin labels carrying `compiledTruth` (Task 306 + 392 extension to :Project, :LocalBusiness). */
|
|
13
14
|
const TIMELINE_SUBJECT_LABELS = [
|
|
@@ -313,10 +314,7 @@ async function memoryWriteImpl(params) {
|
|
|
313
314
|
catch (error) {
|
|
314
315
|
// Constraint violations include an unusable internal ID (e.g. "Node(219)").
|
|
315
316
|
// Look up the existing node's elementId so the agent can call memory-update.
|
|
316
|
-
if (error
|
|
317
|
-
"code" in error &&
|
|
318
|
-
error.code ===
|
|
319
|
-
"Neo.ClientError.Schema.ConstraintValidationFailed") {
|
|
317
|
+
if (isConstraintViolation(error)) {
|
|
320
318
|
const parsed = parseConstraintProperty(error.message);
|
|
321
319
|
console.error(`memory-write: constraint violation on ${labels.join(":")}` +
|
|
322
320
|
(parsed
|
|
@@ -369,14 +367,6 @@ async function memoryWriteImpl(params) {
|
|
|
369
367
|
await session.close();
|
|
370
368
|
}
|
|
371
369
|
}
|
|
372
|
-
/** Parse the violated property name and value from a Neo4j constraint error message. */
|
|
373
|
-
export function parseConstraintProperty(message) {
|
|
374
|
-
// Neo4j format: "... property `name` = 'value'" or "... property 'name' = 'value'"
|
|
375
|
-
const match = message.match(/property [`'](\w+)[`'] = '([^']*)'/);
|
|
376
|
-
if (!match)
|
|
377
|
-
return null;
|
|
378
|
-
return { propName: match[1], propValue: match[2] };
|
|
379
|
-
}
|
|
380
370
|
// Embedding-text bounds. A single large `body`/`text`/`compiledTruth` prop
|
|
381
371
|
// could otherwise produce a multi-KB representation that exceeds the embed
|
|
382
372
|
// model's input limit. Cap each value (so one huge prop cannot crowd out the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-write.js","sourceRoot":"","sources":["../../src/tools/memory-write.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAqB,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EACL,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EACL,kBAAkB,EAClB,4BAA4B,GAG7B,MAAM,8CAA8C,CAAC;AAwCtD,yGAAyG;AACzG,MAAM,uBAAuB,GAAG;IAC9B,QAAQ;IACR,cAAc;IACd,SAAS;IACT,SAAS;IACT,eAAe;CACP,CAAC;AACX,sEAAsE;AACtE,4EAA4E;AAC5E,gFAAgF;AAChF,iFAAiF;AACjF,iFAAiF;AACjF,8EAA8E;AAC9E,2EAA2E;AAC3E,4EAA4E;AAC5E,+EAA+E;AAC/E,2DAA2D;AAC3D,gGAAgG;AAChG,MAAM,kBAAkB,GAAG;IACzB,cAAc;IACd,SAAS;IACT,SAAS;IACT,eAAe;CACP,CAAC;AACX,6FAA6F;AAC7F,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAEpD;;;;;;;GAOG;AACH,MAAM,kCAAkC,GAAG;IACzC,eAAe;IACf,wBAAwB;IACxB,qBAAqB;IACrB,qBAAqB;IACrB,8BAA8B;IAC9B,2BAA2B;CACnB,CAAC;AAEX,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAmB;IACnD,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC;IAC/G,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IAEtC,OAAO,cAAc,CACnB,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAC3D,GAAG,EAAE,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,EACtH,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CACnE,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,MAAmB;IAChD,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC;IAE/G,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAC;IACxG,CAAC;IAED,wEAAwE;IACxE,yEAAyE;IACzE,0EAA0E;IAC1E,KAAK,MAAM,GAAG,IAAI,kCAAkC,EAAE,CAAC;QACrD,IAAI,GAAG,IAAI,UAAU,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,wCAAwC,GAAG,0CAA0C;gBACnF,mHAAmH,CACtH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEzD,IAAI,CAAC;QACH,uEAAuE;QACvE,6DAA6D;QAC7D,qEAAqE;QACrE,mEAAmE;QACnE,qBAAqB;QACrB,MAAM,eAAe,GAAG,MAAM,qBAAqB,CAAC;YAClD,OAAO;YACP,SAAS;YACT,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC,aAAa;SAC9C,CAAC,CAAC;QAEH,uEAAuE;QACvE,0EAA0E;QAC1E,yEAAyE;QACzE,gDAAgD;QAChD,IAAI,CAAC;YACH,aAAa,CACX,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EACjC,SAAS,EACT,EAAE,eAAe,EAAE,CACpB,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CACX,6CAA6C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,SAAS,IAAI,QAAQ,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC5J,CAAC;YACF,MAAM,GAAG,CAAC;QACZ,CAAC;QAED,sEAAsE;QACtE,sEAAsE;QACtE,oEAAoE;QACpE,MAAM,MAAM,GAAG,oBAAoB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QAC5F,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,kBAAkB,MAAM,CAAC,MAAM,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACzE,CAAC;QAED,6DAA6D;QAC7D,wEAAwE;QACxE,qEAAqE;QACrE,oEAAoE;QACpE,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;YACvE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,MAAM,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;QAED,uDAAuD;QACvD,2EAA2E;QAC3E,+DAA+D;QAC/D,MAAM,QAAQ,GAAG,sBAAsB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,kBAAkB,QAAQ,CAAC,MAAM,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7E,CAAC;QAED,iEAAiE;QACjE,kEAAkE;QAClE,+CAA+C;QAC/C,MAAM,SAAS,GAAG,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,kBAAkB,SAAS,CAAC,MAAM,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/E,CAAC;QAED,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACrE,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAChD,MAAM,SAAS,GAA4B;YACzC,GAAG,UAAU;YACb,SAAS;YACT,KAAK;YACL,SAAS;YACT,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YACnD,SAAS,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACjD,CAAC;QAED,wEAAwE;QACxE,oEAAoE;QACpE,iEAAiE;QACjE,kEAAkE;QAClE,qEAAqE;QACrE,0DAA0D;QAC1D,MAAM,kBAAkB,GACtB,OAAO,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,QAAQ;YACpD,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC;YACzC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB;YAClC,CAAC,CAAC,SAAS,CAAC;QAChB,IAAI,kBAAkB,EAAE,CAAC;YACvB,SAAS,CAAC,UAAU,GAAG,kBAAkB,CAAC;YAC1C,SAAS,CAAC,KAAK,GAAG,MAAM,CAAC;QAC3B,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,6BAA6B,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG;YAC1F,cAAc,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CACtE,CAAC;QAEF,uEAAuE;QACvE,sEAAsE;QACtE,8DAA8D;QAC9D,uEAAuE;QACvE,sEAAsE;QACtE,4CAA4C;QAC5C,EAAE;QACF,oEAAoE;QACpE,mEAAmE;QACnE,wEAAwE;QACxE,uEAAuE;QACvE,MAAM,sBAAsB,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACvF,IAAI,sBAAsB,EAAE,CAAC;YAC3B,IAAI,SAAS,CAAC,aAAa,KAAK,SAAS;gBAAE,SAAS,CAAC,aAAa,GAAG,EAAE,CAAC;YACxE,IAAI,SAAS,CAAC,sBAAsB,KAAK,SAAS;gBAChD,SAAS,CAAC,sBAAsB,GAAG,oBAAoB,CAAC;YAC1D,IAAI,SAAS,CAAC,mBAAmB,KAAK,SAAS;gBAC7C,SAAS,CAAC,mBAAmB,GAAG,UAAU,CAAC;QAC/C,CAAC;QACD,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,IAAI,mBAAmB,EAAE,CAAC;YACxB,IAAI,SAAS,CAAC,mBAAmB,KAAK,SAAS;gBAAE,SAAS,CAAC,mBAAmB,GAAG,EAAE,CAAC;YACpF,IAAI,SAAS,CAAC,4BAA4B,KAAK,SAAS;gBACtD,SAAS,CAAC,4BAA4B,GAAG,oBAAoB,CAAC;YAChE,IAAI,SAAS,CAAC,yBAAyB,KAAK,SAAS;gBACnD,SAAS,CAAC,yBAAyB,GAAG,UAAU,CAAC;QACrD,CAAC;QAED,uDAAuD;QACvD,oEAAoE;QACpE,kEAAkE;QAClE,qEAAqE;QACrE,oEAAoE;QACpE,IAAI,qBAAqB,GAAwB,aAAa,CAAC;QAC/D,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,qFAAqF,EACrF,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAC7B,CAAC;YACF,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CACb,mCAAmC,gBAAgB,mCAAmC,CACvF,CAAC;YACJ,CAAC;YACD,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAW,CAAC;YACpE,IAAI,SAAS,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBAC7C,MAAM,IAAI,KAAK,CACb,kDAAkD,aAAa,qCAAqC,SAAS,iCAAiC,CAC/I,CAAC;YACJ,CAAC;YACD,qBAAqB,GAAG;gBACtB,GAAG,aAAa;gBAChB;oBACE,IAAI,EAAE,UAAU;oBAChB,SAAS,EAAE,UAAU;oBACrB,YAAY,EAAE,gBAAgB;iBAC/B;aACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,sDAAsD;YACtD,kEAAkE;YAClE,2DAA2D;YAC3D,kEAAkE;YAClE,mEAAmE;YACnE,oCAAoC;YACpC,qBAAqB,GAAG,MAAM,4BAA4B,CAAC;gBACzD,OAAO;gBACP,aAAa;gBACb,SAAS,EAAE,SAAS,IAAI,EAAE;gBAC1B,WAAW,EAAE,MAAM;gBACnB,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe;gBAC/C,YAAY,EAAE,YAAY;gBAC1B,IAAI,EAAE,cAAc;aACrB,CAAC,CAAC;QACL,CAAC;QAED,0EAA0E;QAC1E,iEAAiE;QACjE,yEAAyE;QACzE,yEAAyE;QACzE,4EAA4E;QAC5E,gDAAgD;QAChD,IAAI,CAAC;YACH,MAAM,gBAAgB,GAAG,yBAAyB,CAChD,SAAS,CAAC,MAAM,CAAC,oBAAoB,EACrC,eAAe,CAAC,gBAAgB,CACjC,CAAC;YACF,KAAK,MAAM,GAAG,IAAI,qBAAqB,EAAE,CAAC;gBACxC,IAAI,GAAG,CAAC,SAAS,KAAK,UAAU;oBAAE,SAAS;gBAC3C,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,wBAAwB,CACpD,MAAM,EACN,GAAG,CAAC,IAAI,EACR,gBAAgB,CACjB,CAAC;gBACF,IAAI,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;oBACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,qDAAqD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,IAAI,aAAa,eAAe,CAAC,gBAAgB,IAAI,MAAM,cAAc,SAAS,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,IAAI,CACpM,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,4CAA4C,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CACjG,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;YACtC,OAAO;YACP,MAAM;YACN,KAAK,EAAE,SAAS;YAChB,aAAa,EAAE,qBAAqB;YACpC,SAAS;SACV,CAAC,CAAC;QAEH,qEAAqE;QACrE,6EAA6E;QAC7E,sEAAsE;QACtE,uEAAuE;QACvE,uEAAuE;QACvE,iEAAiE;QACjE,IAAI,sBAAsB,IAAI,OAAO,UAAU,CAAC,IAAI,KAAK,QAAQ,IAAI,SAAS,EAAE,CAAC;YAC/E,IAAI,CAAC;gBACH,4DAA4D;gBAC5D,0DAA0D;gBAC1D,0DAA0D;gBAC1D,yDAAyD;gBACzD,MAAM,MAAM,GACV,CAAC,OAAO,UAAU,CAAC,SAAS,KAAK,QAAQ,IAAI,UAAU,CAAC,SAAS,CAAC;oBAClE,CAAC,OAAO,UAAU,CAAC,SAAS,KAAK,QAAQ,IAAI,UAAU,CAAC,SAAS,CAAC;oBAClE,CAAC,OAAO,SAAS,CAAC,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,SAAS,CAAC;oBAChE,SAAS,CAAC;gBACZ,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;gBACzD,MAAM,UAAU,GAAG,sBAAsB,CACvC,UAAU,CAAC,IAAI,EACf,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAC3D,CAAC;gBACF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;wBAC3B,MAAM,OAAO,CAAC,GAAG,CACf;;;;;;;;;;;0DAW4C,EAC5C;4BACE,QAAQ,EAAE,MAAM,CAAC,MAAM;4BACvB,SAAS;4BACT,EAAE,EAAE,UAAU,EAAE;4BAChB,UAAU,EAAE,CAAC,CAAC,UAAU;4BACxB,IAAI,EAAE,WAAW;4BACjB,OAAO,EAAE,CAAC,CAAC,OAAO;4BAClB,MAAM,EAAE,OAAO,UAAU,CAAC,eAAe,KAAK,QAAQ;gCACpD,CAAC,CAAC,UAAU,CAAC,eAAe;gCAC5B,CAAC,CAAC,cAAc;4BAClB,OAAO,EAAE,CAAC,CAAC,OAAO;4BAClB,KAAK;yBACN,CACF,CAAC;oBACJ,CAAC;gBACH,CAAC;gBACD,OAAO,CAAC,GAAG,CACT,6BAA6B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG;oBACxD,YAAY,UAAU,CAAC,IAAI,IAAI,GAAG,WAAW,UAAU,CAAC,MAAM,qBAAqB,UAAU,CAAC,MAAM,GAAG,CAC1G,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,MAAM,OAAO,GAAI,UAAU,CAAC,IAAe,CAAC,MAAM,CAAC;gBACnD,OAAO,CAAC,KAAK,CACX,mCAAmC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG;oBAC9D,YAAY,OAAO,WAAW,GAAG,GAAG,CACvC,CAAC;gBACF,2EAA2E;YAC7E,CAAC;QACH,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACzE,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,4EAA4E;QAC5E,6EAA6E;QAC7E,IACE,KAAK,YAAY,KAAK;YACtB,MAAM,IAAI,KAAK;YACd,KAA0B,CAAC,IAAI;gBAC9B,mDAAmD,EACrD,CAAC;YACD,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACtD,OAAO,CAAC,KAAK,CACX,yCAAyC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBACzD,CAAC,MAAM;oBACL,CAAC,CAAC,gBAAgB,MAAM,CAAC,QAAQ,QAAQ,MAAM,CAAC,SAAS,GAAG;oBAC5D,CAAC,CAAC,qCAAqC,KAAK,CAAC,OAAO,EAAE,CAAC,CAC5D,CAAC;YAEF,IAAI,CAAC;gBACH,IAAI,WAAmB,CAAC;gBACxB,IAAI,YAAqC,CAAC;gBAE1C,IAAI,MAAM,EAAE,CAAC;oBACX,0EAA0E;oBAC1E,WAAW,GAAG;uBACD,QAAQ;qDACsB,MAAM,CAAC,QAAQ;;WAEzD,CAAC;oBACF,YAAY,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC5D,CAAC;qBAAM,CAAC;oBACN,WAAW,GAAG;uBACD,QAAQ;;;;WAIpB,CAAC;oBACF,YAAY,GAAG,EAAE,SAAS,EAAE,CAAC;gBAC/B,CAAC;gBAED,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;gBAClE,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACpC,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAW,CAAC;oBACvE,MAAM,MAAM,GAAG,MAAM;wBACnB,CAAC,CAAC,gBAAgB,MAAM,CAAC,QAAQ,QAAQ,MAAM,CAAC,SAAS,cAAc;wBACvE,CAAC,CAAC,8BAA8B,CAAC;oBACnC,OAAO,CAAC,KAAK,CACX,6CAA6C,UAAU,EAAE,CAC1D,CAAC;oBACF,MAAM,IAAI,KAAK,CACb,mCAAmC,UAAU,IAAI,MAAM,mDAAmD,CAC3G,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,WAAW,EAAE,CAAC;gBACrB,oEAAoE;gBACpE,IACE,WAAW,YAAY,KAAK;oBAC5B,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,EACrD,CAAC;oBACD,MAAM,WAAW,CAAC;gBACpB,CAAC;gBACD,OAAO,CAAC,KAAK,CAAC,mDAAmD,EAAE,WAAW,CAAC,CAAC;gBAChF,0EAA0E;YAC5E,CAAC;QACH,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;AACH,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,uBAAuB,CACrC,OAAe;IAEf,mFAAmF;IACnF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAClE,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACrD,CAAC;AAED,2EAA2E;AAC3E,2EAA2E;AAC3E,6EAA6E;AAC7E,oFAAoF;AACpF,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAChC,MAAM,cAAc,GAAG,IAAI,CAAC;AAE5B,MAAM,UAAU,uBAAuB,CACrC,MAAgB,EAChB,UAAmC;IAEnC,MAAM,KAAK,GAAa,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEnD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACtD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YACjE,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACnF,CAAC"}
|
|
1
|
+
{"version":3,"file":"memory-write.js","sourceRoot":"","sources":["../../src/tools/memory-write.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAqB,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EACL,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EACL,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,kBAAkB,EAClB,4BAA4B,GAG7B,MAAM,8CAA8C,CAAC;AAwCtD,yGAAyG;AACzG,MAAM,uBAAuB,GAAG;IAC9B,QAAQ;IACR,cAAc;IACd,SAAS;IACT,SAAS;IACT,eAAe;CACP,CAAC;AACX,sEAAsE;AACtE,4EAA4E;AAC5E,gFAAgF;AAChF,iFAAiF;AACjF,iFAAiF;AACjF,8EAA8E;AAC9E,2EAA2E;AAC3E,4EAA4E;AAC5E,+EAA+E;AAC/E,2DAA2D;AAC3D,gGAAgG;AAChG,MAAM,kBAAkB,GAAG;IACzB,cAAc;IACd,SAAS;IACT,SAAS;IACT,eAAe;CACP,CAAC;AACX,6FAA6F;AAC7F,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAEpD;;;;;;;GAOG;AACH,MAAM,kCAAkC,GAAG;IACzC,eAAe;IACf,wBAAwB;IACxB,qBAAqB;IACrB,qBAAqB;IACrB,8BAA8B;IAC9B,2BAA2B;CACnB,CAAC;AAEX,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAmB;IACnD,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC;IAC/G,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IAEtC,OAAO,cAAc,CACnB,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAC3D,GAAG,EAAE,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,EACtH,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CACnE,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,MAAmB;IAChD,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC;IAE/G,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAC;IACxG,CAAC;IAED,wEAAwE;IACxE,yEAAyE;IACzE,0EAA0E;IAC1E,KAAK,MAAM,GAAG,IAAI,kCAAkC,EAAE,CAAC;QACrD,IAAI,GAAG,IAAI,UAAU,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,wCAAwC,GAAG,0CAA0C;gBACnF,mHAAmH,CACtH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEzD,IAAI,CAAC;QACH,uEAAuE;QACvE,6DAA6D;QAC7D,qEAAqE;QACrE,mEAAmE;QACnE,qBAAqB;QACrB,MAAM,eAAe,GAAG,MAAM,qBAAqB,CAAC;YAClD,OAAO;YACP,SAAS;YACT,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC,aAAa;SAC9C,CAAC,CAAC;QAEH,uEAAuE;QACvE,0EAA0E;QAC1E,yEAAyE;QACzE,gDAAgD;QAChD,IAAI,CAAC;YACH,aAAa,CACX,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EACjC,SAAS,EACT,EAAE,eAAe,EAAE,CACpB,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CACX,6CAA6C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,SAAS,IAAI,QAAQ,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC5J,CAAC;YACF,MAAM,GAAG,CAAC;QACZ,CAAC;QAED,sEAAsE;QACtE,sEAAsE;QACtE,oEAAoE;QACpE,MAAM,MAAM,GAAG,oBAAoB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QAC5F,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,kBAAkB,MAAM,CAAC,MAAM,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACzE,CAAC;QAED,6DAA6D;QAC7D,wEAAwE;QACxE,qEAAqE;QACrE,oEAAoE;QACpE,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;YACvE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,MAAM,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;QAED,uDAAuD;QACvD,2EAA2E;QAC3E,+DAA+D;QAC/D,MAAM,QAAQ,GAAG,sBAAsB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,kBAAkB,QAAQ,CAAC,MAAM,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7E,CAAC;QAED,iEAAiE;QACjE,kEAAkE;QAClE,+CAA+C;QAC/C,MAAM,SAAS,GAAG,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,kBAAkB,SAAS,CAAC,MAAM,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/E,CAAC;QAED,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACrE,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAChD,MAAM,SAAS,GAA4B;YACzC,GAAG,UAAU;YACb,SAAS;YACT,KAAK;YACL,SAAS;YACT,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YACnD,SAAS,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACjD,CAAC;QAED,wEAAwE;QACxE,oEAAoE;QACpE,iEAAiE;QACjE,kEAAkE;QAClE,qEAAqE;QACrE,0DAA0D;QAC1D,MAAM,kBAAkB,GACtB,OAAO,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,QAAQ;YACpD,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC;YACzC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB;YAClC,CAAC,CAAC,SAAS,CAAC;QAChB,IAAI,kBAAkB,EAAE,CAAC;YACvB,SAAS,CAAC,UAAU,GAAG,kBAAkB,CAAC;YAC1C,SAAS,CAAC,KAAK,GAAG,MAAM,CAAC;QAC3B,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,6BAA6B,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG;YAC1F,cAAc,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CACtE,CAAC;QAEF,uEAAuE;QACvE,sEAAsE;QACtE,8DAA8D;QAC9D,uEAAuE;QACvE,sEAAsE;QACtE,4CAA4C;QAC5C,EAAE;QACF,oEAAoE;QACpE,mEAAmE;QACnE,wEAAwE;QACxE,uEAAuE;QACvE,MAAM,sBAAsB,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACvF,IAAI,sBAAsB,EAAE,CAAC;YAC3B,IAAI,SAAS,CAAC,aAAa,KAAK,SAAS;gBAAE,SAAS,CAAC,aAAa,GAAG,EAAE,CAAC;YACxE,IAAI,SAAS,CAAC,sBAAsB,KAAK,SAAS;gBAChD,SAAS,CAAC,sBAAsB,GAAG,oBAAoB,CAAC;YAC1D,IAAI,SAAS,CAAC,mBAAmB,KAAK,SAAS;gBAC7C,SAAS,CAAC,mBAAmB,GAAG,UAAU,CAAC;QAC/C,CAAC;QACD,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,IAAI,mBAAmB,EAAE,CAAC;YACxB,IAAI,SAAS,CAAC,mBAAmB,KAAK,SAAS;gBAAE,SAAS,CAAC,mBAAmB,GAAG,EAAE,CAAC;YACpF,IAAI,SAAS,CAAC,4BAA4B,KAAK,SAAS;gBACtD,SAAS,CAAC,4BAA4B,GAAG,oBAAoB,CAAC;YAChE,IAAI,SAAS,CAAC,yBAAyB,KAAK,SAAS;gBACnD,SAAS,CAAC,yBAAyB,GAAG,UAAU,CAAC;QACrD,CAAC;QAED,uDAAuD;QACvD,oEAAoE;QACpE,kEAAkE;QAClE,qEAAqE;QACrE,oEAAoE;QACpE,IAAI,qBAAqB,GAAwB,aAAa,CAAC;QAC/D,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,qFAAqF,EACrF,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAC7B,CAAC;YACF,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CACb,mCAAmC,gBAAgB,mCAAmC,CACvF,CAAC;YACJ,CAAC;YACD,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAW,CAAC;YACpE,IAAI,SAAS,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBAC7C,MAAM,IAAI,KAAK,CACb,kDAAkD,aAAa,qCAAqC,SAAS,iCAAiC,CAC/I,CAAC;YACJ,CAAC;YACD,qBAAqB,GAAG;gBACtB,GAAG,aAAa;gBAChB;oBACE,IAAI,EAAE,UAAU;oBAChB,SAAS,EAAE,UAAU;oBACrB,YAAY,EAAE,gBAAgB;iBAC/B;aACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,sDAAsD;YACtD,kEAAkE;YAClE,2DAA2D;YAC3D,kEAAkE;YAClE,mEAAmE;YACnE,oCAAoC;YACpC,qBAAqB,GAAG,MAAM,4BAA4B,CAAC;gBACzD,OAAO;gBACP,aAAa;gBACb,SAAS,EAAE,SAAS,IAAI,EAAE;gBAC1B,WAAW,EAAE,MAAM;gBACnB,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe;gBAC/C,YAAY,EAAE,YAAY;gBAC1B,IAAI,EAAE,cAAc;aACrB,CAAC,CAAC;QACL,CAAC;QAED,0EAA0E;QAC1E,iEAAiE;QACjE,yEAAyE;QACzE,yEAAyE;QACzE,4EAA4E;QAC5E,gDAAgD;QAChD,IAAI,CAAC;YACH,MAAM,gBAAgB,GAAG,yBAAyB,CAChD,SAAS,CAAC,MAAM,CAAC,oBAAoB,EACrC,eAAe,CAAC,gBAAgB,CACjC,CAAC;YACF,KAAK,MAAM,GAAG,IAAI,qBAAqB,EAAE,CAAC;gBACxC,IAAI,GAAG,CAAC,SAAS,KAAK,UAAU;oBAAE,SAAS;gBAC3C,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,wBAAwB,CACpD,MAAM,EACN,GAAG,CAAC,IAAI,EACR,gBAAgB,CACjB,CAAC;gBACF,IAAI,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;oBACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,qDAAqD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,IAAI,aAAa,eAAe,CAAC,gBAAgB,IAAI,MAAM,cAAc,SAAS,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,IAAI,CACpM,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,4CAA4C,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CACjG,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;YACtC,OAAO;YACP,MAAM;YACN,KAAK,EAAE,SAAS;YAChB,aAAa,EAAE,qBAAqB;YACpC,SAAS;SACV,CAAC,CAAC;QAEH,qEAAqE;QACrE,6EAA6E;QAC7E,sEAAsE;QACtE,uEAAuE;QACvE,uEAAuE;QACvE,iEAAiE;QACjE,IAAI,sBAAsB,IAAI,OAAO,UAAU,CAAC,IAAI,KAAK,QAAQ,IAAI,SAAS,EAAE,CAAC;YAC/E,IAAI,CAAC;gBACH,4DAA4D;gBAC5D,0DAA0D;gBAC1D,0DAA0D;gBAC1D,yDAAyD;gBACzD,MAAM,MAAM,GACV,CAAC,OAAO,UAAU,CAAC,SAAS,KAAK,QAAQ,IAAI,UAAU,CAAC,SAAS,CAAC;oBAClE,CAAC,OAAO,UAAU,CAAC,SAAS,KAAK,QAAQ,IAAI,UAAU,CAAC,SAAS,CAAC;oBAClE,CAAC,OAAO,SAAS,CAAC,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,SAAS,CAAC;oBAChE,SAAS,CAAC;gBACZ,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;gBACzD,MAAM,UAAU,GAAG,sBAAsB,CACvC,UAAU,CAAC,IAAI,EACf,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAC3D,CAAC;gBACF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;wBAC3B,MAAM,OAAO,CAAC,GAAG,CACf;;;;;;;;;;;0DAW4C,EAC5C;4BACE,QAAQ,EAAE,MAAM,CAAC,MAAM;4BACvB,SAAS;4BACT,EAAE,EAAE,UAAU,EAAE;4BAChB,UAAU,EAAE,CAAC,CAAC,UAAU;4BACxB,IAAI,EAAE,WAAW;4BACjB,OAAO,EAAE,CAAC,CAAC,OAAO;4BAClB,MAAM,EAAE,OAAO,UAAU,CAAC,eAAe,KAAK,QAAQ;gCACpD,CAAC,CAAC,UAAU,CAAC,eAAe;gCAC5B,CAAC,CAAC,cAAc;4BAClB,OAAO,EAAE,CAAC,CAAC,OAAO;4BAClB,KAAK;yBACN,CACF,CAAC;oBACJ,CAAC;gBACH,CAAC;gBACD,OAAO,CAAC,GAAG,CACT,6BAA6B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG;oBACxD,YAAY,UAAU,CAAC,IAAI,IAAI,GAAG,WAAW,UAAU,CAAC,MAAM,qBAAqB,UAAU,CAAC,MAAM,GAAG,CAC1G,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,MAAM,OAAO,GAAI,UAAU,CAAC,IAAe,CAAC,MAAM,CAAC;gBACnD,OAAO,CAAC,KAAK,CACX,mCAAmC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG;oBAC9D,YAAY,OAAO,WAAW,GAAG,GAAG,CACvC,CAAC;gBACF,2EAA2E;YAC7E,CAAC;QACH,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACzE,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,4EAA4E;QAC5E,6EAA6E;QAC7E,IAAI,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACtD,OAAO,CAAC,KAAK,CACX,yCAAyC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBACzD,CAAC,MAAM;oBACL,CAAC,CAAC,gBAAgB,MAAM,CAAC,QAAQ,QAAQ,MAAM,CAAC,SAAS,GAAG;oBAC5D,CAAC,CAAC,qCAAqC,KAAK,CAAC,OAAO,EAAE,CAAC,CAC5D,CAAC;YAEF,IAAI,CAAC;gBACH,IAAI,WAAmB,CAAC;gBACxB,IAAI,YAAqC,CAAC;gBAE1C,IAAI,MAAM,EAAE,CAAC;oBACX,0EAA0E;oBAC1E,WAAW,GAAG;uBACD,QAAQ;qDACsB,MAAM,CAAC,QAAQ;;WAEzD,CAAC;oBACF,YAAY,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC5D,CAAC;qBAAM,CAAC;oBACN,WAAW,GAAG;uBACD,QAAQ;;;;WAIpB,CAAC;oBACF,YAAY,GAAG,EAAE,SAAS,EAAE,CAAC;gBAC/B,CAAC;gBAED,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;gBAClE,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACpC,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAW,CAAC;oBACvE,MAAM,MAAM,GAAG,MAAM;wBACnB,CAAC,CAAC,gBAAgB,MAAM,CAAC,QAAQ,QAAQ,MAAM,CAAC,SAAS,cAAc;wBACvE,CAAC,CAAC,8BAA8B,CAAC;oBACnC,OAAO,CAAC,KAAK,CACX,6CAA6C,UAAU,EAAE,CAC1D,CAAC;oBACF,MAAM,IAAI,KAAK,CACb,mCAAmC,UAAU,IAAI,MAAM,mDAAmD,CAC3G,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,WAAW,EAAE,CAAC;gBACrB,oEAAoE;gBACpE,IACE,WAAW,YAAY,KAAK;oBAC5B,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,EACrD,CAAC;oBACD,MAAM,WAAW,CAAC;gBACpB,CAAC;gBACD,OAAO,CAAC,KAAK,CAAC,mDAAmD,EAAE,WAAW,CAAC,CAAC;gBAChF,0EAA0E;YAC5E,CAAC;QACH,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;AACH,CAAC;AAED,2EAA2E;AAC3E,2EAA2E;AAC3E,6EAA6E;AAC7E,oFAAoF;AACpF,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAChC,MAAM,cAAc,GAAG,IAAI,CAAC;AAE5B,MAAM,UAAU,uBAAuB,CACrC,MAAgB,EAChB,UAAmC;IAEnC,MAAM,KAAK,GAAa,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEnD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACtD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YACjE,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACnF,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type ActiveRule } from "../../../../../lib/active-rules/dist/index.js";
|
|
1
2
|
interface ProfileReadParams {
|
|
2
3
|
accountId: string;
|
|
3
4
|
userId: string;
|
|
@@ -24,11 +25,13 @@ interface ProfileReadResult {
|
|
|
24
25
|
profile: Record<string, unknown> | null;
|
|
25
26
|
preferences: PreferenceRecord[];
|
|
26
27
|
summary: string;
|
|
28
|
+
activeRules: ActiveRule[];
|
|
27
29
|
}
|
|
28
30
|
interface ProfileReadDetailResult {
|
|
29
31
|
profile: Record<string, unknown> | null;
|
|
30
32
|
preferences: DetailedPreferenceRecord[];
|
|
31
33
|
summary: string;
|
|
34
|
+
activeRules: ActiveRule[];
|
|
32
35
|
stats: {
|
|
33
36
|
totalPreferences: number;
|
|
34
37
|
explicitCount: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile-read.d.ts","sourceRoot":"","sources":["../../src/tools/profile-read.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"profile-read.d.ts","sourceRoot":"","sources":["../../src/tools/profile-read.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,+CAA+C,CAAC;AAa/F,UAAU,iBAAiB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,UAAU,gBAAgB;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IAInB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,UAAU,cAAc;IACtB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,wBAAyB,SAAQ,gBAAgB;IACzD,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED,UAAU,iBAAiB;IACzB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACxC,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAIhB,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,UAAU,uBAAuB;IAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACxC,WAAW,EAAE,wBAAwB,EAAE,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,KAAK,EAAE;QACL,gBAAgB,EAAE,MAAM,CAAC;QACzB,aAAa,EAAE,MAAM,CAAC;QACtB,gBAAgB,EAAE,MAAM,CAAC;QACzB,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,wBAAsB,WAAW,CAC/B,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,iBAAiB,GAAG,uBAAuB,CAAC,CA2HtD;AA4CD,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAyC5D,CAAC;AA0CX,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAcjE;AASD,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,MAAM,GAChB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAyC1B;AAQD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,WAAW,EAAE,gBAAgB,EAAE,EAE/B,cAAc,GAAE,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAM,GACrD,MAAM,CAMR"}
|