agent-log-viewer 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/README.md +19 -21
  2. package/bin/cli.mjs +212 -12
  3. package/bin/server-runtime.mjs +51 -0
  4. package/bin/server-runtime.test.ts +190 -0
  5. package/dist/mcp-server.mjs +58 -25
  6. package/dist/runtime-host.mjs +40301 -0
  7. package/dist/standalone/.next/BUILD_ID +1 -1
  8. package/dist/standalone/.next/app-path-routes-manifest.json +13 -13
  9. package/dist/standalone/.next/build-manifest.json +2 -2
  10. package/dist/standalone/.next/prerender-manifest.json +3 -3
  11. package/dist/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  12. package/dist/standalone/.next/server/app/_global-error.html +1 -1
  13. package/dist/standalone/.next/server/app/_global-error.rsc +1 -1
  14. package/dist/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  15. package/dist/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  16. package/dist/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  17. package/dist/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  18. package/dist/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  19. package/dist/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  20. package/dist/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  21. package/dist/standalone/.next/server/app/_not-found.html +1 -1
  22. package/dist/standalone/.next/server/app/_not-found.rsc +1 -1
  23. package/dist/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  24. package/dist/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  25. package/dist/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  26. package/dist/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  27. package/dist/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  28. package/dist/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  29. package/dist/standalone/.next/server/app/api/accounts/claude/[id]/status/route.js +3 -3
  30. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/input/route.js +3 -3
  31. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/route.js +3 -3
  32. package/dist/standalone/.next/server/app/api/accounts/claude/terminal/route.js +3 -3
  33. package/dist/standalone/.next/server/app/api/accounts/codex/terminal/route.js +3 -3
  34. package/dist/standalone/.next/server/app/api/limits/history/route.js +3 -3
  35. package/dist/standalone/.next/server/app/api/limits/route.js +3 -3
  36. package/dist/standalone/.next/server/app/api/orchestrator/seat/route.js +1 -1
  37. package/dist/standalone/.next/server/app/api/runtime/deployments/[deploymentId]/route.js +1 -1
  38. package/dist/standalone/.next/server/app/api/runtime/deployments/capabilities/v1/route.js +1 -1
  39. package/dist/standalone/.next/server/app/api/runtime/deployments/route.js +1 -1
  40. package/dist/standalone/.next/server/app/api/runtime/operations/route.js +1 -1
  41. package/dist/standalone/.next/server/app/api/runtime/snapshot/route.js +1 -1
  42. package/dist/standalone/.next/server/app/api/runtime/stream/route.js +1 -1
  43. package/dist/standalone/.next/server/app/api/spawn/policy/route.js +3 -3
  44. package/dist/standalone/.next/server/app/api/tasks/route.js +2 -2
  45. package/dist/standalone/.next/server/app/index.html +1 -1
  46. package/dist/standalone/.next/server/app/index.rsc +2 -2
  47. package/dist/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  48. package/dist/standalone/.next/server/app/index.segments/_full.segment.rsc +2 -2
  49. package/dist/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  50. package/dist/standalone/.next/server/app/index.segments/_index.segment.rsc +1 -1
  51. package/dist/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  52. package/dist/standalone/.next/server/app/page.js +15 -12
  53. package/dist/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  54. package/dist/standalone/.next/server/app-paths-manifest.json +13 -13
  55. package/dist/standalone/.next/server/chunks/2338.js +4 -1
  56. package/dist/standalone/.next/server/chunks/2904.js +3 -3
  57. package/dist/standalone/.next/server/chunks/3740.js +7 -7
  58. package/dist/standalone/.next/server/chunks/4012.js +3 -3
  59. package/dist/standalone/.next/server/chunks/4972.js +1 -1
  60. package/dist/standalone/.next/server/chunks/5689.js +2 -2
  61. package/dist/standalone/.next/server/chunks/7471.js +6 -6
  62. package/dist/standalone/.next/server/chunks/7733.js +3 -3
  63. package/dist/standalone/.next/server/chunks/8797.js +1 -1
  64. package/dist/standalone/.next/server/chunks/8817.js +1 -1
  65. package/dist/standalone/.next/server/chunks/9364.js +11 -11
  66. package/dist/standalone/.next/server/chunks/9411.js +2 -2
  67. package/dist/standalone/.next/server/chunks/9733.js +3 -3
  68. package/dist/standalone/.next/server/middleware-build-manifest.js +1 -1
  69. package/dist/standalone/.next/server/pages/404.html +1 -1
  70. package/dist/standalone/.next/server/pages/500.html +1 -1
  71. package/dist/standalone/.next/server/server-reference-manifest.json +1 -1
  72. package/dist/standalone/.next/static/chunks/app/{page-ac9463b910bf83fe.js → page-7ba2538fa87e3d62.js} +17 -14
  73. package/dist/standalone/package.json +1 -1
  74. package/package.json +1 -1
  75. /package/dist/standalone/.next/static/{kt9OPe8iwfpNcdOX9ygvb → 2ybXlxpylgBaGz43zp2fM}/_buildManifest.js +0 -0
  76. /package/dist/standalone/.next/static/{kt9OPe8iwfpNcdOX9ygvb → 2ybXlxpylgBaGz43zp2fM}/_ssgManifest.js +0 -0
@@ -2,4 +2,4 @@
2
2
  2:I[7121,[],""]
3
3
  3:I[4581,[],""]
4
4
  4:[]
5
- 0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"kt9OPe8iwfpNcdOX9ygvb"}
5
+ 0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"2ybXlxpylgBaGz43zp2fM"}
@@ -1,2 +1,2 @@
1
1
  :HL["/_next/static/css/498f12ddef7ecb0e.css","style"]
2
- 0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"_not-found","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"kt9OPe8iwfpNcdOX9ygvb"}
2
+ 0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"_not-found","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"2ybXlxpylgBaGz43zp2fM"}
@@ -1,4 +1,4 @@
1
- "use strict";(()=>{var a={};a.id=944,a.ids=[944,4012],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4012:(a,b,c)=>{c.r(b),c.d(b,{CODEX_VIEWER_SPAWN_FEATURES:()=>v,NATIVE_MULTI_AGENT_HOOK_MATCHER:()=>p,NATIVE_MULTI_AGENT_TOOLS:()=>o,NATIVE_SUBAGENT_DENY_MESSAGE:()=>t,VIEWER_SPAWN_CAPABILITY_ENV:()=>r,VIEWER_SPAWN_CAPABILITY_HEADER:()=>k,VIEWER_SPAWN_ENDPOINT:()=>q,VIEWER_SPAWN_PROMPT_FENCE:()=>u,applyClaudeSpawnPolicy:()=>E,claudeSpawnPolicyPaths:()=>w,fenceViewerSpawnPrompt:()=>F,prepareManagedClaudeSpawnHome:()=>D});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(77598),i=c.n(h),j=c(10230);let k="x-llv-spawn-capability",l="LLV_MANAGED_NATIVE_SUBAGENT_DENY=1 ",m=".llv",n=["enableAllProjectMcpServers","enabledMcpjsonServers","disabledMcpjsonServers"],o=Object.freeze(["Task","Agent","Workflow","TeamCreate","TeamDelete","SendMessage"]),p=o.join("|"),q="http://127.0.0.1:8898/api/spawn",r="LLV_SPAWN_CAPABILITY",s=`Send header ${k}: $${r}.`,t=`Sub-agents are disabled on this surface. Spawn через POST ${q} with {engine, model, cwd, prompt, src: <your transcript path>, role, reviews?} and ${s} The worker then appears on the board with correct lineage.`,u=`Viewer spawn policy: avoid native sub-agent, collaboration, and background-agent features. Spawn every helper through POST ${q} with {engine, model, cwd, prompt, src: <your transcript path>, role, reviews?}. ${s} The worker appears on the board with correct lineage.`,v={plugins:!1,apps:!1,multi_agent:!1};function w(a,b){if(!/^[A-Za-z0-9_-]{1,128}$/.test(b))throw Error("Claude spawn policy profile id is invalid");let c=g().join(a,m,"hooks","deny-native-subagents.sh");return{settingsPath:g().join(a,m,"spawn-settings",`${b}.json`),mcpConfigPath:g().join(a,m,"spawn-mcp",`${b}.json`),hookPath:c,command:`${l}${y(c)}`}}function x(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function y(a){return"'"+a.replace(/'/g,"'\\''")+"'"}function z(a,b,c){e().mkdirSync(g().dirname(a),{recursive:!0,mode:448});let d=g().join(g().dirname(a),`.${g().basename(a)}.${process.pid}.${i().randomUUID()}.tmp`);try{e().writeFileSync(d,b,{mode:c}),e().chmodSync(d,c),e().renameSync(d,a)}finally{e().rmSync(d,{force:!0})}}function A(a){let b;if(!e().existsSync(a))return{};try{b=JSON.parse(e().readFileSync(a,"utf8"))}catch{throw Error(`Claude settings are invalid JSON: ${a}`)}let c=x(b);if(!c)throw Error(`Claude settings must contain a JSON object: ${a}`);return c}function B(a){return Array.isArray(a)?a.filter(a=>"string"==typeof a):[]}function C(a){if(!a)return{};let b=g().resolve(a),c=b;for(let a=b;;a=g().dirname(a)){if(e().existsSync(g().join(a,".git"))){c=a;break}if(g().dirname(a)===a)break}let d=g().join(c,".mcp.json");return e().existsSync(d)?x(A(d).mcpServers)??{}:{}}function D(a,b){let c=g().join(a,".claude.json");try{let a=e().lstatSync(c);if(a.isSymbolicLink()||!a.isFile())throw Error(`Claude state path is unsafe: ${c}`)}catch(a){if("ENOENT"!==a.code)throw a}let d={};if(e().existsSync(c)){let a;try{a=JSON.parse(e().readFileSync(c,"utf8"))}catch{throw Error(`Claude state is invalid JSON: ${c}`)}let b=x(a);if(!b)throw Error(`Claude state must contain a JSON object: ${c}`);d=b}let f=void 0===d.projects?{}:x(d.projects);if(!f)throw Error(`Claude state projects must contain a JSON object: ${c}`);let h=void 0===f[b]?{}:x(f[b]);if(!h)throw Error(`Claude project state must contain a JSON object: ${b}`);z(c,JSON.stringify({...d,hasCompletedOnboarding:!0,bypassPermissionsModeAccepted:!0,projects:{...f,[b]:{...h,hasTrustDialogAccepted:!0,hasCompletedProjectOnboarding:!0}}},null,2)+"\n",384)}function E(a,b={}){let c=g().join(a,"settings.json"),d=w(a,b.profileId??i().randomUUID()),f=e().existsSync(c),h=f?A(c):b.baseSettingsPath?A(b.baseSettingsPath):{},k=f?{}:h;if(!b.allowSubagents&&!0===h.disableAllHooks)throw Error("Claude settings disableAllHooks prevents the Viewer spawn policy from enforcing native sub-agent denial");if(!b.allowSubagents&&!0===h.allowManagedHooksOnly)throw Error("Claude settings allowManagedHooksOnly prevents the Viewer spawn policy from enforcing native sub-agent denial");let m=void 0===h.hooks?{}:x(h.hooks);if(!m)throw Error("Claude settings hooks must contain a JSON object");let o=function(a){if(void 0===a)return[];if(!Array.isArray(a))throw Error("Claude settings hooks.PreToolUse must be an array");return a.flatMap(a=>{let b=x(a);if(!b||!Array.isArray(b.hooks))return[a];let c=b.hooks.filter(a=>{var b;return!("string"==typeof(b=x(a)?.command)&&b.startsWith(l))});return c.length?[{...b,hooks:c}]:[]})}(m.PreToolUse);if(!b.allowSubagents){let a=`#!/bin/sh
2
- printf '%s\\n' ${y(t)} >&2
1
+ "use strict";(()=>{var a={};a.id=944,a.ids=[944,4012],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4012:(a,b,c)=>{c.r(b),c.d(b,{CODEX_VIEWER_SPAWN_FEATURES:()=>v,NATIVE_MULTI_AGENT_HOOK_MATCHER:()=>p,NATIVE_MULTI_AGENT_TOOLS:()=>o,NATIVE_SUBAGENT_DENY_MESSAGE:()=>t,VIEWER_SPAWN_CAPABILITY_ENV:()=>r,VIEWER_SPAWN_CAPABILITY_HEADER:()=>k,VIEWER_SPAWN_ENDPOINT:()=>q,VIEWER_SPAWN_PROMPT_FENCE:()=>u,applyClaudeSpawnPolicy:()=>H,claudeSpawnPolicyPaths:()=>x,fenceViewerSpawnPrompt:()=>I,prepareManagedClaudeSpawnHome:()=>G,resolveClaudeMcpServers:()=>E,viewerMcpRegistered:()=>F,viewerMcpServerEntry:()=>w});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(77598),i=c.n(h),j=c(10230);let k="x-llv-spawn-capability",l="LLV_MANAGED_NATIVE_SUBAGENT_DENY=1 ",m=".llv",n=["enableAllProjectMcpServers","enabledMcpjsonServers","disabledMcpjsonServers"],o=Object.freeze(["Task","Agent","Workflow","TeamCreate","TeamDelete","SendMessage"]),p=o.join("|"),q="http://127.0.0.1:8898/api/spawn",r="LLV_SPAWN_CAPABILITY",s=`Send header ${k}: $${r}.`,t=`Sub-agents are disabled on this surface. Spawn через POST ${q} with {engine, model, cwd, prompt, src: <your transcript path>, role, reviews?} and ${s} The worker then appears on the board with correct lineage.`,u=`Viewer spawn policy: avoid native sub-agent, collaboration, and background-agent features. Spawn every helper through POST ${q} with {engine, model, cwd, prompt, src: <your transcript path>, role, reviews?}. ${s} The worker appears on the board with correct lineage.`,v={plugins:!1,apps:!1,multi_agent:!1};function w(a=process.cwd()){let b=[g().resolve(a,"bin","mcp-server.mjs"),g().resolve(a,"..","..","bin","mcp-server.mjs")].find(a=>e().existsSync(a));if(!b)throw Error(`Viewer MCP launcher could not be resolved from package cwd: ${a}`);return{command:"bun",args:[b]}}function x(a,b){if(!/^[A-Za-z0-9_-]{1,128}$/.test(b))throw Error("Claude spawn policy profile id is invalid");let c=g().join(a,m,"hooks","deny-native-subagents.sh");return{settingsPath:g().join(a,m,"spawn-settings",`${b}.json`),mcpConfigPath:g().join(a,m,"spawn-mcp",`${b}.json`),hookPath:c,command:`${l}${z(c)}`}}function y(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function z(a){return"'"+a.replace(/'/g,"'\\''")+"'"}function A(a,b,c){e().mkdirSync(g().dirname(a),{recursive:!0,mode:448});let d=g().join(g().dirname(a),`.${g().basename(a)}.${process.pid}.${i().randomUUID()}.tmp`);try{e().writeFileSync(d,b,{mode:c}),e().chmodSync(d,c),e().renameSync(d,a)}finally{e().rmSync(d,{force:!0})}}function B(a){let b;if(!e().existsSync(a))return{};try{b=JSON.parse(e().readFileSync(a,"utf8"))}catch{throw Error(`Claude settings are invalid JSON: ${a}`)}let c=y(b);if(!c)throw Error(`Claude settings must contain a JSON object: ${a}`);return c}function C(a){return Array.isArray(a)?a.filter(a=>"string"==typeof a):[]}function D(a){if(!a)return{};let b=g().resolve(a),c=b;for(let a=b;;a=g().dirname(a)){if(e().existsSync(g().join(a,".git"))){c=a;break}if(g().dirname(a)===a)break}let d=g().join(c,".mcp.json");return e().existsSync(d)?y(B(d).mcpServers)??{}:{}}function E(a,b,c=g().join(a,".claude.json")){let d=e().existsSync(c)?B(c):{},f=y(d.mcpServers)??{},h=y(d.projects),i=b&&h?y(h[b]):null,j=D(b),k=y(i?.mcpServers)??{};return{...f,...j,...k}}function F(a,b,c){return null!==y(E(a,b,c).viewer)}function G(a,b){let c=g().join(a,".claude.json");try{let a=e().lstatSync(c);if(a.isSymbolicLink()||!a.isFile())throw Error(`Claude state path is unsafe: ${c}`)}catch(a){if("ENOENT"!==a.code)throw a}let d={};if(e().existsSync(c)){let a;try{a=JSON.parse(e().readFileSync(c,"utf8"))}catch{throw Error(`Claude state is invalid JSON: ${c}`)}let b=y(a);if(!b)throw Error(`Claude state must contain a JSON object: ${c}`);d=b}let f=void 0===d.projects?{}:y(d.projects);if(!f)throw Error(`Claude state projects must contain a JSON object: ${c}`);let h=void 0===f[b]?{}:y(f[b]);if(!h)throw Error(`Claude project state must contain a JSON object: ${b}`);A(c,JSON.stringify({...d,hasCompletedOnboarding:!0,bypassPermissionsModeAccepted:!0,projects:{...f,[b]:{...h,hasTrustDialogAccepted:!0,hasCompletedProjectOnboarding:!0}}},null,2)+"\n",384)}function H(a,b={}){var c,d;let f,h=g().join(a,"settings.json"),k=x(a,b.profileId??i().randomUUID()),m=e().existsSync(h),o=m?B(h):b.baseSettingsPath?B(b.baseSettingsPath):{},q=m?{}:o;if(!b.allowSubagents&&!0===o.disableAllHooks)throw Error("Claude settings disableAllHooks prevents the Viewer spawn policy from enforcing native sub-agent denial");if(!b.allowSubagents&&!0===o.allowManagedHooksOnly)throw Error("Claude settings allowManagedHooksOnly prevents the Viewer spawn policy from enforcing native sub-agent denial");let r=void 0===o.hooks?{}:y(o.hooks);if(!r)throw Error("Claude settings hooks must contain a JSON object");let s=function(a){if(void 0===a)return[];if(!Array.isArray(a))throw Error("Claude settings hooks.PreToolUse must be an array");return a.flatMap(a=>{let b=y(a);if(!b||!Array.isArray(b.hooks))return[a];let c=b.hooks.filter(a=>{var b;return!("string"==typeof(b=y(a)?.command)&&b.startsWith(l))});return c.length?[{...b,hooks:c}]:[]})}(r.PreToolUse);if(!b.allowSubagents){let a=`#!/bin/sh
2
+ printf '%s\\n' ${z(t)} >&2
3
3
  exit 2
4
- `;z(d.hookPath,a,448),o.push({matcher:p,hooks:[{type:"command",command:d.command}]})}let q=b.allowSubagents?k:{...k,disableAllHooks:!1,allowManagedHooksOnly:!1},r=function(a,b,c){if(!e().existsSync(a))return{};let d=A(a),f=x(d.mcpServers)??{},g=x(d.projects),h=b&&g?x(g[b]):null,i=C(b),k=x(h?.mcpServers)??{},l={...f,...i,...k};return Object.fromEntries((0,j.c1)(c).flatMap(a=>{let b=x(l[a]);return b?[[a,b]]:[]}))}(b.mcpStatePath??g().join(a,".claude.json"),b.cwd,b.mcpServers),s=new Set(Object.keys(r)),u=Object.keys(C(b.cwd)).filter(a=>!s.has(a)),v=Object.fromEntries(Object.entries(q).filter(([a])=>"mcpServers"!==a)),D=Object.fromEntries(n.flatMap(a=>void 0===h[a]?[]:[[a,h[a]]]));void 0!==h.enabledMcpjsonServers&&(D.enabledMcpjsonServers=B(h.enabledMcpjsonServers).filter(a=>s.has(a)));let F=[...new Set([...B(h.disabledMcpjsonServers),...u])];return F.length>0&&(D.disabledMcpjsonServers=F),z(d.settingsPath,JSON.stringify({...v,...D,hooks:{...m,PreToolUse:o}},null,2)+"\n",384),z(d.mcpConfigPath,JSON.stringify({mcpServers:r},null,2)+"\n",384),d}function F(a,b){return"codex"!==a?b:[b.trim(),u].filter(Boolean).join("\n\n")}},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16698:a=>{a.exports=require("node:async_hooks")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},84453:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>G,patchFetch:()=>F,routeModule:()=>B,serverHooks:()=>E,workAsyncStorage:()=>C,workUnitAsyncStorage:()=>D});var d={};c.r(d),c.d(d,{GET:()=>A,dynamic:()=>z,runtime:()=>y});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(23211),w=c(78966),x=c(32977);let y="nodejs",z="force-dynamic";async function A(a,b){let{id:c}=await b.params,d=(0,w.Fn)().find(a=>a.id===c);if(!d)return v.NextResponse.json({error:"unknown Claude account"},{status:404});let e="1"===a.nextUrl.searchParams.get("fresh"),f={state:d.authPresent?"authenticated":"signed_out",method:null,email:null,plan:null,checkedAt:null};if(e)try{let a=await x.kR.status((0,w.ob)(c).home);f={state:a.loggedIn?"authenticated":"signed_out",method:a.method,email:a.email,plan:a.plan,checkedAt:new Date().toISOString()}}catch{f={...f,state:"error"}}return v.NextResponse.json({id:d.id,label:d.label,kind:d.kind,auth:f,limits:{state:"unavailable",session:null,weekly:null,checkedAt:null},login:x.s4.forAccount(c)})}let B=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/accounts/claude/[id]/status/route",pathname:"/api/accounts/claude/[id]/status",filename:"route",bundlePath:"app/api/accounts/claude/[id]/status/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/live-log-viewer-next/live-log-viewer-next/src/app/api/accounts/claude/[id]/status/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:D,serverHooks:E}=B;function F(){return(0,g.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:D})}async function G(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),B.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/accounts/claude/[id]/status/route";"/index"===d&&(d="/");let e=await B.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(A.dynamicRoutes[I]||A.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!z){let a=!!A.routes[F],b=A.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||B.isDev||z||(L="/index"===(L=F)?"/":L);let M=!0===B.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await B.getIncrementalCache(a,x,A,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>B.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>B.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await B.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await B.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await B.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}},85786:a=>{a.exports=require("bun:ffi")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,3438,230,8966,1617,3214,4509,2977],()=>b(b.s=84453));module.exports=c})();
4
+ `;A(k.hookPath,a,448),s.push({matcher:p,hooks:[{type:"command",command:k.command}]})}let u=b.allowSubagents?q:{...q,disableAllHooks:!1,allowManagedHooksOnly:!1},v=(c=b.cwd,d=b.mcpServers,f=E(a,c,b.mcpStatePath),Object.fromEntries((0,j.c1)(d).flatMap(a=>{let b=y(f[a])??("viewer"===a?{type:"stdio",...w()}:null);return b?[[a,b]]:[]}))),F=new Set(Object.keys(v)),G=Object.keys(D(b.cwd)).filter(a=>!F.has(a)),I=Object.fromEntries(Object.entries(u).filter(([a])=>"mcpServers"!==a)),J=Object.fromEntries(n.flatMap(a=>void 0===o[a]?[]:[[a,o[a]]]));void 0!==o.enabledMcpjsonServers&&(J.enabledMcpjsonServers=C(o.enabledMcpjsonServers).filter(a=>F.has(a)));let K=[...new Set([...C(o.disabledMcpjsonServers),...G])];return K.length>0&&(J.disabledMcpjsonServers=K),A(k.settingsPath,JSON.stringify({...I,...J,hooks:{...r,PreToolUse:s}},null,2)+"\n",384),A(k.mcpConfigPath,JSON.stringify({mcpServers:v},null,2)+"\n",384),k}function I(a,b){return"codex"!==a?b:[b.trim(),u].filter(Boolean).join("\n\n")}},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16698:a=>{a.exports=require("node:async_hooks")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},84453:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>G,patchFetch:()=>F,routeModule:()=>B,serverHooks:()=>E,workAsyncStorage:()=>C,workUnitAsyncStorage:()=>D});var d={};c.r(d),c.d(d,{GET:()=>A,dynamic:()=>z,runtime:()=>y});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(23211),w=c(78966),x=c(32977);let y="nodejs",z="force-dynamic";async function A(a,b){let{id:c}=await b.params,d=(0,w.Fn)().find(a=>a.id===c);if(!d)return v.NextResponse.json({error:"unknown Claude account"},{status:404});let e="1"===a.nextUrl.searchParams.get("fresh"),f={state:d.authPresent?"authenticated":"signed_out",method:null,email:null,plan:null,checkedAt:null};if(e)try{let a=await x.kR.status((0,w.ob)(c).home);f={state:a.loggedIn?"authenticated":"signed_out",method:a.method,email:a.email,plan:a.plan,checkedAt:new Date().toISOString()}}catch{f={...f,state:"error"}}return v.NextResponse.json({id:d.id,label:d.label,kind:d.kind,auth:f,limits:{state:"unavailable",session:null,weekly:null,checkedAt:null},login:x.s4.forAccount(c)})}let B=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/accounts/claude/[id]/status/route",pathname:"/api/accounts/claude/[id]/status",filename:"route",bundlePath:"app/api/accounts/claude/[id]/status/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/live-log-viewer-next/live-log-viewer-next/src/app/api/accounts/claude/[id]/status/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:D,serverHooks:E}=B;function F(){return(0,g.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:D})}async function G(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),B.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/accounts/claude/[id]/status/route";"/index"===d&&(d="/");let e=await B.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(A.dynamicRoutes[I]||A.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!z){let a=!!A.routes[F],b=A.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||B.isDev||z||(L="/index"===(L=F)?"/":L);let M=!0===B.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await B.getIncrementalCache(a,x,A,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>B.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>B.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await B.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await B.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await B.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}},85786:a=>{a.exports=require("bun:ffi")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,3438,230,8966,1617,3214,4509,2977],()=>b(b.s=84453));module.exports=c})();
@@ -1,4 +1,4 @@
1
- "use strict";(()=>{var a={};a.id=2031,a.ids=[2031,4012],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4012:(a,b,c)=>{c.r(b),c.d(b,{CODEX_VIEWER_SPAWN_FEATURES:()=>v,NATIVE_MULTI_AGENT_HOOK_MATCHER:()=>p,NATIVE_MULTI_AGENT_TOOLS:()=>o,NATIVE_SUBAGENT_DENY_MESSAGE:()=>t,VIEWER_SPAWN_CAPABILITY_ENV:()=>r,VIEWER_SPAWN_CAPABILITY_HEADER:()=>k,VIEWER_SPAWN_ENDPOINT:()=>q,VIEWER_SPAWN_PROMPT_FENCE:()=>u,applyClaudeSpawnPolicy:()=>E,claudeSpawnPolicyPaths:()=>w,fenceViewerSpawnPrompt:()=>F,prepareManagedClaudeSpawnHome:()=>D});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(77598),i=c.n(h),j=c(10230);let k="x-llv-spawn-capability",l="LLV_MANAGED_NATIVE_SUBAGENT_DENY=1 ",m=".llv",n=["enableAllProjectMcpServers","enabledMcpjsonServers","disabledMcpjsonServers"],o=Object.freeze(["Task","Agent","Workflow","TeamCreate","TeamDelete","SendMessage"]),p=o.join("|"),q="http://127.0.0.1:8898/api/spawn",r="LLV_SPAWN_CAPABILITY",s=`Send header ${k}: $${r}.`,t=`Sub-agents are disabled on this surface. Spawn через POST ${q} with {engine, model, cwd, prompt, src: <your transcript path>, role, reviews?} and ${s} The worker then appears on the board with correct lineage.`,u=`Viewer spawn policy: avoid native sub-agent, collaboration, and background-agent features. Spawn every helper through POST ${q} with {engine, model, cwd, prompt, src: <your transcript path>, role, reviews?}. ${s} The worker appears on the board with correct lineage.`,v={plugins:!1,apps:!1,multi_agent:!1};function w(a,b){if(!/^[A-Za-z0-9_-]{1,128}$/.test(b))throw Error("Claude spawn policy profile id is invalid");let c=g().join(a,m,"hooks","deny-native-subagents.sh");return{settingsPath:g().join(a,m,"spawn-settings",`${b}.json`),mcpConfigPath:g().join(a,m,"spawn-mcp",`${b}.json`),hookPath:c,command:`${l}${y(c)}`}}function x(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function y(a){return"'"+a.replace(/'/g,"'\\''")+"'"}function z(a,b,c){e().mkdirSync(g().dirname(a),{recursive:!0,mode:448});let d=g().join(g().dirname(a),`.${g().basename(a)}.${process.pid}.${i().randomUUID()}.tmp`);try{e().writeFileSync(d,b,{mode:c}),e().chmodSync(d,c),e().renameSync(d,a)}finally{e().rmSync(d,{force:!0})}}function A(a){let b;if(!e().existsSync(a))return{};try{b=JSON.parse(e().readFileSync(a,"utf8"))}catch{throw Error(`Claude settings are invalid JSON: ${a}`)}let c=x(b);if(!c)throw Error(`Claude settings must contain a JSON object: ${a}`);return c}function B(a){return Array.isArray(a)?a.filter(a=>"string"==typeof a):[]}function C(a){if(!a)return{};let b=g().resolve(a),c=b;for(let a=b;;a=g().dirname(a)){if(e().existsSync(g().join(a,".git"))){c=a;break}if(g().dirname(a)===a)break}let d=g().join(c,".mcp.json");return e().existsSync(d)?x(A(d).mcpServers)??{}:{}}function D(a,b){let c=g().join(a,".claude.json");try{let a=e().lstatSync(c);if(a.isSymbolicLink()||!a.isFile())throw Error(`Claude state path is unsafe: ${c}`)}catch(a){if("ENOENT"!==a.code)throw a}let d={};if(e().existsSync(c)){let a;try{a=JSON.parse(e().readFileSync(c,"utf8"))}catch{throw Error(`Claude state is invalid JSON: ${c}`)}let b=x(a);if(!b)throw Error(`Claude state must contain a JSON object: ${c}`);d=b}let f=void 0===d.projects?{}:x(d.projects);if(!f)throw Error(`Claude state projects must contain a JSON object: ${c}`);let h=void 0===f[b]?{}:x(f[b]);if(!h)throw Error(`Claude project state must contain a JSON object: ${b}`);z(c,JSON.stringify({...d,hasCompletedOnboarding:!0,bypassPermissionsModeAccepted:!0,projects:{...f,[b]:{...h,hasTrustDialogAccepted:!0,hasCompletedProjectOnboarding:!0}}},null,2)+"\n",384)}function E(a,b={}){let c=g().join(a,"settings.json"),d=w(a,b.profileId??i().randomUUID()),f=e().existsSync(c),h=f?A(c):b.baseSettingsPath?A(b.baseSettingsPath):{},k=f?{}:h;if(!b.allowSubagents&&!0===h.disableAllHooks)throw Error("Claude settings disableAllHooks prevents the Viewer spawn policy from enforcing native sub-agent denial");if(!b.allowSubagents&&!0===h.allowManagedHooksOnly)throw Error("Claude settings allowManagedHooksOnly prevents the Viewer spawn policy from enforcing native sub-agent denial");let m=void 0===h.hooks?{}:x(h.hooks);if(!m)throw Error("Claude settings hooks must contain a JSON object");let o=function(a){if(void 0===a)return[];if(!Array.isArray(a))throw Error("Claude settings hooks.PreToolUse must be an array");return a.flatMap(a=>{let b=x(a);if(!b||!Array.isArray(b.hooks))return[a];let c=b.hooks.filter(a=>{var b;return!("string"==typeof(b=x(a)?.command)&&b.startsWith(l))});return c.length?[{...b,hooks:c}]:[]})}(m.PreToolUse);if(!b.allowSubagents){let a=`#!/bin/sh
2
- printf '%s\\n' ${y(t)} >&2
1
+ "use strict";(()=>{var a={};a.id=2031,a.ids=[2031,4012],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4012:(a,b,c)=>{c.r(b),c.d(b,{CODEX_VIEWER_SPAWN_FEATURES:()=>v,NATIVE_MULTI_AGENT_HOOK_MATCHER:()=>p,NATIVE_MULTI_AGENT_TOOLS:()=>o,NATIVE_SUBAGENT_DENY_MESSAGE:()=>t,VIEWER_SPAWN_CAPABILITY_ENV:()=>r,VIEWER_SPAWN_CAPABILITY_HEADER:()=>k,VIEWER_SPAWN_ENDPOINT:()=>q,VIEWER_SPAWN_PROMPT_FENCE:()=>u,applyClaudeSpawnPolicy:()=>H,claudeSpawnPolicyPaths:()=>x,fenceViewerSpawnPrompt:()=>I,prepareManagedClaudeSpawnHome:()=>G,resolveClaudeMcpServers:()=>E,viewerMcpRegistered:()=>F,viewerMcpServerEntry:()=>w});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(77598),i=c.n(h),j=c(10230);let k="x-llv-spawn-capability",l="LLV_MANAGED_NATIVE_SUBAGENT_DENY=1 ",m=".llv",n=["enableAllProjectMcpServers","enabledMcpjsonServers","disabledMcpjsonServers"],o=Object.freeze(["Task","Agent","Workflow","TeamCreate","TeamDelete","SendMessage"]),p=o.join("|"),q="http://127.0.0.1:8898/api/spawn",r="LLV_SPAWN_CAPABILITY",s=`Send header ${k}: $${r}.`,t=`Sub-agents are disabled on this surface. Spawn через POST ${q} with {engine, model, cwd, prompt, src: <your transcript path>, role, reviews?} and ${s} The worker then appears on the board with correct lineage.`,u=`Viewer spawn policy: avoid native sub-agent, collaboration, and background-agent features. Spawn every helper through POST ${q} with {engine, model, cwd, prompt, src: <your transcript path>, role, reviews?}. ${s} The worker appears on the board with correct lineage.`,v={plugins:!1,apps:!1,multi_agent:!1};function w(a=process.cwd()){let b=[g().resolve(a,"bin","mcp-server.mjs"),g().resolve(a,"..","..","bin","mcp-server.mjs")].find(a=>e().existsSync(a));if(!b)throw Error(`Viewer MCP launcher could not be resolved from package cwd: ${a}`);return{command:"bun",args:[b]}}function x(a,b){if(!/^[A-Za-z0-9_-]{1,128}$/.test(b))throw Error("Claude spawn policy profile id is invalid");let c=g().join(a,m,"hooks","deny-native-subagents.sh");return{settingsPath:g().join(a,m,"spawn-settings",`${b}.json`),mcpConfigPath:g().join(a,m,"spawn-mcp",`${b}.json`),hookPath:c,command:`${l}${z(c)}`}}function y(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function z(a){return"'"+a.replace(/'/g,"'\\''")+"'"}function A(a,b,c){e().mkdirSync(g().dirname(a),{recursive:!0,mode:448});let d=g().join(g().dirname(a),`.${g().basename(a)}.${process.pid}.${i().randomUUID()}.tmp`);try{e().writeFileSync(d,b,{mode:c}),e().chmodSync(d,c),e().renameSync(d,a)}finally{e().rmSync(d,{force:!0})}}function B(a){let b;if(!e().existsSync(a))return{};try{b=JSON.parse(e().readFileSync(a,"utf8"))}catch{throw Error(`Claude settings are invalid JSON: ${a}`)}let c=y(b);if(!c)throw Error(`Claude settings must contain a JSON object: ${a}`);return c}function C(a){return Array.isArray(a)?a.filter(a=>"string"==typeof a):[]}function D(a){if(!a)return{};let b=g().resolve(a),c=b;for(let a=b;;a=g().dirname(a)){if(e().existsSync(g().join(a,".git"))){c=a;break}if(g().dirname(a)===a)break}let d=g().join(c,".mcp.json");return e().existsSync(d)?y(B(d).mcpServers)??{}:{}}function E(a,b,c=g().join(a,".claude.json")){let d=e().existsSync(c)?B(c):{},f=y(d.mcpServers)??{},h=y(d.projects),i=b&&h?y(h[b]):null,j=D(b),k=y(i?.mcpServers)??{};return{...f,...j,...k}}function F(a,b,c){return null!==y(E(a,b,c).viewer)}function G(a,b){let c=g().join(a,".claude.json");try{let a=e().lstatSync(c);if(a.isSymbolicLink()||!a.isFile())throw Error(`Claude state path is unsafe: ${c}`)}catch(a){if("ENOENT"!==a.code)throw a}let d={};if(e().existsSync(c)){let a;try{a=JSON.parse(e().readFileSync(c,"utf8"))}catch{throw Error(`Claude state is invalid JSON: ${c}`)}let b=y(a);if(!b)throw Error(`Claude state must contain a JSON object: ${c}`);d=b}let f=void 0===d.projects?{}:y(d.projects);if(!f)throw Error(`Claude state projects must contain a JSON object: ${c}`);let h=void 0===f[b]?{}:y(f[b]);if(!h)throw Error(`Claude project state must contain a JSON object: ${b}`);A(c,JSON.stringify({...d,hasCompletedOnboarding:!0,bypassPermissionsModeAccepted:!0,projects:{...f,[b]:{...h,hasTrustDialogAccepted:!0,hasCompletedProjectOnboarding:!0}}},null,2)+"\n",384)}function H(a,b={}){var c,d;let f,h=g().join(a,"settings.json"),k=x(a,b.profileId??i().randomUUID()),m=e().existsSync(h),o=m?B(h):b.baseSettingsPath?B(b.baseSettingsPath):{},q=m?{}:o;if(!b.allowSubagents&&!0===o.disableAllHooks)throw Error("Claude settings disableAllHooks prevents the Viewer spawn policy from enforcing native sub-agent denial");if(!b.allowSubagents&&!0===o.allowManagedHooksOnly)throw Error("Claude settings allowManagedHooksOnly prevents the Viewer spawn policy from enforcing native sub-agent denial");let r=void 0===o.hooks?{}:y(o.hooks);if(!r)throw Error("Claude settings hooks must contain a JSON object");let s=function(a){if(void 0===a)return[];if(!Array.isArray(a))throw Error("Claude settings hooks.PreToolUse must be an array");return a.flatMap(a=>{let b=y(a);if(!b||!Array.isArray(b.hooks))return[a];let c=b.hooks.filter(a=>{var b;return!("string"==typeof(b=y(a)?.command)&&b.startsWith(l))});return c.length?[{...b,hooks:c}]:[]})}(r.PreToolUse);if(!b.allowSubagents){let a=`#!/bin/sh
2
+ printf '%s\\n' ${z(t)} >&2
3
3
  exit 2
4
- `;z(d.hookPath,a,448),o.push({matcher:p,hooks:[{type:"command",command:d.command}]})}let q=b.allowSubagents?k:{...k,disableAllHooks:!1,allowManagedHooksOnly:!1},r=function(a,b,c){if(!e().existsSync(a))return{};let d=A(a),f=x(d.mcpServers)??{},g=x(d.projects),h=b&&g?x(g[b]):null,i=C(b),k=x(h?.mcpServers)??{},l={...f,...i,...k};return Object.fromEntries((0,j.c1)(c).flatMap(a=>{let b=x(l[a]);return b?[[a,b]]:[]}))}(b.mcpStatePath??g().join(a,".claude.json"),b.cwd,b.mcpServers),s=new Set(Object.keys(r)),u=Object.keys(C(b.cwd)).filter(a=>!s.has(a)),v=Object.fromEntries(Object.entries(q).filter(([a])=>"mcpServers"!==a)),D=Object.fromEntries(n.flatMap(a=>void 0===h[a]?[]:[[a,h[a]]]));void 0!==h.enabledMcpjsonServers&&(D.enabledMcpjsonServers=B(h.enabledMcpjsonServers).filter(a=>s.has(a)));let F=[...new Set([...B(h.disabledMcpjsonServers),...u])];return F.length>0&&(D.disabledMcpjsonServers=F),z(d.settingsPath,JSON.stringify({...v,...D,hooks:{...m,PreToolUse:o}},null,2)+"\n",384),z(d.mcpConfigPath,JSON.stringify({mcpServers:r},null,2)+"\n",384),d}function F(a,b){return"codex"!==a?b:[b.trim(),u].filter(Boolean).join("\n\n")}},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16698:a=>{a.exports=require("node:async_hooks")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},35961:(a,b,c)=>{c.d(b,{W:()=>g});var d=c(23211);let e=["localhost","127.0.0.1","::1"];function f(a){if(a.startsWith("[")){let b=a.indexOf("]");return -1===b?a:a.slice(1,b)}let b=a.lastIndexOf(":");return -1===b?a:a.slice(0,b)}function g(a){let b=new Set(e),c=process.env.LLV_TS_HOST;c&&b.add(f(c));let d=a.headers.get("host");if(null===d||!b.has(f(d)))return h();let g=a.headers.get("origin");if(null!==g){let a;try{a=new URL(g).host}catch{a=null}if(null===a||!b.has(f(a)))return h()}let i=a.headers.get("sec-fetch-site");return null!==i&&"same-origin"!==i&&"none"!==i?h():null}function h(){return d.NextResponse.json({error:"forbidden: cross-origin request"},{status:403})}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},80627:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>H,patchFetch:()=>G,routeModule:()=>C,serverHooks:()=>F,workAsyncStorage:()=>D,workUnitAsyncStorage:()=>E});var d={};c.r(d),c.d(d,{POST:()=>B,dynamic:()=>A,runtime:()=>z});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(23211),w=c(32977),x=c(22962),y=c(35961);let z="nodejs",A="force-dynamic";async function B(a,b){let c,d=(0,y.W)(a);if(d)return d;try{c=await a.json()}catch{return v.NextResponse.json({error:"invalid JSON"},{status:400})}if("string"!=typeof c.code)return v.NextResponse.json({error:"code must be a string"},{status:400});let e=c.code;try{let{operationId:a}=await b.params;return await (0,x.Cu)(async()=>v.NextResponse.json({login:await w.s4.input(a,e)}))}catch(a){return v.NextResponse.json({error:a instanceof Error?a.message:"could not submit login code"},{status:409})}}let C=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/accounts/claude/login/[operationId]/input/route",pathname:"/api/accounts/claude/login/[operationId]/input",filename:"route",bundlePath:"app/api/accounts/claude/login/[operationId]/input/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/live-log-viewer-next/live-log-viewer-next/src/app/api/accounts/claude/login/[operationId]/input/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:D,workUnitAsyncStorage:E,serverHooks:F}=C;function G(){return(0,g.patchFetch)({workAsyncStorage:D,workUnitAsyncStorage:E})}async function H(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),C.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/accounts/claude/login/[operationId]/input/route";"/index"===d&&(d="/");let e=await C.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(A.dynamicRoutes[I]||A.routes[F]),K=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!z){let a=!!A.routes[F],b=A.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||C.isDev||z||(L="/index"===(L=F)?"/":L);let M=!0===C.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==B?void 0:B.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await C.getIncrementalCache(a,x,A,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>C.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>C.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await C.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,B),b}},k=await C.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await C.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,B),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}},85786:a=>{a.exports=require("bun:ffi")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,3438,230,8966,1617,3214,4509,2977],()=>b(b.s=80627));module.exports=c})();
4
+ `;A(k.hookPath,a,448),s.push({matcher:p,hooks:[{type:"command",command:k.command}]})}let u=b.allowSubagents?q:{...q,disableAllHooks:!1,allowManagedHooksOnly:!1},v=(c=b.cwd,d=b.mcpServers,f=E(a,c,b.mcpStatePath),Object.fromEntries((0,j.c1)(d).flatMap(a=>{let b=y(f[a])??("viewer"===a?{type:"stdio",...w()}:null);return b?[[a,b]]:[]}))),F=new Set(Object.keys(v)),G=Object.keys(D(b.cwd)).filter(a=>!F.has(a)),I=Object.fromEntries(Object.entries(u).filter(([a])=>"mcpServers"!==a)),J=Object.fromEntries(n.flatMap(a=>void 0===o[a]?[]:[[a,o[a]]]));void 0!==o.enabledMcpjsonServers&&(J.enabledMcpjsonServers=C(o.enabledMcpjsonServers).filter(a=>F.has(a)));let K=[...new Set([...C(o.disabledMcpjsonServers),...G])];return K.length>0&&(J.disabledMcpjsonServers=K),A(k.settingsPath,JSON.stringify({...I,...J,hooks:{...r,PreToolUse:s}},null,2)+"\n",384),A(k.mcpConfigPath,JSON.stringify({mcpServers:v},null,2)+"\n",384),k}function I(a,b){return"codex"!==a?b:[b.trim(),u].filter(Boolean).join("\n\n")}},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16698:a=>{a.exports=require("node:async_hooks")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},35961:(a,b,c)=>{c.d(b,{W:()=>g});var d=c(23211);let e=["localhost","127.0.0.1","::1"];function f(a){if(a.startsWith("[")){let b=a.indexOf("]");return -1===b?a:a.slice(1,b)}let b=a.lastIndexOf(":");return -1===b?a:a.slice(0,b)}function g(a){let b=new Set(e),c=process.env.LLV_TS_HOST;c&&b.add(f(c));let d=a.headers.get("host");if(null===d||!b.has(f(d)))return h();let g=a.headers.get("origin");if(null!==g){let a;try{a=new URL(g).host}catch{a=null}if(null===a||!b.has(f(a)))return h()}let i=a.headers.get("sec-fetch-site");return null!==i&&"same-origin"!==i&&"none"!==i?h():null}function h(){return d.NextResponse.json({error:"forbidden: cross-origin request"},{status:403})}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},80627:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>H,patchFetch:()=>G,routeModule:()=>C,serverHooks:()=>F,workAsyncStorage:()=>D,workUnitAsyncStorage:()=>E});var d={};c.r(d),c.d(d,{POST:()=>B,dynamic:()=>A,runtime:()=>z});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(23211),w=c(32977),x=c(22962),y=c(35961);let z="nodejs",A="force-dynamic";async function B(a,b){let c,d=(0,y.W)(a);if(d)return d;try{c=await a.json()}catch{return v.NextResponse.json({error:"invalid JSON"},{status:400})}if("string"!=typeof c.code)return v.NextResponse.json({error:"code must be a string"},{status:400});let e=c.code;try{let{operationId:a}=await b.params;return await (0,x.Cu)(async()=>v.NextResponse.json({login:await w.s4.input(a,e)}))}catch(a){return v.NextResponse.json({error:a instanceof Error?a.message:"could not submit login code"},{status:409})}}let C=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/accounts/claude/login/[operationId]/input/route",pathname:"/api/accounts/claude/login/[operationId]/input",filename:"route",bundlePath:"app/api/accounts/claude/login/[operationId]/input/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/live-log-viewer-next/live-log-viewer-next/src/app/api/accounts/claude/login/[operationId]/input/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:D,workUnitAsyncStorage:E,serverHooks:F}=C;function G(){return(0,g.patchFetch)({workAsyncStorage:D,workUnitAsyncStorage:E})}async function H(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),C.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/accounts/claude/login/[operationId]/input/route";"/index"===d&&(d="/");let e=await C.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(A.dynamicRoutes[I]||A.routes[F]),K=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!z){let a=!!A.routes[F],b=A.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||C.isDev||z||(L="/index"===(L=F)?"/":L);let M=!0===C.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==B?void 0:B.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await C.getIncrementalCache(a,x,A,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>C.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>C.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await C.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,B),b}},k=await C.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await C.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,B),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}},85786:a=>{a.exports=require("bun:ffi")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,3438,230,8966,1617,3214,4509,2977],()=>b(b.s=80627));module.exports=c})();
@@ -1,4 +1,4 @@
1
- "use strict";(()=>{var a={};a.id=8262,a.ids=[4012,8262],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4012:(a,b,c)=>{c.r(b),c.d(b,{CODEX_VIEWER_SPAWN_FEATURES:()=>v,NATIVE_MULTI_AGENT_HOOK_MATCHER:()=>p,NATIVE_MULTI_AGENT_TOOLS:()=>o,NATIVE_SUBAGENT_DENY_MESSAGE:()=>t,VIEWER_SPAWN_CAPABILITY_ENV:()=>r,VIEWER_SPAWN_CAPABILITY_HEADER:()=>k,VIEWER_SPAWN_ENDPOINT:()=>q,VIEWER_SPAWN_PROMPT_FENCE:()=>u,applyClaudeSpawnPolicy:()=>E,claudeSpawnPolicyPaths:()=>w,fenceViewerSpawnPrompt:()=>F,prepareManagedClaudeSpawnHome:()=>D});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(77598),i=c.n(h),j=c(10230);let k="x-llv-spawn-capability",l="LLV_MANAGED_NATIVE_SUBAGENT_DENY=1 ",m=".llv",n=["enableAllProjectMcpServers","enabledMcpjsonServers","disabledMcpjsonServers"],o=Object.freeze(["Task","Agent","Workflow","TeamCreate","TeamDelete","SendMessage"]),p=o.join("|"),q="http://127.0.0.1:8898/api/spawn",r="LLV_SPAWN_CAPABILITY",s=`Send header ${k}: $${r}.`,t=`Sub-agents are disabled on this surface. Spawn через POST ${q} with {engine, model, cwd, prompt, src: <your transcript path>, role, reviews?} and ${s} The worker then appears on the board with correct lineage.`,u=`Viewer spawn policy: avoid native sub-agent, collaboration, and background-agent features. Spawn every helper through POST ${q} with {engine, model, cwd, prompt, src: <your transcript path>, role, reviews?}. ${s} The worker appears on the board with correct lineage.`,v={plugins:!1,apps:!1,multi_agent:!1};function w(a,b){if(!/^[A-Za-z0-9_-]{1,128}$/.test(b))throw Error("Claude spawn policy profile id is invalid");let c=g().join(a,m,"hooks","deny-native-subagents.sh");return{settingsPath:g().join(a,m,"spawn-settings",`${b}.json`),mcpConfigPath:g().join(a,m,"spawn-mcp",`${b}.json`),hookPath:c,command:`${l}${y(c)}`}}function x(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function y(a){return"'"+a.replace(/'/g,"'\\''")+"'"}function z(a,b,c){e().mkdirSync(g().dirname(a),{recursive:!0,mode:448});let d=g().join(g().dirname(a),`.${g().basename(a)}.${process.pid}.${i().randomUUID()}.tmp`);try{e().writeFileSync(d,b,{mode:c}),e().chmodSync(d,c),e().renameSync(d,a)}finally{e().rmSync(d,{force:!0})}}function A(a){let b;if(!e().existsSync(a))return{};try{b=JSON.parse(e().readFileSync(a,"utf8"))}catch{throw Error(`Claude settings are invalid JSON: ${a}`)}let c=x(b);if(!c)throw Error(`Claude settings must contain a JSON object: ${a}`);return c}function B(a){return Array.isArray(a)?a.filter(a=>"string"==typeof a):[]}function C(a){if(!a)return{};let b=g().resolve(a),c=b;for(let a=b;;a=g().dirname(a)){if(e().existsSync(g().join(a,".git"))){c=a;break}if(g().dirname(a)===a)break}let d=g().join(c,".mcp.json");return e().existsSync(d)?x(A(d).mcpServers)??{}:{}}function D(a,b){let c=g().join(a,".claude.json");try{let a=e().lstatSync(c);if(a.isSymbolicLink()||!a.isFile())throw Error(`Claude state path is unsafe: ${c}`)}catch(a){if("ENOENT"!==a.code)throw a}let d={};if(e().existsSync(c)){let a;try{a=JSON.parse(e().readFileSync(c,"utf8"))}catch{throw Error(`Claude state is invalid JSON: ${c}`)}let b=x(a);if(!b)throw Error(`Claude state must contain a JSON object: ${c}`);d=b}let f=void 0===d.projects?{}:x(d.projects);if(!f)throw Error(`Claude state projects must contain a JSON object: ${c}`);let h=void 0===f[b]?{}:x(f[b]);if(!h)throw Error(`Claude project state must contain a JSON object: ${b}`);z(c,JSON.stringify({...d,hasCompletedOnboarding:!0,bypassPermissionsModeAccepted:!0,projects:{...f,[b]:{...h,hasTrustDialogAccepted:!0,hasCompletedProjectOnboarding:!0}}},null,2)+"\n",384)}function E(a,b={}){let c=g().join(a,"settings.json"),d=w(a,b.profileId??i().randomUUID()),f=e().existsSync(c),h=f?A(c):b.baseSettingsPath?A(b.baseSettingsPath):{},k=f?{}:h;if(!b.allowSubagents&&!0===h.disableAllHooks)throw Error("Claude settings disableAllHooks prevents the Viewer spawn policy from enforcing native sub-agent denial");if(!b.allowSubagents&&!0===h.allowManagedHooksOnly)throw Error("Claude settings allowManagedHooksOnly prevents the Viewer spawn policy from enforcing native sub-agent denial");let m=void 0===h.hooks?{}:x(h.hooks);if(!m)throw Error("Claude settings hooks must contain a JSON object");let o=function(a){if(void 0===a)return[];if(!Array.isArray(a))throw Error("Claude settings hooks.PreToolUse must be an array");return a.flatMap(a=>{let b=x(a);if(!b||!Array.isArray(b.hooks))return[a];let c=b.hooks.filter(a=>{var b;return!("string"==typeof(b=x(a)?.command)&&b.startsWith(l))});return c.length?[{...b,hooks:c}]:[]})}(m.PreToolUse);if(!b.allowSubagents){let a=`#!/bin/sh
2
- printf '%s\\n' ${y(t)} >&2
1
+ "use strict";(()=>{var a={};a.id=8262,a.ids=[4012,8262],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4012:(a,b,c)=>{c.r(b),c.d(b,{CODEX_VIEWER_SPAWN_FEATURES:()=>v,NATIVE_MULTI_AGENT_HOOK_MATCHER:()=>p,NATIVE_MULTI_AGENT_TOOLS:()=>o,NATIVE_SUBAGENT_DENY_MESSAGE:()=>t,VIEWER_SPAWN_CAPABILITY_ENV:()=>r,VIEWER_SPAWN_CAPABILITY_HEADER:()=>k,VIEWER_SPAWN_ENDPOINT:()=>q,VIEWER_SPAWN_PROMPT_FENCE:()=>u,applyClaudeSpawnPolicy:()=>H,claudeSpawnPolicyPaths:()=>x,fenceViewerSpawnPrompt:()=>I,prepareManagedClaudeSpawnHome:()=>G,resolveClaudeMcpServers:()=>E,viewerMcpRegistered:()=>F,viewerMcpServerEntry:()=>w});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(77598),i=c.n(h),j=c(10230);let k="x-llv-spawn-capability",l="LLV_MANAGED_NATIVE_SUBAGENT_DENY=1 ",m=".llv",n=["enableAllProjectMcpServers","enabledMcpjsonServers","disabledMcpjsonServers"],o=Object.freeze(["Task","Agent","Workflow","TeamCreate","TeamDelete","SendMessage"]),p=o.join("|"),q="http://127.0.0.1:8898/api/spawn",r="LLV_SPAWN_CAPABILITY",s=`Send header ${k}: $${r}.`,t=`Sub-agents are disabled on this surface. Spawn через POST ${q} with {engine, model, cwd, prompt, src: <your transcript path>, role, reviews?} and ${s} The worker then appears on the board with correct lineage.`,u=`Viewer spawn policy: avoid native sub-agent, collaboration, and background-agent features. Spawn every helper through POST ${q} with {engine, model, cwd, prompt, src: <your transcript path>, role, reviews?}. ${s} The worker appears on the board with correct lineage.`,v={plugins:!1,apps:!1,multi_agent:!1};function w(a=process.cwd()){let b=[g().resolve(a,"bin","mcp-server.mjs"),g().resolve(a,"..","..","bin","mcp-server.mjs")].find(a=>e().existsSync(a));if(!b)throw Error(`Viewer MCP launcher could not be resolved from package cwd: ${a}`);return{command:"bun",args:[b]}}function x(a,b){if(!/^[A-Za-z0-9_-]{1,128}$/.test(b))throw Error("Claude spawn policy profile id is invalid");let c=g().join(a,m,"hooks","deny-native-subagents.sh");return{settingsPath:g().join(a,m,"spawn-settings",`${b}.json`),mcpConfigPath:g().join(a,m,"spawn-mcp",`${b}.json`),hookPath:c,command:`${l}${z(c)}`}}function y(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function z(a){return"'"+a.replace(/'/g,"'\\''")+"'"}function A(a,b,c){e().mkdirSync(g().dirname(a),{recursive:!0,mode:448});let d=g().join(g().dirname(a),`.${g().basename(a)}.${process.pid}.${i().randomUUID()}.tmp`);try{e().writeFileSync(d,b,{mode:c}),e().chmodSync(d,c),e().renameSync(d,a)}finally{e().rmSync(d,{force:!0})}}function B(a){let b;if(!e().existsSync(a))return{};try{b=JSON.parse(e().readFileSync(a,"utf8"))}catch{throw Error(`Claude settings are invalid JSON: ${a}`)}let c=y(b);if(!c)throw Error(`Claude settings must contain a JSON object: ${a}`);return c}function C(a){return Array.isArray(a)?a.filter(a=>"string"==typeof a):[]}function D(a){if(!a)return{};let b=g().resolve(a),c=b;for(let a=b;;a=g().dirname(a)){if(e().existsSync(g().join(a,".git"))){c=a;break}if(g().dirname(a)===a)break}let d=g().join(c,".mcp.json");return e().existsSync(d)?y(B(d).mcpServers)??{}:{}}function E(a,b,c=g().join(a,".claude.json")){let d=e().existsSync(c)?B(c):{},f=y(d.mcpServers)??{},h=y(d.projects),i=b&&h?y(h[b]):null,j=D(b),k=y(i?.mcpServers)??{};return{...f,...j,...k}}function F(a,b,c){return null!==y(E(a,b,c).viewer)}function G(a,b){let c=g().join(a,".claude.json");try{let a=e().lstatSync(c);if(a.isSymbolicLink()||!a.isFile())throw Error(`Claude state path is unsafe: ${c}`)}catch(a){if("ENOENT"!==a.code)throw a}let d={};if(e().existsSync(c)){let a;try{a=JSON.parse(e().readFileSync(c,"utf8"))}catch{throw Error(`Claude state is invalid JSON: ${c}`)}let b=y(a);if(!b)throw Error(`Claude state must contain a JSON object: ${c}`);d=b}let f=void 0===d.projects?{}:y(d.projects);if(!f)throw Error(`Claude state projects must contain a JSON object: ${c}`);let h=void 0===f[b]?{}:y(f[b]);if(!h)throw Error(`Claude project state must contain a JSON object: ${b}`);A(c,JSON.stringify({...d,hasCompletedOnboarding:!0,bypassPermissionsModeAccepted:!0,projects:{...f,[b]:{...h,hasTrustDialogAccepted:!0,hasCompletedProjectOnboarding:!0}}},null,2)+"\n",384)}function H(a,b={}){var c,d;let f,h=g().join(a,"settings.json"),k=x(a,b.profileId??i().randomUUID()),m=e().existsSync(h),o=m?B(h):b.baseSettingsPath?B(b.baseSettingsPath):{},q=m?{}:o;if(!b.allowSubagents&&!0===o.disableAllHooks)throw Error("Claude settings disableAllHooks prevents the Viewer spawn policy from enforcing native sub-agent denial");if(!b.allowSubagents&&!0===o.allowManagedHooksOnly)throw Error("Claude settings allowManagedHooksOnly prevents the Viewer spawn policy from enforcing native sub-agent denial");let r=void 0===o.hooks?{}:y(o.hooks);if(!r)throw Error("Claude settings hooks must contain a JSON object");let s=function(a){if(void 0===a)return[];if(!Array.isArray(a))throw Error("Claude settings hooks.PreToolUse must be an array");return a.flatMap(a=>{let b=y(a);if(!b||!Array.isArray(b.hooks))return[a];let c=b.hooks.filter(a=>{var b;return!("string"==typeof(b=y(a)?.command)&&b.startsWith(l))});return c.length?[{...b,hooks:c}]:[]})}(r.PreToolUse);if(!b.allowSubagents){let a=`#!/bin/sh
2
+ printf '%s\\n' ${z(t)} >&2
3
3
  exit 2
4
- `;z(d.hookPath,a,448),o.push({matcher:p,hooks:[{type:"command",command:d.command}]})}let q=b.allowSubagents?k:{...k,disableAllHooks:!1,allowManagedHooksOnly:!1},r=function(a,b,c){if(!e().existsSync(a))return{};let d=A(a),f=x(d.mcpServers)??{},g=x(d.projects),h=b&&g?x(g[b]):null,i=C(b),k=x(h?.mcpServers)??{},l={...f,...i,...k};return Object.fromEntries((0,j.c1)(c).flatMap(a=>{let b=x(l[a]);return b?[[a,b]]:[]}))}(b.mcpStatePath??g().join(a,".claude.json"),b.cwd,b.mcpServers),s=new Set(Object.keys(r)),u=Object.keys(C(b.cwd)).filter(a=>!s.has(a)),v=Object.fromEntries(Object.entries(q).filter(([a])=>"mcpServers"!==a)),D=Object.fromEntries(n.flatMap(a=>void 0===h[a]?[]:[[a,h[a]]]));void 0!==h.enabledMcpjsonServers&&(D.enabledMcpjsonServers=B(h.enabledMcpjsonServers).filter(a=>s.has(a)));let F=[...new Set([...B(h.disabledMcpjsonServers),...u])];return F.length>0&&(D.disabledMcpjsonServers=F),z(d.settingsPath,JSON.stringify({...v,...D,hooks:{...m,PreToolUse:o}},null,2)+"\n",384),z(d.mcpConfigPath,JSON.stringify({mcpServers:r},null,2)+"\n",384),d}function F(a,b){return"codex"!==a?b:[b.trim(),u].filter(Boolean).join("\n\n")}},8395:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>H,patchFetch:()=>G,routeModule:()=>C,serverHooks:()=>F,workAsyncStorage:()=>D,workUnitAsyncStorage:()=>E});var d={};c.r(d),c.d(d,{DELETE:()=>B,dynamic:()=>A,runtime:()=>z});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(23211),w=c(32977),x=c(22962),y=c(35961);let z="nodejs",A="force-dynamic";async function B(a,b){let c=(0,y.W)(a);if(c)return c;try{let{operationId:a}=await b.params;return await (0,x.Cu)(async()=>v.NextResponse.json({login:await w.s4.cancel(a)}))}catch(a){return v.NextResponse.json({error:a instanceof Error?a.message:"could not cancel login"},{status:404})}}let C=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/accounts/claude/login/[operationId]/route",pathname:"/api/accounts/claude/login/[operationId]",filename:"route",bundlePath:"app/api/accounts/claude/login/[operationId]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/live-log-viewer-next/live-log-viewer-next/src/app/api/accounts/claude/login/[operationId]/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:D,workUnitAsyncStorage:E,serverHooks:F}=C;function G(){return(0,g.patchFetch)({workAsyncStorage:D,workUnitAsyncStorage:E})}async function H(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),C.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/accounts/claude/login/[operationId]/route";"/index"===d&&(d="/");let e=await C.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(A.dynamicRoutes[I]||A.routes[F]),K=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!z){let a=!!A.routes[F],b=A.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||C.isDev||z||(L="/index"===(L=F)?"/":L);let M=!0===C.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==B?void 0:B.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await C.getIncrementalCache(a,x,A,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>C.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>C.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await C.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,B),b}},k=await C.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await C.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,B),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16698:a=>{a.exports=require("node:async_hooks")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},35961:(a,b,c)=>{c.d(b,{W:()=>g});var d=c(23211);let e=["localhost","127.0.0.1","::1"];function f(a){if(a.startsWith("[")){let b=a.indexOf("]");return -1===b?a:a.slice(1,b)}let b=a.lastIndexOf(":");return -1===b?a:a.slice(0,b)}function g(a){let b=new Set(e),c=process.env.LLV_TS_HOST;c&&b.add(f(c));let d=a.headers.get("host");if(null===d||!b.has(f(d)))return h();let g=a.headers.get("origin");if(null!==g){let a;try{a=new URL(g).host}catch{a=null}if(null===a||!b.has(f(a)))return h()}let i=a.headers.get("sec-fetch-site");return null!==i&&"same-origin"!==i&&"none"!==i?h():null}function h(){return d.NextResponse.json({error:"forbidden: cross-origin request"},{status:403})}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},85786:a=>{a.exports=require("bun:ffi")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,3438,230,8966,1617,3214,4509,2977],()=>b(b.s=8395));module.exports=c})();
4
+ `;A(k.hookPath,a,448),s.push({matcher:p,hooks:[{type:"command",command:k.command}]})}let u=b.allowSubagents?q:{...q,disableAllHooks:!1,allowManagedHooksOnly:!1},v=(c=b.cwd,d=b.mcpServers,f=E(a,c,b.mcpStatePath),Object.fromEntries((0,j.c1)(d).flatMap(a=>{let b=y(f[a])??("viewer"===a?{type:"stdio",...w()}:null);return b?[[a,b]]:[]}))),F=new Set(Object.keys(v)),G=Object.keys(D(b.cwd)).filter(a=>!F.has(a)),I=Object.fromEntries(Object.entries(u).filter(([a])=>"mcpServers"!==a)),J=Object.fromEntries(n.flatMap(a=>void 0===o[a]?[]:[[a,o[a]]]));void 0!==o.enabledMcpjsonServers&&(J.enabledMcpjsonServers=C(o.enabledMcpjsonServers).filter(a=>F.has(a)));let K=[...new Set([...C(o.disabledMcpjsonServers),...G])];return K.length>0&&(J.disabledMcpjsonServers=K),A(k.settingsPath,JSON.stringify({...I,...J,hooks:{...r,PreToolUse:s}},null,2)+"\n",384),A(k.mcpConfigPath,JSON.stringify({mcpServers:v},null,2)+"\n",384),k}function I(a,b){return"codex"!==a?b:[b.trim(),u].filter(Boolean).join("\n\n")}},8395:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>H,patchFetch:()=>G,routeModule:()=>C,serverHooks:()=>F,workAsyncStorage:()=>D,workUnitAsyncStorage:()=>E});var d={};c.r(d),c.d(d,{DELETE:()=>B,dynamic:()=>A,runtime:()=>z});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(23211),w=c(32977),x=c(22962),y=c(35961);let z="nodejs",A="force-dynamic";async function B(a,b){let c=(0,y.W)(a);if(c)return c;try{let{operationId:a}=await b.params;return await (0,x.Cu)(async()=>v.NextResponse.json({login:await w.s4.cancel(a)}))}catch(a){return v.NextResponse.json({error:a instanceof Error?a.message:"could not cancel login"},{status:404})}}let C=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/accounts/claude/login/[operationId]/route",pathname:"/api/accounts/claude/login/[operationId]",filename:"route",bundlePath:"app/api/accounts/claude/login/[operationId]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/live-log-viewer-next/live-log-viewer-next/src/app/api/accounts/claude/login/[operationId]/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:D,workUnitAsyncStorage:E,serverHooks:F}=C;function G(){return(0,g.patchFetch)({workAsyncStorage:D,workUnitAsyncStorage:E})}async function H(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),C.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/accounts/claude/login/[operationId]/route";"/index"===d&&(d="/");let e=await C.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(A.dynamicRoutes[I]||A.routes[F]),K=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!z){let a=!!A.routes[F],b=A.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||C.isDev||z||(L="/index"===(L=F)?"/":L);let M=!0===C.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==B?void 0:B.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await C.getIncrementalCache(a,x,A,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>C.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>C.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await C.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,B),b}},k=await C.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await C.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,B),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16698:a=>{a.exports=require("node:async_hooks")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},35961:(a,b,c)=>{c.d(b,{W:()=>g});var d=c(23211);let e=["localhost","127.0.0.1","::1"];function f(a){if(a.startsWith("[")){let b=a.indexOf("]");return -1===b?a:a.slice(1,b)}let b=a.lastIndexOf(":");return -1===b?a:a.slice(0,b)}function g(a){let b=new Set(e),c=process.env.LLV_TS_HOST;c&&b.add(f(c));let d=a.headers.get("host");if(null===d||!b.has(f(d)))return h();let g=a.headers.get("origin");if(null!==g){let a;try{a=new URL(g).host}catch{a=null}if(null===a||!b.has(f(a)))return h()}let i=a.headers.get("sec-fetch-site");return null!==i&&"same-origin"!==i&&"none"!==i?h():null}function h(){return d.NextResponse.json({error:"forbidden: cross-origin request"},{status:403})}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},85786:a=>{a.exports=require("bun:ffi")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,3438,230,8966,1617,3214,4509,2977],()=>b(b.s=8395));module.exports=c})();
@@ -1,4 +1,4 @@
1
- "use strict";(()=>{var a={};a.id=4082,a.ids=[4012,4082],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4012:(a,b,c)=>{c.r(b),c.d(b,{CODEX_VIEWER_SPAWN_FEATURES:()=>v,NATIVE_MULTI_AGENT_HOOK_MATCHER:()=>p,NATIVE_MULTI_AGENT_TOOLS:()=>o,NATIVE_SUBAGENT_DENY_MESSAGE:()=>t,VIEWER_SPAWN_CAPABILITY_ENV:()=>r,VIEWER_SPAWN_CAPABILITY_HEADER:()=>k,VIEWER_SPAWN_ENDPOINT:()=>q,VIEWER_SPAWN_PROMPT_FENCE:()=>u,applyClaudeSpawnPolicy:()=>E,claudeSpawnPolicyPaths:()=>w,fenceViewerSpawnPrompt:()=>F,prepareManagedClaudeSpawnHome:()=>D});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(77598),i=c.n(h),j=c(10230);let k="x-llv-spawn-capability",l="LLV_MANAGED_NATIVE_SUBAGENT_DENY=1 ",m=".llv",n=["enableAllProjectMcpServers","enabledMcpjsonServers","disabledMcpjsonServers"],o=Object.freeze(["Task","Agent","Workflow","TeamCreate","TeamDelete","SendMessage"]),p=o.join("|"),q="http://127.0.0.1:8898/api/spawn",r="LLV_SPAWN_CAPABILITY",s=`Send header ${k}: $${r}.`,t=`Sub-agents are disabled on this surface. Spawn через POST ${q} with {engine, model, cwd, prompt, src: <your transcript path>, role, reviews?} and ${s} The worker then appears on the board with correct lineage.`,u=`Viewer spawn policy: avoid native sub-agent, collaboration, and background-agent features. Spawn every helper through POST ${q} with {engine, model, cwd, prompt, src: <your transcript path>, role, reviews?}. ${s} The worker appears on the board with correct lineage.`,v={plugins:!1,apps:!1,multi_agent:!1};function w(a,b){if(!/^[A-Za-z0-9_-]{1,128}$/.test(b))throw Error("Claude spawn policy profile id is invalid");let c=g().join(a,m,"hooks","deny-native-subagents.sh");return{settingsPath:g().join(a,m,"spawn-settings",`${b}.json`),mcpConfigPath:g().join(a,m,"spawn-mcp",`${b}.json`),hookPath:c,command:`${l}${y(c)}`}}function x(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function y(a){return"'"+a.replace(/'/g,"'\\''")+"'"}function z(a,b,c){e().mkdirSync(g().dirname(a),{recursive:!0,mode:448});let d=g().join(g().dirname(a),`.${g().basename(a)}.${process.pid}.${i().randomUUID()}.tmp`);try{e().writeFileSync(d,b,{mode:c}),e().chmodSync(d,c),e().renameSync(d,a)}finally{e().rmSync(d,{force:!0})}}function A(a){let b;if(!e().existsSync(a))return{};try{b=JSON.parse(e().readFileSync(a,"utf8"))}catch{throw Error(`Claude settings are invalid JSON: ${a}`)}let c=x(b);if(!c)throw Error(`Claude settings must contain a JSON object: ${a}`);return c}function B(a){return Array.isArray(a)?a.filter(a=>"string"==typeof a):[]}function C(a){if(!a)return{};let b=g().resolve(a),c=b;for(let a=b;;a=g().dirname(a)){if(e().existsSync(g().join(a,".git"))){c=a;break}if(g().dirname(a)===a)break}let d=g().join(c,".mcp.json");return e().existsSync(d)?x(A(d).mcpServers)??{}:{}}function D(a,b){let c=g().join(a,".claude.json");try{let a=e().lstatSync(c);if(a.isSymbolicLink()||!a.isFile())throw Error(`Claude state path is unsafe: ${c}`)}catch(a){if("ENOENT"!==a.code)throw a}let d={};if(e().existsSync(c)){let a;try{a=JSON.parse(e().readFileSync(c,"utf8"))}catch{throw Error(`Claude state is invalid JSON: ${c}`)}let b=x(a);if(!b)throw Error(`Claude state must contain a JSON object: ${c}`);d=b}let f=void 0===d.projects?{}:x(d.projects);if(!f)throw Error(`Claude state projects must contain a JSON object: ${c}`);let h=void 0===f[b]?{}:x(f[b]);if(!h)throw Error(`Claude project state must contain a JSON object: ${b}`);z(c,JSON.stringify({...d,hasCompletedOnboarding:!0,bypassPermissionsModeAccepted:!0,projects:{...f,[b]:{...h,hasTrustDialogAccepted:!0,hasCompletedProjectOnboarding:!0}}},null,2)+"\n",384)}function E(a,b={}){let c=g().join(a,"settings.json"),d=w(a,b.profileId??i().randomUUID()),f=e().existsSync(c),h=f?A(c):b.baseSettingsPath?A(b.baseSettingsPath):{},k=f?{}:h;if(!b.allowSubagents&&!0===h.disableAllHooks)throw Error("Claude settings disableAllHooks prevents the Viewer spawn policy from enforcing native sub-agent denial");if(!b.allowSubagents&&!0===h.allowManagedHooksOnly)throw Error("Claude settings allowManagedHooksOnly prevents the Viewer spawn policy from enforcing native sub-agent denial");let m=void 0===h.hooks?{}:x(h.hooks);if(!m)throw Error("Claude settings hooks must contain a JSON object");let o=function(a){if(void 0===a)return[];if(!Array.isArray(a))throw Error("Claude settings hooks.PreToolUse must be an array");return a.flatMap(a=>{let b=x(a);if(!b||!Array.isArray(b.hooks))return[a];let c=b.hooks.filter(a=>{var b;return!("string"==typeof(b=x(a)?.command)&&b.startsWith(l))});return c.length?[{...b,hooks:c}]:[]})}(m.PreToolUse);if(!b.allowSubagents){let a=`#!/bin/sh
2
- printf '%s\\n' ${y(t)} >&2
1
+ "use strict";(()=>{var a={};a.id=4082,a.ids=[4012,4082],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4012:(a,b,c)=>{c.r(b),c.d(b,{CODEX_VIEWER_SPAWN_FEATURES:()=>v,NATIVE_MULTI_AGENT_HOOK_MATCHER:()=>p,NATIVE_MULTI_AGENT_TOOLS:()=>o,NATIVE_SUBAGENT_DENY_MESSAGE:()=>t,VIEWER_SPAWN_CAPABILITY_ENV:()=>r,VIEWER_SPAWN_CAPABILITY_HEADER:()=>k,VIEWER_SPAWN_ENDPOINT:()=>q,VIEWER_SPAWN_PROMPT_FENCE:()=>u,applyClaudeSpawnPolicy:()=>H,claudeSpawnPolicyPaths:()=>x,fenceViewerSpawnPrompt:()=>I,prepareManagedClaudeSpawnHome:()=>G,resolveClaudeMcpServers:()=>E,viewerMcpRegistered:()=>F,viewerMcpServerEntry:()=>w});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(77598),i=c.n(h),j=c(10230);let k="x-llv-spawn-capability",l="LLV_MANAGED_NATIVE_SUBAGENT_DENY=1 ",m=".llv",n=["enableAllProjectMcpServers","enabledMcpjsonServers","disabledMcpjsonServers"],o=Object.freeze(["Task","Agent","Workflow","TeamCreate","TeamDelete","SendMessage"]),p=o.join("|"),q="http://127.0.0.1:8898/api/spawn",r="LLV_SPAWN_CAPABILITY",s=`Send header ${k}: $${r}.`,t=`Sub-agents are disabled on this surface. Spawn через POST ${q} with {engine, model, cwd, prompt, src: <your transcript path>, role, reviews?} and ${s} The worker then appears on the board with correct lineage.`,u=`Viewer spawn policy: avoid native sub-agent, collaboration, and background-agent features. Spawn every helper through POST ${q} with {engine, model, cwd, prompt, src: <your transcript path>, role, reviews?}. ${s} The worker appears on the board with correct lineage.`,v={plugins:!1,apps:!1,multi_agent:!1};function w(a=process.cwd()){let b=[g().resolve(a,"bin","mcp-server.mjs"),g().resolve(a,"..","..","bin","mcp-server.mjs")].find(a=>e().existsSync(a));if(!b)throw Error(`Viewer MCP launcher could not be resolved from package cwd: ${a}`);return{command:"bun",args:[b]}}function x(a,b){if(!/^[A-Za-z0-9_-]{1,128}$/.test(b))throw Error("Claude spawn policy profile id is invalid");let c=g().join(a,m,"hooks","deny-native-subagents.sh");return{settingsPath:g().join(a,m,"spawn-settings",`${b}.json`),mcpConfigPath:g().join(a,m,"spawn-mcp",`${b}.json`),hookPath:c,command:`${l}${z(c)}`}}function y(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function z(a){return"'"+a.replace(/'/g,"'\\''")+"'"}function A(a,b,c){e().mkdirSync(g().dirname(a),{recursive:!0,mode:448});let d=g().join(g().dirname(a),`.${g().basename(a)}.${process.pid}.${i().randomUUID()}.tmp`);try{e().writeFileSync(d,b,{mode:c}),e().chmodSync(d,c),e().renameSync(d,a)}finally{e().rmSync(d,{force:!0})}}function B(a){let b;if(!e().existsSync(a))return{};try{b=JSON.parse(e().readFileSync(a,"utf8"))}catch{throw Error(`Claude settings are invalid JSON: ${a}`)}let c=y(b);if(!c)throw Error(`Claude settings must contain a JSON object: ${a}`);return c}function C(a){return Array.isArray(a)?a.filter(a=>"string"==typeof a):[]}function D(a){if(!a)return{};let b=g().resolve(a),c=b;for(let a=b;;a=g().dirname(a)){if(e().existsSync(g().join(a,".git"))){c=a;break}if(g().dirname(a)===a)break}let d=g().join(c,".mcp.json");return e().existsSync(d)?y(B(d).mcpServers)??{}:{}}function E(a,b,c=g().join(a,".claude.json")){let d=e().existsSync(c)?B(c):{},f=y(d.mcpServers)??{},h=y(d.projects),i=b&&h?y(h[b]):null,j=D(b),k=y(i?.mcpServers)??{};return{...f,...j,...k}}function F(a,b,c){return null!==y(E(a,b,c).viewer)}function G(a,b){let c=g().join(a,".claude.json");try{let a=e().lstatSync(c);if(a.isSymbolicLink()||!a.isFile())throw Error(`Claude state path is unsafe: ${c}`)}catch(a){if("ENOENT"!==a.code)throw a}let d={};if(e().existsSync(c)){let a;try{a=JSON.parse(e().readFileSync(c,"utf8"))}catch{throw Error(`Claude state is invalid JSON: ${c}`)}let b=y(a);if(!b)throw Error(`Claude state must contain a JSON object: ${c}`);d=b}let f=void 0===d.projects?{}:y(d.projects);if(!f)throw Error(`Claude state projects must contain a JSON object: ${c}`);let h=void 0===f[b]?{}:y(f[b]);if(!h)throw Error(`Claude project state must contain a JSON object: ${b}`);A(c,JSON.stringify({...d,hasCompletedOnboarding:!0,bypassPermissionsModeAccepted:!0,projects:{...f,[b]:{...h,hasTrustDialogAccepted:!0,hasCompletedProjectOnboarding:!0}}},null,2)+"\n",384)}function H(a,b={}){var c,d;let f,h=g().join(a,"settings.json"),k=x(a,b.profileId??i().randomUUID()),m=e().existsSync(h),o=m?B(h):b.baseSettingsPath?B(b.baseSettingsPath):{},q=m?{}:o;if(!b.allowSubagents&&!0===o.disableAllHooks)throw Error("Claude settings disableAllHooks prevents the Viewer spawn policy from enforcing native sub-agent denial");if(!b.allowSubagents&&!0===o.allowManagedHooksOnly)throw Error("Claude settings allowManagedHooksOnly prevents the Viewer spawn policy from enforcing native sub-agent denial");let r=void 0===o.hooks?{}:y(o.hooks);if(!r)throw Error("Claude settings hooks must contain a JSON object");let s=function(a){if(void 0===a)return[];if(!Array.isArray(a))throw Error("Claude settings hooks.PreToolUse must be an array");return a.flatMap(a=>{let b=y(a);if(!b||!Array.isArray(b.hooks))return[a];let c=b.hooks.filter(a=>{var b;return!("string"==typeof(b=y(a)?.command)&&b.startsWith(l))});return c.length?[{...b,hooks:c}]:[]})}(r.PreToolUse);if(!b.allowSubagents){let a=`#!/bin/sh
2
+ printf '%s\\n' ${z(t)} >&2
3
3
  exit 2
4
- `;z(d.hookPath,a,448),o.push({matcher:p,hooks:[{type:"command",command:d.command}]})}let q=b.allowSubagents?k:{...k,disableAllHooks:!1,allowManagedHooksOnly:!1},r=function(a,b,c){if(!e().existsSync(a))return{};let d=A(a),f=x(d.mcpServers)??{},g=x(d.projects),h=b&&g?x(g[b]):null,i=C(b),k=x(h?.mcpServers)??{},l={...f,...i,...k};return Object.fromEntries((0,j.c1)(c).flatMap(a=>{let b=x(l[a]);return b?[[a,b]]:[]}))}(b.mcpStatePath??g().join(a,".claude.json"),b.cwd,b.mcpServers),s=new Set(Object.keys(r)),u=Object.keys(C(b.cwd)).filter(a=>!s.has(a)),v=Object.fromEntries(Object.entries(q).filter(([a])=>"mcpServers"!==a)),D=Object.fromEntries(n.flatMap(a=>void 0===h[a]?[]:[[a,h[a]]]));void 0!==h.enabledMcpjsonServers&&(D.enabledMcpjsonServers=B(h.enabledMcpjsonServers).filter(a=>s.has(a)));let F=[...new Set([...B(h.disabledMcpjsonServers),...u])];return F.length>0&&(D.disabledMcpjsonServers=F),z(d.settingsPath,JSON.stringify({...v,...D,hooks:{...m,PreToolUse:o}},null,2)+"\n",384),z(d.mcpConfigPath,JSON.stringify({mcpServers:r},null,2)+"\n",384),d}function F(a,b){return"codex"!==a?b:[b.trim(),u].filter(Boolean).join("\n\n")}},7579:(a,b,c)=>{c.d(b,{$:()=>h,AV:()=>g});var d=c(14509),e=c(78966),f=c(41617);class g extends Error{constructor(a,b){super(b),this.status=a,this.name="TerminalAccountUnavailableError"}}function h(a,b){let c=("claude"===a?(0,e.Fn)():(0,f.Sq)()).find(a=>a.id===b);if(!c)throw new g(404,`unknown ${a} account: ${b}`);if(!c.authPresent)throw new g(409,`${a} account requires authentication`);return{command:function(a,b){if("claude"===a)return"managed"===b.kind?`${(0,d.id)(b.home)} claude`:"claude";let c="managed"===b.kind?" -c cli_auth_credentials_store=file":"";return`env -u LLV_TOKEN CODEX_HOME=${"'"+b.home.replace(/'/g,"'\\''")+"'"} codex${c}`}(a,c)}}},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16698:a=>{a.exports=require("node:async_hooks")},27223:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>G,patchFetch:()=>F,routeModule:()=>B,serverHooks:()=>E,workAsyncStorage:()=>C,workUnitAsyncStorage:()=>D});var d={};c.r(d),c.d(d,{POST:()=>A,dynamic:()=>z,runtime:()=>y});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(23211),w=c(7579),x=c(35961);let y="nodejs",z="force-dynamic";async function A(a){let b,c=(0,x.W)(a);if(c)return c;try{b=await a.json()}catch{return v.NextResponse.json({error:"invalid JSON"},{status:400})}if("string"!=typeof b.id)return v.NextResponse.json({error:"id must be a string"},{status:400});try{return v.NextResponse.json({ok:!0,...(0,w.$)("claude",b.id)})}catch(b){if(b instanceof w.AV)return v.NextResponse.json({error:b.message},{status:b.status});console.error("[accounts] claude terminal command failed:",b);let a=b instanceof Error?b.message:String(b);return v.NextResponse.json({error:"Claude terminal command failed",detail:a},{status:500})}}let B=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/accounts/claude/terminal/route",pathname:"/api/accounts/claude/terminal",filename:"route",bundlePath:"app/api/accounts/claude/terminal/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/live-log-viewer-next/live-log-viewer-next/src/app/api/accounts/claude/terminal/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:D,serverHooks:E}=B;function F(){return(0,g.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:D})}async function G(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),B.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/accounts/claude/terminal/route";"/index"===d&&(d="/");let e=await B.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(A.dynamicRoutes[I]||A.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!z){let a=!!A.routes[F],b=A.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||B.isDev||z||(L="/index"===(L=F)?"/":L);let M=!0===B.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await B.getIncrementalCache(a,x,A,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>B.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>B.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await B.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await B.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await B.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},35961:(a,b,c)=>{c.d(b,{W:()=>g});var d=c(23211);let e=["localhost","127.0.0.1","::1"];function f(a){if(a.startsWith("[")){let b=a.indexOf("]");return -1===b?a:a.slice(1,b)}let b=a.lastIndexOf(":");return -1===b?a:a.slice(0,b)}function g(a){let b=new Set(e),c=process.env.LLV_TS_HOST;c&&b.add(f(c));let d=a.headers.get("host");if(null===d||!b.has(f(d)))return h();let g=a.headers.get("origin");if(null!==g){let a;try{a=new URL(g).host}catch{a=null}if(null===a||!b.has(f(a)))return h()}let i=a.headers.get("sec-fetch-site");return null!==i&&"same-origin"!==i&&"none"!==i?h():null}function h(){return d.NextResponse.json({error:"forbidden: cross-origin request"},{status:403})}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},85786:a=>{a.exports=require("bun:ffi")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,3438,230,8966,1617,3214,4509],()=>b(b.s=27223));module.exports=c})();
4
+ `;A(k.hookPath,a,448),s.push({matcher:p,hooks:[{type:"command",command:k.command}]})}let u=b.allowSubagents?q:{...q,disableAllHooks:!1,allowManagedHooksOnly:!1},v=(c=b.cwd,d=b.mcpServers,f=E(a,c,b.mcpStatePath),Object.fromEntries((0,j.c1)(d).flatMap(a=>{let b=y(f[a])??("viewer"===a?{type:"stdio",...w()}:null);return b?[[a,b]]:[]}))),F=new Set(Object.keys(v)),G=Object.keys(D(b.cwd)).filter(a=>!F.has(a)),I=Object.fromEntries(Object.entries(u).filter(([a])=>"mcpServers"!==a)),J=Object.fromEntries(n.flatMap(a=>void 0===o[a]?[]:[[a,o[a]]]));void 0!==o.enabledMcpjsonServers&&(J.enabledMcpjsonServers=C(o.enabledMcpjsonServers).filter(a=>F.has(a)));let K=[...new Set([...C(o.disabledMcpjsonServers),...G])];return K.length>0&&(J.disabledMcpjsonServers=K),A(k.settingsPath,JSON.stringify({...I,...J,hooks:{...r,PreToolUse:s}},null,2)+"\n",384),A(k.mcpConfigPath,JSON.stringify({mcpServers:v},null,2)+"\n",384),k}function I(a,b){return"codex"!==a?b:[b.trim(),u].filter(Boolean).join("\n\n")}},7579:(a,b,c)=>{c.d(b,{$:()=>h,AV:()=>g});var d=c(14509),e=c(78966),f=c(41617);class g extends Error{constructor(a,b){super(b),this.status=a,this.name="TerminalAccountUnavailableError"}}function h(a,b){let c=("claude"===a?(0,e.Fn)():(0,f.Sq)()).find(a=>a.id===b);if(!c)throw new g(404,`unknown ${a} account: ${b}`);if(!c.authPresent)throw new g(409,`${a} account requires authentication`);return{command:function(a,b){if("claude"===a)return"managed"===b.kind?`${(0,d.id)(b.home)} claude`:"claude";let c="managed"===b.kind?" -c cli_auth_credentials_store=file":"";return`env -u LLV_TOKEN CODEX_HOME=${"'"+b.home.replace(/'/g,"'\\''")+"'"} codex${c}`}(a,c)}}},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16698:a=>{a.exports=require("node:async_hooks")},27223:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>G,patchFetch:()=>F,routeModule:()=>B,serverHooks:()=>E,workAsyncStorage:()=>C,workUnitAsyncStorage:()=>D});var d={};c.r(d),c.d(d,{POST:()=>A,dynamic:()=>z,runtime:()=>y});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(23211),w=c(7579),x=c(35961);let y="nodejs",z="force-dynamic";async function A(a){let b,c=(0,x.W)(a);if(c)return c;try{b=await a.json()}catch{return v.NextResponse.json({error:"invalid JSON"},{status:400})}if("string"!=typeof b.id)return v.NextResponse.json({error:"id must be a string"},{status:400});try{return v.NextResponse.json({ok:!0,...(0,w.$)("claude",b.id)})}catch(b){if(b instanceof w.AV)return v.NextResponse.json({error:b.message},{status:b.status});console.error("[accounts] claude terminal command failed:",b);let a=b instanceof Error?b.message:String(b);return v.NextResponse.json({error:"Claude terminal command failed",detail:a},{status:500})}}let B=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/accounts/claude/terminal/route",pathname:"/api/accounts/claude/terminal",filename:"route",bundlePath:"app/api/accounts/claude/terminal/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/live-log-viewer-next/live-log-viewer-next/src/app/api/accounts/claude/terminal/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:D,serverHooks:E}=B;function F(){return(0,g.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:D})}async function G(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),B.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/accounts/claude/terminal/route";"/index"===d&&(d="/");let e=await B.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(A.dynamicRoutes[I]||A.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!z){let a=!!A.routes[F],b=A.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||B.isDev||z||(L="/index"===(L=F)?"/":L);let M=!0===B.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await B.getIncrementalCache(a,x,A,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>B.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>B.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await B.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await B.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await B.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},35961:(a,b,c)=>{c.d(b,{W:()=>g});var d=c(23211);let e=["localhost","127.0.0.1","::1"];function f(a){if(a.startsWith("[")){let b=a.indexOf("]");return -1===b?a:a.slice(1,b)}let b=a.lastIndexOf(":");return -1===b?a:a.slice(0,b)}function g(a){let b=new Set(e),c=process.env.LLV_TS_HOST;c&&b.add(f(c));let d=a.headers.get("host");if(null===d||!b.has(f(d)))return h();let g=a.headers.get("origin");if(null!==g){let a;try{a=new URL(g).host}catch{a=null}if(null===a||!b.has(f(a)))return h()}let i=a.headers.get("sec-fetch-site");return null!==i&&"same-origin"!==i&&"none"!==i?h():null}function h(){return d.NextResponse.json({error:"forbidden: cross-origin request"},{status:403})}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},85786:a=>{a.exports=require("bun:ffi")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,3438,230,8966,1617,3214,4509],()=>b(b.s=27223));module.exports=c})();
@@ -1,4 +1,4 @@
1
- "use strict";(()=>{var a={};a.id=1125,a.ids=[1125,4012],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4012:(a,b,c)=>{c.r(b),c.d(b,{CODEX_VIEWER_SPAWN_FEATURES:()=>v,NATIVE_MULTI_AGENT_HOOK_MATCHER:()=>p,NATIVE_MULTI_AGENT_TOOLS:()=>o,NATIVE_SUBAGENT_DENY_MESSAGE:()=>t,VIEWER_SPAWN_CAPABILITY_ENV:()=>r,VIEWER_SPAWN_CAPABILITY_HEADER:()=>k,VIEWER_SPAWN_ENDPOINT:()=>q,VIEWER_SPAWN_PROMPT_FENCE:()=>u,applyClaudeSpawnPolicy:()=>E,claudeSpawnPolicyPaths:()=>w,fenceViewerSpawnPrompt:()=>F,prepareManagedClaudeSpawnHome:()=>D});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(77598),i=c.n(h),j=c(10230);let k="x-llv-spawn-capability",l="LLV_MANAGED_NATIVE_SUBAGENT_DENY=1 ",m=".llv",n=["enableAllProjectMcpServers","enabledMcpjsonServers","disabledMcpjsonServers"],o=Object.freeze(["Task","Agent","Workflow","TeamCreate","TeamDelete","SendMessage"]),p=o.join("|"),q="http://127.0.0.1:8898/api/spawn",r="LLV_SPAWN_CAPABILITY",s=`Send header ${k}: $${r}.`,t=`Sub-agents are disabled on this surface. Spawn через POST ${q} with {engine, model, cwd, prompt, src: <your transcript path>, role, reviews?} and ${s} The worker then appears on the board with correct lineage.`,u=`Viewer spawn policy: avoid native sub-agent, collaboration, and background-agent features. Spawn every helper through POST ${q} with {engine, model, cwd, prompt, src: <your transcript path>, role, reviews?}. ${s} The worker appears on the board with correct lineage.`,v={plugins:!1,apps:!1,multi_agent:!1};function w(a,b){if(!/^[A-Za-z0-9_-]{1,128}$/.test(b))throw Error("Claude spawn policy profile id is invalid");let c=g().join(a,m,"hooks","deny-native-subagents.sh");return{settingsPath:g().join(a,m,"spawn-settings",`${b}.json`),mcpConfigPath:g().join(a,m,"spawn-mcp",`${b}.json`),hookPath:c,command:`${l}${y(c)}`}}function x(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function y(a){return"'"+a.replace(/'/g,"'\\''")+"'"}function z(a,b,c){e().mkdirSync(g().dirname(a),{recursive:!0,mode:448});let d=g().join(g().dirname(a),`.${g().basename(a)}.${process.pid}.${i().randomUUID()}.tmp`);try{e().writeFileSync(d,b,{mode:c}),e().chmodSync(d,c),e().renameSync(d,a)}finally{e().rmSync(d,{force:!0})}}function A(a){let b;if(!e().existsSync(a))return{};try{b=JSON.parse(e().readFileSync(a,"utf8"))}catch{throw Error(`Claude settings are invalid JSON: ${a}`)}let c=x(b);if(!c)throw Error(`Claude settings must contain a JSON object: ${a}`);return c}function B(a){return Array.isArray(a)?a.filter(a=>"string"==typeof a):[]}function C(a){if(!a)return{};let b=g().resolve(a),c=b;for(let a=b;;a=g().dirname(a)){if(e().existsSync(g().join(a,".git"))){c=a;break}if(g().dirname(a)===a)break}let d=g().join(c,".mcp.json");return e().existsSync(d)?x(A(d).mcpServers)??{}:{}}function D(a,b){let c=g().join(a,".claude.json");try{let a=e().lstatSync(c);if(a.isSymbolicLink()||!a.isFile())throw Error(`Claude state path is unsafe: ${c}`)}catch(a){if("ENOENT"!==a.code)throw a}let d={};if(e().existsSync(c)){let a;try{a=JSON.parse(e().readFileSync(c,"utf8"))}catch{throw Error(`Claude state is invalid JSON: ${c}`)}let b=x(a);if(!b)throw Error(`Claude state must contain a JSON object: ${c}`);d=b}let f=void 0===d.projects?{}:x(d.projects);if(!f)throw Error(`Claude state projects must contain a JSON object: ${c}`);let h=void 0===f[b]?{}:x(f[b]);if(!h)throw Error(`Claude project state must contain a JSON object: ${b}`);z(c,JSON.stringify({...d,hasCompletedOnboarding:!0,bypassPermissionsModeAccepted:!0,projects:{...f,[b]:{...h,hasTrustDialogAccepted:!0,hasCompletedProjectOnboarding:!0}}},null,2)+"\n",384)}function E(a,b={}){let c=g().join(a,"settings.json"),d=w(a,b.profileId??i().randomUUID()),f=e().existsSync(c),h=f?A(c):b.baseSettingsPath?A(b.baseSettingsPath):{},k=f?{}:h;if(!b.allowSubagents&&!0===h.disableAllHooks)throw Error("Claude settings disableAllHooks prevents the Viewer spawn policy from enforcing native sub-agent denial");if(!b.allowSubagents&&!0===h.allowManagedHooksOnly)throw Error("Claude settings allowManagedHooksOnly prevents the Viewer spawn policy from enforcing native sub-agent denial");let m=void 0===h.hooks?{}:x(h.hooks);if(!m)throw Error("Claude settings hooks must contain a JSON object");let o=function(a){if(void 0===a)return[];if(!Array.isArray(a))throw Error("Claude settings hooks.PreToolUse must be an array");return a.flatMap(a=>{let b=x(a);if(!b||!Array.isArray(b.hooks))return[a];let c=b.hooks.filter(a=>{var b;return!("string"==typeof(b=x(a)?.command)&&b.startsWith(l))});return c.length?[{...b,hooks:c}]:[]})}(m.PreToolUse);if(!b.allowSubagents){let a=`#!/bin/sh
2
- printf '%s\\n' ${y(t)} >&2
1
+ "use strict";(()=>{var a={};a.id=1125,a.ids=[1125,4012],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4012:(a,b,c)=>{c.r(b),c.d(b,{CODEX_VIEWER_SPAWN_FEATURES:()=>v,NATIVE_MULTI_AGENT_HOOK_MATCHER:()=>p,NATIVE_MULTI_AGENT_TOOLS:()=>o,NATIVE_SUBAGENT_DENY_MESSAGE:()=>t,VIEWER_SPAWN_CAPABILITY_ENV:()=>r,VIEWER_SPAWN_CAPABILITY_HEADER:()=>k,VIEWER_SPAWN_ENDPOINT:()=>q,VIEWER_SPAWN_PROMPT_FENCE:()=>u,applyClaudeSpawnPolicy:()=>H,claudeSpawnPolicyPaths:()=>x,fenceViewerSpawnPrompt:()=>I,prepareManagedClaudeSpawnHome:()=>G,resolveClaudeMcpServers:()=>E,viewerMcpRegistered:()=>F,viewerMcpServerEntry:()=>w});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(77598),i=c.n(h),j=c(10230);let k="x-llv-spawn-capability",l="LLV_MANAGED_NATIVE_SUBAGENT_DENY=1 ",m=".llv",n=["enableAllProjectMcpServers","enabledMcpjsonServers","disabledMcpjsonServers"],o=Object.freeze(["Task","Agent","Workflow","TeamCreate","TeamDelete","SendMessage"]),p=o.join("|"),q="http://127.0.0.1:8898/api/spawn",r="LLV_SPAWN_CAPABILITY",s=`Send header ${k}: $${r}.`,t=`Sub-agents are disabled on this surface. Spawn через POST ${q} with {engine, model, cwd, prompt, src: <your transcript path>, role, reviews?} and ${s} The worker then appears on the board with correct lineage.`,u=`Viewer spawn policy: avoid native sub-agent, collaboration, and background-agent features. Spawn every helper through POST ${q} with {engine, model, cwd, prompt, src: <your transcript path>, role, reviews?}. ${s} The worker appears on the board with correct lineage.`,v={plugins:!1,apps:!1,multi_agent:!1};function w(a=process.cwd()){let b=[g().resolve(a,"bin","mcp-server.mjs"),g().resolve(a,"..","..","bin","mcp-server.mjs")].find(a=>e().existsSync(a));if(!b)throw Error(`Viewer MCP launcher could not be resolved from package cwd: ${a}`);return{command:"bun",args:[b]}}function x(a,b){if(!/^[A-Za-z0-9_-]{1,128}$/.test(b))throw Error("Claude spawn policy profile id is invalid");let c=g().join(a,m,"hooks","deny-native-subagents.sh");return{settingsPath:g().join(a,m,"spawn-settings",`${b}.json`),mcpConfigPath:g().join(a,m,"spawn-mcp",`${b}.json`),hookPath:c,command:`${l}${z(c)}`}}function y(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function z(a){return"'"+a.replace(/'/g,"'\\''")+"'"}function A(a,b,c){e().mkdirSync(g().dirname(a),{recursive:!0,mode:448});let d=g().join(g().dirname(a),`.${g().basename(a)}.${process.pid}.${i().randomUUID()}.tmp`);try{e().writeFileSync(d,b,{mode:c}),e().chmodSync(d,c),e().renameSync(d,a)}finally{e().rmSync(d,{force:!0})}}function B(a){let b;if(!e().existsSync(a))return{};try{b=JSON.parse(e().readFileSync(a,"utf8"))}catch{throw Error(`Claude settings are invalid JSON: ${a}`)}let c=y(b);if(!c)throw Error(`Claude settings must contain a JSON object: ${a}`);return c}function C(a){return Array.isArray(a)?a.filter(a=>"string"==typeof a):[]}function D(a){if(!a)return{};let b=g().resolve(a),c=b;for(let a=b;;a=g().dirname(a)){if(e().existsSync(g().join(a,".git"))){c=a;break}if(g().dirname(a)===a)break}let d=g().join(c,".mcp.json");return e().existsSync(d)?y(B(d).mcpServers)??{}:{}}function E(a,b,c=g().join(a,".claude.json")){let d=e().existsSync(c)?B(c):{},f=y(d.mcpServers)??{},h=y(d.projects),i=b&&h?y(h[b]):null,j=D(b),k=y(i?.mcpServers)??{};return{...f,...j,...k}}function F(a,b,c){return null!==y(E(a,b,c).viewer)}function G(a,b){let c=g().join(a,".claude.json");try{let a=e().lstatSync(c);if(a.isSymbolicLink()||!a.isFile())throw Error(`Claude state path is unsafe: ${c}`)}catch(a){if("ENOENT"!==a.code)throw a}let d={};if(e().existsSync(c)){let a;try{a=JSON.parse(e().readFileSync(c,"utf8"))}catch{throw Error(`Claude state is invalid JSON: ${c}`)}let b=y(a);if(!b)throw Error(`Claude state must contain a JSON object: ${c}`);d=b}let f=void 0===d.projects?{}:y(d.projects);if(!f)throw Error(`Claude state projects must contain a JSON object: ${c}`);let h=void 0===f[b]?{}:y(f[b]);if(!h)throw Error(`Claude project state must contain a JSON object: ${b}`);A(c,JSON.stringify({...d,hasCompletedOnboarding:!0,bypassPermissionsModeAccepted:!0,projects:{...f,[b]:{...h,hasTrustDialogAccepted:!0,hasCompletedProjectOnboarding:!0}}},null,2)+"\n",384)}function H(a,b={}){var c,d;let f,h=g().join(a,"settings.json"),k=x(a,b.profileId??i().randomUUID()),m=e().existsSync(h),o=m?B(h):b.baseSettingsPath?B(b.baseSettingsPath):{},q=m?{}:o;if(!b.allowSubagents&&!0===o.disableAllHooks)throw Error("Claude settings disableAllHooks prevents the Viewer spawn policy from enforcing native sub-agent denial");if(!b.allowSubagents&&!0===o.allowManagedHooksOnly)throw Error("Claude settings allowManagedHooksOnly prevents the Viewer spawn policy from enforcing native sub-agent denial");let r=void 0===o.hooks?{}:y(o.hooks);if(!r)throw Error("Claude settings hooks must contain a JSON object");let s=function(a){if(void 0===a)return[];if(!Array.isArray(a))throw Error("Claude settings hooks.PreToolUse must be an array");return a.flatMap(a=>{let b=y(a);if(!b||!Array.isArray(b.hooks))return[a];let c=b.hooks.filter(a=>{var b;return!("string"==typeof(b=y(a)?.command)&&b.startsWith(l))});return c.length?[{...b,hooks:c}]:[]})}(r.PreToolUse);if(!b.allowSubagents){let a=`#!/bin/sh
2
+ printf '%s\\n' ${z(t)} >&2
3
3
  exit 2
4
- `;z(d.hookPath,a,448),o.push({matcher:p,hooks:[{type:"command",command:d.command}]})}let q=b.allowSubagents?k:{...k,disableAllHooks:!1,allowManagedHooksOnly:!1},r=function(a,b,c){if(!e().existsSync(a))return{};let d=A(a),f=x(d.mcpServers)??{},g=x(d.projects),h=b&&g?x(g[b]):null,i=C(b),k=x(h?.mcpServers)??{},l={...f,...i,...k};return Object.fromEntries((0,j.c1)(c).flatMap(a=>{let b=x(l[a]);return b?[[a,b]]:[]}))}(b.mcpStatePath??g().join(a,".claude.json"),b.cwd,b.mcpServers),s=new Set(Object.keys(r)),u=Object.keys(C(b.cwd)).filter(a=>!s.has(a)),v=Object.fromEntries(Object.entries(q).filter(([a])=>"mcpServers"!==a)),D=Object.fromEntries(n.flatMap(a=>void 0===h[a]?[]:[[a,h[a]]]));void 0!==h.enabledMcpjsonServers&&(D.enabledMcpjsonServers=B(h.enabledMcpjsonServers).filter(a=>s.has(a)));let F=[...new Set([...B(h.disabledMcpjsonServers),...u])];return F.length>0&&(D.disabledMcpjsonServers=F),z(d.settingsPath,JSON.stringify({...v,...D,hooks:{...m,PreToolUse:o}},null,2)+"\n",384),z(d.mcpConfigPath,JSON.stringify({mcpServers:r},null,2)+"\n",384),d}function F(a,b){return"codex"!==a?b:[b.trim(),u].filter(Boolean).join("\n\n")}},7579:(a,b,c)=>{c.d(b,{$:()=>h,AV:()=>g});var d=c(14509),e=c(78966),f=c(41617);class g extends Error{constructor(a,b){super(b),this.status=a,this.name="TerminalAccountUnavailableError"}}function h(a,b){let c=("claude"===a?(0,e.Fn)():(0,f.Sq)()).find(a=>a.id===b);if(!c)throw new g(404,`unknown ${a} account: ${b}`);if(!c.authPresent)throw new g(409,`${a} account requires authentication`);return{command:function(a,b){if("claude"===a)return"managed"===b.kind?`${(0,d.id)(b.home)} claude`:"claude";let c="managed"===b.kind?" -c cli_auth_credentials_store=file":"";return`env -u LLV_TOKEN CODEX_HOME=${"'"+b.home.replace(/'/g,"'\\''")+"'"} codex${c}`}(a,c)}}},10344:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>G,patchFetch:()=>F,routeModule:()=>B,serverHooks:()=>E,workAsyncStorage:()=>C,workUnitAsyncStorage:()=>D});var d={};c.r(d),c.d(d,{POST:()=>A,dynamic:()=>z,runtime:()=>y});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(23211),w=c(7579),x=c(35961);let y="nodejs",z="force-dynamic";async function A(a){let b,c=(0,x.W)(a);if(c)return c;try{b=await a.json()}catch{return v.NextResponse.json({error:"invalid JSON"},{status:400})}if("string"!=typeof b.id)return v.NextResponse.json({error:"id must be a string"},{status:400});try{return v.NextResponse.json({ok:!0,...(0,w.$)("codex",b.id)})}catch(b){if(b instanceof w.AV)return v.NextResponse.json({error:b.message},{status:b.status});console.error("[accounts] codex terminal command failed:",b);let a=b instanceof Error?b.message:String(b);return v.NextResponse.json({error:"Codex terminal command failed",detail:a},{status:500})}}let B=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/accounts/codex/terminal/route",pathname:"/api/accounts/codex/terminal",filename:"route",bundlePath:"app/api/accounts/codex/terminal/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/live-log-viewer-next/live-log-viewer-next/src/app/api/accounts/codex/terminal/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:D,serverHooks:E}=B;function F(){return(0,g.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:D})}async function G(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),B.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/accounts/codex/terminal/route";"/index"===d&&(d="/");let e=await B.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(A.dynamicRoutes[I]||A.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!z){let a=!!A.routes[F],b=A.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||B.isDev||z||(L="/index"===(L=F)?"/":L);let M=!0===B.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await B.getIncrementalCache(a,x,A,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>B.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>B.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await B.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await B.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await B.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16698:a=>{a.exports=require("node:async_hooks")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},35961:(a,b,c)=>{c.d(b,{W:()=>g});var d=c(23211);let e=["localhost","127.0.0.1","::1"];function f(a){if(a.startsWith("[")){let b=a.indexOf("]");return -1===b?a:a.slice(1,b)}let b=a.lastIndexOf(":");return -1===b?a:a.slice(0,b)}function g(a){let b=new Set(e),c=process.env.LLV_TS_HOST;c&&b.add(f(c));let d=a.headers.get("host");if(null===d||!b.has(f(d)))return h();let g=a.headers.get("origin");if(null!==g){let a;try{a=new URL(g).host}catch{a=null}if(null===a||!b.has(f(a)))return h()}let i=a.headers.get("sec-fetch-site");return null!==i&&"same-origin"!==i&&"none"!==i?h():null}function h(){return d.NextResponse.json({error:"forbidden: cross-origin request"},{status:403})}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},85786:a=>{a.exports=require("bun:ffi")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,3438,230,8966,1617,3214,4509],()=>b(b.s=10344));module.exports=c})();
4
+ `;A(k.hookPath,a,448),s.push({matcher:p,hooks:[{type:"command",command:k.command}]})}let u=b.allowSubagents?q:{...q,disableAllHooks:!1,allowManagedHooksOnly:!1},v=(c=b.cwd,d=b.mcpServers,f=E(a,c,b.mcpStatePath),Object.fromEntries((0,j.c1)(d).flatMap(a=>{let b=y(f[a])??("viewer"===a?{type:"stdio",...w()}:null);return b?[[a,b]]:[]}))),F=new Set(Object.keys(v)),G=Object.keys(D(b.cwd)).filter(a=>!F.has(a)),I=Object.fromEntries(Object.entries(u).filter(([a])=>"mcpServers"!==a)),J=Object.fromEntries(n.flatMap(a=>void 0===o[a]?[]:[[a,o[a]]]));void 0!==o.enabledMcpjsonServers&&(J.enabledMcpjsonServers=C(o.enabledMcpjsonServers).filter(a=>F.has(a)));let K=[...new Set([...C(o.disabledMcpjsonServers),...G])];return K.length>0&&(J.disabledMcpjsonServers=K),A(k.settingsPath,JSON.stringify({...I,...J,hooks:{...r,PreToolUse:s}},null,2)+"\n",384),A(k.mcpConfigPath,JSON.stringify({mcpServers:v},null,2)+"\n",384),k}function I(a,b){return"codex"!==a?b:[b.trim(),u].filter(Boolean).join("\n\n")}},7579:(a,b,c)=>{c.d(b,{$:()=>h,AV:()=>g});var d=c(14509),e=c(78966),f=c(41617);class g extends Error{constructor(a,b){super(b),this.status=a,this.name="TerminalAccountUnavailableError"}}function h(a,b){let c=("claude"===a?(0,e.Fn)():(0,f.Sq)()).find(a=>a.id===b);if(!c)throw new g(404,`unknown ${a} account: ${b}`);if(!c.authPresent)throw new g(409,`${a} account requires authentication`);return{command:function(a,b){if("claude"===a)return"managed"===b.kind?`${(0,d.id)(b.home)} claude`:"claude";let c="managed"===b.kind?" -c cli_auth_credentials_store=file":"";return`env -u LLV_TOKEN CODEX_HOME=${"'"+b.home.replace(/'/g,"'\\''")+"'"} codex${c}`}(a,c)}}},10344:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>G,patchFetch:()=>F,routeModule:()=>B,serverHooks:()=>E,workAsyncStorage:()=>C,workUnitAsyncStorage:()=>D});var d={};c.r(d),c.d(d,{POST:()=>A,dynamic:()=>z,runtime:()=>y});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(23211),w=c(7579),x=c(35961);let y="nodejs",z="force-dynamic";async function A(a){let b,c=(0,x.W)(a);if(c)return c;try{b=await a.json()}catch{return v.NextResponse.json({error:"invalid JSON"},{status:400})}if("string"!=typeof b.id)return v.NextResponse.json({error:"id must be a string"},{status:400});try{return v.NextResponse.json({ok:!0,...(0,w.$)("codex",b.id)})}catch(b){if(b instanceof w.AV)return v.NextResponse.json({error:b.message},{status:b.status});console.error("[accounts] codex terminal command failed:",b);let a=b instanceof Error?b.message:String(b);return v.NextResponse.json({error:"Codex terminal command failed",detail:a},{status:500})}}let B=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/accounts/codex/terminal/route",pathname:"/api/accounts/codex/terminal",filename:"route",bundlePath:"app/api/accounts/codex/terminal/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/live-log-viewer-next/live-log-viewer-next/src/app/api/accounts/codex/terminal/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:D,serverHooks:E}=B;function F(){return(0,g.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:D})}async function G(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),B.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/accounts/codex/terminal/route";"/index"===d&&(d="/");let e=await B.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(A.dynamicRoutes[I]||A.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!z){let a=!!A.routes[F],b=A.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||B.isDev||z||(L="/index"===(L=F)?"/":L);let M=!0===B.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await B.getIncrementalCache(a,x,A,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>B.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>B.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await B.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await B.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await B.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16698:a=>{a.exports=require("node:async_hooks")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},35961:(a,b,c)=>{c.d(b,{W:()=>g});var d=c(23211);let e=["localhost","127.0.0.1","::1"];function f(a){if(a.startsWith("[")){let b=a.indexOf("]");return -1===b?a:a.slice(1,b)}let b=a.lastIndexOf(":");return -1===b?a:a.slice(0,b)}function g(a){let b=new Set(e),c=process.env.LLV_TS_HOST;c&&b.add(f(c));let d=a.headers.get("host");if(null===d||!b.has(f(d)))return h();let g=a.headers.get("origin");if(null!==g){let a;try{a=new URL(g).host}catch{a=null}if(null===a||!b.has(f(a)))return h()}let i=a.headers.get("sec-fetch-site");return null!==i&&"same-origin"!==i&&"none"!==i?h():null}function h(){return d.NextResponse.json({error:"forbidden: cross-origin request"},{status:403})}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},85786:a=>{a.exports=require("bun:ffi")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,3438,230,8966,1617,3214,4509],()=>b(b.s=10344));module.exports=c})();
@@ -1,4 +1,4 @@
1
- "use strict";(()=>{var a={};a.id=7299,a.ids=[4012,7299],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4012:(a,b,c)=>{c.r(b),c.d(b,{CODEX_VIEWER_SPAWN_FEATURES:()=>v,NATIVE_MULTI_AGENT_HOOK_MATCHER:()=>p,NATIVE_MULTI_AGENT_TOOLS:()=>o,NATIVE_SUBAGENT_DENY_MESSAGE:()=>t,VIEWER_SPAWN_CAPABILITY_ENV:()=>r,VIEWER_SPAWN_CAPABILITY_HEADER:()=>k,VIEWER_SPAWN_ENDPOINT:()=>q,VIEWER_SPAWN_PROMPT_FENCE:()=>u,applyClaudeSpawnPolicy:()=>E,claudeSpawnPolicyPaths:()=>w,fenceViewerSpawnPrompt:()=>F,prepareManagedClaudeSpawnHome:()=>D});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(77598),i=c.n(h),j=c(10230);let k="x-llv-spawn-capability",l="LLV_MANAGED_NATIVE_SUBAGENT_DENY=1 ",m=".llv",n=["enableAllProjectMcpServers","enabledMcpjsonServers","disabledMcpjsonServers"],o=Object.freeze(["Task","Agent","Workflow","TeamCreate","TeamDelete","SendMessage"]),p=o.join("|"),q="http://127.0.0.1:8898/api/spawn",r="LLV_SPAWN_CAPABILITY",s=`Send header ${k}: $${r}.`,t=`Sub-agents are disabled on this surface. Spawn через POST ${q} with {engine, model, cwd, prompt, src: <your transcript path>, role, reviews?} and ${s} The worker then appears on the board with correct lineage.`,u=`Viewer spawn policy: avoid native sub-agent, collaboration, and background-agent features. Spawn every helper through POST ${q} with {engine, model, cwd, prompt, src: <your transcript path>, role, reviews?}. ${s} The worker appears on the board with correct lineage.`,v={plugins:!1,apps:!1,multi_agent:!1};function w(a,b){if(!/^[A-Za-z0-9_-]{1,128}$/.test(b))throw Error("Claude spawn policy profile id is invalid");let c=g().join(a,m,"hooks","deny-native-subagents.sh");return{settingsPath:g().join(a,m,"spawn-settings",`${b}.json`),mcpConfigPath:g().join(a,m,"spawn-mcp",`${b}.json`),hookPath:c,command:`${l}${y(c)}`}}function x(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function y(a){return"'"+a.replace(/'/g,"'\\''")+"'"}function z(a,b,c){e().mkdirSync(g().dirname(a),{recursive:!0,mode:448});let d=g().join(g().dirname(a),`.${g().basename(a)}.${process.pid}.${i().randomUUID()}.tmp`);try{e().writeFileSync(d,b,{mode:c}),e().chmodSync(d,c),e().renameSync(d,a)}finally{e().rmSync(d,{force:!0})}}function A(a){let b;if(!e().existsSync(a))return{};try{b=JSON.parse(e().readFileSync(a,"utf8"))}catch{throw Error(`Claude settings are invalid JSON: ${a}`)}let c=x(b);if(!c)throw Error(`Claude settings must contain a JSON object: ${a}`);return c}function B(a){return Array.isArray(a)?a.filter(a=>"string"==typeof a):[]}function C(a){if(!a)return{};let b=g().resolve(a),c=b;for(let a=b;;a=g().dirname(a)){if(e().existsSync(g().join(a,".git"))){c=a;break}if(g().dirname(a)===a)break}let d=g().join(c,".mcp.json");return e().existsSync(d)?x(A(d).mcpServers)??{}:{}}function D(a,b){let c=g().join(a,".claude.json");try{let a=e().lstatSync(c);if(a.isSymbolicLink()||!a.isFile())throw Error(`Claude state path is unsafe: ${c}`)}catch(a){if("ENOENT"!==a.code)throw a}let d={};if(e().existsSync(c)){let a;try{a=JSON.parse(e().readFileSync(c,"utf8"))}catch{throw Error(`Claude state is invalid JSON: ${c}`)}let b=x(a);if(!b)throw Error(`Claude state must contain a JSON object: ${c}`);d=b}let f=void 0===d.projects?{}:x(d.projects);if(!f)throw Error(`Claude state projects must contain a JSON object: ${c}`);let h=void 0===f[b]?{}:x(f[b]);if(!h)throw Error(`Claude project state must contain a JSON object: ${b}`);z(c,JSON.stringify({...d,hasCompletedOnboarding:!0,bypassPermissionsModeAccepted:!0,projects:{...f,[b]:{...h,hasTrustDialogAccepted:!0,hasCompletedProjectOnboarding:!0}}},null,2)+"\n",384)}function E(a,b={}){let c=g().join(a,"settings.json"),d=w(a,b.profileId??i().randomUUID()),f=e().existsSync(c),h=f?A(c):b.baseSettingsPath?A(b.baseSettingsPath):{},k=f?{}:h;if(!b.allowSubagents&&!0===h.disableAllHooks)throw Error("Claude settings disableAllHooks prevents the Viewer spawn policy from enforcing native sub-agent denial");if(!b.allowSubagents&&!0===h.allowManagedHooksOnly)throw Error("Claude settings allowManagedHooksOnly prevents the Viewer spawn policy from enforcing native sub-agent denial");let m=void 0===h.hooks?{}:x(h.hooks);if(!m)throw Error("Claude settings hooks must contain a JSON object");let o=function(a){if(void 0===a)return[];if(!Array.isArray(a))throw Error("Claude settings hooks.PreToolUse must be an array");return a.flatMap(a=>{let b=x(a);if(!b||!Array.isArray(b.hooks))return[a];let c=b.hooks.filter(a=>{var b;return!("string"==typeof(b=x(a)?.command)&&b.startsWith(l))});return c.length?[{...b,hooks:c}]:[]})}(m.PreToolUse);if(!b.allowSubagents){let a=`#!/bin/sh
2
- printf '%s\\n' ${y(t)} >&2
1
+ "use strict";(()=>{var a={};a.id=7299,a.ids=[4012,7299],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4012:(a,b,c)=>{c.r(b),c.d(b,{CODEX_VIEWER_SPAWN_FEATURES:()=>v,NATIVE_MULTI_AGENT_HOOK_MATCHER:()=>p,NATIVE_MULTI_AGENT_TOOLS:()=>o,NATIVE_SUBAGENT_DENY_MESSAGE:()=>t,VIEWER_SPAWN_CAPABILITY_ENV:()=>r,VIEWER_SPAWN_CAPABILITY_HEADER:()=>k,VIEWER_SPAWN_ENDPOINT:()=>q,VIEWER_SPAWN_PROMPT_FENCE:()=>u,applyClaudeSpawnPolicy:()=>H,claudeSpawnPolicyPaths:()=>x,fenceViewerSpawnPrompt:()=>I,prepareManagedClaudeSpawnHome:()=>G,resolveClaudeMcpServers:()=>E,viewerMcpRegistered:()=>F,viewerMcpServerEntry:()=>w});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(77598),i=c.n(h),j=c(10230);let k="x-llv-spawn-capability",l="LLV_MANAGED_NATIVE_SUBAGENT_DENY=1 ",m=".llv",n=["enableAllProjectMcpServers","enabledMcpjsonServers","disabledMcpjsonServers"],o=Object.freeze(["Task","Agent","Workflow","TeamCreate","TeamDelete","SendMessage"]),p=o.join("|"),q="http://127.0.0.1:8898/api/spawn",r="LLV_SPAWN_CAPABILITY",s=`Send header ${k}: $${r}.`,t=`Sub-agents are disabled on this surface. Spawn через POST ${q} with {engine, model, cwd, prompt, src: <your transcript path>, role, reviews?} and ${s} The worker then appears on the board with correct lineage.`,u=`Viewer spawn policy: avoid native sub-agent, collaboration, and background-agent features. Spawn every helper through POST ${q} with {engine, model, cwd, prompt, src: <your transcript path>, role, reviews?}. ${s} The worker appears on the board with correct lineage.`,v={plugins:!1,apps:!1,multi_agent:!1};function w(a=process.cwd()){let b=[g().resolve(a,"bin","mcp-server.mjs"),g().resolve(a,"..","..","bin","mcp-server.mjs")].find(a=>e().existsSync(a));if(!b)throw Error(`Viewer MCP launcher could not be resolved from package cwd: ${a}`);return{command:"bun",args:[b]}}function x(a,b){if(!/^[A-Za-z0-9_-]{1,128}$/.test(b))throw Error("Claude spawn policy profile id is invalid");let c=g().join(a,m,"hooks","deny-native-subagents.sh");return{settingsPath:g().join(a,m,"spawn-settings",`${b}.json`),mcpConfigPath:g().join(a,m,"spawn-mcp",`${b}.json`),hookPath:c,command:`${l}${z(c)}`}}function y(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function z(a){return"'"+a.replace(/'/g,"'\\''")+"'"}function A(a,b,c){e().mkdirSync(g().dirname(a),{recursive:!0,mode:448});let d=g().join(g().dirname(a),`.${g().basename(a)}.${process.pid}.${i().randomUUID()}.tmp`);try{e().writeFileSync(d,b,{mode:c}),e().chmodSync(d,c),e().renameSync(d,a)}finally{e().rmSync(d,{force:!0})}}function B(a){let b;if(!e().existsSync(a))return{};try{b=JSON.parse(e().readFileSync(a,"utf8"))}catch{throw Error(`Claude settings are invalid JSON: ${a}`)}let c=y(b);if(!c)throw Error(`Claude settings must contain a JSON object: ${a}`);return c}function C(a){return Array.isArray(a)?a.filter(a=>"string"==typeof a):[]}function D(a){if(!a)return{};let b=g().resolve(a),c=b;for(let a=b;;a=g().dirname(a)){if(e().existsSync(g().join(a,".git"))){c=a;break}if(g().dirname(a)===a)break}let d=g().join(c,".mcp.json");return e().existsSync(d)?y(B(d).mcpServers)??{}:{}}function E(a,b,c=g().join(a,".claude.json")){let d=e().existsSync(c)?B(c):{},f=y(d.mcpServers)??{},h=y(d.projects),i=b&&h?y(h[b]):null,j=D(b),k=y(i?.mcpServers)??{};return{...f,...j,...k}}function F(a,b,c){return null!==y(E(a,b,c).viewer)}function G(a,b){let c=g().join(a,".claude.json");try{let a=e().lstatSync(c);if(a.isSymbolicLink()||!a.isFile())throw Error(`Claude state path is unsafe: ${c}`)}catch(a){if("ENOENT"!==a.code)throw a}let d={};if(e().existsSync(c)){let a;try{a=JSON.parse(e().readFileSync(c,"utf8"))}catch{throw Error(`Claude state is invalid JSON: ${c}`)}let b=y(a);if(!b)throw Error(`Claude state must contain a JSON object: ${c}`);d=b}let f=void 0===d.projects?{}:y(d.projects);if(!f)throw Error(`Claude state projects must contain a JSON object: ${c}`);let h=void 0===f[b]?{}:y(f[b]);if(!h)throw Error(`Claude project state must contain a JSON object: ${b}`);A(c,JSON.stringify({...d,hasCompletedOnboarding:!0,bypassPermissionsModeAccepted:!0,projects:{...f,[b]:{...h,hasTrustDialogAccepted:!0,hasCompletedProjectOnboarding:!0}}},null,2)+"\n",384)}function H(a,b={}){var c,d;let f,h=g().join(a,"settings.json"),k=x(a,b.profileId??i().randomUUID()),m=e().existsSync(h),o=m?B(h):b.baseSettingsPath?B(b.baseSettingsPath):{},q=m?{}:o;if(!b.allowSubagents&&!0===o.disableAllHooks)throw Error("Claude settings disableAllHooks prevents the Viewer spawn policy from enforcing native sub-agent denial");if(!b.allowSubagents&&!0===o.allowManagedHooksOnly)throw Error("Claude settings allowManagedHooksOnly prevents the Viewer spawn policy from enforcing native sub-agent denial");let r=void 0===o.hooks?{}:y(o.hooks);if(!r)throw Error("Claude settings hooks must contain a JSON object");let s=function(a){if(void 0===a)return[];if(!Array.isArray(a))throw Error("Claude settings hooks.PreToolUse must be an array");return a.flatMap(a=>{let b=y(a);if(!b||!Array.isArray(b.hooks))return[a];let c=b.hooks.filter(a=>{var b;return!("string"==typeof(b=y(a)?.command)&&b.startsWith(l))});return c.length?[{...b,hooks:c}]:[]})}(r.PreToolUse);if(!b.allowSubagents){let a=`#!/bin/sh
2
+ printf '%s\\n' ${z(t)} >&2
3
3
  exit 2
4
- `;z(d.hookPath,a,448),o.push({matcher:p,hooks:[{type:"command",command:d.command}]})}let q=b.allowSubagents?k:{...k,disableAllHooks:!1,allowManagedHooksOnly:!1},r=function(a,b,c){if(!e().existsSync(a))return{};let d=A(a),f=x(d.mcpServers)??{},g=x(d.projects),h=b&&g?x(g[b]):null,i=C(b),k=x(h?.mcpServers)??{},l={...f,...i,...k};return Object.fromEntries((0,j.c1)(c).flatMap(a=>{let b=x(l[a]);return b?[[a,b]]:[]}))}(b.mcpStatePath??g().join(a,".claude.json"),b.cwd,b.mcpServers),s=new Set(Object.keys(r)),u=Object.keys(C(b.cwd)).filter(a=>!s.has(a)),v=Object.fromEntries(Object.entries(q).filter(([a])=>"mcpServers"!==a)),D=Object.fromEntries(n.flatMap(a=>void 0===h[a]?[]:[[a,h[a]]]));void 0!==h.enabledMcpjsonServers&&(D.enabledMcpjsonServers=B(h.enabledMcpjsonServers).filter(a=>s.has(a)));let F=[...new Set([...B(h.disabledMcpjsonServers),...u])];return F.length>0&&(D.disabledMcpjsonServers=F),z(d.settingsPath,JSON.stringify({...v,...D,hooks:{...m,PreToolUse:o}},null,2)+"\n",384),z(d.mcpConfigPath,JSON.stringify({mcpServers:r},null,2)+"\n",384),d}function F(a,b){return"codex"!==a?b:[b.trim(),u].filter(Boolean).join("\n\n")}},8008:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>F,patchFetch:()=>E,routeModule:()=>A,serverHooks:()=>D,workAsyncStorage:()=>B,workUnitAsyncStorage:()=>C});var d={};c.r(d),c.d(d,{GET:()=>z,dynamic:()=>y,runtime:()=>x});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(23211),w=c(58996);let x="nodejs",y="force-dynamic";async function z(){return v.NextResponse.json(await (0,w.Ke)())}let A=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/limits/history/route",pathname:"/api/limits/history",filename:"route",bundlePath:"app/api/limits/history/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/live-log-viewer-next/live-log-viewer-next/src/app/api/limits/history/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:B,workUnitAsyncStorage:C,serverHooks:D}=A;function E(){return(0,g.patchFetch)({workAsyncStorage:B,workUnitAsyncStorage:C})}async function F(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),A.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/limits/history/route";"/index"===d&&(d="/");let e=await A.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!z){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||A.isDev||z||(L="/index"===(L=F)?"/":L);let M=!0===A.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await A.getIncrementalCache(a,x,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>A.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>A.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await A.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await A.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await A.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16698:a=>{a.exports=require("node:async_hooks")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},85786:a=>{a.exports=require("bun:ffi")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,3438,230,8966,1617,8797,8996],()=>b(b.s=8008));module.exports=c})();
4
+ `;A(k.hookPath,a,448),s.push({matcher:p,hooks:[{type:"command",command:k.command}]})}let u=b.allowSubagents?q:{...q,disableAllHooks:!1,allowManagedHooksOnly:!1},v=(c=b.cwd,d=b.mcpServers,f=E(a,c,b.mcpStatePath),Object.fromEntries((0,j.c1)(d).flatMap(a=>{let b=y(f[a])??("viewer"===a?{type:"stdio",...w()}:null);return b?[[a,b]]:[]}))),F=new Set(Object.keys(v)),G=Object.keys(D(b.cwd)).filter(a=>!F.has(a)),I=Object.fromEntries(Object.entries(u).filter(([a])=>"mcpServers"!==a)),J=Object.fromEntries(n.flatMap(a=>void 0===o[a]?[]:[[a,o[a]]]));void 0!==o.enabledMcpjsonServers&&(J.enabledMcpjsonServers=C(o.enabledMcpjsonServers).filter(a=>F.has(a)));let K=[...new Set([...C(o.disabledMcpjsonServers),...G])];return K.length>0&&(J.disabledMcpjsonServers=K),A(k.settingsPath,JSON.stringify({...I,...J,hooks:{...r,PreToolUse:s}},null,2)+"\n",384),A(k.mcpConfigPath,JSON.stringify({mcpServers:v},null,2)+"\n",384),k}function I(a,b){return"codex"!==a?b:[b.trim(),u].filter(Boolean).join("\n\n")}},8008:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>F,patchFetch:()=>E,routeModule:()=>A,serverHooks:()=>D,workAsyncStorage:()=>B,workUnitAsyncStorage:()=>C});var d={};c.r(d),c.d(d,{GET:()=>z,dynamic:()=>y,runtime:()=>x});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(23211),w=c(58996);let x="nodejs",y="force-dynamic";async function z(){return v.NextResponse.json(await (0,w.Ke)())}let A=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/limits/history/route",pathname:"/api/limits/history",filename:"route",bundlePath:"app/api/limits/history/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/live-log-viewer-next/live-log-viewer-next/src/app/api/limits/history/route.ts",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:B,workUnitAsyncStorage:C,serverHooks:D}=A;function E(){return(0,g.patchFetch)({workAsyncStorage:B,workUnitAsyncStorage:C})}async function F(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),A.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/limits/history/route";"/index"===d&&(d="/");let e=await A.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!z){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||A.isDev||z||(L="/index"===(L=F)?"/":L);let M=!0===A.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await A.getIncrementalCache(a,x,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>A.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>A.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await A.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await A.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await A.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16698:a=>{a.exports=require("node:async_hooks")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},85786:a=>{a.exports=require("bun:ffi")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,3438,230,8966,1617,8797,8996],()=>b(b.s=8008));module.exports=c})();