@rubytech/create-maxy-code 0.1.414 → 0.1.417

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. package/dist/__tests__/outlook-client-id-env.test.js +46 -0
  2. package/dist/index.js +31 -0
  3. package/dist/port-resolution.js +8 -1
  4. package/package.json +1 -1
  5. package/payload/platform/config/brand.json +1 -0
  6. package/payload/platform/lib/account-enumeration/dist/__tests__/is-provisioned.test.d.ts +2 -0
  7. package/payload/platform/lib/account-enumeration/dist/__tests__/is-provisioned.test.d.ts.map +1 -0
  8. package/payload/platform/lib/account-enumeration/dist/__tests__/is-provisioned.test.js +81 -0
  9. package/payload/platform/lib/account-enumeration/dist/__tests__/is-provisioned.test.js.map +1 -0
  10. package/payload/platform/lib/account-enumeration/dist/index.d.ts +17 -0
  11. package/payload/platform/lib/account-enumeration/dist/index.d.ts.map +1 -1
  12. package/payload/platform/lib/account-enumeration/dist/index.js +46 -9
  13. package/payload/platform/lib/account-enumeration/dist/index.js.map +1 -1
  14. package/payload/platform/lib/account-enumeration/src/__tests__/is-provisioned.test.ts +86 -0
  15. package/payload/platform/lib/account-enumeration/src/index.ts +45 -9
  16. package/payload/platform/lib/account-scope/dist/index.d.ts +14 -5
  17. package/payload/platform/lib/account-scope/dist/index.d.ts.map +1 -1
  18. package/payload/platform/lib/account-scope/dist/index.js +14 -5
  19. package/payload/platform/lib/account-scope/dist/index.js.map +1 -1
  20. package/payload/platform/lib/account-scope/src/index.ts +22 -5
  21. package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +43 -10
  22. package/payload/platform/plugins/docs/references/outlook-guide.md +42 -9
  23. package/payload/platform/plugins/email/references/email-reference.md +1 -1
  24. package/payload/platform/plugins/filesystem/PLUGIN.md +1 -1
  25. package/payload/platform/plugins/filesystem/mcp/dist/lib/__tests__/scope.test.js +16 -2
  26. package/payload/platform/plugins/filesystem/mcp/dist/lib/__tests__/scope.test.js.map +1 -1
  27. package/payload/platform/plugins/filesystem/mcp/dist/lib/scope.d.ts +1 -1
  28. package/payload/platform/plugins/filesystem/mcp/dist/lib/scope.d.ts.map +1 -1
  29. package/payload/platform/plugins/filesystem/mcp/dist/lib/scope.js +8 -3
  30. package/payload/platform/plugins/filesystem/mcp/dist/lib/scope.js.map +1 -1
  31. package/payload/platform/plugins/filesystem/mcp/dist/tools/__tests__/handlers.test.js +2 -2
  32. package/payload/platform/plugins/filesystem/mcp/dist/tools/__tests__/handlers.test.js.map +1 -1
  33. package/payload/platform/plugins/memory/PLUGIN.md +2 -2
  34. package/payload/platform/plugins/memory/mcp/dist/index-testable.d.ts.map +1 -1
  35. package/payload/platform/plugins/memory/mcp/dist/index-testable.js +14 -5
  36. package/payload/platform/plugins/memory/mcp/dist/index-testable.js.map +1 -1
  37. package/payload/platform/plugins/memory/mcp/dist/index.js +6 -2
  38. package/payload/platform/plugins/memory/mcp/dist/index.js.map +1 -1
  39. package/payload/platform/plugins/memory/mcp/dist/lib/neo4j-constraint.d.ts +29 -0
  40. package/payload/platform/plugins/memory/mcp/dist/lib/neo4j-constraint.d.ts.map +1 -0
  41. package/payload/platform/plugins/memory/mcp/dist/lib/neo4j-constraint.js +44 -0
  42. package/payload/platform/plugins/memory/mcp/dist/lib/neo4j-constraint.js.map +1 -0
  43. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/owner-person-embed-text.test.d.ts +2 -0
  44. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/owner-person-embed-text.test.d.ts.map +1 -0
  45. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/owner-person-embed-text.test.js +22 -0
  46. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/owner-person-embed-text.test.js.map +1 -0
  47. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-personfields-bootstrap.test.d.ts +2 -0
  48. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-personfields-bootstrap.test.d.ts.map +1 -0
  49. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-personfields-bootstrap.test.js +204 -0
  50. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-personfields-bootstrap.test.js.map +1 -0
  51. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-personfields-embed.test.d.ts +2 -0
  52. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-personfields-embed.test.d.ts.map +1 -0
  53. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-personfields-embed.test.js +78 -0
  54. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-personfields-embed.test.js.map +1 -0
  55. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/resolve-tool-account.test.js +2 -2
  56. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/resolve-tool-account.test.js.map +1 -1
  57. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.d.ts +0 -5
  58. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.d.ts.map +1 -1
  59. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.js +2 -12
  60. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.js.map +1 -1
  61. package/payload/platform/plugins/memory/mcp/dist/tools/profile-update.d.ts +17 -0
  62. package/payload/platform/plugins/memory/mcp/dist/tools/profile-update.d.ts.map +1 -1
  63. package/payload/platform/plugins/memory/mcp/dist/tools/profile-update.js +137 -6
  64. package/payload/platform/plugins/memory/mcp/dist/tools/profile-update.js.map +1 -1
  65. package/payload/platform/plugins/outlook/.claude-plugin/plugin.json +1 -1
  66. package/payload/platform/plugins/outlook/PLUGIN.md +40 -7
  67. package/payload/platform/plugins/outlook/mcp/dist/__tests__/account-register.test.d.ts +2 -0
  68. package/payload/platform/plugins/outlook/mcp/dist/__tests__/account-register.test.d.ts.map +1 -0
  69. package/payload/platform/plugins/outlook/mcp/dist/__tests__/account-register.test.js +137 -0
  70. package/payload/platform/plugins/outlook/mcp/dist/__tests__/account-register.test.js.map +1 -0
  71. package/payload/platform/plugins/outlook/mcp/dist/__tests__/calendar-write.test.d.ts +2 -0
  72. package/payload/platform/plugins/outlook/mcp/dist/__tests__/calendar-write.test.d.ts.map +1 -0
  73. package/payload/platform/plugins/outlook/mcp/dist/__tests__/calendar-write.test.js +186 -0
  74. package/payload/platform/plugins/outlook/mcp/dist/__tests__/calendar-write.test.js.map +1 -0
  75. package/payload/platform/plugins/outlook/mcp/dist/__tests__/device-flow.test.d.ts +2 -0
  76. package/payload/platform/plugins/outlook/mcp/dist/__tests__/device-flow.test.d.ts.map +1 -0
  77. package/payload/platform/plugins/outlook/mcp/dist/__tests__/device-flow.test.js +110 -0
  78. package/payload/platform/plugins/outlook/mcp/dist/__tests__/device-flow.test.js.map +1 -0
  79. package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client-retry.test.d.ts +2 -0
  80. package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client-retry.test.d.ts.map +1 -0
  81. package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client-retry.test.js +108 -0
  82. package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client-retry.test.js.map +1 -0
  83. package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client.test.js +13 -0
  84. package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client.test.js.map +1 -1
  85. package/payload/platform/plugins/outlook/mcp/dist/__tests__/message.test.d.ts +2 -0
  86. package/payload/platform/plugins/outlook/mcp/dist/__tests__/message.test.d.ts.map +1 -0
  87. package/payload/platform/plugins/outlook/mcp/dist/__tests__/message.test.js +32 -0
  88. package/payload/platform/plugins/outlook/mcp/dist/__tests__/message.test.js.map +1 -0
  89. package/payload/platform/plugins/outlook/mcp/dist/__tests__/pending-store.test.d.ts +2 -0
  90. package/payload/platform/plugins/outlook/mcp/dist/__tests__/pending-store.test.d.ts.map +1 -0
  91. package/payload/platform/plugins/outlook/mcp/dist/__tests__/pending-store.test.js +67 -0
  92. package/payload/platform/plugins/outlook/mcp/dist/__tests__/pending-store.test.js.map +1 -0
  93. package/payload/platform/plugins/outlook/mcp/dist/__tests__/pkce-flow.test.js +7 -5
  94. package/payload/platform/plugins/outlook/mcp/dist/__tests__/pkce-flow.test.js.map +1 -1
  95. package/payload/platform/plugins/outlook/mcp/dist/__tests__/write-tools.test.d.ts +2 -0
  96. package/payload/platform/plugins/outlook/mcp/dist/__tests__/write-tools.test.d.ts.map +1 -0
  97. package/payload/platform/plugins/outlook/mcp/dist/__tests__/write-tools.test.js +141 -0
  98. package/payload/platform/plugins/outlook/mcp/dist/__tests__/write-tools.test.js.map +1 -0
  99. package/payload/platform/plugins/outlook/mcp/dist/auth/device-flow.d.ts +69 -0
  100. package/payload/platform/plugins/outlook/mcp/dist/auth/device-flow.d.ts.map +1 -0
  101. package/payload/platform/plugins/outlook/mcp/dist/auth/device-flow.js +129 -0
  102. package/payload/platform/plugins/outlook/mcp/dist/auth/device-flow.js.map +1 -0
  103. package/payload/platform/plugins/outlook/mcp/dist/auth/pending-store.d.ts +39 -0
  104. package/payload/platform/plugins/outlook/mcp/dist/auth/pending-store.d.ts.map +1 -0
  105. package/payload/platform/plugins/outlook/mcp/dist/auth/pending-store.js +101 -0
  106. package/payload/platform/plugins/outlook/mcp/dist/auth/pending-store.js.map +1 -0
  107. package/payload/platform/plugins/outlook/mcp/dist/auth/pkce-flow.d.ts.map +1 -1
  108. package/payload/platform/plugins/outlook/mcp/dist/auth/pkce-flow.js +3 -2
  109. package/payload/platform/plugins/outlook/mcp/dist/auth/pkce-flow.js.map +1 -1
  110. package/payload/platform/plugins/outlook/mcp/dist/index.js +187 -5
  111. package/payload/platform/plugins/outlook/mcp/dist/index.js.map +1 -1
  112. package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.d.ts +34 -1
  113. package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.d.ts.map +1 -1
  114. package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.js +96 -7
  115. package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.js.map +1 -1
  116. package/payload/platform/plugins/outlook/mcp/dist/lib/message.d.ts +31 -0
  117. package/payload/platform/plugins/outlook/mcp/dist/lib/message.d.ts.map +1 -0
  118. package/payload/platform/plugins/outlook/mcp/dist/lib/message.js +30 -0
  119. package/payload/platform/plugins/outlook/mcp/dist/lib/message.js.map +1 -0
  120. package/payload/platform/plugins/outlook/mcp/dist/tools/account-register.d.ts +41 -17
  121. package/payload/platform/plugins/outlook/mcp/dist/tools/account-register.d.ts.map +1 -1
  122. package/payload/platform/plugins/outlook/mcp/dist/tools/account-register.js +87 -28
  123. package/payload/platform/plugins/outlook/mcp/dist/tools/account-register.js.map +1 -1
  124. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-cancel.d.ts +17 -0
  125. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-cancel.d.ts.map +1 -0
  126. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-cancel.js +38 -0
  127. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-cancel.js.map +1 -0
  128. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-create.d.ts +29 -0
  129. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-create.d.ts.map +1 -0
  130. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-create.js +50 -0
  131. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-create.js.map +1 -0
  132. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-freebusy.d.ts +34 -0
  133. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-freebusy.d.ts.map +1 -0
  134. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-freebusy.js +46 -0
  135. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-freebusy.js.map +1 -0
  136. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-respond.d.ts +15 -0
  137. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-respond.d.ts.map +1 -0
  138. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-respond.js +27 -0
  139. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-respond.js.map +1 -0
  140. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-update.d.ts +11 -0
  141. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-update.d.ts.map +1 -0
  142. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-update.js +20 -0
  143. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-update.js.map +1 -0
  144. package/payload/platform/plugins/outlook/mcp/dist/tools/draft-send.d.ts +17 -0
  145. package/payload/platform/plugins/outlook/mcp/dist/tools/draft-send.d.ts.map +1 -0
  146. package/payload/platform/plugins/outlook/mcp/dist/tools/draft-send.js +26 -0
  147. package/payload/platform/plugins/outlook/mcp/dist/tools/draft-send.js.map +1 -0
  148. package/payload/platform/plugins/outlook/mcp/dist/tools/draft.d.ts +11 -0
  149. package/payload/platform/plugins/outlook/mcp/dist/tools/draft.d.ts.map +1 -0
  150. package/payload/platform/plugins/outlook/mcp/dist/tools/draft.js +26 -0
  151. package/payload/platform/plugins/outlook/mcp/dist/tools/draft.js.map +1 -0
  152. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-send.d.ts +14 -0
  153. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-send.d.ts.map +1 -0
  154. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-send.js +26 -0
  155. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-send.js.map +1 -0
  156. package/payload/platform/plugins/outlook/mcp/scripts/verify-doc-impl.sh +2 -2
  157. package/payload/platform/plugins/outlook/references/auth.md +51 -54
  158. package/payload/platform/plugins/outlook/references/graph-surfaces.md +97 -4
  159. package/payload/platform/plugins/outlook/skills/outlook/SKILL.md +34 -9
  160. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.d.ts.map +1 -1
  161. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js +9 -0
  162. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js.map +1 -1
  163. package/payload/platform/services/claude-session-manager/dist/config.d.ts +18 -0
  164. package/payload/platform/services/claude-session-manager/dist/config.d.ts.map +1 -1
  165. package/payload/platform/services/claude-session-manager/dist/config.js +16 -0
  166. package/payload/platform/services/claude-session-manager/dist/config.js.map +1 -1
  167. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
  168. package/payload/platform/services/claude-session-manager/dist/http-server.js +34 -10
  169. package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
  170. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
  171. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +7 -2
  172. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
  173. package/payload/platform/services/claude-session-manager/dist/rc-daemon.d.ts +9 -0
  174. package/payload/platform/services/claude-session-manager/dist/rc-daemon.d.ts.map +1 -1
  175. package/payload/platform/services/claude-session-manager/dist/rc-daemon.js +9 -0
  176. package/payload/platform/services/claude-session-manager/dist/rc-daemon.js.map +1 -1
  177. package/payload/platform/services/whatsapp-channel/dist/notification.d.ts +5 -5
  178. package/payload/platform/services/whatsapp-channel/dist/notification.d.ts.map +1 -1
  179. package/payload/platform/services/whatsapp-channel/dist/notification.js +6 -5
  180. package/payload/platform/services/whatsapp-channel/dist/notification.js.map +1 -1
  181. package/payload/platform/services/whatsapp-channel/dist/server.d.ts.map +1 -1
  182. package/payload/platform/services/whatsapp-channel/dist/server.js +11 -11
  183. package/payload/platform/services/whatsapp-channel/dist/server.js.map +1 -1
  184. package/payload/platform/templates/specialists/agents/personal-assistant.md +1 -1
  185. package/payload/server/public/assets/{AdminLoginScreens-CYPTMmTk.js → AdminLoginScreens-CBTx7ZPK.js} +1 -1
  186. package/payload/server/public/assets/AdminShell-DPHUeXea.js +2 -0
  187. package/payload/server/public/assets/{Checkbox-B0pbYJDQ.js → Checkbox-BHTxekRB.js} +1 -1
  188. package/payload/server/public/assets/{Transcript-CYaAPBFX.js → Transcript-5kLbBInN.js} +1 -1
  189. package/payload/server/public/assets/{admin-BKDMSRto.js → admin-BWCLE32N.js} +1 -1
  190. package/payload/server/public/assets/{browser-CxeMDDZA.js → browser-CRvCPsvV.js} +1 -1
  191. package/payload/server/public/assets/{calendar-DiIiTY9-.js → calendar-BI-kd-QP.js} +1 -1
  192. package/payload/server/public/assets/chat-DFy8hb1y.js +1 -0
  193. package/payload/server/public/assets/chevron-left-Bggm5B5U.js +1 -0
  194. package/payload/server/public/assets/data-HvZ69Ya1.js +1 -0
  195. package/payload/server/public/assets/{graph-DC3dwnMZ.js → graph-BFSyW_5i.js} +1 -1
  196. package/payload/server/public/assets/{graph-labels-Csnovm_c.js → graph-labels-DEjD_qJh.js} +1 -1
  197. package/payload/server/public/assets/{maximize-2-WRUJsg5n.js → maximize-2-BcMJNeCB.js} +1 -1
  198. package/payload/server/public/assets/{operator-BpzeHTAw.js → operator-Dtvm9ero.js} +1 -1
  199. package/payload/server/public/assets/{page-8jJOxx6y.js → page-C_pm3hl3.js} +1 -1
  200. package/payload/server/public/assets/{page-IQDLdebG.js → page-TXi9dmaB.js} +1 -1
  201. package/payload/server/public/assets/{public-Dqg7jwjq.js → public-DBx3U0r8.js} +1 -1
  202. package/payload/server/public/assets/{rotate-ccw-BayMWwfc.js → rotate-ccw-8ti3QkeY.js} +1 -1
  203. package/payload/server/public/assets/useSubAccountSwitcher-BUvlETHN.css +1 -0
  204. package/payload/server/public/assets/{useSubAccountSwitcher-C9aLg8yI.js → useSubAccountSwitcher-Bc5dOBdI.js} +1 -1
  205. package/payload/server/public/browser.html +4 -4
  206. package/payload/server/public/calendar.html +5 -5
  207. package/payload/server/public/chat.html +9 -9
  208. package/payload/server/public/data.html +8 -8
  209. package/payload/server/public/graph.html +9 -9
  210. package/payload/server/public/index.html +11 -11
  211. package/payload/server/public/operator.html +11 -11
  212. package/payload/server/public/public.html +9 -9
  213. package/payload/server/server.js +13 -31
  214. package/payload/server/public/assets/AdminShell-CZH_EZIy.js +0 -2
  215. package/payload/server/public/assets/chat-C56Oqvt1.js +0 -1
  216. package/payload/server/public/assets/chevron-left-Da-iZGi_.js +0 -1
  217. package/payload/server/public/assets/data-ZUdT44Ba.js +0 -1
  218. package/payload/server/public/assets/useSubAccountSwitcher-CRZfyJXR.css +0 -1
@@ -0,0 +1,204 @@
1
+ /**
2
+ * Task 1463 — cross-account `personFields` must bootstrap the owner `Person`
3
+ * plus the `OWNS` edge when they are absent, so a house operator can set a
4
+ * sub-account owner's email/telephone. The owner `Person` is keyed by the
5
+ * `OWNS` edge off the `AdminUser` (not by phone — that is the access-grant
6
+ * `Person`'s key), so the bootstrap cannot fork a parallel identity.
7
+ *
8
+ * Own-account behaviour is unchanged: a `personFields` write with a missing
9
+ * `OWNS`-`Person` still loud-fails (that edge is a real post-PIN invariant
10
+ * for own-account).
11
+ *
12
+ * The session is mocked; these tests assert the cypher shape and the
13
+ * loud-fail, not a live graph.
14
+ */
15
+ import { describe, it, expect, beforeEach, afterEach, vi } from "vitest";
16
+ import { setupEmitCapture, makeMockSession } from "./_helpers/emit-capture.js";
17
+ import { readFileSync } from "node:fs";
18
+ import { resolve, dirname } from "node:path";
19
+ import { fileURLToPath } from "node:url";
20
+ const mockSession = makeMockSession();
21
+ vi.mock("../../lib/neo4j.js", () => ({
22
+ getSession: () => mockSession,
23
+ }));
24
+ vi.mock("../../lib/embeddings.js", () => ({
25
+ embed: vi.fn().mockResolvedValue([0.1, 0.2, 0.3]),
26
+ }));
27
+ vi.mock("../../lib/schema-validator.js", () => ({
28
+ validateWrite: vi.fn(),
29
+ }));
30
+ vi.mock("../profile-read.js", () => ({
31
+ loadEnabledPluginProfileKeys: () => ({}),
32
+ }));
33
+ import { profileUpdate } from "../profile-update.js";
34
+ const ACCT = "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee";
35
+ const USER = "bbbbbbbb-cccc-dddd-eeee-ffffffffffff";
36
+ // validateWrite is mocked to a no-op, so a bare stub satisfies the
37
+ // "personFields requires a validator" guard without a real schema.
38
+ const validator = {};
39
+ describe("profile-update — owner Person bootstrap on cross-account personFields (Task 1463)", () => {
40
+ let emit;
41
+ beforeEach(() => {
42
+ emit = setupEmitCapture();
43
+ mockSession.run.mockReset();
44
+ mockSession.run.mockResolvedValue({ records: [] });
45
+ });
46
+ afterEach(() => emit.restore());
47
+ it("MERGEs the OWNS->Person off the AdminUser when bootstrapPerson is set", async () => {
48
+ await profileUpdate({
49
+ accountId: ACCT,
50
+ userId: USER,
51
+ category: "communication",
52
+ key: "tone",
53
+ value: "polite",
54
+ personFields: { telephone: "+447700900123" },
55
+ validator,
56
+ bootstrapPerson: true,
57
+ }).catch(() => undefined);
58
+ const cyphers = mockSession.run.mock.calls.map((c) => String(c[0]));
59
+ const personRun = cyphers.find((c) => c.includes("p += $fields"));
60
+ expect(personRun).toBeDefined();
61
+ // Bootstrap = MERGE the owner Person via the OWNS edge, not a bare MATCH.
62
+ expect(personRun).toMatch(/MATCH \(au:AdminUser \{userId: \$userId\}\)/);
63
+ expect(personRun).toMatch(/MERGE \(au\)-\[:OWNS\]->\(p:Person \{accountId: \$accountId\}\)/);
64
+ expect(personRun).toMatch(/ON CREATE SET/);
65
+ // Keyed on the OWNS edge + accountId — never on phone. Phone is the
66
+ // access-grant Person's key; keying the owner Person on it would fork a
67
+ // parallel identity that later diverges.
68
+ expect(personRun).not.toMatch(/phone/);
69
+ // The field is bound to the SET.
70
+ const call = mockSession.run.mock.calls.find((c) => String(c[0]).includes("p += $fields"));
71
+ expect((call?.[1]).fields).toMatchObject({
72
+ telephone: "+447700900123",
73
+ });
74
+ });
75
+ it("own-account (bootstrapPerson unset) keeps the MATCH loud-fail on a missing OWNS-Person", async () => {
76
+ // mock returns records:[] → affected=0 → loud-fail.
77
+ await expect(profileUpdate({
78
+ accountId: ACCT,
79
+ userId: USER,
80
+ category: "communication",
81
+ key: "tone",
82
+ value: "polite",
83
+ personFields: { telephone: "+447700900123" },
84
+ validator,
85
+ })).rejects.toThrow(/AdminUser-OWNS-Person not found/);
86
+ const cyphers = mockSession.run.mock.calls.map((c) => String(c[0]));
87
+ const personRun = cyphers.find((c) => c.includes("p += $fields"));
88
+ expect(personRun).toBeDefined();
89
+ // Own-account path is the unchanged MATCH form — no MERGE bootstrap.
90
+ expect(personRun).toMatch(/MATCH \(au:AdminUser \{userId: \$userId\}\)-\[:OWNS\]->\(p:Person \{accountId: \$accountId\}\)/);
91
+ expect(personRun).not.toMatch(/MERGE \(au\)-\[:OWNS\]/);
92
+ });
93
+ it("index.ts wires bootstrapPerson: crossAccount at the profile-update call site", () => {
94
+ const SRC = resolve(dirname(fileURLToPath(import.meta.url)), "../../index.ts");
95
+ const src = readFileSync(SRC, "utf8");
96
+ expect(src).toContain("bootstrapPerson: crossAccount");
97
+ });
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
+ });
204
+ //# sourceMappingURL=profile-update-personfields-bootstrap.test.js.map
@@ -0,0 +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;AAEH,0EAA0E;AAC1E,6EAA6E;AAC7E,8DAA8D;AAC9D,QAAQ,CAAC,+DAA+D,EAAE,GAAG,EAAE;IAC7E,IAAI,IAAyC,CAAC;IAC9C,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,GAAG,gBAAgB,EAAE,CAAC;QAC1B,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;IACH,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAEhC,wEAAwE;IACxE,wEAAwE;IACxE,4BAA4B;IAC5B,SAAS,aAAa,CAAC,SAAiC;QACtD,WAAW,CAAC,GAAG,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAU,EAAE,EAAE;YACtD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAAE,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;YAC5D,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,0EAA0E;IAC1E,8EAA8E;IAC9E,SAAS,YAAY;QACnB,OAAO,aAAa,CAAC;YACnB,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,IAAI,CACL,GAAG,EAAE,CAAC,IAAI,EACV,CAAC,CAAQ,EAAE,EAAE,CAAC,CAAC,CAChB,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,6EAA6E;IAC7E,4EAA4E;IAC5E,4EAA4E;IAC5E,2EAA2E;IAC3E,SAAS,2BAA2B;QAClC,MAAM,CAAC,GAAG,IAAI,KAAK,CACjB,6DAA6D;YAC3D,oBAAoB,IAAI,oCAAoC,CAC/D,CAAC;QACD,CAAiC,CAAC,IAAI;YACrC,mDAAmD,CAAC;QACtD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,EAAE,CAAC,+GAA+G,EAAE,KAAK,IAAI,EAAE;QAC7H,aAAa,CAAC,GAAG,EAAE;YACjB,MAAM,2BAA2B,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,MAAM,YAAY,EAAE,CAAC;QAEjC,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,GAAG,GAAI,GAAa,CAAC,OAAO,CAAC;QACnC,kDAAkD;QAClD,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACjC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACvC,2EAA2E;QAC3E,gCAAgC;QAChC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAChC,iEAAiE;QACjE,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;QAC1D,kCAAkC;QAClC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+EAA+E,EAAE,KAAK,IAAI,EAAE;QAC7F,aAAa,CAAC,GAAG,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,MAAM,YAAY,EAAE,CAAC;QAEjC,MAAM,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC9D,MAAM,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wGAAwG,EAAE,KAAK,IAAI,EAAE;QACtH,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC;YACnB,OAAO,EAAE;gBACP;oBACE,GAAG,EAAE,CAAC,CAAS,EAAE,EAAE,CACjB,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;iBACxE;aACF;SACF,CAAC,CAAC,CAAC;QAEJ,MAAM,GAAG,GAAG,MAAM,YAAY,EAAE,CAAC;QAEjC,MAAM,GAAG,GAAI,GAAa,CAAC,OAAO,CAAC;QACnC,0EAA0E;QAC1E,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACnC,0EAA0E;QAC1E,wCAAwC;QACxC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8EAA8E,EAAE,KAAK,IAAI,EAAE;QAC5F,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC;YACnB,OAAO,EAAE;gBACP;oBACE,GAAG,EAAE,CAAC,CAAS,EAAE,EAAE,CACjB,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;iBACpE;aACF;SACF,CAAC,CAAC,CAAC;QAEJ,MAAM,GAAG,GAAG,MAAM,YAAY,EAAE,CAAC;QAEjC,MAAM,GAAG,GAAI,GAAa,CAAC,OAAO,CAAC;QACnC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;QACvD,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=profile-update-personfields-embed.test.d.ts.map
@@ -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":"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"}
@@ -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 + invalid target → cross-account-invalid-target error content", () => {
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-invalid-target");
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 });
@@ -1 +1 @@
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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"}
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;AAe9E,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;AAuXD,wFAAwF;AACxF,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,GACd;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAKhD;AASD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EAAE,EAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,MAAM,CAYR"}
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 instanceof 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":"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"}
1
+ {"version":3,"file":"memory-write.js","sourceRoot":"","sources":["../../src/tools/memory-write.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { type ValidatorEnv } from "../lib/schema-validator.js";
2
+ export declare function ownerPersonEmbedText(givenName: string | null | undefined, familyName: string | null | undefined): string | null;
2
3
  interface ProfileUpdateParams {
3
4
  accountId: string;
4
5
  userId: string;
@@ -64,6 +65,22 @@ interface ProfileUpdateParams {
64
65
  * behaviour is byte-identical.
65
66
  */
66
67
  bootstrapProfile?: boolean;
68
+ /**
69
+ * Task 1463 — cross-account owner `personFields` write. When true, the
70
+ * `personFields` SET MERGEs the owner `Person` off the (seeded) owner
71
+ * `AdminUser` via the `OWNS` edge before setting the fields, so a house
72
+ * operator setting a sub-account owner's email/telephone lands instead of
73
+ * loud-failing on the absent `OWNS`-`Person` (a sub-account is seeded with an
74
+ * `AdminUser` but no owner `Person` — Task 1359; it never runs the PIN /
75
+ * access-grant flow that would create one). The owner `Person` is keyed by
76
+ * the `OWNS` edge + `accountId`, matching `writeAdminUserAndPerson`'s
77
+ * identity `Person`; it is NEVER keyed on phone (that is `enrolPerson`'s
78
+ * access-grant `Person`), so the bootstrap cannot fork a parallel identity.
79
+ * Set ONLY by the MCP server's cross-account path (resolved account ≠ boot
80
+ * account); own-account writes never set it — their `OWNS`-`Person` is a real
81
+ * post-PIN invariant, so a missing one still loud-fails (byte-identical).
82
+ */
83
+ bootstrapPerson?: boolean;
67
84
  }
68
85
  interface ProfileUpdateResult {
69
86
  preferenceId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"profile-update.d.ts","sourceRoot":"","sources":["../../src/tools/profile-update.ts"],"names":[],"mappings":"AAIA,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAkD9E,UAAU,mBAAmB;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,UAAU,GAAG,aAAa,CAAC;IACpC,IAAI,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,YAAY,GAAG,OAAO,CAAC;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC;;;;;;;;;;;;;;;;;OAiBG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;;;;;;;;;OAcG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB;;;;;;;;;OASG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,UAAU,mBAAmB;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,SAAS,GAAG,YAAY,GAAG,SAAS,GAAG,cAAc,GAAG,QAAQ,CAAC;IACzE,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,aAAa,CACjC,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CAM9B"}
1
+ {"version":3,"file":"profile-update.d.ts","sourceRoot":"","sources":["../../src/tools/profile-update.ts"],"names":[],"mappings":"AAIA,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AA4D9E,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACpC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACpC,MAAM,GAAG,IAAI,CAOf;AAED,UAAU,mBAAmB;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,UAAU,GAAG,aAAa,CAAC;IACpC,IAAI,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,YAAY,GAAG,OAAO,CAAC;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC;;;;;;;;;;;;;;;;;OAiBG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;;;;;;;;;OAcG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB;;;;;;;;;OASG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;;;;;;;;;;OAcG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,UAAU,mBAAmB;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,SAAS,GAAG,YAAY,GAAG,SAAS,GAAG,cAAc,GAAG,QAAQ,CAAC;IACzE,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,aAAa,CACjC,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CAM9B"}