@rubytech/create-maxy 1.0.651 → 1.0.652
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 +115 -6
- package/dist/pinned-binaries.js +43 -0
- package/package.json +1 -1
- package/payload/platform/lib/graph-trash/dist/index.d.ts +91 -0
- package/payload/platform/lib/graph-trash/dist/index.d.ts.map +1 -0
- package/payload/platform/lib/graph-trash/dist/index.js +238 -0
- package/payload/platform/lib/graph-trash/dist/index.js.map +1 -0
- package/payload/platform/lib/graph-trash/src/index.ts +360 -0
- package/payload/platform/lib/graph-trash/tsconfig.json +8 -0
- package/payload/platform/neo4j/schema.cypher +19 -0
- package/payload/platform/package.json +2 -2
- package/payload/platform/plugins/contacts/mcp/dist/index.js +9 -4
- package/payload/platform/plugins/contacts/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/contacts/mcp/dist/tools/contact-delete.d.ts +16 -1
- package/payload/platform/plugins/contacts/mcp/dist/tools/contact-delete.d.ts.map +1 -1
- package/payload/platform/plugins/contacts/mcp/dist/tools/contact-delete.js +23 -10
- package/payload/platform/plugins/contacts/mcp/dist/tools/contact-delete.js.map +1 -1
- package/payload/platform/plugins/contacts/mcp/dist/tools/contact-list.d.ts.map +1 -1
- package/payload/platform/plugins/contacts/mcp/dist/tools/contact-list.js +2 -1
- package/payload/platform/plugins/contacts/mcp/dist/tools/contact-list.js.map +1 -1
- package/payload/platform/plugins/contacts/mcp/dist/tools/contact-lookup.d.ts.map +1 -1
- package/payload/platform/plugins/contacts/mcp/dist/tools/contact-lookup.js +8 -4
- package/payload/platform/plugins/contacts/mcp/dist/tools/contact-lookup.js.map +1 -1
- package/payload/platform/plugins/docs/references/deployment.md +1 -1
- package/payload/platform/plugins/docs/references/troubleshooting.md +27 -0
- package/payload/platform/plugins/memory/PLUGIN.md +4 -2
- package/payload/platform/plugins/memory/mcp/dist/index.js +92 -28
- package/payload/platform/plugins/memory/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-delete.d.ts +30 -15
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-delete.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-delete.js +46 -84
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-delete.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-empty-trash.d.ts +22 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-empty-trash.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-empty-trash.js +36 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-empty-trash.js.map +1 -0
- 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 +16 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-list-attachments.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-list-attachments.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-list-attachments.js +42 -3
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-list-attachments.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-restore.d.ts +24 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-restore.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-restore.js +40 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-restore.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-search.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-search.js +35 -10
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-search.js.map +1 -1
- package/payload/platform/plugins/memory/references/graph-primitives.md +49 -3
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.js +4 -0
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.js.map +1 -1
- package/payload/platform/scripts/lib/resolve-account-dir.sh +166 -0
- package/payload/platform/scripts/seed-neo4j.sh +7 -11
- package/payload/platform/templates/systemd/maxy-ttyd.service +6 -1
- package/payload/server/public/assets/{admin-S2KHPNe4.js → admin-DQxieG3v.js} +1 -1
- package/payload/server/public/assets/data-CAKMrPTQ.js +1 -0
- package/payload/server/public/assets/{file-CRrDfnO1.js → file-dBmvpAuH.js} +1 -1
- package/payload/server/public/assets/{graph-CSBMZGGe.js → graph-3snSy3WW.js} +2 -2
- package/payload/server/public/assets/{house-D1CBraxB.js → house-IMEjNkQf.js} +1 -1
- package/payload/server/public/assets/{jsx-runtime-CZtLX8NN.css → jsx-runtime-BJhXEiL3.css} +1 -1
- package/payload/server/public/assets/{public-ukz9-gSe.js → public-b43rEAhq.js} +1 -1
- package/payload/server/public/assets/{share-2-DkF8neDM.js → share-2-ARoCxH5K.js} +1 -1
- package/payload/server/public/assets/{trash-2-Dde58AAR.js → trash-2-D_Rm8z21.js} +1 -1
- package/payload/server/public/assets/{useVoiceRecorder-Hz9X6luB.js → useVoiceRecorder-Cw8gxj1L.js} +1 -1
- package/payload/server/public/assets/x-CFPIrGuL.js +1 -0
- package/payload/server/public/data.html +7 -7
- 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 +19 -0
- package/payload/server/public/assets/data-BajF3t1i.js +0 -1
- package/payload/server/public/assets/x-D52qhSya.js +0 -1
- /package/payload/server/public/assets/{jsx-runtime-Cb-WunFZ.js → jsx-runtime-CXoJCO3U.js} +0 -0
|
@@ -5,14 +5,14 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
6
|
<title>Data — Maxy</title>
|
|
7
7
|
<link rel="icon" href="/favicon.ico">
|
|
8
|
-
<script type="module" crossorigin src="/assets/data-
|
|
8
|
+
<script type="module" crossorigin src="/assets/data-CAKMrPTQ.js"></script>
|
|
9
9
|
<link rel="modulepreload" crossorigin href="/assets/chunk-DD-I1_y5.js">
|
|
10
|
-
<link rel="modulepreload" crossorigin href="/assets/jsx-runtime-
|
|
11
|
-
<link rel="modulepreload" crossorigin href="/assets/share-2-
|
|
12
|
-
<link rel="modulepreload" crossorigin href="/assets/file-
|
|
13
|
-
<link rel="modulepreload" crossorigin href="/assets/house-
|
|
14
|
-
<link rel="modulepreload" crossorigin href="/assets/trash-2-
|
|
15
|
-
<link rel="stylesheet" crossorigin href="/assets/jsx-runtime-
|
|
10
|
+
<link rel="modulepreload" crossorigin href="/assets/jsx-runtime-CXoJCO3U.js">
|
|
11
|
+
<link rel="modulepreload" crossorigin href="/assets/share-2-ARoCxH5K.js">
|
|
12
|
+
<link rel="modulepreload" crossorigin href="/assets/file-dBmvpAuH.js">
|
|
13
|
+
<link rel="modulepreload" crossorigin href="/assets/house-IMEjNkQf.js">
|
|
14
|
+
<link rel="modulepreload" crossorigin href="/assets/trash-2-D_Rm8z21.js">
|
|
15
|
+
<link rel="stylesheet" crossorigin href="/assets/jsx-runtime-BJhXEiL3.css">
|
|
16
16
|
</head>
|
|
17
17
|
<body>
|
|
18
18
|
<div id="root"></div>
|
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
6
|
<title>Graph — Maxy</title>
|
|
7
7
|
<link rel="icon" href="/favicon.ico">
|
|
8
|
-
<script type="module" crossorigin src="/assets/graph-
|
|
8
|
+
<script type="module" crossorigin src="/assets/graph-3snSy3WW.js"></script>
|
|
9
9
|
<link rel="modulepreload" crossorigin href="/assets/chunk-DD-I1_y5.js">
|
|
10
|
-
<link rel="modulepreload" crossorigin href="/assets/jsx-runtime-
|
|
11
|
-
<link rel="modulepreload" crossorigin href="/assets/share-2-
|
|
12
|
-
<link rel="modulepreload" crossorigin href="/assets/house-
|
|
13
|
-
<link rel="modulepreload" crossorigin href="/assets/x-
|
|
14
|
-
<link rel="stylesheet" crossorigin href="/assets/jsx-runtime-
|
|
10
|
+
<link rel="modulepreload" crossorigin href="/assets/jsx-runtime-CXoJCO3U.js">
|
|
11
|
+
<link rel="modulepreload" crossorigin href="/assets/share-2-ARoCxH5K.js">
|
|
12
|
+
<link rel="modulepreload" crossorigin href="/assets/house-IMEjNkQf.js">
|
|
13
|
+
<link rel="modulepreload" crossorigin href="/assets/x-CFPIrGuL.js">
|
|
14
|
+
<link rel="stylesheet" crossorigin href="/assets/jsx-runtime-BJhXEiL3.css">
|
|
15
15
|
</head>
|
|
16
16
|
<body>
|
|
17
17
|
<div id="root"></div>
|
|
@@ -5,16 +5,16 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
6
|
<title>Maxy</title>
|
|
7
7
|
<link rel="icon" href="/favicon.ico">
|
|
8
|
-
<script type="module" crossorigin src="/assets/admin-
|
|
8
|
+
<script type="module" crossorigin src="/assets/admin-DQxieG3v.js"></script>
|
|
9
9
|
<link rel="modulepreload" crossorigin href="/assets/chunk-DD-I1_y5.js">
|
|
10
|
-
<link rel="modulepreload" crossorigin href="/assets/jsx-runtime-
|
|
10
|
+
<link rel="modulepreload" crossorigin href="/assets/jsx-runtime-CXoJCO3U.js">
|
|
11
11
|
<link rel="modulepreload" crossorigin href="/assets/preload-helper-BEFjQwLd.js">
|
|
12
|
-
<link rel="modulepreload" crossorigin href="/assets/trash-2-
|
|
13
|
-
<link rel="modulepreload" crossorigin href="/assets/useVoiceRecorder-
|
|
14
|
-
<link rel="modulepreload" crossorigin href="/assets/share-2-
|
|
15
|
-
<link rel="modulepreload" crossorigin href="/assets/file-
|
|
16
|
-
<link rel="modulepreload" crossorigin href="/assets/x-
|
|
17
|
-
<link rel="stylesheet" crossorigin href="/assets/jsx-runtime-
|
|
12
|
+
<link rel="modulepreload" crossorigin href="/assets/trash-2-D_Rm8z21.js">
|
|
13
|
+
<link rel="modulepreload" crossorigin href="/assets/useVoiceRecorder-Cw8gxj1L.js">
|
|
14
|
+
<link rel="modulepreload" crossorigin href="/assets/share-2-ARoCxH5K.js">
|
|
15
|
+
<link rel="modulepreload" crossorigin href="/assets/file-dBmvpAuH.js">
|
|
16
|
+
<link rel="modulepreload" crossorigin href="/assets/x-CFPIrGuL.js">
|
|
17
|
+
<link rel="stylesheet" crossorigin href="/assets/jsx-runtime-BJhXEiL3.css">
|
|
18
18
|
<link rel="stylesheet" crossorigin href="/assets/admin-kHJ-D0s7.css">
|
|
19
19
|
<link rel="stylesheet" href="/brand-defaults.css">
|
|
20
20
|
</head>
|
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
6
|
<title>Maxy</title>
|
|
7
7
|
<link rel="icon" href="/favicon.ico">
|
|
8
|
-
<script type="module" crossorigin src="/assets/public-
|
|
8
|
+
<script type="module" crossorigin src="/assets/public-b43rEAhq.js"></script>
|
|
9
9
|
<link rel="modulepreload" crossorigin href="/assets/chunk-DD-I1_y5.js">
|
|
10
|
-
<link rel="modulepreload" crossorigin href="/assets/jsx-runtime-
|
|
10
|
+
<link rel="modulepreload" crossorigin href="/assets/jsx-runtime-CXoJCO3U.js">
|
|
11
11
|
<link rel="modulepreload" crossorigin href="/assets/preload-helper-BEFjQwLd.js">
|
|
12
|
-
<link rel="modulepreload" crossorigin href="/assets/trash-2-
|
|
13
|
-
<link rel="modulepreload" crossorigin href="/assets/useVoiceRecorder-
|
|
14
|
-
<link rel="stylesheet" crossorigin href="/assets/jsx-runtime-
|
|
12
|
+
<link rel="modulepreload" crossorigin href="/assets/trash-2-D_Rm8z21.js">
|
|
13
|
+
<link rel="modulepreload" crossorigin href="/assets/useVoiceRecorder-Cw8gxj1L.js">
|
|
14
|
+
<link rel="stylesheet" crossorigin href="/assets/jsx-runtime-BJhXEiL3.css">
|
|
15
15
|
<link rel="stylesheet" href="/brand-defaults.css">
|
|
16
16
|
</head>
|
|
17
17
|
<body>
|
package/payload/server/server.js
CHANGED
|
@@ -2893,6 +2893,7 @@ var serveStatic = (options = { root: "" }) => {
|
|
|
2893
2893
|
|
|
2894
2894
|
// server/index.ts
|
|
2895
2895
|
import { readFileSync as readFileSync25, existsSync as existsSync24, watchFile } from "fs";
|
|
2896
|
+
import { createConnection as createConnection5 } from "net";
|
|
2896
2897
|
import { resolve as resolve29, join as join13, basename as basename7 } from "path";
|
|
2897
2898
|
import { homedir as homedir5 } from "os";
|
|
2898
2899
|
|
|
@@ -14823,6 +14824,7 @@ app.get("/", async (c) => {
|
|
|
14823
14824
|
}
|
|
14824
14825
|
const claudeAuthenticated = authHealth.status === "ok" || authHealth.status === "expiring";
|
|
14825
14826
|
const vncRunning = await checkPort(6080);
|
|
14827
|
+
const terminalReady = await checkPort(7681, 200);
|
|
14826
14828
|
let apiKeyConfigured = false;
|
|
14827
14829
|
try {
|
|
14828
14830
|
apiKeyConfigured = existsSync11(keyFilePath());
|
|
@@ -14866,6 +14868,7 @@ app.get("/", async (c) => {
|
|
|
14866
14868
|
claude_authenticated: claudeAuthenticated,
|
|
14867
14869
|
...onboardingComplete !== void 0 && { onboarding_complete: onboardingComplete },
|
|
14868
14870
|
vnc_running: vncRunning,
|
|
14871
|
+
terminal_ready: terminalReady,
|
|
14869
14872
|
browser_transport: browserTransport,
|
|
14870
14873
|
auth_status: authHealth.status,
|
|
14871
14874
|
auth_expires_at: authHealth.expiresAt ?? null,
|
|
@@ -20911,6 +20914,22 @@ attachTerminalWsProxy(httpServer, {
|
|
|
20911
20914
|
upstreamPort: 7681
|
|
20912
20915
|
});
|
|
20913
20916
|
console.log(`${BRAND.productName} listening on http://${hostname}:${port}`);
|
|
20917
|
+
setTimeout(() => {
|
|
20918
|
+
const socket = createConnection5(7681, "127.0.0.1");
|
|
20919
|
+
socket.setTimeout(500);
|
|
20920
|
+
socket.once("connect", () => {
|
|
20921
|
+
socket.destroy();
|
|
20922
|
+
console.log("[ttyd] upstream ready on 127.0.0.1:7681");
|
|
20923
|
+
});
|
|
20924
|
+
socket.once("error", (err) => {
|
|
20925
|
+
socket.destroy();
|
|
20926
|
+
console.error(`[ttyd] upstream NOT reachable on 127.0.0.1:7681 \u2014 admin terminal will be unavailable. Check 'sudo systemctl --user status maxy-ttyd' and /usr/local/bin/ttyd. (${err.message})`);
|
|
20927
|
+
});
|
|
20928
|
+
socket.once("timeout", () => {
|
|
20929
|
+
socket.destroy();
|
|
20930
|
+
console.error("[ttyd] upstream NOT reachable on 127.0.0.1:7681 (timeout) \u2014 admin terminal will be unavailable. Check 'sudo systemctl --user status maxy-ttyd'.");
|
|
20931
|
+
});
|
|
20932
|
+
}, 5e3);
|
|
20914
20933
|
var SUBAPP_MANIFEST = [
|
|
20915
20934
|
{ prefix: "/api/health", file: "server/routes/health.ts", subapp: health_default },
|
|
20916
20935
|
{ prefix: "/api/session", file: "server/routes/session.ts", subapp: session_default },
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-DD-I1_y5.js";import{a as t,n,r,t as i}from"./jsx-runtime-Cb-WunFZ.js";import{a,i as o,n as s,o as c,r as l,t as u}from"./share-2-DkF8neDM.js";import{n as d,t as f}from"./file-CRrDfnO1.js";import{t as p}from"./house-D1CBraxB.js";import{t as m}from"./trash-2-Dde58AAR.js";var h=n(`circle-arrow-up`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m16 12-4-4-4 4`,key:`177agl`}],[`path`,{d:`M12 16V8`,key:`1sbj14`}]]),g=n(`folder`,[[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]),_=n(`upload`,[[`path`,{d:`M12 3v12`,key:`1x0j5s`}],[`path`,{d:`m17 8-5-5-5 5`,key:`7q97r8`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}]]),v=r(),y=e(t(),1),b=i();function x(){let[e,t]=(0,y.useState)(null),[n,r]=(0,y.useState)(!1);return(0,y.useEffect)(()=>{try{t(sessionStorage.getItem(`maxy-admin-session-key`))}catch{t(null)}r(!0)},[]),n?e?(0,b.jsxs)(`div`,{className:`data-page`,children:[(0,b.jsxs)(`header`,{className:`data-header`,children:[(0,b.jsxs)(`h1`,{className:`data-title`,children:[(0,b.jsx)(c,{size:18}),` Data`]}),(0,b.jsx)(S,{})]}),(0,b.jsxs)(`main`,{className:`data-main`,children:[(0,b.jsx)(C,{sessionKey:e}),(0,b.jsx)(O,{sessionKey:e})]})]}):(0,b.jsxs)(`div`,{className:`data-page`,children:[(0,b.jsx)(`header`,{className:`data-header`,children:(0,b.jsxs)(`h1`,{className:`data-title`,children:[(0,b.jsx)(c,{size:18}),` Data`]})}),(0,b.jsxs)(`div`,{className:`data-empty`,children:[(0,b.jsx)(`p`,{children:`You are not signed in.`}),(0,b.jsxs)(`p`,{children:[`Open the `,(0,b.jsx)(`a`,{href:`/`,className:`data-link`,children:`main admin page`}),` and log in, then return here.`]})]})]}):(0,b.jsx)(`div`,{className:`data-page`,children:(0,b.jsxs)(`div`,{className:`data-loading`,children:[(0,b.jsx)(a,{size:18,className:`spin`}),` Loading…`]})})}function S(){let[e,t]=(0,y.useState)(!1),n=(0,y.useRef)(null);(0,y.useEffect)(()=>{if(!e)return;let r=e=>{n.current&&(n.current.contains(e.target)||t(!1))},i=e=>{e.key===`Escape`&&t(!1)};return document.addEventListener(`mousedown`,r),document.addEventListener(`keydown`,i),()=>{document.removeEventListener(`mousedown`,r),document.removeEventListener(`keydown`,i)}},[e]);let r=(0,y.useCallback)(()=>{try{sessionStorage.removeItem(`maxy-admin-session-key`)}catch{}window.location.href=`/`},[]);return(0,b.jsxs)(`div`,{className:`chat-burger-wrap`,ref:n,children:[(0,b.jsx)(`button`,{type:`button`,className:`chat-burger`,onClick:()=>t(e=>!e),"aria-label":`Menu`,"aria-haspopup":`true`,"aria-expanded":e,children:(0,b.jsx)(l,{size:20})}),e&&(0,b.jsxs)(`div`,{className:`chat-menu`,children:[(0,b.jsxs)(`button`,{type:`button`,className:`chat-menu-item`,onClick:()=>{t(!1),window.location.href=`/`},children:[(0,b.jsx)(p,{size:14}),` Chat`]}),(0,b.jsxs)(`button`,{type:`button`,className:`chat-menu-item`,onClick:()=>{t(!1),window.location.href=`/graph`},children:[(0,b.jsx)(u,{size:14}),` Graph`]}),(0,b.jsx)(`div`,{className:`chat-menu-divider`}),(0,b.jsxs)(`button`,{type:`button`,className:`chat-menu-item`,onClick:()=>{t(!1),r()},children:[(0,b.jsx)(o,{size:14}),` Log out`]})]})]})}function C({sessionKey:e}){let[t,n]=(0,y.useState)(``),[r,i]=(0,y.useState)(``),[o,c]=(0,y.useState)(null),[l,u]=(0,y.useState)(!1),[d,f]=(0,y.useState)(null);return(0,y.useEffect)(()=>{let e=t.trim();if(!e){i(``),c(null);return}let n=setTimeout(()=>i(e),300);return()=>clearTimeout(n)},[t]),(0,y.useEffect)(()=>{if(!r)return;let t=!1;u(!0),f(null);let n=`/api/admin/graph-search?session_key=${encodeURIComponent(e)}&q=${encodeURIComponent(r)}&limit=20`;return fetch(n).then(async e=>{let t=await e.json().catch(()=>({error:`HTTP ${e.status}`}));if(!e.ok)throw Error(t.error??`HTTP ${e.status}`);return t}).then(e=>{t||c(e.results)}).catch(e=>{t||f(e instanceof Error?e.message:String(e))}).finally(()=>{t||u(!1)}),()=>{t=!0}},[r,e]),(0,b.jsxs)(`section`,{className:`data-panel`,children:[(0,b.jsx)(`h2`,{className:`data-panel-title`,children:`Search`}),(0,b.jsx)(`p`,{className:`data-panel-subtitle`,children:`Find anything in your knowledge base by keyword.`}),(0,b.jsxs)(`div`,{className:`data-search-input`,children:[(0,b.jsx)(s,{size:14}),(0,b.jsx)(`input`,{type:`text`,placeholder:`Search your knowledge…`,value:t,onChange:e=>n(e.target.value),autoFocus:!0,autoComplete:`off`,spellCheck:!1}),l&&(0,b.jsx)(a,{size:14,className:`spin`})]}),d&&(0,b.jsxs)(`div`,{className:`data-error`,children:[`Search failed: `,d]}),o&&!l&&(0,b.jsxs)(`div`,{className:`data-results-meta`,children:[o.length,` result`,o.length===1?``:`s`]}),o&&o.length===0&&!l&&(0,b.jsx)(`div`,{className:`data-empty-results`,children:`No matches. Try a different keyword.`}),o&&o.length>0&&(0,b.jsx)(`ul`,{className:`data-results`,children:o.map(e=>(0,b.jsx)(w,{hit:e},e.nodeId))})]})}function w({hit:e}){let t=E(e.properties),n=D(e.properties),r=T(e.labels),[i,a]=(0,y.useState)(!1),o=n&&n.length>280,s=i||!o?n:n?.slice(0,280)+`…`;return(0,b.jsxs)(`li`,{className:`data-result`,children:[r&&(0,b.jsx)(`div`,{className:`data-result-header`,children:(0,b.jsx)(`span`,{className:`data-result-labels`,children:r})}),t&&(0,b.jsx)(`div`,{className:`data-result-title`,children:t}),n&&(0,b.jsx)(`pre`,{className:`data-result-body`,children:s}),o&&(0,b.jsx)(`button`,{type:`button`,className:`data-result-toggle`,onClick:()=>a(e=>!e),children:i?`Show less`:`Show more`})]})}function T(e){if(e.length===0)return null;let t=e[0].replace(/([a-z])([A-Z])/g,`$1 $2`);return t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()}function E(e){for(let t of[`title`,`name`,`summary`,`headline`]){let n=e[t];if(typeof n==`string`&&n.length>0)return n.length>140?n.slice(0,140)+`…`:n}return null}function D(e){for(let t of[`content`,`summary`,`body`,`description`,`text`]){let n=e[t];if(typeof n==`string`&&n.length>0)return n}return null}function O({sessionKey:e}){let[t,n]=(0,y.useState)(`.`),[r,i]=(0,y.useState)(null),[o,s]=(0,y.useState)([]),[c,l]=(0,y.useState)(!1),[u,p]=(0,y.useState)(null),[v,x]=(0,y.useState)(!1),[S,C]=(0,y.useState)(null),[w,T]=(0,y.useState)(null),[E,D]=(0,y.useState)(null),O=(0,y.useRef)(null),[j,M]=(0,y.useState)(0);(0,y.useEffect)(()=>{let n=!1;l(!0),p(null);let r=`/api/admin/files?session_key=${encodeURIComponent(e)}&path=${encodeURIComponent(t===`.`?``:t)}`;return fetch(r).then(async e=>{let t=await e.json().catch(()=>({error:`HTTP ${e.status}`}));if(!e.ok)throw Error(t.error??`HTTP ${e.status}`);return t}).then(e=>{n||(i(e.entries),s(e.displayPath??[]))}).catch(e=>{n||(i([]),s([]),p(e instanceof Error?e.message:String(e)))}).finally(()=>{n||l(!1)}),()=>{n=!0}},[e,t,j]);let N=(0,y.useCallback)(e=>{n(e)},[]),P=(0,y.useCallback)(()=>{if(t===`.`||t===``)return;let e=t.split(`/`).filter(Boolean);e.pop(),n(e.length===0?`.`:e.join(`/`))},[t]),F=(0,y.useCallback)(n=>{let r=t===`.`?n.name:`${t}/${n.name}`,i=`/api/admin/files/download?session_key=${encodeURIComponent(e)}&path=${encodeURIComponent(r)}`,a=document.createElement(`a`);a.href=i,a.rel=`noopener noreferrer`,document.body.appendChild(a),a.click(),a.remove()},[t,e]),I=(0,y.useCallback)(()=>{O.current?.click()},[]),L=(0,y.useCallback)(async n=>{let r=n.displayName??n.name;if(!window.confirm(`Delete ${r}?`))return;let i=t===`.`?n.name:`${t}/${n.name}`;T(null),D(n.name);try{let t=`/api/admin/files?session_key=${encodeURIComponent(e)}&path=${encodeURIComponent(i)}`,n=await fetch(t,{method:`DELETE`}),r=await n.json().catch(()=>({error:`HTTP ${n.status}`}));if(!n.ok)throw Error(r.error??`HTTP ${n.status}`);M(e=>e+1)}catch(e){T(e instanceof Error?e.message:String(e))}finally{D(null)}},[t,e]),R=(0,y.useCallback)(async t=>{C(null),x(!0);try{let r=new FormData;r.append(`session_key`,e),r.append(`file`,t);let i=await fetch(`/api/admin/files/upload`,{method:`POST`,body:r}),a=await i.json().catch(()=>({error:`HTTP ${i.status}`}));if(!i.ok)throw Error(a.error??`HTTP ${i.status}`);n(a.path.split(`/`).slice(0,-1).join(`/`)||`.`),M(e=>e+1)}catch(e){C(e instanceof Error?e.message:String(e))}finally{x(!1),O.current&&(O.current.value=``)}},[e]);return(0,b.jsxs)(`section`,{className:`data-panel`,children:[(0,b.jsxs)(`div`,{className:`data-panel-heading`,children:[(0,b.jsx)(`h2`,{className:`data-panel-title`,children:`Files`}),(0,b.jsxs)(`div`,{className:`data-file-actions`,children:[(0,b.jsxs)(`button`,{type:`button`,className:`data-btn`,onClick:I,disabled:v,children:[v?(0,b.jsx)(a,{size:14,className:`spin`}):(0,b.jsx)(_,{size:14}),` Upload`]}),(0,b.jsx)(`input`,{type:`file`,ref:O,hidden:!0,onChange:e=>{let t=e.target.files?.[0];t&&R(t)}})]})]}),(0,b.jsxs)(`p`,{className:`data-panel-subtitle`,children:[`Everything under your install's `,(0,b.jsx)(`code`,{children:`data/`}),` directory. Click a folder to open it, a file to download it. Uploads go to `,(0,b.jsx)(`code`,{children:`data/uploads/`}),`.`]}),(0,b.jsxs)(`div`,{className:`data-breadcrumbs`,children:[(0,b.jsx)(`button`,{type:`button`,className:`data-crumb`,onClick:()=>N(`.`),children:`data`}),o.map((e,t)=>{let n=o.slice(0,t+1).map(e=>e.name).join(`/`);return(0,b.jsxs)(`span`,{className:`data-crumb-wrap`,children:[(0,b.jsx)(`span`,{className:`data-crumb-sep`,children:`/`}),(0,b.jsx)(`button`,{type:`button`,className:`data-crumb`,onClick:()=>N(n),title:e.name,children:e.displayName??e.name})]},n)}),t!==`.`&&(0,b.jsxs)(`button`,{type:`button`,className:`data-btn data-btn-ghost data-up-btn`,onClick:P,children:[(0,b.jsx)(h,{size:14}),` Up`]})]}),S&&(0,b.jsxs)(`div`,{className:`data-error`,children:[`Upload failed: `,S]}),w&&(0,b.jsxs)(`div`,{className:`data-error`,children:[`Delete failed: `,w]}),u&&(0,b.jsx)(`div`,{className:`data-error`,children:u}),c&&(0,b.jsxs)(`div`,{className:`data-loading`,children:[(0,b.jsx)(a,{size:14,className:`spin`}),` Loading…`]}),!c&&r&&r.length===0&&!u&&(0,b.jsx)(`div`,{className:`data-empty-results`,children:`Empty directory.`}),!c&&r&&r.length>0&&(0,b.jsx)(`ul`,{className:`data-entries`,children:r.map(e=>{let n=e.displayName??e.name,r=E===e.name;return(0,b.jsx)(`li`,{className:`data-entry`,children:e.kind===`directory`?(0,b.jsxs)(`button`,{type:`button`,className:`data-entry-btn`,onClick:()=>N(t===`.`?e.name:`${t}/${e.name}`),children:[(0,b.jsx)(g,{size:14}),(0,b.jsx)(`span`,{className:`data-entry-name`,title:e.name,children:n})]}):e.kind===`file`?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(`button`,{type:`button`,className:`data-entry-btn`,onClick:()=>F(e),title:`Download ${n}`,children:[(0,b.jsx)(f,{size:14}),(0,b.jsx)(`span`,{className:`data-entry-name`,title:e.name,children:n}),(0,b.jsxs)(`span`,{className:`data-entry-meta`,title:`Modified ${A(e.modifiedAt)}`,children:[k(e.sizeBytes),` · `,A(e.modifiedAt)]}),(0,b.jsx)(d,{size:12,className:`data-entry-download-icon`})]}),(0,b.jsx)(`button`,{type:`button`,className:`data-entry-delete`,onClick:()=>L(e),disabled:r,title:`Delete ${n}`,"aria-label":`Delete ${n}`,children:r?(0,b.jsx)(a,{size:14,className:`spin`}):(0,b.jsx)(m,{size:14})})]}):(0,b.jsxs)(`div`,{className:`data-entry-btn data-entry-disabled`,children:[(0,b.jsx)(f,{size:14}),(0,b.jsx)(`span`,{className:`data-entry-name`,children:n}),(0,b.jsx)(`span`,{className:`data-entry-meta`,children:`special`})]})},e.name)})})]})}function k(e){return e==null?``:e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:e<1024*1024*1024?`${(e/1024/1024).toFixed(1)} MB`:`${(e/1024/1024/1024).toFixed(1)} GB`}function A(e){try{let t=new Date(e);if(isNaN(t.getTime()))return`—`;let n=typeof navigator<`u`?navigator.languages&&navigator.languages.length>0?[...navigator.languages]:[navigator.language]:void 0;return t.toLocaleString(n,{dateStyle:`medium`,timeStyle:`short`})}catch{return`—`}}(0,v.createRoot)(document.getElementById(`root`)).render((0,b.jsx)(x,{}));
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./jsx-runtime-Cb-WunFZ.js";var t=e(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]);export{t};
|
|
File without changes
|