wiki-viewer 2.1.3 → 2.2.0
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/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-path-routes-manifest.json +1 -0
- package/.next/standalone/.next/build-manifest.json +6 -6
- package/.next/standalone/.next/routes-manifest.json +6 -0
- package/.next/standalone/.next/server/app/_global-error/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/api/agent/activity/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/events/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/files/[...path]/route.js +5 -5
- package/.next/standalone/.next/server/app/api/agent/files/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/fs/file/[...path]/route.js +6 -6
- package/.next/standalone/.next/server/app/api/agent/fs/file/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/fs/ls/[[...path]]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/fs/move/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/fs/search/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/internal/span/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/settings/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/sidecar/[...path]/route.js +7 -6
- package/.next/standalone/.next/server/app/api/agent/sidecar/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/app-proxy/[...path]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/app-proxy/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/assets/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/pdf/save/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/pdf/save/route/build-manifest.json +9 -0
- package/.next/standalone/.next/server/app/api/pdf/save/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/pdf/save/route.js +15 -0
- package/.next/standalone/.next/server/app/api/pdf/save/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/pdf/save/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/pdf/save/route_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/api/share/[token]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/share/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/system/browse/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/system/reveal/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/system/set-root/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/system/workspaces/[id]/open/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/system/workspaces/[id]/refresh/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/system/workspaces/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/system/workspaces/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/upload/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/app/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/backlinks/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/content/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/download/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/file/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/folder/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/git-branches/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/git-checkout/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/git-diff/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/git-file-info/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/git-history/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/git-pull/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/move/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/new-file/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/outlinks/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/page/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/presence/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/search/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/slugs/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/upload/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/watch/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +3 -3
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/page/react-loadable-manifest.json +10 -1
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/s/[token]/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/s/[token]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/s/[token]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/signin/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/signin/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app-paths-manifest.json +1 -0
- package/.next/standalone/.next/server/chunks/0p91_next_dist_esm_build_templates_app-route_0d2jbo5.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ajw6de._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0m6r9ip._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0stkifk._.js → [root-of-the-server]__0oruwos._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ovhccp._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0n-chxk._.js → [root-of-the-server]__0vxex1w._.js} +3 -3
- package/.next/standalone/.next/server/chunks/_079xuln._.js +1 -1
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_pdf_save_route_actions_12o20jg.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{0~w0_katex_dist_katex_mjs_0s4yb1t._.js → 0~w0_katex_dist_katex_mjs_0108j-2._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__10te1ye._.js → [root-of-the-server]__0~9~gct._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_0hpi._s._.js → _0h8pw_0._.js} +3 -3
- package/.next/standalone/.next/server/chunks/ssr/{_026lnd.._.js → _0tz4-ka._.js} +4 -4
- package/.next/standalone/.next/server/chunks/ssr/_0v4uz-4._.js +19 -0
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0ndyy93._.js → node_modules__pnpm_03woi-3._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_057-t6m._.js → node_modules__pnpm_06obnp~._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0cahog3._.js → node_modules__pnpm_079v4lb._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0u.uija._.js → node_modules__pnpm_096dp4k._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_05ans~m._.js → node_modules__pnpm_09aa..z._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_02l_1_8._.js → node_modules__pnpm_0c-vmii._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0cxanql._.js → node_modules__pnpm_0e_mxnq._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_05_oahi._.js → node_modules__pnpm_0eam7nc._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_06-2ia.._.js → node_modules__pnpm_0fh0lz3._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0wiyn6d._.js → node_modules__pnpm_0ii7t29._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0met6sx._.js → node_modules__pnpm_0j.gd4k._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0n_swwn._.js → node_modules__pnpm_0jh4djd._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_04frxp9._.js → node_modules__pnpm_0jw1dbx._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_03rzttw._.js → node_modules__pnpm_0k5bvtj._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0jh8q66._.js → node_modules__pnpm_0kor5xc._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0tr41-t._.js → node_modules__pnpm_0n7wt0r._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0mtrsi0._.js → node_modules__pnpm_0o6ac2x._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0m39f~t._.js → node_modules__pnpm_0qg6jjw._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0eqjo2f._.js → node_modules__pnpm_0s4zdbk._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_086.ow4._.js → node_modules__pnpm_0vefx9o._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0-a_zjq._.js → node_modules__pnpm_0vj6od8._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0ygzt82._.js → node_modules__pnpm_0wrs046._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0iu44jv._.js → node_modules__pnpm_0xr~ucg._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0e09gmf._.js → node_modules__pnpm_109gkpr._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0ma-8l.._.js → node_modules__pnpm_130~3i1._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0s-cj7c._.js → node_modules__pnpm_138ebg3._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0f-yazg._.js → node_modules__pnpm_13c3utk._.js} +1 -1
- package/.next/standalone/.next/server/middleware-build-manifest.js +6 -6
- package/.next/standalone/.next/server/middleware-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/static/chunks/0-p6_utxe5a_8.js +1 -0
- package/.next/standalone/.next/static/chunks/04_l8s7dy454_.js +1 -0
- package/.next/standalone/.next/static/chunks/057l2ju6dh43x.js +31 -0
- package/.next/standalone/.next/static/chunks/06eionk6sdadm.css +1 -0
- package/.next/standalone/.next/static/chunks/0bgyypetjs9~i.css +5 -0
- package/.next/standalone/.next/static/chunks/0cy32os0684dj.js +113 -0
- package/.next/standalone/.next/static/chunks/0ff5z2ti4cs.2.js +1 -0
- package/.next/standalone/.next/static/chunks/0k31ncl7m_j9q.js +5 -0
- package/.next/standalone/.next/static/chunks/0sshdogvg3twu.js +113 -0
- package/.next/standalone/.next/static/chunks/0~m~l6t.25dxo.js +1 -0
- package/.next/standalone/.next/static/chunks/10~nefki4aqgv.js +5 -0
- package/.next/standalone/.next/static/chunks/14~-bgg0b~4bh.js +1 -0
- package/.next/standalone/.next/static/chunks/17op0v548wmg9.js +17 -0
- package/.next/standalone/.next/static/chunks/{turbopack-12~z-mr7b9b50.js → turbopack-1105gjd__15ti.js} +1 -1
- package/.next/standalone/.next/static/media/altText_add.11l4.nysz0z47.svg +3 -0
- package/.next/standalone/.next/static/media/altText_disclaimer.0-fkoyz3r4.vr.svg +3 -0
- package/.next/standalone/.next/static/media/altText_done.09w1jqvk3ga77.svg +3 -0
- package/.next/standalone/.next/static/media/altText_spinner.011~3weg7vxwh.svg +30 -0
- package/.next/standalone/.next/static/media/altText_warning.0uszsbnztiu38.svg +3 -0
- package/.next/standalone/.next/static/media/comment-closeButton.09x_diuuox8.p.svg +3 -0
- package/.next/standalone/.next/static/media/comment-popup-editButton.0ncym9lg9cwyw.svg +5 -0
- package/.next/standalone/.next/static/media/cursor-editorFreeHighlight.089qa-ugkz~ml.svg +6 -0
- package/.next/standalone/.next/static/media/cursor-editorFreeText.13jy27m_lk2jb.svg +3 -0
- package/.next/standalone/.next/static/media/cursor-editorInk.0w~p4njb_q99n.svg +4 -0
- package/.next/standalone/.next/static/media/cursor-editorTextHighlight.0e14z1tamqi61.svg +8 -0
- package/.next/standalone/.next/static/media/editor-toolbar-delete.03wunzr0m9rov.svg +5 -0
- package/.next/standalone/.next/static/media/editor-toolbar-edit.0hg-w4v6gf5-d.svg +3 -0
- package/.next/standalone/.next/static/media/loading-icon.0gtb0.n871aax.gif +0 -0
- package/.next/standalone/.next/static/media/messageBar_closingButton.15rqkmbgrfbfy.svg +3 -0
- package/.next/standalone/.next/static/media/messageBar_info.17crwltyl6qk5.svg +3 -0
- package/.next/standalone/.next/static/media/messageBar_warning.0zri3991i~s-j.svg +3 -0
- package/.next/standalone/.next/static/media/toolbarButton-editorHighlight.0ni3w.c8~58pj.svg +6 -0
- package/.next/standalone/.next/static/media/toolbarButton-menuArrow.0tx16jlj3l~wi.svg +3 -0
- package/.next/standalone/package.json +2 -1
- package/.next/standalone/public/pdfjs/pdf.worker.min.mjs +28 -0
- package/package.json +2 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0k9mili._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0yxauu6._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/src_app_page_tsx_0ss2.w7._.js +0 -19
- package/.next/standalone/.next/static/chunks/02c9264uigqjd.js +0 -1
- package/.next/standalone/.next/static/chunks/0_p-~rp2hak3c.js +0 -113
- package/.next/standalone/.next/static/chunks/0lrkdb9w.6kl1.js +0 -1
- package/.next/standalone/.next/static/chunks/0ocp.6r7w_saw.js +0 -31
- package/.next/standalone/.next/static/chunks/0oy4xayqkedl5.js +0 -113
- package/.next/standalone/.next/static/chunks/0quh-cfcrp2ib.js +0 -5
- package/.next/standalone/.next/static/chunks/0r0fa52s8puxv.js +0 -17
- package/.next/standalone/.next/static/chunks/0sx~65~lg4mgl.css +0 -5
- package/.next/standalone/.next/static/chunks/139g2hzko-flp.js +0 -1
- package/.next/standalone/.next/static/chunks/14_efa7172tp-.js +0 -1
- /package/.next/standalone/.next/static/{czHazDjTGrE8lFhf8IAtQ → 76hSogxTu2NPmJmUsmzXu}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{czHazDjTGrE8lFhf8IAtQ → 76hSogxTu2NPmJmUsmzXu}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{czHazDjTGrE8lFhf8IAtQ → 76hSogxTu2NPmJmUsmzXu}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[583627,e=>{"use strict";var t=e.i(798003),r=e.i(254226);function s(){return(process.env.WIKI_ADMIN_EMAILS??"").split(",").map(e=>e.trim().toLowerCase()).filter(Boolean)}async function n(e,r){if(r){let e=s();if(e.length>0&&e.includes(r.toLowerCase()))return!0}return((await (0,t.readConfig)()).adminUserIds??[]).includes(e)}async function a(){return(await (0,t.readConfig)()).adminUserIds??[]}async function i(e){await (0,t.updateConfig)(t=>{let r=t.adminUserIds??[];return r.includes(e)?t:{...t,adminUserIds:[...r,e]}})}async function o(e){let r=s().length>0,n=!1;if(await (0,t.updateConfig)(t=>{let s=(t.adminUserIds??[]).filter(t=>t!==e);return 0!==s.length||r?{...t,adminUserIds:s}:(n=!0,t)}),n)throw Error("LAST_ADMIN: cannot remove the last admin with no WIKI_ADMIN_EMAILS configured")}async function l(e){if(s().length>0||((await (0,t.readConfig)()).adminUserIds??[]).length>0)return;let r=!1;await (0,t.updateConfig)(t=>(t.adminUserIds??[]).length>0?t:(r=!0,{...t,adminUserIds:[e]})),r&&console.log(`[wiki-viewer] Bootstrap: first user ${e} promoted to admin`)}async function u(e){if("1"===process.env.WIKI_NO_AUTH)return{ok:!0,user:{id:"local",email:"local@localhost",name:"local"}};let t=await (0,r.requireUser)(e);return t.ok?await n(t.user.id,t.user.email)?{ok:!0,user:t.user}:{ok:!1,status:403,code:"ADMIN_REQUIRED"}:{ok:!1,status:401,code:"UNAUTHORIZED"}}e.s(["addAdmin",0,i,"ensureBootstrapAdmin",0,l,"isAdmin",0,n,"listAdmins",0,a,"removeAdmin",0,o,"requireAdmin",0,u])},874533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},812057,(e,t,r)=>{t.exports=e.x("node:util",()=>require("node:util"))},834938,e=>{"use strict";let t;var r=e.i(874533),s=e.i(812057),n=e.i(912714),a=e.i(750227),i=e.i(660526);let o=(0,s.promisify)(r.execFile),l=/[;|&$`<>(){}\n\r\0]/;function u(){return a.default.join(i.default.homedir(),".wiki-viewer","mounts")}async function d(){if(!0!==t)try{await o("sshfs",["--version"]),t=!0}catch{throw Error("sshfs binary not found. Install sshfs + FUSE (e.g. `apt install sshfs`, `brew install macfuse sshfs`) and ensure it is on PATH.")}}async function c(t){var r;let s=a.default.resolve(t),i=!1;try{i=(await (0,n.readFile)("/proc/mounts","utf8")).split("\n").some(e=>{let t=e.split(" ");return t[1]===s&&/fuse/.test(t[2]??"")})}catch{i=!1}return!!i&&(r=s,new Promise(t=>{let s=!1,n=setTimeout(()=>{s||(s=!0,t(!1))},4e3);e.A(687903).then(({readdir:e})=>e(r)).then(()=>{s||(s=!0,clearTimeout(n),t(!0))}).catch(()=>{s||(s=!0,clearTimeout(n),t(!1))})}))}async function p(e){await d(),await (0,n.mkdir)(e.mountpoint,{recursive:!0});let t=function(e){let{target:t,mountpoint:r,port:s,authMethod:n,keyPath:a,readOnly:i}=e,o=t.user?`${t.user}@`:"",l=[`${o}${t.host}:${t.remotePath}`,r];s&&Number.isInteger(s)&&s>0&&s<65536&&l.push("-p",String(s));let u=["reconnect","ServerAliveInterval=15","ServerAliveCountMax=3","compression=yes","cache=yes","kernel_cache","StrictHostKeyChecking=accept-new","BatchMode=yes"];if(i&&u.push("ro"),"keyfile"===n&&a&&(u.push(`IdentityFile=${a}`),u.push("IdentitiesOnly=yes")),"password"===n){let e=u.indexOf("BatchMode=yes");e>=0&&u.splice(e,1),u.push("password_stdin"),u.push("PreferredAuthentications=password,keyboard-interactive"),u.push("PubkeyAuthentication=no"),u.push("NumberOfPasswordPrompts=1")}return e.extraOptions&&u.push(...e.extraOptions),l.push("-o",u.join(",")),l}(e);if(await new Promise((s,n)=>{let a=(0,r.spawn)("sshfs",t,{stdio:["pipe","ignore","pipe"]}),i="",o=setTimeout(()=>{a.kill("SIGKILL"),n(Error("sshfs mount timed out after 25s."))},25e3);a.stderr?.on("data",e=>{i+=e.toString()}),a.on("error",e=>{clearTimeout(o),n(e.message.includes("ENOENT")?Error("sshfs binary not found on PATH."):e)}),a.on("close",e=>{clearTimeout(o),0===e?s():n(Error(`sshfs exited ${e}: ${i.trim()||"mount failed"}`))}),"password"===e.authMethod&&a.stdin?.write((e.password??"")+"\n"),a.stdin?.end()}),!await c(e.mountpoint))throw Error("sshfs reported success but the mount is not live.")}async function h(e){let t=a.default.resolve(e);for(let[e,r]of[["fusermount",["-u","-z",t]],["umount",[t]]])try{await o(e,r);break}catch{}try{await (0,n.rmdir)(t)}catch{}}e.s(["assertSshfsAvailable",0,d,"isMounted",0,c,"isValidKeyPath",0,function(e){return!(!e||l.test(e)||e.includes(".."))&&(e.startsWith("/")||e.startsWith("~/"))},"mountSshfs",0,p,"mountpointFor",0,function(e){return a.default.join(u(),e)},"mountsDir",0,u,"parseSshTarget",0,function(e){let t;if(!e||l.test(e))return null;let r=e.trim(),s=r.indexOf(":");if(s<=0)return null;let n=r.slice(0,s),a=r.slice(s+1);if(!a.startsWith("/")||a.includes(".."))return null;let i=n,o=n.indexOf("@");return o>=0&&(t=n.slice(0,o),i=n.slice(o+1),!t)?null:i&&/^[a-zA-Z0-9.\-]+$/.test(i)&&(!t||/^[a-zA-Z0-9._\-]+$/.test(t))?{user:t,host:i,remotePath:a}:null},"unmountSshfs",0,h])},504445,e=>{"use strict";var t=e.i(750227);let r=globalThis;!r.__wikiRootDir&&process.env.ROOT_DIR&&(r.__wikiRootDir=t.default.resolve(process.env.ROOT_DIR)),e.s(["clearRootDir",0,function(){r.__wikiRootDir=void 0},"getRootDir",0,function(){return r.__wikiRootDir??""},"isRootDirSet",0,function(){return!!r.__wikiRootDir},"setRootDir",0,function(e){r.__wikiRootDir=t.default.resolve(e)}])},660038,e=>{"use strict";var t=e.i(750227),r=e.i(254226),s=e.i(583627),n=e.i(504445),a=e.i(359211);async function i(e){let r;await (0,a.migrateConfigToWorkspaces)();let s=new URL(e.url).searchParams.get("ws")??e.headers.get("x-workspace")??null;if(s)r=await (0,a.getWorkspace)(s)??null;else{let e=await (0,a.listWorkspaces)();if(0===e.length){let e;r=(e=(0,n.getRootDir)())?{id:"ws_default",name:t.default.basename(e)||"workspace",rootDir:e,createdAt:new Date(0).toISOString()}:null}else r=e.slice().sort((e,t)=>{let r=e.lastOpenedAt?new Date(e.lastOpenedAt).getTime():0,s=t.lastOpenedAt?new Date(t.lastOpenedAt).getTime():0;return s!==r?s-r:e.id<t.id?-1:+(e.id>t.id)})[0]}return r?.ssh&&await (0,a.ensureWorkspaceMounted)(r),r}async function o(e,t="read"){if("1"===process.env.WIKI_NO_AUTH){let r=await i(e);return r?"write"===t&&r.readOnly?{ok:!1,status:403,code:"WORKSPACE_READ_ONLY"}:{ok:!0,ws:r,rootDir:r.rootDir,userId:"local",isAdmin:!0}:{ok:!1,status:400,code:"WORKSPACE_REQUIRED"}}let n=await (0,r.requireUser)(e);if(!n.ok)return{ok:!1,status:401,code:"UNAUTHORIZED"};let l=await (0,s.isAdmin)(n.user.id,n.user.email),u=new URL(e.url).searchParams.get("ws")??e.headers.get("x-workspace")??null,d=await i(e);return d?(0,a.userCanAccess)(d,n.user.id,l)?"write"===t&&d.readOnly?{ok:!1,status:403,code:"WORKSPACE_READ_ONLY"}:{ok:!0,ws:d,rootDir:d.rootDir,userId:n.user.id,isAdmin:l}:{ok:!1,status:403,code:"WORKSPACE_FORBIDDEN"}:{ok:!1,status:u?404:400,code:u?"WORKSPACE_NOT_FOUND":"WORKSPACE_REQUIRED"}}async function l(e,t="read"){let r=await i(e);if(!r){let t=new URL(e.url).searchParams.get("ws")??e.headers.get("x-workspace")??null;return{ok:!1,status:t?404:400,code:t?"WORKSPACE_NOT_FOUND":"WORKSPACE_REQUIRED"}}return"write"===t&&r.readOnly?{ok:!1,status:403,code:"WORKSPACE_READ_ONLY"}:{ok:!0,ws:r,rootDir:r.rootDir}}e.s(["resolveWorkspaceForAgent",0,l,"resolveWorkspaceForUser",0,o])},857764,(e,t,r)=>{t.exports=e.x("node:url",()=>require("node:url"))},59639,(e,t,r)=>{t.exports=e.x("node:process",()=>require("node:process"))},462711,651212,316552,e=>{"use strict";var t=e.i(750227);e.s(["minpath",()=>t.default],462711);var r=e.i(59639);e.s(["minproc",()=>r.default],651212);var s=e.i(857764);e.s(["urlToPath",()=>s.fileURLToPath],316552)},794776,e=>{"use strict";let t,r=Number.isFinite(t=parseInt(process.env.AGENT_RATE_LIMIT??"",10))&&t>0?t:60;e.s(["OPS_PER_MINUTE",0,r,"SIDECAR_EVENT_TRIM_SIZE",0,1e3,"SIDECAR_TRIM_EVERY_N_MUTATIONS",0,100])},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},224361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},688947,(e,t,r)=>{t.exports=e.x("stream",()=>require("stream"))},427699,(e,t,r)=>{t.exports=e.x("events",()=>require("events"))},228064,e=>{"use strict";var t=e.i(666680),r=e.i(912714),s=e.i(660526),n=e.i(750227),a=e.i(832852);let i="__registry__",o=new Map;function l(){let e=process.env.HOME??s.default.homedir();return n.default.join(e,".wiki-viewer")}function u(){return n.default.join(l(),"agents.json")}function d(e){return(0,t.createHash)("sha256").update(e,"utf8").digest("hex")}async function c(){try{let e=await (0,r.readFile)(u(),"utf8"),t=JSON.parse(e);return{version:1,agents:Array.isArray(t.agents)?t.agents:[]}}catch{return null}}async function p(e){await (0,r.mkdir)(l(),{recursive:!0});let t=u()+".tmp";await (0,r.writeFile)(t,JSON.stringify(e,null,2),{encoding:"utf8",mode:384});try{await (0,r.chmod)(t,384)}catch{}await (0,r.rename)(t,u())}async function h(){let e=await c();if(e)return e;let t={version:1,agents:[]};return await p(t),t}async function f(e){let r=await c();if(!r)return null;let s=d(e);for(let e of r.agents)if(function(e,r){let s=Buffer.from(e.padEnd(64,"0"),"utf8"),n=Buffer.from(r.padEnd(64,"0"),"utf8");return s.length===n.length&&(0,t.timingSafeEqual)(s,n)&&e.length===r.length}(e.tokenHash,s))return e;return null}async function m(e){await (0,a.withFileMutex)(i,async()=>{let t=await h(),r=t.agents.findIndex(t=>t.id===e.id);r>=0?t.agents[r]=e:t.agents.push(e),await p(t)})}async function w(e){return(0,a.withFileMutex)(i,async()=>{let t=await c();if(!t)return!1;let r=t.agents.length;return t.agents=t.agents.filter(t=>t.id!==e),t.agents.length!==r&&(await p(t),!0)})}async function g(e){Date.now()-(o.get(e)??0)<3e4||await (0,a.withFileMutex)(i,async()=>{let t=await c();if(!t)return;let r=t.agents.find(t=>t.id===e);r&&(r.lastSeen=new Date().toISOString(),o.set(e,Date.now()),await p(t))})}e.s(["addAgent",0,m,"hashToken",0,d,"lookupAgentByToken",0,f,"readRegistry",0,c,"removeAgent",0,w,"updateLastSeen",0,g])},215043,552350,e=>{"use strict";var t=e.i(228064);function r(e,t){return(function(e){let t="^",r=0;for(;r<e.length;)"*"===e[r]&&"*"===e[r+1]?(t+=".*","/"===e[r+=2]&&(t+="(?:.+/)?",r++)):("*"===e[r]?t+="[^/]*":"?"===e[r]?t+="[^/]":t+=e[r].replace(/[.+^${}()|[\]\\]/g,"\\$&"),r++);return new RegExp(t+="$")})(e).test(t)}e.s(["matchGlob",0,r],552350);var s=e.i(254226);async function n(e){let r=await (0,s.getSessionFromRequest)(e);if(r?.user){let e=r.user;return{ok:!0,agent:{id:`user:${e.id}`,displayName:e.name,tokenHash:"",scope:{paths:["**/*"],ops:["read","mutate","delete"]},createdAt:"",lastSeen:""}}}let n=e.headers.get("authorization")??"",a=n.startsWith("Bearer ")?n.slice(7).trim():"";if(!a)return{ok:!1,code:"UNAUTHORIZED",message:"No credentials"};let i=await (0,t.lookupAgentByToken)(a);if(!i)return{ok:!1,code:"UNAUTHORIZED",message:"Unknown or invalid token"};let o=e.headers.get("x-agent-id")??"";return o?o!==i.id?{ok:!1,code:"UNAUTHORIZED",message:"X-Agent-Id does not match token owner"}:((0,t.updateLastSeen)(i.id),{ok:!0,agent:i}):{ok:!1,code:"UNAUTHORIZED",message:"X-Agent-Id header required"}}process.env.AGENT_BEARER_TOKEN&&console.warn("[wiki-viewer] AGENT_BEARER_TOKEN is no longer used; manage agents via the AI Panel."),e.s(["checkAuth",0,n,"enforceScope",0,function(e,t){let{scope:s}=e;return void 0!==s.workspaceId&&void 0!==t.workspaceId&&s.workspaceId!==t.workspaceId?{ok:!1,code:"FORBIDDEN",message:`Agent scope does not cover workspace "${t.workspaceId}" (granted: "${s.workspaceId}")`}:s.ops.includes(t.op)?t.filePath&&!s.paths.some(e=>r(e,t.filePath))?{ok:!1,code:"FORBIDDEN",message:`Agent scope does not cover path "${t.filePath}"`}:{ok:!0}:{ok:!1,code:"FORBIDDEN",message:`Agent scope does not allow "${t.op}"`}},"verifyBy",0,function(e,t){return e.id.startsWith("user:")?!t||"owner"===t||"human"===t||t.startsWith("human:")||t===e.id?{ok:!0}:{ok:!1,code:"FORBIDDEN",message:'User agent must use "human", "owner", or own id in "by" field'}:t!==e.id?{ok:!1,code:"FORBIDDEN",message:`"by" field must equal agent id "${e.id}"`}:{ok:!0}}],215043)},973909,e=>{"use strict";var t=e.i(912714),r=e.i(750227);function s(e,t){return r.default.join(e,".proof",t+".json")}async function n(e,r){let n=s(e,r);try{let e=await (0,t.readFile)(n,"utf-8"),r=JSON.parse(e);if(1!==r.schemaVersion)throw Error(`Sidecar schema version mismatch: expected 1, got ${r.schemaVersion}`);return r}catch(e){if(e instanceof Error&&"code"in e&&"ENOENT"===e.code)return null;throw e}}async function a(e,n,a){let i=s(e,n);await (0,t.mkdir)(r.default.dirname(i),{recursive:!0});let o=i+".tmp";await (0,t.writeFile)(o,JSON.stringify(a,null,2),"utf-8"),await (0,t.rename)(o,i)}async function i(e,n,a){let i=s(e,n),o=s(e,a);try{await (0,t.mkdir)(r.default.dirname(o),{recursive:!0}),await (0,t.rename)(i,o)}catch(e){if("ENOENT"===e.code)return;throw e}}async function o(e,r){let n=s(e,r);try{await (0,t.unlink)(n)}catch(e){if("ENOENT"===e.code)return;throw e}}e.s(["deleteSidecar",0,o,"emptySidecar",0,function(e){let t=new Date().toISOString();return{schemaVersion:1,path:e,revision:0,createdAt:t,updatedAt:t,refMap:{},refAliases:{},comments:[],suggestions:[],archivedSuggestions:[],events:[],nextEventId:1,lastAck:{},fingerprint:"",blockProvenance:{}}},"moveSidecar",0,i,"readSidecar",0,n,"writeSidecar",0,a])},307764,e=>{"use strict";e.s(["emitEvents",0,function(e,t){let r=[];for(let s of t){let t={...s,id:e.nextEventId++};e.events.push(t),r.push(t)}return r},"pollEvents",0,function(e,t,r){return e.events.filter(e=>e.id>t).slice(0,r)},"trimEvents",0,function(e,t){if(e.events.length<=t)return;let r=Object.values(e.lastAck),s=r.length>0?Math.min(...r):1/0,n=e.events.length-t,a=e.events.filter((e,t)=>t>=n||e.id>s);e.events=a}])},850948,e=>{"use strict";function t(e){return e.replace(/&/g,"&").replace(/"/g,""")}e.s(["newSpanId",0,function(){let e=Math.floor(65535*Math.random()).toString(16).padStart(4,"0");return`p${e}`},"revertProofSpan",0,function(e,t){let r=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),s=RegExp(`<proof-span\\b[^>]*\\bid="${r}"[^>]*>[\\s\\S]*?<\\/proof-span>`,"g");return e.replace(s,"")},"wrapAsProofSpan",0,function(e,r){let s,n=(s=[`id="${t(r.spanId)}"`,`origin="${r.origin}"`],r.basis&&s.push(`basis="${t(r.basis)}"`),r.basisDetail&&s.push(`basis-detail="${t(r.basisDetail)}"`),s.push(`by="${t(r.by)}"`),s.push(`at="${t(r.at)}"`),r.inResponseTo&&s.push(`in-response-to="${t(r.inResponseTo)}"`),s.join(" ")),a=e.trim();if(a.startsWith("```")||a.startsWith("~~~")||a.startsWith("<")&&!a.startsWith("<proof-span")||/^[-*_]{3,}\s*$/.test(a))return null;let i=a.split("\n")[0];if(i.includes("|")&&/^\|.*\|/.test(i))return null;let o=a.match(/^(#{1,6})\s+(.+)$/);if(o){let e=o[1],t=o[2].trimEnd();return`${e} <proof-span ${n}>${t}</proof-span>`}return a.startsWith(">")?a.split("\n").map(e=>{let t=e.match(/^(>\s?)(.*)/);if(!t)return e;let r=t[1],s=t[2];return s.trim()?`${r}<proof-span ${n}>${s}</proof-span>`:e}).join("\n"):/^(\s*(?:[-*+]|\d+\.)\s+(?:\[[ xX]\]\s+)?)(.*)/.test(a.split("\n")[0])?a.split("\n").map(e=>{let t=e.match(/^(\s*(?:[-*+]|\d+\.)\s+(?:\[[ xX]\]\s+)?)(.*)/);if(!t)return e;let r=t[1],s=t[2];return s.trim()?`${r}<proof-span ${n}>${s}</proof-span>`:e}).join("\n"):`<proof-span ${n}>${a}</proof-span>`}])},998395,e=>{"use strict";var t=e.i(364564),r=e.i(102095),s=e.i(691091),n=e.i(475331),a=e.i(490301),i=e.i(670943),o=e.i(690324),l=e.i(243133),u=e.i(404870),d=e.i(420180),c=e.i(867883),p=e.i(336708),h=e.i(682278),f=e.i(157569),m=e.i(844146),w=e.i(193695);e.i(105888);var g=e.i(530564),v=e.i(912714),_=e.i(702414),R=e.i(215043),E=e.i(206536),A=e.i(973909),k=e.i(832852),y=e.i(660038),I=e.i(359211);async function O(e,{params:t}){let r=await (0,R.checkAuth)(e);if(!r.ok)return _.NextResponse.json({error:"UNAUTHORIZED"},{status:401});let{path:s}=await t,n=s.join("/");if(s.some(e=>".proof"===e))return _.NextResponse.json({error:"INVALID_PATH",message:"Path must not be under .proof"},{status:400});let a=await (0,y.resolveWorkspaceForAgent)(e);if(!a.ok)return _.NextResponse.json({error:a.code},{status:a.status});let{ws:i,rootDir:o}=a,l=(0,I.safeWorkspacePath)(o,n);if(!l)return _.NextResponse.json({error:"INVALID_PATH",message:"Path traversal rejected"},{status:400});let u=(0,R.enforceScope)(r.agent,{filePath:n,op:"read",workspaceId:i.id});if(!u.ok)return _.NextResponse.json({error:u.code,message:u.message},{status:403});let d=await (0,A.readSidecar)(o,n)??(0,A.emptySidecar)(n);return n.endsWith(".md")||n.endsWith(".markdown")||await (0,k.withFileMutex)(n,async()=>{try{let e=await (0,v.readFile)(l,"utf-8");await (0,E.reconcileTextCommentAnchors)(o,n,e,d)}catch(e){if("ENOENT"!==e.code)throw e}}),_.NextResponse.json(d)}e.s(["GET",0,O,"runtime",0,"nodejs"],206380);var N=e.i(206380);let S=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/agent/sidecar/[...path]/route",pathname:"/api/agent/sidecar/[...path]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/agent/sidecar/[...path]/route.ts",nextConfigOutput:"standalone",userland:N,...{}}),{workAsyncStorage:x,workUnitAsyncStorage:T,serverHooks:D}=S;async function P(e,t,s){s.requestMeta&&(0,n.setRequestMeta)(e,s.requestMeta),S.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/agent/sidecar/[...path]/route";v=v.replace(/\/index$/,"")||"/";let _=await S.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!_)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:R,params:E,nextConfig:A,parsedUrl:k,isDraftMode:y,prerenderManifest:I,routerServerContext:O,isOnDemandRevalidate:N,revalidateOnlyGenerated:x,resolvedPathname:T,clientReferenceManifest:D,serverActionsManifest:P}=_,C=(0,o.normalizeAppPath)(v),b=!!(I.dynamicRoutes[C]||I.routes[T]),U=async()=>((null==O?void 0:O.render404)?await O.render404(e,t,k,!1):t.end("This page could not be found"),null);if(b&&!y){let e=!!I.routes[T],t=I.dynamicRoutes[C];if(t&&!1===t.fallback&&!e){if(A.adapterPath)return await U();throw new w.NoFallbackError}}let $=null;!b||S.isDev||y||($="/index"===($=T)?"/":$);let j=!0===S.isDev||!b,q=b&&!j;P&&D&&(0,i.setManifestsSingleton)({page:v,clientReferenceManifest:D,serverActionsManifest:P});let M=e.method||"GET",W=(0,a.getTracer)(),F=W.getActiveScopeSpan(),H=!!(null==O?void 0:O.isWrappedByNextServer),K=!!(0,n.getRequestMeta)(e,"minimalMode"),B=(0,n.getRequestMeta)(e,"incrementalCache")||await S.getIncrementalCache(e,A,I,K);null==B||B.resetRequestCache(),globalThis.__incrementalCache=B;let L={params:E,previewProps:I.preview,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts},cacheComponents:!!A.cacheComponents,supportsDynamicResponse:j,incrementalCache:B,cacheLifeProfiles:A.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,n)=>S.onRequestError(e,t,s,n,O)},sharedContext:{buildId:R}},z=new l.NodeNextRequest(e),V=new l.NodeNextResponse(t),Z=u.NextRequestAdapter.fromNodeNextRequest(z,(0,u.signalFromNodeResponse)(t));try{let n,i=async e=>S.handle(Z,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=W.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=r.get("next.route");if(s){let t=`${M} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",s),n.updateName(t))}else e.updateName(`${M} ${v}`)}),o=async n=>{var a,o;let l=async({previousCacheEntry:r})=>{try{if(!K&&N&&x&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(n);e.fetchMetrics=L.renderOpts.fetchMetrics;let o=L.renderOpts.pendingWaitUntil;o&&s.waitUntil&&(s.waitUntil(o),o=void 0);let l=L.renderOpts.collectedTags;if(!b)return await (0,p.sendResponse)(z,V,a,L.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(a.headers);l&&(t[m.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,s=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:s}}}}catch(t){throw(null==r?void 0:r.isStale)&&await S.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:N})},!1,O),t}},u=await S.handleResponse({req:e,nextConfig:A,cacheKey:$,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:I,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:x,responseGenerator:l,waitUntil:s.waitUntil,isMinimalMode:K});if(!b)return null;if((null==u||null==(a=u.value)?void 0:a.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(o=u.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});K||t.setHeader("x-nextjs-cache",N?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),y&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return K&&b||d.delete(m.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,f.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(z,V,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};H&&F?await o(F):(n=W.getActiveScopeSpan(),await W.withPropagatedContext(e.headers,()=>W.trace(d.BaseServerSpan.handleRequest,{spanName:`${M} ${v}`,kind:a.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},o),void 0,!H))}catch(t){if(t instanceof w.NoFallbackError||await S.onRequestError(e,t,{routerKind:"App Router",routePath:C,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:N})},!1,O),b)throw t;return await (0,p.sendResponse)(z,V,new Response(null,{status:500})),null}}e.s(["handler",0,P,"patchFetch",0,function(){return(0,s.patchFetch)({workAsyncStorage:x,workUnitAsyncStorage:T})},"routeModule",0,S,"serverHooks",0,D,"workAsyncStorage",0,x,"workUnitAsyncStorage",0,T],998395)},168315,e=>{e.v(t=>Promise.all(["server/chunks/0sag_@better-auth_memory-adapter_dist_index_mjs_0pvj6im._.js"].map(t=>e.l(t))).then(()=>t(862112)))},317691,e=>{e.v(t=>Promise.all(["server/chunks/0dhv_better-auth_dist_adapters_kysely-adapter_index_mjs_0t4t4z8._.js"].map(t=>e.l(t))).then(()=>t(833412)))},580632,e=>{e.v(e=>Promise.resolve().then(()=>e(270406)))},947559,e=>{e.v(t=>Promise.all(["server/chunks/0ugq_@better-auth_kysely-adapter_dist_bun-sqlite-dialect-DzNwOpKv_mjs_0z1z6m4._.js"].map(t=>e.l(t))).then(()=>t(495181)))},715018,e=>{e.v(t=>Promise.all(["server/chunks/0ugq_@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0qqlvhl._.js"].map(t=>e.l(t))).then(()=>t(698370)))},146843,e=>{e.v(t=>Promise.all(["server/chunks/0ugq_@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_0wynrz3._.js"].map(t=>e.l(t))).then(()=>t(143740)))},84040,e=>{e.v(t=>Promise.all(["server/chunks/0p91_next_0h94sj1._.js"].map(t=>e.l(t))).then(()=>t(815068)))},427669,e=>{e.v(e=>Promise.resolve().then(()=>e(177730)))},687903,e=>{e.v(e=>Promise.resolve().then(()=>e(912714)))},754121,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__0d7zxm_._.js","server/chunks/src_lib_search_0ymmp0c._.js"].map(t=>e.l(t))).then(()=>t(437856)))}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0ovhccp._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[583627,e=>{"use strict";var t=e.i(798003),r=e.i(254226);function s(){return(process.env.WIKI_ADMIN_EMAILS??"").split(",").map(e=>e.trim().toLowerCase()).filter(Boolean)}async function n(e,r){if(r){let e=s();if(e.length>0&&e.includes(r.toLowerCase()))return!0}return((await (0,t.readConfig)()).adminUserIds??[]).includes(e)}async function a(){return(await (0,t.readConfig)()).adminUserIds??[]}async function i(e){await (0,t.updateConfig)(t=>{let r=t.adminUserIds??[];return r.includes(e)?t:{...t,adminUserIds:[...r,e]}})}async function o(e){let r=s().length>0,n=!1;if(await (0,t.updateConfig)(t=>{let s=(t.adminUserIds??[]).filter(t=>t!==e);return 0!==s.length||r?{...t,adminUserIds:s}:(n=!0,t)}),n)throw Error("LAST_ADMIN: cannot remove the last admin with no WIKI_ADMIN_EMAILS configured")}async function u(e){if(s().length>0||((await (0,t.readConfig)()).adminUserIds??[]).length>0)return;let r=!1;await (0,t.updateConfig)(t=>(t.adminUserIds??[]).length>0?t:(r=!0,{...t,adminUserIds:[e]})),r&&console.log(`[wiki-viewer] Bootstrap: first user ${e} promoted to admin`)}async function l(e){if("1"===process.env.WIKI_NO_AUTH)return{ok:!0,user:{id:"local",email:"local@localhost",name:"local"}};let t=await (0,r.requireUser)(e);return t.ok?await n(t.user.id,t.user.email)?{ok:!0,user:t.user}:{ok:!1,status:403,code:"ADMIN_REQUIRED"}:{ok:!1,status:401,code:"UNAUTHORIZED"}}e.s(["addAdmin",0,i,"ensureBootstrapAdmin",0,u,"isAdmin",0,n,"listAdmins",0,a,"removeAdmin",0,o,"requireAdmin",0,l])},874533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},812057,(e,t,r)=>{t.exports=e.x("node:util",()=>require("node:util"))},834938,e=>{"use strict";let t;var r=e.i(874533),s=e.i(812057),n=e.i(912714),a=e.i(750227),i=e.i(660526);let o=(0,s.promisify)(r.execFile),u=/[;|&$`<>(){}\n\r\0]/;function l(){return a.default.join(i.default.homedir(),".wiki-viewer","mounts")}async function c(){if(!0!==t)try{await o("sshfs",["--version"]),t=!0}catch{throw Error("sshfs binary not found. Install sshfs + FUSE (e.g. `apt install sshfs`, `brew install macfuse sshfs`) and ensure it is on PATH.")}}async function d(t){var r;let s=a.default.resolve(t),i=!1;try{i=(await (0,n.readFile)("/proc/mounts","utf8")).split("\n").some(e=>{let t=e.split(" ");return t[1]===s&&/fuse/.test(t[2]??"")})}catch{i=!1}return!!i&&(r=s,new Promise(t=>{let s=!1,n=setTimeout(()=>{s||(s=!0,t(!1))},4e3);e.A(687903).then(({readdir:e})=>e(r)).then(()=>{s||(s=!0,clearTimeout(n),t(!0))}).catch(()=>{s||(s=!0,clearTimeout(n),t(!1))})}))}async function f(e){await c(),await (0,n.mkdir)(e.mountpoint,{recursive:!0});let t=function(e){let{target:t,mountpoint:r,port:s,authMethod:n,keyPath:a,readOnly:i}=e,o=t.user?`${t.user}@`:"",u=[`${o}${t.host}:${t.remotePath}`,r];s&&Number.isInteger(s)&&s>0&&s<65536&&u.push("-p",String(s));let l=["reconnect","ServerAliveInterval=15","ServerAliveCountMax=3","compression=yes","cache=yes","kernel_cache","StrictHostKeyChecking=accept-new","BatchMode=yes"];if(i&&l.push("ro"),"keyfile"===n&&a&&(l.push(`IdentityFile=${a}`),l.push("IdentitiesOnly=yes")),"password"===n){let e=l.indexOf("BatchMode=yes");e>=0&&l.splice(e,1),l.push("password_stdin"),l.push("PreferredAuthentications=password,keyboard-interactive"),l.push("PubkeyAuthentication=no"),l.push("NumberOfPasswordPrompts=1")}return e.extraOptions&&l.push(...e.extraOptions),u.push("-o",l.join(",")),u}(e);if(await new Promise((s,n)=>{let a=(0,r.spawn)("sshfs",t,{stdio:["pipe","ignore","pipe"]}),i="",o=setTimeout(()=>{a.kill("SIGKILL"),n(Error("sshfs mount timed out after 25s."))},25e3);a.stderr?.on("data",e=>{i+=e.toString()}),a.on("error",e=>{clearTimeout(o),n(e.message.includes("ENOENT")?Error("sshfs binary not found on PATH."):e)}),a.on("close",e=>{clearTimeout(o),0===e?s():n(Error(`sshfs exited ${e}: ${i.trim()||"mount failed"}`))}),"password"===e.authMethod&&a.stdin?.write((e.password??"")+"\n"),a.stdin?.end()}),!await d(e.mountpoint))throw Error("sshfs reported success but the mount is not live.")}async function p(e){let t=a.default.resolve(e);for(let[e,r]of[["fusermount",["-u","-z",t]],["umount",[t]]])try{await o(e,r);break}catch{}try{await (0,n.rmdir)(t)}catch{}}e.s(["assertSshfsAvailable",0,c,"isMounted",0,d,"isValidKeyPath",0,function(e){return!(!e||u.test(e)||e.includes(".."))&&(e.startsWith("/")||e.startsWith("~/"))},"mountSshfs",0,f,"mountpointFor",0,function(e){return a.default.join(l(),e)},"mountsDir",0,l,"parseSshTarget",0,function(e){let t;if(!e||u.test(e))return null;let r=e.trim(),s=r.indexOf(":");if(s<=0)return null;let n=r.slice(0,s),a=r.slice(s+1);if(!a.startsWith("/")||a.includes(".."))return null;let i=n,o=n.indexOf("@");return o>=0&&(t=n.slice(0,o),i=n.slice(o+1),!t)?null:i&&/^[a-zA-Z0-9.\-]+$/.test(i)&&(!t||/^[a-zA-Z0-9._\-]+$/.test(t))?{user:t,host:i,remotePath:a}:null},"unmountSshfs",0,p])},504445,e=>{"use strict";var t=e.i(750227);let r=globalThis;!r.__wikiRootDir&&process.env.ROOT_DIR&&(r.__wikiRootDir=t.default.resolve(process.env.ROOT_DIR)),e.s(["clearRootDir",0,function(){r.__wikiRootDir=void 0},"getRootDir",0,function(){return r.__wikiRootDir??""},"isRootDirSet",0,function(){return!!r.__wikiRootDir},"setRootDir",0,function(e){r.__wikiRootDir=t.default.resolve(e)}])},660038,e=>{"use strict";var t=e.i(750227),r=e.i(254226),s=e.i(583627),n=e.i(504445),a=e.i(359211);async function i(e){let r;await (0,a.migrateConfigToWorkspaces)();let s=new URL(e.url).searchParams.get("ws")??e.headers.get("x-workspace")??null;if(s)r=await (0,a.getWorkspace)(s)??null;else{let e=await (0,a.listWorkspaces)();if(0===e.length){let e;r=(e=(0,n.getRootDir)())?{id:"ws_default",name:t.default.basename(e)||"workspace",rootDir:e,createdAt:new Date(0).toISOString()}:null}else r=e.slice().sort((e,t)=>{let r=e.lastOpenedAt?new Date(e.lastOpenedAt).getTime():0,s=t.lastOpenedAt?new Date(t.lastOpenedAt).getTime():0;return s!==r?s-r:e.id<t.id?-1:+(e.id>t.id)})[0]}return r?.ssh&&await (0,a.ensureWorkspaceMounted)(r),r}async function o(e,t="read"){if("1"===process.env.WIKI_NO_AUTH){let r=await i(e);return r?"write"===t&&r.readOnly?{ok:!1,status:403,code:"WORKSPACE_READ_ONLY"}:{ok:!0,ws:r,rootDir:r.rootDir,userId:"local",isAdmin:!0}:{ok:!1,status:400,code:"WORKSPACE_REQUIRED"}}let n=await (0,r.requireUser)(e);if(!n.ok)return{ok:!1,status:401,code:"UNAUTHORIZED"};let u=await (0,s.isAdmin)(n.user.id,n.user.email),l=new URL(e.url).searchParams.get("ws")??e.headers.get("x-workspace")??null,c=await i(e);return c?(0,a.userCanAccess)(c,n.user.id,u)?"write"===t&&c.readOnly?{ok:!1,status:403,code:"WORKSPACE_READ_ONLY"}:{ok:!0,ws:c,rootDir:c.rootDir,userId:n.user.id,isAdmin:u}:{ok:!1,status:403,code:"WORKSPACE_FORBIDDEN"}:{ok:!1,status:l?404:400,code:l?"WORKSPACE_NOT_FOUND":"WORKSPACE_REQUIRED"}}async function u(e,t="read"){let r=await i(e);if(!r){let t=new URL(e.url).searchParams.get("ws")??e.headers.get("x-workspace")??null;return{ok:!1,status:t?404:400,code:t?"WORKSPACE_NOT_FOUND":"WORKSPACE_REQUIRED"}}return"write"===t&&r.readOnly?{ok:!1,status:403,code:"WORKSPACE_READ_ONLY"}:{ok:!0,ws:r,rootDir:r.rootDir}}e.s(["resolveWorkspaceForAgent",0,u,"resolveWorkspaceForUser",0,o])},719126,e=>{"use strict";var t=e.i(666680),r=e.i(912714),s=e.i(750227);function n(e){let t=e.replace(/\\/g,"/");return".proof"===t||t.startsWith(".proof/")||".git"===t||t.startsWith(".git/")}async function a(e,t){if(!e)return null;let a=s.default.normalize(t);if(a.startsWith("..")||s.default.isAbsolute(a)||n(a))return null;let i=s.default.join(e,a);if(i!==e&&!i.startsWith(e+s.default.sep))return null;try{let t=await (0,r.realpath)(i);if(t!==e&&!t.startsWith(e+s.default.sep))return null}catch{let t=s.default.dirname(i);if(t!==i)try{let n=await (0,r.realpath)(t);if(n!==e&&!n.startsWith(e+s.default.sep))return null}catch{}}return i}let i={".md":"text/markdown; charset=utf-8",".markdown":"text/markdown; charset=utf-8",".txt":"text/plain; charset=utf-8",".json":"application/json; charset=utf-8",".jsonc":"application/json; charset=utf-8",".ts":"text/typescript; charset=utf-8",".tsx":"text/typescript; charset=utf-8",".mts":"text/typescript; charset=utf-8",".js":"text/javascript; charset=utf-8",".jsx":"text/javascript; charset=utf-8",".mjs":"text/javascript; charset=utf-8",".html":"text/html; charset=utf-8",".htm":"text/html; charset=utf-8",".css":"text/css; charset=utf-8",".yaml":"text/yaml; charset=utf-8",".yml":"text/yaml; charset=utf-8",".toml":"text/toml; charset=utf-8",".xml":"application/xml; charset=utf-8",".svg":"image/svg+xml",".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp",".pdf":"application/pdf",".zip":"application/zip",".tar":"application/x-tar",".gz":"application/gzip",".py":"text/x-python; charset=utf-8",".rs":"text/x-rustsrc; charset=utf-8",".go":"text/x-go; charset=utf-8",".sh":"text/x-shellscript; charset=utf-8",".csv":"text/csv; charset=utf-8",".env":"text/plain; charset=utf-8"};async function o(e,t){let s=420;try{let t=await (0,r.stat)(e);s=511&t.mode}catch{}let n=e+".~"+process.pid+"."+Date.now()+".tmp",a=await (0,r.open)(n,"w",s);try{await a.write(t),await a.datasync()}finally{await a.close()}await (0,r.rename)(n,e)}async function u(e,t){let n=s.default.dirname(e);if(t)return await (0,r.mkdir)(n,{recursive:!0}),!0;try{return await (0,r.stat)(n),!0}catch{return!1}}e.s(["atomicWrite",0,o,"ensureParentDir",0,u,"extractShaHex",0,function(e){return e.replace(/^"/,"").replace(/"$/,"").replace(/^sha256:/,"")},"isDeniedRelPath",0,n,"isMarkdown",0,function(e){return e.endsWith(".md")||e.endsWith(".markdown")},"looksLikeBinary",0,function(e){return e.slice(0,Math.min(e.length,8192)).includes(0)},"mimeByExt",0,function(e){return i[s.default.extname(e).toLowerCase()]??"application/octet-stream"},"safeAbsPath",0,a,"sha256ofBuf",0,function(e){return"sha256:"+(0,t.createHash)("sha256").update(e).digest("hex")}])},857764,(e,t,r)=>{t.exports=e.x("node:url",()=>require("node:url"))},59639,(e,t,r)=>{t.exports=e.x("node:process",()=>require("node:process"))},462711,651212,316552,e=>{"use strict";var t=e.i(750227);e.s(["minpath",()=>t.default],462711);var r=e.i(59639);e.s(["minproc",()=>r.default],651212);var s=e.i(857764);e.s(["urlToPath",()=>s.fileURLToPath],316552)},794776,e=>{"use strict";let t,r=Number.isFinite(t=parseInt(process.env.AGENT_RATE_LIMIT??"",10))&&t>0?t:60;e.s(["OPS_PER_MINUTE",0,r,"SIDECAR_EVENT_TRIM_SIZE",0,1e3,"SIDECAR_TRIM_EVERY_N_MUTATIONS",0,100])},889264,e=>{"use strict";let t=globalThis;function r(){return t.__wikiLeaseStore}function s(e,t){return`${e}\u0000${t}`}function n(e,t){let n=r(),a=s(e,t),i=n.leases.get(a);return!!i&&(!(Date.now()>=i.expiresAt)||(n.leases.delete(a),n.generations.set(a,(n.generations.get(a)??0)+1),!1))}t.__wikiLeaseStore||(t.__wikiLeaseStore={leases:new Map,generations:new Map}),e.s(["clearLease",0,function(e,t,n){let a=r(),i=s(e,t),o=a.leases.get(i);o&&o.userId===n&&(a.leases.delete(i),a.generations.set(i,(a.generations.get(i)??0)+1))},"hasActiveLease",0,function(e,t){return n(e,t)},"leaseGeneration",0,function(e,t){let n=s(e,t);return r().generations.get(n)??0},"setLease",0,function(e,t,a,i=9e4){let o=r(),u=s(e,t),l=n(e,t);o.leases.set(u,{userId:a,expiresAt:Date.now()+i}),l||o.generations.set(u,(o.generations.get(u)??0)+1)}])},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},224361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},688947,(e,t,r)=>{t.exports=e.x("stream",()=>require("stream"))},427699,(e,t,r)=>{t.exports=e.x("events",()=>require("events"))},228064,e=>{"use strict";var t=e.i(666680),r=e.i(912714),s=e.i(660526),n=e.i(750227),a=e.i(832852);let i="__registry__",o=new Map;function u(){let e=process.env.HOME??s.default.homedir();return n.default.join(e,".wiki-viewer")}function l(){return n.default.join(u(),"agents.json")}function c(e){return(0,t.createHash)("sha256").update(e,"utf8").digest("hex")}async function d(){try{let e=await (0,r.readFile)(l(),"utf8"),t=JSON.parse(e);return{version:1,agents:Array.isArray(t.agents)?t.agents:[]}}catch{return null}}async function f(e){await (0,r.mkdir)(u(),{recursive:!0});let t=l()+".tmp";await (0,r.writeFile)(t,JSON.stringify(e,null,2),{encoding:"utf8",mode:384});try{await (0,r.chmod)(t,384)}catch{}await (0,r.rename)(t,l())}async function p(){let e=await d();if(e)return e;let t={version:1,agents:[]};return await f(t),t}async function h(e){let r=await d();if(!r)return null;let s=c(e);for(let e of r.agents)if(function(e,r){let s=Buffer.from(e.padEnd(64,"0"),"utf8"),n=Buffer.from(r.padEnd(64,"0"),"utf8");return s.length===n.length&&(0,t.timingSafeEqual)(s,n)&&e.length===r.length}(e.tokenHash,s))return e;return null}async function m(e){await (0,a.withFileMutex)(i,async()=>{let t=await p(),r=t.agents.findIndex(t=>t.id===e.id);r>=0?t.agents[r]=e:t.agents.push(e),await f(t)})}async function w(e){return(0,a.withFileMutex)(i,async()=>{let t=await d();if(!t)return!1;let r=t.agents.length;return t.agents=t.agents.filter(t=>t.id!==e),t.agents.length!==r&&(await f(t),!0)})}async function g(e){Date.now()-(o.get(e)??0)<3e4||await (0,a.withFileMutex)(i,async()=>{let t=await d();if(!t)return;let r=t.agents.find(t=>t.id===e);r&&(r.lastSeen=new Date().toISOString(),o.set(e,Date.now()),await f(t))})}e.s(["addAgent",0,m,"hashToken",0,c,"lookupAgentByToken",0,h,"readRegistry",0,d,"removeAgent",0,w,"updateLastSeen",0,g])},215043,552350,e=>{"use strict";var t=e.i(228064);function r(e,t){return(function(e){let t="^",r=0;for(;r<e.length;)"*"===e[r]&&"*"===e[r+1]?(t+=".*","/"===e[r+=2]&&(t+="(?:.+/)?",r++)):("*"===e[r]?t+="[^/]*":"?"===e[r]?t+="[^/]":t+=e[r].replace(/[.+^${}()|[\]\\]/g,"\\$&"),r++);return new RegExp(t+="$")})(e).test(t)}e.s(["matchGlob",0,r],552350);var s=e.i(254226);async function n(e){let r=await (0,s.getSessionFromRequest)(e);if(r?.user){let e=r.user;return{ok:!0,agent:{id:`user:${e.id}`,displayName:e.name,tokenHash:"",scope:{paths:["**/*"],ops:["read","mutate","delete"]},createdAt:"",lastSeen:""}}}let n=e.headers.get("authorization")??"",a=n.startsWith("Bearer ")?n.slice(7).trim():"";if(!a)return{ok:!1,code:"UNAUTHORIZED",message:"No credentials"};let i=await (0,t.lookupAgentByToken)(a);if(!i)return{ok:!1,code:"UNAUTHORIZED",message:"Unknown or invalid token"};let o=e.headers.get("x-agent-id")??"";return o?o!==i.id?{ok:!1,code:"UNAUTHORIZED",message:"X-Agent-Id does not match token owner"}:((0,t.updateLastSeen)(i.id),{ok:!0,agent:i}):{ok:!1,code:"UNAUTHORIZED",message:"X-Agent-Id header required"}}process.env.AGENT_BEARER_TOKEN&&console.warn("[wiki-viewer] AGENT_BEARER_TOKEN is no longer used; manage agents via the AI Panel."),e.s(["checkAuth",0,n,"enforceScope",0,function(e,t){let{scope:s}=e;return void 0!==s.workspaceId&&void 0!==t.workspaceId&&s.workspaceId!==t.workspaceId?{ok:!1,code:"FORBIDDEN",message:`Agent scope does not cover workspace "${t.workspaceId}" (granted: "${s.workspaceId}")`}:s.ops.includes(t.op)?t.filePath&&!s.paths.some(e=>r(e,t.filePath))?{ok:!1,code:"FORBIDDEN",message:`Agent scope does not cover path "${t.filePath}"`}:{ok:!0}:{ok:!1,code:"FORBIDDEN",message:`Agent scope does not allow "${t.op}"`}},"verifyBy",0,function(e,t){return e.id.startsWith("user:")?!t||"owner"===t||"human"===t||t.startsWith("human:")||t===e.id?{ok:!0}:{ok:!1,code:"FORBIDDEN",message:'User agent must use "human", "owner", or own id in "by" field'}:t!==e.id?{ok:!1,code:"FORBIDDEN",message:`"by" field must equal agent id "${e.id}"`}:{ok:!0}}],215043)},973909,e=>{"use strict";var t=e.i(912714),r=e.i(750227);function s(e,t){return r.default.join(e,".proof",t+".json")}async function n(e,r){let n=s(e,r);try{let e=await (0,t.readFile)(n,"utf-8"),r=JSON.parse(e);if(1!==r.schemaVersion)throw Error(`Sidecar schema version mismatch: expected 1, got ${r.schemaVersion}`);return r}catch(e){if(e instanceof Error&&"code"in e&&"ENOENT"===e.code)return null;throw e}}async function a(e,n,a){let i=s(e,n);await (0,t.mkdir)(r.default.dirname(i),{recursive:!0});let o=i+".tmp";await (0,t.writeFile)(o,JSON.stringify(a,null,2),"utf-8"),await (0,t.rename)(o,i)}async function i(e,n,a){let i=s(e,n),o=s(e,a);try{await (0,t.mkdir)(r.default.dirname(o),{recursive:!0}),await (0,t.rename)(i,o)}catch(e){if("ENOENT"===e.code)return;throw e}}async function o(e,r){let n=s(e,r);try{await (0,t.unlink)(n)}catch(e){if("ENOENT"===e.code)return;throw e}}e.s(["deleteSidecar",0,o,"emptySidecar",0,function(e){let t=new Date().toISOString();return{schemaVersion:1,path:e,revision:0,createdAt:t,updatedAt:t,refMap:{},refAliases:{},comments:[],suggestions:[],archivedSuggestions:[],events:[],nextEventId:1,lastAck:{},fingerprint:"",blockProvenance:{}}},"moveSidecar",0,i,"readSidecar",0,n,"writeSidecar",0,a])},307764,e=>{"use strict";e.s(["emitEvents",0,function(e,t){let r=[];for(let s of t){let t={...s,id:e.nextEventId++};e.events.push(t),r.push(t)}return r},"pollEvents",0,function(e,t,r){return e.events.filter(e=>e.id>t).slice(0,r)},"trimEvents",0,function(e,t){if(e.events.length<=t)return;let r=Object.values(e.lastAck),s=r.length>0?Math.min(...r):1/0,n=e.events.length-t,a=e.events.filter((e,t)=>t>=n||e.id>s);e.events=a}])},850948,e=>{"use strict";function t(e){return e.replace(/&/g,"&").replace(/"/g,""")}e.s(["newSpanId",0,function(){let e=Math.floor(65535*Math.random()).toString(16).padStart(4,"0");return`p${e}`},"revertProofSpan",0,function(e,t){let r=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),s=RegExp(`<proof-span\\b[^>]*\\bid="${r}"[^>]*>[\\s\\S]*?<\\/proof-span>`,"g");return e.replace(s,"")},"wrapAsProofSpan",0,function(e,r){let s,n=(s=[`id="${t(r.spanId)}"`,`origin="${r.origin}"`],r.basis&&s.push(`basis="${t(r.basis)}"`),r.basisDetail&&s.push(`basis-detail="${t(r.basisDetail)}"`),s.push(`by="${t(r.by)}"`),s.push(`at="${t(r.at)}"`),r.inResponseTo&&s.push(`in-response-to="${t(r.inResponseTo)}"`),s.join(" ")),a=e.trim();if(a.startsWith("```")||a.startsWith("~~~")||a.startsWith("<")&&!a.startsWith("<proof-span")||/^[-*_]{3,}\s*$/.test(a))return null;let i=a.split("\n")[0];if(i.includes("|")&&/^\|.*\|/.test(i))return null;let o=a.match(/^(#{1,6})\s+(.+)$/);if(o){let e=o[1],t=o[2].trimEnd();return`${e} <proof-span ${n}>${t}</proof-span>`}return a.startsWith(">")?a.split("\n").map(e=>{let t=e.match(/^(>\s?)(.*)/);if(!t)return e;let r=t[1],s=t[2];return s.trim()?`${r}<proof-span ${n}>${s}</proof-span>`:e}).join("\n"):/^(\s*(?:[-*+]|\d+\.)\s+(?:\[[ xX]\]\s+)?)(.*)/.test(a.split("\n")[0])?a.split("\n").map(e=>{let t=e.match(/^(\s*(?:[-*+]|\d+\.)\s+(?:\[[ xX]\]\s+)?)(.*)/);if(!t)return e;let r=t[1],s=t[2];return s.trim()?`${r}<proof-span ${n}>${s}</proof-span>`:e}).join("\n"):`<proof-span ${n}>${a}</proof-span>`}])},670910,e=>{"use strict";var t=e.i(286607),r=e.i(750227),s=e.i(660526),n=e.i(902157);let a=null;e.s(["writeAuditRow",0,function(e){try{(function(){if(a)return a;let e=r.default.join(process.env.HOME??s.default.homedir(),".wiki-viewer");(0,n.mkdirSync)(e,{recursive:!0});let i=r.default.join(e,"auth.db");(a=new t.default(i)).pragma("journal_mode = WAL"),a.exec(`
|
|
1
|
+
module.exports=[583627,e=>{"use strict";var t=e.i(798003),r=e.i(254226);function s(){return(process.env.WIKI_ADMIN_EMAILS??"").split(",").map(e=>e.trim().toLowerCase()).filter(Boolean)}async function n(e,r){if(r){let e=s();if(e.length>0&&e.includes(r.toLowerCase()))return!0}return((await (0,t.readConfig)()).adminUserIds??[]).includes(e)}async function a(){return(await (0,t.readConfig)()).adminUserIds??[]}async function i(e){await (0,t.updateConfig)(t=>{let r=t.adminUserIds??[];return r.includes(e)?t:{...t,adminUserIds:[...r,e]}})}async function o(e){let r=s().length>0,n=!1;if(await (0,t.updateConfig)(t=>{let s=(t.adminUserIds??[]).filter(t=>t!==e);return 0!==s.length||r?{...t,adminUserIds:s}:(n=!0,t)}),n)throw Error("LAST_ADMIN: cannot remove the last admin with no WIKI_ADMIN_EMAILS configured")}async function u(e){if(s().length>0||((await (0,t.readConfig)()).adminUserIds??[]).length>0)return;let r=!1;await (0,t.updateConfig)(t=>(t.adminUserIds??[]).length>0?t:(r=!0,{...t,adminUserIds:[e]})),r&&console.log(`[wiki-viewer] Bootstrap: first user ${e} promoted to admin`)}async function l(e){if("1"===process.env.WIKI_NO_AUTH)return{ok:!0,user:{id:"local",email:"local@localhost",name:"local"}};let t=await (0,r.requireUser)(e);return t.ok?await n(t.user.id,t.user.email)?{ok:!0,user:t.user}:{ok:!1,status:403,code:"ADMIN_REQUIRED"}:{ok:!1,status:401,code:"UNAUTHORIZED"}}e.s(["addAdmin",0,i,"ensureBootstrapAdmin",0,u,"isAdmin",0,n,"listAdmins",0,a,"removeAdmin",0,o,"requireAdmin",0,l])},874533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},812057,(e,t,r)=>{t.exports=e.x("node:util",()=>require("node:util"))},834938,e=>{"use strict";let t;var r=e.i(874533),s=e.i(812057),n=e.i(912714),a=e.i(750227),i=e.i(660526);let o=(0,s.promisify)(r.execFile),u=/[;|&$`<>(){}\n\r\0]/;function l(){return a.default.join(i.default.homedir(),".wiki-viewer","mounts")}async function c(){if(!0!==t)try{await o("sshfs",["--version"]),t=!0}catch{throw Error("sshfs binary not found. Install sshfs + FUSE (e.g. `apt install sshfs`, `brew install macfuse sshfs`) and ensure it is on PATH.")}}async function d(t){var r;let s=a.default.resolve(t),i=!1;try{i=(await (0,n.readFile)("/proc/mounts","utf8")).split("\n").some(e=>{let t=e.split(" ");return t[1]===s&&/fuse/.test(t[2]??"")})}catch{i=!1}return!!i&&(r=s,new Promise(t=>{let s=!1,n=setTimeout(()=>{s||(s=!0,t(!1))},4e3);e.A(687903).then(({readdir:e})=>e(r)).then(()=>{s||(s=!0,clearTimeout(n),t(!0))}).catch(()=>{s||(s=!0,clearTimeout(n),t(!1))})}))}async function f(e){await c(),await (0,n.mkdir)(e.mountpoint,{recursive:!0});let t=function(e){let{target:t,mountpoint:r,port:s,authMethod:n,keyPath:a,readOnly:i}=e,o=t.user?`${t.user}@`:"",u=[`${o}${t.host}:${t.remotePath}`,r];s&&Number.isInteger(s)&&s>0&&s<65536&&u.push("-p",String(s));let l=["reconnect","ServerAliveInterval=15","ServerAliveCountMax=3","compression=yes","cache=yes","kernel_cache","StrictHostKeyChecking=accept-new","BatchMode=yes"];if(i&&l.push("ro"),"keyfile"===n&&a&&(l.push(`IdentityFile=${a}`),l.push("IdentitiesOnly=yes")),"password"===n){let e=l.indexOf("BatchMode=yes");e>=0&&l.splice(e,1),l.push("password_stdin"),l.push("PreferredAuthentications=password,keyboard-interactive"),l.push("PubkeyAuthentication=no"),l.push("NumberOfPasswordPrompts=1")}return e.extraOptions&&l.push(...e.extraOptions),u.push("-o",l.join(",")),u}(e);if(await new Promise((s,n)=>{let a=(0,r.spawn)("sshfs",t,{stdio:["pipe","ignore","pipe"]}),i="",o=setTimeout(()=>{a.kill("SIGKILL"),n(Error("sshfs mount timed out after 25s."))},25e3);a.stderr?.on("data",e=>{i+=e.toString()}),a.on("error",e=>{clearTimeout(o),n(e.message.includes("ENOENT")?Error("sshfs binary not found on PATH."):e)}),a.on("close",e=>{clearTimeout(o),0===e?s():n(Error(`sshfs exited ${e}: ${i.trim()||"mount failed"}`))}),"password"===e.authMethod&&a.stdin?.write((e.password??"")+"\n"),a.stdin?.end()}),!await d(e.mountpoint))throw Error("sshfs reported success but the mount is not live.")}async function p(e){let t=a.default.resolve(e);for(let[e,r]of[["fusermount",["-u","-z",t]],["umount",[t]]])try{await o(e,r);break}catch{}try{await (0,n.rmdir)(t)}catch{}}e.s(["assertSshfsAvailable",0,c,"isMounted",0,d,"isValidKeyPath",0,function(e){return!(!e||u.test(e)||e.includes(".."))&&(e.startsWith("/")||e.startsWith("~/"))},"mountSshfs",0,f,"mountpointFor",0,function(e){return a.default.join(l(),e)},"mountsDir",0,l,"parseSshTarget",0,function(e){let t;if(!e||u.test(e))return null;let r=e.trim(),s=r.indexOf(":");if(s<=0)return null;let n=r.slice(0,s),a=r.slice(s+1);if(!a.startsWith("/")||a.includes(".."))return null;let i=n,o=n.indexOf("@");return o>=0&&(t=n.slice(0,o),i=n.slice(o+1),!t)?null:i&&/^[a-zA-Z0-9.\-]+$/.test(i)&&(!t||/^[a-zA-Z0-9._\-]+$/.test(t))?{user:t,host:i,remotePath:a}:null},"unmountSshfs",0,p])},504445,e=>{"use strict";var t=e.i(750227);let r=globalThis;!r.__wikiRootDir&&process.env.ROOT_DIR&&(r.__wikiRootDir=t.default.resolve(process.env.ROOT_DIR)),e.s(["clearRootDir",0,function(){r.__wikiRootDir=void 0},"getRootDir",0,function(){return r.__wikiRootDir??""},"isRootDirSet",0,function(){return!!r.__wikiRootDir},"setRootDir",0,function(e){r.__wikiRootDir=t.default.resolve(e)}])},660038,e=>{"use strict";var t=e.i(750227),r=e.i(254226),s=e.i(583627),n=e.i(504445),a=e.i(359211);async function i(e){let r;await (0,a.migrateConfigToWorkspaces)();let s=new URL(e.url).searchParams.get("ws")??e.headers.get("x-workspace")??null;if(s)r=await (0,a.getWorkspace)(s)??null;else{let e=await (0,a.listWorkspaces)();if(0===e.length){let e;r=(e=(0,n.getRootDir)())?{id:"ws_default",name:t.default.basename(e)||"workspace",rootDir:e,createdAt:new Date(0).toISOString()}:null}else r=e.slice().sort((e,t)=>{let r=e.lastOpenedAt?new Date(e.lastOpenedAt).getTime():0,s=t.lastOpenedAt?new Date(t.lastOpenedAt).getTime():0;return s!==r?s-r:e.id<t.id?-1:+(e.id>t.id)})[0]}return r?.ssh&&await (0,a.ensureWorkspaceMounted)(r),r}async function o(e,t="read"){if("1"===process.env.WIKI_NO_AUTH){let r=await i(e);return r?"write"===t&&r.readOnly?{ok:!1,status:403,code:"WORKSPACE_READ_ONLY"}:{ok:!0,ws:r,rootDir:r.rootDir,userId:"local",isAdmin:!0}:{ok:!1,status:400,code:"WORKSPACE_REQUIRED"}}let n=await (0,r.requireUser)(e);if(!n.ok)return{ok:!1,status:401,code:"UNAUTHORIZED"};let u=await (0,s.isAdmin)(n.user.id,n.user.email),l=new URL(e.url).searchParams.get("ws")??e.headers.get("x-workspace")??null,c=await i(e);return c?(0,a.userCanAccess)(c,n.user.id,u)?"write"===t&&c.readOnly?{ok:!1,status:403,code:"WORKSPACE_READ_ONLY"}:{ok:!0,ws:c,rootDir:c.rootDir,userId:n.user.id,isAdmin:u}:{ok:!1,status:403,code:"WORKSPACE_FORBIDDEN"}:{ok:!1,status:l?404:400,code:l?"WORKSPACE_NOT_FOUND":"WORKSPACE_REQUIRED"}}async function u(e,t="read"){let r=await i(e);if(!r){let t=new URL(e.url).searchParams.get("ws")??e.headers.get("x-workspace")??null;return{ok:!1,status:t?404:400,code:t?"WORKSPACE_NOT_FOUND":"WORKSPACE_REQUIRED"}}return"write"===t&&r.readOnly?{ok:!1,status:403,code:"WORKSPACE_READ_ONLY"}:{ok:!0,ws:r,rootDir:r.rootDir}}e.s(["resolveWorkspaceForAgent",0,u,"resolveWorkspaceForUser",0,o])},719126,e=>{"use strict";var t=e.i(666680),r=e.i(912714),s=e.i(750227);function n(e){let t=e.replace(/\\/g,"/");return".proof"===t||t.startsWith(".proof/")||".git"===t||t.startsWith(".git/")}async function a(e,t){if(!e)return null;let a=s.default.normalize(t);if(a.startsWith("..")||s.default.isAbsolute(a)||n(a))return null;let i=s.default.join(e,a);if(i!==e&&!i.startsWith(e+s.default.sep))return null;try{let t=await (0,r.realpath)(i);if(t!==e&&!t.startsWith(e+s.default.sep))return null}catch{let t=s.default.dirname(i);if(t!==i)try{let n=await (0,r.realpath)(t);if(n!==e&&!n.startsWith(e+s.default.sep))return null}catch{}}return i}let i={".md":"text/markdown; charset=utf-8",".markdown":"text/markdown; charset=utf-8",".txt":"text/plain; charset=utf-8",".json":"application/json; charset=utf-8",".jsonc":"application/json; charset=utf-8",".ts":"text/typescript; charset=utf-8",".tsx":"text/typescript; charset=utf-8",".mts":"text/typescript; charset=utf-8",".js":"text/javascript; charset=utf-8",".jsx":"text/javascript; charset=utf-8",".mjs":"text/javascript; charset=utf-8",".html":"text/html; charset=utf-8",".htm":"text/html; charset=utf-8",".css":"text/css; charset=utf-8",".yaml":"text/yaml; charset=utf-8",".yml":"text/yaml; charset=utf-8",".toml":"text/toml; charset=utf-8",".xml":"application/xml; charset=utf-8",".svg":"image/svg+xml",".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp",".pdf":"application/pdf",".zip":"application/zip",".tar":"application/x-tar",".gz":"application/gzip",".py":"text/x-python; charset=utf-8",".rs":"text/x-rustsrc; charset=utf-8",".go":"text/x-go; charset=utf-8",".sh":"text/x-shellscript; charset=utf-8",".csv":"text/csv; charset=utf-8",".env":"text/plain; charset=utf-8"};async function o(e,t){let s=420;try{let t=await (0,r.stat)(e);s=511&t.mode}catch{}let n=e+".~"+process.pid+"."+Date.now()+".tmp",a=await (0,r.open)(n,"w",s);try{await a.write(t),await a.datasync()}finally{await a.close()}await (0,r.rename)(n,e)}async function u(e,t){let n=s.default.dirname(e);if(t)return await (0,r.mkdir)(n,{recursive:!0}),!0;try{return await (0,r.stat)(n),!0}catch{return!1}}e.s(["atomicWrite",0,o,"ensureParentDir",0,u,"extractShaHex",0,function(e){return e.replace(/^"/,"").replace(/"$/,"").replace(/^sha256:/,"")},"isDeniedRelPath",0,n,"isMarkdown",0,function(e){return e.endsWith(".md")||e.endsWith(".markdown")},"looksLikeBinary",0,function(e){return e.slice(0,Math.min(e.length,8192)).includes(0)},"mimeByExt",0,function(e){return i[s.default.extname(e).toLowerCase()]??"application/octet-stream"},"safeAbsPath",0,a,"sha256ofBuf",0,function(e){return"sha256:"+(0,t.createHash)("sha256").update(e).digest("hex")}])},857764,(e,t,r)=>{t.exports=e.x("node:url",()=>require("node:url"))},59639,(e,t,r)=>{t.exports=e.x("node:process",()=>require("node:process"))},462711,651212,316552,e=>{"use strict";var t=e.i(750227);e.s(["minpath",()=>t.default],462711);var r=e.i(59639);e.s(["minproc",()=>r.default],651212);var s=e.i(857764);e.s(["urlToPath",()=>s.fileURLToPath],316552)},794776,e=>{"use strict";let t,r=Number.isFinite(t=parseInt(process.env.AGENT_RATE_LIMIT??"",10))&&t>0?t:60;e.s(["OPS_PER_MINUTE",0,r,"SIDECAR_EVENT_TRIM_SIZE",0,1e3,"SIDECAR_TRIM_EVERY_N_MUTATIONS",0,100])},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},224361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},688947,(e,t,r)=>{t.exports=e.x("stream",()=>require("stream"))},427699,(e,t,r)=>{t.exports=e.x("events",()=>require("events"))},228064,e=>{"use strict";var t=e.i(666680),r=e.i(912714),s=e.i(660526),n=e.i(750227),a=e.i(832852);let i="__registry__",o=new Map;function u(){let e=process.env.HOME??s.default.homedir();return n.default.join(e,".wiki-viewer")}function l(){return n.default.join(u(),"agents.json")}function c(e){return(0,t.createHash)("sha256").update(e,"utf8").digest("hex")}async function d(){try{let e=await (0,r.readFile)(l(),"utf8"),t=JSON.parse(e);return{version:1,agents:Array.isArray(t.agents)?t.agents:[]}}catch{return null}}async function f(e){await (0,r.mkdir)(u(),{recursive:!0});let t=l()+".tmp";await (0,r.writeFile)(t,JSON.stringify(e,null,2),{encoding:"utf8",mode:384});try{await (0,r.chmod)(t,384)}catch{}await (0,r.rename)(t,l())}async function p(){let e=await d();if(e)return e;let t={version:1,agents:[]};return await f(t),t}async function h(e){let r=await d();if(!r)return null;let s=c(e);for(let e of r.agents)if(function(e,r){let s=Buffer.from(e.padEnd(64,"0"),"utf8"),n=Buffer.from(r.padEnd(64,"0"),"utf8");return s.length===n.length&&(0,t.timingSafeEqual)(s,n)&&e.length===r.length}(e.tokenHash,s))return e;return null}async function m(e){await (0,a.withFileMutex)(i,async()=>{let t=await p(),r=t.agents.findIndex(t=>t.id===e.id);r>=0?t.agents[r]=e:t.agents.push(e),await f(t)})}async function g(e){return(0,a.withFileMutex)(i,async()=>{let t=await d();if(!t)return!1;let r=t.agents.length;return t.agents=t.agents.filter(t=>t.id!==e),t.agents.length!==r&&(await f(t),!0)})}async function w(e){Date.now()-(o.get(e)??0)<3e4||await (0,a.withFileMutex)(i,async()=>{let t=await d();if(!t)return;let r=t.agents.find(t=>t.id===e);r&&(r.lastSeen=new Date().toISOString(),o.set(e,Date.now()),await f(t))})}e.s(["addAgent",0,m,"hashToken",0,c,"lookupAgentByToken",0,h,"readRegistry",0,d,"removeAgent",0,g,"updateLastSeen",0,w])},215043,552350,e=>{"use strict";var t=e.i(228064);function r(e,t){return(function(e){let t="^",r=0;for(;r<e.length;)"*"===e[r]&&"*"===e[r+1]?(t+=".*","/"===e[r+=2]&&(t+="(?:.+/)?",r++)):("*"===e[r]?t+="[^/]*":"?"===e[r]?t+="[^/]":t+=e[r].replace(/[.+^${}()|[\]\\]/g,"\\$&"),r++);return new RegExp(t+="$")})(e).test(t)}e.s(["matchGlob",0,r],552350);var s=e.i(254226);async function n(e){let r=await (0,s.getSessionFromRequest)(e);if(r?.user){let e=r.user;return{ok:!0,agent:{id:`user:${e.id}`,displayName:e.name,tokenHash:"",scope:{paths:["**/*"],ops:["read","mutate","delete"]},createdAt:"",lastSeen:""}}}let n=e.headers.get("authorization")??"",a=n.startsWith("Bearer ")?n.slice(7).trim():"";if(!a)return{ok:!1,code:"UNAUTHORIZED",message:"No credentials"};let i=await (0,t.lookupAgentByToken)(a);if(!i)return{ok:!1,code:"UNAUTHORIZED",message:"Unknown or invalid token"};let o=e.headers.get("x-agent-id")??"";return o?o!==i.id?{ok:!1,code:"UNAUTHORIZED",message:"X-Agent-Id does not match token owner"}:((0,t.updateLastSeen)(i.id),{ok:!0,agent:i}):{ok:!1,code:"UNAUTHORIZED",message:"X-Agent-Id header required"}}process.env.AGENT_BEARER_TOKEN&&console.warn("[wiki-viewer] AGENT_BEARER_TOKEN is no longer used; manage agents via the AI Panel."),e.s(["checkAuth",0,n,"enforceScope",0,function(e,t){let{scope:s}=e;return void 0!==s.workspaceId&&void 0!==t.workspaceId&&s.workspaceId!==t.workspaceId?{ok:!1,code:"FORBIDDEN",message:`Agent scope does not cover workspace "${t.workspaceId}" (granted: "${s.workspaceId}")`}:s.ops.includes(t.op)?t.filePath&&!s.paths.some(e=>r(e,t.filePath))?{ok:!1,code:"FORBIDDEN",message:`Agent scope does not cover path "${t.filePath}"`}:{ok:!0}:{ok:!1,code:"FORBIDDEN",message:`Agent scope does not allow "${t.op}"`}},"verifyBy",0,function(e,t){return e.id.startsWith("user:")?!t||"owner"===t||"human"===t||t.startsWith("human:")||t===e.id?{ok:!0}:{ok:!1,code:"FORBIDDEN",message:'User agent must use "human", "owner", or own id in "by" field'}:t!==e.id?{ok:!1,code:"FORBIDDEN",message:`"by" field must equal agent id "${e.id}"`}:{ok:!0}}],215043)},973909,e=>{"use strict";var t=e.i(912714),r=e.i(750227);function s(e,t){return r.default.join(e,".proof",t+".json")}async function n(e,r){let n=s(e,r);try{let e=await (0,t.readFile)(n,"utf-8"),r=JSON.parse(e);if(1!==r.schemaVersion)throw Error(`Sidecar schema version mismatch: expected 1, got ${r.schemaVersion}`);return r}catch(e){if(e instanceof Error&&"code"in e&&"ENOENT"===e.code)return null;throw e}}async function a(e,n,a){let i=s(e,n);await (0,t.mkdir)(r.default.dirname(i),{recursive:!0});let o=i+".tmp";await (0,t.writeFile)(o,JSON.stringify(a,null,2),"utf-8"),await (0,t.rename)(o,i)}async function i(e,n,a){let i=s(e,n),o=s(e,a);try{await (0,t.mkdir)(r.default.dirname(o),{recursive:!0}),await (0,t.rename)(i,o)}catch(e){if("ENOENT"===e.code)return;throw e}}async function o(e,r){let n=s(e,r);try{await (0,t.unlink)(n)}catch(e){if("ENOENT"===e.code)return;throw e}}e.s(["deleteSidecar",0,o,"emptySidecar",0,function(e){let t=new Date().toISOString();return{schemaVersion:1,path:e,revision:0,createdAt:t,updatedAt:t,refMap:{},refAliases:{},comments:[],suggestions:[],archivedSuggestions:[],events:[],nextEventId:1,lastAck:{},fingerprint:"",blockProvenance:{}}},"moveSidecar",0,i,"readSidecar",0,n,"writeSidecar",0,a])},307764,e=>{"use strict";e.s(["emitEvents",0,function(e,t){let r=[];for(let s of t){let t={...s,id:e.nextEventId++};e.events.push(t),r.push(t)}return r},"pollEvents",0,function(e,t,r){return e.events.filter(e=>e.id>t).slice(0,r)},"trimEvents",0,function(e,t){if(e.events.length<=t)return;let r=Object.values(e.lastAck),s=r.length>0?Math.min(...r):1/0,n=e.events.length-t,a=e.events.filter((e,t)=>t>=n||e.id>s);e.events=a}])},850948,e=>{"use strict";function t(e){return e.replace(/&/g,"&").replace(/"/g,""")}e.s(["newSpanId",0,function(){let e=Math.floor(65535*Math.random()).toString(16).padStart(4,"0");return`p${e}`},"revertProofSpan",0,function(e,t){let r=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),s=RegExp(`<proof-span\\b[^>]*\\bid="${r}"[^>]*>[\\s\\S]*?<\\/proof-span>`,"g");return e.replace(s,"")},"wrapAsProofSpan",0,function(e,r){let s,n=(s=[`id="${t(r.spanId)}"`,`origin="${r.origin}"`],r.basis&&s.push(`basis="${t(r.basis)}"`),r.basisDetail&&s.push(`basis-detail="${t(r.basisDetail)}"`),s.push(`by="${t(r.by)}"`),s.push(`at="${t(r.at)}"`),r.inResponseTo&&s.push(`in-response-to="${t(r.inResponseTo)}"`),s.join(" ")),a=e.trim();if(a.startsWith("```")||a.startsWith("~~~")||a.startsWith("<")&&!a.startsWith("<proof-span")||/^[-*_]{3,}\s*$/.test(a))return null;let i=a.split("\n")[0];if(i.includes("|")&&/^\|.*\|/.test(i))return null;let o=a.match(/^(#{1,6})\s+(.+)$/);if(o){let e=o[1],t=o[2].trimEnd();return`${e} <proof-span ${n}>${t}</proof-span>`}return a.startsWith(">")?a.split("\n").map(e=>{let t=e.match(/^(>\s?)(.*)/);if(!t)return e;let r=t[1],s=t[2];return s.trim()?`${r}<proof-span ${n}>${s}</proof-span>`:e}).join("\n"):/^(\s*(?:[-*+]|\d+\.)\s+(?:\[[ xX]\]\s+)?)(.*)/.test(a.split("\n")[0])?a.split("\n").map(e=>{let t=e.match(/^(\s*(?:[-*+]|\d+\.)\s+(?:\[[ xX]\]\s+)?)(.*)/);if(!t)return e;let r=t[1],s=t[2];return s.trim()?`${r}<proof-span ${n}>${s}</proof-span>`:e}).join("\n"):`<proof-span ${n}>${a}</proof-span>`}])},670910,e=>{"use strict";var t=e.i(286607),r=e.i(750227),s=e.i(660526),n=e.i(902157);let a=null;e.s(["writeAuditRow",0,function(e){try{(function(){if(a)return a;let e=r.default.join(process.env.HOME??s.default.homedir(),".wiki-viewer");(0,n.mkdirSync)(e,{recursive:!0});let i=r.default.join(e,"auth.db");(a=new t.default(i)).pragma("journal_mode = WAL"),a.exec(`
|
|
2
2
|
CREATE TABLE IF NOT EXISTS agent_fs_audit (
|
|
3
3
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
4
4
|
agent_id TEXT NOT NULL,
|
|
@@ -11,6 +11,6 @@ module.exports=[583627,e=>{"use strict";var t=e.i(798003),r=e.i(254226);function
|
|
|
11
11
|
workspace_id TEXT
|
|
12
12
|
)
|
|
13
13
|
`);try{a.exec("ALTER TABLE agent_fs_audit ADD COLUMN workspace_id TEXT")}catch{}return a})().prepare(`INSERT INTO agent_fs_audit (agent_id, op, path, old_sha, new_sha, forced, at, workspace_id)
|
|
14
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?)`).run(e.agentId,e.op,e.path,e.oldSha??null,e.newSha??null,+!!e.forced,new Date().toISOString(),e.workspaceId??null)}catch(e){console.error("[agent-fs audit] write failed:",e)}}])},168315,e=>{e.v(t=>Promise.all(["server/chunks/0sag_@better-auth_memory-adapter_dist_index_mjs_0pvj6im._.js"].map(t=>e.l(t))).then(()=>t(862112)))},317691,e=>{e.v(t=>Promise.all(["server/chunks/0dhv_better-auth_dist_adapters_kysely-adapter_index_mjs_0t4t4z8._.js"].map(t=>e.l(t))).then(()=>t(833412)))},580632,e=>{e.v(e=>Promise.resolve().then(()=>e(270406)))},947559,e=>{e.v(t=>Promise.all(["server/chunks/0ugq_@better-auth_kysely-adapter_dist_bun-sqlite-dialect-DzNwOpKv_mjs_0z1z6m4._.js"].map(t=>e.l(t))).then(()=>t(495181)))},715018,e=>{e.v(t=>Promise.all(["server/chunks/0ugq_@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0qqlvhl._.js"].map(t=>e.l(t))).then(()=>t(698370)))},146843,e=>{e.v(t=>Promise.all(["server/chunks/0ugq_@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_0wynrz3._.js"].map(t=>e.l(t))).then(()=>t(143740)))},84040,e=>{e.v(t=>Promise.all(["server/chunks/0p91_next_0h94sj1._.js"].map(t=>e.l(t))).then(()=>t(815068)))},427669,e=>{e.v(e=>Promise.resolve().then(()=>e(177730)))},687903,e=>{e.v(e=>Promise.resolve().then(()=>e(912714)))},754121,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__00mtevo._.js","server/chunks/src_lib_search_0ymmp0c._.js"].map(t=>e.l(t))).then(()=>t(437856)))}];
|
|
14
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?)`).run(e.agentId,e.op,e.path,e.oldSha??null,e.newSha??null,+!!e.forced,new Date().toISOString(),e.workspaceId??null)}catch(e){console.error("[agent-fs audit] write failed:",e)}}])},889264,e=>{"use strict";let t=globalThis;function r(){return t.__wikiLeaseStore}function s(e,t){return`${e}\u0000${t}`}function n(e,t){let n=r(),a=s(e,t),i=n.leases.get(a);return!!i&&(!(Date.now()>=i.expiresAt)||(n.leases.delete(a),n.generations.set(a,(n.generations.get(a)??0)+1),!1))}t.__wikiLeaseStore||(t.__wikiLeaseStore={leases:new Map,generations:new Map}),e.s(["clearLease",0,function(e,t,n){let a=r(),i=s(e,t),o=a.leases.get(i);o&&o.userId===n&&(a.leases.delete(i),a.generations.set(i,(a.generations.get(i)??0)+1))},"hasActiveLease",0,function(e,t){return n(e,t)},"leaseGeneration",0,function(e,t){let n=s(e,t);return r().generations.get(n)??0},"setLease",0,function(e,t,a,i=9e4){let o=r(),u=s(e,t),l=n(e,t);o.leases.set(u,{userId:a,expiresAt:Date.now()+i}),l||o.generations.set(u,(o.generations.get(u)??0)+1)}])},400053,e=>{"use strict";var t=e.i(973909),r=e.i(889264);async function s(e,s){if(!(s.endsWith(".md")||s.endsWith(".markdown")))return{state:"not-markdown",revision:0,snapshotUrl:null};let n=`/api/agent/files/${s}`,a=await (0,t.readSidecar)(e,s),i=(0,r.leaseGeneration)(e,s),o=(a?.revision??0)+i,u=(0,r.hasActiveLease)(e,s);if(!a&&!u)return{state:"untracked",revision:o,snapshotUrl:n};if(u)return{state:"active",revision:o,snapshotUrl:n};let l=a.suggestions.filter(e=>"pending"===e.status&&!e.stale).length,c=a.comments.filter(e=>!e.resolved).length,d=Object.keys(a.blockProvenance??{}).length;return l>0||c>0||d>0?{state:"active",revision:o,snapshotUrl:n}:{state:"tracked",revision:o,snapshotUrl:n}}e.s(["computeCollabState",0,s])},168315,e=>{e.v(t=>Promise.all(["server/chunks/0sag_@better-auth_memory-adapter_dist_index_mjs_0pvj6im._.js"].map(t=>e.l(t))).then(()=>t(862112)))},317691,e=>{e.v(t=>Promise.all(["server/chunks/0dhv_better-auth_dist_adapters_kysely-adapter_index_mjs_0t4t4z8._.js"].map(t=>e.l(t))).then(()=>t(833412)))},580632,e=>{e.v(e=>Promise.resolve().then(()=>e(270406)))},947559,e=>{e.v(t=>Promise.all(["server/chunks/0ugq_@better-auth_kysely-adapter_dist_bun-sqlite-dialect-DzNwOpKv_mjs_0z1z6m4._.js"].map(t=>e.l(t))).then(()=>t(495181)))},715018,e=>{e.v(t=>Promise.all(["server/chunks/0ugq_@better-auth_kysely-adapter_dist_node-sqlite-dialect_mjs_0qqlvhl._.js"].map(t=>e.l(t))).then(()=>t(698370)))},146843,e=>{e.v(t=>Promise.all(["server/chunks/0ugq_@better-auth_kysely-adapter_dist_d1-sqlite-dialect-C2B7YsIT_mjs_0wynrz3._.js"].map(t=>e.l(t))).then(()=>t(143740)))},84040,e=>{e.v(t=>Promise.all(["server/chunks/0p91_next_0h94sj1._.js"].map(t=>e.l(t))).then(()=>t(815068)))},427669,e=>{e.v(e=>Promise.resolve().then(()=>e(177730)))},687903,e=>{e.v(e=>Promise.resolve().then(()=>e(912714)))},754121,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__00mtevo._.js","server/chunks/src_lib_search_0ymmp0c._.js"].map(t=>e.l(t))).then(()=>t(437856)))}];
|
|
15
15
|
|
|
16
|
-
//# sourceMappingURL=%5Broot-of-the-server%
|
|
16
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0vxex1w._.js.map
|