@slycode/slycode 0.2.6 → 0.2.8

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 (101) hide show
  1. package/dist/scripts/scaffold.js +3 -2
  2. package/dist/web/.next/BUILD_ID +1 -1
  3. package/dist/web/.next/build-manifest.json +2 -2
  4. package/dist/web/.next/server/app/_global-error.html +2 -2
  5. package/dist/web/.next/server/app/_global-error.rsc +1 -1
  6. package/dist/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  7. package/dist/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  8. package/dist/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  9. package/dist/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  10. package/dist/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  11. package/dist/web/.next/server/app/_not-found.html +1 -1
  12. package/dist/web/.next/server/app/_not-found.rsc +1 -1
  13. package/dist/web/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  14. package/dist/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  15. package/dist/web/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  16. package/dist/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  17. package/dist/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  18. package/dist/web/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  19. package/dist/web/.next/server/chunks/[root-of-the-server]__12f6cd6f._.js +1 -1
  20. package/dist/web/.next/server/chunks/[root-of-the-server]__15fc9266._.js +8 -8
  21. package/dist/web/.next/server/chunks/[root-of-the-server]__279e9bf3._.js +1 -1
  22. package/dist/web/.next/server/chunks/[root-of-the-server]__2d1f0ed9._.js +1 -1
  23. package/dist/web/.next/server/chunks/[root-of-the-server]__3c5ef8ec._.js +1 -1
  24. package/dist/web/.next/server/chunks/[root-of-the-server]__47dd878e._.js +1 -1
  25. package/dist/web/.next/server/chunks/[root-of-the-server]__5e08b942._.js +1 -1
  26. package/dist/web/.next/server/chunks/[root-of-the-server]__71bb3374._.js +1 -1
  27. package/dist/web/.next/server/chunks/[root-of-the-server]__7603305e._.js +1 -1
  28. package/dist/web/.next/server/chunks/[root-of-the-server]__7c476ad6._.js +1 -1
  29. package/dist/web/.next/server/chunks/[root-of-the-server]__846ca56f._.js +1 -1
  30. package/dist/web/.next/server/chunks/[root-of-the-server]__98d88050._.js +1 -1
  31. package/dist/web/.next/server/chunks/[root-of-the-server]__b273cc05._.js +1 -1
  32. package/dist/web/.next/server/chunks/[root-of-the-server]__d6362272._.js +1 -1
  33. package/dist/web/.next/server/chunks/[root-of-the-server]__de1277ee._.js +2 -2
  34. package/dist/web/.next/server/chunks/[root-of-the-server]__f3e501b6._.js +1 -1
  35. package/dist/web/.next/server/chunks/[root-of-the-server]__f97e93fa._.js +2 -2
  36. package/dist/web/.next/server/chunks/ssr/src_lib_registry_ts_2fc87c9c._.js +1 -1
  37. package/dist/web/.next/server/pages/404.html +1 -1
  38. package/dist/web/.next/server/pages/500.html +2 -2
  39. package/dist/web/src/lib/store-scanner.ts +8 -69
  40. package/dist/web/tsconfig.tsbuildinfo +1 -1
  41. package/lib/cli/start.d.ts.map +1 -1
  42. package/lib/cli/start.js +114 -1
  43. package/lib/cli/start.js.map +1 -1
  44. package/lib/cli/stop.d.ts.map +1 -1
  45. package/lib/cli/stop.js +77 -0
  46. package/lib/cli/stop.js.map +1 -1
  47. package/lib/cli/uninstall.d.ts.map +1 -1
  48. package/lib/cli/uninstall.js +9 -7
  49. package/lib/cli/uninstall.js.map +1 -1
  50. package/lib/cli/update.d.ts.map +1 -1
  51. package/lib/cli/update.js +5 -77
  52. package/lib/cli/update.js.map +1 -1
  53. package/lib/platform/service-detect.d.ts +20 -0
  54. package/lib/platform/service-detect.d.ts.map +1 -0
  55. package/lib/platform/service-detect.js +154 -0
  56. package/lib/platform/service-detect.js.map +1 -0
  57. package/lib/platform/service-linux.d.ts.map +1 -1
  58. package/lib/platform/service-linux.js +23 -14
  59. package/lib/platform/service-linux.js.map +1 -1
  60. package/lib/platform/service-macos.d.ts +1 -1
  61. package/lib/platform/service-macos.d.ts.map +1 -1
  62. package/lib/platform/service-macos.js +21 -0
  63. package/lib/platform/service-macos.js.map +1 -1
  64. package/package.json +1 -1
  65. package/templates/kanban-seed.json +1 -1
  66. package/templates/tutorial-project/.agents/skills/checkpoint/SKILL.md +0 -43
  67. package/templates/tutorial-project/.agents/skills/context-priming/SKILL.md +0 -152
  68. package/templates/tutorial-project/.agents/skills/context-priming/references/area-index.md +0 -101
  69. package/templates/tutorial-project/.agents/skills/context-priming/references/areas/claude-actions.md +0 -120
  70. package/templates/tutorial-project/.agents/skills/context-priming/references/areas/messaging.md +0 -177
  71. package/templates/tutorial-project/.agents/skills/context-priming/references/areas/scripts-deployment.md +0 -138
  72. package/templates/tutorial-project/.agents/skills/context-priming/references/areas/skills.md +0 -135
  73. package/templates/tutorial-project/.agents/skills/context-priming/references/areas/terminal-bridge.md +0 -232
  74. package/templates/tutorial-project/.agents/skills/context-priming/references/areas/web-frontend.md +0 -252
  75. package/templates/tutorial-project/.agents/skills/context-priming/references/maintenance.md +0 -128
  76. package/templates/tutorial-project/.agents/skills/design/SKILL.md +0 -141
  77. package/templates/tutorial-project/.agents/skills/feature/SKILL.md +0 -159
  78. package/templates/tutorial-project/.agents/skills/implement/SKILL.md +0 -132
  79. package/templates/tutorial-project/.agents/skills/kanban/SKILL.md +0 -264
  80. package/templates/tutorial-project/.claude/skills/checkpoint/SKILL.md +0 -43
  81. package/templates/tutorial-project/.claude/skills/context-priming/SKILL.md +0 -152
  82. package/templates/tutorial-project/.claude/skills/context-priming/references/area-index.md +0 -101
  83. package/templates/tutorial-project/.claude/skills/context-priming/references/areas/claude-actions.md +0 -120
  84. package/templates/tutorial-project/.claude/skills/context-priming/references/areas/messaging.md +0 -177
  85. package/templates/tutorial-project/.claude/skills/context-priming/references/areas/scripts-deployment.md +0 -138
  86. package/templates/tutorial-project/.claude/skills/context-priming/references/areas/skills.md +0 -135
  87. package/templates/tutorial-project/.claude/skills/context-priming/references/areas/terminal-bridge.md +0 -232
  88. package/templates/tutorial-project/.claude/skills/context-priming/references/areas/web-frontend.md +0 -252
  89. package/templates/tutorial-project/.claude/skills/context-priming/references/maintenance.md +0 -128
  90. package/templates/tutorial-project/.claude/skills/design/SKILL.md +0 -141
  91. package/templates/tutorial-project/.claude/skills/feature/SKILL.md +0 -159
  92. package/templates/tutorial-project/.claude/skills/implement/SKILL.md +0 -132
  93. package/templates/tutorial-project/.claude/skills/kanban/SKILL.md +0 -264
  94. package/templates/tutorial-project/CLAUDE.md +0 -16
  95. package/templates/tutorial-project/documentation/designs/example_welcome_dashboard.md +0 -38
  96. package/templates/tutorial-project/documentation/events.json +0 -1
  97. package/templates/tutorial-project/documentation/features/example_in_card_deliverable_feature.md +0 -31
  98. package/templates/tutorial-project/documentation/kanban.json +0 -385
  99. /package/dist/web/.next/static/{2EjhdcgXP_G4Dc2aTnMhk → ykJOQKO--meU2uRZcR2GX}/_buildManifest.js +0 -0
  100. /package/dist/web/.next/static/{2EjhdcgXP_G4Dc2aTnMhk → ykJOQKO--meU2uRZcR2GX}/_clientMiddlewareManifest.json +0 -0
  101. /package/dist/web/.next/static/{2EjhdcgXP_G4Dc2aTnMhk → ykJOQKO--meU2uRZcR2GX}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},7367,e=>{"use strict";var t=e.i(14747),r=e.i(22734);function n(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let e=process.cwd();return(console.warn("[paths] SLYCODE_HOME not set in production — falling back to cwd:",e),e.endsWith("/web")||e.endsWith("\\web"))?t.default.dirname(e):e}function a(){let e=n(),a=t.default.join(e,"node_modules","@slycode","slycode","dist");return r.default.existsSync(a)?a:e}function i(){return process.env.BRIDGE_URL?process.env.BRIDGE_URL:"http://127.0.0.1:3004"}e.s(["getBridgeUrl",()=>i,"getPackageDir",()=>a,"getSlycodeRoot",()=>n])},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},73178,e=>{"use strict";var t=e.i(22734),r=e.i(14747),n=e.i(46676),a=e.i(7367);function i(){return r.default.join((0,a.getSlycodeRoot)(),"store")}function s(){for(let e of[r.default.join((0,a.getSlycodeRoot)(),"build","store-manifest.js"),r.default.join((0,a.getSlycodeRoot)(),"node_modules","@slycode","slycode","build","store-manifest.js")])try{if(t.default.existsSync(e)){let r=t.default.readFileSync(e,"utf-8"),n={};Function("module","exports",r)(n,n);let a=n.exports;if(a?.skills)return{skills:a.skills,actions:a.actions||[],agents:a.agents||[],mcp:a.mcp||[]}}}catch{}return null}function o(e,a){let i=[],s="skill"===a?"skills":"agents",o=r.default.join(e,s);try{if(!t.default.existsSync(o))return i;for(let e of t.default.readdirSync(o,{withFileTypes:!0})){let l,c;if("skill"===a){if(!e.isDirectory()||(l=r.default.join(o,e.name,"SKILL.md"),c=r.default.join(s,e.name,"SKILL.md"),!t.default.existsSync(l)))continue}else{if(!e.isFile()||!e.name.endsWith(".md"))continue;l=r.default.join(o,e.name),c=r.default.join(s,e.name)}let u=t.default.readFileSync(l,"utf-8"),d=(0,n.parseFrontmatter)(u),f=d?.name||e.name.replace(/\.md$/,"");i.push({name:f,type:a,path:c,frontmatter:d,isValid:(0,n.validateFrontmatter)(d)})}}catch{}return i.sort((e,t)=>e.name.localeCompare(t.name))}function l(){let e=i(),n=s(),a=o(e,"skill"),l=o(e,"agent"),c=function(e){let n=r.default.join(e,"mcp"),a=[];try{if(!t.default.existsSync(n))return a;for(let e of t.default.readdirSync(n,{withFileTypes:!0})){let i;if(!e.isFile()||!e.name.endsWith(".json"))continue;let s=r.default.join(n,e.name),o=t.default.readFileSync(s,"utf-8");try{i=JSON.parse(o)}catch{continue}let l=i.name||e.name.replace(/\.json$/,"");a.push({name:l,type:"mcp",path:r.default.join("mcp",e.name),frontmatter:{name:l,version:i.version,description:i.description,updated:i.updated},isValid:!!(i.name&&i.command)})}}catch{}return a}(e);if(n){if(n.skills){let e=new Set(n.skills);a=a.filter(t=>e.has(t.name))}if(n.agents){let e=new Set(n.agents);l=l.filter(t=>e.has(t.name))}if(n.mcp){let e=new Set(n.mcp);c=c.filter(t=>e.has(t.name))}}return{skills:a,agents:l,mcp:c}}function c(){let e=i(),t=s(),r=o(e,"skill"),n=o(e,"agent");if(t){if(t.skills){let e=new Set(t.skills);r=r.filter(t=>e.has(t.name))}if(t.agents){let e=new Set(t.agents);n=n.filter(t=>e.has(t.name))}}return[...r,...n]}e.s(["getStoreAssets",()=>c,"scanStore",()=>l])},48044,e=>{"use strict";var t=e.i(22734),r=e.i(33405),n=e.i(14747),a=e.i(46676),i=e.i(73178);let s={outdatedAssets:.3,staleCards:.15,unresolvedProblems:.25,missingClaudeMd:.1,nonCompliantFrontmatter:.2};function o(e,t=0,r=0,n=0,a=s){let i=[],l=Math.max(r,1);i.push({name:"Outdated Assets",weight:a.outdatedAssets,value:t,maxValue:l});let c=Date.now(),u=[...e.backlog],d=u.filter(e=>(c-new Date(e.created_at).getTime())/864e5>14&&"done"!==e.status).length,f=Math.max(u.length,1);i.push({name:"Stale Cards",weight:a.staleCards,value:d,maxValue:f}),i.push({name:"Unresolved Problems",weight:a.unresolvedProblems,value:0,maxValue:1}),i.push({name:"Missing CLAUDE.md",weight:a.missingClaudeMd,value:+!e.hasClaudeMd,maxValue:1});let p=Math.max(r,1);i.push({name:"Non-compliant Frontmatter",weight:a.nonCompliantFrontmatter,value:n,maxValue:p});let m=0;for(let e of i)m+=Math.min(e.maxValue>0?e.value/e.maxValue:0,1)*e.weight;let g=Math.round(Math.max(0,(1-m)*100));return{score:g,level:g>=80?"green":g>=50?"amber":"red",factors:i}}var l=e.i(7367);function c(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let e=process.cwd();return e.endsWith("/web")||e.endsWith("\\web")?n.default.dirname(e):e}let u=c(),d=n.default.join(u,"projects","registry.json");async function f(){try{let e=await t.promises.readFile(d,"utf-8");return JSON.parse(e)}catch(e){throw console.error("Failed to load registry:",e),Error(`Failed to load registry from ${d}`)}}async function p(e){let r=JSON.stringify(e,null,2)+"\n";await t.promises.writeFile(d,r,"utf-8")}async function m(e){try{return(await t.promises.stat(e)).isDirectory()}catch{return!1}}async function g(e){try{let r=await t.promises.readFile(e,"utf-8");return JSON.parse(r)}catch{return null}}async function h(e,t,r){let a=n.default.join(e,"documentation","backlog.json"),i=await g(a);return i?i.map(e=>({...e,projectId:t,projectName:r})):[]}async function y(e,t){let r=n.default.join(e,"documentation","designs.json"),a=await g(r);return a?a.map(e=>({...e,projectId:t})):[]}async function j(e,t){let r=n.default.join(e,"documentation","features.json"),a=await g(r);return a?a.map(e=>({...e,projectId:t})):[]}async function x(e){let t=e.path;if(!await m(t))return{...e,backlog:[],designs:[],features:[],accessible:!1,error:`Path not accessible: ${t}`};let[n,i,s]=await Promise.all([h(t,e.id,e.name),y(t,e.id),j(t,e.id)]),o=(0,a.scanProjectAssets)(t,e.id),l=(0,a.detectPlatforms)(t),c=function(e){try{return(0,r.execSync)("git status --porcelain",{cwd:e,encoding:"utf-8",timeout:5e3}).split("\n").filter(e=>e.trim().length>0).length}catch{return -1}}(t);return{...e,backlog:n,designs:i,features:s,assets:o,platforms:l,gitUncommitted:c>=0?c:void 0,accessible:!0}}async function w(){let e=await f();for(let t=0;t<e.projects.length;t++)void 0===e.projects[t].order&&(e.projects[t].order=t);e.projects.sort((e,t)=>(e.order??0)-(t.order??0));let t=e.projects.map(e=>x(e)),r=await Promise.all(t),s=(0,i.getStoreAssets)(),u=["skill","agent"],d=0,p=[];for(let t of["claude","agents"])for(let r of u){let n=s.filter(e=>e.type===r),i=new Map;for(let n of e.projects){let e=(0,a.scanProviderAssets)(n.path,t);i.set(n.id,e.filter(e=>e.type===r))}let o=(0,a.buildStoreAssetMatrix)(n,i,e.projects,r);p.push(...o)}for(let e of p)for(let t of e.cells)"outdated"===t.status&&d++;for(let e of r){if(!e.accessible)continue;let t=0;for(let r of p)for(let n of r.cells)n.projectId===e.id&&"outdated"===n.status&&t++;e.healthScore=function(e,t,r=0,n){if(!t)return o(e,0,0,0,void 0);let a=[...t.skills,...t.agents];return o(e,r,a.length,a.filter(e=>!e.isValid).length,void 0)}(e,e.assets,t)}let m=0,h=0;for(let e of r){if(!e.accessible)continue;let t=n.default.join(e.path,"documentation","kanban.json"),r=await g(t);if(r?.stages){m+=(r.stages.backlog||[]).filter(e=>!e.archived).length;let e=(r.stages.implementation||[]).filter(e=>!e.archived),t=(r.stages.testing||[]).filter(e=>!e.archived);h+=e.length+t.length}}let y=r.reduce((e,t)=>e+(t.gitUncommitted&&t.gitUncommitted>0?t.gitUncommitted:0),0),j=(0,l.getBridgeUrl)();try{let e=await fetch(`${j}/stats`,{signal:AbortSignal.timeout(2e3)});if(e.ok){let t=await e.json(),n={};for(let e of t.sessions||[])if(e.isActive){let t=e.name.split(":")[0];n[t]=(n[t]||0)+1}for(let e of r)e.activeSessions=n[e.id]??0}}catch{}let w=c();return{projects:r,totalBacklogItems:m,activeItems:h,totalOutdatedAssets:d,totalUncommitted:y,lastRefresh:new Date().toISOString(),slycodeRoot:w,projectsDir:n.default.dirname(w)}}e.s(["getRepoRoot",()=>c,"loadDashboardData",()=>w,"loadRegistry",()=>f,"saveRegistry",()=>p],48044)},1365,e=>{"use strict";var t=e.i(22734),r=e.i(14747);let n=(0,e.i(7367).getSlycodeRoot)(),a=r.default.join(n,"documentation","events.json");function i(){try{if(!t.default.existsSync(a))return[];let e=t.default.readFileSync(a,"utf-8"),r=JSON.parse(e);return Array.isArray(r)?r:[]}catch{return[]}}function s(e){let n,s=i(),o={id:`evt-${Date.now()}-${Math.random().toString(36).slice(2,6)}`,...e};return s.push(o),s.length>500&&s.splice(0,s.length-500),n=r.default.dirname(a),t.default.existsSync(n)||t.default.mkdirSync(n,{recursive:!0}),t.default.writeFileSync(a,JSON.stringify(s,null,2)),o}function o(e={}){let t=i();if(e.project&&(t=t.filter(t=>t.project===e.project)),e.type&&(t=t.filter(t=>t.type===e.type)),e.since){let r=new Date(e.since).getTime();t=t.filter(e=>new Date(e.timestamp).getTime()>=r)}return t.reverse(),e.limit&&e.limit>0&&(t=t.slice(0,e.limit)),t}e.s(["appendEvent",()=>s,"queryEvents",()=>o])},71741,e=>{"use strict";var t=e.i(14747),r=e.i(48044);let n={hourly:36e5,daily:864e5,weekly:6048e5},a=null,i=0;async function s(){let e=Date.now();return a&&e-i<5e3||(a=await (0,r.loadRegistry)(),i=e),a}class o extends Error{code;constructor(e,t){super(e),this.code=t,this.name="ProjectResolutionError"}}async function l(e){if(e===t.default.basename((0,r.getRepoRoot)()).replace(/_/g,"-"))return(0,r.getRepoRoot)();let n=(await s()).projects.find(t=>t.id===e);if(!n)throw new o(`Project '${e}' not found in registry`,"NOT_FOUND");return n.path}async function c(e){let r=await l(e);return t.default.join(r,"documentation","kanban.json")}async function u(e){let r=await l(e);return t.default.join(r,"documentation","archive")}async function d(e,r,n=1){let a=await u(e),i=String(n).padStart(3,"0");return t.default.join(a,`kanban_${r}_${i}.json`)}async function f(e){let r=await u(e),a=[];for(let e=1;e<=10;e++){let n=String(e).padStart(3,"0");a.push(t.default.join(r,`kanban_${n}.json`))}for(let e of Object.keys(n))a.push(t.default.join(r,`kanban_${e}.json`));return a}async function p(e){return e?c(e):t.default.join((0,r.getRepoRoot)(),"documentation")}e.s(["BACKUP_TIERS",0,n,"ProjectResolutionError",()=>o,"getArchiveDir",()=>u,"getKanbanPath",()=>c,"getLegacyBackupPaths",()=>f,"getTieredBackupPath",()=>d,"getWatchPath",()=>p,"resolveProjectRoot",()=>l])},44264,e=>{e.v(e=>Promise.resolve().then(()=>e(33405)))}];
1
+ module.exports=[46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},7367,e=>{"use strict";var t=e.i(14747),r=e.i(22734);function n(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let e=process.cwd();return(console.warn("[paths] SLYCODE_HOME not set in production — falling back to cwd:",e),e.endsWith("/web")||e.endsWith("\\web"))?t.default.dirname(e):e}function a(){let e=n(),a=t.default.join(e,"node_modules","@slycode","slycode","dist");return r.default.existsSync(a)?a:e}function i(){return process.env.BRIDGE_URL?process.env.BRIDGE_URL:"http://127.0.0.1:3004"}e.s(["getBridgeUrl",()=>i,"getPackageDir",()=>a,"getSlycodeRoot",()=>n])},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},73178,e=>{"use strict";var t=e.i(22734),r=e.i(14747),n=e.i(46676),a=e.i(7367);function i(){return r.default.join((0,a.getSlycodeRoot)(),"store")}function s(e,a){let i=[],s="skill"===a?"skills":"agents",o=r.default.join(e,s);try{if(!t.default.existsSync(o))return i;for(let e of t.default.readdirSync(o,{withFileTypes:!0})){let l,c;if("skill"===a){if(!e.isDirectory()||(l=r.default.join(o,e.name,"SKILL.md"),c=r.default.join(s,e.name,"SKILL.md"),!t.default.existsSync(l)))continue}else{if(!e.isFile()||!e.name.endsWith(".md"))continue;l=r.default.join(o,e.name),c=r.default.join(s,e.name)}let u=t.default.readFileSync(l,"utf-8"),d=(0,n.parseFrontmatter)(u),f=d?.name||e.name.replace(/\.md$/,"");i.push({name:f,type:a,path:c,frontmatter:d,isValid:(0,n.validateFrontmatter)(d)})}}catch{}return i.sort((e,t)=>e.name.localeCompare(t.name))}function o(){let e=i(),n=s(e,"skill");return{skills:n,agents:s(e,"agent"),mcp:function(e){let n=r.default.join(e,"mcp"),a=[];try{if(!t.default.existsSync(n))return a;for(let e of t.default.readdirSync(n,{withFileTypes:!0})){let i;if(!e.isFile()||!e.name.endsWith(".json"))continue;let s=r.default.join(n,e.name),o=t.default.readFileSync(s,"utf-8");try{i=JSON.parse(o)}catch{continue}let l=i.name||e.name.replace(/\.json$/,"");a.push({name:l,type:"mcp",path:r.default.join("mcp",e.name),frontmatter:{name:l,version:i.version,description:i.description,updated:i.updated},isValid:!!(i.name&&i.command)})}}catch{}return a}(e)}}function l(){let e=i();return[...s(e,"skill"),...s(e,"agent")]}e.s(["getStoreAssets",()=>l,"scanStore",()=>o])},48044,e=>{"use strict";var t=e.i(22734),r=e.i(33405),n=e.i(14747),a=e.i(46676),i=e.i(73178);let s={outdatedAssets:.3,staleCards:.15,unresolvedProblems:.25,missingClaudeMd:.1,nonCompliantFrontmatter:.2};function o(e,t=0,r=0,n=0,a=s){let i=[],l=Math.max(r,1);i.push({name:"Outdated Assets",weight:a.outdatedAssets,value:t,maxValue:l});let c=Date.now(),u=[...e.backlog],d=u.filter(e=>(c-new Date(e.created_at).getTime())/864e5>14&&"done"!==e.status).length,f=Math.max(u.length,1);i.push({name:"Stale Cards",weight:a.staleCards,value:d,maxValue:f}),i.push({name:"Unresolved Problems",weight:a.unresolvedProblems,value:0,maxValue:1}),i.push({name:"Missing CLAUDE.md",weight:a.missingClaudeMd,value:+!e.hasClaudeMd,maxValue:1});let p=Math.max(r,1);i.push({name:"Non-compliant Frontmatter",weight:a.nonCompliantFrontmatter,value:n,maxValue:p});let m=0;for(let e of i)m+=Math.min(e.maxValue>0?e.value/e.maxValue:0,1)*e.weight;let g=Math.round(Math.max(0,(1-m)*100));return{score:g,level:g>=80?"green":g>=50?"amber":"red",factors:i}}var l=e.i(7367);function c(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let e=process.cwd();return e.endsWith("/web")||e.endsWith("\\web")?n.default.dirname(e):e}let u=c(),d=n.default.join(u,"projects","registry.json");async function f(){try{let e=await t.promises.readFile(d,"utf-8");return JSON.parse(e)}catch(e){throw console.error("Failed to load registry:",e),Error(`Failed to load registry from ${d}`)}}async function p(e){let r=JSON.stringify(e,null,2)+"\n";await t.promises.writeFile(d,r,"utf-8")}async function m(e){try{return(await t.promises.stat(e)).isDirectory()}catch{return!1}}async function g(e){try{let r=await t.promises.readFile(e,"utf-8");return JSON.parse(r)}catch{return null}}async function h(e,t,r){let a=n.default.join(e,"documentation","backlog.json"),i=await g(a);return i?i.map(e=>({...e,projectId:t,projectName:r})):[]}async function y(e,t){let r=n.default.join(e,"documentation","designs.json"),a=await g(r);return a?a.map(e=>({...e,projectId:t})):[]}async function j(e,t){let r=n.default.join(e,"documentation","features.json"),a=await g(r);return a?a.map(e=>({...e,projectId:t})):[]}async function x(e){let t=e.path;if(!await m(t))return{...e,backlog:[],designs:[],features:[],accessible:!1,error:`Path not accessible: ${t}`};let[n,i,s]=await Promise.all([h(t,e.id,e.name),y(t,e.id),j(t,e.id)]),o=(0,a.scanProjectAssets)(t,e.id),l=(0,a.detectPlatforms)(t),c=function(e){try{return(0,r.execSync)("git status --porcelain",{cwd:e,encoding:"utf-8",timeout:5e3}).split("\n").filter(e=>e.trim().length>0).length}catch{return -1}}(t);return{...e,backlog:n,designs:i,features:s,assets:o,platforms:l,gitUncommitted:c>=0?c:void 0,accessible:!0}}async function v(){let e=await f();for(let t=0;t<e.projects.length;t++)void 0===e.projects[t].order&&(e.projects[t].order=t);e.projects.sort((e,t)=>(e.order??0)-(t.order??0));let t=e.projects.map(e=>x(e)),r=await Promise.all(t),s=(0,i.getStoreAssets)(),u=["skill","agent"],d=0,p=[];for(let t of["claude","agents"])for(let r of u){let n=s.filter(e=>e.type===r),i=new Map;for(let n of e.projects){let e=(0,a.scanProviderAssets)(n.path,t);i.set(n.id,e.filter(e=>e.type===r))}let o=(0,a.buildStoreAssetMatrix)(n,i,e.projects,r);p.push(...o)}for(let e of p)for(let t of e.cells)"outdated"===t.status&&d++;for(let e of r){if(!e.accessible)continue;let t=0;for(let r of p)for(let n of r.cells)n.projectId===e.id&&"outdated"===n.status&&t++;e.healthScore=function(e,t,r=0,n){if(!t)return o(e,0,0,0,void 0);let a=[...t.skills,...t.agents];return o(e,r,a.length,a.filter(e=>!e.isValid).length,void 0)}(e,e.assets,t)}let m=0,h=0;for(let e of r){if(!e.accessible)continue;let t=n.default.join(e.path,"documentation","kanban.json"),r=await g(t);if(r?.stages){m+=(r.stages.backlog||[]).filter(e=>!e.archived).length;let e=(r.stages.implementation||[]).filter(e=>!e.archived),t=(r.stages.testing||[]).filter(e=>!e.archived);h+=e.length+t.length}}let y=r.reduce((e,t)=>e+(t.gitUncommitted&&t.gitUncommitted>0?t.gitUncommitted:0),0),j=(0,l.getBridgeUrl)();try{let e=await fetch(`${j}/stats`,{signal:AbortSignal.timeout(2e3)});if(e.ok){let t=await e.json(),n={};for(let e of t.sessions||[])if(e.isActive){let t=e.name.split(":")[0];n[t]=(n[t]||0)+1}for(let e of r)e.activeSessions=n[e.id]??0}}catch{}let v=c();return{projects:r,totalBacklogItems:m,activeItems:h,totalOutdatedAssets:d,totalUncommitted:y,lastRefresh:new Date().toISOString(),slycodeRoot:v,projectsDir:n.default.dirname(v)}}e.s(["getRepoRoot",()=>c,"loadDashboardData",()=>v,"loadRegistry",()=>f,"saveRegistry",()=>p],48044)},1365,e=>{"use strict";var t=e.i(22734),r=e.i(14747);let n=(0,e.i(7367).getSlycodeRoot)(),a=r.default.join(n,"documentation","events.json");function i(){try{if(!t.default.existsSync(a))return[];let e=t.default.readFileSync(a,"utf-8"),r=JSON.parse(e);return Array.isArray(r)?r:[]}catch{return[]}}function s(e){let n,s=i(),o={id:`evt-${Date.now()}-${Math.random().toString(36).slice(2,6)}`,...e};return s.push(o),s.length>500&&s.splice(0,s.length-500),n=r.default.dirname(a),t.default.existsSync(n)||t.default.mkdirSync(n,{recursive:!0}),t.default.writeFileSync(a,JSON.stringify(s,null,2)),o}function o(e={}){let t=i();if(e.project&&(t=t.filter(t=>t.project===e.project)),e.type&&(t=t.filter(t=>t.type===e.type)),e.since){let r=new Date(e.since).getTime();t=t.filter(e=>new Date(e.timestamp).getTime()>=r)}return t.reverse(),e.limit&&e.limit>0&&(t=t.slice(0,e.limit)),t}e.s(["appendEvent",()=>s,"queryEvents",()=>o])},71741,e=>{"use strict";var t=e.i(14747),r=e.i(48044);let n={hourly:36e5,daily:864e5,weekly:6048e5},a=null,i=0;async function s(){let e=Date.now();return a&&e-i<5e3||(a=await (0,r.loadRegistry)(),i=e),a}class o extends Error{code;constructor(e,t){super(e),this.code=t,this.name="ProjectResolutionError"}}async function l(e){if(e===t.default.basename((0,r.getRepoRoot)()).replace(/_/g,"-"))return(0,r.getRepoRoot)();let n=(await s()).projects.find(t=>t.id===e);if(!n)throw new o(`Project '${e}' not found in registry`,"NOT_FOUND");return n.path}async function c(e){let r=await l(e);return t.default.join(r,"documentation","kanban.json")}async function u(e){let r=await l(e);return t.default.join(r,"documentation","archive")}async function d(e,r,n=1){let a=await u(e),i=String(n).padStart(3,"0");return t.default.join(a,`kanban_${r}_${i}.json`)}async function f(e){let r=await u(e),a=[];for(let e=1;e<=10;e++){let n=String(e).padStart(3,"0");a.push(t.default.join(r,`kanban_${n}.json`))}for(let e of Object.keys(n))a.push(t.default.join(r,`kanban_${e}.json`));return a}async function p(e){return e?c(e):t.default.join((0,r.getRepoRoot)(),"documentation")}e.s(["BACKUP_TIERS",0,n,"ProjectResolutionError",()=>o,"getArchiveDir",()=>u,"getKanbanPath",()=>c,"getLegacyBackupPaths",()=>f,"getTieredBackupPath",()=>d,"getWatchPath",()=>p,"resolveProjectRoot",()=>l])},44264,e=>{e.v(e=>Promise.resolve().then(()=>e(33405)))}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__d6362272._.js.map
@@ -1,4 +1,4 @@
1
- module.exports=[18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},7367,e=>{"use strict";var t=e.i(14747),r=e.i(22734);function a(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let e=process.cwd();return(console.warn("[paths] SLYCODE_HOME not set in production — falling back to cwd:",e),e.endsWith("/web")||e.endsWith("\\web"))?t.default.dirname(e):e}function n(){let e=a(),n=t.default.join(e,"node_modules","@slycode","slycode","dist");return r.default.existsSync(n)?n:e}function s(){return process.env.BRIDGE_URL?process.env.BRIDGE_URL:"http://127.0.0.1:3004"}e.s(["getBridgeUrl",()=>s,"getPackageDir",()=>n,"getSlycodeRoot",()=>a])},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},73178,e=>{"use strict";var t=e.i(22734),r=e.i(14747),a=e.i(46676),n=e.i(7367);function s(){return r.default.join((0,n.getSlycodeRoot)(),"store")}function i(){for(let e of[r.default.join((0,n.getSlycodeRoot)(),"build","store-manifest.js"),r.default.join((0,n.getSlycodeRoot)(),"node_modules","@slycode","slycode","build","store-manifest.js")])try{if(t.default.existsSync(e)){let r=t.default.readFileSync(e,"utf-8"),a={};Function("module","exports",r)(a,a);let n=a.exports;if(n?.skills)return{skills:n.skills,actions:n.actions||[],agents:n.agents||[],mcp:n.mcp||[]}}}catch{}return null}function o(e,n){let s=[],i="skill"===n?"skills":"agents",o=r.default.join(e,i);try{if(!t.default.existsSync(o))return s;for(let e of t.default.readdirSync(o,{withFileTypes:!0})){let l,d;if("skill"===n){if(!e.isDirectory()||(l=r.default.join(o,e.name,"SKILL.md"),d=r.default.join(i,e.name,"SKILL.md"),!t.default.existsSync(l)))continue}else{if(!e.isFile()||!e.name.endsWith(".md"))continue;l=r.default.join(o,e.name),d=r.default.join(i,e.name)}let u=t.default.readFileSync(l,"utf-8"),c=(0,a.parseFrontmatter)(u),p=c?.name||e.name.replace(/\.md$/,"");s.push({name:p,type:n,path:d,frontmatter:c,isValid:(0,a.validateFrontmatter)(c)})}}catch{}return s.sort((e,t)=>e.name.localeCompare(t.name))}function l(){let e=s(),a=i(),n=o(e,"skill"),l=o(e,"agent"),d=function(e){let a=r.default.join(e,"mcp"),n=[];try{if(!t.default.existsSync(a))return n;for(let e of t.default.readdirSync(a,{withFileTypes:!0})){let s;if(!e.isFile()||!e.name.endsWith(".json"))continue;let i=r.default.join(a,e.name),o=t.default.readFileSync(i,"utf-8");try{s=JSON.parse(o)}catch{continue}let l=s.name||e.name.replace(/\.json$/,"");n.push({name:l,type:"mcp",path:r.default.join("mcp",e.name),frontmatter:{name:l,version:s.version,description:s.description,updated:s.updated},isValid:!!(s.name&&s.command)})}}catch{}return n}(e);if(a){if(a.skills){let e=new Set(a.skills);n=n.filter(t=>e.has(t.name))}if(a.agents){let e=new Set(a.agents);l=l.filter(t=>e.has(t.name))}if(a.mcp){let e=new Set(a.mcp);d=d.filter(t=>e.has(t.name))}}return{skills:n,agents:l,mcp:d}}function d(){let e=s(),t=i(),r=o(e,"skill"),a=o(e,"agent");if(t){if(t.skills){let e=new Set(t.skills);r=r.filter(t=>e.has(t.name))}if(t.agents){let e=new Set(t.agents);a=a.filter(t=>e.has(t.name))}}return[...r,...a]}e.s(["getStoreAssets",()=>d,"scanStore",()=>l])},48044,e=>{"use strict";var t=e.i(22734),r=e.i(33405),a=e.i(14747),n=e.i(46676),s=e.i(73178);let i={outdatedAssets:.3,staleCards:.15,unresolvedProblems:.25,missingClaudeMd:.1,nonCompliantFrontmatter:.2};function o(e,t=0,r=0,a=0,n=i){let s=[],l=Math.max(r,1);s.push({name:"Outdated Assets",weight:n.outdatedAssets,value:t,maxValue:l});let d=Date.now(),u=[...e.backlog],c=u.filter(e=>(d-new Date(e.created_at).getTime())/864e5>14&&"done"!==e.status).length,p=Math.max(u.length,1);s.push({name:"Stale Cards",weight:n.staleCards,value:c,maxValue:p}),s.push({name:"Unresolved Problems",weight:n.unresolvedProblems,value:0,maxValue:1}),s.push({name:"Missing CLAUDE.md",weight:n.missingClaudeMd,value:+!e.hasClaudeMd,maxValue:1});let f=Math.max(r,1);s.push({name:"Non-compliant Frontmatter",weight:n.nonCompliantFrontmatter,value:a,maxValue:f});let m=0;for(let e of s)m+=Math.min(e.maxValue>0?e.value/e.maxValue:0,1)*e.weight;let h=Math.round(Math.max(0,(1-m)*100));return{score:h,level:h>=80?"green":h>=50?"amber":"red",factors:s}}var l=e.i(7367);function d(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let e=process.cwd();return e.endsWith("/web")||e.endsWith("\\web")?a.default.dirname(e):e}let u=d(),c=a.default.join(u,"projects","registry.json");async function p(){try{let e=await t.promises.readFile(c,"utf-8");return JSON.parse(e)}catch(e){throw console.error("Failed to load registry:",e),Error(`Failed to load registry from ${c}`)}}async function f(e){let r=JSON.stringify(e,null,2)+"\n";await t.promises.writeFile(c,r,"utf-8")}async function m(e){try{return(await t.promises.stat(e)).isDirectory()}catch{return!1}}async function h(e){try{let r=await t.promises.readFile(e,"utf-8");return JSON.parse(r)}catch{return null}}async function g(e,t,r){let n=a.default.join(e,"documentation","backlog.json"),s=await h(n);return s?s.map(e=>({...e,projectId:t,projectName:r})):[]}async function x(e,t){let r=a.default.join(e,"documentation","designs.json"),n=await h(r);return n?n.map(e=>({...e,projectId:t})):[]}async function y(e,t){let r=a.default.join(e,"documentation","features.json"),n=await h(r);return n?n.map(e=>({...e,projectId:t})):[]}async function v(e){let t=e.path;if(!await m(t))return{...e,backlog:[],designs:[],features:[],accessible:!1,error:`Path not accessible: ${t}`};let[a,s,i]=await Promise.all([g(t,e.id,e.name),x(t,e.id),y(t,e.id)]),o=(0,n.scanProjectAssets)(t,e.id),l=(0,n.detectPlatforms)(t),d=function(e){try{return(0,r.execSync)("git status --porcelain",{cwd:e,encoding:"utf-8",timeout:5e3}).split("\n").filter(e=>e.trim().length>0).length}catch{return -1}}(t);return{...e,backlog:a,designs:s,features:i,assets:o,platforms:l,gitUncommitted:d>=0?d:void 0,accessible:!0}}async function w(){let e=await p();for(let t=0;t<e.projects.length;t++)void 0===e.projects[t].order&&(e.projects[t].order=t);e.projects.sort((e,t)=>(e.order??0)-(t.order??0));let t=e.projects.map(e=>v(e)),r=await Promise.all(t),i=(0,s.getStoreAssets)(),u=["skill","agent"],c=0,f=[];for(let t of["claude","agents"])for(let r of u){let a=i.filter(e=>e.type===r),s=new Map;for(let a of e.projects){let e=(0,n.scanProviderAssets)(a.path,t);s.set(a.id,e.filter(e=>e.type===r))}let o=(0,n.buildStoreAssetMatrix)(a,s,e.projects,r);f.push(...o)}for(let e of f)for(let t of e.cells)"outdated"===t.status&&c++;for(let e of r){if(!e.accessible)continue;let t=0;for(let r of f)for(let a of r.cells)a.projectId===e.id&&"outdated"===a.status&&t++;e.healthScore=function(e,t,r=0,a){if(!t)return o(e,0,0,0,void 0);let n=[...t.skills,...t.agents];return o(e,r,n.length,n.filter(e=>!e.isValid).length,void 0)}(e,e.assets,t)}let m=0,g=0;for(let e of r){if(!e.accessible)continue;let t=a.default.join(e.path,"documentation","kanban.json"),r=await h(t);if(r?.stages){m+=(r.stages.backlog||[]).filter(e=>!e.archived).length;let e=(r.stages.implementation||[]).filter(e=>!e.archived),t=(r.stages.testing||[]).filter(e=>!e.archived);g+=e.length+t.length}}let x=r.reduce((e,t)=>e+(t.gitUncommitted&&t.gitUncommitted>0?t.gitUncommitted:0),0),y=(0,l.getBridgeUrl)();try{let e=await fetch(`${y}/stats`,{signal:AbortSignal.timeout(2e3)});if(e.ok){let t=await e.json(),a={};for(let e of t.sessions||[])if(e.isActive){let t=e.name.split(":")[0];a[t]=(a[t]||0)+1}for(let e of r)e.activeSessions=a[e.id]??0}}catch{}let w=d();return{projects:r,totalBacklogItems:m,activeItems:g,totalOutdatedAssets:c,totalUncommitted:x,lastRefresh:new Date().toISOString(),slycodeRoot:w,projectsDir:a.default.dirname(w)}}e.s(["getRepoRoot",()=>d,"loadDashboardData",()=>w,"loadRegistry",()=>p,"saveRegistry",()=>f],48044)},4088,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),s=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),d=e.i(87718),u=e.i(95169),c=e.i(47587),p=e.i(66012),f=e.i(70101),m=e.i(74838),h=e.i(10372),g=e.i(93695);e.i(52474);var x=e.i(220),y=e.i(89171),v=e.i(22734),w=e.i(14747),R=e.i(7367),S=e.i(48044),j=e.i(41563);async function b(e){try{var t,r,a;let{assetName:n,assetType:s,provider:i,projectId:o}=await e.json();if(!n||!s||!i)return y.NextResponse.json({error:"assetName, assetType, and provider are required"},{status:400});let l=(0,R.getSlycodeRoot)(),d="",u="skill"===s?"skills":"agents",c="skill"===s?w.default.join(l,"store",u,n,"SKILL.md"):w.default.join(l,"store",u,`${n}.md`);if(v.default.existsSync(c))d=c;else if(o){let e=(await (0,S.loadRegistry)()).projects.find(e=>e.id===o);if(e){let t=(0,j.getProviderAssetFilePath)(e.path,i,s,n);if(t){let e="skill"===s?w.default.join(t,"SKILL.md"):t;v.default.existsSync(e)&&(d=e)}}}if(!d)return y.NextResponse.json({error:`Could not find asset '${n}' (${s})`},{status:404});let p=(t=n,r=s,a=d,`Fix the frontmatter compliance of this ${r} asset.
1
+ module.exports=[18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},7367,e=>{"use strict";var t=e.i(14747),r=e.i(22734);function a(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let e=process.cwd();return(console.warn("[paths] SLYCODE_HOME not set in production — falling back to cwd:",e),e.endsWith("/web")||e.endsWith("\\web"))?t.default.dirname(e):e}function n(){let e=a(),n=t.default.join(e,"node_modules","@slycode","slycode","dist");return r.default.existsSync(n)?n:e}function s(){return process.env.BRIDGE_URL?process.env.BRIDGE_URL:"http://127.0.0.1:3004"}e.s(["getBridgeUrl",()=>s,"getPackageDir",()=>n,"getSlycodeRoot",()=>a])},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},73178,e=>{"use strict";var t=e.i(22734),r=e.i(14747),a=e.i(46676),n=e.i(7367);function s(){return r.default.join((0,n.getSlycodeRoot)(),"store")}function i(e,n){let s=[],i="skill"===n?"skills":"agents",o=r.default.join(e,i);try{if(!t.default.existsSync(o))return s;for(let e of t.default.readdirSync(o,{withFileTypes:!0})){let l,d;if("skill"===n){if(!e.isDirectory()||(l=r.default.join(o,e.name,"SKILL.md"),d=r.default.join(i,e.name,"SKILL.md"),!t.default.existsSync(l)))continue}else{if(!e.isFile()||!e.name.endsWith(".md"))continue;l=r.default.join(o,e.name),d=r.default.join(i,e.name)}let u=t.default.readFileSync(l,"utf-8"),c=(0,a.parseFrontmatter)(u),p=c?.name||e.name.replace(/\.md$/,"");s.push({name:p,type:n,path:d,frontmatter:c,isValid:(0,a.validateFrontmatter)(c)})}}catch{}return s.sort((e,t)=>e.name.localeCompare(t.name))}function o(){let e=s(),a=i(e,"skill");return{skills:a,agents:i(e,"agent"),mcp:function(e){let a=r.default.join(e,"mcp"),n=[];try{if(!t.default.existsSync(a))return n;for(let e of t.default.readdirSync(a,{withFileTypes:!0})){let s;if(!e.isFile()||!e.name.endsWith(".json"))continue;let i=r.default.join(a,e.name),o=t.default.readFileSync(i,"utf-8");try{s=JSON.parse(o)}catch{continue}let l=s.name||e.name.replace(/\.json$/,"");n.push({name:l,type:"mcp",path:r.default.join("mcp",e.name),frontmatter:{name:l,version:s.version,description:s.description,updated:s.updated},isValid:!!(s.name&&s.command)})}}catch{}return n}(e)}}function l(){let e=s();return[...i(e,"skill"),...i(e,"agent")]}e.s(["getStoreAssets",()=>l,"scanStore",()=>o])},48044,e=>{"use strict";var t=e.i(22734),r=e.i(33405),a=e.i(14747),n=e.i(46676),s=e.i(73178);let i={outdatedAssets:.3,staleCards:.15,unresolvedProblems:.25,missingClaudeMd:.1,nonCompliantFrontmatter:.2};function o(e,t=0,r=0,a=0,n=i){let s=[],l=Math.max(r,1);s.push({name:"Outdated Assets",weight:n.outdatedAssets,value:t,maxValue:l});let d=Date.now(),u=[...e.backlog],c=u.filter(e=>(d-new Date(e.created_at).getTime())/864e5>14&&"done"!==e.status).length,p=Math.max(u.length,1);s.push({name:"Stale Cards",weight:n.staleCards,value:c,maxValue:p}),s.push({name:"Unresolved Problems",weight:n.unresolvedProblems,value:0,maxValue:1}),s.push({name:"Missing CLAUDE.md",weight:n.missingClaudeMd,value:+!e.hasClaudeMd,maxValue:1});let f=Math.max(r,1);s.push({name:"Non-compliant Frontmatter",weight:n.nonCompliantFrontmatter,value:a,maxValue:f});let m=0;for(let e of s)m+=Math.min(e.maxValue>0?e.value/e.maxValue:0,1)*e.weight;let h=Math.round(Math.max(0,(1-m)*100));return{score:h,level:h>=80?"green":h>=50?"amber":"red",factors:s}}var l=e.i(7367);function d(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let e=process.cwd();return e.endsWith("/web")||e.endsWith("\\web")?a.default.dirname(e):e}let u=d(),c=a.default.join(u,"projects","registry.json");async function p(){try{let e=await t.promises.readFile(c,"utf-8");return JSON.parse(e)}catch(e){throw console.error("Failed to load registry:",e),Error(`Failed to load registry from ${c}`)}}async function f(e){let r=JSON.stringify(e,null,2)+"\n";await t.promises.writeFile(c,r,"utf-8")}async function m(e){try{return(await t.promises.stat(e)).isDirectory()}catch{return!1}}async function h(e){try{let r=await t.promises.readFile(e,"utf-8");return JSON.parse(r)}catch{return null}}async function g(e,t,r){let n=a.default.join(e,"documentation","backlog.json"),s=await h(n);return s?s.map(e=>({...e,projectId:t,projectName:r})):[]}async function x(e,t){let r=a.default.join(e,"documentation","designs.json"),n=await h(r);return n?n.map(e=>({...e,projectId:t})):[]}async function y(e,t){let r=a.default.join(e,"documentation","features.json"),n=await h(r);return n?n.map(e=>({...e,projectId:t})):[]}async function v(e){let t=e.path;if(!await m(t))return{...e,backlog:[],designs:[],features:[],accessible:!1,error:`Path not accessible: ${t}`};let[a,s,i]=await Promise.all([g(t,e.id,e.name),x(t,e.id),y(t,e.id)]),o=(0,n.scanProjectAssets)(t,e.id),l=(0,n.detectPlatforms)(t),d=function(e){try{return(0,r.execSync)("git status --porcelain",{cwd:e,encoding:"utf-8",timeout:5e3}).split("\n").filter(e=>e.trim().length>0).length}catch{return -1}}(t);return{...e,backlog:a,designs:s,features:i,assets:o,platforms:l,gitUncommitted:d>=0?d:void 0,accessible:!0}}async function w(){let e=await p();for(let t=0;t<e.projects.length;t++)void 0===e.projects[t].order&&(e.projects[t].order=t);e.projects.sort((e,t)=>(e.order??0)-(t.order??0));let t=e.projects.map(e=>v(e)),r=await Promise.all(t),i=(0,s.getStoreAssets)(),u=["skill","agent"],c=0,f=[];for(let t of["claude","agents"])for(let r of u){let a=i.filter(e=>e.type===r),s=new Map;for(let a of e.projects){let e=(0,n.scanProviderAssets)(a.path,t);s.set(a.id,e.filter(e=>e.type===r))}let o=(0,n.buildStoreAssetMatrix)(a,s,e.projects,r);f.push(...o)}for(let e of f)for(let t of e.cells)"outdated"===t.status&&c++;for(let e of r){if(!e.accessible)continue;let t=0;for(let r of f)for(let a of r.cells)a.projectId===e.id&&"outdated"===a.status&&t++;e.healthScore=function(e,t,r=0,a){if(!t)return o(e,0,0,0,void 0);let n=[...t.skills,...t.agents];return o(e,r,n.length,n.filter(e=>!e.isValid).length,void 0)}(e,e.assets,t)}let m=0,g=0;for(let e of r){if(!e.accessible)continue;let t=a.default.join(e.path,"documentation","kanban.json"),r=await h(t);if(r?.stages){m+=(r.stages.backlog||[]).filter(e=>!e.archived).length;let e=(r.stages.implementation||[]).filter(e=>!e.archived),t=(r.stages.testing||[]).filter(e=>!e.archived);g+=e.length+t.length}}let x=r.reduce((e,t)=>e+(t.gitUncommitted&&t.gitUncommitted>0?t.gitUncommitted:0),0),y=(0,l.getBridgeUrl)();try{let e=await fetch(`${y}/stats`,{signal:AbortSignal.timeout(2e3)});if(e.ok){let t=await e.json(),a={};for(let e of t.sessions||[])if(e.isActive){let t=e.name.split(":")[0];a[t]=(a[t]||0)+1}for(let e of r)e.activeSessions=a[e.id]??0}}catch{}let w=d();return{projects:r,totalBacklogItems:m,activeItems:g,totalOutdatedAssets:c,totalUncommitted:x,lastRefresh:new Date().toISOString(),slycodeRoot:w,projectsDir:a.default.dirname(w)}}e.s(["getRepoRoot",()=>d,"loadDashboardData",()=>w,"loadRegistry",()=>p,"saveRegistry",()=>f],48044)},4088,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),s=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),d=e.i(87718),u=e.i(95169),c=e.i(47587),p=e.i(66012),f=e.i(70101),m=e.i(74838),h=e.i(10372),g=e.i(93695);e.i(52474);var x=e.i(220),y=e.i(89171),v=e.i(22734),w=e.i(14747),R=e.i(7367),j=e.i(48044),b=e.i(41563);async function S(e){try{var t,r,a;let{assetName:n,assetType:s,provider:i,projectId:o}=await e.json();if(!n||!s||!i)return y.NextResponse.json({error:"assetName, assetType, and provider are required"},{status:400});let l=(0,R.getSlycodeRoot)(),d="",u="skill"===s?"skills":"agents",c="skill"===s?w.default.join(l,"store",u,n,"SKILL.md"):w.default.join(l,"store",u,`${n}.md`);if(v.default.existsSync(c))d=c;else if(o){let e=(await (0,j.loadRegistry)()).projects.find(e=>e.id===o);if(e){let t=(0,b.getProviderAssetFilePath)(e.path,i,s,n);if(t){let e="skill"===s?w.default.join(t,"SKILL.md"):t;v.default.existsSync(e)&&(d=e)}}}if(!d)return y.NextResponse.json({error:`Could not find asset '${n}' (${s})`},{status:404});let p=(t=n,r=s,a=d,`Fix the frontmatter compliance of this ${r} asset.
2
2
 
3
3
  **File:** \`${a}\`
4
4
 
@@ -22,6 +22,6 @@ Rules:
22
22
  - \`description\` should be a concise summary inferred from the file content
23
23
  - Do NOT modify the body content below the frontmatter
24
24
 
25
- Write the corrected file back to \`${a}\`.`);return y.NextResponse.json({prompt:p,assetPath:d})}catch(e){return console.error("Fix prompt generation failed:",e),y.NextResponse.json({error:"Failed to generate fix prompt",details:String(e)},{status:500})}}e.s(["POST",()=>b],63646);var E=e.i(63646);let k=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/cli-assets/fix/route",pathname:"/api/cli-assets/fix",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-assets/fix/route.ts",nextConfigOutput:"standalone",userland:E}),{workAsyncStorage:C,workUnitAsyncStorage:A,serverHooks:O}=k;function P(){return(0,a.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:A})}async function N(e,t,a){k.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/cli-assets/fix/route";y=y.replace(/\/index$/,"")||"/";let v=await k.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:w,params:R,nextConfig:S,parsedUrl:j,isDraftMode:b,prerenderManifest:E,routerServerContext:C,isOnDemandRevalidate:A,revalidateOnlyGenerated:O,resolvedPathname:P,clientReferenceManifest:N,serverActionsManifest:D}=v,M=(0,o.normalizeAppPath)(y),_=!!(E.dynamicRoutes[M]||E.routes[P]),F=async()=>((null==C?void 0:C.render404)?await C.render404(e,t,j,!1):t.end("This page could not be found"),null);if(_&&!b){let e=!!E.routes[P],t=E.dynamicRoutes[M];if(t&&!1===t.fallback&&!e){if(S.experimental.adapterPath)return await F();throw new g.NoFallbackError}}let T=null;!_||k.isDev||b||(T="/index"===(T=P)?"/":T);let q=!0===k.isDev||!_,U=_&&!q;D&&N&&(0,i.setManifestsSingleton)({page:y,clientReferenceManifest:N,serverActionsManifest:D});let I=e.method||"GET",L=(0,s.getTracer)(),$=L.getActiveScopeSpan(),H={params:R,prerenderManifest:E,renderOpts:{experimental:{authInterrupts:!!S.experimental.authInterrupts},cacheComponents:!!S.cacheComponents,supportsDynamicResponse:q,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:S.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>k.onRequestError(e,t,a,n,C)},sharedContext:{buildId:w}},V=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),Y=d.NextRequestAdapter.fromNodeNextRequest(V,(0,d.signalFromNodeResponse)(t));try{let i=async e=>k.handle(Y,H).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=L.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${I} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${I} ${y}`)}),o=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var s,l;let d=async({previousCacheEntry:r})=>{try{if(!o&&A&&O&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await i(n);e.fetchMetrics=H.renderOpts.fetchMetrics;let l=H.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let d=H.renderOpts.collectedTags;if(!_)return await (0,p.sendResponse)(V,K,s,H.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(s.headers);d&&(t[h.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==H.renderOpts.collectedRevalidate&&!(H.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&H.renderOpts.collectedRevalidate,a=void 0===H.renderOpts.collectedExpire||H.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:H.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await k.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:A})},!1,C),t}},u=await k.handleResponse({req:e,nextConfig:S,cacheKey:T,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:O,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:o});if(!_)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",A?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let g=(0,f.fromNodeOutgoingHttpHeaders)(u.value.headers);return o&&_||g.delete(h.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||g.get("Cache-Control")||g.set("Cache-Control",(0,m.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(V,K,new Response(u.value.body,{headers:g,status:u.value.status||200})),null};$?await l($):await L.withPropagatedContext(e.headers,()=>L.trace(u.BaseServerSpan.handleRequest,{spanName:`${I} ${y}`,kind:s.SpanKind.SERVER,attributes:{"http.method":I,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await k.onRequestError(e,t,{routerKind:"App Router",routePath:M,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:A})},!1,C),_)throw t;return await (0,p.sendResponse)(V,K,new Response(null,{status:500})),null}}e.s(["handler",()=>N,"patchFetch",()=>P,"routeModule",()=>k,"serverHooks",()=>O,"workAsyncStorage",()=>C,"workUnitAsyncStorage",()=>A],4088)}];
25
+ Write the corrected file back to \`${a}\`.`);return y.NextResponse.json({prompt:p,assetPath:d})}catch(e){return console.error("Fix prompt generation failed:",e),y.NextResponse.json({error:"Failed to generate fix prompt",details:String(e)},{status:500})}}e.s(["POST",()=>S],63646);var E=e.i(63646);let C=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/cli-assets/fix/route",pathname:"/api/cli-assets/fix",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-assets/fix/route.ts",nextConfigOutput:"standalone",userland:E}),{workAsyncStorage:k,workUnitAsyncStorage:A,serverHooks:O}=C;function P(){return(0,a.patchFetch)({workAsyncStorage:k,workUnitAsyncStorage:A})}async function N(e,t,a){C.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/cli-assets/fix/route";y=y.replace(/\/index$/,"")||"/";let v=await C.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:w,params:R,nextConfig:j,parsedUrl:b,isDraftMode:S,prerenderManifest:E,routerServerContext:k,isOnDemandRevalidate:A,revalidateOnlyGenerated:O,resolvedPathname:P,clientReferenceManifest:N,serverActionsManifest:D}=v,M=(0,o.normalizeAppPath)(y),_=!!(E.dynamicRoutes[M]||E.routes[P]),T=async()=>((null==k?void 0:k.render404)?await k.render404(e,t,b,!1):t.end("This page could not be found"),null);if(_&&!S){let e=!!E.routes[P],t=E.dynamicRoutes[M];if(t&&!1===t.fallback&&!e){if(j.experimental.adapterPath)return await T();throw new g.NoFallbackError}}let F=null;!_||C.isDev||S||(F="/index"===(F=P)?"/":F);let q=!0===C.isDev||!_,U=_&&!q;D&&N&&(0,i.setManifestsSingleton)({page:y,clientReferenceManifest:N,serverActionsManifest:D});let I=e.method||"GET",L=(0,s.getTracer)(),$=L.getActiveScopeSpan(),H={params:R,prerenderManifest:E,renderOpts:{experimental:{authInterrupts:!!j.experimental.authInterrupts},cacheComponents:!!j.cacheComponents,supportsDynamicResponse:q,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:j.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>C.onRequestError(e,t,a,n,k)},sharedContext:{buildId:w}},V=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),Y=d.NextRequestAdapter.fromNodeNextRequest(V,(0,d.signalFromNodeResponse)(t));try{let i=async e=>C.handle(Y,H).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=L.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${I} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${I} ${y}`)}),o=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var s,l;let d=async({previousCacheEntry:r})=>{try{if(!o&&A&&O&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await i(n);e.fetchMetrics=H.renderOpts.fetchMetrics;let l=H.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let d=H.renderOpts.collectedTags;if(!_)return await (0,p.sendResponse)(V,K,s,H.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(s.headers);d&&(t[h.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==H.renderOpts.collectedRevalidate&&!(H.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&H.renderOpts.collectedRevalidate,a=void 0===H.renderOpts.collectedExpire||H.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:H.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await C.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:A})},!1,k),t}},u=await C.handleResponse({req:e,nextConfig:j,cacheKey:F,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:O,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:o});if(!_)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",A?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let g=(0,f.fromNodeOutgoingHttpHeaders)(u.value.headers);return o&&_||g.delete(h.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||g.get("Cache-Control")||g.set("Cache-Control",(0,m.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(V,K,new Response(u.value.body,{headers:g,status:u.value.status||200})),null};$?await l($):await L.withPropagatedContext(e.headers,()=>L.trace(u.BaseServerSpan.handleRequest,{spanName:`${I} ${y}`,kind:s.SpanKind.SERVER,attributes:{"http.method":I,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:M,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:A})},!1,k),_)throw t;return await (0,p.sendResponse)(V,K,new Response(null,{status:500})),null}}e.s(["handler",()=>N,"patchFetch",()=>P,"routeModule",()=>C,"serverHooks",()=>O,"workAsyncStorage",()=>k,"workUnitAsyncStorage",()=>A],4088)}];
26
26
 
27
27
  //# sourceMappingURL=%5Broot-of-the-server%5D__de1277ee._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},7367,e=>{"use strict";var t=e.i(14747),r=e.i(22734);function a(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let e=process.cwd();return(console.warn("[paths] SLYCODE_HOME not set in production — falling back to cwd:",e),e.endsWith("/web")||e.endsWith("\\web"))?t.default.dirname(e):e}function s(){let e=a(),s=t.default.join(e,"node_modules","@slycode","slycode","dist");return r.default.existsSync(s)?s:e}function n(){return process.env.BRIDGE_URL?process.env.BRIDGE_URL:"http://127.0.0.1:3004"}e.s(["getBridgeUrl",()=>n,"getPackageDir",()=>s,"getSlycodeRoot",()=>a])},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},73178,e=>{"use strict";var t=e.i(22734),r=e.i(14747),a=e.i(46676),s=e.i(7367);function n(){return r.default.join((0,s.getSlycodeRoot)(),"store")}function i(){for(let e of[r.default.join((0,s.getSlycodeRoot)(),"build","store-manifest.js"),r.default.join((0,s.getSlycodeRoot)(),"node_modules","@slycode","slycode","build","store-manifest.js")])try{if(t.default.existsSync(e)){let r=t.default.readFileSync(e,"utf-8"),a={};Function("module","exports",r)(a,a);let s=a.exports;if(s?.skills)return{skills:s.skills,actions:s.actions||[],agents:s.agents||[],mcp:s.mcp||[]}}}catch{}return null}function o(e,s){let n=[],i="skill"===s?"skills":"agents",o=r.default.join(e,i);try{if(!t.default.existsSync(o))return n;for(let e of t.default.readdirSync(o,{withFileTypes:!0})){let l,d;if("skill"===s){if(!e.isDirectory()||(l=r.default.join(o,e.name,"SKILL.md"),d=r.default.join(i,e.name,"SKILL.md"),!t.default.existsSync(l)))continue}else{if(!e.isFile()||!e.name.endsWith(".md"))continue;l=r.default.join(o,e.name),d=r.default.join(i,e.name)}let u=t.default.readFileSync(l,"utf-8"),c=(0,a.parseFrontmatter)(u),p=c?.name||e.name.replace(/\.md$/,"");n.push({name:p,type:s,path:d,frontmatter:c,isValid:(0,a.validateFrontmatter)(c)})}}catch{}return n.sort((e,t)=>e.name.localeCompare(t.name))}function l(){let e=n(),a=i(),s=o(e,"skill"),l=o(e,"agent"),d=function(e){let a=r.default.join(e,"mcp"),s=[];try{if(!t.default.existsSync(a))return s;for(let e of t.default.readdirSync(a,{withFileTypes:!0})){let n;if(!e.isFile()||!e.name.endsWith(".json"))continue;let i=r.default.join(a,e.name),o=t.default.readFileSync(i,"utf-8");try{n=JSON.parse(o)}catch{continue}let l=n.name||e.name.replace(/\.json$/,"");s.push({name:l,type:"mcp",path:r.default.join("mcp",e.name),frontmatter:{name:l,version:n.version,description:n.description,updated:n.updated},isValid:!!(n.name&&n.command)})}}catch{}return s}(e);if(a){if(a.skills){let e=new Set(a.skills);s=s.filter(t=>e.has(t.name))}if(a.agents){let e=new Set(a.agents);l=l.filter(t=>e.has(t.name))}if(a.mcp){let e=new Set(a.mcp);d=d.filter(t=>e.has(t.name))}}return{skills:s,agents:l,mcp:d}}function d(){let e=n(),t=i(),r=o(e,"skill"),a=o(e,"agent");if(t){if(t.skills){let e=new Set(t.skills);r=r.filter(t=>e.has(t.name))}if(t.agents){let e=new Set(t.agents);a=a.filter(t=>e.has(t.name))}}return[...r,...a]}e.s(["getStoreAssets",()=>d,"scanStore",()=>l])},48044,e=>{"use strict";var t=e.i(22734),r=e.i(33405),a=e.i(14747),s=e.i(46676),n=e.i(73178);let i={outdatedAssets:.3,staleCards:.15,unresolvedProblems:.25,missingClaudeMd:.1,nonCompliantFrontmatter:.2};function o(e,t=0,r=0,a=0,s=i){let n=[],l=Math.max(r,1);n.push({name:"Outdated Assets",weight:s.outdatedAssets,value:t,maxValue:l});let d=Date.now(),u=[...e.backlog],c=u.filter(e=>(d-new Date(e.created_at).getTime())/864e5>14&&"done"!==e.status).length,p=Math.max(u.length,1);n.push({name:"Stale Cards",weight:s.staleCards,value:c,maxValue:p}),n.push({name:"Unresolved Problems",weight:s.unresolvedProblems,value:0,maxValue:1}),n.push({name:"Missing CLAUDE.md",weight:s.missingClaudeMd,value:+!e.hasClaudeMd,maxValue:1});let f=Math.max(r,1);n.push({name:"Non-compliant Frontmatter",weight:s.nonCompliantFrontmatter,value:a,maxValue:f});let m=0;for(let e of n)m+=Math.min(e.maxValue>0?e.value/e.maxValue:0,1)*e.weight;let h=Math.round(Math.max(0,(1-m)*100));return{score:h,level:h>=80?"green":h>=50?"amber":"red",factors:n}}var l=e.i(7367);function d(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let e=process.cwd();return e.endsWith("/web")||e.endsWith("\\web")?a.default.dirname(e):e}let u=d(),c=a.default.join(u,"projects","registry.json");async function p(){try{let e=await t.promises.readFile(c,"utf-8");return JSON.parse(e)}catch(e){throw console.error("Failed to load registry:",e),Error(`Failed to load registry from ${c}`)}}async function f(e){let r=JSON.stringify(e,null,2)+"\n";await t.promises.writeFile(c,r,"utf-8")}async function m(e){try{return(await t.promises.stat(e)).isDirectory()}catch{return!1}}async function h(e){try{let r=await t.promises.readFile(e,"utf-8");return JSON.parse(r)}catch{return null}}async function g(e,t,r){let s=a.default.join(e,"documentation","backlog.json"),n=await h(s);return n?n.map(e=>({...e,projectId:t,projectName:r})):[]}async function x(e,t){let r=a.default.join(e,"documentation","designs.json"),s=await h(r);return s?s.map(e=>({...e,projectId:t})):[]}async function y(e,t){let r=a.default.join(e,"documentation","features.json"),s=await h(r);return s?s.map(e=>({...e,projectId:t})):[]}async function w(e){let t=e.path;if(!await m(t))return{...e,backlog:[],designs:[],features:[],accessible:!1,error:`Path not accessible: ${t}`};let[a,n,i]=await Promise.all([g(t,e.id,e.name),x(t,e.id),y(t,e.id)]),o=(0,s.scanProjectAssets)(t,e.id),l=(0,s.detectPlatforms)(t),d=function(e){try{return(0,r.execSync)("git status --porcelain",{cwd:e,encoding:"utf-8",timeout:5e3}).split("\n").filter(e=>e.trim().length>0).length}catch{return -1}}(t);return{...e,backlog:a,designs:n,features:i,assets:o,platforms:l,gitUncommitted:d>=0?d:void 0,accessible:!0}}async function v(){let e=await p();for(let t=0;t<e.projects.length;t++)void 0===e.projects[t].order&&(e.projects[t].order=t);e.projects.sort((e,t)=>(e.order??0)-(t.order??0));let t=e.projects.map(e=>w(e)),r=await Promise.all(t),i=(0,n.getStoreAssets)(),u=["skill","agent"],c=0,f=[];for(let t of["claude","agents"])for(let r of u){let a=i.filter(e=>e.type===r),n=new Map;for(let a of e.projects){let e=(0,s.scanProviderAssets)(a.path,t);n.set(a.id,e.filter(e=>e.type===r))}let o=(0,s.buildStoreAssetMatrix)(a,n,e.projects,r);f.push(...o)}for(let e of f)for(let t of e.cells)"outdated"===t.status&&c++;for(let e of r){if(!e.accessible)continue;let t=0;for(let r of f)for(let a of r.cells)a.projectId===e.id&&"outdated"===a.status&&t++;e.healthScore=function(e,t,r=0,a){if(!t)return o(e,0,0,0,void 0);let s=[...t.skills,...t.agents];return o(e,r,s.length,s.filter(e=>!e.isValid).length,void 0)}(e,e.assets,t)}let m=0,g=0;for(let e of r){if(!e.accessible)continue;let t=a.default.join(e.path,"documentation","kanban.json"),r=await h(t);if(r?.stages){m+=(r.stages.backlog||[]).filter(e=>!e.archived).length;let e=(r.stages.implementation||[]).filter(e=>!e.archived),t=(r.stages.testing||[]).filter(e=>!e.archived);g+=e.length+t.length}}let x=r.reduce((e,t)=>e+(t.gitUncommitted&&t.gitUncommitted>0?t.gitUncommitted:0),0),y=(0,l.getBridgeUrl)();try{let e=await fetch(`${y}/stats`,{signal:AbortSignal.timeout(2e3)});if(e.ok){let t=await e.json(),a={};for(let e of t.sessions||[])if(e.isActive){let t=e.name.split(":")[0];a[t]=(a[t]||0)+1}for(let e of r)e.activeSessions=a[e.id]??0}}catch{}let v=d();return{projects:r,totalBacklogItems:m,activeItems:g,totalOutdatedAssets:c,totalUncommitted:x,lastRefresh:new Date().toISOString(),slycodeRoot:v,projectsDir:a.default.dirname(v)}}e.s(["getRepoRoot",()=>d,"loadDashboardData",()=>v,"loadRegistry",()=>p,"saveRegistry",()=>f],48044)},24361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},77981,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),s=e.i(59756),n=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),d=e.i(87718),u=e.i(95169),c=e.i(47587),p=e.i(66012),f=e.i(70101),m=e.i(74838),h=e.i(10372),g=e.i(93695);e.i(52474);var x=e.i(220),y=e.i(89171),w=e.i(48044),v=e.i(33405),j=e.i(24361),R=e.i(14747),S=e.i(46786),E=e.i(7367);let C=(0,j.promisify)(v.execFile);async function b(){try{let e=await (0,w.loadRegistry)();return y.NextResponse.json(e.projects)}catch(e){return console.error("Failed to load projects:",e),y.NextResponse.json({error:"Failed to load projects"},{status:500})}}async function k(e){try{let t,{name:r,description:a,path:s,tags:n,scaffoldConfig:i,providers:o}=await e.json();if(!r||!s)return y.NextResponse.json({error:"name and path are required"},{status:400});let l=R.default.resolve(s.startsWith("~/")||"~"===s?s.replace(/^~/,S.default.homedir()):s),d=await (0,w.loadRegistry)(),u=r.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"");if(d.projects.some(e=>e.id===u))return y.NextResponse.json({error:`Project with id '${u}' already exists`},{status:409});if(d.projects.some(e=>e.path===l)){let e=d.projects.find(e=>e.path===l);return y.NextResponse.json({error:`This directory is already registered as '${e?.name}'`},{status:409})}let c=[R.default.join((0,E.getPackageDir)(),"scripts","scaffold.js"),"create","--path",l,"--name",r,"--id",u];a&&c.push("--description",a),o&&Array.isArray(o)&&o.length>0&&c.push("--providers",o.join(",")),i&&c.push("--config",JSON.stringify(i));let{stdout:p,stderr:f}=await C("node",c,{timeout:3e4,windowsHide:!0});try{t=JSON.parse(p)}catch{return y.NextResponse.json({error:"Scaffold script returned invalid output",details:p,stderr:f},{status:500})}if(!t.success)return y.NextResponse.json({error:"Scaffolding failed",details:t},{status:500});let m={id:u,name:r,description:a||"",path:l,hasClaudeMd:!0,masterCompliant:!0,areas:[],tags:n||[]};return d.projects.push(m),d.lastUpdated=new Date().toISOString(),await (0,w.saveRegistry)(d),y.NextResponse.json({project:m,scaffold:t},{status:201})}catch(e){return console.error("Failed to create project:",e),y.NextResponse.json({error:"Failed to create project",details:String(e)},{status:500})}}e.s(["GET",()=>b,"POST",()=>k,"dynamic",0,"force-dynamic"],50364);var A=e.i(50364);let O=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/projects/route",pathname:"/api/projects",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/projects/route.ts",nextConfigOutput:"standalone",userland:A}),{workAsyncStorage:N,workUnitAsyncStorage:P,serverHooks:D}=O;function _(){return(0,a.patchFetch)({workAsyncStorage:N,workUnitAsyncStorage:P})}async function F(e,t,a){O.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/projects/route";y=y.replace(/\/index$/,"")||"/";let w=await O.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:v,params:j,nextConfig:R,parsedUrl:S,isDraftMode:E,prerenderManifest:C,routerServerContext:b,isOnDemandRevalidate:k,revalidateOnlyGenerated:A,resolvedPathname:N,clientReferenceManifest:P,serverActionsManifest:D}=w,_=(0,o.normalizeAppPath)(y),F=!!(C.dynamicRoutes[_]||C.routes[N]),M=async()=>((null==b?void 0:b.render404)?await b.render404(e,t,S,!1):t.end("This page could not be found"),null);if(F&&!E){let e=!!C.routes[N],t=C.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(R.experimental.adapterPath)return await M();throw new g.NoFallbackError}}let T=null;!F||O.isDev||E||(T="/index"===(T=N)?"/":T);let q=!0===O.isDev||!F,U=F&&!q;D&&P&&(0,i.setManifestsSingleton)({page:y,clientReferenceManifest:P,serverActionsManifest:D});let H=e.method||"GET",I=(0,n.getTracer)(),L=I.getActiveScopeSpan(),$={params:j,prerenderManifest:C,renderOpts:{experimental:{authInterrupts:!!R.experimental.authInterrupts},cacheComponents:!!R.cacheComponents,supportsDynamicResponse:q,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:R.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,s)=>O.onRequestError(e,t,a,s,b)},sharedContext:{buildId:v}},V=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),B=d.NextRequestAdapter.fromNodeNextRequest(V,(0,d.signalFromNodeResponse)(t));try{let i=async e=>O.handle(B,$).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=I.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${H} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${H} ${y}`)}),o=!!(0,s.getRequestMeta)(e,"minimalMode"),l=async s=>{var n,l;let d=async({previousCacheEntry:r})=>{try{if(!o&&k&&A&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await i(s);e.fetchMetrics=$.renderOpts.fetchMetrics;let l=$.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let d=$.renderOpts.collectedTags;if(!F)return await (0,p.sendResponse)(V,K,n,$.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(n.headers);d&&(t[h.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,a=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:$.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await O.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:k})},!1,b),t}},u=await O.handleResponse({req:e,nextConfig:R,cacheKey:T,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:k,revalidateOnlyGenerated:A,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:o});if(!F)return null;if((null==u||null==(n=u.value)?void 0:n.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",k?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let g=(0,f.fromNodeOutgoingHttpHeaders)(u.value.headers);return o&&F||g.delete(h.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||g.get("Cache-Control")||g.set("Cache-Control",(0,m.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(V,K,new Response(u.value.body,{headers:g,status:u.value.status||200})),null};L?await l(L):await I.withPropagatedContext(e.headers,()=>I.trace(u.BaseServerSpan.handleRequest,{spanName:`${H} ${y}`,kind:n.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await O.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:k})},!1,b),F)throw t;return await (0,p.sendResponse)(V,K,new Response(null,{status:500})),null}}e.s(["handler",()=>F,"patchFetch",()=>_,"routeModule",()=>O,"serverHooks",()=>D,"workAsyncStorage",()=>N,"workUnitAsyncStorage",()=>P],77981)}];
1
+ module.exports=[46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},7367,e=>{"use strict";var t=e.i(14747),r=e.i(22734);function a(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let e=process.cwd();return(console.warn("[paths] SLYCODE_HOME not set in production — falling back to cwd:",e),e.endsWith("/web")||e.endsWith("\\web"))?t.default.dirname(e):e}function n(){let e=a(),n=t.default.join(e,"node_modules","@slycode","slycode","dist");return r.default.existsSync(n)?n:e}function s(){return process.env.BRIDGE_URL?process.env.BRIDGE_URL:"http://127.0.0.1:3004"}e.s(["getBridgeUrl",()=>s,"getPackageDir",()=>n,"getSlycodeRoot",()=>a])},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},73178,e=>{"use strict";var t=e.i(22734),r=e.i(14747),a=e.i(46676),n=e.i(7367);function s(){return r.default.join((0,n.getSlycodeRoot)(),"store")}function i(e,n){let s=[],i="skill"===n?"skills":"agents",o=r.default.join(e,i);try{if(!t.default.existsSync(o))return s;for(let e of t.default.readdirSync(o,{withFileTypes:!0})){let l,d;if("skill"===n){if(!e.isDirectory()||(l=r.default.join(o,e.name,"SKILL.md"),d=r.default.join(i,e.name,"SKILL.md"),!t.default.existsSync(l)))continue}else{if(!e.isFile()||!e.name.endsWith(".md"))continue;l=r.default.join(o,e.name),d=r.default.join(i,e.name)}let u=t.default.readFileSync(l,"utf-8"),c=(0,a.parseFrontmatter)(u),p=c?.name||e.name.replace(/\.md$/,"");s.push({name:p,type:n,path:d,frontmatter:c,isValid:(0,a.validateFrontmatter)(c)})}}catch{}return s.sort((e,t)=>e.name.localeCompare(t.name))}function o(){let e=s(),a=i(e,"skill");return{skills:a,agents:i(e,"agent"),mcp:function(e){let a=r.default.join(e,"mcp"),n=[];try{if(!t.default.existsSync(a))return n;for(let e of t.default.readdirSync(a,{withFileTypes:!0})){let s;if(!e.isFile()||!e.name.endsWith(".json"))continue;let i=r.default.join(a,e.name),o=t.default.readFileSync(i,"utf-8");try{s=JSON.parse(o)}catch{continue}let l=s.name||e.name.replace(/\.json$/,"");n.push({name:l,type:"mcp",path:r.default.join("mcp",e.name),frontmatter:{name:l,version:s.version,description:s.description,updated:s.updated},isValid:!!(s.name&&s.command)})}}catch{}return n}(e)}}function l(){let e=s();return[...i(e,"skill"),...i(e,"agent")]}e.s(["getStoreAssets",()=>l,"scanStore",()=>o])},48044,e=>{"use strict";var t=e.i(22734),r=e.i(33405),a=e.i(14747),n=e.i(46676),s=e.i(73178);let i={outdatedAssets:.3,staleCards:.15,unresolvedProblems:.25,missingClaudeMd:.1,nonCompliantFrontmatter:.2};function o(e,t=0,r=0,a=0,n=i){let s=[],l=Math.max(r,1);s.push({name:"Outdated Assets",weight:n.outdatedAssets,value:t,maxValue:l});let d=Date.now(),u=[...e.backlog],c=u.filter(e=>(d-new Date(e.created_at).getTime())/864e5>14&&"done"!==e.status).length,p=Math.max(u.length,1);s.push({name:"Stale Cards",weight:n.staleCards,value:c,maxValue:p}),s.push({name:"Unresolved Problems",weight:n.unresolvedProblems,value:0,maxValue:1}),s.push({name:"Missing CLAUDE.md",weight:n.missingClaudeMd,value:+!e.hasClaudeMd,maxValue:1});let f=Math.max(r,1);s.push({name:"Non-compliant Frontmatter",weight:n.nonCompliantFrontmatter,value:a,maxValue:f});let h=0;for(let e of s)h+=Math.min(e.maxValue>0?e.value/e.maxValue:0,1)*e.weight;let m=Math.round(Math.max(0,(1-h)*100));return{score:m,level:m>=80?"green":m>=50?"amber":"red",factors:s}}var l=e.i(7367);function d(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let e=process.cwd();return e.endsWith("/web")||e.endsWith("\\web")?a.default.dirname(e):e}let u=d(),c=a.default.join(u,"projects","registry.json");async function p(){try{let e=await t.promises.readFile(c,"utf-8");return JSON.parse(e)}catch(e){throw console.error("Failed to load registry:",e),Error(`Failed to load registry from ${c}`)}}async function f(e){let r=JSON.stringify(e,null,2)+"\n";await t.promises.writeFile(c,r,"utf-8")}async function h(e){try{return(await t.promises.stat(e)).isDirectory()}catch{return!1}}async function m(e){try{let r=await t.promises.readFile(e,"utf-8");return JSON.parse(r)}catch{return null}}async function g(e,t,r){let n=a.default.join(e,"documentation","backlog.json"),s=await m(n);return s?s.map(e=>({...e,projectId:t,projectName:r})):[]}async function x(e,t){let r=a.default.join(e,"documentation","designs.json"),n=await m(r);return n?n.map(e=>({...e,projectId:t})):[]}async function y(e,t){let r=a.default.join(e,"documentation","features.json"),n=await m(r);return n?n.map(e=>({...e,projectId:t})):[]}async function v(e){let t=e.path;if(!await h(t))return{...e,backlog:[],designs:[],features:[],accessible:!1,error:`Path not accessible: ${t}`};let[a,s,i]=await Promise.all([g(t,e.id,e.name),x(t,e.id),y(t,e.id)]),o=(0,n.scanProjectAssets)(t,e.id),l=(0,n.detectPlatforms)(t),d=function(e){try{return(0,r.execSync)("git status --porcelain",{cwd:e,encoding:"utf-8",timeout:5e3}).split("\n").filter(e=>e.trim().length>0).length}catch{return -1}}(t);return{...e,backlog:a,designs:s,features:i,assets:o,platforms:l,gitUncommitted:d>=0?d:void 0,accessible:!0}}async function w(){let e=await p();for(let t=0;t<e.projects.length;t++)void 0===e.projects[t].order&&(e.projects[t].order=t);e.projects.sort((e,t)=>(e.order??0)-(t.order??0));let t=e.projects.map(e=>v(e)),r=await Promise.all(t),i=(0,s.getStoreAssets)(),u=["skill","agent"],c=0,f=[];for(let t of["claude","agents"])for(let r of u){let a=i.filter(e=>e.type===r),s=new Map;for(let a of e.projects){let e=(0,n.scanProviderAssets)(a.path,t);s.set(a.id,e.filter(e=>e.type===r))}let o=(0,n.buildStoreAssetMatrix)(a,s,e.projects,r);f.push(...o)}for(let e of f)for(let t of e.cells)"outdated"===t.status&&c++;for(let e of r){if(!e.accessible)continue;let t=0;for(let r of f)for(let a of r.cells)a.projectId===e.id&&"outdated"===a.status&&t++;e.healthScore=function(e,t,r=0,a){if(!t)return o(e,0,0,0,void 0);let n=[...t.skills,...t.agents];return o(e,r,n.length,n.filter(e=>!e.isValid).length,void 0)}(e,e.assets,t)}let h=0,g=0;for(let e of r){if(!e.accessible)continue;let t=a.default.join(e.path,"documentation","kanban.json"),r=await m(t);if(r?.stages){h+=(r.stages.backlog||[]).filter(e=>!e.archived).length;let e=(r.stages.implementation||[]).filter(e=>!e.archived),t=(r.stages.testing||[]).filter(e=>!e.archived);g+=e.length+t.length}}let x=r.reduce((e,t)=>e+(t.gitUncommitted&&t.gitUncommitted>0?t.gitUncommitted:0),0),y=(0,l.getBridgeUrl)();try{let e=await fetch(`${y}/stats`,{signal:AbortSignal.timeout(2e3)});if(e.ok){let t=await e.json(),a={};for(let e of t.sessions||[])if(e.isActive){let t=e.name.split(":")[0];a[t]=(a[t]||0)+1}for(let e of r)e.activeSessions=a[e.id]??0}}catch{}let w=d();return{projects:r,totalBacklogItems:h,activeItems:g,totalOutdatedAssets:c,totalUncommitted:x,lastRefresh:new Date().toISOString(),slycodeRoot:w,projectsDir:a.default.dirname(w)}}e.s(["getRepoRoot",()=>d,"loadDashboardData",()=>w,"loadRegistry",()=>p,"saveRegistry",()=>f],48044)},24361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},77981,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),s=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),d=e.i(87718),u=e.i(95169),c=e.i(47587),p=e.i(66012),f=e.i(70101),h=e.i(74838),m=e.i(10372),g=e.i(93695);e.i(52474);var x=e.i(220),y=e.i(89171),v=e.i(48044),w=e.i(33405),R=e.i(24361),j=e.i(14747),S=e.i(46786),E=e.i(7367);let C=(0,R.promisify)(w.execFile);async function b(){try{let e=await (0,v.loadRegistry)();return y.NextResponse.json(e.projects)}catch(e){return console.error("Failed to load projects:",e),y.NextResponse.json({error:"Failed to load projects"},{status:500})}}async function A(e){try{let t,{name:r,description:a,path:n,tags:s,scaffoldConfig:i,providers:o}=await e.json();if(!r||!n)return y.NextResponse.json({error:"name and path are required"},{status:400});let l=j.default.resolve(n.startsWith("~/")||"~"===n?n.replace(/^~/,S.default.homedir()):n),d=await (0,v.loadRegistry)(),u=r.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"");if(d.projects.some(e=>e.id===u))return y.NextResponse.json({error:`Project with id '${u}' already exists`},{status:409});if(d.projects.some(e=>e.path===l)){let e=d.projects.find(e=>e.path===l);return y.NextResponse.json({error:`This directory is already registered as '${e?.name}'`},{status:409})}let c=[j.default.join((0,E.getPackageDir)(),"scripts","scaffold.js"),"create","--path",l,"--name",r,"--id",u];a&&c.push("--description",a),o&&Array.isArray(o)&&o.length>0&&c.push("--providers",o.join(",")),i&&c.push("--config",JSON.stringify(i));let{stdout:p,stderr:f}=await C("node",c,{timeout:3e4,windowsHide:!0});try{t=JSON.parse(p)}catch{return y.NextResponse.json({error:"Scaffold script returned invalid output",details:p,stderr:f},{status:500})}if(!t.success)return y.NextResponse.json({error:"Scaffolding failed",details:t},{status:500});let h={id:u,name:r,description:a||"",path:l,hasClaudeMd:!0,masterCompliant:!0,areas:[],tags:s||[]};return d.projects.push(h),d.lastUpdated=new Date().toISOString(),await (0,v.saveRegistry)(d),y.NextResponse.json({project:h,scaffold:t},{status:201})}catch(e){return console.error("Failed to create project:",e),y.NextResponse.json({error:"Failed to create project",details:String(e)},{status:500})}}e.s(["GET",()=>b,"POST",()=>A,"dynamic",0,"force-dynamic"],50364);var O=e.i(50364);let N=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/projects/route",pathname:"/api/projects",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/projects/route.ts",nextConfigOutput:"standalone",userland:O}),{workAsyncStorage:k,workUnitAsyncStorage:P,serverHooks:D}=N;function _(){return(0,a.patchFetch)({workAsyncStorage:k,workUnitAsyncStorage:P})}async function M(e,t,a){N.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/projects/route";y=y.replace(/\/index$/,"")||"/";let v=await N.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:w,params:R,nextConfig:j,parsedUrl:S,isDraftMode:E,prerenderManifest:C,routerServerContext:b,isOnDemandRevalidate:A,revalidateOnlyGenerated:O,resolvedPathname:k,clientReferenceManifest:P,serverActionsManifest:D}=v,_=(0,o.normalizeAppPath)(y),M=!!(C.dynamicRoutes[_]||C.routes[k]),T=async()=>((null==b?void 0:b.render404)?await b.render404(e,t,S,!1):t.end("This page could not be found"),null);if(M&&!E){let e=!!C.routes[k],t=C.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(j.experimental.adapterPath)return await T();throw new g.NoFallbackError}}let F=null;!M||N.isDev||E||(F="/index"===(F=k)?"/":F);let q=!0===N.isDev||!M,U=M&&!q;D&&P&&(0,i.setManifestsSingleton)({page:y,clientReferenceManifest:P,serverActionsManifest:D});let H=e.method||"GET",I=(0,s.getTracer)(),L=I.getActiveScopeSpan(),$={params:R,prerenderManifest:C,renderOpts:{experimental:{authInterrupts:!!j.experimental.authInterrupts},cacheComponents:!!j.cacheComponents,supportsDynamicResponse:q,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:j.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>N.onRequestError(e,t,a,n,b)},sharedContext:{buildId:w}},V=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),B=d.NextRequestAdapter.fromNodeNextRequest(V,(0,d.signalFromNodeResponse)(t));try{let i=async e=>N.handle(B,$).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=I.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${H} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${H} ${y}`)}),o=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var s,l;let d=async({previousCacheEntry:r})=>{try{if(!o&&A&&O&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await i(n);e.fetchMetrics=$.renderOpts.fetchMetrics;let l=$.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let d=$.renderOpts.collectedTags;if(!M)return await (0,p.sendResponse)(V,K,s,$.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(s.headers);d&&(t[m.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,a=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:$.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await N.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:A})},!1,b),t}},u=await N.handleResponse({req:e,nextConfig:j,cacheKey:F,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:O,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:o});if(!M)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",A?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let g=(0,f.fromNodeOutgoingHttpHeaders)(u.value.headers);return o&&M||g.delete(m.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||g.get("Cache-Control")||g.set("Cache-Control",(0,h.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(V,K,new Response(u.value.body,{headers:g,status:u.value.status||200})),null};L?await l(L):await I.withPropagatedContext(e.headers,()=>I.trace(u.BaseServerSpan.handleRequest,{spanName:`${H} ${y}`,kind:s.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await N.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:A})},!1,b),M)throw t;return await (0,p.sendResponse)(V,K,new Response(null,{status:500})),null}}e.s(["handler",()=>M,"patchFetch",()=>_,"routeModule",()=>N,"serverHooks",()=>D,"workAsyncStorage",()=>k,"workUnitAsyncStorage",()=>P],77981)}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__f3e501b6._.js.map
@@ -1,6 +1,6 @@
1
- module.exports=[54799,(e,t,n)=>{t.exports=e.x("crypto",()=>require("crypto"))},18622,(e,t,n)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,n)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,n)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,n)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},70406,(e,t,n)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,n)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},14747,(e,t,n)=>{t.exports=e.x("path",()=>require("path"))},22734,(e,t,n)=>{t.exports=e.x("fs",()=>require("fs"))},7367,e=>{"use strict";var t=e.i(14747),n=e.i(22734);function r(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let e=process.cwd();return(console.warn("[paths] SLYCODE_HOME not set in production — falling back to cwd:",e),e.endsWith("/web")||e.endsWith("\\web"))?t.default.dirname(e):e}function s(){let e=r(),s=t.default.join(e,"node_modules","@slycode","slycode","dist");return n.default.existsSync(s)?s:e}function a(){return process.env.BRIDGE_URL?process.env.BRIDGE_URL:"http://127.0.0.1:3004"}e.s(["getBridgeUrl",()=>a,"getPackageDir",()=>s,"getSlycodeRoot",()=>r])},73178,e=>{"use strict";var t=e.i(22734),n=e.i(14747),r=e.i(46676),s=e.i(7367);function a(){return n.default.join((0,s.getSlycodeRoot)(),"store")}function i(){for(let e of[n.default.join((0,s.getSlycodeRoot)(),"build","store-manifest.js"),n.default.join((0,s.getSlycodeRoot)(),"node_modules","@slycode","slycode","build","store-manifest.js")])try{if(t.default.existsSync(e)){let n=t.default.readFileSync(e,"utf-8"),r={};Function("module","exports",n)(r,r);let s=r.exports;if(s?.skills)return{skills:s.skills,actions:s.actions||[],agents:s.agents||[],mcp:s.mcp||[]}}}catch{}return null}function o(e,s){let a=[],i="skill"===s?"skills":"agents",o=n.default.join(e,i);try{if(!t.default.existsSync(o))return a;for(let e of t.default.readdirSync(o,{withFileTypes:!0})){let l,c;if("skill"===s){if(!e.isDirectory()||(l=n.default.join(o,e.name,"SKILL.md"),c=n.default.join(i,e.name,"SKILL.md"),!t.default.existsSync(l)))continue}else{if(!e.isFile()||!e.name.endsWith(".md"))continue;l=n.default.join(o,e.name),c=n.default.join(i,e.name)}let d=t.default.readFileSync(l,"utf-8"),u=(0,r.parseFrontmatter)(d),p=u?.name||e.name.replace(/\.md$/,"");a.push({name:p,type:s,path:c,frontmatter:u,isValid:(0,r.validateFrontmatter)(u)})}}catch{}return a.sort((e,t)=>e.name.localeCompare(t.name))}function l(){let e=a(),r=i(),s=o(e,"skill"),l=o(e,"agent"),c=function(e){let r=n.default.join(e,"mcp"),s=[];try{if(!t.default.existsSync(r))return s;for(let e of t.default.readdirSync(r,{withFileTypes:!0})){let a;if(!e.isFile()||!e.name.endsWith(".json"))continue;let i=n.default.join(r,e.name),o=t.default.readFileSync(i,"utf-8");try{a=JSON.parse(o)}catch{continue}let l=a.name||e.name.replace(/\.json$/,"");s.push({name:l,type:"mcp",path:n.default.join("mcp",e.name),frontmatter:{name:l,version:a.version,description:a.description,updated:a.updated},isValid:!!(a.name&&a.command)})}}catch{}return s}(e);if(r){if(r.skills){let e=new Set(r.skills);s=s.filter(t=>e.has(t.name))}if(r.agents){let e=new Set(r.agents);l=l.filter(t=>e.has(t.name))}if(r.mcp){let e=new Set(r.mcp);c=c.filter(t=>e.has(t.name))}}return{skills:s,agents:l,mcp:c}}function c(){let e=a(),t=i(),n=o(e,"skill"),r=o(e,"agent");if(t){if(t.skills){let e=new Set(t.skills);n=n.filter(t=>e.has(t.name))}if(t.agents){let e=new Set(t.agents);r=r.filter(t=>e.has(t.name))}}return[...n,...r]}e.s(["getStoreAssets",()=>c,"scanStore",()=>l])},55012,e=>{"use strict";var t=e.i(22734),n=e.i(14747),r=e.i(54799),s=e.i(7367),a=e.i(46676);function i(e){let t=e.match(/^---\s*\n([\s\S]*?)\n---\s*\n?([\s\S]*)/);if(!t)return null;let n=t[1],r=(t[2]||"").trim(),s={},a=null,i=null,l=null;for(let e of n.split("\n")){if(e.startsWith(" ")){let t=e.trim();if(null!==l&&t.startsWith("- ")){let e=t.slice(2).trim();e=o(e),l.push(e);continue}if(null!==i){let e=t.indexOf(":");if(-1!==e){let n=t.slice(0,e).trim(),r=t.slice(e+1).trim();i[n]=Number(r)}}continue}a&&i&&(s[a]=i,i=null,a=null),a&&l&&(s[a]=l,l=null,a=null);let t=e.indexOf(":");if(-1===t)continue;let n=e.slice(0,t).trim(),r=e.slice(t+1).trim();if(!r){a=n,"classes"===n?i={}:l=[];continue}s[n]=o(r)}return a&&i&&(s[a]=i),a&&l&&(s[a]=l),{frontmatter:s,body:r}}function o(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function l(e,t){return{name:String(e.name||""),version:String(e.version||"1.0.0"),label:String(e.label||""),description:String(e.description||""),group:String(e.group||""),placement:e.placement||"both",scope:e.scope||"global",projects:Array.isArray(e.projects)?e.projects.map(String):[],cardTypes:Array.isArray(e.cardTypes)?e.cardTypes.map(String):void 0,classes:"object"!=typeof e.classes||null===e.classes||Array.isArray(e.classes)?{}:e.classes,prompt:t}}function c(e){let r=[];if(!t.default.existsSync(e))return r;try{for(let s of t.default.readdirSync(e)){if(!s.endsWith(".md"))continue;let a=n.default.join(e,s);try{let e=t.default.readFileSync(a,"utf-8"),n=i(e);if(!n)continue;let o=l(n.frontmatter,n.body);o.name||(o.name=s.replace(/\.md$/,"")),r.push(o)}catch{}}}catch{}return r}let d=null,u=0;function p(){return n.default.join((0,s.getSlycodeRoot)(),"store","actions")}function f(){return d&&!(Date.now()-u>3e4)||(d=function(e){let t={};for(let n of e)t[n.name]={id:n.name,label:n.label,description:n.description,group:n.group||void 0,cardTypes:n.cardTypes,placement:n.placement,prompt:n.prompt,scope:n.scope,projects:n.projects};return{version:"4.0",commands:t,classAssignments:function(e){let t={};for(let n of e)for(let[e,r]of Object.entries(n.classes))t[e]||(t[e]=[]),t[e].push({name:n.name,priority:r});let n={};for(let[e,r]of Object.entries(t))r.sort((e,t)=>e.priority!==t.priority?e.priority-t.priority:e.name.localeCompare(t.name)),n[e]=r.map(e=>e.name);return n}(e)}}(c(p())),u=Date.now()),d}function m(){d=null,u=0}function h(e,r){let s=r||p();t.default.mkdirSync(s,{recursive:!0});let a=function(e){let t=["---"];if(t.push(`name: ${e.name}`),t.push(`version: ${e.version}`),t.push(`label: "${e.label}"`),t.push(`description: "${e.description.replace(/"/g,'\\"')}"`),e.group&&t.push(`group: "${e.group}"`),t.push(`placement: ${e.placement}`),t.push(`scope: ${e.scope}`),e.projects.length>0)for(let n of(t.push("projects:"),e.projects))t.push(` - "${n}"`);if(e.cardTypes&&e.cardTypes.length>0)for(let n of(t.push("cardTypes:"),e.cardTypes))t.push(` - "${n}"`);if(Object.keys(e.classes).length>0)for(let[n,r]of(t.push("classes:"),Object.entries(e.classes).sort((e,t)=>e[0].localeCompare(t[0]))))t.push(` ${n}: ${r}`);return t.push("---"),`${t.join("\n")}
1
+ module.exports=[54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},7367,e=>{"use strict";var t=e.i(14747),r=e.i(22734);function n(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let e=process.cwd();return(console.warn("[paths] SLYCODE_HOME not set in production — falling back to cwd:",e),e.endsWith("/web")||e.endsWith("\\web"))?t.default.dirname(e):e}function s(){let e=n(),s=t.default.join(e,"node_modules","@slycode","slycode","dist");return r.default.existsSync(s)?s:e}function a(){return process.env.BRIDGE_URL?process.env.BRIDGE_URL:"http://127.0.0.1:3004"}e.s(["getBridgeUrl",()=>a,"getPackageDir",()=>s,"getSlycodeRoot",()=>n])},73178,e=>{"use strict";var t=e.i(22734),r=e.i(14747),n=e.i(46676),s=e.i(7367);function a(){return r.default.join((0,s.getSlycodeRoot)(),"store")}function i(e,s){let a=[],i="skill"===s?"skills":"agents",o=r.default.join(e,i);try{if(!t.default.existsSync(o))return a;for(let e of t.default.readdirSync(o,{withFileTypes:!0})){let l,c;if("skill"===s){if(!e.isDirectory()||(l=r.default.join(o,e.name,"SKILL.md"),c=r.default.join(i,e.name,"SKILL.md"),!t.default.existsSync(l)))continue}else{if(!e.isFile()||!e.name.endsWith(".md"))continue;l=r.default.join(o,e.name),c=r.default.join(i,e.name)}let d=t.default.readFileSync(l,"utf-8"),u=(0,n.parseFrontmatter)(d),p=u?.name||e.name.replace(/\.md$/,"");a.push({name:p,type:s,path:c,frontmatter:u,isValid:(0,n.validateFrontmatter)(u)})}}catch{}return a.sort((e,t)=>e.name.localeCompare(t.name))}function o(){let e=a(),n=i(e,"skill");return{skills:n,agents:i(e,"agent"),mcp:function(e){let n=r.default.join(e,"mcp"),s=[];try{if(!t.default.existsSync(n))return s;for(let e of t.default.readdirSync(n,{withFileTypes:!0})){let a;if(!e.isFile()||!e.name.endsWith(".json"))continue;let i=r.default.join(n,e.name),o=t.default.readFileSync(i,"utf-8");try{a=JSON.parse(o)}catch{continue}let l=a.name||e.name.replace(/\.json$/,"");s.push({name:l,type:"mcp",path:r.default.join("mcp",e.name),frontmatter:{name:l,version:a.version,description:a.description,updated:a.updated},isValid:!!(a.name&&a.command)})}}catch{}return s}(e)}}function l(){let e=a();return[...i(e,"skill"),...i(e,"agent")]}e.s(["getStoreAssets",()=>l,"scanStore",()=>o])},55012,e=>{"use strict";var t=e.i(22734),r=e.i(14747),n=e.i(54799),s=e.i(7367),a=e.i(46676);function i(e){let t=e.match(/^---\s*\n([\s\S]*?)\n---\s*\n?([\s\S]*)/);if(!t)return null;let r=t[1],n=(t[2]||"").trim(),s={},a=null,i=null,l=null;for(let e of r.split("\n")){if(e.startsWith(" ")){let t=e.trim();if(null!==l&&t.startsWith("- ")){let e=t.slice(2).trim();e=o(e),l.push(e);continue}if(null!==i){let e=t.indexOf(":");if(-1!==e){let r=t.slice(0,e).trim(),n=t.slice(e+1).trim();i[r]=Number(n)}}continue}a&&i&&(s[a]=i,i=null,a=null),a&&l&&(s[a]=l,l=null,a=null);let t=e.indexOf(":");if(-1===t)continue;let r=e.slice(0,t).trim(),n=e.slice(t+1).trim();if(!n){a=r,"classes"===r?i={}:l=[];continue}s[r]=o(n)}return a&&i&&(s[a]=i),a&&l&&(s[a]=l),{frontmatter:s,body:n}}function o(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function l(e,t){return{name:String(e.name||""),version:String(e.version||"1.0.0"),label:String(e.label||""),description:String(e.description||""),group:String(e.group||""),placement:e.placement||"both",scope:e.scope||"global",projects:Array.isArray(e.projects)?e.projects.map(String):[],cardTypes:Array.isArray(e.cardTypes)?e.cardTypes.map(String):void 0,classes:"object"!=typeof e.classes||null===e.classes||Array.isArray(e.classes)?{}:e.classes,prompt:t}}function c(e){let n=[];if(!t.default.existsSync(e))return n;try{for(let s of t.default.readdirSync(e)){if(!s.endsWith(".md"))continue;let a=r.default.join(e,s);try{let e=t.default.readFileSync(a,"utf-8"),r=i(e);if(!r)continue;let o=l(r.frontmatter,r.body);o.name||(o.name=s.replace(/\.md$/,"")),n.push(o)}catch{}}}catch{}return n}let d=null,u=0;function p(){return r.default.join((0,s.getSlycodeRoot)(),"store","actions")}function f(){return d&&!(Date.now()-u>3e4)||(d=function(e){let t={};for(let r of e)t[r.name]={id:r.name,label:r.label,description:r.description,group:r.group||void 0,cardTypes:r.cardTypes,placement:r.placement,prompt:r.prompt,scope:r.scope,projects:r.projects};return{version:"4.0",commands:t,classAssignments:function(e){let t={};for(let r of e)for(let[e,n]of Object.entries(r.classes))t[e]||(t[e]=[]),t[e].push({name:r.name,priority:n});let r={};for(let[e,n]of Object.entries(t))n.sort((e,t)=>e.priority!==t.priority?e.priority-t.priority:e.name.localeCompare(t.name)),r[e]=n.map(e=>e.name);return r}(e)}}(c(p())),u=Date.now()),d}function m(){d=null,u=0}function h(e,n){let s=n||p();t.default.mkdirSync(s,{recursive:!0});let a=function(e){let t=["---"];if(t.push(`name: ${e.name}`),t.push(`version: ${e.version}`),t.push(`label: "${e.label}"`),t.push(`description: "${e.description.replace(/"/g,'\\"')}"`),e.group&&t.push(`group: "${e.group}"`),t.push(`placement: ${e.placement}`),t.push(`scope: ${e.scope}`),e.projects.length>0)for(let r of(t.push("projects:"),e.projects))t.push(` - "${r}"`);if(e.cardTypes&&e.cardTypes.length>0)for(let r of(t.push("cardTypes:"),e.cardTypes))t.push(` - "${r}"`);if(Object.keys(e.classes).length>0)for(let[r,n]of(t.push("classes:"),Object.entries(e.classes).sort((e,t)=>e[0].localeCompare(t[0]))))t.push(` ${r}: ${n}`);return t.push("---"),`${t.join("\n")}
2
2
 
3
3
  ${e.prompt}
4
- `}(e),i=n.default.join(s,`${e.name}.md`),o=n.default.join(s,`.${e.name}.md.tmp`);t.default.writeFileSync(o,a,"utf-8"),t.default.renameSync(o,i)}function y(e,r){let s=r||p(),a={};for(let[t,n]of Object.entries(e.classAssignments))for(let e=0;e<n.length;e++){let r=n[e];a[r]||(a[r]={}),a[r][t]=(e+1)*10}let i=c(s),o={};for(let e of i)o[e.name]=e.version;for(let[t,n]of Object.entries(e.commands))h({name:t,version:o[t]||"1.0.0",label:n.label,description:n.description,group:n.group||"",placement:n.placement,scope:n.scope,projects:n.projects,cardTypes:n.cardTypes,classes:a[t]||{},prompt:n.prompt},s);try{let r=t.default.readdirSync(s).filter(e=>e.endsWith(".md")),a=new Set(Object.keys(e.commands));for(let e of r){let r=e.replace(/\.md$/,"");a.has(r)||t.default.unlinkSync(n.default.join(s,e))}}catch{}m()}function g(e){return r.default.createHash("sha256").update(e).digest("hex").slice(0,12)}function x(e){let r,o=(0,s.getSlycodeRoot)(),c=n.default.join(o,"updates","actions"),d=n.default.join(o,"store","actions");if(!t.default.existsSync(c))return[];let u=[],p=!1;try{r=t.default.readdirSync(c).filter(e=>e.endsWith(".md"))}catch{return[]}for(let s of r)try{let r=n.default.join(c,s),a=t.default.readFileSync(r,"utf-8"),o=g(a),f=i(a);if(!f)continue;let m=l(f.frontmatter,f.body);m.name||(m.name=s.replace(/\.md$/,""));let h=`actions/${m.name}`;if(e[h]===o)continue;let y=n.default.join(d,s);if(t.default.existsSync(y)){let n=t.default.readFileSync(y,"utf-8"),r=g(n);if(o===r){e[h]||(e[h]=o,p=!0);continue}let s=i(n),a=s?l(s.frontmatter,s.body):null,c=[];a&&(m.prompt!==a.prompt&&c.push("prompt"),m.label!==a.label&&c.push("label"),m.description!==a.description&&c.push("description"),m.placement!==a.placement&&c.push("placement"),m.group!==a.group&&c.push("group"));let d=a?Object.keys(m.classes).filter(e=>!(e in a.classes)):Object.keys(m.classes);u.push({name:m.name,assetType:"action",status:"update",currentVersion:a?.version,upstreamVersion:m.version,contentHash:o,description:m.description,changedFields:c,newClasses:d.length>0?d:void 0})}else u.push({name:m.name,assetType:"action",status:"new",upstreamVersion:m.version,contentHash:o,description:m.description,newClasses:Object.keys(m.classes)})}catch{}return p&&(0,a.saveIgnoredUpdates)(e),u}function v(e){let r=(0,s.getSlycodeRoot)(),o=n.default.join(r,"updates","actions",`${e}.md`),c=n.default.join(r,"store","actions",`${e}.md`);if(!t.default.existsSync(o))throw Error(`Action update not found: ${e}`);let d=t.default.readFileSync(o,"utf-8"),u=g(d),p=i(d);if(!p)throw Error(`Failed to parse upstream action: ${e}`);let f=l(p.frontmatter,p.body),y=null;if(t.default.existsSync(c)){let s=n.default.join(r,"store",".backups","actions");t.default.mkdirSync(s,{recursive:!0}),y=n.default.join(s,`${e}.md`),t.default.copyFileSync(c,y);let a=i(t.default.readFileSync(c,"utf-8"));if(a){let e={...l(a.frontmatter,a.body).classes};for(let[t,n]of Object.entries(f.classes))t in e||(e[t]=n);f.classes=e}}let x=n.default.join(r,"store","actions");t.default.mkdirSync(x,{recursive:!0}),h(f,x);let v=(0,a.getIgnoredUpdates)();return v[`actions/${e}`]=u,(0,a.saveIgnoredUpdates)(v),m(),y}e.s(["acceptActionUpdate",()=>v,"getActionsConfig",()=>f,"invalidateActionsCache",()=>m,"scanActionUpdates",()=>x,"writeActionsFromConfig",()=>y])},94750,e=>{"use strict";var t=e.i(47909),n=e.i(74017),r=e.i(96250),s=e.i(59756),a=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),c=e.i(87718),d=e.i(95169),u=e.i(47587),p=e.i(66012),f=e.i(70101),m=e.i(74838),h=e.i(10372),y=e.i(93695);e.i(52474);var g=e.i(220),x=e.i(89171),v=e.i(46676),S=e.i(73178),j=e.i(55012);async function R(){try{let e=(0,v.getIgnoredUpdates)(),t=(0,v.scanUpdatesFolder)(),n=(0,S.getStoreAssets)(),r=(0,v.buildUpdatesMatrix)(t,n,e),s=(0,j.scanActionUpdates)(e);return x.NextResponse.json({entries:r,actionEntries:s,totalAvailable:r.length+s.length})}catch(e){return console.error("Updates scan failed:",e),x.NextResponse.json({error:"Failed to scan updates",details:String(e)},{status:500})}}async function b(e){try{let{assetType:t,assetName:n}=await e.json();if(!t||!n)return x.NextResponse.json({error:"assetType and assetName are required"},{status:400});if("action"===t){let e=(0,j.acceptActionUpdate)(n);return x.NextResponse.json({success:!0,backedUp:e})}let r=(0,v.acceptUpdate)(t,n);return x.NextResponse.json({success:!0,backedUp:r})}catch(e){return console.error("Update accept failed:",e),x.NextResponse.json({error:"Failed to accept update",details:String(e)},{status:500})}}async function w(e){try{let t,{assetType:n,assetName:r,contentHash:s}=await e.json();if(!n||!r||!s)return x.NextResponse.json({error:"assetType, assetName, and contentHash are required"},{status:400});t="action"===n?`actions/${r}`:`${"skill"===n?"skills":"agents"}/${r}`;let a=(0,v.getIgnoredUpdates)();return a[t]=s,(0,v.saveIgnoredUpdates)(a),x.NextResponse.json({success:!0})}catch(e){return console.error("Update dismiss failed:",e),x.NextResponse.json({error:"Failed to dismiss update",details:String(e)},{status:500})}}e.s(["DELETE",()=>w,"GET",()=>R,"POST",()=>b,"dynamic",0,"force-dynamic"],65937);var E=e.i(65937);let k=new t.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/cli-assets/updates/route",pathname:"/api/cli-assets/updates",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-assets/updates/route.ts",nextConfigOutput:"standalone",userland:E}),{workAsyncStorage:A,workUnitAsyncStorage:C,serverHooks:T}=k;function O(){return(0,r.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:C})}async function $(e,t,r){k.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let x="/api/cli-assets/updates/route";x=x.replace(/\/index$/,"")||"/";let v=await k.prepare(e,t,{srcPage:x,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:S,params:j,nextConfig:R,parsedUrl:b,isDraftMode:w,prerenderManifest:E,routerServerContext:A,isOnDemandRevalidate:C,revalidateOnlyGenerated:T,resolvedPathname:O,clientReferenceManifest:$,serverActionsManifest:U}=v,N=(0,o.normalizeAppPath)(x),F=!!(E.dynamicRoutes[N]||E.routes[O]),_=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,b,!1):t.end("This page could not be found"),null);if(F&&!w){let e=!!E.routes[O],t=E.dynamicRoutes[N];if(t&&!1===t.fallback&&!e){if(R.experimental.adapterPath)return await _();throw new y.NoFallbackError}}let q=null;!F||k.isDev||w||(q="/index"===(q=O)?"/":q);let I=!0===k.isDev||!F,P=F&&!I;U&&$&&(0,i.setManifestsSingleton)({page:x,clientReferenceManifest:$,serverActionsManifest:U});let H=e.method||"GET",D=(0,a.getTracer)(),M=D.getActiveScopeSpan(),L={params:j,prerenderManifest:E,renderOpts:{experimental:{authInterrupts:!!R.experimental.authInterrupts},cacheComponents:!!R.cacheComponents,supportsDynamicResponse:I,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:R.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,r,s)=>k.onRequestError(e,t,r,s,A)},sharedContext:{buildId:S}},W=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),B=c.NextRequestAdapter.fromNodeNextRequest(W,(0,c.signalFromNodeResponse)(t));try{let i=async e=>k.handle(B,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let n=D.getRootSpanAttributes();if(!n)return;if(n.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${n.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=n.get("next.route");if(r){let t=`${H} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t)}else e.updateName(`${H} ${x}`)}),o=!!(0,s.getRequestMeta)(e,"minimalMode"),l=async s=>{var a,l;let c=async({previousCacheEntry:n})=>{try{if(!o&&C&&T&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(s);e.fetchMetrics=L.renderOpts.fetchMetrics;let l=L.renderOpts.pendingWaitUntil;l&&r.waitUntil&&(r.waitUntil(l),l=void 0);let c=L.renderOpts.collectedTags;if(!F)return await (0,p.sendResponse)(W,K,a,L.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(a.headers);c&&(t[h.NEXT_CACHE_TAGS_HEADER]=c),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let n=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,r=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:n,expire:r}}}}catch(t){throw(null==n?void 0:n.isStale)&&await k.onRequestError(e,t,{routerKind:"App Router",routePath:x,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:C})},!1,A),t}},d=await k.handleResponse({req:e,nextConfig:R,cacheKey:q,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:T,responseGenerator:c,waitUntil:r.waitUntil,isMinimalMode:o});if(!F)return null;if((null==d||null==(a=d.value)?void 0:a.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",C?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),w&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let y=(0,f.fromNodeOutgoingHttpHeaders)(d.value.headers);return o&&F||y.delete(h.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||y.get("Cache-Control")||y.set("Cache-Control",(0,m.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(W,K,new Response(d.value.body,{headers:y,status:d.value.status||200})),null};M?await l(M):await D.withPropagatedContext(e.headers,()=>D.trace(d.BaseServerSpan.handleRequest,{spanName:`${H} ${x}`,kind:a.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},l))}catch(t){if(t instanceof y.NoFallbackError||await k.onRequestError(e,t,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:C})},!1,A),F)throw t;return await (0,p.sendResponse)(W,K,new Response(null,{status:500})),null}}e.s(["handler",()=>$,"patchFetch",()=>O,"routeModule",()=>k,"serverHooks",()=>T,"workAsyncStorage",()=>A,"workUnitAsyncStorage",()=>C],94750)}];
4
+ `}(e),i=r.default.join(s,`${e.name}.md`),o=r.default.join(s,`.${e.name}.md.tmp`);t.default.writeFileSync(o,a,"utf-8"),t.default.renameSync(o,i)}function y(e,n){let s=n||p(),a={};for(let[t,r]of Object.entries(e.classAssignments))for(let e=0;e<r.length;e++){let n=r[e];a[n]||(a[n]={}),a[n][t]=(e+1)*10}let i=c(s),o={};for(let e of i)o[e.name]=e.version;for(let[t,r]of Object.entries(e.commands))h({name:t,version:o[t]||"1.0.0",label:r.label,description:r.description,group:r.group||"",placement:r.placement,scope:r.scope,projects:r.projects,cardTypes:r.cardTypes,classes:a[t]||{},prompt:r.prompt},s);try{let n=t.default.readdirSync(s).filter(e=>e.endsWith(".md")),a=new Set(Object.keys(e.commands));for(let e of n){let n=e.replace(/\.md$/,"");a.has(n)||t.default.unlinkSync(r.default.join(s,e))}}catch{}m()}function g(e){return n.default.createHash("sha256").update(e).digest("hex").slice(0,12)}function x(e){let n,o=(0,s.getSlycodeRoot)(),c=r.default.join(o,"updates","actions"),d=r.default.join(o,"store","actions");if(!t.default.existsSync(c))return[];let u=[],p=!1;try{n=t.default.readdirSync(c).filter(e=>e.endsWith(".md"))}catch{return[]}for(let s of n)try{let n=r.default.join(c,s),a=t.default.readFileSync(n,"utf-8"),o=g(a),f=i(a);if(!f)continue;let m=l(f.frontmatter,f.body);m.name||(m.name=s.replace(/\.md$/,""));let h=`actions/${m.name}`;if(e[h]===o)continue;let y=r.default.join(d,s);if(t.default.existsSync(y)){let r=t.default.readFileSync(y,"utf-8"),n=g(r);if(o===n){e[h]||(e[h]=o,p=!0);continue}let s=i(r),a=s?l(s.frontmatter,s.body):null,c=[];a&&(m.prompt!==a.prompt&&c.push("prompt"),m.label!==a.label&&c.push("label"),m.description!==a.description&&c.push("description"),m.placement!==a.placement&&c.push("placement"),m.group!==a.group&&c.push("group"));let d=a?Object.keys(m.classes).filter(e=>!(e in a.classes)):Object.keys(m.classes);u.push({name:m.name,assetType:"action",status:"update",currentVersion:a?.version,upstreamVersion:m.version,contentHash:o,description:m.description,changedFields:c,newClasses:d.length>0?d:void 0})}else u.push({name:m.name,assetType:"action",status:"new",upstreamVersion:m.version,contentHash:o,description:m.description,newClasses:Object.keys(m.classes)})}catch{}return p&&(0,a.saveIgnoredUpdates)(e),u}function v(e){let n=(0,s.getSlycodeRoot)(),o=r.default.join(n,"updates","actions",`${e}.md`),c=r.default.join(n,"store","actions",`${e}.md`);if(!t.default.existsSync(o))throw Error(`Action update not found: ${e}`);let d=t.default.readFileSync(o,"utf-8"),u=g(d),p=i(d);if(!p)throw Error(`Failed to parse upstream action: ${e}`);let f=l(p.frontmatter,p.body),y=null;if(t.default.existsSync(c)){let s=r.default.join(n,"store",".backups","actions");t.default.mkdirSync(s,{recursive:!0}),y=r.default.join(s,`${e}.md`),t.default.copyFileSync(c,y);let a=i(t.default.readFileSync(c,"utf-8"));if(a){let e={...l(a.frontmatter,a.body).classes};for(let[t,r]of Object.entries(f.classes))t in e||(e[t]=r);f.classes=e}}let x=r.default.join(n,"store","actions");t.default.mkdirSync(x,{recursive:!0}),h(f,x);let v=(0,a.getIgnoredUpdates)();return v[`actions/${e}`]=u,(0,a.saveIgnoredUpdates)(v),m(),y}e.s(["acceptActionUpdate",()=>v,"getActionsConfig",()=>f,"invalidateActionsCache",()=>m,"scanActionUpdates",()=>x,"writeActionsFromConfig",()=>y])},94750,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),s=e.i(59756),a=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),c=e.i(87718),d=e.i(95169),u=e.i(47587),p=e.i(66012),f=e.i(70101),m=e.i(74838),h=e.i(10372),y=e.i(93695);e.i(52474);var g=e.i(220),x=e.i(89171),v=e.i(46676),j=e.i(73178),R=e.i(55012);async function S(){try{let e=(0,v.getIgnoredUpdates)(),t=(0,v.scanUpdatesFolder)(),r=(0,j.getStoreAssets)(),n=(0,v.buildUpdatesMatrix)(t,r,e),s=(0,R.scanActionUpdates)(e);return x.NextResponse.json({entries:n,actionEntries:s,totalAvailable:n.length+s.length})}catch(e){return console.error("Updates scan failed:",e),x.NextResponse.json({error:"Failed to scan updates",details:String(e)},{status:500})}}async function b(e){try{let{assetType:t,assetName:r}=await e.json();if(!t||!r)return x.NextResponse.json({error:"assetType and assetName are required"},{status:400});if("action"===t){let e=(0,R.acceptActionUpdate)(r);return x.NextResponse.json({success:!0,backedUp:e})}let n=(0,v.acceptUpdate)(t,r);return x.NextResponse.json({success:!0,backedUp:n})}catch(e){return console.error("Update accept failed:",e),x.NextResponse.json({error:"Failed to accept update",details:String(e)},{status:500})}}async function w(e){try{let t,{assetType:r,assetName:n,contentHash:s}=await e.json();if(!r||!n||!s)return x.NextResponse.json({error:"assetType, assetName, and contentHash are required"},{status:400});t="action"===r?`actions/${n}`:`${"skill"===r?"skills":"agents"}/${n}`;let a=(0,v.getIgnoredUpdates)();return a[t]=s,(0,v.saveIgnoredUpdates)(a),x.NextResponse.json({success:!0})}catch(e){return console.error("Update dismiss failed:",e),x.NextResponse.json({error:"Failed to dismiss update",details:String(e)},{status:500})}}e.s(["DELETE",()=>w,"GET",()=>S,"POST",()=>b,"dynamic",0,"force-dynamic"],65937);var E=e.i(65937);let A=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/cli-assets/updates/route",pathname:"/api/cli-assets/updates",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-assets/updates/route.ts",nextConfigOutput:"standalone",userland:E}),{workAsyncStorage:C,workUnitAsyncStorage:T,serverHooks:k}=A;function O(){return(0,n.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:T})}async function $(e,t,n){A.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let x="/api/cli-assets/updates/route";x=x.replace(/\/index$/,"")||"/";let v=await A.prepare(e,t,{srcPage:x,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:j,params:R,nextConfig:S,parsedUrl:b,isDraftMode:w,prerenderManifest:E,routerServerContext:C,isOnDemandRevalidate:T,revalidateOnlyGenerated:k,resolvedPathname:O,clientReferenceManifest:$,serverActionsManifest:U}=v,N=(0,o.normalizeAppPath)(x),F=!!(E.dynamicRoutes[N]||E.routes[O]),_=async()=>((null==C?void 0:C.render404)?await C.render404(e,t,b,!1):t.end("This page could not be found"),null);if(F&&!w){let e=!!E.routes[O],t=E.dynamicRoutes[N];if(t&&!1===t.fallback&&!e){if(S.experimental.adapterPath)return await _();throw new y.NoFallbackError}}let q=null;!F||A.isDev||w||(q="/index"===(q=O)?"/":q);let I=!0===A.isDev||!F,P=F&&!I;U&&$&&(0,i.setManifestsSingleton)({page:x,clientReferenceManifest:$,serverActionsManifest:U});let H=e.method||"GET",D=(0,a.getTracer)(),M=D.getActiveScopeSpan(),L={params:R,prerenderManifest:E,renderOpts:{experimental:{authInterrupts:!!S.experimental.authInterrupts},cacheComponents:!!S.cacheComponents,supportsDynamicResponse:I,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:S.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,s)=>A.onRequestError(e,t,n,s,C)},sharedContext:{buildId:j}},W=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),B=c.NextRequestAdapter.fromNodeNextRequest(W,(0,c.signalFromNodeResponse)(t));try{let i=async e=>A.handle(B,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=D.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${H} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${H} ${x}`)}),o=!!(0,s.getRequestMeta)(e,"minimalMode"),l=async s=>{var a,l;let c=async({previousCacheEntry:r})=>{try{if(!o&&T&&k&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(s);e.fetchMetrics=L.renderOpts.fetchMetrics;let l=L.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let c=L.renderOpts.collectedTags;if(!F)return await (0,p.sendResponse)(W,K,a,L.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(a.headers);c&&(t[h.NEXT_CACHE_TAGS_HEADER]=c),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,n=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await A.onRequestError(e,t,{routerKind:"App Router",routePath:x,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:T})},!1,C),t}},d=await A.handleResponse({req:e,nextConfig:S,cacheKey:q,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:k,responseGenerator:c,waitUntil:n.waitUntil,isMinimalMode:o});if(!F)return null;if((null==d||null==(a=d.value)?void 0:a.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",T?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),w&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let y=(0,f.fromNodeOutgoingHttpHeaders)(d.value.headers);return o&&F||y.delete(h.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||y.get("Cache-Control")||y.set("Cache-Control",(0,m.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(W,K,new Response(d.value.body,{headers:y,status:d.value.status||200})),null};M?await l(M):await D.withPropagatedContext(e.headers,()=>D.trace(d.BaseServerSpan.handleRequest,{spanName:`${H} ${x}`,kind:a.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},l))}catch(t){if(t instanceof y.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:T})},!1,C),F)throw t;return await (0,p.sendResponse)(W,K,new Response(null,{status:500})),null}}e.s(["handler",()=>$,"patchFetch",()=>O,"routeModule",()=>A,"serverHooks",()=>k,"workAsyncStorage",()=>C,"workUnitAsyncStorage",()=>T],94750)}];
5
5
 
6
6
  //# sourceMappingURL=%5Broot-of-the-server%5D__f97e93fa._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[20884,a=>{"use strict";var b=a.i(22734),c=a.i(33405),d=a.i(14747);function e(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let a=process.cwd();return(console.warn("[paths] SLYCODE_HOME not set in production — falling back to cwd:",a),a.endsWith("/web")||a.endsWith("\\web"))?d.default.dirname(a):a}a.i(54799);let f={claude:{skills:".claude/skills",agents:".claude/agents",mcpConfig:".claude/settings.json"},agents:{skills:".agents/skills",agents:".agents/agents",mcpConfig:null},codex:{skills:".codex/skills",agents:null,mcpConfig:".codex/config.toml"},gemini:{skills:".gemini/skills",agents:".gemini/agents",mcpConfig:".gemini/settings.json"}},g=e();function h(a){let b=a.match(/^---\s*\n([\s\S]*?)\n---/);if(!b)return null;let c=b[1],d={};for(let a of c.split("\n")){let b=a.indexOf(":");if(-1===b)continue;let c=a.slice(0,b).trim(),e=a.slice(b+1).trim();(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))&&(e=e.slice(1,-1)),c&&e&&(d[c]=e)}return Object.keys(d).length>0?d:null}function i(a){return!!a&&!!a.version}function j(a,c){let e=[];try{let f="skill"===c?d.default.join(a,".claude","skills"):d.default.join(a,".claude","agents");if(!b.default.existsSync(f))return e;for(let a of b.default.readdirSync(f,{withFileTypes:!0})){let g,j;if("skill"===c){if(!a.isDirectory()||(g=d.default.join(f,a.name,"SKILL.md"),j=d.default.join("skills",a.name,"SKILL.md"),!b.default.existsSync(g)))continue}else{if(!a.isFile()||!a.name.endsWith(".md"))continue;g=d.default.join(f,a.name),j=d.default.join("agents",a.name)}let k=b.default.readFileSync(g,"utf-8"),l=h(k),m=l?.name||a.name.replace(/\.md$/,"");e.push({name:m,type:c,path:j,frontmatter:l,isValid:i(l)})}}catch{}return e}function k(a,c){let e=[],f="skill"===c?"skills":"agents",g=d.default.join(a,f);try{if(!b.default.existsSync(g))return e;for(let a of b.default.readdirSync(g,{withFileTypes:!0})){let j,k;if("skill"===c){if(!a.isDirectory()||(j=d.default.join(g,a.name,"SKILL.md"),k=d.default.join(f,a.name,"SKILL.md"),!b.default.existsSync(j)))continue}else{if(!a.isFile()||!a.name.endsWith(".md"))continue;j=d.default.join(g,a.name),k=d.default.join(f,a.name)}let l=b.default.readFileSync(j,"utf-8"),m=h(l),n=m?.name||a.name.replace(/\.md$/,"");e.push({name:n,type:c,path:k,frontmatter:m,isValid:i(m)})}}catch{}return e.sort((a,b)=>a.name.localeCompare(b.name))}d.default.basename(g),d.default.join(e(),"store",".ignored-updates.json");let l={outdatedAssets:.3,staleCards:.15,unresolvedProblems:.25,missingClaudeMd:.1,nonCompliantFrontmatter:.2};function m(a,b=0,c=0,d=0,e=l){let f=[],g=Math.max(c,1);f.push({name:"Outdated Assets",weight:e.outdatedAssets,value:b,maxValue:g});let h=Date.now(),i=[...a.backlog],j=i.filter(a=>(h-new Date(a.created_at).getTime())/864e5>14&&"done"!==a.status).length,k=Math.max(i.length,1);f.push({name:"Stale Cards",weight:e.staleCards,value:j,maxValue:k}),f.push({name:"Unresolved Problems",weight:e.unresolvedProblems,value:0,maxValue:1}),f.push({name:"Missing CLAUDE.md",weight:e.missingClaudeMd,value:+!a.hasClaudeMd,maxValue:1});let n=Math.max(c,1);f.push({name:"Non-compliant Frontmatter",weight:e.nonCompliantFrontmatter,value:d,maxValue:n});let o=0;for(let a of f)o+=Math.min(a.maxValue>0?a.value/a.maxValue:0,1)*a.weight;let p=Math.round(Math.max(0,(1-o)*100));return{score:p,level:p>=80?"green":p>=50?"amber":"red",factors:f}}function n(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let a=process.cwd();return a.endsWith("/web")||a.endsWith("\\web")?d.default.dirname(a):a}let o=n(),p=d.default.join(o,"projects","registry.json");async function q(){try{let a=await b.promises.readFile(p,"utf-8");return JSON.parse(a)}catch(a){throw console.error("Failed to load registry:",a),Error(`Failed to load registry from ${p}`)}}async function r(a){try{return(await b.promises.stat(a)).isDirectory()}catch{return!1}}async function s(a){try{let c=await b.promises.readFile(a,"utf-8");return JSON.parse(c)}catch{return null}}async function t(a,b,c){let e=d.default.join(a,"documentation","backlog.json"),f=await s(e);return f?f.map(a=>({...a,projectId:b,projectName:c})):[]}async function u(a,b){let c=d.default.join(a,"documentation","designs.json"),e=await s(c);return e?e.map(a=>({...a,projectId:b})):[]}async function v(a,b){let c=d.default.join(a,"documentation","features.json"),e=await s(c);return e?e.map(a=>({...a,projectId:b})):[]}async function w(a){let e,f=a.path;if(!await r(f))return{...a,backlog:[],designs:[],features:[],accessible:!1,error:`Path not accessible: ${f}`};let[g,h,i]=await Promise.all([t(f,a.id,a.name),u(f,a.id),v(f,a.id)]),k={projectId:a.id,skills:j(f,"skill"),agents:j(f,"agent")},l={claude:(e=a=>{try{return b.default.existsSync(d.default.join(f,a))}catch{return!1}})("CLAUDE.md")||e(".claude"),gemini:e("GEMINI.md")||e(".gemini"),codex:e("AGENTS.md")||e(".codex")||e(".agents")},m=function(a){try{return(0,c.execSync)("git status --porcelain",{cwd:a,encoding:"utf-8",timeout:5e3}).split("\n").filter(a=>a.trim().length>0).length}catch{return -1}}(f);return{...a,backlog:g,designs:h,features:i,assets:k,platforms:l,gitUncommitted:m>=0?m:void 0,accessible:!0}}async function x(){let a=await q();for(let b=0;b<a.projects.length;b++)void 0===a.projects[b].order&&(a.projects[b].order=b);a.projects.sort((a,b)=>(a.order??0)-(b.order??0));let c=a.projects.map(a=>w(a)),g=await Promise.all(c),j=function(){let a=d.default.join(e(),"store"),c=function(){for(let a of[d.default.join(e(),"build","store-manifest.js"),d.default.join(e(),"node_modules","@slycode","slycode","build","store-manifest.js")])try{if(b.default.existsSync(a)){let c=b.default.readFileSync(a,"utf-8"),d={};Function("module","exports",c)(d,d);let e=d.exports;if(e?.skills)return{skills:e.skills,actions:e.actions||[],agents:e.agents||[],mcp:e.mcp||[]}}}catch{}return null}(),f=k(a,"skill"),g=k(a,"agent");if(c){if(c.skills){let a=new Set(c.skills);f=f.filter(b=>a.has(b.name))}if(c.agents){let a=new Set(c.agents);g=g.filter(b=>a.has(b.name))}}return[...f,...g]}(),l=["skill","agent"],o=0,p=[];for(let c of["claude","agents"])for(let e of l){let g=j.filter(a=>a.type===e),k=new Map;for(let g of a.projects){let a=function(a,c){let e=[];for(let g of["skill","agent"]){let j=function(a,b,c){if("mcp"===c)return null;let e=f[b]["skill"===c?"skills":"agents"];return e?d.default.join(a,e):null}(a,c,g);if(j&&b.default.existsSync(j))try{for(let a of b.default.readdirSync(j,{withFileTypes:!0})){let c,f,k="skill"===g?"skills":"agents";if("skill"===g){if(!a.isDirectory()||(c=d.default.join(j,a.name,"SKILL.md"),f=d.default.join(k,a.name,"SKILL.md"),!b.default.existsSync(c)))continue}else{if(!a.isFile()||!a.name.endsWith(".md"))continue;c=d.default.join(j,a.name),f=d.default.join(k,a.name)}let l=b.default.readFileSync(c,"utf-8"),m=h(l),n=m?.name||a.name.replace(/\.md$/,"");e.push({name:n,type:g,path:f,frontmatter:m,isValid:i(m)})}}catch{}}return e}(g.path,c);k.set(g.id,a.filter(a=>a.type===e))}let l=function(a,b,c,d){let e=[];for(let f of a){let a=c.map(a=>{let c=b.get(a.id);if(!c)return{projectId:a.id,status:"missing"};let d=function(a,b){return a.find(a=>a.name===b)}(c,f.name);if(!d)return{projectId:a.id,status:"missing"};let e=f.frontmatter?.version,g=d.frontmatter?.version;if(e&&g)return{projectId:a.id,status:e&&g&&e.trim()===g.trim()?"current":"outdated",masterVersion:e,projectVersion:g};return{projectId:a.id,status:"outdated",masterVersion:e,projectVersion:g}});e.push({name:f.name,type:d,masterAsset:f,cells:a,isImported:!0})}return e}(g,k,a.projects,e);p.push(...l)}for(let a of p)for(let b of a.cells)"outdated"===b.status&&o++;for(let a of g){if(!a.accessible)continue;let b=0;for(let c of p)for(let d of c.cells)d.projectId===a.id&&"outdated"===d.status&&b++;a.healthScore=function(a,b,c=0,d){if(!b)return m(a,0,0,0,void 0);let e=[...b.skills,...b.agents];return m(a,c,e.length,e.filter(a=>!a.isValid).length,void 0)}(a,a.assets,b)}let r=0,t=0;for(let a of g){if(!a.accessible)continue;let b=d.default.join(a.path,"documentation","kanban.json"),c=await s(b);if(c?.stages){r+=(c.stages.backlog||[]).filter(a=>!a.archived).length;let a=(c.stages.implementation||[]).filter(a=>!a.archived),b=(c.stages.testing||[]).filter(a=>!a.archived);t+=a.length+b.length}}let u=g.reduce((a,b)=>a+(b.gitUncommitted&&b.gitUncommitted>0?b.gitUncommitted:0),0),v=process.env.BRIDGE_URL?process.env.BRIDGE_URL:"http://127.0.0.1:3004";try{let a=await fetch(`${v}/stats`,{signal:AbortSignal.timeout(2e3)});if(a.ok){let b=await a.json(),c={};for(let a of b.sessions||[])if(a.isActive){let b=a.name.split(":")[0];c[b]=(c[b]||0)+1}for(let a of g)a.activeSessions=c[a.id]??0}}catch{}let x=n();return{projects:g,totalBacklogItems:r,activeItems:t,totalOutdatedAssets:o,totalUncommitted:u,lastRefresh:new Date().toISOString(),slycodeRoot:x,projectsDir:d.default.dirname(x)}}async function y(a){let b=(await q()).projects.find(b=>b.id===a);return b?w(b):null}a.s(["getProject",()=>y,"loadDashboardData",()=>x,"loadRegistry",()=>q],20884)}];
1
+ module.exports=[20884,a=>{"use strict";var b=a.i(22734),c=a.i(33405),d=a.i(14747);function e(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let a=process.cwd();return(console.warn("[paths] SLYCODE_HOME not set in production — falling back to cwd:",a),a.endsWith("/web")||a.endsWith("\\web"))?d.default.dirname(a):a}a.i(54799);let f={claude:{skills:".claude/skills",agents:".claude/agents",mcpConfig:".claude/settings.json"},agents:{skills:".agents/skills",agents:".agents/agents",mcpConfig:null},codex:{skills:".codex/skills",agents:null,mcpConfig:".codex/config.toml"},gemini:{skills:".gemini/skills",agents:".gemini/agents",mcpConfig:".gemini/settings.json"}},g=e();function h(a){let b=a.match(/^---\s*\n([\s\S]*?)\n---/);if(!b)return null;let c=b[1],d={};for(let a of c.split("\n")){let b=a.indexOf(":");if(-1===b)continue;let c=a.slice(0,b).trim(),e=a.slice(b+1).trim();(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))&&(e=e.slice(1,-1)),c&&e&&(d[c]=e)}return Object.keys(d).length>0?d:null}function i(a){return!!a&&!!a.version}function j(a,c){let e=[];try{let f="skill"===c?d.default.join(a,".claude","skills"):d.default.join(a,".claude","agents");if(!b.default.existsSync(f))return e;for(let a of b.default.readdirSync(f,{withFileTypes:!0})){let g,j;if("skill"===c){if(!a.isDirectory()||(g=d.default.join(f,a.name,"SKILL.md"),j=d.default.join("skills",a.name,"SKILL.md"),!b.default.existsSync(g)))continue}else{if(!a.isFile()||!a.name.endsWith(".md"))continue;g=d.default.join(f,a.name),j=d.default.join("agents",a.name)}let k=b.default.readFileSync(g,"utf-8"),l=h(k),m=l?.name||a.name.replace(/\.md$/,"");e.push({name:m,type:c,path:j,frontmatter:l,isValid:i(l)})}}catch{}return e}function k(a,c){let e=[],f="skill"===c?"skills":"agents",g=d.default.join(a,f);try{if(!b.default.existsSync(g))return e;for(let a of b.default.readdirSync(g,{withFileTypes:!0})){let j,k;if("skill"===c){if(!a.isDirectory()||(j=d.default.join(g,a.name,"SKILL.md"),k=d.default.join(f,a.name,"SKILL.md"),!b.default.existsSync(j)))continue}else{if(!a.isFile()||!a.name.endsWith(".md"))continue;j=d.default.join(g,a.name),k=d.default.join(f,a.name)}let l=b.default.readFileSync(j,"utf-8"),m=h(l),n=m?.name||a.name.replace(/\.md$/,"");e.push({name:n,type:c,path:k,frontmatter:m,isValid:i(m)})}}catch{}return e.sort((a,b)=>a.name.localeCompare(b.name))}d.default.basename(g),d.default.join(e(),"store",".ignored-updates.json");let l={outdatedAssets:.3,staleCards:.15,unresolvedProblems:.25,missingClaudeMd:.1,nonCompliantFrontmatter:.2};function m(a,b=0,c=0,d=0,e=l){let f=[],g=Math.max(c,1);f.push({name:"Outdated Assets",weight:e.outdatedAssets,value:b,maxValue:g});let h=Date.now(),i=[...a.backlog],j=i.filter(a=>(h-new Date(a.created_at).getTime())/864e5>14&&"done"!==a.status).length,k=Math.max(i.length,1);f.push({name:"Stale Cards",weight:e.staleCards,value:j,maxValue:k}),f.push({name:"Unresolved Problems",weight:e.unresolvedProblems,value:0,maxValue:1}),f.push({name:"Missing CLAUDE.md",weight:e.missingClaudeMd,value:+!a.hasClaudeMd,maxValue:1});let n=Math.max(c,1);f.push({name:"Non-compliant Frontmatter",weight:e.nonCompliantFrontmatter,value:d,maxValue:n});let o=0;for(let a of f)o+=Math.min(a.maxValue>0?a.value/a.maxValue:0,1)*a.weight;let p=Math.round(Math.max(0,(1-o)*100));return{score:p,level:p>=80?"green":p>=50?"amber":"red",factors:f}}function n(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let a=process.cwd();return a.endsWith("/web")||a.endsWith("\\web")?d.default.dirname(a):a}let o=n(),p=d.default.join(o,"projects","registry.json");async function q(){try{let a=await b.promises.readFile(p,"utf-8");return JSON.parse(a)}catch(a){throw console.error("Failed to load registry:",a),Error(`Failed to load registry from ${p}`)}}async function r(a){try{return(await b.promises.stat(a)).isDirectory()}catch{return!1}}async function s(a){try{let c=await b.promises.readFile(a,"utf-8");return JSON.parse(c)}catch{return null}}async function t(a,b,c){let e=d.default.join(a,"documentation","backlog.json"),f=await s(e);return f?f.map(a=>({...a,projectId:b,projectName:c})):[]}async function u(a,b){let c=d.default.join(a,"documentation","designs.json"),e=await s(c);return e?e.map(a=>({...a,projectId:b})):[]}async function v(a,b){let c=d.default.join(a,"documentation","features.json"),e=await s(c);return e?e.map(a=>({...a,projectId:b})):[]}async function w(a){let e,f=a.path;if(!await r(f))return{...a,backlog:[],designs:[],features:[],accessible:!1,error:`Path not accessible: ${f}`};let[g,h,i]=await Promise.all([t(f,a.id,a.name),u(f,a.id),v(f,a.id)]),k={projectId:a.id,skills:j(f,"skill"),agents:j(f,"agent")},l={claude:(e=a=>{try{return b.default.existsSync(d.default.join(f,a))}catch{return!1}})("CLAUDE.md")||e(".claude"),gemini:e("GEMINI.md")||e(".gemini"),codex:e("AGENTS.md")||e(".codex")||e(".agents")},m=function(a){try{return(0,c.execSync)("git status --porcelain",{cwd:a,encoding:"utf-8",timeout:5e3}).split("\n").filter(a=>a.trim().length>0).length}catch{return -1}}(f);return{...a,backlog:g,designs:h,features:i,assets:k,platforms:l,gitUncommitted:m>=0?m:void 0,accessible:!0}}async function x(){let a,c=await q();for(let a=0;a<c.projects.length;a++)void 0===c.projects[a].order&&(c.projects[a].order=a);c.projects.sort((a,b)=>(a.order??0)-(b.order??0));let g=c.projects.map(a=>w(a)),j=await Promise.all(g),l=[...k(a=d.default.join(e(),"store"),"skill"),...k(a,"agent")],o=["skill","agent"],p=0,r=[];for(let a of["claude","agents"])for(let e of o){let g=l.filter(a=>a.type===e),j=new Map;for(let g of c.projects){let c=function(a,c){let e=[];for(let g of["skill","agent"]){let j=function(a,b,c){if("mcp"===c)return null;let e=f[b]["skill"===c?"skills":"agents"];return e?d.default.join(a,e):null}(a,c,g);if(j&&b.default.existsSync(j))try{for(let a of b.default.readdirSync(j,{withFileTypes:!0})){let c,f,k="skill"===g?"skills":"agents";if("skill"===g){if(!a.isDirectory()||(c=d.default.join(j,a.name,"SKILL.md"),f=d.default.join(k,a.name,"SKILL.md"),!b.default.existsSync(c)))continue}else{if(!a.isFile()||!a.name.endsWith(".md"))continue;c=d.default.join(j,a.name),f=d.default.join(k,a.name)}let l=b.default.readFileSync(c,"utf-8"),m=h(l),n=m?.name||a.name.replace(/\.md$/,"");e.push({name:n,type:g,path:f,frontmatter:m,isValid:i(m)})}}catch{}}return e}(g.path,a);j.set(g.id,c.filter(a=>a.type===e))}let k=function(a,b,c,d){let e=[];for(let f of a){let a=c.map(a=>{let c=b.get(a.id);if(!c)return{projectId:a.id,status:"missing"};let d=function(a,b){return a.find(a=>a.name===b)}(c,f.name);if(!d)return{projectId:a.id,status:"missing"};let e=f.frontmatter?.version,g=d.frontmatter?.version;if(e&&g)return{projectId:a.id,status:e&&g&&e.trim()===g.trim()?"current":"outdated",masterVersion:e,projectVersion:g};return{projectId:a.id,status:"outdated",masterVersion:e,projectVersion:g}});e.push({name:f.name,type:d,masterAsset:f,cells:a,isImported:!0})}return e}(g,j,c.projects,e);r.push(...k)}for(let a of r)for(let b of a.cells)"outdated"===b.status&&p++;for(let a of j){if(!a.accessible)continue;let b=0;for(let c of r)for(let d of c.cells)d.projectId===a.id&&"outdated"===d.status&&b++;a.healthScore=function(a,b,c=0,d){if(!b)return m(a,0,0,0,void 0);let e=[...b.skills,...b.agents];return m(a,c,e.length,e.filter(a=>!a.isValid).length,void 0)}(a,a.assets,b)}let t=0,u=0;for(let a of j){if(!a.accessible)continue;let b=d.default.join(a.path,"documentation","kanban.json"),c=await s(b);if(c?.stages){t+=(c.stages.backlog||[]).filter(a=>!a.archived).length;let a=(c.stages.implementation||[]).filter(a=>!a.archived),b=(c.stages.testing||[]).filter(a=>!a.archived);u+=a.length+b.length}}let v=j.reduce((a,b)=>a+(b.gitUncommitted&&b.gitUncommitted>0?b.gitUncommitted:0),0),x=process.env.BRIDGE_URL?process.env.BRIDGE_URL:"http://127.0.0.1:3004";try{let a=await fetch(`${x}/stats`,{signal:AbortSignal.timeout(2e3)});if(a.ok){let b=await a.json(),c={};for(let a of b.sessions||[])if(a.isActive){let b=a.name.split(":")[0];c[b]=(c[b]||0)+1}for(let a of j)a.activeSessions=c[a.id]??0}}catch{}let y=n();return{projects:j,totalBacklogItems:t,activeItems:u,totalOutdatedAssets:p,totalUncommitted:v,lastRefresh:new Date().toISOString(),slycodeRoot:y,projectsDir:d.default.dirname(y)}}async function y(a){let b=(await q()).projects.find(b=>b.id===a);return b?w(b):null}a.s(["getProject",()=>y,"loadDashboardData",()=>x,"loadRegistry",()=>q],20884)}];
2
2
 
3
3
  //# sourceMappingURL=src_lib_registry_ts_2fc87c9c._.js.map
@@ -1 +1 @@
1
- <!DOCTYPE html><!--2EjhdcgXP_G4Dc2aTnMhk--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/43bfca92afbacd38.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/f3d7065d54a0b9ac.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/5f95863347fe47d9.js"/><script src="/_next/static/chunks/7de9141b1af425c3.js" async=""></script><script src="/_next/static/chunks/cf910fc299170b7d.js" async=""></script><script src="/_next/static/chunks/turbopack-563e27abda63930f.js" async=""></script><script src="/_next/static/chunks/0452f599128364c9.js" async=""></script><script src="/_next/static/chunks/e24d6768d85df882.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><title>SlyCode 🦊</title><meta name="description" content="SlyCode Managed Projects"/><link rel="icon" href="/favicon.png"/><script>(function(){try{var t=localStorage.getItem('slycode-theme');if(t==='light')return;if(t==='dark'||window.matchMedia('(prefers-color-scheme:dark)').matches)document.documentElement.classList.add('dark')}catch(e){}})()</script><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body class="geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable jetbrains_mono_7d65b77b-module__VxV-Ta__variable font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/5f95863347fe47d9.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[1088,[\"/_next/static/chunks/0452f599128364c9.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"VoiceProvider\"]\n3:I[39756,[\"/_next/static/chunks/0452f599128364c9.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"default\"]\n4:I[37457,[\"/_next/static/chunks/0452f599128364c9.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"default\"]\n5:I[97367,[\"/_next/static/chunks/0452f599128364c9.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"OutletBoundary\"]\n6:\"$Sreact.suspense\"\n8:I[97367,[\"/_next/static/chunks/0452f599128364c9.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"ViewportBoundary\"]\na:I[97367,[\"/_next/static/chunks/0452f599128364c9.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"MetadataBoundary\"]\nc:I[68027,[\"/_next/static/chunks/0452f599128364c9.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"default\"]\n:HL[\"/_next/static/chunks/43bfca92afbacd38.css\",\"style\"]\n:HL[\"/_next/static/chunks/f3d7065d54a0b9ac.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"2EjhdcgXP_G4Dc2aTnMhk\",\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/43bfca92afbacd38.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/f3d7065d54a0b9ac.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0452f599128364c9.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/e24d6768d85df882.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var t=localStorage.getItem('slycode-theme');if(t==='light')return;if(t==='dark'||window.matchMedia('(prefers-color-scheme:dark)').matches)document.documentElement.classList.add('dark')}catch(e){}})()\"}}]}],[\"$\",\"body\",null,{\"className\":\"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable jetbrains_mono_7d65b77b-module__VxV-Ta__variable font-sans antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@7\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",\"$undefined\"],\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"d:I[27201,[\"/_next/static/chunks/0452f599128364c9.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"IconMark\"]\n7:null\nb:[[\"$\",\"title\",\"0\",{\"children\":\"SlyCode 🦊\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"SlyCode Managed Projects\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.png\"}],[\"$\",\"$Ld\",\"3\",{}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><!--ykJOQKO__meU2uRZcR2GX--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/43bfca92afbacd38.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/f3d7065d54a0b9ac.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/5f95863347fe47d9.js"/><script src="/_next/static/chunks/7de9141b1af425c3.js" async=""></script><script src="/_next/static/chunks/cf910fc299170b7d.js" async=""></script><script src="/_next/static/chunks/turbopack-563e27abda63930f.js" async=""></script><script src="/_next/static/chunks/0452f599128364c9.js" async=""></script><script src="/_next/static/chunks/e24d6768d85df882.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><title>SlyCode 🦊</title><meta name="description" content="SlyCode Managed Projects"/><link rel="icon" href="/favicon.png"/><script>(function(){try{var t=localStorage.getItem('slycode-theme');if(t==='light')return;if(t==='dark'||window.matchMedia('(prefers-color-scheme:dark)').matches)document.documentElement.classList.add('dark')}catch(e){}})()</script><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body class="geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable jetbrains_mono_7d65b77b-module__VxV-Ta__variable font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/5f95863347fe47d9.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[1088,[\"/_next/static/chunks/0452f599128364c9.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"VoiceProvider\"]\n3:I[39756,[\"/_next/static/chunks/0452f599128364c9.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"default\"]\n4:I[37457,[\"/_next/static/chunks/0452f599128364c9.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"default\"]\n5:I[97367,[\"/_next/static/chunks/0452f599128364c9.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"OutletBoundary\"]\n6:\"$Sreact.suspense\"\n8:I[97367,[\"/_next/static/chunks/0452f599128364c9.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"ViewportBoundary\"]\na:I[97367,[\"/_next/static/chunks/0452f599128364c9.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"MetadataBoundary\"]\nc:I[68027,[\"/_next/static/chunks/0452f599128364c9.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"default\"]\n:HL[\"/_next/static/chunks/43bfca92afbacd38.css\",\"style\"]\n:HL[\"/_next/static/chunks/f3d7065d54a0b9ac.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"ykJOQKO--meU2uRZcR2GX\",\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/43bfca92afbacd38.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/f3d7065d54a0b9ac.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0452f599128364c9.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/e24d6768d85df882.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var t=localStorage.getItem('slycode-theme');if(t==='light')return;if(t==='dark'||window.matchMedia('(prefers-color-scheme:dark)').matches)document.documentElement.classList.add('dark')}catch(e){}})()\"}}]}],[\"$\",\"body\",null,{\"className\":\"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable jetbrains_mono_7d65b77b-module__VxV-Ta__variable font-sans antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@7\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",\"$undefined\"],\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"d:I[27201,[\"/_next/static/chunks/0452f599128364c9.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"IconMark\"]\n7:null\nb:[[\"$\",\"title\",\"0\",{\"children\":\"SlyCode 🦊\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"SlyCode Managed Projects\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.png\"}],[\"$\",\"$Ld\",\"3\",{}]]\n"])</script></body></html>
@@ -1,2 +1,2 @@
1
- <!DOCTYPE html><!--2EjhdcgXP_G4Dc2aTnMhk--><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/5f95863347fe47d9.js"/><script src="/_next/static/chunks/7de9141b1af425c3.js" async=""></script><script src="/_next/static/chunks/cf910fc299170b7d.js" async=""></script><script src="/_next/static/chunks/turbopack-563e27abda63930f.js" async=""></script><script src="/_next/static/chunks/ff1a16fafef87110.js" async=""></script><script src="/_next/static/chunks/e24d6768d85df882.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: Internal Server Error.</title><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}
2
- @media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/5f95863347fe47d9.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"default\"]\n4:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n7:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"ViewportBoundary\"]\n9:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"MetadataBoundary\"]\nb:I[68027,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"2EjhdcgXP_G4Dc2aTnMhk\",\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"title\",null,{\"children\":\"500: Internal Server Error.\"}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"lineHeight\":\"48px\"},\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"paddingRight\":23,\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\"},\"children\":\"500\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"28px\"},\"children\":\"Internal Server Error.\"}]}]]}]}]}]]}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/ff1a16fafef87110.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/e24d6768d85df882.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L7\",null,{\"children\":\"$L8\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$La\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$b\",\"$undefined\"],\"S\":true}\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\na:[]\n"])</script></body></html>
1
+ <!DOCTYPE html><!--ykJOQKO__meU2uRZcR2GX--><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/5f95863347fe47d9.js"/><script src="/_next/static/chunks/7de9141b1af425c3.js" async=""></script><script src="/_next/static/chunks/cf910fc299170b7d.js" async=""></script><script src="/_next/static/chunks/turbopack-563e27abda63930f.js" async=""></script><script src="/_next/static/chunks/ff1a16fafef87110.js" async=""></script><script src="/_next/static/chunks/e24d6768d85df882.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: Internal Server Error.</title><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}
2
+ @media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/5f95863347fe47d9.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"default\"]\n4:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n7:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"ViewportBoundary\"]\n9:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"MetadataBoundary\"]\nb:I[68027,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"ykJOQKO--meU2uRZcR2GX\",\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"title\",null,{\"children\":\"500: Internal Server Error.\"}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"lineHeight\":\"48px\"},\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"paddingRight\":23,\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\"},\"children\":\"500\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"28px\"},\"children\":\"Internal Server Error.\"}]}]]}]}]}]]}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/ff1a16fafef87110.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/e24d6768d85df882.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L7\",null,{\"children\":\"$L8\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$La\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$b\",\"$undefined\"],\"S\":true}\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\na:[]\n"])</script></body></html>