@slycode/slycode 0.2.4 → 0.2.6

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 (166) hide show
  1. package/dist/data/scaffold-templates/seed-cards-existing.json +8 -0
  2. package/dist/data/scaffold-templates/seed-cards-new.json +8 -0
  3. package/dist/messaging/index.js +9 -2
  4. package/dist/messaging/index.js.map +1 -1
  5. package/dist/messaging/stt.d.ts +3 -1
  6. package/dist/messaging/stt.js +76 -0
  7. package/dist/messaging/stt.js.map +1 -1
  8. package/dist/messaging/types.d.ts +3 -1
  9. package/dist/scripts/scaffold.js +29 -7
  10. package/dist/web/.next/BUILD_ID +1 -1
  11. package/dist/web/.next/build-manifest.json +4 -4
  12. package/dist/web/.next/server/app/_global-error/page/build-manifest.json +2 -2
  13. package/dist/web/.next/server/app/_global-error/page.js +1 -1
  14. package/dist/web/.next/server/app/_global-error/page.js.nft.json +1 -1
  15. package/dist/web/.next/server/app/_global-error.html +2 -2
  16. package/dist/web/.next/server/app/_global-error.rsc +1 -1
  17. package/dist/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  18. package/dist/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  19. package/dist/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  20. package/dist/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  21. package/dist/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  22. package/dist/web/.next/server/app/_not-found/page/build-manifest.json +2 -2
  23. package/dist/web/.next/server/app/_not-found/page.js +1 -1
  24. package/dist/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  25. package/dist/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  26. package/dist/web/.next/server/app/_not-found.html +1 -1
  27. package/dist/web/.next/server/app/_not-found.rsc +2 -2
  28. package/dist/web/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  29. package/dist/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  30. package/dist/web/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  31. package/dist/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  32. package/dist/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  33. package/dist/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  34. package/dist/web/.next/server/app/api/cli-assets/fix/route.js +1 -1
  35. package/dist/web/.next/server/app/api/cli-assets/fix/route.js.nft.json +1 -1
  36. package/dist/web/.next/server/app/api/cli-assets/import/route.js +1 -1
  37. package/dist/web/.next/server/app/api/cli-assets/import/route.js.nft.json +1 -1
  38. package/dist/web/.next/server/app/api/cli-assets/route.js +1 -1
  39. package/dist/web/.next/server/app/api/cli-assets/route.js.nft.json +1 -1
  40. package/dist/web/.next/server/app/api/cli-assets/store/preview/route.js +1 -1
  41. package/dist/web/.next/server/app/api/cli-assets/store/preview/route.js.nft.json +1 -1
  42. package/dist/web/.next/server/app/api/cli-assets/store/route.js +1 -1
  43. package/dist/web/.next/server/app/api/cli-assets/store/route.js.nft.json +1 -1
  44. package/dist/web/.next/server/app/api/cli-assets/sync/route.js +1 -1
  45. package/dist/web/.next/server/app/api/cli-assets/sync/route.js.nft.json +1 -1
  46. package/dist/web/.next/server/app/api/cli-assets/updates/route.js +1 -1
  47. package/dist/web/.next/server/app/api/cli-assets/updates/route.js.nft.json +1 -1
  48. package/dist/web/.next/server/app/api/dashboard/route.js +1 -1
  49. package/dist/web/.next/server/app/api/dashboard/route.js.nft.json +1 -1
  50. package/dist/web/.next/server/app/api/file/route.js +1 -1
  51. package/dist/web/.next/server/app/api/file/route.js.nft.json +1 -1
  52. package/dist/web/.next/server/app/api/git-status/route.js +1 -1
  53. package/dist/web/.next/server/app/api/git-status/route.js.nft.json +1 -1
  54. package/dist/web/.next/server/app/api/kanban/route.js +1 -1
  55. package/dist/web/.next/server/app/api/kanban/route.js.nft.json +1 -1
  56. package/dist/web/.next/server/app/api/kanban/stream/route.js +1 -1
  57. package/dist/web/.next/server/app/api/kanban/stream/route.js.nft.json +1 -1
  58. package/dist/web/.next/server/app/api/projects/[id]/route.js +1 -1
  59. package/dist/web/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  60. package/dist/web/.next/server/app/api/projects/reorder/route.js +1 -1
  61. package/dist/web/.next/server/app/api/projects/reorder/route.js.nft.json +1 -1
  62. package/dist/web/.next/server/app/api/projects/route.js +1 -1
  63. package/dist/web/.next/server/app/api/projects/route.js.nft.json +1 -1
  64. package/dist/web/.next/server/app/api/scheduler/route.js +1 -1
  65. package/dist/web/.next/server/app/api/scheduler/route.js.nft.json +1 -1
  66. package/dist/web/.next/server/app/api/search/route.js +1 -1
  67. package/dist/web/.next/server/app/api/search/route.js.nft.json +1 -1
  68. package/dist/web/.next/server/app/api/sly-actions/invalidate/route.js +1 -1
  69. package/dist/web/.next/server/app/api/sly-actions/invalidate/route.js.nft.json +1 -1
  70. package/dist/web/.next/server/app/api/sly-actions/route.js +1 -1
  71. package/dist/web/.next/server/app/api/sly-actions/route.js.nft.json +1 -1
  72. package/dist/web/.next/server/app/api/sly-actions/stream/route.js +1 -1
  73. package/dist/web/.next/server/app/api/sly-actions/stream/route.js.nft.json +1 -1
  74. package/dist/web/.next/server/app/api/transcribe/route.js +5 -2
  75. package/dist/web/.next/server/app/api/transcribe/route.js.nft.json +1 -1
  76. package/dist/web/.next/server/app/page/build-manifest.json +2 -2
  77. package/dist/web/.next/server/app/page.js +2 -2
  78. package/dist/web/.next/server/app/page.js.nft.json +1 -1
  79. package/dist/web/.next/server/app/page_client-reference-manifest.js +1 -1
  80. package/dist/web/.next/server/app/project/[id]/page/build-manifest.json +2 -2
  81. package/dist/web/.next/server/app/project/[id]/page.js +2 -2
  82. package/dist/web/.next/server/app/project/[id]/page.js.nft.json +1 -1
  83. package/dist/web/.next/server/app/project/[id]/page_client-reference-manifest.js +1 -1
  84. package/dist/web/.next/server/chunks/[externals]__c6831f39._.js +3 -0
  85. package/dist/web/.next/server/chunks/[externals]_node:async_hooks_b485b2a4._.js +3 -0
  86. package/dist/web/.next/server/chunks/[externals]_node:http_c3a9e25f._.js +3 -0
  87. package/dist/web/.next/server/chunks/[root-of-the-server]__0234f869._.js +3 -0
  88. package/dist/web/.next/server/chunks/[root-of-the-server]__0f8687da._.js +3 -0
  89. package/dist/web/.next/server/chunks/[root-of-the-server]__104b2da3._.js +4 -0
  90. package/dist/web/.next/server/chunks/[root-of-the-server]__12f6cd6f._.js +3 -0
  91. package/dist/web/.next/server/chunks/{[root-of-the-server]__d219e3f0._.js → [root-of-the-server]__15fc9266._.js} +2 -2
  92. package/dist/web/.next/server/chunks/[root-of-the-server]__1cdc76ef._.js +3 -0
  93. package/dist/web/.next/server/chunks/{[root-of-the-server]__933e6077._.js → [root-of-the-server]__1ec21ccc._.js} +2 -2
  94. package/dist/web/.next/server/chunks/{[root-of-the-server]__baa99257._.js → [root-of-the-server]__279e9bf3._.js} +2 -2
  95. package/dist/web/.next/server/chunks/{[root-of-the-server]__46b023d4._.js → [root-of-the-server]__2d1f0ed9._.js} +2 -2
  96. package/dist/web/.next/server/chunks/[root-of-the-server]__3998d59e._.js +19 -0
  97. package/dist/web/.next/server/chunks/{[root-of-the-server]__e9b0e744._.js → [root-of-the-server]__3c5ef8ec._.js} +2 -2
  98. package/dist/web/.next/server/chunks/[root-of-the-server]__3dc5531f._.js +5 -0
  99. package/dist/web/.next/server/chunks/[root-of-the-server]__403750fd._.js +3 -0
  100. package/dist/web/.next/server/chunks/[root-of-the-server]__41df0777._.js +3 -0
  101. package/dist/web/.next/server/chunks/{[root-of-the-server]__b9e7d34c._.js → [root-of-the-server]__4244617a._.js} +2 -2
  102. package/dist/web/.next/server/chunks/{[root-of-the-server]__949bb248._.js → [root-of-the-server]__47dd878e._.js} +2 -2
  103. package/dist/web/.next/server/chunks/{[root-of-the-server]__bf286c26._.js → [root-of-the-server]__5e08b942._.js} +2 -2
  104. package/dist/web/.next/server/chunks/{[root-of-the-server]__d38c7a96._.js → [root-of-the-server]__71bb3374._.js} +2 -2
  105. package/dist/web/.next/server/chunks/{[root-of-the-server]__6d330d40._.js → [root-of-the-server]__7603305e._.js} +2 -2
  106. package/dist/web/.next/server/chunks/{[root-of-the-server]__aa814a86._.js → [root-of-the-server]__7c476ad6._.js} +2 -2
  107. package/dist/web/.next/server/chunks/{[root-of-the-server]__bbb4b3ac._.js → [root-of-the-server]__846ca56f._.js} +2 -2
  108. package/dist/web/.next/server/chunks/[root-of-the-server]__934c9bb4._.js +5 -0
  109. package/dist/web/.next/server/chunks/{[root-of-the-server]__4d0d3464._.js → [root-of-the-server]__98d88050._.js} +2 -2
  110. package/dist/web/.next/server/chunks/{[root-of-the-server]__4c7995bf._.js → [root-of-the-server]__b273cc05._.js} +2 -2
  111. package/dist/web/.next/server/chunks/{[root-of-the-server]__bc55c42a._.js → [root-of-the-server]__d0f4efec._.js} +2 -2
  112. package/dist/web/.next/server/chunks/[root-of-the-server]__d6362272._.js +3 -0
  113. package/dist/web/.next/server/chunks/{[root-of-the-server]__ad64e04f._.js → [root-of-the-server]__de1277ee._.js} +2 -2
  114. package/dist/web/.next/server/chunks/[root-of-the-server]__e00fb85f._.js +9 -0
  115. package/dist/web/.next/server/chunks/[root-of-the-server]__e4988941._.js +4 -0
  116. package/dist/web/.next/server/chunks/[root-of-the-server]__f3e501b6._.js +3 -0
  117. package/dist/web/.next/server/chunks/{[root-of-the-server]__f1fe18e6._.js → [root-of-the-server]__f97e93fa._.js} +2 -2
  118. package/dist/web/.next/server/chunks/a9bf9_@aws-sdk_core_dist-es_submodules_protocols_json_AwsRestJsonProtocol_764d7a83.js +3 -0
  119. package/dist/web/.next/server/chunks/node_modules_@aws-sdk_credential-provider-env_dist-es_index_55d96139.js +3 -0
  120. package/dist/web/.next/server/chunks/node_modules_@aws-sdk_nested-clients_dist-es_submodules_signin_index_6712dec9.js +3 -0
  121. package/dist/web/.next/server/chunks/node_modules_@aws-sdk_nested-clients_dist-es_submodules_sso-oidc_index_df09d547.js +3 -0
  122. package/dist/web/.next/server/chunks/node_modules_@aws-sdk_nested-clients_dist-es_submodules_sts_index_c78619b3.js +3 -0
  123. package/dist/web/.next/server/chunks/node_modules_@smithy_core_dist-es_submodules_event-streams_index_73e35402.js +3 -0
  124. package/dist/web/.next/server/chunks/node_modules_ec9ae6c4._.js +18 -0
  125. package/dist/web/.next/server/chunks/src_677020aa._.js +1 -1
  126. package/dist/web/.next/server/chunks/ssr/[root-of-the-server]__077f472c._.js +3 -0
  127. package/dist/web/.next/server/chunks/ssr/{[root-of-the-server]__977b1a68._.js → [root-of-the-server]__0841f0b5._.js} +2 -2
  128. package/dist/web/.next/server/chunks/ssr/[root-of-the-server]__1f5fc489._.js +9 -0
  129. package/dist/web/.next/server/chunks/ssr/[root-of-the-server]__2f64210a._.js +3 -0
  130. package/dist/web/.next/server/chunks/ssr/{[root-of-the-server]__d57c94e0._.js → [root-of-the-server]__92021d33._.js} +2 -2
  131. package/dist/web/.next/server/chunks/ssr/{[root-of-the-server]__e0032864._.js → [root-of-the-server]__9ac6ea25._.js} +2 -2
  132. package/dist/web/.next/server/chunks/ssr/{[root-of-the-server]__677b7660._.js → [root-of-the-server]__bcbe4bf2._.js} +2 -2
  133. package/dist/web/.next/server/chunks/ssr/{[root-of-the-server]__6db27fe1._.js → [root-of-the-server]__dfe2728c._.js} +2 -2
  134. package/dist/web/.next/server/chunks/ssr/src_components_Dashboard_tsx_efc4dc27._.js +1 -1
  135. package/dist/web/.next/server/middleware-build-manifest.js +2 -2
  136. package/dist/web/.next/server/pages/404.html +1 -1
  137. package/dist/web/.next/server/pages/500.html +2 -2
  138. package/dist/web/.next/static/chunks/0bab8c7c82cef548.js +4 -0
  139. package/dist/web/.next/static/chunks/{b694f741bb34ac84.js → 1b46e836090e130b.js} +1 -1
  140. package/dist/web/.next/static/chunks/{ef0dc6461e9250d8.js → cf910fc299170b7d.js} +2 -2
  141. package/dist/web/.next/static/chunks/de965b463aff71a9.js +1 -0
  142. package/dist/web/.next/static/chunks/f3d7065d54a0b9ac.css +1 -0
  143. package/dist/web/.next/static/chunks/{turbopack-4964158913ad5e72.js → turbopack-563e27abda63930f.js} +2 -2
  144. package/dist/web/package-lock.json +1589 -155
  145. package/dist/web/package.json +1 -0
  146. package/dist/web/src/app/api/transcribe/route.ts +96 -1
  147. package/dist/web/src/components/AddProjectModal.tsx +67 -35
  148. package/dist/web/tsconfig.tsbuildinfo +1 -1
  149. package/package.json +1 -1
  150. package/templates/kanban-seed.json +1 -1
  151. package/dist/data/scaffold-templates/seed-cards.json +0 -20
  152. package/dist/web/.next/server/chunks/[externals]__65615fd8._.js +0 -3
  153. package/dist/web/.next/server/chunks/[root-of-the-server]__884d73e4._.js +0 -3
  154. package/dist/web/.next/server/chunks/[root-of-the-server]__8ab096a3._.js +0 -3
  155. package/dist/web/.next/server/chunks/[root-of-the-server]__9058a007._.js +0 -3
  156. package/dist/web/.next/server/chunks/[root-of-the-server]__f4124388._.js +0 -3
  157. package/dist/web/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_ffc6c790.js +0 -11
  158. package/dist/web/.next/server/chunks/ssr/[root-of-the-server]__73cfc6bb._.js +0 -3
  159. package/dist/web/.next/server/chunks/ssr/[root-of-the-server]__79c0188d._.js +0 -9
  160. package/dist/web/.next/server/chunks/ssr/[root-of-the-server]__bb807bcf._.js +0 -3
  161. package/dist/web/.next/static/chunks/7660448872d80e27.js +0 -4
  162. package/dist/web/.next/static/chunks/f4999889f2006fea.css +0 -1
  163. package/dist/web/.next/static/chunks/fbbdd316640f1e15.js +0 -1
  164. /package/dist/web/.next/static/{sQ8knGS1B967Ng9HqMKOG → 2EjhdcgXP_G4Dc2aTnMhk}/_buildManifest.js +0 -0
  165. /package/dist/web/.next/static/{sQ8knGS1B967Ng9HqMKOG → 2EjhdcgXP_G4Dc2aTnMhk}/_clientMiddlewareManifest.json +0 -0
  166. /package/dist/web/.next/static/{sQ8knGS1B967Ng9HqMKOG → 2EjhdcgXP_G4Dc2aTnMhk}/_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 s(){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=s(),a=t.default.join(e,"node_modules","@slycode","slycode","dist");return r.default.existsSync(a)?a:e}function n(){return process.env.BRIDGE_URL?process.env.BRIDGE_URL:"http://127.0.0.1:3004"}e.s(["getBridgeUrl",()=>n,"getPackageDir",()=>a,"getSlycodeRoot",()=>s])},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),s=e.i(46676),a=e.i(7367);function n(){return r.default.join((0,a.getSlycodeRoot)(),"store")}function i(){for(let e of[r.default.join((0,a.getSlycodeRoot)(),"build","store-manifest.js"),r.default.join((0,a.getSlycodeRoot)(),"node_modules","@slycode","slycode","build","store-manifest.js")])try{if(t.default.existsSync(e)){let r=t.default.readFileSync(e,"utf-8"),s={};Function("module","exports",r)(s,s);let a=s.exports;if(a?.skills)return{skills:a.skills,actions:a.actions||[],agents:a.agents||[],mcp:a.mcp||[]}}}catch{}return null}function o(e,a){let n=[],i="skill"===a?"skills":"agents",o=r.default.join(e,i);try{if(!t.default.existsSync(o))return n;for(let e of t.default.readdirSync(o,{withFileTypes:!0})){let l,d;if("skill"===a){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 c=t.default.readFileSync(l,"utf-8"),u=(0,s.parseFrontmatter)(c),p=u?.name||e.name.replace(/\.md$/,"");n.push({name:p,type:a,path:d,frontmatter:u,isValid:(0,s.validateFrontmatter)(u)})}}catch{}return n.sort((e,t)=>e.name.localeCompare(t.name))}function l(){let e=n(),s=i(),a=o(e,"skill"),l=o(e,"agent"),d=function(e){let s=r.default.join(e,"mcp"),a=[];try{if(!t.default.existsSync(s))return a;for(let e of t.default.readdirSync(s,{withFileTypes:!0})){let n;if(!e.isFile()||!e.name.endsWith(".json"))continue;let i=r.default.join(s,e.name),o=t.default.readFileSync(i,"utf-8");try{n=JSON.parse(o)}catch{continue}let l=n.name||e.name.replace(/\.json$/,"");a.push({name:l,type:"mcp",path:r.default.join("mcp",e.name),frontmatter:{name:l,version:n.version,description:n.description,updated:n.updated},isValid:!!(n.name&&n.command)})}}catch{}return a}(e);if(s){if(s.skills){let e=new Set(s.skills);a=a.filter(t=>e.has(t.name))}if(s.agents){let e=new Set(s.agents);l=l.filter(t=>e.has(t.name))}if(s.mcp){let e=new Set(s.mcp);d=d.filter(t=>e.has(t.name))}}return{skills:a,agents:l,mcp:d}}function d(){let e=n(),t=i(),r=o(e,"skill"),s=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);s=s.filter(t=>e.has(t.name))}}return[...r,...s]}e.s(["getStoreAssets",()=>d,"scanStore",()=>l])},48044,e=>{"use strict";var t=e.i(22734),r=e.i(33405),s=e.i(14747),a=e.i(46676),n=e.i(73178);let i={outdatedAssets:.3,staleCards:.15,unresolvedProblems:.25,missingClaudeMd:.1,nonCompliantFrontmatter:.2};function o(e,t=0,r=0,s=0,a=i){let n=[],l=Math.max(r,1);n.push({name:"Outdated Assets",weight:a.outdatedAssets,value:t,maxValue:l});let d=Date.now(),c=[...e.backlog],u=c.filter(e=>(d-new Date(e.created_at).getTime())/864e5>14&&"done"!==e.status).length,p=Math.max(c.length,1);n.push({name:"Stale Cards",weight:a.staleCards,value:u,maxValue:p}),n.push({name:"Unresolved Problems",weight:a.unresolvedProblems,value:0,maxValue:1}),n.push({name:"Missing CLAUDE.md",weight:a.missingClaudeMd,value:+!e.hasClaudeMd,maxValue:1});let f=Math.max(r,1);n.push({name:"Non-compliant Frontmatter",weight:a.nonCompliantFrontmatter,value:s,maxValue:f});let m=0;for(let e of n)m+=Math.min(e.maxValue>0?e.value/e.maxValue:0,1)*e.weight;let h=Math.round(Math.max(0,(1-m)*100));return{score:h,level:h>=80?"green":h>=50?"amber":"red",factors:n}}var l=e.i(7367);function d(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let e=process.cwd();return e.endsWith("/web")||e.endsWith("\\web")?s.default.dirname(e):e}let c=d(),u=s.default.join(c,"projects","registry.json");async function p(){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 f(e){let r=JSON.stringify(e,null,2)+"\n";await t.promises.writeFile(u,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 a=s.default.join(e,"documentation","backlog.json"),n=await h(a);return n?n.map(e=>({...e,projectId:t,projectName:r})):[]}async function y(e,t){let r=s.default.join(e,"documentation","designs.json"),a=await h(r);return a?a.map(e=>({...e,projectId:t})):[]}async function v(e,t){let r=s.default.join(e,"documentation","features.json"),a=await h(r);return a?a.map(e=>({...e,projectId:t})):[]}async function x(e){let t=e.path;if(!await m(t))return{...e,backlog:[],designs:[],features:[],accessible:!1,error:`Path not accessible: ${t}`};let[s,n,i]=await Promise.all([g(t,e.id,e.name),y(t,e.id),v(t,e.id)]),o=(0,a.scanProjectAssets)(t,e.id),l=(0,a.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:s,designs:n,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=>x(e)),r=await Promise.all(t),i=(0,n.getStoreAssets)(),c=["skill","agent"],u=0,f=[];for(let t of["claude","agents"])for(let r of c){let s=i.filter(e=>e.type===r),n=new Map;for(let s of e.projects){let e=(0,a.scanProviderAssets)(s.path,t);n.set(s.id,e.filter(e=>e.type===r))}let o=(0,a.buildStoreAssetMatrix)(s,n,e.projects,r);f.push(...o)}for(let e of f)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 f)for(let s of r.cells)s.projectId===e.id&&"outdated"===s.status&&t++;e.healthScore=function(e,t,r=0,s){if(!t)return o(e,0,0,0,void 0);let a=[...t.skills,...t.agents];return o(e,r,a.length,a.filter(e=>!e.isValid).length,void 0)}(e,e.assets,t)}let m=0,g=0;for(let e of r){if(!e.accessible)continue;let t=s.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),v=(0,l.getBridgeUrl)();try{let e=await fetch(`${v}/stats`,{signal:AbortSignal.timeout(2e3)});if(e.ok){let t=await e.json(),s={};for(let e of t.sessions||[])if(e.isActive){let t=e.name.split(":")[0];s[t]=(s[t]||0)+1}for(let e of r)e.activeSessions=s[e.id]??0}}catch{}let w=d();return{projects:r,totalBacklogItems:m,activeItems:g,totalOutdatedAssets:u,totalUncommitted:y,lastRefresh:new Date().toISOString(),slycodeRoot:w,projectsDir:s.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 s=(0,e.i(7367).getSlycodeRoot)(),a=r.default.join(s,"documentation","events.json");function n(){try{if(!t.default.existsSync(a))return[];let e=t.default.readFileSync(a,"utf-8"),r=JSON.parse(e);return Array.isArray(r)?r:[]}catch{return[]}}function i(e){let s,i=n(),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),s=r.default.dirname(a),t.default.existsSync(s)||t.default.mkdirSync(s,{recursive:!0}),t.default.writeFileSync(a,JSON.stringify(i,null,2)),o}function o(e={}){let t=n();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])},48516,e=>{"use strict";var t=e.i(47909),r=e.i(74017),s=e.i(96250),a=e.i(59756),n=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),d=e.i(87718),c=e.i(95169),u=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(89171),x=e.i(48044),w=e.i(46676),S=e.i(73178),R=e.i(41563),j=e.i(1365),E=e.i(22734);async function k(e){try{let t=await e.json(),r=t.changes,s=!0===t.fullSkillFolder;if(!Array.isArray(r)||0===r.length)return v.NextResponse.json({error:"changes array is required and must not be empty"},{status:400});let a=await (0,x.loadRegistry)(),n=new Map(a.projects.map(e=>[e.id,e])),i=(0,x.getRepoRoot)(),o=[];for(let e of r){let t=n.get(e.projectId);if(!t){o.push({change:e,success:!1,error:`Project ${e.projectId} not found`});continue}try{if("deploy"===e.action){if("store"===e.source&&e.provider)if((0,S.getStoreAssets)().find(t=>t.name===e.assetName&&t.type===e.assetType)){let r="skill"===e.assetType&&!s;(0,w.copyStoreAssetToProject)(t.path,e.provider,e.assetType,e.assetName,{skillMainOnly:r})}else throw Error(`Asset '${e.assetName}' not found in store`);else{let r="skill"===e.assetType&&!s;(0,w.copyAsset)(i,t.path,e.assetType,e.assetName,{skillMainOnly:r})}let r=e.provider?` (${e.provider})`:"";(0,j.appendEvent)({type:"skill_deployed",project:e.projectId,detail:`Deployed ${e.assetType} '${e.assetName}'${r} to ${t.name}`,timestamp:new Date().toISOString()})}else if("remove"===e.action){if(e.provider&&"claude"!==e.provider){let r=(0,R.getProviderAssetFilePath)(t.path,e.provider,e.assetType,e.assetName);r&&E.default.existsSync(r)&&("skill"===e.assetType?E.default.rmSync(r,{recursive:!0,force:!0}):E.default.unlinkSync(r))}else(0,w.removeAsset)(t.path,e.assetType,e.assetName);(0,j.appendEvent)({type:"skill_removed",project:e.projectId,detail:`Removed ${e.assetType} '${e.assetName}' from ${t.name}`,timestamp:new Date().toISOString()})}o.push({change:e,success:!0})}catch(t){o.push({change:e,success:!1,error:String(t)})}}let l=(0,S.getStoreAssets)(),d=["skill","agent"],c=new Map;for(let e of d)c.set(e,l.filter(t=>t.type===e));let u=new Map;for(let e of d)u.set(e,new Map);for(let e of a.projects){let t=(0,w.scanProviderAssets)(e.path,"claude");for(let r of d){let s=t.filter(e=>e.type===r);u.get(r).set(e.id,s)}}let p=(0,w.buildStoreAssetMatrix)(c.get("skill"),u.get("skill"),a.projects,"skill"),f=(0,w.buildStoreAssetMatrix)(c.get("agent"),u.get("agent"),a.projects,"agent"),m=[...(0,w.findNonImportedForProvider)(c.get("skill"),u.get("skill"),a.projects,"skill"),...(0,w.findNonImportedForProvider)(c.get("agent"),u.get("agent"),a.projects,"agent")],h={skills:p,agents:f,nonImported:m},g=(0,w.countOutdatedAssets)(h);return v.NextResponse.json({results:o,cliAssets:{...h,totalOutdated:g}})}catch(e){return console.error("CLI assets sync failed:",e),v.NextResponse.json({error:"Failed to sync CLI assets",details:String(e)},{status:500})}}e.s(["POST",()=>k],83168);var A=e.i(83168);let b=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/cli-assets/sync/route",pathname:"/api/cli-assets/sync",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-assets/sync/route.ts",nextConfigOutput:"standalone",userland:A}),{workAsyncStorage:C,workUnitAsyncStorage:N,serverHooks:O}=b;function P(){return(0,s.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:N})}async function T(e,t,s){b.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/cli-assets/sync/route";v=v.replace(/\/index$/,"")||"/";let x=await b.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!x)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:w,params:S,nextConfig:R,parsedUrl:j,isDraftMode:E,prerenderManifest:k,routerServerContext:A,isOnDemandRevalidate:C,revalidateOnlyGenerated:N,resolvedPathname:O,clientReferenceManifest:P,serverActionsManifest:T}=x,D=(0,o.normalizeAppPath)(v),M=!!(k.dynamicRoutes[D]||k.routes[O]),_=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,j,!1):t.end("This page could not be found"),null);if(M&&!E){let e=!!k.routes[O],t=k.dynamicRoutes[D];if(t&&!1===t.fallback&&!e){if(R.experimental.adapterPath)return await _();throw new g.NoFallbackError}}let F=null;!M||b.isDev||E||(F="/index"===(F=O)?"/":F);let I=!0===b.isDev||!M,q=M&&!I;T&&P&&(0,i.setManifestsSingleton)({page:v,clientReferenceManifest:P,serverActionsManifest:T});let U=e.method||"GET",$=(0,n.getTracer)(),H=$.getActiveScopeSpan(),L={params:S,prerenderManifest:k,renderOpts:{experimental:{authInterrupts:!!R.experimental.authInterrupts},cacheComponents:!!R.cacheComponents,supportsDynamicResponse:I,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:R.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,a)=>b.onRequestError(e,t,s,a,A)},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=>b.handle(B,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==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 s=r.get("next.route");if(s){let t=`${U} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t)}else e.updateName(`${U} ${v}`)}),o=!!(0,a.getRequestMeta)(e,"minimalMode"),l=async a=>{var n,l;let d=async({previousCacheEntry:r})=>{try{if(!o&&C&&N&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await i(a);e.fetchMetrics=L.renderOpts.fetchMetrics;let l=L.renderOpts.pendingWaitUntil;l&&s.waitUntil&&(s.waitUntil(l),l=void 0);let d=L.renderOpts.collectedTags;if(!M)return await (0,p.sendResponse)(V,K,n,L.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(n.headers);d&&(t[h.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,s=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:s}}}}catch(t){throw(null==r?void 0:r.isStale)&&await b.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:C})},!1,A),t}},c=await b.handleResponse({req:e,nextConfig:R,cacheKey:F,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:k,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:N,responseGenerator:d,waitUntil:s.waitUntil,isMinimalMode:o});if(!M)return null;if((null==c||null==(n=c.value)?void 0:n.kind)!==y.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});o||t.setHeader("x-nextjs-cache",C?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let g=(0,f.fromNodeOutgoingHttpHeaders)(c.value.headers);return o&&M||g.delete(h.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||g.get("Cache-Control")||g.set("Cache-Control",(0,m.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)(V,K,new Response(c.value.body,{headers:g,status:c.value.status||200})),null};H?await l(H):await $.withPropagatedContext(e.headers,()=>$.trace(c.BaseServerSpan.handleRequest,{spanName:`${U} ${v}`,kind:n.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await b.onRequestError(e,t,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:C})},!1,A),M)throw t;return await (0,p.sendResponse)(V,K,new Response(null,{status:500})),null}}e.s(["handler",()=>T,"patchFetch",()=>P,"routeModule",()=>b,"serverHooks",()=>O,"workAsyncStorage",()=>C,"workUnitAsyncStorage",()=>N],48516)}];
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 s(){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=s(),a=t.default.join(e,"node_modules","@slycode","slycode","dist");return r.default.existsSync(a)?a:e}function n(){return process.env.BRIDGE_URL?process.env.BRIDGE_URL:"http://127.0.0.1:3004"}e.s(["getBridgeUrl",()=>n,"getPackageDir",()=>a,"getSlycodeRoot",()=>s])},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},73178,e=>{"use strict";var t=e.i(22734),r=e.i(14747),s=e.i(46676),a=e.i(7367);function n(){return r.default.join((0,a.getSlycodeRoot)(),"store")}function i(){for(let e of[r.default.join((0,a.getSlycodeRoot)(),"build","store-manifest.js"),r.default.join((0,a.getSlycodeRoot)(),"node_modules","@slycode","slycode","build","store-manifest.js")])try{if(t.default.existsSync(e)){let r=t.default.readFileSync(e,"utf-8"),s={};Function("module","exports",r)(s,s);let a=s.exports;if(a?.skills)return{skills:a.skills,actions:a.actions||[],agents:a.agents||[],mcp:a.mcp||[]}}}catch{}return null}function o(e,a){let n=[],i="skill"===a?"skills":"agents",o=r.default.join(e,i);try{if(!t.default.existsSync(o))return n;for(let e of t.default.readdirSync(o,{withFileTypes:!0})){let l,d;if("skill"===a){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 c=t.default.readFileSync(l,"utf-8"),u=(0,s.parseFrontmatter)(c),p=u?.name||e.name.replace(/\.md$/,"");n.push({name:p,type:a,path:d,frontmatter:u,isValid:(0,s.validateFrontmatter)(u)})}}catch{}return n.sort((e,t)=>e.name.localeCompare(t.name))}function l(){let e=n(),s=i(),a=o(e,"skill"),l=o(e,"agent"),d=function(e){let s=r.default.join(e,"mcp"),a=[];try{if(!t.default.existsSync(s))return a;for(let e of t.default.readdirSync(s,{withFileTypes:!0})){let n;if(!e.isFile()||!e.name.endsWith(".json"))continue;let i=r.default.join(s,e.name),o=t.default.readFileSync(i,"utf-8");try{n=JSON.parse(o)}catch{continue}let l=n.name||e.name.replace(/\.json$/,"");a.push({name:l,type:"mcp",path:r.default.join("mcp",e.name),frontmatter:{name:l,version:n.version,description:n.description,updated:n.updated},isValid:!!(n.name&&n.command)})}}catch{}return a}(e);if(s){if(s.skills){let e=new Set(s.skills);a=a.filter(t=>e.has(t.name))}if(s.agents){let e=new Set(s.agents);l=l.filter(t=>e.has(t.name))}if(s.mcp){let e=new Set(s.mcp);d=d.filter(t=>e.has(t.name))}}return{skills:a,agents:l,mcp:d}}function d(){let e=n(),t=i(),r=o(e,"skill"),s=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);s=s.filter(t=>e.has(t.name))}}return[...r,...s]}e.s(["getStoreAssets",()=>d,"scanStore",()=>l])},48044,e=>{"use strict";var t=e.i(22734),r=e.i(33405),s=e.i(14747),a=e.i(46676),n=e.i(73178);let i={outdatedAssets:.3,staleCards:.15,unresolvedProblems:.25,missingClaudeMd:.1,nonCompliantFrontmatter:.2};function o(e,t=0,r=0,s=0,a=i){let n=[],l=Math.max(r,1);n.push({name:"Outdated Assets",weight:a.outdatedAssets,value:t,maxValue:l});let d=Date.now(),c=[...e.backlog],u=c.filter(e=>(d-new Date(e.created_at).getTime())/864e5>14&&"done"!==e.status).length,p=Math.max(c.length,1);n.push({name:"Stale Cards",weight:a.staleCards,value:u,maxValue:p}),n.push({name:"Unresolved Problems",weight:a.unresolvedProblems,value:0,maxValue:1}),n.push({name:"Missing CLAUDE.md",weight:a.missingClaudeMd,value:+!e.hasClaudeMd,maxValue:1});let f=Math.max(r,1);n.push({name:"Non-compliant Frontmatter",weight:a.nonCompliantFrontmatter,value:s,maxValue:f});let m=0;for(let e of n)m+=Math.min(e.maxValue>0?e.value/e.maxValue:0,1)*e.weight;let h=Math.round(Math.max(0,(1-m)*100));return{score:h,level:h>=80?"green":h>=50?"amber":"red",factors:n}}var l=e.i(7367);function d(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let e=process.cwd();return e.endsWith("/web")||e.endsWith("\\web")?s.default.dirname(e):e}let c=d(),u=s.default.join(c,"projects","registry.json");async function p(){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 f(e){let r=JSON.stringify(e,null,2)+"\n";await t.promises.writeFile(u,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 a=s.default.join(e,"documentation","backlog.json"),n=await h(a);return n?n.map(e=>({...e,projectId:t,projectName:r})):[]}async function y(e,t){let r=s.default.join(e,"documentation","designs.json"),a=await h(r);return a?a.map(e=>({...e,projectId:t})):[]}async function v(e,t){let r=s.default.join(e,"documentation","features.json"),a=await h(r);return a?a.map(e=>({...e,projectId:t})):[]}async function x(e){let t=e.path;if(!await m(t))return{...e,backlog:[],designs:[],features:[],accessible:!1,error:`Path not accessible: ${t}`};let[s,n,i]=await Promise.all([g(t,e.id,e.name),y(t,e.id),v(t,e.id)]),o=(0,a.scanProjectAssets)(t,e.id),l=(0,a.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:s,designs:n,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=>x(e)),r=await Promise.all(t),i=(0,n.getStoreAssets)(),c=["skill","agent"],u=0,f=[];for(let t of["claude","agents"])for(let r of c){let s=i.filter(e=>e.type===r),n=new Map;for(let s of e.projects){let e=(0,a.scanProviderAssets)(s.path,t);n.set(s.id,e.filter(e=>e.type===r))}let o=(0,a.buildStoreAssetMatrix)(s,n,e.projects,r);f.push(...o)}for(let e of f)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 f)for(let s of r.cells)s.projectId===e.id&&"outdated"===s.status&&t++;e.healthScore=function(e,t,r=0,s){if(!t)return o(e,0,0,0,void 0);let a=[...t.skills,...t.agents];return o(e,r,a.length,a.filter(e=>!e.isValid).length,void 0)}(e,e.assets,t)}let m=0,g=0;for(let e of r){if(!e.accessible)continue;let t=s.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),v=(0,l.getBridgeUrl)();try{let e=await fetch(`${v}/stats`,{signal:AbortSignal.timeout(2e3)});if(e.ok){let t=await e.json(),s={};for(let e of t.sessions||[])if(e.isActive){let t=e.name.split(":")[0];s[t]=(s[t]||0)+1}for(let e of r)e.activeSessions=s[e.id]??0}}catch{}let w=d();return{projects:r,totalBacklogItems:m,activeItems:g,totalOutdatedAssets:u,totalUncommitted:y,lastRefresh:new Date().toISOString(),slycodeRoot:w,projectsDir:s.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 s=(0,e.i(7367).getSlycodeRoot)(),a=r.default.join(s,"documentation","events.json");function n(){try{if(!t.default.existsSync(a))return[];let e=t.default.readFileSync(a,"utf-8"),r=JSON.parse(e);return Array.isArray(r)?r:[]}catch{return[]}}function i(e){let s,i=n(),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),s=r.default.dirname(a),t.default.existsSync(s)||t.default.mkdirSync(s,{recursive:!0}),t.default.writeFileSync(a,JSON.stringify(i,null,2)),o}function o(e={}){let t=n();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])},48516,e=>{"use strict";var t=e.i(47909),r=e.i(74017),s=e.i(96250),a=e.i(59756),n=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),d=e.i(87718),c=e.i(95169),u=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(89171),x=e.i(48044),w=e.i(46676),S=e.i(73178),R=e.i(41563),j=e.i(1365),E=e.i(22734);async function k(e){try{let t=await e.json(),r=t.changes,s=!0===t.fullSkillFolder;if(!Array.isArray(r)||0===r.length)return v.NextResponse.json({error:"changes array is required and must not be empty"},{status:400});let a=await (0,x.loadRegistry)(),n=new Map(a.projects.map(e=>[e.id,e])),i=(0,x.getRepoRoot)(),o=[];for(let e of r){let t=n.get(e.projectId);if(!t){o.push({change:e,success:!1,error:`Project ${e.projectId} not found`});continue}try{if("deploy"===e.action){if("store"===e.source&&e.provider)if((0,S.getStoreAssets)().find(t=>t.name===e.assetName&&t.type===e.assetType)){let r="skill"===e.assetType&&!s;(0,w.copyStoreAssetToProject)(t.path,e.provider,e.assetType,e.assetName,{skillMainOnly:r})}else throw Error(`Asset '${e.assetName}' not found in store`);else{let r="skill"===e.assetType&&!s;(0,w.copyAsset)(i,t.path,e.assetType,e.assetName,{skillMainOnly:r})}let r=e.provider?` (${e.provider})`:"";(0,j.appendEvent)({type:"skill_deployed",project:e.projectId,detail:`Deployed ${e.assetType} '${e.assetName}'${r} to ${t.name}`,timestamp:new Date().toISOString()})}else if("remove"===e.action){if(e.provider&&"claude"!==e.provider){let r=(0,R.getProviderAssetFilePath)(t.path,e.provider,e.assetType,e.assetName);r&&E.default.existsSync(r)&&("skill"===e.assetType?E.default.rmSync(r,{recursive:!0,force:!0}):E.default.unlinkSync(r))}else(0,w.removeAsset)(t.path,e.assetType,e.assetName);(0,j.appendEvent)({type:"skill_removed",project:e.projectId,detail:`Removed ${e.assetType} '${e.assetName}' from ${t.name}`,timestamp:new Date().toISOString()})}o.push({change:e,success:!0})}catch(t){o.push({change:e,success:!1,error:String(t)})}}let l=(0,S.getStoreAssets)(),d=["skill","agent"],c=new Map;for(let e of d)c.set(e,l.filter(t=>t.type===e));let u=new Map;for(let e of d)u.set(e,new Map);for(let e of a.projects){let t=(0,w.scanProviderAssets)(e.path,"claude");for(let r of d){let s=t.filter(e=>e.type===r);u.get(r).set(e.id,s)}}let p=(0,w.buildStoreAssetMatrix)(c.get("skill"),u.get("skill"),a.projects,"skill"),f=(0,w.buildStoreAssetMatrix)(c.get("agent"),u.get("agent"),a.projects,"agent"),m=[...(0,w.findNonImportedForProvider)(c.get("skill"),u.get("skill"),a.projects,"skill"),...(0,w.findNonImportedForProvider)(c.get("agent"),u.get("agent"),a.projects,"agent")],h={skills:p,agents:f,nonImported:m},g=(0,w.countOutdatedAssets)(h);return v.NextResponse.json({results:o,cliAssets:{...h,totalOutdated:g}})}catch(e){return console.error("CLI assets sync failed:",e),v.NextResponse.json({error:"Failed to sync CLI assets",details:String(e)},{status:500})}}e.s(["POST",()=>k],83168);var A=e.i(83168);let b=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/cli-assets/sync/route",pathname:"/api/cli-assets/sync",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-assets/sync/route.ts",nextConfigOutput:"standalone",userland:A}),{workAsyncStorage:C,workUnitAsyncStorage:N,serverHooks:O}=b;function P(){return(0,s.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:N})}async function T(e,t,s){b.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/cli-assets/sync/route";v=v.replace(/\/index$/,"")||"/";let x=await b.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!x)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:w,params:S,nextConfig:R,parsedUrl:j,isDraftMode:E,prerenderManifest:k,routerServerContext:A,isOnDemandRevalidate:C,revalidateOnlyGenerated:N,resolvedPathname:O,clientReferenceManifest:P,serverActionsManifest:T}=x,D=(0,o.normalizeAppPath)(v),M=!!(k.dynamicRoutes[D]||k.routes[O]),_=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,j,!1):t.end("This page could not be found"),null);if(M&&!E){let e=!!k.routes[O],t=k.dynamicRoutes[D];if(t&&!1===t.fallback&&!e){if(R.experimental.adapterPath)return await _();throw new g.NoFallbackError}}let F=null;!M||b.isDev||E||(F="/index"===(F=O)?"/":F);let I=!0===b.isDev||!M,q=M&&!I;T&&P&&(0,i.setManifestsSingleton)({page:v,clientReferenceManifest:P,serverActionsManifest:T});let U=e.method||"GET",$=(0,n.getTracer)(),H=$.getActiveScopeSpan(),L={params:S,prerenderManifest:k,renderOpts:{experimental:{authInterrupts:!!R.experimental.authInterrupts},cacheComponents:!!R.cacheComponents,supportsDynamicResponse:I,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:R.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,a)=>b.onRequestError(e,t,s,a,A)},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=>b.handle(B,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==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 s=r.get("next.route");if(s){let t=`${U} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t)}else e.updateName(`${U} ${v}`)}),o=!!(0,a.getRequestMeta)(e,"minimalMode"),l=async a=>{var n,l;let d=async({previousCacheEntry:r})=>{try{if(!o&&C&&N&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await i(a);e.fetchMetrics=L.renderOpts.fetchMetrics;let l=L.renderOpts.pendingWaitUntil;l&&s.waitUntil&&(s.waitUntil(l),l=void 0);let d=L.renderOpts.collectedTags;if(!M)return await (0,p.sendResponse)(V,K,n,L.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(n.headers);d&&(t[h.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,s=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:s}}}}catch(t){throw(null==r?void 0:r.isStale)&&await b.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:C})},!1,A),t}},c=await b.handleResponse({req:e,nextConfig:R,cacheKey:F,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:k,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:N,responseGenerator:d,waitUntil:s.waitUntil,isMinimalMode:o});if(!M)return null;if((null==c||null==(n=c.value)?void 0:n.kind)!==y.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});o||t.setHeader("x-nextjs-cache",C?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let g=(0,f.fromNodeOutgoingHttpHeaders)(c.value.headers);return o&&M||g.delete(h.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||g.get("Cache-Control")||g.set("Cache-Control",(0,m.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)(V,K,new Response(c.value.body,{headers:g,status:c.value.status||200})),null};H?await l(H):await $.withPropagatedContext(e.headers,()=>$.trace(c.BaseServerSpan.handleRequest,{spanName:`${U} ${v}`,kind:n.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await b.onRequestError(e,t,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:C})},!1,A),M)throw t;return await (0,p.sendResponse)(V,K,new Response(null,{status:500})),null}}e.s(["handler",()=>T,"patchFetch",()=>P,"routeModule",()=>b,"serverHooks",()=>O,"workAsyncStorage",()=>C,"workUnitAsyncStorage",()=>N],48516)}];
2
2
 
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__e9b0e744._.js.map
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__3c5ef8ec._.js.map
@@ -0,0 +1,5 @@
1
+ module.exports=[43698,(e,t,s)=>{t.exports=e.x("node:https",()=>require("node:https"))},84912,e=>{"use strict";let t,s;var i=e.i(31875),o=e.i(84540),n=e.i(43698),r=e.i(63886);let d=["ECONNRESET","EPIPE","ETIMEDOUT"];var u=e.i(3130),c=e.i(30836);let l=3e3;var a=e.i(88895);class m{config;configProvider;socketWarningTimestamp=0;externalAgent=!1;metadata={handlerProtocol:"http/1.1"};static create(e){return"function"==typeof e?.handle?e:new m(e)}static checkSocketUsage(e,t,s=console){let{sockets:i,requests:o,maxSockets:n}=e;if("number"!=typeof n||n===1/0||Date.now()-15e3<t)return t;if(i&&o)for(let e in i){let t=i[e]?.length??0,r=o[e]?.length??0;if(t>=n&&r>=2*n)return s?.warn?.(`@smithy/node-http-handler:WARN - socket usage at capacity=${t} and ${r} additional requests are enqueued.
2
+ See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html
3
+ or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.`),Date.now()}return t}constructor(e){this.configProvider=new Promise((t,s)=>{"function"==typeof e?e().then(e=>{t(this.resolveDefaultConfig(e))}).catch(s):t(this.resolveDefaultConfig(e))})}destroy(){this.config?.httpAgent?.destroy(),this.config?.httpsAgent?.destroy()}async handle(e,{abortSignal:p,requestTimeout:h}={}){this.config||(this.config=await this.configProvider);let g=this.config,y="https:"===e.protocol;return y||this.config.httpAgent||(this.config.httpAgent=await this.config.httpAgentProvider()),new Promise((f,b)=>{let w,j,v=[],k=async e=>{await w,v.forEach(c.timing.clearTimeout),f(e)},x=async e=>{await w,v.forEach(c.timing.clearTimeout),b(e)};if(p?.aborted)return void x((0,r.buildAbortError)(p));let A=e.headers??{},T=(A.Expect??A.expect)==="100-continue",E=y?g.httpsAgent:g.httpAgent;T&&!this.externalAgent&&(E=new(y?n.Agent:t)({keepAlive:!1,maxSockets:1/0})),v.push(c.timing.setTimeout(()=>{this.socketWarningTimestamp=m.checkSocketUsage(E,this.socketWarningTimestamp,g.logger)},g.socketAcquisitionWarningTimeout??(g.requestTimeout??2e3)+(g.connectionTimeout??1e3)));let q=(0,o.buildQueryString)(e.query||{});if(null!=e.username||null!=e.password){let t=e.username??"",s=e.password??"";j=`${t}:${s}`}let C=e.path;q&&(C+=`?${q}`),e.fragment&&(C+=`#${e.fragment}`);let S=e.hostname??"";S="["===S[0]&&S.endsWith("]")?e.hostname.slice(1,-1):e.hostname;let O={headers:e.headers,host:S,method:e.method,path:C,port:e.port,agent:E,auth:j},P=(y?n.request:s)(O,e=>{k({response:new i.HttpResponse({statusCode:e.statusCode||-1,reason:e.statusMessage,headers:(0,u.getTransformedHeaders)(e.headers),body:e})})});if(P.on("error",e=>{d.includes(e.code)?x(Object.assign(e,{name:"TimeoutError"})):x(e)}),p){let e=()=>{P.destroy(),x((0,r.buildAbortError)(p))};"function"==typeof p.addEventListener?(p.addEventListener("abort",e,{once:!0}),P.once("close",()=>p.removeEventListener("abort",e))):p.onabort=e}let $=h??g.requestTimeout;v.push(((e,t,s=0)=>{if(!s)return -1;let i=i=>{let o=c.timing.setTimeout(()=>{e.destroy(),t(Object.assign(Error(`@smithy/node-http-handler - the request socket did not establish a connection with the server within the configured timeout of ${s} ms.`),{name:"TimeoutError"}))},s-i),n=e=>{e?.connecting?e.on("connect",()=>{c.timing.clearTimeout(o)}):c.timing.clearTimeout(o)};e.socket?n(e.socket):e.on("socket",n)};return s<2e3?(i(0),0):c.timing.setTimeout(i.bind(null,1e3),1e3)})(P,x,g.connectionTimeout)),v.push(((e,t,s=0,i,o)=>s?c.timing.setTimeout(()=>{let n=`@smithy/node-http-handler - [${i?"ERROR":"WARN"}] a request has exceeded the configured ${s} ms requestTimeout.`;if(i){let s=Object.assign(Error(n),{name:"TimeoutError",code:"ETIMEDOUT"});e.destroy(s),t(s)}else n+=" Init client requestHandler with throwOnRequestTimeout=true to turn this into an error.",o?.warn?.(n)},s):-1)(P,x,$,g.throwOnRequestTimeout,g.logger??console)),v.push(((e,t,s=0)=>{let i=i=>{let o=s-i,n=()=>{e.destroy(),t(Object.assign(Error(`@smithy/node-http-handler - the request socket timed out after ${s} ms of inactivity (configured by client requestHandler).`),{name:"TimeoutError"}))};e.socket?(e.socket.setTimeout(o,n),e.on("close",()=>e.socket?.removeListener("timeout",n))):e.setTimeout(o,n)};return 0<s&&s<6e3?(i(0),0):c.timing.setTimeout(i.bind(null,3e3*(0!==s)),3e3)})(P,x,g.socketTimeout));let W=O.agent;"object"==typeof W&&"keepAlive"in W&&v.push(((e,{keepAlive:t,keepAliveMsecs:s},i=l)=>{if(!0!==t)return -1;let o=()=>{e.socket?e.socket.setKeepAlive(t,s||0):e.on("socket",e=>{e.setKeepAlive(t,s||0)})};return 0===i?(o(),0):c.timing.setTimeout(o,i)})(P,{keepAlive:W.keepAlive,keepAliveMsecs:W.keepAliveMsecs})),w=(0,a.writeRequestBody)(P,e,$,this.externalAgent).catch(e=>(v.forEach(c.timing.clearTimeout),b(e)))})}updateHttpClientConfig(e,t){this.config=void 0,this.configProvider=this.configProvider.then(s=>({...s,[e]:t}))}httpHandlerConfigs(){return this.config??{}}resolveDefaultConfig(i){let{requestTimeout:o,connectionTimeout:r,socketTimeout:d,socketAcquisitionWarningTimeout:u,httpAgent:c,httpsAgent:l,throwOnRequestTimeout:a,logger:m}=i||{};return{connectionTimeout:r,requestTimeout:o,socketTimeout:d,socketAcquisitionWarningTimeout:u,throwOnRequestTimeout:a,httpAgentProvider:async()=>{let{Agent:i,request:o}=await e.A(91956);return(s=o,c instanceof(t=i)||"function"==typeof c?.destroy)?(this.externalAgent=!0,c):new t({keepAlive:!0,maxSockets:50,...c})},httpsAgent:l instanceof n.Agent||"function"==typeof l?.destroy?(this.externalAgent=!0,l):new n.Agent({keepAlive:!0,maxSockets:50,...l}),logger:m}}}e.s(["NodeHttpHandler",()=>m],84912)},21706,e=>{e.v({name:"@aws-sdk/nested-clients",version:"3.996.11",description:"Nested clients for AWS SDK packages.",main:"./dist-cjs/index.js",module:"./dist-es/index.js",types:"./dist-types/index.d.ts",scripts:{build:"yarn lint && concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs","build:cjs":"node ../../scripts/compilation/inline nested-clients","build:es":"tsc -p tsconfig.es.json","build:include:deps":'yarn g:turbo run build -F="$npm_package_name"',"build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4",clean:"premove dist-cjs dist-es dist-types tsconfig.cjs.tsbuildinfo tsconfig.es.tsbuildinfo tsconfig.types.tsbuildinfo",lint:"node ../../scripts/validation/submodules-linter.js --pkg nested-clients",test:"yarn g:vitest run","test:watch":"yarn g:vitest watch"},engines:{node:">=20.0.0"},sideEffects:!1,author:{name:"AWS SDK for JavaScript Team",url:"https://aws.amazon.com/javascript/"},license:"Apache-2.0",dependencies:{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"^3.973.21","@aws-sdk/middleware-host-header":"^3.972.8","@aws-sdk/middleware-logger":"^3.972.8","@aws-sdk/middleware-recursion-detection":"^3.972.8","@aws-sdk/middleware-user-agent":"^3.972.22","@aws-sdk/region-config-resolver":"^3.972.8","@aws-sdk/types":"^3.973.6","@aws-sdk/util-endpoints":"^3.996.5","@aws-sdk/util-user-agent-browser":"^3.972.8","@aws-sdk/util-user-agent-node":"^3.973.8","@smithy/config-resolver":"^4.4.11","@smithy/core":"^3.23.12","@smithy/fetch-http-handler":"^5.3.15","@smithy/hash-node":"^4.2.12","@smithy/invalid-dependency":"^4.2.12","@smithy/middleware-content-length":"^4.2.12","@smithy/middleware-endpoint":"^4.4.26","@smithy/middleware-retry":"^4.4.43","@smithy/middleware-serde":"^4.2.15","@smithy/middleware-stack":"^4.2.12","@smithy/node-config-provider":"^4.3.12","@smithy/node-http-handler":"^4.5.0","@smithy/protocol-http":"^5.3.12","@smithy/smithy-client":"^4.12.6","@smithy/types":"^4.13.1","@smithy/url-parser":"^4.2.12","@smithy/util-base64":"^4.3.2","@smithy/util-body-length-browser":"^4.2.2","@smithy/util-body-length-node":"^4.2.3","@smithy/util-defaults-mode-browser":"^4.3.42","@smithy/util-defaults-mode-node":"^4.2.45","@smithy/util-endpoints":"^3.3.3","@smithy/util-middleware":"^4.2.12","@smithy/util-retry":"^4.2.12","@smithy/util-utf8":"^4.2.2",tslib:"^2.6.2"},devDependencies:{concurrently:"7.0.0","downlevel-dts":"0.10.1",premove:"4.0.0",typescript:"~5.8.3"},typesVersions:{"<4.5":{"dist-types/*":["dist-types/ts3.4/*"]}},files:["./cognito-identity.d.ts","./cognito-identity.js","./signin.d.ts","./signin.js","./sso-oidc.d.ts","./sso-oidc.js","./sso.d.ts","./sso.js","./sts.d.ts","./sts.js","dist-*/**"],browser:{"./dist-es/submodules/cognito-identity/runtimeConfig":"./dist-es/submodules/cognito-identity/runtimeConfig.browser","./dist-es/submodules/signin/runtimeConfig":"./dist-es/submodules/signin/runtimeConfig.browser","./dist-es/submodules/sso-oidc/runtimeConfig":"./dist-es/submodules/sso-oidc/runtimeConfig.browser","./dist-es/submodules/sso/runtimeConfig":"./dist-es/submodules/sso/runtimeConfig.browser","./dist-es/submodules/sts/runtimeConfig":"./dist-es/submodules/sts/runtimeConfig.browser"},"react-native":{},homepage:"https://github.com/aws/aws-sdk-js-v3/tree/main/packages/nested-clients",repository:{type:"git",url:"https://github.com/aws/aws-sdk-js-v3.git",directory:"packages/nested-clients"},exports:{"./package.json":"./package.json","./sso-oidc":{types:"./dist-types/submodules/sso-oidc/index.d.ts",module:"./dist-es/submodules/sso-oidc/index.js",node:"./dist-cjs/submodules/sso-oidc/index.js",import:"./dist-es/submodules/sso-oidc/index.js",require:"./dist-cjs/submodules/sso-oidc/index.js"},"./sts":{types:"./dist-types/submodules/sts/index.d.ts",module:"./dist-es/submodules/sts/index.js",node:"./dist-cjs/submodules/sts/index.js",import:"./dist-es/submodules/sts/index.js",require:"./dist-cjs/submodules/sts/index.js"},"./signin":{types:"./dist-types/submodules/signin/index.d.ts",module:"./dist-es/submodules/signin/index.js",node:"./dist-cjs/submodules/signin/index.js",import:"./dist-es/submodules/signin/index.js",require:"./dist-cjs/submodules/signin/index.js"},"./cognito-identity":{types:"./dist-types/submodules/cognito-identity/index.d.ts",module:"./dist-es/submodules/cognito-identity/index.js",node:"./dist-cjs/submodules/cognito-identity/index.js",import:"./dist-es/submodules/cognito-identity/index.js",require:"./dist-cjs/submodules/cognito-identity/index.js"},"./sso":{types:"./dist-types/submodules/sso/index.d.ts",module:"./dist-es/submodules/sso/index.js",node:"./dist-cjs/submodules/sso/index.js",import:"./dist-es/submodules/sso/index.js",require:"./dist-cjs/submodules/sso/index.js"}}})},75372,e=>{"use strict";class t{async sign(e,t,s){return e}}e.s(["NoAuthSigner",()=>t])},48648,e=>{"use strict";e.s(["createAggregatedClient",0,(e,t,s)=>{for(let[s,i]of Object.entries(e)){let e=async function(e,t,s){let o=new i(e);if("function"==typeof t)this.send(o,t);else{if("function"!=typeof s)return this.send(o,t);if("object"!=typeof t)throw Error(`Expected http options but got ${typeof t}`);this.send(o,t||{},s)}},o=(s[0].toLowerCase()+s.slice(1)).replace(/Command$/,"");t.prototype[o]=e}let{paginators:i={},waiters:o={}}=s??{};for(let[e,s]of Object.entries(i))void 0===t.prototype[e]&&(t.prototype[e]=function(e={},t,...i){return s({...t,client:this},e,...i)});for(let[e,s]of Object.entries(o))void 0===t.prototype[e]&&(t.prototype[e]=async function(e={},t,...i){let o=t;return"number"==typeof t&&(o={maxWaitTime:t}),s({...o,client:this},e,...i)})}])},91956,e=>{e.v(t=>Promise.all(["server/chunks/[externals]_node:http_c3a9e25f._.js"].map(t=>e.l(t))).then(()=>t(47299)))}];
4
+
5
+ //# sourceMappingURL=%5Broot-of-the-server%5D__3dc5531f._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[18622,(e,r,t)=>{r.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,r,t)=>{r.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,r,t)=>{r.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,r,t)=>{r.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,r,t)=>{r.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,r,t)=>{r.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},14747,(e,r,t)=>{r.exports=e.x("path",()=>require("path"))},22734,(e,r,t)=>{r.exports=e.x("fs",()=>require("fs"))},7367,e=>{"use strict";var r=e.i(14747),t=e.i(22734);function o(){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"))?r.default.dirname(e):e}function s(){let e=o(),s=r.default.join(e,"node_modules","@slycode","slycode","dist");return t.default.existsSync(s)?s:e}function n(){return process.env.BRIDGE_URL?process.env.BRIDGE_URL:"http://127.0.0.1:3004"}e.s(["getBridgeUrl",()=>n,"getPackageDir",()=>s,"getSlycodeRoot",()=>o])},54799,(e,r,t)=>{r.exports=e.x("crypto",()=>require("crypto"))},33405,(e,r,t)=>{r.exports=e.x("child_process",()=>require("child_process"))},45786,e=>{"use strict";var r=e.i(56884),t=e.i(47797),o=e.i(88947),s=e.i(49151);let n=async e=>"function"==typeof Blob&&e instanceof Blob||e.constructor?.name==="Blob"?void 0!==Blob.prototype.arrayBuffer?new Uint8Array(await e.arrayBuffer()):i(e):a(e);async function i(e){var r;let t=await (r=e,new Promise((e,t)=>{let o=new FileReader;o.onloadend=()=>{if(2!==o.readyState)return t(Error("Reader aborted too early"));let r=o.result??"",s=r.indexOf(","),n=s>-1?s+1:r.length;e(r.substring(n))},o.onabort=()=>t(Error("Read aborted")),o.onerror=()=>t(o.error),o.readAsDataURL(r)}));return new Uint8Array((0,s.fromBase64)(t))}async function a(e){let r=[],t=e.getReader(),o=!1,s=0;for(;!o;){let{done:e,value:n}=await t.read();n&&(r.push(n),s+=n.length),o=e}let n=new Uint8Array(s),i=0;for(let e of r)n.set(e,i),i+=e.length;return n}var l=e.i(71225),c=e.i(83784),d=e.i(25145);let u=e=>"function"==typeof ReadableStream&&(e?.constructor?.name===ReadableStream.name||e instanceof ReadableStream),p="The stream has already been transformed.",f=e=>"function"==typeof Blob&&e instanceof Blob,h="The stream has already been transformed.";e.s(["sdkStreamMixin",0,e=>{if(!(e instanceof o.Readable))try{if(!f(e)&&!u(e)){let r=e?.__proto__?.constructor?.name||e;throw Error(`Unexpected stream implementation, expect Blob or ReadableStream, got ${r}`)}let r=!1,t=async()=>{if(r)throw Error(p);return r=!0,await n(e)};return Object.assign(e,{transformToByteArray:t,transformToString:async e=>{let r=await t();if("base64"===e)return(0,l.toBase64)(r);if("hex"===e)return(0,c.toHex)(r);if(void 0===e||"utf8"===e||"utf-8"===e)return(0,d.toUtf8)(r);if("function"==typeof TextDecoder)return new TextDecoder(e).decode(r);throw Error("TextDecoder is not available, please make sure polyfill is provided.")},transformToWebStream:()=>{if(r)throw Error(p);if(r=!0,f(e)){if("function"!=typeof e.stream)throw Error("Cannot transform payload Blob to web stream. Please make sure the Blob.stream() is polyfilled.\nIf you are using React Native, this API is not yet supported, see: https://react-native.canny.io/feature-requests/p/fetch-streaming-body");return e.stream()}if(u(e))return e;throw Error(`Cannot transform payload to web stream, got ${e}`)}})}catch(t){let r=e?.__proto__?.constructor?.name||e;throw Error(`Unexpected stream implementation, expect Stream.Readable instance, got ${r}`)}let s=!1,i=async()=>{if(s)throw Error(h);return s=!0,await (0,r.streamCollector)(e)};return Object.assign(e,{transformToByteArray:i,transformToString:async e=>{let r=await i();return void 0===e||Buffer.isEncoding(e)?(0,t.fromArrayBuffer)(r.buffer,r.byteOffset,r.byteLength).toString(e):new TextDecoder(e).decode(r)},transformToWebStream:()=>{if(s)throw Error(h);if(null!==e.readableFlowing)throw Error("The stream has been consumed by other callbacks.");if("function"!=typeof o.Readable.toWeb)throw Error("Readable.toWeb() is not supported. Please ensure a polyfill is available.");return s=!0,o.Readable.toWeb(e)}})}],45786)},50227,(e,r,t)=>{r.exports=e.x("node:path",()=>require("node:path"))},59639,(e,r,t)=>{r.exports=e.x("node:process",()=>require("node:process"))},41175,e=>{"use strict";let r=e=>{let t;if("string"==typeof e)return r(new URL(e));let{hostname:o,pathname:s,port:n,protocol:i,search:a}=e;return a&&(t=function(e){let r={};if(e=e.replace(/^\?/,""))for(let t of e.split("&")){let[e,o=null]=t.split("=");e=decodeURIComponent(e),o&&(o=decodeURIComponent(o)),e in r?Array.isArray(r[e])?r[e].push(o):r[e]=[r[e],o]:r[e]=o}return r}(a)),{hostname:o,port:n?parseInt(n):void 0,protocol:i,path:s,query:t}};e.s(["parseUrl",0,r],41175)},15189,72783,e=>{"use strict";var r=e.i(39866);let t=(e,r,t)=>{let o,s,n,i=!1,a=async()=>{s||(s=e());try{o=await s,n=!0,i=!1}finally{s=void 0}return o};return void 0===r?async e=>((!n||e?.forceRefresh)&&(o=await a()),o):async e=>((!n||e?.forceRefresh)&&(o=await a()),i||(t&&!t(o)?i=!0:r(o)&&await a()),o)};e.s(["memoize",0,t],72783);var o=e.i(60400);function s(e){try{let r=new Set(Array.from(e.match(/([A-Z_]){3,}/g)??[]));return r.delete("CONFIG"),r.delete("CONFIG_PREFIX_SEPARATOR"),r.delete("ENV"),[...r].join(", ")}catch(r){return e}}var n=e.i(81355),i=e.i(46277);e.s(["loadConfig",0,({environmentVariableSelector:e,configFileSelector:a,default:l},c={})=>{let d,{signingName:u,logger:p}=c;return t((0,r.chain)((d={signingName:u,logger:p},async()=>{try{let r=e(process.env,d);if(void 0===r)throw Error();return r}catch(r){throw new o.CredentialsProviderError(r.message||`Not found in ENV: ${s(e.toString())}`,{logger:d?.logger})}}),((e,{preferredFile:r="config",...t}={})=>async()=>{let a=(0,n.getProfileName)(t),{configFile:l,credentialsFile:c}=await (0,i.loadSharedConfigFiles)(t),d=c[a]||{},u=l[a]||{},p="config"===r?{...d,...u}:{...u,...d};try{let t="config"===r?l:c,o=e(p,t);if(void 0===o)throw Error();return o}catch(r){throw new o.CredentialsProviderError(r.message||`Not found in config files w/ profile [${a}]: ${s(e.toString())}`,{logger:t.logger})}})(a,c),(e=>"function"==typeof e?async()=>await e():()=>Promise.resolve(e))(l)))}],15189)},39866,e=>{"use strict";var r=e.i(48979);e.s(["chain",0,(...e)=>async()=>{let t;if(0===e.length)throw new r.ProviderError("No providers in chain");for(let r of e)try{return await r()}catch(e){if(t=e,e?.tryNextLink)continue;throw e}throw t}])},89073,e=>{"use strict";class r{method;protocol;hostname;port;path;query;headers;username;password;fragment;body;constructor(e){this.method=e.method||"GET",this.hostname=e.hostname||"localhost",this.port=e.port,this.query=e.query||{},this.headers=e.headers||{},this.body=e.body,this.protocol=e.protocol?":"!==e.protocol.slice(-1)?`${e.protocol}:`:e.protocol:"https:",this.path=e.path?"/"!==e.path.charAt(0)?`/${e.path}`:e.path:"/",this.username=e.username,this.password=e.password,this.fragment=e.fragment}static clone(e){var t;let o=new r({...e,headers:{...e.headers}});return o.query&&(o.query=Object.keys(t=o.query).reduce((e,r)=>{let o=t[r];return{...e,[r]:Array.isArray(o)?[...o]:o}},{})),o}static isInstance(e){return!!e&&"method"in e&&"protocol"in e&&"hostname"in e&&"path"in e&&"object"==typeof e.query&&"object"==typeof e.headers}clone(){return r.clone(this)}}e.s(["HttpRequest",()=>r])},2157,(e,r,t)=>{r.exports=e.x("node:fs",()=>require("node:fs"))},46786,(e,r,t)=>{r.exports=e.x("os",()=>require("os"))},65790,49487,e=>{"use strict";var r=e.i(46786),t=e.i(14747);let o={};e.s(["getHomeDir",0,()=>{let{HOME:e,USERPROFILE:s,HOMEPATH:n,HOMEDRIVE:i=`C:${t.sep}`}=process.env;if(e)return e;if(s)return s;if(n)return`${i}${n}`;let a=process&&process.geteuid?`${process.geteuid()}`:"DEFAULT";return o[a]||(o[a]=(0,r.homedir)()),o[a]}],65790);var s=e.i(12714);let n={},i={};e.s(["fileIntercept",0,i,"readFile",0,(e,r)=>void 0!==i[e]?i[e]:((!n[e]||r?.ignoreCache)&&(n[e]=(0,s.readFile)(e,"utf8")),n[e])],49487)},9212,e=>{"use strict";function r(e,r,t){return e.$source||(e.$source={}),e.$source[r]=t,e}e.s(["setCredentialFeature",()=>r])},60400,48979,e=>{"use strict";class r extends Error{name="ProviderError";tryNextLink;constructor(e,t=!0){let o,s=!0;"boolean"==typeof t?(o=void 0,s=t):null!=t&&"object"==typeof t&&(o=t.logger,s=t.tryNextLink??!0),super(e),this.tryNextLink=s,Object.setPrototypeOf(this,r.prototype),o?.debug?.(`@smithy/property-provider ${s?"->":"(!)"} ${e}`)}static from(e,r=!0){return Object.assign(new this(e.message,r),e)}}e.s(["ProviderError",()=>r],48979);class t extends r{name="CredentialsProviderError";constructor(e,r=!0){super(e,r),Object.setPrototypeOf(this,t.prototype)}}e.s(["CredentialsProviderError",()=>t],60400)},12714,(e,r,t)=>{r.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},81355,e=>{"use strict";let r="AWS_PROFILE";e.s(["ENV_PROFILE",0,r,"getProfileName",0,e=>e.profile||process.env[r]||"default"])},96405,3289,e=>{"use strict";var r,t;(t=r||(r={})).PROFILE="profile",t.SSO_SESSION="sso-session",t.SERVICES="services",e.s(["IniSectionType",()=>r],96405),e.s(["CONFIG_PREFIX_SEPARATOR",0,"."],3289)},21334,e=>{"use strict";var r=e.i(96405),t=e.i(3289);e.s(["getConfigData",0,e=>Object.entries(e).filter(([e])=>{let o=e.indexOf(t.CONFIG_PREFIX_SEPARATOR);return -1!==o&&Object.values(r.IniSectionType).includes(e.substring(0,o))}).reduce((e,[o,s])=>{let n=o.indexOf(t.CONFIG_PREFIX_SEPARATOR);return e[o.substring(0,n)===r.IniSectionType.PROFILE?o.substring(n+1):o]=s,e},{...e.default&&{default:e.default}})])},92395,e=>{"use strict";var r=e.i(14747),t=e.i(65790);e.s(["getConfigFilepath",0,()=>process.env.AWS_CONFIG_FILE||(0,r.join)((0,t.getHomeDir)(),".aws","config")])},61487,e=>{"use strict";var r=e.i(14747),t=e.i(65790);e.s(["getCredentialsFilepath",0,()=>process.env.AWS_SHARED_CREDENTIALS_FILE||(0,r.join)((0,t.getHomeDir)(),".aws","credentials")])},7104,e=>{"use strict";var r=e.i(96405),t=e.i(3289);let o=/^([\w-]+)\s(["'])?([\w-@\+\.%:/]+)\2$/,s=["__proto__","profile __proto__"];e.s(["parseIni",0,e=>{let n,i,a={};for(let l of e.split(/\r?\n/)){let e=l.split(/(^|\s)[;#]/)[0].trim();if("["===e[0]&&"]"===e[e.length-1]){n=void 0,i=void 0;let a=e.substring(1,e.length-1),l=o.exec(a);if(l){let[,e,,o]=l;Object.values(r.IniSectionType).includes(e)&&(n=[e,o].join(t.CONFIG_PREFIX_SEPARATOR))}else n=a;if(s.includes(a))throw Error(`Found invalid profile name "${a}"`)}else if(n){let r=e.indexOf("=");if(![0,-1].includes(r)){let[o,s]=[e.substring(0,r).trim(),e.substring(r+1).trim()];if(""===s)i=o;else{i&&l.trimStart()===l&&(i=void 0),a[n]=a[n]||{};let e=i?[i,o].join(t.CONFIG_PREFIX_SEPARATOR):o;a[n][e]=s}}}}return a}])},46277,e=>{"use strict";var r=e.i(14747),t=e.i(21334),o=e.i(92395),s=e.i(61487),n=e.i(65790),i=e.i(7104),a=e.i(49487);let l=()=>({}),c=async(e={})=>{let{filepath:c=(0,s.getCredentialsFilepath)(),configFilepath:d=(0,o.getConfigFilepath)()}=e,u=(0,n.getHomeDir)(),p=c;c.startsWith("~/")&&(p=(0,r.join)(u,c.slice(2)));let f=d;d.startsWith("~/")&&(f=(0,r.join)(u,d.slice(2)));let h=await Promise.all([(0,a.readFile)(f,{ignoreCache:e.ignoreCache}).then(i.parseIni).then(t.getConfigData).catch(l),(0,a.readFile)(p,{ignoreCache:e.ignoreCache}).then(i.parseIni).catch(l)]);return{configFile:h[0],credentialsFile:h[1]}};e.s(["loadSharedConfigFiles",0,c])},60526,(e,r,t)=>{r.exports=e.x("node:os",()=>require("node:os"))},7335,e=>{"use strict";var r=e.i(9212),t=e.i(60400);let o="AWS_ACCESS_KEY_ID",s="AWS_SECRET_ACCESS_KEY",n="AWS_SESSION_TOKEN",i="AWS_CREDENTIAL_EXPIRATION",a="AWS_CREDENTIAL_SCOPE",l="AWS_ACCOUNT_ID";e.s(["ENV_ACCOUNT_ID",0,l,"ENV_CREDENTIAL_SCOPE",0,a,"ENV_EXPIRATION",0,i,"ENV_KEY",0,o,"ENV_SECRET",0,s,"ENV_SESSION",0,n,"fromEnv",0,e=>async()=>{e?.logger?.debug("@aws-sdk/credential-provider-env - fromEnv");let c=process.env[o],d=process.env[s],u=process.env[n],p=process.env[i],f=process.env[a],h=process.env[l];if(c&&d){let e={accessKeyId:c,secretAccessKey:d,...u&&{sessionToken:u},...p&&{expiration:new Date(p)},...f&&{credentialScope:f},...h&&{accountId:h}};return(0,r.setCredentialFeature)(e,"CREDENTIALS_ENV_VARS","g"),e}throw new t.CredentialsProviderError("Unable to find environment variable credentials.",{logger:e?.logger})}])},5389,e=>{e.v(r=>Promise.all(["server/chunks/[externals]_node:async_hooks_b485b2a4._.js"].map(r=>e.l(r))).then(()=>r(78500)))},14277,e=>{e.v(r=>Promise.all(["server/chunks/[root-of-the-server]__e4988941._.js"].map(r=>e.l(r))).then(()=>r(63152)))},93306,e=>{e.v(r=>Promise.all(["server/chunks/[root-of-the-server]__e00fb85f._.js"].map(r=>e.l(r))).then(()=>r(38788)))},14115,e=>{e.v(r=>Promise.all(["server/chunks/[root-of-the-server]__104b2da3._.js"].map(r=>e.l(r))).then(()=>r(26709)))},9193,e=>{e.v(r=>Promise.all(["server/chunks/[root-of-the-server]__41df0777._.js"].map(r=>e.l(r))).then(()=>r(1346)))},85365,e=>{e.v(r=>Promise.all(["server/chunks/[root-of-the-server]__0234f869._.js"].map(r=>e.l(r))).then(()=>r(33073)))},52170,e=>{e.v(r=>Promise.all(["server/chunks/[root-of-the-server]__1cdc76ef._.js"].map(r=>e.l(r))).then(()=>r(23492)))},36806,e=>{e.v(r=>Promise.all(["server/chunks/node_modules_@smithy_core_dist-es_submodules_event-streams_index_73e35402.js"].map(r=>e.l(r))).then(()=>r(30360)))}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__403750fd._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[76535,e=>{"use strict";var r=e.i(46277);let t=async e=>{let t=await (0,r.loadSharedConfigFiles)(e);return((...e)=>{let r={};for(let t of e)for(let[e,i]of Object.entries(t))void 0!==r[e]?Object.assign(r[e],i):r[e]=i;return r})(t.configFile,t.credentialsFile)};e.s(["parseKnownFiles",0,t],76535)},66680,(e,r,t)=>{r.exports=e.x("node:crypto",()=>require("node:crypto"))},1346,e=>{"use strict";e.s([],58014),e.i(58014);var r=e.i(81355),t=e.i(76535),i=e.i(60400),n=e.i(9212),s=e.i(39866);let o=e=>(0,n.setCredentialFeature)(e,"CREDENTIALS_PROFILE_NAMED_PROVIDER","p"),a=async(t,a,c,d,g={},f)=>{c.logger?.debug("@aws-sdk/credential-provider-ini - resolveAssumeRoleCredentials (STS)");let u=a[t],{source_profile:_,region:p}=u;if(!c.roleAssumer){let{getDefaultRoleAssumer:r}=await e.A(43109);c.roleAssumer=r({...c.clientConfig,credentialProviderLogger:c.logger,parentClientConfig:{...d,...c?.parentClientConfig,region:p??c?.parentClientConfig?.region??d?.region}},c.clientPlugins)}if(_&&_ in g)throw new i.CredentialsProviderError(`Detected a cycle attempting to resolve credentials for profile ${(0,r.getProfileName)(c)}. Profiles visited: `+Object.keys(g).join(", "),{logger:c.logger});c.logger?.debug(`@aws-sdk/credential-provider-ini - finding credential resolver using ${_?`source_profile=[${_}]`:`profile=[${t}]`}`);let h=_?f(_,a,c,d,{...g,[_]:!0},l(a[_]??{})):(await ((r,t,n)=>{let a={EcsContainer:async r=>{let{fromHttp:t}=await e.A(93306),{fromContainerMetadata:i}=await e.A(14277);return n?.debug("@aws-sdk/credential-provider-ini - credential_source is EcsContainer"),async()=>(0,s.chain)(t(r??{}),i(r))().then(o)},Ec2InstanceMetadata:async r=>{n?.debug("@aws-sdk/credential-provider-ini - credential_source is Ec2InstanceMetadata");let{fromInstanceMetadata:t}=await e.A(14277);return async()=>t(r)().then(o)},Environment:async r=>{n?.debug("@aws-sdk/credential-provider-ini - credential_source is Environment");let{fromEnv:t}=await e.A(31605);return async()=>t(r)().then(o)}};if(r in a)return a[r];throw new i.CredentialsProviderError(`Unsupported credential source in profile ${t}. Got ${r}, expected EcsContainer or Ec2InstanceMetadata or Environment.`,{logger:n})})(u.credential_source,t,c.logger)(c))();if(l(u))return h.then(e=>(0,n.setCredentialFeature)(e,"CREDENTIALS_PROFILE_SOURCE_PROFILE","o"));{let e={RoleArn:u.role_arn,RoleSessionName:u.role_session_name||`aws-sdk-js-${Date.now()}`,ExternalId:u.external_id,DurationSeconds:parseInt(u.duration_seconds||"3600",10)},{mfa_serial:r}=u;if(r){if(!c.mfaCodeProvider)throw new i.CredentialsProviderError(`Profile ${t} requires multi-factor authentication, but no MFA code callback was provided.`,{logger:c.logger,tryNextLink:!1});e.SerialNumber=r,e.TokenCode=await c.mfaCodeProvider(r)}let s=await h;return c.roleAssumer(s,e).then(e=>(0,n.setCredentialFeature)(e,"CREDENTIALS_PROFILE_SOURCE_PROFILE","o"))}},l=e=>!e.role_arn&&!!e.credential_source;var c=e.i(89073),d=e.i(49487),g=e.i(66680),f=e.i(2157),u=e.i(60526),_=e.i(50227);class p{profileData;init;callerClientConfig;static REFRESH_THRESHOLD=3e5;constructor(e,r,t){this.profileData=e,this.init=r,this.callerClientConfig=t}async loadCredentials(){let e=await this.loadToken();if(!e)throw new i.CredentialsProviderError(`Failed to load a token for session ${this.loginSession}, please re-authenticate using aws login`,{tryNextLink:!1,logger:this.logger});let r=e.accessToken,t=Date.now();return new Date(r.expiresAt).getTime()-t<=p.REFRESH_THRESHOLD?this.refresh(e):{accessKeyId:r.accessKeyId,secretAccessKey:r.secretAccessKey,sessionToken:r.sessionToken,accountId:r.accountId,expiration:new Date(r.expiresAt)}}get logger(){return this.init?.logger}get loginSession(){return this.profileData.login_session}async refresh(r){let t,{SigninClient:n,CreateOAuth2TokenCommand:s}=await e.A(54608),{logger:o,userAgentAppId:a}=this.callerClientConfig??{},l=(t=this.callerClientConfig?.requestHandler,t?.metadata?.handlerProtocol==="h2")?void 0:this.callerClientConfig?.requestHandler,c=new n({credentials:{accessKeyId:"",secretAccessKey:""},region:this.profileData.region??await this.callerClientConfig?.region?.()??process.env.AWS_REGION,requestHandler:l,logger:o,userAgentAppId:a,...this.init?.clientConfig});this.createDPoPInterceptor(c.middlewareStack);let d={tokenInput:{clientId:r.clientId,refreshToken:r.refreshToken,grantType:"refresh_token"}};try{let e=await c.send(new s(d)),{accessKeyId:t,secretAccessKey:n,sessionToken:o}=e.tokenOutput?.accessToken??{},{refreshToken:a,expiresIn:l}=e.tokenOutput??{};if(!t||!n||!o||!a)throw new i.CredentialsProviderError("Token refresh response missing required fields",{logger:this.logger,tryNextLink:!1});let g=new Date(Date.now()+(l??900)*1e3),f={...r,accessToken:{...r.accessToken,accessKeyId:t,secretAccessKey:n,sessionToken:o,expiresAt:g.toISOString()},refreshToken:a};await this.saveToken(f);let u=f.accessToken;return{accessKeyId:u.accessKeyId,secretAccessKey:u.secretAccessKey,sessionToken:u.sessionToken,accountId:u.accountId,expiration:g}}catch(e){if("AccessDeniedException"===e.name){let r;switch(e.error){case"TOKEN_EXPIRED":r="Your session has expired. Please reauthenticate.";break;case"USER_CREDENTIALS_CHANGED":r="Unable to refresh credentials because of a change in your password. Please reauthenticate with your new password.";break;case"INSUFFICIENT_PERMISSIONS":r="Unable to refresh credentials due to insufficient permissions. You may be missing permission for the 'CreateOAuth2Token' action.";break;default:r=`Failed to refresh token: ${String(e)}. Please re-authenticate using \`aws login\``}throw new i.CredentialsProviderError(r,{logger:this.logger,tryNextLink:!1})}throw new i.CredentialsProviderError(`Failed to refresh token: ${String(e)}. Please re-authenticate using aws login`,{logger:this.logger})}}async loadToken(){let e=this.getTokenFilePath();try{let r;try{r=await (0,d.readFile)(e,{ignoreCache:this.init?.ignoreCache})}catch{r=await f.promises.readFile(e,"utf8")}let t=JSON.parse(r),n=["accessToken","clientId","refreshToken","dpopKey"].filter(e=>!t[e]);if(t.accessToken?.accountId||n.push("accountId"),n.length>0)throw new i.CredentialsProviderError(`Token validation failed, missing fields: ${n.join(", ")}`,{logger:this.logger,tryNextLink:!1});return t}catch(r){throw new i.CredentialsProviderError(`Failed to load token from ${e}: ${String(r)}`,{logger:this.logger,tryNextLink:!1})}}async saveToken(e){let r=this.getTokenFilePath(),t=(0,_.dirname)(r);try{await f.promises.mkdir(t,{recursive:!0})}catch(e){}await f.promises.writeFile(r,JSON.stringify(e,null,2),"utf8")}getTokenFilePath(){let e=process.env.AWS_LOGIN_CACHE_DIRECTORY??(0,_.join)((0,u.homedir)(),".aws","login","cache"),r=Buffer.from(this.loginSession,"utf8"),t=(0,g.createHash)("sha256").update(r).digest("hex");return(0,_.join)(e,`${t}.json`)}derToRawSignature(e){let r=2;if(2!==e[2])throw Error("Invalid DER signature");r++;let t=e[r++],i=e.subarray(r,r+t);if(2!==e[r+=t])throw Error("Invalid DER signature");r++;let n=e[r++],s=e.subarray(r,r+n);i=0===i[0]?i.subarray(1):i,s=0===s[0]?s.subarray(1):s;let o=Buffer.concat([Buffer.alloc(32-i.length),i]),a=Buffer.concat([Buffer.alloc(32-s.length),s]);return Buffer.concat([o,a])}createDPoPInterceptor(e){e.add(e=>async r=>{if(c.HttpRequest.isInstance(r.request)){let e=r.request,t=`${e.protocol}//${e.hostname}${e.port?`:${e.port}`:""}${e.path}`,i=await this.generateDpop(e.method,t);e.headers={...e.headers,DPoP:i}}return e(r)},{step:"finalizeRequest",name:"dpopInterceptor",override:!0})}async generateDpop(e="POST",r){let t=await this.loadToken();try{let i=(0,g.createPrivateKey)({key:t.dpopKey,format:"pem",type:"sec1"}),n=(0,g.createPublicKey)(i).export({format:"der",type:"spki"}),s=-1;for(let e=0;e<n.length;e++)if(4===n[e]){s=e;break}let o=n.slice(s+1,s+33),a=n.slice(s+33,s+65),l={alg:"ES256",typ:"dpop+jwt",jwk:{kty:"EC",crv:"P-256",x:o.toString("base64url"),y:a.toString("base64url")}},c={jti:crypto.randomUUID(),htm:e,htu:r,iat:Math.floor(Date.now()/1e3)},d=Buffer.from(JSON.stringify(l)).toString("base64url"),f=Buffer.from(JSON.stringify(c)).toString("base64url"),u=`${d}.${f}`,_=(0,g.sign)("sha256",Buffer.from(u),i),p=this.derToRawSignature(_).toString("base64url");return`${u}.${p}`}catch(e){throw new i.CredentialsProviderError(`Failed to generate Dpop proof: ${e instanceof Error?e.message:String(e)}`,{logger:this.logger,tryNextLink:!1})}}}let h=async(e,s,o)=>{let a,l=await (a={...s,profile:e},async({callerClientConfig:e}={})=>{a?.logger?.debug?.("@aws-sdk/credential-providers - fromLoginCredentials");let s=await (0,t.parseKnownFiles)(a||{}),o=(0,r.getProfileName)({profile:a?.profile??e?.profile}),l=s[o];if(!l?.login_session)throw new i.CredentialsProviderError(`Profile ${o} does not contain login_session.`,{tryNextLink:!0,logger:a?.logger});let c=new p(l,a,e),d=await c.loadCredentials();return(0,n.setCredentialFeature)(d,"CREDENTIALS_LOGIN","AD")})({callerClientConfig:o});return(0,n.setCredentialFeature)(l,"CREDENTIALS_PROFILE_LOGIN","AC")},y=async(r,t)=>e.A(85365).then(({fromProcess:e})=>e({...r,profile:t})().then(e=>(0,n.setCredentialFeature)(e,"CREDENTIALS_PROFILE_PROCESS","v"))),w=async(r,t,i={},s)=>{let{fromSSO:o}=await e.A(14115);return o({profile:r,logger:i.logger,parentClientConfig:i.parentClientConfig,clientConfig:i.clientConfig})({callerClientConfig:s}).then(e=>t.sso_session?(0,n.setCredentialFeature)(e,"CREDENTIALS_PROFILE_SSO","r"):(0,n.setCredentialFeature)(e,"CREDENTIALS_PROFILE_SSO_LEGACY","t"))},C=e=>!!e&&"object"==typeof e&&"string"==typeof e.aws_access_key_id&&"string"==typeof e.aws_secret_access_key&&["undefined","string"].indexOf(typeof e.aws_session_token)>-1&&["undefined","string"].indexOf(typeof e.aws_account_id)>-1,E=async(e,r)=>{r?.logger?.debug("@aws-sdk/credential-provider-ini - resolveStaticCredentials");let t={accessKeyId:e.aws_access_key_id,secretAccessKey:e.aws_secret_access_key,sessionToken:e.aws_session_token,...e.aws_credential_scope&&{credentialScope:e.aws_credential_scope},...e.aws_account_id&&{accountId:e.aws_account_id}};return(0,n.setCredentialFeature)(t,"CREDENTIALS_PROFILE","n")},k=async(r,t,i)=>e.A(52170).then(({fromTokenFile:e})=>e({webIdentityTokenFile:r.web_identity_token_file,roleArn:r.role_arn,roleSessionName:r.role_session_name,roleAssumerWithWebIdentity:t.roleAssumerWithWebIdentity,logger:t.logger,parentClientConfig:t.parentClientConfig})({callerClientConfig:i}).then(e=>(0,n.setCredentialFeature)(e,"CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN","q"))),m=async(e,r,t,n,s={},o=!1)=>{let l=r[e];if(Object.keys(s).length>0&&C(l))return E(l,t);if(o||((e,{profile:r="default",logger:t}={})=>!!e&&"object"==typeof e&&"string"==typeof e.role_arn&&["undefined","string"].indexOf(typeof e.role_session_name)>-1&&["undefined","string"].indexOf(typeof e.external_id)>-1&&["undefined","string"].indexOf(typeof e.mfa_serial)>-1&&(((e,{profile:r,logger:t})=>{let i="string"==typeof e.source_profile&&void 0===e.credential_source;return i&&t?.debug?.(` ${r} isAssumeRoleWithSourceProfile source_profile=${e.source_profile}`),i})(e,{profile:r,logger:t})||((e,{profile:r,logger:t})=>{let i="string"==typeof e.credential_source&&void 0===e.source_profile;return i&&t?.debug?.(` ${r} isCredentialSourceProfile credential_source=${e.credential_source}`),i})(e,{profile:r,logger:t})))(l,{profile:e,logger:t.logger}))return a(e,r,t,n,s,m);if(C(l))return E(l,t);if(l&&"object"==typeof l&&"string"==typeof l.web_identity_token_file&&"string"==typeof l.role_arn&&["undefined","string"].indexOf(typeof l.role_session_name)>-1)return k(l,t,n);if(l&&"object"==typeof l&&"string"==typeof l.credential_process)return y(t,e);if(l&&("string"==typeof l.sso_start_url||"string"==typeof l.sso_account_id||"string"==typeof l.sso_session||"string"==typeof l.sso_region||"string"==typeof l.sso_role_name))return await w(e,l,t,n);if(l&&l.login_session)return h(e,t,n);throw new i.CredentialsProviderError(`Could not resolve credentials using profile: [${e}] in configuration/credentials file(s).`,{logger:t.logger})},I=(e={})=>async({callerClientConfig:i}={})=>{e.logger?.debug("@aws-sdk/credential-provider-ini - fromIni");let n=await (0,t.parseKnownFiles)(e);return m((0,r.getProfileName)({profile:e.profile??i?.profile}),n,e,i)};e.s(["fromIni",0,I],24518),e.i(24518),e.s(["fromIni",0,I],1346)},31605,e=>{e.v(r=>Promise.all(["server/chunks/node_modules_@aws-sdk_credential-provider-env_dist-es_index_55d96139.js"].map(r=>e.l(r))).then(()=>r(97301)))},43109,e=>{e.v(r=>Promise.all(["server/chunks/[root-of-the-server]__3dc5531f._.js","server/chunks/node_modules_@aws-sdk_nested-clients_dist-es_submodules_sts_index_c78619b3.js"].map(r=>e.l(r))).then(()=>r(90222)))},54608,e=>{e.v(r=>Promise.all(["server/chunks/[root-of-the-server]__3dc5531f._.js","server/chunks/node_modules_@aws-sdk_nested-clients_dist-es_submodules_signin_index_6712dec9.js"].map(r=>e.l(r))).then(()=>r(20083)))}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__41df0777._.js.map
@@ -1,4 +1,4 @@
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
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}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
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
@@ -12,4 +12,4 @@ data: ${JSON.stringify({message:"Failed to start file watcher"})}
12
12
 
13
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__b9e7d34c._.js.map
15
+ //# sourceMappingURL=%5Broot-of-the-server%5D__4244617a._.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 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"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},73178,e=>{"use strict";var t=e.i(22734),r=e.i(14747),n=e.i(46676),a=e.i(7367);function s(){return r.default.join((0,a.getSlycodeRoot)(),"store")}function i(){for(let e of[r.default.join((0,a.getSlycodeRoot)(),"build","store-manifest.js"),r.default.join((0,a.getSlycodeRoot)(),"node_modules","@slycode","slycode","build","store-manifest.js")])try{if(t.default.existsSync(e)){let r=t.default.readFileSync(e,"utf-8"),n={};Function("module","exports",r)(n,n);let a=n.exports;if(a?.skills)return{skills:a.skills,actions:a.actions||[],agents:a.agents||[],mcp:a.mcp||[]}}}catch{}return null}function o(e,a){let s=[],i="skill"===a?"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"===a){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,n.parseFrontmatter)(u),p=c?.name||e.name.replace(/\.md$/,"");s.push({name:p,type:a,path:d,frontmatter:c,isValid:(0,n.validateFrontmatter)(c)})}}catch{}return s.sort((e,t)=>e.name.localeCompare(t.name))}function l(){let e=s(),n=i(),a=o(e,"skill"),l=o(e,"agent"),d=function(e){let n=r.default.join(e,"mcp"),a=[];try{if(!t.default.existsSync(n))return a;for(let e of t.default.readdirSync(n,{withFileTypes:!0})){let s;if(!e.isFile()||!e.name.endsWith(".json"))continue;let i=r.default.join(n,e.name),o=t.default.readFileSync(i,"utf-8");try{s=JSON.parse(o)}catch{continue}let l=s.name||e.name.replace(/\.json$/,"");a.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 a}(e);if(n){if(n.skills){let e=new Set(n.skills);a=a.filter(t=>e.has(t.name))}if(n.agents){let e=new Set(n.agents);l=l.filter(t=>e.has(t.name))}if(n.mcp){let e=new Set(n.mcp);d=d.filter(t=>e.has(t.name))}}return{skills:a,agents:l,mcp:d}}function d(){let e=s(),t=i(),r=o(e,"skill"),n=o(e,"agent");if(t){if(t.skills){let e=new Set(t.skills);r=r.filter(t=>e.has(t.name))}if(t.agents){let e=new Set(t.agents);n=n.filter(t=>e.has(t.name))}}return[...r,...n]}e.s(["getStoreAssets",()=>d,"scanStore",()=>l])},48044,e=>{"use strict";var t=e.i(22734),r=e.i(33405),n=e.i(14747),a=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,n=0,a=i){let s=[],l=Math.max(r,1);s.push({name:"Outdated Assets",weight:a.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:a.staleCards,value:c,maxValue:p}),s.push({name:"Unresolved Problems",weight:a.unresolvedProblems,value:0,maxValue:1}),s.push({name:"Missing CLAUDE.md",weight:a.missingClaudeMd,value:+!e.hasClaudeMd,maxValue:1});let f=Math.max(r,1);s.push({name:"Non-compliant Frontmatter",weight:a.nonCompliantFrontmatter,value:n,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")?n.default.dirname(e):e}let u=d(),c=n.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 a=n.default.join(e,"documentation","backlog.json"),s=await h(a);return s?s.map(e=>({...e,projectId:t,projectName:r})):[]}async function y(e,t){let r=n.default.join(e,"documentation","designs.json"),a=await h(r);return a?a.map(e=>({...e,projectId:t})):[]}async function x(e,t){let r=n.default.join(e,"documentation","features.json"),a=await h(r);return a?a.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[n,s,i]=await Promise.all([g(t,e.id,e.name),y(t,e.id),x(t,e.id)]),o=(0,a.scanProjectAssets)(t,e.id),l=(0,a.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:n,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 n=i.filter(e=>e.type===r),s=new Map;for(let n of e.projects){let e=(0,a.scanProviderAssets)(n.path,t);s.set(n.id,e.filter(e=>e.type===r))}let o=(0,a.buildStoreAssetMatrix)(n,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 n of r.cells)n.projectId===e.id&&"outdated"===n.status&&t++;e.healthScore=function(e,t,r=0,n){if(!t)return o(e,0,0,0,void 0);let a=[...t.skills,...t.agents];return o(e,r,a.length,a.filter(e=>!e.isValid).length,void 0)}(e,e.assets,t)}let m=0,g=0;for(let e of r){if(!e.accessible)continue;let t=n.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(),n={};for(let e of t.sessions||[])if(e.isActive){let t=e.name.split(":")[0];n[t]=(n[t]||0)+1}for(let e of r)e.activeSessions=n[e.id]??0}}catch{}let w=d();return{projects:r,totalBacklogItems:m,activeItems:g,totalOutdatedAssets:c,totalUncommitted:y,lastRefresh:new Date().toISOString(),slycodeRoot:w,projectsDir:n.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 n=(0,e.i(7367).getSlycodeRoot)(),a=r.default.join(n,"documentation","events.json");function s(){try{if(!t.default.existsSync(a))return[];let e=t.default.readFileSync(a,"utf-8"),r=JSON.parse(e);return Array.isArray(r)?r:[]}catch{return[]}}function i(e){let n,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),n=r.default.dirname(a),t.default.existsSync(n)||t.default.mkdirSync(n,{recursive:!0}),t.default.writeFileSync(a,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])},3089,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),a=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(22734),w=e.i(14747),S=e.i(73178),R=e.i(46676),j=e.i(7367),E=e.i(48044),k=e.i(1365);async function b(){try{let e=(0,S.scanStore)();return x.NextResponse.json(e)}catch(e){return console.error("Store scan failed:",e),x.NextResponse.json({error:"Failed to scan store",details:String(e)},{status:500})}}async function C(e){try{let{projectPath:t,provider:r,assetType:n,assetName:a,sourceProjectId:s,skillMainOnly:i}=await e.json();if(!r||!n||!a)return x.NextResponse.json({error:"provider, assetType, and assetName are required"},{status:400});let o=t;if(!o&&s){let e=(await (0,E.loadRegistry)()).projects.find(e=>e.id===s);e&&(o=e.path)}if(!o)return x.NextResponse.json({error:"Either projectPath or sourceProjectId is required"},{status:400});(0,R.importAssetToStore)(o,r,n,a,{skillMainOnly:i??!0}),(0,k.appendEvent)({type:"skill_imported",project:s||"unknown",detail:`Imported ${n} '${a}' to store`,timestamp:new Date().toISOString()});let l=(0,S.scanStore)();return x.NextResponse.json({success:!0,storeData:l})}catch(e){return console.error("Store import failed:",e),x.NextResponse.json({error:"Failed to import to store",details:String(e)},{status:500})}}async function A(e){try{let{assetType:t,assetName:r}=await e.json();if(!t||!r)return x.NextResponse.json({error:"assetType and assetName are required"},{status:400});let n=(0,j.getSlycodeRoot)(),a="skill"===t?"skills":"agents";if("skill"===t){let e=w.default.join(n,"store",a,r);v.default.existsSync(e)&&v.default.rmSync(e,{recursive:!0,force:!0})}else{let e=w.default.join(n,"store",a,`${r}.md`);v.default.existsSync(e)&&v.default.unlinkSync(e)}(0,k.appendEvent)({type:"skill_removed",project:"store",detail:`Deleted ${t} '${r}' from store`,timestamp:new Date().toISOString()});let s=(0,S.scanStore)();return x.NextResponse.json({success:!0,storeData:s})}catch(e){return console.error("Store delete failed:",e),x.NextResponse.json({error:"Failed to delete from store",details:String(e)},{status:500})}}e.s(["DELETE",()=>A,"GET",()=>b,"POST",()=>C,"dynamic",0,"force-dynamic"],1972);var O=e.i(1972);let N=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/cli-assets/store/route",pathname:"/api/cli-assets/store",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-assets/store/route.ts",nextConfigOutput:"standalone",userland:O}),{workAsyncStorage:D,workUnitAsyncStorage:P,serverHooks:T}=N;function _(){return(0,n.patchFetch)({workAsyncStorage:D,workUnitAsyncStorage:P})}async function F(e,t,n){N.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let x="/api/cli-assets/store/route";x=x.replace(/\/index$/,"")||"/";let v=await N.prepare(e,t,{srcPage:x,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:w,params:S,nextConfig:R,parsedUrl:j,isDraftMode:E,prerenderManifest:k,routerServerContext:b,isOnDemandRevalidate:C,revalidateOnlyGenerated:A,resolvedPathname:O,clientReferenceManifest:D,serverActionsManifest:P}=v,T=(0,o.normalizeAppPath)(x),_=!!(k.dynamicRoutes[T]||k.routes[O]),F=async()=>((null==b?void 0:b.render404)?await b.render404(e,t,j,!1):t.end("This page could not be found"),null);if(_&&!E){let e=!!k.routes[O],t=k.dynamicRoutes[T];if(t&&!1===t.fallback&&!e){if(R.experimental.adapterPath)return await F();throw new g.NoFallbackError}}let M=null;!_||N.isDev||E||(M="/index"===(M=O)?"/":M);let q=!0===N.isDev||!_,U=_&&!q;P&&D&&(0,i.setManifestsSingleton)({page:x,clientReferenceManifest:D,serverActionsManifest:P});let I=e.method||"GET",H=(0,s.getTracer)(),$=H.getActiveScopeSpan(),L={params:S,prerenderManifest:k,renderOpts:{experimental:{authInterrupts:!!R.experimental.authInterrupts},cacheComponents:!!R.cacheComponents,supportsDynamicResponse:q,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:R.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>N.onRequestError(e,t,n,a,b)},sharedContext:{buildId:w}},V=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),B=d.NextRequestAdapter.fromNodeNextRequest(V,(0,d.signalFromNodeResponse)(t));try{let i=async e=>N.handle(B,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 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} ${x}`)}),o=!!(0,a.getRequestMeta)(e,"minimalMode"),l=async a=>{var s,l;let d=async({previousCacheEntry:r})=>{try{if(!o&&C&&A&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await i(a);e.fetchMetrics=L.renderOpts.fetchMetrics;let l=L.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let d=L.renderOpts.collectedTags;if(!_)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,n=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:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await N.onRequestError(e,t,{routerKind:"App Router",routePath:x,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:C})},!1,b),t}},u=await N.handleResponse({req:e,nextConfig:R,cacheKey:M,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:k,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:A,responseGenerator:d,waitUntil:n.waitUntil,isMinimalMode:o});if(!_)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",C?"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&&_||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:`${I} ${x}`,kind:s.SpanKind.SERVER,attributes:{"http.method":I,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await N.onRequestError(e,t,{routerKind:"App Router",routePath:T,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:C})},!1,b),_)throw t;return await (0,p.sendResponse)(V,K,new Response(null,{status:500})),null}}e.s(["handler",()=>F,"patchFetch",()=>_,"routeModule",()=>N,"serverHooks",()=>T,"workAsyncStorage",()=>D,"workUnitAsyncStorage",()=>P],3089)}];
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])},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},73178,e=>{"use strict";var t=e.i(22734),r=e.i(14747),n=e.i(46676),a=e.i(7367);function s(){return r.default.join((0,a.getSlycodeRoot)(),"store")}function i(){for(let e of[r.default.join((0,a.getSlycodeRoot)(),"build","store-manifest.js"),r.default.join((0,a.getSlycodeRoot)(),"node_modules","@slycode","slycode","build","store-manifest.js")])try{if(t.default.existsSync(e)){let r=t.default.readFileSync(e,"utf-8"),n={};Function("module","exports",r)(n,n);let a=n.exports;if(a?.skills)return{skills:a.skills,actions:a.actions||[],agents:a.agents||[],mcp:a.mcp||[]}}}catch{}return null}function o(e,a){let s=[],i="skill"===a?"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"===a){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,n.parseFrontmatter)(u),p=c?.name||e.name.replace(/\.md$/,"");s.push({name:p,type:a,path:d,frontmatter:c,isValid:(0,n.validateFrontmatter)(c)})}}catch{}return s.sort((e,t)=>e.name.localeCompare(t.name))}function l(){let e=s(),n=i(),a=o(e,"skill"),l=o(e,"agent"),d=function(e){let n=r.default.join(e,"mcp"),a=[];try{if(!t.default.existsSync(n))return a;for(let e of t.default.readdirSync(n,{withFileTypes:!0})){let s;if(!e.isFile()||!e.name.endsWith(".json"))continue;let i=r.default.join(n,e.name),o=t.default.readFileSync(i,"utf-8");try{s=JSON.parse(o)}catch{continue}let l=s.name||e.name.replace(/\.json$/,"");a.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 a}(e);if(n){if(n.skills){let e=new Set(n.skills);a=a.filter(t=>e.has(t.name))}if(n.agents){let e=new Set(n.agents);l=l.filter(t=>e.has(t.name))}if(n.mcp){let e=new Set(n.mcp);d=d.filter(t=>e.has(t.name))}}return{skills:a,agents:l,mcp:d}}function d(){let e=s(),t=i(),r=o(e,"skill"),n=o(e,"agent");if(t){if(t.skills){let e=new Set(t.skills);r=r.filter(t=>e.has(t.name))}if(t.agents){let e=new Set(t.agents);n=n.filter(t=>e.has(t.name))}}return[...r,...n]}e.s(["getStoreAssets",()=>d,"scanStore",()=>l])},48044,e=>{"use strict";var t=e.i(22734),r=e.i(33405),n=e.i(14747),a=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,n=0,a=i){let s=[],l=Math.max(r,1);s.push({name:"Outdated Assets",weight:a.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:a.staleCards,value:c,maxValue:p}),s.push({name:"Unresolved Problems",weight:a.unresolvedProblems,value:0,maxValue:1}),s.push({name:"Missing CLAUDE.md",weight:a.missingClaudeMd,value:+!e.hasClaudeMd,maxValue:1});let f=Math.max(r,1);s.push({name:"Non-compliant Frontmatter",weight:a.nonCompliantFrontmatter,value:n,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")?n.default.dirname(e):e}let u=d(),c=n.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 a=n.default.join(e,"documentation","backlog.json"),s=await h(a);return s?s.map(e=>({...e,projectId:t,projectName:r})):[]}async function y(e,t){let r=n.default.join(e,"documentation","designs.json"),a=await h(r);return a?a.map(e=>({...e,projectId:t})):[]}async function x(e,t){let r=n.default.join(e,"documentation","features.json"),a=await h(r);return a?a.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[n,s,i]=await Promise.all([g(t,e.id,e.name),y(t,e.id),x(t,e.id)]),o=(0,a.scanProjectAssets)(t,e.id),l=(0,a.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:n,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 n=i.filter(e=>e.type===r),s=new Map;for(let n of e.projects){let e=(0,a.scanProviderAssets)(n.path,t);s.set(n.id,e.filter(e=>e.type===r))}let o=(0,a.buildStoreAssetMatrix)(n,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 n of r.cells)n.projectId===e.id&&"outdated"===n.status&&t++;e.healthScore=function(e,t,r=0,n){if(!t)return o(e,0,0,0,void 0);let a=[...t.skills,...t.agents];return o(e,r,a.length,a.filter(e=>!e.isValid).length,void 0)}(e,e.assets,t)}let m=0,g=0;for(let e of r){if(!e.accessible)continue;let t=n.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(),n={};for(let e of t.sessions||[])if(e.isActive){let t=e.name.split(":")[0];n[t]=(n[t]||0)+1}for(let e of r)e.activeSessions=n[e.id]??0}}catch{}let w=d();return{projects:r,totalBacklogItems:m,activeItems:g,totalOutdatedAssets:c,totalUncommitted:y,lastRefresh:new Date().toISOString(),slycodeRoot:w,projectsDir:n.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 n=(0,e.i(7367).getSlycodeRoot)(),a=r.default.join(n,"documentation","events.json");function s(){try{if(!t.default.existsSync(a))return[];let e=t.default.readFileSync(a,"utf-8"),r=JSON.parse(e);return Array.isArray(r)?r:[]}catch{return[]}}function i(e){let n,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),n=r.default.dirname(a),t.default.existsSync(n)||t.default.mkdirSync(n,{recursive:!0}),t.default.writeFileSync(a,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])},3089,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),a=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(22734),w=e.i(14747),S=e.i(73178),R=e.i(46676),j=e.i(7367),E=e.i(48044),k=e.i(1365);async function b(){try{let e=(0,S.scanStore)();return x.NextResponse.json(e)}catch(e){return console.error("Store scan failed:",e),x.NextResponse.json({error:"Failed to scan store",details:String(e)},{status:500})}}async function C(e){try{let{projectPath:t,provider:r,assetType:n,assetName:a,sourceProjectId:s,skillMainOnly:i}=await e.json();if(!r||!n||!a)return x.NextResponse.json({error:"provider, assetType, and assetName are required"},{status:400});let o=t;if(!o&&s){let e=(await (0,E.loadRegistry)()).projects.find(e=>e.id===s);e&&(o=e.path)}if(!o)return x.NextResponse.json({error:"Either projectPath or sourceProjectId is required"},{status:400});(0,R.importAssetToStore)(o,r,n,a,{skillMainOnly:i??!0}),(0,k.appendEvent)({type:"skill_imported",project:s||"unknown",detail:`Imported ${n} '${a}' to store`,timestamp:new Date().toISOString()});let l=(0,S.scanStore)();return x.NextResponse.json({success:!0,storeData:l})}catch(e){return console.error("Store import failed:",e),x.NextResponse.json({error:"Failed to import to store",details:String(e)},{status:500})}}async function A(e){try{let{assetType:t,assetName:r}=await e.json();if(!t||!r)return x.NextResponse.json({error:"assetType and assetName are required"},{status:400});let n=(0,j.getSlycodeRoot)(),a="skill"===t?"skills":"agents";if("skill"===t){let e=w.default.join(n,"store",a,r);v.default.existsSync(e)&&v.default.rmSync(e,{recursive:!0,force:!0})}else{let e=w.default.join(n,"store",a,`${r}.md`);v.default.existsSync(e)&&v.default.unlinkSync(e)}(0,k.appendEvent)({type:"skill_removed",project:"store",detail:`Deleted ${t} '${r}' from store`,timestamp:new Date().toISOString()});let s=(0,S.scanStore)();return x.NextResponse.json({success:!0,storeData:s})}catch(e){return console.error("Store delete failed:",e),x.NextResponse.json({error:"Failed to delete from store",details:String(e)},{status:500})}}e.s(["DELETE",()=>A,"GET",()=>b,"POST",()=>C,"dynamic",0,"force-dynamic"],1972);var O=e.i(1972);let N=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/cli-assets/store/route",pathname:"/api/cli-assets/store",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-assets/store/route.ts",nextConfigOutput:"standalone",userland:O}),{workAsyncStorage:D,workUnitAsyncStorage:P,serverHooks:T}=N;function _(){return(0,n.patchFetch)({workAsyncStorage:D,workUnitAsyncStorage:P})}async function F(e,t,n){N.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let x="/api/cli-assets/store/route";x=x.replace(/\/index$/,"")||"/";let v=await N.prepare(e,t,{srcPage:x,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:w,params:S,nextConfig:R,parsedUrl:j,isDraftMode:E,prerenderManifest:k,routerServerContext:b,isOnDemandRevalidate:C,revalidateOnlyGenerated:A,resolvedPathname:O,clientReferenceManifest:D,serverActionsManifest:P}=v,T=(0,o.normalizeAppPath)(x),_=!!(k.dynamicRoutes[T]||k.routes[O]),F=async()=>((null==b?void 0:b.render404)?await b.render404(e,t,j,!1):t.end("This page could not be found"),null);if(_&&!E){let e=!!k.routes[O],t=k.dynamicRoutes[T];if(t&&!1===t.fallback&&!e){if(R.experimental.adapterPath)return await F();throw new g.NoFallbackError}}let M=null;!_||N.isDev||E||(M="/index"===(M=O)?"/":M);let q=!0===N.isDev||!_,U=_&&!q;P&&D&&(0,i.setManifestsSingleton)({page:x,clientReferenceManifest:D,serverActionsManifest:P});let I=e.method||"GET",H=(0,s.getTracer)(),$=H.getActiveScopeSpan(),L={params:S,prerenderManifest:k,renderOpts:{experimental:{authInterrupts:!!R.experimental.authInterrupts},cacheComponents:!!R.cacheComponents,supportsDynamicResponse:q,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:R.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>N.onRequestError(e,t,n,a,b)},sharedContext:{buildId:w}},V=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),B=d.NextRequestAdapter.fromNodeNextRequest(V,(0,d.signalFromNodeResponse)(t));try{let i=async e=>N.handle(B,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 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} ${x}`)}),o=!!(0,a.getRequestMeta)(e,"minimalMode"),l=async a=>{var s,l;let d=async({previousCacheEntry:r})=>{try{if(!o&&C&&A&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await i(a);e.fetchMetrics=L.renderOpts.fetchMetrics;let l=L.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let d=L.renderOpts.collectedTags;if(!_)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,n=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:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await N.onRequestError(e,t,{routerKind:"App Router",routePath:x,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:C})},!1,b),t}},u=await N.handleResponse({req:e,nextConfig:R,cacheKey:M,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:k,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:A,responseGenerator:d,waitUntil:n.waitUntil,isMinimalMode:o});if(!_)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",C?"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&&_||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:`${I} ${x}`,kind:s.SpanKind.SERVER,attributes:{"http.method":I,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await N.onRequestError(e,t,{routerKind:"App Router",routePath:T,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:C})},!1,b),_)throw t;return await (0,p.sendResponse)(V,K,new Response(null,{status:500})),null}}e.s(["handler",()=>F,"patchFetch",()=>_,"routeModule",()=>N,"serverHooks",()=>T,"workAsyncStorage",()=>D,"workUnitAsyncStorage",()=>P],3089)}];
2
2
 
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__949bb248._.js.map
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__47dd878e._.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}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)}];
1
+ module.exports=[18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},7367,e=>{"use strict";var t=e.i(14747),r=e.i(22734);function a(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let e=process.cwd();return(console.warn("[paths] SLYCODE_HOME not set in production — falling back to cwd:",e),e.endsWith("/web")||e.endsWith("\\web"))?t.default.dirname(e):e}function n(){let e=a(),n=t.default.join(e,"node_modules","@slycode","slycode","dist");return r.default.existsSync(n)?n:e}function s(){return process.env.BRIDGE_URL?process.env.BRIDGE_URL:"http://127.0.0.1:3004"}e.s(["getBridgeUrl",()=>s,"getPackageDir",()=>n,"getSlycodeRoot",()=>a])},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},73178,e=>{"use strict";var t=e.i(22734),r=e.i(14747),a=e.i(46676),n=e.i(7367);function s(){return r.default.join((0,n.getSlycodeRoot)(),"store")}function i(){for(let e of[r.default.join((0,n.getSlycodeRoot)(),"build","store-manifest.js"),r.default.join((0,n.getSlycodeRoot)(),"node_modules","@slycode","slycode","build","store-manifest.js")])try{if(t.default.existsSync(e)){let r=t.default.readFileSync(e,"utf-8"),a={};Function("module","exports",r)(a,a);let n=a.exports;if(n?.skills)return{skills:n.skills,actions:n.actions||[],agents:n.agents||[],mcp:n.mcp||[]}}}catch{}return null}function o(e,n){let s=[],i="skill"===n?"skills":"agents",o=r.default.join(e,i);try{if(!t.default.existsSync(o))return s;for(let e of t.default.readdirSync(o,{withFileTypes:!0})){let l,d;if("skill"===n){if(!e.isDirectory()||(l=r.default.join(o,e.name,"SKILL.md"),d=r.default.join(i,e.name,"SKILL.md"),!t.default.existsSync(l)))continue}else{if(!e.isFile()||!e.name.endsWith(".md"))continue;l=r.default.join(o,e.name),d=r.default.join(i,e.name)}let u=t.default.readFileSync(l,"utf-8"),c=(0,a.parseFrontmatter)(u),p=c?.name||e.name.replace(/\.md$/,"");s.push({name:p,type:n,path:d,frontmatter:c,isValid:(0,a.validateFrontmatter)(c)})}}catch{}return s.sort((e,t)=>e.name.localeCompare(t.name))}function l(){let e=s(),a=i(),n=o(e,"skill"),l=o(e,"agent"),d=function(e){let a=r.default.join(e,"mcp"),n=[];try{if(!t.default.existsSync(a))return n;for(let e of t.default.readdirSync(a,{withFileTypes:!0})){let s;if(!e.isFile()||!e.name.endsWith(".json"))continue;let i=r.default.join(a,e.name),o=t.default.readFileSync(i,"utf-8");try{s=JSON.parse(o)}catch{continue}let l=s.name||e.name.replace(/\.json$/,"");n.push({name:l,type:"mcp",path:r.default.join("mcp",e.name),frontmatter:{name:l,version:s.version,description:s.description,updated:s.updated},isValid:!!(s.name&&s.command)})}}catch{}return n}(e);if(a){if(a.skills){let e=new Set(a.skills);n=n.filter(t=>e.has(t.name))}if(a.agents){let e=new Set(a.agents);l=l.filter(t=>e.has(t.name))}if(a.mcp){let e=new Set(a.mcp);d=d.filter(t=>e.has(t.name))}}return{skills:n,agents:l,mcp:d}}function d(){let e=s(),t=i(),r=o(e,"skill"),a=o(e,"agent");if(t){if(t.skills){let e=new Set(t.skills);r=r.filter(t=>e.has(t.name))}if(t.agents){let e=new Set(t.agents);a=a.filter(t=>e.has(t.name))}}return[...r,...a]}e.s(["getStoreAssets",()=>d,"scanStore",()=>l])},48044,e=>{"use strict";var t=e.i(22734),r=e.i(33405),a=e.i(14747),n=e.i(46676),s=e.i(73178);let i={outdatedAssets:.3,staleCards:.15,unresolvedProblems:.25,missingClaudeMd:.1,nonCompliantFrontmatter:.2};function o(e,t=0,r=0,a=0,n=i){let s=[],l=Math.max(r,1);s.push({name:"Outdated Assets",weight:n.outdatedAssets,value:t,maxValue:l});let d=Date.now(),u=[...e.backlog],c=u.filter(e=>(d-new Date(e.created_at).getTime())/864e5>14&&"done"!==e.status).length,p=Math.max(u.length,1);s.push({name:"Stale Cards",weight:n.staleCards,value:c,maxValue:p}),s.push({name:"Unresolved Problems",weight:n.unresolvedProblems,value:0,maxValue:1}),s.push({name:"Missing CLAUDE.md",weight:n.missingClaudeMd,value:+!e.hasClaudeMd,maxValue:1});let f=Math.max(r,1);s.push({name:"Non-compliant Frontmatter",weight:n.nonCompliantFrontmatter,value:a,maxValue:f});let m=0;for(let e of s)m+=Math.min(e.maxValue>0?e.value/e.maxValue:0,1)*e.weight;let h=Math.round(Math.max(0,(1-m)*100));return{score:h,level:h>=80?"green":h>=50?"amber":"red",factors:s}}var l=e.i(7367);function d(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let e=process.cwd();return e.endsWith("/web")||e.endsWith("\\web")?a.default.dirname(e):e}let u=d(),c=a.default.join(u,"projects","registry.json");async function p(){try{let e=await t.promises.readFile(c,"utf-8");return JSON.parse(e)}catch(e){throw console.error("Failed to load registry:",e),Error(`Failed to load registry from ${c}`)}}async function f(e){let r=JSON.stringify(e,null,2)+"\n";await t.promises.writeFile(c,r,"utf-8")}async function m(e){try{return(await t.promises.stat(e)).isDirectory()}catch{return!1}}async function h(e){try{let r=await t.promises.readFile(e,"utf-8");return JSON.parse(r)}catch{return null}}async function g(e,t,r){let n=a.default.join(e,"documentation","backlog.json"),s=await h(n);return s?s.map(e=>({...e,projectId:t,projectName:r})):[]}async function 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
- //# sourceMappingURL=%5Broot-of-the-server%5D__bf286c26._.js.map
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__5e08b942._.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}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)},98128,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(22734),w=e.i(14747),R=e.i(41563),j=e.i(48044);async function S(e){try{let{searchParams:t}=new URL(e.url),r=t.get("provider"),a=t.get("assetType"),n=t.get("assetName"),s=t.get("sourceProjectId");if(!r||!a||!n||!s)return x.NextResponse.json({error:"provider, assetType, assetName, and sourceProjectId are required"},{status:400});let i=(await (0,j.loadRegistry)()).projects.find(e=>e.id===s);if(!i)return x.NextResponse.json({error:"Project not found"},{status:404});let o=(0,R.getProviderAssetFilePath)(i.path,r,a,n);if(!o||!v.default.existsSync(o))return x.NextResponse.json({error:"Asset not found"},{status:404});if(!("skill"===a&&v.default.statSync(o).isDirectory()))return x.NextResponse.json({files:[w.default.basename(o)],isDirectory:!1});{let e=function e(t,r=""){let a=[];if(!v.default.existsSync(t))return a;for(let n of v.default.readdirSync(t,{withFileTypes:!0})){let s=r?`${r}/${n.name}`:n.name;n.isDirectory()?a.push(...e(w.default.join(t,n.name),s)):a.push(s)}return a}(o);return x.NextResponse.json({files:e,isDirectory:!0})}}catch(e){return console.error("Store preview failed:",e),x.NextResponse.json({error:"Failed to preview",details:String(e)},{status:500})}}e.s(["GET",()=>S,"dynamic",0,"force-dynamic"],9578);var E=e.i(9578);let b=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/cli-assets/store/preview/route",pathname:"/api/cli-assets/store/preview",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-assets/store/preview/route.ts",nextConfigOutput:"standalone",userland:E}),{workAsyncStorage:C,workUnitAsyncStorage:k,serverHooks:A}=b;function P(){return(0,a.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:k})}async function O(e,t,a){b.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let x="/api/cli-assets/store/preview/route";x=x.replace(/\/index$/,"")||"/";let v=await b.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:j,parsedUrl:S,isDraftMode:E,prerenderManifest:C,routerServerContext:k,isOnDemandRevalidate:A,revalidateOnlyGenerated:P,resolvedPathname:O,clientReferenceManifest:N,serverActionsManifest:D}=v,_=(0,o.normalizeAppPath)(x),T=!!(C.dynamicRoutes[_]||C.routes[O]),F=async()=>((null==k?void 0:k.render404)?await k.render404(e,t,S,!1):t.end("This page could not be found"),null);if(T&&!E){let e=!!C.routes[O],t=C.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(j.experimental.adapterPath)return await F();throw new g.NoFallbackError}}let M=null;!T||b.isDev||E||(M="/index"===(M=O)?"/":M);let U=!0===b.isDev||!T,q=T&&!U;D&&N&&(0,i.setManifestsSingleton)({page:x,clientReferenceManifest:N,serverActionsManifest:D});let I=e.method||"GET",H=(0,s.getTracer)(),L=H.getActiveScopeSpan(),$={params:R,prerenderManifest:C,renderOpts:{experimental:{authInterrupts:!!j.experimental.authInterrupts},cacheComponents:!!j.cacheComponents,supportsDynamicResponse:U,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:j.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>b.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=>b.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&&P&&!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(!T)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 b.onRequestError(e,t,{routerKind:"App Router",routePath:x,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:A})},!1,k),t}},u=await b.handleResponse({req:e,nextConfig:j,cacheKey:M,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:P,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};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 b.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:A})},!1,k),T)throw t;return await (0,p.sendResponse)(V,K,new Response(null,{status:500})),null}}e.s(["handler",()=>O,"patchFetch",()=>P,"routeModule",()=>b,"serverHooks",()=>A,"workAsyncStorage",()=>C,"workUnitAsyncStorage",()=>k],98128)}];
1
+ module.exports=[18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},7367,e=>{"use strict";var t=e.i(14747),r=e.i(22734);function a(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let e=process.cwd();return(console.warn("[paths] SLYCODE_HOME not set in production — falling back to cwd:",e),e.endsWith("/web")||e.endsWith("\\web"))?t.default.dirname(e):e}function n(){let e=a(),n=t.default.join(e,"node_modules","@slycode","slycode","dist");return r.default.existsSync(n)?n:e}function s(){return process.env.BRIDGE_URL?process.env.BRIDGE_URL:"http://127.0.0.1:3004"}e.s(["getBridgeUrl",()=>s,"getPackageDir",()=>n,"getSlycodeRoot",()=>a])},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},73178,e=>{"use strict";var t=e.i(22734),r=e.i(14747),a=e.i(46676),n=e.i(7367);function s(){return r.default.join((0,n.getSlycodeRoot)(),"store")}function i(){for(let e of[r.default.join((0,n.getSlycodeRoot)(),"build","store-manifest.js"),r.default.join((0,n.getSlycodeRoot)(),"node_modules","@slycode","slycode","build","store-manifest.js")])try{if(t.default.existsSync(e)){let r=t.default.readFileSync(e,"utf-8"),a={};Function("module","exports",r)(a,a);let n=a.exports;if(n?.skills)return{skills:n.skills,actions:n.actions||[],agents:n.agents||[],mcp:n.mcp||[]}}}catch{}return null}function o(e,n){let s=[],i="skill"===n?"skills":"agents",o=r.default.join(e,i);try{if(!t.default.existsSync(o))return s;for(let e of t.default.readdirSync(o,{withFileTypes:!0})){let l,d;if("skill"===n){if(!e.isDirectory()||(l=r.default.join(o,e.name,"SKILL.md"),d=r.default.join(i,e.name,"SKILL.md"),!t.default.existsSync(l)))continue}else{if(!e.isFile()||!e.name.endsWith(".md"))continue;l=r.default.join(o,e.name),d=r.default.join(i,e.name)}let u=t.default.readFileSync(l,"utf-8"),c=(0,a.parseFrontmatter)(u),p=c?.name||e.name.replace(/\.md$/,"");s.push({name:p,type:n,path:d,frontmatter:c,isValid:(0,a.validateFrontmatter)(c)})}}catch{}return s.sort((e,t)=>e.name.localeCompare(t.name))}function l(){let e=s(),a=i(),n=o(e,"skill"),l=o(e,"agent"),d=function(e){let a=r.default.join(e,"mcp"),n=[];try{if(!t.default.existsSync(a))return n;for(let e of t.default.readdirSync(a,{withFileTypes:!0})){let s;if(!e.isFile()||!e.name.endsWith(".json"))continue;let i=r.default.join(a,e.name),o=t.default.readFileSync(i,"utf-8");try{s=JSON.parse(o)}catch{continue}let l=s.name||e.name.replace(/\.json$/,"");n.push({name:l,type:"mcp",path:r.default.join("mcp",e.name),frontmatter:{name:l,version:s.version,description:s.description,updated:s.updated},isValid:!!(s.name&&s.command)})}}catch{}return n}(e);if(a){if(a.skills){let e=new Set(a.skills);n=n.filter(t=>e.has(t.name))}if(a.agents){let e=new Set(a.agents);l=l.filter(t=>e.has(t.name))}if(a.mcp){let e=new Set(a.mcp);d=d.filter(t=>e.has(t.name))}}return{skills:n,agents:l,mcp:d}}function d(){let e=s(),t=i(),r=o(e,"skill"),a=o(e,"agent");if(t){if(t.skills){let e=new Set(t.skills);r=r.filter(t=>e.has(t.name))}if(t.agents){let e=new Set(t.agents);a=a.filter(t=>e.has(t.name))}}return[...r,...a]}e.s(["getStoreAssets",()=>d,"scanStore",()=>l])},48044,e=>{"use strict";var t=e.i(22734),r=e.i(33405),a=e.i(14747),n=e.i(46676),s=e.i(73178);let i={outdatedAssets:.3,staleCards:.15,unresolvedProblems:.25,missingClaudeMd:.1,nonCompliantFrontmatter:.2};function o(e,t=0,r=0,a=0,n=i){let s=[],l=Math.max(r,1);s.push({name:"Outdated Assets",weight:n.outdatedAssets,value:t,maxValue:l});let d=Date.now(),u=[...e.backlog],c=u.filter(e=>(d-new Date(e.created_at).getTime())/864e5>14&&"done"!==e.status).length,p=Math.max(u.length,1);s.push({name:"Stale Cards",weight:n.staleCards,value:c,maxValue:p}),s.push({name:"Unresolved Problems",weight:n.unresolvedProblems,value:0,maxValue:1}),s.push({name:"Missing CLAUDE.md",weight:n.missingClaudeMd,value:+!e.hasClaudeMd,maxValue:1});let f=Math.max(r,1);s.push({name:"Non-compliant Frontmatter",weight:n.nonCompliantFrontmatter,value:a,maxValue:f});let m=0;for(let e of s)m+=Math.min(e.maxValue>0?e.value/e.maxValue:0,1)*e.weight;let h=Math.round(Math.max(0,(1-m)*100));return{score:h,level:h>=80?"green":h>=50?"amber":"red",factors:s}}var l=e.i(7367);function d(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let e=process.cwd();return e.endsWith("/web")||e.endsWith("\\web")?a.default.dirname(e):e}let u=d(),c=a.default.join(u,"projects","registry.json");async function p(){try{let e=await t.promises.readFile(c,"utf-8");return JSON.parse(e)}catch(e){throw console.error("Failed to load registry:",e),Error(`Failed to load registry from ${c}`)}}async function f(e){let r=JSON.stringify(e,null,2)+"\n";await t.promises.writeFile(c,r,"utf-8")}async function m(e){try{return(await t.promises.stat(e)).isDirectory()}catch{return!1}}async function h(e){try{let r=await t.promises.readFile(e,"utf-8");return JSON.parse(r)}catch{return null}}async function g(e,t,r){let n=a.default.join(e,"documentation","backlog.json"),s=await h(n);return s?s.map(e=>({...e,projectId:t,projectName:r})):[]}async function 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)},98128,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(22734),w=e.i(14747),R=e.i(41563),j=e.i(48044);async function S(e){try{let{searchParams:t}=new URL(e.url),r=t.get("provider"),a=t.get("assetType"),n=t.get("assetName"),s=t.get("sourceProjectId");if(!r||!a||!n||!s)return x.NextResponse.json({error:"provider, assetType, assetName, and sourceProjectId are required"},{status:400});let i=(await (0,j.loadRegistry)()).projects.find(e=>e.id===s);if(!i)return x.NextResponse.json({error:"Project not found"},{status:404});let o=(0,R.getProviderAssetFilePath)(i.path,r,a,n);if(!o||!v.default.existsSync(o))return x.NextResponse.json({error:"Asset not found"},{status:404});if(!("skill"===a&&v.default.statSync(o).isDirectory()))return x.NextResponse.json({files:[w.default.basename(o)],isDirectory:!1});{let e=function e(t,r=""){let a=[];if(!v.default.existsSync(t))return a;for(let n of v.default.readdirSync(t,{withFileTypes:!0})){let s=r?`${r}/${n.name}`:n.name;n.isDirectory()?a.push(...e(w.default.join(t,n.name),s)):a.push(s)}return a}(o);return x.NextResponse.json({files:e,isDirectory:!0})}}catch(e){return console.error("Store preview failed:",e),x.NextResponse.json({error:"Failed to preview",details:String(e)},{status:500})}}e.s(["GET",()=>S,"dynamic",0,"force-dynamic"],9578);var E=e.i(9578);let b=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/cli-assets/store/preview/route",pathname:"/api/cli-assets/store/preview",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-assets/store/preview/route.ts",nextConfigOutput:"standalone",userland:E}),{workAsyncStorage:C,workUnitAsyncStorage:k,serverHooks:A}=b;function P(){return(0,a.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:k})}async function O(e,t,a){b.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let x="/api/cli-assets/store/preview/route";x=x.replace(/\/index$/,"")||"/";let v=await b.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:j,parsedUrl:S,isDraftMode:E,prerenderManifest:C,routerServerContext:k,isOnDemandRevalidate:A,revalidateOnlyGenerated:P,resolvedPathname:O,clientReferenceManifest:N,serverActionsManifest:D}=v,_=(0,o.normalizeAppPath)(x),T=!!(C.dynamicRoutes[_]||C.routes[O]),F=async()=>((null==k?void 0:k.render404)?await k.render404(e,t,S,!1):t.end("This page could not be found"),null);if(T&&!E){let e=!!C.routes[O],t=C.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(j.experimental.adapterPath)return await F();throw new g.NoFallbackError}}let M=null;!T||b.isDev||E||(M="/index"===(M=O)?"/":M);let U=!0===b.isDev||!T,q=T&&!U;D&&N&&(0,i.setManifestsSingleton)({page:x,clientReferenceManifest:N,serverActionsManifest:D});let I=e.method||"GET",H=(0,s.getTracer)(),L=H.getActiveScopeSpan(),$={params:R,prerenderManifest:C,renderOpts:{experimental:{authInterrupts:!!j.experimental.authInterrupts},cacheComponents:!!j.cacheComponents,supportsDynamicResponse:U,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:j.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>b.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=>b.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&&P&&!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(!T)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 b.onRequestError(e,t,{routerKind:"App Router",routePath:x,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:A})},!1,k),t}},u=await b.handleResponse({req:e,nextConfig:j,cacheKey:M,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:P,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};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 b.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:A})},!1,k),T)throw t;return await (0,p.sendResponse)(V,K,new Response(null,{status:500})),null}}e.s(["handler",()=>O,"patchFetch",()=>P,"routeModule",()=>b,"serverHooks",()=>A,"workAsyncStorage",()=>C,"workUnitAsyncStorage",()=>k],98128)}];
2
2
 
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__d38c7a96._.js.map
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__71bb3374._.js.map