wiki-viewer 2.20.1 → 3.0.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/build-manifest.json +3 -3
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/required-server-files.json +1 -1
- 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_client-reference-manifest.js +1 -1
- 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 +4 -4
- 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 +8 -8
- 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 +8 -8
- 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 +5 -5
- 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/settings/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/sidecar/[...path]/route.js +4 -4
- 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.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.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/share/[token]/asset/route.js.nft.json +1 -1
- 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/workspaces/[id]/branch/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 +7 -6
- 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/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/hosted-apps/[slug]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/hosted-apps/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/move/route.js +4 -4
- 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/scratch/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/app/[slug]/[[...rest]]/route.js +1 -1
- package/.next/standalone/.next/server/app/app/[slug]/[[...rest]]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page/react-loadable-manifest.json +1 -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.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_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/chunks/0.u4_next_dist_esm_build_templates_app-route_0.4w~2_.js +1 -1
- package/.next/standalone/.next/server/chunks/0.u4_next_dist_esm_build_templates_app-route_024r~hj.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__014dhj5._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__09vw_yd._.js → [root-of-the-server]__07757zz._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0_2j7pq._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0dya7sd._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ivbizg._.js +16 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0k2nouu._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ul.gyt._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0w2ba2x._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0wcg8qs._.js +16 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0yzumg-._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0~a6cyg._.js +1 -1
- package/.next/standalone/.next/server/chunks/_079xuln._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{0~w0_katex_dist_katex_mjs_02b4pv0._.js → 0~w0_katex_dist_katex_mjs_01swx_l._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{0~w0_katex_dist_katex_mjs_03x.-bb._.js → 0~w0_katex_dist_katex_mjs_10cht08._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0fh-02e._.js → [root-of-the-server]__0d89mrm._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__05fw4nf._.js → [root-of-the-server]__0xl7e3h._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_0d28.zp._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0e1uo~z._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0k6g8yo._.js +22 -20
- package/.next/standalone/.next/server/chunks/ssr/_0sr4wj.._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0ho8oyj._.js → node_modules__pnpm_0-xbi6q._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0.lls2f._.js → node_modules__pnpm_0045hhh._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0p_qmx3._.js → node_modules__pnpm_00b2ftc._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_06xedp9._.js → node_modules__pnpm_01mrx7s._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0.b-q-g._.js → node_modules__pnpm_029sanw._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0dm-.3s._.js → node_modules__pnpm_034eonm._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0gdk9ii._.js → node_modules__pnpm_03cxqnc._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_131~6_2._.js → node_modules__pnpm_03~9v2y._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0eo2ac8._.js → node_modules__pnpm_047iyar._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0f.-l_i._.js → node_modules__pnpm_04qoa_.._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_02j29jd._.js → node_modules__pnpm_05jxr.d._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0u~ng-b._.js → node_modules__pnpm_05m3zxe._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_03m~yp-._.js → node_modules__pnpm_05s3rp_._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0owi.t~._.js → node_modules__pnpm_06ti8hd._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0frtimc._.js → node_modules__pnpm_06xoojz._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0zhmzqf._.js → node_modules__pnpm_085kv-l._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0b9mrd-._.js → node_modules__pnpm_08wjj_6._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_004esp.._.js → node_modules__pnpm_098q_0q._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_035f6c2._.js → node_modules__pnpm_0_rahb~._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_00d_ihj._.js → node_modules__pnpm_0a2ww-4._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0dnud63._.js → node_modules__pnpm_0aca6hd._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0laq3ah._.js → node_modules__pnpm_0btk5kj._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0lwio3d._.js → node_modules__pnpm_0deg.gs._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_029eo0j._.js → node_modules__pnpm_0dir6h3._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_13i2f82._.js → node_modules__pnpm_0fk6r5-._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_04e8oap._.js → node_modules__pnpm_0g.7k_n._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0wpana9._.js → node_modules__pnpm_0gguvd4._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0.cggg3._.js → node_modules__pnpm_0gy4l1q._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0jn81p-._.js → node_modules__pnpm_0hajaki._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0oqqt~3._.js → node_modules__pnpm_0hvnqml._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0qq915e._.js → node_modules__pnpm_0hy39av._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0va2k-t._.js → node_modules__pnpm_0j_.d8m._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0w6417f._.js → node_modules__pnpm_0jq2ef9._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0t_97nv._.js → node_modules__pnpm_0mtv_af._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_09-tnjc._.js → node_modules__pnpm_0mus7ah._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0_39rjg._.js → node_modules__pnpm_0oexapu._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0d.7f.v._.js → node_modules__pnpm_0oqzhc1._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0-q76.t._.js → node_modules__pnpm_0o~vvgs._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_08aserg._.js → node_modules__pnpm_0ptozb4._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_018bmrp._.js → node_modules__pnpm_0rqsp1j._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0ye5zu~._.js → node_modules__pnpm_0rs15iz._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0pq-m-w._.js → node_modules__pnpm_0ryy9ik._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0ew~_em._.js → node_modules__pnpm_0t9_wi1._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0.eafd4._.js → node_modules__pnpm_0tnriso._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0awp-lz._.js → node_modules__pnpm_0tz8-2x._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_08ly65-._.js → node_modules__pnpm_0uap1~z._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0-9pgc-._.js → node_modules__pnpm_0wyvqp7._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0a0xb30._.js → node_modules__pnpm_0yect_i._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0gk3zd4._.js → node_modules__pnpm_0yyt.qr._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_13dh01l._.js → node_modules__pnpm_0z7wvui._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_11ge450._.js → node_modules__pnpm_1032cax._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_10tma_q._.js → node_modules__pnpm_107~rhn._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_09cnu2l._.js → node_modules__pnpm_124jh7j._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0ibh1jm._.js → node_modules__pnpm_12v9693._.js} +1 -1
- package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/static/chunks/0_6~i5v43qpgh.js +1 -0
- package/.next/standalone/.next/static/chunks/{16xauntup4146.js → 0drn9l.ihdwh-.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0j7kp7w2oum68.js → 0ftz-0jz~tk6i.js} +1 -1
- package/.next/standalone/.next/static/chunks/0kml2.eor4-mh.js +190 -0
- package/.next/standalone/.next/static/chunks/{09dn.__2m_69y.js → 0rows7ykoflq3.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0j_n58.7iw6~6.js → 0ujpqxim7iqme.js} +1 -1
- package/.next/standalone/.next/static/chunks/136jk6_h2z_jw.js +1 -0
- package/.next/standalone/.next/static/chunks/17khi18hxwx5d.css +1 -0
- package/.next/standalone/.test-floor +1 -1
- package/.next/standalone/package.json +22 -21
- package/.next/standalone/server.js +1 -1
- package/package.json +22 -21
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__041fu_k._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0_6mful._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0b7h2ot._.js +0 -16
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0bs~4kr._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0bzyv11._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ian9~8._.js +0 -16
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0wgd88e._.js +0 -3
- package/.next/standalone/.next/static/chunks/0gl24pgjp37cr.js +0 -1
- package/.next/standalone/.next/static/chunks/0o.-s7.m.hhct.css +0 -1
- package/.next/standalone/.next/static/chunks/0x082gn2hhbex.js +0 -188
- package/.next/standalone/.next/static/chunks/13s~dhi5itm5t.js +0 -1
- package/.next/standalone/isometric-codebase-map.html +0 -1506
- package/.next/standalone/isometric-codebase-map.json +0 -169
- package/.next/standalone/wp-test-6mm5qr/burst-0.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-1.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-10.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-11.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-12.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-13.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-14.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-15.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-16.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-17.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-18.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-19.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-2.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-20.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-21.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-22.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-23.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-24.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-25.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-26.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-27.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-28.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-29.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-3.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-30.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-31.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-32.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-33.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-34.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-35.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-36.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-37.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-38.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-39.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-4.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-40.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-41.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-42.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-43.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-44.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-45.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-46.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-47.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-48.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-49.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-5.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-6.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-7.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-8.txt +0 -1
- package/.next/standalone/wp-test-6mm5qr/burst-9.txt +0 -1
- package/.next/standalone/wp-test-SiMBLk/child/nested.txt +0 -1
- package/.next/standalone/wp-test-SiMBLk/rootfile.txt +0 -1
- package/.next/standalone/wp-test-bFyuuZ/child/nested.txt +0 -1
- package/.next/standalone/wp-test-bFyuuZ/rootfile.txt +0 -1
- package/.next/standalone/wp-test-dn9shN/after-reset.txt +0 -1
- package/.next/standalone/wp-test-gL64l2/shared.txt +0 -1
- package/.next/standalone/wp-test-mlyQ7q/test.txt +0 -1
- package/.next/standalone/wp-test-o3g2XI/shared.txt +0 -1
- package/.next/standalone/wp-test-oHeYCM/subA/a.txt +0 -1
- package/.next/standalone/wp-test-oHeYCM/subB/b.txt +0 -1
- /package/.next/standalone/.next/static/{ch24XdB6w4ERJnCBxzvzW → fJ3GtWg-nxX07oIencv35}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{ch24XdB6w4ERJnCBxzvzW → fJ3GtWg-nxX07oIencv35}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{ch24XdB6w4ERJnCBxzvzW → fJ3GtWg-nxX07oIencv35}/_ssgManifest.js +0 -0
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schemaVersion": 1,
|
|
3
|
-
"generatedFrom": "isometric-codebase-map.html",
|
|
4
|
-
"title": "Wiki Viewer Architecture",
|
|
5
|
-
"subtitle": "Measured map of one Next.js server, its browser clients, agent API, and local stores",
|
|
6
|
-
"stats": [
|
|
7
|
-
{ "value": "60,395", "label": "source LOC" },
|
|
8
|
-
{ "value": "79", "label": "API routes" },
|
|
9
|
-
{ "value": "71", "label": "test files" },
|
|
10
|
-
{ "value": "1", "label": "deployed service" }
|
|
11
|
-
],
|
|
12
|
-
"groups": [
|
|
13
|
-
{ "id": "surface", "name": "Browser surfaces", "color": "#d8a14a", "labelGX": 5, "labelGY": -1 },
|
|
14
|
-
{ "id": "entry", "name": "Entry and access", "color": "#c86a52", "labelGX": 4, "labelGY": 4 },
|
|
15
|
-
{ "id": "domain", "name": "Core capabilities", "color": "#6f9d83", "labelGX": -1, "labelGY": 10 },
|
|
16
|
-
{ "id": "compute", "name": "Runtime roles", "color": "#6689a6", "labelGX": 13, "labelGY": 9 },
|
|
17
|
-
{ "id": "data", "name": "Durable stores", "color": "#9a8eb4", "labelGX": 8, "labelGY": 19 },
|
|
18
|
-
{ "id": "delivery", "name": "Delivery", "color": "#8b9272", "labelGX": 1, "labelGY": 14 }
|
|
19
|
-
],
|
|
20
|
-
"structures": [
|
|
21
|
-
{ "id": "web-shell", "code": "WS", "name": "Web shell", "group": "surface", "loc": "5,443 LOC", "gx": 1, "gy": 0, "w": 3, "d": 2, "h": 8, "what": "The browser workbench where people browse folders, open files, and review changes.", "how": "App routes, layout, wiki shell, viewer toolbar, and shared UI compose the protected workbench.", "talks": ["hooks", "wiki-api", "share-api"], "children": [
|
|
22
|
-
{ "code": "AP", "name": "App routes", "h": 6, "what": "Load the protected shell and route-level page surfaces.", "how": "Next.js pages in src/app compose the sign-in, share, and main workbench surfaces behind the middleware gate." },
|
|
23
|
-
{ "code": "WL", "name": "Wiki layout", "h": 7, "what": "Compose navigation, directory tree, tabs, and the main canvas.", "how": "layout.tsx plus the wiki sidebar and shell components assemble the directory tree, tabs, and viewer canvas into one protected frame." },
|
|
24
|
-
{ "code": "UI", "name": "Shared UI", "h": 4, "what": "Provide dialogs, menus, forms, and status primitives.", "how": "Reusable components in src/components/ui centralize dialogs, menus, forms, and status elements used across surfaces." },
|
|
25
|
-
{ "code": "TB", "name": "Viewer toolbar", "h": 3, "what": "Expose file actions, history, sharing, and view controls.", "how": "The editor toolbar and file actions menu wire view controls, history, sharing, and view-mode buttons to hooks and API calls." }
|
|
26
|
-
] },
|
|
27
|
-
{ "id": "editor", "code": "ED", "name": "Editor and viewers", "group": "surface", "loc": "12,224 LOC", "gx": 5, "gy": 0, "w": 4, "d": 3, "h": 13, "what": "Shows many file types and lets people edit Markdown with rich interactions.", "how": "TipTap extensions and viewer components handle Markdown, documents, media, notebooks, and websites.", "talks": ["wiki-api", "proof", "state"], "children": [
|
|
28
|
-
{ "code": "TP", "name": "TipTap editor", "h": 8, "what": "Turns Markdown blocks into an editable document.", "how": "editor.tsx and extensions.ts register TipTap nodes and marks that map Markdown blocks to an editable ProseMirror document." },
|
|
29
|
-
{ "code": "VW", "name": "File viewers", "h": 6, "what": "Chooses a safe renderer for each supported file kind.", "how": "A viewer registry dispatches per-type renderers for images, PDFs, media, notebooks, CSVs, Mermaid, websites, and MDX; the MDX viewer compiles .mdx in-browser via the mdx-js compiler and executes its JSX inside a null-origin allow-scripts iframe (React loaded from esm.sh) behind a default-off scripts consent." },
|
|
30
|
-
{ "code": "CV", "name": "Canvas viewer", "h": 5, "what": "Renders and edits .excalidraw scene JSON in an Excalidraw surface.", "how": "The canvas viewer lazy-loads Excalidraw, debounces scene autosaves, embeds files, and reloads on sha256 conflicts; it renders read-only (viewModeEnabled) in git read-only workspaces and public share links." }
|
|
31
|
-
] },
|
|
32
|
-
{ "id": "hooks", "code": "HK", "name": "Page-shell hooks", "group": "surface", "loc": "1,688 LOC", "gx": 10, "gy": 0, "w": 2, "d": 2, "h": 5, "what": "Connects page actions to workspaces, file trees, uploads, scratchpad, and navigation.", "how": "Client hooks coordinate URL state, prefetching, workspace selection, and server calls.", "talks": ["wiki-api", "workspace", "state"], "children": [
|
|
33
|
-
{ "code": "FT", "name": "File tree", "h": 6, "what": "Load directories and preserve expanded navigation state.", "how": "use-file-tree.ts fetches directory listings and keeps expanded nodes in sync with the active path." },
|
|
34
|
-
{ "code": "OF", "name": "Open file", "h": 5, "what": "Resolve selected files into editor or viewer content.", "how": "use-open-file.ts maps selected paths to editor content or the correct file viewer." },
|
|
35
|
-
{ "code": "WS", "name": "Workspace switcher", "h": 4, "what": "Change roots without losing the current page intent.", "how": "use-workspaces.ts lists roots and swaps the active workspace while preserving the current page." },
|
|
36
|
-
{ "code": "UP", "name": "Upload flow", "h": 3, "what": "Coordinate drops, progress, and post-upload refreshes.", "how": "use-upload.ts stages dropped files, tracks progress, and refreshes the tree after uploads land." }
|
|
37
|
-
] },
|
|
38
|
-
{ "id": "state", "code": "ST", "name": "Client state", "group": "surface", "loc": "1,453 LOC", "gx": 13, "gy": 0, "w": 2, "d": 2, "h": 4, "what": "Keeps open pages, editor status, search, favorites, and agent activity responsive.", "how": "Zustand stores combine page caching, autosave state, revision recovery, and browser preferences.", "talks": ["editor", "web-shell", "wiki-api"], "children": [
|
|
39
|
-
{ "code": "PG", "name": "Page state", "h": 6, "what": "Track open paths, active tabs, and route transitions.", "how": "Zustand stores hold open paths, active tabs, and route transition state shared across the shell." },
|
|
40
|
-
{ "code": "ED", "name": "Editor state", "h": 7, "what": "Track dirty content, save status, and revision recovery.", "how": "editor-store.ts tracks dirty content, save status, and revision recovery for the active document." },
|
|
41
|
-
{ "code": "SR", "name": "Search state", "h": 4, "what": "Keep query, result scope, and selected matches stable.", "how": "search-store.ts keeps query, scope, and selected matches stable across navigation." },
|
|
42
|
-
{ "code": "AC", "name": "Activity state", "h": 3, "what": "Surface agent events, presence, and collaboration status.", "how": "ai-panel-store.ts and proof-store.ts hold agent events, presence, and collaboration status." }
|
|
43
|
-
] },
|
|
44
|
-
{ "id": "ai-panel", "code": "AI", "name": "Agent panel", "group": "surface", "loc": "934 LOC", "gx": 16, "gy": 0, "w": 2, "d": 2, "h": 3, "what": "Lets people register agents, inspect activity, and follow collaboration status.", "how": "A small client surface polls activity and calls registration, approval, and presence APIs.", "talks": ["agent-api", "state"] },
|
|
45
|
-
{ "id": "middleware", "code": "MW", "name": "Middleware gate", "group": "entry", "loc": "70 LOC", "gx": 0, "gy": 4, "w": 2, "d": 2, "h": 3, "what": "Stops protected pages before the app shell loads when no session cookie exists.", "how": "src/middleware.ts applies the cookie gate, lite-mode deny list, and pass-through rules.", "talks": ["web-shell", "auth"] },
|
|
46
|
-
{ "id": "auth", "code": "AU", "name": "Human access", "group": "entry", "loc": "618 LOC", "gx": 3, "gy": 4, "w": 2, "d": 2, "h": 5, "what": "Authenticates people and checks whether state-changing browser requests are allowed.", "how": "Better Auth, session checks, CSRF origin checks, admin rules, and embed-key checks share one boundary.", "talks": ["middleware", "wiki-api", "system-api", "share-api"], "children": [
|
|
47
|
-
{ "code": "BA", "name": "Better Auth", "h": 7, "what": "Create accounts, sessions, and sign-in responses.", "how": "The Better Auth server instance issues accounts, sessions, and sign-in responses from the database adapter." },
|
|
48
|
-
{ "code": "SS", "name": "Session boundary", "h": 6, "what": "Resolve the current person before protected handlers run.", "how": "Session checks resolve the current person before protected route handlers execute." },
|
|
49
|
-
{ "code": "CS", "name": "Origin checks", "h": 4, "what": "Reject cross-origin cookie mutations.", "how": "CSRF origin checks reject state-changing requests that lack the expected origin." },
|
|
50
|
-
{ "code": "AD", "name": "Admin policy", "h": 3, "what": "Gate system settings and privileged app controls.", "how": "Admin rules gate system settings and privileged controls behind a role check." }
|
|
51
|
-
] },
|
|
52
|
-
{ "id": "workspace", "code": "WS", "name": "Workspace registry", "group": "entry", "loc": "918 LOC", "gx": 6, "gy": 4, "w": 3, "d": 2, "h": 6, "what": "Selects one of the server's registered roots for each request.", "how": "workspaces.ts, config.ts, and workspace-context.ts resolve workspace headers, access, git roots, and remote mounts.", "talks": ["path", "wiki-api", "system-api", "agent-api"], "children": [
|
|
53
|
-
{ "code": "RG", "name": "Root registry", "h": 6, "what": "Stores and lists named workspace roots.", "how": "config.ts and workspaces.ts store and list the named roots registered for the server." },
|
|
54
|
-
{ "code": "CX", "name": "Request context", "h": 7, "what": "Resolves workspace identity and access for each request.", "how": "workspace-context.ts resolves the active workspace and access policy for each request." },
|
|
55
|
-
{ "code": "GI", "name": "Git roots", "h": 4, "what": "Recognizes repository-backed workspaces and branches.", "how": "Git root detection recognizes repository-backed workspaces and exposes their branches." },
|
|
56
|
-
{ "code": "RM", "name": "Remote mounts", "h": 3, "what": "Connects registered roots to remote folder mounts.", "how": "Remote mount config connects registered roots to SSHFS-backed folder mounts." }
|
|
57
|
-
] },
|
|
58
|
-
{ "id": "path", "code": "PT", "name": "Path containment", "group": "entry", "loc": "343 LOC", "gx": 10, "gy": 4, "w": 2, "d": 2, "h": 4, "what": "Keeps file operations inside the selected workspace.", "how": "resolveWorkspacePath realpaths roots, rejects traversal and denied segments, and checks symlink-safe ancestors.", "talks": ["workspace", "wiki-api", "agent-api", "git"] },
|
|
59
|
-
{ "id": "wiki-api", "code": "WK", "name": "Browser wiki API", "group": "entry", "loc": "2,701 LOC", "gx": 13, "gy": 4, "w": 3, "d": 2, "h": 8, "what": "Serves folder listings, file content, search, history, uploads, and watches.", "how": "31 route handlers resolve user workspaces, validate origins, call domain libraries, and serialize responses.", "talks": ["auth", "workspace", "path", "proof", "watch", "search", "git", "scratch"], "children": [
|
|
60
|
-
{ "code": "FI", "name": "File operations", "h": 8, "what": "List, read, write, move, upload, and delete workspace files.", "how": "Route handlers validate origins and call the filesystem library for list, read, write, move, upload, and delete; .excalidraw writes require a sha256 precondition." },
|
|
61
|
-
{ "code": "GI", "name": "Git views", "h": 5, "what": "Expose history, diffs, branches, and repository actions.", "how": "Git routes wrap the git integration to expose history, diffs, branches, and repository actions." },
|
|
62
|
-
{ "code": "SR", "name": "Search and links", "h": 5, "what": "Serve content search, backlinks, and slug lookups.", "how": "Search routes invoke the search engine for content matches, backlinks, and slug lookups." },
|
|
63
|
-
{ "code": "WS", "name": "Watch stream", "h": 4, "what": "Connect browser directories to file events.", "how": "Watch routes subscribe request scopes to the watcher pool for file events." }
|
|
64
|
-
] },
|
|
65
|
-
{ "id": "agent-api", "code": "AG", "name": "Agent HTTP API", "group": "entry", "loc": "2,612 LOC", "gx": 17, "gy": 4, "w": 3, "d": 2, "h": 8, "what": "Gives approved automation agents scoped file and collaboration operations.", "how": "22 route handlers enforce bearer identity, workspace scope, path globs, revision checks, and operation permissions.", "talks": ["auth", "workspace", "path", "proof", "search"], "children": [
|
|
66
|
-
{ "code": "FS", "name": "Raw filesystem", "h": 8, "what": "Read, write, search, move, and delete arbitrary file bytes.", "how": "Raw filesystem routes enforce bearer identity, workspace scope, and path globs before byte-level operations." },
|
|
67
|
-
{ "code": "MD", "name": "Markdown collab", "h": 8, "what": "Read snapshots and apply revision-checked block operations.", "how": "Markdown routes read snapshots and apply revision-checked block operations through the proof core." },
|
|
68
|
-
{ "code": "EV", "name": "Events and activity", "h": 4, "what": "Stream document changes and provenance to agents.", "how": "Event routes stream document changes and provenance to approved agents." },
|
|
69
|
-
{ "code": "RG", "name": "Registration", "h": 4, "what": "Register agents via TOFU approval or service-token bootstrap, and expose approved scopes.", "how": "Registration routes record agents; a valid X-Service-Token header auto-approves and mints the bearer token inline; otherwise the owner approves and the agent polls a one-shot pickup." }
|
|
70
|
-
] },
|
|
71
|
-
{ "id": "cli", "code": "CL", "name": "CLI launcher", "group": "compute", "loc": "1,862 LOC", "gx": 0, "gy": 7, "w": 2, "d": 2, "h": 5, "what": "Starts the packaged server and manages local service or remote-mount setup.", "how": "bin/ parses options, applies environment precedence, starts the standalone server, and exposes service helpers.", "talks": ["ci", "web-shell", "workspace", "sshfs"] },
|
|
72
|
-
{ "id": "system-api", "code": "SY", "name": "System config API", "group": "entry", "loc": "902 LOC", "gx": 3, "gy": 7, "w": 2, "d": 2, "h": 4, "what": "Changes workspaces, users, administrators, pins, and local settings.", "how": "14 route handlers use session and origin checks before mutating persisted configuration.", "talks": ["auth", "workspace", "auth-store"] },
|
|
73
|
-
{ "id": "share-api", "code": "SH", "name": "Shared documents", "group": "entry", "loc": "817 LOC", "gx": 6, "gy": 7, "w": 3, "d": 2, "h": 4, "what": "Publishes read-only document links with optional unlock and expiry controls.", "how": "Share routes and shared-docs modules create opaque grants, validate unlocks, and render sanitized content.", "talks": ["auth", "share-store", "markdown"] },
|
|
74
|
-
{ "id": "mcp", "code": "MC", "name": "MCP adapter", "group": "compute", "loc": "2,911 LOC", "gx": 10, "gy": 7, "w": 3, "d": 2, "h": 6, "what": "Lets MCP clients use the agent contract through a separate npm package.", "how": "packages/wiki-viewer-mcp defines 13 Zod-backed tools and a typed HTTP client with revision and scope errors; its register command auto-approves via the server service token when present.", "talks": ["agent-api", "proof"] },
|
|
75
|
-
{ "id": "app-runner", "code": "AR", "name": "Node app runner", "group": "compute", "loc": "738 LOC", "gx": 14, "gy": 7, "w": 3, "d": 2, "h": 5, "what": "Runs trusted node-app folders and proxies their local web surface.", "how": "app-runner.ts manages child processes, readiness probes, ports, logs, access-checked forwarding (a workspace-root app has relPath '' and is proxied via the reserved ~root sentinel), pinned boot restore, crash caps, and file-change supervision.", "talks": ["wiki-api", "path", "web-shell"] },
|
|
76
|
-
{ "id": "git", "code": "GT", "name": "Git integration", "group": "domain", "loc": "871 LOC", "gx": 18, "gy": 7, "w": 2, "d": 2, "h": 5, "what": "Shows repository history and supports safe branch-oriented workspace actions.", "how": "git.ts wraps the system binary, scans for leaked credentials, and backs history, diff, branch, and clone routes.", "talks": ["wiki-api", "path", "workspace"] },
|
|
77
|
-
{ "id": "sshfs", "code": "SF", "name": "SSHFS remotes", "group": "domain", "loc": "464 LOC", "gx": 21, "gy": 7, "w": 2, "d": 2, "h": 4, "what": "Makes remote folders appear as workspaces through a local mount boundary.", "how": "sshfs.ts and mount helpers manage remote lifecycle, reconnects, and mount hazards.", "talks": ["workspace", "path", "cli"] },
|
|
78
|
-
{ "id": "hosted-apps", "code": "HA", "name": "Hosted apps", "group": "compute", "loc": "560 LOC", "gx": 24, "gy": 7, "w": 2, "d": 2, "h": 4, "what": "Maps short user-chosen slugs to HTML directories or running node apps reachable at /app/<slug>.", "how": "hosted-apps.ts persists the slug registry (~/.wiki-viewer/hosted-apps.json); /api/wiki/hosted-apps manages entries, pinning, and derived node status; the sidebar sorts pinned apps first and exposes status/error popovers with restart-now; app-proxy-core.ts forwards existing and slug-routed node traffic while the /app/<slug> route serves HTML dirs dir-aware or proxies each request to the live child port.", "talks": ["wiki-api", "path", "workspace", "app-runner", "web-shell"] },
|
|
79
|
-
{ "id": "proof", "code": "PR", "name": "Proof core", "group": "domain", "loc": "1,397 LOC", "gx": 1, "gy": 10, "w": 4, "d": 3, "h": 10, "what": "Applies structured Markdown edits while preserving revisions, references, comments, and suggestions.", "how": "ops-applier.ts parses blocks, checks base revisions, applies operations, writes atomically, and updates sidecar metadata.", "talks": ["safety", "markdown", "auth-store", "audit-store"], "children": [
|
|
80
|
-
{ "code": "OP", "name": "Block operations", "h": 9, "what": "Apply insert, replace, delete, and annotation operations.", "how": "ops-applier.ts applies insert, replace, delete, and annotation operations (including comment/suggestion edit and delete) against parsed blocks." },
|
|
81
|
-
{ "code": "RF", "name": "Reference map", "h": 5, "what": "Keeps stable block references across edits.", "how": "block-refs.ts keeps stable block references valid across edits." },
|
|
82
|
-
{ "code": "SC", "name": "Sidecar state", "h": 6, "what": "Stores revisions, activity, comments, and suggestions beside files.", "how": "sidecar.ts and activity.ts store revisions, activity, comments, and suggestions beside each file." },
|
|
83
|
-
{ "code": "EV", "name": "Event bus", "h": 4, "what": "Publishes document changes to watchers and agents.", "how": "event-bus.ts publishes document changes to watchers and agent subscribers." }
|
|
84
|
-
] },
|
|
85
|
-
{ "id": "safety", "code": "LK", "name": "Locking and audit", "group": "domain", "loc": "539 LOC", "gx": 6, "gy": 10, "w": 3, "d": 2, "h": 7, "what": "Prevents concurrent edits from silently overwriting one another.", "how": "Mutexes, proper-lockfile, leases, collab state, idempotency, rate limits, and audit rows protect writes.", "talks": ["proof", "audit-store"] },
|
|
86
|
-
{ "id": "watch", "code": "WT", "name": "Watch and SSE", "group": "compute", "loc": "725 LOC", "gx": 14, "gy": 10, "w": 2, "d": 2, "h": 5, "what": "Notifies browser and agent clients when files change outside their current request.", "how": "watcher-pool.ts uses chokidar subscriptions, ancestor merging, scope rebasing, deduplication, and heartbeats.", "talks": ["wiki-api", "state", "proof"], "children": [
|
|
87
|
-
{ "code": "CH", "name": "Chokidar pool", "h": 7, "what": "Share filesystem watchers across compatible scopes.", "how": "watcher-pool.ts shares chokidar watchers across compatible scopes." },
|
|
88
|
-
{ "code": "RB", "name": "Scope rebasing", "h": 5, "what": "Map ancestor events back to subscribed workspace paths.", "how": "Scope rebasing maps ancestor events back to subscribed workspace paths." },
|
|
89
|
-
{ "code": "DD", "name": "Deduplication", "h": 4, "what": "Collapse repeated changes into useful event payloads.", "how": "Deduplication collapses repeated changes into one useful event payload." },
|
|
90
|
-
{ "code": "HB", "name": "Heartbeats", "h": 3, "what": "Keep long-lived browser and agent streams alive.", "how": "Heartbeats keep long-lived browser and agent streams alive." }
|
|
91
|
-
] },
|
|
92
|
-
{ "id": "search", "code": "SE", "name": "Search engine", "group": "domain", "loc": "1,845 LOC", "gx": 17, "gy": 10, "w": 3, "d": 2, "h": 8, "what": "Finds files and content without loading an entire workspace into memory.", "how": "Ripgrep adapters stream bounded JSON results, retry advanced patterns, and verify backlinks through Markdown parsing.", "talks": ["wiki-api", "agent-api", "markdown", "path"], "children": [
|
|
93
|
-
{ "code": "RG", "name": "Ripgrep adapter", "h": 7, "what": "Stream bounded file and content matches.", "how": "rg-search.ts and rg-snippet.ts stream bounded ripgrep matches as JSON; .excalidraw scene JSON is excluded from full-text content search while filename search still finds it." },
|
|
94
|
-
{ "code": "FP", "name": "File paths", "h": 5, "what": "Filter hidden, denied, and out-of-scope paths.", "how": "rg-path.ts filters hidden, denied, and out-of-scope paths before searching." },
|
|
95
|
-
{ "code": "BL", "name": "Backlinks", "h": 6, "what": "Parse Markdown references and return incoming links.", "how": "backlinks.ts parses Markdown references and returns incoming links." },
|
|
96
|
-
{ "code": "RT", "name": "Retry policy", "h": 3, "what": "Retry advanced queries when the fast path rejects them.", "how": "The retry policy reruns advanced queries when the fast path rejects them." }
|
|
97
|
-
] },
|
|
98
|
-
{ "id": "markdown", "code": "MD", "name": "Markdown pipeline", "group": "domain", "loc": "1,023 LOC", "gx": 0, "gy": 13, "w": 3, "d": 2, "h": 6, "what": "Converts Markdown into safe HTML and understands links, embeds, tasks, and frontmatter.", "how": "Unified remark and rehype plugins parse, sanitize, rewrite relative assets, detect embeds, and cache output.", "talks": ["proof", "search", "share-api", "editor"], "children": [
|
|
99
|
-
{ "code": "PA", "name": "Parser", "h": 7, "what": "Build an AST from Markdown and GitHub-flavored syntax.", "how": "Unified remark plugins parse Markdown and GitHub-flavored syntax into an AST." },
|
|
100
|
-
{ "code": "HT", "name": "HTML renderer", "h": 6, "what": "Convert parsed content into safe display HTML.", "how": "to-html.ts runs rehype plugins and the sanitize schema to emit safe HTML." },
|
|
101
|
-
{ "code": "WL", "name": "Wiki links", "h": 4, "what": "Resolve internal links and relative asset references.", "how": "wikilink.ts resolves internal links and relative asset references." },
|
|
102
|
-
{ "code": "EM", "name": "Embeds", "h": 4, "what": "Detect supported external media and document embeds.", "how": "lib/embeds detects supported external media and document embeds." }
|
|
103
|
-
] },
|
|
104
|
-
{ "id": "scratch", "code": "SC", "name": "Scratchpad", "group": "domain", "loc": "355 LOC", "gx": 8, "gy": 13, "w": 2, "d": 2, "h": 4, "what": "Captures quick snippets before they become normal workspace files.", "how": "Scratch config and detection modules create, sweep, and promote temporary captures.", "talks": ["wiki-api", "path", "state"] },
|
|
105
|
-
{ "id": "tests", "code": "TS", "name": "Proof test suite", "group": "delivery", "loc": "14,849 LOC", "gx": 12, "gy": 13, "w": 2, "d": 2, "h": 5, "what": "Exercises the filesystem, auth, collaboration, and agent safety contracts.", "how": "71 proof test files run through scripts/test-floor.mjs, which enforces a 673-test minimum.", "talks": ["proof", "agent-api", "wiki-api", "ci"] },
|
|
106
|
-
{ "id": "ci", "code": "CI", "name": "Build and publish", "group": "delivery", "loc": "3 workflow files", "gx": 15, "gy": 13, "w": 3, "d": 2, "h": 3, "what": "Checks changes and prepares the standalone package for release.", "how": "Versioned workflows run formatting, tests, builds, and npm publishing around the one server artifact.", "talks": ["cli", "editor", "agent-api", "tests"] },
|
|
107
|
-
{ "id": "auth-store", "code": "DB", "name": "Auth store", "group": "data", "loc": "role", "gx": 0, "gy": 16, "w": 3, "d": 2, "h": 1, "slab": true, "what": "Durable users, sessions, and account records.", "how": "Better Auth uses a local SQLite store through the project database adapter.", "talks": ["auth", "system-api", "proof"] },
|
|
108
|
-
{ "id": "share-store", "code": "DB", "name": "Share store", "group": "data", "loc": "role", "gx": 4, "gy": 16, "w": 3, "d": 2, "h": 1, "slab": true, "what": "Durable public-share grants, expiry data, and view counts.", "how": "shared-docs/db.ts persists opaque share metadata in SQLite.", "talks": ["share-api"] },
|
|
109
|
-
{ "id": "audit-store", "code": "DB", "name": "Audit store", "group": "data", "loc": "role", "gx": 12, "gy": 16, "w": 3, "d": 2, "h": 1, "slab": true, "what": "Append-only records of scoped agent filesystem operations.", "how": "proof/audit.ts writes operation, path, revision, and hash metadata to SQLite.", "talks": ["safety", "agent-api"] }
|
|
110
|
-
],
|
|
111
|
-
"edges": [
|
|
112
|
-
{ "f": "middleware", "t": "web-shell", "flow": 1, "pay": "Session gate" },
|
|
113
|
-
{ "f": "web-shell", "t": "hooks", "flow": 1, "pay": "Page actions" },
|
|
114
|
-
{ "f": "hooks", "t": "wiki-api", "flow": 1, "pay": "Workspace request" },
|
|
115
|
-
{ "f": "wiki-api", "t": "auth", "flow": 1, "pay": "Session context" },
|
|
116
|
-
{ "f": "wiki-api", "t": "workspace", "flow": 1, "pay": "Workspace choice" },
|
|
117
|
-
{ "f": "workspace", "t": "path", "flow": 1, "pay": "Root and relative path" },
|
|
118
|
-
{ "f": "wiki-api", "t": "proof", "flow": 1, "pay": "Markdown command" },
|
|
119
|
-
{ "f": "editor", "t": "wiki-api", "flow": 1, "pay": "Read or save" },
|
|
120
|
-
{ "f": "wiki-api", "t": "watch", "flow": 1, "pay": "Watch scope" },
|
|
121
|
-
{ "f": "watch", "t": "state", "flow": 1, "pay": "File event" },
|
|
122
|
-
{ "f": "agent-api", "t": "proof", "flow": 1, "pay": "Scoped block ops" },
|
|
123
|
-
{ "f": "proof", "t": "safety", "flow": 1, "pay": "Locked mutation" },
|
|
124
|
-
{ "f": "safety", "t": "audit-store", "flow": 1, "pay": "Audit row" },
|
|
125
|
-
{ "f": "proof", "t": "auth-store", "flow": 1, "pay": "Access-linked state" },
|
|
126
|
-
{ "f": "share-api", "t": "share-store", "flow": 1, "pay": "Share grant" },
|
|
127
|
-
{ "f": "share-api", "t": "markdown", "flow": 1, "pay": "Safe rendering" },
|
|
128
|
-
{ "f": "proof", "t": "markdown", "flow": 1, "pay": "Parsed document" },
|
|
129
|
-
{ "f": "search", "t": "markdown", "flow": 1, "pay": "Parsed backlink" },
|
|
130
|
-
{ "f": "wiki-api", "t": "search", "flow": 1, "pay": "Query" },
|
|
131
|
-
{ "f": "wiki-api", "t": "git", "flow": 1, "pay": "Repository action" },
|
|
132
|
-
{ "f": "workspace", "t": "sshfs", "flow": 1, "pay": "Remote workspace" },
|
|
133
|
-
{ "f": "wiki-api", "t": "scratch", "flow": 1, "pay": "Quick capture" },
|
|
134
|
-
{ "f": "wiki-api", "t": "app-runner", "flow": 1, "pay": "Trusted app launch" },
|
|
135
|
-
{ "f": "app-runner", "t": "web-shell", "flow": 1, "pay": "Proxied preview" },
|
|
136
|
-
{ "f": "wiki-api", "t": "hosted-apps", "flow": 1, "pay": "Hosted app registry" },
|
|
137
|
-
{ "f": "hosted-apps", "t": "web-shell", "flow": 1, "pay": "Slug-served app" },
|
|
138
|
-
{ "f": "mcp", "t": "agent-api", "flow": 1, "pay": "MCP tool call" },
|
|
139
|
-
{ "f": "ai-panel", "t": "agent-api", "flow": 1, "pay": "Agent management" },
|
|
140
|
-
{ "f": "state", "t": "editor", "flow": 1, "pay": "Page state" },
|
|
141
|
-
{ "f": "cli", "t": "web-shell", "dashed": 1, "pay": "Server startup" },
|
|
142
|
-
{ "f": "ci", "t": "cli", "dashed": 1, "pay": "Package output" },
|
|
143
|
-
{ "f": "ci", "t": "tests", "dashed": 1, "pay": "Quality checks" },
|
|
144
|
-
{ "f": "tests", "t": "proof", "dashed": 1, "pay": "Contract coverage" }
|
|
145
|
-
],
|
|
146
|
-
"externals": [
|
|
147
|
-
{ "id": "browser", "name": "Browser", "target": "web-shell", "gx": 4, "gy": -3, "pay": "User interaction" },
|
|
148
|
-
{ "id": "identity-service", "name": "Identity service", "target": "auth", "gx": -3, "gy": 5, "pay": "Optional identity" },
|
|
149
|
-
{ "id": "git-host", "name": "Git host", "target": "git", "gx": 23, "gy": 6, "pay": "Repository data" }
|
|
150
|
-
],
|
|
151
|
-
"trace": [
|
|
152
|
-
["web-shell", "A person opens the browser workbench."],
|
|
153
|
-
["middleware", "Middleware checks for the session gate before protected pages render."],
|
|
154
|
-
["web-shell", "The app shell mounts its workspace and file-tree controls."],
|
|
155
|
-
["hooks", "Page hooks request available workspaces and the current directory listing."],
|
|
156
|
-
["wiki-api", "The wiki API validates the request and selects the content handler."],
|
|
157
|
-
["workspace", "Workspace context resolves the selected root and access policy."],
|
|
158
|
-
["path", "Path containment resolves the relative file without crossing the root."],
|
|
159
|
-
["editor", "The editor renders the Markdown snapshot and starts its watch stream."],
|
|
160
|
-
["proof", "A debounced save applies the new blocks and advances the revision atomically."],
|
|
161
|
-
["agent-api", "An approved agent receives the request and returns scoped operations."],
|
|
162
|
-
["state", "Client state records the revision and refreshes the visible page."],
|
|
163
|
-
["web-shell", "The browser presents the saved document and current activity."]
|
|
164
|
-
],
|
|
165
|
-
"overview": {
|
|
166
|
-
"what": "Wiki Viewer is one local-first web server for browsing and editing many file types. Its browser workbench, scoped agent API, and MCP adapter all meet at workspace-aware filesystem operations, with Markdown collaboration adding revisions and provenance around ordinary files.",
|
|
167
|
-
"how": "The standalone Next.js server owns request routing, auth, workspace selection, path containment, rendering, git and remote adapters, app launching, and three SQLite-backed roles. Human saves and agent block operations share locks and revision checks. Chokidar watchers, SSE streams, and timers provide asynchronous behavior inside the same deployed service; no separate queue or worker service is present."
|
|
168
|
-
}
|
|
169
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 0
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 1
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 10
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 11
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 12
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 13
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 14
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 15
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 16
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 17
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 18
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 2
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 20
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 21
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 22
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 23
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 24
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 25
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 26
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 27
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 28
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 29
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 3
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 30
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 31
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 32
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 33
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 34
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 35
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 36
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 37
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 38
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 39
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 4
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 40
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 41
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 42
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 43
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 44
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 45
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 46
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 47
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 48
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 49
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 5
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 6
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 7
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 8
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data 9
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
hello
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
data
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
hello
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
a
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
b
|
|
File without changes
|
|
File without changes
|
|
File without changes
|