@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.
Files changed (38) hide show
  1. package/package.json +1 -1
  2. package/payload/platform/plugins/admin/hooks/__tests__/archive-ingest-gate.test.sh +166 -0
  3. package/payload/platform/plugins/admin/hooks/archive-ingest-gate.sh +147 -0
  4. package/payload/platform/plugins/linkedin-import/skills/linkedin-import/SKILL.md +2 -0
  5. package/payload/platform/plugins/memory/mcp/dist/index.js +2 -2
  6. package/payload/platform/plugins/memory/mcp/dist/index.js.map +1 -1
  7. package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-parse.d.ts +2 -1
  8. package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-parse.d.ts.map +1 -1
  9. package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-parse.js.map +1 -1
  10. package/payload/platform/plugins/whatsapp-import/PLUGIN.md +4 -0
  11. package/payload/platform/plugins/whatsapp-import/lib/dist/parse-export.d.ts +8 -2
  12. package/payload/platform/plugins/whatsapp-import/lib/dist/parse-export.d.ts.map +1 -1
  13. package/payload/platform/plugins/whatsapp-import/lib/dist/parse-export.js +66 -15
  14. package/payload/platform/plugins/whatsapp-import/lib/dist/parse-export.js.map +1 -1
  15. package/payload/platform/plugins/whatsapp-import/lib/src/__tests__/parse-export.test.ts +175 -0
  16. package/payload/platform/plugins/whatsapp-import/lib/src/parse-export.ts +78 -17
  17. package/payload/platform/plugins/whatsapp-import/skills/whatsapp-import/SKILL.md +2 -0
  18. package/payload/platform/plugins/whatsapp-import/skills/whatsapp-import/references/export-parse.md +8 -6
  19. package/payload/platform/scripts/seed-neo4j.sh +43 -20
  20. package/payload/platform/templates/specialists/agents/database-operator.md +2 -0
  21. package/payload/server/public/assets/{Checkbox-DHsoNPeM.js → Checkbox-BruL6MSR.js} +1 -1
  22. package/payload/server/public/assets/{admin-DEhQ1wNO.js → admin-D8wbpnrW.js} +7 -7
  23. package/payload/server/public/assets/data-BhrQjgR5.js +1 -0
  24. package/payload/server/public/assets/graph-Jj7seS-w.js +1 -0
  25. package/payload/server/public/assets/{jsx-runtime-lOmSwjvd.css → jsx-runtime-foO6ZMix.css} +1 -1
  26. package/payload/server/public/assets/{page-DU8F3OGU.js → page-DIG7s5Jp.js} +1 -1
  27. package/payload/server/public/assets/{page-BuoQU1c6.js → page-sZb3wcOM.js} +1 -1
  28. package/payload/server/public/assets/{public-Bn-gEWOv.js → public-CfjzDdUe.js} +1 -1
  29. package/payload/server/public/assets/{share-2-0IDKUUq9.js → share-2-BndjMKeG.js} +1 -1
  30. package/payload/server/public/assets/{useVoiceRecorder-B1S_t3Hq.js → useVoiceRecorder-D_8P7xJU.js} +1 -1
  31. package/payload/server/public/data.html +5 -5
  32. package/payload/server/public/graph.html +6 -6
  33. package/payload/server/public/index.html +8 -8
  34. package/payload/server/public/public.html +5 -5
  35. package/payload/server/server.js +77 -119
  36. package/payload/server/public/assets/data-bIkywng-.js +0 -1
  37. package/payload/server/public/assets/graph-DwzwJvlu.js +0 -1
  38. /package/payload/server/public/assets/{jsx-runtime-Br2bU3EJ.js → jsx-runtime-DJER3a7U.js} +0 -0
@@ -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 neo4j4 from "neo4j-driver";
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 LIMIT2 = 50;
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 app32 = new Hono();
11835
- app32.get("/", requireAdminSession, async (c) => {
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, LIMIT2);
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: neo4j4.int(LIMIT2) }
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 = app32;
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 app33 = new Hono();
12050
- app33.post("/", requireAdminSession, async (c) => {
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 = app33;
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 app34 = new Hono();
12138
- app34.get("/", requireAdminSession, async (c) => {
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 = app34;
12138
+ var sidebar_artefact_content_default = app33;
12180
12139
 
12181
12140
  // server/routes/admin/index.ts
12182
- var app35 = new Hono();
12183
- app35.route("/session", session_default2);
12184
- app35.route("/chat", chat_default2);
12185
- app35.route("/compact", compact_default);
12186
- app35.route("/logs", logs_default);
12187
- app35.route("/claude-info", claude_info_default);
12188
- app35.route("/attachment", attachment_default);
12189
- app35.route("/agents", agents_default);
12190
- app35.route("/sessions", sessions_default);
12191
- app35.route("/browser", browser_default);
12192
- app35.route("/device-browser", device_browser_default);
12193
- app35.route("/events", events_default);
12194
- app35.route("/cloudflare", cloudflare_default);
12195
- app35.route("/files", files_default);
12196
- app35.route("/graph-search", graph_search_default);
12197
- app35.route("/graph-subgraph", graph_subgraph_default);
12198
- app35.route("/graph-delete", graph_delete_default);
12199
- app35.route("/graph-restore", graph_restore_default);
12200
- app35.route("/graph-labels-in-graph", graph_labels_in_graph_default);
12201
- app35.route("/graph-default-view", graph_default_view_default);
12202
- app35.route("/file-attach", file_attach_default);
12203
- app35.route("/adherence", adherence_default);
12204
- app35.route("/sidebar-projects", sidebar_projects_default);
12205
- app35.route("/sidebar-artefacts", sidebar_artefacts_default);
12206
- app35.route("/sidebar-artefact-save", sidebar_artefact_save_default);
12207
- app35.route("/sidebar-artefact-content", sidebar_artefact_content_default);
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 app36 = new Hono();
12363
- app36.use("*", clientIpMiddleware);
12364
- app36.use("*", async (c, next) => {
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
- app36.use("*", async (c, next) => {
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
- app36.post("/__remote-auth/login", async (c) => {
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
- app36.get("/__remote-auth/logout", (c) => {
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
- app36.post("/__remote-auth/change-password", async (c) => {
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
- app36.get("/__remote-auth/setup", (c) => {
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
- app36.post("/__remote-auth/set-initial-password", async (c) => {
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
- app36.get("/api/remote-auth/status", (c) => {
12531
+ app35.get("/api/remote-auth/status", (c) => {
12574
12532
  return c.json({ configured: isRemoteAuthConfigured() });
12575
12533
  });
12576
- app36.post("/api/remote-auth/set-password", async (c) => {
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
- app36.route("/api/_client-error", client_error_default);
12564
+ app35.route("/api/_client-error", client_error_default);
12607
12565
  console.log("[client-error-route] mounted");
12608
- app36.use("*", async (c, next) => {
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
- app36.route("/api/health", health_default);
12642
- app36.route("/api/session", session_default);
12643
- app36.route("/api/chat", chat_default);
12644
- app36.route("/api/group", group_default);
12645
- app36.route("/api/access", access_default);
12646
- app36.route("/api/telegram", telegram_default);
12647
- app36.route("/api/whatsapp", whatsapp_default);
12648
- app36.route("/api/onboarding", onboarding_default);
12649
- app36.route("/api/admin", admin_default);
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
- app36.get("/agent-assets/:slug/:filename", (c) => {
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
- app36.get("/generated/:filename", (c) => {
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, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
12861
12819
  }
12862
- app36.get("/", (c) => {
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
- app36.get("/public", (c) => {
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
- app36.get("/chat", (c) => {
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
- app36.use("/vnc-viewer.html", logViewerFetch);
12895
- app36.use("/vnc-popout.html", logViewerFetch);
12896
- app36.get("/vnc-popout.html", (c) => {
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
- app36.post("/api/vnc/client-event", async (c) => {
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
- app36.get("/g/:slug", (c) => {
12888
+ app35.get("/g/:slug", (c) => {
12931
12889
  return c.html(brandedPublicHtml());
12932
12890
  });
12933
- app36.get("/graph", (c) => {
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
- app36.get("/data", (c) => {
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
- app36.get("/:slug", async (c, next) => {
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
- app36.use("/*", serveStatic({ root: "./public" }));
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: app36.fetch, port, hostname });
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 app36.routes ?? []) {
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,{}));