@slycode/slycode 0.2.20 → 0.2.22

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 (197) hide show
  1. package/dist/bridge/provider-utils.d.ts +10 -0
  2. package/dist/bridge/provider-utils.js +5 -1
  3. package/dist/bridge/provider-utils.js.map +1 -1
  4. package/dist/bridge/pty-handler.js +58 -12
  5. package/dist/bridge/pty-handler.js.map +1 -1
  6. package/dist/bridge/session-manager.js +6 -0
  7. package/dist/bridge/session-manager.js.map +1 -1
  8. package/dist/bridge/types.d.ts +4 -0
  9. package/dist/messaging/bridge-client.d.ts +3 -3
  10. package/dist/messaging/bridge-client.js +6 -4
  11. package/dist/messaging/bridge-client.js.map +1 -1
  12. package/dist/messaging/index.js +117 -26
  13. package/dist/messaging/index.js.map +1 -1
  14. package/dist/messaging/state.d.ts +3 -0
  15. package/dist/messaging/state.js +13 -0
  16. package/dist/messaging/state.js.map +1 -1
  17. package/dist/messaging/stt.d.ts +1 -1
  18. package/dist/messaging/stt.js +41 -9
  19. package/dist/messaging/stt.js.map +1 -1
  20. package/dist/messaging/types.d.ts +3 -0
  21. package/dist/web/.next/BUILD_ID +1 -1
  22. package/dist/web/.next/build-manifest.json +2 -2
  23. package/dist/web/.next/server/app/_global-error.html +2 -2
  24. package/dist/web/.next/server/app/_global-error.rsc +1 -1
  25. package/dist/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  26. package/dist/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  27. package/dist/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  28. package/dist/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  29. package/dist/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  30. package/dist/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  31. package/dist/web/.next/server/app/_not-found.html +1 -1
  32. package/dist/web/.next/server/app/_not-found.rsc +2 -2
  33. package/dist/web/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  34. package/dist/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  35. package/dist/web/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  36. package/dist/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  37. package/dist/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  38. package/dist/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  39. package/dist/web/.next/server/app/api/areas/route.js +1 -1
  40. package/dist/web/.next/server/app/api/areas/route.js.nft.json +1 -1
  41. package/dist/web/.next/server/app/api/bridge/[...path]/route.js +1 -1
  42. package/dist/web/.next/server/app/api/bridge/[...path]/route.js.nft.json +1 -1
  43. package/dist/web/.next/server/app/api/cli-assets/assistant/route.js +1 -1
  44. package/dist/web/.next/server/app/api/cli-assets/assistant/route.js.nft.json +1 -1
  45. package/dist/web/.next/server/app/api/cli-assets/fix/route.js +1 -1
  46. package/dist/web/.next/server/app/api/cli-assets/fix/route.js.nft.json +1 -1
  47. package/dist/web/.next/server/app/api/cli-assets/import/route.js +1 -1
  48. package/dist/web/.next/server/app/api/cli-assets/import/route.js.nft.json +1 -1
  49. package/dist/web/.next/server/app/api/cli-assets/route.js +2 -2
  50. package/dist/web/.next/server/app/api/cli-assets/route.js.nft.json +1 -1
  51. package/dist/web/.next/server/app/api/cli-assets/store/preview/route.js +1 -1
  52. package/dist/web/.next/server/app/api/cli-assets/store/preview/route.js.nft.json +1 -1
  53. package/dist/web/.next/server/app/api/cli-assets/store/route.js +2 -2
  54. package/dist/web/.next/server/app/api/cli-assets/store/route.js.nft.json +1 -1
  55. package/dist/web/.next/server/app/api/cli-assets/sync/route.js +1 -1
  56. package/dist/web/.next/server/app/api/cli-assets/sync/route.js.nft.json +1 -1
  57. package/dist/web/.next/server/app/api/cli-assets/updates/route.js +2 -2
  58. package/dist/web/.next/server/app/api/cli-assets/updates/route.js.nft.json +1 -1
  59. package/dist/web/.next/server/app/api/dashboard/route.js +2 -2
  60. package/dist/web/.next/server/app/api/dashboard/route.js.nft.json +1 -1
  61. package/dist/web/.next/server/app/api/events/route.js +1 -1
  62. package/dist/web/.next/server/app/api/events/route.js.nft.json +1 -1
  63. package/dist/web/.next/server/app/api/file/route.js +1 -1
  64. package/dist/web/.next/server/app/api/file/route.js.nft.json +1 -1
  65. package/dist/web/.next/server/app/api/git-status/route.js +1 -1
  66. package/dist/web/.next/server/app/api/git-status/route.js.nft.json +1 -1
  67. package/dist/web/.next/server/app/api/kanban/route.js +1 -1
  68. package/dist/web/.next/server/app/api/kanban/route.js.nft.json +1 -1
  69. package/dist/web/.next/server/app/api/kanban/stream/route.js +1 -1
  70. package/dist/web/.next/server/app/api/kanban/stream/route.js.nft.json +1 -1
  71. package/dist/web/.next/server/app/api/projects/[id]/route.js +2 -2
  72. package/dist/web/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  73. package/dist/web/.next/server/app/api/projects/analyze/route.js +1 -1
  74. package/dist/web/.next/server/app/api/projects/analyze/route.js.nft.json +1 -1
  75. package/dist/web/.next/server/app/api/projects/reorder/route.js +2 -2
  76. package/dist/web/.next/server/app/api/projects/reorder/route.js.nft.json +1 -1
  77. package/dist/web/.next/server/app/api/projects/route.js +2 -2
  78. package/dist/web/.next/server/app/api/projects/route.js.nft.json +1 -1
  79. package/dist/web/.next/server/app/api/providers/route.js +1 -1
  80. package/dist/web/.next/server/app/api/providers/route.js.nft.json +1 -1
  81. package/dist/web/.next/server/app/api/scheduler/route.js +1 -1
  82. package/dist/web/.next/server/app/api/scheduler/route.js.nft.json +1 -1
  83. package/dist/web/.next/server/app/api/search/route.js +1 -1
  84. package/dist/web/.next/server/app/api/search/route.js.nft.json +1 -1
  85. package/dist/web/.next/server/app/api/settings/route.js +1 -1
  86. package/dist/web/.next/server/app/api/settings/route.js.nft.json +1 -1
  87. package/dist/web/.next/server/app/api/sly-actions/invalidate/route.js +1 -1
  88. package/dist/web/.next/server/app/api/sly-actions/invalidate/route.js.nft.json +1 -1
  89. package/dist/web/.next/server/app/api/sly-actions/route.js +1 -1
  90. package/dist/web/.next/server/app/api/sly-actions/route.js.nft.json +1 -1
  91. package/dist/web/.next/server/app/api/sly-actions/stream/route.js +1 -1
  92. package/dist/web/.next/server/app/api/sly-actions/stream/route.js.nft.json +1 -1
  93. package/dist/web/.next/server/app/api/system-stats/route.js +1 -1
  94. package/dist/web/.next/server/app/api/system-stats/route.js.nft.json +1 -1
  95. package/dist/web/.next/server/app/api/terminal-classes/route.js +1 -1
  96. package/dist/web/.next/server/app/api/terminal-classes/route.js.nft.json +1 -1
  97. package/dist/web/.next/server/app/api/transcribe/route.js +5 -5
  98. package/dist/web/.next/server/app/api/transcribe/route.js.nft.json +1 -1
  99. package/dist/web/.next/server/app/api/version-check/route.js +1 -1
  100. package/dist/web/.next/server/app/api/version-check/route.js.nft.json +1 -1
  101. package/dist/web/.next/server/app/page.js +1 -1
  102. package/dist/web/.next/server/app/page.js.nft.json +1 -1
  103. package/dist/web/.next/server/app/page_client-reference-manifest.js +1 -1
  104. package/dist/web/.next/server/app/project/[id]/page.js +2 -2
  105. package/dist/web/.next/server/app/project/[id]/page.js.nft.json +1 -1
  106. package/dist/web/.next/server/app/project/[id]/page_client-reference-manifest.js +1 -1
  107. package/dist/web/.next/server/chunks/{[externals]__c6831f39._.js → [externals]__78e522ea._.js} +2 -2
  108. package/dist/web/.next/server/chunks/{[root-of-the-server]__1ec21ccc._.js → [root-of-the-server]__029203cd._.js} +3 -3
  109. package/dist/web/.next/server/chunks/{[root-of-the-server]__4297cb97._.js → [root-of-the-server]__0d6d4443._.js} +1 -1
  110. package/dist/web/.next/server/chunks/[root-of-the-server]__172ad0b1._.js +18 -0
  111. package/dist/web/.next/server/chunks/[root-of-the-server]__1c5f4ef9._.js +3 -0
  112. package/dist/web/.next/server/chunks/[root-of-the-server]__1cab11f0._.js +3 -0
  113. package/dist/web/.next/server/chunks/{[root-of-the-server]__0f69c28a._.js → [root-of-the-server]__1eb3f172._.js} +2 -2
  114. package/dist/web/.next/server/chunks/[root-of-the-server]__22cba275._.js +3 -0
  115. package/dist/web/.next/server/chunks/[root-of-the-server]__2543e413._.js +3 -0
  116. package/dist/web/.next/server/chunks/[root-of-the-server]__2c42a835._.js +3 -0
  117. package/dist/web/.next/server/chunks/[root-of-the-server]__2ed0ff47._.js +3 -0
  118. package/dist/web/.next/server/chunks/[root-of-the-server]__35454eea._.js +27 -0
  119. package/dist/web/.next/server/chunks/[root-of-the-server]__35768b56._.js +3 -0
  120. package/dist/web/.next/server/chunks/[root-of-the-server]__3880228a._.js +3 -0
  121. package/dist/web/.next/server/chunks/[root-of-the-server]__42322d88._.js +3 -0
  122. package/dist/web/.next/server/chunks/{[root-of-the-server]__d0f4efec._.js → [root-of-the-server]__5152eeff._.js} +3 -3
  123. package/dist/web/.next/server/chunks/[root-of-the-server]__527c7f57._.js +3 -0
  124. package/dist/web/.next/server/chunks/[root-of-the-server]__5c5dac4b._.js +3 -0
  125. package/dist/web/.next/server/chunks/[root-of-the-server]__5cb130f2._.js +3 -0
  126. package/dist/web/.next/server/chunks/[root-of-the-server]__68927e75._.js +3 -0
  127. package/dist/web/.next/server/chunks/[root-of-the-server]__719517c7._.js +3 -0
  128. package/dist/web/.next/server/chunks/[root-of-the-server]__73cf49c2._.js +3 -0
  129. package/dist/web/.next/server/chunks/{[root-of-the-server]__f5dae2ad._.js → [root-of-the-server]__7af4ab09._.js} +1 -1
  130. package/dist/web/.next/server/chunks/{[root-of-the-server]__4244617a._.js → [root-of-the-server]__7e6860e0._.js} +3 -3
  131. package/dist/web/.next/server/chunks/[root-of-the-server]__88bf5e22._.js +3 -0
  132. package/dist/web/.next/server/chunks/{[root-of-the-server]__f97e93fa._.js → [root-of-the-server]__8b4259cb._.js} +3 -3
  133. package/dist/web/.next/server/chunks/[root-of-the-server]__92f81907._.js +3 -0
  134. package/dist/web/.next/server/chunks/[root-of-the-server]__967603e9._.js +3 -0
  135. package/dist/web/.next/server/chunks/[root-of-the-server]__9e4bd28f._.js +3 -0
  136. package/dist/web/.next/server/chunks/[root-of-the-server]__ba1d2e56._.js +3 -0
  137. package/dist/web/.next/server/chunks/[root-of-the-server]__c942d872._.js +3 -0
  138. package/dist/web/.next/server/chunks/[root-of-the-server]__d7893622._.js +3 -0
  139. package/dist/web/.next/server/chunks/{[root-of-the-server]__3b9d3e43._.js → [root-of-the-server]__d843611b._.js} +6 -6
  140. package/dist/web/.next/server/chunks/[root-of-the-server]__f4d2627f._.js +3 -0
  141. package/dist/web/.next/server/chunks/[root-of-the-server]__f597835d._.js +3 -0
  142. package/dist/web/.next/server/chunks/{[root-of-the-server]__cf14e306._.js → [root-of-the-server]__fe8b9abd._.js} +1 -1
  143. package/dist/web/.next/server/chunks/src_677020aa._.js +1 -1
  144. package/dist/web/.next/server/chunks/ssr/[root-of-the-server]__1f5fc489._.js +1 -1
  145. package/dist/web/.next/server/chunks/ssr/[root-of-the-server]__43d93717._.js +3 -0
  146. package/dist/web/.next/server/chunks/ssr/[root-of-the-server]__90f82e6d._.js +3 -0
  147. package/dist/web/.next/server/chunks/ssr/[root-of-the-server]__bcbe4bf2._.js +1 -1
  148. package/dist/web/.next/server/chunks/ssr/src_components_c4135402._.js +1 -1
  149. package/dist/web/.next/server/chunks/ssr/src_lib_registry_ts_2fc87c9c._.js +1 -1
  150. package/dist/web/.next/server/pages/404.html +1 -1
  151. package/dist/web/.next/server/pages/500.html +2 -2
  152. package/dist/web/.next/static/chunks/18cfbdd7e977bb01.css +1 -0
  153. package/dist/web/.next/static/chunks/{8cb404d087e9f3c7.js → 4049cceee6a49323.js} +1 -1
  154. package/dist/web/.next/static/chunks/8415039c5941cf5c.js +4 -0
  155. package/dist/web/.next/static/chunks/{3d5195b57fc05540.js → a0f5f9cdee8a22c1.js} +2 -2
  156. package/dist/web/src/app/api/projects/analyze/route.ts +12 -2
  157. package/dist/web/src/app/api/projects/route.ts +10 -11
  158. package/dist/web/src/app/api/providers/route.ts +4 -0
  159. package/dist/web/src/components/CardModal.tsx +31 -24
  160. package/dist/web/src/components/ClaudeTerminalPanel.tsx +124 -70
  161. package/dist/web/src/lib/paths.ts +14 -0
  162. package/dist/web/tsconfig.tsbuildinfo +1 -1
  163. package/package.json +2 -2
  164. package/templates/kanban-seed.json +1 -1
  165. package/dist/web/.next/server/chunks/[root-of-the-server]__09aec55a._.js +0 -3
  166. package/dist/web/.next/server/chunks/[root-of-the-server]__12f6cd6f._.js +0 -3
  167. package/dist/web/.next/server/chunks/[root-of-the-server]__15fc9266._.js +0 -18
  168. package/dist/web/.next/server/chunks/[root-of-the-server]__198f01e0._.js +0 -3
  169. package/dist/web/.next/server/chunks/[root-of-the-server]__279e9bf3._.js +0 -3
  170. package/dist/web/.next/server/chunks/[root-of-the-server]__2b639eab._.js +0 -3
  171. package/dist/web/.next/server/chunks/[root-of-the-server]__2d1f0ed9._.js +0 -3
  172. package/dist/web/.next/server/chunks/[root-of-the-server]__3f239285._.js +0 -3
  173. package/dist/web/.next/server/chunks/[root-of-the-server]__47dd878e._.js +0 -3
  174. package/dist/web/.next/server/chunks/[root-of-the-server]__5b8c9374._.js +0 -3
  175. package/dist/web/.next/server/chunks/[root-of-the-server]__5e08b942._.js +0 -3
  176. package/dist/web/.next/server/chunks/[root-of-the-server]__6ffce934._.js +0 -3
  177. package/dist/web/.next/server/chunks/[root-of-the-server]__71bb3374._.js +0 -3
  178. package/dist/web/.next/server/chunks/[root-of-the-server]__7603305e._.js +0 -3
  179. package/dist/web/.next/server/chunks/[root-of-the-server]__7c476ad6._.js +0 -3
  180. package/dist/web/.next/server/chunks/[root-of-the-server]__846ca56f._.js +0 -3
  181. package/dist/web/.next/server/chunks/[root-of-the-server]__98d88050._.js +0 -3
  182. package/dist/web/.next/server/chunks/[root-of-the-server]__b273cc05._.js +0 -3
  183. package/dist/web/.next/server/chunks/[root-of-the-server]__b90bbd70._.js +0 -3
  184. package/dist/web/.next/server/chunks/[root-of-the-server]__d5272169._.js +0 -3
  185. package/dist/web/.next/server/chunks/[root-of-the-server]__d56e68cb._.js +0 -3
  186. package/dist/web/.next/server/chunks/[root-of-the-server]__d6362272._.js +0 -3
  187. package/dist/web/.next/server/chunks/[root-of-the-server]__de1277ee._.js +0 -27
  188. package/dist/web/.next/server/chunks/[root-of-the-server]__e88a19d2._.js +0 -3
  189. package/dist/web/.next/server/chunks/[root-of-the-server]__f3e501b6._.js +0 -3
  190. package/dist/web/.next/server/chunks/[root-of-the-server]__f59af2bc._.js +0 -3
  191. package/dist/web/.next/server/chunks/ssr/[root-of-the-server]__9ac6ea25._.js +0 -3
  192. package/dist/web/.next/server/chunks/ssr/[root-of-the-server]__dfe2728c._.js +0 -3
  193. package/dist/web/.next/static/chunks/59fb302a5bfd2dc0.js +0 -4
  194. package/dist/web/.next/static/chunks/747f5e5f9dcf2621.css +0 -1
  195. /package/dist/web/.next/static/{tQdF18XbrwPnmXEMVlcfU → b2V8jC3HBMi4vgm7Kie3H}/_buildManifest.js +0 -0
  196. /package/dist/web/.next/static/{tQdF18XbrwPnmXEMVlcfU → b2V8jC3HBMi4vgm7Kie3H}/_clientMiddlewareManifest.json +0 -0
  197. /package/dist/web/.next/static/{tQdF18XbrwPnmXEMVlcfU → b2V8jC3HBMi4vgm7Kie3H}/_ssgManifest.js +0 -0
@@ -1,2 +1,2 @@
1
1
  globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {};
2
- globalThis.__RSC_MANIFEST["/project/[id]/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/next/dist/esm/client/components/layout-router.js <module evaluation>":{"id":39756,"name":"*","chunks":["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/e24d6768d85df882.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/layout-router.js":{"id":39756,"name":"*","chunks":["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/e24d6768d85df882.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js <module evaluation>":{"id":37457,"name":"*","chunks":["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/e24d6768d85df882.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":37457,"name":"*","chunks":["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/e24d6768d85df882.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js <module evaluation>":{"id":47257,"name":"*","chunks":["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/e24d6768d85df882.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js":{"id":47257,"name":"*","chunks":["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/e24d6768d85df882.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js <module evaluation>":{"id":92825,"name":"*","chunks":["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/e24d6768d85df882.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js":{"id":92825,"name":"*","chunks":["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/e24d6768d85df882.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js <module evaluation>":{"id":68017,"name":"*","chunks":["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/e24d6768d85df882.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":68017,"name":"*","chunks":["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/e24d6768d85df882.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js <module evaluation>":{"id":27201,"name":"*","chunks":["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/e24d6768d85df882.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":27201,"name":"*","chunks":["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/e24d6768d85df882.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js <module evaluation>":{"id":97367,"name":"*","chunks":["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/e24d6768d85df882.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":97367,"name":"*","chunks":["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/e24d6768d85df882.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js <module evaluation>":{"id":68027,"name":"*","chunks":["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/e24d6768d85df882.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js":{"id":68027,"name":"*","chunks":["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/e24d6768d85df882.js"],"async":false},"[project]/src/contexts/VoiceContext.tsx <module evaluation>":{"id":1088,"name":"*","chunks":["/_next/static/chunks/b8e0c1aeea4a14bc.js"],"async":false},"[project]/src/contexts/VoiceContext.tsx":{"id":1088,"name":"*","chunks":["/_next/static/chunks/b8e0c1aeea4a14bc.js"],"async":false},"[project]/src/components/ProjectView.tsx <module evaluation>":{"id":72630,"name":"*","chunks":["/_next/static/chunks/b8e0c1aeea4a14bc.js","/_next/static/chunks/94b526560cbd7bc0.js","/_next/static/chunks/59fb302a5bfd2dc0.js","/_next/static/chunks/8cb404d087e9f3c7.js"],"async":false},"[project]/src/components/ProjectView.tsx":{"id":72630,"name":"*","chunks":["/_next/static/chunks/b8e0c1aeea4a14bc.js","/_next/static/chunks/94b526560cbd7bc0.js","/_next/static/chunks/59fb302a5bfd2dc0.js","/_next/static/chunks/8cb404d087e9f3c7.js"],"async":false},"[project]/src/components/ProjectPageClient.tsx <module evaluation>":{"id":27444,"name":"*","chunks":["/_next/static/chunks/b8e0c1aeea4a14bc.js","/_next/static/chunks/94b526560cbd7bc0.js","/_next/static/chunks/59fb302a5bfd2dc0.js","/_next/static/chunks/8cb404d087e9f3c7.js"],"async":false},"[project]/src/components/ProjectPageClient.tsx":{"id":27444,"name":"*","chunks":["/_next/static/chunks/b8e0c1aeea4a14bc.js","/_next/static/chunks/94b526560cbd7bc0.js","/_next/static/chunks/59fb302a5bfd2dc0.js","/_next/static/chunks/8cb404d087e9f3c7.js"],"async":false}},"ssrModuleMapping":{"39756":{"*":{"id":2420,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b6871b66._.js","server/chunks/ssr/node_modules_next_dist_esm_eedfc1fd._.js"],"async":false}},"37457":{"*":{"id":24017,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b6871b66._.js","server/chunks/ssr/node_modules_next_dist_esm_eedfc1fd._.js"],"async":false}},"47257":{"*":{"id":77682,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b6871b66._.js","server/chunks/ssr/node_modules_next_dist_esm_eedfc1fd._.js"],"async":false}},"92825":{"*":{"id":97296,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b6871b66._.js","server/chunks/ssr/node_modules_next_dist_esm_eedfc1fd._.js"],"async":false}},"68017":{"*":{"id":61660,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b6871b66._.js","server/chunks/ssr/node_modules_next_dist_esm_eedfc1fd._.js"],"async":false}},"27201":{"*":{"id":60704,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b6871b66._.js","server/chunks/ssr/node_modules_next_dist_esm_eedfc1fd._.js"],"async":false}},"97367":{"*":{"id":90574,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b6871b66._.js","server/chunks/ssr/node_modules_next_dist_esm_eedfc1fd._.js"],"async":false}},"68027":{"*":{"id":40622,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b6871b66._.js","server/chunks/ssr/node_modules_next_dist_esm_eedfc1fd._.js"],"async":false}},"1088":{"*":{"id":7491,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__72142a5d._.js","server/chunks/ssr/src_contexts_VoiceContext_tsx_cfba7292._.js"],"async":false}},"72630":{"*":{"id":15704,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__72142a5d._.js","server/chunks/ssr/src_contexts_VoiceContext_tsx_cfba7292._.js","server/chunks/ssr/[root-of-the-server]__2f64210a._.js","server/chunks/ssr/[root-of-the-server]__bcbe4bf2._.js","server/chunks/ssr/src_components_c4135402._.js"],"async":false}},"27444":{"*":{"id":77788,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__72142a5d._.js","server/chunks/ssr/src_contexts_VoiceContext_tsx_cfba7292._.js","server/chunks/ssr/[root-of-the-server]__2f64210a._.js","server/chunks/ssr/[root-of-the-server]__bcbe4bf2._.js","server/chunks/ssr/src_components_c4135402._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"39756":{"*":{"id":26768,"name":"*","chunks":[],"async":false}},"37457":{"*":{"id":17910,"name":"*","chunks":[],"async":false}},"47257":{"*":{"id":92977,"name":"*","chunks":[],"async":false}},"92825":{"*":{"id":48552,"name":"*","chunks":[],"async":false}},"68017":{"*":{"id":83919,"name":"*","chunks":[],"async":false}},"27201":{"*":{"id":40771,"name":"*","chunks":[],"async":false}},"97367":{"*":{"id":24150,"name":"*","chunks":[],"async":false}},"68027":{"*":{"id":82509,"name":"*","chunks":[],"async":false}},"1088":{"*":{"id":21229,"name":"*","chunks":[],"async":false}},"72630":{"*":{"id":50165,"name":"*","chunks":[],"async":false}},"27444":{"*":{"id":76100,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/src/app/layout":[{"path":"static/chunks/43bfca92afbacd38.css","inlined":false},{"path":"static/chunks/747f5e5f9dcf2621.css","inlined":false}],"[project]/src/app/project/[id]/page":[{"path":"static/chunks/43bfca92afbacd38.css","inlined":false},{"path":"static/chunks/747f5e5f9dcf2621.css","inlined":false}]},"entryJSFiles":{"[project]/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/ff1a16fafef87110.js","static/chunks/e24d6768d85df882.js"],"[project]/src/app/layout":["static/chunks/b8e0c1aeea4a14bc.js"],"[project]/src/app/project/[id]/page":["static/chunks/b8e0c1aeea4a14bc.js","static/chunks/94b526560cbd7bc0.js","static/chunks/59fb302a5bfd2dc0.js","static/chunks/8cb404d087e9f3c7.js"]}}
2
+ globalThis.__RSC_MANIFEST["/project/[id]/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/next/dist/esm/client/components/layout-router.js <module evaluation>":{"id":39756,"name":"*","chunks":["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/e24d6768d85df882.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/layout-router.js":{"id":39756,"name":"*","chunks":["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/e24d6768d85df882.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js <module evaluation>":{"id":37457,"name":"*","chunks":["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/e24d6768d85df882.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":37457,"name":"*","chunks":["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/e24d6768d85df882.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js <module evaluation>":{"id":47257,"name":"*","chunks":["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/e24d6768d85df882.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js":{"id":47257,"name":"*","chunks":["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/e24d6768d85df882.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js <module evaluation>":{"id":92825,"name":"*","chunks":["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/e24d6768d85df882.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js":{"id":92825,"name":"*","chunks":["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/e24d6768d85df882.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js <module evaluation>":{"id":68017,"name":"*","chunks":["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/e24d6768d85df882.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":68017,"name":"*","chunks":["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/e24d6768d85df882.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js <module evaluation>":{"id":27201,"name":"*","chunks":["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/e24d6768d85df882.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":27201,"name":"*","chunks":["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/e24d6768d85df882.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js <module evaluation>":{"id":97367,"name":"*","chunks":["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/e24d6768d85df882.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":97367,"name":"*","chunks":["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/e24d6768d85df882.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js <module evaluation>":{"id":68027,"name":"*","chunks":["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/e24d6768d85df882.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js":{"id":68027,"name":"*","chunks":["/_next/static/chunks/ff1a16fafef87110.js","/_next/static/chunks/e24d6768d85df882.js"],"async":false},"[project]/src/contexts/VoiceContext.tsx <module evaluation>":{"id":1088,"name":"*","chunks":["/_next/static/chunks/b8e0c1aeea4a14bc.js"],"async":false},"[project]/src/contexts/VoiceContext.tsx":{"id":1088,"name":"*","chunks":["/_next/static/chunks/b8e0c1aeea4a14bc.js"],"async":false},"[project]/src/components/ProjectView.tsx <module evaluation>":{"id":72630,"name":"*","chunks":["/_next/static/chunks/b8e0c1aeea4a14bc.js","/_next/static/chunks/94b526560cbd7bc0.js","/_next/static/chunks/8415039c5941cf5c.js","/_next/static/chunks/4049cceee6a49323.js"],"async":false},"[project]/src/components/ProjectView.tsx":{"id":72630,"name":"*","chunks":["/_next/static/chunks/b8e0c1aeea4a14bc.js","/_next/static/chunks/94b526560cbd7bc0.js","/_next/static/chunks/8415039c5941cf5c.js","/_next/static/chunks/4049cceee6a49323.js"],"async":false},"[project]/src/components/ProjectPageClient.tsx <module evaluation>":{"id":27444,"name":"*","chunks":["/_next/static/chunks/b8e0c1aeea4a14bc.js","/_next/static/chunks/94b526560cbd7bc0.js","/_next/static/chunks/8415039c5941cf5c.js","/_next/static/chunks/4049cceee6a49323.js"],"async":false},"[project]/src/components/ProjectPageClient.tsx":{"id":27444,"name":"*","chunks":["/_next/static/chunks/b8e0c1aeea4a14bc.js","/_next/static/chunks/94b526560cbd7bc0.js","/_next/static/chunks/8415039c5941cf5c.js","/_next/static/chunks/4049cceee6a49323.js"],"async":false}},"ssrModuleMapping":{"39756":{"*":{"id":2420,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b6871b66._.js","server/chunks/ssr/node_modules_next_dist_esm_eedfc1fd._.js"],"async":false}},"37457":{"*":{"id":24017,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b6871b66._.js","server/chunks/ssr/node_modules_next_dist_esm_eedfc1fd._.js"],"async":false}},"47257":{"*":{"id":77682,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b6871b66._.js","server/chunks/ssr/node_modules_next_dist_esm_eedfc1fd._.js"],"async":false}},"92825":{"*":{"id":97296,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b6871b66._.js","server/chunks/ssr/node_modules_next_dist_esm_eedfc1fd._.js"],"async":false}},"68017":{"*":{"id":61660,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b6871b66._.js","server/chunks/ssr/node_modules_next_dist_esm_eedfc1fd._.js"],"async":false}},"27201":{"*":{"id":60704,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b6871b66._.js","server/chunks/ssr/node_modules_next_dist_esm_eedfc1fd._.js"],"async":false}},"97367":{"*":{"id":90574,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b6871b66._.js","server/chunks/ssr/node_modules_next_dist_esm_eedfc1fd._.js"],"async":false}},"68027":{"*":{"id":40622,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b6871b66._.js","server/chunks/ssr/node_modules_next_dist_esm_eedfc1fd._.js"],"async":false}},"1088":{"*":{"id":7491,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__72142a5d._.js","server/chunks/ssr/src_contexts_VoiceContext_tsx_cfba7292._.js"],"async":false}},"72630":{"*":{"id":15704,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__72142a5d._.js","server/chunks/ssr/src_contexts_VoiceContext_tsx_cfba7292._.js","server/chunks/ssr/[root-of-the-server]__2f64210a._.js","server/chunks/ssr/[root-of-the-server]__bcbe4bf2._.js","server/chunks/ssr/src_components_c4135402._.js"],"async":false}},"27444":{"*":{"id":77788,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__72142a5d._.js","server/chunks/ssr/src_contexts_VoiceContext_tsx_cfba7292._.js","server/chunks/ssr/[root-of-the-server]__2f64210a._.js","server/chunks/ssr/[root-of-the-server]__bcbe4bf2._.js","server/chunks/ssr/src_components_c4135402._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"39756":{"*":{"id":26768,"name":"*","chunks":[],"async":false}},"37457":{"*":{"id":17910,"name":"*","chunks":[],"async":false}},"47257":{"*":{"id":92977,"name":"*","chunks":[],"async":false}},"92825":{"*":{"id":48552,"name":"*","chunks":[],"async":false}},"68017":{"*":{"id":83919,"name":"*","chunks":[],"async":false}},"27201":{"*":{"id":40771,"name":"*","chunks":[],"async":false}},"97367":{"*":{"id":24150,"name":"*","chunks":[],"async":false}},"68027":{"*":{"id":82509,"name":"*","chunks":[],"async":false}},"1088":{"*":{"id":21229,"name":"*","chunks":[],"async":false}},"72630":{"*":{"id":50165,"name":"*","chunks":[],"async":false}},"27444":{"*":{"id":76100,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/src/app/layout":[{"path":"static/chunks/43bfca92afbacd38.css","inlined":false},{"path":"static/chunks/18cfbdd7e977bb01.css","inlined":false}],"[project]/src/app/project/[id]/page":[{"path":"static/chunks/43bfca92afbacd38.css","inlined":false},{"path":"static/chunks/18cfbdd7e977bb01.css","inlined":false}]},"entryJSFiles":{"[project]/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/ff1a16fafef87110.js","static/chunks/e24d6768d85df882.js"],"[project]/src/app/layout":["static/chunks/b8e0c1aeea4a14bc.js"],"[project]/src/app/project/[id]/page":["static/chunks/b8e0c1aeea4a14bc.js","static/chunks/94b526560cbd7bc0.js","static/chunks/8415039c5941cf5c.js","static/chunks/4049cceee6a49323.js"]}}
@@ -1,3 +1,3 @@
1
- module.exports=[33405,(e,r,s)=>{r.exports=e.x("child_process",()=>require("child_process"))},14747,(e,r,s)=>{r.exports=e.x("path",()=>require("path"))},22734,(e,r,s)=>{r.exports=e.x("fs",()=>require("fs"))},54799,(e,r,s)=>{r.exports=e.x("crypto",()=>require("crypto"))},46786,(e,r,s)=>{r.exports=e.x("os",()=>require("os"))},44264,e=>{e.v(r=>Promise.all(["server/chunks/[externals]_child_process_964038fc._.js"].map(r=>e.l(r))).then(()=>r(33405)))}];
1
+ module.exports=[33405,(e,r,s)=>{r.exports=e.x("child_process",()=>require("child_process"))},14747,(e,r,s)=>{r.exports=e.x("path",()=>require("path"))},46786,(e,r,s)=>{r.exports=e.x("os",()=>require("os"))},22734,(e,r,s)=>{r.exports=e.x("fs",()=>require("fs"))},54799,(e,r,s)=>{r.exports=e.x("crypto",()=>require("crypto"))},44264,e=>{e.v(r=>Promise.all(["server/chunks/[externals]_child_process_964038fc._.js"].map(r=>e.l(r))).then(()=>r(33405)))}];
2
2
 
3
- //# sourceMappingURL=%5Bexternals%5D__c6831f39._.js.map
3
+ //# sourceMappingURL=%5Bexternals%5D__78e522ea._.js.map
@@ -1,6 +1,6 @@
1
- module.exports=[54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},7367,e=>{"use strict";var t=e.i(14747),r=e.i(22734);function n(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let e=process.cwd();return(console.warn("[paths] SLYCODE_HOME not set in production — falling back to cwd:",e),e.endsWith("/web")||e.endsWith("\\web"))?t.default.dirname(e):e}function s(){let e=n(),s=t.default.join(e,"node_modules","@slycode","slycode","dist");return r.default.existsSync(s)?s:e}function a(){return process.env.BRIDGE_URL?process.env.BRIDGE_URL:"http://127.0.0.1:3004"}e.s(["getBridgeUrl",()=>a,"getPackageDir",()=>s,"getSlycodeRoot",()=>n])},55012,e=>{"use strict";var t=e.i(22734),r=e.i(14747),n=e.i(54799),s=e.i(7367),a=e.i(46676);function o(e){let t=e.match(/^---\s*\n([\s\S]*?)\n---\s*\n?([\s\S]*)/);if(!t)return null;let r=t[1],n=(t[2]||"").trim(),s={},a=null,o=null,l=null;for(let e of r.split("\n")){if(e.startsWith(" ")){let t=e.trim();if(null!==l&&t.startsWith("- ")){let e=t.slice(2).trim();e=i(e),l.push(e);continue}if(null!==o){let e=t.indexOf(":");if(-1!==e){let r=t.slice(0,e).trim(),n=t.slice(e+1).trim();o[r]=Number(n)}}continue}a&&o&&(s[a]=o,o=null,a=null),a&&l&&(s[a]=l,l=null,a=null);let t=e.indexOf(":");if(-1===t)continue;let r=e.slice(0,t).trim(),n=e.slice(t+1).trim();if(!n){a=r,"classes"===r?o={}:l=[];continue}s[r]=i(n)}return a&&o&&(s[a]=o),a&&l&&(s[a]=l),{frontmatter:s,body:n}}function i(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function l(e,t){return{name:String(e.name||""),version:String(e.version||"1.0.0"),label:String(e.label||""),description:String(e.description||""),group:String(e.group||""),placement:e.placement||"both",scope:e.scope||"global",projects:Array.isArray(e.projects)?e.projects.map(String):[],cardTypes:Array.isArray(e.cardTypes)?e.cardTypes.map(String):void 0,classes:"object"!=typeof e.classes||null===e.classes||Array.isArray(e.classes)?{}:e.classes,prompt:t}}function c(e){let n=[];if(!t.default.existsSync(e))return n;try{for(let s of t.default.readdirSync(e)){if(!s.endsWith(".md"))continue;let a=r.default.join(e,s);try{let e=t.default.readFileSync(a,"utf-8"),r=o(e);if(!r)continue;let i=l(r.frontmatter,r.body);i.name||(i.name=s.replace(/\.md$/,"")),n.push(i)}catch{}}}catch{}return n}let u=null,d=0;function p(){return r.default.join((0,s.getSlycodeRoot)(),"store","actions")}function f(){return u&&!(Date.now()-d>3e4)||(u=function(e){let t={};for(let r of e)t[r.name]={id:r.name,label:r.label,description:r.description,group:r.group||void 0,cardTypes:r.cardTypes,placement:r.placement,prompt:r.prompt,scope:r.scope,projects:r.projects};return{version:"4.0",commands:t,classAssignments:function(e){let t={};for(let r of e)for(let[e,n]of Object.entries(r.classes))t[e]||(t[e]=[]),t[e].push({name:r.name,priority:n});let r={};for(let[e,n]of Object.entries(t))n.sort((e,t)=>e.priority!==t.priority?e.priority-t.priority:e.name.localeCompare(t.name)),r[e]=n.map(e=>e.name);return r}(e)}}(c(p())),d=Date.now()),u}function m(){u=null,d=0}function h(e,n){let s=n||p();t.default.mkdirSync(s,{recursive:!0});let a=function(e){let t=["---"];if(t.push(`name: ${e.name}`),t.push(`version: ${e.version}`),t.push(`label: "${e.label}"`),t.push(`description: "${e.description.replace(/"/g,'\\"')}"`),e.group&&t.push(`group: "${e.group}"`),t.push(`placement: ${e.placement}`),t.push(`scope: ${e.scope}`),e.projects.length>0)for(let r of(t.push("projects:"),e.projects))t.push(` - "${r}"`);if(e.cardTypes&&e.cardTypes.length>0)for(let r of(t.push("cardTypes:"),e.cardTypes))t.push(` - "${r}"`);if(Object.keys(e.classes).length>0)for(let[r,n]of(t.push("classes:"),Object.entries(e.classes).sort((e,t)=>e[0].localeCompare(t[0]))))t.push(` ${r}: ${n}`);return t.push("---"),`${t.join("\n")}
1
+ module.exports=[54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},7367,e=>{"use strict";var t=e.i(14747),r=e.i(22734),n=e.i(46786);function s(e){return(e=e.replace(/^[\u02dc\uff5e]/,"~")).startsWith("~/")||"~"===e?e.replace(/^~/,n.default.homedir()):e}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 o(){let e=a(),n=t.default.join(e,"node_modules","@slycode","slycode","dist");return r.default.existsSync(n)?n:e}function i(){return process.env.BRIDGE_URL?process.env.BRIDGE_URL:"http://127.0.0.1:3004"}e.s(["expandTilde",()=>s,"getBridgeUrl",()=>i,"getPackageDir",()=>o,"getSlycodeRoot",()=>a])},55012,e=>{"use strict";var t=e.i(22734),r=e.i(14747),n=e.i(54799),s=e.i(7367),a=e.i(46676);function o(e){let t=e.match(/^---\s*\n([\s\S]*?)\n---\s*\n?([\s\S]*)/);if(!t)return null;let r=t[1],n=(t[2]||"").trim(),s={},a=null,o=null,l=null;for(let e of r.split("\n")){if(e.startsWith(" ")){let t=e.trim();if(null!==l&&t.startsWith("- ")){let e=t.slice(2).trim();e=i(e),l.push(e);continue}if(null!==o){let e=t.indexOf(":");if(-1!==e){let r=t.slice(0,e).trim(),n=t.slice(e+1).trim();o[r]=Number(n)}}continue}a&&o&&(s[a]=o,o=null,a=null),a&&l&&(s[a]=l,l=null,a=null);let t=e.indexOf(":");if(-1===t)continue;let r=e.slice(0,t).trim(),n=e.slice(t+1).trim();if(!n){a=r,"classes"===r?o={}:l=[];continue}s[r]=i(n)}return a&&o&&(s[a]=o),a&&l&&(s[a]=l),{frontmatter:s,body:n}}function i(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function l(e,t){return{name:String(e.name||""),version:String(e.version||"1.0.0"),label:String(e.label||""),description:String(e.description||""),group:String(e.group||""),placement:e.placement||"both",scope:e.scope||"global",projects:Array.isArray(e.projects)?e.projects.map(String):[],cardTypes:Array.isArray(e.cardTypes)?e.cardTypes.map(String):void 0,classes:"object"!=typeof e.classes||null===e.classes||Array.isArray(e.classes)?{}:e.classes,prompt:t}}function c(e){let n=[];if(!t.default.existsSync(e))return n;try{for(let s of t.default.readdirSync(e)){if(!s.endsWith(".md"))continue;let a=r.default.join(e,s);try{let e=t.default.readFileSync(a,"utf-8"),r=o(e);if(!r)continue;let i=l(r.frontmatter,r.body);i.name||(i.name=s.replace(/\.md$/,"")),n.push(i)}catch{}}}catch{}return n}let u=null,d=0;function p(){return r.default.join((0,s.getSlycodeRoot)(),"store","actions")}function f(){return u&&!(Date.now()-d>3e4)||(u=function(e){let t={};for(let r of e)t[r.name]={id:r.name,label:r.label,description:r.description,group:r.group||void 0,cardTypes:r.cardTypes,placement:r.placement,prompt:r.prompt,scope:r.scope,projects:r.projects};return{version:"4.0",commands:t,classAssignments:function(e){let t={};for(let r of e)for(let[e,n]of Object.entries(r.classes))t[e]||(t[e]=[]),t[e].push({name:r.name,priority:n});let r={};for(let[e,n]of Object.entries(t))n.sort((e,t)=>e.priority!==t.priority?e.priority-t.priority:e.name.localeCompare(t.name)),r[e]=n.map(e=>e.name);return r}(e)}}(c(p())),d=Date.now()),u}function m(){u=null,d=0}function h(e,n){let s=n||p();t.default.mkdirSync(s,{recursive:!0});let a=function(e){let t=["---"];if(t.push(`name: ${e.name}`),t.push(`version: ${e.version}`),t.push(`label: "${e.label}"`),t.push(`description: "${e.description.replace(/"/g,'\\"')}"`),e.group&&t.push(`group: "${e.group}"`),t.push(`placement: ${e.placement}`),t.push(`scope: ${e.scope}`),e.projects.length>0)for(let r of(t.push("projects:"),e.projects))t.push(` - "${r}"`);if(e.cardTypes&&e.cardTypes.length>0)for(let r of(t.push("cardTypes:"),e.cardTypes))t.push(` - "${r}"`);if(Object.keys(e.classes).length>0)for(let[r,n]of(t.push("classes:"),Object.entries(e.classes).sort((e,t)=>e[0].localeCompare(t[0]))))t.push(` ${r}: ${n}`);return t.push("---"),`${t.join("\n")}
2
2
 
3
3
  ${e.prompt}
4
- `}(e),o=r.default.join(s,`${e.name}.md`),i=r.default.join(s,`.${e.name}.md.tmp`);t.default.writeFileSync(i,a,"utf-8"),t.default.renameSync(i,o)}function y(e,n){let s=n||p(),a={};for(let[t,r]of Object.entries(e.classAssignments))for(let e=0;e<r.length;e++){let n=r[e];a[n]||(a[n]={}),a[n][t]=(e+1)*10}let o=c(s),i={};for(let e of o)i[e.name]=e.version;for(let[t,r]of Object.entries(e.commands))h({name:t,version:i[t]||"1.0.0",label:r.label,description:r.description,group:r.group||"",placement:r.placement,scope:r.scope,projects:r.projects,cardTypes:r.cardTypes,classes:a[t]||{},prompt:r.prompt},s);try{let n=t.default.readdirSync(s).filter(e=>e.endsWith(".md")),a=new Set(Object.keys(e.commands));for(let e of n){let n=e.replace(/\.md$/,"");a.has(n)||t.default.unlinkSync(r.default.join(s,e))}}catch{}m()}function g(e){return n.default.createHash("sha256").update(e).digest("hex").slice(0,12)}function x(e){let n,i=(0,s.getSlycodeRoot)(),c=r.default.join(i,"updates","actions"),u=r.default.join(i,"store","actions");if(!t.default.existsSync(c))return[];let d=[],p=!1;try{n=t.default.readdirSync(c).filter(e=>e.endsWith(".md"))}catch{return[]}for(let s of n)try{let n=r.default.join(c,s),a=t.default.readFileSync(n,"utf-8"),i=g(a),f=o(a);if(!f)continue;let m=l(f.frontmatter,f.body);m.name||(m.name=s.replace(/\.md$/,""));let h=`actions/${m.name}`;if(e[h]===i)continue;let y=r.default.join(u,s);if(t.default.existsSync(y)){let r=t.default.readFileSync(y,"utf-8"),n=g(r);if(i===n){e[h]||(e[h]=i,p=!0);continue}let s=o(r),a=s?l(s.frontmatter,s.body):null,c=[];a&&(m.prompt!==a.prompt&&c.push("prompt"),m.label!==a.label&&c.push("label"),m.description!==a.description&&c.push("description"),m.placement!==a.placement&&c.push("placement"),m.group!==a.group&&c.push("group"));let u=a?Object.keys(m.classes).filter(e=>!(e in a.classes)):Object.keys(m.classes);d.push({name:m.name,assetType:"action",status:"update",currentVersion:a?.version,upstreamVersion:m.version,contentHash:i,description:m.description,changedFields:c,newClasses:u.length>0?u:void 0})}else d.push({name:m.name,assetType:"action",status:"new",upstreamVersion:m.version,contentHash:i,description:m.description,newClasses:Object.keys(m.classes)})}catch{}return p&&(0,a.saveIgnoredUpdates)(e),d}function v(e){let n=(0,s.getSlycodeRoot)(),i=r.default.join(n,"updates","actions",`${e}.md`),c=r.default.join(n,"store","actions",`${e}.md`);if(!t.default.existsSync(i))throw Error(`Action update not found: ${e}`);let u=t.default.readFileSync(i,"utf-8"),d=g(u),p=o(u);if(!p)throw Error(`Failed to parse upstream action: ${e}`);let f=l(p.frontmatter,p.body),y=null;if(t.default.existsSync(c)){let s=r.default.join(n,"store",".backups","actions");t.default.mkdirSync(s,{recursive:!0}),y=r.default.join(s,`${e}.md`),t.default.copyFileSync(c,y);let a=o(t.default.readFileSync(c,"utf-8"));if(a){let e={...l(a.frontmatter,a.body).classes};for(let[t,r]of Object.entries(f.classes))t in e||(e[t]=r);f.classes=e}}let x=r.default.join(n,"store","actions");t.default.mkdirSync(x,{recursive:!0}),h(f,x);let v=(0,a.getIgnoredUpdates)();return v[`actions/${e}`]=d,(0,a.saveIgnoredUpdates)(v),m(),y}e.s(["acceptActionUpdate",()=>v,"getActionsConfig",()=>f,"invalidateActionsCache",()=>m,"scanActionUpdates",()=>x,"writeActionsFromConfig",()=>y])},31798,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),s=e.i(59756),a=e.i(61916),o=e.i(74677),i=e.i(69741),l=e.i(16795),c=e.i(87718),u=e.i(95169),d=e.i(47587),p=e.i(66012),f=e.i(70101),m=e.i(74838),h=e.i(10372),y=e.i(93695);e.i(52474);var g=e.i(220),x=e.i(89171),v=e.i(55012);async function R(){try{let e=(0,v.getActionsConfig)();return x.NextResponse.json(e)}catch(e){return console.error("Failed to read actions:",e),x.NextResponse.json({version:"4.0",commands:{},classAssignments:{}})}}async function b(e){try{let t=await e.json();if(!t.commands||"object"!=typeof t.commands)return x.NextResponse.json({error:"Invalid format: commands object required"},{status:400});return(0,v.writeActionsFromConfig)(t),x.NextResponse.json({success:!0})}catch(e){return console.error("Failed to save actions:",e),x.NextResponse.json({error:"Failed to save configuration"},{status:500})}}e.s(["GET",()=>R,"PUT",()=>b],31810);var j=e.i(31810);let w=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/sly-actions/route",pathname:"/api/sly-actions",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/sly-actions/route.ts",nextConfigOutput:"standalone",userland:j}),{workAsyncStorage:S,workUnitAsyncStorage:E,serverHooks:C}=w;function A(){return(0,n.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:E})}async function O(e,t,n){w.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let x="/api/sly-actions/route";x=x.replace(/\/index$/,"")||"/";let v=await w.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:R,params:b,nextConfig:j,parsedUrl:S,isDraftMode:E,prerenderManifest:C,routerServerContext:A,isOnDemandRevalidate:O,revalidateOnlyGenerated:T,resolvedPathname:$,clientReferenceManifest:k,serverActionsManifest:N}=v,_=(0,i.normalizeAppPath)(x),P=!!(C.dynamicRoutes[_]||C.routes[$]),U=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,S,!1):t.end("This page could not be found"),null);if(P&&!E){let e=!!C.routes[$],t=C.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(j.experimental.adapterPath)return await U();throw new y.NoFallbackError}}let q=null;!P||w.isDev||E||(q="/index"===(q=$)?"/":q);let H=!0===w.isDev||!P,D=P&&!H;N&&k&&(0,o.setManifestsSingleton)({page:x,clientReferenceManifest:k,serverActionsManifest:N});let F=e.method||"GET",I=(0,a.getTracer)(),M=I.getActiveScopeSpan(),W={params:b,prerenderManifest:C,renderOpts:{experimental:{authInterrupts:!!j.experimental.authInterrupts},cacheComponents:!!j.cacheComponents,supportsDynamicResponse:H,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:j.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,s)=>w.onRequestError(e,t,n,s,A)},sharedContext:{buildId:R}},L=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),K=c.NextRequestAdapter.fromNodeNextRequest(L,(0,c.signalFromNodeResponse)(t));try{let o=async e=>w.handle(K,W).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=I.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${F} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${F} ${x}`)}),i=!!(0,s.getRequestMeta)(e,"minimalMode"),l=async s=>{var a,l;let c=async({previousCacheEntry:r})=>{try{if(!i&&O&&T&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await o(s);e.fetchMetrics=W.renderOpts.fetchMetrics;let l=W.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let c=W.renderOpts.collectedTags;if(!P)return await (0,p.sendResponse)(L,B,a,W.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(a.headers);c&&(t[h.NEXT_CACHE_TAGS_HEADER]=c),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,n=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:W.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await w.onRequestError(e,t,{routerKind:"App Router",routePath:x,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:O})},!1,A),t}},u=await w.handleResponse({req:e,nextConfig:j,cacheKey:q,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:T,responseGenerator:c,waitUntil:n.waitUntil,isMinimalMode:i});if(!P)return null;if((null==u||null==(a=u.value)?void 0:a.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",O?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let y=(0,f.fromNodeOutgoingHttpHeaders)(u.value.headers);return i&&P||y.delete(h.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||y.get("Cache-Control")||y.set("Cache-Control",(0,m.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(L,B,new Response(u.value.body,{headers:y,status:u.value.status||200})),null};M?await l(M):await I.withPropagatedContext(e.headers,()=>I.trace(u.BaseServerSpan.handleRequest,{spanName:`${F} ${x}`,kind:a.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},l))}catch(t){if(t instanceof y.NoFallbackError||await w.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:O})},!1,A),P)throw t;return await (0,p.sendResponse)(L,B,new Response(null,{status:500})),null}}e.s(["handler",()=>O,"patchFetch",()=>A,"routeModule",()=>w,"serverHooks",()=>C,"workAsyncStorage",()=>S,"workUnitAsyncStorage",()=>E],31798)}];
4
+ `}(e),o=r.default.join(s,`${e.name}.md`),i=r.default.join(s,`.${e.name}.md.tmp`);t.default.writeFileSync(i,a,"utf-8"),t.default.renameSync(i,o)}function y(e,n){let s=n||p(),a={};for(let[t,r]of Object.entries(e.classAssignments))for(let e=0;e<r.length;e++){let n=r[e];a[n]||(a[n]={}),a[n][t]=(e+1)*10}let o=c(s),i={};for(let e of o)i[e.name]=e.version;for(let[t,r]of Object.entries(e.commands))h({name:t,version:i[t]||"1.0.0",label:r.label,description:r.description,group:r.group||"",placement:r.placement,scope:r.scope,projects:r.projects,cardTypes:r.cardTypes,classes:a[t]||{},prompt:r.prompt},s);try{let n=t.default.readdirSync(s).filter(e=>e.endsWith(".md")),a=new Set(Object.keys(e.commands));for(let e of n){let n=e.replace(/\.md$/,"");a.has(n)||t.default.unlinkSync(r.default.join(s,e))}}catch{}m()}function g(e){return n.default.createHash("sha256").update(e).digest("hex").slice(0,12)}function x(e){let n,i=(0,s.getSlycodeRoot)(),c=r.default.join(i,"updates","actions"),u=r.default.join(i,"store","actions");if(!t.default.existsSync(c))return[];let d=[],p=!1;try{n=t.default.readdirSync(c).filter(e=>e.endsWith(".md"))}catch{return[]}for(let s of n)try{let n=r.default.join(c,s),a=t.default.readFileSync(n,"utf-8"),i=g(a),f=o(a);if(!f)continue;let m=l(f.frontmatter,f.body);m.name||(m.name=s.replace(/\.md$/,""));let h=`actions/${m.name}`;if(e[h]===i)continue;let y=r.default.join(u,s);if(t.default.existsSync(y)){let r=t.default.readFileSync(y,"utf-8"),n=g(r);if(i===n){e[h]||(e[h]=i,p=!0);continue}let s=o(r),a=s?l(s.frontmatter,s.body):null,c=[];a&&(m.prompt!==a.prompt&&c.push("prompt"),m.label!==a.label&&c.push("label"),m.description!==a.description&&c.push("description"),m.placement!==a.placement&&c.push("placement"),m.group!==a.group&&c.push("group"));let u=a?Object.keys(m.classes).filter(e=>!(e in a.classes)):Object.keys(m.classes);d.push({name:m.name,assetType:"action",status:"update",currentVersion:a?.version,upstreamVersion:m.version,contentHash:i,description:m.description,changedFields:c,newClasses:u.length>0?u:void 0})}else d.push({name:m.name,assetType:"action",status:"new",upstreamVersion:m.version,contentHash:i,description:m.description,newClasses:Object.keys(m.classes)})}catch{}return p&&(0,a.saveIgnoredUpdates)(e),d}function v(e){let n=(0,s.getSlycodeRoot)(),i=r.default.join(n,"updates","actions",`${e}.md`),c=r.default.join(n,"store","actions",`${e}.md`);if(!t.default.existsSync(i))throw Error(`Action update not found: ${e}`);let u=t.default.readFileSync(i,"utf-8"),d=g(u),p=o(u);if(!p)throw Error(`Failed to parse upstream action: ${e}`);let f=l(p.frontmatter,p.body),y=null;if(t.default.existsSync(c)){let s=r.default.join(n,"store",".backups","actions");t.default.mkdirSync(s,{recursive:!0}),y=r.default.join(s,`${e}.md`),t.default.copyFileSync(c,y);let a=o(t.default.readFileSync(c,"utf-8"));if(a){let e={...l(a.frontmatter,a.body).classes};for(let[t,r]of Object.entries(f.classes))t in e||(e[t]=r);f.classes=e}}let x=r.default.join(n,"store","actions");t.default.mkdirSync(x,{recursive:!0}),h(f,x);let v=(0,a.getIgnoredUpdates)();return v[`actions/${e}`]=d,(0,a.saveIgnoredUpdates)(v),m(),y}e.s(["acceptActionUpdate",()=>v,"getActionsConfig",()=>f,"invalidateActionsCache",()=>m,"scanActionUpdates",()=>x,"writeActionsFromConfig",()=>y])},31798,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),s=e.i(59756),a=e.i(61916),o=e.i(74677),i=e.i(69741),l=e.i(16795),c=e.i(87718),u=e.i(95169),d=e.i(47587),p=e.i(66012),f=e.i(70101),m=e.i(74838),h=e.i(10372),y=e.i(93695);e.i(52474);var g=e.i(220),x=e.i(89171),v=e.i(55012);async function R(){try{let e=(0,v.getActionsConfig)();return x.NextResponse.json(e)}catch(e){return console.error("Failed to read actions:",e),x.NextResponse.json({version:"4.0",commands:{},classAssignments:{}})}}async function b(e){try{let t=await e.json();if(!t.commands||"object"!=typeof t.commands)return x.NextResponse.json({error:"Invalid format: commands object required"},{status:400});return(0,v.writeActionsFromConfig)(t),x.NextResponse.json({success:!0})}catch(e){return console.error("Failed to save actions:",e),x.NextResponse.json({error:"Failed to save configuration"},{status:500})}}e.s(["GET",()=>R,"PUT",()=>b],31810);var j=e.i(31810);let w=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/sly-actions/route",pathname:"/api/sly-actions",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/sly-actions/route.ts",nextConfigOutput:"standalone",userland:j}),{workAsyncStorage:S,workUnitAsyncStorage:E,serverHooks:C}=w;function A(){return(0,n.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:E})}async function O(e,t,n){w.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let x="/api/sly-actions/route";x=x.replace(/\/index$/,"")||"/";let v=await w.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:R,params:b,nextConfig:j,parsedUrl:S,isDraftMode:E,prerenderManifest:C,routerServerContext:A,isOnDemandRevalidate:O,revalidateOnlyGenerated:T,resolvedPathname:$,clientReferenceManifest:k,serverActionsManifest:N}=v,_=(0,i.normalizeAppPath)(x),q=!!(C.dynamicRoutes[_]||C.routes[$]),P=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,S,!1):t.end("This page could not be found"),null);if(q&&!E){let e=!!C.routes[$],t=C.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(j.experimental.adapterPath)return await P();throw new y.NoFallbackError}}let U=null;!q||w.isDev||E||(U="/index"===(U=$)?"/":U);let H=!0===w.isDev||!q,D=q&&!H;N&&k&&(0,o.setManifestsSingleton)({page:x,clientReferenceManifest:k,serverActionsManifest:N});let F=e.method||"GET",I=(0,a.getTracer)(),M=I.getActiveScopeSpan(),W={params:b,prerenderManifest:C,renderOpts:{experimental:{authInterrupts:!!j.experimental.authInterrupts},cacheComponents:!!j.cacheComponents,supportsDynamicResponse:H,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:j.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,s)=>w.onRequestError(e,t,n,s,A)},sharedContext:{buildId:R}},L=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),K=c.NextRequestAdapter.fromNodeNextRequest(L,(0,c.signalFromNodeResponse)(t));try{let o=async e=>w.handle(K,W).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=I.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${F} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${F} ${x}`)}),i=!!(0,s.getRequestMeta)(e,"minimalMode"),l=async s=>{var a,l;let c=async({previousCacheEntry:r})=>{try{if(!i&&O&&T&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await o(s);e.fetchMetrics=W.renderOpts.fetchMetrics;let l=W.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let c=W.renderOpts.collectedTags;if(!q)return await (0,p.sendResponse)(L,B,a,W.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(a.headers);c&&(t[h.NEXT_CACHE_TAGS_HEADER]=c),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,n=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:W.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await w.onRequestError(e,t,{routerKind:"App Router",routePath:x,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:O})},!1,A),t}},u=await w.handleResponse({req:e,nextConfig:j,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:T,responseGenerator:c,waitUntil:n.waitUntil,isMinimalMode:i});if(!q)return null;if((null==u||null==(a=u.value)?void 0:a.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",O?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let y=(0,f.fromNodeOutgoingHttpHeaders)(u.value.headers);return i&&q||y.delete(h.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||y.get("Cache-Control")||y.set("Cache-Control",(0,m.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(L,B,new Response(u.value.body,{headers:y,status:u.value.status||200})),null};M?await l(M):await I.withPropagatedContext(e.headers,()=>I.trace(u.BaseServerSpan.handleRequest,{spanName:`${F} ${x}`,kind:a.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},l))}catch(t){if(t instanceof y.NoFallbackError||await w.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:O})},!1,A),q)throw t;return await (0,p.sendResponse)(L,B,new Response(null,{status:500})),null}}e.s(["handler",()=>O,"patchFetch",()=>A,"routeModule",()=>w,"serverHooks",()=>C,"workAsyncStorage",()=>S,"workUnitAsyncStorage",()=>E],31798)}];
5
5
 
6
- //# sourceMappingURL=%5Broot-of-the-server%5D__1ec21ccc._.js.map
6
+ //# sourceMappingURL=%5Broot-of-the-server%5D__029203cd._.js.map
@@ -1,4 +1,4 @@
1
1
  module.exports=[76535,e=>{"use strict";var r=e.i(46277);let i=async e=>{let i=await (0,r.loadSharedConfigFiles)(e);return((...e)=>{let r={};for(let i of e)for(let[e,t]of Object.entries(i))void 0!==r[e]?Object.assign(r[e],t):r[e]=t;return r})(i.configFile,i.credentialsFile)};e.s(["parseKnownFiles",0,i],76535)},24868,(e,r,i)=>{r.exports=e.x("fs/promises",()=>require("fs/promises"))},23897,32961,e=>{"use strict";var r=e.i(24868),i=e.i(54799),t=e.i(14747),s=e.i(65790);let o=e=>{let r=(0,i.createHash)("sha1").update(e).digest("hex");return(0,t.join)((0,s.getHomeDir)(),".aws","sso","cache",`${r}.json`)};e.s(["getSSOTokenFilepath",0,o],32961);let n={},a=async e=>{if(n[e])return n[e];let i=o(e);return JSON.parse(await (0,r.readFile)(i,"utf8"))};e.s(["getSSOTokenFromFile",0,a,"tokenIntercept",0,n],23897)},26709,e=>{"use strict";e.s([],23957),e.i(23957);var r=e.i(60400),i=e.i(81355),t=e.i(92395),s=e.i(96405),o=e.i(3289);let n=e=>Object.entries(e).filter(([e])=>e.startsWith(s.IniSectionType.SSO_SESSION+o.CONFIG_PREFIX_SEPARATOR)).reduce((e,[r,i])=>({...e,[r.substring(r.indexOf(o.CONFIG_PREFIX_SEPARATOR)+1)]:i}),{});var a=e.i(7104),l=e.i(49487);let c=()=>({}),g=async(e={})=>(0,l.readFile)(e.configFilepath??(0,t.getConfigFilepath)()).then(a.parseIni).then(n).catch(c);var d=e.i(76535);let f=e=>e&&("string"==typeof e.sso_start_url||"string"==typeof e.sso_account_id||"string"==typeof e.sso_session||"string"==typeof e.sso_region||"string"==typeof e.sso_role_name);e.s(["isSsoProfile",0,f],70487);var p=e.i(9212),h=e.i(48979);class w extends h.ProviderError{name="TokenProviderError";constructor(e,r=!0){super(e,r),Object.setPrototypeOf(this,w.prototype)}}var u=e.i(23897);let S="To refresh this SSO session run 'aws sso login' with the corresponding profile.",_=async(r,i={},t)=>{let{SSOOIDCClient:s}=await e.A(57227),o=e=>i.clientConfig?.[e]??i.parentClientConfig?.[e]??t?.[e];return new s(Object.assign({},i.clientConfig??{},{region:r??i.clientConfig?.region,logger:o("logger"),userAgentAppId:o("userAgentAppId")}))},C=async(r,i,t={},s)=>{let{CreateTokenCommand:o}=await e.A(57227);return(await _(i,t,s)).send(new o({clientId:r.clientId,clientSecret:r.clientSecret,refreshToken:r.refreshToken,grantType:"refresh_token"}))},m=e=>{if(e.expiration&&e.expiration.getTime()<Date.now())throw new w(`Token is expired. ${S}`,!1)},k=(e,r,i=!1)=>{if(void 0===r)throw new w(`Value not present for '${e}' in SSO Token${i?". Cannot refresh":""}. ${S}`,!1)};var O=e.i(32961);let{writeFile:v}=e.i(2157).promises,y=new Date(0),T=async({ssoStartUrl:t,ssoSession:s,ssoAccountId:o,ssoRegion:n,ssoRoleName:a,ssoClient:l,clientConfig:c,parentClientConfig:f,callerClientConfig:h,profile:_,filepath:T,configFilepath:x,ignoreCache:P,logger:A})=>{let I,F,E="To refresh this SSO session run aws sso login with the corresponding profile.";if(s)try{let e=await ((e={})=>async({callerClientConfig:r}={})=>{let t;e.logger?.debug("@aws-sdk/token-providers - fromSso");let s=await (0,d.parseKnownFiles)(e),o=(0,i.getProfileName)({profile:e.profile??r?.profile}),n=s[o];if(n){if(!n.sso_session)throw new w(`Profile '${o}' is missing required property 'sso_session'.`)}else throw new w(`Profile '${o}' could not be found in shared credentials file.`,!1);let a=n.sso_session,l=(await g(e))[a];if(!l)throw new w(`Sso session '${a}' could not be found in shared credentials file.`,!1);for(let e of["sso_start_url","sso_region"])if(!l[e])throw new w(`Sso session '${a}' is missing required property '${e}'.`,!1);l.sso_start_url;let c=l.sso_region;try{t=await (0,u.getSSOTokenFromFile)(a)}catch(e){throw new w(`The SSO session token associated with profile=${o} was not found or is invalid. ${S}`,!1)}k("accessToken",t.accessToken),k("expiresAt",t.expiresAt);let{accessToken:f,expiresAt:p}=t,h={token:f,expiration:new Date(p)};if(h.expiration.getTime()-Date.now()>3e5)return h;if(Date.now()-y.getTime()<3e4)return m(h),h;k("clientId",t.clientId,!0),k("clientSecret",t.clientSecret,!0),k("refreshToken",t.refreshToken,!0);try{y.setTime(Date.now());let i=await C(t,c,e,r);k("accessToken",i.accessToken),k("expiresIn",i.expiresIn);let s=new Date(Date.now()+1e3*i.expiresIn);try{var _;let e;await (_={...t,accessToken:i.accessToken,expiresAt:s.toISOString(),refreshToken:i.refreshToken},e=(0,O.getSSOTokenFilepath)(a),v(e,JSON.stringify(_,null,2)))}catch(e){}return{token:i.accessToken,expiration:s}}catch(e){return m(h),h}})({profile:_,filepath:T,configFilepath:x,ignoreCache:P})();I={accessToken:e.token,expiresAt:new Date(e.expiration).toISOString()}}catch(e){throw new r.CredentialsProviderError(e.message,{tryNextLink:!1,logger:A})}else try{I=await (0,u.getSSOTokenFromFile)(t)}catch(e){throw new r.CredentialsProviderError(`The SSO session associated with this profile is invalid. ${E}`,{tryNextLink:!1,logger:A})}if(new Date(I.expiresAt).getTime()-Date.now()<=0)throw new r.CredentialsProviderError(`The SSO session associated with this profile has expired. ${E}`,{tryNextLink:!1,logger:A});let{accessToken:N}=I,{SSOClient:$,GetRoleCredentialsCommand:b}=await e.A(94624),j=l||new $(Object.assign({},c??{},{logger:c?.logger??h?.logger??f?.logger,region:c?.region??n,userAgentAppId:c?.userAgentAppId??h?.userAgentAppId??f?.userAgentAppId}));try{F=await j.send(new b({accountId:o,roleName:a,accessToken:N}))}catch(e){throw new r.CredentialsProviderError(e,{tryNextLink:!1,logger:A})}let{roleCredentials:{accessKeyId:D,secretAccessKey:R,sessionToken:L,expiration:q,credentialScope:G,accountId:K}={}}=F;if(!D||!R||!L||!q)throw new r.CredentialsProviderError("SSO returns an invalid temporary credential.",{tryNextLink:!1,logger:A});let H={accessKeyId:D,secretAccessKey:R,sessionToken:L,expiration:new Date(q),...G&&{credentialScope:G},...K&&{accountId:K}};return s?(0,p.setCredentialFeature)(H,"CREDENTIALS_SSO","s"):(0,p.setCredentialFeature)(H,"CREDENTIALS_SSO_LEGACY","u"),H},x=(e,i)=>{let{sso_start_url:t,sso_account_id:s,sso_region:o,sso_role_name:n}=e;if(!t||!s||!o||!n)throw new r.CredentialsProviderError(`Profile is configured with invalid SSO credentials. Required parameters "sso_account_id", "sso_region", "sso_role_name", "sso_start_url". Got ${Object.keys(e).join(", ")}
2
2
  Reference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`,{tryNextLink:!1,logger:i});return e};e.s(["validateSsoProfile",0,x],61980);let P=(e={})=>async({callerClientConfig:t}={})=>{e.logger?.debug("@aws-sdk/credential-provider-sso - fromSSO");let{ssoStartUrl:s,ssoAccountId:o,ssoRegion:n,ssoRoleName:a,ssoSession:l}=e,{ssoClient:c}=e,p=(0,i.getProfileName)({profile:e.profile??t?.profile});if(s||o||n||a||l)if(s&&o&&n&&a)return T({ssoStartUrl:s,ssoSession:l,ssoAccountId:o,ssoRegion:n,ssoRoleName:a,ssoClient:c,clientConfig:e.clientConfig,parentClientConfig:e.parentClientConfig,callerClientConfig:e.callerClientConfig,profile:p,filepath:e.filepath,configFilepath:e.configFilepath,ignoreCache:e.ignoreCache,logger:e.logger});else throw new r.CredentialsProviderError('Incomplete configuration. The fromSSO() argument hash must include "ssoStartUrl", "ssoAccountId", "ssoRegion", "ssoRoleName"',{tryNextLink:!1,logger:e.logger});{let i=(await (0,d.parseKnownFiles)(e))[p];if(!i)throw new r.CredentialsProviderError(`Profile ${p} was not found.`,{logger:e.logger});if(!f(i))throw new r.CredentialsProviderError(`Profile ${p} is not configured with SSO credentials.`,{logger:e.logger});if(i?.sso_session){let t=(await g(e))[i.sso_session],o=` configurations in profile ${p} and sso-session ${i.sso_session}`;if(n&&n!==t.sso_region)throw new r.CredentialsProviderError("Conflicting SSO region"+o,{tryNextLink:!1,logger:e.logger});if(s&&s!==t.sso_start_url)throw new r.CredentialsProviderError("Conflicting SSO start_url"+o,{tryNextLink:!1,logger:e.logger});i.sso_region=t.sso_region,i.sso_start_url=t.sso_start_url}let{sso_start_url:t,sso_account_id:o,sso_region:a,sso_role_name:l,sso_session:h}=x(i,e.logger);return T({ssoStartUrl:t,ssoSession:h,ssoAccountId:o,ssoRegion:a,ssoRoleName:l,ssoClient:c,clientConfig:e.clientConfig,parentClientConfig:e.parentClientConfig,callerClientConfig:e.callerClientConfig,profile:p,filepath:e.filepath,configFilepath:e.configFilepath,ignoreCache:e.ignoreCache,logger:e.logger})}};e.s(["fromSSO",0,P],75670),e.i(75670),e.i(70487),e.s([],10105),e.i(10105),e.i(61980),e.s(["fromSSO",0,P,"isSsoProfile",0,f,"validateSsoProfile",0,x],26709)},57227,e=>{e.v(r=>Promise.all(["server/chunks/node_modules_@smithy_smithy-client_dist-es_create-aggregated-client_db42850b.js","server/chunks/node_modules_@aws-sdk_nested-clients_dist-es_submodules_sso-oidc_index_df09d547.js","server/chunks/node_modules_c58ca22f._.js"].map(r=>e.l(r))).then(()=>r(86799)))},94624,e=>{e.v(r=>Promise.all(["server/chunks/node_modules_@aws-sdk_credential-provider-sso_dist-es_loadSso_570f147e.js","server/chunks/node_modules_c58ca22f._.js"].map(r=>e.l(r))).then(()=>r(56690)))}];
3
3
 
4
- //# sourceMappingURL=%5Broot-of-the-server%5D__4297cb97._.js.map
4
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0d6d4443._.js.map
@@ -0,0 +1,18 @@
1
+ module.exports=[14747,(e,t,a)=>{t.exports=e.x("path",()=>require("path"))},46786,(e,t,a)=>{t.exports=e.x("os",()=>require("os"))},22734,(e,t,a)=>{t.exports=e.x("fs",()=>require("fs"))},93695,(e,t,a)=>{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,a)=>{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,a)=>{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,a)=>{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,a)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},7367,e=>{"use strict";var t=e.i(14747),a=e.i(22734),r=e.i(46786);function n(e){return(e=e.replace(/^[\u02dc\uff5e]/,"~")).startsWith("~/")||"~"===e?e.replace(/^~/,r.default.homedir()):e}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"))?t.default.dirname(e):e}function i(){let e=o(),r=t.default.join(e,"node_modules","@slycode","slycode","dist");return a.default.existsSync(r)?r:e}function s(){return process.env.BRIDGE_URL?process.env.BRIDGE_URL:"http://127.0.0.1:3004"}e.s(["expandTilde",()=>n,"getBridgeUrl",()=>s,"getPackageDir",()=>i,"getSlycodeRoot",()=>o])},54799,(e,t,a)=>{t.exports=e.x("crypto",()=>require("crypto"))},33405,(e,t,a)=>{t.exports=e.x("child_process",()=>require("child_process"))},73178,e=>{"use strict";var t=e.i(22734),a=e.i(14747),r=e.i(46676),n=e.i(7367);function o(){return a.default.join((0,n.getSlycodeRoot)(),"store")}function i(e,n){let o=[],i="skill"===n?"skills":"agents",s=a.default.join(e,i);try{if(!t.default.existsSync(s))return o;for(let e of t.default.readdirSync(s,{withFileTypes:!0})){let l,c;if("skill"===n){if(!e.isDirectory()||(l=a.default.join(s,e.name,"SKILL.md"),c=a.default.join(i,e.name,"SKILL.md"),!t.default.existsSync(l)))continue}else{if(!e.isFile()||!e.name.endsWith(".md"))continue;l=a.default.join(s,e.name),c=a.default.join(i,e.name)}let u=t.default.readFileSync(l,"utf-8"),d=(0,r.parseFrontmatter)(u),p=d?.name||e.name.replace(/\.md$/,"");o.push({name:p,type:n,path:c,frontmatter:d,isValid:(0,r.validateFrontmatter)(d)})}}catch{}return o.sort((e,t)=>e.name.localeCompare(t.name))}function s(){let e=o(),r=i(e,"skill");return{skills:r,agents:i(e,"agent"),mcp:function(e){let r=a.default.join(e,"mcp"),n=[];try{if(!t.default.existsSync(r))return n;for(let e of t.default.readdirSync(r,{withFileTypes:!0})){let o;if(!e.isFile()||!e.name.endsWith(".json"))continue;let i=a.default.join(r,e.name),s=t.default.readFileSync(i,"utf-8");try{o=JSON.parse(s)}catch{continue}let l=o.name||e.name.replace(/\.json$/,"");n.push({name:l,type:"mcp",path:a.default.join("mcp",e.name),frontmatter:{name:l,version:o.version,description:o.description,updated:o.updated},isValid:!!(o.name&&(o.command||o.url))})}}catch{}return n}(e)}}function l(){let e=o();return[...i(e,"skill"),...i(e,"agent")]}e.s(["getStoreAssets",()=>l,"scanStore",()=>s])},48044,e=>{"use strict";var t=e.i(22734),a=e.i(33405),r=e.i(14747),n=e.i(46676),o=e.i(73178);let i={outdatedAssets:.3,staleCards:.15,unresolvedProblems:.25,missingClaudeMd:.1,nonCompliantFrontmatter:.2};function s(e,t=0,a=0,r=0,n=i){let o=[],l=Math.max(a,1);o.push({name:"Outdated Assets",weight:n.outdatedAssets,value:t,maxValue:l});let c=Date.now(),u=[...e.backlog],d=u.filter(e=>(c-new Date(e.created_at).getTime())/864e5>14&&"done"!==e.status).length,p=Math.max(u.length,1);o.push({name:"Stale Cards",weight:n.staleCards,value:d,maxValue:p}),o.push({name:"Unresolved Problems",weight:n.unresolvedProblems,value:0,maxValue:1}),o.push({name:"Missing CLAUDE.md",weight:n.missingClaudeMd,value:+!e.hasClaudeMd,maxValue:1});let f=Math.max(a,1);o.push({name:"Non-compliant Frontmatter",weight:n.nonCompliantFrontmatter,value:r,maxValue:f});let h=0;for(let e of o)h+=Math.min(e.maxValue>0?e.value/e.maxValue:0,1)*e.weight;let m=Math.round(Math.max(0,(1-h)*100));return{score:m,level:m>=80?"green":m>=50?"amber":"red",factors:o}}var l=e.i(7367);function c(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let e=process.cwd();return e.endsWith("/web")||e.endsWith("\\web")?r.default.dirname(e):e}let u=c(),d=r.default.join(u,"projects","registry.json");async function p(){try{let e=await t.promises.readFile(d,"utf-8");return JSON.parse(e)}catch(e){throw console.error("Failed to load registry:",e),Error(`Failed to load registry from ${d}`)}}async function f(e){let a=JSON.stringify(e,null,2)+"\n";await t.promises.writeFile(d,a,"utf-8")}async function h(e){try{return(await t.promises.stat(e)).isDirectory()}catch{return!1}}async function m(e){try{let a=await t.promises.readFile(e,"utf-8");return JSON.parse(a)}catch{return null}}async function g(e,t,a){let n=r.default.join(e,"documentation","backlog.json"),o=await m(n);return o?o.map(e=>({...e,projectId:t,projectName:a})):[]}async function y(e,t){let a=r.default.join(e,"documentation","designs.json"),n=await m(a);return n?n.map(e=>({...e,projectId:t})):[]}async function v(e,t){let a=r.default.join(e,"documentation","features.json"),n=await m(a);return n?n.map(e=>({...e,projectId:t})):[]}async function w(e){let t=e.path;if(!await h(t))return{...e,backlog:[],designs:[],features:[],accessible:!1,error:`Path not accessible: ${t}`};let[r,o,i]=await Promise.all([g(t,e.id,e.name),y(t,e.id),v(t,e.id)]),s=(0,n.scanProjectAssets)(t,e.id),l=(0,n.detectPlatforms)(t),c=function(e){try{return(0,a.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:r,designs:o,features:i,assets:s,platforms:l,gitUncommitted:c>=0?c:void 0,accessible:!0}}async function x(){let e=await p();for(let t=0;t<e.projects.length;t++)void 0===e.projects[t].order&&(e.projects[t].order=t);e.projects.sort((e,t)=>(e.order??0)-(t.order??0));let t=e.projects.map(e=>w(e)),a=await Promise.all(t),i=(0,o.getStoreAssets)(),u=["skill","agent"],d=0,f=[];for(let t of["claude","agents"])for(let a of u){let r=i.filter(e=>e.type===a),o=new Map;for(let r of e.projects){let e=(0,n.scanProviderAssets)(r.path,t);o.set(r.id,e.filter(e=>e.type===a))}let s=(0,n.buildStoreAssetMatrix)(r,o,e.projects,a);f.push(...s)}for(let e of f)for(let t of e.cells)"outdated"===t.status&&d++;for(let e of a){if(!e.accessible)continue;let t=0;for(let a of f)for(let r of a.cells)r.projectId===e.id&&"outdated"===r.status&&t++;e.healthScore=function(e,t,a=0,r){if(!t)return s(e,0,0,0,void 0);let n=[...t.skills,...t.agents];return s(e,a,n.length,n.filter(e=>!e.isValid).length,void 0)}(e,e.assets,t)}let h=0,g=0;for(let e of a){if(!e.accessible)continue;let t=r.default.join(e.path,"documentation","kanban.json"),a=await m(t);if(a?.stages){h+=(a.stages.backlog||[]).filter(e=>!e.archived).length;let e=(a.stages.implementation||[]).filter(e=>!e.archived),t=(a.stages.testing||[]).filter(e=>!e.archived);g+=e.length+t.length}}let y=a.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(),r={};for(let e of t.sessions||[])if(e.isActive){let t=e.name.split(":")[0];r[t]=(r[t]||0)+1}for(let e of a)e.activeSessions=r[e.id]??0}}catch{}let x=c();return{projects:a,totalBacklogItems:h,activeItems:g,totalOutdatedAssets:d,totalUncommitted:y,lastRefresh:new Date().toISOString(),slycodeRoot:x,projectsDir:r.default.dirname(x)}}e.s(["getRepoRoot",()=>c,"loadDashboardData",()=>x,"loadRegistry",()=>p,"saveRegistry",()=>f],48044)},71741,e=>{"use strict";var t=e.i(14747),a=e.i(48044);let r={hourly:36e5,daily:864e5,weekly:6048e5},n=null,o=0;async function i(){let e=Date.now();return n&&e-o<5e3||(n=await (0,a.loadRegistry)(),o=e),n}class s extends Error{code;constructor(e,t){super(e),this.code=t,this.name="ProjectResolutionError"}}async function l(e){if(e===t.default.basename((0,a.getRepoRoot)()).replace(/_/g,"-"))return(0,a.getRepoRoot)();let r=(await i()).projects.find(t=>t.id===e);if(!r)throw new s(`Project '${e}' not found in registry`,"NOT_FOUND");return r.path}async function c(e){let a=await l(e);return t.default.join(a,"documentation","kanban.json")}async function u(e){let a=await l(e);return t.default.join(a,"documentation","archive")}async function d(e,a,r=1){let n=await u(e),o=String(r).padStart(3,"0");return t.default.join(n,`kanban_${a}_${o}.json`)}async function p(e){let a=await u(e),n=[];for(let e=1;e<=10;e++){let r=String(e).padStart(3,"0");n.push(t.default.join(a,`kanban_${r}.json`))}for(let e of Object.keys(r))n.push(t.default.join(a,`kanban_${e}.json`));return n}async function f(e){return e?c(e):t.default.join((0,a.getRepoRoot)(),"documentation")}e.s(["BACKUP_TIERS",0,r,"ProjectResolutionError",()=>s,"getArchiveDir",()=>u,"getKanbanPath",()=>c,"getLegacyBackupPaths",()=>p,"getTieredBackupPath",()=>d,"getWatchPath",()=>f,"resolveProjectRoot",()=>l])},54226,e=>{"use strict";var t=e.i(47909),a=e.i(74017),r=e.i(96250),n=e.i(59756),o=e.i(61916),i=e.i(74677),s=e.i(69741),l=e.i(16795),c=e.i(87718),u=e.i(95169),d=e.i(47587),p=e.i(66012),f=e.i(70101),h=e.i(74838),m=e.i(10372),g=e.i(93695);e.i(52474);var y=e.i(220),v=e.i(22734),w=e.i(71741);async function x(e){let t,{searchParams:a}=new URL(e.url),r=a.get("projectId"),n=new TextEncoder,o=null,i=null,s=!1;try{t=await (0,w.getWatchPath)(r)}catch(e){if(e instanceof w.ProjectResolutionError)return new Response(new ReadableStream({start(t){let a=`event: error
2
+ data: ${JSON.stringify({message:e.message,code:e.code})}
3
+
4
+ `;t.enqueue(n.encode(a)),t.close()}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}});throw e}return new Response(new ReadableStream({start(e){let a=`event: connected
5
+ data: ${JSON.stringify({projectId:r||"all"})}
6
+
7
+ `;e.enqueue(n.encode(a));try{(o=(0,v.watch)(t,{recursive:!r},(t,a)=>{s||(r||!a||a.match(/^kanban.*\.json$/))&&(i&&clearTimeout(i),i=setTimeout(()=>{if(s)return;let t=`event: update
8
+ data: ${JSON.stringify({projectId:r||"all",timestamp:new Date().toISOString(),file:a||"kanban.json"})}
9
+
10
+ `;try{e.enqueue(n.encode(t))}catch{}},500))})).on("error",t=>{if(s)return;let a=`event: error
11
+ data: ${JSON.stringify({message:t.message})}
12
+
13
+ `;try{e.enqueue(n.encode(a))}catch{}})}catch{let t=`event: error
14
+ data: ${JSON.stringify({message:"Failed to start file watcher"})}
15
+
16
+ `;e.enqueue(n.encode(t))}let l=setInterval(()=>{if(s)return void clearInterval(l);try{e.enqueue(n.encode("event: heartbeat\ndata: {}\n\n"))}catch{clearInterval(l)}},3e4)},cancel(){s=!0,i&&clearTimeout(i),o&&o.close()}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","X-Accel-Buffering":"no"}})}e.s(["GET",()=>x,"dynamic",0,"force-dynamic"],99451);var R=e.i(99451);let j=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/kanban/stream/route",pathname:"/api/kanban/stream",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/kanban/stream/route.ts",nextConfigOutput:"standalone",userland:R}),{workAsyncStorage:b,workUnitAsyncStorage:S,serverHooks:E}=j;function C(){return(0,r.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:S})}async function k(e,t,r){j.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/kanban/stream/route";v=v.replace(/\/index$/,"")||"/";let w=await j.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:x,params:R,nextConfig:b,parsedUrl:S,isDraftMode:E,prerenderManifest:C,routerServerContext:k,isOnDemandRevalidate:O,revalidateOnlyGenerated:P,resolvedPathname:A,clientReferenceManifest:T,serverActionsManifest:_}=w,N=(0,s.normalizeAppPath)(v),D=!!(C.dynamicRoutes[N]||C.routes[A]),q=async()=>((null==k?void 0:k.render404)?await k.render404(e,t,S,!1):t.end("This page could not be found"),null);if(D&&!E){let e=!!C.routes[A],t=C.dynamicRoutes[N];if(t&&!1===t.fallback&&!e){if(b.experimental.adapterPath)return await q();throw new g.NoFallbackError}}let I=null;!D||j.isDev||E||(I="/index"===(I=A)?"/":I);let M=!0===j.isDev||!D,U=D&&!M;_&&T&&(0,i.setManifestsSingleton)({page:v,clientReferenceManifest:T,serverActionsManifest:_});let F=e.method||"GET",$=(0,o.getTracer)(),H=$.getActiveScopeSpan(),L={params:R,prerenderManifest:C,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:M,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:b.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>j.onRequestError(e,t,r,n,k)},sharedContext:{buildId:x}},B=new l.NodeNextRequest(e),V=new l.NodeNextResponse(t),K=c.NextRequestAdapter.fromNodeNextRequest(B,(0,c.signalFromNodeResponse)(t));try{let i=async e=>j.handle(K,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=$.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route");if(r){let t=`${F} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t)}else e.updateName(`${F} ${v}`)}),s=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var o,l;let c=async({previousCacheEntry:a})=>{try{if(!s&&O&&P&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await i(n);e.fetchMetrics=L.renderOpts.fetchMetrics;let l=L.renderOpts.pendingWaitUntil;l&&r.waitUntil&&(r.waitUntil(l),l=void 0);let c=L.renderOpts.collectedTags;if(!D)return await (0,p.sendResponse)(B,V,o,L.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(o.headers);c&&(t[m.NEXT_CACHE_TAGS_HEADER]=c),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,r=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await j.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:O})},!1,k),t}},u=await j.handleResponse({req:e,nextConfig:b,cacheKey:I,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:P,responseGenerator:c,waitUntil:r.waitUntil,isMinimalMode:s});if(!D)return null;if((null==u||null==(o=u.value)?void 0:o.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",O?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let g=(0,f.fromNodeOutgoingHttpHeaders)(u.value.headers);return s&&D||g.delete(m.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||g.get("Cache-Control")||g.set("Cache-Control",(0,h.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(B,V,new Response(u.value.body,{headers:g,status:u.value.status||200})),null};H?await l(H):await $.withPropagatedContext(e.headers,()=>$.trace(u.BaseServerSpan.handleRequest,{spanName:`${F} ${v}`,kind:o.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await j.onRequestError(e,t,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:O})},!1,k),D)throw t;return await (0,p.sendResponse)(B,V,new Response(null,{status:500})),null}}e.s(["handler",()=>k,"patchFetch",()=>C,"routeModule",()=>j,"serverHooks",()=>E,"workAsyncStorage",()=>b,"workUnitAsyncStorage",()=>S],54226)}];
17
+
18
+ //# sourceMappingURL=%5Broot-of-the-server%5D__172ad0b1._.js.map
@@ -0,0 +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"))},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},7367,e=>{"use strict";var t=e.i(14747),r=e.i(22734),a=e.i(46786);function n(e){return(e=e.replace(/^[\u02dc\uff5e]/,"~")).startsWith("~/")||"~"===e?e.replace(/^~/,a.default.homedir()):e}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 o(){let e=s(),a=t.default.join(e,"node_modules","@slycode","slycode","dist");return r.default.existsSync(a)?a:e}function i(){return process.env.BRIDGE_URL?process.env.BRIDGE_URL:"http://127.0.0.1:3004"}e.s(["expandTilde",()=>n,"getBridgeUrl",()=>i,"getPackageDir",()=>o,"getSlycodeRoot",()=>s])},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},24361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},70964,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),s=e.i(61916),o=e.i(74677),i=e.i(69741),l=e.i(16795),d=e.i(87718),u=e.i(95169),p=e.i(47587),c=e.i(66012),h=e.i(70101),x=e.i(74838),f=e.i(10372),R=e.i(93695);e.i(52474);var v=e.i(220),g=e.i(89171),y=e.i(33405),m=e.i(24361),w=e.i(14747),E=e.i(7367);let C=(0,m.promisify)(y.execFile);async function j(e){try{let{path:t,providers:r}=await e.json();if(!t)return g.NextResponse.json({error:"path is required"},{status:400});let a=(0,E.expandTilde)(t);if(!w.default.isAbsolute(a))return g.NextResponse.json({error:"Please enter an absolute path (e.g. ~/Dev/myproject or /home/user/Dev/myproject)"},{status:400});let n=w.default.resolve(a),s=[w.default.join((0,E.getPackageDir)(),"scripts","scaffold.js"),"analyze","--path",n,"--json"];r&&Array.isArray(r)&&r.length>0&&s.push("--providers",r.join(","));let{stdout:o}=await C("node",s,{timeout:1e4,windowsHide:!0}),i=JSON.parse(o);return g.NextResponse.json(i)}catch(e){return console.error("Failed to analyze directory:",e),g.NextResponse.json({error:"Failed to analyze directory",details:String(e)},{status:500})}}e.s(["POST",()=>j,"dynamic",0,"force-dynamic"],18856);var b=e.i(18856);let A=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/projects/analyze/route",pathname:"/api/projects/analyze",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/projects/analyze/route.ts",nextConfigOutput:"standalone",userland:b}),{workAsyncStorage:O,workUnitAsyncStorage:N,serverHooks:_}=A;function P(){return(0,a.patchFetch)({workAsyncStorage:O,workUnitAsyncStorage:N})}async function S(e,t,a){A.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/projects/analyze/route";g=g.replace(/\/index$/,"")||"/";let y=await A.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:m,params:w,nextConfig:E,parsedUrl:C,isDraftMode:j,prerenderManifest:b,routerServerContext:O,isOnDemandRevalidate:N,revalidateOnlyGenerated:_,resolvedPathname:P,clientReferenceManifest:S,serverActionsManifest:T}=y,q=(0,i.normalizeAppPath)(g),k=!!(b.dynamicRoutes[q]||b.routes[P]),D=async()=>((null==O?void 0:O.render404)?await O.render404(e,t,C,!1):t.end("This page could not be found"),null);if(k&&!j){let e=!!b.routes[P],t=b.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await D();throw new R.NoFallbackError}}let H=null;!k||A.isDev||j||(H="/index"===(H=P)?"/":H);let U=!0===A.isDev||!k,I=k&&!U;T&&S&&(0,o.setManifestsSingleton)({page:g,clientReferenceManifest:S,serverActionsManifest:T});let M=e.method||"GET",F=(0,s.getTracer)(),L=F.getActiveScopeSpan(),$={params:w,prerenderManifest:b,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:U,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>A.onRequestError(e,t,a,n,O)},sharedContext:{buildId:m}},z=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),K=d.NextRequestAdapter.fromNodeNextRequest(z,(0,d.signalFromNodeResponse)(t));try{let o=async e=>A.handle(K,$).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${M} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${g}`)}),i=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var s,l;let d=async({previousCacheEntry:r})=>{try{if(!i&&N&&_&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await o(n);e.fetchMetrics=$.renderOpts.fetchMetrics;let l=$.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let d=$.renderOpts.collectedTags;if(!k)return await (0,c.sendResponse)(z,B,s,$.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);d&&(t[f.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,a=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:$.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await A.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:N})},!1,O),t}},u=await A.handleResponse({req:e,nextConfig:E,cacheKey:H,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:_,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:i});if(!k)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",N?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),j&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let R=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return i&&k||R.delete(f.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||R.get("Cache-Control")||R.set("Cache-Control",(0,x.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(z,B,new Response(u.value.body,{headers:R,status:u.value.status||200})),null};L?await l(L):await F.withPropagatedContext(e.headers,()=>F.trace(u.BaseServerSpan.handleRequest,{spanName:`${M} ${g}`,kind:s.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},l))}catch(t){if(t instanceof R.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:N})},!1,O),k)throw t;return await (0,c.sendResponse)(z,B,new Response(null,{status:500})),null}}e.s(["handler",()=>S,"patchFetch",()=>P,"routeModule",()=>A,"serverHooks",()=>_,"workAsyncStorage",()=>O,"workUnitAsyncStorage",()=>N],70964)}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__1c5f4ef9._.js.map
@@ -0,0 +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"))},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},7367,e=>{"use strict";var t=e.i(14747),r=e.i(22734),a=e.i(46786);function n(e){return(e=e.replace(/^[\u02dc\uff5e]/,"~")).startsWith("~/")||"~"===e?e.replace(/^~/,a.default.homedir()):e}function i(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let e=process.cwd();return(console.warn("[paths] SLYCODE_HOME not set in production — falling back to cwd:",e),e.endsWith("/web")||e.endsWith("\\web"))?t.default.dirname(e):e}function s(){let e=i(),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(["expandTilde",()=>n,"getBridgeUrl",()=>o,"getPackageDir",()=>s,"getSlycodeRoot",()=>i])},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 i(){return r.default.join((0,n.getSlycodeRoot)(),"store")}function s(e,n){let i=[],s="skill"===n?"skills":"agents",o=r.default.join(e,s);try{if(!t.default.existsSync(o))return i;for(let e of t.default.readdirSync(o,{withFileTypes:!0})){let l,d;if("skill"===n){if(!e.isDirectory()||(l=r.default.join(o,e.name,"SKILL.md"),d=r.default.join(s,e.name,"SKILL.md"),!t.default.existsSync(l)))continue}else{if(!e.isFile()||!e.name.endsWith(".md"))continue;l=r.default.join(o,e.name),d=r.default.join(s,e.name)}let u=t.default.readFileSync(l,"utf-8"),c=(0,a.parseFrontmatter)(u),p=c?.name||e.name.replace(/\.md$/,"");i.push({name:p,type:n,path:d,frontmatter:c,isValid:(0,a.validateFrontmatter)(c)})}}catch{}return i.sort((e,t)=>e.name.localeCompare(t.name))}function o(){let e=i(),a=s(e,"skill");return{skills:a,agents:s(e,"agent"),mcp:function(e){let a=r.default.join(e,"mcp"),n=[];try{if(!t.default.existsSync(a))return n;for(let e of t.default.readdirSync(a,{withFileTypes:!0})){let i;if(!e.isFile()||!e.name.endsWith(".json"))continue;let s=r.default.join(a,e.name),o=t.default.readFileSync(s,"utf-8");try{i=JSON.parse(o)}catch{continue}let l=i.name||e.name.replace(/\.json$/,"");n.push({name:l,type:"mcp",path:r.default.join("mcp",e.name),frontmatter:{name:l,version:i.version,description:i.description,updated:i.updated},isValid:!!(i.name&&(i.command||i.url))})}}catch{}return n}(e)}}function l(){let e=i();return[...s(e,"skill"),...s(e,"agent")]}e.s(["getStoreAssets",()=>l,"scanStore",()=>o])},48044,e=>{"use strict";var t=e.i(22734),r=e.i(33405),a=e.i(14747),n=e.i(46676),i=e.i(73178);let s={outdatedAssets:.3,staleCards:.15,unresolvedProblems:.25,missingClaudeMd:.1,nonCompliantFrontmatter:.2};function o(e,t=0,r=0,a=0,n=s){let i=[],l=Math.max(r,1);i.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);i.push({name:"Stale Cards",weight:n.staleCards,value:c,maxValue:p}),i.push({name:"Unresolved Problems",weight:n.unresolvedProblems,value:0,maxValue:1}),i.push({name:"Missing CLAUDE.md",weight:n.missingClaudeMd,value:+!e.hasClaudeMd,maxValue:1});let f=Math.max(r,1);i.push({name:"Non-compliant Frontmatter",weight:n.nonCompliantFrontmatter,value:a,maxValue:f});let m=0;for(let e of i)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:i}}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"),i=await h(n);return i?i.map(e=>({...e,projectId:t,projectName:r})):[]}async function x(e,t){let r=a.default.join(e,"documentation","designs.json"),n=await h(r);return n?n.map(e=>({...e,projectId:t})):[]}async function v(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 y(e){let t=e.path;if(!await m(t))return{...e,backlog:[],designs:[],features:[],accessible:!1,error:`Path not accessible: ${t}`};let[a,i,s]=await Promise.all([g(t,e.id,e.name),x(t,e.id),v(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:i,features:s,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=>y(e)),r=await Promise.all(t),s=(0,i.getStoreAssets)(),u=["skill","agent"],c=0,f=[];for(let t of["claude","agents"])for(let r of u){let a=s.filter(e=>e.type===r),i=new Map;for(let a of e.projects){let e=(0,n.scanProviderAssets)(a.path,t);i.set(a.id,e.filter(e=>e.type===r))}let o=(0,n.buildStoreAssetMatrix)(a,i,e.projects,r);f.push(...o)}for(let e of f)for(let t of e.cells)"outdated"===t.status&&c++;for(let e of r){if(!e.accessible)continue;let t=0;for(let r of f)for(let a of r.cells)a.projectId===e.id&&"outdated"===a.status&&t++;e.healthScore=function(e,t,r=0,a){if(!t)return o(e,0,0,0,void 0);let n=[...t.skills,...t.agents];return o(e,r,n.length,n.filter(e=>!e.isValid).length,void 0)}(e,e.assets,t)}let m=0,g=0;for(let e of r){if(!e.accessible)continue;let t=a.default.join(e.path,"documentation","kanban.json"),r=await h(t);if(r?.stages){m+=(r.stages.backlog||[]).filter(e=>!e.archived).length;let e=(r.stages.implementation||[]).filter(e=>!e.archived),t=(r.stages.testing||[]).filter(e=>!e.archived);g+=e.length+t.length}}let x=r.reduce((e,t)=>e+(t.gitUncommitted&&t.gitUncommitted>0?t.gitUncommitted:0),0),v=(0,l.getBridgeUrl)();try{let e=await fetch(`${v}/stats`,{signal:AbortSignal.timeout(2e3)});if(e.ok){let t=await e.json(),a={};for(let e of t.sessions||[])if(e.isActive){let t=e.name.split(":")[0];a[t]=(a[t]||0)+1}for(let e of r)e.activeSessions=a[e.id]??0}}catch{}let w=d();return{projects:r,totalBacklogItems:m,activeItems:g,totalOutdatedAssets:c,totalUncommitted:x,lastRefresh:new Date().toISOString(),slycodeRoot:w,projectsDir:a.default.dirname(w)}}e.s(["getRepoRoot",()=>d,"loadDashboardData",()=>w,"loadRegistry",()=>p,"saveRegistry",()=>f],48044)},98036,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),i=e.i(61916),s=e.i(74677),o=e.i(69741),l=e.i(16795),d=e.i(87718),u=e.i(95169),c=e.i(47587),p=e.i(66012),f=e.i(70101),m=e.i(74838),h=e.i(10372),g=e.i(93695);e.i(52474);var x=e.i(220),v=e.i(89171),y=e.i(33405),w=e.i(48044);async function R(){try{let e=await (0,w.loadRegistry)(),t={};for(let r of e.projects)t[r.id]=function(e){try{return(0,y.execSync)("git status --porcelain",{cwd:e,encoding:"utf-8",timeout:5e3,windowsHide:!0}).split("\n").filter(e=>e.trim().length>0).length}catch{return -1}}(r.path);return v.NextResponse.json(t)}catch(e){return console.error("Failed to get git status:",e),v.NextResponse.json({error:"Failed to get git status",details:String(e)},{status:500})}}e.s(["GET",()=>R,"dynamic",0,"force-dynamic"],46438);var E=e.i(46438);let j=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/git-status/route",pathname:"/api/git-status",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/git-status/route.ts",nextConfigOutput:"standalone",userland:E}),{workAsyncStorage:S,workUnitAsyncStorage:C,serverHooks:b}=j;function A(){return(0,a.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:C})}async function O(e,t,a){j.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/git-status/route";v=v.replace(/\/index$/,"")||"/";let y=await j.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:w,params:R,nextConfig:E,parsedUrl:S,isDraftMode:C,prerenderManifest:b,routerServerContext:A,isOnDemandRevalidate:O,revalidateOnlyGenerated:k,resolvedPathname:P,clientReferenceManifest:_,serverActionsManifest:D}=y,N=(0,o.normalizeAppPath)(v),M=!!(b.dynamicRoutes[N]||b.routes[P]),T=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,S,!1):t.end("This page could not be found"),null);if(M&&!C){let e=!!b.routes[P],t=b.dynamicRoutes[N];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await T();throw new g.NoFallbackError}}let F=null;!M||j.isDev||C||(F="/index"===(F=P)?"/":F);let U=!0===j.isDev||!M,q=M&&!U;D&&_&&(0,s.setManifestsSingleton)({page:v,clientReferenceManifest:_,serverActionsManifest:D});let H=e.method||"GET",I=(0,i.getTracer)(),L=I.getActiveScopeSpan(),$={params:R,prerenderManifest:b,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:U,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>j.onRequestError(e,t,a,n,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 s=async e=>j.handle(B,$).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=I.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${H} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${H} ${v}`)}),o=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var i,l;let d=async({previousCacheEntry:r})=>{try{if(!o&&O&&k&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await s(n);e.fetchMetrics=$.renderOpts.fetchMetrics;let l=$.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let d=$.renderOpts.collectedTags;if(!M)return await (0,p.sendResponse)(V,K,i,$.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(i.headers);d&&(t[h.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,a=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:$.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await j.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:O})},!1,A),t}},u=await j.handleResponse({req:e,nextConfig:E,cacheKey:F,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:k,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:o});if(!M)return null;if((null==u||null==(i=u.value)?void 0:i.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",O?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let g=(0,f.fromNodeOutgoingHttpHeaders)(u.value.headers);return o&&M||g.delete(h.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||g.get("Cache-Control")||g.set("Cache-Control",(0,m.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(V,K,new Response(u.value.body,{headers:g,status:u.value.status||200})),null};L?await l(L):await I.withPropagatedContext(e.headers,()=>I.trace(u.BaseServerSpan.handleRequest,{spanName:`${H} ${v}`,kind:i.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await j.onRequestError(e,t,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:O})},!1,A),M)throw t;return await (0,p.sendResponse)(V,K,new Response(null,{status:500})),null}}e.s(["handler",()=>O,"patchFetch",()=>A,"routeModule",()=>j,"serverHooks",()=>b,"workAsyncStorage",()=>S,"workUnitAsyncStorage",()=>C],98036)}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__1cab11f0._.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"))},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},24868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},39063,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),s=e.i(61916),o=e.i(74677),i=e.i(69741),l=e.i(16795),d=e.i(87718),u=e.i(95169),p=e.i(47587),c=e.i(66012),x=e.i(70101),h=e.i(74838),f=e.i(10372),m=e.i(93695);e.i(52474);var R=e.i(220),v=e.i(89171),g=e.i(46786),y=e.i(24868);let w=null;async function E(){try{let e=(await (0,y.readFile)("/proc/meminfo","utf-8")).split("\n"),t=0,r=0;for(let a of e)a.startsWith("SwapTotal:")?t=1024*parseInt(a.split(/\s+/)[1],10):a.startsWith("SwapFree:")&&(r=1024*parseInt(a.split(/\s+/)[1],10));return{used:t-r,total:t}}catch{return{used:0,total:0}}}async function C(){try{let e=function(){let e=g.default.cpus(),t=0,r=0;for(let a of e){for(let e in a.times)r+=a.times[e];t+=a.times.idle}let a={idle:t,total:r};if(null===w)return w=a,0;let n=a.idle-w.idle,s=a.total-w.total;return(w=a,0===s)?0:Math.round(10*(100-n/s*100))/10}(),t=g.default.totalmem(),r=g.default.freemem(),a=await E();return v.NextResponse.json({cpu:e,memory:{used:t-r,total:t},swap:a})}catch(e){return console.error("Error getting system stats:",e),v.NextResponse.json({error:"Failed to get system stats"},{status:500})}}e.s(["GET",()=>C],57431);var A=e.i(57431);let b=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/system-stats/route",pathname:"/api/system-stats",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/system-stats/route.ts",nextConfigOutput:"standalone",userland:A}),{workAsyncStorage:T,workUnitAsyncStorage:N,serverHooks:P}=b;function q(){return(0,a.patchFetch)({workAsyncStorage:T,workUnitAsyncStorage:N})}async function k(e,t,a){b.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/system-stats/route";v=v.replace(/\/index$/,"")||"/";let g=await b.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:y,params:w,nextConfig:E,parsedUrl:C,isDraftMode:A,prerenderManifest:T,routerServerContext:N,isOnDemandRevalidate:P,revalidateOnlyGenerated:q,resolvedPathname:k,clientReferenceManifest:O,serverActionsManifest:S}=g,_=(0,i.normalizeAppPath)(v),j=!!(T.dynamicRoutes[_]||T.routes[k]),H=async()=>((null==N?void 0:N.render404)?await N.render404(e,t,C,!1):t.end("This page could not be found"),null);if(j&&!A){let e=!!T.routes[k],t=T.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await H();throw new m.NoFallbackError}}let I=null;!j||b.isDev||A||(I="/index"===(I=k)?"/":I);let U=!0===b.isDev||!j,D=j&&!U;S&&O&&(0,o.setManifestsSingleton)({page:v,clientReferenceManifest:O,serverActionsManifest:S});let M=e.method||"GET",F=(0,s.getTracer)(),$=F.getActiveScopeSpan(),K={params:w,prerenderManifest:T,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:U,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>b.onRequestError(e,t,a,n,N)},sharedContext:{buildId:y}},B=new l.NodeNextRequest(e),L=new l.NodeNextResponse(t),G=d.NextRequestAdapter.fromNodeNextRequest(B,(0,d.signalFromNodeResponse)(t));try{let o=async e=>b.handle(G,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${M} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${v}`)}),i=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var s,l;let d=async({previousCacheEntry:r})=>{try{if(!i&&P&&q&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await o(n);e.fetchMetrics=K.renderOpts.fetchMetrics;let l=K.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let d=K.renderOpts.collectedTags;if(!j)return await (0,c.sendResponse)(B,L,s,K.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,x.toNodeOutgoingHttpHeaders)(s.headers);d&&(t[f.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,a=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await b.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:P})},!1,N),t}},u=await b.handleResponse({req:e,nextConfig:E,cacheKey:I,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:q,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:i});if(!j)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==R.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",P?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,x.fromNodeOutgoingHttpHeaders)(u.value.headers);return i&&j||m.delete(f.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,h.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(B,L,new Response(u.value.body,{headers:m,status:u.value.status||200})),null};$?await l($):await F.withPropagatedContext(e.headers,()=>F.trace(u.BaseServerSpan.handleRequest,{spanName:`${M} ${v}`,kind:s.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},l))}catch(t){if(t instanceof m.NoFallbackError||await b.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:P})},!1,N),j)throw t;return await (0,c.sendResponse)(B,L,new Response(null,{status:500})),null}}e.s(["handler",()=>k,"patchFetch",()=>q,"routeModule",()=>b,"serverHooks",()=>P,"workAsyncStorage",()=>T,"workUnitAsyncStorage",()=>N],39063)}];
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"))},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},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"))},24868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},39063,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),s=e.i(61916),o=e.i(74677),i=e.i(69741),l=e.i(16795),d=e.i(87718),u=e.i(95169),p=e.i(47587),c=e.i(66012),x=e.i(70101),h=e.i(74838),f=e.i(10372),m=e.i(93695);e.i(52474);var R=e.i(220),v=e.i(89171),g=e.i(46786),y=e.i(24868);let w=null;async function E(){try{let e=(await (0,y.readFile)("/proc/meminfo","utf-8")).split("\n"),t=0,r=0;for(let a of e)a.startsWith("SwapTotal:")?t=1024*parseInt(a.split(/\s+/)[1],10):a.startsWith("SwapFree:")&&(r=1024*parseInt(a.split(/\s+/)[1],10));return{used:t-r,total:t}}catch{return{used:0,total:0}}}async function C(){try{let e=function(){let e=g.default.cpus(),t=0,r=0;for(let a of e){for(let e in a.times)r+=a.times[e];t+=a.times.idle}let a={idle:t,total:r};if(null===w)return w=a,0;let n=a.idle-w.idle,s=a.total-w.total;return(w=a,0===s)?0:Math.round(10*(100-n/s*100))/10}(),t=g.default.totalmem(),r=g.default.freemem(),a=await E();return v.NextResponse.json({cpu:e,memory:{used:t-r,total:t},swap:a})}catch(e){return console.error("Error getting system stats:",e),v.NextResponse.json({error:"Failed to get system stats"},{status:500})}}e.s(["GET",()=>C],57431);var A=e.i(57431);let b=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/system-stats/route",pathname:"/api/system-stats",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/system-stats/route.ts",nextConfigOutput:"standalone",userland:A}),{workAsyncStorage:T,workUnitAsyncStorage:N,serverHooks:P}=b;function q(){return(0,a.patchFetch)({workAsyncStorage:T,workUnitAsyncStorage:N})}async function k(e,t,a){b.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/system-stats/route";v=v.replace(/\/index$/,"")||"/";let g=await b.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:y,params:w,nextConfig:E,parsedUrl:C,isDraftMode:A,prerenderManifest:T,routerServerContext:N,isOnDemandRevalidate:P,revalidateOnlyGenerated:q,resolvedPathname:k,clientReferenceManifest:O,serverActionsManifest:S}=g,_=(0,i.normalizeAppPath)(v),j=!!(T.dynamicRoutes[_]||T.routes[k]),H=async()=>((null==N?void 0:N.render404)?await N.render404(e,t,C,!1):t.end("This page could not be found"),null);if(j&&!A){let e=!!T.routes[k],t=T.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await H();throw new m.NoFallbackError}}let I=null;!j||b.isDev||A||(I="/index"===(I=k)?"/":I);let U=!0===b.isDev||!j,D=j&&!U;S&&O&&(0,o.setManifestsSingleton)({page:v,clientReferenceManifest:O,serverActionsManifest:S});let M=e.method||"GET",F=(0,s.getTracer)(),$=F.getActiveScopeSpan(),K={params:w,prerenderManifest:T,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:U,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>b.onRequestError(e,t,a,n,N)},sharedContext:{buildId:y}},B=new l.NodeNextRequest(e),L=new l.NodeNextResponse(t),G=d.NextRequestAdapter.fromNodeNextRequest(B,(0,d.signalFromNodeResponse)(t));try{let o=async e=>b.handle(G,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${M} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${v}`)}),i=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var s,l;let d=async({previousCacheEntry:r})=>{try{if(!i&&P&&q&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await o(n);e.fetchMetrics=K.renderOpts.fetchMetrics;let l=K.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let d=K.renderOpts.collectedTags;if(!j)return await (0,c.sendResponse)(B,L,s,K.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,x.toNodeOutgoingHttpHeaders)(s.headers);d&&(t[f.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,a=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await b.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:P})},!1,N),t}},u=await b.handleResponse({req:e,nextConfig:E,cacheKey:I,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:q,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:i});if(!j)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==R.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",P?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,x.fromNodeOutgoingHttpHeaders)(u.value.headers);return i&&j||m.delete(f.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,h.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(B,L,new Response(u.value.body,{headers:m,status:u.value.status||200})),null};$?await l($):await F.withPropagatedContext(e.headers,()=>F.trace(u.BaseServerSpan.handleRequest,{spanName:`${M} ${v}`,kind:s.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},l))}catch(t){if(t instanceof m.NoFallbackError||await b.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:P})},!1,N),j)throw t;return await (0,c.sendResponse)(B,L,new Response(null,{status:500})),null}}e.s(["handler",()=>k,"patchFetch",()=>q,"routeModule",()=>b,"serverHooks",()=>P,"workAsyncStorage",()=>T,"workUnitAsyncStorage",()=>N],39063)}];
2
2
 
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0f69c28a._.js.map
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__1eb3f172._.js.map
@@ -0,0 +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"))},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},7367,e=>{"use strict";var t=e.i(14747),r=e.i(22734),n=e.i(46786);function a(e){return(e=e.replace(/^[\u02dc\uff5e]/,"~")).startsWith("~/")||"~"===e?e.replace(/^~/,n.default.homedir()):e}function i(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let e=process.cwd();return(console.warn("[paths] SLYCODE_HOME not set in production — falling back to cwd:",e),e.endsWith("/web")||e.endsWith("\\web"))?t.default.dirname(e):e}function s(){let e=i(),n=t.default.join(e,"node_modules","@slycode","slycode","dist");return r.default.existsSync(n)?n:e}function o(){return process.env.BRIDGE_URL?process.env.BRIDGE_URL:"http://127.0.0.1:3004"}e.s(["expandTilde",()=>a,"getBridgeUrl",()=>o,"getPackageDir",()=>s,"getSlycodeRoot",()=>i])},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},73178,e=>{"use strict";var t=e.i(22734),r=e.i(14747),n=e.i(46676),a=e.i(7367);function i(){return r.default.join((0,a.getSlycodeRoot)(),"store")}function s(e,a){let i=[],s="skill"===a?"skills":"agents",o=r.default.join(e,s);try{if(!t.default.existsSync(o))return i;for(let e of t.default.readdirSync(o,{withFileTypes:!0})){let l,c;if("skill"===a){if(!e.isDirectory()||(l=r.default.join(o,e.name,"SKILL.md"),c=r.default.join(s,e.name,"SKILL.md"),!t.default.existsSync(l)))continue}else{if(!e.isFile()||!e.name.endsWith(".md"))continue;l=r.default.join(o,e.name),c=r.default.join(s,e.name)}let d=t.default.readFileSync(l,"utf-8"),u=(0,n.parseFrontmatter)(d),f=u?.name||e.name.replace(/\.md$/,"");i.push({name:f,type:a,path:c,frontmatter:u,isValid:(0,n.validateFrontmatter)(u)})}}catch{}return i.sort((e,t)=>e.name.localeCompare(t.name))}function o(){let e=i(),n=s(e,"skill");return{skills:n,agents:s(e,"agent"),mcp:function(e){let n=r.default.join(e,"mcp"),a=[];try{if(!t.default.existsSync(n))return a;for(let e of t.default.readdirSync(n,{withFileTypes:!0})){let i;if(!e.isFile()||!e.name.endsWith(".json"))continue;let s=r.default.join(n,e.name),o=t.default.readFileSync(s,"utf-8");try{i=JSON.parse(o)}catch{continue}let l=i.name||e.name.replace(/\.json$/,"");a.push({name:l,type:"mcp",path:r.default.join("mcp",e.name),frontmatter:{name:l,version:i.version,description:i.description,updated:i.updated},isValid:!!(i.name&&(i.command||i.url))})}}catch{}return a}(e)}}function l(){let e=i();return[...s(e,"skill"),...s(e,"agent")]}e.s(["getStoreAssets",()=>l,"scanStore",()=>o])},48044,e=>{"use strict";var t=e.i(22734),r=e.i(33405),n=e.i(14747),a=e.i(46676),i=e.i(73178);let s={outdatedAssets:.3,staleCards:.15,unresolvedProblems:.25,missingClaudeMd:.1,nonCompliantFrontmatter:.2};function o(e,t=0,r=0,n=0,a=s){let i=[],l=Math.max(r,1);i.push({name:"Outdated Assets",weight:a.outdatedAssets,value:t,maxValue:l});let c=Date.now(),d=[...e.backlog],u=d.filter(e=>(c-new Date(e.created_at).getTime())/864e5>14&&"done"!==e.status).length,f=Math.max(d.length,1);i.push({name:"Stale Cards",weight:a.staleCards,value:u,maxValue:f}),i.push({name:"Unresolved Problems",weight:a.unresolvedProblems,value:0,maxValue:1}),i.push({name:"Missing CLAUDE.md",weight:a.missingClaudeMd,value:+!e.hasClaudeMd,maxValue:1});let p=Math.max(r,1);i.push({name:"Non-compliant Frontmatter",weight:a.nonCompliantFrontmatter,value:n,maxValue:p});let m=0;for(let e of i)m+=Math.min(e.maxValue>0?e.value/e.maxValue:0,1)*e.weight;let g=Math.round(Math.max(0,(1-m)*100));return{score:g,level:g>=80?"green":g>=50?"amber":"red",factors:i}}var l=e.i(7367);function c(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let e=process.cwd();return e.endsWith("/web")||e.endsWith("\\web")?n.default.dirname(e):e}let d=c(),u=n.default.join(d,"projects","registry.json");async function f(){try{let e=await t.promises.readFile(u,"utf-8");return JSON.parse(e)}catch(e){throw console.error("Failed to load registry:",e),Error(`Failed to load registry from ${u}`)}}async function p(e){let r=JSON.stringify(e,null,2)+"\n";await t.promises.writeFile(u,r,"utf-8")}async function m(e){try{return(await t.promises.stat(e)).isDirectory()}catch{return!1}}async function g(e){try{let r=await t.promises.readFile(e,"utf-8");return JSON.parse(r)}catch{return null}}async function h(e,t,r){let a=n.default.join(e,"documentation","backlog.json"),i=await g(a);return i?i.map(e=>({...e,projectId:t,projectName:r})):[]}async function y(e,t){let r=n.default.join(e,"documentation","designs.json"),a=await g(r);return a?a.map(e=>({...e,projectId:t})):[]}async function x(e,t){let r=n.default.join(e,"documentation","features.json"),a=await g(r);return a?a.map(e=>({...e,projectId:t})):[]}async function j(e){let t=e.path;if(!await m(t))return{...e,backlog:[],designs:[],features:[],accessible:!1,error:`Path not accessible: ${t}`};let[n,i,s]=await Promise.all([h(t,e.id,e.name),y(t,e.id),x(t,e.id)]),o=(0,a.scanProjectAssets)(t,e.id),l=(0,a.detectPlatforms)(t),c=function(e){try{return(0,r.execSync)("git status --porcelain",{cwd:e,encoding:"utf-8",timeout:5e3}).split("\n").filter(e=>e.trim().length>0).length}catch{return -1}}(t);return{...e,backlog:n,designs:i,features:s,assets:o,platforms:l,gitUncommitted:c>=0?c:void 0,accessible:!0}}async function v(){let e=await f();for(let t=0;t<e.projects.length;t++)void 0===e.projects[t].order&&(e.projects[t].order=t);e.projects.sort((e,t)=>(e.order??0)-(t.order??0));let t=e.projects.map(e=>j(e)),r=await Promise.all(t),s=(0,i.getStoreAssets)(),d=["skill","agent"],u=0,p=[];for(let t of["claude","agents"])for(let r of d){let n=s.filter(e=>e.type===r),i=new Map;for(let n of e.projects){let e=(0,a.scanProviderAssets)(n.path,t);i.set(n.id,e.filter(e=>e.type===r))}let o=(0,a.buildStoreAssetMatrix)(n,i,e.projects,r);p.push(...o)}for(let e of p)for(let t of e.cells)"outdated"===t.status&&u++;for(let e of r){if(!e.accessible)continue;let t=0;for(let r of p)for(let n of r.cells)n.projectId===e.id&&"outdated"===n.status&&t++;e.healthScore=function(e,t,r=0,n){if(!t)return o(e,0,0,0,void 0);let a=[...t.skills,...t.agents];return o(e,r,a.length,a.filter(e=>!e.isValid).length,void 0)}(e,e.assets,t)}let m=0,h=0;for(let e of r){if(!e.accessible)continue;let t=n.default.join(e.path,"documentation","kanban.json"),r=await g(t);if(r?.stages){m+=(r.stages.backlog||[]).filter(e=>!e.archived).length;let e=(r.stages.implementation||[]).filter(e=>!e.archived),t=(r.stages.testing||[]).filter(e=>!e.archived);h+=e.length+t.length}}let y=r.reduce((e,t)=>e+(t.gitUncommitted&&t.gitUncommitted>0?t.gitUncommitted:0),0),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 v=c();return{projects:r,totalBacklogItems:m,activeItems:h,totalOutdatedAssets:u,totalUncommitted:y,lastRefresh:new Date().toISOString(),slycodeRoot:v,projectsDir:n.default.dirname(v)}}e.s(["getRepoRoot",()=>c,"loadDashboardData",()=>v,"loadRegistry",()=>f,"saveRegistry",()=>p],48044)},1365,e=>{"use strict";var t=e.i(22734),r=e.i(14747);let n=(0,e.i(7367).getSlycodeRoot)(),a=r.default.join(n,"documentation","events.json");function i(){try{if(!t.default.existsSync(a))return[];let e=t.default.readFileSync(a,"utf-8"),r=JSON.parse(e);return Array.isArray(r)?r:[]}catch{return[]}}function s(e){let n,s=i(),o={id:`evt-${Date.now()}-${Math.random().toString(36).slice(2,6)}`,...e};return s.push(o),s.length>500&&s.splice(0,s.length-500),n=r.default.dirname(a),t.default.existsSync(n)||t.default.mkdirSync(n,{recursive:!0}),t.default.writeFileSync(a,JSON.stringify(s,null,2)),o}function o(e={}){let t=i();if(e.project&&(t=t.filter(t=>t.project===e.project)),e.type&&(t=t.filter(t=>t.type===e.type)),e.since){let r=new Date(e.since).getTime();t=t.filter(e=>new Date(e.timestamp).getTime()>=r)}return t.reverse(),e.limit&&e.limit>0&&(t=t.slice(0,e.limit)),t}e.s(["appendEvent",()=>s,"queryEvents",()=>o])}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__22cba275._.js.map
@@ -0,0 +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"))},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},7367,e=>{"use strict";var t=e.i(14747),r=e.i(22734),a=e.i(46786);function n(e){return(e=e.replace(/^[\u02dc\uff5e]/,"~")).startsWith("~/")||"~"===e?e.replace(/^~/,a.default.homedir()):e}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 i(){let e=s(),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(["expandTilde",()=>n,"getBridgeUrl",()=>o,"getPackageDir",()=>i,"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),a=e.i(46676),n=e.i(7367);function s(){return r.default.join((0,n.getSlycodeRoot)(),"store")}function i(e,n){let s=[],i="skill"===n?"skills":"agents",o=r.default.join(e,i);try{if(!t.default.existsSync(o))return s;for(let e of t.default.readdirSync(o,{withFileTypes:!0})){let l,d;if("skill"===n){if(!e.isDirectory()||(l=r.default.join(o,e.name,"SKILL.md"),d=r.default.join(i,e.name,"SKILL.md"),!t.default.existsSync(l)))continue}else{if(!e.isFile()||!e.name.endsWith(".md"))continue;l=r.default.join(o,e.name),d=r.default.join(i,e.name)}let u=t.default.readFileSync(l,"utf-8"),c=(0,a.parseFrontmatter)(u),p=c?.name||e.name.replace(/\.md$/,"");s.push({name:p,type:n,path:d,frontmatter:c,isValid:(0,a.validateFrontmatter)(c)})}}catch{}return s.sort((e,t)=>e.name.localeCompare(t.name))}function o(){let e=s(),a=i(e,"skill");return{skills:a,agents:i(e,"agent"),mcp:function(e){let a=r.default.join(e,"mcp"),n=[];try{if(!t.default.existsSync(a))return n;for(let e of t.default.readdirSync(a,{withFileTypes:!0})){let s;if(!e.isFile()||!e.name.endsWith(".json"))continue;let i=r.default.join(a,e.name),o=t.default.readFileSync(i,"utf-8");try{s=JSON.parse(o)}catch{continue}let l=s.name||e.name.replace(/\.json$/,"");n.push({name:l,type:"mcp",path:r.default.join("mcp",e.name),frontmatter:{name:l,version:s.version,description:s.description,updated:s.updated},isValid:!!(s.name&&(s.command||s.url))})}}catch{}return n}(e)}}function l(){let e=s();return[...i(e,"skill"),...i(e,"agent")]}e.s(["getStoreAssets",()=>l,"scanStore",()=>o])},48044,e=>{"use strict";var t=e.i(22734),r=e.i(33405),a=e.i(14747),n=e.i(46676),s=e.i(73178);let i={outdatedAssets:.3,staleCards:.15,unresolvedProblems:.25,missingClaudeMd:.1,nonCompliantFrontmatter:.2};function o(e,t=0,r=0,a=0,n=i){let s=[],l=Math.max(r,1);s.push({name:"Outdated Assets",weight:n.outdatedAssets,value:t,maxValue:l});let d=Date.now(),u=[...e.backlog],c=u.filter(e=>(d-new Date(e.created_at).getTime())/864e5>14&&"done"!==e.status).length,p=Math.max(u.length,1);s.push({name:"Stale Cards",weight:n.staleCards,value:c,maxValue:p}),s.push({name:"Unresolved Problems",weight:n.unresolvedProblems,value:0,maxValue:1}),s.push({name:"Missing CLAUDE.md",weight:n.missingClaudeMd,value:+!e.hasClaudeMd,maxValue:1});let f=Math.max(r,1);s.push({name:"Non-compliant Frontmatter",weight:n.nonCompliantFrontmatter,value:a,maxValue:f});let m=0;for(let e of s)m+=Math.min(e.maxValue>0?e.value/e.maxValue:0,1)*e.weight;let h=Math.round(Math.max(0,(1-m)*100));return{score:h,level:h>=80?"green":h>=50?"amber":"red",factors:s}}var l=e.i(7367);function d(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let e=process.cwd();return e.endsWith("/web")||e.endsWith("\\web")?a.default.dirname(e):e}let u=d(),c=a.default.join(u,"projects","registry.json");async function p(){try{let e=await t.promises.readFile(c,"utf-8");return JSON.parse(e)}catch(e){throw console.error("Failed to load registry:",e),Error(`Failed to load registry from ${c}`)}}async function f(e){let r=JSON.stringify(e,null,2)+"\n";await t.promises.writeFile(c,r,"utf-8")}async function m(e){try{return(await t.promises.stat(e)).isDirectory()}catch{return!1}}async function h(e){try{let r=await t.promises.readFile(e,"utf-8");return JSON.parse(r)}catch{return null}}async function g(e,t,r){let n=a.default.join(e,"documentation","backlog.json"),s=await h(n);return s?s.map(e=>({...e,projectId:t,projectName:r})):[]}async function x(e,t){let r=a.default.join(e,"documentation","designs.json"),n=await h(r);return n?n.map(e=>({...e,projectId:t})):[]}async function y(e,t){let r=a.default.join(e,"documentation","features.json"),n=await h(r);return n?n.map(e=>({...e,projectId:t})):[]}async function v(e){let t=e.path;if(!await m(t))return{...e,backlog:[],designs:[],features:[],accessible:!1,error:`Path not accessible: ${t}`};let[a,s,i]=await Promise.all([g(t,e.id,e.name),x(t,e.id),y(t,e.id)]),o=(0,n.scanProjectAssets)(t,e.id),l=(0,n.detectPlatforms)(t),d=function(e){try{return(0,r.execSync)("git status --porcelain",{cwd:e,encoding:"utf-8",timeout:5e3}).split("\n").filter(e=>e.trim().length>0).length}catch{return -1}}(t);return{...e,backlog:a,designs:s,features:i,assets:o,platforms:l,gitUncommitted:d>=0?d:void 0,accessible:!0}}async function w(){let e=await p();for(let t=0;t<e.projects.length;t++)void 0===e.projects[t].order&&(e.projects[t].order=t);e.projects.sort((e,t)=>(e.order??0)-(t.order??0));let t=e.projects.map(e=>v(e)),r=await Promise.all(t),i=(0,s.getStoreAssets)(),u=["skill","agent"],c=0,f=[];for(let t of["claude","agents"])for(let r of u){let a=i.filter(e=>e.type===r),s=new Map;for(let a of e.projects){let e=(0,n.scanProviderAssets)(a.path,t);s.set(a.id,e.filter(e=>e.type===r))}let o=(0,n.buildStoreAssetMatrix)(a,s,e.projects,r);f.push(...o)}for(let e of f)for(let t of e.cells)"outdated"===t.status&&c++;for(let e of r){if(!e.accessible)continue;let t=0;for(let r of f)for(let a of r.cells)a.projectId===e.id&&"outdated"===a.status&&t++;e.healthScore=function(e,t,r=0,a){if(!t)return o(e,0,0,0,void 0);let n=[...t.skills,...t.agents];return o(e,r,n.length,n.filter(e=>!e.isValid).length,void 0)}(e,e.assets,t)}let m=0,g=0;for(let e of r){if(!e.accessible)continue;let t=a.default.join(e.path,"documentation","kanban.json"),r=await h(t);if(r?.stages){m+=(r.stages.backlog||[]).filter(e=>!e.archived).length;let e=(r.stages.implementation||[]).filter(e=>!e.archived),t=(r.stages.testing||[]).filter(e=>!e.archived);g+=e.length+t.length}}let x=r.reduce((e,t)=>e+(t.gitUncommitted&&t.gitUncommitted>0?t.gitUncommitted:0),0),y=(0,l.getBridgeUrl)();try{let e=await fetch(`${y}/stats`,{signal:AbortSignal.timeout(2e3)});if(e.ok){let t=await e.json(),a={};for(let e of t.sessions||[])if(e.isActive){let t=e.name.split(":")[0];a[t]=(a[t]||0)+1}for(let e of r)e.activeSessions=a[e.id]??0}}catch{}let w=d();return{projects:r,totalBacklogItems:m,activeItems:g,totalOutdatedAssets:c,totalUncommitted:x,lastRefresh:new Date().toISOString(),slycodeRoot:w,projectsDir:a.default.dirname(w)}}e.s(["getRepoRoot",()=>d,"loadDashboardData",()=>w,"loadRegistry",()=>p,"saveRegistry",()=>f],48044)},36758,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),s=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),d=e.i(87718),u=e.i(95169),c=e.i(47587),p=e.i(66012),f=e.i(70101),m=e.i(74838),h=e.i(10372),g=e.i(93695);e.i(52474);var x=e.i(220),y=e.i(89171),v=e.i(48044);async function w(e){try{let{projectIds:t}=await e.json();if(!Array.isArray(t)||0===t.length)return y.NextResponse.json({error:"projectIds must be a non-empty array"},{status:400});let r=await (0,v.loadRegistry)();for(let e=0;e<t.length;e++){let a=r.projects.find(r=>r.id===t[e]);a&&(a.order=e)}return r.lastUpdated=new Date().toISOString(),await (0,v.saveRegistry)(r),y.NextResponse.json({ok:!0})}catch(e){return console.error("Failed to reorder projects:",e),y.NextResponse.json({error:"Failed to reorder projects",details:String(e)},{status:500})}}e.s(["POST",()=>w,"dynamic",0,"force-dynamic"],12621);var R=e.i(12621);let j=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/projects/reorder/route",pathname:"/api/projects/reorder",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/projects/reorder/route.ts",nextConfigOutput:"standalone",userland:R}),{workAsyncStorage:E,workUnitAsyncStorage:S,serverHooks:b}=j;function C(){return(0,a.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:S})}async function A(e,t,a){j.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/projects/reorder/route";y=y.replace(/\/index$/,"")||"/";let v=await j.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:w,params:R,nextConfig:E,parsedUrl:S,isDraftMode:b,prerenderManifest:C,routerServerContext:A,isOnDemandRevalidate:O,revalidateOnlyGenerated:k,resolvedPathname:P,clientReferenceManifest:D,serverActionsManifest:N}=v,_=(0,o.normalizeAppPath)(y),M=!!(C.dynamicRoutes[_]||C.routes[P]),T=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,S,!1):t.end("This page could not be found"),null);if(M&&!b){let e=!!C.routes[P],t=C.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await T();throw new g.NoFallbackError}}let U=null;!M||j.isDev||b||(U="/index"===(U=P)?"/":U);let F=!0===j.isDev||!M,q=M&&!F;N&&D&&(0,i.setManifestsSingleton)({page:y,clientReferenceManifest:D,serverActionsManifest:N});let I=e.method||"GET",H=(0,s.getTracer)(),L=H.getActiveScopeSpan(),$={params:R,prerenderManifest:C,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:F,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>j.onRequestError(e,t,a,n,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=>j.handle(B,$).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=H.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${I} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${I} ${y}`)}),o=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var s,l;let d=async({previousCacheEntry:r})=>{try{if(!o&&O&&k&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await i(n);e.fetchMetrics=$.renderOpts.fetchMetrics;let l=$.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let d=$.renderOpts.collectedTags;if(!M)return await (0,p.sendResponse)(V,K,s,$.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(s.headers);d&&(t[h.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,a=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:$.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await j.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:O})},!1,A),t}},u=await j.handleResponse({req:e,nextConfig:E,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:k,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:o});if(!M)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",O?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let g=(0,f.fromNodeOutgoingHttpHeaders)(u.value.headers);return o&&M||g.delete(h.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||g.get("Cache-Control")||g.set("Cache-Control",(0,m.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(V,K,new Response(u.value.body,{headers:g,status:u.value.status||200})),null};L?await l(L):await H.withPropagatedContext(e.headers,()=>H.trace(u.BaseServerSpan.handleRequest,{spanName:`${I} ${y}`,kind:s.SpanKind.SERVER,attributes:{"http.method":I,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await j.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:O})},!1,A),M)throw t;return await (0,p.sendResponse)(V,K,new Response(null,{status:500})),null}}e.s(["handler",()=>A,"patchFetch",()=>C,"routeModule",()=>j,"serverHooks",()=>b,"workAsyncStorage",()=>E,"workUnitAsyncStorage",()=>S],36758)}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__2543e413._.js.map
@@ -0,0 +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"))},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},7367,e=>{"use strict";var t=e.i(14747),r=e.i(22734),a=e.i(46786);function n(e){return(e=e.replace(/^[\u02dc\uff5e]/,"~")).startsWith("~/")||"~"===e?e.replace(/^~/,a.default.homedir()):e}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 i(){let e=s(),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(["expandTilde",()=>n,"getBridgeUrl",()=>o,"getPackageDir",()=>i,"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),a=e.i(46676),n=e.i(7367);function s(){return r.default.join((0,n.getSlycodeRoot)(),"store")}function i(e,n){let s=[],i="skill"===n?"skills":"agents",o=r.default.join(e,i);try{if(!t.default.existsSync(o))return s;for(let e of t.default.readdirSync(o,{withFileTypes:!0})){let l,d;if("skill"===n){if(!e.isDirectory()||(l=r.default.join(o,e.name,"SKILL.md"),d=r.default.join(i,e.name,"SKILL.md"),!t.default.existsSync(l)))continue}else{if(!e.isFile()||!e.name.endsWith(".md"))continue;l=r.default.join(o,e.name),d=r.default.join(i,e.name)}let u=t.default.readFileSync(l,"utf-8"),c=(0,a.parseFrontmatter)(u),p=c?.name||e.name.replace(/\.md$/,"");s.push({name:p,type:n,path:d,frontmatter:c,isValid:(0,a.validateFrontmatter)(c)})}}catch{}return s.sort((e,t)=>e.name.localeCompare(t.name))}function o(){let e=s(),a=i(e,"skill");return{skills:a,agents:i(e,"agent"),mcp:function(e){let a=r.default.join(e,"mcp"),n=[];try{if(!t.default.existsSync(a))return n;for(let e of t.default.readdirSync(a,{withFileTypes:!0})){let s;if(!e.isFile()||!e.name.endsWith(".json"))continue;let i=r.default.join(a,e.name),o=t.default.readFileSync(i,"utf-8");try{s=JSON.parse(o)}catch{continue}let l=s.name||e.name.replace(/\.json$/,"");n.push({name:l,type:"mcp",path:r.default.join("mcp",e.name),frontmatter:{name:l,version:s.version,description:s.description,updated:s.updated},isValid:!!(s.name&&(s.command||s.url))})}}catch{}return n}(e)}}function l(){let e=s();return[...i(e,"skill"),...i(e,"agent")]}e.s(["getStoreAssets",()=>l,"scanStore",()=>o])},48044,e=>{"use strict";var t=e.i(22734),r=e.i(33405),a=e.i(14747),n=e.i(46676),s=e.i(73178);let i={outdatedAssets:.3,staleCards:.15,unresolvedProblems:.25,missingClaudeMd:.1,nonCompliantFrontmatter:.2};function o(e,t=0,r=0,a=0,n=i){let s=[],l=Math.max(r,1);s.push({name:"Outdated Assets",weight:n.outdatedAssets,value:t,maxValue:l});let d=Date.now(),u=[...e.backlog],c=u.filter(e=>(d-new Date(e.created_at).getTime())/864e5>14&&"done"!==e.status).length,p=Math.max(u.length,1);s.push({name:"Stale Cards",weight:n.staleCards,value:c,maxValue:p}),s.push({name:"Unresolved Problems",weight:n.unresolvedProblems,value:0,maxValue:1}),s.push({name:"Missing CLAUDE.md",weight:n.missingClaudeMd,value:+!e.hasClaudeMd,maxValue:1});let f=Math.max(r,1);s.push({name:"Non-compliant Frontmatter",weight:n.nonCompliantFrontmatter,value:a,maxValue:f});let h=0;for(let e of s)h+=Math.min(e.maxValue>0?e.value/e.maxValue:0,1)*e.weight;let m=Math.round(Math.max(0,(1-h)*100));return{score:m,level:m>=80?"green":m>=50?"amber":"red",factors:s}}var l=e.i(7367);function d(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let e=process.cwd();return e.endsWith("/web")||e.endsWith("\\web")?a.default.dirname(e):e}let u=d(),c=a.default.join(u,"projects","registry.json");async function p(){try{let e=await t.promises.readFile(c,"utf-8");return JSON.parse(e)}catch(e){throw console.error("Failed to load registry:",e),Error(`Failed to load registry from ${c}`)}}async function f(e){let r=JSON.stringify(e,null,2)+"\n";await t.promises.writeFile(c,r,"utf-8")}async function h(e){try{return(await t.promises.stat(e)).isDirectory()}catch{return!1}}async function m(e){try{let r=await t.promises.readFile(e,"utf-8");return JSON.parse(r)}catch{return null}}async function g(e,t,r){let n=a.default.join(e,"documentation","backlog.json"),s=await m(n);return s?s.map(e=>({...e,projectId:t,projectName:r})):[]}async function x(e,t){let r=a.default.join(e,"documentation","designs.json"),n=await m(r);return n?n.map(e=>({...e,projectId:t})):[]}async function y(e,t){let r=a.default.join(e,"documentation","features.json"),n=await m(r);return n?n.map(e=>({...e,projectId:t})):[]}async function v(e){let t=e.path;if(!await h(t))return{...e,backlog:[],designs:[],features:[],accessible:!1,error:`Path not accessible: ${t}`};let[a,s,i]=await Promise.all([g(t,e.id,e.name),x(t,e.id),y(t,e.id)]),o=(0,n.scanProjectAssets)(t,e.id),l=(0,n.detectPlatforms)(t),d=function(e){try{return(0,r.execSync)("git status --porcelain",{cwd:e,encoding:"utf-8",timeout:5e3}).split("\n").filter(e=>e.trim().length>0).length}catch{return -1}}(t);return{...e,backlog:a,designs:s,features:i,assets:o,platforms:l,gitUncommitted:d>=0?d:void 0,accessible:!0}}async function w(){let e=await p();for(let t=0;t<e.projects.length;t++)void 0===e.projects[t].order&&(e.projects[t].order=t);e.projects.sort((e,t)=>(e.order??0)-(t.order??0));let t=e.projects.map(e=>v(e)),r=await Promise.all(t),i=(0,s.getStoreAssets)(),u=["skill","agent"],c=0,f=[];for(let t of["claude","agents"])for(let r of u){let a=i.filter(e=>e.type===r),s=new Map;for(let a of e.projects){let e=(0,n.scanProviderAssets)(a.path,t);s.set(a.id,e.filter(e=>e.type===r))}let o=(0,n.buildStoreAssetMatrix)(a,s,e.projects,r);f.push(...o)}for(let e of f)for(let t of e.cells)"outdated"===t.status&&c++;for(let e of r){if(!e.accessible)continue;let t=0;for(let r of f)for(let a of r.cells)a.projectId===e.id&&"outdated"===a.status&&t++;e.healthScore=function(e,t,r=0,a){if(!t)return o(e,0,0,0,void 0);let n=[...t.skills,...t.agents];return o(e,r,n.length,n.filter(e=>!e.isValid).length,void 0)}(e,e.assets,t)}let h=0,g=0;for(let e of r){if(!e.accessible)continue;let t=a.default.join(e.path,"documentation","kanban.json"),r=await m(t);if(r?.stages){h+=(r.stages.backlog||[]).filter(e=>!e.archived).length;let e=(r.stages.implementation||[]).filter(e=>!e.archived),t=(r.stages.testing||[]).filter(e=>!e.archived);g+=e.length+t.length}}let x=r.reduce((e,t)=>e+(t.gitUncommitted&&t.gitUncommitted>0?t.gitUncommitted:0),0),y=(0,l.getBridgeUrl)();try{let e=await fetch(`${y}/stats`,{signal:AbortSignal.timeout(2e3)});if(e.ok){let t=await e.json(),a={};for(let e of t.sessions||[])if(e.isActive){let t=e.name.split(":")[0];a[t]=(a[t]||0)+1}for(let e of r)e.activeSessions=a[e.id]??0}}catch{}let w=d();return{projects:r,totalBacklogItems:h,activeItems:g,totalOutdatedAssets:c,totalUncommitted:x,lastRefresh:new Date().toISOString(),slycodeRoot:w,projectsDir:a.default.dirname(w)}}e.s(["getRepoRoot",()=>d,"loadDashboardData",()=>w,"loadRegistry",()=>p,"saveRegistry",()=>f],48044)},24361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},77981,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),s=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),d=e.i(87718),u=e.i(95169),c=e.i(47587),p=e.i(66012),f=e.i(70101),h=e.i(74838),m=e.i(10372),g=e.i(93695);e.i(52474);var x=e.i(220),y=e.i(89171),v=e.i(48044),w=e.i(33405),j=e.i(24361),R=e.i(14747),S=e.i(7367);let E=(0,j.promisify)(w.execFile);async function C(){try{let e=await (0,v.loadRegistry)();return y.NextResponse.json(e.projects)}catch(e){return console.error("Failed to load projects:",e),y.NextResponse.json({error:"Failed to load projects"},{status:500})}}async function b(e){try{let t,{name:r,description:a,path:n,tags:s,scaffoldConfig:i,providers:o}=await e.json();if(!r||!n)return y.NextResponse.json({error:"name and path are required"},{status:400});let l=(0,S.expandTilde)(n);if(!R.default.isAbsolute(l))return y.NextResponse.json({error:"Please enter an absolute path (e.g. ~/Dev/myproject or /home/user/Dev/myproject)"},{status:400});let d=R.default.resolve(l),u=await (0,v.loadRegistry)(),c=r.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"");if(u.projects.some(e=>e.id===c))return y.NextResponse.json({error:`Project with id '${c}' already exists`},{status:409});if(u.projects.some(e=>e.path===d)){let e=u.projects.find(e=>e.path===d);return y.NextResponse.json({error:`This directory is already registered as '${e?.name}'`},{status:409})}let p=[R.default.join((0,S.getPackageDir)(),"scripts","scaffold.js"),"create","--path",d,"--name",r,"--id",c];a&&p.push("--description",a),o&&Array.isArray(o)&&o.length>0&&p.push("--providers",o.join(",")),i&&p.push("--config",JSON.stringify(i));let{stdout:f,stderr:h}=await E("node",p,{timeout:3e4,windowsHide:!0});try{t=JSON.parse(f)}catch{return y.NextResponse.json({error:"Scaffold script returned invalid output",details:f,stderr:h},{status:500})}if(!t.success)return y.NextResponse.json({error:"Scaffolding failed",details:t},{status:500});let m={id:c,name:r,description:a||"",path:d,hasClaudeMd:!0,masterCompliant:!0,areas:[],tags:s||[]};return u.projects.push(m),u.lastUpdated=new Date().toISOString(),await (0,v.saveRegistry)(u),y.NextResponse.json({project:m,scaffold:t},{status:201})}catch(e){return console.error("Failed to create project:",e),y.NextResponse.json({error:"Failed to create project",details:String(e)},{status:500})}}e.s(["GET",()=>C,"POST",()=>b,"dynamic",0,"force-dynamic"],50364);var A=e.i(50364);let O=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/projects/route",pathname:"/api/projects",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/projects/route.ts",nextConfigOutput:"standalone",userland:A}),{workAsyncStorage:N,workUnitAsyncStorage:k,serverHooks:P}=O;function D(){return(0,a.patchFetch)({workAsyncStorage:N,workUnitAsyncStorage:k})}async function T(e,t,a){O.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/projects/route";y=y.replace(/\/index$/,"")||"/";let v=await O.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:w,params:j,nextConfig:R,parsedUrl:S,isDraftMode:E,prerenderManifest:C,routerServerContext:b,isOnDemandRevalidate:A,revalidateOnlyGenerated:N,resolvedPathname:k,clientReferenceManifest:P,serverActionsManifest:D}=v,T=(0,o.normalizeAppPath)(y),_=!!(C.dynamicRoutes[T]||C.routes[k]),M=async()=>((null==b?void 0:b.render404)?await b.render404(e,t,S,!1):t.end("This page could not be found"),null);if(_&&!E){let e=!!C.routes[k],t=C.dynamicRoutes[T];if(t&&!1===t.fallback&&!e){if(R.experimental.adapterPath)return await M();throw new g.NoFallbackError}}let F=null;!_||O.isDev||E||(F="/index"===(F=k)?"/":F);let q=!0===O.isDev||!_,U=_&&!q;D&&P&&(0,i.setManifestsSingleton)({page:y,clientReferenceManifest:P,serverActionsManifest:D});let H=e.method||"GET",I=(0,s.getTracer)(),L=I.getActiveScopeSpan(),$={params:j,prerenderManifest:C,renderOpts:{experimental:{authInterrupts:!!R.experimental.authInterrupts},cacheComponents:!!R.cacheComponents,supportsDynamicResponse:q,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:R.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>O.onRequestError(e,t,a,n,b)},sharedContext:{buildId:w}},V=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),B=d.NextRequestAdapter.fromNodeNextRequest(V,(0,d.signalFromNodeResponse)(t));try{let i=async e=>O.handle(B,$).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=I.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${H} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${H} ${y}`)}),o=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var s,l;let d=async({previousCacheEntry:r})=>{try{if(!o&&A&&N&&!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(!_)return await (0,p.sendResponse)(V,K,s,$.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(s.headers);d&&(t[m.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,a=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:$.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await O.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:A})},!1,b),t}},u=await O.handleResponse({req:e,nextConfig:R,cacheKey:F,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:N,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:o});if(!_)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",A?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),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(m.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||g.get("Cache-Control")||g.set("Cache-Control",(0,h.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(V,K,new Response(u.value.body,{headers:g,status:u.value.status||200})),null};L?await l(L):await I.withPropagatedContext(e.headers,()=>I.trace(u.BaseServerSpan.handleRequest,{spanName:`${H} ${y}`,kind:s.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await O.onRequestError(e,t,{routerKind:"App Router",routePath:T,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:A})},!1,b),_)throw t;return await (0,p.sendResponse)(V,K,new Response(null,{status:500})),null}}e.s(["handler",()=>T,"patchFetch",()=>D,"routeModule",()=>O,"serverHooks",()=>P,"workAsyncStorage",()=>N,"workUnitAsyncStorage",()=>k],77981)}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__2c42a835._.js.map
@@ -0,0 +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"))},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},7367,e=>{"use strict";var t=e.i(14747),r=e.i(22734),n=e.i(46786);function a(e){return(e=e.replace(/^[\u02dc\uff5e]/,"~")).startsWith("~/")||"~"===e?e.replace(/^~/,n.default.homedir()):e}function i(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let e=process.cwd();return(console.warn("[paths] SLYCODE_HOME not set in production — falling back to cwd:",e),e.endsWith("/web")||e.endsWith("\\web"))?t.default.dirname(e):e}function s(){let e=i(),n=t.default.join(e,"node_modules","@slycode","slycode","dist");return r.default.existsSync(n)?n:e}function o(){return process.env.BRIDGE_URL?process.env.BRIDGE_URL:"http://127.0.0.1:3004"}e.s(["expandTilde",()=>a,"getBridgeUrl",()=>o,"getPackageDir",()=>s,"getSlycodeRoot",()=>i])},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},73178,e=>{"use strict";var t=e.i(22734),r=e.i(14747),n=e.i(46676),a=e.i(7367);function i(){return r.default.join((0,a.getSlycodeRoot)(),"store")}function s(e,a){let i=[],s="skill"===a?"skills":"agents",o=r.default.join(e,s);try{if(!t.default.existsSync(o))return i;for(let e of t.default.readdirSync(o,{withFileTypes:!0})){let l,c;if("skill"===a){if(!e.isDirectory()||(l=r.default.join(o,e.name,"SKILL.md"),c=r.default.join(s,e.name,"SKILL.md"),!t.default.existsSync(l)))continue}else{if(!e.isFile()||!e.name.endsWith(".md"))continue;l=r.default.join(o,e.name),c=r.default.join(s,e.name)}let u=t.default.readFileSync(l,"utf-8"),d=(0,n.parseFrontmatter)(u),f=d?.name||e.name.replace(/\.md$/,"");i.push({name:f,type:a,path:c,frontmatter:d,isValid:(0,n.validateFrontmatter)(d)})}}catch{}return i.sort((e,t)=>e.name.localeCompare(t.name))}function o(){let e=i(),n=s(e,"skill");return{skills:n,agents:s(e,"agent"),mcp:function(e){let n=r.default.join(e,"mcp"),a=[];try{if(!t.default.existsSync(n))return a;for(let e of t.default.readdirSync(n,{withFileTypes:!0})){let i;if(!e.isFile()||!e.name.endsWith(".json"))continue;let s=r.default.join(n,e.name),o=t.default.readFileSync(s,"utf-8");try{i=JSON.parse(o)}catch{continue}let l=i.name||e.name.replace(/\.json$/,"");a.push({name:l,type:"mcp",path:r.default.join("mcp",e.name),frontmatter:{name:l,version:i.version,description:i.description,updated:i.updated},isValid:!!(i.name&&(i.command||i.url))})}}catch{}return a}(e)}}function l(){let e=i();return[...s(e,"skill"),...s(e,"agent")]}e.s(["getStoreAssets",()=>l,"scanStore",()=>o])},48044,e=>{"use strict";var t=e.i(22734),r=e.i(33405),n=e.i(14747),a=e.i(46676),i=e.i(73178);let s={outdatedAssets:.3,staleCards:.15,unresolvedProblems:.25,missingClaudeMd:.1,nonCompliantFrontmatter:.2};function o(e,t=0,r=0,n=0,a=s){let i=[],l=Math.max(r,1);i.push({name:"Outdated Assets",weight:a.outdatedAssets,value:t,maxValue:l});let c=Date.now(),u=[...e.backlog],d=u.filter(e=>(c-new Date(e.created_at).getTime())/864e5>14&&"done"!==e.status).length,f=Math.max(u.length,1);i.push({name:"Stale Cards",weight:a.staleCards,value:d,maxValue:f}),i.push({name:"Unresolved Problems",weight:a.unresolvedProblems,value:0,maxValue:1}),i.push({name:"Missing CLAUDE.md",weight:a.missingClaudeMd,value:+!e.hasClaudeMd,maxValue:1});let p=Math.max(r,1);i.push({name:"Non-compliant Frontmatter",weight:a.nonCompliantFrontmatter,value:n,maxValue:p});let m=0;for(let e of i)m+=Math.min(e.maxValue>0?e.value/e.maxValue:0,1)*e.weight;let g=Math.round(Math.max(0,(1-m)*100));return{score:g,level:g>=80?"green":g>=50?"amber":"red",factors:i}}var l=e.i(7367);function c(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let e=process.cwd();return e.endsWith("/web")||e.endsWith("\\web")?n.default.dirname(e):e}let u=c(),d=n.default.join(u,"projects","registry.json");async function f(){try{let e=await t.promises.readFile(d,"utf-8");return JSON.parse(e)}catch(e){throw console.error("Failed to load registry:",e),Error(`Failed to load registry from ${d}`)}}async function p(e){let r=JSON.stringify(e,null,2)+"\n";await t.promises.writeFile(d,r,"utf-8")}async function m(e){try{return(await t.promises.stat(e)).isDirectory()}catch{return!1}}async function g(e){try{let r=await t.promises.readFile(e,"utf-8");return JSON.parse(r)}catch{return null}}async function h(e,t,r){let a=n.default.join(e,"documentation","backlog.json"),i=await g(a);return i?i.map(e=>({...e,projectId:t,projectName:r})):[]}async function y(e,t){let r=n.default.join(e,"documentation","designs.json"),a=await g(r);return a?a.map(e=>({...e,projectId:t})):[]}async function x(e,t){let r=n.default.join(e,"documentation","features.json"),a=await g(r);return a?a.map(e=>({...e,projectId:t})):[]}async function j(e){let t=e.path;if(!await m(t))return{...e,backlog:[],designs:[],features:[],accessible:!1,error:`Path not accessible: ${t}`};let[n,i,s]=await Promise.all([h(t,e.id,e.name),y(t,e.id),x(t,e.id)]),o=(0,a.scanProjectAssets)(t,e.id),l=(0,a.detectPlatforms)(t),c=function(e){try{return(0,r.execSync)("git status --porcelain",{cwd:e,encoding:"utf-8",timeout:5e3}).split("\n").filter(e=>e.trim().length>0).length}catch{return -1}}(t);return{...e,backlog:n,designs:i,features:s,assets:o,platforms:l,gitUncommitted:c>=0?c:void 0,accessible:!0}}async function v(){let e=await f();for(let t=0;t<e.projects.length;t++)void 0===e.projects[t].order&&(e.projects[t].order=t);e.projects.sort((e,t)=>(e.order??0)-(t.order??0));let t=e.projects.map(e=>j(e)),r=await Promise.all(t),s=(0,i.getStoreAssets)(),u=["skill","agent"],d=0,p=[];for(let t of["claude","agents"])for(let r of u){let n=s.filter(e=>e.type===r),i=new Map;for(let n of e.projects){let e=(0,a.scanProviderAssets)(n.path,t);i.set(n.id,e.filter(e=>e.type===r))}let o=(0,a.buildStoreAssetMatrix)(n,i,e.projects,r);p.push(...o)}for(let e of p)for(let t of e.cells)"outdated"===t.status&&d++;for(let e of r){if(!e.accessible)continue;let t=0;for(let r of p)for(let n of r.cells)n.projectId===e.id&&"outdated"===n.status&&t++;e.healthScore=function(e,t,r=0,n){if(!t)return o(e,0,0,0,void 0);let a=[...t.skills,...t.agents];return o(e,r,a.length,a.filter(e=>!e.isValid).length,void 0)}(e,e.assets,t)}let m=0,h=0;for(let e of r){if(!e.accessible)continue;let t=n.default.join(e.path,"documentation","kanban.json"),r=await g(t);if(r?.stages){m+=(r.stages.backlog||[]).filter(e=>!e.archived).length;let e=(r.stages.implementation||[]).filter(e=>!e.archived),t=(r.stages.testing||[]).filter(e=>!e.archived);h+=e.length+t.length}}let y=r.reduce((e,t)=>e+(t.gitUncommitted&&t.gitUncommitted>0?t.gitUncommitted:0),0),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 v=c();return{projects:r,totalBacklogItems:m,activeItems:h,totalOutdatedAssets:d,totalUncommitted:y,lastRefresh:new Date().toISOString(),slycodeRoot:v,projectsDir:n.default.dirname(v)}}e.s(["getRepoRoot",()=>c,"loadDashboardData",()=>v,"loadRegistry",()=>f,"saveRegistry",()=>p],48044)},1365,e=>{"use strict";var t=e.i(22734),r=e.i(14747);let n=(0,e.i(7367).getSlycodeRoot)(),a=r.default.join(n,"documentation","events.json");function i(){try{if(!t.default.existsSync(a))return[];let e=t.default.readFileSync(a,"utf-8"),r=JSON.parse(e);return Array.isArray(r)?r:[]}catch{return[]}}function s(e){let n,s=i(),o={id:`evt-${Date.now()}-${Math.random().toString(36).slice(2,6)}`,...e};return s.push(o),s.length>500&&s.splice(0,s.length-500),n=r.default.dirname(a),t.default.existsSync(n)||t.default.mkdirSync(n,{recursive:!0}),t.default.writeFileSync(a,JSON.stringify(s,null,2)),o}function o(e={}){let t=i();if(e.project&&(t=t.filter(t=>t.project===e.project)),e.type&&(t=t.filter(t=>t.type===e.type)),e.since){let r=new Date(e.since).getTime();t=t.filter(e=>new Date(e.timestamp).getTime()>=r)}return t.reverse(),e.limit&&e.limit>0&&(t=t.slice(0,e.limit)),t}e.s(["appendEvent",()=>s,"queryEvents",()=>o])},71741,e=>{"use strict";var t=e.i(14747),r=e.i(48044);let n={hourly:36e5,daily:864e5,weekly:6048e5},a=null,i=0;async function s(){let e=Date.now();return a&&e-i<5e3||(a=await (0,r.loadRegistry)(),i=e),a}class o extends Error{code;constructor(e,t){super(e),this.code=t,this.name="ProjectResolutionError"}}async function l(e){if(e===t.default.basename((0,r.getRepoRoot)()).replace(/_/g,"-"))return(0,r.getRepoRoot)();let n=(await s()).projects.find(t=>t.id===e);if(!n)throw new o(`Project '${e}' not found in registry`,"NOT_FOUND");return n.path}async function c(e){let r=await l(e);return t.default.join(r,"documentation","kanban.json")}async function u(e){let r=await l(e);return t.default.join(r,"documentation","archive")}async function d(e,r,n=1){let a=await u(e),i=String(n).padStart(3,"0");return t.default.join(a,`kanban_${r}_${i}.json`)}async function f(e){let r=await u(e),a=[];for(let e=1;e<=10;e++){let n=String(e).padStart(3,"0");a.push(t.default.join(r,`kanban_${n}.json`))}for(let e of Object.keys(n))a.push(t.default.join(r,`kanban_${e}.json`));return a}async function p(e){return e?c(e):t.default.join((0,r.getRepoRoot)(),"documentation")}e.s(["BACKUP_TIERS",0,n,"ProjectResolutionError",()=>o,"getArchiveDir",()=>u,"getKanbanPath",()=>c,"getLegacyBackupPaths",()=>f,"getTieredBackupPath",()=>d,"getWatchPath",()=>p,"resolveProjectRoot",()=>l])},44264,e=>{e.v(e=>Promise.resolve().then(()=>e(33405)))}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__2ed0ff47._.js.map