@rubytech/create-maxy 1.0.771 → 1.0.773
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/payload/platform/plugins/admin/PLUGIN.md +2 -1
- package/payload/platform/plugins/admin/mcp/dist/index.js +131 -20
- package/payload/platform/plugins/admin/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/admin/skills/business-profile/SKILL.md +5 -6
- package/payload/platform/plugins/admin/skills/onboarding/SKILL.md +5 -6
- 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 +21 -6
- package/payload/platform/plugins/memory/mcp/dist/tools/profile-read.js.map +1 -1
- package/payload/platform/templates/agents/admin/IDENTITY.md +3 -2
- package/payload/server/{chunk-TKYZ7AEB.js → chunk-2HBD6IRL.js} +105 -5
- package/payload/server/{chunk-IO2WQEY4.js → chunk-PIMJJCOQ.js} +2 -1
- package/payload/server/{client-pool-5V5GX3UT.js → client-pool-U3A5YUO7.js} +1 -1
- package/payload/server/maxy-edge.js +2 -2
- package/payload/server/public/assets/{admin-CaXX8wc3.js → admin-C4CTVtBu.js} +6 -6
- package/payload/server/public/index.html +1 -1
- package/payload/server/server.js +81 -15
- package/payload/platform/plugins/memory/mcp/dist/lib/semantic-chunker.d.ts +0 -61
- package/payload/platform/plugins/memory/mcp/dist/lib/semantic-chunker.d.ts.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/semantic-chunker.js +0 -266
- package/payload/platform/plugins/memory/mcp/dist/lib/semantic-chunker.js.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/index.d.ts +0 -2
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/index.d.ts.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/index.js +0 -293
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/index.js.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/lib/crypto.d.ts +0 -10
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/lib/crypto.d.ts.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/lib/crypto.js +0 -88
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/lib/crypto.js.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/lib/loop-api.d.ts +0 -80
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/lib/loop-api.d.ts.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/lib/loop-api.js +0 -355
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/lib/loop-api.js.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/lib/neo4j.d.ts +0 -5
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/lib/neo4j.d.ts.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/lib/neo4j.js +0 -34
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/lib/neo4j.js.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/customer-preferences.d.ts +0 -10
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/customer-preferences.d.ts.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/customer-preferences.js +0 -24
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/customer-preferences.js.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/feedback-list.d.ts +0 -6
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/feedback-list.d.ts.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/feedback-list.js +0 -18
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/feedback-list.js.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/feedback.d.ts +0 -16
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/feedback.d.ts.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/feedback.js +0 -35
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/feedback.js.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/key-deregister.d.ts +0 -5
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/key-deregister.d.ts.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/key-deregister.js +0 -19
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/key-deregister.js.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/key-list.d.ts +0 -4
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/key-list.d.ts.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/key-list.js +0 -14
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/key-list.js.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/key-register.d.ts +0 -9
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/key-register.d.ts.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/key-register.js +0 -60
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/key-register.js.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/marketing-enquiry.d.ts +0 -13
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/marketing-enquiry.d.ts.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/marketing-enquiry.js +0 -41
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/marketing-enquiry.js.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/marketing-match-batch.d.ts +0 -9
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/marketing-match-batch.d.ts.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/marketing-match-batch.js +0 -16
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/marketing-match-batch.js.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/marketing-match-request.d.ts +0 -15
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/marketing-match-request.d.ts.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/marketing-match-request.js +0 -11
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/marketing-match-request.js.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/marketing-match.d.ts +0 -10
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/marketing-match.d.ts.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/marketing-match.js +0 -39
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/marketing-match.js.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/people-detail.d.ts +0 -9
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/people-detail.d.ts.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/people-detail.js +0 -125
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/people-detail.js.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/people-list.d.ts +0 -7
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/people-list.d.ts.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/people-list.js +0 -16
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/people-list.js.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/people-search.d.ts +0 -18
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/people-search.d.ts.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/people-search.js +0 -87
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/people-search.js.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/properties-list.d.ts +0 -7
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/properties-list.d.ts.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/properties-list.js +0 -19
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/properties-list.js.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/property-detail.d.ts +0 -10
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/property-detail.d.ts.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/property-detail.js +0 -82
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/property-detail.js.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/property-listed.d.ts +0 -12
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/property-listed.d.ts.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/property-listed.js +0 -32
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/property-listed.js.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/property-request.d.ts +0 -15
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/property-request.d.ts.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/property-request.js +0 -11
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/property-request.js.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/property-search.d.ts +0 -16
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/property-search.d.ts.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/property-search.js +0 -41
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/property-search.js.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/supplier.d.ts +0 -13
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/supplier.d.ts.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/supplier.js +0 -49
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/supplier.js.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/team-availability.d.ts +0 -7
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/team-availability.d.ts.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/team-availability.js +0 -19
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/team-availability.js.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/team-info.d.ts +0 -5
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/team-info.d.ts.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/team-info.js +0 -32
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/team-info.js.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewing-create.d.ts +0 -14
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewing-create.d.ts.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewing-create.js +0 -11
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewing-create.js.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewing-detail.d.ts +0 -9
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewing-detail.d.ts.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewing-detail.js +0 -85
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewing-detail.js.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewing-search.d.ts +0 -13
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewing-search.d.ts.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewing-search.js +0 -44
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewing-search.js.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewing-update.d.ts +0 -14
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewing-update.d.ts.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewing-update.js +0 -18
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewing-update.js.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewings-list.d.ts +0 -9
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewings-list.d.ts.map +0 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewings-list.js +0 -25
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewings-list.js.map +0 -1
- package/payload/server/chunk-26QT2HEQ.js +0 -9483
- package/payload/server/chunk-2T4RRIJK.js +0 -9462
- package/payload/server/chunk-2W7O63CK.js +0 -3052
- package/payload/server/chunk-32ZHQJNX.js +0 -11395
- package/payload/server/chunk-3KDVGWPQ.js +0 -2920
- package/payload/server/chunk-3RBKKDHC.js +0 -783
- package/payload/server/chunk-3VVHVJK2.js +0 -11405
- package/payload/server/chunk-43JK6WNK.js +0 -3057
- package/payload/server/chunk-5YIXIF6C.js +0 -726
- package/payload/server/chunk-7ODDM7L4.js +0 -12370
- package/payload/server/chunk-A5K3CFMI.js +0 -12297
- package/payload/server/chunk-AIWWYOBH.js +0 -9439
- package/payload/server/chunk-B54KBAK4.js +0 -72
- package/payload/server/chunk-BIOIXN5A.js +0 -12165
- package/payload/server/chunk-D53LK5YC.js +0 -12171
- package/payload/server/chunk-EIQT6QDH.js +0 -9562
- package/payload/server/chunk-FM5JMRED.js +0 -12033
- package/payload/server/chunk-HPU24BXP.js +0 -12173
- package/payload/server/chunk-HU5FSQYA.js +0 -12186
- package/payload/server/chunk-IAIGB5WN.js +0 -11406
- package/payload/server/chunk-JDT3MGUY.js +0 -12165
- package/payload/server/chunk-JLVVVQN7.js +0 -9447
- package/payload/server/chunk-K7GQ5RMN.js +0 -12172
- package/payload/server/chunk-LQ5GSMEW.js +0 -12036
- package/payload/server/chunk-MPWGVFU2.js +0 -12340
- package/payload/server/chunk-O2FWENOD.js +0 -11530
- package/payload/server/chunk-PE76FPYP.js +0 -12040
- package/payload/server/chunk-PQ6LDXZ4.js +0 -2997
- package/payload/server/chunk-Q6NDXCM6.js +0 -11448
- package/payload/server/chunk-QXAUMZXQ.js +0 -9512
- package/payload/server/chunk-S3M2NZMA.js +0 -3136
- package/payload/server/chunk-SGBNY4NP.js +0 -9540
- package/payload/server/chunk-SKXO42T6.js +0 -2934
- package/payload/server/chunk-SPTD7L7Z.js +0 -9474
- package/payload/server/chunk-TXPEEAV6.js +0 -2997
- package/payload/server/chunk-U3W5YIXU.js +0 -11450
- package/payload/server/chunk-U5JPRUYZ.js +0 -12298
- package/payload/server/chunk-UFLV7I6N.js +0 -11678
- package/payload/server/chunk-ULVR2RRY.js +0 -9439
- package/payload/server/chunk-VOD2IZ6J.js +0 -2934
- package/payload/server/chunk-VS7CRH4M.js +0 -9439
- package/payload/server/chunk-W6ZUNLLS.js +0 -9446
- package/payload/server/chunk-WW464F23.js +0 -9512
- package/payload/server/chunk-Y57ACANQ.js +0 -12292
- package/payload/server/chunk-ZK3VNR7Y.js +0 -9510
- package/payload/server/chunk-ZL2A4ROK.js +0 -11416
- package/payload/server/client-pool-67NUIL7H.js +0 -28
- package/payload/server/client-pool-CX2MFW75.js +0 -28
- package/payload/server/client-pool-DQBHSKAF.js +0 -28
- package/payload/server/client-pool-I5TCP7WI.js +0 -28
- package/payload/server/client-pool-ISMYJXCU.js +0 -28
- package/payload/server/client-pool-SGPHSYLK.js +0 -28
- package/payload/server/client-pool-TCKGDZLE.js +0 -28
- package/payload/server/client-pool-TULUIO6M.js +0 -28
- package/payload/server/upgrade-progress-server.js +0 -83
|
@@ -10,13 +10,14 @@ export async function profileRead(params) {
|
|
|
10
10
|
const result = await session.run(`
|
|
11
11
|
OPTIONAL MATCH (up:UserProfile {accountId: $accountId, userId: $userId})
|
|
12
12
|
WHERE ${notTrashed("up")}
|
|
13
|
+
OPTIONAL MATCH (au:AdminUser {userId: $userId})-[:OWNS]->(p:Person {accountId: $accountId})
|
|
13
14
|
OPTIONAL MATCH (up)-[:HAS_PREFERENCE]->(pref:Preference)
|
|
14
15
|
WHERE pref.confidence >= $threshold AND ${notTrashed("pref")}
|
|
15
|
-
WITH up, pref
|
|
16
|
+
WITH up, p, pref
|
|
16
17
|
ORDER BY pref.confidence DESC
|
|
17
|
-
WITH up, collect(pref) AS allPrefs
|
|
18
|
-
WITH up, allPrefs[0..$limit] AS prefs
|
|
19
|
-
RETURN up, prefs
|
|
18
|
+
WITH up, p, collect(pref) AS allPrefs
|
|
19
|
+
WITH up, p, allPrefs[0..$limit] AS prefs
|
|
20
|
+
RETURN up, p AS person, prefs
|
|
20
21
|
`, {
|
|
21
22
|
accountId,
|
|
22
23
|
userId,
|
|
@@ -38,6 +39,14 @@ export async function profileRead(params) {
|
|
|
38
39
|
const upNode = record.get("up");
|
|
39
40
|
const profileProps = { ...upNode.properties };
|
|
40
41
|
delete profileProps.embedding;
|
|
42
|
+
const personNode = record.get("person");
|
|
43
|
+
if (personNode?.properties) {
|
|
44
|
+
// Person fields are the canonical source for human-readable name (Task 829).
|
|
45
|
+
if (personNode.properties.givenName !== undefined)
|
|
46
|
+
profileProps.givenName = personNode.properties.givenName;
|
|
47
|
+
if (personNode.properties.familyName !== undefined)
|
|
48
|
+
profileProps.familyName = personNode.properties.familyName;
|
|
49
|
+
}
|
|
41
50
|
const prefNodes = record.get("prefs");
|
|
42
51
|
const preferences = prefNodes.map((p) => ({
|
|
43
52
|
preferenceId: p.properties.preferenceId,
|
|
@@ -98,7 +107,10 @@ const CATEGORY_LABELS = {
|
|
|
98
107
|
// Profile summary format — also implemented in neo4j-store.ts (loadUserProfile).
|
|
99
108
|
// Changes here must be reflected there and vice versa.
|
|
100
109
|
export function formatProfileSummary(profile, preferences) {
|
|
101
|
-
const
|
|
110
|
+
const givenName = typeof profile.givenName === "string" ? profile.givenName.trim() : "";
|
|
111
|
+
const familyName = typeof profile.familyName === "string" ? profile.familyName.trim() : "";
|
|
112
|
+
const joined = familyName ? `${givenName} ${familyName}` : givenName;
|
|
113
|
+
const name = joined || "Owner";
|
|
102
114
|
const role = profile.role ? ` (${profile.role})` : "";
|
|
103
115
|
const tz = profile.timezone ? ` — ${profile.timezone}` : "";
|
|
104
116
|
const locale = profile.locale ? `, ${profile.locale}` : "";
|
|
@@ -141,7 +153,10 @@ export function formatProfileSummary(profile, preferences) {
|
|
|
141
153
|
// Detailed summary for "what do you know about me?" — includes confidence,
|
|
142
154
|
// source, and evidence trail per preference.
|
|
143
155
|
function formatDetailedSummary(profile, preferences, stats) {
|
|
144
|
-
const
|
|
156
|
+
const givenName = typeof profile.givenName === "string" ? profile.givenName.trim() : "";
|
|
157
|
+
const familyName = typeof profile.familyName === "string" ? profile.familyName.trim() : "";
|
|
158
|
+
const joined = familyName ? `${givenName} ${familyName}` : givenName;
|
|
159
|
+
const name = joined || "Owner";
|
|
145
160
|
const role = profile.role ? ` (${profile.role})` : "";
|
|
146
161
|
const tz = profile.timezone ? ` — ${profile.timezone}` : "";
|
|
147
162
|
const locale = profile.locale ? `, ${profile.locale}` : "";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile-read.js","sourceRoot":"","sources":["../../src/tools/profile-read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,8CAA8C,CAAC;AAE1E,kEAAkE;AAClE,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAChC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AA8CnC,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAyB;IAEzB,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC7C,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B;;cAEQ,UAAU,CAAC,IAAI,CAAC
|
|
1
|
+
{"version":3,"file":"profile-read.js","sourceRoot":"","sources":["../../src/tools/profile-read.ts"],"names":[],"mappings":"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"}
|
|
@@ -193,11 +193,12 @@ Any request to create, edit, clone, list, preview, or delete a public agent must
|
|
|
193
193
|
|
|
194
194
|
## Admin User Management
|
|
195
195
|
|
|
196
|
-
The owner can manage who has admin access to this account through conversation.
|
|
196
|
+
The owner can manage who has admin access to this account through conversation. Four tools are available:
|
|
197
197
|
|
|
198
|
-
- **`admin-add`** — Add a new admin to this account. Requires a name; optionally accepts a specific PIN. If no PIN is provided, a unique 4-digit PIN is generated. The tool returns the PIN so the owner can share it with the new admin. PINs must be unique across all users on the device.
|
|
198
|
+
- **`admin-add`** — Add a new admin to this account. Requires a name; optionally accepts a specific PIN. PIN must be at least 4 digits. If no PIN is provided, a unique 4-digit PIN is generated. The tool returns the PIN so the owner can share it with the new admin. PINs must be unique across all users on the device.
|
|
199
199
|
- **`admin-remove`** — Remove an admin from this account. Requires the userId (use `admin-list` to find it). The last admin on the account cannot be removed. The user's device-level entry is retained — they may still administer other accounts.
|
|
200
200
|
- **`admin-list`** — List all admins for this account with their names and roles.
|
|
201
|
+
- **`admin-update-pin`** — Update an admin's PIN without removing them. Defaults to the calling admin if no userId is given. PIN must be at least 4 digits and unique across all users on the device.
|
|
201
202
|
|
|
202
203
|
Only the owner (or any current admin) can manage admins. Role is a label only — "owner" marks the original creator, "admin" marks subsequent additions. No capability differences are enforced.
|
|
203
204
|
|
|
@@ -1467,6 +1467,95 @@ async function getUserTimezone(accountId, userId) {
|
|
|
1467
1467
|
await session.close();
|
|
1468
1468
|
}
|
|
1469
1469
|
}
|
|
1470
|
+
async function loadAdminUserName(accountId, userId) {
|
|
1471
|
+
const session = getSession();
|
|
1472
|
+
try {
|
|
1473
|
+
const result = await session.run(
|
|
1474
|
+
`MATCH (au:AdminUser {userId: $userId})-[:OWNS]->(p:Person {accountId: $accountId})
|
|
1475
|
+
RETURN p.givenName AS givenName, p.familyName AS familyName
|
|
1476
|
+
LIMIT 1`,
|
|
1477
|
+
{ accountId, userId }
|
|
1478
|
+
);
|
|
1479
|
+
if (result.records.length === 0) {
|
|
1480
|
+
return { source: "fallback", reason: "no-person-node" };
|
|
1481
|
+
}
|
|
1482
|
+
const givenName = result.records[0].get("givenName");
|
|
1483
|
+
const familyName = result.records[0].get("familyName");
|
|
1484
|
+
if (!givenName || givenName.trim().length === 0) {
|
|
1485
|
+
return { source: "fallback", reason: "no-givenName" };
|
|
1486
|
+
}
|
|
1487
|
+
const trimmedFamily = familyName && familyName.trim().length > 0 ? familyName.trim() : null;
|
|
1488
|
+
const joined = trimmedFamily ? `${givenName.trim()} ${trimmedFamily}` : givenName.trim();
|
|
1489
|
+
return { source: "neo4j", joined, givenName: givenName.trim(), familyName: trimmedFamily };
|
|
1490
|
+
} catch (err) {
|
|
1491
|
+
console.error(`[admin-identity] loadAdminUserName failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
1492
|
+
return { source: "fallback", reason: "neo4j-unreachable" };
|
|
1493
|
+
} finally {
|
|
1494
|
+
await session.close();
|
|
1495
|
+
}
|
|
1496
|
+
}
|
|
1497
|
+
async function writeAdminUserAndPerson(params) {
|
|
1498
|
+
const { userId, fullName, accountId } = params;
|
|
1499
|
+
const trimmed = fullName.trim();
|
|
1500
|
+
if (!trimmed) {
|
|
1501
|
+
throw new Error("writeAdminUserAndPerson: fullName cannot be empty");
|
|
1502
|
+
}
|
|
1503
|
+
const firstSpace = trimmed.search(/\s/);
|
|
1504
|
+
const givenName = firstSpace === -1 ? trimmed : trimmed.slice(0, firstSpace).trim();
|
|
1505
|
+
const familyName = firstSpace === -1 ? null : trimmed.slice(firstSpace + 1).trim() || null;
|
|
1506
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
1507
|
+
const session = getSession();
|
|
1508
|
+
try {
|
|
1509
|
+
const result = await session.run(
|
|
1510
|
+
`MERGE (au:AdminUser {userId: $userId})
|
|
1511
|
+
ON CREATE SET au.name = $fullName, au.createdAt = $now
|
|
1512
|
+
ON MATCH SET au.name = $fullName, au.updatedAt = $now
|
|
1513
|
+
WITH au
|
|
1514
|
+
|
|
1515
|
+
// Case-insensitive Person reuse: same accountId, same givenName, same familyName
|
|
1516
|
+
// (null/empty familyName collapsed to '' so 'Joel' does NOT match 'Joel Smalley').
|
|
1517
|
+
OPTIONAL MATCH (existingPerson:Person {accountId: $accountId})
|
|
1518
|
+
WHERE toLower(existingPerson.givenName) = toLower($givenName)
|
|
1519
|
+
AND coalesce(toLower(existingPerson.familyName), '') = coalesce(toLower($familyName), '')
|
|
1520
|
+
WITH au, existingPerson
|
|
1521
|
+
|
|
1522
|
+
CALL {
|
|
1523
|
+
WITH au, existingPerson
|
|
1524
|
+
WITH au, existingPerson WHERE existingPerson IS NOT NULL
|
|
1525
|
+
MERGE (au)-[:OWNS]->(existingPerson)
|
|
1526
|
+
RETURN existingPerson AS p, true AS reused
|
|
1527
|
+
UNION
|
|
1528
|
+
WITH au, existingPerson
|
|
1529
|
+
WITH au WHERE existingPerson IS NULL
|
|
1530
|
+
CREATE (newPerson:Person {
|
|
1531
|
+
accountId: $accountId,
|
|
1532
|
+
givenName: $givenName,
|
|
1533
|
+
familyName: $familyName,
|
|
1534
|
+
role: 'admin-personal',
|
|
1535
|
+
scope: 'admin',
|
|
1536
|
+
createdAt: $now
|
|
1537
|
+
})
|
|
1538
|
+
MERGE (au)-[:OWNS]->(newPerson)
|
|
1539
|
+
RETURN newPerson AS p, false AS reused
|
|
1540
|
+
}
|
|
1541
|
+
RETURN reused, elementId(p) AS personElementId,
|
|
1542
|
+
p.givenName AS givenName, p.familyName AS familyName`,
|
|
1543
|
+
{ userId, fullName: trimmed, accountId, givenName, familyName, now }
|
|
1544
|
+
);
|
|
1545
|
+
if (result.records.length === 0) {
|
|
1546
|
+
throw new Error("writeAdminUserAndPerson: no record returned");
|
|
1547
|
+
}
|
|
1548
|
+
const record = result.records[0];
|
|
1549
|
+
return {
|
|
1550
|
+
personReused: record.get("reused"),
|
|
1551
|
+
personElementId: record.get("personElementId"),
|
|
1552
|
+
givenName: record.get("givenName"),
|
|
1553
|
+
familyName: record.get("familyName")
|
|
1554
|
+
};
|
|
1555
|
+
} finally {
|
|
1556
|
+
await session.close();
|
|
1557
|
+
}
|
|
1558
|
+
}
|
|
1470
1559
|
async function loadUserProfile(accountId, userId) {
|
|
1471
1560
|
const session = getSession();
|
|
1472
1561
|
try {
|
|
@@ -1528,13 +1617,14 @@ async function loadUserProfile(accountId, userId) {
|
|
|
1528
1617
|
}
|
|
1529
1618
|
const result = await session.run(
|
|
1530
1619
|
`MATCH (up:UserProfile {accountId: $accountId, userId: $userId})
|
|
1620
|
+
OPTIONAL MATCH (au:AdminUser {userId: $userId})-[:OWNS]->(p:Person {accountId: $accountId})
|
|
1531
1621
|
OPTIONAL MATCH (up)-[:HAS_PREFERENCE]->(pref:Preference)
|
|
1532
1622
|
WHERE pref.confidence >= $threshold
|
|
1533
|
-
WITH up, pref
|
|
1623
|
+
WITH up, p, pref
|
|
1534
1624
|
ORDER BY pref.confidence DESC
|
|
1535
|
-
WITH up, collect(pref) AS allPrefs
|
|
1536
|
-
WITH up, allPrefs[0..$limit] AS prefs
|
|
1537
|
-
RETURN up, prefs`,
|
|
1625
|
+
WITH up, p, collect(pref) AS allPrefs
|
|
1626
|
+
WITH up, p, allPrefs[0..$limit] AS prefs
|
|
1627
|
+
RETURN up, p AS person, prefs`,
|
|
1538
1628
|
{ accountId, userId, threshold: INJECTION_THRESHOLD, limit: MAX_SUMMARY_PREFERENCES }
|
|
1539
1629
|
);
|
|
1540
1630
|
if (result.records.length === 0 || !result.records[0].get("up")) {
|
|
@@ -1542,6 +1632,11 @@ async function loadUserProfile(accountId, userId) {
|
|
|
1542
1632
|
}
|
|
1543
1633
|
const upNode = result.records[0].get("up");
|
|
1544
1634
|
const profileProps = { ...upNode.properties };
|
|
1635
|
+
const personNode = result.records[0].get("person");
|
|
1636
|
+
if (personNode?.properties) {
|
|
1637
|
+
if (personNode.properties.givenName !== void 0) profileProps.givenName = personNode.properties.givenName;
|
|
1638
|
+
if (personNode.properties.familyName !== void 0) profileProps.familyName = personNode.properties.familyName;
|
|
1639
|
+
}
|
|
1545
1640
|
const prefNodes = result.records[0].get("prefs");
|
|
1546
1641
|
const preferences = prefNodes.map((p) => ({
|
|
1547
1642
|
preferenceId: p.properties.preferenceId,
|
|
@@ -1565,7 +1660,10 @@ async function loadUserProfile(accountId, userId) {
|
|
|
1565
1660
|
}
|
|
1566
1661
|
}
|
|
1567
1662
|
function formatProfileSummary(profile, preferences) {
|
|
1568
|
-
const
|
|
1663
|
+
const givenName = typeof profile.givenName === "string" ? profile.givenName.trim() : "";
|
|
1664
|
+
const familyName = typeof profile.familyName === "string" ? profile.familyName.trim() : "";
|
|
1665
|
+
const joined = familyName ? `${givenName} ${familyName}` : givenName;
|
|
1666
|
+
const name = joined || "Owner";
|
|
1569
1667
|
const role = profile.role ? ` (${profile.role})` : "";
|
|
1570
1668
|
const tz = profile.timezone ? ` \u2014 ${profile.timezone}` : "";
|
|
1571
1669
|
const locale = profile.locale ? `, ${profile.locale}` : "";
|
|
@@ -3074,6 +3172,8 @@ export {
|
|
|
3074
3172
|
autoLabelSession,
|
|
3075
3173
|
renameConversation,
|
|
3076
3174
|
getUserTimezone,
|
|
3175
|
+
loadAdminUserName,
|
|
3176
|
+
writeAdminUserAndPerson,
|
|
3077
3177
|
loadUserProfile,
|
|
3078
3178
|
loadSessionContext,
|
|
3079
3179
|
loadOnboardingStep,
|
|
@@ -63,7 +63,7 @@ import {
|
|
|
63
63
|
teeProcStderrToStreamLog,
|
|
64
64
|
validateSession,
|
|
65
65
|
writeReflectionPreferences
|
|
66
|
-
} from "./chunk-
|
|
66
|
+
} from "./chunk-2HBD6IRL.js";
|
|
67
67
|
|
|
68
68
|
// ../lib/models/dist/index.js
|
|
69
69
|
var require_dist = __commonJS({
|
|
@@ -4987,6 +4987,7 @@ var ADMIN_CORE_TOOLS = [
|
|
|
4987
4987
|
"mcp__admin__admin-add",
|
|
4988
4988
|
"mcp__admin__admin-remove",
|
|
4989
4989
|
"mcp__admin__admin-list",
|
|
4990
|
+
"mcp__admin__admin-update-pin",
|
|
4990
4991
|
"mcp__admin__anthropic-setup",
|
|
4991
4992
|
"mcp__admin__api-key-store",
|
|
4992
4993
|
"mcp__admin__api-key-verify",
|
|
@@ -16,8 +16,8 @@ import {
|
|
|
16
16
|
sanitizeClientCorrId,
|
|
17
17
|
streamActionEvents,
|
|
18
18
|
vncLog
|
|
19
|
-
} from "./chunk-
|
|
20
|
-
import "./chunk-
|
|
19
|
+
} from "./chunk-PIMJJCOQ.js";
|
|
20
|
+
import "./chunk-2HBD6IRL.js";
|
|
21
21
|
|
|
22
22
|
// server/edge.ts
|
|
23
23
|
import { createServer, request as httpRequest } from "http";
|