@slycode/slycode 0.2.2 → 0.2.4

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 (89) hide show
  1. package/dist/bridge/api.js +1 -1
  2. package/dist/bridge/api.js.map +1 -1
  3. package/dist/bridge/session-manager.js +54 -14
  4. package/dist/bridge/session-manager.js.map +1 -1
  5. package/dist/bridge/types.d.ts +6 -0
  6. package/dist/messaging/index.js +78 -74
  7. package/dist/messaging/index.js.map +1 -1
  8. package/dist/web/.next/BUILD_ID +1 -1
  9. package/dist/web/.next/build-manifest.json +2 -2
  10. package/dist/web/.next/server/app/_global-error.html +2 -2
  11. package/dist/web/.next/server/app/_global-error.rsc +1 -1
  12. package/dist/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  13. package/dist/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  14. package/dist/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  15. package/dist/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  16. package/dist/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  17. package/dist/web/.next/server/app/_not-found.html +1 -1
  18. package/dist/web/.next/server/app/_not-found.rsc +1 -1
  19. package/dist/web/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  20. package/dist/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  21. package/dist/web/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  22. package/dist/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  23. package/dist/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  24. package/dist/web/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  25. package/dist/web/.next/server/app/api/bridge/[...path]/route.js +1 -1
  26. package/dist/web/.next/server/app/api/bridge/[...path]/route.js.nft.json +1 -1
  27. package/dist/web/.next/server/app/api/kanban/route.js +4 -4
  28. package/dist/web/.next/server/app/api/kanban/route.js.nft.json +1 -1
  29. package/dist/web/.next/server/app/api/kanban/stream/route.js +1 -1
  30. package/dist/web/.next/server/app/api/kanban/stream/route.js.nft.json +1 -1
  31. package/dist/web/.next/server/app/api/scheduler/route.js +1 -1
  32. package/dist/web/.next/server/app/api/scheduler/route.js.nft.json +1 -1
  33. package/dist/web/.next/server/app/api/sly-actions/stream/route.js +1 -1
  34. package/dist/web/.next/server/app/api/sly-actions/stream/route.js.nft.json +1 -1
  35. package/dist/web/.next/server/chunks/{[externals]__3d917172._.js → [externals]__65615fd8._.js} +2 -2
  36. package/dist/web/.next/server/chunks/[root-of-the-server]__09aec55a._.js +1 -1
  37. package/dist/web/.next/server/chunks/[root-of-the-server]__198f01e0._.js +1 -1
  38. package/dist/web/.next/server/chunks/[root-of-the-server]__2b639eab._.js +1 -1
  39. package/dist/web/.next/server/chunks/[root-of-the-server]__3b9d3e43._.js +1 -1
  40. package/dist/web/.next/server/chunks/[root-of-the-server]__3f239285._.js +1 -1
  41. package/dist/web/.next/server/chunks/[root-of-the-server]__46b023d4._.js +1 -1
  42. package/dist/web/.next/server/chunks/[root-of-the-server]__4c7995bf._.js +1 -1
  43. package/dist/web/.next/server/chunks/[root-of-the-server]__4d0d3464._.js +1 -1
  44. package/dist/web/.next/server/chunks/[root-of-the-server]__6d330d40._.js +1 -1
  45. package/dist/web/.next/server/chunks/[root-of-the-server]__6ffce934._.js +3 -0
  46. package/dist/web/.next/server/chunks/[root-of-the-server]__884d73e4._.js +1 -1
  47. package/dist/web/.next/server/chunks/[root-of-the-server]__8ab096a3._.js +3 -0
  48. package/dist/web/.next/server/chunks/[root-of-the-server]__9058a007._.js +1 -1
  49. package/dist/web/.next/server/chunks/[root-of-the-server]__933e6077._.js +2 -2
  50. package/dist/web/.next/server/chunks/[root-of-the-server]__949bb248._.js +1 -1
  51. package/dist/web/.next/server/chunks/[root-of-the-server]__aa814a86._.js +1 -1
  52. package/dist/web/.next/server/chunks/[root-of-the-server]__ad64e04f._.js +2 -2
  53. package/dist/web/.next/server/chunks/[root-of-the-server]__b90bbd70._.js +1 -1
  54. package/dist/web/.next/server/chunks/{[root-of-the-server]__4244617a._.js → [root-of-the-server]__b9e7d34c._.js} +4 -4
  55. package/dist/web/.next/server/chunks/[root-of-the-server]__baa99257._.js +1 -1
  56. package/dist/web/.next/server/chunks/[root-of-the-server]__bbb4b3ac._.js +1 -1
  57. package/dist/web/.next/server/chunks/[root-of-the-server]__bc55c42a._.js +2 -2
  58. package/dist/web/.next/server/chunks/[root-of-the-server]__bf286c26._.js +1 -1
  59. package/dist/web/.next/server/chunks/[root-of-the-server]__d219e3f0._.js +18 -0
  60. package/dist/web/.next/server/chunks/[root-of-the-server]__d38c7a96._.js +1 -1
  61. package/dist/web/.next/server/chunks/[root-of-the-server]__e88a19d2._.js +1 -1
  62. package/dist/web/.next/server/chunks/[root-of-the-server]__e9b0e744._.js +1 -1
  63. package/dist/web/.next/server/chunks/[root-of-the-server]__f1fe18e6._.js +2 -2
  64. package/dist/web/.next/server/chunks/[root-of-the-server]__f4124388._.js +3 -0
  65. package/dist/web/.next/server/chunks/[root-of-the-server]__f59af2bc._.js +1 -1
  66. package/dist/web/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_ffc6c790.js +4 -4
  67. package/dist/web/.next/server/chunks/src_677020aa._.js +1 -1
  68. package/dist/web/.next/server/chunks/src_lib_scheduler_ts_03988e3e._.js +1 -1
  69. package/dist/web/.next/server/chunks/src_lib_scheduler_ts_7120457c._.js +1 -1
  70. package/dist/web/.next/server/chunks/ssr/src_lib_registry_ts_2fc87c9c._.js +1 -1
  71. package/dist/web/.next/server/pages/404.html +1 -1
  72. package/dist/web/.next/server/pages/500.html +2 -2
  73. package/dist/web/src/app/api/bridge/[...path]/route.ts +3 -1
  74. package/dist/web/src/app/api/dashboard/route.ts +2 -1
  75. package/dist/web/src/app/api/search/route.ts +2 -1
  76. package/dist/web/src/app/api/transcribe/route.ts +6 -1
  77. package/dist/web/src/lib/paths.ts +21 -0
  78. package/dist/web/src/lib/registry.ts +2 -1
  79. package/dist/web/src/lib/scheduler.ts +130 -30
  80. package/dist/web/tsconfig.tsbuildinfo +1 -1
  81. package/package.json +1 -1
  82. package/templates/kanban-seed.json +1 -1
  83. package/dist/web/.next/server/chunks/[root-of-the-server]__289ec56e._.js +0 -3
  84. package/dist/web/.next/server/chunks/[root-of-the-server]__543058c2._.js +0 -18
  85. package/dist/web/.next/server/chunks/[root-of-the-server]__949d814c._.js +0 -3
  86. package/dist/web/.next/server/chunks/[root-of-the-server]__ce429522._.js +0 -3
  87. /package/dist/web/.next/static/{qFx647ZKgoWRmzX60iXhp → sQ8knGS1B967Ng9HqMKOG}/_buildManifest.js +0 -0
  88. /package/dist/web/.next/static/{qFx647ZKgoWRmzX60iXhp → sQ8knGS1B967Ng9HqMKOG}/_clientMiddlewareManifest.json +0 -0
  89. /package/dist/web/.next/static/{qFx647ZKgoWRmzX60iXhp → sQ8knGS1B967Ng9HqMKOG}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
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 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}e.s(["getPackageDir",()=>a,"getSlycodeRoot",()=>n])},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},57032,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),a=e.i(59756),s=e.i(61916),o=e.i(74677),i=e.i(69741),l=e.i(16795),d=e.i(87718),u=e.i(95169),c=e.i(47587),p=e.i(66012),h=e.i(70101),x=e.i(74838),v=e.i(10372),f=e.i(93695);e.i(52474);var R=e.i(220),g=e.i(89171),y=e.i(33405),m=e.i(22734),w=e.i(14747),E=e.i(7367);async function C(){let e=(0,E.getSlycodeRoot)(),t="0.0.0";for(let r of[w.default.join(e,"node_modules","@slycode","slycode","package.json"),w.default.join(e,"packages","slycode","package.json")])if((0,m.existsSync)(r))try{t=JSON.parse((0,m.readFileSync)(r,"utf-8")).version||"0.0.0";break}catch{}let r=null;try{r=(0,y.execSync)("npm view @slycode/slycode version",{encoding:"utf-8",timeout:5e3,stdio:["pipe","pipe","pipe"],windowsHide:!0}).trim()||null}catch{}let n=!!(r&&r!==t);return g.NextResponse.json({current:t,latest:r,updateAvailable:n})}e.s(["GET",()=>C],74335);var b=e.i(74335);let k=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/version-check/route",pathname:"/api/version-check",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/version-check/route.ts",nextConfigOutput:"standalone",userland:b}),{workAsyncStorage:A,workUnitAsyncStorage:S,serverHooks:O}=k;function _(){return(0,n.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:S})}async function N(e,t,n){k.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/version-check/route";g=g.replace(/\/index$/,"")||"/";let y=await k.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:m,params:w,nextConfig:E,parsedUrl:C,isDraftMode:b,prerenderManifest:A,routerServerContext:S,isOnDemandRevalidate:O,revalidateOnlyGenerated:_,resolvedPathname:N,clientReferenceManifest:T,serverActionsManifest:P}=y,j=(0,i.normalizeAppPath)(g),q=!!(A.dynamicRoutes[j]||A.routes[N]),H=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,C,!1):t.end("This page could not be found"),null);if(q&&!b){let e=!!A.routes[N],t=A.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await H();throw new f.NoFallbackError}}let D=null;!q||k.isDev||b||(D="/index"===(D=N)?"/":D);let U=!0===k.isDev||!q,I=q&&!U;P&&T&&(0,o.setManifestsSingleton)({page:g,clientReferenceManifest:T,serverActionsManifest:P});let M=e.method||"GET",F=(0,s.getTracer)(),$=F.getActiveScopeSpan(),K={params:w,prerenderManifest:A,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:U,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>k.onRequestError(e,t,n,a,S)},sharedContext:{buildId:m}},L=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),G=d.NextRequestAdapter.fromNodeNextRequest(L,(0,d.signalFromNodeResponse)(t));try{let o=async e=>k.handle(G,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${M} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${g}`)}),i=!!(0,a.getRequestMeta)(e,"minimalMode"),l=async a=>{var s,l;let d=async({previousCacheEntry:r})=>{try{if(!i&&O&&_&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await o(a);e.fetchMetrics=K.renderOpts.fetchMetrics;let l=K.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let d=K.renderOpts.collectedTags;if(!q)return await (0,p.sendResponse)(L,B,s,K.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);d&&(t[v.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=v.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,n=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=v.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await k.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:O})},!1,S),t}},u=await k.handleResponse({req:e,nextConfig:E,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:_,responseGenerator:d,waitUntil:n.waitUntil,isMinimalMode:i});if(!q)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==R.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});i||t.setHeader("x-nextjs-cache",O?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return i&&q||f.delete(v.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,x.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(L,B,new Response(u.value.body,{headers:f,status:u.value.status||200})),null};$?await l($):await F.withPropagatedContext(e.headers,()=>F.trace(u.BaseServerSpan.handleRequest,{spanName:`${M} ${g}`,kind:s.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},l))}catch(t){if(t instanceof f.NoFallbackError||await k.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:O})},!1,S),q)throw t;return await (0,p.sendResponse)(L,B,new Response(null,{status:500})),null}}e.s(["handler",()=>N,"patchFetch",()=>_,"routeModule",()=>k,"serverHooks",()=>O,"workAsyncStorage",()=>A,"workUnitAsyncStorage",()=>S],57032)}];
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 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 s(){return process.env.BRIDGE_URL?process.env.BRIDGE_URL:"http://127.0.0.1:3004"}e.s(["getBridgeUrl",()=>s,"getPackageDir",()=>a,"getSlycodeRoot",()=>n])},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},57032,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),a=e.i(59756),s=e.i(61916),o=e.i(74677),i=e.i(69741),l=e.i(16795),d=e.i(87718),c=e.i(95169),u=e.i(47587),p=e.i(66012),h=e.i(70101),x=e.i(74838),v=e.i(10372),R=e.i(93695);e.i(52474);var f=e.i(220),g=e.i(89171),y=e.i(33405),E=e.i(22734),m=e.i(14747),w=e.i(7367);async function C(){let e=(0,w.getSlycodeRoot)(),t="0.0.0";for(let r of[m.default.join(e,"node_modules","@slycode","slycode","package.json"),m.default.join(e,"packages","slycode","package.json")])if((0,E.existsSync)(r))try{t=JSON.parse((0,E.readFileSync)(r,"utf-8")).version||"0.0.0";break}catch{}let r=null;try{r=(0,y.execSync)("npm view @slycode/slycode version",{encoding:"utf-8",timeout:5e3,stdio:["pipe","pipe","pipe"],windowsHide:!0}).trim()||null}catch{}let n=!!(r&&r!==t);return g.NextResponse.json({current:t,latest:r,updateAvailable:n})}e.s(["GET",()=>C],74335);var b=e.i(74335);let k=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/version-check/route",pathname:"/api/version-check",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/version-check/route.ts",nextConfigOutput:"standalone",userland:b}),{workAsyncStorage:A,workUnitAsyncStorage:S,serverHooks:_}=k;function O(){return(0,n.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:S})}async function N(e,t,n){k.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/version-check/route";g=g.replace(/\/index$/,"")||"/";let y=await k.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:E,params:m,nextConfig:w,parsedUrl:C,isDraftMode:b,prerenderManifest:A,routerServerContext:S,isOnDemandRevalidate:_,revalidateOnlyGenerated:O,resolvedPathname:N,clientReferenceManifest:T,serverActionsManifest:P}=y,j=(0,i.normalizeAppPath)(g),q=!!(A.dynamicRoutes[j]||A.routes[N]),H=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,C,!1):t.end("This page could not be found"),null);if(q&&!b){let e=!!A.routes[N],t=A.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(w.experimental.adapterPath)return await H();throw new R.NoFallbackError}}let D=null;!q||k.isDev||b||(D="/index"===(D=N)?"/":D);let U=!0===k.isDev||!q,I=q&&!U;P&&T&&(0,o.setManifestsSingleton)({page:g,clientReferenceManifest:T,serverActionsManifest:P});let M=e.method||"GET",L=(0,s.getTracer)(),F=L.getActiveScopeSpan(),$={params:m,prerenderManifest:A,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:U,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:w.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>k.onRequestError(e,t,n,a,S)},sharedContext:{buildId:E}},B=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),G=d.NextRequestAdapter.fromNodeNextRequest(B,(0,d.signalFromNodeResponse)(t));try{let o=async e=>k.handle(G,$).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")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${M} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${g}`)}),i=!!(0,a.getRequestMeta)(e,"minimalMode"),l=async a=>{var s,l;let d=async({previousCacheEntry:r})=>{try{if(!i&&_&&O&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await o(a);e.fetchMetrics=$.renderOpts.fetchMetrics;let l=$.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let d=$.renderOpts.collectedTags;if(!q)return await (0,p.sendResponse)(B,K,s,$.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);d&&(t[v.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=v.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,n=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=v.INFINITE_CACHE?void 0:$.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await k.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:_})},!1,S),t}},c=await k.handleResponse({req:e,nextConfig:w,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:_,revalidateOnlyGenerated:O,responseGenerator:d,waitUntil:n.waitUntil,isMinimalMode:i});if(!q)return null;if((null==c||null==(s=c.value)?void 0:s.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",_?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let R=(0,h.fromNodeOutgoingHttpHeaders)(c.value.headers);return i&&q||R.delete(v.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||R.get("Cache-Control")||R.set("Cache-Control",(0,x.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)(B,K,new Response(c.value.body,{headers:R,status:c.value.status||200})),null};F?await l(F):await L.withPropagatedContext(e.headers,()=>L.trace(c.BaseServerSpan.handleRequest,{spanName:`${M} ${g}`,kind:s.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},l))}catch(t){if(t instanceof R.NoFallbackError||await k.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:_})},!1,S),q)throw t;return await (0,p.sendResponse)(B,K,new Response(null,{status:500})),null}}e.s(["handler",()=>N,"patchFetch",()=>O,"routeModule",()=>k,"serverHooks",()=>_,"workAsyncStorage",()=>A,"workUnitAsyncStorage",()=>S],57032)}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__b90bbd70._.js.map
@@ -1,7 +1,7 @@
1
- module.exports=[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"))},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"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},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}e.s(["getPackageDir",()=>a,"getSlycodeRoot",()=>n])},14707,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),a=e.i(59756),o=e.i(61916),s=e.i(74677),i=e.i(69741),l=e.i(16795),d=e.i(87718),u=e.i(95169),c=e.i(47587),p=e.i(66012),h=e.i(70101),v=e.i(74838),x=e.i(10372),f=e.i(93695);e.i(52474);var R=e.i(220),m=e.i(22734),g=e.i(14747),w=e.i(7367);async function y(e){let t=new TextEncoder,r=null,n=null,a=!1;return new Response(new ReadableStream({start(e){let o=`event: connected
1
+ module.exports=[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"))},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"))},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 o(){return process.env.BRIDGE_URL?process.env.BRIDGE_URL:"http://127.0.0.1:3004"}e.s(["getBridgeUrl",()=>o,"getPackageDir",()=>a,"getSlycodeRoot",()=>n])},14707,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),a=e.i(59756),o=e.i(61916),s=e.i(74677),i=e.i(69741),l=e.i(16795),d=e.i(87718),u=e.i(95169),c=e.i(47587),p=e.i(66012),h=e.i(70101),v=e.i(74838),f=e.i(10372),x=e.i(93695);e.i(52474);var R=e.i(220),g=e.i(22734),m=e.i(14747),w=e.i(7367);async function y(e){let t=new TextEncoder,r=null,n=null,a=!1;return new Response(new ReadableStream({start(e){let o=`event: connected
2
2
  data: ${JSON.stringify({file:"store/actions/"})}
3
3
 
4
- `;e.enqueue(t.encode(o));let s=g.default.join((0,w.getSlycodeRoot)(),"store","actions");try{(r=(0,m.watch)(s,{recursive:!1},(r,o)=>{a||(n&&clearTimeout(n),n=setTimeout(()=>{if(a)return;let r=`event: update
4
+ `;e.enqueue(t.encode(o));let s=m.default.join((0,w.getSlycodeRoot)(),"store","actions");try{(r=(0,g.watch)(s,{recursive:!1},(r,o)=>{a||(n&&clearTimeout(n),n=setTimeout(()=>{if(a)return;let r=`event: update
5
5
  data: ${JSON.stringify({timestamp:new Date().toISOString(),file:"store/actions/"})}
6
6
 
7
7
  `;try{e.enqueue(t.encode(r))}catch{}},500))})).on("error",r=>{if(a)return;let n=`event: error
@@ -10,6 +10,6 @@ data: ${JSON.stringify({message:r.message})}
10
10
  `;try{e.enqueue(t.encode(n))}catch{}})}catch{let r=`event: error
11
11
  data: ${JSON.stringify({message:"Failed to start file watcher"})}
12
12
 
13
- `;e.enqueue(t.encode(r))}let i=setInterval(()=>{if(a)return void clearInterval(i);try{e.enqueue(t.encode("event: heartbeat\ndata: {}\n\n"))}catch{clearInterval(i)}},3e4)},cancel(){a=!0,n&&clearTimeout(n),r&&r.close()}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","X-Accel-Buffering":"no"}})}e.s(["GET",()=>y],10195);var E=e.i(10195);let C=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/sly-actions/stream/route",pathname:"/api/sly-actions/stream",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/sly-actions/stream/route.ts",nextConfigOutput:"standalone",userland:E}),{workAsyncStorage:b,workUnitAsyncStorage:O,serverHooks:S}=C;function A(){return(0,n.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:O})}async function T(e,t,n){C.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let m="/api/sly-actions/stream/route";m=m.replace(/\/index$/,"")||"/";let g=await C.prepare(e,t,{srcPage:m,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:w,params:y,nextConfig:E,parsedUrl:b,isDraftMode:O,prerenderManifest:S,routerServerContext:A,isOnDemandRevalidate:T,revalidateOnlyGenerated:N,resolvedPathname:q,clientReferenceManifest:P,serverActionsManifest:_}=g,k=(0,i.normalizeAppPath)(m),H=!!(S.dynamicRoutes[k]||S.routes[q]),I=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,b,!1):t.end("This page could not be found"),null);if(H&&!O){let e=!!S.routes[q],t=S.dynamicRoutes[k];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await I();throw new f.NoFallbackError}}let D=null;!H||C.isDev||O||(D="/index"===(D=q)?"/":D);let j=!0===C.isDev||!H,U=H&&!j;_&&P&&(0,s.setManifestsSingleton)({page:m,clientReferenceManifest:P,serverActionsManifest:_});let M=e.method||"GET",$=(0,o.getTracer)(),F=$.getActiveScopeSpan(),K={params:y,prerenderManifest:S,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:j,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>C.onRequestError(e,t,n,a,A)},sharedContext:{buildId:w}},L=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),G=d.NextRequestAdapter.fromNodeNextRequest(L,(0,d.signalFromNodeResponse)(t));try{let s=async e=>C.handle(G,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${M} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${m}`)}),i=!!(0,a.getRequestMeta)(e,"minimalMode"),l=async a=>{var o,l;let d=async({previousCacheEntry:r})=>{try{if(!i&&T&&N&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await s(a);e.fetchMetrics=K.renderOpts.fetchMetrics;let l=K.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let d=K.renderOpts.collectedTags;if(!H)return await (0,p.sendResponse)(L,B,o,K.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(o.headers);d&&(t[x.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=x.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,n=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=x.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await C.onRequestError(e,t,{routerKind:"App Router",routePath:m,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:T})},!1,A),t}},u=await C.handleResponse({req:e,nextConfig:E,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:N,responseGenerator:d,waitUntil:n.waitUntil,isMinimalMode:i});if(!H)return null;if((null==u||null==(o=u.value)?void 0:o.kind)!==R.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});i||t.setHeader("x-nextjs-cache",T?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),O&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return i&&H||f.delete(x.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,v.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(L,B,new Response(u.value.body,{headers:f,status:u.value.status||200})),null};F?await l(F):await $.withPropagatedContext(e.headers,()=>$.trace(u.BaseServerSpan.handleRequest,{spanName:`${M} ${m}`,kind:o.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},l))}catch(t){if(t instanceof f.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:T})},!1,A),H)throw t;return await (0,p.sendResponse)(L,B,new Response(null,{status:500})),null}}e.s(["handler",()=>T,"patchFetch",()=>A,"routeModule",()=>C,"serverHooks",()=>S,"workAsyncStorage",()=>b,"workUnitAsyncStorage",()=>O],14707)}];
13
+ `;e.enqueue(t.encode(r))}let i=setInterval(()=>{if(a)return void clearInterval(i);try{e.enqueue(t.encode("event: heartbeat\ndata: {}\n\n"))}catch{clearInterval(i)}},3e4)},cancel(){a=!0,n&&clearTimeout(n),r&&r.close()}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","X-Accel-Buffering":"no"}})}e.s(["GET",()=>y],10195);var E=e.i(10195);let C=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/sly-actions/stream/route",pathname:"/api/sly-actions/stream",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/sly-actions/stream/route.ts",nextConfigOutput:"standalone",userland:E}),{workAsyncStorage:b,workUnitAsyncStorage:O,serverHooks:S}=C;function A(){return(0,n.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:O})}async function T(e,t,n){C.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/sly-actions/stream/route";g=g.replace(/\/index$/,"")||"/";let m=await C.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!m)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:w,params:y,nextConfig:E,parsedUrl:b,isDraftMode:O,prerenderManifest:S,routerServerContext:A,isOnDemandRevalidate:T,revalidateOnlyGenerated:N,resolvedPathname:q,clientReferenceManifest:_,serverActionsManifest:P}=m,k=(0,i.normalizeAppPath)(g),I=!!(S.dynamicRoutes[k]||S.routes[q]),D=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,b,!1):t.end("This page could not be found"),null);if(I&&!O){let e=!!S.routes[q],t=S.dynamicRoutes[k];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await D();throw new x.NoFallbackError}}let H=null;!I||C.isDev||O||(H="/index"===(H=q)?"/":H);let U=!0===C.isDev||!I,j=I&&!U;P&&_&&(0,s.setManifestsSingleton)({page:g,clientReferenceManifest:_,serverActionsManifest:P});let M=e.method||"GET",$=(0,o.getTracer)(),L=$.getActiveScopeSpan(),B={params:y,prerenderManifest:S,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:U,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>C.onRequestError(e,t,n,a,A)},sharedContext:{buildId:w}},F=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),G=d.NextRequestAdapter.fromNodeNextRequest(F,(0,d.signalFromNodeResponse)(t));try{let s=async e=>C.handle(G,B).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${M} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${g}`)}),i=!!(0,a.getRequestMeta)(e,"minimalMode"),l=async a=>{var o,l;let d=async({previousCacheEntry:r})=>{try{if(!i&&T&&N&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await s(a);e.fetchMetrics=B.renderOpts.fetchMetrics;let l=B.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let d=B.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(F,K,o,B.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(o.headers);d&&(t[f.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==B.renderOpts.collectedRevalidate&&!(B.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&B.renderOpts.collectedRevalidate,n=void 0===B.renderOpts.collectedExpire||B.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:B.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await C.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:T})},!1,A),t}},u=await C.handleResponse({req:e,nextConfig:E,cacheKey:H,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:N,responseGenerator:d,waitUntil:n.waitUntil,isMinimalMode:i});if(!I)return null;if((null==u||null==(o=u.value)?void 0:o.kind)!==R.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});i||t.setHeader("x-nextjs-cache",T?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),O&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let x=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return i&&I||x.delete(f.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||x.get("Cache-Control")||x.set("Cache-Control",(0,v.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(F,K,new Response(u.value.body,{headers:x,status:u.value.status||200})),null};L?await l(L):await $.withPropagatedContext(e.headers,()=>$.trace(u.BaseServerSpan.handleRequest,{spanName:`${M} ${g}`,kind:o.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},l))}catch(t){if(t instanceof x.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:T})},!1,A),I)throw t;return await (0,p.sendResponse)(F,K,new Response(null,{status:500})),null}}e.s(["handler",()=>T,"patchFetch",()=>A,"routeModule",()=>C,"serverHooks",()=>S,"workAsyncStorage",()=>b,"workUnitAsyncStorage",()=>O],14707)}];
14
14
 
15
- //# sourceMappingURL=%5Broot-of-the-server%5D__4244617a._.js.map
15
+ //# sourceMappingURL=%5Broot-of-the-server%5D__b9e7d34c._.js.map
@@ -1,3 +1,3 @@
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}e.s(["getPackageDir",()=>n,"getSlycodeRoot",()=>a])},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},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}}function l(){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 d=l(),u=a.default.join(d,"projects","registry.json");async function c(){try{let e=await t.promises.readFile(u,"utf-8");return JSON.parse(e)}catch(e){throw console.error("Failed to load registry:",e),Error(`Failed to load registry from ${u}`)}}async function p(e){let r=JSON.stringify(e,null,2)+"\n";await t.promises.writeFile(u,r,"utf-8")}async function f(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 h(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 g(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 x(e){let t=e.path;if(!await f(t))return{...e,backlog:[],designs:[],features:[],accessible:!1,error:`Path not accessible: ${t}`};let[a,s,i]=await Promise.all([h(t,e.id,e.name),g(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 v(){let e=await c();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),i=(0,s.getStoreAssets)(),d=["skill","agent"],u=0,p=[];for(let t of["claude","agents"])for(let r of d){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);p.push(...o)}for(let e of p)for(let t of e.cells)"outdated"===t.status&&u++;for(let e of r){if(!e.accessible)continue;let t=0;for(let r of p)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 f=0,h=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){f+=(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 g=r.reduce((e,t)=>e+(t.gitUncommitted&&t.gitUncommitted>0?t.gitUncommitted:0),0),y=process.env.BRIDGE_URL||"http://127.0.0.1:7592";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=l();return{projects:r,totalBacklogItems:f,activeItems:h,totalOutdatedAssets:u,totalUncommitted:g,lastRefresh:new Date().toISOString(),slycodeRoot:v,projectsDir:a.default.dirname(v)}}e.s(["getRepoRoot",()=>l,"loadDashboardData",()=>v,"loadRegistry",()=>c,"saveRegistry",()=>p],48044)},36758,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 y=e.i(220),x=e.i(89171),v=e.i(48044);async function w(e){try{let{projectIds:t}=await e.json();if(!Array.isArray(t)||0===t.length)return x.NextResponse.json({error:"projectIds must be a non-empty array"},{status:400});let r=await (0,v.loadRegistry)();for(let e=0;e<t.length;e++){let a=r.projects.find(r=>r.id===t[e]);a&&(a.order=e)}return r.lastUpdated=new Date().toISOString(),await (0,v.saveRegistry)(r),x.NextResponse.json({ok:!0})}catch(e){return console.error("Failed to reorder projects:",e),x.NextResponse.json({error:"Failed to reorder projects",details:String(e)},{status:500})}}e.s(["POST",()=>w,"dynamic",0,"force-dynamic"],12621);var R=e.i(12621);let j=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/projects/reorder/route",pathname:"/api/projects/reorder",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/projects/reorder/route.ts",nextConfigOutput:"standalone",userland:R}),{workAsyncStorage:S,workUnitAsyncStorage:E,serverHooks:b}=j;function C(){return(0,a.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:E})}async function k(e,t,a){j.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let x="/api/projects/reorder/route";x=x.replace(/\/index$/,"")||"/";let v=await j.prepare(e,t,{srcPage:x,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:E,isDraftMode:b,prerenderManifest:C,routerServerContext:k,isOnDemandRevalidate:A,revalidateOnlyGenerated:O,resolvedPathname:P,clientReferenceManifest:N,serverActionsManifest:_}=v,D=(0,o.normalizeAppPath)(x),M=!!(C.dynamicRoutes[D]||C.routes[P]),F=async()=>((null==k?void 0:k.render404)?await k.render404(e,t,E,!1):t.end("This page could not be found"),null);if(M&&!b){let e=!!C.routes[P],t=C.dynamicRoutes[D];if(t&&!1===t.fallback&&!e){if(S.experimental.adapterPath)return await F();throw new g.NoFallbackError}}let T=null;!M||j.isDev||b||(T="/index"===(T=P)?"/":T);let q=!0===j.isDev||!M,U=M&&!q;_&&N&&(0,i.setManifestsSingleton)({page:x,clientReferenceManifest:N,serverActionsManifest:_});let H=e.method||"GET",I=(0,s.getTracer)(),L=I.getActiveScopeSpan(),$={params:R,prerenderManifest:C,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)=>j.onRequestError(e,t,a,n,k)},sharedContext:{buildId:w}},V=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),W=d.NextRequestAdapter.fromNodeNextRequest(V,(0,d.signalFromNodeResponse)(t));try{let i=async e=>j.handle(W,$).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} ${x}`)}),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[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:y.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 j.onRequestError(e,t,{routerKind:"App Router",routePath:x,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:A})},!1,k),t}},u=await j.handleResponse({req:e,nextConfig:S,cacheKey:T,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)!==y.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&&M||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} ${x}`,kind:s.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await j.onRequestError(e,t,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:A})},!1,k),M)throw t;return await (0,p.sendResponse)(V,K,new Response(null,{status:500})),null}}e.s(["handler",()=>k,"patchFetch",()=>C,"routeModule",()=>j,"serverHooks",()=>b,"workAsyncStorage",()=>S,"workUnitAsyncStorage",()=>E],36758)}];
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])},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},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 y(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 x(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),y(t,e.id),x(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 y=r.reduce((e,t)=>e+(t.gitUncommitted&&t.gitUncommitted>0?t.gitUncommitted:0),0),x=(0,l.getBridgeUrl)();try{let e=await fetch(`${x}/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:y,lastRefresh:new Date().toISOString(),slycodeRoot:w,projectsDir:a.default.dirname(w)}}e.s(["getRepoRoot",()=>d,"loadDashboardData",()=>w,"loadRegistry",()=>p,"saveRegistry",()=>f],48044)},36758,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 y=e.i(220),x=e.i(89171),v=e.i(48044);async function w(e){try{let{projectIds:t}=await e.json();if(!Array.isArray(t)||0===t.length)return x.NextResponse.json({error:"projectIds must be a non-empty array"},{status:400});let r=await (0,v.loadRegistry)();for(let e=0;e<t.length;e++){let a=r.projects.find(r=>r.id===t[e]);a&&(a.order=e)}return r.lastUpdated=new Date().toISOString(),await (0,v.saveRegistry)(r),x.NextResponse.json({ok:!0})}catch(e){return console.error("Failed to reorder projects:",e),x.NextResponse.json({error:"Failed to reorder projects",details:String(e)},{status:500})}}e.s(["POST",()=>w,"dynamic",0,"force-dynamic"],12621);var R=e.i(12621);let j=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/projects/reorder/route",pathname:"/api/projects/reorder",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/projects/reorder/route.ts",nextConfigOutput:"standalone",userland:R}),{workAsyncStorage:S,workUnitAsyncStorage:E,serverHooks:b}=j;function C(){return(0,a.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:E})}async function k(e,t,a){j.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let x="/api/projects/reorder/route";x=x.replace(/\/index$/,"")||"/";let v=await j.prepare(e,t,{srcPage:x,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:E,isDraftMode:b,prerenderManifest:C,routerServerContext:k,isOnDemandRevalidate:A,revalidateOnlyGenerated:O,resolvedPathname:P,clientReferenceManifest:_,serverActionsManifest:D}=v,N=(0,o.normalizeAppPath)(x),M=!!(C.dynamicRoutes[N]||C.routes[P]),F=async()=>((null==k?void 0:k.render404)?await k.render404(e,t,E,!1):t.end("This page could not be found"),null);if(M&&!b){let e=!!C.routes[P],t=C.dynamicRoutes[N];if(t&&!1===t.fallback&&!e){if(S.experimental.adapterPath)return await F();throw new g.NoFallbackError}}let T=null;!M||j.isDev||b||(T="/index"===(T=P)?"/":T);let U=!0===j.isDev||!M,q=M&&!U;D&&_&&(0,i.setManifestsSingleton)({page:x,clientReferenceManifest:_,serverActionsManifest:D});let I=e.method||"GET",H=(0,s.getTracer)(),L=H.getActiveScopeSpan(),$={params:R,prerenderManifest:C,renderOpts:{experimental:{authInterrupts:!!S.experimental.authInterrupts},cacheComponents:!!S.cacheComponents,supportsDynamicResponse:U,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)=>j.onRequestError(e,t,a,n,k)},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=>j.handle(B,$).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=H.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let 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} ${x}`)}),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[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:y.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 j.onRequestError(e,t,{routerKind:"App Router",routePath:x,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:A})},!1,k),t}},u=await j.handleResponse({req:e,nextConfig:S,cacheKey:T,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)!==y.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&&M||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 H.withPropagatedContext(e.headers,()=>H.trace(u.BaseServerSpan.handleRequest,{spanName:`${I} ${x}`,kind:s.SpanKind.SERVER,attributes:{"http.method":I,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await j.onRequestError(e,t,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:A})},!1,k),M)throw t;return await (0,p.sendResponse)(V,K,new Response(null,{status:500})),null}}e.s(["handler",()=>k,"patchFetch",()=>C,"routeModule",()=>j,"serverHooks",()=>b,"workAsyncStorage",()=>S,"workUnitAsyncStorage",()=>E],36758)}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__baa99257._.js.map
@@ -1,3 +1,3 @@
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}e.s(["getPackageDir",()=>n,"getSlycodeRoot",()=>a])},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},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}}function l(){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 d=l(),u=a.default.join(d,"projects","registry.json");async function c(){try{let e=await t.promises.readFile(u,"utf-8");return JSON.parse(e)}catch(e){throw console.error("Failed to load registry:",e),Error(`Failed to load registry from ${u}`)}}async function p(e){let r=JSON.stringify(e,null,2)+"\n";await t.promises.writeFile(u,r,"utf-8")}async function f(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 h(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 g(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 x(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 y(e){let t=e.path;if(!await f(t))return{...e,backlog:[],designs:[],features:[],accessible:!1,error:`Path not accessible: ${t}`};let[a,s,i]=await Promise.all([h(t,e.id,e.name),g(t,e.id),x(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 v(){let e=await c();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=>y(e)),r=await Promise.all(t),i=(0,s.getStoreAssets)(),d=["skill","agent"],u=0,p=[];for(let t of["claude","agents"])for(let r of d){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);p.push(...o)}for(let e of p)for(let t of e.cells)"outdated"===t.status&&u++;for(let e of r){if(!e.accessible)continue;let t=0;for(let r of p)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 f=0,h=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){f+=(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 g=r.reduce((e,t)=>e+(t.gitUncommitted&&t.gitUncommitted>0?t.gitUncommitted:0),0),x=process.env.BRIDGE_URL||"http://127.0.0.1:7592";try{let e=await fetch(`${x}/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=l();return{projects:r,totalBacklogItems:f,activeItems:h,totalOutdatedAssets:u,totalUncommitted:g,lastRefresh:new Date().toISOString(),slycodeRoot:v,projectsDir:a.default.dirname(v)}}e.s(["getRepoRoot",()=>l,"loadDashboardData",()=>v,"loadRegistry",()=>c,"saveRegistry",()=>p],48044)},45787,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(48044),w=e.i(46676),R=e.i(73178);let S=["claude","agents","codex","gemini"],j=["skill","agent"];async function E(e){try{let t=await (0,v.loadRegistry)(),r=e.nextUrl.searchParams.get("provider"),a=(0,R.scanStore)(),n=(0,R.getStoreAssets)(),s=new Map;for(let e of j)s.set(e,n.filter(t=>t.type===e));let i=r&&S.includes(r)?r:"claude",o=t.projects,l=new Map;for(let e of j)l.set(e,new Map);for(let e of o){let t=(0,w.scanProviderAssets)(e.path,i);for(let r of j){let a=t.filter(e=>e.type===r);l.get(r).set(e.id,a)}}let d=(0,w.buildStoreAssetMatrix)(s.get("skill"),l.get("skill"),o,"skill"),u=(0,w.buildStoreAssetMatrix)(s.get("agent"),l.get("agent"),o,"agent"),c=[...(0,w.findNonImportedForProvider)(s.get("skill"),l.get("skill"),o,"skill"),...(0,w.findNonImportedForProvider)(s.get("agent"),l.get("agent"),o,"agent")],p={skills:d,agents:u,nonImported:c},f=(0,w.countOutdatedAssets)(p);return y.NextResponse.json({...p,totalOutdated:f,projects:o.map(e=>({id:e.id,name:e.name})),storeData:a,activeProvider:i})}catch(e){return console.error("CLI assets scan failed:",e),y.NextResponse.json({error:"Failed to scan CLI assets",details:String(e)},{status:500})}}e.s(["GET",()=>E,"dynamic",0,"force-dynamic"],62063);var b=e.i(62063);let C=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/cli-assets/route",pathname:"/api/cli-assets",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-assets/route.ts",nextConfigOutput:"standalone",userland:b}),{workAsyncStorage:k,workUnitAsyncStorage:A,serverHooks:O}=C;function P(){return(0,a.patchFetch)({workAsyncStorage:k,workUnitAsyncStorage:A})}async function M(e,t,a){C.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/cli-assets/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:S,parsedUrl:j,isDraftMode:E,prerenderManifest:b,routerServerContext:k,isOnDemandRevalidate:A,revalidateOnlyGenerated:O,resolvedPathname:P,clientReferenceManifest:M,serverActionsManifest:N}=v,_=(0,o.normalizeAppPath)(y),D=!!(b.dynamicRoutes[_]||b.routes[P]),F=async()=>((null==k?void 0:k.render404)?await k.render404(e,t,j,!1):t.end("This page could not be found"),null);if(D&&!E){let e=!!b.routes[P],t=b.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(S.experimental.adapterPath)return await F();throw new g.NoFallbackError}}let T=null;!D||C.isDev||E||(T="/index"===(T=P)?"/":T);let q=!0===C.isDev||!D,I=D&&!q;N&&M&&(0,i.setManifestsSingleton)({page:y,clientReferenceManifest:M,serverActionsManifest:N});let U=e.method||"GET",H=(0,s.getTracer)(),L=H.getActiveScopeSpan(),$={params:R,prerenderManifest:b,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)=>C.onRequestError(e,t,a,n,k)},sharedContext:{buildId:w}},V=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),W=d.NextRequestAdapter.fromNodeNextRequest(V,(0,d.signalFromNodeResponse)(t));try{let i=async e=>C.handle(W,$).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=H.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${U} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${U} ${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(!D)return await (0,p.sendResponse)(V,K,s,$.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!==$.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: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:I,isOnDemandRevalidate:A})},!1,k),t}},u=await C.handleResponse({req:e,nextConfig:S,cacheKey:T,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:O,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:o});if(!D)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&&D||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 H.withPropagatedContext(e.headers,()=>H.trace(u.BaseServerSpan.handleRequest,{spanName:`${U} ${y}`,kind:s.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:A})},!1,k),D)throw t;return await (0,p.sendResponse)(V,K,new Response(null,{status:500})),null}}e.s(["handler",()=>M,"patchFetch",()=>P,"routeModule",()=>C,"serverHooks",()=>O,"workAsyncStorage",()=>k,"workUnitAsyncStorage",()=>A],45787)}];
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])},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},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)},45787,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(48044),w=e.i(46676),R=e.i(73178);let S=["claude","agents","codex","gemini"],j=["skill","agent"];async function E(e){try{let t=await (0,v.loadRegistry)(),r=e.nextUrl.searchParams.get("provider"),a=(0,R.scanStore)(),n=(0,R.getStoreAssets)(),s=new Map;for(let e of j)s.set(e,n.filter(t=>t.type===e));let i=r&&S.includes(r)?r:"claude",o=t.projects,l=new Map;for(let e of j)l.set(e,new Map);for(let e of o){let t=(0,w.scanProviderAssets)(e.path,i);for(let r of j){let a=t.filter(e=>e.type===r);l.get(r).set(e.id,a)}}let d=(0,w.buildStoreAssetMatrix)(s.get("skill"),l.get("skill"),o,"skill"),u=(0,w.buildStoreAssetMatrix)(s.get("agent"),l.get("agent"),o,"agent"),c=[...(0,w.findNonImportedForProvider)(s.get("skill"),l.get("skill"),o,"skill"),...(0,w.findNonImportedForProvider)(s.get("agent"),l.get("agent"),o,"agent")],p={skills:d,agents:u,nonImported:c},f=(0,w.countOutdatedAssets)(p);return y.NextResponse.json({...p,totalOutdated:f,projects:o.map(e=>({id:e.id,name:e.name})),storeData:a,activeProvider:i})}catch(e){return console.error("CLI assets scan failed:",e),y.NextResponse.json({error:"Failed to scan CLI assets",details:String(e)},{status:500})}}e.s(["GET",()=>E,"dynamic",0,"force-dynamic"],62063);var b=e.i(62063);let C=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/cli-assets/route",pathname:"/api/cli-assets",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-assets/route.ts",nextConfigOutput:"standalone",userland:b}),{workAsyncStorage:k,workUnitAsyncStorage:A,serverHooks:O}=C;function P(){return(0,a.patchFetch)({workAsyncStorage:k,workUnitAsyncStorage:A})}async function M(e,t,a){C.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/cli-assets/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:S,parsedUrl:j,isDraftMode:E,prerenderManifest:b,routerServerContext:k,isOnDemandRevalidate:A,revalidateOnlyGenerated:O,resolvedPathname:P,clientReferenceManifest:M,serverActionsManifest:N}=v,_=(0,o.normalizeAppPath)(y),D=!!(b.dynamicRoutes[_]||b.routes[P]),F=async()=>((null==k?void 0:k.render404)?await k.render404(e,t,j,!1):t.end("This page could not be found"),null);if(D&&!E){let e=!!b.routes[P],t=b.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(S.experimental.adapterPath)return await F();throw new g.NoFallbackError}}let T=null;!D||C.isDev||E||(T="/index"===(T=P)?"/":T);let U=!0===C.isDev||!D,I=D&&!U;N&&M&&(0,i.setManifestsSingleton)({page:y,clientReferenceManifest:M,serverActionsManifest:N});let q=e.method||"GET",H=(0,s.getTracer)(),L=H.getActiveScopeSpan(),$={params:R,prerenderManifest:b,renderOpts:{experimental:{authInterrupts:!!S.experimental.authInterrupts},cacheComponents:!!S.cacheComponents,supportsDynamicResponse:U,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)=>C.onRequestError(e,t,a,n,k)},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=>C.handle(B,$).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=H.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${q} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${q} ${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(!D)return await (0,p.sendResponse)(V,K,s,$.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!==$.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: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:I,isOnDemandRevalidate:A})},!1,k),t}},u=await C.handleResponse({req:e,nextConfig:S,cacheKey:T,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:O,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:o});if(!D)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&&D||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 H.withPropagatedContext(e.headers,()=>H.trace(u.BaseServerSpan.handleRequest,{spanName:`${q} ${y}`,kind:s.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:A})},!1,k),D)throw t;return await (0,p.sendResponse)(V,K,new Response(null,{status:500})),null}}e.s(["handler",()=>M,"patchFetch",()=>P,"routeModule",()=>C,"serverHooks",()=>O,"workAsyncStorage",()=>k,"workUnitAsyncStorage",()=>A],45787)}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__bbb4b3ac._.js.map
@@ -1,6 +1,6 @@
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 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}e.s(["getPackageDir",()=>s,"getSlycodeRoot",()=>n])},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},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 u=null,d=0;function p(){return r.default.join((0,s.getSlycodeRoot)(),"store","actions")}function f(){return u&&!(Date.now()-d>3e4)||(u=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())),d=Date.now()),u}function m(){u=null,d=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")}
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 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])},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},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 u=null,d=0;function p(){return r.default.join((0,s.getSlycodeRoot)(),"store","actions")}function f(){return u&&!(Date.now()-d>3e4)||(u=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())),d=Date.now()),u}function m(){u=null,d=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=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 v(e){let n,o=(0,s.getSlycodeRoot)(),c=r.default.join(o,"updates","actions"),u=r.default.join(o,"store","actions");if(!t.default.existsSync(c))return[];let d=[],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(u,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 u=a?Object.keys(m.classes).filter(e=>!(e in a.classes)):Object.keys(m.classes);d.push({name:m.name,assetType:"action",status:"update",currentVersion:a?.version,upstreamVersion:m.version,contentHash:o,description:m.description,changedFields:c,newClasses:u.length>0?u:void 0})}else d.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),d}function x(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 u=t.default.readFileSync(o,"utf-8"),d=g(u),p=i(u);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 v=r.default.join(n,"store","actions");t.default.mkdirSync(v,{recursive:!0}),h(f,v);let x=(0,a.getIgnoredUpdates)();return x[`actions/${e}`]=d,(0,a.saveIgnoredUpdates)(x),m(),y}e.s(["acceptActionUpdate",()=>x,"getActionsConfig",()=>f,"invalidateActionsCache",()=>m,"scanActionUpdates",()=>v,"writeActionsFromConfig",()=>y])},63364,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),u=e.i(95169),d=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),v=e.i(89171),x=e.i(55012);async function b(){return(0,x.invalidateActionsCache)(),v.NextResponse.json({success:!0})}e.s(["POST",()=>b],98729);var R=e.i(98729);let S=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/sly-actions/invalidate/route",pathname:"/api/sly-actions/invalidate",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/sly-actions/invalidate/route.ts",nextConfigOutput:"standalone",userland:R}),{workAsyncStorage:j,workUnitAsyncStorage:w,serverHooks:E}=S;function C(){return(0,n.patchFetch)({workAsyncStorage:j,workUnitAsyncStorage:w})}async function A(e,t,n){S.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/sly-actions/invalidate/route";v=v.replace(/\/index$/,"")||"/";let x=await S.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!x)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:b,params:R,nextConfig:j,parsedUrl:w,isDraftMode:E,prerenderManifest:C,routerServerContext:A,isOnDemandRevalidate:O,revalidateOnlyGenerated:T,resolvedPathname:$,clientReferenceManifest:k,serverActionsManifest:N}=x,P=(0,o.normalizeAppPath)(v),_=!!(C.dynamicRoutes[P]||C.routes[$]),q=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,w,!1):t.end("This page could not be found"),null);if(_&&!E){let e=!!C.routes[$],t=C.dynamicRoutes[P];if(t&&!1===t.fallback&&!e){if(j.experimental.adapterPath)return await q();throw new y.NoFallbackError}}let H=null;!_||S.isDev||E||(H="/index"===(H=$)?"/":H);let U=!0===S.isDev||!_,D=_&&!U;N&&k&&(0,i.setManifestsSingleton)({page:v,clientReferenceManifest:k,serverActionsManifest:N});let I=e.method||"GET",F=(0,a.getTracer)(),M=F.getActiveScopeSpan(),W={params:R,prerenderManifest:C,renderOpts:{experimental:{authInterrupts:!!j.experimental.authInterrupts},cacheComponents:!!j.cacheComponents,supportsDynamicResponse:U,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:j.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,s)=>S.onRequestError(e,t,n,s,A)},sharedContext:{buildId:b}},K=new l.NodeNextRequest(e),L=new l.NodeNextResponse(t),V=c.NextRequestAdapter.fromNodeNextRequest(K,(0,c.signalFromNodeResponse)(t));try{let i=async e=>S.handle(V,W).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${I} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${I} ${v}`)}),o=!!(0,s.getRequestMeta)(e,"minimalMode"),l=async s=>{var a,l;let c=async({previousCacheEntry:r})=>{try{if(!o&&O&&T&&!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=W.renderOpts.fetchMetrics;let l=W.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let c=W.renderOpts.collectedTags;if(!_)return await (0,p.sendResponse)(K,L,a,W.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!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,n=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:W.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 S.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:O})},!1,A),t}},u=await S.handleResponse({req:e,nextConfig:j,cacheKey:H,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:T,responseGenerator:c,waitUntil:n.waitUntil,isMinimalMode:o});if(!_)return null;if((null==u||null==(a=u.value)?void 0:a.kind)!==g.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",O?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let y=(0,f.fromNodeOutgoingHttpHeaders)(u.value.headers);return o&&_||y.delete(h.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||y.get("Cache-Control")||y.set("Cache-Control",(0,m.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(K,L,new Response(u.value.body,{headers:y,status:u.value.status||200})),null};M?await l(M):await F.withPropagatedContext(e.headers,()=>F.trace(u.BaseServerSpan.handleRequest,{spanName:`${I} ${v}`,kind:a.SpanKind.SERVER,attributes:{"http.method":I,"http.target":e.url}},l))}catch(t){if(t instanceof y.NoFallbackError||await S.onRequestError(e,t,{routerKind:"App Router",routePath:P,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:O})},!1,A),_)throw t;return await (0,p.sendResponse)(K,L,new Response(null,{status:500})),null}}e.s(["handler",()=>A,"patchFetch",()=>C,"routeModule",()=>S,"serverHooks",()=>E,"workAsyncStorage",()=>j,"workUnitAsyncStorage",()=>w],63364)}];
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 v(e){let n,o=(0,s.getSlycodeRoot)(),c=r.default.join(o,"updates","actions"),u=r.default.join(o,"store","actions");if(!t.default.existsSync(c))return[];let d=[],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(u,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 u=a?Object.keys(m.classes).filter(e=>!(e in a.classes)):Object.keys(m.classes);d.push({name:m.name,assetType:"action",status:"update",currentVersion:a?.version,upstreamVersion:m.version,contentHash:o,description:m.description,changedFields:c,newClasses:u.length>0?u:void 0})}else d.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),d}function x(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 u=t.default.readFileSync(o,"utf-8"),d=g(u),p=i(u);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 v=r.default.join(n,"store","actions");t.default.mkdirSync(v,{recursive:!0}),h(f,v);let x=(0,a.getIgnoredUpdates)();return x[`actions/${e}`]=d,(0,a.saveIgnoredUpdates)(x),m(),y}e.s(["acceptActionUpdate",()=>x,"getActionsConfig",()=>f,"invalidateActionsCache",()=>m,"scanActionUpdates",()=>v,"writeActionsFromConfig",()=>y])},63364,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),u=e.i(95169),d=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),v=e.i(89171),x=e.i(55012);async function R(){return(0,x.invalidateActionsCache)(),v.NextResponse.json({success:!0})}e.s(["POST",()=>R],98729);var b=e.i(98729);let S=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/sly-actions/invalidate/route",pathname:"/api/sly-actions/invalidate",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/sly-actions/invalidate/route.ts",nextConfigOutput:"standalone",userland:b}),{workAsyncStorage:j,workUnitAsyncStorage:w,serverHooks:E}=S;function C(){return(0,n.patchFetch)({workAsyncStorage:j,workUnitAsyncStorage:w})}async function A(e,t,n){S.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/sly-actions/invalidate/route";v=v.replace(/\/index$/,"")||"/";let x=await S.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!x)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:R,params:b,nextConfig:j,parsedUrl:w,isDraftMode:E,prerenderManifest:C,routerServerContext:A,isOnDemandRevalidate:O,revalidateOnlyGenerated:T,resolvedPathname:$,clientReferenceManifest:k,serverActionsManifest:_}=x,N=(0,o.normalizeAppPath)(v),P=!!(C.dynamicRoutes[N]||C.routes[$]),U=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,w,!1):t.end("This page could not be found"),null);if(P&&!E){let e=!!C.routes[$],t=C.dynamicRoutes[N];if(t&&!1===t.fallback&&!e){if(j.experimental.adapterPath)return await U();throw new y.NoFallbackError}}let q=null;!P||S.isDev||E||(q="/index"===(q=$)?"/":q);let H=!0===S.isDev||!P,D=P&&!H;_&&k&&(0,i.setManifestsSingleton)({page:v,clientReferenceManifest:k,serverActionsManifest:_});let I=e.method||"GET",F=(0,a.getTracer)(),M=F.getActiveScopeSpan(),W={params:b,prerenderManifest:C,renderOpts:{experimental:{authInterrupts:!!j.experimental.authInterrupts},cacheComponents:!!j.cacheComponents,supportsDynamicResponse:H,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:j.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,s)=>S.onRequestError(e,t,n,s,A)},sharedContext:{buildId:R}},L=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),K=c.NextRequestAdapter.fromNodeNextRequest(L,(0,c.signalFromNodeResponse)(t));try{let i=async e=>S.handle(K,W).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${I} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${I} ${v}`)}),o=!!(0,s.getRequestMeta)(e,"minimalMode"),l=async s=>{var a,l;let c=async({previousCacheEntry:r})=>{try{if(!o&&O&&T&&!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=W.renderOpts.fetchMetrics;let l=W.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let c=W.renderOpts.collectedTags;if(!P)return await (0,p.sendResponse)(L,B,a,W.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!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,n=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:W.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 S.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:O})},!1,A),t}},u=await S.handleResponse({req:e,nextConfig:j,cacheKey:q,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:T,responseGenerator:c,waitUntil:n.waitUntil,isMinimalMode:o});if(!P)return null;if((null==u||null==(a=u.value)?void 0:a.kind)!==g.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",O?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let y=(0,f.fromNodeOutgoingHttpHeaders)(u.value.headers);return o&&P||y.delete(h.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||y.get("Cache-Control")||y.set("Cache-Control",(0,m.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(L,B,new Response(u.value.body,{headers:y,status:u.value.status||200})),null};M?await l(M):await F.withPropagatedContext(e.headers,()=>F.trace(u.BaseServerSpan.handleRequest,{spanName:`${I} ${v}`,kind:a.SpanKind.SERVER,attributes:{"http.method":I,"http.target":e.url}},l))}catch(t){if(t instanceof y.NoFallbackError||await S.onRequestError(e,t,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:O})},!1,A),P)throw t;return await (0,p.sendResponse)(L,B,new Response(null,{status:500})),null}}e.s(["handler",()=>A,"patchFetch",()=>C,"routeModule",()=>S,"serverHooks",()=>E,"workAsyncStorage",()=>j,"workUnitAsyncStorage",()=>w],63364)}];
5
5
 
6
6
  //# sourceMappingURL=%5Broot-of-the-server%5D__bc55c42a._.js.map
@@ -1,3 +1,3 @@
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}e.s(["getPackageDir",()=>n,"getSlycodeRoot",()=>a])},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},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}}function l(){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 d=l(),u=a.default.join(d,"projects","registry.json");async function c(){try{let e=await t.promises.readFile(u,"utf-8");return JSON.parse(e)}catch(e){throw console.error("Failed to load registry:",e),Error(`Failed to load registry from ${u}`)}}async function p(e){let r=JSON.stringify(e,null,2)+"\n";await t.promises.writeFile(u,r,"utf-8")}async function f(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 h(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 g(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 x(e){let t=e.path;if(!await f(t))return{...e,backlog:[],designs:[],features:[],accessible:!1,error:`Path not accessible: ${t}`};let[a,s,i]=await Promise.all([h(t,e.id,e.name),g(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 v(){let e=await c();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),i=(0,s.getStoreAssets)(),d=["skill","agent"],u=0,p=[];for(let t of["claude","agents"])for(let r of d){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);p.push(...o)}for(let e of p)for(let t of e.cells)"outdated"===t.status&&u++;for(let e of r){if(!e.accessible)continue;let t=0;for(let r of p)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 f=0,h=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){f+=(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 g=r.reduce((e,t)=>e+(t.gitUncommitted&&t.gitUncommitted>0?t.gitUncommitted:0),0),y=process.env.BRIDGE_URL||"http://127.0.0.1:7592";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=l();return{projects:r,totalBacklogItems:f,activeItems:h,totalOutdatedAssets:u,totalUncommitted:g,lastRefresh:new Date().toISOString(),slycodeRoot:v,projectsDir:a.default.dirname(v)}}e.s(["getRepoRoot",()=>l,"loadDashboardData",()=>v,"loadRegistry",()=>c,"saveRegistry",()=>p],48044)},1365,e=>{"use strict";var t=e.i(22734),r=e.i(14747);let a=(0,e.i(7367).getSlycodeRoot)(),n=r.default.join(a,"documentation","events.json");function s(){try{if(!t.default.existsSync(n))return[];let e=t.default.readFileSync(n,"utf-8"),r=JSON.parse(e);return Array.isArray(r)?r:[]}catch{return[]}}function i(e){let a,i=s(),o={id:`evt-${Date.now()}-${Math.random().toString(36).slice(2,6)}`,...e};return i.push(o),i.length>500&&i.splice(0,i.length-500),a=r.default.dirname(n),t.default.existsSync(a)||t.default.mkdirSync(a,{recursive:!0}),t.default.writeFileSync(n,JSON.stringify(i,null,2)),o}function o(e={}){let t=s();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",()=>i,"queryEvents",()=>o])},40608,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 y=e.i(220),x=e.i(14747),v=e.i(89171),w=e.i(48044),R=e.i(46676),S=e.i(1365),j=e.i(22734);async function E(e){try{let{assetName:t,assetType:r,sourceProjectId:a}=await e.json();if(!t||!r||!a)return v.NextResponse.json({error:"assetName, assetType, and sourceProjectId are required"},{status:400});if(!["skill","agent","mcp"].includes(r))return v.NextResponse.json({error:"assetType must be skill, agent, or mcp"},{status:400});let n=(await (0,w.loadRegistry)()).projects.find(e=>e.id===a),s=(0,w.getRepoRoot)();if(!n)return v.NextResponse.json({error:`Source project '${a}' not found`},{status:404});(0,R.copyAsset)(n.path,s,r,t);let i=(0,R.getAssetPath)(s,r,t),o=!1,l=null;try{let e="skill"===r?`${i}/SKILL.md`:i;if(j.default.existsSync(e)){let t=j.default.readFileSync(e,"utf-8");l=(0,R.parseFrontmatter)(t),o=(0,R.validateFrontmatter)(l)}}catch{}return(0,S.appendEvent)({type:"skill_imported",project:x.default.basename(s),detail:`Imported ${r} '${t}' from ${n.name}`,timestamp:new Date().toISOString()}),v.NextResponse.json({success:!0,asset:{name:t,type:r,source:a,frontmatter:l,isValid:o}})}catch(e){return console.error("CLI assets import failed:",e),v.NextResponse.json({error:"Failed to import asset",details:String(e)},{status:500})}}e.s(["POST",()=>E],44110);var b=e.i(44110);let C=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/cli-assets/import/route",pathname:"/api/cli-assets/import",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-assets/import/route.ts",nextConfigOutput:"standalone",userland:b}),{workAsyncStorage:k,workUnitAsyncStorage:A,serverHooks:O}=C;function N(){return(0,a.patchFetch)({workAsyncStorage:k,workUnitAsyncStorage:A})}async function P(e,t,a){C.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let x="/api/cli-assets/import/route";x=x.replace(/\/index$/,"")||"/";let v=await C.prepare(e,t,{srcPage:x,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:E,prerenderManifest:b,routerServerContext:k,isOnDemandRevalidate:A,revalidateOnlyGenerated:O,resolvedPathname:N,clientReferenceManifest:P,serverActionsManifest:D}=v,F=(0,o.normalizeAppPath)(x),T=!!(b.dynamicRoutes[F]||b.routes[N]),_=async()=>((null==k?void 0:k.render404)?await k.render404(e,t,j,!1):t.end("This page could not be found"),null);if(T&&!E){let e=!!b.routes[N],t=b.dynamicRoutes[F];if(t&&!1===t.fallback&&!e){if(S.experimental.adapterPath)return await _();throw new g.NoFallbackError}}let M=null;!T||C.isDev||E||(M="/index"===(M=N)?"/":M);let q=!0===C.isDev||!T,I=T&&!q;D&&P&&(0,i.setManifestsSingleton)({page:x,clientReferenceManifest:P,serverActionsManifest:D});let U=e.method||"GET",H=(0,s.getTracer)(),$=H.getActiveScopeSpan(),L={params:R,prerenderManifest:b,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)=>C.onRequestError(e,t,a,n,k)},sharedContext:{buildId:w}},V=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),W=d.NextRequestAdapter.fromNodeNextRequest(V,(0,d.signalFromNodeResponse)(t));try{let i=async e=>C.handle(W,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=H.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==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=`${U} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${U} ${x}`)}),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=L.renderOpts.fetchMetrics;let l=L.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let d=L.renderOpts.collectedTags;if(!T)return await (0,p.sendResponse)(V,K,s,L.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!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,a=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:y.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:x,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:A})},!1,k),t}},u=await C.handleResponse({req:e,nextConfig:S,cacheKey:M,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:O,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:o});if(!T)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==y.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&&T||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 H.withPropagatedContext(e.headers,()=>H.trace(u.BaseServerSpan.handleRequest,{spanName:`${U} ${x}`,kind:s.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:F,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:A})},!1,k),T)throw t;return await (0,p.sendResponse)(V,K,new Response(null,{status:500})),null}}e.s(["handler",()=>P,"patchFetch",()=>N,"routeModule",()=>C,"serverHooks",()=>O,"workAsyncStorage",()=>k,"workUnitAsyncStorage",()=>A],40608)}];
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])},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},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 y(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 x(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),y(t,e.id),x(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 y=r.reduce((e,t)=>e+(t.gitUncommitted&&t.gitUncommitted>0?t.gitUncommitted:0),0),x=(0,l.getBridgeUrl)();try{let e=await fetch(`${x}/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:y,lastRefresh:new Date().toISOString(),slycodeRoot:w,projectsDir:a.default.dirname(w)}}e.s(["getRepoRoot",()=>d,"loadDashboardData",()=>w,"loadRegistry",()=>p,"saveRegistry",()=>f],48044)},1365,e=>{"use strict";var t=e.i(22734),r=e.i(14747);let a=(0,e.i(7367).getSlycodeRoot)(),n=r.default.join(a,"documentation","events.json");function s(){try{if(!t.default.existsSync(n))return[];let e=t.default.readFileSync(n,"utf-8"),r=JSON.parse(e);return Array.isArray(r)?r:[]}catch{return[]}}function i(e){let a,i=s(),o={id:`evt-${Date.now()}-${Math.random().toString(36).slice(2,6)}`,...e};return i.push(o),i.length>500&&i.splice(0,i.length-500),a=r.default.dirname(n),t.default.existsSync(a)||t.default.mkdirSync(a,{recursive:!0}),t.default.writeFileSync(n,JSON.stringify(i,null,2)),o}function o(e={}){let t=s();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",()=>i,"queryEvents",()=>o])},40608,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 y=e.i(220),x=e.i(14747),v=e.i(89171),w=e.i(48044),R=e.i(46676),S=e.i(1365),j=e.i(22734);async function E(e){try{let{assetName:t,assetType:r,sourceProjectId:a}=await e.json();if(!t||!r||!a)return v.NextResponse.json({error:"assetName, assetType, and sourceProjectId are required"},{status:400});if(!["skill","agent","mcp"].includes(r))return v.NextResponse.json({error:"assetType must be skill, agent, or mcp"},{status:400});let n=(await (0,w.loadRegistry)()).projects.find(e=>e.id===a),s=(0,w.getRepoRoot)();if(!n)return v.NextResponse.json({error:`Source project '${a}' not found`},{status:404});(0,R.copyAsset)(n.path,s,r,t);let i=(0,R.getAssetPath)(s,r,t),o=!1,l=null;try{let e="skill"===r?`${i}/SKILL.md`:i;if(j.default.existsSync(e)){let t=j.default.readFileSync(e,"utf-8");l=(0,R.parseFrontmatter)(t),o=(0,R.validateFrontmatter)(l)}}catch{}return(0,S.appendEvent)({type:"skill_imported",project:x.default.basename(s),detail:`Imported ${r} '${t}' from ${n.name}`,timestamp:new Date().toISOString()}),v.NextResponse.json({success:!0,asset:{name:t,type:r,source:a,frontmatter:l,isValid:o}})}catch(e){return console.error("CLI assets import failed:",e),v.NextResponse.json({error:"Failed to import asset",details:String(e)},{status:500})}}e.s(["POST",()=>E],44110);var b=e.i(44110);let C=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/cli-assets/import/route",pathname:"/api/cli-assets/import",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-assets/import/route.ts",nextConfigOutput:"standalone",userland:b}),{workAsyncStorage:k,workUnitAsyncStorage:A,serverHooks:O}=C;function N(){return(0,a.patchFetch)({workAsyncStorage:k,workUnitAsyncStorage:A})}async function P(e,t,a){C.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let x="/api/cli-assets/import/route";x=x.replace(/\/index$/,"")||"/";let v=await C.prepare(e,t,{srcPage:x,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:E,prerenderManifest:b,routerServerContext:k,isOnDemandRevalidate:A,revalidateOnlyGenerated:O,resolvedPathname:N,clientReferenceManifest:P,serverActionsManifest:D}=v,_=(0,o.normalizeAppPath)(x),F=!!(b.dynamicRoutes[_]||b.routes[N]),T=async()=>((null==k?void 0:k.render404)?await k.render404(e,t,j,!1):t.end("This page could not be found"),null);if(F&&!E){let e=!!b.routes[N],t=b.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(S.experimental.adapterPath)return await T();throw new g.NoFallbackError}}let M=null;!F||C.isDev||E||(M="/index"===(M=N)?"/":M);let q=!0===C.isDev||!F,I=F&&!q;D&&P&&(0,i.setManifestsSingleton)({page:x,clientReferenceManifest:P,serverActionsManifest:D});let U=e.method||"GET",H=(0,s.getTracer)(),$=H.getActiveScopeSpan(),L={params:R,prerenderManifest:b,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)=>C.onRequestError(e,t,a,n,k)},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=>C.handle(B,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=H.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==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=`${U} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${U} ${x}`)}),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=L.renderOpts.fetchMetrics;let l=L.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let d=L.renderOpts.collectedTags;if(!F)return await (0,p.sendResponse)(V,K,s,L.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!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,a=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:y.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:x,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:A})},!1,k),t}},u=await C.handleResponse({req:e,nextConfig:S,cacheKey:M,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:O,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:o});if(!F)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==y.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&&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};$?await l($):await H.withPropagatedContext(e.headers,()=>H.trace(u.BaseServerSpan.handleRequest,{spanName:`${U} ${x}`,kind:s.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:A})},!1,k),F)throw t;return await (0,p.sendResponse)(V,K,new Response(null,{status:500})),null}}e.s(["handler",()=>P,"patchFetch",()=>N,"routeModule",()=>C,"serverHooks",()=>O,"workAsyncStorage",()=>k,"workUnitAsyncStorage",()=>A],40608)}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__bf286c26._.js.map
@@ -0,0 +1,18 @@
1
+ module.exports=[33405,(e,t,n)=>{t.exports=e.x("child_process",()=>require("child_process"))},54799,(e,t,n)=>{t.exports=e.x("crypto",()=>require("crypto"))},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"))},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"))},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 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 r(){let e=a(),r=t.default.join(e,"node_modules","@slycode","slycode","dist");return n.default.existsSync(r)?r:e}function o(){return process.env.BRIDGE_URL?process.env.BRIDGE_URL:"http://127.0.0.1:3004"}e.s(["getBridgeUrl",()=>o,"getPackageDir",()=>r,"getSlycodeRoot",()=>a])},73178,e=>{"use strict";var t=e.i(22734),n=e.i(14747),a=e.i(46676),r=e.i(7367);function o(){return n.default.join((0,r.getSlycodeRoot)(),"store")}function i(){for(let e of[n.default.join((0,r.getSlycodeRoot)(),"build","store-manifest.js"),n.default.join((0,r.getSlycodeRoot)(),"node_modules","@slycode","slycode","build","store-manifest.js")])try{if(t.default.existsSync(e)){let n=t.default.readFileSync(e,"utf-8"),a={};Function("module","exports",n)(a,a);let r=a.exports;if(r?.skills)return{skills:r.skills,actions:r.actions||[],agents:r.agents||[],mcp:r.mcp||[]}}}catch{}return null}function s(e,r){let o=[],i="skill"===r?"skills":"agents",s=n.default.join(e,i);try{if(!t.default.existsSync(s))return o;for(let e of t.default.readdirSync(s,{withFileTypes:!0})){let l,c;if("skill"===r){if(!e.isDirectory()||(l=n.default.join(s,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(s,e.name),c=n.default.join(i,e.name)}let u=t.default.readFileSync(l,"utf-8"),d=(0,a.parseFrontmatter)(u),p=d?.name||e.name.replace(/\.md$/,"");o.push({name:p,type:r,path:c,frontmatter:d,isValid:(0,a.validateFrontmatter)(d)})}}catch{}return o.sort((e,t)=>e.name.localeCompare(t.name))}function l(){let e=o(),a=i(),r=s(e,"skill"),l=s(e,"agent"),c=function(e){let a=n.default.join(e,"mcp"),r=[];try{if(!t.default.existsSync(a))return r;for(let e of t.default.readdirSync(a,{withFileTypes:!0})){let o;if(!e.isFile()||!e.name.endsWith(".json"))continue;let i=n.default.join(a,e.name),s=t.default.readFileSync(i,"utf-8");try{o=JSON.parse(s)}catch{continue}let l=o.name||e.name.replace(/\.json$/,"");r.push({name:l,type:"mcp",path:n.default.join("mcp",e.name),frontmatter:{name:l,version:o.version,description:o.description,updated:o.updated},isValid:!!(o.name&&o.command)})}}catch{}return r}(e);if(a){if(a.skills){let e=new Set(a.skills);r=r.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);c=c.filter(t=>e.has(t.name))}}return{skills:r,agents:l,mcp:c}}function c(){let e=o(),t=i(),n=s(e,"skill"),a=s(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);a=a.filter(t=>e.has(t.name))}}return[...n,...a]}e.s(["getStoreAssets",()=>c,"scanStore",()=>l])},48044,e=>{"use strict";var t=e.i(22734),n=e.i(33405),a=e.i(14747),r=e.i(46676),o=e.i(73178);let i={outdatedAssets:.3,staleCards:.15,unresolvedProblems:.25,missingClaudeMd:.1,nonCompliantFrontmatter:.2};function s(e,t=0,n=0,a=0,r=i){let o=[],l=Math.max(n,1);o.push({name:"Outdated Assets",weight:r.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,p=Math.max(u.length,1);o.push({name:"Stale Cards",weight:r.staleCards,value:d,maxValue:p}),o.push({name:"Unresolved Problems",weight:r.unresolvedProblems,value:0,maxValue:1}),o.push({name:"Missing CLAUDE.md",weight:r.missingClaudeMd,value:+!e.hasClaudeMd,maxValue:1});let f=Math.max(n,1);o.push({name:"Non-compliant Frontmatter",weight:r.nonCompliantFrontmatter,value:a,maxValue:f});let m=0;for(let e of o)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:o}}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")?a.default.dirname(e):e}let u=c(),d=a.default.join(u,"projects","registry.json");async function p(){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 f(e){let n=JSON.stringify(e,null,2)+"\n";await t.promises.writeFile(d,n,"utf-8")}async function m(e){try{return(await t.promises.stat(e)).isDirectory()}catch{return!1}}async function h(e){try{let n=await t.promises.readFile(e,"utf-8");return JSON.parse(n)}catch{return null}}async function g(e,t,n){let r=a.default.join(e,"documentation","backlog.json"),o=await h(r);return o?o.map(e=>({...e,projectId:t,projectName:n})):[]}async function y(e,t){let n=a.default.join(e,"documentation","designs.json"),r=await h(n);return r?r.map(e=>({...e,projectId:t})):[]}async function v(e,t){let n=a.default.join(e,"documentation","features.json"),r=await h(n);return r?r.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,o,i]=await Promise.all([g(t,e.id,e.name),y(t,e.id),v(t,e.id)]),s=(0,r.scanProjectAssets)(t,e.id),l=(0,r.detectPlatforms)(t),c=function(e){try{return(0,n.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:o,features:i,assets:s,platforms:l,gitUncommitted:c>=0?c:void 0,accessible:!0}}async function x(){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)),n=await Promise.all(t),i=(0,o.getStoreAssets)(),u=["skill","agent"],d=0,f=[];for(let t of["claude","agents"])for(let n of u){let a=i.filter(e=>e.type===n),o=new Map;for(let a of e.projects){let e=(0,r.scanProviderAssets)(a.path,t);o.set(a.id,e.filter(e=>e.type===n))}let s=(0,r.buildStoreAssetMatrix)(a,o,e.projects,n);f.push(...s)}for(let e of f)for(let t of e.cells)"outdated"===t.status&&d++;for(let e of n){if(!e.accessible)continue;let t=0;for(let n of f)for(let a of n.cells)a.projectId===e.id&&"outdated"===a.status&&t++;e.healthScore=function(e,t,n=0,a){if(!t)return s(e,0,0,0,void 0);let r=[...t.skills,...t.agents];return s(e,n,r.length,r.filter(e=>!e.isValid).length,void 0)}(e,e.assets,t)}let m=0,g=0;for(let e of n){if(!e.accessible)continue;let t=a.default.join(e.path,"documentation","kanban.json"),n=await h(t);if(n?.stages){m+=(n.stages.backlog||[]).filter(e=>!e.archived).length;let e=(n.stages.implementation||[]).filter(e=>!e.archived),t=(n.stages.testing||[]).filter(e=>!e.archived);g+=e.length+t.length}}let y=n.reduce((e,t)=>e+(t.gitUncommitted&&t.gitUncommitted>0?t.gitUncommitted:0),0),v=(0,l.getBridgeUrl)();try{let e=await fetch(`${v}/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 n)e.activeSessions=a[e.id]??0}}catch{}let x=c();return{projects:n,totalBacklogItems:m,activeItems:g,totalOutdatedAssets:d,totalUncommitted:y,lastRefresh:new Date().toISOString(),slycodeRoot:x,projectsDir:a.default.dirname(x)}}e.s(["getRepoRoot",()=>c,"loadDashboardData",()=>x,"loadRegistry",()=>p,"saveRegistry",()=>f],48044)},71741,e=>{"use strict";var t=e.i(14747),n=e.i(48044);let a={hourly:36e5,daily:864e5,weekly:6048e5},r=null,o=0;async function i(){let e=Date.now();return r&&e-o<5e3||(r=await (0,n.loadRegistry)(),o=e),r}class s extends Error{code;constructor(e,t){super(e),this.code=t,this.name="ProjectResolutionError"}}async function l(e){if(e===t.default.basename((0,n.getRepoRoot)()).replace(/_/g,"-"))return(0,n.getRepoRoot)();let a=(await i()).projects.find(t=>t.id===e);if(!a)throw new s(`Project '${e}' not found in registry`,"NOT_FOUND");return a.path}async function c(e){let n=await l(e);return t.default.join(n,"documentation","kanban.json")}async function u(e){let n=await l(e);return t.default.join(n,"documentation","archive")}async function d(e,n,a=1){let r=await u(e),o=String(a).padStart(3,"0");return t.default.join(r,`kanban_${n}_${o}.json`)}async function p(e){let n=await u(e),r=[];for(let e=1;e<=10;e++){let a=String(e).padStart(3,"0");r.push(t.default.join(n,`kanban_${a}.json`))}for(let e of Object.keys(a))r.push(t.default.join(n,`kanban_${e}.json`));return r}async function f(e){return e?c(e):t.default.join((0,n.getRepoRoot)(),"documentation")}e.s(["BACKUP_TIERS",0,a,"ProjectResolutionError",()=>s,"getArchiveDir",()=>u,"getKanbanPath",()=>c,"getLegacyBackupPaths",()=>p,"getTieredBackupPath",()=>d,"getWatchPath",()=>f,"resolveProjectRoot",()=>l])},54226,e=>{"use strict";var t=e.i(47909),n=e.i(74017),a=e.i(96250),r=e.i(59756),o=e.i(61916),i=e.i(74677),s=e.i(69741),l=e.i(16795),c=e.i(87718),u=e.i(95169),d=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 y=e.i(220),v=e.i(22734),w=e.i(71741);async function x(e){let t,{searchParams:n}=new URL(e.url),a=n.get("projectId"),r=new TextEncoder,o=null,i=null,s=!1;try{t=await (0,w.getWatchPath)(a)}catch(e){if(e instanceof w.ProjectResolutionError)return new Response(new ReadableStream({start(t){let n=`event: error
2
+ data: ${JSON.stringify({message:e.message,code:e.code})}
3
+
4
+ `;t.enqueue(r.encode(n)),t.close()}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}});throw e}return new Response(new ReadableStream({start(e){let n=`event: connected
5
+ data: ${JSON.stringify({projectId:a||"all"})}
6
+
7
+ `;e.enqueue(r.encode(n));try{(o=(0,v.watch)(t,{recursive:!a},(t,n)=>{s||(a||!n||n.match(/^kanban.*\.json$/))&&(i&&clearTimeout(i),i=setTimeout(()=>{if(s)return;let t=`event: update
8
+ data: ${JSON.stringify({projectId:a||"all",timestamp:new Date().toISOString(),file:n||"kanban.json"})}
9
+
10
+ `;try{e.enqueue(r.encode(t))}catch{}},500))})).on("error",t=>{if(s)return;let n=`event: error
11
+ data: ${JSON.stringify({message:t.message})}
12
+
13
+ `;try{e.enqueue(r.encode(n))}catch{}})}catch{let t=`event: error
14
+ data: ${JSON.stringify({message:"Failed to start file watcher"})}
15
+
16
+ `;e.enqueue(r.encode(t))}let l=setInterval(()=>{if(s)return void clearInterval(l);try{e.enqueue(r.encode("event: heartbeat\ndata: {}\n\n"))}catch{clearInterval(l)}},3e4)},cancel(){s=!0,i&&clearTimeout(i),o&&o.close()}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","X-Accel-Buffering":"no"}})}e.s(["GET",()=>x,"dynamic",0,"force-dynamic"],99451);var R=e.i(99451);let j=new t.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/kanban/stream/route",pathname:"/api/kanban/stream",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/kanban/stream/route.ts",nextConfigOutput:"standalone",userland:R}),{workAsyncStorage:S,workUnitAsyncStorage:b,serverHooks:E}=j;function C(){return(0,a.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:b})}async function k(e,t,a){j.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/kanban/stream/route";v=v.replace(/\/index$/,"")||"/";let w=await j.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:x,params:R,nextConfig:S,parsedUrl:b,isDraftMode:E,prerenderManifest:C,routerServerContext:k,isOnDemandRevalidate:O,revalidateOnlyGenerated:P,resolvedPathname:A,clientReferenceManifest:_,serverActionsManifest:T}=w,N=(0,s.normalizeAppPath)(v),D=!!(C.dynamicRoutes[N]||C.routes[A]),q=async()=>((null==k?void 0:k.render404)?await k.render404(e,t,b,!1):t.end("This page could not be found"),null);if(D&&!E){let e=!!C.routes[A],t=C.dynamicRoutes[N];if(t&&!1===t.fallback&&!e){if(S.experimental.adapterPath)return await q();throw new g.NoFallbackError}}let I=null;!D||j.isDev||E||(I="/index"===(I=A)?"/":I);let M=!0===j.isDev||!D,U=D&&!M;T&&_&&(0,i.setManifestsSingleton)({page:v,clientReferenceManifest:_,serverActionsManifest:T});let F=e.method||"GET",$=(0,o.getTracer)(),H=$.getActiveScopeSpan(),L={params:R,prerenderManifest:C,renderOpts:{experimental:{authInterrupts:!!S.experimental.authInterrupts},cacheComponents:!!S.cacheComponents,supportsDynamicResponse:M,incrementalCache:(0,r.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:S.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,a,r)=>j.onRequestError(e,t,a,r,k)},sharedContext:{buildId:x}},B=new l.NodeNextRequest(e),V=new l.NodeNextResponse(t),K=c.NextRequestAdapter.fromNodeNextRequest(B,(0,c.signalFromNodeResponse)(t));try{let i=async e=>j.handle(K,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let n=$.getRootSpanAttributes();if(!n)return;if(n.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${n.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=n.get("next.route");if(a){let t=`${F} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${F} ${v}`)}),s=!!(0,r.getRequestMeta)(e,"minimalMode"),l=async r=>{var o,l;let c=async({previousCacheEntry:n})=>{try{if(!s&&O&&P&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await i(r);e.fetchMetrics=L.renderOpts.fetchMetrics;let l=L.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let c=L.renderOpts.collectedTags;if(!D)return await (0,p.sendResponse)(B,V,o,L.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(o.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,a=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:n,expire:a}}}}catch(t){throw(null==n?void 0:n.isStale)&&await j.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:O})},!1,k),t}},u=await j.handleResponse({req:e,nextConfig:S,cacheKey:I,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:P,responseGenerator:c,waitUntil:a.waitUntil,isMinimalMode:s});if(!D)return null;if((null==u||null==(o=u.value)?void 0:o.kind)!==y.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});s||t.setHeader("x-nextjs-cache",O?"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 s&&D||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)(B,V,new Response(u.value.body,{headers:g,status:u.value.status||200})),null};H?await l(H):await $.withPropagatedContext(e.headers,()=>$.trace(u.BaseServerSpan.handleRequest,{spanName:`${F} ${v}`,kind:o.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await j.onRequestError(e,t,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:O})},!1,k),D)throw t;return await (0,p.sendResponse)(B,V,new Response(null,{status:500})),null}}e.s(["handler",()=>k,"patchFetch",()=>C,"routeModule",()=>j,"serverHooks",()=>E,"workAsyncStorage",()=>S,"workUnitAsyncStorage",()=>b],54226)}];
17
+
18
+ //# sourceMappingURL=%5Broot-of-the-server%5D__d219e3f0._.js.map