@shepai/cli 1.72.8 → 1.72.9-pr220.e1bfec0

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 (365) hide show
  1. package/dist/packages/core/src/application/ports/output/agents/feature-agent-process.interface.d.ts +2 -1
  2. package/dist/packages/core/src/application/ports/output/agents/feature-agent-process.interface.d.ts.map +1 -1
  3. package/dist/packages/core/src/application/use-cases/agents/approve-agent-run.use-case.d.ts.map +1 -1
  4. package/dist/packages/core/src/application/use-cases/agents/approve-agent-run.use-case.js +1 -0
  5. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts +20 -1
  6. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts.map +1 -1
  7. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.js +68 -41
  8. package/dist/packages/core/src/application/use-cases/features/create/types.d.ts +10 -0
  9. package/dist/packages/core/src/application/use-cases/features/create/types.d.ts.map +1 -1
  10. package/dist/packages/core/src/application/use-cases/features/resume-feature.use-case.d.ts.map +1 -1
  11. package/dist/packages/core/src/application/use-cases/features/resume-feature.use-case.js +1 -0
  12. package/dist/packages/core/src/domain/factories/settings-defaults.factory.js +1 -1
  13. package/dist/packages/core/src/infrastructure/services/agents/common/executors/dev-executor.service.d.ts.map +1 -1
  14. package/dist/packages/core/src/infrastructure/services/agents/common/executors/dev-executor.service.js +88 -13
  15. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts +1 -1
  16. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.d.ts +2 -1
  17. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.d.ts.map +1 -1
  18. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.js +3 -0
  19. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts +2 -0
  20. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts.map +1 -1
  21. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.js +16 -3
  22. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.d.ts.map +1 -1
  23. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.js +5 -1
  24. package/dist/src/presentation/web/app/actions/create-feature.d.ts.map +1 -1
  25. package/dist/src/presentation/web/app/actions/create-feature.js +20 -2
  26. package/dist/src/presentation/web/app/actions/get-feature-metadata.d.ts +10 -0
  27. package/dist/src/presentation/web/app/actions/get-feature-metadata.d.ts.map +1 -0
  28. package/dist/src/presentation/web/app/actions/get-feature-metadata.js +14 -0
  29. package/dist/src/presentation/web/app/actions/get-graph-data.d.ts +10 -0
  30. package/dist/src/presentation/web/app/actions/get-graph-data.d.ts.map +1 -0
  31. package/dist/src/presentation/web/app/actions/get-graph-data.js +10 -0
  32. package/dist/src/presentation/web/app/api/agent-events/route.d.ts.map +1 -1
  33. package/dist/src/presentation/web/app/api/agent-events/route.js +18 -0
  34. package/dist/src/presentation/web/components/common/add-repository-button/add-repository-button.d.ts.map +1 -0
  35. package/dist/src/presentation/web/components/common/add-repository-button/index.d.ts +2 -0
  36. package/dist/src/presentation/web/components/common/add-repository-button/index.d.ts.map +1 -0
  37. package/dist/src/presentation/web/components/common/{add-repository-node → add-repository-button}/index.js +0 -1
  38. package/dist/src/presentation/web/components/common/add-repository-button/pick-folder.d.ts.map +1 -0
  39. package/dist/src/presentation/web/components/common/control-center-drawer/create-drawer-client.d.ts.map +1 -1
  40. package/dist/src/presentation/web/components/common/control-center-drawer/create-drawer-client.js +21 -23
  41. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.d.ts.map +1 -1
  42. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.js +35 -16
  43. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.d.ts.map +1 -1
  44. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.js +2 -0
  45. package/dist/src/presentation/web/components/common/index.d.ts +1 -1
  46. package/dist/src/presentation/web/components/common/index.d.ts.map +1 -1
  47. package/dist/src/presentation/web/components/common/index.js +1 -1
  48. package/dist/src/presentation/web/components/common/repository-node/repository-node.js +1 -1
  49. package/dist/src/presentation/web/components/common/sidebar-section-header/sidebar-section-header.d.ts +1 -3
  50. package/dist/src/presentation/web/components/common/sidebar-section-header/sidebar-section-header.d.ts.map +1 -1
  51. package/dist/src/presentation/web/components/common/sidebar-section-header/sidebar-section-header.js +3 -7
  52. package/dist/src/presentation/web/components/common/sidebar-section-header/sidebar-section-header.stories.d.ts +0 -1
  53. package/dist/src/presentation/web/components/common/sidebar-section-header/sidebar-section-header.stories.d.ts.map +1 -1
  54. package/dist/src/presentation/web/components/common/sidebar-section-header/sidebar-section-header.stories.js +0 -11
  55. package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.js +1 -1
  56. package/dist/src/presentation/web/components/features/control-center/control-center-inner.d.ts.map +1 -1
  57. package/dist/src/presentation/web/components/features/control-center/control-center-inner.js +23 -4
  58. package/dist/src/presentation/web/components/features/control-center/control-center.stories.d.ts +0 -11
  59. package/dist/src/presentation/web/components/features/control-center/control-center.stories.d.ts.map +1 -1
  60. package/dist/src/presentation/web/components/features/control-center/control-center.stories.js +2 -37
  61. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts +8 -0
  62. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts.map +1 -1
  63. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.js +154 -258
  64. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.d.ts +2 -10
  65. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.d.ts.map +1 -1
  66. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.js +12 -44
  67. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.stories.d.ts.map +1 -1
  68. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.stories.js +0 -46
  69. package/dist/src/presentation/web/components/layouts/app-shell/app-shell.js +1 -1
  70. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts +1 -3
  71. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts.map +1 -1
  72. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.js +2 -2
  73. package/dist/src/presentation/web/components/ui/scroll-area.js +1 -1
  74. package/dist/src/presentation/web/hooks/use-graph-state.d.ts +41 -0
  75. package/dist/src/presentation/web/hooks/use-graph-state.d.ts.map +1 -0
  76. package/dist/src/presentation/web/hooks/use-graph-state.js +230 -0
  77. package/dist/src/presentation/web/lib/derive-graph.d.ts +52 -0
  78. package/dist/src/presentation/web/lib/derive-graph.d.ts.map +1 -0
  79. package/dist/src/presentation/web/lib/derive-graph.js +126 -0
  80. package/dist/src/presentation/web/lib/layout-with-dagre.d.ts.map +1 -1
  81. package/dist/src/presentation/web/lib/layout-with-dagre.js +1 -2
  82. package/dist/tsconfig.build.tsbuildinfo +1 -1
  83. package/package.json +1 -1
  84. package/web/.next/BUILD_ID +1 -1
  85. package/web/.next/build-manifest.json +2 -2
  86. package/web/.next/cache/.previewinfo +1 -1
  87. package/web/.next/cache/.rscinfo +1 -1
  88. package/web/.next/cache/.tsbuildinfo +1 -1
  89. package/web/.next/cache/config.json +3 -3
  90. package/web/.next/fallback-build-manifest.json +2 -2
  91. package/web/.next/prerender-manifest.json +3 -3
  92. package/web/.next/required-server-files.js +1 -1
  93. package/web/.next/required-server-files.json +1 -1
  94. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +43 -28
  95. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +1 -1
  96. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  97. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  98. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +49 -34
  99. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +1 -1
  100. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  101. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  102. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +39 -24
  103. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +1 -1
  104. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  105. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  106. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +43 -28
  107. package/web/.next/server/app/(dashboard)/create/page.js +1 -1
  108. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  109. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  110. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +49 -34
  111. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +1 -1
  112. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  113. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  114. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +39 -24
  115. package/web/.next/server/app/(dashboard)/page.js +1 -1
  116. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  117. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  118. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +39 -24
  119. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +1 -1
  120. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  121. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  122. package/web/.next/server/app/_global-error.html +2 -2
  123. package/web/.next/server/app/_global-error.rsc +1 -1
  124. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  125. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  126. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  127. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  128. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  129. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  130. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  131. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  132. package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  133. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  134. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  135. package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
  136. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  137. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  138. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  139. package/web/.next/server/app/version/page.js.nft.json +1 -1
  140. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  141. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js +2 -2
  142. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js.map +1 -1
  143. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  144. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  145. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_816618e2.js +3 -0
  146. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_816618e2.js.map +1 -0
  147. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_ba2e050f.js +3 -0
  148. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_ba2e050f.js.map +1 -0
  149. package/web/.next/server/chunks/ssr/[root-of-the-server]__17a611f0._.js +2 -2
  150. package/web/.next/server/chunks/ssr/[root-of-the-server]__17a611f0._.js.map +1 -1
  151. package/web/.next/server/chunks/ssr/[root-of-the-server]__249c74f6._.js +1 -1
  152. package/web/.next/server/chunks/ssr/[root-of-the-server]__45dbf93d._.js +2 -2
  153. package/web/.next/server/chunks/ssr/[root-of-the-server]__45dbf93d._.js.map +1 -1
  154. package/web/.next/server/chunks/ssr/{[root-of-the-server]__cbae9863._.js → [root-of-the-server]__6258349c._.js} +2 -2
  155. package/web/.next/server/chunks/ssr/[root-of-the-server]__6258349c._.js.map +1 -0
  156. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
  157. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js.map +1 -1
  158. package/web/.next/server/chunks/ssr/[root-of-the-server]__6cbc1149._.js +2 -2
  159. package/web/.next/server/chunks/ssr/[root-of-the-server]__6cbc1149._.js.map +1 -1
  160. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
  161. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js.map +1 -1
  162. package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__e5e09f72._.js → server/chunks/ssr/[root-of-the-server]__94a6d275._.js} +2 -2
  163. package/web/.next/server/chunks/ssr/[root-of-the-server]__94a6d275._.js.map +1 -0
  164. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +1 -1
  165. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
  166. package/web/.next/server/chunks/ssr/_0e9d6bf7._.js +1 -1
  167. package/web/.next/server/chunks/ssr/_0e9d6bf7._.js.map +1 -1
  168. package/web/.next/server/chunks/ssr/_250a63ae._.js.map +1 -1
  169. package/web/.next/server/chunks/ssr/_61351ed3._.js +1 -1
  170. package/web/.next/server/chunks/ssr/_61351ed3._.js.map +1 -1
  171. package/web/.next/server/chunks/ssr/_63688261._.js +6 -0
  172. package/web/.next/server/chunks/ssr/_63688261._.js.map +1 -0
  173. package/web/.next/server/chunks/ssr/_8400c8bb._.js +1 -1
  174. package/web/.next/server/chunks/ssr/_8400c8bb._.js.map +1 -1
  175. package/web/.next/server/chunks/ssr/_9f940437._.js +1 -1
  176. package/web/.next/server/chunks/ssr/_9f940437._.js.map +1 -1
  177. package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_398553b0._.js → server/chunks/ssr/src_presentation_web_2b91e4ec._.js} +2 -2
  178. package/web/.next/server/chunks/ssr/{src_presentation_web_5c87e8e4._.js.map → src_presentation_web_2b91e4ec._.js.map} +1 -1
  179. package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_5c87e8e4._.js → server/chunks/ssr/src_presentation_web_5bcc1537._.js} +2 -2
  180. package/web/.next/server/chunks/ssr/{src_presentation_web_398553b0._.js.map → src_presentation_web_5bcc1537._.js.map} +1 -1
  181. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_5955c012.js +3 -0
  182. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_5955c012.js.map +1 -0
  183. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js +1 -1
  184. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js.map +1 -1
  185. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  186. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
  187. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  188. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  189. package/web/.next/server/chunks/ssr/src_presentation_web_d5b0cb86._.js +8 -0
  190. package/web/.next/server/chunks/ssr/src_presentation_web_d5b0cb86._.js.map +1 -0
  191. package/web/.next/server/chunks/ssr/src_presentation_web_e626b63c._.js +8 -0
  192. package/web/.next/server/chunks/ssr/src_presentation_web_e626b63c._.js.map +1 -0
  193. package/web/.next/server/pages/500.html +2 -2
  194. package/web/.next/server/server-reference-manifest.js +1 -1
  195. package/web/.next/server/server-reference-manifest.json +175 -118
  196. package/web/.next/standalone/src/presentation/web/.next/BUILD_ID +1 -1
  197. package/web/.next/standalone/src/presentation/web/.next/build-manifest.json +2 -2
  198. package/web/.next/standalone/src/presentation/web/.next/prerender-manifest.json +3 -3
  199. package/web/.next/standalone/src/presentation/web/.next/required-server-files.json +1 -1
  200. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +43 -28
  201. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page.js +1 -1
  202. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  203. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  204. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +49 -34
  205. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +1 -1
  206. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  207. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  208. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +39 -24
  209. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +1 -1
  210. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  211. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  212. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +43 -28
  213. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page.js +1 -1
  214. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  215. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  216. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +49 -34
  217. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +1 -1
  218. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  219. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  220. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +39 -24
  221. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page.js +1 -1
  222. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  223. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  224. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +39 -24
  225. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +1 -1
  226. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  227. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  228. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.html +2 -2
  229. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.rsc +1 -1
  230. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  231. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  232. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  233. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  234. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  235. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  236. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  237. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  238. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  239. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page.js.nft.json +1 -1
  240. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  241. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
  242. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page.js.nft.json +1 -1
  243. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  244. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  245. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page.js.nft.json +1 -1
  246. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  247. package/web/.next/standalone/src/presentation/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js +2 -2
  248. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  249. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_816618e2.js +3 -0
  250. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_ba2e050f.js +3 -0
  251. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__17a611f0._.js +2 -2
  252. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__249c74f6._.js +1 -1
  253. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__45dbf93d._.js +2 -2
  254. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/{[root-of-the-server]__cbae9863._.js → [root-of-the-server]__6258349c._.js} +2 -2
  255. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
  256. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6cbc1149._.js +2 -2
  257. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
  258. package/web/.next/{server/chunks/ssr/[root-of-the-server]__e5e09f72._.js → standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__94a6d275._.js} +2 -2
  259. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +1 -1
  260. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_0e9d6bf7._.js +1 -1
  261. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_61351ed3._.js +1 -1
  262. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_63688261._.js +6 -0
  263. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_8400c8bb._.js +1 -1
  264. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_9f940437._.js +1 -1
  265. package/web/.next/{server/chunks/ssr/src_presentation_web_398553b0._.js → standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_2b91e4ec._.js} +2 -2
  266. package/web/.next/{server/chunks/ssr/src_presentation_web_5c87e8e4._.js → standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_5bcc1537._.js} +2 -2
  267. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_5955c012.js +3 -0
  268. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js +1 -1
  269. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  270. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  271. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_d5b0cb86._.js +8 -0
  272. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_e626b63c._.js +8 -0
  273. package/web/.next/standalone/src/presentation/web/.next/server/pages/500.html +2 -2
  274. package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.js +1 -1
  275. package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.json +175 -118
  276. package/web/.next/standalone/src/presentation/web/CLAUDE.md +191 -0
  277. package/web/.next/standalone/src/presentation/web/app/actions/create-feature.ts +27 -2
  278. package/web/.next/standalone/src/presentation/web/app/actions/get-feature-metadata.ts +18 -0
  279. package/web/.next/standalone/src/presentation/web/app/actions/get-graph-data.ts +12 -0
  280. package/web/.next/standalone/src/presentation/web/app/api/agent-events/route.ts +21 -1
  281. package/web/.next/standalone/src/presentation/web/components/common/add-repository-button/index.ts +1 -0
  282. package/web/.next/standalone/src/presentation/web/components/common/control-center-drawer/create-drawer-client.tsx +23 -26
  283. package/web/.next/standalone/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.tsx +44 -18
  284. package/web/.next/standalone/src/presentation/web/components/common/feature-node/derive-feature-state.ts +2 -0
  285. package/web/.next/standalone/src/presentation/web/components/common/index.ts +1 -5
  286. package/web/.next/standalone/src/presentation/web/components/common/repository-node/repository-node.tsx +2 -2
  287. package/web/.next/standalone/src/presentation/web/components/common/sidebar-section-header/sidebar-section-header.stories.tsx +0 -13
  288. package/web/.next/standalone/src/presentation/web/components/common/sidebar-section-header/sidebar-section-header.tsx +1 -45
  289. package/web/.next/standalone/src/presentation/web/components/features/control-center/control-center-empty-state.tsx +1 -1
  290. package/web/.next/standalone/src/presentation/web/components/features/control-center/control-center-inner.tsx +24 -8
  291. package/web/.next/standalone/src/presentation/web/components/features/control-center/control-center.stories.tsx +2 -41
  292. package/web/.next/standalone/src/presentation/web/components/features/control-center/use-control-center-state.ts +183 -326
  293. package/web/.next/standalone/src/presentation/web/components/features/features-canvas/features-canvas.stories.tsx +0 -48
  294. package/web/.next/standalone/src/presentation/web/components/features/features-canvas/features-canvas.tsx +34 -82
  295. package/web/.next/standalone/src/presentation/web/components/layouts/app-shell/app-shell.tsx +1 -1
  296. package/web/.next/standalone/src/presentation/web/components/layouts/app-sidebar/app-sidebar.tsx +2 -14
  297. package/web/.next/standalone/src/presentation/web/components/ui/scroll-area.tsx +1 -1
  298. package/web/.next/standalone/src/presentation/web/hooks/use-graph-state.ts +343 -0
  299. package/web/.next/standalone/src/presentation/web/lib/derive-graph.ts +178 -0
  300. package/web/.next/standalone/src/presentation/web/lib/layout-with-dagre.ts +1 -2
  301. package/web/.next/standalone/src/presentation/web/server.js +1 -1
  302. package/web/.next/static/chunks/{71cf72022f08a8c9.js → 0a883e2efecfd563.js} +1 -1
  303. package/web/.next/static/chunks/{ebf172a84c9596ed.js → 596ca28d78baae25.js} +1 -1
  304. package/web/.next/static/chunks/{1c07b21eb8b32f25.js → 638824249d103905.js} +1 -1
  305. package/web/.next/static/chunks/63a80e9d4c4b0253.js +4 -0
  306. package/web/.next/static/chunks/71c9ecdceac1939f.css +2 -0
  307. package/web/.next/static/chunks/a040b058d79f4ade.js +1 -0
  308. package/web/.next/static/chunks/{fcafb841e3860687.js → c575ab63c138645b.js} +1 -1
  309. package/web/.next/static/chunks/cdc92cdf81005c84.js +1 -0
  310. package/web/.next/static/chunks/{fabfa54940973cc7.js → e05eb1cc84ee254a.js} +1 -1
  311. package/web/.next/static/chunks/{8682dcb376de62de.js → ef8f8940eac6c542.js} +1 -1
  312. package/web/.next/static/chunks/f32c98a709949c5b.js +1 -0
  313. package/web/.next/trace +1 -1
  314. package/web/.next/trace-build +1 -1
  315. package/dist/src/presentation/web/components/common/add-repository-node/add-repository-button.d.ts.map +0 -1
  316. package/dist/src/presentation/web/components/common/add-repository-node/add-repository-node-config.d.ts +0 -7
  317. package/dist/src/presentation/web/components/common/add-repository-node/add-repository-node-config.d.ts.map +0 -1
  318. package/dist/src/presentation/web/components/common/add-repository-node/add-repository-node-config.js +0 -1
  319. package/dist/src/presentation/web/components/common/add-repository-node/add-repository-node.d.ts +0 -6
  320. package/dist/src/presentation/web/components/common/add-repository-node/add-repository-node.d.ts.map +0 -1
  321. package/dist/src/presentation/web/components/common/add-repository-node/add-repository-node.js +0 -23
  322. package/dist/src/presentation/web/components/common/add-repository-node/add-repository-node.stories.d.ts +0 -10
  323. package/dist/src/presentation/web/components/common/add-repository-node/add-repository-node.stories.d.ts.map +0 -1
  324. package/dist/src/presentation/web/components/common/add-repository-node/add-repository-node.stories.js +0 -33
  325. package/dist/src/presentation/web/components/common/add-repository-node/index.d.ts +0 -4
  326. package/dist/src/presentation/web/components/common/add-repository-node/index.d.ts.map +0 -1
  327. package/dist/src/presentation/web/components/common/add-repository-node/pick-folder.d.ts.map +0 -1
  328. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_2b7834f6.js +0 -3
  329. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_2b7834f6.js.map +0 -1
  330. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_6923c575.js +0 -3
  331. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_6923c575.js.map +0 -1
  332. package/web/.next/server/chunks/ssr/[root-of-the-server]__cbae9863._.js.map +0 -1
  333. package/web/.next/server/chunks/ssr/[root-of-the-server]__e5e09f72._.js.map +0 -1
  334. package/web/.next/server/chunks/ssr/_47ef589d._.js +0 -6
  335. package/web/.next/server/chunks/ssr/_47ef589d._.js.map +0 -1
  336. package/web/.next/server/chunks/ssr/src_presentation_web_1a32dbcb._.js +0 -8
  337. package/web/.next/server/chunks/ssr/src_presentation_web_1a32dbcb._.js.map +0 -1
  338. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_f4952172.js +0 -3
  339. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_f4952172.js.map +0 -1
  340. package/web/.next/server/chunks/ssr/src_presentation_web_c1bc6240._.js +0 -8
  341. package/web/.next/server/chunks/ssr/src_presentation_web_c1bc6240._.js.map +0 -1
  342. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_2b7834f6.js +0 -3
  343. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_6923c575.js +0 -3
  344. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_47ef589d._.js +0 -6
  345. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_1a32dbcb._.js +0 -8
  346. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_f4952172.js +0 -3
  347. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_c1bc6240._.js +0 -8
  348. package/web/.next/standalone/src/presentation/web/components/common/add-repository-node/add-repository-node-config.ts +0 -8
  349. package/web/.next/standalone/src/presentation/web/components/common/add-repository-node/add-repository-node.stories.tsx +0 -70
  350. package/web/.next/standalone/src/presentation/web/components/common/add-repository-node/add-repository-node.tsx +0 -49
  351. package/web/.next/standalone/src/presentation/web/components/common/add-repository-node/index.ts +0 -3
  352. package/web/.next/static/chunks/3c79bca4d3f18f66.js +0 -1
  353. package/web/.next/static/chunks/5cd24ca47061a21d.js +0 -4
  354. package/web/.next/static/chunks/67f2a7a5e8dc358a.css +0 -2
  355. package/web/.next/static/chunks/991d4490d7a338d8.js +0 -1
  356. package/web/.next/static/chunks/c71589df79020ecb.js +0 -1
  357. /package/dist/src/presentation/web/components/common/{add-repository-node → add-repository-button}/add-repository-button.d.ts +0 -0
  358. /package/dist/src/presentation/web/components/common/{add-repository-node → add-repository-button}/add-repository-button.js +0 -0
  359. /package/dist/src/presentation/web/components/common/{add-repository-node → add-repository-button}/pick-folder.d.ts +0 -0
  360. /package/dist/src/presentation/web/components/common/{add-repository-node → add-repository-button}/pick-folder.js +0 -0
  361. /package/web/.next/standalone/src/presentation/web/components/common/{add-repository-node → add-repository-button}/add-repository-button.tsx +0 -0
  362. /package/web/.next/standalone/src/presentation/web/components/common/{add-repository-node → add-repository-button}/pick-folder.ts +0 -0
  363. /package/web/.next/static/{IKuYPxAuMvc4BtwKHlj30 → uMxPSDPwZCludF5408rWJ}/_buildManifest.js +0 -0
  364. /package/web/.next/static/{IKuYPxAuMvc4BtwKHlj30 → uMxPSDPwZCludF5408rWJ}/_clientMiddlewareManifest.json +0 -0
  365. /package/web/.next/static/{IKuYPxAuMvc4BtwKHlj30 → uMxPSDPwZCludF5408rWJ}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,87292,e=>{"use strict";var t=e.i(20314),a=e.i(79054),r=e.i(31406),i=e.i(94237),o=e.i(3645);let n=(0,o.default)("panel-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]]);var l=e.i(5240),s=e.i(31777),d=e.i(35364);e.i(98127),e.i(25235);var c=e.i(48249),u=e.i(90033);function f({...e}){return(0,t.jsx)(u.Dialog.Root,{"data-slot":"sheet",...e})}function p({...e}){return(0,t.jsx)(u.Dialog.Portal,{"data-slot":"sheet-portal",...e})}function h({className:e,...a}){return(0,t.jsx)(u.Dialog.Overlay,{"data-slot":"sheet-overlay",className:(0,s.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",e),...a})}function m({className:e,children:a,side:r="right",showCloseButton:i=!0,...o}){return(0,t.jsxs)(p,{children:[(0,t.jsx)(h,{}),(0,t.jsxs)(u.Dialog.Content,{"data-slot":"sheet-content",className:(0,s.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500","right"===r&&"data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm","left"===r&&"data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm","top"===r&&"data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b","bottom"===r&&"data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t",e),...o,children:[a,i?(0,t.jsxs)(u.Dialog.Close,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none",children:[(0,t.jsx)(c.XIcon,{className:"size-4"}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]}):null]})]})}function b({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"sheet-header",className:(0,s.cn)("flex flex-col gap-1.5 p-4",e),...a})}function g({className:e,...a}){return(0,t.jsx)(u.Dialog.Title,{"data-slot":"sheet-title",className:(0,s.cn)("text-foreground font-semibold",e),...a})}function v({className:e,...a}){return(0,t.jsx)(u.Dialog.Description,{"data-slot":"sheet-description",className:(0,s.cn)("text-muted-foreground text-sm",e),...a})}var x=e.i(2828);let w=a.createContext(null);function C(){let e=a.useContext(w);if(!e)throw Error("useSidebar must be used within a SidebarProvider.");return e}function y({defaultOpen:e=!0,open:r,onOpenChange:i,className:o,style:n,children:l,...d}){let c=function(){let[e,t]=a.useState(void 0);return a.useEffect(()=>{let e=window.matchMedia("(max-width: 767px)"),a=()=>{t(window.innerWidth<768)};return e.addEventListener("change",a),t(window.innerWidth<768),()=>e.removeEventListener("change",a)},[]),!!e}(),[u,f]=a.useState(!1),[p,h]=a.useState(e),m=r??p,b=a.useCallback(e=>{let t="function"==typeof e?e(m):e;i?i(t):h(t),document.cookie=`sidebar_state=${t}; path=/; max-age=604800`},[i,m]),g=a.useCallback(()=>c?f(e=>!e):b(e=>!e),[c,b,f]);a.useEffect(()=>{let e=e=>{"b"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),g())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[g]);let v=m?"expanded":"collapsed",C=a.useMemo(()=>({state:v,open:m,setOpen:b,isMobile:c,openMobile:u,setOpenMobile:f,toggleSidebar:g}),[v,m,b,c,u,f,g]);return(0,t.jsx)(w.Provider,{value:C,children:(0,t.jsx)(x.TooltipProvider,{delayDuration:0,children:(0,t.jsx)("div",{"data-slot":"sidebar-wrapper",style:{"--sidebar-width":"16rem","--sidebar-width-icon":"3rem",...n},className:(0,s.cn)("group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full",o),...d,children:l})})})}function j({side:e="left",variant:a="sidebar",collapsible:r="offcanvas",className:i,children:o,...n}){let{isMobile:l,state:d,openMobile:c,setOpenMobile:u}=C();return"none"===r?(0,t.jsx)("div",{"data-slot":"sidebar",className:(0,s.cn)("bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col",i),...n,children:o}):l?(0,t.jsx)(f,{open:c,onOpenChange:u,...n,children:(0,t.jsxs)(m,{"data-sidebar":"sidebar","data-slot":"sidebar","data-mobile":"true",className:"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden",style:{"--sidebar-width":"18rem"},side:e,children:[(0,t.jsxs)(b,{className:"sr-only",children:[(0,t.jsx)(g,{children:"Sidebar"}),(0,t.jsx)(v,{children:"Displays the mobile sidebar."})]}),(0,t.jsx)("div",{className:"flex h-full w-full flex-col",children:o})]})}):(0,t.jsxs)("div",{className:"group peer text-sidebar-foreground hidden md:block","data-state":d,"data-collapsible":"collapsed"===d?r:"","data-variant":a,"data-side":e,"data-slot":"sidebar",children:[(0,t.jsx)("div",{"data-slot":"sidebar-gap",className:(0,s.cn)("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0","group-data-[side=right]:rotate-180","floating"===a||"inset"===a?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),(0,t.jsx)("div",{"data-slot":"sidebar-container",className:(0,s.cn)("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex","left"===e?"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]":"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]","floating"===a||"inset"===a?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",i),...n,children:(0,t.jsx)("div",{"data-sidebar":"sidebar","data-slot":"sidebar-inner",className:"bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm",children:o})})]})}function S({className:e,...a}){let{toggleSidebar:r}=C();return(0,t.jsx)("button",{"data-sidebar":"rail","data-slot":"sidebar-rail","aria-label":"Toggle Sidebar",tabIndex:-1,onClick:r,title:"Toggle Sidebar",className:(0,s.cn)("hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] sm:flex","in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize","[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize","hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full","[[data-side=left][data-collapsible=offcanvas]_&]:-right-2","[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",e),...a})}function N({className:e,...a}){return(0,t.jsx)("main",{"data-slot":"sidebar-inset",className:(0,s.cn)("bg-background relative flex w-full flex-1 flex-col","md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2",e),...a})}function k({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"sidebar-header","data-sidebar":"header",className:(0,s.cn)("flex flex-col gap-2 p-2",e),...a})}function E({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"sidebar-footer","data-sidebar":"footer",className:(0,s.cn)("flex flex-col gap-2 p-2",e),...a})}function T({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"sidebar-content","data-sidebar":"content",className:(0,s.cn)("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",e),...a})}function R({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"sidebar-group","data-sidebar":"group",className:(0,s.cn)("relative flex w-full min-w-0 flex-col p-2",e),...a})}function A({className:e,asChild:a=!1,...r}){let i=a?l.Slot.Root:"div";return(0,t.jsx)(i,{"data-slot":"sidebar-group-label","data-sidebar":"group-label",className:(0,s.cn)("text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",e),...r})}function L({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"sidebar-group-content","data-sidebar":"group-content",className:(0,s.cn)("w-full text-sm",e),...a})}function P({className:e,...a}){return(0,t.jsx)("ul",{"data-slot":"sidebar-menu","data-sidebar":"menu",className:(0,s.cn)("flex w-full min-w-0 flex-col gap-1",e),...a})}function z({className:e,...a}){return(0,t.jsx)("li",{"data-slot":"sidebar-menu-item","data-sidebar":"menu-item",className:(0,s.cn)("group/menu-item relative",e),...a})}let D=(0,i.cva)("peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",{variants:{variant:{default:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",outline:"bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:p-0!"}},defaultVariants:{variant:"default",size:"default"}});function _({asChild:e=!1,isActive:a=!1,variant:r="default",size:i="default",tooltip:o,className:n,...d}){let c=e?l.Slot.Root:"button",{isMobile:u,state:f}=C(),p=(0,t.jsx)(c,{"data-slot":"sidebar-menu-button","data-sidebar":"menu-button","data-size":i,"data-active":a,className:(0,s.cn)(D({variant:r,size:i}),n),...d});return o?("string"==typeof o&&(o={children:o}),(0,t.jsxs)(x.Tooltip,{children:[(0,t.jsx)(x.TooltipTrigger,{asChild:!0,children:p}),(0,t.jsx)(x.TooltipContent,{side:"right",align:"center",hidden:"collapsed"!==f||u,...o})]})):p}let M=(0,o.default)("house",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]]);var H=e.i(81975),I=e.i(12103),W=e.i(3214),O=e.i(87620),F=e.i(85995),B=e.i(22528),U=e.i(5978),X=e.i(29297),V=e.i(66033),Y=e.i(5192),$=e.i(91967),q="ScrollArea",[Z,K]=(0,B.createContextScope)(q),[G,J]=Z(q),Q=a.forwardRef((e,r)=>{let{__scopeScrollArea:i,type:o="hover",dir:n,scrollHideDelay:l=600,...s}=e,[d,c]=a.useState(null),[u,f]=a.useState(null),[p,h]=a.useState(null),[m,b]=a.useState(null),[g,v]=a.useState(null),[x,w]=a.useState(0),[C,y]=a.useState(0),[j,S]=a.useState(!1),[N,k]=a.useState(!1),E=(0,U.useComposedRefs)(r,e=>c(e)),T=(0,V.useDirection)(n);return(0,t.jsx)(G,{scope:i,type:o,dir:T,scrollHideDelay:l,scrollArea:d,viewport:u,onViewportChange:f,content:p,onContentChange:h,scrollbarX:m,onScrollbarXChange:b,scrollbarXEnabled:j,onScrollbarXEnabledChange:S,scrollbarY:g,onScrollbarYChange:v,scrollbarYEnabled:N,onScrollbarYEnabledChange:k,onCornerWidthChange:w,onCornerHeightChange:y,children:(0,t.jsx)(O.Primitive.div,{dir:T,...s,ref:E,style:{position:"relative","--radix-scroll-area-corner-width":x+"px","--radix-scroll-area-corner-height":C+"px",...e.style}})})});Q.displayName=q;var ee="ScrollAreaViewport",et=a.forwardRef((e,r)=>{let{__scopeScrollArea:i,children:o,nonce:n,...l}=e,s=J(ee,i),d=a.useRef(null),c=(0,U.useComposedRefs)(r,d,s.onViewportChange);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:n}),(0,t.jsx)(O.Primitive.div,{"data-radix-scroll-area-viewport":"",...l,ref:c,style:{overflowX:s.scrollbarXEnabled?"scroll":"hidden",overflowY:s.scrollbarYEnabled?"scroll":"hidden",...e.style},children:(0,t.jsx)("div",{ref:s.onContentChange,style:{minWidth:"100%",display:"table"},children:o})})]})});et.displayName=ee;var ea="ScrollAreaScrollbar",er=a.forwardRef((e,r)=>{let{forceMount:i,...o}=e,n=J(ea,e.__scopeScrollArea),{onScrollbarXEnabledChange:l,onScrollbarYEnabledChange:s}=n,d="horizontal"===e.orientation;return a.useEffect(()=>(d?l(!0):s(!0),()=>{d?l(!1):s(!1)}),[d,l,s]),"hover"===n.type?(0,t.jsx)(ei,{...o,ref:r,forceMount:i}):"scroll"===n.type?(0,t.jsx)(eo,{...o,ref:r,forceMount:i}):"auto"===n.type?(0,t.jsx)(en,{...o,ref:r,forceMount:i}):"always"===n.type?(0,t.jsx)(el,{...o,ref:r}):null});er.displayName=ea;var ei=a.forwardRef((e,r)=>{let{forceMount:i,...o}=e,n=J(ea,e.__scopeScrollArea),[l,s]=a.useState(!1);return a.useEffect(()=>{let e=n.scrollArea,t=0;if(e){let a=()=>{window.clearTimeout(t),s(!0)},r=()=>{t=window.setTimeout(()=>s(!1),n.scrollHideDelay)};return e.addEventListener("pointerenter",a),e.addEventListener("pointerleave",r),()=>{window.clearTimeout(t),e.removeEventListener("pointerenter",a),e.removeEventListener("pointerleave",r)}}},[n.scrollArea,n.scrollHideDelay]),(0,t.jsx)(F.Presence,{present:i||l,children:(0,t.jsx)(en,{"data-state":l?"visible":"hidden",...o,ref:r})})}),eo=a.forwardRef((e,r)=>{var i;let{forceMount:o,...n}=e,l=J(ea,e.__scopeScrollArea),s="horizontal"===e.orientation,d=eN(()=>u("SCROLL_END"),100),[c,u]=(i={hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}},a.useReducer((e,t)=>i[e][t]??e,"hidden"));return a.useEffect(()=>{if("idle"===c){let e=window.setTimeout(()=>u("HIDE"),l.scrollHideDelay);return()=>window.clearTimeout(e)}},[c,l.scrollHideDelay,u]),a.useEffect(()=>{let e=l.viewport,t=s?"scrollLeft":"scrollTop";if(e){let a=e[t],r=()=>{let r=e[t];a!==r&&(u("SCROLL"),d()),a=r};return e.addEventListener("scroll",r),()=>e.removeEventListener("scroll",r)}},[l.viewport,s,u,d]),(0,t.jsx)(F.Presence,{present:o||"hidden"!==c,children:(0,t.jsx)(el,{"data-state":"hidden"===c?"hidden":"visible",...n,ref:r,onPointerEnter:(0,$.composeEventHandlers)(e.onPointerEnter,()=>u("POINTER_ENTER")),onPointerLeave:(0,$.composeEventHandlers)(e.onPointerLeave,()=>u("POINTER_LEAVE"))})})}),en=a.forwardRef((e,r)=>{let i=J(ea,e.__scopeScrollArea),{forceMount:o,...n}=e,[l,s]=a.useState(!1),d="horizontal"===e.orientation,c=eN(()=>{if(i.viewport){let e=i.viewport.offsetWidth<i.viewport.scrollWidth,t=i.viewport.offsetHeight<i.viewport.scrollHeight;s(d?e:t)}},10);return ek(i.viewport,c),ek(i.content,c),(0,t.jsx)(F.Presence,{present:o||l,children:(0,t.jsx)(el,{"data-state":l?"visible":"hidden",...n,ref:r})})}),el=a.forwardRef((e,r)=>{let{orientation:i="vertical",...o}=e,n=J(ea,e.__scopeScrollArea),l=a.useRef(null),s=a.useRef(0),[d,c]=a.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),u=ew(d.viewport,d.content),f={...o,sizes:d,onSizesChange:c,hasThumb:!!(u>0&&u<1),onThumbChange:e=>l.current=e,onThumbPointerUp:()=>s.current=0,onThumbPointerDown:e=>s.current=e};function p(e,t){return function(e,t,a,r="ltr"){let i=eC(a),o=t||i/2,n=a.scrollbar.paddingStart+o,l=a.scrollbar.size-a.scrollbar.paddingEnd-(i-o),s=a.content-a.viewport;return ej([n,l],"ltr"===r?[0,s]:[-1*s,0])(e)}(e,s.current,d,t)}return"horizontal"===i?(0,t.jsx)(es,{...f,ref:r,onThumbPositionChange:()=>{if(n.viewport&&l.current){let e=ey(n.viewport.scrollLeft,d,n.dir);l.current.style.transform=`translate3d(${e}px, 0, 0)`}},onWheelScroll:e=>{n.viewport&&(n.viewport.scrollLeft=e)},onDragScroll:e=>{n.viewport&&(n.viewport.scrollLeft=p(e,n.dir))}}):"vertical"===i?(0,t.jsx)(ed,{...f,ref:r,onThumbPositionChange:()=>{if(n.viewport&&l.current){let e=ey(n.viewport.scrollTop,d);l.current.style.transform=`translate3d(0, ${e}px, 0)`}},onWheelScroll:e=>{n.viewport&&(n.viewport.scrollTop=e)},onDragScroll:e=>{n.viewport&&(n.viewport.scrollTop=p(e))}}):null}),es=a.forwardRef((e,r)=>{let{sizes:i,onSizesChange:o,...n}=e,l=J(ea,e.__scopeScrollArea),[s,d]=a.useState(),c=a.useRef(null),u=(0,U.useComposedRefs)(r,c,l.onScrollbarXChange);return a.useEffect(()=>{c.current&&d(getComputedStyle(c.current))},[c]),(0,t.jsx)(ef,{"data-orientation":"horizontal",...n,ref:u,sizes:i,style:{bottom:0,left:"rtl"===l.dir?"var(--radix-scroll-area-corner-width)":0,right:"ltr"===l.dir?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":eC(i)+"px",...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,a)=>{if(l.viewport){var r,i;let o=l.viewport.scrollLeft+t.deltaX;e.onWheelScroll(o),r=o,i=a,r>0&&r<i&&t.preventDefault()}},onResize:()=>{c.current&&l.viewport&&s&&o({content:l.viewport.scrollWidth,viewport:l.viewport.offsetWidth,scrollbar:{size:c.current.clientWidth,paddingStart:ex(s.paddingLeft),paddingEnd:ex(s.paddingRight)}})}})}),ed=a.forwardRef((e,r)=>{let{sizes:i,onSizesChange:o,...n}=e,l=J(ea,e.__scopeScrollArea),[s,d]=a.useState(),c=a.useRef(null),u=(0,U.useComposedRefs)(r,c,l.onScrollbarYChange);return a.useEffect(()=>{c.current&&d(getComputedStyle(c.current))},[c]),(0,t.jsx)(ef,{"data-orientation":"vertical",...n,ref:u,sizes:i,style:{top:0,right:"ltr"===l.dir?0:void 0,left:"rtl"===l.dir?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":eC(i)+"px",...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,a)=>{if(l.viewport){var r,i;let o=l.viewport.scrollTop+t.deltaY;e.onWheelScroll(o),r=o,i=a,r>0&&r<i&&t.preventDefault()}},onResize:()=>{c.current&&l.viewport&&s&&o({content:l.viewport.scrollHeight,viewport:l.viewport.offsetHeight,scrollbar:{size:c.current.clientHeight,paddingStart:ex(s.paddingTop),paddingEnd:ex(s.paddingBottom)}})}})}),[ec,eu]=Z(ea),ef=a.forwardRef((e,r)=>{let{__scopeScrollArea:i,sizes:o,hasThumb:n,onThumbChange:l,onThumbPointerUp:s,onThumbPointerDown:d,onThumbPositionChange:c,onDragScroll:u,onWheelScroll:f,onResize:p,...h}=e,m=J(ea,i),[b,g]=a.useState(null),v=(0,U.useComposedRefs)(r,e=>g(e)),x=a.useRef(null),w=a.useRef(""),C=m.viewport,y=o.content-o.viewport,j=(0,X.useCallbackRef)(f),S=(0,X.useCallbackRef)(c),N=eN(p,10);function k(e){x.current&&u({x:e.clientX-x.current.left,y:e.clientY-x.current.top})}return a.useEffect(()=>{let e=e=>{let t=e.target;b?.contains(t)&&j(e,y)};return document.addEventListener("wheel",e,{passive:!1}),()=>document.removeEventListener("wheel",e,{passive:!1})},[C,b,y,j]),a.useEffect(S,[o,S]),ek(b,N),ek(m.content,N),(0,t.jsx)(ec,{scope:i,scrollbar:b,hasThumb:n,onThumbChange:(0,X.useCallbackRef)(l),onThumbPointerUp:(0,X.useCallbackRef)(s),onThumbPositionChange:S,onThumbPointerDown:(0,X.useCallbackRef)(d),children:(0,t.jsx)(O.Primitive.div,{...h,ref:v,style:{position:"absolute",...h.style},onPointerDown:(0,$.composeEventHandlers)(e.onPointerDown,e=>{0===e.button&&(e.target.setPointerCapture(e.pointerId),x.current=b.getBoundingClientRect(),w.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",m.viewport&&(m.viewport.style.scrollBehavior="auto"),k(e))}),onPointerMove:(0,$.composeEventHandlers)(e.onPointerMove,k),onPointerUp:(0,$.composeEventHandlers)(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=w.current,m.viewport&&(m.viewport.style.scrollBehavior=""),x.current=null})})})}),ep="ScrollAreaThumb",eh=a.forwardRef((e,a)=>{let{forceMount:r,...i}=e,o=eu(ep,e.__scopeScrollArea);return(0,t.jsx)(F.Presence,{present:r||o.hasThumb,children:(0,t.jsx)(em,{ref:a,...i})})}),em=a.forwardRef((e,r)=>{let{__scopeScrollArea:i,style:o,...n}=e,l=J(ep,i),s=eu(ep,i),{onThumbPositionChange:d}=s,c=(0,U.useComposedRefs)(r,e=>s.onThumbChange(e)),u=a.useRef(void 0),f=eN(()=>{u.current&&(u.current(),u.current=void 0)},100);return a.useEffect(()=>{let e=l.viewport;if(e){let t=()=>{f(),u.current||(u.current=eS(e,d),d())};return d(),e.addEventListener("scroll",t),()=>e.removeEventListener("scroll",t)}},[l.viewport,f,d]),(0,t.jsx)(O.Primitive.div,{"data-state":s.hasThumb?"visible":"hidden",...n,ref:c,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...o},onPointerDownCapture:(0,$.composeEventHandlers)(e.onPointerDownCapture,e=>{let t=e.target.getBoundingClientRect(),a=e.clientX-t.left,r=e.clientY-t.top;s.onThumbPointerDown({x:a,y:r})}),onPointerUp:(0,$.composeEventHandlers)(e.onPointerUp,s.onThumbPointerUp)})});eh.displayName=ep;var eb="ScrollAreaCorner",eg=a.forwardRef((e,a)=>{let r=J(eb,e.__scopeScrollArea),i=!!(r.scrollbarX&&r.scrollbarY);return"scroll"!==r.type&&i?(0,t.jsx)(ev,{...e,ref:a}):null});eg.displayName=eb;var ev=a.forwardRef((e,r)=>{let{__scopeScrollArea:i,...o}=e,n=J(eb,i),[l,s]=a.useState(0),[d,c]=a.useState(0),u=!!(l&&d);return ek(n.scrollbarX,()=>{let e=n.scrollbarX?.offsetHeight||0;n.onCornerHeightChange(e),c(e)}),ek(n.scrollbarY,()=>{let e=n.scrollbarY?.offsetWidth||0;n.onCornerWidthChange(e),s(e)}),u?(0,t.jsx)(O.Primitive.div,{...o,ref:r,style:{width:l,height:d,position:"absolute",right:"ltr"===n.dir?0:void 0,left:"rtl"===n.dir?0:void 0,bottom:0,...e.style}}):null});function ex(e){return e?parseInt(e,10):0}function ew(e,t){let a=e/t;return isNaN(a)?0:a}function eC(e){let t=ew(e.viewport,e.content),a=e.scrollbar.paddingStart+e.scrollbar.paddingEnd;return Math.max((e.scrollbar.size-a)*t,18)}function ey(e,t,a="ltr"){let r=eC(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,o=t.scrollbar.size-i,n=t.content-t.viewport,l=function(e,[t,a]){return Math.min(a,Math.max(t,e))}(e,"ltr"===a?[0,n]:[-1*n,0]);return ej([0,n],[0,o-r])(l)}function ej(e,t){return a=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(a-e[0])}}var eS=(e,t=()=>{})=>{let a={left:e.scrollLeft,top:e.scrollTop},r=0;return!function i(){let o={left:e.scrollLeft,top:e.scrollTop},n=a.left!==o.left,l=a.top!==o.top;(n||l)&&t(),a=o,r=window.requestAnimationFrame(i)}(),()=>window.cancelAnimationFrame(r)};function eN(e,t){let r=(0,X.useCallbackRef)(e),i=a.useRef(0);return a.useEffect(()=>()=>window.clearTimeout(i.current),[]),a.useCallback(()=>{window.clearTimeout(i.current),i.current=window.setTimeout(r,t)},[r,t])}function ek(e,t){let a=(0,X.useCallbackRef)(t);(0,Y.useLayoutEffect)(()=>{let t=0;if(e){let r=new ResizeObserver(()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(a)});return r.observe(e),()=>{window.cancelAnimationFrame(t),r.unobserve(e)}}},[e,a])}e.s(["Corner",()=>eg,"Root",()=>Q,"ScrollArea",()=>Q,"ScrollAreaCorner",()=>eg,"ScrollAreaScrollbar",()=>er,"ScrollAreaThumb",()=>eh,"ScrollAreaViewport",()=>et,"Scrollbar",()=>er,"Thumb",()=>eh,"Viewport",()=>et,"createScrollAreaScope",()=>K],87516);var eE=e.i(87516),eE=eE;function eT({className:e,children:a,...r}){return(0,t.jsxs)(eE.Root,{"data-slot":"scroll-area",className:(0,s.cn)("relative",e),...r,children:[(0,t.jsx)(eE.Viewport,{"data-slot":"scroll-area-viewport",className:"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1 [&>div]:block!",children:a}),(0,t.jsx)(eR,{}),(0,t.jsx)(eE.Corner,{})]})}function eR({className:e,orientation:a="vertical",...r}){return(0,t.jsx)(eE.ScrollAreaScrollbar,{"data-slot":"scroll-area-scrollbar",orientation:a,className:(0,s.cn)("flex touch-none p-px transition-colors select-none","vertical"===a&&"h-full w-2.5 border-l border-l-transparent","horizontal"===a&&"h-2.5 flex-col border-t border-t-transparent",e),...r,children:(0,t.jsx)(eE.ScrollAreaThumb,{"data-slot":"scroll-area-thumb",className:"bg-border relative flex-1 rounded-full"})})}var eA=e.i(24035),eL=e.i(8361);function eP({icon:e,label:a,href:r,active:i=!1}){let o=(0,eL.useSoundAction)("navigate");return(0,t.jsx)(z,{"data-testid":"sidebar-nav-item",children:(0,t.jsx)(_,{asChild:!0,isActive:i,tooltip:a,children:(0,t.jsxs)(eA.default,{href:r,onClick:()=>o.play(),children:[(0,t.jsx)(e,{}),(0,t.jsx)("span",{children:a})]})})})}function ez({className:e}){let{toggleSidebar:a,open:r}=C(),i=(0,eL.useSoundAction)("expand"),o=(0,eL.useSoundAction)("collapse");return(0,t.jsx)("div",{className:(0,s.cn)("flex",e),children:(0,t.jsx)(d.Button,{"data-testid":"sidebar-collapse-toggle",variant:"ghost",size:"icon",className:"size-7 cursor-pointer group-data-[collapsible=icon]:size-8!",onClick:()=>{r?o.play():i.play(),a()},"aria-label":r?"Collapse sidebar":"Expand sidebar",children:(0,t.jsx)(n,{className:"size-4"})})})}function eD({className:e,size:a=24}){return(0,t.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 194 200",width:a,height:a,className:(0,s.cn)("shrink-0",e),"aria-hidden":"true",children:(0,t.jsx)("g",{transform:"matrix(1, 0, 0, 1, -111, -208)",children:(0,t.jsx)("path",{d:"M 198 406 C196,405 194,403 193,401 C192,399 191,398 186,398 C178,397 174,394 170,387 L 168 381 L 163 381 C156,381 150,377 147,370 C144,364 143,359 146,353 C148,348 148,347 147,347 C145,347 140,343 138,339 C133,329 139,314 149,311 L 152 311 L 149 307 C145,302 145,294 149,290 C151,288 152,287 151,286 C150,283 152,278 155,276 C156,275 159,274 162,273 C165,273 166,273 168,276 C171,278 171,280 172,287 C173,294 174,297 177,304 C180,309 182,314 183,316 C186,327 193,336 199,339 C204,342 211,342 216,340 C222,336 231,324 234,314 C235,312 237,307 239,302 C240,298 242,292 242,289 C243,281 245,278 247,275 C250,273 251,273 255,273 C261,274 264,278 264,282 C264,284 264,286 263,287 C262,287 263,288 265,290 C272,295 272,303 267,309 L 265 312 L 269 314 C276,317 279,323 279,332 C279,339 277,343 272,347 C268,351 268,351 269,354 C272,358 271,366 269,371 C266,376 259,381 254,381 C252,381 251,382 248,386 C242,395 234,400 227,399 C224,398 223,398 221,401 C220,403 217,405 216,406 C211,409 203,409 198,406 ZM 136 271 C123,267 115,262 113,256 C111,251 111,251 113,251 C118,254 124,254 132,252 C136,252 141,251 144,251 C149,251 157,253 162,256 C166,258 166,258 166,264 L 166 269 L 160 270 C149,272 142,272 136,271 ZM 264 271 C263,271 259,270 256,270 L 250 270 L 250 265 C249,259 250,257 259,254 C265,251 272,251 289,252 C297,253 299,253 302,252 C305,250 305,250 305,252 C305,255 301,262 297,264 C289,270 272,273 264,271 ZM 162 249 C160,247 159,245 159,242 C159,236 164,230 169,230 C170,230 171,228 171,225 C171,216 176,210 184,209 C189,209 195,211 195,213 C195,214 196,213 197,212 C201,209 204,208 208,208 C212,208 217,210 219,212 C220,214 220,213 223,211 C226,208 234,208 239,211 C243,214 246,221 246,226 C245,230 245,230 247,230 C253,230 258,238 257,244 C256,249 251,252 245,252 C241,252 237,251 234,248 C232,247 232,247 228,249 C225,251 222,252 220,252 C216,252 212,250 210,247 C209,246 209,246 206,248 C201,252 192,253 185,248 C183,247 183,247 178,249 C172,253 166,253 162,249 ZM 116 249 C112,248 114,247 119,247 C122,247 127,246 130,245 C138,242 146,242 152,245 L 158 248 L 148 247 C142,247 138,247 133,248 C128,250 120,250 116,249 ZM 284 248 C281,247 277,247 270,247 L 260 248 L 263 246 C269,243 276,242 284,245 C289,246 295,247 298,247 C303,247 304,247 303,248 C301,250 289,250 284,248 Z",fill:"currentColor"})})})}function e_({startedAt:e}){let[r,i]=(0,a.useState)(()=>Date.now()-e);return(0,a.useEffect)(()=>{let t=setInterval(()=>{(0,a.startTransition)(()=>i(Date.now()-e))},1e3);return()=>clearInterval(t)},[e]),(0,t.jsx)("span",{"data-testid":"elapsed-time",className:"tabular-nums",children:function(e){let t=Math.floor(e/1e3);if(t>=3600){let e=Math.floor(t/3600);return`${e}h`}let a=Math.floor(t/60);return`${String(a).padStart(2,"0")}:${String(t%60).padStart(2,"0")}`}(r)})}var eM=e.i(51251),eH=e.i(83428),eI=e.i(10942);let eW={"action-needed":{icon:eM.CircleAlert,iconClass:"text-amber-500",bgClass:"bg-amber-500/10",label:"Action Needed"},"in-progress":{icon:eH.Loader2,iconClass:"text-blue-500 animate-spin",bgClass:"bg-blue-500/10",label:"In Progress"},done:{icon:eI.CircleCheck,iconClass:"text-emerald-500",bgClass:"bg-emerald-500/10",label:"Done"}},eO=["action-needed","in-progress","done"];function eF({name:e,status:a,startedAt:r,duration:i,onClick:o}){let{icon:n,iconClass:l}=eW[a];return(0,t.jsx)(z,{"data-testid":"feature-list-item",children:(0,t.jsxs)(_,{size:"sm",onClick:o,tooltip:e,className:"cursor-pointer",children:[(0,t.jsx)(n,{className:l}),(0,t.jsx)("span",{className:"flex-1 truncate font-medium",children:e}),"in-progress"===a&&null!=r?(0,t.jsx)("span",{"data-testid":"feature-list-item-meta",className:"text-muted-foreground ml-auto text-xs tabular-nums",children:(0,t.jsx)(e_,{startedAt:r})}):null,"done"===a&&i?(0,t.jsx)("span",{"data-testid":"feature-list-item-meta",className:"text-muted-foreground ml-auto text-xs tabular-nums",children:i}):null]})})}function eB({label:e,count:a,children:r}){return(0,t.jsxs)(R,{"data-testid":"feature-status-group",className:"px-2 py-1",children:[(0,t.jsxs)(A,{className:"text-muted-foreground h-6 px-2 text-[0.65rem] font-semibold tracking-wider uppercase",children:[e,(0,t.jsx)("span",{"aria-label":`${a} items`,className:"bg-sidebar-accent text-sidebar-accent-foreground ml-1.5 inline-flex h-4 min-w-4 items-center justify-center rounded-full px-1 text-[0.6rem] font-medium tabular-nums",role:"img",children:a})]}),(0,t.jsx)(L,{children:(0,t.jsx)(P,{className:"gap-0.5",children:r})})]})}function eU({label:e,className:a}){return(0,t.jsx)(R,{"data-testid":"sidebar-section-header",className:(0,s.cn)("px-2 py-1",a),children:(0,t.jsx)("div",{className:"text-sidebar-foreground flex h-7 w-full shrink-0 items-center px-2 text-sm font-medium",children:(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate",children:e})})})}var eX=e.i(63629);function eV({features:e,onNewFeature:i,onFeatureClick:o}){let n=(0,r.usePathname)(),{state:l}=C(),{mounted:s,visible:d}=function(e,t){let[r,i]=(0,a.useState)(!e),[o,n]=(0,a.useState)(!e);return(0,a.useEffect)(()=>{if(!e){i(!0);let e=requestAnimationFrame(()=>n(!0));return()=>cancelAnimationFrame(e)}n(!1);let t=window.setTimeout(()=>i(!1),200);return()=>window.clearTimeout(t)},[e,200]),{mounted:r,visible:o}}("collapsed"===l,0),c=eO.map(t=>{let{label:a}=eW[t],r=e.filter(e=>e.status===t);return{key:t,label:a,items:r}});return(0,t.jsxs)(j,{"data-testid":"app-sidebar","data-no-drawer-close":!0,collapsible:"icon",children:[(0,t.jsx)(k,{children:(0,t.jsxs)(P,{children:[(0,t.jsx)(z,{children:(0,t.jsxs)("div",{className:"flex h-8 items-center group-data-[collapsible=icon]:justify-center",children:[s?(0,t.jsxs)("div",{className:["flex min-w-0 flex-1 items-center gap-2 overflow-hidden px-2 transition-opacity duration-200 ease-out",d?"opacity-100":"opacity-0"].join(" "),"aria-hidden":!d,children:[(0,t.jsx)(eD,{className:"shrink-0",size:20}),(0,t.jsx)("span",{className:"truncate text-sm font-semibold tracking-tight",children:"Shep"})]}):null,(0,t.jsx)(ez,{className:"shrink-0 transition-all duration-200"})]})}),(0,t.jsx)(eP,{icon:M,label:"Control Center",href:"/",active:"/"===n}),(0,t.jsx)(eP,{icon:H.Wrench,label:"Tools",href:"/tools",active:"/tools"===n}),eX.featureFlags.skills?(0,t.jsx)(eP,{icon:I.Puzzle,label:"Skills",href:"/skills",active:"/skills"===n}):null]})}),(0,t.jsx)(T,{children:s?(0,t.jsxs)("div",{className:["min-w-0 overflow-hidden transition-opacity duration-200 ease-out [&_[data-sidebar=group-label]]:!mt-0 [&_[data-sidebar=group-label]]:!opacity-100 [&_[data-sidebar=group-label]]:!transition-none",d?"opacity-100":"opacity-0"].join(" "),children:[(0,t.jsx)(eU,{label:"Features"}),(0,t.jsx)(eT,{children:c.map(({key:e,label:a,items:r})=>r.length>0?(0,t.jsx)(eB,{label:a,count:r.length,children:r.map(e=>(0,t.jsx)(eF,{name:e.name,status:e.status,startedAt:e.startedAt,duration:e.duration,onClick:o?()=>o(e.featureId):void 0},e.featureId))},e):null)})]}):null}),(0,t.jsx)(E,{children:(0,t.jsx)(P,{children:(0,t.jsx)(z,{children:(0,t.jsxs)(_,{onClick:i,tooltip:"New feature",children:[(0,t.jsx)(W.Plus,{}),(0,t.jsx)("span",{children:"New feature"})]})})})}),(0,t.jsx)(S,{})]})}let eY=(0,o.default)("folder-plus",[["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"M9 13h6",key:"1uhe8q"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);var e$=e.i(78521);function eq({onSelect:e}){let[r,i]=(0,a.useState)(!1);async function o(){if(!r){i(!0);try{let t=await (0,e$.pickFolder)();t&&e?.(t)}finally{i(!1)}}}return(0,t.jsx)(x.TooltipProvider,{children:(0,t.jsxs)(x.Tooltip,{children:[(0,t.jsx)(x.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(d.Button,{variant:"ghost",size:"icon","aria-label":"Add Repository","data-testid":"add-repository-button",onClick:o,disabled:r,children:r?(0,t.jsx)(eH.Loader2,{className:"h-5 w-5 animate-spin"}):(0,t.jsx)(eY,{className:"h-5 w-5"})})}),(0,t.jsx)(x.TooltipContent,{children:"Add Repository"})]})})}let eZ=(0,o.default)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]),eK=(0,o.default)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]),eG="shep-theme";function eJ(){let{theme:e,resolvedTheme:r,setTheme:i}=function(){let[e,t]=(0,a.useState)("system"),[r,i]=(0,a.useState)("light"),o=(0,a.useCallback)(()=>window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",[]),n=(0,a.useCallback)(e=>"system"===e?o():e,[o]),l=(0,a.useCallback)(e=>{if("u"<typeof document)return;let t=document.documentElement;t.classList.remove("light","dark"),t.classList.add(e),i(e)},[]),s=(0,a.useCallback)(e=>{t(e),"u">typeof localStorage&&localStorage.setItem(eG,e),l(n(e))},[n,l]);return(0,a.useEffect)(()=>{let e=localStorage.getItem(eG)??"system";t(e),l(n(e))},[n,l]),(0,a.useEffect)(()=>{let t=window.matchMedia("(prefers-color-scheme: dark)"),a=()=>{"system"===e&&l(n("system"))};return t.addEventListener("change",a),()=>t.removeEventListener("change",a)},[e,n,l]),{theme:e,resolvedTheme:r,setTheme:s}}(),o=(0,eL.useSoundAction)("toggle-on"),n=(0,eL.useSoundAction)("toggle-off");return(0,t.jsxs)(d.Button,{variant:"ghost",size:"icon",onClick:()=>{"dark"!==("system"===e?r:e)?o.play():n.play(),"system"===e?i("dark"===r?"light":"dark"):i("dark"===e?"light":"dark")},"aria-label":`Switch to ${"dark"===r?"light":"dark"} mode`,children:[(0,t.jsx)(eK,{className:"h-5 w-5 scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90"}),(0,t.jsx)(eZ,{className:"absolute h-5 w-5 scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0"}),(0,t.jsx)("span",{className:"sr-only",children:"Toggle theme"})]})}let eQ=(0,o.default)("volume-2",[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["path",{d:"M16 9a5 5 0 0 1 0 6",key:"1q6k2b"}],["path",{d:"M19.364 18.364a9 9 0 0 0 0-12.728",key:"ijwkga"}]]),e0=(0,o.default)("volume-off",[["path",{d:"M16 9a5 5 0 0 1 .95 2.293",key:"1fgyg8"}],["path",{d:"M19.364 5.636a9 9 0 0 1 1.889 9.96",key:"l3zxae"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"m7 7-.587.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298V11",key:"1gbwow"}],["path",{d:"M9.828 4.172A.686.686 0 0 1 11 4.657v.686",key:"s2je0y"}]]);var e2=e.i(73709);function e1(){let{enabled:e,toggle:a}=(0,e2.useSoundEnabled)();return(0,t.jsxs)(d.Button,{variant:"ghost",size:"icon",onClick:a,"aria-label":e?"Mute sounds":"Unmute sounds",children:[e?(0,t.jsx)(eQ,{className:"h-5 w-5"}):(0,t.jsx)(e0,{className:"h-5 w-5"}),(0,t.jsx)("span",{className:"sr-only",children:"Toggle sound"})]})}var e4=e.i(39443),e3=e.i(30153),e5=e.i(5147),e6=e.i(60112),e7=e.i(17406);let e8={[e7.NotificationSeverity.Success]:"success",[e7.NotificationSeverity.Error]:"error",[e7.NotificationSeverity.Warning]:"warning",[e7.NotificationSeverity.Info]:"info"},e9={[e7.NotificationSeverity.Success]:"notification-success",[e7.NotificationSeverity.Error]:"notification-error",[e7.NotificationSeverity.Warning]:"notification-warning",[e7.NotificationSeverity.Info]:"notification-info"};function te({children:e}){let i=(0,r.useRouter)(),{guardedNavigate:o}=(0,e3.useDrawerCloseGuard)();!function(){let e=(0,r.useRouter)(),{events:t}=(0,e4.useAgentEventsContext)(),i=(0,eL.useSoundAction)("notification-success"),o=(0,eL.useSoundAction)("notification-error"),n=(0,eL.useSoundAction)("notification-warning"),l=(0,eL.useSoundAction)("notification-info"),s=(0,a.useMemo)(()=>({"notification-success":i,"notification-error":o,"notification-warning":n,"notification-info":l}),[i,o,n,l]),[d,c]=(0,a.useState)(()=>void 0===globalThis.Notification?"default":globalThis.Notification.permission),u=(0,a.useRef)(0);(0,a.useEffect)(()=>{if(t.length<=u.current)return;let a=t.slice(u.current);for(let r of(u.current=t.length,a)){if(r.severity!==e7.NotificationSeverity.Error&&r.severity!==e7.NotificationSeverity.Warning&&r.severity!==e7.NotificationSeverity.Success)continue;!function(e,t){let a=e8[e.severity]??"info",r=e.eventType===e7.NotificationEventType.WaitingApproval;e6.toast[a](e.featureName,{description:e.message,...r&&t&&{action:{label:"Review",onClick:()=>{t(`/feature/${e.featureId}`)}}}})}(r,t=>e.push(t)),globalThis.Notification?.permission==="granted"&&new Notification(`Shep: ${r.featureName}`,{body:r.message,icon:"/favicon-light.svg"});let t=e9[r.severity];s[t]?.play()}},[t,s,e]),(0,a.useCallback)(async()=>{void 0===globalThis.Notification||c(await globalThis.Notification.requestPermission())},[])}();let{features:n}=(0,e5.useSidebarFeaturesContext)(),l=(0,a.useCallback)(()=>{o(()=>i.push("/create"))},[i,o]),s=(0,a.useCallback)(e=>{o(()=>i.push(`/feature/${e}`))},[i,o]),d=(0,a.useCallback)(e=>{window.dispatchEvent(new CustomEvent("shep:add-repository",{detail:{path:e}}))},[]);return(0,t.jsxs)(y,{children:[(0,t.jsx)(eV,{features:n,onNewFeature:l,onFeatureClick:s}),(0,t.jsx)(N,{children:(0,t.jsxs)("div",{className:"relative h-full",children:[(0,t.jsxs)("div",{className:"absolute top-3 right-3 z-50 flex gap-1",children:[(0,t.jsx)(eq,{onSelect:d}),(0,t.jsx)(e1,{}),(0,t.jsx)(eJ,{})]}),(0,t.jsx)("main",{className:"h-full",children:e})]})})]})}function tt({children:e}){return(0,t.jsx)(e4.AgentEventsProvider,{children:(0,t.jsx)(e3.DrawerCloseGuardProvider,{children:(0,t.jsx)(e5.SidebarFeaturesProvider,{children:(0,t.jsx)(te,{children:e})})})})}e.s(["AppShell",()=>tt],87292)},25251,e=>{"use strict";var t=e.i(20314),a=e.i(60112);let r=({...e})=>(0,t.jsx)(a.Toaster,{className:"toaster group",toastOptions:{classNames:{toast:"group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",description:"group-[.toast]:text-muted-foreground",actionButton:"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",cancelButton:"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"}},...e});e.s(["Toaster",()=>r])}]);
package/web/.next/trace CHANGED
@@ -1 +1 @@
1
- [{"name":"generate-buildid","duration":211,"timestamp":321831456,"id":4,"parentId":1,"tags":{},"startTime":1772722677480,"traceId":"1579256ff4914607"},{"name":"load-custom-routes","duration":331,"timestamp":321831768,"id":5,"parentId":1,"tags":{},"startTime":1772722677480,"traceId":"1579256ff4914607"},{"name":"create-dist-dir","duration":246,"timestamp":321832123,"id":6,"parentId":1,"tags":{},"startTime":1772722677480,"traceId":"1579256ff4914607"},{"name":"clean","duration":230,"timestamp":321832814,"id":7,"parentId":1,"tags":{},"startTime":1772722677481,"traceId":"1579256ff4914607"},{"name":"create-pages-mapping","duration":278,"timestamp":321883818,"id":8,"parentId":1,"tags":{},"startTime":1772722677532,"traceId":"1579256ff4914607"},{"name":"collect-app-files","duration":4070,"timestamp":321884143,"id":9,"parentId":1,"tags":{},"startTime":1772722677532,"traceId":"1579256ff4914607"},{"name":"create-app-mapping","duration":1025,"timestamp":321888236,"id":10,"parentId":1,"tags":{},"startTime":1772722677536,"traceId":"1579256ff4914607"},{"name":"create-app-layouts","duration":145,"timestamp":321889289,"id":11,"parentId":1,"tags":{},"startTime":1772722677538,"traceId":"1579256ff4914607"},{"name":"collect-default-files","duration":8695,"timestamp":321891745,"id":13,"parentId":1,"tags":{},"startTime":1772722677540,"traceId":"1579256ff4914607"},{"name":"create-default-mapping","duration":139,"timestamp":321900455,"id":14,"parentId":1,"tags":{},"startTime":1772722677549,"traceId":"1579256ff4914607"},{"name":"generate-route-types","duration":23935,"timestamp":321891184,"id":12,"parentId":1,"tags":{},"startTime":1772722677539,"traceId":"1579256ff4914607"},{"name":"public-dir-conflict-check","duration":78,"timestamp":321915153,"id":15,"parentId":1,"tags":{},"startTime":1772722677563,"traceId":"1579256ff4914607"},{"name":"generate-routes-manifest","duration":2182,"timestamp":321915285,"id":16,"parentId":1,"tags":{},"startTime":1772722677564,"traceId":"1579256ff4914607"},{"name":"run-turbopack","duration":9201454,"timestamp":321920973,"id":18,"parentId":1,"tags":{},"startTime":1772722677569,"traceId":"1579256ff4914607"},{"name":"run-typescript","duration":7813074,"timestamp":331134777,"id":20,"parentId":1,"tags":{},"startTime":1772722686783,"traceId":"1579256ff4914607"},{"name":"generate-required-server-files","duration":1565,"timestamp":338948385,"id":22,"parentId":1,"tags":{},"startTime":1772722694597,"traceId":"1579256ff4914607"},{"name":"check-static-error-page","duration":4450,"timestamp":339019130,"id":24,"parentId":23,"tags":{},"startTime":1772722694667,"traceId":"1579256ff4914607"},{"name":"is-page-static","duration":225882,"timestamp":339027707,"id":43,"parentId":26,"tags":{},"startTime":1772722694676,"traceId":"1579256ff4914607"},{"name":"check-page","duration":231971,"timestamp":339021711,"id":26,"parentId":23,"tags":{"page":"/_global-error"},"startTime":1772722694670,"traceId":"1579256ff4914607"},{"name":"is-page-static","duration":305354,"timestamp":339030450,"id":45,"parentId":35,"tags":{},"startTime":1772722694679,"traceId":"1579256ff4914607"},{"name":"check-page","duration":313205,"timestamp":339022661,"id":35,"parentId":23,"tags":{"page":"/api/tools/[id]/install"},"startTime":1772722694671,"traceId":"1579256ff4914607"},{"name":"is-page-static","duration":308414,"timestamp":339030613,"id":46,"parentId":37,"tags":{},"startTime":1772722694679,"traceId":"1579256ff4914607"},{"name":"check-page","duration":316199,"timestamp":339022859,"id":37,"parentId":23,"tags":{"page":"/api/tools/[id]/launch"},"startTime":1772722694671,"traceId":"1579256ff4914607"},{"name":"is-page-static","duration":310806,"timestamp":339030766,"id":47,"parentId":38,"tags":{},"startTime":1772722694679,"traceId":"1579256ff4914607"},{"name":"check-page","duration":318369,"timestamp":339023237,"id":38,"parentId":23,"tags":{"page":"/api/tools"},"startTime":1772722694671,"traceId":"1579256ff4914607"},{"name":"is-page-static","duration":304085,"timestamp":339039958,"id":48,"parentId":31,"tags":{},"startTime":1772722694688,"traceId":"1579256ff4914607"},{"name":"check-page","duration":321812,"timestamp":339022265,"id":31,"parentId":23,"tags":{"page":"/api/agent-events/health"},"startTime":1772722694671,"traceId":"1579256ff4914607"},{"name":"is-page-static","duration":305527,"timestamp":339041553,"id":49,"parentId":32,"tags":{},"startTime":1772722694690,"traceId":"1579256ff4914607"},{"name":"check-page","duration":324738,"timestamp":339022364,"id":32,"parentId":23,"tags":{"page":"/api/agent-events"},"startTime":1772722694671,"traceId":"1579256ff4914607"},{"name":"is-page-static","duration":307757,"timestamp":339042268,"id":50,"parentId":33,"tags":{},"startTime":1772722694691,"traceId":"1579256ff4914607"},{"name":"check-page","duration":327589,"timestamp":339022458,"id":33,"parentId":23,"tags":{"page":"/api/deployment-logs"},"startTime":1772722694671,"traceId":"1579256ff4914607"},{"name":"is-page-static","duration":305636,"timestamp":339047229,"id":51,"parentId":36,"tags":{},"startTime":1772722694695,"traceId":"1579256ff4914607"},{"name":"check-page","duration":330133,"timestamp":339022759,"id":36,"parentId":23,"tags":{"page":"/api/tools/[id]/install/stream"},"startTime":1772722694671,"traceId":"1579256ff4914607"},{"name":"is-page-static","duration":345151,"timestamp":339027426,"id":42,"parentId":25,"tags":{},"startTime":1772722694676,"traceId":"1579256ff4914607"},{"name":"check-page","duration":352163,"timestamp":339020445,"id":25,"parentId":23,"tags":{"page":"/_not-found"},"startTime":1772722694669,"traceId":"1579256ff4914607"},{"name":"is-page-static","duration":335747,"timestamp":339049794,"id":52,"parentId":39,"tags":{},"startTime":1772722694698,"traceId":"1579256ff4914607"},{"name":"check-page","duration":362231,"timestamp":339023334,"id":39,"parentId":23,"tags":{"page":"/skills"},"startTime":1772722694672,"traceId":"1579256ff4914607"},{"name":"is-page-static","duration":338013,"timestamp":339049819,"id":53,"parentId":41,"tags":{},"startTime":1772722694698,"traceId":"1579256ff4914607"},{"name":"check-page","duration":364357,"timestamp":339023499,"id":41,"parentId":23,"tags":{"page":"/version"},"startTime":1772722694672,"traceId":"1579256ff4914607"},{"name":"is-page-static","duration":344119,"timestamp":339049936,"id":54,"parentId":40,"tags":{},"startTime":1772722694698,"traceId":"1579256ff4914607"},{"name":"check-page","duration":370662,"timestamp":339023418,"id":40,"parentId":23,"tags":{"page":"/tools"},"startTime":1772722694672,"traceId":"1579256ff4914607"},{"name":"is-page-static","duration":374395,"timestamp":339030215,"id":44,"parentId":34,"tags":{},"startTime":1772722694678,"traceId":"1579256ff4914607"},{"name":"check-page","duration":382089,"timestamp":339022551,"id":34,"parentId":23,"tags":{"page":"/api/dialog/pick-files"},"startTime":1772722694671,"traceId":"1579256ff4914607"},{"name":"is-page-static","duration":358742,"timestamp":339051252,"id":56,"parentId":28,"tags":{},"startTime":1772722694699,"traceId":"1579256ff4914607"},{"name":"check-page","duration":388071,"timestamp":339021984,"id":28,"parentId":23,"tags":{"page":"/feature/[featureId]"},"startTime":1772722694670,"traceId":"1579256ff4914607"},{"name":"is-page-static","duration":360394,"timestamp":339051142,"id":55,"parentId":27,"tags":{},"startTime":1772722694699,"traceId":"1579256ff4914607"},{"name":"check-page","duration":389665,"timestamp":339021893,"id":27,"parentId":23,"tags":{"page":"/create"},"startTime":1772722694670,"traceId":"1579256ff4914607"},{"name":"is-page-static","duration":364588,"timestamp":339051480,"id":58,"parentId":30,"tags":{},"startTime":1772722694700,"traceId":"1579256ff4914607"},{"name":"check-page","duration":393908,"timestamp":339022180,"id":30,"parentId":23,"tags":{"page":"/"},"startTime":1772722694670,"traceId":"1579256ff4914607"},{"name":"is-page-static","duration":390748,"timestamp":339051363,"id":57,"parentId":29,"tags":{},"startTime":1772722694700,"traceId":"1579256ff4914607"},{"name":"check-page","duration":420045,"timestamp":339022098,"id":29,"parentId":23,"tags":{"page":"/repository/[repositoryId]"},"startTime":1772722694670,"traceId":"1579256ff4914607"},{"name":"static-check","duration":423819,"timestamp":339018355,"id":23,"parentId":1,"tags":{},"startTime":1772722694667,"traceId":"1579256ff4914607"},{"name":"write-routes-manifest","duration":817,"timestamp":339442864,"id":60,"parentId":1,"tags":{},"startTime":1772722695091,"traceId":"1579256ff4914607"},{"name":"load-dotenv","duration":32,"timestamp":339451656,"id":63,"parentId":62,"tags":{},"startTime":1772722695100,"traceId":"1579256ff4914607"},{"name":"run-export-path-map","duration":285,"timestamp":339453683,"id":64,"parentId":62,"tags":{},"startTime":1772722695102,"traceId":"1579256ff4914607"},{"name":"next-export","duration":70948,"timestamp":339450757,"id":62,"parentId":1,"tags":{},"startTime":1772722695099,"traceId":"1579256ff4914607"},{"name":"move-exported-app-global-error-","duration":417,"timestamp":339522683,"id":65,"parentId":61,"tags":{},"startTime":1772722695171,"traceId":"1579256ff4914607"},{"name":"static-generation","duration":77332,"timestamp":339447048,"id":61,"parentId":1,"tags":{},"startTime":1772722695095,"traceId":"1579256ff4914607"},{"name":"write-routes-manifest","duration":247,"timestamp":339524535,"id":66,"parentId":1,"tags":{},"startTime":1772722695173,"traceId":"1579256ff4914607"},{"name":"write-standalone-directory","duration":330857,"timestamp":339528959,"id":68,"parentId":1,"tags":{},"startTime":1772722695177,"traceId":"1579256ff4914607"},{"name":"output-standalone","duration":331022,"timestamp":339528813,"id":67,"parentId":1,"tags":{},"startTime":1772722695177,"traceId":"1579256ff4914607"},{"name":"print-tree-view","duration":2233,"timestamp":339859974,"id":69,"parentId":1,"tags":{},"startTime":1772722695508,"traceId":"1579256ff4914607"},{"name":"telemetry-flush","duration":59,"timestamp":339862222,"id":70,"parentId":1,"tags":{},"startTime":1772722695510,"traceId":"1579256ff4914607"},{"name":"next-build","duration":18247405,"timestamp":321614886,"id":1,"tags":{"buildMode":"default","version":"16.1.6","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1772722677263,"traceId":"1579256ff4914607"}]
1
+ [{"name":"generate-buildid","duration":204,"timestamp":66920708,"id":4,"parentId":1,"tags":{},"startTime":1772810752551,"traceId":"8bd24b86ffd014f3"},{"name":"load-custom-routes","duration":311,"timestamp":66921046,"id":5,"parentId":1,"tags":{},"startTime":1772810752551,"traceId":"8bd24b86ffd014f3"},{"name":"create-dist-dir","duration":231,"timestamp":66921382,"id":6,"parentId":1,"tags":{},"startTime":1772810752551,"traceId":"8bd24b86ffd014f3"},{"name":"clean","duration":202,"timestamp":66922047,"id":7,"parentId":1,"tags":{},"startTime":1772810752552,"traceId":"8bd24b86ffd014f3"},{"name":"create-pages-mapping","duration":256,"timestamp":66977896,"id":8,"parentId":1,"tags":{},"startTime":1772810752608,"traceId":"8bd24b86ffd014f3"},{"name":"collect-app-files","duration":2472,"timestamp":66978195,"id":9,"parentId":1,"tags":{},"startTime":1772810752608,"traceId":"8bd24b86ffd014f3"},{"name":"create-app-mapping","duration":1050,"timestamp":66980689,"id":10,"parentId":1,"tags":{},"startTime":1772810752611,"traceId":"8bd24b86ffd014f3"},{"name":"create-app-layouts","duration":142,"timestamp":66981762,"id":11,"parentId":1,"tags":{},"startTime":1772810752612,"traceId":"8bd24b86ffd014f3"},{"name":"collect-default-files","duration":1080,"timestamp":66984372,"id":13,"parentId":1,"tags":{},"startTime":1772810752614,"traceId":"8bd24b86ffd014f3"},{"name":"create-default-mapping","duration":136,"timestamp":66985470,"id":14,"parentId":1,"tags":{},"startTime":1772810752615,"traceId":"8bd24b86ffd014f3"},{"name":"generate-route-types","duration":17956,"timestamp":66983769,"id":12,"parentId":1,"tags":{},"startTime":1772810752614,"traceId":"8bd24b86ffd014f3"},{"name":"public-dir-conflict-check","duration":96,"timestamp":67001765,"id":15,"parentId":1,"tags":{},"startTime":1772810752632,"traceId":"8bd24b86ffd014f3"},{"name":"generate-routes-manifest","duration":2458,"timestamp":67001930,"id":16,"parentId":1,"tags":{},"startTime":1772810752632,"traceId":"8bd24b86ffd014f3"},{"name":"run-turbopack","duration":9308629,"timestamp":67016434,"id":18,"parentId":1,"tags":{},"startTime":1772810752646,"traceId":"8bd24b86ffd014f3"},{"name":"run-typescript","duration":7752854,"timestamp":76335828,"id":20,"parentId":1,"tags":{},"startTime":1772810761966,"traceId":"8bd24b86ffd014f3"},{"name":"generate-required-server-files","duration":2049,"timestamp":84089313,"id":22,"parentId":1,"tags":{},"startTime":1772810769719,"traceId":"8bd24b86ffd014f3"},{"name":"check-static-error-page","duration":5425,"timestamp":84169195,"id":24,"parentId":23,"tags":{},"startTime":1772810769799,"traceId":"8bd24b86ffd014f3"},{"name":"is-page-static","duration":269415,"timestamp":84178513,"id":42,"parentId":25,"tags":{},"startTime":1772810769808,"traceId":"8bd24b86ffd014f3"},{"name":"check-page","duration":276508,"timestamp":84171491,"id":25,"parentId":23,"tags":{"page":"/_not-found"},"startTime":1772810769801,"traceId":"8bd24b86ffd014f3"},{"name":"is-page-static","duration":288609,"timestamp":84178777,"id":43,"parentId":26,"tags":{},"startTime":1772810769809,"traceId":"8bd24b86ffd014f3"},{"name":"check-page","duration":294675,"timestamp":84172797,"id":26,"parentId":23,"tags":{"page":"/_global-error"},"startTime":1772810769803,"traceId":"8bd24b86ffd014f3"},{"name":"is-page-static","duration":311710,"timestamp":84184560,"id":45,"parentId":35,"tags":{},"startTime":1772810769814,"traceId":"8bd24b86ffd014f3"},{"name":"check-page","duration":322624,"timestamp":84173709,"id":35,"parentId":23,"tags":{"page":"/api/tools/[id]/install"},"startTime":1772810769804,"traceId":"8bd24b86ffd014f3"},{"name":"is-page-static","duration":322553,"timestamp":84184904,"id":47,"parentId":38,"tags":{},"startTime":1772810769815,"traceId":"8bd24b86ffd014f3"},{"name":"check-page","duration":333223,"timestamp":84174274,"id":38,"parentId":23,"tags":{"page":"/api/tools"},"startTime":1772810769804,"traceId":"8bd24b86ffd014f3"},{"name":"is-page-static","duration":319356,"timestamp":84191978,"id":48,"parentId":31,"tags":{},"startTime":1772810769822,"traceId":"8bd24b86ffd014f3"},{"name":"check-page","duration":338032,"timestamp":84173340,"id":31,"parentId":23,"tags":{"page":"/api/agent-events/health"},"startTime":1772810769803,"traceId":"8bd24b86ffd014f3"},{"name":"is-page-static","duration":321687,"timestamp":84193666,"id":49,"parentId":32,"tags":{},"startTime":1772810769824,"traceId":"8bd24b86ffd014f3"},{"name":"check-page","duration":341960,"timestamp":84173415,"id":32,"parentId":23,"tags":{"page":"/api/agent-events"},"startTime":1772810769803,"traceId":"8bd24b86ffd014f3"},{"name":"is-page-static","duration":324112,"timestamp":84194357,"id":50,"parentId":33,"tags":{},"startTime":1772810769824,"traceId":"8bd24b86ffd014f3"},{"name":"check-page","duration":344990,"timestamp":84173499,"id":33,"parentId":23,"tags":{"page":"/api/deployment-logs"},"startTime":1772810769803,"traceId":"8bd24b86ffd014f3"},{"name":"is-page-static","duration":329232,"timestamp":84194844,"id":51,"parentId":36,"tags":{},"startTime":1772810769825,"traceId":"8bd24b86ffd014f3"},{"name":"check-page","duration":350326,"timestamp":84173785,"id":36,"parentId":23,"tags":{"page":"/api/tools/[id]/install/stream"},"startTime":1772810769804,"traceId":"8bd24b86ffd014f3"},{"name":"is-page-static","duration":353599,"timestamp":84184748,"id":46,"parentId":37,"tags":{},"startTime":1772810769815,"traceId":"8bd24b86ffd014f3"},{"name":"check-page","duration":364498,"timestamp":84173882,"id":37,"parentId":23,"tags":{"page":"/api/tools/[id]/launch"},"startTime":1772810769804,"traceId":"8bd24b86ffd014f3"},{"name":"is-page-static","duration":339274,"timestamp":84201405,"id":52,"parentId":39,"tags":{},"startTime":1772810769831,"traceId":"8bd24b86ffd014f3"},{"name":"check-page","duration":366322,"timestamp":84174372,"id":39,"parentId":23,"tags":{"page":"/skills"},"startTime":1772810769804,"traceId":"8bd24b86ffd014f3"},{"name":"is-page-static","duration":343610,"timestamp":84201543,"id":54,"parentId":40,"tags":{},"startTime":1772810769831,"traceId":"8bd24b86ffd014f3"},{"name":"check-page","duration":370705,"timestamp":84174468,"id":40,"parentId":23,"tags":{"page":"/tools"},"startTime":1772810769804,"traceId":"8bd24b86ffd014f3"},{"name":"is-page-static","duration":362287,"timestamp":84184310,"id":44,"parentId":34,"tags":{},"startTime":1772810769814,"traceId":"8bd24b86ffd014f3"},{"name":"check-page","duration":373025,"timestamp":84173600,"id":34,"parentId":23,"tags":{"page":"/api/dialog/pick-files"},"startTime":1772810769803,"traceId":"8bd24b86ffd014f3"},{"name":"is-page-static","duration":363946,"timestamp":84202714,"id":55,"parentId":27,"tags":{},"startTime":1772810769833,"traceId":"8bd24b86ffd014f3"},{"name":"check-page","duration":393700,"timestamp":84172998,"id":27,"parentId":23,"tags":{"page":"/create"},"startTime":1772810769803,"traceId":"8bd24b86ffd014f3"},{"name":"is-page-static","duration":367386,"timestamp":84201431,"id":53,"parentId":41,"tags":{},"startTime":1772810769831,"traceId":"8bd24b86ffd014f3"},{"name":"check-page","duration":394303,"timestamp":84174544,"id":41,"parentId":23,"tags":{"page":"/version"},"startTime":1772810769804,"traceId":"8bd24b86ffd014f3"},{"name":"is-page-static","duration":370786,"timestamp":84203057,"id":57,"parentId":29,"tags":{},"startTime":1772810769833,"traceId":"8bd24b86ffd014f3"},{"name":"check-page","duration":400678,"timestamp":84173188,"id":29,"parentId":23,"tags":{"page":"/repository/[repositoryId]"},"startTime":1772810769803,"traceId":"8bd24b86ffd014f3"},{"name":"is-page-static","duration":382446,"timestamp":84203180,"id":58,"parentId":30,"tags":{},"startTime":1772810769833,"traceId":"8bd24b86ffd014f3"},{"name":"check-page","duration":412370,"timestamp":84173267,"id":30,"parentId":23,"tags":{"page":"/"},"startTime":1772810769803,"traceId":"8bd24b86ffd014f3"},{"name":"is-page-static","duration":390459,"timestamp":84202835,"id":56,"parentId":28,"tags":{},"startTime":1772810769833,"traceId":"8bd24b86ffd014f3"},{"name":"check-page","duration":420216,"timestamp":84173106,"id":28,"parentId":23,"tags":{"page":"/feature/[featureId]"},"startTime":1772810769803,"traceId":"8bd24b86ffd014f3"},{"name":"static-check","duration":425008,"timestamp":84168406,"id":23,"parentId":1,"tags":{},"startTime":1772810769798,"traceId":"8bd24b86ffd014f3"},{"name":"write-routes-manifest","duration":248,"timestamp":84595655,"id":60,"parentId":1,"tags":{},"startTime":1772810770226,"traceId":"8bd24b86ffd014f3"},{"name":"load-dotenv","duration":30,"timestamp":84603191,"id":63,"parentId":62,"tags":{},"startTime":1772810770233,"traceId":"8bd24b86ffd014f3"},{"name":"run-export-path-map","duration":277,"timestamp":84605145,"id":64,"parentId":62,"tags":{},"startTime":1772810770235,"traceId":"8bd24b86ffd014f3"},{"name":"next-export","duration":81546,"timestamp":84602307,"id":62,"parentId":1,"tags":{},"startTime":1772810770232,"traceId":"8bd24b86ffd014f3"},{"name":"move-exported-app-global-error-","duration":405,"timestamp":84684842,"id":65,"parentId":61,"tags":{},"startTime":1772810770315,"traceId":"8bd24b86ffd014f3"},{"name":"static-generation","duration":88358,"timestamp":84598631,"id":61,"parentId":1,"tags":{},"startTime":1772810770228,"traceId":"8bd24b86ffd014f3"},{"name":"write-routes-manifest","duration":244,"timestamp":84687145,"id":66,"parentId":1,"tags":{},"startTime":1772810770317,"traceId":"8bd24b86ffd014f3"},{"name":"write-standalone-directory","duration":319125,"timestamp":84692908,"id":68,"parentId":1,"tags":{},"startTime":1772810770323,"traceId":"8bd24b86ffd014f3"},{"name":"output-standalone","duration":319294,"timestamp":84692770,"id":67,"parentId":1,"tags":{},"startTime":1772810770323,"traceId":"8bd24b86ffd014f3"},{"name":"print-tree-view","duration":2258,"timestamp":85012170,"id":69,"parentId":1,"tags":{},"startTime":1772810770642,"traceId":"8bd24b86ffd014f3"},{"name":"telemetry-flush","duration":55,"timestamp":85014438,"id":70,"parentId":1,"tags":{},"startTime":1772810770644,"traceId":"8bd24b86ffd014f3"},{"name":"next-build","duration":18307367,"timestamp":66707138,"id":1,"tags":{"buildMode":"default","version":"16.1.6","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1772810752337,"traceId":"8bd24b86ffd014f3"}]
@@ -1 +1 @@
1
- [{"name":"run-turbopack","duration":9201454,"timestamp":321920973,"id":18,"parentId":1,"tags":{},"startTime":1772722677569,"traceId":"1579256ff4914607"},{"name":"run-typescript","duration":7813074,"timestamp":331134777,"id":20,"parentId":1,"tags":{},"startTime":1772722686783,"traceId":"1579256ff4914607"},{"name":"static-check","duration":423819,"timestamp":339018355,"id":23,"parentId":1,"tags":{},"startTime":1772722694667,"traceId":"1579256ff4914607"},{"name":"static-generation","duration":77332,"timestamp":339447048,"id":61,"parentId":1,"tags":{},"startTime":1772722695095,"traceId":"1579256ff4914607"},{"name":"output-standalone","duration":331022,"timestamp":339528813,"id":67,"parentId":1,"tags":{},"startTime":1772722695177,"traceId":"1579256ff4914607"},{"name":"telemetry-flush","duration":59,"timestamp":339862222,"id":70,"parentId":1,"tags":{},"startTime":1772722695510,"traceId":"1579256ff4914607"},{"name":"next-build","duration":18247405,"timestamp":321614886,"id":1,"tags":{"buildMode":"default","version":"16.1.6","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1772722677263,"traceId":"1579256ff4914607"}]
1
+ [{"name":"run-turbopack","duration":9308629,"timestamp":67016434,"id":18,"parentId":1,"tags":{},"startTime":1772810752646,"traceId":"8bd24b86ffd014f3"},{"name":"run-typescript","duration":7752854,"timestamp":76335828,"id":20,"parentId":1,"tags":{},"startTime":1772810761966,"traceId":"8bd24b86ffd014f3"},{"name":"static-check","duration":425008,"timestamp":84168406,"id":23,"parentId":1,"tags":{},"startTime":1772810769798,"traceId":"8bd24b86ffd014f3"},{"name":"static-generation","duration":88358,"timestamp":84598631,"id":61,"parentId":1,"tags":{},"startTime":1772810770228,"traceId":"8bd24b86ffd014f3"},{"name":"output-standalone","duration":319294,"timestamp":84692770,"id":67,"parentId":1,"tags":{},"startTime":1772810770323,"traceId":"8bd24b86ffd014f3"},{"name":"telemetry-flush","duration":55,"timestamp":85014438,"id":70,"parentId":1,"tags":{},"startTime":1772810770644,"traceId":"8bd24b86ffd014f3"},{"name":"next-build","duration":18307367,"timestamp":66707138,"id":1,"tags":{"buildMode":"default","version":"16.1.6","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1772810752337,"traceId":"8bd24b86ffd014f3"}]
@@ -1 +0,0 @@
1
- {"version":3,"file":"add-repository-button.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/add-repository-node/add-repository-button.tsx"],"names":[],"mappings":"AAQA,UAAU,wBAAwB;IAChC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,wBAAgB,mBAAmB,CAAC,EAAE,QAAQ,EAAE,EAAE,wBAAwB,2CAuCzE"}
@@ -1,7 +0,0 @@
1
- import type { Node } from '@xyflow/react';
2
- export interface AddRepositoryNodeData {
3
- [key: string]: unknown;
4
- onSelect?: (path: string) => void;
5
- }
6
- export type AddRepositoryNodeType = Node<AddRepositoryNodeData, 'addRepositoryNode'>;
7
- //# sourceMappingURL=add-repository-node-config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"add-repository-node-config.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/add-repository-node/add-repository-node-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,MAAM,WAAW,qBAAqB;IACpC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,EAAE,mBAAmB,CAAC,CAAC"}
@@ -1,6 +0,0 @@
1
- import type { AddRepositoryNodeData } from './add-repository-node-config.js';
2
- export declare function AddRepositoryNode({ data, }: {
3
- data: AddRepositoryNodeData;
4
- [key: string]: unknown;
5
- }): import("react/jsx-runtime").JSX.Element;
6
- //# sourceMappingURL=add-repository-node.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"add-repository-node.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/add-repository-node/add-repository-node.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAG1E,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,GACL,EAAE;IACD,IAAI,EAAE,qBAAqB,CAAC;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,2CAoCA"}
@@ -1,23 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { useState } from 'react';
4
- import { Plus, Loader2 } from 'lucide-react';
5
- import { pickFolder } from './pick-folder.js';
6
- export function AddRepositoryNode({ data, }) {
7
- const [loading, setLoading] = useState(false);
8
- async function handleClick() {
9
- if (loading)
10
- return;
11
- setLoading(true);
12
- try {
13
- const path = await pickFolder();
14
- if (path) {
15
- data.onSelect?.(path);
16
- }
17
- }
18
- finally {
19
- setLoading(false);
20
- }
21
- }
22
- return (_jsx("div", { className: "group", children: _jsxs("button", { type: "button", "data-testid": "add-repository-node-card", onClick: handleClick, disabled: loading, className: "nodrag border-muted-foreground/30 flex w-56 cursor-pointer items-center gap-3 rounded-full border-2 border-dashed px-4 py-3 transition-colors hover:border-blue-500 hover:text-blue-500 disabled:cursor-wait disabled:opacity-60", children: [loading ? (_jsx(Loader2, { className: "h-5 w-5 shrink-0 animate-spin" })) : (_jsx(Plus, { className: "h-5 w-5 shrink-0" })), _jsx("span", { "data-testid": "add-repository-node-label", className: "text-sm font-medium", children: loading ? 'Opening...' : 'Add Repository' })] }) }));
23
- }
@@ -1,10 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/react';
2
- import type { AddRepositoryNodeData } from './add-repository-node-config.js';
3
- declare const meta: Meta<AddRepositoryNodeData>;
4
- export default meta;
5
- type Story = StoryObj<AddRepositoryNodeData>;
6
- export declare const Default: Story;
7
- export declare const WithCallback: Story;
8
- /** Add Repository button as it appears in the top bar alongside other toggles */
9
- export declare const TopBarButton: StoryObj;
10
- //# sourceMappingURL=add-repository-node.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"add-repository-node.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/add-repository-node/add-repository-node.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAIvD,OAAO,KAAK,EAAE,qBAAqB,EAAyB,MAAM,8BAA8B,CAAC;AAgCjG,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,qBAAqB,CAOrC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAAC;AAE7C,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAK1B,CAAC;AAIF,iFAAiF;AACjF,eAAO,MAAM,YAAY,EAAE,QAM1B,CAAC"}
@@ -1,33 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useMemo } from 'react';
3
- import { ReactFlowProvider, ReactFlow } from '@xyflow/react';
4
- import { AddRepositoryNode } from './add-repository-node.js';
5
- import { AddRepositoryButton } from './add-repository-button.js';
6
- const nodeTypes = { addRepositoryNode: AddRepositoryNode };
7
- function AddRepositoryNodeCanvas({ data, style = { width: 500, height: 250 }, }) {
8
- const nodes = useMemo(() => [{ id: 'node-1', type: 'addRepositoryNode', position: { x: 0, y: 0 }, data }], [data]);
9
- return (_jsx("div", { style: style, children: _jsx(ReactFlowProvider, { children: _jsx(ReactFlow, { nodes: nodes, nodeTypes: nodeTypes, nodesDraggable: false, nodesConnectable: false, proOptions: { hideAttribution: true }, fitView: true }) }) }));
10
- }
11
- const meta = {
12
- title: 'Composed/AddRepositoryNode',
13
- tags: ['autodocs'],
14
- parameters: {
15
- layout: 'centered',
16
- },
17
- args: {},
18
- };
19
- export default meta;
20
- export const Default = {
21
- render: (args) => _jsx(AddRepositoryNodeCanvas, { data: args }),
22
- };
23
- export const WithCallback = {
24
- args: {
25
- onSelect: () => undefined,
26
- },
27
- render: (args) => _jsx(AddRepositoryNodeCanvas, { data: args }),
28
- };
29
- // --- Add Repository Button (top bar icon) stories ---
30
- /** Add Repository button as it appears in the top bar alongside other toggles */
31
- export const TopBarButton = {
32
- render: () => (_jsx("div", { className: "flex gap-1", children: _jsx(AddRepositoryButton, { onSelect: () => undefined }) })),
33
- };
@@ -1,4 +0,0 @@
1
- export { AddRepositoryNode } from './add-repository-node.js';
2
- export { AddRepositoryButton } from './add-repository-button.js';
3
- export type { AddRepositoryNodeData, AddRepositoryNodeType } from './add-repository-node-config.js';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/add-repository-node/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,YAAY,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pick-folder.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/add-repository-node/pick-folder.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQzD"}
@@ -1,3 +0,0 @@
1
- module.exports=[12834,a=>{"use strict";var b=a.i(12513),c=a.i(94691),d=a.i(33841),e=a.i(46646),f=a.i(68670),g=a.i(85321),h=a.i(84095),i=a.i(56799),j=a.i(80496),k=a.i(50845),l=a.i(49560),m=a.i(39353);a.s([],90933),a.i(90933),a.s(["00a8fdb8cb1de3d31a3d3e7707208656242c9c97fc",()=>b.pickFolder,"40002741a23e5c45f351e6e1374905e6d95cae8c3f",()=>e.deployRepository,"4011a70ee2d6620e60f4401dc1c8dc99759a1d17fb",()=>f.stopDeployment,"401253a87fdf3f293e34e7653bb3f4e1b471a84378",()=>d.deployFeature,"4037014fa5f937432bde709dfe7aaa45bdfa8d3f7b",()=>h.openIde,"40813d9dd5069a2de6303822d205d6b4b8e96b8d57",()=>m.deleteRepository,"409e5f10f8309eeb2f56fb6670691a54b591e6f8b2",()=>k.deleteFeature,"40adee815cfc876d8e6a2bd8b1a7570991f50a8c96",()=>c.getDeploymentLogs,"40bcd44b03b17f68cfcbbf3a225c8241a02b924cc5",()=>i.openShell,"40d2a352c4d7295ef068429c398513dcfa4487e53b",()=>g.getDeploymentStatus,"40d62e97704edba84d5dd3a77038bafd906ced71e2",()=>j.openFolder,"40eeba94d31644b2cd9ba1d188e3c54b833ae00831",()=>l.addRepository],12834)}];
2
-
3
- //# sourceMappingURL=8ba4b_server_app_%28dashboard%29_%40drawer_repository_%5BrepositoryId%5D_page_actions_2b7834f6.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/%40drawer/repository/%5BrepositoryId%5D/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {pickFolder as '00a8fdb8cb1de3d31a3d3e7707208656242c9c97fc'} from 'ACTIONS_MODULE0'\nexport {getDeploymentLogs as '40adee815cfc876d8e6a2bd8b1a7570991f50a8c96'} from 'ACTIONS_MODULE1'\nexport {deployFeature as '401253a87fdf3f293e34e7653bb3f4e1b471a84378'} from 'ACTIONS_MODULE2'\nexport {deployRepository as '40002741a23e5c45f351e6e1374905e6d95cae8c3f'} from 'ACTIONS_MODULE3'\nexport {stopDeployment as '4011a70ee2d6620e60f4401dc1c8dc99759a1d17fb'} from 'ACTIONS_MODULE4'\nexport {getDeploymentStatus as '40d2a352c4d7295ef068429c398513dcfa4487e53b'} from 'ACTIONS_MODULE5'\nexport {openIde as '4037014fa5f937432bde709dfe7aaa45bdfa8d3f7b'} from 'ACTIONS_MODULE6'\nexport {openShell as '40bcd44b03b17f68cfcbbf3a225c8241a02b924cc5'} from 'ACTIONS_MODULE7'\nexport {openFolder as '40d62e97704edba84d5dd3a77038bafd906ced71e2'} from 'ACTIONS_MODULE8'\nexport {deleteFeature as '409e5f10f8309eeb2f56fb6670691a54b591e6f8b2'} from 'ACTIONS_MODULE9'\nexport {addRepository as '40eeba94d31644b2cd9ba1d188e3c54b833ae00831'} from 'ACTIONS_MODULE10'\nexport {deleteRepository as '40813d9dd5069a2de6303822d205d6b4b8e96b8d57'} from 'ACTIONS_MODULE11'\n"],"names":[],"mappings":"uCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA"}
@@ -1,3 +0,0 @@
1
- module.exports=[43068,a=>{"use strict";var b=a.i(12513),c=a.i(94691),d=a.i(33841),e=a.i(46646),f=a.i(68670),g=a.i(85321),h=a.i(84095),i=a.i(56799),j=a.i(80496),k=a.i(50845),l=a.i(49560),m=a.i(39353);a.s([],70933),a.i(70933),a.s(["00a8fdb8cb1de3d31a3d3e7707208656242c9c97fc",()=>b.pickFolder,"40002741a23e5c45f351e6e1374905e6d95cae8c3f",()=>e.deployRepository,"4011a70ee2d6620e60f4401dc1c8dc99759a1d17fb",()=>f.stopDeployment,"401253a87fdf3f293e34e7653bb3f4e1b471a84378",()=>d.deployFeature,"4037014fa5f937432bde709dfe7aaa45bdfa8d3f7b",()=>h.openIde,"40813d9dd5069a2de6303822d205d6b4b8e96b8d57",()=>m.deleteRepository,"409e5f10f8309eeb2f56fb6670691a54b591e6f8b2",()=>k.deleteFeature,"40adee815cfc876d8e6a2bd8b1a7570991f50a8c96",()=>c.getDeploymentLogs,"40bcd44b03b17f68cfcbbf3a225c8241a02b924cc5",()=>i.openShell,"40d2a352c4d7295ef068429c398513dcfa4487e53b",()=>g.getDeploymentStatus,"40d62e97704edba84d5dd3a77038bafd906ced71e2",()=>j.openFolder,"40eeba94d31644b2cd9ba1d188e3c54b833ae00831",()=>l.addRepository],43068)}];
2
-
3
- //# sourceMappingURL=8ba4b_server_app_%28dashboard%29_repository_%5BrepositoryId%5D_page_actions_6923c575.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/repository/%5BrepositoryId%5D/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {pickFolder as '00a8fdb8cb1de3d31a3d3e7707208656242c9c97fc'} from 'ACTIONS_MODULE0'\nexport {getDeploymentLogs as '40adee815cfc876d8e6a2bd8b1a7570991f50a8c96'} from 'ACTIONS_MODULE1'\nexport {deployFeature as '401253a87fdf3f293e34e7653bb3f4e1b471a84378'} from 'ACTIONS_MODULE2'\nexport {deployRepository as '40002741a23e5c45f351e6e1374905e6d95cae8c3f'} from 'ACTIONS_MODULE3'\nexport {stopDeployment as '4011a70ee2d6620e60f4401dc1c8dc99759a1d17fb'} from 'ACTIONS_MODULE4'\nexport {getDeploymentStatus as '40d2a352c4d7295ef068429c398513dcfa4487e53b'} from 'ACTIONS_MODULE5'\nexport {openIde as '4037014fa5f937432bde709dfe7aaa45bdfa8d3f7b'} from 'ACTIONS_MODULE6'\nexport {openShell as '40bcd44b03b17f68cfcbbf3a225c8241a02b924cc5'} from 'ACTIONS_MODULE7'\nexport {openFolder as '40d62e97704edba84d5dd3a77038bafd906ced71e2'} from 'ACTIONS_MODULE8'\nexport {deleteFeature as '409e5f10f8309eeb2f56fb6670691a54b591e6f8b2'} from 'ACTIONS_MODULE9'\nexport {addRepository as '40eeba94d31644b2cd9ba1d188e3c54b833ae00831'} from 'ACTIONS_MODULE10'\nexport {deleteRepository as '40813d9dd5069a2de6303822d205d6b4b8e96b8d57'} from 'ACTIONS_MODULE11'\n"],"names":[],"mappings":"uCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/server/route-modules/app-page/vendored/contexts/hooks-client-context.ts","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/server/route-modules/app-page/vendored/contexts/server-inserted-html.ts","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/server/route-modules/app-page/module.compiled.js","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.ts","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/server/route-modules/app-page/vendored/ssr/react.ts","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/server/route-modules/app-page/vendored/ssr/react-dom.ts","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/server/route-modules/app-page/vendored/ssr/react-server-dom-turbopack-client.ts","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/server/route-modules/app-page/vendored/contexts/app-router-context.ts","../../../../../../../src/presentation/web/components/ui/input.tsx","../../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-direction%401.1.1_%40types%2Breact%4019.2.10_react%4019.2.4/node_modules/%40radix-ui/react-direction/src/direction.tsx","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/wrench.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/circle-check.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/puzzle.ts","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/shared/lib/segment.ts","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/client/use-merged-ref.ts","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/shared/lib/utils/warn-once.ts","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/shared/lib/deployment-id.ts","../../../../../../../src/presentation/web/hooks/agent-events-provider.tsx","../../../../../../../src/presentation/web/hooks/use-agent-events.ts","../../../../../../../src/presentation/web/app/actions/data%3Adf6def%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/components/common/add-repository-node/add-repository-node.tsx","../../../../../../../src/presentation/web/components/common/add-repository-node/add-repository-button.tsx","../../../../../../../src/presentation/web/hooks/sidebar-features-context.tsx","../../../../../../../src/presentation/web/components/common/add-repository-node/pick-folder.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/folder-plus.ts"],"sourcesContent":["module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].HooksClientContext\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].ServerInsertedHtml\n","if (process.env.NEXT_RUNTIME === 'edge') {\n module.exports = require('next/dist/server/route-modules/app-page/module.js')\n} else {\n if (process.env.__NEXT_EXPERIMENTAL_REACT) {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.prod.js')\n }\n }\n } else {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page.runtime.prod.js')\n }\n }\n }\n}\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.ReactJsxRuntime\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.React\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.ReactDOM\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.ReactServerDOMTurbopackClient\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].AppRouterContext\n","import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nfunction Input({ className, type, ...props }: React.ComponentProps<'input'>) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n 'file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n","import * as React from 'react';\n\ntype Direction = 'ltr' | 'rtl';\nconst DirectionContext = React.createContext<Direction | undefined>(undefined);\n\n/* -------------------------------------------------------------------------------------------------\n * Direction\n * -----------------------------------------------------------------------------------------------*/\n\ninterface DirectionProviderProps {\n children?: React.ReactNode;\n dir: Direction;\n}\nconst DirectionProvider: React.FC<DirectionProviderProps> = (props) => {\n const { dir, children } = props;\n return <DirectionContext.Provider value={dir}>{children}</DirectionContext.Provider>;\n};\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction useDirection(localDir?: Direction) {\n const globalDir = React.useContext(DirectionContext);\n return localDir || globalDir || 'ltr';\n}\n\nconst Provider = DirectionProvider;\n\nexport {\n useDirection,\n //\n Provider,\n //\n DirectionProvider,\n};\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z',\n key: '1ngwbx',\n },\n ],\n];\n\n/**\n * @component @name Wrench\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQuNyA2LjNhMSAxIDAgMCAwIDAgMS40bDEuNiAxLjZhMSAxIDAgMCAwIDEuNCAwbDMuMTA2LTMuMTA1Yy4zMi0uMzIyLjg2My0uMjIuOTgzLjIxOGE2IDYgMCAwIDEtOC4yNTkgNy4wNTdsLTcuOTEgNy45MWExIDEgMCAwIDEtMi45OTktM2w3LjkxLTcuOTFhNiA2IDAgMCAxIDcuMDU3LTguMjU5Yy40MzguMTIuNTQuNjYyLjIxOS45ODR6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/wrench\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Wrench = createLucideIcon('wrench', __iconNode);\n\nexport default Wrench;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'm9 12 2 2 4-4', key: 'dzmm74' }],\n];\n\n/**\n * @component @name CircleCheck\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJtOSAxMiAyIDIgNC00IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-check\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CircleCheck = createLucideIcon('circle-check', __iconNode);\n\nexport default CircleCheck;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z',\n key: 'w46dr5',\n },\n ],\n];\n\n/**\n * @component @name Puzzle\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUuMzkgNC4zOWExIDEgMCAwIDAgMS42OC0uNDc0IDIuNSAyLjUgMCAxIDEgMy4wMTQgMy4wMTUgMSAxIDAgMCAwLS40NzQgMS42OGwxLjY4MyAxLjY4MmEyLjQxNCAyLjQxNCAwIDAgMSAwIDMuNDE0TDE5LjYxIDE1LjM5YTEgMSAwIDAgMS0xLjY4LS40NzQgMi41IDIuNSAwIDEgMC0zLjAxNCAzLjAxNSAxIDEgMCAwIDEgLjQ3NCAxLjY4bC0xLjY4MyAxLjY4MmEyLjQxNCAyLjQxNCAwIDAgMS0zLjQxNCAwTDguNjEgMTkuNjFhMSAxIDAgMCAwLTEuNjguNDc0IDIuNSAyLjUgMCAxIDEtMy4wMTQtMy4wMTUgMSAxIDAgMCAwIC40NzQtMS42OGwtMS42ODMtMS42ODJhMi40MTQgMi40MTQgMCAwIDEgMC0zLjQxNEw0LjM5IDguNjFhMSAxIDAgMCAxIDEuNjguNDc0IDIuNSAyLjUgMCAxIDAgMy4wMTQtMy4wMTUgMSAxIDAgMCAxLS40NzQtMS42OGwxLjY4My0xLjY4MmEyLjQxNCAyLjQxNCAwIDAgMSAzLjQxNCAweiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/puzzle\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Puzzle = createLucideIcon('puzzle', __iconNode);\n\nexport default Puzzle;\n","import type { FlightRouterState, Segment } from './app-router-types'\n\nexport function getSegmentValue(segment: Segment) {\n return Array.isArray(segment) ? segment[1] : segment\n}\n\nexport function isGroupSegment(segment: string) {\n // Use array[0] for performant purpose\n return segment[0] === '(' && segment.endsWith(')')\n}\n\nexport function isParallelRouteSegment(segment: string) {\n return segment.startsWith('@') && segment !== '@children'\n}\n\nexport function addSearchParamsIfPageSegment(\n segment: Segment,\n searchParams: Record<string, string | string[] | undefined>\n) {\n const isPageSegment = segment.includes(PAGE_SEGMENT_KEY)\n\n if (isPageSegment) {\n const stringifiedQuery = JSON.stringify(searchParams)\n return stringifiedQuery !== '{}'\n ? PAGE_SEGMENT_KEY + '?' + stringifiedQuery\n : PAGE_SEGMENT_KEY\n }\n\n return segment\n}\n\nexport function computeSelectedLayoutSegment(\n segments: string[] | null,\n parallelRouteKey: string\n): string | null {\n if (!segments || segments.length === 0) {\n return null\n }\n\n // For 'children', use first segment; for other parallel routes, use last segment\n const rawSegment =\n parallelRouteKey === 'children'\n ? segments[0]\n : segments[segments.length - 1]\n\n // If the default slot is showing, return null since it's not technically \"selected\" (it's a fallback)\n // Returning an internal value like `__DEFAULT__` would be confusing\n return rawSegment === DEFAULT_SEGMENT_KEY ? null : rawSegment\n}\n\n/** Get the canonical parameters from the current level to the leaf node. */\nexport function getSelectedLayoutSegmentPath(\n tree: FlightRouterState,\n parallelRouteKey: string,\n first = true,\n segmentPath: string[] = []\n): string[] {\n let node: FlightRouterState\n if (first) {\n // Use the provided parallel route key on the first parallel route\n node = tree[1][parallelRouteKey]\n } else {\n // After first parallel route prefer children, if there's no children pick the first parallel route.\n const parallelRoutes = tree[1]\n node = parallelRoutes.children ?? Object.values(parallelRoutes)[0]\n }\n\n if (!node) return segmentPath\n const segment = node[0]\n\n let segmentValue = getSegmentValue(segment)\n\n if (!segmentValue || segmentValue.startsWith(PAGE_SEGMENT_KEY)) {\n return segmentPath\n }\n\n segmentPath.push(segmentValue)\n\n return getSelectedLayoutSegmentPath(\n node,\n parallelRouteKey,\n false,\n segmentPath\n )\n}\n\nexport const PAGE_SEGMENT_KEY = '__PAGE__'\nexport const DEFAULT_SEGMENT_KEY = '__DEFAULT__'\nexport const NOT_FOUND_SEGMENT_KEY = '/_not-found'\n","import { useCallback, useRef, type Ref } from 'react'\n\n// This is a compatibility hook to support React 18 and 19 refs.\n// In 19, a cleanup function from refs may be returned.\n// In 18, returning a cleanup function creates a warning.\n// Since we take userspace refs, we don't know ahead of time if a cleanup function will be returned.\n// This implements cleanup functions with the old behavior in 18.\n// We know refs are always called alternating with `null` and then `T`.\n// So a call with `null` means we need to call the previous cleanup functions.\nexport function useMergedRef<TElement>(\n refA: Ref<TElement>,\n refB: Ref<TElement>\n): Ref<TElement> {\n const cleanupA = useRef<(() => void) | null>(null)\n const cleanupB = useRef<(() => void) | null>(null)\n\n // NOTE: In theory, we could skip the wrapping if only one of the refs is non-null.\n // (this happens often if the user doesn't pass a ref to Link/Form/Image)\n // But this can cause us to leak a cleanup-ref into user code (previously via `<Link legacyBehavior>`),\n // and the user might pass that ref into ref-merging library that doesn't support cleanup refs\n // (because it hasn't been updated for React 19)\n // which can then cause things to blow up, because a cleanup-returning ref gets called with `null`.\n // So in practice, it's safer to be defensive and always wrap the ref, even on React 19.\n return useCallback(\n (current: TElement | null): void => {\n if (current === null) {\n const cleanupFnA = cleanupA.current\n if (cleanupFnA) {\n cleanupA.current = null\n cleanupFnA()\n }\n const cleanupFnB = cleanupB.current\n if (cleanupFnB) {\n cleanupB.current = null\n cleanupFnB()\n }\n } else {\n if (refA) {\n cleanupA.current = applyRef(refA, current)\n }\n if (refB) {\n cleanupB.current = applyRef(refB, current)\n }\n }\n },\n [refA, refB]\n )\n}\n\nfunction applyRef<TElement>(\n refA: NonNullable<Ref<TElement>>,\n current: TElement\n) {\n if (typeof refA === 'function') {\n const cleanup = refA(current)\n if (typeof cleanup === 'function') {\n return cleanup\n } else {\n return () => refA(null)\n }\n } else {\n refA.current = current\n return () => {\n refA.current = null\n }\n }\n}\n","let warnOnce = (_: string) => {}\nif (process.env.NODE_ENV !== 'production') {\n const warnings = new Set<string>()\n warnOnce = (msg: string) => {\n if (!warnings.has(msg)) {\n console.warn(msg)\n }\n warnings.add(msg)\n }\n}\n\nexport { warnOnce }\n","// This could also be a variable instead of a function, but some unit tests want to change the ID at\n// runtime. Even though that would never happen in a real deployment.\nexport function getDeploymentId(): string | undefined {\n return process.env.NEXT_DEPLOYMENT_ID\n}\n\nexport function getDeploymentIdQueryOrEmptyString(): string {\n let deploymentId = getDeploymentId()\n if (deploymentId) {\n return `?dpl=${deploymentId}`\n }\n return ''\n}\n","'use client';\n\nimport { createContext, useContext, type ReactNode } from 'react';\nimport {\n useAgentEvents,\n type UseAgentEventsOptions,\n type UseAgentEventsResult,\n} from './use-agent-events';\n\nconst AgentEventsContext = createContext<UseAgentEventsResult | null>(null);\n\ninterface AgentEventsProviderProps extends UseAgentEventsOptions {\n children: ReactNode;\n}\n\n/**\n * Single SSE connection for agent events shared across all consumers.\n * Wrap the app once; use `useAgentEventsContext()` to read.\n */\nexport function AgentEventsProvider({ children, runId }: AgentEventsProviderProps) {\n const value = useAgentEvents({ runId });\n\n return <AgentEventsContext.Provider value={value}>{children}</AgentEventsContext.Provider>;\n}\n\nexport function useAgentEventsContext(): UseAgentEventsResult {\n const ctx = useContext(AgentEventsContext);\n if (!ctx) {\n throw new Error('useAgentEventsContext must be used within an <AgentEventsProvider>');\n }\n return ctx;\n}\n","'use client';\n\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport type { NotificationEvent } from '@shepai/core/domain/generated/output';\n\nexport type ConnectionStatus = 'connected' | 'connecting' | 'disconnected';\n\nexport interface UseAgentEventsOptions {\n runId?: string;\n}\n\nexport interface UseAgentEventsResult {\n events: NotificationEvent[];\n lastEvent: NotificationEvent | null;\n connectionStatus: ConnectionStatus;\n}\n\nconst SW_PATH = '/agent-events-sw.js';\n\n/**\n * Hook that receives real-time agent notification events via a Service Worker.\n *\n * The SW maintains a single SSE connection to /api/agent-events and\n * broadcasts events to all open tabs. Falls back to direct EventSource\n * when Service Workers are unavailable.\n */\nexport function useAgentEvents(options?: UseAgentEventsOptions): UseAgentEventsResult {\n const [events, setEvents] = useState<NotificationEvent[]>([]);\n const [lastEvent, setLastEvent] = useState<NotificationEvent | null>(null);\n const [connectionStatus, setConnectionStatus] = useState<ConnectionStatus>('disconnected');\n\n const runId = options?.runId;\n const swRef = useRef<ServiceWorker | null>(null);\n\n const onMessage = useCallback((event: MessageEvent) => {\n const msg = event.data;\n if (!msg || typeof msg !== 'object') return;\n\n if (msg.type === 'notification') {\n const parsed = msg.data as NotificationEvent;\n setEvents((prev) => [...prev, parsed]);\n setLastEvent(parsed);\n } else if (msg.type === 'status') {\n setConnectionStatus(msg.status as ConnectionStatus);\n }\n }, []);\n\n useEffect(() => {\n if (typeof window === 'undefined') return;\n\n // ?sse=direct bypasses the Service Worker for debugging\n const bypassSW =\n typeof location !== 'undefined' && new URLSearchParams(location.search).has('sse');\n\n // Fallback: direct EventSource when SW not supported or bypassed\n if (!navigator.serviceWorker || bypassSW) {\n return connectDirectEventSource(runId, setEvents, setLastEvent, setConnectionStatus);\n }\n\n let cancelled = false;\n const fallbackCleanupRef = { current: undefined as (() => void) | undefined };\n\n function subscribeToWorker(worker: ServiceWorker) {\n if (cancelled) return;\n swRef.current = worker;\n worker.postMessage({ type: 'subscribe', runId });\n setConnectionStatus('connecting');\n }\n\n // Listen for messages from whatever SW controls this page\n navigator.serviceWorker.addEventListener('message', onMessage);\n\n // Re-subscribe when SW controller changes (e.g., after SW update via skipWaiting)\n function handleControllerChange() {\n if (cancelled) return;\n const newController = navigator.serviceWorker.controller;\n if (newController) {\n swRef.current = newController;\n newController.postMessage({ type: 'subscribe', runId });\n setConnectionStatus('connecting');\n }\n }\n navigator.serviceWorker.addEventListener('controllerchange', handleControllerChange);\n\n navigator.serviceWorker\n .register(SW_PATH, { scope: '/' })\n .then((registration) => {\n if (cancelled) return;\n\n // Use the active worker, or wait for it to activate\n const sw = registration.active ?? registration.installing ?? registration.waiting;\n if (!sw) {\n // No worker at all — fall back to direct EventSource\n fallbackCleanupRef.current = connectDirectEventSource(\n runId,\n setEvents,\n setLastEvent,\n setConnectionStatus\n );\n return;\n }\n\n if (sw.state === 'activated') {\n subscribeToWorker(sw);\n } else {\n sw.addEventListener('statechange', () => {\n if (sw.state === 'activated') subscribeToWorker(sw);\n });\n }\n })\n .catch(() => {\n // SW registration failed — fall back to direct EventSource\n if (!cancelled) {\n fallbackCleanupRef.current = connectDirectEventSource(\n runId,\n setEvents,\n setLastEvent,\n setConnectionStatus\n );\n }\n });\n\n return () => {\n cancelled = true;\n navigator.serviceWorker.removeEventListener('message', onMessage);\n navigator.serviceWorker.removeEventListener('controllerchange', handleControllerChange);\n swRef.current?.postMessage({ type: 'unsubscribe' });\n swRef.current = null;\n fallbackCleanupRef.current?.();\n };\n }, [runId, onMessage]);\n\n return { events, lastEvent, connectionStatus };\n}\n\n// --- EventSource fallback (identical to the previous implementation) ---\n\nconst BASE_BACKOFF_MS = 1000;\nconst MAX_BACKOFF_MS = 30_000;\nconst STABLE_CONNECTION_MS = 5_000;\n\nfunction connectDirectEventSource(\n runId: string | undefined,\n setEvents: React.Dispatch<React.SetStateAction<NotificationEvent[]>>,\n setLastEvent: React.Dispatch<React.SetStateAction<NotificationEvent | null>>,\n setConnectionStatus: React.Dispatch<React.SetStateAction<ConnectionStatus>>\n): () => void {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n if (typeof EventSource === 'undefined') return () => {};\n\n let es: EventSource | null = null;\n let stopped = false;\n let backoff = BASE_BACKOFF_MS;\n let reconnectTimer: ReturnType<typeof setTimeout> | null = null;\n let stableTimer: ReturnType<typeof setTimeout> | null = null;\n\n function connect() {\n if (stopped) return;\n\n const url = runId\n ? `/api/agent-events?runId=${encodeURIComponent(runId)}`\n : '/api/agent-events';\n\n es = new EventSource(url);\n setConnectionStatus('connecting');\n\n es.onopen = () => {\n setConnectionStatus('connected');\n stableTimer = setTimeout(() => {\n stableTimer = null;\n backoff = BASE_BACKOFF_MS;\n }, STABLE_CONNECTION_MS);\n };\n\n es.onerror = () => {\n es?.close();\n es = null;\n setConnectionStatus('disconnected');\n\n if (stableTimer !== null) {\n clearTimeout(stableTimer);\n stableTimer = null;\n }\n\n const delay = backoff;\n backoff = Math.min(delay * 2, MAX_BACKOFF_MS);\n\n reconnectTimer = setTimeout(() => {\n reconnectTimer = null;\n connect();\n }, delay);\n };\n\n es.addEventListener('notification', ((event: MessageEvent) => {\n const parsed: NotificationEvent = JSON.parse(event.data);\n setEvents((prev) => [...prev, parsed]);\n setLastEvent(parsed);\n }) as EventListener);\n }\n\n connect();\n\n return () => {\n stopped = true;\n if (reconnectTimer !== null) {\n clearTimeout(reconnectTimer);\n reconnectTimer = null;\n }\n if (stableTimer !== null) {\n clearTimeout(stableTimer);\n stableTimer = null;\n }\n if (es) {\n es.close();\n es = null;\n }\n };\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"00a8fdb8cb1de3d31a3d3e7707208656242c9c97fc\":\"pickFolder\"},\"src/presentation/web/app/actions/pick-folder.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"00a8fdb8cb1de3d31a3d3e7707208656242c9c97fc\",callServer,void 0,findSourceMapURL,\"pickFolder\");export{$$RSC_SERVER_ACTION_0 as pickFolder};","'use client';\n\nimport { useState } from 'react';\nimport { Plus, Loader2 } from 'lucide-react';\nimport type { AddRepositoryNodeData } from './add-repository-node-config';\nimport { pickFolder } from './pick-folder';\n\nexport function AddRepositoryNode({\n data,\n}: {\n data: AddRepositoryNodeData;\n [key: string]: unknown;\n}) {\n const [loading, setLoading] = useState(false);\n\n async function handleClick() {\n if (loading) return;\n setLoading(true);\n try {\n const path = await pickFolder();\n if (path) {\n data.onSelect?.(path);\n }\n } finally {\n setLoading(false);\n }\n }\n\n return (\n <div className=\"group\">\n <button\n type=\"button\"\n data-testid=\"add-repository-node-card\"\n onClick={handleClick}\n disabled={loading}\n className=\"nodrag border-muted-foreground/30 flex w-56 cursor-pointer items-center gap-3 rounded-full border-2 border-dashed px-4 py-3 transition-colors hover:border-blue-500 hover:text-blue-500 disabled:cursor-wait disabled:opacity-60\"\n >\n {loading ? (\n <Loader2 className=\"h-5 w-5 shrink-0 animate-spin\" />\n ) : (\n <Plus className=\"h-5 w-5 shrink-0\" />\n )}\n <span data-testid=\"add-repository-node-label\" className=\"text-sm font-medium\">\n {loading ? 'Opening...' : 'Add Repository'}\n </span>\n </button>\n </div>\n );\n}\n","'use client';\n\nimport { useState } from 'react';\nimport { FolderPlus, Loader2 } from 'lucide-react';\nimport { Button } from '@/components/ui/button';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';\nimport { pickFolder } from './pick-folder';\n\ninterface AddRepositoryButtonProps {\n onSelect?: (path: string) => void;\n}\n\nexport function AddRepositoryButton({ onSelect }: AddRepositoryButtonProps) {\n const [loading, setLoading] = useState(false);\n\n async function handleClick() {\n if (loading) return;\n setLoading(true);\n try {\n const path = await pickFolder();\n if (path) {\n onSelect?.(path);\n }\n } finally {\n setLoading(false);\n }\n }\n\n return (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n aria-label=\"Add Repository\"\n data-testid=\"add-repository-button\"\n onClick={handleClick}\n disabled={loading}\n >\n {loading ? (\n <Loader2 className=\"h-5 w-5 animate-spin\" />\n ) : (\n <FolderPlus className=\"h-5 w-5\" />\n )}\n </Button>\n </TooltipTrigger>\n <TooltipContent>Add Repository</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n}\n","'use client';\n\nimport { createContext, useContext, useState, useMemo, type ReactNode } from 'react';\nimport type { FeatureNodeState } from '@/components/common/feature-node/feature-node-state-config';\nimport type { FeatureStatus } from '@/components/common/feature-status-config';\n\n// Re-export the FeatureItem type so consumers can import from one place.\n// This will gain `featureId` in a later phase.\nexport interface SidebarFeatureItem {\n name: string;\n status: FeatureStatus;\n featureId: string;\n startedAt?: number;\n duration?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Pure mapping: FeatureNodeState (6-state) → FeatureStatus (3-state) | null\n// ---------------------------------------------------------------------------\n\nconst stateMapping: Record<FeatureNodeState, FeatureStatus | null> = {\n 'action-required': 'action-needed',\n running: 'in-progress',\n done: 'done',\n blocked: 'in-progress',\n error: 'in-progress',\n creating: null,\n};\n\n/**\n * Maps a canvas FeatureNodeState to the sidebar's 3-state FeatureStatus.\n * Returns `null` for `creating` (optimistic UI) — these should be excluded from the sidebar.\n */\nexport function mapNodeStateToSidebarStatus(state: FeatureNodeState): FeatureStatus | null {\n return stateMapping[state];\n}\n\n// ---------------------------------------------------------------------------\n// SidebarFeaturesContext\n// ---------------------------------------------------------------------------\n\ninterface SidebarFeaturesContextValue {\n features: SidebarFeatureItem[];\n setFeatures: (features: SidebarFeatureItem[]) => void;\n}\n\nconst SidebarFeaturesContext = createContext<SidebarFeaturesContextValue | null>(null);\n\ninterface SidebarFeaturesProviderProps {\n children: ReactNode;\n}\n\nexport function SidebarFeaturesProvider({ children }: SidebarFeaturesProviderProps) {\n const [features, setFeatures] = useState<SidebarFeatureItem[]>([]);\n\n const value = useMemo<SidebarFeaturesContextValue>(() => ({ features, setFeatures }), [features]);\n\n return (\n <SidebarFeaturesContext.Provider value={value}>{children}</SidebarFeaturesContext.Provider>\n );\n}\n\nexport function useSidebarFeaturesContext(): SidebarFeaturesContextValue {\n const ctx = useContext(SidebarFeaturesContext);\n if (!ctx) {\n throw new Error('useSidebarFeaturesContext must be used within a <SidebarFeaturesProvider>');\n }\n return ctx;\n}\n","import { pickFolder as pickFolderAction } from '@/app/actions/pick-folder';\n\n/**\n * Opens a native OS folder picker dialog via server action.\n * Returns the selected absolute path, or null if the user cancelled.\n */\nexport async function pickFolder(): Promise<string | null> {\n const result = await pickFolderAction();\n\n if (result.error) {\n throw new Error(result.error);\n }\n\n return result.path;\n}\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M12 10v6', key: '1bos4e' }],\n ['path', { d: 'M9 13h6', key: '1uhe8q' }],\n [\n 'path',\n {\n d: 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z',\n key: '1kt360',\n },\n ],\n];\n\n/**\n * @component @name FolderPlus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTB2NiIgLz4KICA8cGF0aCBkPSJNOSAxM2g2IiAvPgogIDxwYXRoIGQ9Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/folder-plus\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst FolderPlus = createLucideIcon('folder-plus', __iconNode);\n\nexport default FolderPlus;\n"],"names":["module","exports","require","vendored","HooksClientContext","ServerInsertedHtml","process","env","NEXT_RUNTIME","__NEXT_EXPERIMENTAL_REACT","NODE_ENV","TURBOPACK","ReactJsxRuntime","React","ReactDOM","ReactServerDOMTurbopackClient","AppRouterContext","DEFAULT_SEGMENT_KEY","NOT_FOUND_SEGMENT_KEY","PAGE_SEGMENT_KEY","addSearchParamsIfPageSegment","computeSelectedLayoutSegment","getSegmentValue","getSelectedLayoutSegmentPath","isGroupSegment","isParallelRouteSegment","segment","Array","isArray","endsWith","startsWith","searchParams","isPageSegment","includes","stringifiedQuery","JSON","stringify","segments","parallelRouteKey","length","rawSegment","tree","first","segmentPath","node","parallelRoutes","children","Object","values","segmentValue","push","useMergedRef","refA","refB","cleanupA","useRef","cleanupB","useCallback","current","cleanupFnA","cleanupFnB","applyRef","cleanup","warnOnce","_","warnings","Set","msg","has","console","warn","add","getDeploymentId","getDeploymentIdQueryOrEmptyString","NEXT_DEPLOYMENT_ID","deploymentId"],"mappings":"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CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,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","ignoreList":[0,1,2,3,4,5,6,7,10,12,13,14,15,16,24]}