wiki-viewer 2.19.0 → 2.20.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-path-routes-manifest.json +1 -0
- package/.next/standalone/.next/build-manifest.json +3 -3
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/required-server-files.json +1 -1
- package/.next/standalone/.next/routes-manifest.json +6 -0
- package/.next/standalone/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agent/activity/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/admin/registrations/[regId]/approve/route.js +6 -6
- package/.next/standalone/.next/server/app/api/agent/admin/registrations/[regId]/approve/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/events/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/files/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/fs/file/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/fs/ls/[[...path]]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/fs/move/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/fs/search/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/register/route.js +4 -3
- package/.next/standalone/.next/server/app/api/agent/register/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/settings/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/sidecar/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agents/install/route.js +3 -2
- package/.next/standalone/.next/server/app/api/agents/install/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agents/skill/route.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/skill/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agents/skill.tar.gz/route.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/skill.tar.gz/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/app-proxy/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/assets/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/[...all]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/[...all]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/pdf/save/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/share/[token]/asset/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/share/[token]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/share/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/system/browse/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/system/reveal/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/system/service-token/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/system/service-token/route/build-manifest.json +9 -0
- package/.next/standalone/.next/server/app/api/system/service-token/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/system/service-token/route.js +14 -0
- package/.next/standalone/.next/server/app/api/system/service-token/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/system/service-token/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/system/service-token/route_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/api/system/workspaces/[id]/branch/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/system/workspaces/[id]/open/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/system/workspaces/[id]/refresh/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/system/workspaces/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/system/workspaces/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/upload/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/app/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/backlinks/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/content/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/download/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/folder/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/git-branches/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/git-checkout/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/git-diff/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/git-file-info/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/git-history/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/git-pull/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/hosted-apps/[slug]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/hosted-apps/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/move/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/new-file/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/outlinks/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/page/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/presence/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/scratch/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/search/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/slugs/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/upload/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/watch/route.js +1 -1
- package/.next/standalone/.next/server/app/api/wiki/watch/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/app/[slug]/[[...rest]]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/s/[token]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/signin/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app-paths-manifest.json +1 -0
- package/.next/standalone/.next/server/chunks/0.u4_next_dist_esm_build_templates_app-route_0.4w~2_.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__01aj28~._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0t791y_._.js → [root-of-the-server]__04askqq._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0cjpldw._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0qpqspq._.js → [root-of-the-server]__0cv6uhs._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0dya7sd._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0f_hd-p._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0puvgme._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0~a6cyg._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__13lwpvb._.js +3 -0
- package/.next/standalone/.next/server/chunks/_079xuln._.js +1 -1
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_system_service-token_route_actions_0~0qkgh.js +3 -0
- package/.next/standalone/.next/server/chunks/src_04l.j6s._.js +3 -0
- package/.next/standalone/.next/server/chunks/src_lib_auth_server_ts_00f4e0h._.js +25 -25
- package/.next/standalone/.next/server/chunks/ssr/{0~w0_katex_dist_katex_mjs_0gr6q1f._.js → 0~w0_katex_dist_katex_mjs_02b4pv0._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__02.v5th._.js → [root-of-the-server]__05fw4nf._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_0k6g8yo._.js +12 -9
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_05tvs.j._.js → node_modules__pnpm_0-9pgc-._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_052119m._.js → node_modules__pnpm_0.b-q-g._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0nqllnp._.js → node_modules__pnpm_004esp.._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_1057jq-._.js → node_modules__pnpm_00d_ihj._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_04h3f7z._.js → node_modules__pnpm_018bmrp._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0yo568y._.js → node_modules__pnpm_02j29jd._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0z3_de6._.js → node_modules__pnpm_04e8oap._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0ev5rtd._.js → node_modules__pnpm_06xedp9._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_10e264.._.js → node_modules__pnpm_08aserg._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0gg_t7m._.js → node_modules__pnpm_09cnu2l._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0s6od3y._.js → node_modules__pnpm_0b9mrd-._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_02t6.-b._.js → node_modules__pnpm_0d.7f.v._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_06lzn3f._.js → node_modules__pnpm_0dm-.3s._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_04aul6b._.js → node_modules__pnpm_0eo2ac8._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0fekgqt._.js → node_modules__pnpm_0f.-l_i._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0aczw13._.js → node_modules__pnpm_0gdk9ii._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0~sf~oy._.js → node_modules__pnpm_0ibh1jm._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0xp1-db._.js → node_modules__pnpm_0jn81p-._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0gwfulm._.js → node_modules__pnpm_0lwio3d._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0bjukfc._.js → node_modules__pnpm_0oqqt~3._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0_mroc7._.js → node_modules__pnpm_0t_97nv._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_05k6a~v._.js → node_modules__pnpm_0u~ng-b._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0ywyhqr._.js → node_modules__pnpm_0va2k-t._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0rzgcz4._.js → node_modules__pnpm_0ye5zu~._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0ldy4q8._.js → node_modules__pnpm_0zhmzqf._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0l8oa7o._.js → node_modules__pnpm_131~6_2._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0tqhmaj._.js → node_modules__pnpm_13i2f82._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_app_signin_00yk0vm._.js +1 -1
- package/.next/standalone/.next/server/functions-config-manifest.json +1 -0
- package/.next/standalone/.next/server/instrumentation.js +1 -1
- package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/static/chunks/0o.-s7.m.hhct.css +1 -0
- package/.next/standalone/.next/static/chunks/0x082gn2hhbex.js +188 -0
- package/.next/standalone/isometric-codebase-map.html +2 -2
- package/.next/standalone/isometric-codebase-map.json +3 -3
- package/.next/standalone/package.json +1 -1
- package/.next/standalone/scripts/clean-auth-test-users.mjs +68 -0
- package/.next/standalone/server.js +1 -1
- package/README.md +0 -3
- package/package.json +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0.ws67e._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0blum8f._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0d42en0._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0j8ch6d._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0x5g3v_._.js +0 -3
- package/.next/standalone/.next/server/chunks/src_0pwns~4._.js +0 -3
- package/.next/standalone/.next/static/chunks/04ty7tw4dnejo.css +0 -1
- package/.next/standalone/.next/static/chunks/17had1~xdp8yg.js +0 -185
- /package/.next/standalone/.next/static/{_Twg2JLOx3LXPmY9EbBt- → ch24XdB6w4ERJnCBxzvzW}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{_Twg2JLOx3LXPmY9EbBt- → ch24XdB6w4ERJnCBxzvzW}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{_Twg2JLOx3LXPmY9EbBt- → ch24XdB6w4ERJnCBxzvzW}/_ssgManifest.js +0 -0
|
@@ -856,13 +856,13 @@
|
|
|
856
856
|
{ code: "FS", name: "Raw filesystem", h: 8, what: "Read, write, search, move, and delete arbitrary file bytes.", how: "Raw filesystem routes enforce bearer identity, workspace scope, and path globs before byte-level operations." },
|
|
857
857
|
{ code: "MD", name: "Markdown collab", h: 8, what: "Read snapshots and apply revision-checked block operations.", how: "Markdown routes read snapshots and apply revision-checked block operations through the proof core." },
|
|
858
858
|
{ code: "EV", name: "Events and activity", h: 4, what: "Stream document changes and provenance to agents.", how: "Event routes stream document changes and provenance to approved agents." },
|
|
859
|
-
{ code: "RG", name: "Registration", h: 4, what: "Register agents and expose approved scopes.", how: "Registration routes record agents and
|
|
859
|
+
{ code: "RG", name: "Registration", h: 4, what: "Register agents via TOFU approval or service-token bootstrap, and expose approved scopes.", how: "Registration routes record agents; a valid X-Service-Token header auto-approves and mints the bearer token inline; otherwise the owner approves and the agent polls a one-shot pickup." }
|
|
860
860
|
] },
|
|
861
861
|
|
|
862
862
|
{ id: "cli", code: "CL", name: "CLI launcher", group: "compute", loc: "1,862 LOC", gx: 0, gy: 7, w: 2, d: 2, h: 5, what: "Starts the packaged server and manages local service or remote-mount setup.", how: "bin/ parses options, applies environment precedence, starts the standalone server, and exposes service helpers.", talks: ["ci", "web-shell", "workspace", "sshfs"] },
|
|
863
863
|
{ id: "system-api", code: "SY", name: "System config API", group: "entry", loc: "902 LOC", gx: 3, gy: 7, w: 2, d: 2, h: 4, what: "Changes workspaces, users, administrators, pins, and local settings.", how: "14 route handlers use session and origin checks before mutating persisted configuration.", talks: ["auth", "workspace", "auth-store"] },
|
|
864
864
|
{ id: "share-api", code: "SH", name: "Shared documents", group: "entry", loc: "817 LOC", gx: 6, gy: 7, w: 3, d: 2, h: 4, what: "Publishes read-only document links with optional unlock and expiry controls.", how: "Share routes and shared-docs modules create opaque grants, validate unlocks, and render sanitized content.", talks: ["auth", "share-store", "markdown"] },
|
|
865
|
-
{ id: "mcp", code: "MC", name: "MCP adapter", group: "compute", loc: "2,911 LOC", gx: 10, gy: 7, w: 3, d: 2, h: 6, what: "Lets MCP clients use the agent contract through a separate npm package.", how: "packages/wiki-viewer-mcp defines 13 Zod-backed tools and a typed HTTP client with revision and scope errors.", talks: ["agent-api", "proof"] },
|
|
865
|
+
{ id: "mcp", code: "MC", name: "MCP adapter", group: "compute", loc: "2,911 LOC", gx: 10, gy: 7, w: 3, d: 2, h: 6, what: "Lets MCP clients use the agent contract through a separate npm package.", how: "packages/wiki-viewer-mcp defines 13 Zod-backed tools and a typed HTTP client with revision and scope errors; its register command auto-approves via the server service token when present.", talks: ["agent-api", "proof"] },
|
|
866
866
|
{ id: "app-runner", code: "AR", name: "Node app runner", group: "compute", loc: "738 LOC", gx: 14, gy: 7, w: 3, d: 2, h: 5, what: "Runs trusted node-app folders and proxies their local web surface.", how: "app-runner.ts manages child processes, readiness probes, ports, logs, access-checked forwarding (a workspace-root app has relPath '' and is proxied via the reserved ~root sentinel), pinned boot restore, crash caps, and file-change supervision.", talks: ["wiki-api", "path", "web-shell"] },
|
|
867
867
|
{ id: "git", code: "GT", name: "Git integration", group: "domain", loc: "871 LOC", gx: 18, gy: 7, w: 2, d: 2, h: 5, what: "Shows repository history and supports safe branch-oriented workspace actions.", how: "git.ts wraps the system binary, scans for leaked credentials, and backs history, diff, branch, and clone routes.", talks: ["wiki-api", "path", "workspace"] },
|
|
868
868
|
{ id: "sshfs", code: "SF", name: "SSHFS remotes", group: "domain", loc: "464 LOC", gx: 21, gy: 7, w: 2, d: 2, h: 4, what: "Makes remote folders appear as workspaces through a local mount boundary.", how: "sshfs.ts and mount helpers manage remote lifecycle, reconnects, and mount hazards.", talks: ["workspace", "path", "cli"] },
|
|
@@ -66,18 +66,18 @@
|
|
|
66
66
|
{ "code": "FS", "name": "Raw filesystem", "h": 8, "what": "Read, write, search, move, and delete arbitrary file bytes.", "how": "Raw filesystem routes enforce bearer identity, workspace scope, and path globs before byte-level operations." },
|
|
67
67
|
{ "code": "MD", "name": "Markdown collab", "h": 8, "what": "Read snapshots and apply revision-checked block operations.", "how": "Markdown routes read snapshots and apply revision-checked block operations through the proof core." },
|
|
68
68
|
{ "code": "EV", "name": "Events and activity", "h": 4, "what": "Stream document changes and provenance to agents.", "how": "Event routes stream document changes and provenance to approved agents." },
|
|
69
|
-
{ "code": "RG", "name": "Registration", "h": 4, "what": "Register agents and expose approved scopes.", "how": "Registration routes record agents and
|
|
69
|
+
{ "code": "RG", "name": "Registration", "h": 4, "what": "Register agents via TOFU approval or service-token bootstrap, and expose approved scopes.", "how": "Registration routes record agents; a valid X-Service-Token header auto-approves and mints the bearer token inline; otherwise the owner approves and the agent polls a one-shot pickup." }
|
|
70
70
|
] },
|
|
71
71
|
{ "id": "cli", "code": "CL", "name": "CLI launcher", "group": "compute", "loc": "1,862 LOC", "gx": 0, "gy": 7, "w": 2, "d": 2, "h": 5, "what": "Starts the packaged server and manages local service or remote-mount setup.", "how": "bin/ parses options, applies environment precedence, starts the standalone server, and exposes service helpers.", "talks": ["ci", "web-shell", "workspace", "sshfs"] },
|
|
72
72
|
{ "id": "system-api", "code": "SY", "name": "System config API", "group": "entry", "loc": "902 LOC", "gx": 3, "gy": 7, "w": 2, "d": 2, "h": 4, "what": "Changes workspaces, users, administrators, pins, and local settings.", "how": "14 route handlers use session and origin checks before mutating persisted configuration.", "talks": ["auth", "workspace", "auth-store"] },
|
|
73
73
|
{ "id": "share-api", "code": "SH", "name": "Shared documents", "group": "entry", "loc": "817 LOC", "gx": 6, "gy": 7, "w": 3, "d": 2, "h": 4, "what": "Publishes read-only document links with optional unlock and expiry controls.", "how": "Share routes and shared-docs modules create opaque grants, validate unlocks, and render sanitized content.", "talks": ["auth", "share-store", "markdown"] },
|
|
74
|
-
{ "id": "mcp", "code": "MC", "name": "MCP adapter", "group": "compute", "loc": "2,911 LOC", "gx": 10, "gy": 7, "w": 3, "d": 2, "h": 6, "what": "Lets MCP clients use the agent contract through a separate npm package.", "how": "packages/wiki-viewer-mcp defines 13 Zod-backed tools and a typed HTTP client with revision and scope errors.", "talks": ["agent-api", "proof"] },
|
|
74
|
+
{ "id": "mcp", "code": "MC", "name": "MCP adapter", "group": "compute", "loc": "2,911 LOC", "gx": 10, "gy": 7, "w": 3, "d": 2, "h": 6, "what": "Lets MCP clients use the agent contract through a separate npm package.", "how": "packages/wiki-viewer-mcp defines 13 Zod-backed tools and a typed HTTP client with revision and scope errors; its register command auto-approves via the server service token when present.", "talks": ["agent-api", "proof"] },
|
|
75
75
|
{ "id": "app-runner", "code": "AR", "name": "Node app runner", "group": "compute", "loc": "738 LOC", "gx": 14, "gy": 7, "w": 3, "d": 2, "h": 5, "what": "Runs trusted node-app folders and proxies their local web surface.", "how": "app-runner.ts manages child processes, readiness probes, ports, logs, access-checked forwarding (a workspace-root app has relPath '' and is proxied via the reserved ~root sentinel), pinned boot restore, crash caps, and file-change supervision.", "talks": ["wiki-api", "path", "web-shell"] },
|
|
76
76
|
{ "id": "git", "code": "GT", "name": "Git integration", "group": "domain", "loc": "871 LOC", "gx": 18, "gy": 7, "w": 2, "d": 2, "h": 5, "what": "Shows repository history and supports safe branch-oriented workspace actions.", "how": "git.ts wraps the system binary, scans for leaked credentials, and backs history, diff, branch, and clone routes.", "talks": ["wiki-api", "path", "workspace"] },
|
|
77
77
|
{ "id": "sshfs", "code": "SF", "name": "SSHFS remotes", "group": "domain", "loc": "464 LOC", "gx": 21, "gy": 7, "w": 2, "d": 2, "h": 4, "what": "Makes remote folders appear as workspaces through a local mount boundary.", "how": "sshfs.ts and mount helpers manage remote lifecycle, reconnects, and mount hazards.", "talks": ["workspace", "path", "cli"] },
|
|
78
78
|
{ "id": "hosted-apps", "code": "HA", "name": "Hosted apps", "group": "compute", "loc": "560 LOC", "gx": 24, "gy": 7, "w": 2, "d": 2, "h": 4, "what": "Maps short user-chosen slugs to HTML directories or running node apps reachable at /app/<slug>.", "how": "hosted-apps.ts persists the slug registry (~/.wiki-viewer/hosted-apps.json); /api/wiki/hosted-apps manages entries, pinning, and derived node status; the sidebar sorts pinned apps first and exposes status/error popovers with restart-now; app-proxy-core.ts forwards existing and slug-routed node traffic while the /app/<slug> route serves HTML dirs dir-aware or proxies each request to the live child port.", "talks": ["wiki-api", "path", "workspace", "app-runner", "web-shell"] },
|
|
79
79
|
{ "id": "proof", "code": "PR", "name": "Proof core", "group": "domain", "loc": "1,397 LOC", "gx": 1, "gy": 10, "w": 4, "d": 3, "h": 10, "what": "Applies structured Markdown edits while preserving revisions, references, comments, and suggestions.", "how": "ops-applier.ts parses blocks, checks base revisions, applies operations, writes atomically, and updates sidecar metadata.", "talks": ["safety", "markdown", "auth-store", "audit-store"], "children": [
|
|
80
|
-
{ "code": "OP", "name": "Block operations", "h": 9, "what": "Apply insert, replace, delete, and annotation operations.", "how": "ops-applier.ts applies insert, replace, delete, and annotation operations against parsed blocks." },
|
|
80
|
+
{ "code": "OP", "name": "Block operations", "h": 9, "what": "Apply insert, replace, delete, and annotation operations.", "how": "ops-applier.ts applies insert, replace, delete, and annotation operations (including comment/suggestion edit and delete) against parsed blocks." },
|
|
81
81
|
{ "code": "RF", "name": "Reference map", "h": 5, "what": "Keeps stable block references across edits.", "how": "block-refs.ts keeps stable block references valid across edits." },
|
|
82
82
|
{ "code": "SC", "name": "Sidecar state", "h": 6, "what": "Stores revisions, activity, comments, and suggestions beside files.", "how": "sidecar.ts and activity.ts store revisions, activity, comments, and suggestions beside each file." },
|
|
83
83
|
{ "code": "EV", "name": "Event bus", "h": 4, "what": "Publishes document changes to watchers and agents.", "how": "event-bus.ts publishes document changes to watchers and agent subscribers." }
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Remove test-fixture users from an auth.db (default ~/.wiki-viewer/auth.db).
|
|
4
|
+
*
|
|
5
|
+
* Matches ONLY the fixture email shapes created by src/tests/proof:
|
|
6
|
+
* - anything @test.local (t<ts>…, put<ts>…, font-debug2@…)
|
|
7
|
+
* - 'test@test.com', 'font-debug2@test.local', 'livetest@example.com'
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* node scripts/clean-auth-test-users.mjs [--db <path>] [--purge]
|
|
11
|
+
* Without --purge it is a dry run.
|
|
12
|
+
*/
|
|
13
|
+
import { DatabaseSync } from "node:sqlite";
|
|
14
|
+
import os from "node:os";
|
|
15
|
+
import process from "node:process";
|
|
16
|
+
|
|
17
|
+
const args = process.argv.slice(2);
|
|
18
|
+
const dbArg = args.indexOf("--db");
|
|
19
|
+
const dbPath = dbArg !== -1 ? args[dbArg + 1] : `${os.homedir()}/.wiki-viewer/auth.db`;
|
|
20
|
+
const purge = args.includes("--purge");
|
|
21
|
+
|
|
22
|
+
const db = new DatabaseSync(dbPath);
|
|
23
|
+
|
|
24
|
+
const TEST_EMAILS_SQL = `email LIKE '%@test.local'
|
|
25
|
+
OR email IN ('test@test.com', 'font-debug2@test.local', 'livetest@example.com')`;
|
|
26
|
+
|
|
27
|
+
const users = [...db.prepare(`SELECT id, email, name, createdAt FROM user WHERE ${TEST_EMAILS_SQL}`).iterate()];
|
|
28
|
+
const count = (sql) => db.prepare(sql).get().n;
|
|
29
|
+
|
|
30
|
+
console.log(`db: ${dbPath}`);
|
|
31
|
+
console.log(`capture: test users found: ${users.length}`);
|
|
32
|
+
for (const u of users) console.log(` - ${u.email} (${u.createdAt})`);
|
|
33
|
+
console.log(
|
|
34
|
+
`capture: dependent rows: ${JSON.stringify({
|
|
35
|
+
account: count(`SELECT COUNT(*) n FROM account WHERE userId IN (SELECT id FROM user WHERE ${TEST_EMAILS_SQL})`),
|
|
36
|
+
session: count(`SELECT COUNT(*) n FROM session WHERE userId IN (SELECT id FROM user WHERE ${TEST_EMAILS_SQL})`),
|
|
37
|
+
user: users.length,
|
|
38
|
+
})}`,
|
|
39
|
+
);
|
|
40
|
+
|
|
41
|
+
if (!purge) {
|
|
42
|
+
db.close();
|
|
43
|
+
console.log("dry run (no --purge); nothing deleted");
|
|
44
|
+
process.exit(0);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
db.exec("BEGIN");
|
|
48
|
+
try {
|
|
49
|
+
const s = db.prepare(`DELETE FROM session WHERE userId IN (SELECT id FROM user WHERE ${TEST_EMAILS_SQL})`).run();
|
|
50
|
+
const a = db.prepare(`DELETE FROM account WHERE userId IN (SELECT id FROM user WHERE ${TEST_EMAILS_SQL})`).run();
|
|
51
|
+
const u = db.prepare(`DELETE FROM user WHERE ${TEST_EMAILS_SQL}`).run();
|
|
52
|
+
db.exec("COMMIT");
|
|
53
|
+
console.log(`deleted: session=${s.changes} account=${a.changes} user=${u.changes}`);
|
|
54
|
+
} catch (err) {
|
|
55
|
+
db.exec("ROLLBACK");
|
|
56
|
+
db.close();
|
|
57
|
+
throw err;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const remaining = count(`SELECT COUNT(*) n FROM user WHERE ${TEST_EMAILS_SQL}`);
|
|
61
|
+
if (remaining !== 0) {
|
|
62
|
+
console.error(`verify: FAILED — ${remaining} test users remain`);
|
|
63
|
+
db.close();
|
|
64
|
+
process.exit(1);
|
|
65
|
+
}
|
|
66
|
+
const total = count("SELECT COUNT(*) n FROM user");
|
|
67
|
+
console.log(`verify: ok — 0 test users remain, ${total} users total`);
|
|
68
|
+
db.close();
|
|
@@ -15,7 +15,7 @@ const currentPort = parseInt(process.env.PORT, 10) || 3000
|
|
|
15
15
|
const hostname = process.env.HOSTNAME || '0.0.0.0'
|
|
16
16
|
|
|
17
17
|
let keepAliveTimeout = parseInt(process.env.KEEP_ALIVE_TIMEOUT, 10)
|
|
18
|
-
const nextConfig = {"env":{"NEXT_PUBLIC_APP_VERSION":"2.
|
|
18
|
+
const nextConfig = {"env":{"NEXT_PUBLIC_APP_VERSION":"2.20.1"},"webpack":null,"typescript":{"ignoreBuildErrors":false},"typedRoutes":false,"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.ts","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":14400,"formats":["image/webp"],"maximumRedirects":3,"maximumResponseBody":50000000,"dangerouslyAllowLocalIP":false,"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"attachment","localPatterns":[{"pathname":"**","search":""}],"remotePatterns":[],"qualities":[75],"unoptimized":true,"customCacheHandler":false},"devIndicators":{"position":"bottom-left"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"excludeDefaultMomentLocales":true,"reactProductionProfiling":false,"reactStrictMode":null,"reactMaxHeadersLength":6000,"httpAgentOptions":{"keepAlive":true},"logging":{"serverFunctions":true,"browserToTerminal":"warn"},"compiler":{},"expireTime":31536000,"staticPageGenerationTimeout":60,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"outputFileTracingRoot":"/home/runner/work/wiki-viewer/wiki-viewer","allowedDevOrigins":["localhost"],"cacheComponents":false,"cacheLife":{"default":{"stale":300,"revalidate":900,"expire":4294967294},"seconds":{"stale":30,"revalidate":1,"expire":60},"minutes":{"stale":300,"revalidate":60,"expire":3600},"hours":{"stale":300,"revalidate":3600,"expire":86400},"days":{"stale":300,"revalidate":86400,"expire":604800},"weeks":{"stale":300,"revalidate":604800,"expire":2592000},"max":{"stale":300,"revalidate":2592000,"expire":31536000}},"cacheHandlers":{},"experimental":{"appNewScrollHandler":false,"useSkewCookie":false,"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"prerenderEarlyExit":true,"serverMinification":true,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"cachedNavigations":false,"partialFallbacks":false,"dynamicOnHover":false,"varyParams":false,"prefetchInlining":false,"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","proxyPrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":3,"memoryBasedWorkersCount":false,"imgOptConcurrency":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"imgOptSkipMetadata":null,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"typedEnv":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"strictRouteTypes":false,"viewTransition":false,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":false,"staleTimes":{"dynamic":0,"static":300},"reactDebugChannel":true,"serverComponentsHmrCache":true,"staticGenerationMaxConcurrency":8,"staticGenerationMinPagesPerWorker":25,"transitionIndicator":false,"gestureTransition":false,"inlineCss":false,"useCache":false,"globalNotFound":false,"browserDebugInfoInTerminal":"warn","lockDistDir":true,"proxyClientMaxBodySize":10485760,"hideLogsAfterAbort":false,"mcpServer":true,"turbopackFileSystemCacheForDev":true,"turbopackFileSystemCacheForBuild":false,"turbopackInferModuleSideEffects":true,"turbopackPluginRuntimeStrategy":"childProcesses","optimizePackageImports":["lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","effect","@effect/schema","@effect/platform","@effect/platform-node","@effect/platform-browser","@effect/platform-bun","@effect/sql","@effect/sql-mssql","@effect/sql-mysql2","@effect/sql-pg","@effect/sql-sqlite-node","@effect/sql-sqlite-bun","@effect/sql-sqlite-wasm","@effect/sql-sqlite-react-native","@effect/rpc","@effect/rpc-http","@effect/typeclass","@effect/experimental","@effect/opentelemetry","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"trustHostHeader":false,"isExperimentalCompile":false},"htmlLimitedBots":"[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight","bundlePagesRouterDependencies":false,"configFileName":"next.config.ts","turbopack":{"root":"/home/runner/work/wiki-viewer/wiki-viewer"},"distDirRoot":".next"}
|
|
19
19
|
|
|
20
20
|
process.env.__NEXT_PRIVATE_STANDALONE_CONFIG = JSON.stringify(nextConfig)
|
|
21
21
|
|
package/README.md
CHANGED
|
@@ -855,9 +855,6 @@ For real deployments, run wiki-viewer on plain HTTP behind nginx or Caddy with a
|
|
|
855
855
|
|
|
856
856
|
```
|
|
857
857
|
wiki-viewer/
|
|
858
|
-
├── agents/ Installable Agent Skill + bootstrap prompt
|
|
859
|
-
│ ├── wiki-viewer-skill/ SKILL.md and assets
|
|
860
|
-
│ └── bootstrap-prompt.md One-paragraph prompt for any chat agent
|
|
861
858
|
├── bin/
|
|
862
859
|
│ └── wiki-viewer.js CLI entry point
|
|
863
860
|
├── docs/
|
package/package.json
CHANGED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[750227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},912714,(e,t,r)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},100705,(e,t,r)=>{"use strict";t.exports=e.r(918622)},294382,(e,t,r)=>{"use strict";t.exports=e.r(100705).vendored["react-rsc"].React},362744,(e,t,r)=>{"use strict";var a=Object.defineProperty,s=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,n=Object.prototype.hasOwnProperty,i={},l={RequestCookies:()=>g,ResponseCookies:()=>f,parseCookie:()=>c,parseSetCookie:()=>u,stringifyCookie:()=>d};for(var p in l)a(i,p,{get:l[p],enumerable:!0});function d(e){var t;let r=["path"in e&&e.path&&`Path=${e.path}`,"expires"in e&&(e.expires||0===e.expires)&&`Expires=${("number"==typeof e.expires?new Date(e.expires):e.expires).toUTCString()}`,"maxAge"in e&&"number"==typeof e.maxAge&&`Max-Age=${e.maxAge}`,"domain"in e&&e.domain&&`Domain=${e.domain}`,"secure"in e&&e.secure&&"Secure","httpOnly"in e&&e.httpOnly&&"HttpOnly","sameSite"in e&&e.sameSite&&`SameSite=${e.sameSite}`,"partitioned"in e&&e.partitioned&&"Partitioned","priority"in e&&e.priority&&`Priority=${e.priority}`].filter(Boolean),a=`${e.name}=${encodeURIComponent(null!=(t=e.value)?t:"")}`;return 0===r.length?a:`${a}; ${r.join("; ")}`}function c(e){let t=new Map;for(let r of e.split(/; */)){if(!r)continue;let e=r.indexOf("=");if(-1===e){t.set(r,"true");continue}let[a,s]=[r.slice(0,e),r.slice(e+1)];try{t.set(a,decodeURIComponent(null!=s?s:"true"))}catch{}}return t}function u(e){if(!e)return;let[[t,r],...a]=c(e),{domain:s,expires:o,httponly:n,maxage:i,path:l,samesite:p,secure:d,partitioned:u,priority:g}=Object.fromEntries(a.map(([e,t])=>[e.toLowerCase().replace(/-/g,""),t]));{var f,v,w={name:t,value:decodeURIComponent(r),domain:s,...o&&{expires:new Date(o)},...n&&{httpOnly:!0},..."string"==typeof i&&{maxAge:Number(i)},path:l,...p&&{sameSite:h.includes(f=(f=p).toLowerCase())?f:void 0},...d&&{secure:!0},...g&&{priority:m.includes(v=(v=g).toLowerCase())?v:void 0},...u&&{partitioned:!0}};let e={};for(let t in w)w[t]&&(e[t]=w[t]);return e}}t.exports=((e,t,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let i of o(t))n.call(e,i)||void 0===i||a(e,i,{get:()=>t[i],enumerable:!(r=s(t,i))||r.enumerable});return e})(a({},"__esModule",{value:!0}),i);var h=["strict","lax","none"],m=["low","medium","high"],g=class{constructor(e){this._parsed=new Map,this._headers=e;const t=e.get("cookie");if(t)for(const[e,r]of c(t))this._parsed.set(e,{name:e,value:r})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed);if(!e.length)return r.map(([e,t])=>t);let a="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(([e])=>e===a).map(([e,t])=>t)}has(e){return this._parsed.has(e)}set(...e){let[t,r]=1===e.length?[e[0].name,e[0].value]:e,a=this._parsed;return a.set(t,{name:t,value:r}),this._headers.set("cookie",Array.from(a).map(([e,t])=>d(t)).join("; ")),this}delete(e){let t=this._parsed,r=Array.isArray(e)?e.map(e=>t.delete(e)):t.delete(e);return this._headers.set("cookie",Array.from(t).map(([e,t])=>d(t)).join("; ")),r}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(e=>`${e.name}=${encodeURIComponent(e.value)}`).join("; ")}},f=class{constructor(e){var t,r,a;this._parsed=new Map,this._headers=e;const s=null!=(a=null!=(r=null==(t=e.getSetCookie)?void 0:t.call(e))?r:e.get("set-cookie"))?a:[];for(const e of Array.isArray(s)?s:function(e){if(!e)return[];var t,r,a,s,o,n=[],i=0;function l(){for(;i<e.length&&/\s/.test(e.charAt(i));)i+=1;return i<e.length}for(;i<e.length;){for(t=i,o=!1;l();)if(","===(r=e.charAt(i))){for(a=i,i+=1,l(),s=i;i<e.length&&"="!==(r=e.charAt(i))&&";"!==r&&","!==r;)i+=1;i<e.length&&"="===e.charAt(i)?(o=!0,i=s,n.push(e.substring(t,a)),t=i):i=a+1}else i+=1;(!o||i>=e.length)&&n.push(e.substring(t,e.length))}return n}(s)){const t=u(e);t&&this._parsed.set(t.name,t)}}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed.values());if(!e.length)return r;let a="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(e=>e.name===a)}has(e){return this._parsed.has(e)}set(...e){let[t,r,a]=1===e.length?[e[0].name,e[0].value,e[0]]:e,s=this._parsed;return s.set(t,function(e={name:"",value:""}){return"number"==typeof e.expires&&(e.expires=new Date(e.expires)),e.maxAge&&(e.expires=new Date(Date.now()+1e3*e.maxAge)),(null===e.path||void 0===e.path)&&(e.path="/"),e}({name:t,value:r,...a})),function(e,t){for(let[,r]of(t.delete("set-cookie"),e)){let e=d(r);t.append("set-cookie",e)}}(s,this._headers),this}delete(...e){let[t,r]="string"==typeof e[0]?[e[0]]:[e[0].name,e[0]];return this.set({...r,name:t,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(d).join("; ")}}},649853,e=>{"use strict";var t=e.i(985426),r=e.i(257574),a=e.i(507835),s=e.i(457789),o=e.i(119791),n=e.i(141062),i=e.i(957291),l=e.i(535899),p=e.i(610241),d=e.i(62749),c=e.i(624891),u=e.i(725836),h=e.i(532736),m=e.i(257858),g=e.i(487476),f=e.i(193695);e.i(484264);var v=e.i(315709),w=e.i(351216),k=e.i(912714),y=e.i(750227);async function b(){try{let e=await (0,k.readFile)(y.default.resolve(process.cwd(),"package.json"),"utf-8");return JSON.parse(e).version??"0.0.0"}catch{return"0.0.0"}}async function x(e){let t,r,[a,s]=await Promise.all([(0,k.readFile)(y.default.resolve(process.cwd(),"agents/bootstrap-prompt.md"),"utf-8").catch(()=>""),b()]),o=(t=e.headers.get("x-forwarded-proto")??(e.url.startsWith("https")?"https":"http"),r=e.headers.get("x-forwarded-host")??e.headers.get("host")??new URL(e.url).host,`${t}://${r}`),n=(e.headers.get("host")??"").replace(/:[0-9]+$/,"").replace(/^\[(.*)\]$/,"$1").toLowerCase(),i="localhost"===n||"127.0.0.1"===n||"::1"===n,l=(process.env.WIKI_OWNER_HOSTS??"").split(",").map(e=>e.trim().toLowerCase()).filter(Boolean),p=i||l.includes(n);return w.NextResponse.json({name:"wiki-viewer",version:s,endpoint:o,humanInstructions:"Open the wiki-viewer AI Panel (Bot icon in header). Register the agent, then approve it in the Pending Registrations list. The agent receives a one-shot token.",ownerBootstrap:{hostnameSeen:n,ownerHostTrusted:p,hint:p?"This host is trusted for owner cookie issuance. Open the AI Panel in a browser and approve pending registrations.":`This host (${n}) is not in the owner-trust allowlist, so the AI Panel cannot bootstrap an owner cookie. Restart the server with WIKI_OWNER_HOSTS=${n} or access via localhost.`},bootstrapPrompt:a,skillTarball:"/api/agents/skill.tar.gz",skillRaw:"/api/agents/skill",skillCli:"npx skills add anh-chu/wiki-viewer/agents/wiki-viewer-skill",routes:[{method:"POST",path:"/api/agent/register",auth:"none",purpose:"Register an agent"},{method:"GET",path:"/api/agent/register/<regId>",auth:"none",purpose:"Poll registration status"},{method:"GET",path:"/api/agent/files/<path>.md",auth:"bearer+agent-id",purpose:"Read markdown snapshot (block-ops tier)"},{method:"POST",path:"/api/agent/files/<path>.md",auth:"bearer+agent-id",purpose:"Apply block-ops"},{method:"GET",path:"/api/agent/events/<path>.md",auth:"bearer+agent-id",purpose:"Poll events"},{method:"POST",path:"/api/agent/events/<path>.md",auth:"bearer+agent-id",purpose:"Ack events"},{method:"GET",path:"/api/agent/fs/file/<path>",auth:"bearer+agent-id",purpose:"Read file bytes. Supports Range. Returns ETag (sha256), X-File-Size, X-File-Mtime, X-Collab-State."},{method:"PUT",path:"/api/agent/fs/file/<path>",auth:"bearer+agent-id",purpose:"Atomic whole-file write. If-Match required for overwrites; omit for creates. ?mkdirs=true creates parents. ?force=true bypasses If-Match (audited)."},{method:"DELETE",path:"/api/agent/fs/file/<path>",auth:"bearer+agent-id",purpose:"Delete file (+ sidecar for .md). Requires If-Match + delete scope op. ?recursive=true for directories."},{method:"GET",path:"/api/agent/fs/ls/<path>",auth:"bearer+agent-id",purpose:"Directory listing. ?recursive&limit&depth. Scope-filtered. Excludes .proof/."},{method:"POST",path:"/api/agent/fs/move",auth:"bearer+agent-id",purpose:"Move/rename. Body: {from, to, ifMatch?}. Moves .md sidecar too."},{method:"POST",path:"/api/agent/fs/search",auth:"bearer+agent-id",purpose:"Server-side grep or glob. Body: {kind:'grep'|'glob', query, path?, glob?, limit?}."},{method:"GET",path:"/api/agent/settings",auth:"bearer+agent-id",purpose:"Returns rateLimit + resolved 'root' (the active workspace's directory for the X-Workspace you send)."},{method:"POST",path:"/api/wiki/presence",auth:"session",purpose:"Human editor lease heartbeat. Body: {path, action:'open'|'heartbeat'|'close'}."}],workspaces:{description:"This instance can serve multiple root directories ('workspaces'). Every agent path is relative to ONE workspace root.",header:"X-Workspace: <workspaceId>",queryParam:"ws=<workspaceId>",default:"If omitted, the server resolves to the most-recently-opened workspace. Correct for single-workspace instances; be explicit when several exist.",discoverId:"Ask the human for the workspace id, read it from the ?ws= param of a pasted wiki-viewer URL, or call GET /api/agent/settings (with X-Workspace) to confirm the resolved 'root'.",scoped:"A token may be pinned to one workspace (scope.workspaceId at approval). Requests resolving to a different workspace return 403 FORBIDDEN. A token with no pin is wildcard (any workspace).",isolation:"Paths in one workspace never touch another, even with identical relative paths."},capabilities:{maxFileBytes:5e7,supportsRange:!0,ifMatchRequired:!0,forceBypass:!0,search:["grep","glob"],globDialect:"**,*,?",scopeOps:["read","mutate","delete"],scopeWorkspaceId:!0,workspaceHeader:"X-Workspace",collabStates:["active","tracked","untracked","not-markdown"],collabPrecondition:"If-Collab-Match"},modes:{rule:"Before editing a .md file, read it and check the X-Collab-State response header. If 'active', use block-ops (Tier 2) at the X-Collab-Snapshot URL so a human can review your changes. If 'tracked', prefer block-ops for semantic/prose edits; use raw fs only for mechanical/whole-file ops (reformat, regenerate). If 'untracked', raw fs is fine (a Tier-2 edit would create a sidecar). For non-markdown files, always use raw fs (Tier 2 does not apply). A raw PUT to an active .md is rejected 409 COLLAB_ACTIVE with the Tier-2 URL — switch to block-ops.",collabStateHeaders:["X-Collab-State: active|tracked|untracked|not-markdown","X-Collab-Revision: <n>","X-Collab-Snapshot: /api/agent/files/<path>.md"],tiers:{tier1:"Raw FS — /api/agent/fs/* — all file types, fast, light audit (ETag/sha256, file.rawWritten event, audit table).",tier2:"Collab — /api/agent/files/*.md — markdown only, block-scoped clean-markdown writes with revision checks, comments, suggestions. Provenance lands in the activity feed/audit log."}},mcpAdapter:{package:"wiki-viewer-mcp",invoke:"npx wiki-viewer-mcp",env:["WIKI_VIEWER_URL","WIKI_VIEWER_TOKEN","WIKI_VIEWER_AGENT_ID","WIKI_VIEWER_WORKSPACE"],description:"Thin MCP adapter mapping standard MCP filesystem tools onto these endpoints. Set WIKI_VIEWER_WORKSPACE to target a specific workspace (sends X-Workspace on every call). Reads X-Collab-State and blocks or warns on raw writes to active .md files."},ops:["block.replace","block.insertAfter","block.insertBefore","block.delete","block.append","block.prepend","comment.add","comment.reply","comment.resolve","comment.reopen","suggestion.add","suggestion.accept","suggestion.reject"]})}e.s(["GET",0,x,"runtime",0,"nodejs"],352957);var R=e.i(352957);let E=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/agents/install/route",pathname:"/api/agents/install",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/agents/install/route.ts",nextConfigOutput:"standalone",userland:R,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:A,serverHooks:S}=E;async function _(e,t,a){a.requestMeta&&(0,s.setRequestMeta)(e,a.requestMeta),E.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/agents/install/route";w=w.replace(/\/index$/,"")||"/";let k=await E.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!k)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:y,params:b,nextConfig:x,parsedUrl:R,isDraftMode:C,prerenderManifest:A,routerServerContext:S,isOnDemandRevalidate:_,revalidateOnlyGenerated:I,resolvedPathname:T,clientReferenceManifest:O,serverActionsManifest:P}=k,N=(0,i.normalizeAppPath)(w),j=!!(A.dynamicRoutes[N]||A.routes[T]),q=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,R,!1):t.end("This page could not be found"),null);if(j&&!C){let e=!!A.routes[T],t=A.dynamicRoutes[N];if(t&&!1===t.fallback&&!e){if(x.adapterPath)return await q();throw new f.NoFallbackError}}let M=null;!j||E.isDev||C||(M="/index"===(M=T)?"/":M);let $=!0===E.isDev||!j,D=j&&!$;P&&O&&(0,n.setManifestsSingleton)({page:w,clientReferenceManifest:O,serverActionsManifest:P});let U=e.method||"GET",W=(0,o.getTracer)(),H=W.getActiveScopeSpan(),B=!!(null==S?void 0:S.isWrappedByNextServer),L=!!(0,s.getRequestMeta)(e,"minimalMode"),K=(0,s.getRequestMeta)(e,"incrementalCache")||await E.getIncrementalCache(e,x,A,L);null==K||K.resetRequestCache(),globalThis.__incrementalCache=K;let X={params:b,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:$,incrementalCache:K,cacheLifeProfiles:x.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,s)=>E.onRequestError(e,t,a,s,S)},sharedContext:{buildId:y}},F=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),V=p.NextRequestAdapter.fromNodeNextRequest(F,(0,p.signalFromNodeResponse)(t));try{let s,n=async e=>E.handle(V,X).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=W.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${U} ${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(`${U} ${w}`)}),i=async s=>{var o,i;let l=async({previousCacheEntry:r})=>{try{if(!L&&_&&I&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await n(s);e.fetchMetrics=X.renderOpts.fetchMetrics;let i=X.renderOpts.pendingWaitUntil;i&&a.waitUntil&&(a.waitUntil(i),i=void 0);let l=X.renderOpts.collectedTags;if(!j)return await (0,u.sendResponse)(F,G,o,X.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(o.headers);l&&(t[g.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,a=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:X.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await E.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:_})},!1,S),t}},p=await E.handleResponse({req:e,nextConfig:x,cacheKey:M,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:_,revalidateOnlyGenerated:I,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:L});if(!j)return null;if((null==p||null==(o=p.value)?void 0:o.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==p||null==(i=p.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",_?"REVALIDATED":p.isMiss?"MISS":p.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,h.fromNodeOutgoingHttpHeaders)(p.value.headers);return L&&j||d.delete(g.NEXT_CACHE_TAGS_HEADER),!p.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,m.getCacheControlHeader)(p.cacheControl)),await (0,u.sendResponse)(F,G,new Response(p.value.body,{headers:d,status:p.value.status||200})),null};B&&H?await i(H):(s=W.getActiveScopeSpan(),await W.withPropagatedContext(e.headers,()=>W.trace(d.BaseServerSpan.handleRequest,{spanName:`${U} ${w}`,kind:o.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},i),void 0,!B))}catch(t){if(t instanceof f.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:_})},!1,S),j)throw t;return await (0,u.sendResponse)(F,G,new Response(null,{status:500})),null}}e.s(["handler",0,_,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:A})},"routeModule",0,E,"serverHooks",0,S,"workAsyncStorage",0,C,"workUnitAsyncStorage",0,A],649853)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0.ws67e._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[750227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},912714,(e,t,r)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},100705,(e,t,r)=>{"use strict";t.exports=e.r(918622)},294382,(e,t,r)=>{"use strict";t.exports=e.r(100705).vendored["react-rsc"].React},362744,(e,t,r)=>{"use strict";var n=Object.defineProperty,a=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,o={},l={RequestCookies:()=>f,ResponseCookies:()=>g,parseCookie:()=>d,parseSetCookie:()=>c,stringifyCookie:()=>u};for(var p in l)n(o,p,{get:l[p],enumerable:!0});function u(e){var t;let r=["path"in e&&e.path&&`Path=${e.path}`,"expires"in e&&(e.expires||0===e.expires)&&`Expires=${("number"==typeof e.expires?new Date(e.expires):e.expires).toUTCString()}`,"maxAge"in e&&"number"==typeof e.maxAge&&`Max-Age=${e.maxAge}`,"domain"in e&&e.domain&&`Domain=${e.domain}`,"secure"in e&&e.secure&&"Secure","httpOnly"in e&&e.httpOnly&&"HttpOnly","sameSite"in e&&e.sameSite&&`SameSite=${e.sameSite}`,"partitioned"in e&&e.partitioned&&"Partitioned","priority"in e&&e.priority&&`Priority=${e.priority}`].filter(Boolean),n=`${e.name}=${encodeURIComponent(null!=(t=e.value)?t:"")}`;return 0===r.length?n:`${n}; ${r.join("; ")}`}function d(e){let t=new Map;for(let r of e.split(/; */)){if(!r)continue;let e=r.indexOf("=");if(-1===e){t.set(r,"true");continue}let[n,a]=[r.slice(0,e),r.slice(e+1)];try{t.set(n,decodeURIComponent(null!=a?a:"true"))}catch{}}return t}function c(e){if(!e)return;let[[t,r],...n]=d(e),{domain:a,expires:s,httponly:i,maxage:o,path:l,samesite:p,secure:u,partitioned:c,priority:f}=Object.fromEntries(n.map(([e,t])=>[e.toLowerCase().replace(/-/g,""),t]));{var g,x,v={name:t,value:decodeURIComponent(r),domain:a,...s&&{expires:new Date(s)},...i&&{httpOnly:!0},..."string"==typeof o&&{maxAge:Number(o)},path:l,...p&&{sameSite:h.includes(g=(g=p).toLowerCase())?g:void 0},...u&&{secure:!0},...f&&{priority:m.includes(x=(x=f).toLowerCase())?x:void 0},...c&&{partitioned:!0}};let e={};for(let t in v)v[t]&&(e[t]=v[t]);return e}}t.exports=((e,t,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of s(t))i.call(e,o)||void 0===o||n(e,o,{get:()=>t[o],enumerable:!(r=a(t,o))||r.enumerable});return e})(n({},"__esModule",{value:!0}),o);var h=["strict","lax","none"],m=["low","medium","high"],f=class{constructor(e){this._parsed=new Map,this._headers=e;const t=e.get("cookie");if(t)for(const[e,r]of d(t))this._parsed.set(e,{name:e,value:r})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed);if(!e.length)return r.map(([e,t])=>t);let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(([e])=>e===n).map(([e,t])=>t)}has(e){return this._parsed.has(e)}set(...e){let[t,r]=1===e.length?[e[0].name,e[0].value]:e,n=this._parsed;return n.set(t,{name:t,value:r}),this._headers.set("cookie",Array.from(n).map(([e,t])=>u(t)).join("; ")),this}delete(e){let t=this._parsed,r=Array.isArray(e)?e.map(e=>t.delete(e)):t.delete(e);return this._headers.set("cookie",Array.from(t).map(([e,t])=>u(t)).join("; ")),r}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(e=>`${e.name}=${encodeURIComponent(e.value)}`).join("; ")}},g=class{constructor(e){var t,r,n;this._parsed=new Map,this._headers=e;const a=null!=(n=null!=(r=null==(t=e.getSetCookie)?void 0:t.call(e))?r:e.get("set-cookie"))?n:[];for(const e of Array.isArray(a)?a:function(e){if(!e)return[];var t,r,n,a,s,i=[],o=0;function l(){for(;o<e.length&&/\s/.test(e.charAt(o));)o+=1;return o<e.length}for(;o<e.length;){for(t=o,s=!1;l();)if(","===(r=e.charAt(o))){for(n=o,o+=1,l(),a=o;o<e.length&&"="!==(r=e.charAt(o))&&";"!==r&&","!==r;)o+=1;o<e.length&&"="===e.charAt(o)?(s=!0,o=a,i.push(e.substring(t,n)),t=o):o=n+1}else o+=1;(!s||o>=e.length)&&i.push(e.substring(t,e.length))}return i}(a)){const t=c(e);t&&this._parsed.set(t.name,t)}}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed.values());if(!e.length)return r;let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(e=>e.name===n)}has(e){return this._parsed.has(e)}set(...e){let[t,r,n]=1===e.length?[e[0].name,e[0].value,e[0]]:e,a=this._parsed;return a.set(t,function(e={name:"",value:""}){return"number"==typeof e.expires&&(e.expires=new Date(e.expires)),e.maxAge&&(e.expires=new Date(Date.now()+1e3*e.maxAge)),(null===e.path||void 0===e.path)&&(e.path="/"),e}({name:t,value:r,...n})),function(e,t){for(let[,r]of(t.delete("set-cookie"),e)){let e=u(r);t.append("set-cookie",e)}}(a,this._headers),this}delete(...e){let[t,r]="string"==typeof e[0]?[e[0]]:[e[0].name,e[0]];return this.set({...r,name:t,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(u).join("; ")}}},107836,e=>{"use strict";var t=e.i(985426),r=e.i(257574),n=e.i(507835),a=e.i(457789),s=e.i(119791),i=e.i(141062),o=e.i(957291),l=e.i(535899),p=e.i(610241),u=e.i(62749),d=e.i(624891),c=e.i(725836),h=e.i(532736),m=e.i(257858),f=e.i(487476),g=e.i(193695);e.i(484264);var x=e.i(315709),v=e.i(351216),y=e.i(912714),R=e.i(750227);async function w(e){let t=R.default.resolve(process.cwd(),"agents/wiki-viewer-skill/SKILL.md"),r=await (0,y.readFile)(t,"utf-8");return new v.NextResponse(r,{status:200,headers:{"Content-Type":"text/markdown; charset=utf-8","Cache-Control":"no-store"}})}e.s(["GET",0,w,"runtime",0,"nodejs"],480242);var C=e.i(480242);let A=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/agents/skill/route",pathname:"/api/agents/skill",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/agents/skill/route.ts",nextConfigOutput:"standalone",userland:C,...{}}),{workAsyncStorage:b,workUnitAsyncStorage:_,serverHooks:E}=A;async function k(e,t,n){n.requestMeta&&(0,a.setRequestMeta)(e,n.requestMeta),A.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/agents/skill/route";v=v.replace(/\/index$/,"")||"/";let y=await A.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:R,params:w,nextConfig:C,parsedUrl:b,isDraftMode:_,prerenderManifest:E,routerServerContext:k,isOnDemandRevalidate:S,revalidateOnlyGenerated:O,resolvedPathname:j,clientReferenceManifest:P,serverActionsManifest:N}=y,q=(0,o.normalizeAppPath)(v),T=!!(E.dynamicRoutes[q]||E.routes[j]),$=async()=>((null==k?void 0:k.render404)?await k.render404(e,t,b,!1):t.end("This page could not be found"),null);if(T&&!_){let e=!!E.routes[j],t=E.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(C.adapterPath)return await $();throw new g.NoFallbackError}}let D=null;!T||A.isDev||_||(D="/index"===(D=j)?"/":D);let I=!0===A.isDev||!T,U=T&&!I;N&&P&&(0,i.setManifestsSingleton)({page:v,clientReferenceManifest:P,serverActionsManifest:N});let M=e.method||"GET",H=(0,s.getTracer)(),L=H.getActiveScopeSpan(),F=!!(null==k?void 0:k.isWrappedByNextServer),K=!!(0,a.getRequestMeta)(e,"minimalMode"),B=(0,a.getRequestMeta)(e,"incrementalCache")||await A.getIncrementalCache(e,C,E,K);null==B||B.resetRequestCache(),globalThis.__incrementalCache=B;let G={params:w,previewProps:E.preview,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:I,incrementalCache:B,cacheLifeProfiles:C.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>A.onRequestError(e,t,n,a,k)},sharedContext:{buildId:R}},z=new l.NodeNextRequest(e),V=new l.NodeNextResponse(t),W=p.NextRequestAdapter.fromNodeNextRequest(z,(0,p.signalFromNodeResponse)(t));try{let a,i=async e=>A.handle(W,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=H.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.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=`${M} ${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(`${M} ${v}`)}),o=async a=>{var s,o;let l=async({previousCacheEntry:r})=>{try{if(!K&&S&&O&&!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=G.renderOpts.fetchMetrics;let o=G.renderOpts.pendingWaitUntil;o&&n.waitUntil&&(n.waitUntil(o),o=void 0);let l=G.renderOpts.collectedTags;if(!T)return await (0,c.sendResponse)(z,V,s,G.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[f.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,n=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:x.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 A.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:S})},!1,k),t}},p=await A.handleResponse({req:e,nextConfig:C,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:O,responseGenerator:l,waitUntil:n.waitUntil,isMinimalMode:K});if(!T)return null;if((null==p||null==(s=p.value)?void 0:s.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==p||null==(o=p.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});K||t.setHeader("x-nextjs-cache",S?"REVALIDATED":p.isMiss?"MISS":p.isStale?"STALE":"HIT"),_&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,h.fromNodeOutgoingHttpHeaders)(p.value.headers);return K&&T||u.delete(f.NEXT_CACHE_TAGS_HEADER),!p.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,m.getCacheControlHeader)(p.cacheControl)),await (0,c.sendResponse)(z,V,new Response(p.value.body,{headers:u,status:p.value.status||200})),null};F&&L?await o(L):(a=H.getActiveScopeSpan(),await H.withPropagatedContext(e.headers,()=>H.trace(u.BaseServerSpan.handleRequest,{spanName:`${M} ${v}`,kind:s.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},o),void 0,!F))}catch(t){if(t instanceof g.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:S})},!1,k),T)throw t;return await (0,c.sendResponse)(z,V,new Response(null,{status:500})),null}}e.s(["handler",0,k,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:_})},"routeModule",0,A,"serverHooks",0,E,"workAsyncStorage",0,b,"workUnitAsyncStorage",0,_],107836)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0blum8f._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},100705,(e,t,r)=>{"use strict";t.exports=e.r(918622)},294382,(e,t,r)=>{"use strict";t.exports=e.r(100705).vendored["react-rsc"].React},362744,(e,t,r)=>{"use strict";var n=Object.defineProperty,s=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,o={},l={RequestCookies:()=>f,ResponseCookies:()=>m,parseCookie:()=>d,parseSetCookie:()=>c,stringifyCookie:()=>u};for(var p in l)n(o,p,{get:l[p],enumerable:!0});function u(e){var t;let r=["path"in e&&e.path&&`Path=${e.path}`,"expires"in e&&(e.expires||0===e.expires)&&`Expires=${("number"==typeof e.expires?new Date(e.expires):e.expires).toUTCString()}`,"maxAge"in e&&"number"==typeof e.maxAge&&`Max-Age=${e.maxAge}`,"domain"in e&&e.domain&&`Domain=${e.domain}`,"secure"in e&&e.secure&&"Secure","httpOnly"in e&&e.httpOnly&&"HttpOnly","sameSite"in e&&e.sameSite&&`SameSite=${e.sameSite}`,"partitioned"in e&&e.partitioned&&"Partitioned","priority"in e&&e.priority&&`Priority=${e.priority}`].filter(Boolean),n=`${e.name}=${encodeURIComponent(null!=(t=e.value)?t:"")}`;return 0===r.length?n:`${n}; ${r.join("; ")}`}function d(e){let t=new Map;for(let r of e.split(/; */)){if(!r)continue;let e=r.indexOf("=");if(-1===e){t.set(r,"true");continue}let[n,s]=[r.slice(0,e),r.slice(e+1)];try{t.set(n,decodeURIComponent(null!=s?s:"true"))}catch{}}return t}function c(e){if(!e)return;let[[t,r],...n]=d(e),{domain:s,expires:a,httponly:i,maxage:o,path:l,samesite:p,secure:u,partitioned:c,priority:f}=Object.fromEntries(n.map(([e,t])=>[e.toLowerCase().replace(/-/g,""),t]));{var m,v,y={name:t,value:decodeURIComponent(r),domain:s,...a&&{expires:new Date(a)},...i&&{httpOnly:!0},..."string"==typeof o&&{maxAge:Number(o)},path:l,...p&&{sameSite:g.includes(m=(m=p).toLowerCase())?m:void 0},...u&&{secure:!0},...f&&{priority:h.includes(v=(v=f).toLowerCase())?v:void 0},...c&&{partitioned:!0}};let e={};for(let t in y)y[t]&&(e[t]=y[t]);return e}}t.exports=((e,t,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of a(t))i.call(e,o)||void 0===o||n(e,o,{get:()=>t[o],enumerable:!(r=s(t,o))||r.enumerable});return e})(n({},"__esModule",{value:!0}),o);var g=["strict","lax","none"],h=["low","medium","high"],f=class{constructor(e){this._parsed=new Map,this._headers=e;const t=e.get("cookie");if(t)for(const[e,r]of d(t))this._parsed.set(e,{name:e,value:r})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed);if(!e.length)return r.map(([e,t])=>t);let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(([e])=>e===n).map(([e,t])=>t)}has(e){return this._parsed.has(e)}set(...e){let[t,r]=1===e.length?[e[0].name,e[0].value]:e,n=this._parsed;return n.set(t,{name:t,value:r}),this._headers.set("cookie",Array.from(n).map(([e,t])=>u(t)).join("; ")),this}delete(e){let t=this._parsed,r=Array.isArray(e)?e.map(e=>t.delete(e)):t.delete(e);return this._headers.set("cookie",Array.from(t).map(([e,t])=>u(t)).join("; ")),r}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(e=>`${e.name}=${encodeURIComponent(e.value)}`).join("; ")}},m=class{constructor(e){var t,r,n;this._parsed=new Map,this._headers=e;const s=null!=(n=null!=(r=null==(t=e.getSetCookie)?void 0:t.call(e))?r:e.get("set-cookie"))?n:[];for(const e of Array.isArray(s)?s:function(e){if(!e)return[];var t,r,n,s,a,i=[],o=0;function l(){for(;o<e.length&&/\s/.test(e.charAt(o));)o+=1;return o<e.length}for(;o<e.length;){for(t=o,a=!1;l();)if(","===(r=e.charAt(o))){for(n=o,o+=1,l(),s=o;o<e.length&&"="!==(r=e.charAt(o))&&";"!==r&&","!==r;)o+=1;o<e.length&&"="===e.charAt(o)?(a=!0,o=s,i.push(e.substring(t,n)),t=o):o=n+1}else o+=1;(!a||o>=e.length)&&i.push(e.substring(t,e.length))}return i}(s)){const t=c(e);t&&this._parsed.set(t.name,t)}}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed.values());if(!e.length)return r;let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(e=>e.name===n)}has(e){return this._parsed.has(e)}set(...e){let[t,r,n]=1===e.length?[e[0].name,e[0].value,e[0]]:e,s=this._parsed;return s.set(t,function(e={name:"",value:""}){return"number"==typeof e.expires&&(e.expires=new Date(e.expires)),e.maxAge&&(e.expires=new Date(Date.now()+1e3*e.maxAge)),(null===e.path||void 0===e.path)&&(e.path="/"),e}({name:t,value:r,...n})),function(e,t){for(let[,r]of(t.delete("set-cookie"),e)){let e=u(r);t.append("set-cookie",e)}}(s,this._headers),this}delete(...e){let[t,r]="string"==typeof e[0]?[e[0]]:[e[0].name,e[0]];return this.set({...r,name:t,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(u).join("; ")}}},413895,e=>{"use strict";var t=e.i(666680);let r=globalThis;r.__wvPendingRegs||(r.__wvPendingRegs=new Map);let n=r.__wvPendingRegs;e.s(["approveRegistration",0,function(e,t,r){let s=n.get(e);return!!s&&"pending"===s.status&&(s.status="approved",s.tokenPlaintext=t,s.resolvedAt=new Date().toISOString(),r&&(s.warning=r),!0)},"consumeRegistration",0,function(e){let t=n.get(e);if(!t||"approved"!==t.status||!t.tokenPlaintext)return null;let r=t.tokenPlaintext;return t.status="consumed",t.tokenPlaintext=void 0,r},"createRegistration",0,function(e){let r=`reg_${(0,t.randomBytes)(16).toString("hex")}`,s={registrationId:r,agentId:e.agentId,displayName:e.displayName,requestedScope:e.requestedScope??{paths:["**/*"],ops:["read","mutate"]},requestedAt:new Date().toISOString(),status:"pending"};return n.set(r,s),s},"denyRegistration",0,function(e){let t=n.get(e);return!!t&&"pending"===t.status&&(t.status="denied",t.resolvedAt=new Date().toISOString(),!0)},"getRegistration",0,function(e){return n.get(e)},"listPendingRegistrations",0,function(){return[...n.values()].filter(e=>"pending"===e.status)}])},340707,e=>{"use strict";var t=e.i(351216),r=e.i(413895);let n=globalThis;n.__wvRegBuckets||(n.__wvRegBuckets=new Map);let s=n.__wvRegBuckets,a=/^ai:[a-z][a-z0-9-]{0,30}$/i,i=new Set(["read","mutate","delete"]);function o(e){let t;if(!Array.isArray(e.paths)||0===e.paths.length||e.paths.length>20)return{error:"scope.paths must be an array of 1–20 glob pattern strings"};for(let t of e.paths)if("string"!=typeof t||t.length<1||t.length>200)return{error:"Each scope.paths entry must be a string of 1–200 characters"};if(!Array.isArray(e.ops)||0===e.ops.length)return{error:"scope.ops must be a non-empty array"};for(let t of e.ops)if(!i.has(t))return{error:'scope.ops values must be "read", "mutate", or "delete"'};if(void 0!==e.workspaceId){if("string"!=typeof e.workspaceId||e.workspaceId.length<1||e.workspaceId.length>64)return{error:"scope.workspaceId must be a string of 1–64 characters"};t=e.workspaceId}return{paths:e.paths,ops:e.ops,...void 0!==t?{workspaceId:t}:{}}}async function l(e){var n,i;let l,p,u,d;if(n=(e.headers.get("x-forwarded-for")??"").split(",")[0]?.trim()||"__global__",(p=s.get(n))||(p={tokens:10,lastRefillAt:Date.now()},s.set(n,p)),i=p,(d=Math.floor(((u=Date.now())-i.lastRefillAt)/6e3))>0&&(i.tokens=Math.min(10,i.tokens+d),i.lastRefillAt=u),!(p.tokens>0)||(p.tokens--,0))return t.NextResponse.json({error:"RATE_LIMITED",message:"Too many registration attempts"},{status:429});try{l=await e.json()}catch{return t.NextResponse.json({error:"INVALID_PAYLOAD",message:"Invalid JSON"},{status:400})}if("string"!=typeof l.id||!a.test(l.id))return t.NextResponse.json({error:"INVALID_PAYLOAD",message:"id must match /^ai:[a-z][a-z0-9-]{0,30}$/i (e.g. ai:claude)"},{status:400});if("string"!=typeof l.displayName||l.displayName.trim().length<1||l.displayName.trim().length>80)return t.NextResponse.json({error:"INVALID_PAYLOAD",message:"displayName must be a string of 1–80 characters"},{status:400});let c=l.displayName.trim();if(void 0===l.scope||null===l.scope||"object"!=typeof l.scope||Array.isArray(l.scope))return t.NextResponse.json({error:"INVALID_PAYLOAD",message:"scope is required"},{status:400});let g=o(l.scope);if("error"in g)return t.NextResponse.json({error:"INVALID_PAYLOAD",message:g.error},{status:400});let h=(0,r.createRegistration)({agentId:l.id,displayName:c,requestedScope:g});return t.NextResponse.json({registrationId:h.registrationId,pollUrl:`/api/agent/register/${h.registrationId}`,status:"pending"},{status:202})}e.s(["POST",0,l,"runtime",0,"nodejs","validateScope",0,o],340707)},938179,e=>{"use strict";var t=e.i(985426),r=e.i(257574),n=e.i(507835),s=e.i(457789),a=e.i(119791),i=e.i(141062),o=e.i(957291),l=e.i(535899),p=e.i(610241),u=e.i(62749),d=e.i(624891),c=e.i(725836),g=e.i(532736),h=e.i(257858),f=e.i(487476),m=e.i(193695);e.i(484264);var v=e.i(315709),y=e.i(340707);let x=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/agent/register/route",pathname:"/api/agent/register",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/agent/register/route.ts",nextConfigOutput:"standalone",userland:y,...{}}),{workAsyncStorage:R,workUnitAsyncStorage:w,serverHooks:A}=x;async function _(e,t,n){n.requestMeta&&(0,s.setRequestMeta)(e,n.requestMeta),x.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/agent/register/route";y=y.replace(/\/index$/,"")||"/";let R=await x.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:w,params:A,nextConfig:_,parsedUrl:b,isDraftMode:k,prerenderManifest:S,routerServerContext:C,isOnDemandRevalidate:N,revalidateOnlyGenerated:E,resolvedPathname:I,clientReferenceManifest:O,serverActionsManifest:P}=R,j=(0,o.normalizeAppPath)(y),D=!!(S.dynamicRoutes[j]||S.routes[I]),q=async()=>((null==C?void 0:C.render404)?await C.render404(e,t,b,!1):t.end("This page could not be found"),null);if(D&&!k){let e=!!S.routes[I],t=S.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(_.adapterPath)return await q();throw new m.NoFallbackError}}let T=null;!D||x.isDev||k||(T="/index"===(T=I)?"/":T);let $=!0===x.isDev||!D,M=D&&!$;P&&O&&(0,i.setManifestsSingleton)({page:y,clientReferenceManifest:O,serverActionsManifest:P});let U=e.method||"GET",L=(0,a.getTracer)(),H=L.getActiveScopeSpan(),B=!!(null==C?void 0:C.isWrappedByNextServer),F=!!(0,s.getRequestMeta)(e,"minimalMode"),K=(0,s.getRequestMeta)(e,"incrementalCache")||await x.getIncrementalCache(e,_,S,F);null==K||K.resetRequestCache(),globalThis.__incrementalCache=K;let V={params:A,previewProps:S.preview,renderOpts:{experimental:{authInterrupts:!!_.experimental.authInterrupts},cacheComponents:!!_.cacheComponents,supportsDynamicResponse:$,incrementalCache:K,cacheLifeProfiles:_.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,s)=>x.onRequestError(e,t,n,s,C)},sharedContext:{buildId:w}},z=new l.NodeNextRequest(e),Y=new l.NodeNextResponse(t),G=p.NextRequestAdapter.fromNodeNextRequest(z,(0,p.signalFromNodeResponse)(t));try{let s,i=async e=>x.handle(G,V).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=L.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.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),s&&s!==e&&(s.setAttribute("http.route",n),s.updateName(t))}else e.updateName(`${U} ${y}`)}),o=async s=>{var a,o;let l=async({previousCacheEntry:r})=>{try{if(!F&&N&&E&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(s);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(!D)return await (0,c.sendResponse)(z,Y,a,V.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(a.headers);l&&(t[f.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>=f.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,n=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:V.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await x.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:N})},!1,C),t}},p=await x.handleResponse({req:e,nextConfig:_,cacheKey:T,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:E,responseGenerator:l,waitUntil:n.waitUntil,isMinimalMode:F});if(!D)return null;if((null==p||null==(a=p.value)?void 0:a.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==p||null==(o=p.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});F||t.setHeader("x-nextjs-cache",N?"REVALIDATED":p.isMiss?"MISS":p.isStale?"STALE":"HIT"),k&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,g.fromNodeOutgoingHttpHeaders)(p.value.headers);return F&&D||u.delete(f.NEXT_CACHE_TAGS_HEADER),!p.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,h.getCacheControlHeader)(p.cacheControl)),await (0,c.sendResponse)(z,Y,new Response(p.value.body,{headers:u,status:p.value.status||200})),null};B&&H?await o(H):(s=L.getActiveScopeSpan(),await L.withPropagatedContext(e.headers,()=>L.trace(u.BaseServerSpan.handleRequest,{spanName:`${U} ${y}`,kind:a.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},o),void 0,!B))}catch(t){if(t instanceof m.NoFallbackError||await x.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:N})},!1,C),D)throw t;return await (0,c.sendResponse)(z,Y,new Response(null,{status:500})),null}}e.s(["handler",0,_,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:R,workUnitAsyncStorage:w})},"routeModule",0,x,"serverHooks",0,A,"workAsyncStorage",0,R,"workUnitAsyncStorage",0,w])}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0d42en0._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[750227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},912714,(e,t,r)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},100705,(e,t,r)=>{"use strict";t.exports=e.r(918622)},294382,(e,t,r)=>{"use strict";t.exports=e.r(100705).vendored["react-rsc"].React},362744,(e,t,r)=>{"use strict";var n=Object.defineProperty,a=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,s=Object.prototype.hasOwnProperty,o={},l={RequestCookies:()=>m,ResponseCookies:()=>g,parseCookie:()=>d,parseSetCookie:()=>c,stringifyCookie:()=>p};for(var u in l)n(o,u,{get:l[u],enumerable:!0});function p(e){var t;let r=["path"in e&&e.path&&`Path=${e.path}`,"expires"in e&&(e.expires||0===e.expires)&&`Expires=${("number"==typeof e.expires?new Date(e.expires):e.expires).toUTCString()}`,"maxAge"in e&&"number"==typeof e.maxAge&&`Max-Age=${e.maxAge}`,"domain"in e&&e.domain&&`Domain=${e.domain}`,"secure"in e&&e.secure&&"Secure","httpOnly"in e&&e.httpOnly&&"HttpOnly","sameSite"in e&&e.sameSite&&`SameSite=${e.sameSite}`,"partitioned"in e&&e.partitioned&&"Partitioned","priority"in e&&e.priority&&`Priority=${e.priority}`].filter(Boolean),n=`${e.name}=${encodeURIComponent(null!=(t=e.value)?t:"")}`;return 0===r.length?n:`${n}; ${r.join("; ")}`}function d(e){let t=new Map;for(let r of e.split(/; */)){if(!r)continue;let e=r.indexOf("=");if(-1===e){t.set(r,"true");continue}let[n,a]=[r.slice(0,e),r.slice(e+1)];try{t.set(n,decodeURIComponent(null!=a?a:"true"))}catch{}}return t}function c(e){if(!e)return;let[[t,r],...n]=d(e),{domain:a,expires:i,httponly:s,maxage:o,path:l,samesite:u,secure:p,partitioned:c,priority:m}=Object.fromEntries(n.map(([e,t])=>[e.toLowerCase().replace(/-/g,""),t]));{var g,x,v={name:t,value:decodeURIComponent(r),domain:a,...i&&{expires:new Date(i)},...s&&{httpOnly:!0},..."string"==typeof o&&{maxAge:Number(o)},path:l,...u&&{sameSite:h.includes(g=(g=u).toLowerCase())?g:void 0},...p&&{secure:!0},...m&&{priority:f.includes(x=(x=m).toLowerCase())?x:void 0},...c&&{partitioned:!0}};let e={};for(let t in v)v[t]&&(e[t]=v[t]);return e}}t.exports=((e,t,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of i(t))s.call(e,o)||void 0===o||n(e,o,{get:()=>t[o],enumerable:!(r=a(t,o))||r.enumerable});return e})(n({},"__esModule",{value:!0}),o);var h=["strict","lax","none"],f=["low","medium","high"],m=class{constructor(e){this._parsed=new Map,this._headers=e;const t=e.get("cookie");if(t)for(const[e,r]of d(t))this._parsed.set(e,{name:e,value:r})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed);if(!e.length)return r.map(([e,t])=>t);let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(([e])=>e===n).map(([e,t])=>t)}has(e){return this._parsed.has(e)}set(...e){let[t,r]=1===e.length?[e[0].name,e[0].value]:e,n=this._parsed;return n.set(t,{name:t,value:r}),this._headers.set("cookie",Array.from(n).map(([e,t])=>p(t)).join("; ")),this}delete(e){let t=this._parsed,r=Array.isArray(e)?e.map(e=>t.delete(e)):t.delete(e);return this._headers.set("cookie",Array.from(t).map(([e,t])=>p(t)).join("; ")),r}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(e=>`${e.name}=${encodeURIComponent(e.value)}`).join("; ")}},g=class{constructor(e){var t,r,n;this._parsed=new Map,this._headers=e;const a=null!=(n=null!=(r=null==(t=e.getSetCookie)?void 0:t.call(e))?r:e.get("set-cookie"))?n:[];for(const e of Array.isArray(a)?a:function(e){if(!e)return[];var t,r,n,a,i,s=[],o=0;function l(){for(;o<e.length&&/\s/.test(e.charAt(o));)o+=1;return o<e.length}for(;o<e.length;){for(t=o,i=!1;l();)if(","===(r=e.charAt(o))){for(n=o,o+=1,l(),a=o;o<e.length&&"="!==(r=e.charAt(o))&&";"!==r&&","!==r;)o+=1;o<e.length&&"="===e.charAt(o)?(i=!0,o=a,s.push(e.substring(t,n)),t=o):o=n+1}else o+=1;(!i||o>=e.length)&&s.push(e.substring(t,e.length))}return s}(a)){const t=c(e);t&&this._parsed.set(t.name,t)}}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed.values());if(!e.length)return r;let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(e=>e.name===n)}has(e){return this._parsed.has(e)}set(...e){let[t,r,n]=1===e.length?[e[0].name,e[0].value,e[0]]:e,a=this._parsed;return a.set(t,function(e={name:"",value:""}){return"number"==typeof e.expires&&(e.expires=new Date(e.expires)),e.maxAge&&(e.expires=new Date(Date.now()+1e3*e.maxAge)),(null===e.path||void 0===e.path)&&(e.path="/"),e}({name:t,value:r,...n})),function(e,t){for(let[,r]of(t.delete("set-cookie"),e)){let e=p(r);t.append("set-cookie",e)}}(a,this._headers),this}delete(...e){let[t,r]="string"==typeof e[0]?[e[0]]:[e[0].name,e[0]];return this.set({...r,name:t,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(p).join("; ")}}},727028,(e,t,r)=>{t.exports=e.x("node:zlib",()=>require("node:zlib"))},564946,e=>{"use strict";var t=e.i(985426),r=e.i(257574),n=e.i(507835),a=e.i(457789),i=e.i(119791),s=e.i(141062),o=e.i(957291),l=e.i(535899),u=e.i(610241),p=e.i(62749),d=e.i(624891),c=e.i(725836),h=e.i(532736),f=e.i(257858),m=e.i(487476),g=e.i(193695);e.i(484264);var x=e.i(315709),v=e.i(351216),y=e.i(912714),w=e.i(727028),R=e.i(750227);function C(e,t){return e.toString(8).padStart(t-1,"0")+"\0"}function b(e,t,r,n){Buffer.from(r,"utf-8").subarray(0,n).copy(e,t)}async function A(e){let t=R.default.resolve(process.cwd(),"agents/wiki-viewer-skill"),r=await (0,y.readdir)(t,{withFileTypes:!0}),n=Math.floor(Date.now()/1e3),a=[];for(let e of r){if(!e.isFile())continue;let r=await (0,y.readFile)(R.default.join(t,e.name));a.push({name:`wiki-viewer-skill/${e.name}`,content:r,mtime:n})}let i=function(e){let t=[];for(let r of e){let e=function(e,t,r){let n=Buffer.alloc(512,0);b(n,0,e,100),b(n,100,"0000644\0",8),b(n,108,"0000000\0",8),b(n,116,"0000000\0",8),b(n,124,C(t,12),12),b(n,136,C(r,12),12),n[156]=48,b(n,257,"ustar\0",6),b(n,263,"00",2);let a=0;for(let e=0;e<512;e++)a+=e>=148&&e<156?32:n[e];return b(n,148,C(a,7)+" ",8),n}(r.name,r.content.length,r.mtime);t.push(e),t.push(r.content);let n=r.content.length%512;0!==n&&t.push(Buffer.alloc(512-n,0))}return t.push(Buffer.alloc(1024,0)),Buffer.concat(t)}(a),s=(0,w.gzipSync)(i);return new v.NextResponse(s,{status:200,headers:{"Content-Type":"application/gzip","Content-Disposition":'attachment; filename="wiki-viewer-skill.tar.gz"',"Cache-Control":"no-store"}})}e.s(["GET",0,A,"runtime",0,"nodejs"],952984);var _=e.i(952984);let k=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/agents/skill.tar.gz/route",pathname:"/api/agents/skill.tar.gz",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/agents/skill.tar.gz/route.ts",nextConfigOutput:"standalone",userland:_,...{}}),{workAsyncStorage:E,workUnitAsyncStorage:S,serverHooks:O}=k;async function j(e,t,n){n.requestMeta&&(0,a.setRequestMeta)(e,n.requestMeta),k.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/agents/skill.tar.gz/route";v=v.replace(/\/index$/,"")||"/";let y=await k.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:w,params:R,nextConfig:C,parsedUrl:b,isDraftMode:A,prerenderManifest:_,routerServerContext:E,isOnDemandRevalidate:S,revalidateOnlyGenerated:O,resolvedPathname:j,clientReferenceManifest:P,serverActionsManifest:N}=y,q=(0,o.normalizeAppPath)(v),T=!!(_.dynamicRoutes[q]||_.routes[j]),$=async()=>((null==E?void 0:E.render404)?await E.render404(e,t,b,!1):t.end("This page could not be found"),null);if(T&&!A){let e=!!_.routes[j],t=_.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(C.adapterPath)return await $();throw new g.NoFallbackError}}let D=null;!T||k.isDev||A||(D="/index"===(D=j)?"/":D);let M=!0===k.isDev||!T,U=T&&!M;N&&P&&(0,s.setManifestsSingleton)({page:v,clientReferenceManifest:P,serverActionsManifest:N});let I=e.method||"GET",H=(0,i.getTracer)(),z=H.getActiveScopeSpan(),B=!!(null==E?void 0:E.isWrappedByNextServer),F=!!(0,a.getRequestMeta)(e,"minimalMode"),K=(0,a.getRequestMeta)(e,"incrementalCache")||await k.getIncrementalCache(e,C,_,F);null==K||K.resetRequestCache(),globalThis.__incrementalCache=K;let L={params:R,previewProps:_.preview,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:M,incrementalCache:K,cacheLifeProfiles:C.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>k.onRequestError(e,t,n,a,E)},sharedContext:{buildId:w}},G=new l.NodeNextRequest(e),V=new l.NodeNextResponse(t),W=u.NextRequestAdapter.fromNodeNextRequest(G,(0,u.signalFromNodeResponse)(t));try{let a,s=async e=>k.handle(W,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=H.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=`${I} ${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(`${I} ${v}`)}),o=async a=>{var i,o;let l=async({previousCacheEntry:r})=>{try{if(!F&&S&&O&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await s(a);e.fetchMetrics=L.renderOpts.fetchMetrics;let o=L.renderOpts.pendingWaitUntil;o&&n.waitUntil&&(n.waitUntil(o),o=void 0);let l=L.renderOpts.collectedTags;if(!T)return await (0,c.sendResponse)(G,V,i,L.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(i.headers);l&&(t[m.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,n=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:x.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 k.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:S})},!1,E),t}},u=await k.handleResponse({req:e,nextConfig:C,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:_,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:O,responseGenerator:l,waitUntil:n.waitUntil,isMinimalMode:F});if(!T)return null;if((null==u||null==(i=u.value)?void 0:i.kind)!==x.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});F||t.setHeader("x-nextjs-cache",S?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return F&&T||p.delete(m.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)(G,V,new Response(u.value.body,{headers:p,status:u.value.status||200})),null};B&&z?await o(z):(a=H.getActiveScopeSpan(),await H.withPropagatedContext(e.headers,()=>H.trace(p.BaseServerSpan.handleRequest,{spanName:`${I} ${v}`,kind:i.SpanKind.SERVER,attributes:{"http.method":I,"http.target":e.url}},o),void 0,!B))}catch(t){if(t instanceof g.NoFallbackError||await k.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:S})},!1,E),T)throw t;return await (0,c.sendResponse)(G,V,new Response(null,{status:500})),null}}e.s(["handler",0,j,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:S})},"routeModule",0,k,"serverHooks",0,O,"workAsyncStorage",0,E,"workUnitAsyncStorage",0,S],564946)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0j8ch6d._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[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),s=e.i(832852);let i="__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 p(){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 c(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 g(){let e=await p();if(e)return e;let t={version:1,agents:[]};return await c(t),t}async function h(e){let r=await p();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 f(e){let t=await p();return t?t.agents.find(t=>t.id===e)??null:null}async function m(e){await (0,s.withFileMutex)(i,async()=>{let t=await g(),r=t.agents.findIndex(t=>t.id===e.id);r>=0?t.agents[r]=e:t.agents.push(e),await c(t)})}async function v(e){return(0,s.withFileMutex)(i,async()=>{let t=await p();if(!t)return!1;let r=t.agents.length;return t.agents=t.agents.filter(t=>t.id!==e),t.agents.length!==r&&(await c(t),!0)})}async function w(e){Date.now()-(o.get(e)??0)<3e4||await (0,s.withFileMutex)(i,async()=>{let t=await p();if(!t)return;let r=t.agents.find(t=>t.id===e);r&&(r.lastSeen=new Date().toISOString(),o.set(e,Date.now()),await c(t))})}e.s(["addAgent",0,m,"hashToken",0,d,"lookupAgentById",0,f,"lookupAgentByToken",0,h,"readRegistry",0,p,"removeAgent",0,v,"updateLastSeen",0,w])},413895,e=>{"use strict";var t=e.i(666680);let r=globalThis;r.__wvPendingRegs||(r.__wvPendingRegs=new Map);let a=r.__wvPendingRegs;e.s(["approveRegistration",0,function(e,t,r){let n=a.get(e);return!!n&&"pending"===n.status&&(n.status="approved",n.tokenPlaintext=t,n.resolvedAt=new Date().toISOString(),r&&(n.warning=r),!0)},"consumeRegistration",0,function(e){let t=a.get(e);if(!t||"approved"!==t.status||!t.tokenPlaintext)return null;let r=t.tokenPlaintext;return t.status="consumed",t.tokenPlaintext=void 0,r},"createRegistration",0,function(e){let r=`reg_${(0,t.randomBytes)(16).toString("hex")}`,n={registrationId:r,agentId:e.agentId,displayName:e.displayName,requestedScope:e.requestedScope??{paths:["**/*"],ops:["read","mutate"]},requestedAt:new Date().toISOString(),status:"pending"};return a.set(r,n),n},"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)}])},340707,e=>{"use strict";var t=e.i(351216),r=e.i(413895);let a=globalThis;a.__wvRegBuckets||(a.__wvRegBuckets=new Map);let n=a.__wvRegBuckets,s=/^ai:[a-z][a-z0-9-]{0,30}$/i,i=new Set(["read","mutate","delete"]);function o(e){let t;if(!Array.isArray(e.paths)||0===e.paths.length||e.paths.length>20)return{error:"scope.paths must be an array of 1–20 glob pattern strings"};for(let t of e.paths)if("string"!=typeof t||t.length<1||t.length>200)return{error:"Each scope.paths entry must be a string of 1–200 characters"};if(!Array.isArray(e.ops)||0===e.ops.length)return{error:"scope.ops must be a non-empty array"};for(let t of e.ops)if(!i.has(t))return{error:'scope.ops values must be "read", "mutate", or "delete"'};if(void 0!==e.workspaceId){if("string"!=typeof e.workspaceId||e.workspaceId.length<1||e.workspaceId.length>64)return{error:"scope.workspaceId must be a string of 1–64 characters"};t=e.workspaceId}return{paths:e.paths,ops:e.ops,...void 0!==t?{workspaceId:t}:{}}}async function l(e){var a,i;let l,u,d,p;if(a=(e.headers.get("x-forwarded-for")??"").split(",")[0]?.trim()||"__global__",(u=n.get(a))||(u={tokens:10,lastRefillAt:Date.now()},n.set(a,u)),i=u,(p=Math.floor(((d=Date.now())-i.lastRefillAt)/6e3))>0&&(i.tokens=Math.min(10,i.tokens+p),i.lastRefillAt=d),!(u.tokens>0)||(u.tokens--,0))return t.NextResponse.json({error:"RATE_LIMITED",message:"Too many registration attempts"},{status:429});try{l=await e.json()}catch{return t.NextResponse.json({error:"INVALID_PAYLOAD",message:"Invalid JSON"},{status:400})}if("string"!=typeof l.id||!s.test(l.id))return t.NextResponse.json({error:"INVALID_PAYLOAD",message:"id must match /^ai:[a-z][a-z0-9-]{0,30}$/i (e.g. ai:claude)"},{status:400});if("string"!=typeof l.displayName||l.displayName.trim().length<1||l.displayName.trim().length>80)return t.NextResponse.json({error:"INVALID_PAYLOAD",message:"displayName must be a string of 1–80 characters"},{status:400});let c=l.displayName.trim();if(void 0===l.scope||null===l.scope||"object"!=typeof l.scope||Array.isArray(l.scope))return t.NextResponse.json({error:"INVALID_PAYLOAD",message:"scope is required"},{status:400});let g=o(l.scope);if("error"in g)return t.NextResponse.json({error:"INVALID_PAYLOAD",message:g.error},{status:400});let h=(0,r.createRegistration)({agentId:l.id,displayName:c,requestedScope:g});return t.NextResponse.json({registrationId:h.registrationId,pollUrl:`/api/agent/register/${h.registrationId}`,status:"pending"},{status:202})}e.s(["POST",0,l,"runtime",0,"nodejs","validateScope",0,o],340707)},445836,e=>{"use strict";var t=e.i(985426),r=e.i(257574),a=e.i(507835),n=e.i(457789),s=e.i(119791),i=e.i(141062),o=e.i(957291),l=e.i(535899),u=e.i(610241),d=e.i(62749),p=e.i(624891),c=e.i(725836),g=e.i(532736),h=e.i(257858),f=e.i(487476),m=e.i(193695);e.i(484264);var v=e.i(315709),w=e.i(666680),_=e.i(351216),y=e.i(254226),R=e.i(413895),A=e.i(228064),x=e.i(340707);async function I(e,{params:t}){let r=await (0,y.requireUser)(e);if(!r.ok)return _.NextResponse.json({error:"UNAUTHORIZED"},{status:401});let{regId:a}=await t,n=(0,R.getRegistration)(a);if(!n)return _.NextResponse.json({error:"NOT_FOUND",message:"Registration not found"},{status:404});if("pending"!==n.status)return _.NextResponse.json({error:"CONFLICT",message:`Registration is already ${n.status}`},{status:409});let s=n.requestedScope;try{let t=await e.json();if(void 0!==t.scope&&null!==t.scope){if("object"!=typeof t.scope||Array.isArray(t.scope))return _.NextResponse.json({error:"INVALID_PAYLOAD",message:"scope must be an object"},{status:400});let e=(0,x.validateScope)(t.scope);if("error"in e)return _.NextResponse.json({error:"INVALID_PAYLOAD",message:e.error},{status:400});s=e}}catch{}let i=await (0,A.lookupAgentById)(n.agentId)?`Approving replaced the existing token for ${n.agentId}; the previous token is now invalid.`:void 0,o=(0,w.randomBytes)(32).toString("hex"),l=(0,A.hashToken)(o);return await (0,A.addAgent)({id:n.agentId,displayName:n.displayName,tokenHash:l,scope:s,createdAt:new Date().toISOString(),lastSeen:new Date().toISOString(),ownerUserId:r.user.id}),(0,R.approveRegistration)(a,o,i),_.NextResponse.json({ok:!0,agentId:n.agentId,...i?{rotated:!0,warning:i}:{}})}e.s(["POST",0,I,"runtime",0,"nodejs"],960615);var N=e.i(960615);let k=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/agent/admin/registrations/[regId]/approve/route",pathname:"/api/agent/admin/registrations/[regId]/approve",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/agent/admin/registrations/[regId]/approve/route.ts",nextConfigOutput:"standalone",userland:N,...{}}),{workAsyncStorage:S,workUnitAsyncStorage:P,serverHooks:E}=k;async function O(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),k.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/agent/admin/registrations/[regId]/approve/route";w=w.replace(/\/index$/,"")||"/";let _=await k.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!_)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:y,params:R,nextConfig:A,parsedUrl:x,isDraftMode:I,prerenderManifest:N,routerServerContext:S,isOnDemandRevalidate:P,revalidateOnlyGenerated:E,resolvedPathname:O,clientReferenceManifest:b,serverActionsManifest:j}=_,D=(0,o.normalizeAppPath)(w),C=!!(N.dynamicRoutes[D]||N.routes[O]),T=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,x,!1):t.end("This page could not be found"),null);if(C&&!I){let e=!!N.routes[O],t=N.dynamicRoutes[D];if(t&&!1===t.fallback&&!e){if(A.adapterPath)return await T();throw new m.NoFallbackError}}let q=null;!C||k.isDev||I||(q="/index"===(q=O)?"/":q);let M=!0===k.isDev||!C,L=C&&!M;j&&b&&(0,i.setManifestsSingleton)({page:w,clientReferenceManifest:b,serverActionsManifest:j});let U=e.method||"GET",H=(0,s.getTracer)(),B=H.getActiveScopeSpan(),F=!!(null==S?void 0:S.isWrappedByNextServer),$=!!(0,n.getRequestMeta)(e,"minimalMode"),V=(0,n.getRequestMeta)(e,"incrementalCache")||await k.getIncrementalCache(e,A,N,$);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let z={params:R,previewProps:N.preview,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts},cacheComponents:!!A.cacheComponents,supportsDynamicResponse:M,incrementalCache:V,cacheLifeProfiles:A.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>k.onRequestError(e,t,a,n,S)},sharedContext:{buildId:y}},K=new l.NodeNextRequest(e),Y=new l.NodeNextResponse(t),G=u.NextRequestAdapter.fromNodeNextRequest(K,(0,u.signalFromNodeResponse)(t));try{let n,i=async e=>k.handle(G,z).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=H.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=`${U} ${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(`${U} ${w}`)}),o=async n=>{var s,o;let l=async({previousCacheEntry:r})=>{try{if(!$&&P&&E&&!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=z.renderOpts.fetchMetrics;let o=z.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=z.renderOpts.collectedTags;if(!C)return await (0,c.sendResponse)(K,Y,s,z.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[f.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==z.renderOpts.collectedRevalidate&&!(z.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&z.renderOpts.collectedRevalidate,a=void 0===z.renderOpts.collectedExpire||z.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:z.renderOpts.collectedExpire;return{value:{kind:v.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:w,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:P})},!1,S),t}},u=await k.handleResponse({req:e,nextConfig:A,cacheKey:q,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:N,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:E,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:$});if(!C)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});$||t.setHeader("x-nextjs-cache",P?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),I&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,g.fromNodeOutgoingHttpHeaders)(u.value.headers);return $&&C||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,c.sendResponse)(K,Y,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};F&&B?await o(B):(n=H.getActiveScopeSpan(),await H.withPropagatedContext(e.headers,()=>H.trace(d.BaseServerSpan.handleRequest,{spanName:`${U} ${w}`,kind:s.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},o),void 0,!F))}catch(t){if(t instanceof m.NoFallbackError||await k.onRequestError(e,t,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:P})},!1,S),C)throw t;return await (0,c.sendResponse)(K,Y,new Response(null,{status:500})),null}}e.s(["handler",0,O,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:P})},"routeModule",0,k,"serverHooks",0,E,"workAsyncStorage",0,S,"workUnitAsyncStorage",0,P],445836)},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)))},769787,e=>{e.v(t=>Promise.all(["server/chunks/01er_better-auth_dist_adapters_kysely-adapter_index_mjs_0s~-4gu._.js"].map(t=>e.l(t))).then(()=>t(717789)))},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)))},697743,e=>{e.v(t=>Promise.all(["server/chunks/0.u4_next_05jevxw._.js"].map(t=>e.l(t))).then(()=>t(428325)))},99243,e=>{e.v(e=>Promise.resolve().then(()=>e(313414)))},893412,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_auth_api-key_ts_0t_ma-t._.js"].map(t=>e.l(t))).then(()=>t(499465)))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0x5g3v_._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[397998,e=>{"use strict";async function r(){{let{ensureApiKey:r}=await e.A(613146);r();let{deleteLegacySearchDb:s}=await e.A(566560);s();try{let r=process.env.ROOT_DIR;if(r){let{sweepScratch:s}=await e.A(454918);await s(r)}}catch{}}}e.s(["register",0,r])},613146,e=>{e.v(r=>Promise.all(["server/chunks/[root-of-the-server]__0er9oof._.js"].map(r=>e.l(r))).then(()=>r(504263)))},566560,e=>{e.v(r=>Promise.all(["server/chunks/[root-of-the-server]__0ifw4.q._.js"].map(r=>e.l(r))).then(()=>r(717372)))},454918,e=>{e.v(r=>Promise.all(["server/chunks/[root-of-the-server]__0qpqspq._.js"].map(r=>e.l(r))).then(()=>r(32851)))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=src_0pwns~4._.js.map
|