@rubytech/create-realagent 1.0.832 → 1.0.834
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/index.js +131 -9
- package/package.json +1 -1
- package/payload/platform/lib/admins-write/dist/index.d.ts +87 -0
- package/payload/platform/lib/admins-write/dist/index.d.ts.map +1 -0
- package/payload/platform/lib/admins-write/dist/index.js +248 -0
- package/payload/platform/lib/admins-write/dist/index.js.map +1 -0
- package/payload/platform/lib/admins-write/src/index.ts +311 -0
- package/payload/platform/lib/admins-write/tsconfig.json +8 -0
- package/payload/platform/neo4j/migrations/009-conversation-archive-title.ts +197 -0
- package/payload/platform/neo4j/schema.cypher +1 -1
- package/payload/platform/package.json +2 -2
- package/payload/platform/plugins/admin/PLUGIN.md +1 -1
- package/payload/platform/plugins/admin/mcp/dist/index.js +37 -44
- package/payload/platform/plugins/admin/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/docs/references/internals.md +4 -3
- package/payload/platform/plugins/memory/bin/conversation-archive-ingest.mjs +215 -43
- package/payload/platform/plugins/memory/bin/conversation-archive-ingest.sh +7 -2
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/llm-classifier.test.js +75 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/llm-classifier.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.d.ts +16 -10
- package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.js +155 -100
- package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/llm-ranker.d.ts +13 -5
- package/payload/platform/plugins/memory/mcp/dist/lib/llm-ranker.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/llm-ranker.js +53 -59
- package/payload/platform/plugins/memory/mcp/dist/lib/llm-ranker.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest.test.js +9 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.d.ts +24 -7
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.js +47 -11
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.js.map +1 -1
- package/payload/platform/plugins/memory/skills/conversation-archive/SKILL.md +45 -8
- package/payload/platform/scripts/lib/resolve-account-dir.sh +3 -1
- package/payload/platform/scripts/migrate-import.sh +3 -1
- package/payload/platform/scripts/seed-neo4j.sh +13 -3
- package/payload/server/chunk-CRAIGEXY.js +654 -0
- package/payload/server/chunk-GK4WHM3H.js +9961 -0
- package/payload/server/chunk-I2NOLBQA.js +2123 -0
- package/payload/server/chunk-IVTESKFR.js +9961 -0
- package/payload/server/chunk-KD3XP4IK.js +1116 -0
- package/payload/server/chunk-KKGGT5RH.js +654 -0
- package/payload/server/chunk-MRJGG6CS.js +2124 -0
- package/payload/server/chunk-OJZPS4BL.js +367 -0
- package/payload/server/chunk-ZVW5XKPU.js +1116 -0
- package/payload/server/client-pool-FM3YJWV5.js +32 -0
- package/payload/server/client-pool-J5BCVVI2.js +32 -0
- package/payload/server/cloudflare-task-tracker-FSPEJOTH.js +19 -0
- package/payload/server/cloudflare-task-tracker-XCUO4N74.js +19 -0
- package/payload/server/maxy-edge.js +6 -5
- package/payload/server/neo4j-migrations-5AN2U3YO.js +664 -0
- package/payload/server/neo4j-migrations-XP7XDVPX.js +664 -0
- package/payload/server/public/assets/{Checkbox-CTGhpDKq.js → Checkbox-Bq6ORjz2.js} +1 -1
- package/payload/server/public/assets/admin-CstEkw-G.js +352 -0
- package/payload/server/public/assets/data-DwZZ7qbH.js +1 -0
- package/payload/server/public/assets/graph-DceEv42K.js +1 -0
- package/payload/server/public/assets/{jsx-runtime-D4WovFYk.css → jsx-runtime-DidQeNoZ.css} +1 -1
- package/payload/server/public/assets/page-Bpi_jPw6.js +50 -0
- package/payload/server/public/assets/{page-DkBfWy4C.js → page-CFWoVkgV.js} +1 -1
- package/payload/server/public/assets/{public-BdVIVpv8.js → public-BWMwq5Jj.js} +1 -1
- package/payload/server/public/assets/{useAdminFetch-DmHu0oCx.js → useAdminFetch-B93ig7ef.js} +1 -1
- package/payload/server/public/assets/{useVoiceRecorder-CSc_hxjV.js → useVoiceRecorder-Cb0nAtOo.js} +1 -1
- package/payload/server/public/data.html +5 -5
- package/payload/server/public/graph.html +6 -6
- package/payload/server/public/index.html +8 -8
- package/payload/server/public/public.html +5 -5
- package/payload/server/server.js +376 -167
- package/payload/platform/plugins/admin/mcp/dist/lib/review-tools.d.ts +0 -31
- package/payload/platform/plugins/admin/mcp/dist/lib/review-tools.d.ts.map +0 -1
- package/payload/platform/plugins/admin/mcp/dist/lib/review-tools.js +0 -666
- package/payload/platform/plugins/admin/mcp/dist/lib/review-tools.js.map +0 -1
- 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/platform/plugins/memory/mcp/dist/tools/whatsapp-export-insight-pass.d.ts +0 -27
- package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-insight-pass.d.ts.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-insight-pass.js +0 -477
- package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-insight-pass.js.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-insight-write.d.ts +0 -27
- package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-insight-write.d.ts.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-insight-write.js +0 -160
- package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-insight-write.js.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-parse.d.ts +0 -10
- package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-parse.d.ts.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-parse.js +0 -29
- package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-parse.js.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-preview.d.ts +0 -28
- package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-preview.d.ts.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-preview.js +0 -34
- package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-preview.js.map +0 -1
- package/payload/server/public/assets/admin-BNwPsMhJ.js +0 -352
- package/payload/server/public/assets/data-Y77FLKjs.js +0 -1
- package/payload/server/public/assets/graph-N_Bw-8oT.js +0 -1
- package/payload/server/public/assets/page-BKLGP-th.js +0 -50
- /package/payload/server/public/assets/{jsx-runtime-DkaAusaX.js → jsx-runtime-DH5S-MwB.js} +0 -0
|
@@ -8,6 +8,7 @@ import { resolve, join } from "node:path";
|
|
|
8
8
|
import { execFileSync } from "node:child_process";
|
|
9
9
|
import { appendFileSync, cpSync, existsSync, mkdirSync, readdirSync, readFileSync, renameSync, statSync, writeFileSync } from "node:fs";
|
|
10
10
|
import { writeKey, validateKey, hasKey, keyFilePath, deleteKey } from "../../../../lib/anthropic-key/dist/index.js";
|
|
11
|
+
import { writeAdminEntry, removeAdminFromAccount } from "../../../../lib/admins-write/dist/index.js";
|
|
11
12
|
import { deviceUrlBlock } from "../../../../lib/device-url/dist/index.js";
|
|
12
13
|
import { substituteBrandPlaceholders } from "../../../../lib/brand-templating/dist/index.js";
|
|
13
14
|
import { resolveEntitlement } from "../../../../lib/entitlement/dist/index.js";
|
|
@@ -102,7 +103,11 @@ async function readAccountConfig() {
|
|
|
102
103
|
const STAGING_ROOT = resolve(PLATFORM_ROOT, "../premium-plugins");
|
|
103
104
|
const PLUGINS_DIR = resolve(PLATFORM_ROOT, "plugins");
|
|
104
105
|
const CORE_PLUGINS = ["admin", "memory", "docs", "cloudflare", "anthropic"];
|
|
105
|
-
|
|
106
|
+
// users.json lives under CONFIG_DIR (persistent) — see paths.ts comment for
|
|
107
|
+
// the regression that motivated the move. Both platform/ui and this MCP plugin
|
|
108
|
+
// resolve the same file via brand-aware $HOME/<configDir>, so the device-level
|
|
109
|
+
// admin auth store is single-pathed across both processes (Task 904).
|
|
110
|
+
const USERS_FILE = resolve(CONFIG_DIR, "users.json");
|
|
106
111
|
/** Maximum number of admin users allowed per tier. */
|
|
107
112
|
const MAX_ADMINS_BY_TIER = {
|
|
108
113
|
solo: 1,
|
|
@@ -678,42 +683,29 @@ server.tool("admin-add", "Add a new admin user to this account. Creates a device
|
|
|
678
683
|
}
|
|
679
684
|
const pinHash = hashPin(plaintextPin);
|
|
680
685
|
const userId = crypto.randomUUID();
|
|
681
|
-
// Three-store admin auth invariant (Task 850): users.json
|
|
682
|
-
// PIN auth)
|
|
683
|
-
//
|
|
684
|
-
//
|
|
685
|
-
//
|
|
686
|
-
//
|
|
687
|
-
//
|
|
686
|
+
// Three-store admin auth invariant (Task 850 → Task 904): users.json
|
|
687
|
+
// (device-level PIN auth) and account.json admins[] (account-level role)
|
|
688
|
+
// route through the shared `admins-write` helper so the dual write has a
|
|
689
|
+
// single chokepoint. Per-leg `[admins-write]` and legacy `[admin-auth-store]`
|
|
690
|
+
// log lines fire so existing dashboards continue to grep. Neo4j AdminUser
|
|
691
|
+
// (display + graph identity) writes below remain inline because they have
|
|
692
|
+
// no dual-file invariant.
|
|
688
693
|
const userIdShort = userId.slice(0, 8);
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
return { content: [{ type: "text", text: `${TAG} Failed to write users.json: ${
|
|
700
|
-
}
|
|
701
|
-
// 2. Write to account.json (account-level)
|
|
702
|
-
try {
|
|
703
|
-
const config = await readAccountConfig();
|
|
704
|
-
const admins = (config.admins ?? []);
|
|
705
|
-
if (!admins.some(a => a.userId === userId)) {
|
|
706
|
-
admins.push({ userId, role: "admin" });
|
|
707
|
-
config.admins = admins;
|
|
708
|
-
const configPath = join(getAccountDir(), "account.json");
|
|
709
|
-
await writeFile(configPath, JSON.stringify(config, null, 2) + "\n", "utf-8");
|
|
710
|
-
}
|
|
711
|
-
console.error(`[admin-auth-store] action=add userId=${userIdShort} result=ok store=account`);
|
|
694
|
+
const authResult = writeAdminEntry({
|
|
695
|
+
userId,
|
|
696
|
+
pin: pinHash,
|
|
697
|
+
role: "admin",
|
|
698
|
+
usersFile: USERS_FILE,
|
|
699
|
+
accountDir: getAccountDir(),
|
|
700
|
+
caller: "admin-add",
|
|
701
|
+
});
|
|
702
|
+
console.error(`[admin-auth-store] action=add userId=${userIdShort} result=${authResult.usersJsonResult} store=users${authResult.usersError ? ` error=${authResult.usersError}` : ""}`);
|
|
703
|
+
if (authResult.usersJsonResult !== "ok") {
|
|
704
|
+
return { content: [{ type: "text", text: `${TAG} Failed to write users.json: ${authResult.usersError ?? "unknown error"}` }], isError: true };
|
|
712
705
|
}
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
return { content: [{ type: "text", text: `${TAG} users.json updated; account.json write FAILED — manual reconciliation needed: ${errMsg}` }], isError: true };
|
|
706
|
+
console.error(`[admin-auth-store] action=add userId=${userIdShort} result=${authResult.accountJsonResult} store=account${authResult.accountError ? ` error=${authResult.accountError}` : ""}`);
|
|
707
|
+
if (authResult.accountJsonResult === "fail") {
|
|
708
|
+
return { content: [{ type: "text", text: `${TAG} users.json updated; account.json write FAILED — manual reconciliation needed: ${authResult.accountError ?? "unknown error"}` }], isError: true };
|
|
717
709
|
}
|
|
718
710
|
// 3. Write to Neo4j (graph-level): AdminUser + Person + OWNS atomically,
|
|
719
711
|
// plus ADMIN_OF edge to the LocalBusiness for this account.
|
|
@@ -860,15 +852,16 @@ server.tool("admin-remove", "Remove an admin from this account. Removes them fro
|
|
|
860
852
|
}
|
|
861
853
|
}
|
|
862
854
|
catch { /* name lookup is best-effort */ }
|
|
863
|
-
// 1. Remove from account.json
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
855
|
+
// 1. Remove from account.json — single-file write through the shared
|
|
856
|
+
// chokepoint helper. users.json is intentionally untouched (the user may
|
|
857
|
+
// admin other accounts on this device); the helper logs `usersJsonResult=skip`.
|
|
858
|
+
const removeResult = removeAdminFromAccount({
|
|
859
|
+
userId,
|
|
860
|
+
accountDir: getAccountDir(),
|
|
861
|
+
caller: "admin-remove",
|
|
862
|
+
});
|
|
863
|
+
if (removeResult.accountJsonResult === "fail") {
|
|
864
|
+
return { content: [{ type: "text", text: `${TAG} Failed to write account.json: ${removeResult.accountError ?? "unknown error"}` }], isError: true };
|
|
872
865
|
}
|
|
873
866
|
// 2. Delete ADMIN_OF relationship in Neo4j — partial failure is a warning
|
|
874
867
|
let neo4jWarning = "";
|