wiki-viewer 1.7.2 → 1.8.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.
Files changed (414) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-path-routes-manifest.json +6 -0
  3. package/.next/standalone/.next/build-manifest.json +3 -3
  4. package/.next/standalone/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/.next/routes-manifest.json +40 -0
  6. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  7. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  8. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  12. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  14. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  15. package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
  16. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  17. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  18. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  19. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  20. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  21. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  22. package/.next/standalone/.next/server/app/api/agent/activity/route.js +6 -6
  23. package/.next/standalone/.next/server/app/api/agent/activity/route.js.nft.json +1 -1
  24. package/.next/standalone/.next/server/app/api/agent/admin/agents/[agentId]/revoke/route.js +6 -6
  25. package/.next/standalone/.next/server/app/api/agent/admin/agents/[agentId]/revoke/route.js.nft.json +1 -1
  26. package/.next/standalone/.next/server/app/api/agent/admin/agents/route.js +6 -6
  27. package/.next/standalone/.next/server/app/api/agent/admin/agents/route.js.nft.json +1 -1
  28. package/.next/standalone/.next/server/app/api/agent/admin/registrations/[regId]/approve/route.js +7 -7
  29. package/.next/standalone/.next/server/app/api/agent/admin/registrations/[regId]/approve/route.js.nft.json +1 -1
  30. package/.next/standalone/.next/server/app/api/agent/admin/registrations/[regId]/deny/route.js +5 -5
  31. package/.next/standalone/.next/server/app/api/agent/admin/registrations/[regId]/deny/route.js.nft.json +1 -1
  32. package/.next/standalone/.next/server/app/api/agent/admin/registrations/route.js +5 -5
  33. package/.next/standalone/.next/server/app/api/agent/admin/registrations/route.js.nft.json +1 -1
  34. package/.next/standalone/.next/server/app/api/agent/events/[...path]/route.js +8 -7
  35. package/.next/standalone/.next/server/app/api/agent/events/[...path]/route.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/api/agent/files/[...path]/route.js +9 -8
  37. package/.next/standalone/.next/server/app/api/agent/files/[...path]/route.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/api/agent/fs/file/[...path]/route.js +8 -7
  39. package/.next/standalone/.next/server/app/api/agent/fs/file/[...path]/route.js.nft.json +1 -1
  40. package/.next/standalone/.next/server/app/api/agent/fs/ls/[[...path]]/route.js +7 -7
  41. package/.next/standalone/.next/server/app/api/agent/fs/ls/[[...path]]/route.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/api/agent/fs/move/route.js +6 -5
  43. package/.next/standalone/.next/server/app/api/agent/fs/move/route.js.nft.json +1 -1
  44. package/.next/standalone/.next/server/app/api/agent/fs/search/route.js +7 -6
  45. package/.next/standalone/.next/server/app/api/agent/fs/search/route.js.nft.json +1 -1
  46. package/.next/standalone/.next/server/app/api/agent/internal/span/route.js +6 -5
  47. package/.next/standalone/.next/server/app/api/agent/internal/span/route.js.nft.json +1 -1
  48. package/.next/standalone/.next/server/app/api/agent/settings/route.js +7 -7
  49. package/.next/standalone/.next/server/app/api/agent/settings/route.js.nft.json +1 -1
  50. package/.next/standalone/.next/server/app/api/agent/sidecar/[...path]/route.js +8 -7
  51. package/.next/standalone/.next/server/app/api/agent/sidecar/[...path]/route.js.nft.json +1 -1
  52. package/.next/standalone/.next/server/app/api/app-proxy/[...path]/route.js +2 -2
  53. package/.next/standalone/.next/server/app/api/app-proxy/[...path]/route.js.nft.json +1 -1
  54. package/.next/standalone/.next/server/app/api/assets/[...path]/route.js +8 -2
  55. package/.next/standalone/.next/server/app/api/assets/[...path]/route.js.nft.json +1 -1
  56. package/.next/standalone/.next/server/app/api/auth/[...all]/route.js +5 -5
  57. package/.next/standalone/.next/server/app/api/auth/[...all]/route.js.nft.json +1 -1
  58. package/.next/standalone/.next/server/app/api/system/admins/route/app-paths-manifest.json +3 -0
  59. package/.next/standalone/.next/server/app/api/system/admins/route/build-manifest.json +9 -0
  60. package/.next/standalone/.next/server/app/api/system/admins/route/server-reference-manifest.json +4 -0
  61. package/.next/standalone/.next/server/app/api/system/admins/route.js +14 -0
  62. package/.next/standalone/.next/server/app/api/system/admins/route.js.map +5 -0
  63. package/.next/standalone/.next/server/app/api/system/admins/route.js.nft.json +1 -0
  64. package/.next/standalone/.next/server/app/api/system/admins/route_client-reference-manifest.js +3 -0
  65. package/.next/standalone/.next/server/app/api/system/auth-config/route.js +6 -6
  66. package/.next/standalone/.next/server/app/api/system/auth-config/route.js.nft.json +1 -1
  67. package/.next/standalone/.next/server/app/api/system/auth-settings/route.js +4 -4
  68. package/.next/standalone/.next/server/app/api/system/auth-settings/route.js.nft.json +1 -1
  69. package/.next/standalone/.next/server/app/api/system/browse/route.js +4 -4
  70. package/.next/standalone/.next/server/app/api/system/browse/route.js.nft.json +1 -1
  71. package/.next/standalone/.next/server/app/api/system/clear-root/route.js +5 -5
  72. package/.next/standalone/.next/server/app/api/system/clear-root/route.js.nft.json +1 -1
  73. package/.next/standalone/.next/server/app/api/system/config/route.js +6 -6
  74. package/.next/standalone/.next/server/app/api/system/config/route.js.nft.json +1 -1
  75. package/.next/standalone/.next/server/app/api/system/pins/route.js +4 -4
  76. package/.next/standalone/.next/server/app/api/system/pins/route.js.nft.json +1 -1
  77. package/.next/standalone/.next/server/app/api/system/reveal/route.js +6 -6
  78. package/.next/standalone/.next/server/app/api/system/reveal/route.js.nft.json +1 -1
  79. package/.next/standalone/.next/server/app/api/system/root-status/route.js +5 -5
  80. package/.next/standalone/.next/server/app/api/system/root-status/route.js.nft.json +1 -1
  81. package/.next/standalone/.next/server/app/api/system/set-root/route.js +6 -6
  82. package/.next/standalone/.next/server/app/api/system/set-root/route.js.nft.json +1 -1
  83. package/.next/standalone/.next/server/app/api/system/users/route/app-paths-manifest.json +3 -0
  84. package/.next/standalone/.next/server/app/api/system/users/route/build-manifest.json +9 -0
  85. package/.next/standalone/.next/server/app/api/system/users/route/server-reference-manifest.json +4 -0
  86. package/.next/standalone/.next/server/app/api/system/users/route.js +14 -0
  87. package/.next/standalone/.next/server/app/api/system/users/route.js.map +5 -0
  88. package/.next/standalone/.next/server/app/api/system/users/route.js.nft.json +1 -0
  89. package/.next/standalone/.next/server/app/api/system/users/route_client-reference-manifest.js +3 -0
  90. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/open/route/app-paths-manifest.json +3 -0
  91. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/open/route/build-manifest.json +9 -0
  92. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/open/route/server-reference-manifest.json +4 -0
  93. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/open/route.js +14 -0
  94. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/open/route.js.map +5 -0
  95. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/open/route.js.nft.json +1 -0
  96. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/open/route_client-reference-manifest.js +3 -0
  97. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/route/app-paths-manifest.json +3 -0
  98. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/route/build-manifest.json +9 -0
  99. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/route/server-reference-manifest.json +4 -0
  100. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/route.js +14 -0
  101. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/route.js.map +5 -0
  102. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/route.js.nft.json +1 -0
  103. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/route_client-reference-manifest.js +3 -0
  104. package/.next/standalone/.next/server/app/api/system/workspaces/route/app-paths-manifest.json +3 -0
  105. package/.next/standalone/.next/server/app/api/system/workspaces/route/build-manifest.json +9 -0
  106. package/.next/standalone/.next/server/app/api/system/workspaces/route/server-reference-manifest.json +4 -0
  107. package/.next/standalone/.next/server/app/api/system/workspaces/route.js +14 -0
  108. package/.next/standalone/.next/server/app/api/system/workspaces/route.js.map +5 -0
  109. package/.next/standalone/.next/server/app/api/system/workspaces/route.js.nft.json +1 -0
  110. package/.next/standalone/.next/server/app/api/system/workspaces/route_client-reference-manifest.js +3 -0
  111. package/.next/standalone/.next/server/app/api/upload/[...path]/route.js +8 -2
  112. package/.next/standalone/.next/server/app/api/upload/[...path]/route.js.nft.json +1 -1
  113. package/.next/standalone/.next/server/app/api/wiki/app/route.js +5 -5
  114. package/.next/standalone/.next/server/app/api/wiki/app/route.js.nft.json +1 -1
  115. package/.next/standalone/.next/server/app/api/wiki/content/route.js +6 -6
  116. package/.next/standalone/.next/server/app/api/wiki/content/route.js.nft.json +1 -1
  117. package/.next/standalone/.next/server/app/api/wiki/download/route.js +7 -7
  118. package/.next/standalone/.next/server/app/api/wiki/download/route.js.nft.json +1 -1
  119. package/.next/standalone/.next/server/app/api/wiki/file/route.js +8 -2
  120. package/.next/standalone/.next/server/app/api/wiki/file/route.js.nft.json +1 -1
  121. package/.next/standalone/.next/server/app/api/wiki/folder/route.js +6 -6
  122. package/.next/standalone/.next/server/app/api/wiki/folder/route.js.nft.json +1 -1
  123. package/.next/standalone/.next/server/app/api/wiki/move/route.js +6 -6
  124. package/.next/standalone/.next/server/app/api/wiki/move/route.js.nft.json +1 -1
  125. package/.next/standalone/.next/server/app/api/wiki/new-file/route.js +7 -7
  126. package/.next/standalone/.next/server/app/api/wiki/new-file/route.js.nft.json +1 -1
  127. package/.next/standalone/.next/server/app/api/wiki/page/route.js +7 -7
  128. package/.next/standalone/.next/server/app/api/wiki/page/route.js.nft.json +1 -1
  129. package/.next/standalone/.next/server/app/api/wiki/presence/route.js +7 -7
  130. package/.next/standalone/.next/server/app/api/wiki/presence/route.js.nft.json +1 -1
  131. package/.next/standalone/.next/server/app/api/wiki/route.js +6 -6
  132. package/.next/standalone/.next/server/app/api/wiki/route.js.nft.json +1 -1
  133. package/.next/standalone/.next/server/app/api/wiki/search/route/app-paths-manifest.json +3 -0
  134. package/.next/standalone/.next/server/app/api/wiki/search/route/build-manifest.json +9 -0
  135. package/.next/standalone/.next/server/app/api/wiki/search/route/server-reference-manifest.json +4 -0
  136. package/.next/standalone/.next/server/app/api/wiki/search/route.js +15 -0
  137. package/.next/standalone/.next/server/app/api/wiki/search/route.js.map +5 -0
  138. package/.next/standalone/.next/server/app/api/wiki/search/route.js.nft.json +1 -0
  139. package/.next/standalone/.next/server/app/api/wiki/search/route_client-reference-manifest.js +3 -0
  140. package/.next/standalone/.next/server/app/api/wiki/slugs/route.js +6 -6
  141. package/.next/standalone/.next/server/app/api/wiki/slugs/route.js.nft.json +1 -1
  142. package/.next/standalone/.next/server/app/api/wiki/upload/route.js +7 -7
  143. package/.next/standalone/.next/server/app/api/wiki/upload/route.js.nft.json +1 -1
  144. package/.next/standalone/.next/server/app/api/wiki/watch/route.js +7 -9
  145. package/.next/standalone/.next/server/app/api/wiki/watch/route.js.nft.json +1 -1
  146. package/.next/standalone/.next/server/app/index.html +1 -1
  147. package/.next/standalone/.next/server/app/index.rsc +3 -3
  148. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  149. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  150. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  151. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
  152. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  153. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  154. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  155. package/.next/standalone/.next/server/app/signin/page.js +1 -1
  156. package/.next/standalone/.next/server/app/signin/page.js.nft.json +1 -1
  157. package/.next/standalone/.next/server/app/signin/page_client-reference-manifest.js +1 -1
  158. package/.next/standalone/.next/server/app-paths-manifest.json +6 -0
  159. package/.next/standalone/.next/server/chunks/0p91_next_dist_esm_build_templates_app-route_0d2jbo5.js +1 -1
  160. package/.next/standalone/.next/server/chunks/0p91_next_dist_esm_build_templates_app-route_0ytral2.js +1 -1
  161. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0-244bv._.js +16 -0
  162. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0xz-_0v._.js → [root-of-the-server]__0-inabx._.js} +2 -2
  163. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0-ao6a_._.js → [root-of-the-server]__0.-9jt0._.js} +1 -1
  164. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0~-r-8f._.js → [root-of-the-server]__00c1-dr._.js} +1 -1
  165. package/.next/standalone/.next/server/chunks/[root-of-the-server]__00lep-u._.js +3 -0
  166. package/.next/standalone/.next/server/chunks/[root-of-the-server]__00mtevo._.js +3 -0
  167. package/.next/standalone/.next/server/chunks/[root-of-the-server]__00qu86p._.js +3 -0
  168. package/.next/standalone/.next/server/chunks/[root-of-the-server]__012753j._.js +3 -0
  169. package/.next/standalone/.next/server/chunks/[root-of-the-server]__01hp8ax._.js +3 -0
  170. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0jhr.ex._.js → [root-of-the-server]__02n6z97._.js} +1 -1
  171. package/.next/standalone/.next/server/chunks/[root-of-the-server]__036mhjp._.js +5 -0
  172. package/.next/standalone/.next/server/chunks/[root-of-the-server]__03p0ob1._.js +16 -0
  173. package/.next/standalone/.next/server/chunks/[root-of-the-server]__05t~v6l._.js +3 -0
  174. package/.next/standalone/.next/server/chunks/[root-of-the-server]__068ni_k._.js +3 -0
  175. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__082nhm6._.js → [root-of-the-server]__07vphbd._.js} +1 -1
  176. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0pg6dn-._.js → [root-of-the-server]__08lkuwa._.js} +1 -1
  177. package/.next/standalone/.next/server/chunks/[root-of-the-server]__09cqzem._.js +3 -0
  178. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0p_ox-k._.js → [root-of-the-server]__09k4q9e._.js} +1 -1
  179. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0_0_601._.js +3 -0
  180. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ae3dk6._.js +3 -0
  181. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0s28.4-._.js → [root-of-the-server]__0af-x45._.js} +1 -1
  182. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0cqu-wm._.js +3 -0
  183. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0d75a5q._.js +1 -1
  184. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0d7x3e1._.js +3 -0
  185. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0d7zxm_._.js +3 -0
  186. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0e7vs98._.js +3 -0
  187. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0fxzg4v._.js +3 -0
  188. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0gda_iu._.js +3 -0
  189. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0hu~q20._.js +3 -0
  190. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0jk1uf4._.js +3 -0
  191. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0l-8clq._.js +3 -0
  192. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0lhka0x._.js +3 -0
  193. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0kdn1le._.js → [root-of-the-server]__0na11h0._.js} +2 -2
  194. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0nd.b_c._.js +3 -0
  195. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0otb8ra._.js +3 -0
  196. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0p0-p__._.js +3 -0
  197. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0piofm3._.js +3 -0
  198. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0rrf-jr._.js +3 -0
  199. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0s6_lzw._.js +3 -0
  200. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0sh13v5._.js +3 -0
  201. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ta~flu._.js +3 -0
  202. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0v4im4p._.js +3 -0
  203. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0qn8e~s._.js → [root-of-the-server]__0v_kyp-._.js} +1 -1
  204. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0vatqe-._.js +3 -0
  205. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0vdb2nr._.js +3 -0
  206. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0wdh63w._.js +3 -0
  207. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0z3wg9x._.js +12 -0
  208. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0mzo03s._.js → [root-of-the-server]__0~.-3yk._.js} +1 -1
  209. package/.next/standalone/.next/server/chunks/[root-of-the-server]__123._fe._.js +3 -0
  210. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__12800b1._.js → [root-of-the-server]__12ee_s6._.js} +1 -1
  211. package/.next/standalone/.next/server/chunks/[root-of-the-server]__12onytt._.js +3 -0
  212. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__04udrya._.js → [root-of-the-server]__12q8ch8._.js} +2 -2
  213. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1377.79._.js +3 -0
  214. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1378-ox._.js +3 -0
  215. package/.next/standalone/.next/server/chunks/[root-of-the-server]__13aid91._.js +3 -0
  216. package/.next/standalone/.next/server/chunks/[root-of-the-server]__13hp4tw._.js +12 -0
  217. package/.next/standalone/.next/server/chunks/_079xuln._.js +1 -1
  218. package/.next/standalone/.next/server/chunks/_0dr1r1g._.js +452 -0
  219. package/.next/standalone/.next/server/chunks/_101exke._.js +452 -0
  220. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_system_admins_route_actions_0dsm7cx.js +3 -0
  221. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_system_users_route_actions_0whj5cy.js +3 -0
  222. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_system_workspaces_[id]_open_route_actions_1087xu7.js +3 -0
  223. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_system_workspaces_[id]_route_actions_0~h7-8s.js +3 -0
  224. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_system_workspaces_route_actions_0mkalc3.js +3 -0
  225. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_wiki_search_route_actions_0inxu93.js +3 -0
  226. package/.next/standalone/.next/server/chunks/node_modules__pnpm_0aj5g-w._.js +1 -1
  227. package/.next/standalone/.next/server/chunks/src_lib_search_0d-_j3u._.js +46 -0
  228. package/.next/standalone/.next/server/chunks/src_lib_search_0ymmp0c._.js +46 -0
  229. package/.next/standalone/.next/server/chunks/ssr/{0~w0_katex_dist_katex_mjs_0b8ra51._.js → 0~w0_katex_dist_katex_mjs_04mhawr._.js} +1 -1
  230. package/.next/standalone/.next/server/chunks/ssr/12y~_mermaid_dist_chunks_mermaid_core_erDiagram-TEJ5UH35_mjs_0v6rnqy._.js +1 -1
  231. package/.next/standalone/.next/server/chunks/ssr/12y~_mermaid_dist_mermaid_core_mjs_0hj_n-~._.js +1 -1
  232. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0btcd4o._.js → [root-of-the-server]__02twzph._.js} +2 -2
  233. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0ytvlzs._.js → [root-of-the-server]__09~x2v~._.js} +2 -2
  234. package/.next/standalone/.next/server/chunks/ssr/_0pqaawz._.js +18 -18
  235. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0c71i8a._.js → node_modules__pnpm_0.96tmo._.js} +1 -1
  236. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0lm8e2c._.js → node_modules__pnpm_011vy_q._.js} +2 -2
  237. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0ezm2us._.js → node_modules__pnpm_01o_5qt._.js} +1 -1
  238. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0j3mvgg._.js → node_modules__pnpm_04n0h6.._.js} +1 -1
  239. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0~ln0by._.js → node_modules__pnpm_093dp2q._.js} +1 -1
  240. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_11e~j49._.js → node_modules__pnpm_09ej62_._.js} +1 -1
  241. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0de8xt-._.js → node_modules__pnpm_09ljbdz._.js} +2 -2
  242. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0-x6zex._.js → node_modules__pnpm_09~_ob2._.js} +1 -1
  243. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0yq5z.h._.js → node_modules__pnpm_0a01ng7._.js} +2 -2
  244. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0kwc-vs._.js → node_modules__pnpm_0b8qx0g._.js} +1 -1
  245. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0hrbz84._.js → node_modules__pnpm_0bbc---._.js} +1 -1
  246. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0hobcbs._.js → node_modules__pnpm_0c.309.._.js} +1 -1
  247. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0rw91-f._.js → node_modules__pnpm_0c8aunj._.js} +1 -1
  248. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0o.c1z8._.js → node_modules__pnpm_0hk6xys._.js} +2 -2
  249. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0dboa_e._.js → node_modules__pnpm_0hlzy8f._.js} +1 -1
  250. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0j53hti._.js → node_modules__pnpm_0nw5ou2._.js} +1 -1
  251. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0xrmzh1._.js → node_modules__pnpm_0o.dn8o._.js} +1 -1
  252. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0cxwhfd._.js → node_modules__pnpm_0s0ur~d._.js} +1 -1
  253. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_07rxv2x._.js → node_modules__pnpm_0shlang._.js} +1 -1
  254. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0i.pw_m._.js → node_modules__pnpm_0sq3c2r._.js} +1 -1
  255. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0ajzar9._.js → node_modules__pnpm_0t9jb7d._.js} +1 -1
  256. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_012nt.s._.js → node_modules__pnpm_0wmx9kq._.js} +2 -2
  257. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0z~h2ow._.js → node_modules__pnpm_0xfx0sf._.js} +1 -1
  258. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0cbsnwf._.js → node_modules__pnpm_0yiz.-t._.js} +1 -1
  259. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0bum3-3._.js → node_modules__pnpm_11sut1u._.js} +1 -1
  260. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0mdo4i3._.js → node_modules__pnpm_124u4o2._.js} +2 -2
  261. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0il8j.j._.js → node_modules__pnpm_13tajgx._.js} +2 -2
  262. package/.next/standalone/.next/server/chunks/ssr/src_app_signin_00yk0vm._.js +2 -2
  263. package/.next/standalone/.next/server/edge/chunks/{08yl_next_dist_esm_build_templates_edge-wrapper_0o9h3w_.js → 08yl_next_dist_esm_build_templates_edge-wrapper_0xbpts6.js} +2 -2
  264. package/.next/standalone/.next/server/edge/chunks/[root-of-the-server]__0.pmgt2._.js +3 -0
  265. package/.next/standalone/.next/server/functions-config-manifest.json +6 -0
  266. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  267. package/.next/standalone/.next/server/middleware-manifest.json +8 -8
  268. package/.next/standalone/.next/server/pages/404.html +1 -1
  269. package/.next/standalone/.next/server/pages/500.html +1 -1
  270. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  271. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  272. package/.next/standalone/.next/static/chunks/0c_~zevf2n0r4.css +2 -0
  273. package/.next/standalone/.next/static/chunks/0l4842ez-0_66.js +129 -0
  274. package/.next/standalone/README.md +46 -2
  275. package/.next/standalone/docs/workspacing-plan.md +364 -0
  276. package/.next/standalone/package.json +2 -2
  277. package/.next/standalone/src/app/api/agent/activity/route.ts +9 -8
  278. package/.next/standalone/src/app/api/agent/events/[...path]/route.ts +20 -8
  279. package/.next/standalone/src/app/api/agent/files/[...path]/route.ts +16 -9
  280. package/.next/standalone/src/app/api/agent/fs/file/[...path]/route.ts +28 -18
  281. package/.next/standalone/src/app/api/agent/fs/ls/[[...path]]/route.ts +12 -7
  282. package/.next/standalone/src/app/api/agent/fs/move/route.ts +16 -11
  283. package/.next/standalone/src/app/api/agent/fs/search/route.ts +49 -13
  284. package/.next/standalone/src/app/api/agent/internal/span/route.ts +9 -5
  285. package/.next/standalone/src/app/api/agent/register/route.ts +9 -1
  286. package/.next/standalone/src/app/api/agent/settings/route.ts +7 -3
  287. package/.next/standalone/src/app/api/agent/sidecar/[...path]/route.ts +8 -4
  288. package/.next/standalone/src/app/api/assets/[...path]/route.ts +9 -4
  289. package/.next/standalone/src/app/api/system/admins/route.ts +103 -0
  290. package/.next/standalone/src/app/api/system/reveal/route.ts +7 -6
  291. package/.next/standalone/src/app/api/system/set-root/route.ts +24 -1
  292. package/.next/standalone/src/app/api/system/users/route.ts +120 -0
  293. package/.next/standalone/src/app/api/system/workspaces/[id]/open/route.ts +34 -0
  294. package/.next/standalone/src/app/api/system/workspaces/[id]/route.ts +74 -0
  295. package/.next/standalone/src/app/api/system/workspaces/route.ts +67 -0
  296. package/.next/standalone/src/app/api/upload/[...path]/route.ts +10 -5
  297. package/.next/standalone/src/app/api/wiki/app/route.ts +10 -9
  298. package/.next/standalone/src/app/api/wiki/content/route.ts +14 -14
  299. package/.next/standalone/src/app/api/wiki/download/route.ts +7 -6
  300. package/.next/standalone/src/app/api/wiki/file/route.ts +7 -2
  301. package/.next/standalone/src/app/api/wiki/folder/route.ts +6 -5
  302. package/.next/standalone/src/app/api/wiki/move/route.ts +7 -7
  303. package/.next/standalone/src/app/api/wiki/new-file/route.ts +7 -6
  304. package/.next/standalone/src/app/api/wiki/page/route.ts +6 -5
  305. package/.next/standalone/src/app/api/wiki/presence/route.ts +8 -7
  306. package/.next/standalone/src/app/api/wiki/route.ts +13 -11
  307. package/.next/standalone/src/app/api/wiki/search/route.ts +44 -0
  308. package/.next/standalone/src/app/api/wiki/slugs/route.ts +8 -8
  309. package/.next/standalone/src/app/api/wiki/upload/route.ts +6 -5
  310. package/.next/standalone/src/app/api/wiki/watch/route.ts +16 -40
  311. package/.next/standalone/src/app/globals.css +484 -484
  312. package/.next/standalone/src/app/page.tsx +163 -49
  313. package/.next/standalone/src/components/auth-settings-sheet.tsx +171 -2
  314. package/.next/standalone/src/components/dir-picker.tsx +8 -6
  315. package/.next/standalone/src/components/editor/comment-thread.tsx +2 -1
  316. package/.next/standalone/src/components/editor/csv-viewer.tsx +3 -2
  317. package/.next/standalone/src/components/editor/editor-toolbar.tsx +2 -2
  318. package/.next/standalone/src/components/editor/editor.tsx +6 -5
  319. package/.next/standalone/src/components/editor/file-fallback-viewer.tsx +3 -2
  320. package/.next/standalone/src/components/editor/folder-index.tsx +2 -1
  321. package/.next/standalone/src/components/editor/image-viewer.tsx +2 -1
  322. package/.next/standalone/src/components/editor/media-popover.tsx +2 -1
  323. package/.next/standalone/src/components/editor/media-viewer.tsx +2 -1
  324. package/.next/standalone/src/components/editor/mermaid-viewer.tsx +3 -2
  325. package/.next/standalone/src/components/editor/node-app-viewer.tsx +4 -3
  326. package/.next/standalone/src/components/editor/notebook-viewer.tsx +3 -2
  327. package/.next/standalone/src/components/editor/office/docx-viewer.tsx +2 -1
  328. package/.next/standalone/src/components/editor/office/office-chrome.tsx +3 -2
  329. package/.next/standalone/src/components/editor/office/pptx-viewer.tsx +2 -1
  330. package/.next/standalone/src/components/editor/office/xlsx-viewer.tsx +2 -1
  331. package/.next/standalone/src/components/editor/pdf-viewer.tsx +2 -1
  332. package/.next/standalone/src/components/editor/proof-span-popover.tsx +2 -1
  333. package/.next/standalone/src/components/editor/source-viewer.tsx +3 -2
  334. package/.next/standalone/src/components/editor/suggest-edit-popover.tsx +2 -1
  335. package/.next/standalone/src/components/editor/suggestion-card.tsx +2 -1
  336. package/.next/standalone/src/components/editor/website-viewer.tsx +2 -1
  337. package/.next/standalone/src/components/editor/wiki-link-create-dialog.tsx +2 -1
  338. package/.next/standalone/src/components/search/search-command-dialog.tsx +109 -0
  339. package/.next/standalone/src/components/search/sidebar-search-box.tsx +121 -0
  340. package/.next/standalone/src/components/search/snippet-text.tsx +48 -0
  341. package/.next/standalone/src/components/ui/command.tsx +3 -2
  342. package/.next/standalone/src/lib/auth/admin.ts +112 -0
  343. package/.next/standalone/src/lib/auth/server.ts +13 -2
  344. package/.next/standalone/src/lib/config.ts +56 -4
  345. package/.next/standalone/src/lib/proof/audit.ts +19 -10
  346. package/.next/standalone/src/lib/proof/auth.ts +11 -0
  347. package/.next/standalone/src/lib/proof/collab-state.ts +4 -2
  348. package/.next/standalone/src/lib/proof/file-lock.ts +5 -0
  349. package/.next/standalone/src/lib/proof/idempotency.ts +5 -0
  350. package/.next/standalone/src/lib/proof/lease.ts +40 -27
  351. package/.next/standalone/src/lib/proof/mutex.ts +4 -0
  352. package/.next/standalone/src/lib/proof/raw-fs.ts +2 -3
  353. package/.next/standalone/src/lib/proof/registry.ts +5 -0
  354. package/.next/standalone/src/lib/search/indexable-exts.ts +25 -0
  355. package/.next/standalone/src/lib/search/indexer.ts +567 -0
  356. package/.next/standalone/src/lib/search/sanitize.ts +35 -0
  357. package/.next/standalone/src/lib/search/search-db.ts +57 -0
  358. package/.next/standalone/src/lib/search/watcher-pool.ts +79 -0
  359. package/.next/standalone/src/lib/workspace-client.ts +82 -0
  360. package/.next/standalone/src/lib/workspace-context.ts +142 -0
  361. package/.next/standalone/src/lib/workspaces.ts +196 -0
  362. package/.next/standalone/src/stores/ai-panel-store.ts +3 -2
  363. package/.next/standalone/src/stores/editor-store.ts +4 -3
  364. package/.next/standalone/src/stores/proof-store.ts +4 -3
  365. package/.next/standalone/src/stores/search-store.ts +86 -0
  366. package/.next/standalone/src/stores/wiki-slugs-store.ts +2 -1
  367. package/.next/standalone/src/tests/proof/admin-create-user.test.ts +43 -0
  368. package/.next/standalone/src/tests/proof/agent-workspace-scope.test.ts +134 -0
  369. package/.next/standalone/src/tests/proof/collab-state.test.ts +43 -41
  370. package/.next/standalone/src/tests/proof/preload.ts +21 -0
  371. package/.next/standalone/src/tests/proof/search-index.test.ts +339 -0
  372. package/.next/standalone/src/tests/proof/workspace-isolation.test.ts +87 -0
  373. package/.next/standalone/src/tests/proof/workspaces-api.test.ts +227 -0
  374. package/.next/standalone/tsconfig.tsbuildinfo +1 -1
  375. package/README.md +46 -2
  376. package/package.json +2 -2
  377. package/.next/standalone/.next/server/chunks/0p91_next_dist_esm_build_templates_app-route_0o~h4zq.js +0 -5
  378. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0.hb9q2._.js +0 -3
  379. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0.uux34._.js +0 -3
  380. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0092hkp._.js +0 -3
  381. package/.next/standalone/.next/server/chunks/[root-of-the-server]__05f6x0i._.js +0 -3
  382. package/.next/standalone/.next/server/chunks/[root-of-the-server]__05idwm9._.js +0 -3
  383. package/.next/standalone/.next/server/chunks/[root-of-the-server]__06-dtd0._.js +0 -3
  384. package/.next/standalone/.next/server/chunks/[root-of-the-server]__06sek6_._.js +0 -3
  385. package/.next/standalone/.next/server/chunks/[root-of-the-server]__07fpqks._.js +0 -3
  386. package/.next/standalone/.next/server/chunks/[root-of-the-server]__094q5bj._.js +0 -3
  387. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0awzyon._.js +0 -3
  388. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0d_da6q._.js +0 -3
  389. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0hhhvm7._.js +0 -3
  390. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0kk26wc._.js +0 -3
  391. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0km8suj._.js +0 -3
  392. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0kur4ro._.js +0 -15
  393. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0mkwoul._.js +0 -12
  394. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0qc2~6l._.js +0 -15
  395. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0qyd-o8._.js +0 -3
  396. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0rkve~v._.js +0 -3
  397. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0rzo40z._.js +0 -3
  398. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0sjocwy._.js +0 -3
  399. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ssj9~d._.js +0 -3
  400. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0s~i040._.js +0 -3
  401. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0t220d-._.js +0 -3
  402. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0t5mg.n._.js +0 -3
  403. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0trsqf4._.js +0 -3
  404. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0xq124z._.js +0 -3
  405. package/.next/standalone/.next/server/chunks/[root-of-the-server]__106uw_c._.js +0 -3
  406. package/.next/standalone/.next/server/chunks/[root-of-the-server]__10w2q~o._.js +0 -3
  407. package/.next/standalone/.next/server/chunks/[root-of-the-server]__13w-0iy._.js +0 -3
  408. package/.next/standalone/.next/server/chunks/src_lib_auth_server_ts_00f4e0h._.js +0 -452
  409. package/.next/standalone/.next/server/edge/chunks/[root-of-the-server]__0ug2rvl._.js +0 -3
  410. package/.next/standalone/.next/static/chunks/0vwkqw_rofm-c.js +0 -129
  411. package/.next/standalone/.next/static/chunks/0zay6349~v_wc.css +0 -2
  412. /package/.next/standalone/.next/static/{0XvNCOSEq7cbARTLtAolL → t7B6nXaoD1jo9f61t3aeK}/_buildManifest.js +0 -0
  413. /package/.next/standalone/.next/static/{0XvNCOSEq7cbARTLtAolL → t7B6nXaoD1jo9f61t3aeK}/_clientMiddlewareManifest.js +0 -0
  414. /package/.next/standalone/.next/static/{0XvNCOSEq7cbARTLtAolL → t7B6nXaoD1jo9f61t3aeK}/_ssgManifest.js +0 -0
package/README.md CHANGED
@@ -67,7 +67,7 @@ The wizard walks you through every option and writes `~/.wiki-viewer/config.json
67
67
 
68
68
  Open **http://localhost:3000** (or **https://localhost:3000** with `--https`).
69
69
 
70
- To switch the served directory later, click **Change** at the bottom of the sidebar and pick a new folder. No restart needed.
70
+ To switch between directories later, use the **workspace switcher** at the bottom of the sidebar. Each _workspace_ is a registered root directory; you can run several at once with no state bleed (open different workspaces in different browser tabs). See [Workspaces](#workspaces) below. No restart needed.
71
71
 
72
72
  On first run with no users in the database, the app works in single-user mode and any visitor on `localhost` can sign up. Set `AUTH_ALLOWED_DOMAIN` or `AUTH_ALLOWED_EMAILS` before exposing the server to anyone else.
73
73
 
@@ -123,7 +123,7 @@ wiki-viewer service restart
123
123
  wiki-viewer service uninstall
124
124
  ```
125
125
 
126
- The run config is saved to `~/.wiki-viewer/config.json`. Edit that file and run `wiki-viewer service restart` to change settings without reinstalling. To change just the served directory at runtime, you can also click **Change** in the sidebar.
126
+ The run config is saved to `~/.wiki-viewer/config.json`. Edit that file and run `wiki-viewer service restart` to change settings without reinstalling. To change the served directory at runtime, use the workspace switcher in the sidebar (see [Workspaces](#workspaces)).
127
127
 
128
128
  On Linux, install enables lingering (`loginctl enable-linger`) so the service runs without an active login session and survives reboot. If that step needs privileges, the installer prints the command to run manually.
129
129
 
@@ -174,6 +174,49 @@ Updates the global install to the latest version (npm/pnpm/yarn auto-detected) a
174
174
 
175
175
  ---
176
176
 
177
+ ## Workspaces
178
+
179
+ A **workspace** is a registered root directory. One running wiki-viewer can
180
+ serve many workspaces at once, fully isolated from each other:
181
+
182
+ - Two browser tabs can each open a different workspace (via a `?ws=<id>` URL
183
+ param) and edit files concurrently. Edit leases, write locks, idempotency
184
+ keys, collab sidecars, and the audit log are all namespaced per workspace —
185
+ a `notes.md` in workspace A never collides with a `notes.md` in workspace B.
186
+ - AI agents target a workspace with an `X-Workspace: <id>` header (or `?ws=`).
187
+ An agent's grant may be pinned to one workspace; requests that resolve to a
188
+ different workspace are rejected `403 FORBIDDEN`. Agents registered without a
189
+ workspace id keep working across all workspaces (wildcard).
190
+
191
+ ### Switching and creating
192
+
193
+ The sidebar footer shows the active workspace. Click it to switch between the
194
+ workspaces you can access, or (admins only) **Add workspace…** to register a
195
+ new root directory. Switching navigates to `?ws=<id>` and resets the view.
196
+
197
+ The legacy single-directory flow is unchanged: launching with `ROOT_DIR` or
198
+ `wiki-viewer <dir>` auto-registers that directory as the first workspace, and a
199
+ single-workspace install behaves exactly as before (no `?ws=` needed).
200
+
201
+ ### Admins and access control
202
+
203
+ Workspace management is **admin-gated** (organizational access control, not
204
+ OS-level permissions):
205
+
206
+ - The **first user to sign up** becomes an admin automatically. Admins can
207
+ promote/demote other users from the settings sheet (gear icon → **Admins**).
208
+ Seed or override admins headlessly with `WIKI_ADMIN_EMAILS` (csv).
209
+ - Only admins can create/delete workspaces and edit a workspace's allowed-user
210
+ list (`allowedUserIds`). An empty allow-list means any signed-in user may
211
+ open the workspace (the default). Non-admins with access get full file
212
+ read/write on the workspaces they can see.
213
+ - Admin state lives in `~/.wiki-viewer/config.json` (`adminUserIds`), workspace
214
+ records under `workspaces[]`.
215
+
216
+ > Note: removing a workspace only unregisters it — the directory on disk is
217
+ > never touched. The last admin cannot be demoted unless `WIKI_ADMIN_EMAILS`
218
+ > provides a fallback.
219
+
177
220
  ## Auth and multi-user mode
178
221
 
179
222
  wiki-viewer uses [Better Auth](https://better-auth.com) with SQLite. State lives at `~/.wiki-viewer/auth.db` (WAL mode) and `~/.wiki-viewer/auth.secret` (chmod 0600). Both are created on first start. Set `BETTER_AUTH_SECRET` in the environment to override the file-stored secret.
@@ -528,6 +571,7 @@ The dev server supports hot reload.
528
571
  | `AUTH_ALLOWED_DOMAIN` | csv: only emails on these domains can sign up (overridden by UI allowlist if set) | unset (open) |
529
572
  | `WIKI_OWNER_HOSTS` | csv: extra hostnames trusted for CSRF Origin check | `localhost,127.0.0.1` |
530
573
  | `WIKI_ALLOW_INSECURE` | Set to `1` to bypass the prod-https guard (dev / CI only) | unset |
574
+ | `WIKI_ADMIN_EMAILS` | csv: emails treated as admins (seed/override; otherwise first signup is admin) | unset |
531
575
  | `AGENT_RATE_LIMIT` | Max mutation ops per minute per agent identity | `60` |
532
576
 
533
577
  ---
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wiki-viewer",
3
- "version": "1.7.2",
3
+ "version": "1.8.0",
4
4
  "description": "Local file viewer and wiki — view markdown, HTML, PDFs, notebooks, office docs, and more from any directory",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -19,7 +19,7 @@
19
19
  "wiki": "node bin/wiki-viewer.js",
20
20
  "postbuild": "node bin/postbuild.js",
21
21
  "prepublishOnly": "npm run build",
22
- "test": "tsx --test src/tests/proof/*.test.ts"
22
+ "test": "tsx --import ./src/tests/proof/preload.ts --test src/tests/proof/*.test.ts"
23
23
  },
24
24
  "engines": {
25
25
  "node": ">=18.0.0"
@@ -1,5 +0,0 @@
1
- module.exports=[735049,t=>{"use strict";var e=t.i(364564),i=t.i(102095),s=t.i(691091),r=t.i(475331),a=t.i(490301),n=t.i(670943),o=t.i(690324),l=t.i(243133),h=t.i(404870),d=t.i(420180),c=t.i(867883),u=t.i(336708),p=t.i(682278),f=t.i(157569),m=t.i(844146),w=t.i(193695);t.i(105888);var _=t.i(530564),g=t.i(687769),y=t.i(902157),v=t.i(912714),E=t.i(750227),b=t.i(81111);let P="files",R="directories",x="files_directories",k={root:".",fileFilter:t=>!0,directoryFilter:t=>!0,type:P,lstat:!1,depth:0x80000000,alwaysStat:!1,highWaterMark:4096};Object.freeze(k);let C="READDIRP_RECURSIVE_ERROR",D=new Set(["ENOENT","EPERM","EACCES","ELOOP",C]),S=[R,"all",x,P],I=new Set([R,"all",x]),A=new Set(["all",x,P]);process.platform;let T=t=>!0,W=t=>{if(void 0===t)return T;if("function"==typeof t)return t;if("string"==typeof t){let e=t.trim();return t=>t.basename===e}if(Array.isArray(t)){let e=t.map(t=>t.trim());return t=>e.some(e=>t.basename===e)}return T};class F extends b.Readable{parents;reading;parent;_stat;_maxDepth;_wantsDir;_wantsFile;_wantsEverything;_root;_isDirent;_statsProp;_rdOptions;_fileFilter;_directoryFilter;constructor(t={}){super({objectMode:!0,autoDestroy:!0,highWaterMark:t.highWaterMark});const e={...k,...t},{root:i,type:s}=e;this._fileFilter=W(e.fileFilter),this._directoryFilter=W(e.directoryFilter);const r=e.lstat?v.lstat:v.stat;this._stat=r,this._maxDepth=null!=e.depth&&Number.isSafeInteger(e.depth)?e.depth:k.depth,this._wantsDir=!!s&&I.has(s),this._wantsFile=!!s&&A.has(s),this._wantsEverything="all"===s,this._root=(0,E.resolve)(i),this._isDirent=!e.alwaysStat,this._statsProp=this._isDirent?"dirent":"stats",this._rdOptions={encoding:"utf8",withFileTypes:this._isDirent},this.parents=[this._exploreDir(i,1)],this.reading=!1,this.parent=void 0}async _read(t){if(!this.reading){this.reading=!0;try{for(;!this.destroyed&&t>0;){let e=this.parent,i=e&&e.files;if(i&&i.length>0){let{path:s,depth:r}=e,a=i.splice(0,t).map(t=>this._formatEntry(t,s));for(let e of(await Promise.all(a))){if(!e)continue;if(this.destroyed)return;let i=await this._getEntryType(e);"directory"===i&&this._directoryFilter(e)?(r<=this._maxDepth&&this.parents.push(this._exploreDir(e.fullPath,r+1)),this._wantsDir&&(this.push(e),t--)):("file"===i||this._includeAsFile(e))&&this._fileFilter(e)&&this._wantsFile&&(this.push(e),t--)}}else{let t=this.parents.pop();if(!t){this.push(null);break}if(this.parent=await t,this.destroyed)return}}}catch(t){this.destroy(t)}finally{this.reading=!1}}}async _exploreDir(t,e){let i;try{i=await (0,v.readdir)(t,this._rdOptions)}catch(t){this._onError(t)}return{files:i,depth:e,path:t}}async _formatEntry(t,e){let i,s=this._isDirent?t.name:t;try{let r=(0,E.resolve)((0,E.join)(e,s));(i={path:(0,E.relative)(this._root,r),fullPath:r,basename:s})[this._statsProp]=this._isDirent?t:await this._stat(r)}catch(t){this._onError(t);return}return i}_onError(t){D.has(t.code)&&!this.destroyed?this.emit("warn",t):this.destroy(t)}async _getEntryType(t){if(!t&&this._statsProp in t)return"";let e=t[this._statsProp];if(e.isFile())return"file";if(e.isDirectory())return"directory";if(e&&e.isSymbolicLink()){let e=t.fullPath;try{let t=await (0,v.realpath)(e),i=await (0,v.lstat)(t);if(i.isFile())return"file";if(i.isDirectory()){let i=t.length;if(e.startsWith(t)&&e.substr(i,1)===E.sep){let i=Error(`Circular symlink detected: "${e}" points to "${t}"`);return i.code=C,this._onError(i)}return"directory"}}catch(t){return this._onError(t),""}}}_includeAsFile(t){let e=t&&t[this._statsProp];return e&&this._wantsEverything&&!e.isDirectory()}}var N=t.i(660526);let O=()=>{},j=process.platform,M="win32"===j,z="darwin"===j,H="linux"===j,U="freebsd"===j,q="OS400"===(0,N.type)(),$="all",L="ready",K="add",B="change",G="addDir",V="unlink",X="unlinkDir",Z="raw",J="error",Q={lstat:v.lstat,stat:v.stat},Y="listeners",tt="errHandlers",te="rawEmitters",ti=[Y,tt,te],ts=new Set(["3dm","3ds","3g2","3gp","7z","a","aac","adp","afdesign","afphoto","afpub","ai","aif","aiff","alz","ape","apk","appimage","ar","arj","asf","au","avi","bak","baml","bh","bin","bk","bmp","btif","bz2","bzip2","cab","caf","cgm","class","cmx","cpio","cr2","cur","dat","dcm","deb","dex","djvu","dll","dmg","dng","doc","docm","docx","dot","dotm","dra","DS_Store","dsk","dts","dtshd","dvb","dwg","dxf","ecelp4800","ecelp7470","ecelp9600","egg","eol","eot","epub","exe","f4v","fbs","fh","fla","flac","flatpak","fli","flv","fpx","fst","fvt","g3","gh","gif","graffle","gz","gzip","h261","h263","h264","icns","ico","ief","img","ipa","iso","jar","jpeg","jpg","jpgv","jpm","jxr","key","ktx","lha","lib","lvp","lz","lzh","lzma","lzo","m3u","m4a","m4v","mar","mdi","mht","mid","midi","mj2","mka","mkv","mmr","mng","mobi","mov","movie","mp3","mp4","mp4a","mpeg","mpg","mpga","mxu","nef","npx","numbers","nupkg","o","odp","ods","odt","oga","ogg","ogv","otf","ott","pages","pbm","pcx","pdb","pdf","pea","pgm","pic","png","pnm","pot","potm","potx","ppa","ppam","ppm","pps","ppsm","ppsx","ppt","pptm","pptx","psd","pya","pyc","pyo","pyv","qt","rar","ras","raw","resources","rgb","rip","rlc","rmf","rmvb","rpm","rtf","rz","s3m","s7z","scpt","sgi","shar","snap","sil","sketch","slk","smv","snk","so","stl","suo","sub","swf","tar","tbz","tbz2","tga","tgz","thmx","tif","tiff","tlz","ttc","ttf","txz","udf","uvh","uvi","uvm","uvp","uvs","uvu","viv","vob","war","wav","wax","wbmp","wdp","weba","webm","webp","whl","wim","wm","wma","wmv","wmx","woff","woff2","wrm","wvx","xbm","xif","xla","xlam","xls","xlsb","xlsm","xlsx","xlt","xltm","xltx","xm","xmind","xpi","xpm","xwd","xz","z","zip","zipx"]),tr=(t,e)=>{t instanceof Set?t.forEach(e):e(t)},ta=(t,e,i)=>{let s=t[e];s instanceof Set||(t[e]=s=new Set([s])),s.add(i)},tn=(t,e,i)=>{let s=t[e];s instanceof Set?s.delete(i):s===i&&delete t[e]},to=t=>t instanceof Set?0===t.size:!t,tl=new Map;function th(t,e,i,s,r){try{return(0,y.watch)(t,{persistent:e.persistent},(e,s)=>{i(t),r(e,s,{watchedPath:t}),s&&t!==s&&td(E.resolve(t,s),Y,E.join(t,s))})}catch(t){s(t);return}}let td=(t,e,i,s,r)=>{let a=tl.get(t);a&&tr(a[e],t=>{t(i,s,r)})},tc=new Map;class tu{fsw;_boundHandleError;constructor(t){this.fsw=t,this._boundHandleError=e=>t._handleError(e)}_watchWithNodeFs(t,e){let i,s=this.fsw.options,r=E.dirname(t),a=E.basename(t);this.fsw._getWatchedDir(r).add(a);let n=E.resolve(t),o={persistent:s.persistent};if(e||(e=O),s.usePolling)o.interval=s.interval!==s.binaryInterval&&ts.has(E.extname(a).slice(1).toLowerCase())?s.binaryInterval:s.interval,i=((t,e,i,s)=>{let{listener:r,rawEmitter:a}=s,n=tc.get(e),o=n&&n.options;return o&&(o.persistent<i.persistent||o.interval>i.interval)&&((0,y.unwatchFile)(e),n=void 0),n?(ta(n,Y,r),ta(n,te,a)):(n={listeners:r,rawEmitters:a,options:i,watcher:(0,y.watchFile)(e,i,(i,s)=>{tr(n.rawEmitters,t=>{t(B,e,{curr:i,prev:s})});let r=i.mtimeMs;(i.size!==s.size||r>s.mtimeMs||0===r)&&tr(n.listeners,e=>e(t,i))})},tc.set(e,n)),()=>{tn(n,Y,r),tn(n,te,a),to(n.listeners)&&(tc.delete(e),(0,y.unwatchFile)(e),n.options=n.watcher=void 0,Object.freeze(n))}})(t,n,o,{listener:e,rawEmitter:this.fsw._emitRaw});else i=((t,e,i,s)=>{let r,{listener:a,errHandler:n,rawEmitter:o}=s,l=tl.get(e);if(!i.persistent){if(!(r=th(t,i,a,n,o)))return;return r.close.bind(r)}if(l)ta(l,Y,a),ta(l,tt,n),ta(l,te,o);else{if(!(r=th(t,i,td.bind(null,e,Y),n,td.bind(null,e,te))))return;r.on(J,async t=>{let i=td.bind(null,e,tt);l&&(l.watcherUnusable=!0),i(t)}),l={listeners:a,errHandlers:n,rawEmitters:o,watcher:r},tl.set(e,l)}return()=>{if(tn(l,Y,a),tn(l,tt,n),tn(l,te,o),to(l.listeners)){let t;l.watcher.close(),tl.delete(e),ti.forEach((t=l,e=>{let i=t[e];i instanceof Set?i.clear():delete t[e]})),l.watcher=void 0,Object.freeze(l)}}})(t,n,o,{listener:e,errHandler:this._boundHandleError,rawEmitter:this.fsw._emitRaw});return i}_handleFile(t,e,i){if(this.fsw.closed)return;let s=E.dirname(t),r=E.basename(t),a=this.fsw._getWatchedDir(s),n=e;if(a.has(r))return;let o=async(e,i)=>{if(this.fsw._throttle("watch",t,5))if(i&&0!==i.mtimeMs){if(a.has(r)){let e=i.atimeMs,s=i.mtimeMs;(!e||e<=s||s!==n.mtimeMs)&&this.fsw._emit(B,t,i),n=i}}else try{let i=await (0,v.stat)(t);if(this.fsw.closed)return;let s=i.atimeMs,r=i.mtimeMs;if((!s||s<=r||r!==n.mtimeMs)&&this.fsw._emit(B,t,i),(z||H||U)&&n.ino!==i.ino){this.fsw._closeFile(e),n=i;let s=this._watchWithNodeFs(t,o);s&&this.fsw._addPathCloser(e,s)}else n=i}catch(t){this.fsw._remove(s,r)}},l=this._watchWithNodeFs(t,o);if(!(i&&this.fsw.options.ignoreInitial)&&this.fsw._isntIgnored(t)){if(!this.fsw._throttle(K,t,0))return;this.fsw._emit(K,t,e)}return l}async _handleSymlink(t,e,i,s){if(this.fsw.closed)return;let r=t.fullPath,a=this.fsw._getWatchedDir(e);if(!this.fsw.options.followSymlinks){let e;this.fsw._incrReadyCount();try{e=await (0,v.realpath)(i)}catch(t){return this.fsw._emitReady(),!0}if(this.fsw.closed)return;return a.has(s)?this.fsw._symlinkPaths.get(r)!==e&&(this.fsw._symlinkPaths.set(r,e),this.fsw._emit(B,i,t.stats)):(a.add(s),this.fsw._symlinkPaths.set(r,e),this.fsw._emit(K,i,t.stats)),this.fsw._emitReady(),!0}if(this.fsw._symlinkPaths.has(r))return!0;this.fsw._symlinkPaths.set(r,!0)}_handleRead(t,e,i,s,r,a,n){t=E.join(t,"");let o=s?`${t}:${s}`:t;if(!(n=this.fsw._throttle("readdir",o,1e3)))return;let l=this.fsw._getWatchedDir(i.path),h=new Set,d=this.fsw._readdirp(t,{fileFilter:t=>i.filterPath(t),directoryFilter:t=>i.filterDir(t)});if(d)return d.on("data",async n=>{if(this.fsw.closed){d=void 0;return}let o=n.path,c=E.join(t,o);if(h.add(o),!(n.stats.isSymbolicLink()&&await this._handleSymlink(n,t,c,o))){if(this.fsw.closed){d=void 0;return}o!==s&&(s||l.has(o))||(this.fsw._incrReadyCount(),c=E.join(r,E.relative(r,c)),this._addToNodeFs(c,e,i,a+1))}}).on(J,this._boundHandleError),new Promise((e,o)=>{if(!d)return o();d.once("end",()=>{if(this.fsw.closed){d=void 0;return}let o=!!n&&n.clear();e(void 0),l.getChildren().filter(e=>e!==t&&!h.has(e)).forEach(e=>{this.fsw._remove(t,e)}),d=void 0,o&&this._handleRead(t,!1,i,s,r,a,n)})})}async _handleDir(t,e,i,s,r,a,n){let o,l,h=this.fsw._getWatchedDir(E.dirname(t)),d=h.has(E.basename(t));i&&this.fsw.options.ignoreInitial||r||d||this.fsw._emit(G,t,e),h.add(E.basename(t)),this.fsw._getWatchedDir(t);let c=this.fsw.options.depth;if((null==c||s<=c)&&!this.fsw._symlinkPaths.has(n)){if(!r&&(await this._handleRead(t,i,a,r,t,s,o),this.fsw.closed))return;l=this._watchWithNodeFs(t,(e,i)=>{i&&0===i.mtimeMs||this._handleRead(e,!1,a,r,t,s,o)})}return l}async _addToNodeFs(t,e,i,s,r){let a=this.fsw._emitReady;if(this.fsw._isIgnored(t)||this.fsw.closed)return a(),!1;let n=this.fsw._getWatchHelpers(t);i&&(n.filterPath=t=>i.filterPath(t),n.filterDir=t=>i.filterDir(t));try{let i,o=await Q[n.statMethod](n.watchPath);if(this.fsw.closed)return;if(this.fsw._isIgnored(n.watchPath,o))return a(),!1;let l=this.fsw.options.followSymlinks;if(o.isDirectory()){let a=E.resolve(t),h=l?await (0,v.realpath)(t):t;if(this.fsw.closed||(i=await this._handleDir(n.watchPath,o,e,s,r,n,h),this.fsw.closed))return;a!==h&&void 0!==h&&this.fsw._symlinkPaths.set(a,h)}else if(o.isSymbolicLink()){let r=l?await (0,v.realpath)(t):t;if(this.fsw.closed)return;let a=E.dirname(n.watchPath);if(this.fsw._getWatchedDir(a).add(n.watchPath),this.fsw._emit(K,n.watchPath,o),i=await this._handleDir(a,o,e,s,t,n,r),this.fsw.closed)return;void 0!==r&&this.fsw._symlinkPaths.set(E.resolve(t),r)}else i=this._handleFile(n.watchPath,o,e);return a(),i&&this.fsw._addPathCloser(t,i),!1}catch(e){if(this.fsw._handleError(e))return a(),t}}}let tp=/\\/g,tf=/\/\//g,tm=/\..*\.(sw[px])$|~$|\.subl.*\.tmp/,tw=/^\.[/\\]/;function t_(t){return Array.isArray(t)?t:[t]}let tg=t=>"object"==typeof t&&null!==t&&!(t instanceof RegExp);function ty(t,e,i){let s=function(t){if("string"!=typeof t)throw Error("string expected");t=(t=E.normalize(t)).replace(/\\/g,"/");let e=!1;return t.startsWith("//")&&(e=!0),t=t.replace(tf,"/"),e&&(t="/"+t),t}(e);for(let e=0;e<t.length;e++)if((0,t[e])(s,i))return!0;return!1}let tv=t=>{let e=t_(t).flat();if(!e.every(t=>"string"==typeof t))throw TypeError(`Non-string provided as watch path: ${e}`);return e.map(tb)},tE=t=>{let e=t.replace(tp,"/"),i=!1;return e.startsWith("//")&&(i=!0),e=e.replace(tf,"/"),i&&(e="/"+e),e},tb=t=>tE(E.normalize(tE(t))),tP=(t="")=>e=>"string"==typeof e?tb(E.isAbsolute(e)?e:E.join(t,e)):e,tR=Object.freeze(new Set);class tx{path;_removeWatcher;items;constructor(t,e){this.path=t,this._removeWatcher=e,this.items=new Set}add(t){let{items:e}=this;e&&"."!==t&&".."!==t&&e.add(t)}async remove(t){let{items:e}=this;if(!e||(e.delete(t),e.size>0))return;let i=this.path;try{await (0,v.readdir)(i)}catch(t){this._removeWatcher&&this._removeWatcher(E.dirname(i),E.basename(i))}}has(t){let{items:e}=this;if(e)return e.has(t)}getChildren(){let{items:t}=this;return t?[...t.values()]:[]}dispose(){this.items.clear(),this.path="",this._removeWatcher=O,this.items=tR,Object.freeze(this)}}class tk{fsw;path;watchPath;fullWatchPath;dirParts;followSymlinks;statMethod;constructor(t,e,i){this.fsw=i;const s=t;this.path=t=t.replace(tw,""),this.watchPath=s,this.fullWatchPath=E.resolve(s),this.dirParts=[],this.dirParts.forEach(t=>{t.length>1&&t.pop()}),this.followSymlinks=e,this.statMethod=e?"stat":"lstat"}entryPath(t){return E.join(this.watchPath,E.relative(this.watchPath,t.fullPath))}filterPath(t){let{stats:e}=t;if(e&&e.isSymbolicLink())return this.filterDir(t);let i=this.entryPath(t);return this.fsw._isntIgnored(i,e)&&this.fsw._hasReadPermissions(e)}filterDir(t){return this.fsw._isntIgnored(this.entryPath(t),t.stats)}}class tC extends g.EventEmitter{closed;options;_closers;_ignoredPaths;_throttled;_streams;_symlinkPaths;_watched;_pendingWrites;_pendingUnlinks;_readyCount;_emitReady;_closePromise;_userIgnored;_readyEmitted;_emitRaw;_boundRemove;_nodeFsHandler;constructor(t={}){super(),this.closed=!1,this._closers=new Map,this._ignoredPaths=new Set,this._throttled=new Map,this._streams=new Set,this._symlinkPaths=new Map,this._watched=new Map,this._pendingWrites=new Map,this._pendingUnlinks=new Map,this._readyCount=0,this._readyEmitted=!1;const e=t.awaitWriteFinish,i={stabilityThreshold:2e3,pollInterval:100},s={persistent:!0,ignoreInitial:!1,ignorePermissionErrors:!1,interval:100,binaryInterval:300,followSymlinks:!0,usePolling:!1,atomic:!0,...t,ignored:t.ignored?t_(t.ignored):t_([]),awaitWriteFinish:!0===e?i:"object"==typeof e&&{...i,...e}};q&&(s.usePolling=!0),void 0===s.atomic&&(s.atomic=!s.usePolling);const r=process.env.CHOKIDAR_USEPOLLING;if(void 0!==r){const t=r.toLowerCase();"false"===t||"0"===t?s.usePolling=!1:"true"===t||"1"===t?s.usePolling=!0:s.usePolling=!!t}const a=process.env.CHOKIDAR_INTERVAL;a&&(s.interval=Number.parseInt(a,10));let n=0;this._emitReady=()=>{++n>=this._readyCount&&(this._emitReady=O,this._readyEmitted=!0,process.nextTick(()=>this.emit(L)))},this._emitRaw=(...t)=>this.emit(Z,...t),this._boundRemove=this._remove.bind(this),this.options=s,this._nodeFsHandler=new tu(this),Object.freeze(s)}_addIgnoredPath(t){if(tg(t)){for(let e of this._ignoredPaths)if(tg(e)&&e.path===t.path&&e.recursive===t.recursive)return}this._ignoredPaths.add(t)}_removeIgnoredPath(t){if(this._ignoredPaths.delete(t),"string"==typeof t)for(let e of this._ignoredPaths)tg(e)&&e.path===t&&this._ignoredPaths.delete(e)}add(t,e,i){let{cwd:s}=this.options;this.closed=!1,this._closePromise=void 0;let r=tv(t);return s&&(r=r.map(t=>E.isAbsolute(t)?t:E.join(s,t))),r.forEach(t=>{this._removeIgnoredPath(t)}),this._userIgnored=void 0,this._readyCount||(this._readyCount=0),this._readyCount+=r.length,Promise.all(r.map(async t=>{let s=await this._nodeFsHandler._addToNodeFs(t,!i,void 0,0,e);return s&&this._emitReady(),s})).then(t=>{this.closed||t.forEach(t=>{t&&this.add(E.dirname(t),E.basename(e||t))})}),this}unwatch(t){if(this.closed)return this;let e=tv(t),{cwd:i}=this.options;return e.forEach(t=>{E.isAbsolute(t)||this._closers.has(t)||(i&&(t=E.join(i,t)),t=E.resolve(t)),this._closePath(t),this._addIgnoredPath(t),this._watched.has(t)&&this._addIgnoredPath({path:t,recursive:!0}),this._userIgnored=void 0}),this}close(){if(this._closePromise)return this._closePromise;this.closed=!0,this.removeAllListeners();let t=[];return this._closers.forEach(e=>e.forEach(e=>{let i=e();i instanceof Promise&&t.push(i)})),this._streams.forEach(t=>t.destroy()),this._userIgnored=void 0,this._readyCount=0,this._readyEmitted=!1,this._watched.forEach(t=>t.dispose()),this._closers.clear(),this._watched.clear(),this._streams.clear(),this._symlinkPaths.clear(),this._throttled.clear(),this._closePromise=t.length?Promise.all(t).then(()=>void 0):Promise.resolve(),this._closePromise}getWatched(){let t={};return this._watched.forEach((e,i)=>{t[(this.options.cwd?E.relative(this.options.cwd,i):i)||"."]=e.getChildren().sort()}),t}emitWithAll(t,e){this.emit(t,...e),t!==J&&this.emit($,t,...e)}async _emit(t,e,i){let s;if(this.closed)return;let r=this.options;M&&(e=E.normalize(e)),r.cwd&&(e=E.relative(r.cwd,e));let a=[e];null!=i&&a.push(i);let n=r.awaitWriteFinish;if(n&&(s=this._pendingWrites.get(e)))return s.lastChange=new Date,this;if(r.atomic){if(t===V)return this._pendingUnlinks.set(e,[t,...a]),setTimeout(()=>{this._pendingUnlinks.forEach((t,e)=>{this.emit(...t),this.emit($,...t),this._pendingUnlinks.delete(e)})},"number"==typeof r.atomic?r.atomic:100),this;t===K&&this._pendingUnlinks.has(e)&&(t=B,this._pendingUnlinks.delete(e))}if(n&&(t===K||t===B)&&this._readyEmitted){let i=(e,i)=>{e?(t=J,a[0]=e,this.emitWithAll(t,a)):i&&(a.length>1?a[1]=i:a.push(i),this.emitWithAll(t,a))};return this._awaitWriteFinish(e,n.stabilityThreshold,t,i),this}if(t===B&&!this._throttle(B,e,50))return this;if(r.alwaysStat&&void 0===i&&(t===K||t===G||t===B)){let t,i=r.cwd?E.join(r.cwd,e):e;try{t=await (0,v.stat)(i)}catch(t){}if(!t||this.closed)return;a.push(t)}return this.emitWithAll(t,a),this}_handleError(t){let e=t&&t.code;return t&&"ENOENT"!==e&&"ENOTDIR"!==e&&(!this.options.ignorePermissionErrors||"EPERM"!==e&&"EACCES"!==e)&&this.emit(J,t),t||this.closed}_throttle(t,e,i){let s;this._throttled.has(t)||this._throttled.set(t,new Map);let r=this._throttled.get(t);if(!r)throw Error("invalid throttle");let a=r.get(e);if(a)return a.count++,!1;let n=()=>{let t=r.get(e),i=t?t.count:0;return r.delete(e),clearTimeout(s),t&&clearTimeout(t.timeoutObject),i},o={timeoutObject:s=setTimeout(n,i),clear:n,count:0};return r.set(e,o),o}_incrReadyCount(){return this._readyCount++}_awaitWriteFinish(t,e,i,s){let r,a=this.options.awaitWriteFinish;if("object"!=typeof a)return;let n=a.pollInterval,o=t;this.options.cwd&&!E.isAbsolute(t)&&(o=E.join(this.options.cwd,t));let l=new Date,h=this._pendingWrites;h.has(t)||(h.set(t,{lastChange:l,cancelWait:()=>(h.delete(t),clearTimeout(r),i)}),r=setTimeout(function i(a){(0,y.stat)(o,(o,l)=>{if(o||!h.has(t)){o&&"ENOENT"!==o.code&&s(o);return}let d=Number(new Date);a&&l.size!==a.size&&(h.get(t).lastChange=d),d-h.get(t).lastChange>=e?(h.delete(t),s(void 0,l)):r=setTimeout(i,n,l)})},n))}_isIgnored(t,e){if(this.options.atomic&&tm.test(t))return!0;if(!this._userIgnored){let{cwd:t}=this.options,e=(this.options.ignored||[]).map(tP(t)),i=[...[...this._ignoredPaths].map(tP(t)),...e];this._userIgnored=function(t,e){if(null==t)throw TypeError("anymatch: specify first argument");let i=t_(t).map(t=>"function"==typeof t?t:"string"==typeof t?e=>t===e:t instanceof RegExp?e=>t.test(e):"object"==typeof t&&null!==t?e=>{if(t.path===e)return!0;if(t.recursive){let i=E.relative(t.path,e);return!!i&&!i.startsWith("..")&&!E.isAbsolute(i)}return!1}:()=>!1);return null==e?(t,e)=>ty(i,t,e):ty(i,e)}(i,void 0)}return this._userIgnored(t,e)}_isntIgnored(t,e){return!this._isIgnored(t,e)}_getWatchHelpers(t){return new tk(t,this.options.followSymlinks,this)}_getWatchedDir(t){let e=E.resolve(t);return this._watched.has(e)||this._watched.set(e,new tx(e,this._boundRemove)),this._watched.get(e)}_hasReadPermissions(t){return!!this.options.ignorePermissionErrors||!!(256&Number(t.mode))}_remove(t,e,i){let s=E.join(t,e),r=E.resolve(s);if(i=null!=i?i:this._watched.has(s)||this._watched.has(r),!this._throttle("remove",s,100))return;i||1!==this._watched.size||this.add(t,e,!0),this._getWatchedDir(s).getChildren().forEach(t=>this._remove(s,t));let a=this._getWatchedDir(t),n=a.has(e);a.remove(e),this._symlinkPaths.has(r)&&this._symlinkPaths.delete(r);let o=s;if(this.options.cwd&&(o=E.relative(this.options.cwd,s)),this.options.awaitWriteFinish&&this._pendingWrites.has(o)&&this._pendingWrites.get(o).cancelWait()===K)return;this._watched.delete(s),this._watched.delete(r);let l=i?X:V;n&&!this._isIgnored(s)&&this._emit(l,s),this._closePath(s)}_closePath(t){this._closeFile(t);let e=E.dirname(t);this._getWatchedDir(e).remove(E.basename(t))}_closeFile(t){let e=this._closers.get(t);e&&(e.forEach(t=>t()),this._closers.delete(t))}_addPathCloser(t,e){if(!e)return;let i=this._closers.get(t);i||(i=[],this._closers.set(t,i)),i.push(e)}_readdirp(t,e){if(this.closed)return;let i=function(t,e={}){let i=e.entryType||e.type;if("both"===i&&(i=x),i&&(e.type=i),t){if("string"!=typeof t)throw TypeError("readdirp: root argument must be a string. Usage: readdirp(root, options)");else if(i&&!S.includes(i))throw Error(`readdirp: Invalid type passed. Use one of ${S.join(", ")}`)}else throw Error("readdirp: root argument is required. Usage: readdirp(root, options)");return e.root=t,new F(e)}(t,{type:$,alwaysStat:!0,lstat:!0,...e,depth:0});return this._streams.add(i),i.once("close",()=>{i=void 0}),i.once("end",()=>{i&&(this._streams.delete(i),i=void 0)}),i}}var tD=t.i(702414),tS=t.i(254226),tI=t.i(504445);async function tA(t){if(!(await (0,tS.requireUser)(t)).ok)return tD.NextResponse.json({error:"UNAUTHORIZED"},{status:401});let e=(0,tI.getRootDir)();if(!e)return new Response("Root not configured",{status:503});let i=new TextEncoder,s=null,r=null,a=null;function n(t){if(a)try{a.enqueue(i.encode(`data: ${JSON.stringify(t)}
2
-
3
- `))}catch{}}return new Response(new ReadableStream({start(t){function o(t){return E.default.relative(e,t)}a=t,(s=function(t,e={}){let i=new tC(e);return i.add(t),i}(e,{ignoreInitial:!0,ignored:/(node_modules|\.git)/,persistent:!0,awaitWriteFinish:{stabilityThreshold:150,pollInterval:50}})).on("add",t=>n({type:"add",path:o(t)})),s.on("unlink",t=>n({type:"unlink",path:o(t)})),s.on("addDir",t=>{let e=o(t);e&&n({type:"addDir",path:e})}),s.on("unlinkDir",t=>{let e=o(t);e&&n({type:"unlinkDir",path:e})}),s.on("change",t=>n({type:"change",path:o(t)})),r=setInterval(()=>{try{t.enqueue(i.encode(": heartbeat\n\n"))}catch{null!==r&&clearInterval(r)}},15e3)},cancel(){a=null,null!==r&&clearInterval(r),s?.close()}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","X-Accel-Buffering":"no"}})}t.s(["GET",0,tA,"runtime",0,"nodejs"],197405);var tT=t.i(197405);let tW=new e.AppRouteRouteModule({definition:{kind:i.RouteKind.APP_ROUTE,page:"/api/wiki/watch/route",pathname:"/api/wiki/watch",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/wiki/watch/route.ts",nextConfigOutput:"standalone",userland:tT,...{}}),{workAsyncStorage:tF,workUnitAsyncStorage:tN,serverHooks:tO}=tW;async function tj(t,e,s){s.requestMeta&&(0,r.setRequestMeta)(t,s.requestMeta),tW.isDev&&(0,r.addRequestMeta)(t,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/wiki/watch/route";g=g.replace(/\/index$/,"")||"/";let y=await tW.prepare(t,e,{srcPage:g,multiZoneDraftMode:!1});if(!y)return e.statusCode=400,e.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:v,params:E,nextConfig:b,parsedUrl:P,isDraftMode:R,prerenderManifest:x,routerServerContext:k,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:S,clientReferenceManifest:I,serverActionsManifest:A}=y,T=(0,o.normalizeAppPath)(g),W=!!(x.dynamicRoutes[T]||x.routes[S]),F=async()=>((null==k?void 0:k.render404)?await k.render404(t,e,P,!1):e.end("This page could not be found"),null);if(W&&!R){let t=!!x.routes[S],e=x.dynamicRoutes[T];if(e&&!1===e.fallback&&!t){if(b.adapterPath)return await F();throw new w.NoFallbackError}}let N=null;!W||tW.isDev||R||(N="/index"===(N=S)?"/":N);let O=!0===tW.isDev||!W,j=W&&!O;A&&I&&(0,n.setManifestsSingleton)({page:g,clientReferenceManifest:I,serverActionsManifest:A});let M=t.method||"GET",z=(0,a.getTracer)(),H=z.getActiveScopeSpan(),U=!!(null==k?void 0:k.isWrappedByNextServer),q=!!(0,r.getRequestMeta)(t,"minimalMode"),$=(0,r.getRequestMeta)(t,"incrementalCache")||await tW.getIncrementalCache(t,b,x,q);null==$||$.resetRequestCache(),globalThis.__incrementalCache=$;let L={params:E,previewProps:x.preview,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:O,incrementalCache:$,cacheLifeProfiles:b.cacheLife,waitUntil:s.waitUntil,onClose:t=>{e.on("close",t)},onAfterTaskError:void 0,onInstrumentationRequestError:(e,i,s,r)=>tW.onRequestError(t,e,s,r,k)},sharedContext:{buildId:v}},K=new l.NodeNextRequest(t),B=new l.NodeNextResponse(e),G=h.NextRequestAdapter.fromNodeNextRequest(K,(0,h.signalFromNodeResponse)(e));try{let r,n=async t=>tW.handle(G,L).finally(()=>{if(!t)return;t.setAttributes({"http.status_code":e.statusCode,"next.rsc":!1});let i=z.getRootSpanAttributes();if(!i)return;if(i.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${i.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=i.get("next.route");if(s){let e=`${M} ${s}`;t.setAttributes({"next.route":s,"http.route":s,"next.span_name":e}),t.updateName(e),r&&r!==t&&(r.setAttribute("http.route",s),r.updateName(e))}else t.updateName(`${M} ${g}`)}),o=async r=>{var a,o;let l=async({previousCacheEntry:i})=>{try{if(!q&&C&&D&&!i)return e.statusCode=404,e.setHeader("x-nextjs-cache","REVALIDATED"),e.end("This page could not be found"),null;let a=await n(r);t.fetchMetrics=L.renderOpts.fetchMetrics;let o=L.renderOpts.pendingWaitUntil;o&&s.waitUntil&&(s.waitUntil(o),o=void 0);let l=L.renderOpts.collectedTags;if(!W)return await (0,u.sendResponse)(K,B,a,L.renderOpts.pendingWaitUntil),null;{let t=await a.blob(),e=(0,p.toNodeOutgoingHttpHeaders)(a.headers);l&&(e[m.NEXT_CACHE_TAGS_HEADER]=l),!e["content-type"]&&t.type&&(e["content-type"]=t.type);let i=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:_.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await t.arrayBuffer()),headers:e},cacheControl:{revalidate:i,expire:s}}}}catch(e){throw(null==i?void 0:i.isStale)&&await tW.onRequestError(t,e,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:C})},!1,k),e}},h=await tW.handleResponse({req:t,nextConfig:b,cacheKey:N,routeKind:i.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:x,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:l,waitUntil:s.waitUntil,isMinimalMode:q});if(!W)return null;if((null==h||null==(a=h.value)?void 0:a.kind)!==_.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==h||null==(o=h.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});q||e.setHeader("x-nextjs-cache",C?"REVALIDATED":h.isMiss?"MISS":h.isStale?"STALE":"HIT"),R&&e.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,p.fromNodeOutgoingHttpHeaders)(h.value.headers);return q&&W||d.delete(m.NEXT_CACHE_TAGS_HEADER),!h.cacheControl||e.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,f.getCacheControlHeader)(h.cacheControl)),await (0,u.sendResponse)(K,B,new Response(h.value.body,{headers:d,status:h.value.status||200})),null};U&&H?await o(H):(r=z.getActiveScopeSpan(),await z.withPropagatedContext(t.headers,()=>z.trace(d.BaseServerSpan.handleRequest,{spanName:`${M} ${g}`,kind:a.SpanKind.SERVER,attributes:{"http.method":M,"http.target":t.url}},o),void 0,!U))}catch(e){if(e instanceof w.NoFallbackError||await tW.onRequestError(t,e,{routerKind:"App Router",routePath:T,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:C})},!1,k),W)throw e;return await (0,u.sendResponse)(K,B,new Response(null,{status:500})),null}}t.s(["handler",0,tj,"patchFetch",0,function(){return(0,s.patchFetch)({workAsyncStorage:tF,workUnitAsyncStorage:tN})},"routeModule",0,tW,"serverHooks",0,tO,"workAsyncStorage",0,tF,"workUnitAsyncStorage",0,tN],735049)}];
4
-
5
- //# sourceMappingURL=0p91_next_dist_esm_build_templates_app-route_0o~h4zq.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[504445,e=>{"use strict";var t=e.i(750227);let r=globalThis;function a(){return r.__wikiRootDir??""}!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,a,"isRootDirSet",0,function(){return!!r.__wikiRootDir},"safeRootPath",0,function(e){let r=a();if(!r)return null;if(!e||"."===e)return r;let i=t.default.resolve(r,e);return i===r||i.startsWith(r+t.default.sep)?i:null},"setRootDir",0,function(e){r.__wikiRootDir=t.default.resolve(e)}])},682643,e=>{"use strict";var t=e.i(364564),r=e.i(102095),a=e.i(691091),i=e.i(475331),n=e.i(490301),s=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),R=e.i(157569),v=e.i(844146),_=e.i(193695);e.i(105888);var m=e.i(530564),f=e.i(912714),w=e.i(750227),g=e.i(702414),E=e.i(254226),y=e.i(504445);async function C(e){try{return(await (0,f.readdir)(e,{withFileTypes:!0})).filter(e=>e.isFile()&&e.name.toLowerCase().endsWith(".md")).map(e=>e.name.slice(0,-3)).sort((e,t)=>e.localeCompare(t))}catch(e){if("ENOENT"===e.code)return[];throw e}}async function x(e){if(!(await (0,E.requireUser)(e)).ok)return g.NextResponse.json({error:"UNAUTHORIZED"},{status:401});try{let[e,t,r,a]=await Promise.all([C(w.default.join((0,y.getRootDir)(),"entities")),C(w.default.join((0,y.getRootDir)(),"concepts")),C(w.default.join((0,y.getRootDir)(),"comparisons")),C((0,y.getRootDir)())]);return g.NextResponse.json({entities:e,concepts:t,comparisons:r,root:a},{headers:{"Cache-Control":"private, max-age=10"}})}catch{return g.NextResponse.json({error:"Failed to list slugs"},{status:500})}}e.s(["GET",0,x],302066);var k=e.i(302066);let P=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/wiki/slugs/route",pathname:"/api/wiki/slugs",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/wiki/slugs/route.ts",nextConfigOutput:"standalone",userland:k,...{}}),{workAsyncStorage:T,workUnitAsyncStorage:A,serverHooks:N}=P;async function D(e,t,a){a.requestMeta&&(0,i.setRequestMeta)(e,a.requestMeta),P.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let f="/api/wiki/slugs/route";f=f.replace(/\/index$/,"")||"/";let w=await P.prepare(e,t,{srcPage:f,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:g,params:E,nextConfig:y,parsedUrl:C,isDraftMode:x,prerenderManifest:k,routerServerContext:T,isOnDemandRevalidate:A,revalidateOnlyGenerated:N,resolvedPathname:D,clientReferenceManifest:b,serverActionsManifest:O}=w,q=(0,o.normalizeAppPath)(f),j=!!(k.dynamicRoutes[q]||k.routes[D]),S=async()=>((null==T?void 0:T.render404)?await T.render404(e,t,C,!1):t.end("This page could not be found"),null);if(j&&!x){let e=!!k.routes[D],t=k.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(y.adapterPath)return await S();throw new _.NoFallbackError}}let I=null;!j||P.isDev||x||(I="/index"===(I=D)?"/":I);let U=!0===P.isDev||!j,H=j&&!U;O&&b&&(0,s.setManifestsSingleton)({page:f,clientReferenceManifest:b,serverActionsManifest:O});let M=e.method||"GET",F=(0,n.getTracer)(),K=F.getActiveScopeSpan(),$=!!(null==T?void 0:T.isWrappedByNextServer),B=!!(0,i.getRequestMeta)(e,"minimalMode"),z=(0,i.getRequestMeta)(e,"incrementalCache")||await P.getIncrementalCache(e,y,k,B);null==z||z.resetRequestCache(),globalThis.__incrementalCache=z;let L={params:E,previewProps:k.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:U,incrementalCache:z,cacheLifeProfiles:y.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,i)=>P.onRequestError(e,t,a,i,T)},sharedContext:{buildId:g}},W=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),V=u.NextRequestAdapter.fromNodeNextRequest(W,(0,u.signalFromNodeResponse)(t));try{let i,s=async e=>P.handle(V,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.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 a=r.get("next.route");if(a){let t=`${M} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),i&&i!==e&&(i.setAttribute("http.route",a),i.updateName(t))}else e.updateName(`${M} ${f}`)}),o=async i=>{var n,o;let l=async({previousCacheEntry:r})=>{try{if(!B&&A&&N&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await s(i);e.fetchMetrics=L.renderOpts.fetchMetrics;let o=L.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=L.renderOpts.collectedTags;if(!j)return await (0,p.sendResponse)(W,G,n,L.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);l&&(t[v.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>=v.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,a=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=v.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await P.onRequestError(e,t,{routerKind:"App Router",routePath:f,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:A})},!1,T),t}},u=await P.handleResponse({req:e,nextConfig:y,cacheKey:I,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:k,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:N,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:B});if(!j)return null;if((null==u||null==(n=u.value)?void 0:n.kind)!==m.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});B||t.setHeader("x-nextjs-cache",A?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),x&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return B&&j||d.delete(v.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,R.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(W,G,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};$&&K?await o(K):(i=F.getActiveScopeSpan(),await F.withPropagatedContext(e.headers,()=>F.trace(d.BaseServerSpan.handleRequest,{spanName:`${M} ${f}`,kind:n.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},o),void 0,!$))}catch(t){if(t instanceof _.NoFallbackError||await P.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:A})},!1,T),j)throw t;return await (0,p.sendResponse)(W,G,new Response(null,{status:500})),null}}e.s(["handler",0,D,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:T,workUnitAsyncStorage:A})},"routeModule",0,P,"serverHooks",0,N,"workAsyncStorage",0,T,"workUnitAsyncStorage",0,A],682643)},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)))}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0.hb9q2._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[504445,e=>{"use strict";var t=e.i(750227);let r=globalThis;function a(){return r.__wikiRootDir??""}!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,a,"isRootDirSet",0,function(){return!!r.__wikiRootDir},"safeRootPath",0,function(e){let r=a();if(!r)return null;if(!e||"."===e)return r;let n=t.default.resolve(r,e);return n===r||n.startsWith(r+t.default.sep)?n:null},"setRootDir",0,function(e){r.__wikiRootDir=t.default.resolve(e)}])},402662,e=>{"use strict";var t=e.i(702414);e.s(["checkOrigin",0,function(e){let r=e.method.toUpperCase();if("GET"===r||"HEAD"===r||"OPTIONS"===r)return null;let a=e.headers.get("origin"),n=e.headers.get("referer");if(!a&&!n)return null;let i=function(e){let t=Array.from(new Set(["localhost","127.0.0.1",e.split(":")[0],...(process.env.WIKI_OWNER_HOSTS??"").split(",").map(e=>e.trim()).filter(Boolean)])),r=["",":3000",":3003"];e.includes(":")&&r.push(":"+e.split(":")[1]);let a=new Set;for(let e of t)for(let t of["http","https"])for(let n of r)a.add(`${t}://${e}${n}`);return a}(e.headers.get("host")??"");if(a)return i.has(a)?null:t.NextResponse.json({error:"FORBIDDEN",message:"Bad origin"},{status:403});if(n){try{let{protocol:e,host:t}=new URL(n);if(i.has(`${e}//${t}`))return null}catch{}return t.NextResponse.json({error:"FORBIDDEN",message:"Bad referer"},{status:403})}return null}])},424218,e=>{"use strict";var t=e.i(364564),r=e.i(102095),a=e.i(691091),n=e.i(475331),i=e.i(490301),s=e.i(670943),o=e.i(690324),l=e.i(243133),u=e.i(404870),d=e.i(420180),p=e.i(867883),c=e.i(336708),h=e.i(682278),R=e.i(157569),f=e.i(844146),v=e.i(193695);e.i(105888);var m=e.i(530564),_=e.i(912714),w=e.i(750227),g=e.i(702414),y=e.i(402662),E=e.i(254226),N=e.i(504445);async function x(e,t){try{let r=w.default.join(e,t,"package.json");return(await (0,_.stat)(r)).isFile()}catch{return!1}}async function O(e,t){try{let r=w.default.join(e,t,"index.html");return(await (0,_.stat)(r)).isFile()}catch{return!1}}async function k(e){if(!(await (0,E.requireUser)(e)).ok)return g.NextResponse.json({error:"UNAUTHORIZED"},{status:401});let{searchParams:t}=new URL(e.url),r=t.get("dir")??"",a=(0,N.safeRootPath)(r);if(!a)return g.NextResponse.json({error:"Invalid path"},{status:400});try{let e;try{e=await (0,_.readdir)(a)}catch{return g.NextResponse.json({entries:[]})}let t=await Promise.all(e.map(async e=>{let t=w.default.join(a,e),n=await (0,_.stat)(t);if(n.isDirectory()){let t=r?`${r}/${e}`:e;if(await x((0,N.getRootDir)(),t))return{name:e,type:"node-app",modifiedAt:n.mtime.toISOString()};let a=await O((0,N.getRootDir)(),t);return{name:e,type:a?"app":"dir",modifiedAt:n.mtime.toISOString()}}return{name:e,type:"file",size:n.size,modifiedAt:n.mtime.toISOString()}}));return t.sort((e,t)=>{let r="dir"===e.type||"app"===e.type||"node-app"===e.type,a="dir"===t.type||"app"===t.type||"node-app"===t.type;return r!==a?r?-1:1:e.name.localeCompare(t.name)}),g.NextResponse.json({entries:t})}catch{return g.NextResponse.json({error:"Failed to list directory"},{status:500})}}async function C(e){let t=(0,y.checkOrigin)(e);if(t)return t;if(!(await (0,E.requireUser)(e)).ok)return g.NextResponse.json({error:"UNAUTHORIZED"},{status:401});let r=(await e.json()).path;if(!r||"string"!=typeof r)return g.NextResponse.json({error:"Invalid path"},{status:400});let a=(0,N.safeRootPath)(r);if(!a||a===(0,N.getRootDir)())return g.NextResponse.json({error:"Invalid path"},{status:400});try{return(await (0,_.stat)(a)).isDirectory()?await (0,_.rmdir)(a):await (0,_.unlink)(a),g.NextResponse.json({ok:!0})}catch(t){let e=t.code;if("ENOENT"===e)return g.NextResponse.json({error:"Not found"},{status:404});if("ENOTEMPTY"===e)return g.NextResponse.json({error:"Folder is not empty"},{status:409});return g.NextResponse.json({error:"Delete failed"},{status:500})}}e.s(["DELETE",0,C,"GET",0,k],209429);var D=e.i(209429);let j=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/wiki/route",pathname:"/api/wiki",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/wiki/route.ts",nextConfigOutput:"standalone",userland:D,...{}}),{workAsyncStorage:T,workUnitAsyncStorage:A,serverHooks:P}=j;async function S(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),j.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let _="/api/wiki/route";_=_.replace(/\/index$/,"")||"/";let w=await j.prepare(e,t,{srcPage:_,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:g,params:y,nextConfig:E,parsedUrl:N,isDraftMode:x,prerenderManifest:O,routerServerContext:k,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:T,clientReferenceManifest:A,serverActionsManifest:P}=w,S=(0,o.normalizeAppPath)(_),I=!!(O.dynamicRoutes[S]||O.routes[T]),b=async()=>((null==k?void 0:k.render404)?await k.render404(e,t,N,!1):t.end("This page could not be found"),null);if(I&&!x){let e=!!O.routes[T],t=O.dynamicRoutes[S];if(t&&!1===t.fallback&&!e){if(E.adapterPath)return await b();throw new v.NoFallbackError}}let q=null;!I||j.isDev||x||(q="/index"===(q=T)?"/":q);let U=!0===j.isDev||!I,H=I&&!U;P&&A&&(0,s.setManifestsSingleton)({page:_,clientReferenceManifest:A,serverActionsManifest:P});let M=e.method||"GET",$=(0,i.getTracer)(),F=$.getActiveScopeSpan(),B=!!(null==k?void 0:k.isWrappedByNextServer),K=!!(0,n.getRequestMeta)(e,"minimalMode"),z=(0,n.getRequestMeta)(e,"incrementalCache")||await j.getIncrementalCache(e,E,O,K);null==z||z.resetRequestCache(),globalThis.__incrementalCache=z;let L={params:y,previewProps:O.preview,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:U,incrementalCache:z,cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>j.onRequestError(e,t,a,n,k)},sharedContext:{buildId:g}},W=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),V=u.NextRequestAdapter.fromNodeNextRequest(W,(0,u.signalFromNodeResponse)(t));try{let n,s=async e=>j.handle(V,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.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 a=r.get("next.route");if(a){let t=`${M} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",a),n.updateName(t))}else e.updateName(`${M} ${_}`)}),o=async n=>{var i,o;let l=async({previousCacheEntry:r})=>{try{if(!K&&C&&D&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await s(n);e.fetchMetrics=L.renderOpts.fetchMetrics;let o=L.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=L.renderOpts.collectedTags;if(!I)return await (0,c.sendResponse)(W,G,i,L.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(i.headers);l&&(t[f.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>=f.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,a=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await j.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:C})},!1,k),t}},u=await j.handleResponse({req:e,nextConfig:E,cacheKey:q,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:O,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:K});if(!I)return null;if((null==u||null==(i=u.value)?void 0:i.kind)!==m.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",C?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),x&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return K&&I||d.delete(f.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,R.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(W,G,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};B&&F?await o(F):(n=$.getActiveScopeSpan(),await $.withPropagatedContext(e.headers,()=>$.trace(d.BaseServerSpan.handleRequest,{spanName:`${M} ${_}`,kind:i.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},o),void 0,!B))}catch(t){if(t instanceof v.NoFallbackError||await j.onRequestError(e,t,{routerKind:"App Router",routePath:S,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:C})},!1,k),I)throw t;return await (0,c.sendResponse)(W,G,new Response(null,{status:500})),null}}e.s(["handler",0,S,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:T,workUnitAsyncStorage:A})},"routeModule",0,j,"serverHooks",0,P,"workAsyncStorage",0,T,"workUnitAsyncStorage",0,A],424218)},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)))}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0.uux34._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[504445,e=>{"use strict";var t=e.i(750227);let r=globalThis;function a(){return r.__wikiRootDir??""}!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,a,"isRootDirSet",0,function(){return!!r.__wikiRootDir},"safeRootPath",0,function(e){let r=a();if(!r)return null;if(!e||"."===e)return r;let n=t.default.resolve(r,e);return n===r||n.startsWith(r+t.default.sep)?n:null},"setRootDir",0,function(e){r.__wikiRootDir=t.default.resolve(e)}])},402662,e=>{"use strict";var t=e.i(702414);e.s(["checkOrigin",0,function(e){let r=e.method.toUpperCase();if("GET"===r||"HEAD"===r||"OPTIONS"===r)return null;let a=e.headers.get("origin"),n=e.headers.get("referer");if(!a&&!n)return null;let i=function(e){let t=Array.from(new Set(["localhost","127.0.0.1",e.split(":")[0],...(process.env.WIKI_OWNER_HOSTS??"").split(",").map(e=>e.trim()).filter(Boolean)])),r=["",":3000",":3003"];e.includes(":")&&r.push(":"+e.split(":")[1]);let a=new Set;for(let e of t)for(let t of["http","https"])for(let n of r)a.add(`${t}://${e}${n}`);return a}(e.headers.get("host")??"");if(a)return i.has(a)?null:t.NextResponse.json({error:"FORBIDDEN",message:"Bad origin"},{status:403});if(n){try{let{protocol:e,host:t}=new URL(n);if(i.has(`${e}//${t}`))return null}catch{}return t.NextResponse.json({error:"FORBIDDEN",message:"Bad referer"},{status:403})}return null}])},37715,e=>{"use strict";var t=e.i(364564),r=e.i(102095),a=e.i(691091),n=e.i(475331),i=e.i(490301),s=e.i(670943),o=e.i(690324),l=e.i(243133),u=e.i(404870),p=e.i(420180),d=e.i(867883),c=e.i(336708),h=e.i(682278),m=e.i(157569),f=e.i(844146),v=e.i(193695);e.i(105888);var R=e.i(530564),_=e.i(912714),g=e.i(750227),w=e.i(702414),x=e.i(402662),y=e.i(254226),E=e.i(504445);let N=new Set(["application/pdf","text/plain","text/markdown","application/msword","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.ms-excel","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/vnd.ms-powerpoint","application/vnd.openxmlformats-officedocument.presentationml.presentation","image/jpeg","image/png","image/gif","image/webp","image/svg+xml","application/octet-stream"]),C=new Set(["pdf","txt","md","doc","docx","xls","xlsx","ppt","pptx","jpg","jpeg","png","gif","webp","svg","csv","json","yaml","yml","xml","html","sh","mp4","webm","mov","mp3","wav","ogg","m4a","aac","ipynb","mmd"]);async function k(e){let t,r=(0,x.checkOrigin)(e);if(r)return r;if(!(await (0,y.requireUser)(e)).ok)return w.NextResponse.json({error:"UNAUTHORIZED"},{status:401});try{t=await e.formData()}catch{return w.NextResponse.json({error:"Invalid form data"},{status:400})}let a=t.get("file");if(!a||!(a instanceof File))return w.NextResponse.json({error:"No file provided"},{status:400});let n=t.get("dir")??"",i=(0,E.safeRootPath)(n);if(!i)return w.NextResponse.json({error:"Invalid directory"},{status:400});let s=a.name.split(".").pop()?.toLowerCase()??"";if(!N.has(a.type)&&!C.has(s))return w.NextResponse.json({error:`File type not allowed: ${a.name}`},{status:400});if(a.size>0x6400000)return w.NextResponse.json({error:"File exceeds 100MB limit"},{status:400});let o=a.name.replace(/\.[^.]+$/,"").replace(/[^a-zA-Z0-9._-]/g,"_").replace(/_{2,}/g,"_"),l=`${o}.${s}`,u=g.default.join(i,l);try{await (0,_.mkdir)(i,{recursive:!0});let e=Buffer.from(await a.arrayBuffer());await (0,_.writeFile)(u,e)}catch{return w.NextResponse.json({error:"Failed to save file"},{status:500})}let p=n?`${n}/${l}`:l;return w.NextResponse.json({filename:l,path:p,originalName:a.name})}e.s(["POST",0,k],488439);var O=e.i(488439);let P=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/wiki/upload/route",pathname:"/api/wiki/upload",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/wiki/upload/route.ts",nextConfigOutput:"standalone",userland:O,...{}}),{workAsyncStorage:j,workUnitAsyncStorage:A,serverHooks:b}=P;async function T(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),P.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let _="/api/wiki/upload/route";_=_.replace(/\/index$/,"")||"/";let g=await P.prepare(e,t,{srcPage:_,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:w,params:x,nextConfig:y,parsedUrl:E,isDraftMode:N,prerenderManifest:C,routerServerContext:k,isOnDemandRevalidate:O,revalidateOnlyGenerated:j,resolvedPathname:A,clientReferenceManifest:b,serverActionsManifest:T}=g,D=(0,o.normalizeAppPath)(_),S=!!(C.dynamicRoutes[D]||C.routes[A]),q=async()=>((null==k?void 0:k.render404)?await k.render404(e,t,E,!1):t.end("This page could not be found"),null);if(S&&!N){let e=!!C.routes[A],t=C.dynamicRoutes[D];if(t&&!1===t.fallback&&!e){if(y.adapterPath)return await q();throw new v.NoFallbackError}}let I=null;!S||P.isDev||N||(I="/index"===(I=A)?"/":I);let U=!0===P.isDev||!S,H=S&&!U;T&&b&&(0,s.setManifestsSingleton)({page:_,clientReferenceManifest:b,serverActionsManifest:T});let $=e.method||"GET",M=(0,i.getTracer)(),B=M.getActiveScopeSpan(),F=!!(null==k?void 0:k.isWrappedByNextServer),K=!!(0,n.getRequestMeta)(e,"minimalMode"),z=(0,n.getRequestMeta)(e,"incrementalCache")||await P.getIncrementalCache(e,y,C,K);null==z||z.resetRequestCache(),globalThis.__incrementalCache=z;let L={params:x,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:U,incrementalCache:z,cacheLifeProfiles:y.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>P.onRequestError(e,t,a,n,k)},sharedContext:{buildId:w}},W=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),V=u.NextRequestAdapter.fromNodeNextRequest(W,(0,u.signalFromNodeResponse)(t));try{let n,s=async e=>P.handle(V,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=M.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==p.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 a=r.get("next.route");if(a){let t=`${$} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",a),n.updateName(t))}else e.updateName(`${$} ${_}`)}),o=async n=>{var i,o;let l=async({previousCacheEntry:r})=>{try{if(!K&&O&&j&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await s(n);e.fetchMetrics=L.renderOpts.fetchMetrics;let o=L.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=L.renderOpts.collectedTags;if(!S)return await (0,c.sendResponse)(W,G,i,L.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(i.headers);l&&(t[f.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>=f.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,a=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await P.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:O})},!1,k),t}},u=await P.handleResponse({req:e,nextConfig:y,cacheKey:I,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:j,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:K});if(!S)return null;if((null==u||null==(i=u.value)?void 0:i.kind)!==R.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",O?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),N&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return K&&S||p.delete(f.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,m.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(W,G,new Response(u.value.body,{headers:p,status:u.value.status||200})),null};F&&B?await o(B):(n=M.getActiveScopeSpan(),await M.withPropagatedContext(e.headers,()=>M.trace(p.BaseServerSpan.handleRequest,{spanName:`${$} ${_}`,kind:i.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},o),void 0,!F))}catch(t){if(t instanceof v.NoFallbackError||await P.onRequestError(e,t,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:O})},!1,k),S)throw t;return await (0,c.sendResponse)(W,G,new Response(null,{status:500})),null}}e.s(["handler",0,T,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:j,workUnitAsyncStorage:A})},"routeModule",0,P,"serverHooks",0,b,"workAsyncStorage",0,j,"workUnitAsyncStorage",0,A],37715)},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)))}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0092hkp._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[504445,e=>{"use strict";var t=e.i(750227);let n=globalThis;function a(){return n.__wikiRootDir??""}!n.__wikiRootDir&&process.env.ROOT_DIR&&(n.__wikiRootDir=t.default.resolve(process.env.ROOT_DIR)),e.s(["clearRootDir",0,function(){n.__wikiRootDir=void 0},"getRootDir",0,a,"isRootDirSet",0,function(){return!!n.__wikiRootDir},"safeRootPath",0,function(e){let n=a();if(!n)return null;if(!e||"."===e)return n;let r=t.default.resolve(n,e);return r===n||r.startsWith(n+t.default.sep)?r:null},"setRootDir",0,function(e){n.__wikiRootDir=t.default.resolve(e)}])},814747,(e,t,n)=>{t.exports=e.x("path",()=>require("path"))},224361,(e,t,n)=>{t.exports=e.x("util",()=>require("util"))},688947,(e,t,n)=>{t.exports=e.x("stream",()=>require("stream"))},427699,(e,t,n)=>{t.exports=e.x("events",()=>require("events"))},228064,e=>{"use strict";var t=e.i(666680),n=e.i(912714),a=e.i(660526),r=e.i(750227),i=e.i(832852);let s="__registry__",o=new Map;function l(){let e=process.env.HOME??a.default.homedir();return r.default.join(e,".wiki-viewer")}function u(){return r.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,n.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,n.mkdir)(l(),{recursive:!0});let t=u()+".tmp";await (0,n.writeFile)(t,JSON.stringify(e,null,2),{encoding:"utf8",mode:384});try{await (0,n.chmod)(t,384)}catch{}await (0,n.rename)(t,u())}async function g(){let e=await c();if(e)return e;let t={version:1,agents:[]};return await p(t),t}async function h(e){let n=await c();if(!n)return null;let a=d(e);for(let e of n.agents)if(function(e,n){let a=Buffer.from(e.padEnd(64,"0"),"utf8"),r=Buffer.from(n.padEnd(64,"0"),"utf8");return a.length===r.length&&(0,t.timingSafeEqual)(a,r)&&e.length===n.length}(e.tokenHash,a))return e;return null}async function f(e){await (0,i.withFileMutex)(s,async()=>{let t=await g(),n=t.agents.findIndex(t=>t.id===e.id);n>=0?t.agents[n]=e:t.agents.push(e),await p(t)})}async function v(e){return(0,i.withFileMutex)(s,async()=>{let t=await c();if(!t)return!1;let n=t.agents.length;return t.agents=t.agents.filter(t=>t.id!==e),t.agents.length!==n&&(await p(t),!0)})}async function R(e){Date.now()-(o.get(e)??0)<3e4||await (0,i.withFileMutex)(s,async()=>{let t=await c();if(!t)return;let n=t.agents.find(t=>t.id===e);n&&(n.lastSeen=new Date().toISOString(),o.set(e,Date.now()),await p(t))})}e.s(["addAgent",0,f,"hashToken",0,d,"lookupAgentByToken",0,h,"readRegistry",0,c,"removeAgent",0,v,"updateLastSeen",0,R])},215043,552350,e=>{"use strict";var t=e.i(228064);function n(e,t){return(function(e){let t="^",n=0;for(;n<e.length;)"*"===e[n]&&"*"===e[n+1]?(t+=".*","/"===e[n+=2]&&(t+="(?:.+/)?",n++)):("*"===e[n]?t+="[^/]*":"?"===e[n]?t+="[^/]":t+=e[n].replace(/[.+^${}()|[\]\\]/g,"\\$&"),n++);return new RegExp(t+="$")})(e).test(t)}e.s(["matchGlob",0,n],552350);var a=e.i(254226);async function r(e){let n=await (0,a.getSessionFromRequest)(e);if(n?.user){let e=n.user;return{ok:!0,agent:{id:`user:${e.id}`,displayName:e.name,tokenHash:"",scope:{paths:["**/*"],ops:["read","mutate","delete"]},createdAt:"",lastSeen:""}}}let r=e.headers.get("authorization")??"",i=r.startsWith("Bearer ")?r.slice(7).trim():"";if(!i)return{ok:!1,code:"UNAUTHORIZED",message:"No credentials"};let s=await (0,t.lookupAgentByToken)(i);if(!s)return{ok:!1,code:"UNAUTHORIZED",message:"Unknown or invalid token"};let o=e.headers.get("x-agent-id")??"";return o?o!==s.id?{ok:!1,code:"UNAUTHORIZED",message:"X-Agent-Id does not match token owner"}:((0,t.updateLastSeen)(s.id),{ok:!0,agent:s}):{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,r,"enforceScope",0,function(e,t){let{scope:a}=e;return a.ops.includes(t.op)?t.filePath&&!a.paths.some(e=>n(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)},413895,e=>{"use strict";var t=e.i(666680);let n=globalThis;n.__wvPendingRegs||(n.__wvPendingRegs=new Map);let a=n.__wvPendingRegs;e.s(["approveRegistration",0,function(e,t){let n=a.get(e);return!!n&&"pending"===n.status&&(n.status="approved",n.tokenPlaintext=t,n.resolvedAt=new Date().toISOString(),!0)},"consumeRegistration",0,function(e){let t=a.get(e);if(!t||"approved"!==t.status||!t.tokenPlaintext)return null;let n=t.tokenPlaintext;return t.status="consumed",t.tokenPlaintext=void 0,n},"createRegistration",0,function(e){let n=`reg_${(0,t.randomBytes)(16).toString("hex")}`,r={registrationId:n,agentId:e.agentId,displayName:e.displayName,requestedScope:e.requestedScope??{paths:["**/*"],ops:["read","mutate"]},requestedAt:new Date().toISOString(),status:"pending"};return a.set(n,r),r},"denyRegistration",0,function(e){let t=a.get(e);return!!t&&"pending"===t.status&&(t.status="denied",t.resolvedAt=new Date().toISOString(),!0)},"getRegistration",0,function(e){return a.get(e)},"listPendingRegistrations",0,function(){return[...a.values()].filter(e=>"pending"===e.status)}])},280137,e=>{"use strict";var t=e.i(364564),n=e.i(102095),a=e.i(691091),r=e.i(475331),i=e.i(490301),s=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),g=e.i(682278),h=e.i(157569),f=e.i(844146),v=e.i(193695);e.i(105888);var R=e.i(530564),m=e.i(702414),w=e.i(215043),_=e.i(504445),y=e.i(228064),E=e.i(413895);async function k(e){let t=await (0,w.checkAuth)(e);if(!t.ok)return m.NextResponse.json({error:"UNAUTHORIZED"},{status:401});let n=(0,w.enforceScope)(t.agent,{op:"read"});if(!n.ok)return m.NextResponse.json({error:n.code,message:n.message},{status:403});let a=await (0,y.readRegistry)(),r=a?.agents.length??0,i=(0,E.listPendingRegistrations)().length;return m.NextResponse.json({rateLimit:Number(process.env.AGENT_RATE_LIMIT)||60,root:(0,_.getRootDir)(),registeredAgents:r,pendingRegistrations:i})}e.s(["GET",0,k,"runtime",0,"nodejs"],232229);var A=e.i(232229);let x=new t.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/agent/settings/route",pathname:"/api/agent/settings",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/agent/settings/route.ts",nextConfigOutput:"standalone",userland:A,...{}}),{workAsyncStorage:N,workUnitAsyncStorage:D,serverHooks:P}=x;async function T(e,t,a){a.requestMeta&&(0,r.setRequestMeta)(e,a.requestMeta),x.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let m="/api/agent/settings/route";m=m.replace(/\/index$/,"")||"/";let w=await x.prepare(e,t,{srcPage:m,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:_,params:y,nextConfig:E,parsedUrl:k,isDraftMode:A,prerenderManifest:N,routerServerContext:D,isOnDemandRevalidate:P,revalidateOnlyGenerated:T,resolvedPathname:O,clientReferenceManifest:S,serverActionsManifest:I}=w,C=(0,o.normalizeAppPath)(m),q=!!(N.dynamicRoutes[C]||N.routes[O]),b=async()=>((null==D?void 0:D.render404)?await D.render404(e,t,k,!1):t.end("This page could not be found"),null);if(q&&!A){let e=!!N.routes[O],t=N.dynamicRoutes[C];if(t&&!1===t.fallback&&!e){if(E.adapterPath)return await b();throw new v.NoFallbackError}}let U=null;!q||x.isDev||A||(U="/index"===(U=O)?"/":U);let j=!0===x.isDev||!q,H=q&&!j;I&&S&&(0,s.setManifestsSingleton)({page:m,clientReferenceManifest:S,serverActionsManifest:I});let M=e.method||"GET",B=(0,i.getTracer)(),F=B.getActiveScopeSpan(),$=!!(null==D?void 0:D.isWrappedByNextServer),K=!!(0,r.getRequestMeta)(e,"minimalMode"),L=(0,r.getRequestMeta)(e,"incrementalCache")||await x.getIncrementalCache(e,E,N,K);null==L||L.resetRequestCache(),globalThis.__incrementalCache=L;let G={params:y,previewProps:N.preview,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:j,incrementalCache:L,cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,a,r)=>x.onRequestError(e,t,a,r,D)},sharedContext:{buildId:_}},z=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),Z=u.NextRequestAdapter.fromNodeNextRequest(z,(0,u.signalFromNodeResponse)(t));try{let r,s=async e=>x.handle(Z,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let n=B.getRootSpanAttributes();if(!n)return;if(n.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${n.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=n.get("next.route");if(a){let t=`${M} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),r&&r!==e&&(r.setAttribute("http.route",a),r.updateName(t))}else e.updateName(`${M} ${m}`)}),o=async r=>{var i,o;let l=async({previousCacheEntry:n})=>{try{if(!K&&P&&T&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await s(r);e.fetchMetrics=G.renderOpts.fetchMetrics;let o=G.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=G.renderOpts.collectedTags;if(!q)return await (0,p.sendResponse)(z,W,i,G.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(i.headers);l&&(t[f.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let n=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,a=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:n,expire:a}}}}catch(t){throw(null==n?void 0:n.isStale)&&await x.onRequestError(e,t,{routerKind:"App Router",routePath:m,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:P})},!1,D),t}},u=await x.handleResponse({req:e,nextConfig:E,cacheKey:U,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:N,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:T,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:K});if(!q)return null;if((null==u||null==(i=u.value)?void 0:i.kind)!==R.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",P?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,g.fromNodeOutgoingHttpHeaders)(u.value.headers);return K&&q||d.delete(f.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,h.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(z,W,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};$&&F?await o(F):(r=B.getActiveScopeSpan(),await B.withPropagatedContext(e.headers,()=>B.trace(d.BaseServerSpan.handleRequest,{spanName:`${M} ${m}`,kind:i.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},o),void 0,!$))}catch(t){if(t instanceof v.NoFallbackError||await x.onRequestError(e,t,{routerKind:"App Router",routePath:C,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:P})},!1,D),q)throw t;return await (0,p.sendResponse)(z,W,new Response(null,{status:500})),null}}e.s(["handler",0,T,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:N,workUnitAsyncStorage:D})},"routeModule",0,x,"serverHooks",0,P,"workAsyncStorage",0,N,"workUnitAsyncStorage",0,D],280137)},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)))}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__05f6x0i._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[504445,e=>{"use strict";var t=e.i(750227);let r=globalThis;function a(){return r.__wikiRootDir??""}!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,a,"isRootDirSet",0,function(){return!!r.__wikiRootDir},"safeRootPath",0,function(e){let r=a();if(!r)return null;if(!e||"."===e)return r;let s=t.default.resolve(r,e);return s===r||s.startsWith(r+t.default.sep)?s:null},"setRootDir",0,function(e){r.__wikiRootDir=t.default.resolve(e)}])},402662,e=>{"use strict";var t=e.i(702414);e.s(["checkOrigin",0,function(e){let r=e.method.toUpperCase();if("GET"===r||"HEAD"===r||"OPTIONS"===r)return null;let a=e.headers.get("origin"),s=e.headers.get("referer");if(!a&&!s)return null;let n=function(e){let t=Array.from(new Set(["localhost","127.0.0.1",e.split(":")[0],...(process.env.WIKI_OWNER_HOSTS??"").split(",").map(e=>e.trim()).filter(Boolean)])),r=["",":3000",":3003"];e.includes(":")&&r.push(":"+e.split(":")[1]);let a=new Set;for(let e of t)for(let t of["http","https"])for(let s of r)a.add(`${t}://${e}${s}`);return a}(e.headers.get("host")??"");if(a)return n.has(a)?null:t.NextResponse.json({error:"FORBIDDEN",message:"Bad origin"},{status:403});if(s){try{let{protocol:e,host:t}=new URL(s);if(n.has(`${e}//${t}`))return null}catch{}return t.NextResponse.json({error:"FORBIDDEN",message:"Bad referer"},{status:403})}return null}])},522530,e=>{"use strict";var t=e.i(364564),r=e.i(102095),a=e.i(691091),s=e.i(475331),n=e.i(490301),i=e.i(670943),o=e.i(690324),l=e.i(243133),u=e.i(404870),d=e.i(420180),p=e.i(867883),c=e.i(336708),h=e.i(682278),R=e.i(157569),v=e.i(844146),_=e.i(193695);e.i(105888);var f=e.i(530564),m=e.i(912714),g=e.i(702414),w=e.i(402662),y=e.i(254226),E=e.i(798003),x=e.i(504445);async function C(e){let t=(0,w.checkOrigin)(e);if(t)return t;if(!(await (0,y.requireUser)(e)).ok)return g.NextResponse.json({error:"UNAUTHORIZED"},{status:401});let r=await e.json(),a=r.path?.trim();if(!a)return g.NextResponse.json({error:"Missing path"},{status:400});try{if(!(await (0,m.stat)(a)).isDirectory())return g.NextResponse.json({error:"Not a directory"},{status:400})}catch{return g.NextResponse.json({error:"Directory not found"},{status:404})}return(0,x.setRootDir)(a),await (0,E.writeConfig)({lastOpenedPath:a}),g.NextResponse.json({ok:!0,path:a})}e.s(["POST",0,C],346549);var N=e.i(346549);let O=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/system/set-root/route",pathname:"/api/system/set-root",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/system/set-root/route.ts",nextConfigOutput:"standalone",userland:N,...{}}),{workAsyncStorage:P,workUnitAsyncStorage:D,serverHooks:A}=O;async function T(e,t,a){a.requestMeta&&(0,s.setRequestMeta)(e,a.requestMeta),O.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let m="/api/system/set-root/route";m=m.replace(/\/index$/,"")||"/";let g=await O.prepare(e,t,{srcPage:m,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:w,params:y,nextConfig:E,parsedUrl:x,isDraftMode:C,prerenderManifest:N,routerServerContext:P,isOnDemandRevalidate:D,revalidateOnlyGenerated:A,resolvedPathname:T,clientReferenceManifest:k,serverActionsManifest:b}=g,S=(0,o.normalizeAppPath)(m),j=!!(N.dynamicRoutes[S]||N.routes[T]),q=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,x,!1):t.end("This page could not be found"),null);if(j&&!C){let e=!!N.routes[T],t=N.dynamicRoutes[S];if(t&&!1===t.fallback&&!e){if(E.adapterPath)return await q();throw new _.NoFallbackError}}let I=null;!j||O.isDev||C||(I="/index"===(I=T)?"/":I);let U=!0===O.isDev||!j,H=j&&!U;b&&k&&(0,i.setManifestsSingleton)({page:m,clientReferenceManifest:k,serverActionsManifest:b});let M=e.method||"GET",$=(0,n.getTracer)(),B=$.getActiveScopeSpan(),F=!!(null==P?void 0:P.isWrappedByNextServer),K=!!(0,s.getRequestMeta)(e,"minimalMode"),z=(0,s.getRequestMeta)(e,"incrementalCache")||await O.getIncrementalCache(e,E,N,K);null==z||z.resetRequestCache(),globalThis.__incrementalCache=z;let L={params:y,previewProps:N.preview,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:U,incrementalCache:z,cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,s)=>O.onRequestError(e,t,a,s,P)},sharedContext:{buildId:w}},W=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),V=u.NextRequestAdapter.fromNodeNextRequest(W,(0,u.signalFromNodeResponse)(t));try{let s,i=async e=>O.handle(V,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.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 a=r.get("next.route");if(a){let t=`${M} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),s&&s!==e&&(s.setAttribute("http.route",a),s.updateName(t))}else e.updateName(`${M} ${m}`)}),o=async s=>{var n,o;let l=async({previousCacheEntry:r})=>{try{if(!K&&D&&A&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await i(s);e.fetchMetrics=L.renderOpts.fetchMetrics;let o=L.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=L.renderOpts.collectedTags;if(!j)return await (0,c.sendResponse)(W,G,n,L.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);l&&(t[v.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>=v.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,a=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=v.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await O.onRequestError(e,t,{routerKind:"App Router",routePath:m,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:D})},!1,P),t}},u=await O.handleResponse({req:e,nextConfig:E,cacheKey:I,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:N,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:A,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:K});if(!j)return null;if((null==u||null==(n=u.value)?void 0:n.kind)!==f.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",D?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return K&&j||d.delete(v.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,R.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(W,G,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};F&&B?await o(B):(s=$.getActiveScopeSpan(),await $.withPropagatedContext(e.headers,()=>$.trace(d.BaseServerSpan.handleRequest,{spanName:`${M} ${m}`,kind:n.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},o),void 0,!F))}catch(t){if(t instanceof _.NoFallbackError||await O.onRequestError(e,t,{routerKind:"App Router",routePath:S,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:D})},!1,P),j)throw t;return await (0,c.sendResponse)(W,G,new Response(null,{status:500})),null}}e.s(["handler",0,T,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:P,workUnitAsyncStorage:D})},"routeModule",0,O,"serverHooks",0,A,"workAsyncStorage",0,P,"workUnitAsyncStorage",0,D],522530)},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)))}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__05idwm9._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[504445,e=>{"use strict";var t=e.i(750227);let n=globalThis;function r(){return n.__wikiRootDir??""}!n.__wikiRootDir&&process.env.ROOT_DIR&&(n.__wikiRootDir=t.default.resolve(process.env.ROOT_DIR)),e.s(["clearRootDir",0,function(){n.__wikiRootDir=void 0},"getRootDir",0,r,"isRootDirSet",0,function(){return!!n.__wikiRootDir},"safeRootPath",0,function(e){let n=r();if(!n)return null;if(!e||"."===e)return n;let s=t.default.resolve(n,e);return s===n||s.startsWith(n+t.default.sep)?s:null},"setRootDir",0,function(e){n.__wikiRootDir=t.default.resolve(e)}])},794776,e=>{"use strict";let t,n=Number.isFinite(t=parseInt(process.env.AGENT_RATE_LIMIT??"",10))&&t>0?t:60;e.s(["OPS_PER_MINUTE",0,n,"SIDECAR_EVENT_TRIM_SIZE",0,1e3,"SIDECAR_TRIM_EVERY_N_MUTATIONS",0,100])},857764,(e,t,n)=>{t.exports=e.x("node:url",()=>require("node:url"))},59639,(e,t,n)=>{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 n=e.i(59639);e.s(["minproc",()=>n.default],651212);var r=e.i(857764);e.s(["urlToPath",()=>r.fileURLToPath],316552)},889264,e=>{"use strict";let t=globalThis;function n(){return t.__wikiLeaseStore}function r(e){let t=n(),r=t.leases.get(e);return!!r&&(!(Date.now()>=r.expiresAt)||(t.leases.delete(e),t.generations.set(e,(t.generations.get(e)??0)+1),!1))}t.__wikiLeaseStore||(t.__wikiLeaseStore={leases:new Map,generations:new Map}),e.s(["clearLease",0,function(e,t){let r=n(),s=r.leases.get(e);s&&s.userId===t&&(r.leases.delete(e),r.generations.set(e,(r.generations.get(e)??0)+1))},"hasActiveLease",0,function(e){return r(e)},"leaseGeneration",0,function(e){return n().generations.get(e)??0},"setLease",0,function(e,t,s=9e4){let i=n(),a=r(e);i.leases.set(e,{userId:t,expiresAt:Date.now()+s}),a||i.generations.set(e,(i.generations.get(e)??0)+1)}])},814747,(e,t,n)=>{t.exports=e.x("path",()=>require("path"))},224361,(e,t,n)=>{t.exports=e.x("util",()=>require("util"))},688947,(e,t,n)=>{t.exports=e.x("stream",()=>require("stream"))},427699,(e,t,n)=>{t.exports=e.x("events",()=>require("events"))},228064,e=>{"use strict";var t=e.i(666680),n=e.i(912714),r=e.i(660526),s=e.i(750227),i=e.i(832852);let a="__registry__",o=new Map;function l(){let e=process.env.HOME??r.default.homedir();return s.default.join(e,".wiki-viewer")}function u(){return s.default.join(l(),"agents.json")}function c(e){return(0,t.createHash)("sha256").update(e,"utf8").digest("hex")}async function d(){try{let e=await (0,n.readFile)(u(),"utf8"),t=JSON.parse(e);return{version:1,agents:Array.isArray(t.agents)?t.agents:[]}}catch{return null}}async function f(e){await (0,n.mkdir)(l(),{recursive:!0});let t=u()+".tmp";await (0,n.writeFile)(t,JSON.stringify(e,null,2),{encoding:"utf8",mode:384});try{await (0,n.chmod)(t,384)}catch{}await (0,n.rename)(t,u())}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 n=await d();if(!n)return null;let r=c(e);for(let e of n.agents)if(function(e,n){let r=Buffer.from(e.padEnd(64,"0"),"utf8"),s=Buffer.from(n.padEnd(64,"0"),"utf8");return r.length===s.length&&(0,t.timingSafeEqual)(r,s)&&e.length===n.length}(e.tokenHash,r))return e;return null}async function g(e){await (0,i.withFileMutex)(a,async()=>{let t=await p(),n=t.agents.findIndex(t=>t.id===e.id);n>=0?t.agents[n]=e:t.agents.push(e),await f(t)})}async function m(e){return(0,i.withFileMutex)(a,async()=>{let t=await d();if(!t)return!1;let n=t.agents.length;return t.agents=t.agents.filter(t=>t.id!==e),t.agents.length!==n&&(await f(t),!0)})}async function _(e){Date.now()-(o.get(e)??0)<3e4||await (0,i.withFileMutex)(a,async()=>{let t=await d();if(!t)return;let n=t.agents.find(t=>t.id===e);n&&(n.lastSeen=new Date().toISOString(),o.set(e,Date.now()),await f(t))})}e.s(["addAgent",0,g,"hashToken",0,c,"lookupAgentByToken",0,h,"readRegistry",0,d,"removeAgent",0,m,"updateLastSeen",0,_])},215043,552350,e=>{"use strict";var t=e.i(228064);function n(e,t){return(function(e){let t="^",n=0;for(;n<e.length;)"*"===e[n]&&"*"===e[n+1]?(t+=".*","/"===e[n+=2]&&(t+="(?:.+/)?",n++)):("*"===e[n]?t+="[^/]*":"?"===e[n]?t+="[^/]":t+=e[n].replace(/[.+^${}()|[\]\\]/g,"\\$&"),n++);return new RegExp(t+="$")})(e).test(t)}e.s(["matchGlob",0,n],552350);var r=e.i(254226);async function s(e){let n=await (0,r.getSessionFromRequest)(e);if(n?.user){let e=n.user;return{ok:!0,agent:{id:`user:${e.id}`,displayName:e.name,tokenHash:"",scope:{paths:["**/*"],ops:["read","mutate","delete"]},createdAt:"",lastSeen:""}}}let s=e.headers.get("authorization")??"",i=s.startsWith("Bearer ")?s.slice(7).trim():"";if(!i)return{ok:!1,code:"UNAUTHORIZED",message:"No credentials"};let a=await (0,t.lookupAgentByToken)(i);if(!a)return{ok:!1,code:"UNAUTHORIZED",message:"Unknown or invalid token"};let o=e.headers.get("x-agent-id")??"";return o?o!==a.id?{ok:!1,code:"UNAUTHORIZED",message:"X-Agent-Id does not match token owner"}:((0,t.updateLastSeen)(a.id),{ok:!0,agent:a}):{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,s,"enforceScope",0,function(e,t){let{scope:r}=e;return r.ops.includes(t.op)?t.filePath&&!r.paths.some(e=>n(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),n=e.i(750227);function r(e,t){return n.default.join(e,".proof",t+".json")}async function s(e,n){let s=r(e,n);try{let e=await (0,t.readFile)(s,"utf-8"),n=JSON.parse(e);if(1!==n.schemaVersion)throw Error(`Sidecar schema version mismatch: expected 1, got ${n.schemaVersion}`);return n}catch(e){if(e instanceof Error&&"code"in e&&"ENOENT"===e.code)return null;throw e}}async function i(e,s,i){let a=r(e,s);await (0,t.mkdir)(n.default.dirname(a),{recursive:!0});let o=a+".tmp";await (0,t.writeFile)(o,JSON.stringify(i,null,2),"utf-8"),await (0,t.rename)(o,a)}async function a(e,s,i){let a=r(e,s),o=r(e,i);try{await (0,t.mkdir)(n.default.dirname(o),{recursive:!0}),await (0,t.rename)(a,o)}catch(e){if("ENOENT"===e.code)return;throw e}}async function o(e,n){let s=r(e,n);try{await (0,t.unlink)(s)}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,a,"readSidecar",0,s,"writeSidecar",0,i])},307764,e=>{"use strict";e.s(["emitEvents",0,function(e,t){let n=[];for(let r of t){let t={...r,id:e.nextEventId++};e.events.push(t),n.push(t)}return n},"pollEvents",0,function(e,t,n){return e.events.filter(e=>e.id>t).slice(0,n)},"trimEvents",0,function(e,t){if(e.events.length<=t)return;let n=Object.values(e.lastAck),r=n.length>0?Math.min(...n):1/0,s=e.events.length-t,i=e.events.filter((e,t)=>t>=s||e.id>r);e.events=i}])},850948,e=>{"use strict";function t(e){return e.replace(/&/g,"&amp;").replace(/"/g,"&quot;")}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 n=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),r=RegExp(`<proof-span\\b[^>]*\\bid="${n}"[^>]*>[\\s\\S]*?<\\/proof-span>`,"g");return e.replace(r,"")},"wrapAsProofSpan",0,function(e,n){let r,s=(r=[`id="${t(n.spanId)}"`,`origin="${n.origin}"`],n.basis&&r.push(`basis="${t(n.basis)}"`),n.basisDetail&&r.push(`basis-detail="${t(n.basisDetail)}"`),r.push(`by="${t(n.by)}"`),r.push(`at="${t(n.at)}"`),n.inResponseTo&&r.push(`in-response-to="${t(n.inResponseTo)}"`),r.join(" ")),i=e.trim();if(i.startsWith("```")||i.startsWith("~~~")||i.startsWith("<")&&!i.startsWith("<proof-span")||/^[-*_]{3,}\s*$/.test(i))return null;let a=i.split("\n")[0];if(a.includes("|")&&/^\|.*\|/.test(a))return null;let o=i.match(/^(#{1,6})\s+(.+)$/);if(o){let e=o[1],t=o[2].trimEnd();return`${e} <proof-span ${s}>${t}</proof-span>`}return i.startsWith(">")?i.split("\n").map(e=>{let t=e.match(/^(>\s?)(.*)/);if(!t)return e;let n=t[1],r=t[2];return r.trim()?`${n}<proof-span ${s}>${r}</proof-span>`:e}).join("\n"):/^(\s*(?:[-*+]|\d+\.)\s+(?:\[[ xX]\]\s+)?)(.*)/.test(i.split("\n")[0])?i.split("\n").map(e=>{let t=e.match(/^(\s*(?:[-*+]|\d+\.)\s+(?:\[[ xX]\]\s+)?)(.*)/);if(!t)return e;let n=t[1],r=t[2];return r.trim()?`${n}<proof-span ${s}>${r}</proof-span>`:e}).join("\n"):`<proof-span ${s}>${i}</proof-span>`}])},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)))}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__06-dtd0._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[504445,e=>{"use strict";var t=e.i(750227);let r=globalThis;function a(){return r.__wikiRootDir??""}!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,a,"isRootDirSet",0,function(){return!!r.__wikiRootDir},"safeRootPath",0,function(e){let r=a();if(!r)return null;if(!e||"."===e)return r;let n=t.default.resolve(r,e);return n===r||n.startsWith(r+t.default.sep)?n:null},"setRootDir",0,function(e){r.__wikiRootDir=t.default.resolve(e)}])},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),a=e.i(660526),n=e.i(750227),i=e.i(832852);let s="__registry__",o=new Map;function l(){let e=process.env.HOME??a.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 a=d(e);for(let e of r.agents)if(function(e,r){let a=Buffer.from(e.padEnd(64,"0"),"utf8"),n=Buffer.from(r.padEnd(64,"0"),"utf8");return a.length===n.length&&(0,t.timingSafeEqual)(a,n)&&e.length===r.length}(e.tokenHash,a))return e;return null}async function g(e){await (0,i.withFileMutex)(s,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 m(e){return(0,i.withFileMutex)(s,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 v(e){Date.now()-(o.get(e)??0)<3e4||await (0,i.withFileMutex)(s,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,g,"hashToken",0,d,"lookupAgentByToken",0,f,"readRegistry",0,c,"removeAgent",0,m,"updateLastSeen",0,v])},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 a=e.i(254226);async function n(e){let r=await (0,a.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")??"",i=n.startsWith("Bearer ")?n.slice(7).trim():"";if(!i)return{ok:!1,code:"UNAUTHORIZED",message:"No credentials"};let s=await (0,t.lookupAgentByToken)(i);if(!s)return{ok:!1,code:"UNAUTHORIZED",message:"Unknown or invalid token"};let o=e.headers.get("x-agent-id")??"";return o?o!==s.id?{ok:!1,code:"UNAUTHORIZED",message:"X-Agent-Id does not match token owner"}:((0,t.updateLastSeen)(s.id),{ok:!0,agent:s}):{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:a}=e;return a.ops.includes(t.op)?t.filePath&&!a.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 a(e,t){return r.default.join(e,".proof",t+".json")}async function n(e,r){let n=a(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 i(e,n,i){let s=a(e,n);await (0,t.mkdir)(r.default.dirname(s),{recursive:!0});let o=s+".tmp";await (0,t.writeFile)(o,JSON.stringify(i,null,2),"utf-8"),await (0,t.rename)(o,s)}async function s(e,n,i){let s=a(e,n),o=a(e,i);try{await (0,t.mkdir)(r.default.dirname(o),{recursive:!0}),await (0,t.rename)(s,o)}catch(e){if("ENOENT"===e.code)return;throw e}}async function o(e,r){let n=a(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,s,"readSidecar",0,n,"writeSidecar",0,i])},998395,e=>{"use strict";var t=e.i(364564),r=e.i(102095),a=e.i(691091),n=e.i(475331),i=e.i(490301),s=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),g=e.i(844146),m=e.i(193695);e.i(105888);var v=e.i(530564),w=e.i(702414),R=e.i(215043),_=e.i(973909),y=e.i(504445);async function E(e,{params:t}){let r=await (0,R.checkAuth)(e);if(!r.ok)return w.NextResponse.json({error:"UNAUTHORIZED"},{status:401});let{path:a}=await t,n=a.join("/");if(n.startsWith(".proof"))return w.NextResponse.json({error:"INVALID_PATH",message:"Path must not be under .proof"},{status:400});if(!(n.endsWith(".md")||n.endsWith(".markdown")))return w.NextResponse.json({error:"INVALID_PATH",message:"Path must be .md or .markdown"},{status:400});if(!(0,y.safeRootPath)(n))return w.NextResponse.json({error:"INVALID_PATH",message:"Path traversal rejected"},{status:400});let i=(0,R.enforceScope)(r.agent,{filePath:n,op:"read"});if(!i.ok)return w.NextResponse.json({error:i.code,message:i.message},{status:403});let s=(0,y.getRootDir)(),o=await (0,_.readSidecar)(s,n)??(0,_.emptySidecar)(n);return w.NextResponse.json(o)}e.s(["GET",0,E,"runtime",0,"nodejs"],206380);var k=e.i(206380);let A=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:k,...{}}),{workAsyncStorage:N,workUnitAsyncStorage:x,serverHooks:S}=A;async function T(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),A.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/agent/sidecar/[...path]/route";w=w.replace(/\/index$/,"")||"/";let R=await A.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:_,params:y,nextConfig:E,parsedUrl:k,isDraftMode:N,prerenderManifest:x,routerServerContext:S,isOnDemandRevalidate:T,revalidateOnlyGenerated:D,resolvedPathname:O,clientReferenceManifest:P,serverActionsManifest:I}=R,C=(0,o.normalizeAppPath)(w),b=!!(x.dynamicRoutes[C]||x.routes[O]),j=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,k,!1):t.end("This page could not be found"),null);if(b&&!N){let e=!!x.routes[O],t=x.dynamicRoutes[C];if(t&&!1===t.fallback&&!e){if(E.adapterPath)return await j();throw new m.NoFallbackError}}let q=null;!b||A.isDev||N||(q="/index"===(q=O)?"/":q);let H=!0===A.isDev||!b,U=b&&!H;I&&P&&(0,s.setManifestsSingleton)({page:w,clientReferenceManifest:P,serverActionsManifest:I});let M=e.method||"GET",F=(0,i.getTracer)(),B=F.getActiveScopeSpan(),$=!!(null==S?void 0:S.isWrappedByNextServer),K=!!(0,n.getRequestMeta)(e,"minimalMode"),L=(0,n.getRequestMeta)(e,"incrementalCache")||await A.getIncrementalCache(e,E,x,K);null==L||L.resetRequestCache(),globalThis.__incrementalCache=L;let W={params:y,previewProps:x.preview,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:H,incrementalCache:L,cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>A.onRequestError(e,t,a,n,S)},sharedContext:{buildId:_}},V=new l.NodeNextRequest(e),z=new l.NodeNextResponse(t),G=u.NextRequestAdapter.fromNodeNextRequest(V,(0,u.signalFromNodeResponse)(t));try{let n,s=async e=>A.handle(G,W).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.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 a=r.get("next.route");if(a){let t=`${M} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",a),n.updateName(t))}else e.updateName(`${M} ${w}`)}),o=async n=>{var i,o;let l=async({previousCacheEntry:r})=>{try{if(!K&&T&&D&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await s(n);e.fetchMetrics=W.renderOpts.fetchMetrics;let o=W.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=W.renderOpts.collectedTags;if(!b)return await (0,p.sendResponse)(V,z,i,W.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(i.headers);l&&(t[g.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,a=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:W.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await A.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:T})},!1,S),t}},u=await A.handleResponse({req:e,nextConfig:E,cacheKey:q,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:x,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:D,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:K});if(!b)return null;if((null==u||null==(i=u.value)?void 0:i.kind)!==v.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",T?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),N&&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(g.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)(V,z,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};$&&B?await o(B):(n=F.getActiveScopeSpan(),await F.withPropagatedContext(e.headers,()=>F.trace(d.BaseServerSpan.handleRequest,{spanName:`${M} ${w}`,kind:i.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},o),void 0,!$))}catch(t){if(t instanceof m.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:C,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:T})},!1,S),b)throw t;return await (0,p.sendResponse)(V,z,new Response(null,{status:500})),null}}e.s(["handler",0,T,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:N,workUnitAsyncStorage:x})},"routeModule",0,A,"serverHooks",0,S,"workAsyncStorage",0,N,"workUnitAsyncStorage",0,x],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)))}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__06sek6_._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[504445,e=>{"use strict";var t=e.i(750227);let r=globalThis;function n(){return r.__wikiRootDir??""}!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,n,"isRootDirSet",0,function(){return!!r.__wikiRootDir},"safeRootPath",0,function(e){let r=n();if(!r)return null;if(!e||"."===e)return r;let s=t.default.resolve(r,e);return s===r||s.startsWith(r+t.default.sep)?s:null},"setRootDir",0,function(e){r.__wikiRootDir=t.default.resolve(e)}])},402662,e=>{"use strict";var t=e.i(702414);e.s(["checkOrigin",0,function(e){let r=e.method.toUpperCase();if("GET"===r||"HEAD"===r||"OPTIONS"===r)return null;let n=e.headers.get("origin"),s=e.headers.get("referer");if(!n&&!s)return null;let i=function(e){let t=Array.from(new Set(["localhost","127.0.0.1",e.split(":")[0],...(process.env.WIKI_OWNER_HOSTS??"").split(",").map(e=>e.trim()).filter(Boolean)])),r=["",":3000",":3003"];e.includes(":")&&r.push(":"+e.split(":")[1]);let n=new Set;for(let e of t)for(let t of["http","https"])for(let s of r)n.add(`${t}://${e}${s}`);return n}(e.headers.get("host")??"");if(n)return i.has(n)?null:t.NextResponse.json({error:"FORBIDDEN",message:"Bad origin"},{status:403});if(s){try{let{protocol:e,host:t}=new URL(s);if(i.has(`${e}//${t}`))return null}catch{}return t.NextResponse.json({error:"FORBIDDEN",message:"Bad referer"},{status:403})}return null}])},874533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},761095,(e,t,r)=>{t.exports=e.x("node:net",()=>require("node:net"))},345212,e=>{"use strict";var t=e.i(874533),r=e.i(902157),n=e.i(761095),s=e.i(750227);let i=new Map;function o(e,t){return new Promise(r=>{let s=(0,n.createConnection)(e,t);s.setTimeout(800),s.on("connect",()=>{s.destroy(),r(!0)}),s.on("error",()=>{s.destroy(),r(!1)}),s.on("timeout",()=>{s.destroy(),r(!1)})})}async function a(e,t=3e4){let r=Date.now()+t;for(;Date.now()<r;){let[t,r]=await Promise.all([o(e,"127.0.0.1"),o(e,"::1")]);if(t||r)return!0;await new Promise(e=>setTimeout(e,400))}return!1}async function l(e,o){let l=i.get(e);if(l&&"stopped"!==l.status&&"error"!==l.status)return{port:l.port};let u=await new Promise((e,t)=>{let r=(0,n.createServer)();r.listen(0,"127.0.0.1",()=>{let t=r.address(),n="object"==typeof t&&t?t.port:0;r.close(()=>e(n))}),r.on("error",t)}),p=(0,r.existsSync)(s.default.join(o,"pnpm-lock.yaml"))?"pnpm":(0,r.existsSync)(s.default.join(o,"yarn.lock"))?"yarn":"npm",d=function(e,t){let n=s.default.join(e,"package.json");if(!(0,r.existsSync)(n))return null;let i=JSON.parse((0,r.readFileSync)(n,"utf-8")),o=i.scripts??{},a=Object.keys({...i.dependencies,...i.devDependencies}).some(e=>"vite"===e||e.includes("vite")),l=(e,r=[])=>({bin:t,args:["run",e,...r.length?["--",...r]:[]],isVite:a});return o.start?l("start"):o.preview&&(0,r.existsSync)(s.default.join(e,"dist"))?l("preview"):o.dev?l("dev"):i.main?{bin:"node",args:[i.main],isVite:!1}:null}(o,p);if(!d)throw Error("No runnable script found in package.json (need start, preview, or dev)");let c={port:u,process:null,status:"installing",logs:[]};i.set(e,c);let h=e=>{c.logs.push(e),c.logs.length>200&&c.logs.shift()};if(!(0,r.existsSync)(s.default.join(o,"node_modules")))try{h(`[wiki-viewer] Running ${p} install…`),await new Promise((e,r)=>{let n=(0,t.spawn)(p,["install"],{cwd:o,stdio:"pipe"});n.on("exit",t=>0===t?e():r(Error(`${p} install failed (exit ${t})`))),n.on("error",r)})}catch(e){return c.status="error",c.error=String(e),{port:u}}c.status="starting",h(`[wiki-viewer] Starting on port ${u}: ${d.bin} ${d.args.join(" ")}`);let f=d.isVite?["--port",String(u)]:[],v=(0,t.spawn)(d.bin,[...d.args,...f],{cwd:o,stdio:"pipe",env:{...process.env,PORT:String(u),VITE_PORT:String(u)}});c.process=v;let R=e=>{for(let t of e.toString().split("\n"))t.trim()&&h(t)};return v.stdout?.on("data",R),v.stderr?.on("data",R),v.on("exit",t=>{let r=i.get(e);r?.process===v&&(r.status=0===t||null===t?"stopped":"error",r.error=t?`Process exited with code ${t}`:void 0)}),a(u).then(t=>{let r=i.get(e);r?.process===v&&(r.status=t?"running":"error",t||(r.error="Port never became reachable (30 s timeout)"))}),{port:u}}e.s(["getStatus",0,function(e){let t=i.get(e);return t?{status:t.status,port:t.port||void 0,error:t.error,logs:t.logs}:{status:"stopped",logs:[]}},"resolveByPrefix",0,function(e){for(let t=e.length;t>0;t--){let r=e.slice(0,t).join("/"),n=i.get(r);if(n&&"running"===n.status&&n.port){let s="/"+e.slice(t).join("/");return{relPath:r,port:n.port,rest:s}}}return null},"startApp",0,l,"stopApp",0,function(e){let t=i.get(e);if(t?.process){try{t.process.kill("SIGTERM")}catch{}t.status="stopped"}}])},80520,e=>{"use strict";var t=e.i(364564),r=e.i(102095),n=e.i(691091),s=e.i(475331),i=e.i(490301),o=e.i(670943),a=e.i(690324),l=e.i(243133),u=e.i(404870),p=e.i(420180),d=e.i(867883),c=e.i(336708),h=e.i(682278),f=e.i(157569),v=e.i(844146),R=e.i(193695);e.i(105888);var g=e.i(530564),w=e.i(702414),m=e.i(402662),_=e.i(254226),y=e.i(345212),x=e.i(504445);async function E(e){if(!(await (0,_.requireUser)(e)).ok)return w.NextResponse.json({error:"UNAUTHORIZED"},{status:401});let{searchParams:t}=new URL(e.url),r=t.get("path")??"";return w.NextResponse.json((0,y.getStatus)(r))}async function k(e){let t=(0,m.checkOrigin)(e);if(t)return t;if(!(await (0,_.requireUser)(e)).ok)return w.NextResponse.json({error:"UNAUTHORIZED"},{status:401});let r=(await e.json()).path;if(!r||"string"!=typeof r)return w.NextResponse.json({error:"Missing path"},{status:400});let n=(0,x.safeRootPath)(r);if(!n)return w.NextResponse.json({error:"Invalid path"},{status:400});try{let e=await (0,y.startApp)(r,n);return w.NextResponse.json(e)}catch(e){return w.NextResponse.json({error:String(e)},{status:500})}}async function N(e){let t=(0,m.checkOrigin)(e);if(t)return t;if(!(await (0,_.requireUser)(e)).ok)return w.NextResponse.json({error:"UNAUTHORIZED"},{status:401});let r=(await e.json()).path;return r&&"string"==typeof r?((0,y.stopApp)(r),w.NextResponse.json({ok:!0})):w.NextResponse.json({error:"Missing path"},{status:400})}e.s(["DELETE",0,N,"GET",0,E,"POST",0,k],41743);var S=e.i(41743);let j=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/wiki/app/route",pathname:"/api/wiki/app",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/wiki/app/route.ts",nextConfigOutput:"standalone",userland:S,...{}}),{workAsyncStorage:P,workUnitAsyncStorage:T,serverHooks:O}=j;async function A(e,t,n){n.requestMeta&&(0,s.setRequestMeta)(e,n.requestMeta),j.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/wiki/app/route";w=w.replace(/\/index$/,"")||"/";let m=await j.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!m)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:_,params:y,nextConfig:x,parsedUrl:E,isDraftMode:k,prerenderManifest:N,routerServerContext:S,isOnDemandRevalidate:P,revalidateOnlyGenerated:T,resolvedPathname:O,clientReferenceManifest:A,serverActionsManifest:C}=m,b=(0,a.normalizeAppPath)(w),D=!!(N.dynamicRoutes[b]||N.routes[O]),q=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,E,!1):t.end("This page could not be found"),null);if(D&&!k){let e=!!N.routes[O],t=N.dynamicRoutes[b];if(t&&!1===t.fallback&&!e){if(x.adapterPath)return await q();throw new R.NoFallbackError}}let I=null;!D||j.isDev||k||(I="/index"===(I=O)?"/":I);let U=!0===j.isDev||!D,H=D&&!U;C&&A&&(0,o.setManifestsSingleton)({page:w,clientReferenceManifest:A,serverActionsManifest:C});let $=e.method||"GET",M=(0,i.getTracer)(),B=M.getActiveScopeSpan(),F=!!(null==S?void 0:S.isWrappedByNextServer),K=!!(0,s.getRequestMeta)(e,"minimalMode"),L=(0,s.getRequestMeta)(e,"incrementalCache")||await j.getIncrementalCache(e,x,N,K);null==L||L.resetRequestCache(),globalThis.__incrementalCache=L;let V={params:y,previewProps:N.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:U,incrementalCache:L,cacheLifeProfiles:x.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,s)=>j.onRequestError(e,t,n,s,S)},sharedContext:{buildId:_}},z=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),W=u.NextRequestAdapter.fromNodeNextRequest(z,(0,u.signalFromNodeResponse)(t));try{let s,o=async e=>j.handle(W,V).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=M.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==p.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 n=r.get("next.route");if(n){let t=`${$} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t),s&&s!==e&&(s.setAttribute("http.route",n),s.updateName(t))}else e.updateName(`${$} ${w}`)}),a=async s=>{var i,a;let l=async({previousCacheEntry:r})=>{try{if(!K&&P&&T&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await o(s);e.fetchMetrics=V.renderOpts.fetchMetrics;let a=V.renderOpts.pendingWaitUntil;a&&n.waitUntil&&(n.waitUntil(a),a=void 0);let l=V.renderOpts.collectedTags;if(!D)return await (0,c.sendResponse)(z,G,i,V.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(i.headers);l&&(t[v.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=v.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,n=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=v.INFINITE_CACHE?void 0:V.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await j.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:P})},!1,S),t}},u=await j.handleResponse({req:e,nextConfig:x,cacheKey:I,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:N,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:T,responseGenerator:l,waitUntil:n.waitUntil,isMinimalMode:K});if(!D)return null;if((null==u||null==(i=u.value)?void 0:i.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(a=u.value)?void 0:a.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});K||t.setHeader("x-nextjs-cache",P?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),k&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return K&&D||p.delete(v.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,f.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(z,G,new Response(u.value.body,{headers:p,status:u.value.status||200})),null};F&&B?await a(B):(s=M.getActiveScopeSpan(),await M.withPropagatedContext(e.headers,()=>M.trace(p.BaseServerSpan.handleRequest,{spanName:`${$} ${w}`,kind:i.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},a),void 0,!F))}catch(t){if(t instanceof R.NoFallbackError||await j.onRequestError(e,t,{routerKind:"App Router",routePath:b,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:P})},!1,S),D)throw t;return await (0,c.sendResponse)(z,G,new Response(null,{status:500})),null}}e.s(["handler",0,A,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:P,workUnitAsyncStorage:T})},"routeModule",0,j,"serverHooks",0,O,"workAsyncStorage",0,P,"workUnitAsyncStorage",0,T],80520)},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)))}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__07fpqks._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[504445,e=>{"use strict";var t=e.i(750227);let r=globalThis;function n(){return r.__wikiRootDir??""}!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,n,"isRootDirSet",0,function(){return!!r.__wikiRootDir},"safeRootPath",0,function(e){let r=n();if(!r)return null;if(!e||"."===e)return r;let a=t.default.resolve(r,e);return a===r||a.startsWith(r+t.default.sep)?a:null},"setRootDir",0,function(e){r.__wikiRootDir=t.default.resolve(e)}])},224361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},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),n=e.i(660526),a=e.i(750227),s=e.i(832852);let i="__registry__",o=new Map;function l(){let e=process.env.HOME??n.default.homedir();return a.default.join(e,".wiki-viewer")}function u(){return a.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 n=d(e);for(let e of r.agents)if(function(e,r){let n=Buffer.from(e.padEnd(64,"0"),"utf8"),a=Buffer.from(r.padEnd(64,"0"),"utf8");return n.length===a.length&&(0,t.timingSafeEqual)(n,a)&&e.length===r.length}(e.tokenHash,n))return e;return null}async function g(e){await (0,s.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 m(e){return(0,s.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 v(e){Date.now()-(o.get(e)??0)<3e4||await (0,s.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,g,"hashToken",0,d,"lookupAgentByToken",0,f,"readRegistry",0,c,"removeAgent",0,m,"updateLastSeen",0,v])},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 n=e.i(254226);async function a(e){let r=await (0,n.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 a=e.headers.get("authorization")??"",s=a.startsWith("Bearer ")?a.slice(7).trim():"";if(!s)return{ok:!1,code:"UNAUTHORIZED",message:"No credentials"};let i=await (0,t.lookupAgentByToken)(s);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,a,"enforceScope",0,function(e,t){let{scope:n}=e;return n.ops.includes(t.op)?t.filePath&&!n.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 n(e,t){return r.default.join(e,".proof",t+".json")}async function a(e,r){let a=n(e,r);try{let e=await (0,t.readFile)(a,"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 s(e,a,s){let i=n(e,a);await (0,t.mkdir)(r.default.dirname(i),{recursive:!0});let o=i+".tmp";await (0,t.writeFile)(o,JSON.stringify(s,null,2),"utf-8"),await (0,t.rename)(o,i)}async function i(e,a,s){let i=n(e,a),o=n(e,s);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 a=n(e,r);try{await (0,t.unlink)(a)}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,a,"writeSidecar",0,s])},307764,e=>{"use strict";e.s(["emitEvents",0,function(e,t){let r=[];for(let n of t){let t={...n,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),n=r.length>0?Math.min(...r):1/0,a=e.events.length-t,s=e.events.filter((e,t)=>t>=a||e.id>n);e.events=s}])},850948,e=>{"use strict";function t(e){return e.replace(/&/g,"&amp;").replace(/"/g,"&quot;")}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,"\\$&"),n=RegExp(`<proof-span\\b[^>]*\\bid="${r}"[^>]*>[\\s\\S]*?<\\/proof-span>`,"g");return e.replace(n,"")},"wrapAsProofSpan",0,function(e,r){let n,a=(n=[`id="${t(r.spanId)}"`,`origin="${r.origin}"`],r.basis&&n.push(`basis="${t(r.basis)}"`),r.basisDetail&&n.push(`basis-detail="${t(r.basisDetail)}"`),n.push(`by="${t(r.by)}"`),n.push(`at="${t(r.at)}"`),r.inResponseTo&&n.push(`in-response-to="${t(r.inResponseTo)}"`),n.join(" ")),s=e.trim();if(s.startsWith("```")||s.startsWith("~~~")||s.startsWith("<")&&!s.startsWith("<proof-span")||/^[-*_]{3,}\s*$/.test(s))return null;let i=s.split("\n")[0];if(i.includes("|")&&/^\|.*\|/.test(i))return null;let o=s.match(/^(#{1,6})\s+(.+)$/);if(o){let e=o[1],t=o[2].trimEnd();return`${e} <proof-span ${a}>${t}</proof-span>`}return s.startsWith(">")?s.split("\n").map(e=>{let t=e.match(/^(>\s?)(.*)/);if(!t)return e;let r=t[1],n=t[2];return n.trim()?`${r}<proof-span ${a}>${n}</proof-span>`:e}).join("\n"):/^(\s*(?:[-*+]|\d+\.)\s+(?:\[[ xX]\]\s+)?)(.*)/.test(s.split("\n")[0])?s.split("\n").map(e=>{let t=e.match(/^(\s*(?:[-*+]|\d+\.)\s+(?:\[[ xX]\]\s+)?)(.*)/);if(!t)return e;let r=t[1],n=t[2];return n.trim()?`${r}<proof-span ${a}>${n}</proof-span>`:e}).join("\n"):`<proof-span ${a}>${s}</proof-span>`}])},571029,e=>{"use strict";var t=e.i(364564),r=e.i(102095),n=e.i(691091),a=e.i(475331),s=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),g=e.i(844146),m=e.i(193695);e.i(105888);var v=e.i(530564),w=e.i(912714),R=e.i(702414),_=e.i(850948),E=e.i(973909),y=e.i(832852),A=e.i(307764),N=e.i(504445),x=e.i(215043);async function k(e){let t,r=await (0,x.checkAuth)(e);if(!r.ok)return R.NextResponse.json({error:"UNAUTHORIZED"},{status:401});try{t=await e.json()}catch{return R.NextResponse.json({error:"INVALID_PAYLOAD",message:"Invalid JSON"},{status:400})}if("string"!=typeof t.path||!t.path)return R.NextResponse.json({error:"INVALID_PAYLOAD",message:"path (string) required"},{status:400});if("string"!=typeof t.spanId||!t.spanId)return R.NextResponse.json({error:"INVALID_PAYLOAD",message:"spanId (string) required"},{status:400});if("accept"!==t.action&&"revert"!==t.action)return R.NextResponse.json({error:"INVALID_PAYLOAD",message:"action must be 'accept' or 'revert'"},{status:400});let n=t.path,a=t.spanId,s=t.action;if(n.startsWith(".proof"))return R.NextResponse.json({error:"INVALID_PATH",message:"Path must not be under .proof"},{status:400});if(!(n.endsWith(".md")||n.endsWith(".markdown")))return R.NextResponse.json({error:"INVALID_PATH",message:"Path must be .md or .markdown"},{status:400});let i=(0,N.safeRootPath)(n);if(!i)return R.NextResponse.json({error:"INVALID_PATH",message:"Path traversal rejected"},{status:400});let o=(0,x.enforceScope)(r.agent,{filePath:n,op:"mutate"});if(!o.ok)return R.NextResponse.json({error:o.code,message:o.message},{status:403});let l=(0,N.getRootDir)(),u=r.agent.id,d=!1;try{await (0,y.withFileMutex)(n,async()=>{var e;let t,r,o;try{t=await (0,w.readFile)(i,"utf-8")}catch(e){if("ENOENT"===e.code){d=!0;return}throw e}let c="accept"===s?(e=t,r=a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),o=RegExp(`<proof-span\\b[^>]*\\bid="${r}"[^>]*>([\\s\\S]*?)<\\/proof-span>`,"g"),e.replace(o,"$1")):(0,_.revertProofSpan)(t,a);await (0,w.writeFile)(i,c,"utf-8");let p=await (0,E.readSidecar)(l,n)??(0,E.emptySidecar)(n);(0,A.emitEvents)(p,[{type:"accept"===s?"span.accepted":"span.reverted",at:new Date().toISOString(),by:"owner"===u?"human":u,spanId:a}]),await (0,E.writeSidecar)(l,n,p)})}catch(e){return R.NextResponse.json({error:"INTERNAL_ERROR",message:String(e)},{status:500})}return d?R.NextResponse.json({error:"NOT_FOUND",message:"File not found"},{status:404}):R.NextResponse.json({ok:!0})}e.s(["POST",0,k,"runtime",0,"nodejs"],923447);var S=e.i(923447);let D=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/agent/internal/span/route",pathname:"/api/agent/internal/span",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/agent/internal/span/route.ts",nextConfigOutput:"standalone",userland:S,...{}}),{workAsyncStorage:I,workUnitAsyncStorage:O,serverHooks:P}=D;async function T(e,t,n){n.requestMeta&&(0,a.setRequestMeta)(e,n.requestMeta),D.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/agent/internal/span/route";w=w.replace(/\/index$/,"")||"/";let R=await D.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:_,params:E,nextConfig:y,parsedUrl:A,isDraftMode:N,prerenderManifest:x,routerServerContext:k,isOnDemandRevalidate:S,revalidateOnlyGenerated:I,resolvedPathname:O,clientReferenceManifest:P,serverActionsManifest:T}=R,b=(0,o.normalizeAppPath)(w),$=!!(x.dynamicRoutes[b]||x.routes[O]),j=async()=>((null==k?void 0:k.render404)?await k.render404(e,t,A,!1):t.end("This page could not be found"),null);if($&&!N){let e=!!x.routes[O],t=x.dynamicRoutes[b];if(t&&!1===t.fallback&&!e){if(y.adapterPath)return await j();throw new m.NoFallbackError}}let C=null;!$||D.isDev||N||(C="/index"===(C=O)?"/":C);let q=!0===D.isDev||!$,H=$&&!q;T&&P&&(0,i.setManifestsSingleton)({page:w,clientReferenceManifest:P,serverActionsManifest:T});let U=e.method||"GET",F=(0,s.getTracer)(),M=F.getActiveScopeSpan(),B=!!(null==k?void 0:k.isWrappedByNextServer),L=!!(0,a.getRequestMeta)(e,"minimalMode"),W=(0,a.getRequestMeta)(e,"incrementalCache")||await D.getIncrementalCache(e,y,x,L);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let V={params:E,previewProps:x.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:q,incrementalCache:W,cacheLifeProfiles:y.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>D.onRequestError(e,t,n,a,k)},sharedContext:{buildId:_}},K=new l.NodeNextRequest(e),z=new l.NodeNextResponse(t),X=u.NextRequestAdapter.fromNodeNextRequest(K,(0,u.signalFromNodeResponse)(t));try{let a,i=async e=>D.handle(X,V).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.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 n=r.get("next.route");if(n){let t=`${U} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t),a&&a!==e&&(a.setAttribute("http.route",n),a.updateName(t))}else e.updateName(`${U} ${w}`)}),o=async a=>{var s,o;let l=async({previousCacheEntry:r})=>{try{if(!L&&S&&I&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await i(a);e.fetchMetrics=V.renderOpts.fetchMetrics;let o=V.renderOpts.pendingWaitUntil;o&&n.waitUntil&&(n.waitUntil(o),o=void 0);let l=V.renderOpts.collectedTags;if(!$)return await (0,p.sendResponse)(K,z,s,V.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[g.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,n=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:V.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await D.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:S})},!1,k),t}},u=await D.handleResponse({req:e,nextConfig:y,cacheKey:C,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:x,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:I,responseGenerator:l,waitUntil:n.waitUntil,isMinimalMode:L});if(!$)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==v.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});L||t.setHeader("x-nextjs-cache",S?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),N&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return L&&$||d.delete(g.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)(K,z,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};B&&M?await o(M):(a=F.getActiveScopeSpan(),await F.withPropagatedContext(e.headers,()=>F.trace(d.BaseServerSpan.handleRequest,{spanName:`${U} ${w}`,kind:s.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},o),void 0,!B))}catch(t){if(t instanceof m.NoFallbackError||await D.onRequestError(e,t,{routerKind:"App Router",routePath:b,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:S})},!1,k),$)throw t;return await (0,p.sendResponse)(K,z,new Response(null,{status:500})),null}}e.s(["handler",0,T,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:I,workUnitAsyncStorage:O})},"routeModule",0,D,"serverHooks",0,P,"workAsyncStorage",0,I,"workUnitAsyncStorage",0,O],571029)},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)))}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__094q5bj._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[504445,e=>{"use strict";var t=e.i(750227);let r=globalThis;function a(){return r.__wikiRootDir??""}!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,a,"isRootDirSet",0,function(){return!!r.__wikiRootDir},"safeRootPath",0,function(e){let r=a();if(!r)return null;if(!e||"."===e)return r;let n=t.default.resolve(r,e);return n===r||n.startsWith(r+t.default.sep)?n:null},"setRootDir",0,function(e){r.__wikiRootDir=t.default.resolve(e)}])},402662,e=>{"use strict";var t=e.i(702414);e.s(["checkOrigin",0,function(e){let r=e.method.toUpperCase();if("GET"===r||"HEAD"===r||"OPTIONS"===r)return null;let a=e.headers.get("origin"),n=e.headers.get("referer");if(!a&&!n)return null;let s=function(e){let t=Array.from(new Set(["localhost","127.0.0.1",e.split(":")[0],...(process.env.WIKI_OWNER_HOSTS??"").split(",").map(e=>e.trim()).filter(Boolean)])),r=["",":3000",":3003"];e.includes(":")&&r.push(":"+e.split(":")[1]);let a=new Set;for(let e of t)for(let t of["http","https"])for(let n of r)a.add(`${t}://${e}${n}`);return a}(e.headers.get("host")??"");if(a)return s.has(a)?null:t.NextResponse.json({error:"FORBIDDEN",message:"Bad origin"},{status:403});if(n){try{let{protocol:e,host:t}=new URL(n);if(s.has(`${e}//${t}`))return null}catch{}return t.NextResponse.json({error:"FORBIDDEN",message:"Bad referer"},{status:403})}return null}])},559600,e=>{"use strict";var t=e.i(364564),r=e.i(102095),a=e.i(691091),n=e.i(475331),s=e.i(490301),i=e.i(670943),o=e.i(690324),l=e.i(243133),u=e.i(404870),d=e.i(420180),p=e.i(867883),c=e.i(336708),h=e.i(682278),R=e.i(157569),v=e.i(844146),f=e.i(193695);e.i(105888);var _=e.i(530564),m=e.i(912714),w=e.i(702414),g=e.i(402662),E=e.i(254226),y=e.i(504445);async function x(e){let t=(0,g.checkOrigin)(e);if(t)return t;if(!(await (0,E.requireUser)(e)).ok)return w.NextResponse.json({error:"UNAUTHORIZED"},{status:401});let r=(await e.json()).path;if(!r||"string"!=typeof r||/[<>:"|?*]/.test(r))return w.NextResponse.json({error:"Invalid folder path"},{status:400});let a=(0,y.safeRootPath)(r);if(!a)return w.NextResponse.json({error:"Invalid path"},{status:400});try{return await (0,m.mkdir)(a,{recursive:!0}),w.NextResponse.json({ok:!0})}catch{return w.NextResponse.json({error:"Failed to create folder"},{status:500})}}e.s(["POST",0,x],101281);var C=e.i(101281);let k=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/wiki/folder/route",pathname:"/api/wiki/folder",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/wiki/folder/route.ts",nextConfigOutput:"standalone",userland:C,...{}}),{workAsyncStorage:N,workUnitAsyncStorage:O,serverHooks:P}=k;async function A(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),k.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let m="/api/wiki/folder/route";m=m.replace(/\/index$/,"")||"/";let w=await k.prepare(e,t,{srcPage:m,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:g,params:E,nextConfig:y,parsedUrl:x,isDraftMode:C,prerenderManifest:N,routerServerContext:O,isOnDemandRevalidate:P,revalidateOnlyGenerated:A,resolvedPathname:T,clientReferenceManifest:D,serverActionsManifest:b}=w,S=(0,o.normalizeAppPath)(m),j=!!(N.dynamicRoutes[S]||N.routes[T]),q=async()=>((null==O?void 0:O.render404)?await O.render404(e,t,x,!1):t.end("This page could not be found"),null);if(j&&!C){let e=!!N.routes[T],t=N.dynamicRoutes[S];if(t&&!1===t.fallback&&!e){if(y.adapterPath)return await q();throw new f.NoFallbackError}}let I=null;!j||k.isDev||C||(I="/index"===(I=T)?"/":I);let U=!0===k.isDev||!j,H=j&&!U;b&&D&&(0,i.setManifestsSingleton)({page:m,clientReferenceManifest:D,serverActionsManifest:b});let M=e.method||"GET",$=(0,s.getTracer)(),B=$.getActiveScopeSpan(),F=!!(null==O?void 0:O.isWrappedByNextServer),K=!!(0,n.getRequestMeta)(e,"minimalMode"),z=(0,n.getRequestMeta)(e,"incrementalCache")||await k.getIncrementalCache(e,y,N,K);null==z||z.resetRequestCache(),globalThis.__incrementalCache=z;let L={params:E,previewProps:N.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:U,incrementalCache:z,cacheLifeProfiles:y.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>k.onRequestError(e,t,a,n,O)},sharedContext:{buildId:g}},W=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),V=u.NextRequestAdapter.fromNodeNextRequest(W,(0,u.signalFromNodeResponse)(t));try{let n,i=async e=>k.handle(V,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.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 a=r.get("next.route");if(a){let t=`${M} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",a),n.updateName(t))}else e.updateName(`${M} ${m}`)}),o=async n=>{var s,o;let l=async({previousCacheEntry:r})=>{try{if(!K&&P&&A&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await i(n);e.fetchMetrics=L.renderOpts.fetchMetrics;let o=L.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=L.renderOpts.collectedTags;if(!j)return await (0,c.sendResponse)(W,G,s,L.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[v.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>=v.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,a=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=v.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:_.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await k.onRequestError(e,t,{routerKind:"App Router",routePath:m,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:P})},!1,O),t}},u=await k.handleResponse({req:e,nextConfig:y,cacheKey:I,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:N,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:A,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:K});if(!j)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==_.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",P?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return K&&j||d.delete(v.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,R.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(W,G,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};F&&B?await o(B):(n=$.getActiveScopeSpan(),await $.withPropagatedContext(e.headers,()=>$.trace(d.BaseServerSpan.handleRequest,{spanName:`${M} ${m}`,kind:s.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},o),void 0,!F))}catch(t){if(t instanceof f.NoFallbackError||await k.onRequestError(e,t,{routerKind:"App Router",routePath:S,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:P})},!1,O),j)throw t;return await (0,c.sendResponse)(W,G,new Response(null,{status:500})),null}}e.s(["handler",0,A,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:N,workUnitAsyncStorage:O})},"routeModule",0,k,"serverHooks",0,P,"workAsyncStorage",0,N,"workUnitAsyncStorage",0,O],559600)},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)))}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0awzyon._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[504445,e=>{"use strict";var t=e.i(750227);let a=globalThis;function r(){return a.__wikiRootDir??""}!a.__wikiRootDir&&process.env.ROOT_DIR&&(a.__wikiRootDir=t.default.resolve(process.env.ROOT_DIR)),e.s(["clearRootDir",0,function(){a.__wikiRootDir=void 0},"getRootDir",0,r,"isRootDirSet",0,function(){return!!a.__wikiRootDir},"safeRootPath",0,function(e){let a=r();if(!a)return null;if(!e||"."===e)return a;let n=t.default.resolve(a,e);return n===a||n.startsWith(a+t.default.sep)?n:null},"setRootDir",0,function(e){a.__wikiRootDir=t.default.resolve(e)}])},814747,(e,t,a)=>{t.exports=e.x("path",()=>require("path"))},224361,(e,t,a)=>{t.exports=e.x("util",()=>require("util"))},688947,(e,t,a)=>{t.exports=e.x("stream",()=>require("stream"))},427699,(e,t,a)=>{t.exports=e.x("events",()=>require("events"))},228064,e=>{"use strict";var t=e.i(666680),a=e.i(912714),r=e.i(660526),n=e.i(750227),i=e.i(832852);let s="__registry__",o=new Map;function l(){let e=process.env.HOME??r.default.homedir();return n.default.join(e,".wiki-viewer")}function u(){return n.default.join(l(),"agents.json")}function c(e){return(0,t.createHash)("sha256").update(e,"utf8").digest("hex")}async function d(){try{let e=await (0,a.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,a.mkdir)(l(),{recursive:!0});let t=u()+".tmp";await (0,a.writeFile)(t,JSON.stringify(e,null,2),{encoding:"utf8",mode:384});try{await (0,a.chmod)(t,384)}catch{}await (0,a.rename)(t,u())}async function h(){let e=await d();if(e)return e;let t={version:1,agents:[]};return await p(t),t}async function f(e){let a=await d();if(!a)return null;let r=c(e);for(let e of a.agents)if(function(e,a){let r=Buffer.from(e.padEnd(64,"0"),"utf8"),n=Buffer.from(a.padEnd(64,"0"),"utf8");return r.length===n.length&&(0,t.timingSafeEqual)(r,n)&&e.length===a.length}(e.tokenHash,r))return e;return null}async function g(e){await (0,i.withFileMutex)(s,async()=>{let t=await h(),a=t.agents.findIndex(t=>t.id===e.id);a>=0?t.agents[a]=e:t.agents.push(e),await p(t)})}async function m(e){return(0,i.withFileMutex)(s,async()=>{let t=await d();if(!t)return!1;let a=t.agents.length;return t.agents=t.agents.filter(t=>t.id!==e),t.agents.length!==a&&(await p(t),!0)})}async function w(e){Date.now()-(o.get(e)??0)<3e4||await (0,i.withFileMutex)(s,async()=>{let t=await d();if(!t)return;let a=t.agents.find(t=>t.id===e);a&&(a.lastSeen=new Date().toISOString(),o.set(e,Date.now()),await p(t))})}e.s(["addAgent",0,g,"hashToken",0,c,"lookupAgentByToken",0,f,"readRegistry",0,d,"removeAgent",0,m,"updateLastSeen",0,w])},215043,552350,e=>{"use strict";var t=e.i(228064);function a(e,t){return(function(e){let t="^",a=0;for(;a<e.length;)"*"===e[a]&&"*"===e[a+1]?(t+=".*","/"===e[a+=2]&&(t+="(?:.+/)?",a++)):("*"===e[a]?t+="[^/]*":"?"===e[a]?t+="[^/]":t+=e[a].replace(/[.+^${}()|[\]\\]/g,"\\$&"),a++);return new RegExp(t+="$")})(e).test(t)}e.s(["matchGlob",0,a],552350);var r=e.i(254226);async function n(e){let a=await (0,r.getSessionFromRequest)(e);if(a?.user){let e=a.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")??"",i=n.startsWith("Bearer ")?n.slice(7).trim():"";if(!i)return{ok:!1,code:"UNAUTHORIZED",message:"No credentials"};let s=await (0,t.lookupAgentByToken)(i);if(!s)return{ok:!1,code:"UNAUTHORIZED",message:"Unknown or invalid token"};let o=e.headers.get("x-agent-id")??"";return o?o!==s.id?{ok:!1,code:"UNAUTHORIZED",message:"X-Agent-Id does not match token owner"}:((0,t.updateLastSeen)(s.id),{ok:!0,agent:s}):{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:r}=e;return r.ops.includes(t.op)?t.filePath&&!r.paths.some(e=>a(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)},719126,e=>{"use strict";var t=e.i(666680),a=e.i(912714),r=e.i(750227),n=e.i(504445);async function i(e){let t,i=(0,n.getRootDir)();if(!i)return null;let s=r.default.normalize(e);if(s.startsWith("..")||r.default.isAbsolute(s)||".proof"===(t=s.replace(/\\/g,"/"))||t.startsWith(".proof/")||".git"===t||t.startsWith(".git/"))return null;let o=r.default.join(i,s);if(o!==i&&!o.startsWith(i+r.default.sep))return null;try{let e=await (0,a.realpath)(o);if(e!==i&&!e.startsWith(i+r.default.sep))return null}catch{let e=r.default.dirname(o);if(e!==o)try{let t=await (0,a.realpath)(e);if(t!==i&&!t.startsWith(i+r.default.sep))return null}catch{}}return o}let s={".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 r=420;try{let t=await (0,a.stat)(e);r=511&t.mode}catch{}let n=e+".~"+process.pid+"."+Date.now()+".tmp",i=await (0,a.open)(n,"w",r);try{await i.write(t),await i.datasync()}finally{await i.close()}await (0,a.rename)(n,e)}async function l(e,t){let n=r.default.dirname(e);if(t)return await (0,a.mkdir)(n,{recursive:!0}),!0;try{return await (0,a.stat)(n),!0}catch{return!1}}e.s(["atomicWrite",0,o,"ensureParentDir",0,l,"extractShaHex",0,function(e){return e.replace(/^"/,"").replace(/"$/,"").replace(/^sha256:/,"")},"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 s[r.default.extname(e).toLowerCase()]??"application/octet-stream"},"safeAbsPath",0,i,"sha256ofBuf",0,function(e){return"sha256:"+(0,t.createHash)("sha256").update(e).digest("hex")}])},308900,e=>{"use strict";var t=e.i(364564),a=e.i(102095),r=e.i(691091),n=e.i(475331),i=e.i(490301),s=e.i(670943),o=e.i(690324),l=e.i(243133),u=e.i(404870),c=e.i(420180),d=e.i(867883),p=e.i(336708),h=e.i(682278),f=e.i(157569),g=e.i(844146),m=e.i(193695);e.i(105888);var w=e.i(530564),y=e.i(912714),v=e.i(750227),R=e.i(702414),x=e.i(215043),_=e.i(504445),k=e.i(719126),A=e.i(552350);function E(e,t,a){return R.NextResponse.json({error:e,message:t},{status:a})}let D=new Set([".proof",".git","node_modules",".next"]);async function*N(e,t){let a;try{a=await (0,y.readdir)(v.default.join(e,t),{withFileTypes:!0})}catch{return}for(let r of a){if(D.has(r.name))continue;let a=t?`${t}/${r.name}`:r.name;r.isDirectory()?yield*N(e,a):(r.isFile()||r.isSymbolicLink())&&(yield a)}}async function O(e,t,a,r,n,i){let s;try{s=RegExp(a,"d")}catch{try{s=new RegExp(a)}catch{throw Error("Invalid regex pattern")}}let o=[],l=0;for await(let a of N(e,t)){let t;if(o.length>=r||Date.now()>i)return{matches:o,truncated:!0};if(!(0,x.enforceScope)(n,{filePath:a,op:"read"}).ok)continue;try{t=await (0,y.readFile)(v.default.join(e,a))}catch{continue}if((l+=t.length)>0x3200000)return{matches:o,truncated:!0};if((0,k.looksLikeBinary)(t))continue;let u=t.toString("utf-8").split("\n");for(let e=0;e<u.length;e++){if(o.length>=r)return{matches:o,truncated:!0};let t=u[e];s.lastIndex=0;let n=s.exec(t);n&&o.push({path:a,line:e+1,col:(n.index??0)+1,text:t})}}return{matches:o,truncated:!1}}async function P(e,t,a,r,n,i){let s=[];for await(let o of N(e,t)){if(s.length>=r||Date.now()>i)return{matches:s,truncated:!0};let e=v.default.basename(o);((0,A.matchGlob)(a,o)||(0,A.matchGlob)(a,e))&&(0,x.enforceScope)(n,{filePath:o,op:"read"}).ok&&s.push({path:o})}return{matches:s,truncated:!1}}async function T(e){let t,a,r=await (0,x.checkAuth)(e);if(!r.ok)return E("UNAUTHORIZED",r.message??"Unauthorized",401);try{t=await e.json()}catch{return E("INVALID_PAYLOAD","Invalid JSON body",400)}if("grep"!==t.kind&&"glob"!==t.kind)return E("INVALID_PAYLOAD",'kind must be "grep" or "glob"',400);if("string"!=typeof t.query||!t.query)return E("INVALID_PAYLOAD","query (string) required",400);let n=t.kind,i=t.query,s="string"==typeof t.path?t.path:"",o=Math.min("number"==typeof t.limit?t.limit:200,2e3);if(s){if(!(0,_.safeRootPath)(s))return E("INVALID_PATH","path: traversal rejected",400);if(!await (0,k.safeAbsPath)(s))return E("INVALID_PATH","path: rejected (symlink escape or denied)",400)}let l=(0,_.getRootDir)();if(s)try{if(!(await (0,y.stat)(v.default.join(l,s))).isDirectory())return E("NOT_A_DIRECTORY","path must be a directory",400)}catch(e){if("ENOENT"===e.code)return E("NOT_FOUND","Start path not found",404);throw e}let u=Date.now()+1e4;try{a="grep"===n?await O(l,s,i,o,r.agent,u):await P(l,s,i,o,r.agent,u)}catch(e){return E("SEARCH_ERROR",e.message,400)}return R.NextResponse.json({kind:n,query:i,matches:a.matches,truncated:a.truncated})}e.s(["POST",0,T,"runtime",0,"nodejs"],128310);var b=e.i(128310);let j=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/agent/fs/search/route",pathname:"/api/agent/fs/search",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/agent/fs/search/route.ts",nextConfigOutput:"standalone",userland:b,...{}}),{workAsyncStorage:I,workUnitAsyncStorage:S,serverHooks:C}=j;async function q(e,t,r){r.requestMeta&&(0,n.setRequestMeta)(e,r.requestMeta),j.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/agent/fs/search/route";y=y.replace(/\/index$/,"")||"/";let v=await j.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:R,params:x,nextConfig:_,parsedUrl:k,isDraftMode:A,prerenderManifest:E,routerServerContext:D,isOnDemandRevalidate:N,revalidateOnlyGenerated:O,resolvedPathname:P,clientReferenceManifest:T,serverActionsManifest:b}=v,I=(0,o.normalizeAppPath)(y),S=!!(E.dynamicRoutes[I]||E.routes[P]),C=async()=>((null==D?void 0:D.render404)?await D.render404(e,t,k,!1):t.end("This page could not be found"),null);if(S&&!A){let e=!!E.routes[P],t=E.dynamicRoutes[I];if(t&&!1===t.fallback&&!e){if(_.adapterPath)return await C();throw new m.NoFallbackError}}let q=null;!S||j.isDev||A||(q="/index"===(q=P)?"/":q);let H=!0===j.isDev||!S,U=S&&!H;b&&T&&(0,s.setManifestsSingleton)({page:y,clientReferenceManifest:T,serverActionsManifest:b});let B=e.method||"GET",M=(0,i.getTracer)(),F=M.getActiveScopeSpan(),L=!!(null==D?void 0:D.isWrappedByNextServer),$=!!(0,n.getRequestMeta)(e,"minimalMode"),W=(0,n.getRequestMeta)(e,"incrementalCache")||await j.getIncrementalCache(e,_,E,$);null==W||W.resetRequestCache(),globalThis.__incrementalCache=W;let z={params:x,previewProps:E.preview,renderOpts:{experimental:{authInterrupts:!!_.experimental.authInterrupts},cacheComponents:!!_.cacheComponents,supportsDynamicResponse:H,incrementalCache:W,cacheLifeProfiles:_.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>j.onRequestError(e,t,r,n,D)},sharedContext:{buildId:R}},K=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),V=u.NextRequestAdapter.fromNodeNextRequest(K,(0,u.signalFromNodeResponse)(t));try{let n,s=async e=>j.handle(V,z).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=M.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route");if(r){let t=`${B} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",r),n.updateName(t))}else e.updateName(`${B} ${y}`)}),o=async n=>{var i,o;let l=async({previousCacheEntry:a})=>{try{if(!$&&N&&O&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await s(n);e.fetchMetrics=z.renderOpts.fetchMetrics;let o=z.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let l=z.renderOpts.collectedTags;if(!S)return await (0,p.sendResponse)(K,G,i,z.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(i.headers);l&&(t[g.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==z.renderOpts.collectedRevalidate&&!(z.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&z.renderOpts.collectedRevalidate,r=void 0===z.renderOpts.collectedExpire||z.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:z.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await j.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:N})},!1,D),t}},u=await j.handleResponse({req:e,nextConfig:_,cacheKey:q,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:O,responseGenerator:l,waitUntil:r.waitUntil,isMinimalMode:$});if(!S)return null;if((null==u||null==(i=u.value)?void 0:i.kind)!==w.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});$||t.setHeader("x-nextjs-cache",N?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let c=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return $&&S||c.delete(g.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||c.get("Cache-Control")||c.set("Cache-Control",(0,f.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(K,G,new Response(u.value.body,{headers:c,status:u.value.status||200})),null};L&&F?await o(F):(n=M.getActiveScopeSpan(),await M.withPropagatedContext(e.headers,()=>M.trace(c.BaseServerSpan.handleRequest,{spanName:`${B} ${y}`,kind:i.SpanKind.SERVER,attributes:{"http.method":B,"http.target":e.url}},o),void 0,!L))}catch(t){if(t instanceof m.NoFallbackError||await j.onRequestError(e,t,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:N})},!1,D),S)throw t;return await (0,p.sendResponse)(K,G,new Response(null,{status:500})),null}}e.s(["handler",0,q,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:I,workUnitAsyncStorage:S})},"routeModule",0,j,"serverHooks",0,C,"workAsyncStorage",0,I,"workUnitAsyncStorage",0,S],308900)},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)))}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0d_da6q._.js.map