@rubytech/create-maxy 1.0.794 → 1.0.795
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/hooks/__tests__/archive-ingest-gate.test.sh +166 -0
- package/payload/platform/plugins/admin/hooks/archive-ingest-gate.sh +147 -0
- package/payload/platform/plugins/linkedin-import/skills/linkedin-import/SKILL.md +2 -0
- package/payload/platform/plugins/memory/mcp/dist/index.js +2 -2
- package/payload/platform/plugins/memory/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-parse.d.ts +2 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-parse.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-parse.js.map +1 -1
- package/payload/platform/plugins/whatsapp-import/PLUGIN.md +4 -0
- package/payload/platform/plugins/whatsapp-import/lib/dist/parse-export.d.ts +8 -2
- package/payload/platform/plugins/whatsapp-import/lib/dist/parse-export.d.ts.map +1 -1
- package/payload/platform/plugins/whatsapp-import/lib/dist/parse-export.js +66 -15
- package/payload/platform/plugins/whatsapp-import/lib/dist/parse-export.js.map +1 -1
- package/payload/platform/plugins/whatsapp-import/lib/src/__tests__/parse-export.test.ts +175 -0
- package/payload/platform/plugins/whatsapp-import/lib/src/parse-export.ts +78 -17
- package/payload/platform/plugins/whatsapp-import/skills/whatsapp-import/SKILL.md +2 -0
- package/payload/platform/plugins/whatsapp-import/skills/whatsapp-import/references/export-parse.md +8 -6
- package/payload/platform/scripts/seed-neo4j.sh +43 -20
- package/payload/platform/templates/specialists/agents/database-operator.md +2 -0
- package/payload/server/public/assets/{Checkbox-DHsoNPeM.js → Checkbox-BruL6MSR.js} +1 -1
- package/payload/server/public/assets/{admin-DEhQ1wNO.js → admin-D8wbpnrW.js} +7 -7
- package/payload/server/public/assets/data-BhrQjgR5.js +1 -0
- package/payload/server/public/assets/graph-Jj7seS-w.js +1 -0
- package/payload/server/public/assets/{jsx-runtime-lOmSwjvd.css → jsx-runtime-foO6ZMix.css} +1 -1
- package/payload/server/public/assets/{page-DU8F3OGU.js → page-DIG7s5Jp.js} +1 -1
- package/payload/server/public/assets/{page-BuoQU1c6.js → page-sZb3wcOM.js} +1 -1
- package/payload/server/public/assets/{public-Bn-gEWOv.js → public-CfjzDdUe.js} +1 -1
- package/payload/server/public/assets/{share-2-0IDKUUq9.js → share-2-BndjMKeG.js} +1 -1
- package/payload/server/public/assets/{useVoiceRecorder-B1S_t3Hq.js → useVoiceRecorder-D_8P7xJU.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 +77 -119
- package/payload/server/public/assets/data-bIkywng-.js +0 -1
- package/payload/server/public/assets/graph-DwzwJvlu.js +0 -1
- /package/payload/server/public/assets/{jsx-runtime-Br2bU3EJ.js → jsx-runtime-DJER3a7U.js} +0 -0
package/payload/server/server.js
CHANGED
|
@@ -11782,57 +11782,16 @@ app30.get("/", requireAdminSession, async (c) => {
|
|
|
11782
11782
|
});
|
|
11783
11783
|
var adherence_default = app30;
|
|
11784
11784
|
|
|
11785
|
-
// server/routes/admin/sidebar-projects.ts
|
|
11786
|
-
import neo4j3 from "neo4j-driver";
|
|
11787
|
-
var LIMIT = 50;
|
|
11788
|
-
var app31 = new Hono();
|
|
11789
|
-
app31.get("/", requireAdminSession, async (c) => {
|
|
11790
|
-
const sessionKey = c.var.sessionKey;
|
|
11791
|
-
const accountId = getAccountIdForSession(sessionKey);
|
|
11792
|
-
if (!accountId) {
|
|
11793
|
-
return c.json({ error: "Account not found for session" }, 401);
|
|
11794
|
-
}
|
|
11795
|
-
const start = Date.now();
|
|
11796
|
-
const session = getSession();
|
|
11797
|
-
try {
|
|
11798
|
-
const result = await session.run(
|
|
11799
|
-
`MATCH (p:Project { accountId: $accountId })
|
|
11800
|
-
WHERE NOT p:Trashed
|
|
11801
|
-
RETURN p.taskId AS id, elementId(p) AS elementId, p.name AS name, p.updatedAt AS updatedAt
|
|
11802
|
-
ORDER BY p.updatedAt DESC
|
|
11803
|
-
LIMIT $limit`,
|
|
11804
|
-
{ accountId, limit: neo4j3.int(LIMIT) }
|
|
11805
|
-
);
|
|
11806
|
-
const projects = result.records.map((r) => ({
|
|
11807
|
-
id: r.get("id"),
|
|
11808
|
-
elementId: r.get("elementId"),
|
|
11809
|
-
name: r.get("name") ?? "",
|
|
11810
|
-
updatedAt: r.get("updatedAt") ?? ""
|
|
11811
|
-
}));
|
|
11812
|
-
const ms = Date.now() - start;
|
|
11813
|
-
console.log(`[admin/sidebar-projects] account=${accountId} count=${projects.length} ms=${ms}`);
|
|
11814
|
-
return c.json({ projects });
|
|
11815
|
-
} catch (err) {
|
|
11816
|
-
const ms = Date.now() - start;
|
|
11817
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
11818
|
-
console.error(`[admin/sidebar-projects] account=${accountId} error="${message}" ms=${ms}`);
|
|
11819
|
-
return c.json({ error: "Failed to load projects" }, 500);
|
|
11820
|
-
} finally {
|
|
11821
|
-
await session.close();
|
|
11822
|
-
}
|
|
11823
|
-
});
|
|
11824
|
-
var sidebar_projects_default = app31;
|
|
11825
|
-
|
|
11826
11785
|
// server/routes/admin/sidebar-artefacts.ts
|
|
11827
|
-
import
|
|
11786
|
+
import neo4j3 from "neo4j-driver";
|
|
11828
11787
|
import { readFile as readFile5, readdir as readdir3, stat as stat5 } from "fs/promises";
|
|
11829
11788
|
import { resolve as resolve20, relative as relative2, isAbsolute } from "path";
|
|
11830
11789
|
import { existsSync as existsSync19 } from "fs";
|
|
11831
|
-
var
|
|
11790
|
+
var LIMIT = 50;
|
|
11832
11791
|
var TEXT_MIME_PREFIXES = ["text/", "application/json", "application/markdown"];
|
|
11833
11792
|
var ADMIN_AGENT_FILES = ["IDENTITY.md", "SOUL.md", "KNOWLEDGE.md"];
|
|
11834
|
-
var
|
|
11835
|
-
|
|
11793
|
+
var app31 = new Hono();
|
|
11794
|
+
app31.get("/", requireAdminSession, async (c) => {
|
|
11836
11795
|
const sessionKey = c.var.sessionKey;
|
|
11837
11796
|
const accountId = getAccountIdForSession(sessionKey);
|
|
11838
11797
|
if (!accountId) {
|
|
@@ -11847,7 +11806,7 @@ app32.get("/", requireAdminSession, async (c) => {
|
|
|
11847
11806
|
const agents = await fetchAgentTemplateRows(accountDir);
|
|
11848
11807
|
const artefacts = [...docs, ...agents].sort(
|
|
11849
11808
|
(a, b) => (b.updatedAt ?? "").localeCompare(a.updatedAt ?? "")
|
|
11850
|
-
).slice(0,
|
|
11809
|
+
).slice(0, LIMIT);
|
|
11851
11810
|
const ms = Date.now() - start;
|
|
11852
11811
|
console.log(
|
|
11853
11812
|
`[admin/sidebar-artefacts] account=${accountId} count=${artefacts.length} docs=${docs.length} agents=${agents.length} ms=${ms}`
|
|
@@ -11865,7 +11824,7 @@ async function fetchKnowledgeDocs(accountId) {
|
|
|
11865
11824
|
d.attachmentId AS attachmentId, d.encodingFormat AS mimeType
|
|
11866
11825
|
ORDER BY d.updatedAt DESC
|
|
11867
11826
|
LIMIT $limit`,
|
|
11868
|
-
{ accountId, limit:
|
|
11827
|
+
{ accountId, limit: neo4j3.int(LIMIT) }
|
|
11869
11828
|
);
|
|
11870
11829
|
metas = result.records.map((r) => ({
|
|
11871
11830
|
id: r.get("id"),
|
|
@@ -12038,7 +11997,7 @@ function isWithin(target, root) {
|
|
|
12038
11997
|
const rel = relative2(root, target);
|
|
12039
11998
|
return !rel.startsWith("..") && !isAbsolute(rel);
|
|
12040
11999
|
}
|
|
12041
|
-
var sidebar_artefacts_default =
|
|
12000
|
+
var sidebar_artefacts_default = app31;
|
|
12042
12001
|
|
|
12043
12002
|
// server/routes/admin/sidebar-artefact-save.ts
|
|
12044
12003
|
import { mkdir as mkdir4, readdir as readdir4, stat as stat6, writeFile as writeFile5 } from "fs/promises";
|
|
@@ -12046,8 +12005,8 @@ import { resolve as resolve21 } from "path";
|
|
|
12046
12005
|
import { existsSync as existsSync20 } from "fs";
|
|
12047
12006
|
var ADMIN_AGENT_FILES2 = /* @__PURE__ */ new Set(["IDENTITY.md", "SOUL.md", "KNOWLEDGE.md"]);
|
|
12048
12007
|
var UUID_RE4 = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;
|
|
12049
|
-
var
|
|
12050
|
-
|
|
12008
|
+
var app32 = new Hono();
|
|
12009
|
+
app32.post("/", requireAdminSession, async (c) => {
|
|
12051
12010
|
const sessionKey = c.var.sessionKey;
|
|
12052
12011
|
const accountId = getAccountIdForSession(sessionKey);
|
|
12053
12012
|
if (!accountId) return c.json({ error: "Account not found for session" }, 401);
|
|
@@ -12127,15 +12086,15 @@ async function resolveSavePath(id, accountId, accountDir) {
|
|
|
12127
12086
|
function relPath(absPath, root) {
|
|
12128
12087
|
return absPath.startsWith(root) ? absPath.slice(root.length + 1) : absPath;
|
|
12129
12088
|
}
|
|
12130
|
-
var sidebar_artefact_save_default =
|
|
12089
|
+
var sidebar_artefact_save_default = app32;
|
|
12131
12090
|
|
|
12132
12091
|
// server/routes/admin/sidebar-artefact-content.ts
|
|
12133
12092
|
import { readFile as readFile6, readdir as readdir5 } from "fs/promises";
|
|
12134
12093
|
import { existsSync as existsSync21 } from "fs";
|
|
12135
12094
|
import { resolve as resolve22 } from "path";
|
|
12136
12095
|
var UUID_RE5 = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;
|
|
12137
|
-
var
|
|
12138
|
-
|
|
12096
|
+
var app33 = new Hono();
|
|
12097
|
+
app33.get("/", requireAdminSession, async (c) => {
|
|
12139
12098
|
const sessionKey = c.var.sessionKey;
|
|
12140
12099
|
const accountId = getAccountIdForSession(sessionKey);
|
|
12141
12100
|
if (!accountId) return new Response("Unauthorized", { status: 401 });
|
|
@@ -12176,36 +12135,35 @@ app34.get("/", requireAdminSession, async (c) => {
|
|
|
12176
12135
|
}
|
|
12177
12136
|
});
|
|
12178
12137
|
});
|
|
12179
|
-
var sidebar_artefact_content_default =
|
|
12138
|
+
var sidebar_artefact_content_default = app33;
|
|
12180
12139
|
|
|
12181
12140
|
// server/routes/admin/index.ts
|
|
12182
|
-
var
|
|
12183
|
-
|
|
12184
|
-
|
|
12185
|
-
|
|
12186
|
-
|
|
12187
|
-
|
|
12188
|
-
|
|
12189
|
-
|
|
12190
|
-
|
|
12191
|
-
|
|
12192
|
-
|
|
12193
|
-
|
|
12194
|
-
|
|
12195
|
-
|
|
12196
|
-
|
|
12197
|
-
|
|
12198
|
-
|
|
12199
|
-
|
|
12200
|
-
|
|
12201
|
-
|
|
12202
|
-
|
|
12203
|
-
|
|
12204
|
-
|
|
12205
|
-
|
|
12206
|
-
|
|
12207
|
-
|
|
12208
|
-
var admin_default = app35;
|
|
12141
|
+
var app34 = new Hono();
|
|
12142
|
+
app34.route("/session", session_default2);
|
|
12143
|
+
app34.route("/chat", chat_default2);
|
|
12144
|
+
app34.route("/compact", compact_default);
|
|
12145
|
+
app34.route("/logs", logs_default);
|
|
12146
|
+
app34.route("/claude-info", claude_info_default);
|
|
12147
|
+
app34.route("/attachment", attachment_default);
|
|
12148
|
+
app34.route("/agents", agents_default);
|
|
12149
|
+
app34.route("/sessions", sessions_default);
|
|
12150
|
+
app34.route("/browser", browser_default);
|
|
12151
|
+
app34.route("/device-browser", device_browser_default);
|
|
12152
|
+
app34.route("/events", events_default);
|
|
12153
|
+
app34.route("/cloudflare", cloudflare_default);
|
|
12154
|
+
app34.route("/files", files_default);
|
|
12155
|
+
app34.route("/graph-search", graph_search_default);
|
|
12156
|
+
app34.route("/graph-subgraph", graph_subgraph_default);
|
|
12157
|
+
app34.route("/graph-delete", graph_delete_default);
|
|
12158
|
+
app34.route("/graph-restore", graph_restore_default);
|
|
12159
|
+
app34.route("/graph-labels-in-graph", graph_labels_in_graph_default);
|
|
12160
|
+
app34.route("/graph-default-view", graph_default_view_default);
|
|
12161
|
+
app34.route("/file-attach", file_attach_default);
|
|
12162
|
+
app34.route("/adherence", adherence_default);
|
|
12163
|
+
app34.route("/sidebar-artefacts", sidebar_artefacts_default);
|
|
12164
|
+
app34.route("/sidebar-artefact-save", sidebar_artefact_save_default);
|
|
12165
|
+
app34.route("/sidebar-artefact-content", sidebar_artefact_content_default);
|
|
12166
|
+
var admin_default = app34;
|
|
12209
12167
|
|
|
12210
12168
|
// app/lib/graph-health.ts
|
|
12211
12169
|
var HOUR_MS = 60 * 60 * 1e3;
|
|
@@ -12359,9 +12317,9 @@ watchFile(ALIAS_DOMAINS_PATH2, { interval: 2e3 }, () => {
|
|
|
12359
12317
|
function isPublicHost(host) {
|
|
12360
12318
|
return host.startsWith("public.") || aliasDomains.has(host);
|
|
12361
12319
|
}
|
|
12362
|
-
var
|
|
12363
|
-
|
|
12364
|
-
|
|
12320
|
+
var app35 = new Hono();
|
|
12321
|
+
app35.use("*", clientIpMiddleware);
|
|
12322
|
+
app35.use("*", async (c, next) => {
|
|
12365
12323
|
await next();
|
|
12366
12324
|
c.header("X-Content-Type-Options", "nosniff");
|
|
12367
12325
|
c.header("Referrer-Policy", "strict-origin-when-cross-origin");
|
|
@@ -12384,7 +12342,7 @@ var PUBLIC_ALLOWED_PREFIXES = [
|
|
|
12384
12342
|
"/g/"
|
|
12385
12343
|
];
|
|
12386
12344
|
var PUBLIC_ALLOWED_EXACT = ["/favicon.ico"];
|
|
12387
|
-
|
|
12345
|
+
app35.use("*", async (c, next) => {
|
|
12388
12346
|
const host = (c.req.header("host") ?? "").split(":")[0];
|
|
12389
12347
|
if (!isPublicHost(host)) {
|
|
12390
12348
|
await next();
|
|
@@ -12424,7 +12382,7 @@ function resolveRemoteAuthOpts() {
|
|
|
12424
12382
|
return brandLoginOpts;
|
|
12425
12383
|
}
|
|
12426
12384
|
var MAX_LOGIN_BODY = 8 * 1024;
|
|
12427
|
-
|
|
12385
|
+
app35.post("/__remote-auth/login", async (c) => {
|
|
12428
12386
|
const client = clientFrom(c);
|
|
12429
12387
|
const clientIp = client.ip || "unknown";
|
|
12430
12388
|
if (!requestIsTlsTerminated(c)) {
|
|
@@ -12468,7 +12426,7 @@ app36.post("/__remote-auth/login", async (c) => {
|
|
|
12468
12426
|
}
|
|
12469
12427
|
});
|
|
12470
12428
|
});
|
|
12471
|
-
|
|
12429
|
+
app35.get("/__remote-auth/logout", (c) => {
|
|
12472
12430
|
return new Response(null, {
|
|
12473
12431
|
status: 302,
|
|
12474
12432
|
headers: {
|
|
@@ -12478,7 +12436,7 @@ app36.get("/__remote-auth/logout", (c) => {
|
|
|
12478
12436
|
}
|
|
12479
12437
|
});
|
|
12480
12438
|
});
|
|
12481
|
-
|
|
12439
|
+
app35.post("/__remote-auth/change-password", async (c) => {
|
|
12482
12440
|
const client = clientFrom(c);
|
|
12483
12441
|
const clientIp = client.ip || "unknown";
|
|
12484
12442
|
const rateLimited = checkRateLimit(client);
|
|
@@ -12528,13 +12486,13 @@ app36.post("/__remote-auth/change-password", async (c) => {
|
|
|
12528
12486
|
return c.html(renderLoginPage({ ...resolveRemoteAuthOpts(), mode: "change", changeError: "Failed to save password", redirect }), 200);
|
|
12529
12487
|
}
|
|
12530
12488
|
});
|
|
12531
|
-
|
|
12489
|
+
app35.get("/__remote-auth/setup", (c) => {
|
|
12532
12490
|
if (isRemoteAuthConfigured()) {
|
|
12533
12491
|
return c.redirect("/");
|
|
12534
12492
|
}
|
|
12535
12493
|
return c.html(renderLoginPage({ ...resolveRemoteAuthOpts(), mode: "setup" }), 200);
|
|
12536
12494
|
});
|
|
12537
|
-
|
|
12495
|
+
app35.post("/__remote-auth/set-initial-password", async (c) => {
|
|
12538
12496
|
if (isRemoteAuthConfigured()) {
|
|
12539
12497
|
return c.redirect("/");
|
|
12540
12498
|
}
|
|
@@ -12570,10 +12528,10 @@ app36.post("/__remote-auth/set-initial-password", async (c) => {
|
|
|
12570
12528
|
return c.html(renderLoginPage({ ...resolveRemoteAuthOpts(), mode: "setup", setupError: "Failed to save password. Please try again." }), 200);
|
|
12571
12529
|
}
|
|
12572
12530
|
});
|
|
12573
|
-
|
|
12531
|
+
app35.get("/api/remote-auth/status", (c) => {
|
|
12574
12532
|
return c.json({ configured: isRemoteAuthConfigured() });
|
|
12575
12533
|
});
|
|
12576
|
-
|
|
12534
|
+
app35.post("/api/remote-auth/set-password", async (c) => {
|
|
12577
12535
|
let body;
|
|
12578
12536
|
try {
|
|
12579
12537
|
body = await c.req.json();
|
|
@@ -12603,9 +12561,9 @@ app36.post("/api/remote-auth/set-password", async (c) => {
|
|
|
12603
12561
|
return c.json({ error: "Failed to save password" }, 500);
|
|
12604
12562
|
}
|
|
12605
12563
|
});
|
|
12606
|
-
|
|
12564
|
+
app35.route("/api/_client-error", client_error_default);
|
|
12607
12565
|
console.log("[client-error-route] mounted");
|
|
12608
|
-
|
|
12566
|
+
app35.use("*", async (c, next) => {
|
|
12609
12567
|
const host = (c.req.header("host") ?? "").split(":")[0];
|
|
12610
12568
|
const path2 = c.req.path;
|
|
12611
12569
|
if (path2 === "/favicon.ico" || path2.startsWith("/assets/") || path2.startsWith("/brand/")) {
|
|
@@ -12638,15 +12596,15 @@ app36.use("*", async (c, next) => {
|
|
|
12638
12596
|
console.error(`[remote-auth] login required ip=${clientIp} path=${path2} ${disambig}`);
|
|
12639
12597
|
return c.html(renderLoginPage({ ...resolveRemoteAuthOpts(), redirect: path2 }), 200);
|
|
12640
12598
|
});
|
|
12641
|
-
|
|
12642
|
-
|
|
12643
|
-
|
|
12644
|
-
|
|
12645
|
-
|
|
12646
|
-
|
|
12647
|
-
|
|
12648
|
-
|
|
12649
|
-
|
|
12599
|
+
app35.route("/api/health", health_default);
|
|
12600
|
+
app35.route("/api/session", session_default);
|
|
12601
|
+
app35.route("/api/chat", chat_default);
|
|
12602
|
+
app35.route("/api/group", group_default);
|
|
12603
|
+
app35.route("/api/access", access_default);
|
|
12604
|
+
app35.route("/api/telegram", telegram_default);
|
|
12605
|
+
app35.route("/api/whatsapp", whatsapp_default);
|
|
12606
|
+
app35.route("/api/onboarding", onboarding_default);
|
|
12607
|
+
app35.route("/api/admin", admin_default);
|
|
12650
12608
|
var SAFE_SLUG_RE = /^[a-z][a-z0-9-]{2,49}$/;
|
|
12651
12609
|
var SAFE_FILENAME_RE = /^[a-z0-9_][a-z0-9_.-]{0,99}$/i;
|
|
12652
12610
|
var IMAGE_MIME = {
|
|
@@ -12658,7 +12616,7 @@ var IMAGE_MIME = {
|
|
|
12658
12616
|
".svg": "image/svg+xml",
|
|
12659
12617
|
".ico": "image/x-icon"
|
|
12660
12618
|
};
|
|
12661
|
-
|
|
12619
|
+
app35.get("/agent-assets/:slug/:filename", (c) => {
|
|
12662
12620
|
const slug = c.req.param("slug");
|
|
12663
12621
|
const filename = c.req.param("filename");
|
|
12664
12622
|
if (!SAFE_SLUG_RE.test(slug)) {
|
|
@@ -12693,7 +12651,7 @@ app36.get("/agent-assets/:slug/:filename", (c) => {
|
|
|
12693
12651
|
"Cache-Control": "public, max-age=3600"
|
|
12694
12652
|
});
|
|
12695
12653
|
});
|
|
12696
|
-
|
|
12654
|
+
app35.get("/generated/:filename", (c) => {
|
|
12697
12655
|
const filename = c.req.param("filename");
|
|
12698
12656
|
if (!SAFE_FILENAME_RE.test(filename) || filename.includes("..")) {
|
|
12699
12657
|
console.error(`[generated] serve file=${filename} status=403`);
|
|
@@ -12859,7 +12817,7 @@ function brandedPublicHtml(agentSlug) {
|
|
|
12859
12817
|
function escapeHtml(s) {
|
|
12860
12818
|
return s.replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<").replace(/>/g, ">");
|
|
12861
12819
|
}
|
|
12862
|
-
|
|
12820
|
+
app35.get("/", (c) => {
|
|
12863
12821
|
const host = (c.req.header("host") ?? "").split(":")[0];
|
|
12864
12822
|
if (isPublicHost(host)) {
|
|
12865
12823
|
const defaultSlug = resolveDefaultSlug();
|
|
@@ -12867,12 +12825,12 @@ app36.get("/", (c) => {
|
|
|
12867
12825
|
}
|
|
12868
12826
|
return c.html(cachedHtml("index.html"));
|
|
12869
12827
|
});
|
|
12870
|
-
|
|
12828
|
+
app35.get("/public", (c) => {
|
|
12871
12829
|
const host = (c.req.header("host") ?? "").split(":")[0];
|
|
12872
12830
|
if (isPublicHost(host)) return c.text("Not found", 404);
|
|
12873
12831
|
return c.html(cachedHtml("public.html"));
|
|
12874
12832
|
});
|
|
12875
|
-
|
|
12833
|
+
app35.get("/chat", (c) => {
|
|
12876
12834
|
const host = (c.req.header("host") ?? "").split(":")[0];
|
|
12877
12835
|
if (isPublicHost(host)) return c.text("Not found", 404);
|
|
12878
12836
|
return c.html(cachedHtml("public.html"));
|
|
@@ -12891,9 +12849,9 @@ async function logViewerFetch(c, next) {
|
|
|
12891
12849
|
duration_ms: Date.now() - start
|
|
12892
12850
|
});
|
|
12893
12851
|
}
|
|
12894
|
-
|
|
12895
|
-
|
|
12896
|
-
|
|
12852
|
+
app35.use("/vnc-viewer.html", logViewerFetch);
|
|
12853
|
+
app35.use("/vnc-popout.html", logViewerFetch);
|
|
12854
|
+
app35.get("/vnc-popout.html", (c) => {
|
|
12897
12855
|
let html = htmlCache.get("vnc-popout.html");
|
|
12898
12856
|
if (!html) {
|
|
12899
12857
|
html = readFileSync16(resolve23(process.cwd(), "public", "vnc-popout.html"), "utf-8");
|
|
@@ -12906,7 +12864,7 @@ app36.get("/vnc-popout.html", (c) => {
|
|
|
12906
12864
|
}
|
|
12907
12865
|
return c.html(html);
|
|
12908
12866
|
});
|
|
12909
|
-
|
|
12867
|
+
app35.post("/api/vnc/client-event", async (c) => {
|
|
12910
12868
|
let body;
|
|
12911
12869
|
try {
|
|
12912
12870
|
body = await c.req.json();
|
|
@@ -12927,20 +12885,20 @@ app36.post("/api/vnc/client-event", async (c) => {
|
|
|
12927
12885
|
});
|
|
12928
12886
|
return c.json({ ok: true });
|
|
12929
12887
|
});
|
|
12930
|
-
|
|
12888
|
+
app35.get("/g/:slug", (c) => {
|
|
12931
12889
|
return c.html(brandedPublicHtml());
|
|
12932
12890
|
});
|
|
12933
|
-
|
|
12891
|
+
app35.get("/graph", (c) => {
|
|
12934
12892
|
const host = (c.req.header("host") ?? "").split(":")[0];
|
|
12935
12893
|
if (isPublicHost(host)) return c.text("Not found", 404);
|
|
12936
12894
|
return c.html(cachedHtml("graph.html"));
|
|
12937
12895
|
});
|
|
12938
|
-
|
|
12896
|
+
app35.get("/data", (c) => {
|
|
12939
12897
|
const host = (c.req.header("host") ?? "").split(":")[0];
|
|
12940
12898
|
if (isPublicHost(host)) return c.text("Not found", 404);
|
|
12941
12899
|
return c.html(cachedHtml("data.html"));
|
|
12942
12900
|
});
|
|
12943
|
-
|
|
12901
|
+
app35.get("/:slug", async (c, next) => {
|
|
12944
12902
|
const slug = c.req.param("slug");
|
|
12945
12903
|
if (AGENT_SLUG_PATTERN.test(`/${slug}`)) {
|
|
12946
12904
|
const branding = loadBrandingCache(slug);
|
|
@@ -12949,10 +12907,10 @@ app36.get("/:slug", async (c, next) => {
|
|
|
12949
12907
|
}
|
|
12950
12908
|
await next();
|
|
12951
12909
|
});
|
|
12952
|
-
|
|
12910
|
+
app35.use("/*", serveStatic({ root: "./public" }));
|
|
12953
12911
|
var port = parseInt(process.env.MAXY_UI_INTERNAL_PORT ?? process.env.PORT ?? "19199", 10);
|
|
12954
12912
|
var hostname = process.env.HOSTNAME ?? "127.0.0.1";
|
|
12955
|
-
var httpServer = serve({ fetch:
|
|
12913
|
+
var httpServer = serve({ fetch: app35.fetch, port, hostname });
|
|
12956
12914
|
console.log(`${BRAND.productName} listening on http://${hostname}:${port}`);
|
|
12957
12915
|
var SUBAPP_MANIFEST = [
|
|
12958
12916
|
{ prefix: "/api/health", file: "server/routes/health.ts", subapp: health_default },
|
|
@@ -12972,7 +12930,7 @@ for (const m of SUBAPP_MANIFEST) {
|
|
|
12972
12930
|
}
|
|
12973
12931
|
try {
|
|
12974
12932
|
const registered = [];
|
|
12975
|
-
for (const r of
|
|
12933
|
+
for (const r of app35.routes ?? []) {
|
|
12976
12934
|
if (typeof r.path !== "string" || r.path.includes(":") || r.path.includes("*")) continue;
|
|
12977
12935
|
if (AGENT_SLUG_PATTERN.test(r.path)) {
|
|
12978
12936
|
registered.push({ method: (r.method ?? "ALL").toUpperCase(), path: r.path });
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e,t}from"./jsx-runtime-Br2bU3EJ.js";import{t as n}from"./page-DU8F3OGU.js";var r=e(),i=t();(0,r.createRoot)(document.getElementById(`root`)).render((0,i.jsx)(n,{}));
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e,t}from"./jsx-runtime-Br2bU3EJ.js";import{n}from"./page-BuoQU1c6.js";import"./Checkbox-DHsoNPeM.js";var r=e(),i=t();(0,r.createRoot)(document.getElementById(`root`)).render((0,i.jsx)(n,{}));
|
|
File without changes
|