@shepai/cli 1.181.0 → 1.182.0-pr548.9285cca

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 (224) hide show
  1. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts.map +1 -1
  2. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.js +4 -1
  3. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/fast-implement.prompt.d.ts.map +1 -1
  4. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/fast-implement.prompt.js +4 -1
  5. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/implement.prompt.d.ts.map +1 -1
  6. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/implement.prompt.js +4 -1
  7. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/merge-prompts.d.ts.map +1 -1
  8. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/merge-prompts.js +11 -6
  9. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/pr-branding.d.ts +2 -2
  10. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/pr-branding.d.ts.map +1 -1
  11. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/pr-branding.js +2 -2
  12. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts.map +1 -1
  13. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.js +3 -2
  14. package/dist/packages/core/src/infrastructure/services/git/pr-branding.d.ts +16 -5
  15. package/dist/packages/core/src/infrastructure/services/git/pr-branding.d.ts.map +1 -1
  16. package/dist/packages/core/src/infrastructure/services/git/pr-branding.js +38 -7
  17. package/dist/src/presentation/cli/commands/app/del.command.d.ts +14 -0
  18. package/dist/src/presentation/cli/commands/app/del.command.d.ts.map +1 -0
  19. package/dist/src/presentation/cli/commands/app/del.command.js +58 -0
  20. package/dist/src/presentation/cli/commands/app/index.d.ts +20 -0
  21. package/dist/src/presentation/cli/commands/app/index.d.ts.map +1 -0
  22. package/dist/src/presentation/cli/commands/app/index.js +33 -0
  23. package/dist/src/presentation/cli/commands/app/ls.command.d.ts +11 -0
  24. package/dist/src/presentation/cli/commands/app/ls.command.d.ts.map +1 -0
  25. package/dist/src/presentation/cli/commands/app/ls.command.js +74 -0
  26. package/dist/src/presentation/cli/commands/app/new.command.d.ts +17 -0
  27. package/dist/src/presentation/cli/commands/app/new.command.d.ts.map +1 -0
  28. package/dist/src/presentation/cli/commands/app/new.command.js +58 -0
  29. package/dist/src/presentation/cli/commands/app/resolve-application.d.ts +10 -0
  30. package/dist/src/presentation/cli/commands/app/resolve-application.d.ts.map +1 -0
  31. package/dist/src/presentation/cli/commands/app/resolve-application.js +33 -0
  32. package/dist/src/presentation/cli/commands/app/show.command.d.ts +11 -0
  33. package/dist/src/presentation/cli/commands/app/show.command.d.ts.map +1 -0
  34. package/dist/src/presentation/cli/commands/app/show.command.js +95 -0
  35. package/dist/src/presentation/cli/index.js +2 -0
  36. package/dist/translations/ar/cli.json +63 -0
  37. package/dist/translations/de/cli.json +63 -0
  38. package/dist/translations/en/cli.json +63 -0
  39. package/dist/translations/es/cli.json +63 -0
  40. package/dist/translations/fr/cli.json +63 -0
  41. package/dist/translations/he/cli.json +63 -0
  42. package/dist/translations/pt/cli.json +63 -0
  43. package/dist/translations/ru/cli.json +63 -0
  44. package/dist/translations/uk/cli.json +63 -0
  45. package/dist/tsconfig.build.tsbuildinfo +1 -1
  46. package/package.json +1 -1
  47. package/web/.next/BUILD_ID +1 -1
  48. package/web/.next/build-manifest.json +2 -2
  49. package/web/.next/fallback-build-manifest.json +2 -2
  50. package/web/.next/prerender-manifest.json +3 -3
  51. package/web/.next/required-server-files.js +3 -3
  52. package/web/.next/required-server-files.json +3 -3
  53. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +32 -32
  54. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  55. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  56. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +30 -30
  57. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
  58. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
  59. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +33 -33
  60. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  61. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  62. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +41 -41
  63. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  64. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  65. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +41 -41
  66. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  67. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  68. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +31 -31
  69. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  70. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  71. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +31 -31
  72. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  73. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  74. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +30 -30
  75. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  76. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  77. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +33 -33
  78. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  79. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  80. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +41 -41
  81. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  82. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  83. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +41 -41
  84. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  85. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  86. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +30 -30
  87. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  88. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  89. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +31 -31
  90. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  91. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  92. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +31 -31
  93. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  94. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  95. package/web/.next/server/app/_global-error.html +2 -2
  96. package/web/.next/server/app/_global-error.rsc +1 -1
  97. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  98. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  99. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  100. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  101. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  102. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +7 -7
  103. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  104. package/web/.next/server/app/application/[id]/page/server-reference-manifest.json +15 -15
  105. package/web/.next/server/app/application/[id]/page.js.nft.json +1 -1
  106. package/web/.next/server/app/application/[id]/page_client-reference-manifest.js +1 -1
  107. package/web/.next/server/app/features/page/server-reference-manifest.json +7 -7
  108. package/web/.next/server/app/features/page_client-reference-manifest.js +1 -1
  109. package/web/.next/server/app/settings/page/server-reference-manifest.json +10 -10
  110. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  111. package/web/.next/server/app/skills/page/server-reference-manifest.json +15 -15
  112. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  113. package/web/.next/server/app/tools/page/server-reference-manifest.json +13 -13
  114. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  115. package/web/.next/server/app/version/page/server-reference-manifest.json +7 -7
  116. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  117. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  118. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  119. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  120. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +2 -2
  121. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
  122. package/web/.next/server/chunks/ssr/[root-of-the-server]__013a0318._.js +1 -1
  123. package/web/.next/server/chunks/ssr/[root-of-the-server]__013a0318._.js.map +1 -1
  124. package/web/.next/server/chunks/ssr/[root-of-the-server]__17dadd08._.js +1 -1
  125. package/web/.next/server/chunks/ssr/[root-of-the-server]__17dadd08._.js.map +1 -1
  126. package/web/.next/server/chunks/ssr/[root-of-the-server]__1925bef0._.js +1 -1
  127. package/web/.next/server/chunks/ssr/[root-of-the-server]__1a9687c4._.js +1 -1
  128. package/web/.next/server/chunks/ssr/[root-of-the-server]__1a9687c4._.js.map +1 -1
  129. package/web/.next/server/chunks/ssr/[root-of-the-server]__24756fa9._.js +2 -2
  130. package/web/.next/server/chunks/ssr/[root-of-the-server]__24756fa9._.js.map +1 -1
  131. package/web/.next/server/chunks/ssr/[root-of-the-server]__4ee8be85._.js +1 -1
  132. package/web/.next/server/chunks/ssr/[root-of-the-server]__70986695._.js +1 -1
  133. package/web/.next/server/chunks/ssr/[root-of-the-server]__70986695._.js.map +1 -1
  134. package/web/.next/server/chunks/ssr/[root-of-the-server]__a5ea76a6._.js +1 -1
  135. package/web/.next/server/chunks/ssr/[root-of-the-server]__a5ea76a6._.js.map +1 -1
  136. package/web/.next/server/chunks/ssr/[root-of-the-server]__bb391c45._.js +1 -1
  137. package/web/.next/server/chunks/ssr/[root-of-the-server]__bb391c45._.js.map +1 -1
  138. package/web/.next/server/chunks/ssr/[root-of-the-server]__dd3e834e._.js +1 -1
  139. package/web/.next/server/chunks/ssr/[root-of-the-server]__dd3e834e._.js.map +1 -1
  140. package/web/.next/server/chunks/ssr/[root-of-the-server]__e265da61._.js +1 -1
  141. package/web/.next/server/chunks/ssr/[root-of-the-server]__f3ca7bea._.js +1 -1
  142. package/web/.next/server/chunks/ssr/[root-of-the-server]__f3ca7bea._.js.map +1 -1
  143. package/web/.next/server/chunks/ssr/_0277d3b5._.js +1 -1
  144. package/web/.next/server/chunks/ssr/_0277d3b5._.js.map +1 -1
  145. package/web/.next/server/chunks/ssr/{_da028026._.js → _04e59c76._.js} +2 -2
  146. package/web/.next/server/chunks/ssr/{_da028026._.js.map → _04e59c76._.js.map} +1 -1
  147. package/web/.next/server/chunks/ssr/{_655cc4fd._.js → _2dcbafcc._.js} +2 -2
  148. package/web/.next/server/chunks/ssr/{_655cc4fd._.js.map → _2dcbafcc._.js.map} +1 -1
  149. package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
  150. package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
  151. package/web/.next/server/chunks/ssr/{_5bb39227._.js → _7a8d82d8._.js} +2 -2
  152. package/web/.next/server/chunks/ssr/{_5bb39227._.js.map → _7a8d82d8._.js.map} +1 -1
  153. package/web/.next/server/chunks/ssr/_946a7fc6._.js +1 -1
  154. package/web/.next/server/chunks/ssr/_946a7fc6._.js.map +1 -1
  155. package/web/.next/server/chunks/ssr/{_fbf4db9c._.js → _9f2d11a2._.js} +2 -2
  156. package/web/.next/server/chunks/ssr/{_fbf4db9c._.js.map → _9f2d11a2._.js.map} +1 -1
  157. package/web/.next/server/chunks/ssr/{_e5753970._.js → _cc456949._.js} +2 -2
  158. package/web/.next/server/chunks/ssr/{_e5753970._.js.map → _cc456949._.js.map} +1 -1
  159. package/web/.next/server/chunks/ssr/_eff1b518._.js +1 -1
  160. package/web/.next/server/chunks/ssr/_eff1b518._.js.map +1 -1
  161. package/web/.next/server/chunks/ssr/_f227429a._.js +1 -1
  162. package/web/.next/server/chunks/ssr/_f227429a._.js.map +1 -1
  163. package/web/.next/server/chunks/ssr/_f86fc1bf._.js +1 -1
  164. package/web/.next/server/chunks/ssr/_f86fc1bf._.js.map +1 -1
  165. package/web/.next/server/chunks/ssr/_f8c55130._.js +1 -1
  166. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  167. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  168. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +1 -1
  169. package/web/.next/server/chunks/ssr/src_presentation_web_36f2bc45._.js +1 -1
  170. package/web/.next/server/chunks/ssr/src_presentation_web_36f2bc45._.js.map +1 -1
  171. package/web/.next/server/chunks/ssr/src_presentation_web_486908de._.js +1 -1
  172. package/web/.next/server/chunks/ssr/src_presentation_web_486908de._.js.map +1 -1
  173. package/web/.next/server/chunks/ssr/src_presentation_web_5c3596bc._.js +1 -1
  174. package/web/.next/server/chunks/ssr/src_presentation_web_5c3596bc._.js.map +1 -1
  175. package/web/.next/server/chunks/ssr/src_presentation_web_6159fef8._.js +1 -1
  176. package/web/.next/server/chunks/ssr/src_presentation_web_6159fef8._.js.map +1 -1
  177. package/web/.next/server/chunks/ssr/src_presentation_web_6326f81e._.js +1 -1
  178. package/web/.next/server/chunks/ssr/src_presentation_web_6326f81e._.js.map +1 -1
  179. package/web/.next/server/chunks/ssr/src_presentation_web_6b2fdcd8._.js +1 -1
  180. package/web/.next/server/chunks/ssr/src_presentation_web_6b2fdcd8._.js.map +1 -1
  181. package/web/.next/server/chunks/ssr/src_presentation_web_74703c9f._.js +1 -1
  182. package/web/.next/server/chunks/ssr/src_presentation_web_74703c9f._.js.map +1 -1
  183. package/web/.next/server/chunks/ssr/src_presentation_web_a8056dac._.js +1 -1
  184. package/web/.next/server/chunks/ssr/src_presentation_web_a8056dac._.js.map +1 -1
  185. package/web/.next/server/chunks/ssr/src_presentation_web_ad42cc73._.js +1 -1
  186. package/web/.next/server/chunks/ssr/src_presentation_web_ad42cc73._.js.map +1 -1
  187. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +3 -3
  188. package/web/.next/server/chunks/ssr/src_presentation_web_b00bfb08._.js +1 -1
  189. package/web/.next/server/chunks/ssr/src_presentation_web_b00bfb08._.js.map +1 -1
  190. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js +1 -1
  191. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js.map +1 -1
  192. package/web/.next/server/chunks/ssr/src_presentation_web_components_common_base-drawer_base-drawer_tsx_97dfbbc8._.js +1 -1
  193. package/web/.next/server/chunks/ssr/src_presentation_web_components_common_base-drawer_base-drawer_tsx_97dfbbc8._.js.map +1 -1
  194. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  195. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  196. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js +1 -1
  197. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js.map +1 -1
  198. package/web/.next/server/chunks/ssr/src_presentation_web_f1edcf5e._.js +1 -1
  199. package/web/.next/server/chunks/ssr/src_presentation_web_f1edcf5e._.js.map +1 -1
  200. package/web/.next/server/chunks/ssr/src_presentation_web_f9436804._.js +1 -1
  201. package/web/.next/server/chunks/ssr/src_presentation_web_f9436804._.js.map +1 -1
  202. package/web/.next/server/pages/500.html +2 -2
  203. package/web/.next/server/server-reference-manifest.js +1 -1
  204. package/web/.next/server/server-reference-manifest.json +54 -54
  205. package/web/.next/static/chunks/{5635fe220632fced.js → 0fca538c8a29691d.js} +1 -1
  206. package/web/.next/static/chunks/{25bbd99fa3dcc0b2.js → 1332132fa08b32a6.js} +1 -1
  207. package/web/.next/static/chunks/{ae94e98b7163890b.js → 21a17efb196571ff.js} +1 -1
  208. package/web/.next/static/chunks/{7a9d8b705c0f8d2d.js → 2a6dce03c4bc24a1.js} +1 -1
  209. package/web/.next/static/chunks/{b40755bc75789277.js → 2d0deaa168eca4a6.js} +1 -1
  210. package/web/.next/static/chunks/{e11508a76f5fca98.js → 4df1826f2280bb91.js} +1 -1
  211. package/web/.next/static/chunks/{fe29d30a75e697ed.js → 5c4f318453ac7984.js} +1 -1
  212. package/web/.next/static/chunks/{d8e96baa3feb79cb.js → 6454c634b1dfd9e1.js} +1 -1
  213. package/web/.next/static/chunks/{b6ddc3e5f64bef7f.js → 8441fecda031344a.js} +1 -1
  214. package/web/.next/static/chunks/{6ad23a3ac827b65b.js → 8de6ff9a58d783f1.js} +1 -1
  215. package/web/.next/static/chunks/{15951ad67a810e2c.js → 911685bfab863324.js} +3 -3
  216. package/web/.next/static/chunks/{53f9385d4a447ad4.js → a7b75ff95a0f9779.js} +2 -2
  217. package/web/.next/static/chunks/{443c0073e58878d8.js → b649d60a870a6b30.js} +1 -1
  218. package/web/.next/static/chunks/{be165be5db7a6054.js → bd0a4fdd2b1cc737.js} +1 -1
  219. package/web/.next/static/chunks/{e65f14d14ad46a32.js → df4464ba4edeee49.js} +1 -1
  220. package/web/.next/static/chunks/e9bd2883b2ba2017.js +1 -0
  221. package/web/.next/static/chunks/d7310881615cb55b.js +0 -1
  222. /package/web/.next/static/{_PzlF7w3QzhaBsMnhT75_ → fHns2V-tULTm-kY_Fjx8m}/_buildManifest.js +0 -0
  223. /package/web/.next/static/{_PzlF7w3QzhaBsMnhT75_ → fHns2V-tULTm-kY_Fjx8m}/_clientMiddlewareManifest.json +0 -0
  224. /package/web/.next/static/{_PzlF7w3QzhaBsMnhT75_ → fHns2V-tULTm-kY_Fjx8m}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[40652,a=>{"use strict";var b=a.i(12656),c=a.i(96960),d=a.i(69845),e=a.i(50488),f=a.i(63698),g=a.i(3195),h=a.i(28002),i=a.i(50490),j=a.i(5698),k=a.i(98410),l=a.i(72016),m=a.i(88064),n=a.i(56957),o=a.i(12882),p=a.i(53170),q=a.i(92548),r=a.i(91498),s=a.i(84494),t=a.i(25700);let u=(0,t.default)("tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);var v=a.i(33511),w=a.i(65298),x=a.i(38019);let y=(0,t.default)("file-check-corner",[["path",{d:"M10.5 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v6",key:"g5mvt7"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"m14 20 2 2 4-4",key:"15kota"}]]);var z=a.i(85536);a.i(78454);var A=a.i(24255);a.i(49235);var B=a.i(85080),C=a.i(82934),D=a.i(41305),E=a.i(55628),F=a.i(18662),G=a.i(21333),H=a.i(61544),I=a.i(39263);let J="text-muted-foreground hover:bg-foreground/8 hover:text-foreground inline-flex size-8 items-center justify-center rounded-[3px] disabled:opacity-40",K="bg-border/60 mx-1.5 h-5 w-px shrink-0";function L({data:a,initialTab:p}){let q=(0,G.useFeatureFlags)(),r=(0,d.useRouter)(),s=(0,d.usePathname)().startsWith("/repository/"),[t,u]=(0,c.useState)(p??"overview"),[v,w]=(0,c.useState)(!1),x=(0,E.useRepositoryActions)(a.repositoryPath?{repositoryId:a.id,repositoryPath:a.repositoryPath}:null),y=(0,c.useCallback)(()=>{r.push("/")},[r]),I=(0,F.useDeployAction)(a.repositoryPath?{targetId:a.repositoryPath,targetType:"repository",repositoryPath:a.repositoryPath}:null),L="Booting"===I.status||"Ready"===I.status,M=(0,c.useCallback)(()=>{a.repositoryPath&&(navigator.clipboard.writeText(a.repositoryPath),w(!0),setTimeout(()=>w(!1),2e3))},[a.repositoryPath]),N=a.id?`repo-${a.id}`:`repo-${a.name}`;return(0,b.jsx)(A.BaseDrawer,{open:s,onClose:y,size:"lg",modal:!1,"data-testid":"repository-drawer",children:(0,b.jsxs)(D.Tabs,{value:t,onValueChange:u,className:"flex min-h-0 flex-1 flex-col",children:[(0,b.jsxs)(D.TabsList,{className:"bg-muted/50 h-auto w-full shrink-0 justify-start gap-0 rounded-none border-b p-0",children:[(0,b.jsxs)(D.TabsTrigger,{value:"overview",className:"text-muted-foreground hover:bg-muted hover:text-foreground data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:border-t-primary [&:not([data-state=active])]:border-r-border relative h-auto rounded-none border-t-2 border-r border-t-transparent border-r-transparent bg-transparent px-3.5 py-2.5 text-[13px] font-normal shadow-none transition-none last:border-r-transparent data-[state=active]:shadow-none",children:[(0,b.jsx)(n.LayoutDashboard,{className:"mr-1.5 size-4"}),"Overview"]}),(0,b.jsxs)(D.TabsTrigger,{value:"chat",className:"text-muted-foreground hover:bg-muted hover:text-foreground data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:border-t-primary [&:not([data-state=active])]:border-r-border relative h-auto rounded-none border-t-2 border-r border-t-transparent border-r-transparent bg-transparent px-3.5 py-2.5 text-[13px] font-normal shadow-none transition-none last:border-r-transparent data-[state=active]:shadow-none",children:[(0,b.jsx)(o.MessageSquare,{className:"mr-1.5 size-4"}),"Chat"]})]}),(0,b.jsxs)("div",{className:"bg-muted/40 shrink-0 border-b",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 px-4 pe-10 pt-2.5 pb-2","data-testid":"repository-drawer-header",children:[(0,b.jsx)("h2",{className:"text-foreground min-w-0 truncate text-base font-semibold tracking-tight",children:a.name}),a.repositoryPath?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"text-muted-foreground/40 text-xs",children:"/"}),(0,b.jsx)("span",{className:"text-muted-foreground min-w-0 truncate font-mono text-[11px]",children:a.repositoryPath})]}):null]}),a.repositoryPath?(0,b.jsx)("div",{"data-testid":"repository-drawer-toolbar",children:(0,b.jsxs)("div",{className:"flex h-9 items-center px-1.5",children:[(0,b.jsxs)(C.TooltipProvider,{delayDuration:300,children:[(0,b.jsxs)("div",{className:"flex items-center",children:[(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",className:J,onClick:x.openInIde,disabled:x.ideLoading,"aria-label":"Open in IDE",children:x.ideLoading?(0,b.jsx)(m.Loader2,{className:"size-3.5 animate-spin"}):(0,b.jsx)(e.Code2,{className:"size-4"})})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",className:"text-xs",children:"Open in IDE"})]}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",className:J,onClick:x.openInShell,disabled:x.shellLoading,"aria-label":"Open terminal",children:x.shellLoading?(0,b.jsx)(m.Loader2,{className:"size-3.5 animate-spin"}):(0,b.jsx)(f.Terminal,{className:"size-4"})})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",className:"text-xs",children:"Open terminal"})]}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",className:J,onClick:x.openFolder,disabled:x.folderLoading,"aria-label":"Open folder",children:x.folderLoading?(0,b.jsx)(m.Loader2,{className:"size-3.5 animate-spin"}):(0,b.jsx)(g.FolderOpen,{className:"size-4"})})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",className:"text-xs",children:"Open folder"})]}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",className:J,onClick:M,"aria-label":"Copy path",children:v?(0,b.jsx)(l.Check,{className:"size-3.5 text-green-500"}):(0,b.jsx)(k.Copy,{className:"size-4"})})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",className:"text-xs",children:v?"Copied!":"Copy path"})]})]}),a.id&&q.gitRebaseSync?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:K}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",className:J,onClick:x.syncMain,disabled:x.syncLoading,"aria-label":"Sync main",children:x.syncLoading?(0,b.jsx)(m.Loader2,{className:"size-3.5 animate-spin"}):(0,b.jsx)(h.RefreshCw,{className:"size-4"})})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",className:"text-xs",children:"Sync main"})]})]}):null,q.envDeploy?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:K}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",disabled:I.deployLoading||I.stopLoading,onClick:L?I.stop:I.deploy,className:(0,z.cn)("inline-flex size-7 items-center justify-center rounded-[3px] disabled:opacity-40",L?"text-red-500 hover:bg-red-500/10 hover:text-red-400":"text-green-500 hover:bg-green-500/10 hover:text-green-400"),"aria-label":L?"Stop dev server":"Start dev server",children:I.deployLoading||I.stopLoading?(0,b.jsx)(m.Loader2,{className:"size-3.5 animate-spin"}):L?(0,b.jsx)(j.Square,{className:"size-4"}):(0,b.jsx)(i.Play,{className:"size-4"})})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",className:"text-xs",children:L?"Stop dev server":"Start dev server"})]}),L?(0,b.jsx)(B.DeploymentStatusBadge,{status:I.status,url:I.url,targetId:a.repositoryPath}):null]}):null]}),(0,b.jsx)("div",{className:"flex-1"})]})}):null]}),(0,b.jsx)(D.TabsContent,{value:"overview",className:"mt-0 flex-1 overflow-y-auto",children:(0,b.jsx)(P,{data:a,syncError:x.syncError})}),(0,b.jsx)(D.TabsContent,{value:"chat",className:"mt-0 flex min-h-0 flex-1 flex-col overflow-hidden",children:(0,b.jsx)(H.ChatTab,{featureId:N,worktreePath:a.repositoryPath})})]})})}function M({icon:a,title:c,children:d}){return(0,b.jsxs)("div",{className:"px-3 pt-4 pb-1",children:[(0,b.jsxs)("div",{className:"text-foreground mb-2 flex items-center gap-1.5 text-sm font-semibold tracking-wider uppercase",children:[(0,b.jsx)(a,{className:"size-4 opacity-50"}),c]}),d]})}function N({children:a,className:c}){return(0,b.jsx)("div",{className:(0,z.cn)("bg-muted/60 rounded-md border border-transparent p-3",c),children:a})}function O({label:a,children:c}){return(0,b.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,b.jsx)("span",{className:"text-foreground/40 text-[11px] font-medium tracking-wider uppercase",children:a}),(0,b.jsx)("span",{className:"text-sm leading-snug",children:c})]})}function P({data:a,syncError:d}){let[e,f]=(0,c.useState)(null),[g,h]=(0,c.useState)(!1);if((0,c.useEffect)(()=>{if(!a.repositoryPath)return;let b=!1;return h(!0),(0,I.getGitRepoInfo)(a.repositoryPath,8).then(a=>{b||f(a)}).catch(()=>{}).finally(()=>{b||h(!1)}),()=>{b=!0}},[a.repositoryPath]),!a.repositoryPath)return null;let i=e?.workingTree,j=i&&(i.staged>0||i.modified>0||i.untracked>0),k=e?.diffStats;return(0,b.jsxs)("div",{className:"pb-4",children:[g?(0,b.jsxs)("div",{className:"text-foreground/40 flex items-center gap-2 px-4 py-8 text-sm",children:[(0,b.jsx)(m.Loader2,{className:"size-4 animate-spin"})," Loading repository info..."]}):null,e?(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-2 px-3 pt-3",children:[(0,b.jsx)(N,{children:(0,b.jsxs)(O,{label:"Branch",children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,b.jsx)(p.GitBranch,{className:"text-foreground/30 size-3.5 shrink-0"}),(0,b.jsx)("code",{className:"font-mono text-sm",children:e.currentBranch??a.branch??"—"})]}),null!=a.behindCount&&a.behindCount>0?(0,b.jsxs)("span",{className:"mt-0.5 block text-xs text-orange-600 dark:text-orange-400",children:[a.behindCount," behind default"]}):null]})}),(0,b.jsx)(N,{children:(0,b.jsx)(O,{label:"Working Tree",children:j?(0,b.jsxs)("div",{className:"flex flex-wrap gap-x-3 gap-y-0.5",children:[i.staged>0?(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-sm text-green-600 dark:text-green-400",children:[(0,b.jsx)(y,{className:"size-3.5"})," ",i.staged," staged"]}):null,i.modified>0?(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-sm text-amber-600 dark:text-amber-400",children:[(0,b.jsx)(w.FileEdit,{className:"size-3.5"})," ",i.modified," modified"]}):null,i.untracked>0?(0,b.jsxs)("span",{className:"text-foreground/50 inline-flex items-center gap-1 text-sm",children:[(0,b.jsx)(x.FilePlus,{className:"size-3.5"})," ",i.untracked," untracked"]}):null]}):(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-sm text-green-600 dark:text-green-400",children:[(0,b.jsx)(l.Check,{className:"size-3.5"})," Clean"]})})}),k?(0,b.jsx)(N,{children:(0,b.jsx)(O,{label:"Uncommitted Changes",children:(0,b.jsxs)("div",{className:"flex items-center gap-3 text-sm",children:[(0,b.jsxs)("span",{children:[k.filesChanged," file",1!==k.filesChanged?"s":""]}),(0,b.jsxs)("span",{className:"text-green-600 dark:text-green-400",children:["+",k.insertions]}),(0,b.jsxs)("span",{className:"text-red-500 dark:text-red-400",children:["-",k.deletions]})]})})}):null,e.remotes.length>0?(0,b.jsx)(N,{children:(0,b.jsx)(O,{label:"Remote",children:e.remotes.map(a=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-sm",children:[(0,b.jsx)(s.Globe,{className:"text-foreground/30 size-3.5 shrink-0"}),(0,b.jsx)("span",{className:"truncate",children:a.url.replace(/\.git$/,"").replace(/^https?:\/\/([^@]+@)?/,"").replace(/x-access-token:[^@]+@/,"")})]},a.name))})}):null,e.stashCount>0?(0,b.jsx)(N,{children:(0,b.jsx)(O,{label:"Stashes",children:(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-sm",children:[(0,b.jsx)(v.Archive,{className:"text-foreground/30 size-3.5 shrink-0"}),e.stashCount," stash",1!==e.stashCount?"es":""]})})}):null,e.tags.length>0?(0,b.jsx)(N,{children:(0,b.jsx)(O,{label:"Tags",children:(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:e.tags.map(a=>(0,b.jsxs)("span",{className:"bg-foreground/[0.04] inline-flex items-center gap-0.5 rounded px-1.5 py-0.5 text-xs",children:[(0,b.jsx)(u,{className:"text-foreground/30 size-2.5"}),a]},a))})})}):null]}):null,e&&e.commits.length>0?(0,b.jsx)(M,{icon:q.GitCommitHorizontal,title:"Recent Commits",children:(0,b.jsxs)("div",{className:"relative ml-3",children:[(0,b.jsx)("div",{className:"bg-border absolute top-2 bottom-2 left-[5px] w-px"}),e.commits.map((a,c)=>(0,b.jsxs)("div",{className:"group relative flex gap-3 py-1.5",children:[(0,b.jsx)("div",{className:(0,z.cn)("relative z-10 mt-1.5 size-[11px] shrink-0 rounded-full border-2",0===c?"border-primary bg-primary":"border-border bg-background group-hover:border-foreground/30")}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("div",{className:"flex items-baseline gap-2",children:[(0,b.jsx)("p",{className:"min-w-0 truncate text-sm leading-snug",children:a.subject}),(0,b.jsx)("code",{className:"text-foreground/30 shrink-0 font-mono text-[11px]",children:a.shortHash})]}),(0,b.jsxs)("div",{className:"text-foreground/40 mt-0.5 flex items-center gap-2 text-xs",children:[(0,b.jsx)("span",{children:a.author}),(0,b.jsx)("span",{children:"·"}),(0,b.jsx)("span",{children:a.relativeDate}),a.branch?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{children:"·"}),(0,b.jsxs)("span",{className:"inline-flex items-center gap-0.5",children:[(0,b.jsx)(p.GitBranch,{className:"size-3"}),a.branch]})]}):null]})]})]},a.hash))]})}):null,e&&e.branches.length>1?(0,b.jsx)(M,{icon:p.GitBranch,title:"Branches",children:(0,b.jsx)("div",{className:"flex flex-col",children:[...e.branches].sort((a,b)=>{let c,d,e,f;return a.isCurrent&&!b.isCurrent?-1:!a.isCurrent&&b.isCurrent?1:(c=a.name,/^(main|master)$/.test(c)&&(d=b.name,!/^(main|master)$/.test(d)))?-1:+(e=a.name,!!(!/^(main|master)$/.test(e)&&(f=b.name,/^(main|master)$/.test(f))))}).map(a=>(0,b.jsxs)("div",{className:(0,z.cn)("flex items-center justify-between rounded px-2 py-1.5",a.isCurrent&&"bg-muted/60"),children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-sm",children:[a.isCurrent?(0,b.jsx)("span",{className:"size-2 shrink-0 rounded-full bg-green-500"}):/^(main|master)$/.test(a.name)?(0,b.jsx)("span",{className:"size-2 shrink-0 rounded-full bg-blue-500"}):(0,b.jsx)("span",{className:"bg-foreground/10 size-2 shrink-0 rounded-full"}),(0,b.jsx)("code",{className:"font-mono text-[13px]",children:a.name}),a.isCurrent?(0,b.jsx)("span",{className:"text-foreground/40 text-[10px]",children:"current"}):null]}),(0,b.jsx)("span",{className:"text-foreground/40 text-xs",children:a.lastCommitDate})]},a.name))})}):null,d?(0,b.jsx)(M,{icon:r.AlertTriangle,title:"Issues",children:(0,b.jsx)(N,{className:"bg-destructive/5 border-transparent",children:(0,b.jsx)("p",{className:"text-destructive text-sm",children:d})})}):null]})}a.s(["RepositoryDrawerClient",()=>L],40652)}];
1
+ module.exports=[40652,a=>{"use strict";var b=a.i(12656),c=a.i(96960),d=a.i(69845),e=a.i(50488),f=a.i(63698),g=a.i(3195),h=a.i(28002),i=a.i(50490),j=a.i(5698),k=a.i(98410),l=a.i(72016),m=a.i(88064),n=a.i(56957),o=a.i(12882),p=a.i(53170),q=a.i(92548),r=a.i(91498),s=a.i(84494),t=a.i(25700);let u=(0,t.default)("tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);var v=a.i(33511),w=a.i(65298),x=a.i(38019);let y=(0,t.default)("file-check-corner",[["path",{d:"M10.5 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v6",key:"g5mvt7"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"m14 20 2 2 4-4",key:"15kota"}]]);var z=a.i(85536);a.i(78454);var A=a.i(24255);a.i(49235);var B=a.i(85080),C=a.i(82934),D=a.i(41305),E=a.i(55628),F=a.i(18662),G=a.i(21333),H=a.i(61544),I=a.i(37917);let J="text-muted-foreground hover:bg-foreground/8 hover:text-foreground inline-flex size-8 items-center justify-center rounded-[3px] disabled:opacity-40",K="bg-border/60 mx-1.5 h-5 w-px shrink-0";function L({data:a,initialTab:p}){let q=(0,G.useFeatureFlags)(),r=(0,d.useRouter)(),s=(0,d.usePathname)().startsWith("/repository/"),[t,u]=(0,c.useState)(p??"overview"),[v,w]=(0,c.useState)(!1),x=(0,E.useRepositoryActions)(a.repositoryPath?{repositoryId:a.id,repositoryPath:a.repositoryPath}:null),y=(0,c.useCallback)(()=>{r.push("/")},[r]),I=(0,F.useDeployAction)(a.repositoryPath?{targetId:a.repositoryPath,targetType:"repository",repositoryPath:a.repositoryPath}:null),L="Booting"===I.status||"Ready"===I.status,M=(0,c.useCallback)(()=>{a.repositoryPath&&(navigator.clipboard.writeText(a.repositoryPath),w(!0),setTimeout(()=>w(!1),2e3))},[a.repositoryPath]),N=a.id?`repo-${a.id}`:`repo-${a.name}`;return(0,b.jsx)(A.BaseDrawer,{open:s,onClose:y,size:"lg",modal:!1,"data-testid":"repository-drawer",children:(0,b.jsxs)(D.Tabs,{value:t,onValueChange:u,className:"flex min-h-0 flex-1 flex-col",children:[(0,b.jsxs)(D.TabsList,{className:"bg-muted/50 h-auto w-full shrink-0 justify-start gap-0 rounded-none border-b p-0",children:[(0,b.jsxs)(D.TabsTrigger,{value:"overview",className:"text-muted-foreground hover:bg-muted hover:text-foreground data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:border-t-primary [&:not([data-state=active])]:border-r-border relative h-auto rounded-none border-t-2 border-r border-t-transparent border-r-transparent bg-transparent px-3.5 py-2.5 text-[13px] font-normal shadow-none transition-none last:border-r-transparent data-[state=active]:shadow-none",children:[(0,b.jsx)(n.LayoutDashboard,{className:"mr-1.5 size-4"}),"Overview"]}),(0,b.jsxs)(D.TabsTrigger,{value:"chat",className:"text-muted-foreground hover:bg-muted hover:text-foreground data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:border-t-primary [&:not([data-state=active])]:border-r-border relative h-auto rounded-none border-t-2 border-r border-t-transparent border-r-transparent bg-transparent px-3.5 py-2.5 text-[13px] font-normal shadow-none transition-none last:border-r-transparent data-[state=active]:shadow-none",children:[(0,b.jsx)(o.MessageSquare,{className:"mr-1.5 size-4"}),"Chat"]})]}),(0,b.jsxs)("div",{className:"bg-muted/40 shrink-0 border-b",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 px-4 pe-10 pt-2.5 pb-2","data-testid":"repository-drawer-header",children:[(0,b.jsx)("h2",{className:"text-foreground min-w-0 truncate text-base font-semibold tracking-tight",children:a.name}),a.repositoryPath?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"text-muted-foreground/40 text-xs",children:"/"}),(0,b.jsx)("span",{className:"text-muted-foreground min-w-0 truncate font-mono text-[11px]",children:a.repositoryPath})]}):null]}),a.repositoryPath?(0,b.jsx)("div",{"data-testid":"repository-drawer-toolbar",children:(0,b.jsxs)("div",{className:"flex h-9 items-center px-1.5",children:[(0,b.jsxs)(C.TooltipProvider,{delayDuration:300,children:[(0,b.jsxs)("div",{className:"flex items-center",children:[(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",className:J,onClick:x.openInIde,disabled:x.ideLoading,"aria-label":"Open in IDE",children:x.ideLoading?(0,b.jsx)(m.Loader2,{className:"size-3.5 animate-spin"}):(0,b.jsx)(e.Code2,{className:"size-4"})})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",className:"text-xs",children:"Open in IDE"})]}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",className:J,onClick:x.openInShell,disabled:x.shellLoading,"aria-label":"Open terminal",children:x.shellLoading?(0,b.jsx)(m.Loader2,{className:"size-3.5 animate-spin"}):(0,b.jsx)(f.Terminal,{className:"size-4"})})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",className:"text-xs",children:"Open terminal"})]}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",className:J,onClick:x.openFolder,disabled:x.folderLoading,"aria-label":"Open folder",children:x.folderLoading?(0,b.jsx)(m.Loader2,{className:"size-3.5 animate-spin"}):(0,b.jsx)(g.FolderOpen,{className:"size-4"})})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",className:"text-xs",children:"Open folder"})]}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",className:J,onClick:M,"aria-label":"Copy path",children:v?(0,b.jsx)(l.Check,{className:"size-3.5 text-green-500"}):(0,b.jsx)(k.Copy,{className:"size-4"})})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",className:"text-xs",children:v?"Copied!":"Copy path"})]})]}),a.id&&q.gitRebaseSync?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:K}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",className:J,onClick:x.syncMain,disabled:x.syncLoading,"aria-label":"Sync main",children:x.syncLoading?(0,b.jsx)(m.Loader2,{className:"size-3.5 animate-spin"}):(0,b.jsx)(h.RefreshCw,{className:"size-4"})})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",className:"text-xs",children:"Sync main"})]})]}):null,q.envDeploy?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:K}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",disabled:I.deployLoading||I.stopLoading,onClick:L?I.stop:I.deploy,className:(0,z.cn)("inline-flex size-7 items-center justify-center rounded-[3px] disabled:opacity-40",L?"text-red-500 hover:bg-red-500/10 hover:text-red-400":"text-green-500 hover:bg-green-500/10 hover:text-green-400"),"aria-label":L?"Stop dev server":"Start dev server",children:I.deployLoading||I.stopLoading?(0,b.jsx)(m.Loader2,{className:"size-3.5 animate-spin"}):L?(0,b.jsx)(j.Square,{className:"size-4"}):(0,b.jsx)(i.Play,{className:"size-4"})})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",className:"text-xs",children:L?"Stop dev server":"Start dev server"})]}),L?(0,b.jsx)(B.DeploymentStatusBadge,{status:I.status,url:I.url,targetId:a.repositoryPath}):null]}):null]}),(0,b.jsx)("div",{className:"flex-1"})]})}):null]}),(0,b.jsx)(D.TabsContent,{value:"overview",className:"mt-0 flex-1 overflow-y-auto",children:(0,b.jsx)(P,{data:a,syncError:x.syncError})}),(0,b.jsx)(D.TabsContent,{value:"chat",className:"mt-0 flex min-h-0 flex-1 flex-col overflow-hidden",children:(0,b.jsx)(H.ChatTab,{featureId:N,worktreePath:a.repositoryPath})})]})})}function M({icon:a,title:c,children:d}){return(0,b.jsxs)("div",{className:"px-3 pt-4 pb-1",children:[(0,b.jsxs)("div",{className:"text-foreground mb-2 flex items-center gap-1.5 text-sm font-semibold tracking-wider uppercase",children:[(0,b.jsx)(a,{className:"size-4 opacity-50"}),c]}),d]})}function N({children:a,className:c}){return(0,b.jsx)("div",{className:(0,z.cn)("bg-muted/60 rounded-md border border-transparent p-3",c),children:a})}function O({label:a,children:c}){return(0,b.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,b.jsx)("span",{className:"text-foreground/40 text-[11px] font-medium tracking-wider uppercase",children:a}),(0,b.jsx)("span",{className:"text-sm leading-snug",children:c})]})}function P({data:a,syncError:d}){let[e,f]=(0,c.useState)(null),[g,h]=(0,c.useState)(!1);if((0,c.useEffect)(()=>{if(!a.repositoryPath)return;let b=!1;return h(!0),(0,I.getGitRepoInfo)(a.repositoryPath,8).then(a=>{b||f(a)}).catch(()=>{}).finally(()=>{b||h(!1)}),()=>{b=!0}},[a.repositoryPath]),!a.repositoryPath)return null;let i=e?.workingTree,j=i&&(i.staged>0||i.modified>0||i.untracked>0),k=e?.diffStats;return(0,b.jsxs)("div",{className:"pb-4",children:[g?(0,b.jsxs)("div",{className:"text-foreground/40 flex items-center gap-2 px-4 py-8 text-sm",children:[(0,b.jsx)(m.Loader2,{className:"size-4 animate-spin"})," Loading repository info..."]}):null,e?(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-2 px-3 pt-3",children:[(0,b.jsx)(N,{children:(0,b.jsxs)(O,{label:"Branch",children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,b.jsx)(p.GitBranch,{className:"text-foreground/30 size-3.5 shrink-0"}),(0,b.jsx)("code",{className:"font-mono text-sm",children:e.currentBranch??a.branch??"—"})]}),null!=a.behindCount&&a.behindCount>0?(0,b.jsxs)("span",{className:"mt-0.5 block text-xs text-orange-600 dark:text-orange-400",children:[a.behindCount," behind default"]}):null]})}),(0,b.jsx)(N,{children:(0,b.jsx)(O,{label:"Working Tree",children:j?(0,b.jsxs)("div",{className:"flex flex-wrap gap-x-3 gap-y-0.5",children:[i.staged>0?(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-sm text-green-600 dark:text-green-400",children:[(0,b.jsx)(y,{className:"size-3.5"})," ",i.staged," staged"]}):null,i.modified>0?(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-sm text-amber-600 dark:text-amber-400",children:[(0,b.jsx)(w.FileEdit,{className:"size-3.5"})," ",i.modified," modified"]}):null,i.untracked>0?(0,b.jsxs)("span",{className:"text-foreground/50 inline-flex items-center gap-1 text-sm",children:[(0,b.jsx)(x.FilePlus,{className:"size-3.5"})," ",i.untracked," untracked"]}):null]}):(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-sm text-green-600 dark:text-green-400",children:[(0,b.jsx)(l.Check,{className:"size-3.5"})," Clean"]})})}),k?(0,b.jsx)(N,{children:(0,b.jsx)(O,{label:"Uncommitted Changes",children:(0,b.jsxs)("div",{className:"flex items-center gap-3 text-sm",children:[(0,b.jsxs)("span",{children:[k.filesChanged," file",1!==k.filesChanged?"s":""]}),(0,b.jsxs)("span",{className:"text-green-600 dark:text-green-400",children:["+",k.insertions]}),(0,b.jsxs)("span",{className:"text-red-500 dark:text-red-400",children:["-",k.deletions]})]})})}):null,e.remotes.length>0?(0,b.jsx)(N,{children:(0,b.jsx)(O,{label:"Remote",children:e.remotes.map(a=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-sm",children:[(0,b.jsx)(s.Globe,{className:"text-foreground/30 size-3.5 shrink-0"}),(0,b.jsx)("span",{className:"truncate",children:a.url.replace(/\.git$/,"").replace(/^https?:\/\/([^@]+@)?/,"").replace(/x-access-token:[^@]+@/,"")})]},a.name))})}):null,e.stashCount>0?(0,b.jsx)(N,{children:(0,b.jsx)(O,{label:"Stashes",children:(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-sm",children:[(0,b.jsx)(v.Archive,{className:"text-foreground/30 size-3.5 shrink-0"}),e.stashCount," stash",1!==e.stashCount?"es":""]})})}):null,e.tags.length>0?(0,b.jsx)(N,{children:(0,b.jsx)(O,{label:"Tags",children:(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:e.tags.map(a=>(0,b.jsxs)("span",{className:"bg-foreground/[0.04] inline-flex items-center gap-0.5 rounded px-1.5 py-0.5 text-xs",children:[(0,b.jsx)(u,{className:"text-foreground/30 size-2.5"}),a]},a))})})}):null]}):null,e&&e.commits.length>0?(0,b.jsx)(M,{icon:q.GitCommitHorizontal,title:"Recent Commits",children:(0,b.jsxs)("div",{className:"relative ml-3",children:[(0,b.jsx)("div",{className:"bg-border absolute top-2 bottom-2 left-[5px] w-px"}),e.commits.map((a,c)=>(0,b.jsxs)("div",{className:"group relative flex gap-3 py-1.5",children:[(0,b.jsx)("div",{className:(0,z.cn)("relative z-10 mt-1.5 size-[11px] shrink-0 rounded-full border-2",0===c?"border-primary bg-primary":"border-border bg-background group-hover:border-foreground/30")}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("div",{className:"flex items-baseline gap-2",children:[(0,b.jsx)("p",{className:"min-w-0 truncate text-sm leading-snug",children:a.subject}),(0,b.jsx)("code",{className:"text-foreground/30 shrink-0 font-mono text-[11px]",children:a.shortHash})]}),(0,b.jsxs)("div",{className:"text-foreground/40 mt-0.5 flex items-center gap-2 text-xs",children:[(0,b.jsx)("span",{children:a.author}),(0,b.jsx)("span",{children:"·"}),(0,b.jsx)("span",{children:a.relativeDate}),a.branch?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{children:"·"}),(0,b.jsxs)("span",{className:"inline-flex items-center gap-0.5",children:[(0,b.jsx)(p.GitBranch,{className:"size-3"}),a.branch]})]}):null]})]})]},a.hash))]})}):null,e&&e.branches.length>1?(0,b.jsx)(M,{icon:p.GitBranch,title:"Branches",children:(0,b.jsx)("div",{className:"flex flex-col",children:[...e.branches].sort((a,b)=>{let c,d,e,f;return a.isCurrent&&!b.isCurrent?-1:!a.isCurrent&&b.isCurrent?1:(c=a.name,/^(main|master)$/.test(c)&&(d=b.name,!/^(main|master)$/.test(d)))?-1:+(e=a.name,!!(!/^(main|master)$/.test(e)&&(f=b.name,/^(main|master)$/.test(f))))}).map(a=>(0,b.jsxs)("div",{className:(0,z.cn)("flex items-center justify-between rounded px-2 py-1.5",a.isCurrent&&"bg-muted/60"),children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-sm",children:[a.isCurrent?(0,b.jsx)("span",{className:"size-2 shrink-0 rounded-full bg-green-500"}):/^(main|master)$/.test(a.name)?(0,b.jsx)("span",{className:"size-2 shrink-0 rounded-full bg-blue-500"}):(0,b.jsx)("span",{className:"bg-foreground/10 size-2 shrink-0 rounded-full"}),(0,b.jsx)("code",{className:"font-mono text-[13px]",children:a.name}),a.isCurrent?(0,b.jsx)("span",{className:"text-foreground/40 text-[10px]",children:"current"}):null]}),(0,b.jsx)("span",{className:"text-foreground/40 text-xs",children:a.lastCommitDate})]},a.name))})}):null,d?(0,b.jsx)(M,{icon:r.AlertTriangle,title:"Issues",children:(0,b.jsx)(N,{className:"bg-destructive/5 border-transparent",children:(0,b.jsx)("p",{className:"text-destructive text-sm",children:d})})}):null]})}a.s(["RepositoryDrawerClient",()=>L],40652)}];
2
2
 
3
3
  //# sourceMappingURL=f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[80496,a=>{"use strict";var b=a.i(92658),c=a.i(2157),d=a.i(60526),e=a.i(50227),f=a.i(74533),g=a.i(12581);let h={darwin:{cmd:"open",args:a=>[a]},linux:{cmd:"xdg-open",args:a=>[a]},win32:{cmd:"explorer",args:a=>[a]}};async function i(a){if(!a||!(0,e.isAbsolute)(a))return{success:!1,error:"repositoryPath must be an absolute path"};try{if(!(0,c.existsSync)(a))return{success:!1,error:"Directory not found"};let b=h[(0,d.platform)()];if(!b)return{success:!1,error:`Unsupported platform: ${(0,d.platform)()}`};let g=(0,e.normalize)(a),i=(0,f.spawn)(b.cmd,b.args(g),{detached:!0,stdio:"ignore"});return i.on("error",()=>void 0),i.unref(),{success:!0,path:a}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to open folder"}}}(0,g.ensureServerEntryExports)([i]),(0,b.registerServerReference)(i,"40d902df8a5f576b5aa33b645a7dfaf4b4133f67e6",null),a.s(["openFolder",()=>i])},24860,19720,a=>{"use strict";var b=a.i(92658),c=a.i(33244),d=a.i(12581);async function e(){let{workflow:a}=(0,c.getSettings)();return{approvalGates:{allowPrd:a.approvalGateDefaults.allowPrd,allowPlan:a.approvalGateDefaults.allowPlan,allowMerge:a.approvalGateDefaults.allowMerge},push:a.approvalGateDefaults.pushOnImplementationComplete,openPr:a.openPrOnImplementationComplete,ciWatchEnabled:a.ciWatchEnabled,enableEvidence:a.enableEvidence,commitEvidence:a.commitEvidence,fast:a.defaultFastMode,injectSkills:a.skillInjection?.enabled??!1}}(0,d.ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"00b377cba6c794f2eab4ff78f2016353e723e305c2",null),a.s(["getWorkflowDefaults",()=>e],24860);var f=a.i(96380);let g=new Set(["ADMIN","MAINTAIN","WRITE"]);async function h(a){try{let b=(0,f.resolve)("IGitHubRepositoryService"),c=await b.getViewerPermission(a);return{canPushDirectly:g.has(c)}}catch{return{canPushDirectly:!1}}}(0,d.ensureServerEntryExports)([h]),(0,b.registerServerReference)(h,"40e94d549a1b2ad0387ebfe8cd8e7d09a8802daa83",null),a.s(["getViewerPermission",()=>h],19720)},23761,a=>{"use strict";var b=a.i(23504),c=a.i(8115),d=a.i(27900),e=a.i(12513),f=a.i(73101),g=a.i(54775),h=a.i(65324),i=a.i(33841),j=a.i(46646),k=a.i(68378),l=a.i(68670),m=a.i(85321),n=a.i(84095),o=a.i(56799),p=a.i(80496),q=a.i(93225),r=a.i(94691),s=a.i(77710),t=a.i(45395),u=a.i(76707),v=a.i(10528),w=a.i(50845),x=a.i(26604),y=a.i(54723),z=a.i(18942),A=a.i(42886),B=a.i(49560),C=a.i(39353),D=a.i(95072),E=a.i(29207),F=a.i(24860),G=a.i(19720),H=a.i(77605);a.s([],29023),a.i(29023),a.s(["0023077826973eb66acc97360f2324aa92fc4b7eaf",()=>c.checkAllAgentsStatus,"003d0efbae2ee51b84f36569a3d9855d87e24750d1",()=>b.getAllAgentModels,"00b377cba6c794f2eab4ff78f2016353e723e305c2",()=>F.getWorkflowDefaults,"00bd27b30e6c35aa39ca5fcf0280d5b3379cd1c07e",()=>g.listGitHubOrganizations,"00d659d7355a2b6a5ffc831e27d33aa2b1bbb99816",()=>e.pickFolder,"40003deaddd47ade1409b6d526755b08eb3be80f0d",()=>B.addRepository,"400962487c8ebd3b1f5ded2ca4a60f8a73406f4f3f",()=>t.createApplication,"400c298d066926bbd45a1cc986940c718482912bf4",()=>q.syncRepository,"400c51000c5d6b72e9ea6f8c5b72d2281b3a54694b",()=>y.startFeature,"40192685e178327248c4ee3e7ed433168089f96062",()=>f.listGitHubRepositories,"401df75e6c7fb8e097b733abb8797bdfcdccbefb47",()=>h.importGitHubRepository,"40249dc44ff0bea67ac4b228d968dd1f704ee4b24f",()=>D.deleteApplication,"402abe7793fe396edf2d669c244fd0eeb370125424",()=>z.stopFeature,"402bf41f2c3cf1b29b445e07ab9a6fe3182e1df2d8",()=>j.deployRepository,"40314c5fc0aabcf152e1d908fe738c3cf40bd70be1",()=>l.stopDeployment,"403a379924950f7ba0c0e57e7c3c960d0624062339",()=>A.unarchiveFeature,"4046888598d39ae43d75963d3ef3cd4e8016324d4b",()=>s.createProjectAndFeature,"40699d7542c74323d1335bc9d1238c872989b4ff95",()=>u.createProjectFolder,"406c2354167c1037f06f5228adc94dcd5e877d721e",()=>r.getDeploymentLogs,"40adf0278807286a3192aa91cc969ad4bf34de24f3",()=>v.archiveFeature,"40bd8b1511738071912093ce876b807d0cb12137cd",()=>o.openShell,"40c7cc76af10154bd904315971383c0c513ef690f6",()=>E.getFeatureMetadata,"40cfbdcca08cd1c0a38f8655b5cec9e55a665cf783",()=>H.createFeature,"40cfe9ccf1af62e1123113d5ba522244a957544f28",()=>i.deployFeature,"40d7b674cc1d8c901818cf7e473218e7a6203fd032",()=>k.deployApplication,"40d902df8a5f576b5aa33b645a7dfaf4b4133f67e6",()=>p.openFolder,"40d9edabf5ce0f2bae3126c6a229398875f507a208",()=>n.openIde,"40e94d549a1b2ad0387ebfe8cd8e7d09a8802daa83",()=>G.getViewerPermission,"40f7e19e0c90a0828d68efc73ea956f73a3fc08de5",()=>x.resumeFeature,"40f88f7c0b3d5aad4185d49a932fc0dce113ec0912",()=>m.getDeploymentStatus,"6066fc7a836c30765dbacbf5d8466865b5aa1f9640",()=>C.deleteRepository,"60ddc5a1721764ad79ab273b52c39232c5e9359107",()=>d.updateAgentAndModel,"788ed56ab07e66ef884d6ce0f77fa46b5034bcfed4",()=>w.deleteFeature],23761)}];
1
+ module.exports=[80496,a=>{"use strict";var b=a.i(92658),c=a.i(2157),d=a.i(60526),e=a.i(50227),f=a.i(74533),g=a.i(12581);let h={darwin:{cmd:"open",args:a=>[a]},linux:{cmd:"xdg-open",args:a=>[a]},win32:{cmd:"explorer",args:a=>[a]}};async function i(a){if(!a||!(0,e.isAbsolute)(a))return{success:!1,error:"repositoryPath must be an absolute path"};try{if(!(0,c.existsSync)(a))return{success:!1,error:"Directory not found"};let b=h[(0,d.platform)()];if(!b)return{success:!1,error:`Unsupported platform: ${(0,d.platform)()}`};let g=(0,e.normalize)(a),i=(0,f.spawn)(b.cmd,b.args(g),{detached:!0,stdio:"ignore"});return i.on("error",()=>void 0),i.unref(),{success:!0,path:a}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to open folder"}}}(0,g.ensureServerEntryExports)([i]),(0,b.registerServerReference)(i,"40acae42186eb8fd217d71a72b4945acf22d89ec18",null),a.s(["openFolder",()=>i])},24860,19720,a=>{"use strict";var b=a.i(92658),c=a.i(33244),d=a.i(12581);async function e(){let{workflow:a}=(0,c.getSettings)();return{approvalGates:{allowPrd:a.approvalGateDefaults.allowPrd,allowPlan:a.approvalGateDefaults.allowPlan,allowMerge:a.approvalGateDefaults.allowMerge},push:a.approvalGateDefaults.pushOnImplementationComplete,openPr:a.openPrOnImplementationComplete,ciWatchEnabled:a.ciWatchEnabled,enableEvidence:a.enableEvidence,commitEvidence:a.commitEvidence,fast:a.defaultFastMode,injectSkills:a.skillInjection?.enabled??!1}}(0,d.ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"000ceee2fe57ea22361dbef2f4e190f659e96e5228",null),a.s(["getWorkflowDefaults",()=>e],24860);var f=a.i(96380);let g=new Set(["ADMIN","MAINTAIN","WRITE"]);async function h(a){try{let b=(0,f.resolve)("IGitHubRepositoryService"),c=await b.getViewerPermission(a);return{canPushDirectly:g.has(c)}}catch{return{canPushDirectly:!1}}}(0,d.ensureServerEntryExports)([h]),(0,b.registerServerReference)(h,"406a712ec0184b65e76aa84c1afbc72a461babb331",null),a.s(["getViewerPermission",()=>h],19720)},23761,a=>{"use strict";var b=a.i(23504),c=a.i(8115),d=a.i(27900),e=a.i(12513),f=a.i(73101),g=a.i(54775),h=a.i(65324),i=a.i(33841),j=a.i(46646),k=a.i(68378),l=a.i(68670),m=a.i(85321),n=a.i(84095),o=a.i(56799),p=a.i(80496),q=a.i(93225),r=a.i(94691),s=a.i(77710),t=a.i(45395),u=a.i(76707),v=a.i(10528),w=a.i(50845),x=a.i(26604),y=a.i(54723),z=a.i(18942),A=a.i(42886),B=a.i(49560),C=a.i(39353),D=a.i(95072),E=a.i(29207),F=a.i(24860),G=a.i(19720),H=a.i(77605);a.s([],29023),a.i(29023),a.s(["000ceee2fe57ea22361dbef2f4e190f659e96e5228",()=>F.getWorkflowDefaults,"00121c94c57d97ec959fb5070295c93770416422e8",()=>g.listGitHubOrganizations,"008509d19dd9a2cfbf9d2341a86901b764b3dc843b",()=>b.getAllAgentModels,"00aa5fb0355ecf3b43439642183e35b6ec50560084",()=>e.pickFolder,"00d26e7ff84204c80048090e57fae7733e945583d3",()=>c.checkAllAgentsStatus,"4011ff2cab52aa8731c2ff4a2a21850af05dbd744f",()=>l.stopDeployment,"4024fde93e6e2147dcdaa3f185855d20434a4ddf08",()=>y.startFeature,"4027e1286916f6f8a0ccf9ecf766f94d49f82483f4",()=>k.deployApplication,"402b827b66f4a4690c02f0c2482b9648362444fca3",()=>r.getDeploymentLogs,"402f7d3fbeeedeb3bf32eb4455f5c52c6cbe0c9dbc",()=>s.createProjectAndFeature,"4030634e58faa32adb5207cfeeb903a6bd0c77dcf6",()=>E.getFeatureMetadata,"403d888b0febaea3ca8e976004d7a3930298897064",()=>z.stopFeature,"403dbcc2be173f41862d8862984ef2d0eb34d2b82e",()=>h.importGitHubRepository,"404a03f8b97ac011757753600df767dd92b9f6bfc6",()=>n.openIde,"4066028d782e66210f353ba5777fc5e47ae5186ad5",()=>v.archiveFeature,"406a712ec0184b65e76aa84c1afbc72a461babb331",()=>G.getViewerPermission,"40723c9650159ba67a297db1a9aca888d3cc2bca59",()=>q.syncRepository,"40820278a653c830fe0245011a9d21ba971809c0fe",()=>j.deployRepository,"408345ac0b52fea08ca72b167c801d9b1b71a493b0",()=>D.deleteApplication,"4095a62107e998ea83afe905499439978bf697fb7d",()=>f.listGitHubRepositories,"40ab6a25d84540327f5a2cc1ce327e5bb05f6aa253",()=>H.createFeature,"40acae42186eb8fd217d71a72b4945acf22d89ec18",()=>p.openFolder,"40afc7125f38f319a56310312639e9772d5b330d7f",()=>u.createProjectFolder,"40b9f24b532374b29dec79c0541b43e2fffc9feafb",()=>o.openShell,"40bb9c2a45d41de0c78ea76f48c10f92884a5ccfb2",()=>B.addRepository,"40bd8f510d8e1649401a50167192ab2986af619ece",()=>t.createApplication,"40c35fbaa75aedc7ebc4ee7e6c3f5426183b102c46",()=>A.unarchiveFeature,"40ce1870834f727e931b1cf59ab354e7e8681e5a6f",()=>i.deployFeature,"40d2e35c3115af12d99ec265235ac234fe3d507793",()=>x.resumeFeature,"40e55c0879b8765841c0ef0e08cbdb2e8b4acd4888",()=>m.getDeploymentStatus,"6018195d0d10db5aaf9e274b10230a249a9d4f96a3",()=>C.deleteRepository,"60fb317496dd3a25d29885828ee97f7cd47105920d",()=>d.updateAgentAndModel,"78921b2703fb4d716a0043589cf819b56dc9dbd32c",()=>w.deleteFeature],23761)}];
2
2
 
3
3
  //# sourceMappingURL=src_presentation_web_36f2bc45._.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/app/actions/open-folder.ts","../../../../../../../src/presentation/web/app/actions/get-workflow-defaults.ts","../../../../../../../src/presentation/web/app/actions/get-viewer-permission.ts","../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/create/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["'use server';\n\nimport { existsSync } from 'node:fs';\nimport { platform } from 'node:os';\nimport { isAbsolute, normalize } from 'node:path';\nimport { spawn } from 'node:child_process';\n\n// Use a record lookup instead of if/else to prevent the bundler from\n// tree-shaking platform branches at build time. Turbopack evaluates\n// os.platform() during the build and dead-code-eliminates unused branches,\n// baking in the CI platform (linux) and breaking macOS/Windows installs.\nconst FOLDER_COMMANDS: Record<string, { cmd: string; args: (path: string) => string[] }> = {\n darwin: { cmd: 'open', args: (p) => [p] },\n linux: { cmd: 'xdg-open', args: (p) => [p] },\n win32: { cmd: 'explorer', args: (p) => [p] },\n};\n\nexport async function openFolder(\n repositoryPath: string\n): Promise<{ success: boolean; error?: string; path?: string }> {\n if (!repositoryPath || !isAbsolute(repositoryPath)) {\n return { success: false, error: 'repositoryPath must be an absolute path' };\n }\n\n try {\n if (!existsSync(repositoryPath)) {\n return { success: false, error: 'Directory not found' };\n }\n\n const entry = FOLDER_COMMANDS[platform()];\n if (!entry) {\n return {\n success: false,\n error: `Unsupported platform: ${platform()}`,\n };\n }\n\n // Normalize to platform-native separators — explorer.exe on Windows\n // does not understand forward-slash paths and falls back to Documents.\n const nativePath = normalize(repositoryPath);\n\n const child = spawn(entry.cmd, entry.args(nativePath), {\n detached: true,\n stdio: 'ignore',\n });\n child.on('error', () => undefined); // Prevent uncaught exception on spawn failure\n child.unref();\n\n return { success: true, path: repositoryPath };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to open folder';\n return { success: false, error: message };\n }\n}\n","'use server';\n\nimport { getSettings } from '@shepai/core/infrastructure/services/settings.service';\n\nexport interface WorkflowDefaults {\n approvalGates: {\n allowPrd: boolean;\n allowPlan: boolean;\n allowMerge: boolean;\n };\n push: boolean;\n openPr: boolean;\n ciWatchEnabled: boolean;\n enableEvidence: boolean;\n commitEvidence: boolean;\n fast: boolean;\n injectSkills: boolean;\n}\n\nexport async function getWorkflowDefaults(): Promise<WorkflowDefaults> {\n const settings = getSettings();\n const { workflow } = settings;\n\n return {\n approvalGates: {\n allowPrd: workflow.approvalGateDefaults.allowPrd,\n allowPlan: workflow.approvalGateDefaults.allowPlan,\n allowMerge: workflow.approvalGateDefaults.allowMerge,\n },\n push: workflow.approvalGateDefaults.pushOnImplementationComplete,\n openPr: workflow.openPrOnImplementationComplete,\n ciWatchEnabled: workflow.ciWatchEnabled,\n enableEvidence: workflow.enableEvidence,\n commitEvidence: workflow.commitEvidence,\n fast: workflow.defaultFastMode,\n injectSkills: workflow.skillInjection?.enabled ?? false,\n };\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { IGitHubRepositoryService } from '@shepai/core/application/ports/output/services/github-repository-service.interface';\n\n/** Permissions that grant direct push access to a repository. */\nconst PUSH_PERMISSIONS = new Set(['ADMIN', 'MAINTAIN', 'WRITE']);\n\nexport async function getViewerPermission(repoPath: string): Promise<{ canPushDirectly: boolean }> {\n try {\n const service = resolve<IGitHubRepositoryService>('IGitHubRepositoryService');\n const permission = await service.getViewerPermission(repoPath);\n return { canPushDirectly: PUSH_PERMISSIONS.has(permission) };\n } catch {\n return { canPushDirectly: false };\n }\n}\n","export {getAllAgentModels as '003d0efbae2ee51b84f36569a3d9855d87e24750d1'} from 'ACTIONS_MODULE0'\nexport {checkAllAgentsStatus as '0023077826973eb66acc97360f2324aa92fc4b7eaf'} from 'ACTIONS_MODULE1'\nexport {updateAgentAndModel as '60ddc5a1721764ad79ab273b52c39232c5e9359107'} from 'ACTIONS_MODULE2'\nexport {pickFolder as '00d659d7355a2b6a5ffc831e27d33aa2b1bbb99816'} from 'ACTIONS_MODULE3'\nexport {listGitHubRepositories as '40192685e178327248c4ee3e7ed433168089f96062'} from 'ACTIONS_MODULE4'\nexport {listGitHubOrganizations as '00bd27b30e6c35aa39ca5fcf0280d5b3379cd1c07e'} from 'ACTIONS_MODULE5'\nexport {importGitHubRepository as '401df75e6c7fb8e097b733abb8797bdfcdccbefb47'} from 'ACTIONS_MODULE6'\nexport {deployFeature as '40cfe9ccf1af62e1123113d5ba522244a957544f28'} from 'ACTIONS_MODULE7'\nexport {deployRepository as '402bf41f2c3cf1b29b445e07ab9a6fe3182e1df2d8'} from 'ACTIONS_MODULE8'\nexport {deployApplication as '40d7b674cc1d8c901818cf7e473218e7a6203fd032'} from 'ACTIONS_MODULE9'\nexport {stopDeployment as '40314c5fc0aabcf152e1d908fe738c3cf40bd70be1'} from 'ACTIONS_MODULE10'\nexport {getDeploymentStatus as '40f88f7c0b3d5aad4185d49a932fc0dce113ec0912'} from 'ACTIONS_MODULE11'\nexport {openIde as '40d9edabf5ce0f2bae3126c6a229398875f507a208'} from 'ACTIONS_MODULE12'\nexport {openShell as '40bd8b1511738071912093ce876b807d0cb12137cd'} from 'ACTIONS_MODULE13'\nexport {openFolder as '40d902df8a5f576b5aa33b645a7dfaf4b4133f67e6'} from 'ACTIONS_MODULE14'\nexport {syncRepository as '400c298d066926bbd45a1cc986940c718482912bf4'} from 'ACTIONS_MODULE15'\nexport {getDeploymentLogs as '406c2354167c1037f06f5228adc94dcd5e877d721e'} from 'ACTIONS_MODULE16'\nexport {createProjectAndFeature as '4046888598d39ae43d75963d3ef3cd4e8016324d4b'} from 'ACTIONS_MODULE17'\nexport {createApplication as '400962487c8ebd3b1f5ded2ca4a60f8a73406f4f3f'} from 'ACTIONS_MODULE18'\nexport {createProjectFolder as '40699d7542c74323d1335bc9d1238c872989b4ff95'} from 'ACTIONS_MODULE19'\nexport {archiveFeature as '40adf0278807286a3192aa91cc969ad4bf34de24f3'} from 'ACTIONS_MODULE20'\nexport {deleteFeature as '788ed56ab07e66ef884d6ce0f77fa46b5034bcfed4'} from 'ACTIONS_MODULE21'\nexport {resumeFeature as '40f7e19e0c90a0828d68efc73ea956f73a3fc08de5'} from 'ACTIONS_MODULE22'\nexport {startFeature as '400c51000c5d6b72e9ea6f8c5b72d2281b3a54694b'} from 'ACTIONS_MODULE23'\nexport {stopFeature as '402abe7793fe396edf2d669c244fd0eeb370125424'} from 'ACTIONS_MODULE24'\nexport {unarchiveFeature as '403a379924950f7ba0c0e57e7c3c960d0624062339'} from 'ACTIONS_MODULE25'\nexport {addRepository as '40003deaddd47ade1409b6d526755b08eb3be80f0d'} from 'ACTIONS_MODULE26'\nexport {deleteRepository as '6066fc7a836c30765dbacbf5d8466865b5aa1f9640'} from 'ACTIONS_MODULE27'\nexport {deleteApplication as '40249dc44ff0bea67ac4b228d968dd1f704ee4b24f'} from 'ACTIONS_MODULE28'\nexport {getFeatureMetadata as '40c7cc76af10154bd904315971383c0c513ef690f6'} from 'ACTIONS_MODULE29'\nexport {getWorkflowDefaults as '00b377cba6c794f2eab4ff78f2016353e723e305c2'} from 'ACTIONS_MODULE30'\nexport {getViewerPermission as '40e94d549a1b2ad0387ebfe8cd8e7d09a8802daa83'} from 'ACTIONS_MODULE31'\nexport {createFeature as '40cfbdcca08cd1c0a38f8655b5cec9e55a665cf783'} from 'ACTIONS_MODULE32'\nexport {getViewerPermission as '40e94d549a1b2ad0387ebfe8cd8e7d09a8802daa83'} from 'ACTIONS_MODULE31'\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../../src/presentation/web/app/actions/open-folder.ts","../../../../../../../src/presentation/web/app/actions/get-workflow-defaults.ts","../../../../../../../src/presentation/web/app/actions/get-viewer-permission.ts","../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/create/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["'use server';\n\nimport { existsSync } from 'node:fs';\nimport { platform } from 'node:os';\nimport { isAbsolute, normalize } from 'node:path';\nimport { spawn } from 'node:child_process';\n\n// Use a record lookup instead of if/else to prevent the bundler from\n// tree-shaking platform branches at build time. Turbopack evaluates\n// os.platform() during the build and dead-code-eliminates unused branches,\n// baking in the CI platform (linux) and breaking macOS/Windows installs.\nconst FOLDER_COMMANDS: Record<string, { cmd: string; args: (path: string) => string[] }> = {\n darwin: { cmd: 'open', args: (p) => [p] },\n linux: { cmd: 'xdg-open', args: (p) => [p] },\n win32: { cmd: 'explorer', args: (p) => [p] },\n};\n\nexport async function openFolder(\n repositoryPath: string\n): Promise<{ success: boolean; error?: string; path?: string }> {\n if (!repositoryPath || !isAbsolute(repositoryPath)) {\n return { success: false, error: 'repositoryPath must be an absolute path' };\n }\n\n try {\n if (!existsSync(repositoryPath)) {\n return { success: false, error: 'Directory not found' };\n }\n\n const entry = FOLDER_COMMANDS[platform()];\n if (!entry) {\n return {\n success: false,\n error: `Unsupported platform: ${platform()}`,\n };\n }\n\n // Normalize to platform-native separators — explorer.exe on Windows\n // does not understand forward-slash paths and falls back to Documents.\n const nativePath = normalize(repositoryPath);\n\n const child = spawn(entry.cmd, entry.args(nativePath), {\n detached: true,\n stdio: 'ignore',\n });\n child.on('error', () => undefined); // Prevent uncaught exception on spawn failure\n child.unref();\n\n return { success: true, path: repositoryPath };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to open folder';\n return { success: false, error: message };\n }\n}\n","'use server';\n\nimport { getSettings } from '@shepai/core/infrastructure/services/settings.service';\n\nexport interface WorkflowDefaults {\n approvalGates: {\n allowPrd: boolean;\n allowPlan: boolean;\n allowMerge: boolean;\n };\n push: boolean;\n openPr: boolean;\n ciWatchEnabled: boolean;\n enableEvidence: boolean;\n commitEvidence: boolean;\n fast: boolean;\n injectSkills: boolean;\n}\n\nexport async function getWorkflowDefaults(): Promise<WorkflowDefaults> {\n const settings = getSettings();\n const { workflow } = settings;\n\n return {\n approvalGates: {\n allowPrd: workflow.approvalGateDefaults.allowPrd,\n allowPlan: workflow.approvalGateDefaults.allowPlan,\n allowMerge: workflow.approvalGateDefaults.allowMerge,\n },\n push: workflow.approvalGateDefaults.pushOnImplementationComplete,\n openPr: workflow.openPrOnImplementationComplete,\n ciWatchEnabled: workflow.ciWatchEnabled,\n enableEvidence: workflow.enableEvidence,\n commitEvidence: workflow.commitEvidence,\n fast: workflow.defaultFastMode,\n injectSkills: workflow.skillInjection?.enabled ?? false,\n };\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { IGitHubRepositoryService } from '@shepai/core/application/ports/output/services/github-repository-service.interface';\n\n/** Permissions that grant direct push access to a repository. */\nconst PUSH_PERMISSIONS = new Set(['ADMIN', 'MAINTAIN', 'WRITE']);\n\nexport async function getViewerPermission(repoPath: string): Promise<{ canPushDirectly: boolean }> {\n try {\n const service = resolve<IGitHubRepositoryService>('IGitHubRepositoryService');\n const permission = await service.getViewerPermission(repoPath);\n return { canPushDirectly: PUSH_PERMISSIONS.has(permission) };\n } catch {\n return { canPushDirectly: false };\n }\n}\n","export {getAllAgentModels as '008509d19dd9a2cfbf9d2341a86901b764b3dc843b'} from 'ACTIONS_MODULE0'\nexport {checkAllAgentsStatus as '00d26e7ff84204c80048090e57fae7733e945583d3'} from 'ACTIONS_MODULE1'\nexport {updateAgentAndModel as '60fb317496dd3a25d29885828ee97f7cd47105920d'} from 'ACTIONS_MODULE2'\nexport {pickFolder as '00aa5fb0355ecf3b43439642183e35b6ec50560084'} from 'ACTIONS_MODULE3'\nexport {listGitHubRepositories as '4095a62107e998ea83afe905499439978bf697fb7d'} from 'ACTIONS_MODULE4'\nexport {listGitHubOrganizations as '00121c94c57d97ec959fb5070295c93770416422e8'} from 'ACTIONS_MODULE5'\nexport {importGitHubRepository as '403dbcc2be173f41862d8862984ef2d0eb34d2b82e'} from 'ACTIONS_MODULE6'\nexport {deployFeature as '40ce1870834f727e931b1cf59ab354e7e8681e5a6f'} from 'ACTIONS_MODULE7'\nexport {deployRepository as '40820278a653c830fe0245011a9d21ba971809c0fe'} from 'ACTIONS_MODULE8'\nexport {deployApplication as '4027e1286916f6f8a0ccf9ecf766f94d49f82483f4'} from 'ACTIONS_MODULE9'\nexport {stopDeployment as '4011ff2cab52aa8731c2ff4a2a21850af05dbd744f'} from 'ACTIONS_MODULE10'\nexport {getDeploymentStatus as '40e55c0879b8765841c0ef0e08cbdb2e8b4acd4888'} from 'ACTIONS_MODULE11'\nexport {openIde as '404a03f8b97ac011757753600df767dd92b9f6bfc6'} from 'ACTIONS_MODULE12'\nexport {openShell as '40b9f24b532374b29dec79c0541b43e2fffc9feafb'} from 'ACTIONS_MODULE13'\nexport {openFolder as '40acae42186eb8fd217d71a72b4945acf22d89ec18'} from 'ACTIONS_MODULE14'\nexport {syncRepository as '40723c9650159ba67a297db1a9aca888d3cc2bca59'} from 'ACTIONS_MODULE15'\nexport {getDeploymentLogs as '402b827b66f4a4690c02f0c2482b9648362444fca3'} from 'ACTIONS_MODULE16'\nexport {createProjectAndFeature as '402f7d3fbeeedeb3bf32eb4455f5c52c6cbe0c9dbc'} from 'ACTIONS_MODULE17'\nexport {createApplication as '40bd8f510d8e1649401a50167192ab2986af619ece'} from 'ACTIONS_MODULE18'\nexport {createProjectFolder as '40afc7125f38f319a56310312639e9772d5b330d7f'} from 'ACTIONS_MODULE19'\nexport {archiveFeature as '4066028d782e66210f353ba5777fc5e47ae5186ad5'} from 'ACTIONS_MODULE20'\nexport {deleteFeature as '78921b2703fb4d716a0043589cf819b56dc9dbd32c'} from 'ACTIONS_MODULE21'\nexport {resumeFeature as '40d2e35c3115af12d99ec265235ac234fe3d507793'} from 'ACTIONS_MODULE22'\nexport {startFeature as '4024fde93e6e2147dcdaa3f185855d20434a4ddf08'} from 'ACTIONS_MODULE23'\nexport {stopFeature as '403d888b0febaea3ca8e976004d7a3930298897064'} from 'ACTIONS_MODULE24'\nexport {unarchiveFeature as '40c35fbaa75aedc7ebc4ee7e6c3f5426183b102c46'} from 'ACTIONS_MODULE25'\nexport {addRepository as '40bb9c2a45d41de0c78ea76f48c10f92884a5ccfb2'} from 'ACTIONS_MODULE26'\nexport {deleteRepository as '6018195d0d10db5aaf9e274b10230a249a9d4f96a3'} from 'ACTIONS_MODULE27'\nexport {deleteApplication as '408345ac0b52fea08ca72b167c801d9b1b71a493b0'} from 'ACTIONS_MODULE28'\nexport {getFeatureMetadata as '4030634e58faa32adb5207cfeeb903a6bd0c77dcf6'} from 'ACTIONS_MODULE29'\nexport {getWorkflowDefaults as '000ceee2fe57ea22361dbef2f4e190f659e96e5228'} from 'ACTIONS_MODULE30'\nexport {getViewerPermission as '406a712ec0184b65e76aa84c1afbc72a461babb331'} from 'ACTIONS_MODULE31'\nexport {createFeature as '40ab6a25d84540327f5a2cc1ce327e5bb05f6aa253'} from 'ACTIONS_MODULE32'\nexport {getViewerPermission as '406a712ec0184b65e76aa84c1afbc72a461babb331'} from 'ACTIONS_MODULE31'\n"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- module.exports=[80496,a=>{"use strict";var b=a.i(92658),c=a.i(2157),d=a.i(60526),e=a.i(50227),f=a.i(74533),g=a.i(12581);let h={darwin:{cmd:"open",args:a=>[a]},linux:{cmd:"xdg-open",args:a=>[a]},win32:{cmd:"explorer",args:a=>[a]}};async function i(a){if(!a||!(0,e.isAbsolute)(a))return{success:!1,error:"repositoryPath must be an absolute path"};try{if(!(0,c.existsSync)(a))return{success:!1,error:"Directory not found"};let b=h[(0,d.platform)()];if(!b)return{success:!1,error:`Unsupported platform: ${(0,d.platform)()}`};let g=(0,e.normalize)(a),i=(0,f.spawn)(b.cmd,b.args(g),{detached:!0,stdio:"ignore"});return i.on("error",()=>void 0),i.unref(),{success:!0,path:a}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to open folder"}}}(0,g.ensureServerEntryExports)([i]),(0,b.registerServerReference)(i,"40d902df8a5f576b5aa33b645a7dfaf4b4133f67e6",null),a.s(["openFolder",()=>i])},6509,a=>{"use strict";var b=a.i(23504),c=a.i(8115),d=a.i(27900),e=a.i(12513),f=a.i(73101),g=a.i(54775),h=a.i(65324),i=a.i(33841),j=a.i(46646),k=a.i(68378),l=a.i(68670),m=a.i(85321),n=a.i(84095),o=a.i(56799),p=a.i(80496),q=a.i(93225),r=a.i(94691),s=a.i(77710),t=a.i(45395),u=a.i(76707),v=a.i(10528),w=a.i(50845),x=a.i(26604),y=a.i(54723),z=a.i(18942),A=a.i(42886),B=a.i(49560),C=a.i(39353),D=a.i(95072),E=a.i(29207);a.s([],9051),a.i(9051),a.s(["0023077826973eb66acc97360f2324aa92fc4b7eaf",()=>c.checkAllAgentsStatus,"003d0efbae2ee51b84f36569a3d9855d87e24750d1",()=>b.getAllAgentModels,"00bd27b30e6c35aa39ca5fcf0280d5b3379cd1c07e",()=>g.listGitHubOrganizations,"00d659d7355a2b6a5ffc831e27d33aa2b1bbb99816",()=>e.pickFolder,"40003deaddd47ade1409b6d526755b08eb3be80f0d",()=>B.addRepository,"400962487c8ebd3b1f5ded2ca4a60f8a73406f4f3f",()=>t.createApplication,"400c298d066926bbd45a1cc986940c718482912bf4",()=>q.syncRepository,"400c51000c5d6b72e9ea6f8c5b72d2281b3a54694b",()=>y.startFeature,"40192685e178327248c4ee3e7ed433168089f96062",()=>f.listGitHubRepositories,"401df75e6c7fb8e097b733abb8797bdfcdccbefb47",()=>h.importGitHubRepository,"40249dc44ff0bea67ac4b228d968dd1f704ee4b24f",()=>D.deleteApplication,"402abe7793fe396edf2d669c244fd0eeb370125424",()=>z.stopFeature,"402bf41f2c3cf1b29b445e07ab9a6fe3182e1df2d8",()=>j.deployRepository,"40314c5fc0aabcf152e1d908fe738c3cf40bd70be1",()=>l.stopDeployment,"403a379924950f7ba0c0e57e7c3c960d0624062339",()=>A.unarchiveFeature,"4046888598d39ae43d75963d3ef3cd4e8016324d4b",()=>s.createProjectAndFeature,"40699d7542c74323d1335bc9d1238c872989b4ff95",()=>u.createProjectFolder,"406c2354167c1037f06f5228adc94dcd5e877d721e",()=>r.getDeploymentLogs,"40adf0278807286a3192aa91cc969ad4bf34de24f3",()=>v.archiveFeature,"40bd8b1511738071912093ce876b807d0cb12137cd",()=>o.openShell,"40c7cc76af10154bd904315971383c0c513ef690f6",()=>E.getFeatureMetadata,"40cfe9ccf1af62e1123113d5ba522244a957544f28",()=>i.deployFeature,"40d7b674cc1d8c901818cf7e473218e7a6203fd032",()=>k.deployApplication,"40d902df8a5f576b5aa33b645a7dfaf4b4133f67e6",()=>p.openFolder,"40d9edabf5ce0f2bae3126c6a229398875f507a208",()=>n.openIde,"40f7e19e0c90a0828d68efc73ea956f73a3fc08de5",()=>x.resumeFeature,"40f88f7c0b3d5aad4185d49a932fc0dce113ec0912",()=>m.getDeploymentStatus,"6066fc7a836c30765dbacbf5d8466865b5aa1f9640",()=>C.deleteRepository,"60ddc5a1721764ad79ab273b52c39232c5e9359107",()=>d.updateAgentAndModel,"788ed56ab07e66ef884d6ce0f77fa46b5034bcfed4",()=>w.deleteFeature],6509)}];
1
+ module.exports=[80496,a=>{"use strict";var b=a.i(92658),c=a.i(2157),d=a.i(60526),e=a.i(50227),f=a.i(74533),g=a.i(12581);let h={darwin:{cmd:"open",args:a=>[a]},linux:{cmd:"xdg-open",args:a=>[a]},win32:{cmd:"explorer",args:a=>[a]}};async function i(a){if(!a||!(0,e.isAbsolute)(a))return{success:!1,error:"repositoryPath must be an absolute path"};try{if(!(0,c.existsSync)(a))return{success:!1,error:"Directory not found"};let b=h[(0,d.platform)()];if(!b)return{success:!1,error:`Unsupported platform: ${(0,d.platform)()}`};let g=(0,e.normalize)(a),i=(0,f.spawn)(b.cmd,b.args(g),{detached:!0,stdio:"ignore"});return i.on("error",()=>void 0),i.unref(),{success:!0,path:a}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to open folder"}}}(0,g.ensureServerEntryExports)([i]),(0,b.registerServerReference)(i,"40acae42186eb8fd217d71a72b4945acf22d89ec18",null),a.s(["openFolder",()=>i])},6509,a=>{"use strict";var b=a.i(23504),c=a.i(8115),d=a.i(27900),e=a.i(12513),f=a.i(73101),g=a.i(54775),h=a.i(65324),i=a.i(33841),j=a.i(46646),k=a.i(68378),l=a.i(68670),m=a.i(85321),n=a.i(84095),o=a.i(56799),p=a.i(80496),q=a.i(93225),r=a.i(94691),s=a.i(77710),t=a.i(45395),u=a.i(76707),v=a.i(10528),w=a.i(50845),x=a.i(26604),y=a.i(54723),z=a.i(18942),A=a.i(42886),B=a.i(49560),C=a.i(39353),D=a.i(95072),E=a.i(29207);a.s([],9051),a.i(9051),a.s(["00121c94c57d97ec959fb5070295c93770416422e8",()=>g.listGitHubOrganizations,"008509d19dd9a2cfbf9d2341a86901b764b3dc843b",()=>b.getAllAgentModels,"00aa5fb0355ecf3b43439642183e35b6ec50560084",()=>e.pickFolder,"00d26e7ff84204c80048090e57fae7733e945583d3",()=>c.checkAllAgentsStatus,"4011ff2cab52aa8731c2ff4a2a21850af05dbd744f",()=>l.stopDeployment,"4024fde93e6e2147dcdaa3f185855d20434a4ddf08",()=>y.startFeature,"4027e1286916f6f8a0ccf9ecf766f94d49f82483f4",()=>k.deployApplication,"402b827b66f4a4690c02f0c2482b9648362444fca3",()=>r.getDeploymentLogs,"402f7d3fbeeedeb3bf32eb4455f5c52c6cbe0c9dbc",()=>s.createProjectAndFeature,"4030634e58faa32adb5207cfeeb903a6bd0c77dcf6",()=>E.getFeatureMetadata,"403d888b0febaea3ca8e976004d7a3930298897064",()=>z.stopFeature,"403dbcc2be173f41862d8862984ef2d0eb34d2b82e",()=>h.importGitHubRepository,"404a03f8b97ac011757753600df767dd92b9f6bfc6",()=>n.openIde,"4066028d782e66210f353ba5777fc5e47ae5186ad5",()=>v.archiveFeature,"40723c9650159ba67a297db1a9aca888d3cc2bca59",()=>q.syncRepository,"40820278a653c830fe0245011a9d21ba971809c0fe",()=>j.deployRepository,"408345ac0b52fea08ca72b167c801d9b1b71a493b0",()=>D.deleteApplication,"4095a62107e998ea83afe905499439978bf697fb7d",()=>f.listGitHubRepositories,"40acae42186eb8fd217d71a72b4945acf22d89ec18",()=>p.openFolder,"40afc7125f38f319a56310312639e9772d5b330d7f",()=>u.createProjectFolder,"40b9f24b532374b29dec79c0541b43e2fffc9feafb",()=>o.openShell,"40bb9c2a45d41de0c78ea76f48c10f92884a5ccfb2",()=>B.addRepository,"40bd8f510d8e1649401a50167192ab2986af619ece",()=>t.createApplication,"40c35fbaa75aedc7ebc4ee7e6c3f5426183b102c46",()=>A.unarchiveFeature,"40ce1870834f727e931b1cf59ab354e7e8681e5a6f",()=>i.deployFeature,"40d2e35c3115af12d99ec265235ac234fe3d507793",()=>x.resumeFeature,"40e55c0879b8765841c0ef0e08cbdb2e8b4acd4888",()=>m.getDeploymentStatus,"6018195d0d10db5aaf9e274b10230a249a9d4f96a3",()=>C.deleteRepository,"60fb317496dd3a25d29885828ee97f7cd47105920d",()=>d.updateAgentAndModel,"78921b2703fb4d716a0043589cf819b56dc9dbd32c",()=>w.deleteFeature],6509)}];
2
2
 
3
3
  //# sourceMappingURL=src_presentation_web_486908de._.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/app/actions/open-folder.ts","../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/chat/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["'use server';\n\nimport { existsSync } from 'node:fs';\nimport { platform } from 'node:os';\nimport { isAbsolute, normalize } from 'node:path';\nimport { spawn } from 'node:child_process';\n\n// Use a record lookup instead of if/else to prevent the bundler from\n// tree-shaking platform branches at build time. Turbopack evaluates\n// os.platform() during the build and dead-code-eliminates unused branches,\n// baking in the CI platform (linux) and breaking macOS/Windows installs.\nconst FOLDER_COMMANDS: Record<string, { cmd: string; args: (path: string) => string[] }> = {\n darwin: { cmd: 'open', args: (p) => [p] },\n linux: { cmd: 'xdg-open', args: (p) => [p] },\n win32: { cmd: 'explorer', args: (p) => [p] },\n};\n\nexport async function openFolder(\n repositoryPath: string\n): Promise<{ success: boolean; error?: string; path?: string }> {\n if (!repositoryPath || !isAbsolute(repositoryPath)) {\n return { success: false, error: 'repositoryPath must be an absolute path' };\n }\n\n try {\n if (!existsSync(repositoryPath)) {\n return { success: false, error: 'Directory not found' };\n }\n\n const entry = FOLDER_COMMANDS[platform()];\n if (!entry) {\n return {\n success: false,\n error: `Unsupported platform: ${platform()}`,\n };\n }\n\n // Normalize to platform-native separators — explorer.exe on Windows\n // does not understand forward-slash paths and falls back to Documents.\n const nativePath = normalize(repositoryPath);\n\n const child = spawn(entry.cmd, entry.args(nativePath), {\n detached: true,\n stdio: 'ignore',\n });\n child.on('error', () => undefined); // Prevent uncaught exception on spawn failure\n child.unref();\n\n return { success: true, path: repositoryPath };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to open folder';\n return { success: false, error: message };\n }\n}\n","export {getAllAgentModels as '003d0efbae2ee51b84f36569a3d9855d87e24750d1'} from 'ACTIONS_MODULE0'\nexport {checkAllAgentsStatus as '0023077826973eb66acc97360f2324aa92fc4b7eaf'} from 'ACTIONS_MODULE1'\nexport {updateAgentAndModel as '60ddc5a1721764ad79ab273b52c39232c5e9359107'} from 'ACTIONS_MODULE2'\nexport {pickFolder as '00d659d7355a2b6a5ffc831e27d33aa2b1bbb99816'} from 'ACTIONS_MODULE3'\nexport {listGitHubRepositories as '40192685e178327248c4ee3e7ed433168089f96062'} from 'ACTIONS_MODULE4'\nexport {listGitHubOrganizations as '00bd27b30e6c35aa39ca5fcf0280d5b3379cd1c07e'} from 'ACTIONS_MODULE5'\nexport {importGitHubRepository as '401df75e6c7fb8e097b733abb8797bdfcdccbefb47'} from 'ACTIONS_MODULE6'\nexport {deployFeature as '40cfe9ccf1af62e1123113d5ba522244a957544f28'} from 'ACTIONS_MODULE7'\nexport {deployRepository as '402bf41f2c3cf1b29b445e07ab9a6fe3182e1df2d8'} from 'ACTIONS_MODULE8'\nexport {deployApplication as '40d7b674cc1d8c901818cf7e473218e7a6203fd032'} from 'ACTIONS_MODULE9'\nexport {stopDeployment as '40314c5fc0aabcf152e1d908fe738c3cf40bd70be1'} from 'ACTIONS_MODULE10'\nexport {getDeploymentStatus as '40f88f7c0b3d5aad4185d49a932fc0dce113ec0912'} from 'ACTIONS_MODULE11'\nexport {openIde as '40d9edabf5ce0f2bae3126c6a229398875f507a208'} from 'ACTIONS_MODULE12'\nexport {openShell as '40bd8b1511738071912093ce876b807d0cb12137cd'} from 'ACTIONS_MODULE13'\nexport {openFolder as '40d902df8a5f576b5aa33b645a7dfaf4b4133f67e6'} from 'ACTIONS_MODULE14'\nexport {syncRepository as '400c298d066926bbd45a1cc986940c718482912bf4'} from 'ACTIONS_MODULE15'\nexport {getDeploymentLogs as '406c2354167c1037f06f5228adc94dcd5e877d721e'} from 'ACTIONS_MODULE16'\nexport {createProjectAndFeature as '4046888598d39ae43d75963d3ef3cd4e8016324d4b'} from 'ACTIONS_MODULE17'\nexport {createApplication as '400962487c8ebd3b1f5ded2ca4a60f8a73406f4f3f'} from 'ACTIONS_MODULE18'\nexport {createProjectFolder as '40699d7542c74323d1335bc9d1238c872989b4ff95'} from 'ACTIONS_MODULE19'\nexport {archiveFeature as '40adf0278807286a3192aa91cc969ad4bf34de24f3'} from 'ACTIONS_MODULE20'\nexport {deleteFeature as '788ed56ab07e66ef884d6ce0f77fa46b5034bcfed4'} from 'ACTIONS_MODULE21'\nexport {resumeFeature as '40f7e19e0c90a0828d68efc73ea956f73a3fc08de5'} from 'ACTIONS_MODULE22'\nexport {startFeature as '400c51000c5d6b72e9ea6f8c5b72d2281b3a54694b'} from 'ACTIONS_MODULE23'\nexport {stopFeature as '402abe7793fe396edf2d669c244fd0eeb370125424'} from 'ACTIONS_MODULE24'\nexport {unarchiveFeature as '403a379924950f7ba0c0e57e7c3c960d0624062339'} from 'ACTIONS_MODULE25'\nexport {addRepository as '40003deaddd47ade1409b6d526755b08eb3be80f0d'} from 'ACTIONS_MODULE26'\nexport {deleteRepository as '6066fc7a836c30765dbacbf5d8466865b5aa1f9640'} from 'ACTIONS_MODULE27'\nexport {deleteApplication as '40249dc44ff0bea67ac4b228d968dd1f704ee4b24f'} from 'ACTIONS_MODULE28'\nexport {getFeatureMetadata as '40c7cc76af10154bd904315971383c0c513ef690f6'} from 'ACTIONS_MODULE29'\n"],"names":[],"mappings":"wDAEA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,oBAMA,IAAM,EAAqF,CACzF,OAAQ,CAAE,IAAK,OAAQ,KAAM,AAAC,GAAM,CAAC,EAAE,AAAC,EACxC,MAAO,CAAE,IAAK,WAAY,KAAM,AAAC,GAAM,CAAC,EAAE,AAAC,EAC3C,MAAO,CAAE,IAAK,WAAY,KAAM,AAAC,GAAM,CAAC,EAAE,AAAC,CAC7C,EAEO,eAAe,EACpB,CAAsB,EAEtB,GAAI,CAAC,GAAkB,CAAC,CAAA,EAAA,EAAA,UAAA,AAAU,EAAC,GACjC,MAAO,CAAE,OADyC,EAChC,EAAO,MAAO,yCAA0C,EAG5E,GAAI,CACF,GAAI,CAAC,CAAA,EAAA,EAAA,UAAA,AAAU,EAAC,GACd,MAAO,CAAE,OADsB,EACb,EAAO,MAAO,qBAAsB,EAGxD,IAAM,EAAQ,CAAe,CAAC,CAAA,EAAA,EAAA,QAAA,AAAQ,IAAG,CACzC,GAAI,CAAC,EACH,KADU,CACH,CACL,SAAS,EACT,MAAO,CAAC,sBAAsB,EAAE,CAAA,EAAA,EAAA,QAAA,AAAQ,IAAA,CAAI,AAC9C,EAKF,IAAM,EAAa,CAAA,EAAA,EAAA,SAAA,AAAS,EAAC,GAEvB,EAAQ,CAAA,EAAA,EAAA,KAAA,AAAK,EAAC,EAAM,GAAG,CAAE,EAAM,IAAI,CAAC,GAAa,CACrD,UAAU,EACV,MAAO,QACT,GAIA,OAHA,EAAM,EAAE,CAAC,QAAS,IAAM,QACxB,EAAM,EAD8B,GACzB,GAEJ,CAAE,SAAS,EAAM,KAAM,CAAe,CAC/C,CAAE,MAAO,EAAgB,CAEvB,MAAO,CAAE,IANyE,IAMhE,GAAO,MADT,CACgB,YADC,MAAQ,EAAM,OAAO,CAAG,uBACjB,CAC1C,CACF,iCApCsB,IAAA,CAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,6CAAA,uDCjBtB,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,MACA,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,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,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
+ {"version":3,"sources":["../../../../../../../src/presentation/web/app/actions/open-folder.ts","../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/chat/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["'use server';\n\nimport { existsSync } from 'node:fs';\nimport { platform } from 'node:os';\nimport { isAbsolute, normalize } from 'node:path';\nimport { spawn } from 'node:child_process';\n\n// Use a record lookup instead of if/else to prevent the bundler from\n// tree-shaking platform branches at build time. Turbopack evaluates\n// os.platform() during the build and dead-code-eliminates unused branches,\n// baking in the CI platform (linux) and breaking macOS/Windows installs.\nconst FOLDER_COMMANDS: Record<string, { cmd: string; args: (path: string) => string[] }> = {\n darwin: { cmd: 'open', args: (p) => [p] },\n linux: { cmd: 'xdg-open', args: (p) => [p] },\n win32: { cmd: 'explorer', args: (p) => [p] },\n};\n\nexport async function openFolder(\n repositoryPath: string\n): Promise<{ success: boolean; error?: string; path?: string }> {\n if (!repositoryPath || !isAbsolute(repositoryPath)) {\n return { success: false, error: 'repositoryPath must be an absolute path' };\n }\n\n try {\n if (!existsSync(repositoryPath)) {\n return { success: false, error: 'Directory not found' };\n }\n\n const entry = FOLDER_COMMANDS[platform()];\n if (!entry) {\n return {\n success: false,\n error: `Unsupported platform: ${platform()}`,\n };\n }\n\n // Normalize to platform-native separators — explorer.exe on Windows\n // does not understand forward-slash paths and falls back to Documents.\n const nativePath = normalize(repositoryPath);\n\n const child = spawn(entry.cmd, entry.args(nativePath), {\n detached: true,\n stdio: 'ignore',\n });\n child.on('error', () => undefined); // Prevent uncaught exception on spawn failure\n child.unref();\n\n return { success: true, path: repositoryPath };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to open folder';\n return { success: false, error: message };\n }\n}\n","export {getAllAgentModels as '008509d19dd9a2cfbf9d2341a86901b764b3dc843b'} from 'ACTIONS_MODULE0'\nexport {checkAllAgentsStatus as '00d26e7ff84204c80048090e57fae7733e945583d3'} from 'ACTIONS_MODULE1'\nexport {updateAgentAndModel as '60fb317496dd3a25d29885828ee97f7cd47105920d'} from 'ACTIONS_MODULE2'\nexport {pickFolder as '00aa5fb0355ecf3b43439642183e35b6ec50560084'} from 'ACTIONS_MODULE3'\nexport {listGitHubRepositories as '4095a62107e998ea83afe905499439978bf697fb7d'} from 'ACTIONS_MODULE4'\nexport {listGitHubOrganizations as '00121c94c57d97ec959fb5070295c93770416422e8'} from 'ACTIONS_MODULE5'\nexport {importGitHubRepository as '403dbcc2be173f41862d8862984ef2d0eb34d2b82e'} from 'ACTIONS_MODULE6'\nexport {deployFeature as '40ce1870834f727e931b1cf59ab354e7e8681e5a6f'} from 'ACTIONS_MODULE7'\nexport {deployRepository as '40820278a653c830fe0245011a9d21ba971809c0fe'} from 'ACTIONS_MODULE8'\nexport {deployApplication as '4027e1286916f6f8a0ccf9ecf766f94d49f82483f4'} from 'ACTIONS_MODULE9'\nexport {stopDeployment as '4011ff2cab52aa8731c2ff4a2a21850af05dbd744f'} from 'ACTIONS_MODULE10'\nexport {getDeploymentStatus as '40e55c0879b8765841c0ef0e08cbdb2e8b4acd4888'} from 'ACTIONS_MODULE11'\nexport {openIde as '404a03f8b97ac011757753600df767dd92b9f6bfc6'} from 'ACTIONS_MODULE12'\nexport {openShell as '40b9f24b532374b29dec79c0541b43e2fffc9feafb'} from 'ACTIONS_MODULE13'\nexport {openFolder as '40acae42186eb8fd217d71a72b4945acf22d89ec18'} from 'ACTIONS_MODULE14'\nexport {syncRepository as '40723c9650159ba67a297db1a9aca888d3cc2bca59'} from 'ACTIONS_MODULE15'\nexport {getDeploymentLogs as '402b827b66f4a4690c02f0c2482b9648362444fca3'} from 'ACTIONS_MODULE16'\nexport {createProjectAndFeature as '402f7d3fbeeedeb3bf32eb4455f5c52c6cbe0c9dbc'} from 'ACTIONS_MODULE17'\nexport {createApplication as '40bd8f510d8e1649401a50167192ab2986af619ece'} from 'ACTIONS_MODULE18'\nexport {createProjectFolder as '40afc7125f38f319a56310312639e9772d5b330d7f'} from 'ACTIONS_MODULE19'\nexport {archiveFeature as '4066028d782e66210f353ba5777fc5e47ae5186ad5'} from 'ACTIONS_MODULE20'\nexport {deleteFeature as '78921b2703fb4d716a0043589cf819b56dc9dbd32c'} from 'ACTIONS_MODULE21'\nexport {resumeFeature as '40d2e35c3115af12d99ec265235ac234fe3d507793'} from 'ACTIONS_MODULE22'\nexport {startFeature as '4024fde93e6e2147dcdaa3f185855d20434a4ddf08'} from 'ACTIONS_MODULE23'\nexport {stopFeature as '403d888b0febaea3ca8e976004d7a3930298897064'} from 'ACTIONS_MODULE24'\nexport {unarchiveFeature as '40c35fbaa75aedc7ebc4ee7e6c3f5426183b102c46'} from 'ACTIONS_MODULE25'\nexport {addRepository as '40bb9c2a45d41de0c78ea76f48c10f92884a5ccfb2'} from 'ACTIONS_MODULE26'\nexport {deleteRepository as '6018195d0d10db5aaf9e274b10230a249a9d4f96a3'} from 'ACTIONS_MODULE27'\nexport {deleteApplication as '408345ac0b52fea08ca72b167c801d9b1b71a493b0'} from 'ACTIONS_MODULE28'\nexport {getFeatureMetadata as '4030634e58faa32adb5207cfeeb903a6bd0c77dcf6'} from 'ACTIONS_MODULE29'\n"],"names":[],"mappings":"wDAEA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,oBAMA,IAAM,EAAqF,CACzF,OAAQ,CAAE,IAAK,OAAQ,KAAM,AAAC,GAAM,CAAC,EAAE,AAAC,EACxC,MAAO,CAAE,IAAK,WAAY,KAAM,AAAC,GAAM,CAAC,EAAE,AAAC,EAC3C,MAAO,CAAE,IAAK,WAAY,KAAM,AAAC,GAAM,CAAC,EAAE,AAAC,CAC7C,EAEO,eAAe,EACpB,CAAsB,EAEtB,GAAI,CAAC,GAAkB,CAAC,CAAA,EAAA,EAAA,UAAA,AAAU,EAAC,GACjC,MAAO,CAAE,OADyC,EAChC,EAAO,MAAO,yCAA0C,EAG5E,GAAI,CACF,GAAI,CAAC,CAAA,EAAA,EAAA,UAAA,AAAU,EAAC,GACd,MAAO,CAAE,OADsB,EACb,EAAO,MAAO,qBAAsB,EAGxD,IAAM,EAAQ,CAAe,CAAC,CAAA,EAAA,EAAA,QAAA,AAAQ,IAAG,CACzC,GAAI,CAAC,EACH,KADU,CACH,CACL,SAAS,EACT,MAAO,CAAC,sBAAsB,EAAE,CAAA,EAAA,EAAA,QAAA,AAAQ,IAAA,CAAI,AAC9C,EAKF,IAAM,EAAa,CAAA,EAAA,EAAA,SAAA,AAAS,EAAC,GAEvB,EAAQ,CAAA,EAAA,EAAA,KAAA,AAAK,EAAC,EAAM,GAAG,CAAE,EAAM,IAAI,CAAC,GAAa,CACrD,UAAU,EACV,MAAO,QACT,GAIA,OAHA,EAAM,EAAE,CAAC,QAAS,IAAM,QACxB,EAAM,EAD8B,GACzB,GAEJ,CAAE,SAAS,EAAM,KAAM,CAAe,CAC/C,CAAE,MAAO,EAAgB,CAEvB,MAAO,CAAE,IANyE,IAMhE,GAAO,MADT,CACgB,YADC,MAAQ,EAAM,OAAO,CAAG,uBACjB,CAC1C,CACF,iCApCsB,IAAA,CAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,6CAAA,uDCjBtB,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,MACA,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,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,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 +1,3 @@
1
- module.exports=[80496,a=>{"use strict";var b=a.i(92658),c=a.i(2157),d=a.i(60526),e=a.i(50227),f=a.i(74533),g=a.i(12581);let h={darwin:{cmd:"open",args:a=>[a]},linux:{cmd:"xdg-open",args:a=>[a]},win32:{cmd:"explorer",args:a=>[a]}};async function i(a){if(!a||!(0,e.isAbsolute)(a))return{success:!1,error:"repositoryPath must be an absolute path"};try{if(!(0,c.existsSync)(a))return{success:!1,error:"Directory not found"};let b=h[(0,d.platform)()];if(!b)return{success:!1,error:`Unsupported platform: ${(0,d.platform)()}`};let g=(0,e.normalize)(a),i=(0,f.spawn)(b.cmd,b.args(g),{detached:!0,stdio:"ignore"});return i.on("error",()=>void 0),i.unref(),{success:!0,path:a}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to open folder"}}}(0,g.ensureServerEntryExports)([i]),(0,b.registerServerReference)(i,"40d902df8a5f576b5aa33b645a7dfaf4b4133f67e6",null),a.s(["openFolder",()=>i])},35556,a=>{"use strict";var b=a.i(92658),c=a.i(74533),d=a.i(12057),e=a.i(12581);let f=(0,d.promisify)(c.execFile);async function g(a,b){let{stdout:c}=await f("git",b,{cwd:a,timeout:5e3});return c.trim()}async function h(a,b=8){if(!a.trim())return{commits:[],branches:[],remotes:[],tags:[],stashCount:0,currentBranch:"",diffStats:null,workingTree:{staged:0,modified:0,untracked:0},error:"Repository path is required"};let c=await Promise.allSettled([g(a,["log",`--max-count=${b}`,"--format=%H%x00%h%x00%s%x00%an%x00%cr","--no-color"]),g(a,["branch","--show-current"]),g(a,["branch","--sort=-committerdate","--format=%(HEAD)%(refname:short)%00%(committerdate:relative)","--no-color"]),g(a,["remote","-v"]),g(a,["tag","--sort=-creatordate","-l","--format=%(refname:short)"]),g(a,["stash","list"]),g(a,["status","--porcelain"]),g(a,["diff","HEAD","--shortstat"])]),d=a=>"fulfilled"===c[a].status?c[a].value:"",e=d(0).split("\n").filter(Boolean).map(a=>{let[b,c,d,e,f]=a.split("\0");return{hash:b,shortHash:c,subject:d,author:e,relativeDate:f}}),f=d(1);e.length>0&&f&&(e[0].branch=f);let i=d(2).split("\n").filter(Boolean).slice(0,10).map(a=>{let b=a.startsWith("*"),[c,d]=(b?a.slice(1):a).split("\0");return{name:c.trim(),isCurrent:b,lastCommitDate:d?.trim()??""}}),j=new Map;d(3).split("\n").filter(Boolean).forEach(a=>{let b=a.match(/^(\S+)\s+(\S+)\s+\(fetch\)/);if(b){let a=b[2].replace(/\/\/[^@]+@/,"//").replace(/x-access-token:[^@]+@/,"");j.set(b[1],a)}});let k=Array.from(j,([a,b])=>({name:a,url:b})),l=d(4).split("\n").filter(Boolean).slice(0,5),m=d(5).split("\n").filter(Boolean).length,n=d(6).split("\n").filter(Boolean),o={staged:0,modified:0,untracked:0};for(let a of n){let b=a[0],c=a[1];"?"===b&&"?"===c?o.untracked++:" "!==b&&"?"!==b&&o.staged++," "!==c&&"?"!==c&&o.modified++}let p=null,q=d(7);if(q){let a=q.match(/(\d+) file/),b=q.match(/(\d+) insertion/),c=q.match(/(\d+) deletion/);p={filesChanged:a?parseInt(a[1],10):0,insertions:b?parseInt(b[1],10):0,deletions:c?parseInt(c[1],10):0}}return{commits:e,branches:i,remotes:k,tags:l,stashCount:m,currentBranch:f,diffStats:p,workingTree:o}}async function i(a,b=10){let c=await h(a,b);return{entries:c.commits,error:c.error}}(0,e.ensureServerEntryExports)([h,i]),(0,b.registerServerReference)(h,"60f8fa91b2f014c10674fdbd70076519c6a7792419",null),(0,b.registerServerReference)(i,"609edca2a8e02fd199c69957ffe78ff8222d343332",null),a.s(["getGitRepoInfo",()=>h])},12358,a=>{"use strict";var b=a.i(23504),c=a.i(8115),d=a.i(27900),e=a.i(12513),f=a.i(73101),g=a.i(54775),h=a.i(65324),i=a.i(33841),j=a.i(46646),k=a.i(68378),l=a.i(68670),m=a.i(85321),n=a.i(84095),o=a.i(56799),p=a.i(80496),q=a.i(93225),r=a.i(94691),s=a.i(77710),t=a.i(45395),u=a.i(76707),v=a.i(10528),w=a.i(50845),x=a.i(26604),y=a.i(54723),z=a.i(18942),A=a.i(42886),B=a.i(49560),C=a.i(39353),D=a.i(95072),E=a.i(29207),F=a.i(35556);a.s([],6524),a.i(6524),a.s(["0023077826973eb66acc97360f2324aa92fc4b7eaf",()=>c.checkAllAgentsStatus,"003d0efbae2ee51b84f36569a3d9855d87e24750d1",()=>b.getAllAgentModels,"00bd27b30e6c35aa39ca5fcf0280d5b3379cd1c07e",()=>g.listGitHubOrganizations,"00d659d7355a2b6a5ffc831e27d33aa2b1bbb99816",()=>e.pickFolder,"40003deaddd47ade1409b6d526755b08eb3be80f0d",()=>B.addRepository,"400962487c8ebd3b1f5ded2ca4a60f8a73406f4f3f",()=>t.createApplication,"400c298d066926bbd45a1cc986940c718482912bf4",()=>q.syncRepository,"400c51000c5d6b72e9ea6f8c5b72d2281b3a54694b",()=>y.startFeature,"40192685e178327248c4ee3e7ed433168089f96062",()=>f.listGitHubRepositories,"401df75e6c7fb8e097b733abb8797bdfcdccbefb47",()=>h.importGitHubRepository,"40249dc44ff0bea67ac4b228d968dd1f704ee4b24f",()=>D.deleteApplication,"402abe7793fe396edf2d669c244fd0eeb370125424",()=>z.stopFeature,"402bf41f2c3cf1b29b445e07ab9a6fe3182e1df2d8",()=>j.deployRepository,"40314c5fc0aabcf152e1d908fe738c3cf40bd70be1",()=>l.stopDeployment,"403a379924950f7ba0c0e57e7c3c960d0624062339",()=>A.unarchiveFeature,"4046888598d39ae43d75963d3ef3cd4e8016324d4b",()=>s.createProjectAndFeature,"40699d7542c74323d1335bc9d1238c872989b4ff95",()=>u.createProjectFolder,"406c2354167c1037f06f5228adc94dcd5e877d721e",()=>r.getDeploymentLogs,"40adf0278807286a3192aa91cc969ad4bf34de24f3",()=>v.archiveFeature,"40bd8b1511738071912093ce876b807d0cb12137cd",()=>o.openShell,"40c7cc76af10154bd904315971383c0c513ef690f6",()=>E.getFeatureMetadata,"40cfe9ccf1af62e1123113d5ba522244a957544f28",()=>i.deployFeature,"40d7b674cc1d8c901818cf7e473218e7a6203fd032",()=>k.deployApplication,"40d902df8a5f576b5aa33b645a7dfaf4b4133f67e6",()=>p.openFolder,"40d9edabf5ce0f2bae3126c6a229398875f507a208",()=>n.openIde,"40f7e19e0c90a0828d68efc73ea956f73a3fc08de5",()=>x.resumeFeature,"40f88f7c0b3d5aad4185d49a932fc0dce113ec0912",()=>m.getDeploymentStatus,"6066fc7a836c30765dbacbf5d8466865b5aa1f9640",()=>C.deleteRepository,"60ddc5a1721764ad79ab273b52c39232c5e9359107",()=>d.updateAgentAndModel,"60f8fa91b2f014c10674fdbd70076519c6a7792419",()=>F.getGitRepoInfo,"788ed56ab07e66ef884d6ce0f77fa46b5034bcfed4",()=>w.deleteFeature],12358)}];
1
+ module.exports=[80496,a=>{"use strict";var b=a.i(92658),c=a.i(2157),d=a.i(60526),e=a.i(50227),f=a.i(74533),g=a.i(12581);let h={darwin:{cmd:"open",args:a=>[a]},linux:{cmd:"xdg-open",args:a=>[a]},win32:{cmd:"explorer",args:a=>[a]}};async function i(a){if(!a||!(0,e.isAbsolute)(a))return{success:!1,error:"repositoryPath must be an absolute path"};try{if(!(0,c.existsSync)(a))return{success:!1,error:"Directory not found"};let b=h[(0,d.platform)()];if(!b)return{success:!1,error:`Unsupported platform: ${(0,d.platform)()}`};let g=(0,e.normalize)(a),i=(0,f.spawn)(b.cmd,b.args(g),{detached:!0,stdio:"ignore"});return i.on("error",()=>void 0),i.unref(),{success:!0,path:a}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to open folder"}}}(0,g.ensureServerEntryExports)([i]),(0,b.registerServerReference)(i,"40acae42186eb8fd217d71a72b4945acf22d89ec18",null),a.s(["openFolder",()=>i])},35556,a=>{"use strict";var b=a.i(92658),c=a.i(74533),d=a.i(12057),e=a.i(12581);let f=(0,d.promisify)(c.execFile);async function g(a,b){let{stdout:c}=await f("git",b,{cwd:a,timeout:5e3});return c.trim()}async function h(a,b=8){if(!a.trim())return{commits:[],branches:[],remotes:[],tags:[],stashCount:0,currentBranch:"",diffStats:null,workingTree:{staged:0,modified:0,untracked:0},error:"Repository path is required"};let c=await Promise.allSettled([g(a,["log",`--max-count=${b}`,"--format=%H%x00%h%x00%s%x00%an%x00%cr","--no-color"]),g(a,["branch","--show-current"]),g(a,["branch","--sort=-committerdate","--format=%(HEAD)%(refname:short)%00%(committerdate:relative)","--no-color"]),g(a,["remote","-v"]),g(a,["tag","--sort=-creatordate","-l","--format=%(refname:short)"]),g(a,["stash","list"]),g(a,["status","--porcelain"]),g(a,["diff","HEAD","--shortstat"])]),d=a=>"fulfilled"===c[a].status?c[a].value:"",e=d(0).split("\n").filter(Boolean).map(a=>{let[b,c,d,e,f]=a.split("\0");return{hash:b,shortHash:c,subject:d,author:e,relativeDate:f}}),f=d(1);e.length>0&&f&&(e[0].branch=f);let i=d(2).split("\n").filter(Boolean).slice(0,10).map(a=>{let b=a.startsWith("*"),[c,d]=(b?a.slice(1):a).split("\0");return{name:c.trim(),isCurrent:b,lastCommitDate:d?.trim()??""}}),j=new Map;d(3).split("\n").filter(Boolean).forEach(a=>{let b=a.match(/^(\S+)\s+(\S+)\s+\(fetch\)/);if(b){let a=b[2].replace(/\/\/[^@]+@/,"//").replace(/x-access-token:[^@]+@/,"");j.set(b[1],a)}});let k=Array.from(j,([a,b])=>({name:a,url:b})),l=d(4).split("\n").filter(Boolean).slice(0,5),m=d(5).split("\n").filter(Boolean).length,n=d(6).split("\n").filter(Boolean),o={staged:0,modified:0,untracked:0};for(let a of n){let b=a[0],c=a[1];"?"===b&&"?"===c?o.untracked++:" "!==b&&"?"!==b&&o.staged++," "!==c&&"?"!==c&&o.modified++}let p=null,q=d(7);if(q){let a=q.match(/(\d+) file/),b=q.match(/(\d+) insertion/),c=q.match(/(\d+) deletion/);p={filesChanged:a?parseInt(a[1],10):0,insertions:b?parseInt(b[1],10):0,deletions:c?parseInt(c[1],10):0}}return{commits:e,branches:i,remotes:k,tags:l,stashCount:m,currentBranch:f,diffStats:p,workingTree:o}}async function i(a,b=10){let c=await h(a,b);return{entries:c.commits,error:c.error}}(0,e.ensureServerEntryExports)([h,i]),(0,b.registerServerReference)(h,"60996b3f1c4e8a5548f23b90cd8dc9699756654c1d",null),(0,b.registerServerReference)(i,"601bb3650a4ed3a15840a1d0fbd517828b7a9ce2ca",null),a.s(["getGitRepoInfo",()=>h])},12358,a=>{"use strict";var b=a.i(23504),c=a.i(8115),d=a.i(27900),e=a.i(12513),f=a.i(73101),g=a.i(54775),h=a.i(65324),i=a.i(33841),j=a.i(46646),k=a.i(68378),l=a.i(68670),m=a.i(85321),n=a.i(84095),o=a.i(56799),p=a.i(80496),q=a.i(93225),r=a.i(94691),s=a.i(77710),t=a.i(45395),u=a.i(76707),v=a.i(10528),w=a.i(50845),x=a.i(26604),y=a.i(54723),z=a.i(18942),A=a.i(42886),B=a.i(49560),C=a.i(39353),D=a.i(95072),E=a.i(29207),F=a.i(35556);a.s([],6524),a.i(6524),a.s(["00121c94c57d97ec959fb5070295c93770416422e8",()=>g.listGitHubOrganizations,"008509d19dd9a2cfbf9d2341a86901b764b3dc843b",()=>b.getAllAgentModels,"00aa5fb0355ecf3b43439642183e35b6ec50560084",()=>e.pickFolder,"00d26e7ff84204c80048090e57fae7733e945583d3",()=>c.checkAllAgentsStatus,"4011ff2cab52aa8731c2ff4a2a21850af05dbd744f",()=>l.stopDeployment,"4024fde93e6e2147dcdaa3f185855d20434a4ddf08",()=>y.startFeature,"4027e1286916f6f8a0ccf9ecf766f94d49f82483f4",()=>k.deployApplication,"402b827b66f4a4690c02f0c2482b9648362444fca3",()=>r.getDeploymentLogs,"402f7d3fbeeedeb3bf32eb4455f5c52c6cbe0c9dbc",()=>s.createProjectAndFeature,"4030634e58faa32adb5207cfeeb903a6bd0c77dcf6",()=>E.getFeatureMetadata,"403d888b0febaea3ca8e976004d7a3930298897064",()=>z.stopFeature,"403dbcc2be173f41862d8862984ef2d0eb34d2b82e",()=>h.importGitHubRepository,"404a03f8b97ac011757753600df767dd92b9f6bfc6",()=>n.openIde,"4066028d782e66210f353ba5777fc5e47ae5186ad5",()=>v.archiveFeature,"40723c9650159ba67a297db1a9aca888d3cc2bca59",()=>q.syncRepository,"40820278a653c830fe0245011a9d21ba971809c0fe",()=>j.deployRepository,"408345ac0b52fea08ca72b167c801d9b1b71a493b0",()=>D.deleteApplication,"4095a62107e998ea83afe905499439978bf697fb7d",()=>f.listGitHubRepositories,"40acae42186eb8fd217d71a72b4945acf22d89ec18",()=>p.openFolder,"40afc7125f38f319a56310312639e9772d5b330d7f",()=>u.createProjectFolder,"40b9f24b532374b29dec79c0541b43e2fffc9feafb",()=>o.openShell,"40bb9c2a45d41de0c78ea76f48c10f92884a5ccfb2",()=>B.addRepository,"40bd8f510d8e1649401a50167192ab2986af619ece",()=>t.createApplication,"40c35fbaa75aedc7ebc4ee7e6c3f5426183b102c46",()=>A.unarchiveFeature,"40ce1870834f727e931b1cf59ab354e7e8681e5a6f",()=>i.deployFeature,"40d2e35c3115af12d99ec265235ac234fe3d507793",()=>x.resumeFeature,"40e55c0879b8765841c0ef0e08cbdb2e8b4acd4888",()=>m.getDeploymentStatus,"6018195d0d10db5aaf9e274b10230a249a9d4f96a3",()=>C.deleteRepository,"60996b3f1c4e8a5548f23b90cd8dc9699756654c1d",()=>F.getGitRepoInfo,"60fb317496dd3a25d29885828ee97f7cd47105920d",()=>d.updateAgentAndModel,"78921b2703fb4d716a0043589cf819b56dc9dbd32c",()=>w.deleteFeature],12358)}];
2
2
 
3
3
  //# sourceMappingURL=src_presentation_web_5c3596bc._.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/app/actions/open-folder.ts","../../../../../../../src/presentation/web/app/actions/get-git-log.ts","../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/repository/%5BrepositoryId%5D/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["'use server';\n\nimport { existsSync } from 'node:fs';\nimport { platform } from 'node:os';\nimport { isAbsolute, normalize } from 'node:path';\nimport { spawn } from 'node:child_process';\n\n// Use a record lookup instead of if/else to prevent the bundler from\n// tree-shaking platform branches at build time. Turbopack evaluates\n// os.platform() during the build and dead-code-eliminates unused branches,\n// baking in the CI platform (linux) and breaking macOS/Windows installs.\nconst FOLDER_COMMANDS: Record<string, { cmd: string; args: (path: string) => string[] }> = {\n darwin: { cmd: 'open', args: (p) => [p] },\n linux: { cmd: 'xdg-open', args: (p) => [p] },\n win32: { cmd: 'explorer', args: (p) => [p] },\n};\n\nexport async function openFolder(\n repositoryPath: string\n): Promise<{ success: boolean; error?: string; path?: string }> {\n if (!repositoryPath || !isAbsolute(repositoryPath)) {\n return { success: false, error: 'repositoryPath must be an absolute path' };\n }\n\n try {\n if (!existsSync(repositoryPath)) {\n return { success: false, error: 'Directory not found' };\n }\n\n const entry = FOLDER_COMMANDS[platform()];\n if (!entry) {\n return {\n success: false,\n error: `Unsupported platform: ${platform()}`,\n };\n }\n\n // Normalize to platform-native separators — explorer.exe on Windows\n // does not understand forward-slash paths and falls back to Documents.\n const nativePath = normalize(repositoryPath);\n\n const child = spawn(entry.cmd, entry.args(nativePath), {\n detached: true,\n stdio: 'ignore',\n });\n child.on('error', () => undefined); // Prevent uncaught exception on spawn failure\n child.unref();\n\n return { success: true, path: repositoryPath };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to open folder';\n return { success: false, error: message };\n }\n}\n","'use server';\n\nimport { execFile } from 'node:child_process';\nimport { promisify } from 'node:util';\n\nconst execFileAsync = promisify(execFile);\n\nasync function git(cwd: string, args: string[]): Promise<string> {\n const { stdout } = await execFileAsync('git', args, { cwd, timeout: 5000 });\n return stdout.trim();\n}\n\nexport interface GitLogEntry {\n hash: string;\n shortHash: string;\n subject: string;\n author: string;\n relativeDate: string;\n branch?: string;\n}\n\nexport interface GitBranchInfo {\n name: string;\n isCurrent: boolean;\n lastCommitDate: string;\n}\n\nexport interface GitRemoteInfo {\n name: string;\n url: string;\n}\n\nexport interface GitWorkingTreeStatus {\n staged: number;\n modified: number;\n untracked: number;\n}\n\nexport interface GitDiffStats {\n filesChanged: number;\n insertions: number;\n deletions: number;\n}\n\nexport interface GitRepoInfo {\n commits: GitLogEntry[];\n branches: GitBranchInfo[];\n remotes: GitRemoteInfo[];\n tags: string[];\n stashCount: number;\n currentBranch: string;\n diffStats: GitDiffStats | null;\n workingTree: GitWorkingTreeStatus;\n error?: string;\n}\n\nexport async function getGitRepoInfo(\n repositoryPath: string,\n commitLimit = 8\n): Promise<GitRepoInfo> {\n const empty: GitRepoInfo = {\n commits: [],\n branches: [],\n remotes: [],\n tags: [],\n stashCount: 0,\n currentBranch: '',\n diffStats: null,\n workingTree: { staged: 0, modified: 0, untracked: 0 },\n };\n\n if (!repositoryPath.trim()) {\n return { ...empty, error: 'Repository path is required' };\n }\n\n const results = await Promise.allSettled([\n // 0: commits\n git(repositoryPath, [\n 'log',\n `--max-count=${commitLimit}`,\n '--format=%H%x00%h%x00%s%x00%an%x00%cr',\n '--no-color',\n ]),\n // 1: current branch\n git(repositoryPath, ['branch', '--show-current']),\n // 2: branches with dates\n git(repositoryPath, [\n 'branch',\n '--sort=-committerdate',\n '--format=%(HEAD)%(refname:short)%00%(committerdate:relative)',\n '--no-color',\n ]),\n // 3: remotes\n git(repositoryPath, ['remote', '-v']),\n // 4: tags (recent 5)\n git(repositoryPath, ['tag', '--sort=-creatordate', '-l', '--format=%(refname:short)']),\n // 5: stash count\n git(repositoryPath, ['stash', 'list']),\n // 6: working tree status\n git(repositoryPath, ['status', '--porcelain']),\n // 7: diff stats (uncommitted — includes staged + unstaged vs HEAD)\n git(repositoryPath, ['diff', 'HEAD', '--shortstat']),\n ]);\n\n const val = (i: number) => (results[i].status === 'fulfilled' ? results[i].value : '');\n\n // Parse commits\n const commits: GitLogEntry[] = val(0)\n .split('\\n')\n .filter(Boolean)\n .map((line: string) => {\n const [hash, shortHash, subject, author, relativeDate] = line.split('\\0');\n return { hash, shortHash, subject, author, relativeDate };\n });\n\n const currentBranch = val(1);\n if (commits.length > 0 && currentBranch) {\n commits[0].branch = currentBranch;\n }\n\n // Parse branches\n const branches: GitBranchInfo[] = val(2)\n .split('\\n')\n .filter(Boolean)\n .slice(0, 10)\n .map((line: string) => {\n const isCurrent = line.startsWith('*');\n const clean = isCurrent ? line.slice(1) : line;\n const [name, lastCommitDate] = clean.split('\\0');\n return { name: name.trim(), isCurrent, lastCommitDate: lastCommitDate?.trim() ?? '' };\n });\n\n // Parse remotes (dedup fetch/push)\n const remoteMap = new Map<string, string>();\n val(3)\n .split('\\n')\n .filter(Boolean)\n .forEach((line: string) => {\n const match = line.match(/^(\\S+)\\s+(\\S+)\\s+\\(fetch\\)/);\n if (match) {\n // Strip credentials/tokens from URL before sending to client\n const sanitized = match[2].replace(/\\/\\/[^@]+@/, '//').replace(/x-access-token:[^@]+@/, '');\n remoteMap.set(match[1], sanitized);\n }\n });\n const remotes: GitRemoteInfo[] = Array.from(remoteMap, ([name, url]) => ({ name, url }));\n\n // Parse tags (top 5)\n const tags = val(4).split('\\n').filter(Boolean).slice(0, 5);\n\n // Stash count\n const stashCount = val(5).split('\\n').filter(Boolean).length;\n\n // Working tree status\n const statusLines = val(6).split('\\n').filter(Boolean);\n const workingTree: GitWorkingTreeStatus = { staged: 0, modified: 0, untracked: 0 };\n for (const line of statusLines) {\n const x = line[0];\n const y = line[1];\n if (x === '?' && y === '?') workingTree.untracked++;\n else if (x !== ' ' && x !== '?') workingTree.staged++;\n if (y !== ' ' && y !== '?') workingTree.modified++;\n }\n\n // Diff stats\n let diffStats: GitDiffStats | null = null;\n const diffLine = val(7);\n if (diffLine) {\n const files = diffLine.match(/(\\d+) file/);\n const ins = diffLine.match(/(\\d+) insertion/);\n const del = diffLine.match(/(\\d+) deletion/);\n diffStats = {\n filesChanged: files ? parseInt(files[1], 10) : 0,\n insertions: ins ? parseInt(ins[1], 10) : 0,\n deletions: del ? parseInt(del[1], 10) : 0,\n };\n }\n\n return { commits, branches, remotes, tags, stashCount, currentBranch, diffStats, workingTree };\n}\n\n// Keep backward compat\nexport async function getGitLog(\n repositoryPath: string,\n limit = 10\n): Promise<{ entries: GitLogEntry[]; error?: string }> {\n const info = await getGitRepoInfo(repositoryPath, limit);\n return { entries: info.commits, error: info.error };\n}\n","export {getAllAgentModels as '003d0efbae2ee51b84f36569a3d9855d87e24750d1'} from 'ACTIONS_MODULE0'\nexport {checkAllAgentsStatus as '0023077826973eb66acc97360f2324aa92fc4b7eaf'} from 'ACTIONS_MODULE1'\nexport {updateAgentAndModel as '60ddc5a1721764ad79ab273b52c39232c5e9359107'} from 'ACTIONS_MODULE2'\nexport {pickFolder as '00d659d7355a2b6a5ffc831e27d33aa2b1bbb99816'} from 'ACTIONS_MODULE3'\nexport {listGitHubRepositories as '40192685e178327248c4ee3e7ed433168089f96062'} from 'ACTIONS_MODULE4'\nexport {listGitHubOrganizations as '00bd27b30e6c35aa39ca5fcf0280d5b3379cd1c07e'} from 'ACTIONS_MODULE5'\nexport {importGitHubRepository as '401df75e6c7fb8e097b733abb8797bdfcdccbefb47'} from 'ACTIONS_MODULE6'\nexport {deployFeature as '40cfe9ccf1af62e1123113d5ba522244a957544f28'} from 'ACTIONS_MODULE7'\nexport {deployRepository as '402bf41f2c3cf1b29b445e07ab9a6fe3182e1df2d8'} from 'ACTIONS_MODULE8'\nexport {deployApplication as '40d7b674cc1d8c901818cf7e473218e7a6203fd032'} from 'ACTIONS_MODULE9'\nexport {stopDeployment as '40314c5fc0aabcf152e1d908fe738c3cf40bd70be1'} from 'ACTIONS_MODULE10'\nexport {getDeploymentStatus as '40f88f7c0b3d5aad4185d49a932fc0dce113ec0912'} from 'ACTIONS_MODULE11'\nexport {openIde as '40d9edabf5ce0f2bae3126c6a229398875f507a208'} from 'ACTIONS_MODULE12'\nexport {openShell as '40bd8b1511738071912093ce876b807d0cb12137cd'} from 'ACTIONS_MODULE13'\nexport {openFolder as '40d902df8a5f576b5aa33b645a7dfaf4b4133f67e6'} from 'ACTIONS_MODULE14'\nexport {syncRepository as '400c298d066926bbd45a1cc986940c718482912bf4'} from 'ACTIONS_MODULE15'\nexport {getDeploymentLogs as '406c2354167c1037f06f5228adc94dcd5e877d721e'} from 'ACTIONS_MODULE16'\nexport {createProjectAndFeature as '4046888598d39ae43d75963d3ef3cd4e8016324d4b'} from 'ACTIONS_MODULE17'\nexport {createApplication as '400962487c8ebd3b1f5ded2ca4a60f8a73406f4f3f'} from 'ACTIONS_MODULE18'\nexport {createProjectFolder as '40699d7542c74323d1335bc9d1238c872989b4ff95'} from 'ACTIONS_MODULE19'\nexport {archiveFeature as '40adf0278807286a3192aa91cc969ad4bf34de24f3'} from 'ACTIONS_MODULE20'\nexport {deleteFeature as '788ed56ab07e66ef884d6ce0f77fa46b5034bcfed4'} from 'ACTIONS_MODULE21'\nexport {resumeFeature as '40f7e19e0c90a0828d68efc73ea956f73a3fc08de5'} from 'ACTIONS_MODULE22'\nexport {startFeature as '400c51000c5d6b72e9ea6f8c5b72d2281b3a54694b'} from 'ACTIONS_MODULE23'\nexport {stopFeature as '402abe7793fe396edf2d669c244fd0eeb370125424'} from 'ACTIONS_MODULE24'\nexport {unarchiveFeature as '403a379924950f7ba0c0e57e7c3c960d0624062339'} from 'ACTIONS_MODULE25'\nexport {addRepository as '40003deaddd47ade1409b6d526755b08eb3be80f0d'} from 'ACTIONS_MODULE26'\nexport {deleteRepository as '6066fc7a836c30765dbacbf5d8466865b5aa1f9640'} from 'ACTIONS_MODULE27'\nexport {deleteApplication as '40249dc44ff0bea67ac4b228d968dd1f704ee4b24f'} from 'ACTIONS_MODULE28'\nexport {getFeatureMetadata as '40c7cc76af10154bd904315971383c0c513ef690f6'} from 'ACTIONS_MODULE29'\nexport {getGitRepoInfo as '60f8fa91b2f014c10674fdbd70076519c6a7792419'} from 'ACTIONS_MODULE30'\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../../src/presentation/web/app/actions/open-folder.ts","../../../../../../../src/presentation/web/app/actions/get-git-log.ts","../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/repository/%5BrepositoryId%5D/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["'use server';\n\nimport { existsSync } from 'node:fs';\nimport { platform } from 'node:os';\nimport { isAbsolute, normalize } from 'node:path';\nimport { spawn } from 'node:child_process';\n\n// Use a record lookup instead of if/else to prevent the bundler from\n// tree-shaking platform branches at build time. Turbopack evaluates\n// os.platform() during the build and dead-code-eliminates unused branches,\n// baking in the CI platform (linux) and breaking macOS/Windows installs.\nconst FOLDER_COMMANDS: Record<string, { cmd: string; args: (path: string) => string[] }> = {\n darwin: { cmd: 'open', args: (p) => [p] },\n linux: { cmd: 'xdg-open', args: (p) => [p] },\n win32: { cmd: 'explorer', args: (p) => [p] },\n};\n\nexport async function openFolder(\n repositoryPath: string\n): Promise<{ success: boolean; error?: string; path?: string }> {\n if (!repositoryPath || !isAbsolute(repositoryPath)) {\n return { success: false, error: 'repositoryPath must be an absolute path' };\n }\n\n try {\n if (!existsSync(repositoryPath)) {\n return { success: false, error: 'Directory not found' };\n }\n\n const entry = FOLDER_COMMANDS[platform()];\n if (!entry) {\n return {\n success: false,\n error: `Unsupported platform: ${platform()}`,\n };\n }\n\n // Normalize to platform-native separators — explorer.exe on Windows\n // does not understand forward-slash paths and falls back to Documents.\n const nativePath = normalize(repositoryPath);\n\n const child = spawn(entry.cmd, entry.args(nativePath), {\n detached: true,\n stdio: 'ignore',\n });\n child.on('error', () => undefined); // Prevent uncaught exception on spawn failure\n child.unref();\n\n return { success: true, path: repositoryPath };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to open folder';\n return { success: false, error: message };\n }\n}\n","'use server';\n\nimport { execFile } from 'node:child_process';\nimport { promisify } from 'node:util';\n\nconst execFileAsync = promisify(execFile);\n\nasync function git(cwd: string, args: string[]): Promise<string> {\n const { stdout } = await execFileAsync('git', args, { cwd, timeout: 5000 });\n return stdout.trim();\n}\n\nexport interface GitLogEntry {\n hash: string;\n shortHash: string;\n subject: string;\n author: string;\n relativeDate: string;\n branch?: string;\n}\n\nexport interface GitBranchInfo {\n name: string;\n isCurrent: boolean;\n lastCommitDate: string;\n}\n\nexport interface GitRemoteInfo {\n name: string;\n url: string;\n}\n\nexport interface GitWorkingTreeStatus {\n staged: number;\n modified: number;\n untracked: number;\n}\n\nexport interface GitDiffStats {\n filesChanged: number;\n insertions: number;\n deletions: number;\n}\n\nexport interface GitRepoInfo {\n commits: GitLogEntry[];\n branches: GitBranchInfo[];\n remotes: GitRemoteInfo[];\n tags: string[];\n stashCount: number;\n currentBranch: string;\n diffStats: GitDiffStats | null;\n workingTree: GitWorkingTreeStatus;\n error?: string;\n}\n\nexport async function getGitRepoInfo(\n repositoryPath: string,\n commitLimit = 8\n): Promise<GitRepoInfo> {\n const empty: GitRepoInfo = {\n commits: [],\n branches: [],\n remotes: [],\n tags: [],\n stashCount: 0,\n currentBranch: '',\n diffStats: null,\n workingTree: { staged: 0, modified: 0, untracked: 0 },\n };\n\n if (!repositoryPath.trim()) {\n return { ...empty, error: 'Repository path is required' };\n }\n\n const results = await Promise.allSettled([\n // 0: commits\n git(repositoryPath, [\n 'log',\n `--max-count=${commitLimit}`,\n '--format=%H%x00%h%x00%s%x00%an%x00%cr',\n '--no-color',\n ]),\n // 1: current branch\n git(repositoryPath, ['branch', '--show-current']),\n // 2: branches with dates\n git(repositoryPath, [\n 'branch',\n '--sort=-committerdate',\n '--format=%(HEAD)%(refname:short)%00%(committerdate:relative)',\n '--no-color',\n ]),\n // 3: remotes\n git(repositoryPath, ['remote', '-v']),\n // 4: tags (recent 5)\n git(repositoryPath, ['tag', '--sort=-creatordate', '-l', '--format=%(refname:short)']),\n // 5: stash count\n git(repositoryPath, ['stash', 'list']),\n // 6: working tree status\n git(repositoryPath, ['status', '--porcelain']),\n // 7: diff stats (uncommitted — includes staged + unstaged vs HEAD)\n git(repositoryPath, ['diff', 'HEAD', '--shortstat']),\n ]);\n\n const val = (i: number) => (results[i].status === 'fulfilled' ? results[i].value : '');\n\n // Parse commits\n const commits: GitLogEntry[] = val(0)\n .split('\\n')\n .filter(Boolean)\n .map((line: string) => {\n const [hash, shortHash, subject, author, relativeDate] = line.split('\\0');\n return { hash, shortHash, subject, author, relativeDate };\n });\n\n const currentBranch = val(1);\n if (commits.length > 0 && currentBranch) {\n commits[0].branch = currentBranch;\n }\n\n // Parse branches\n const branches: GitBranchInfo[] = val(2)\n .split('\\n')\n .filter(Boolean)\n .slice(0, 10)\n .map((line: string) => {\n const isCurrent = line.startsWith('*');\n const clean = isCurrent ? line.slice(1) : line;\n const [name, lastCommitDate] = clean.split('\\0');\n return { name: name.trim(), isCurrent, lastCommitDate: lastCommitDate?.trim() ?? '' };\n });\n\n // Parse remotes (dedup fetch/push)\n const remoteMap = new Map<string, string>();\n val(3)\n .split('\\n')\n .filter(Boolean)\n .forEach((line: string) => {\n const match = line.match(/^(\\S+)\\s+(\\S+)\\s+\\(fetch\\)/);\n if (match) {\n // Strip credentials/tokens from URL before sending to client\n const sanitized = match[2].replace(/\\/\\/[^@]+@/, '//').replace(/x-access-token:[^@]+@/, '');\n remoteMap.set(match[1], sanitized);\n }\n });\n const remotes: GitRemoteInfo[] = Array.from(remoteMap, ([name, url]) => ({ name, url }));\n\n // Parse tags (top 5)\n const tags = val(4).split('\\n').filter(Boolean).slice(0, 5);\n\n // Stash count\n const stashCount = val(5).split('\\n').filter(Boolean).length;\n\n // Working tree status\n const statusLines = val(6).split('\\n').filter(Boolean);\n const workingTree: GitWorkingTreeStatus = { staged: 0, modified: 0, untracked: 0 };\n for (const line of statusLines) {\n const x = line[0];\n const y = line[1];\n if (x === '?' && y === '?') workingTree.untracked++;\n else if (x !== ' ' && x !== '?') workingTree.staged++;\n if (y !== ' ' && y !== '?') workingTree.modified++;\n }\n\n // Diff stats\n let diffStats: GitDiffStats | null = null;\n const diffLine = val(7);\n if (diffLine) {\n const files = diffLine.match(/(\\d+) file/);\n const ins = diffLine.match(/(\\d+) insertion/);\n const del = diffLine.match(/(\\d+) deletion/);\n diffStats = {\n filesChanged: files ? parseInt(files[1], 10) : 0,\n insertions: ins ? parseInt(ins[1], 10) : 0,\n deletions: del ? parseInt(del[1], 10) : 0,\n };\n }\n\n return { commits, branches, remotes, tags, stashCount, currentBranch, diffStats, workingTree };\n}\n\n// Keep backward compat\nexport async function getGitLog(\n repositoryPath: string,\n limit = 10\n): Promise<{ entries: GitLogEntry[]; error?: string }> {\n const info = await getGitRepoInfo(repositoryPath, limit);\n return { entries: info.commits, error: info.error };\n}\n","export {getAllAgentModels as '008509d19dd9a2cfbf9d2341a86901b764b3dc843b'} from 'ACTIONS_MODULE0'\nexport {checkAllAgentsStatus as '00d26e7ff84204c80048090e57fae7733e945583d3'} from 'ACTIONS_MODULE1'\nexport {updateAgentAndModel as '60fb317496dd3a25d29885828ee97f7cd47105920d'} from 'ACTIONS_MODULE2'\nexport {pickFolder as '00aa5fb0355ecf3b43439642183e35b6ec50560084'} from 'ACTIONS_MODULE3'\nexport {listGitHubRepositories as '4095a62107e998ea83afe905499439978bf697fb7d'} from 'ACTIONS_MODULE4'\nexport {listGitHubOrganizations as '00121c94c57d97ec959fb5070295c93770416422e8'} from 'ACTIONS_MODULE5'\nexport {importGitHubRepository as '403dbcc2be173f41862d8862984ef2d0eb34d2b82e'} from 'ACTIONS_MODULE6'\nexport {deployFeature as '40ce1870834f727e931b1cf59ab354e7e8681e5a6f'} from 'ACTIONS_MODULE7'\nexport {deployRepository as '40820278a653c830fe0245011a9d21ba971809c0fe'} from 'ACTIONS_MODULE8'\nexport {deployApplication as '4027e1286916f6f8a0ccf9ecf766f94d49f82483f4'} from 'ACTIONS_MODULE9'\nexport {stopDeployment as '4011ff2cab52aa8731c2ff4a2a21850af05dbd744f'} from 'ACTIONS_MODULE10'\nexport {getDeploymentStatus as '40e55c0879b8765841c0ef0e08cbdb2e8b4acd4888'} from 'ACTIONS_MODULE11'\nexport {openIde as '404a03f8b97ac011757753600df767dd92b9f6bfc6'} from 'ACTIONS_MODULE12'\nexport {openShell as '40b9f24b532374b29dec79c0541b43e2fffc9feafb'} from 'ACTIONS_MODULE13'\nexport {openFolder as '40acae42186eb8fd217d71a72b4945acf22d89ec18'} from 'ACTIONS_MODULE14'\nexport {syncRepository as '40723c9650159ba67a297db1a9aca888d3cc2bca59'} from 'ACTIONS_MODULE15'\nexport {getDeploymentLogs as '402b827b66f4a4690c02f0c2482b9648362444fca3'} from 'ACTIONS_MODULE16'\nexport {createProjectAndFeature as '402f7d3fbeeedeb3bf32eb4455f5c52c6cbe0c9dbc'} from 'ACTIONS_MODULE17'\nexport {createApplication as '40bd8f510d8e1649401a50167192ab2986af619ece'} from 'ACTIONS_MODULE18'\nexport {createProjectFolder as '40afc7125f38f319a56310312639e9772d5b330d7f'} from 'ACTIONS_MODULE19'\nexport {archiveFeature as '4066028d782e66210f353ba5777fc5e47ae5186ad5'} from 'ACTIONS_MODULE20'\nexport {deleteFeature as '78921b2703fb4d716a0043589cf819b56dc9dbd32c'} from 'ACTIONS_MODULE21'\nexport {resumeFeature as '40d2e35c3115af12d99ec265235ac234fe3d507793'} from 'ACTIONS_MODULE22'\nexport {startFeature as '4024fde93e6e2147dcdaa3f185855d20434a4ddf08'} from 'ACTIONS_MODULE23'\nexport {stopFeature as '403d888b0febaea3ca8e976004d7a3930298897064'} from 'ACTIONS_MODULE24'\nexport {unarchiveFeature as '40c35fbaa75aedc7ebc4ee7e6c3f5426183b102c46'} from 'ACTIONS_MODULE25'\nexport {addRepository as '40bb9c2a45d41de0c78ea76f48c10f92884a5ccfb2'} from 'ACTIONS_MODULE26'\nexport {deleteRepository as '6018195d0d10db5aaf9e274b10230a249a9d4f96a3'} from 'ACTIONS_MODULE27'\nexport {deleteApplication as '408345ac0b52fea08ca72b167c801d9b1b71a493b0'} from 'ACTIONS_MODULE28'\nexport {getFeatureMetadata as '4030634e58faa32adb5207cfeeb903a6bd0c77dcf6'} from 'ACTIONS_MODULE29'\nexport {getGitRepoInfo as '60996b3f1c4e8a5548f23b90cd8dc9699756654c1d'} from 'ACTIONS_MODULE30'\n"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- module.exports=[94691,a=>{"use strict";var b=a.i(92658),c=a.i(96380);async function d(a){return a?.trim()?(0,c.resolve)("IDeploymentService").getLogs(a):null}(0,a.i(12581).ensureServerEntryExports)([d]),(0,b.registerServerReference)(d,"406c2354167c1037f06f5228adc94dcd5e877d721e",null),a.s(["getDeploymentLogs",()=>d])},17249,a=>{"use strict";var b=a.i(23504),c=a.i(8115),d=a.i(27900),e=a.i(12513),f=a.i(73101),g=a.i(54775),h=a.i(65324),i=a.i(94691),j=a.i(33841),k=a.i(46646),l=a.i(68378),m=a.i(68670),n=a.i(85321);a.s([],7543),a.i(7543),a.s(["0023077826973eb66acc97360f2324aa92fc4b7eaf",()=>c.checkAllAgentsStatus,"003d0efbae2ee51b84f36569a3d9855d87e24750d1",()=>b.getAllAgentModels,"00bd27b30e6c35aa39ca5fcf0280d5b3379cd1c07e",()=>g.listGitHubOrganizations,"00d659d7355a2b6a5ffc831e27d33aa2b1bbb99816",()=>e.pickFolder,"40192685e178327248c4ee3e7ed433168089f96062",()=>f.listGitHubRepositories,"401df75e6c7fb8e097b733abb8797bdfcdccbefb47",()=>h.importGitHubRepository,"402bf41f2c3cf1b29b445e07ab9a6fe3182e1df2d8",()=>k.deployRepository,"40314c5fc0aabcf152e1d908fe738c3cf40bd70be1",()=>m.stopDeployment,"406c2354167c1037f06f5228adc94dcd5e877d721e",()=>i.getDeploymentLogs,"40cfe9ccf1af62e1123113d5ba522244a957544f28",()=>j.deployFeature,"40d7b674cc1d8c901818cf7e473218e7a6203fd032",()=>l.deployApplication,"40f88f7c0b3d5aad4185d49a932fc0dce113ec0912",()=>n.getDeploymentStatus,"60ddc5a1721764ad79ab273b52c39232c5e9359107",()=>d.updateAgentAndModel],17249)}];
1
+ module.exports=[94691,a=>{"use strict";var b=a.i(92658),c=a.i(96380);async function d(a){return a?.trim()?(0,c.resolve)("IDeploymentService").getLogs(a):null}(0,a.i(12581).ensureServerEntryExports)([d]),(0,b.registerServerReference)(d,"402b827b66f4a4690c02f0c2482b9648362444fca3",null),a.s(["getDeploymentLogs",()=>d])},17249,a=>{"use strict";var b=a.i(23504),c=a.i(8115),d=a.i(27900),e=a.i(12513),f=a.i(73101),g=a.i(54775),h=a.i(65324),i=a.i(94691),j=a.i(33841),k=a.i(46646),l=a.i(68378),m=a.i(68670),n=a.i(85321);a.s([],7543),a.i(7543),a.s(["00121c94c57d97ec959fb5070295c93770416422e8",()=>g.listGitHubOrganizations,"008509d19dd9a2cfbf9d2341a86901b764b3dc843b",()=>b.getAllAgentModels,"00aa5fb0355ecf3b43439642183e35b6ec50560084",()=>e.pickFolder,"00d26e7ff84204c80048090e57fae7733e945583d3",()=>c.checkAllAgentsStatus,"4011ff2cab52aa8731c2ff4a2a21850af05dbd744f",()=>m.stopDeployment,"4027e1286916f6f8a0ccf9ecf766f94d49f82483f4",()=>l.deployApplication,"402b827b66f4a4690c02f0c2482b9648362444fca3",()=>i.getDeploymentLogs,"403dbcc2be173f41862d8862984ef2d0eb34d2b82e",()=>h.importGitHubRepository,"40820278a653c830fe0245011a9d21ba971809c0fe",()=>k.deployRepository,"4095a62107e998ea83afe905499439978bf697fb7d",()=>f.listGitHubRepositories,"40ce1870834f727e931b1cf59ab354e7e8681e5a6f",()=>j.deployFeature,"40e55c0879b8765841c0ef0e08cbdb2e8b4acd4888",()=>n.getDeploymentStatus,"60fb317496dd3a25d29885828ee97f7cd47105920d",()=>d.updateAgentAndModel],17249)}];
2
2
 
3
3
  //# sourceMappingURL=src_presentation_web_6159fef8._.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/app/actions/get-deployment-logs.ts","../../../../../../../src/presentation/web/.next-internal/server/app/tools/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type {\n IDeploymentService,\n LogEntry,\n} from '@shepai/core/application/ports/output/services/deployment-service.interface';\n\nexport async function getDeploymentLogs(targetId: string): Promise<LogEntry[] | null> {\n if (!targetId?.trim()) {\n return null;\n }\n\n const deploymentService = resolve<IDeploymentService>('IDeploymentService');\n return deploymentService.getLogs(targetId);\n}\n","export {getAllAgentModels as '003d0efbae2ee51b84f36569a3d9855d87e24750d1'} from 'ACTIONS_MODULE0'\nexport {checkAllAgentsStatus as '0023077826973eb66acc97360f2324aa92fc4b7eaf'} from 'ACTIONS_MODULE1'\nexport {updateAgentAndModel as '60ddc5a1721764ad79ab273b52c39232c5e9359107'} from 'ACTIONS_MODULE2'\nexport {pickFolder as '00d659d7355a2b6a5ffc831e27d33aa2b1bbb99816'} from 'ACTIONS_MODULE3'\nexport {listGitHubRepositories as '40192685e178327248c4ee3e7ed433168089f96062'} from 'ACTIONS_MODULE4'\nexport {listGitHubOrganizations as '00bd27b30e6c35aa39ca5fcf0280d5b3379cd1c07e'} from 'ACTIONS_MODULE5'\nexport {importGitHubRepository as '401df75e6c7fb8e097b733abb8797bdfcdccbefb47'} from 'ACTIONS_MODULE6'\nexport {getDeploymentLogs as '406c2354167c1037f06f5228adc94dcd5e877d721e'} from 'ACTIONS_MODULE7'\nexport {deployFeature as '40cfe9ccf1af62e1123113d5ba522244a957544f28'} from 'ACTIONS_MODULE8'\nexport {deployRepository as '402bf41f2c3cf1b29b445e07ab9a6fe3182e1df2d8'} from 'ACTIONS_MODULE9'\nexport {deployApplication as '40d7b674cc1d8c901818cf7e473218e7a6203fd032'} from 'ACTIONS_MODULE10'\nexport {stopDeployment as '40314c5fc0aabcf152e1d908fe738c3cf40bd70be1'} from 'ACTIONS_MODULE11'\nexport {getDeploymentStatus as '40f88f7c0b3d5aad4185d49a932fc0dce113ec0912'} from 'ACTIONS_MODULE12'\n"],"names":[],"mappings":"wDAEA,EAAA,EAAA,CAAA,CAAA,OAMO,eAAe,EAAkB,CAAgB,SACtD,AAAK,GAAU,CAAX,MAIsB,AACnB,CALgB,AAIG,EAAA,EAAA,OAAA,AAAO,EAAqB,sBAC7B,OAAO,CAAC,GAJxB,IAKX,0CAPsB,IAAA,CAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,6CAAA,+DCRtB,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,MACA,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
+ {"version":3,"sources":["../../../../../../../src/presentation/web/app/actions/get-deployment-logs.ts","../../../../../../../src/presentation/web/.next-internal/server/app/tools/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type {\n IDeploymentService,\n LogEntry,\n} from '@shepai/core/application/ports/output/services/deployment-service.interface';\n\nexport async function getDeploymentLogs(targetId: string): Promise<LogEntry[] | null> {\n if (!targetId?.trim()) {\n return null;\n }\n\n const deploymentService = resolve<IDeploymentService>('IDeploymentService');\n return deploymentService.getLogs(targetId);\n}\n","export {getAllAgentModels as '008509d19dd9a2cfbf9d2341a86901b764b3dc843b'} from 'ACTIONS_MODULE0'\nexport {checkAllAgentsStatus as '00d26e7ff84204c80048090e57fae7733e945583d3'} from 'ACTIONS_MODULE1'\nexport {updateAgentAndModel as '60fb317496dd3a25d29885828ee97f7cd47105920d'} from 'ACTIONS_MODULE2'\nexport {pickFolder as '00aa5fb0355ecf3b43439642183e35b6ec50560084'} from 'ACTIONS_MODULE3'\nexport {listGitHubRepositories as '4095a62107e998ea83afe905499439978bf697fb7d'} from 'ACTIONS_MODULE4'\nexport {listGitHubOrganizations as '00121c94c57d97ec959fb5070295c93770416422e8'} from 'ACTIONS_MODULE5'\nexport {importGitHubRepository as '403dbcc2be173f41862d8862984ef2d0eb34d2b82e'} from 'ACTIONS_MODULE6'\nexport {getDeploymentLogs as '402b827b66f4a4690c02f0c2482b9648362444fca3'} from 'ACTIONS_MODULE7'\nexport {deployFeature as '40ce1870834f727e931b1cf59ab354e7e8681e5a6f'} from 'ACTIONS_MODULE8'\nexport {deployRepository as '40820278a653c830fe0245011a9d21ba971809c0fe'} from 'ACTIONS_MODULE9'\nexport {deployApplication as '4027e1286916f6f8a0ccf9ecf766f94d49f82483f4'} from 'ACTIONS_MODULE10'\nexport {stopDeployment as '4011ff2cab52aa8731c2ff4a2a21850af05dbd744f'} from 'ACTIONS_MODULE11'\nexport {getDeploymentStatus as '40e55c0879b8765841c0ef0e08cbdb2e8b4acd4888'} from 'ACTIONS_MODULE12'\n"],"names":[],"mappings":"wDAEA,EAAA,EAAA,CAAA,CAAA,OAMO,eAAe,EAAkB,CAAgB,SACtD,AAAK,GAAU,CAAX,MAIsB,AACnB,CALgB,AAIG,EAAA,EAAA,OAAA,AAAO,EAAqB,sBAC7B,OAAO,CAAC,GAJxB,IAKX,0CAPsB,IAAA,CAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,6CAAA,+DCRtB,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,MACA,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 +1,3 @@
1
- module.exports=[80496,a=>{"use strict";var b=a.i(92658),c=a.i(2157),d=a.i(60526),e=a.i(50227),f=a.i(74533),g=a.i(12581);let h={darwin:{cmd:"open",args:a=>[a]},linux:{cmd:"xdg-open",args:a=>[a]},win32:{cmd:"explorer",args:a=>[a]}};async function i(a){if(!a||!(0,e.isAbsolute)(a))return{success:!1,error:"repositoryPath must be an absolute path"};try{if(!(0,c.existsSync)(a))return{success:!1,error:"Directory not found"};let b=h[(0,d.platform)()];if(!b)return{success:!1,error:`Unsupported platform: ${(0,d.platform)()}`};let g=(0,e.normalize)(a),i=(0,f.spawn)(b.cmd,b.args(g),{detached:!0,stdio:"ignore"});return i.on("error",()=>void 0),i.unref(),{success:!0,path:a}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to open folder"}}}(0,g.ensureServerEntryExports)([i]),(0,b.registerServerReference)(i,"40d902df8a5f576b5aa33b645a7dfaf4b4133f67e6",null),a.s(["openFolder",()=>i])},35556,a=>{"use strict";var b=a.i(92658),c=a.i(74533),d=a.i(12057),e=a.i(12581);let f=(0,d.promisify)(c.execFile);async function g(a,b){let{stdout:c}=await f("git",b,{cwd:a,timeout:5e3});return c.trim()}async function h(a,b=8){if(!a.trim())return{commits:[],branches:[],remotes:[],tags:[],stashCount:0,currentBranch:"",diffStats:null,workingTree:{staged:0,modified:0,untracked:0},error:"Repository path is required"};let c=await Promise.allSettled([g(a,["log",`--max-count=${b}`,"--format=%H%x00%h%x00%s%x00%an%x00%cr","--no-color"]),g(a,["branch","--show-current"]),g(a,["branch","--sort=-committerdate","--format=%(HEAD)%(refname:short)%00%(committerdate:relative)","--no-color"]),g(a,["remote","-v"]),g(a,["tag","--sort=-creatordate","-l","--format=%(refname:short)"]),g(a,["stash","list"]),g(a,["status","--porcelain"]),g(a,["diff","HEAD","--shortstat"])]),d=a=>"fulfilled"===c[a].status?c[a].value:"",e=d(0).split("\n").filter(Boolean).map(a=>{let[b,c,d,e,f]=a.split("\0");return{hash:b,shortHash:c,subject:d,author:e,relativeDate:f}}),f=d(1);e.length>0&&f&&(e[0].branch=f);let i=d(2).split("\n").filter(Boolean).slice(0,10).map(a=>{let b=a.startsWith("*"),[c,d]=(b?a.slice(1):a).split("\0");return{name:c.trim(),isCurrent:b,lastCommitDate:d?.trim()??""}}),j=new Map;d(3).split("\n").filter(Boolean).forEach(a=>{let b=a.match(/^(\S+)\s+(\S+)\s+\(fetch\)/);if(b){let a=b[2].replace(/\/\/[^@]+@/,"//").replace(/x-access-token:[^@]+@/,"");j.set(b[1],a)}});let k=Array.from(j,([a,b])=>({name:a,url:b})),l=d(4).split("\n").filter(Boolean).slice(0,5),m=d(5).split("\n").filter(Boolean).length,n=d(6).split("\n").filter(Boolean),o={staged:0,modified:0,untracked:0};for(let a of n){let b=a[0],c=a[1];"?"===b&&"?"===c?o.untracked++:" "!==b&&"?"!==b&&o.staged++," "!==c&&"?"!==c&&o.modified++}let p=null,q=d(7);if(q){let a=q.match(/(\d+) file/),b=q.match(/(\d+) insertion/),c=q.match(/(\d+) deletion/);p={filesChanged:a?parseInt(a[1],10):0,insertions:b?parseInt(b[1],10):0,deletions:c?parseInt(c[1],10):0}}return{commits:e,branches:i,remotes:k,tags:l,stashCount:m,currentBranch:f,diffStats:p,workingTree:o}}async function i(a,b=10){let c=await h(a,b);return{entries:c.commits,error:c.error}}(0,e.ensureServerEntryExports)([h,i]),(0,b.registerServerReference)(h,"60f8fa91b2f014c10674fdbd70076519c6a7792419",null),(0,b.registerServerReference)(i,"609edca2a8e02fd199c69957ffe78ff8222d343332",null),a.s(["getGitRepoInfo",()=>h])},47688,a=>{"use strict";var b=a.i(23504),c=a.i(8115),d=a.i(27900),e=a.i(12513),f=a.i(73101),g=a.i(54775),h=a.i(65324),i=a.i(33841),j=a.i(46646),k=a.i(68378),l=a.i(68670),m=a.i(85321),n=a.i(84095),o=a.i(56799),p=a.i(80496),q=a.i(93225),r=a.i(94691),s=a.i(77710),t=a.i(45395),u=a.i(76707),v=a.i(10528),w=a.i(50845),x=a.i(26604),y=a.i(54723),z=a.i(18942),A=a.i(42886),B=a.i(49560),C=a.i(39353),D=a.i(95072),E=a.i(29207),F=a.i(35556);a.s([],32214),a.i(32214),a.s(["0023077826973eb66acc97360f2324aa92fc4b7eaf",()=>c.checkAllAgentsStatus,"003d0efbae2ee51b84f36569a3d9855d87e24750d1",()=>b.getAllAgentModels,"00bd27b30e6c35aa39ca5fcf0280d5b3379cd1c07e",()=>g.listGitHubOrganizations,"00d659d7355a2b6a5ffc831e27d33aa2b1bbb99816",()=>e.pickFolder,"40003deaddd47ade1409b6d526755b08eb3be80f0d",()=>B.addRepository,"400962487c8ebd3b1f5ded2ca4a60f8a73406f4f3f",()=>t.createApplication,"400c298d066926bbd45a1cc986940c718482912bf4",()=>q.syncRepository,"400c51000c5d6b72e9ea6f8c5b72d2281b3a54694b",()=>y.startFeature,"40192685e178327248c4ee3e7ed433168089f96062",()=>f.listGitHubRepositories,"401df75e6c7fb8e097b733abb8797bdfcdccbefb47",()=>h.importGitHubRepository,"40249dc44ff0bea67ac4b228d968dd1f704ee4b24f",()=>D.deleteApplication,"402abe7793fe396edf2d669c244fd0eeb370125424",()=>z.stopFeature,"402bf41f2c3cf1b29b445e07ab9a6fe3182e1df2d8",()=>j.deployRepository,"40314c5fc0aabcf152e1d908fe738c3cf40bd70be1",()=>l.stopDeployment,"403a379924950f7ba0c0e57e7c3c960d0624062339",()=>A.unarchiveFeature,"4046888598d39ae43d75963d3ef3cd4e8016324d4b",()=>s.createProjectAndFeature,"40699d7542c74323d1335bc9d1238c872989b4ff95",()=>u.createProjectFolder,"406c2354167c1037f06f5228adc94dcd5e877d721e",()=>r.getDeploymentLogs,"40adf0278807286a3192aa91cc969ad4bf34de24f3",()=>v.archiveFeature,"40bd8b1511738071912093ce876b807d0cb12137cd",()=>o.openShell,"40c7cc76af10154bd904315971383c0c513ef690f6",()=>E.getFeatureMetadata,"40cfe9ccf1af62e1123113d5ba522244a957544f28",()=>i.deployFeature,"40d7b674cc1d8c901818cf7e473218e7a6203fd032",()=>k.deployApplication,"40d902df8a5f576b5aa33b645a7dfaf4b4133f67e6",()=>p.openFolder,"40d9edabf5ce0f2bae3126c6a229398875f507a208",()=>n.openIde,"40f7e19e0c90a0828d68efc73ea956f73a3fc08de5",()=>x.resumeFeature,"40f88f7c0b3d5aad4185d49a932fc0dce113ec0912",()=>m.getDeploymentStatus,"6066fc7a836c30765dbacbf5d8466865b5aa1f9640",()=>C.deleteRepository,"60ddc5a1721764ad79ab273b52c39232c5e9359107",()=>d.updateAgentAndModel,"60f8fa91b2f014c10674fdbd70076519c6a7792419",()=>F.getGitRepoInfo,"788ed56ab07e66ef884d6ce0f77fa46b5034bcfed4",()=>w.deleteFeature],47688)}];
1
+ module.exports=[80496,a=>{"use strict";var b=a.i(92658),c=a.i(2157),d=a.i(60526),e=a.i(50227),f=a.i(74533),g=a.i(12581);let h={darwin:{cmd:"open",args:a=>[a]},linux:{cmd:"xdg-open",args:a=>[a]},win32:{cmd:"explorer",args:a=>[a]}};async function i(a){if(!a||!(0,e.isAbsolute)(a))return{success:!1,error:"repositoryPath must be an absolute path"};try{if(!(0,c.existsSync)(a))return{success:!1,error:"Directory not found"};let b=h[(0,d.platform)()];if(!b)return{success:!1,error:`Unsupported platform: ${(0,d.platform)()}`};let g=(0,e.normalize)(a),i=(0,f.spawn)(b.cmd,b.args(g),{detached:!0,stdio:"ignore"});return i.on("error",()=>void 0),i.unref(),{success:!0,path:a}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to open folder"}}}(0,g.ensureServerEntryExports)([i]),(0,b.registerServerReference)(i,"40acae42186eb8fd217d71a72b4945acf22d89ec18",null),a.s(["openFolder",()=>i])},35556,a=>{"use strict";var b=a.i(92658),c=a.i(74533),d=a.i(12057),e=a.i(12581);let f=(0,d.promisify)(c.execFile);async function g(a,b){let{stdout:c}=await f("git",b,{cwd:a,timeout:5e3});return c.trim()}async function h(a,b=8){if(!a.trim())return{commits:[],branches:[],remotes:[],tags:[],stashCount:0,currentBranch:"",diffStats:null,workingTree:{staged:0,modified:0,untracked:0},error:"Repository path is required"};let c=await Promise.allSettled([g(a,["log",`--max-count=${b}`,"--format=%H%x00%h%x00%s%x00%an%x00%cr","--no-color"]),g(a,["branch","--show-current"]),g(a,["branch","--sort=-committerdate","--format=%(HEAD)%(refname:short)%00%(committerdate:relative)","--no-color"]),g(a,["remote","-v"]),g(a,["tag","--sort=-creatordate","-l","--format=%(refname:short)"]),g(a,["stash","list"]),g(a,["status","--porcelain"]),g(a,["diff","HEAD","--shortstat"])]),d=a=>"fulfilled"===c[a].status?c[a].value:"",e=d(0).split("\n").filter(Boolean).map(a=>{let[b,c,d,e,f]=a.split("\0");return{hash:b,shortHash:c,subject:d,author:e,relativeDate:f}}),f=d(1);e.length>0&&f&&(e[0].branch=f);let i=d(2).split("\n").filter(Boolean).slice(0,10).map(a=>{let b=a.startsWith("*"),[c,d]=(b?a.slice(1):a).split("\0");return{name:c.trim(),isCurrent:b,lastCommitDate:d?.trim()??""}}),j=new Map;d(3).split("\n").filter(Boolean).forEach(a=>{let b=a.match(/^(\S+)\s+(\S+)\s+\(fetch\)/);if(b){let a=b[2].replace(/\/\/[^@]+@/,"//").replace(/x-access-token:[^@]+@/,"");j.set(b[1],a)}});let k=Array.from(j,([a,b])=>({name:a,url:b})),l=d(4).split("\n").filter(Boolean).slice(0,5),m=d(5).split("\n").filter(Boolean).length,n=d(6).split("\n").filter(Boolean),o={staged:0,modified:0,untracked:0};for(let a of n){let b=a[0],c=a[1];"?"===b&&"?"===c?o.untracked++:" "!==b&&"?"!==b&&o.staged++," "!==c&&"?"!==c&&o.modified++}let p=null,q=d(7);if(q){let a=q.match(/(\d+) file/),b=q.match(/(\d+) insertion/),c=q.match(/(\d+) deletion/);p={filesChanged:a?parseInt(a[1],10):0,insertions:b?parseInt(b[1],10):0,deletions:c?parseInt(c[1],10):0}}return{commits:e,branches:i,remotes:k,tags:l,stashCount:m,currentBranch:f,diffStats:p,workingTree:o}}async function i(a,b=10){let c=await h(a,b);return{entries:c.commits,error:c.error}}(0,e.ensureServerEntryExports)([h,i]),(0,b.registerServerReference)(h,"60996b3f1c4e8a5548f23b90cd8dc9699756654c1d",null),(0,b.registerServerReference)(i,"601bb3650a4ed3a15840a1d0fbd517828b7a9ce2ca",null),a.s(["getGitRepoInfo",()=>h])},47688,a=>{"use strict";var b=a.i(23504),c=a.i(8115),d=a.i(27900),e=a.i(12513),f=a.i(73101),g=a.i(54775),h=a.i(65324),i=a.i(33841),j=a.i(46646),k=a.i(68378),l=a.i(68670),m=a.i(85321),n=a.i(84095),o=a.i(56799),p=a.i(80496),q=a.i(93225),r=a.i(94691),s=a.i(77710),t=a.i(45395),u=a.i(76707),v=a.i(10528),w=a.i(50845),x=a.i(26604),y=a.i(54723),z=a.i(18942),A=a.i(42886),B=a.i(49560),C=a.i(39353),D=a.i(95072),E=a.i(29207),F=a.i(35556);a.s([],32214),a.i(32214),a.s(["00121c94c57d97ec959fb5070295c93770416422e8",()=>g.listGitHubOrganizations,"008509d19dd9a2cfbf9d2341a86901b764b3dc843b",()=>b.getAllAgentModels,"00aa5fb0355ecf3b43439642183e35b6ec50560084",()=>e.pickFolder,"00d26e7ff84204c80048090e57fae7733e945583d3",()=>c.checkAllAgentsStatus,"4011ff2cab52aa8731c2ff4a2a21850af05dbd744f",()=>l.stopDeployment,"4024fde93e6e2147dcdaa3f185855d20434a4ddf08",()=>y.startFeature,"4027e1286916f6f8a0ccf9ecf766f94d49f82483f4",()=>k.deployApplication,"402b827b66f4a4690c02f0c2482b9648362444fca3",()=>r.getDeploymentLogs,"402f7d3fbeeedeb3bf32eb4455f5c52c6cbe0c9dbc",()=>s.createProjectAndFeature,"4030634e58faa32adb5207cfeeb903a6bd0c77dcf6",()=>E.getFeatureMetadata,"403d888b0febaea3ca8e976004d7a3930298897064",()=>z.stopFeature,"403dbcc2be173f41862d8862984ef2d0eb34d2b82e",()=>h.importGitHubRepository,"404a03f8b97ac011757753600df767dd92b9f6bfc6",()=>n.openIde,"4066028d782e66210f353ba5777fc5e47ae5186ad5",()=>v.archiveFeature,"40723c9650159ba67a297db1a9aca888d3cc2bca59",()=>q.syncRepository,"40820278a653c830fe0245011a9d21ba971809c0fe",()=>j.deployRepository,"408345ac0b52fea08ca72b167c801d9b1b71a493b0",()=>D.deleteApplication,"4095a62107e998ea83afe905499439978bf697fb7d",()=>f.listGitHubRepositories,"40acae42186eb8fd217d71a72b4945acf22d89ec18",()=>p.openFolder,"40afc7125f38f319a56310312639e9772d5b330d7f",()=>u.createProjectFolder,"40b9f24b532374b29dec79c0541b43e2fffc9feafb",()=>o.openShell,"40bb9c2a45d41de0c78ea76f48c10f92884a5ccfb2",()=>B.addRepository,"40bd8f510d8e1649401a50167192ab2986af619ece",()=>t.createApplication,"40c35fbaa75aedc7ebc4ee7e6c3f5426183b102c46",()=>A.unarchiveFeature,"40ce1870834f727e931b1cf59ab354e7e8681e5a6f",()=>i.deployFeature,"40d2e35c3115af12d99ec265235ac234fe3d507793",()=>x.resumeFeature,"40e55c0879b8765841c0ef0e08cbdb2e8b4acd4888",()=>m.getDeploymentStatus,"6018195d0d10db5aaf9e274b10230a249a9d4f96a3",()=>C.deleteRepository,"60996b3f1c4e8a5548f23b90cd8dc9699756654c1d",()=>F.getGitRepoInfo,"60fb317496dd3a25d29885828ee97f7cd47105920d",()=>d.updateAgentAndModel,"78921b2703fb4d716a0043589cf819b56dc9dbd32c",()=>w.deleteFeature],47688)}];
2
2
 
3
3
  //# sourceMappingURL=src_presentation_web_6326f81e._.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/app/actions/open-folder.ts","../../../../../../../src/presentation/web/app/actions/get-git-log.ts","../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/repository/%5BrepositoryId%5D/%5Btab%5D/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["'use server';\n\nimport { existsSync } from 'node:fs';\nimport { platform } from 'node:os';\nimport { isAbsolute, normalize } from 'node:path';\nimport { spawn } from 'node:child_process';\n\n// Use a record lookup instead of if/else to prevent the bundler from\n// tree-shaking platform branches at build time. Turbopack evaluates\n// os.platform() during the build and dead-code-eliminates unused branches,\n// baking in the CI platform (linux) and breaking macOS/Windows installs.\nconst FOLDER_COMMANDS: Record<string, { cmd: string; args: (path: string) => string[] }> = {\n darwin: { cmd: 'open', args: (p) => [p] },\n linux: { cmd: 'xdg-open', args: (p) => [p] },\n win32: { cmd: 'explorer', args: (p) => [p] },\n};\n\nexport async function openFolder(\n repositoryPath: string\n): Promise<{ success: boolean; error?: string; path?: string }> {\n if (!repositoryPath || !isAbsolute(repositoryPath)) {\n return { success: false, error: 'repositoryPath must be an absolute path' };\n }\n\n try {\n if (!existsSync(repositoryPath)) {\n return { success: false, error: 'Directory not found' };\n }\n\n const entry = FOLDER_COMMANDS[platform()];\n if (!entry) {\n return {\n success: false,\n error: `Unsupported platform: ${platform()}`,\n };\n }\n\n // Normalize to platform-native separators — explorer.exe on Windows\n // does not understand forward-slash paths and falls back to Documents.\n const nativePath = normalize(repositoryPath);\n\n const child = spawn(entry.cmd, entry.args(nativePath), {\n detached: true,\n stdio: 'ignore',\n });\n child.on('error', () => undefined); // Prevent uncaught exception on spawn failure\n child.unref();\n\n return { success: true, path: repositoryPath };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to open folder';\n return { success: false, error: message };\n }\n}\n","'use server';\n\nimport { execFile } from 'node:child_process';\nimport { promisify } from 'node:util';\n\nconst execFileAsync = promisify(execFile);\n\nasync function git(cwd: string, args: string[]): Promise<string> {\n const { stdout } = await execFileAsync('git', args, { cwd, timeout: 5000 });\n return stdout.trim();\n}\n\nexport interface GitLogEntry {\n hash: string;\n shortHash: string;\n subject: string;\n author: string;\n relativeDate: string;\n branch?: string;\n}\n\nexport interface GitBranchInfo {\n name: string;\n isCurrent: boolean;\n lastCommitDate: string;\n}\n\nexport interface GitRemoteInfo {\n name: string;\n url: string;\n}\n\nexport interface GitWorkingTreeStatus {\n staged: number;\n modified: number;\n untracked: number;\n}\n\nexport interface GitDiffStats {\n filesChanged: number;\n insertions: number;\n deletions: number;\n}\n\nexport interface GitRepoInfo {\n commits: GitLogEntry[];\n branches: GitBranchInfo[];\n remotes: GitRemoteInfo[];\n tags: string[];\n stashCount: number;\n currentBranch: string;\n diffStats: GitDiffStats | null;\n workingTree: GitWorkingTreeStatus;\n error?: string;\n}\n\nexport async function getGitRepoInfo(\n repositoryPath: string,\n commitLimit = 8\n): Promise<GitRepoInfo> {\n const empty: GitRepoInfo = {\n commits: [],\n branches: [],\n remotes: [],\n tags: [],\n stashCount: 0,\n currentBranch: '',\n diffStats: null,\n workingTree: { staged: 0, modified: 0, untracked: 0 },\n };\n\n if (!repositoryPath.trim()) {\n return { ...empty, error: 'Repository path is required' };\n }\n\n const results = await Promise.allSettled([\n // 0: commits\n git(repositoryPath, [\n 'log',\n `--max-count=${commitLimit}`,\n '--format=%H%x00%h%x00%s%x00%an%x00%cr',\n '--no-color',\n ]),\n // 1: current branch\n git(repositoryPath, ['branch', '--show-current']),\n // 2: branches with dates\n git(repositoryPath, [\n 'branch',\n '--sort=-committerdate',\n '--format=%(HEAD)%(refname:short)%00%(committerdate:relative)',\n '--no-color',\n ]),\n // 3: remotes\n git(repositoryPath, ['remote', '-v']),\n // 4: tags (recent 5)\n git(repositoryPath, ['tag', '--sort=-creatordate', '-l', '--format=%(refname:short)']),\n // 5: stash count\n git(repositoryPath, ['stash', 'list']),\n // 6: working tree status\n git(repositoryPath, ['status', '--porcelain']),\n // 7: diff stats (uncommitted — includes staged + unstaged vs HEAD)\n git(repositoryPath, ['diff', 'HEAD', '--shortstat']),\n ]);\n\n const val = (i: number) => (results[i].status === 'fulfilled' ? results[i].value : '');\n\n // Parse commits\n const commits: GitLogEntry[] = val(0)\n .split('\\n')\n .filter(Boolean)\n .map((line: string) => {\n const [hash, shortHash, subject, author, relativeDate] = line.split('\\0');\n return { hash, shortHash, subject, author, relativeDate };\n });\n\n const currentBranch = val(1);\n if (commits.length > 0 && currentBranch) {\n commits[0].branch = currentBranch;\n }\n\n // Parse branches\n const branches: GitBranchInfo[] = val(2)\n .split('\\n')\n .filter(Boolean)\n .slice(0, 10)\n .map((line: string) => {\n const isCurrent = line.startsWith('*');\n const clean = isCurrent ? line.slice(1) : line;\n const [name, lastCommitDate] = clean.split('\\0');\n return { name: name.trim(), isCurrent, lastCommitDate: lastCommitDate?.trim() ?? '' };\n });\n\n // Parse remotes (dedup fetch/push)\n const remoteMap = new Map<string, string>();\n val(3)\n .split('\\n')\n .filter(Boolean)\n .forEach((line: string) => {\n const match = line.match(/^(\\S+)\\s+(\\S+)\\s+\\(fetch\\)/);\n if (match) {\n // Strip credentials/tokens from URL before sending to client\n const sanitized = match[2].replace(/\\/\\/[^@]+@/, '//').replace(/x-access-token:[^@]+@/, '');\n remoteMap.set(match[1], sanitized);\n }\n });\n const remotes: GitRemoteInfo[] = Array.from(remoteMap, ([name, url]) => ({ name, url }));\n\n // Parse tags (top 5)\n const tags = val(4).split('\\n').filter(Boolean).slice(0, 5);\n\n // Stash count\n const stashCount = val(5).split('\\n').filter(Boolean).length;\n\n // Working tree status\n const statusLines = val(6).split('\\n').filter(Boolean);\n const workingTree: GitWorkingTreeStatus = { staged: 0, modified: 0, untracked: 0 };\n for (const line of statusLines) {\n const x = line[0];\n const y = line[1];\n if (x === '?' && y === '?') workingTree.untracked++;\n else if (x !== ' ' && x !== '?') workingTree.staged++;\n if (y !== ' ' && y !== '?') workingTree.modified++;\n }\n\n // Diff stats\n let diffStats: GitDiffStats | null = null;\n const diffLine = val(7);\n if (diffLine) {\n const files = diffLine.match(/(\\d+) file/);\n const ins = diffLine.match(/(\\d+) insertion/);\n const del = diffLine.match(/(\\d+) deletion/);\n diffStats = {\n filesChanged: files ? parseInt(files[1], 10) : 0,\n insertions: ins ? parseInt(ins[1], 10) : 0,\n deletions: del ? parseInt(del[1], 10) : 0,\n };\n }\n\n return { commits, branches, remotes, tags, stashCount, currentBranch, diffStats, workingTree };\n}\n\n// Keep backward compat\nexport async function getGitLog(\n repositoryPath: string,\n limit = 10\n): Promise<{ entries: GitLogEntry[]; error?: string }> {\n const info = await getGitRepoInfo(repositoryPath, limit);\n return { entries: info.commits, error: info.error };\n}\n","export {getAllAgentModels as '003d0efbae2ee51b84f36569a3d9855d87e24750d1'} from 'ACTIONS_MODULE0'\nexport {checkAllAgentsStatus as '0023077826973eb66acc97360f2324aa92fc4b7eaf'} from 'ACTIONS_MODULE1'\nexport {updateAgentAndModel as '60ddc5a1721764ad79ab273b52c39232c5e9359107'} from 'ACTIONS_MODULE2'\nexport {pickFolder as '00d659d7355a2b6a5ffc831e27d33aa2b1bbb99816'} from 'ACTIONS_MODULE3'\nexport {listGitHubRepositories as '40192685e178327248c4ee3e7ed433168089f96062'} from 'ACTIONS_MODULE4'\nexport {listGitHubOrganizations as '00bd27b30e6c35aa39ca5fcf0280d5b3379cd1c07e'} from 'ACTIONS_MODULE5'\nexport {importGitHubRepository as '401df75e6c7fb8e097b733abb8797bdfcdccbefb47'} from 'ACTIONS_MODULE6'\nexport {deployFeature as '40cfe9ccf1af62e1123113d5ba522244a957544f28'} from 'ACTIONS_MODULE7'\nexport {deployRepository as '402bf41f2c3cf1b29b445e07ab9a6fe3182e1df2d8'} from 'ACTIONS_MODULE8'\nexport {deployApplication as '40d7b674cc1d8c901818cf7e473218e7a6203fd032'} from 'ACTIONS_MODULE9'\nexport {stopDeployment as '40314c5fc0aabcf152e1d908fe738c3cf40bd70be1'} from 'ACTIONS_MODULE10'\nexport {getDeploymentStatus as '40f88f7c0b3d5aad4185d49a932fc0dce113ec0912'} from 'ACTIONS_MODULE11'\nexport {openIde as '40d9edabf5ce0f2bae3126c6a229398875f507a208'} from 'ACTIONS_MODULE12'\nexport {openShell as '40bd8b1511738071912093ce876b807d0cb12137cd'} from 'ACTIONS_MODULE13'\nexport {openFolder as '40d902df8a5f576b5aa33b645a7dfaf4b4133f67e6'} from 'ACTIONS_MODULE14'\nexport {syncRepository as '400c298d066926bbd45a1cc986940c718482912bf4'} from 'ACTIONS_MODULE15'\nexport {getDeploymentLogs as '406c2354167c1037f06f5228adc94dcd5e877d721e'} from 'ACTIONS_MODULE16'\nexport {createProjectAndFeature as '4046888598d39ae43d75963d3ef3cd4e8016324d4b'} from 'ACTIONS_MODULE17'\nexport {createApplication as '400962487c8ebd3b1f5ded2ca4a60f8a73406f4f3f'} from 'ACTIONS_MODULE18'\nexport {createProjectFolder as '40699d7542c74323d1335bc9d1238c872989b4ff95'} from 'ACTIONS_MODULE19'\nexport {archiveFeature as '40adf0278807286a3192aa91cc969ad4bf34de24f3'} from 'ACTIONS_MODULE20'\nexport {deleteFeature as '788ed56ab07e66ef884d6ce0f77fa46b5034bcfed4'} from 'ACTIONS_MODULE21'\nexport {resumeFeature as '40f7e19e0c90a0828d68efc73ea956f73a3fc08de5'} from 'ACTIONS_MODULE22'\nexport {startFeature as '400c51000c5d6b72e9ea6f8c5b72d2281b3a54694b'} from 'ACTIONS_MODULE23'\nexport {stopFeature as '402abe7793fe396edf2d669c244fd0eeb370125424'} from 'ACTIONS_MODULE24'\nexport {unarchiveFeature as '403a379924950f7ba0c0e57e7c3c960d0624062339'} from 'ACTIONS_MODULE25'\nexport {addRepository as '40003deaddd47ade1409b6d526755b08eb3be80f0d'} from 'ACTIONS_MODULE26'\nexport {deleteRepository as '6066fc7a836c30765dbacbf5d8466865b5aa1f9640'} from 'ACTIONS_MODULE27'\nexport {deleteApplication as '40249dc44ff0bea67ac4b228d968dd1f704ee4b24f'} from 'ACTIONS_MODULE28'\nexport {getFeatureMetadata as '40c7cc76af10154bd904315971383c0c513ef690f6'} from 'ACTIONS_MODULE29'\nexport {getGitRepoInfo as '60f8fa91b2f014c10674fdbd70076519c6a7792419'} from 'ACTIONS_MODULE30'\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../../src/presentation/web/app/actions/open-folder.ts","../../../../../../../src/presentation/web/app/actions/get-git-log.ts","../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/repository/%5BrepositoryId%5D/%5Btab%5D/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["'use server';\n\nimport { existsSync } from 'node:fs';\nimport { platform } from 'node:os';\nimport { isAbsolute, normalize } from 'node:path';\nimport { spawn } from 'node:child_process';\n\n// Use a record lookup instead of if/else to prevent the bundler from\n// tree-shaking platform branches at build time. Turbopack evaluates\n// os.platform() during the build and dead-code-eliminates unused branches,\n// baking in the CI platform (linux) and breaking macOS/Windows installs.\nconst FOLDER_COMMANDS: Record<string, { cmd: string; args: (path: string) => string[] }> = {\n darwin: { cmd: 'open', args: (p) => [p] },\n linux: { cmd: 'xdg-open', args: (p) => [p] },\n win32: { cmd: 'explorer', args: (p) => [p] },\n};\n\nexport async function openFolder(\n repositoryPath: string\n): Promise<{ success: boolean; error?: string; path?: string }> {\n if (!repositoryPath || !isAbsolute(repositoryPath)) {\n return { success: false, error: 'repositoryPath must be an absolute path' };\n }\n\n try {\n if (!existsSync(repositoryPath)) {\n return { success: false, error: 'Directory not found' };\n }\n\n const entry = FOLDER_COMMANDS[platform()];\n if (!entry) {\n return {\n success: false,\n error: `Unsupported platform: ${platform()}`,\n };\n }\n\n // Normalize to platform-native separators — explorer.exe on Windows\n // does not understand forward-slash paths and falls back to Documents.\n const nativePath = normalize(repositoryPath);\n\n const child = spawn(entry.cmd, entry.args(nativePath), {\n detached: true,\n stdio: 'ignore',\n });\n child.on('error', () => undefined); // Prevent uncaught exception on spawn failure\n child.unref();\n\n return { success: true, path: repositoryPath };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to open folder';\n return { success: false, error: message };\n }\n}\n","'use server';\n\nimport { execFile } from 'node:child_process';\nimport { promisify } from 'node:util';\n\nconst execFileAsync = promisify(execFile);\n\nasync function git(cwd: string, args: string[]): Promise<string> {\n const { stdout } = await execFileAsync('git', args, { cwd, timeout: 5000 });\n return stdout.trim();\n}\n\nexport interface GitLogEntry {\n hash: string;\n shortHash: string;\n subject: string;\n author: string;\n relativeDate: string;\n branch?: string;\n}\n\nexport interface GitBranchInfo {\n name: string;\n isCurrent: boolean;\n lastCommitDate: string;\n}\n\nexport interface GitRemoteInfo {\n name: string;\n url: string;\n}\n\nexport interface GitWorkingTreeStatus {\n staged: number;\n modified: number;\n untracked: number;\n}\n\nexport interface GitDiffStats {\n filesChanged: number;\n insertions: number;\n deletions: number;\n}\n\nexport interface GitRepoInfo {\n commits: GitLogEntry[];\n branches: GitBranchInfo[];\n remotes: GitRemoteInfo[];\n tags: string[];\n stashCount: number;\n currentBranch: string;\n diffStats: GitDiffStats | null;\n workingTree: GitWorkingTreeStatus;\n error?: string;\n}\n\nexport async function getGitRepoInfo(\n repositoryPath: string,\n commitLimit = 8\n): Promise<GitRepoInfo> {\n const empty: GitRepoInfo = {\n commits: [],\n branches: [],\n remotes: [],\n tags: [],\n stashCount: 0,\n currentBranch: '',\n diffStats: null,\n workingTree: { staged: 0, modified: 0, untracked: 0 },\n };\n\n if (!repositoryPath.trim()) {\n return { ...empty, error: 'Repository path is required' };\n }\n\n const results = await Promise.allSettled([\n // 0: commits\n git(repositoryPath, [\n 'log',\n `--max-count=${commitLimit}`,\n '--format=%H%x00%h%x00%s%x00%an%x00%cr',\n '--no-color',\n ]),\n // 1: current branch\n git(repositoryPath, ['branch', '--show-current']),\n // 2: branches with dates\n git(repositoryPath, [\n 'branch',\n '--sort=-committerdate',\n '--format=%(HEAD)%(refname:short)%00%(committerdate:relative)',\n '--no-color',\n ]),\n // 3: remotes\n git(repositoryPath, ['remote', '-v']),\n // 4: tags (recent 5)\n git(repositoryPath, ['tag', '--sort=-creatordate', '-l', '--format=%(refname:short)']),\n // 5: stash count\n git(repositoryPath, ['stash', 'list']),\n // 6: working tree status\n git(repositoryPath, ['status', '--porcelain']),\n // 7: diff stats (uncommitted — includes staged + unstaged vs HEAD)\n git(repositoryPath, ['diff', 'HEAD', '--shortstat']),\n ]);\n\n const val = (i: number) => (results[i].status === 'fulfilled' ? results[i].value : '');\n\n // Parse commits\n const commits: GitLogEntry[] = val(0)\n .split('\\n')\n .filter(Boolean)\n .map((line: string) => {\n const [hash, shortHash, subject, author, relativeDate] = line.split('\\0');\n return { hash, shortHash, subject, author, relativeDate };\n });\n\n const currentBranch = val(1);\n if (commits.length > 0 && currentBranch) {\n commits[0].branch = currentBranch;\n }\n\n // Parse branches\n const branches: GitBranchInfo[] = val(2)\n .split('\\n')\n .filter(Boolean)\n .slice(0, 10)\n .map((line: string) => {\n const isCurrent = line.startsWith('*');\n const clean = isCurrent ? line.slice(1) : line;\n const [name, lastCommitDate] = clean.split('\\0');\n return { name: name.trim(), isCurrent, lastCommitDate: lastCommitDate?.trim() ?? '' };\n });\n\n // Parse remotes (dedup fetch/push)\n const remoteMap = new Map<string, string>();\n val(3)\n .split('\\n')\n .filter(Boolean)\n .forEach((line: string) => {\n const match = line.match(/^(\\S+)\\s+(\\S+)\\s+\\(fetch\\)/);\n if (match) {\n // Strip credentials/tokens from URL before sending to client\n const sanitized = match[2].replace(/\\/\\/[^@]+@/, '//').replace(/x-access-token:[^@]+@/, '');\n remoteMap.set(match[1], sanitized);\n }\n });\n const remotes: GitRemoteInfo[] = Array.from(remoteMap, ([name, url]) => ({ name, url }));\n\n // Parse tags (top 5)\n const tags = val(4).split('\\n').filter(Boolean).slice(0, 5);\n\n // Stash count\n const stashCount = val(5).split('\\n').filter(Boolean).length;\n\n // Working tree status\n const statusLines = val(6).split('\\n').filter(Boolean);\n const workingTree: GitWorkingTreeStatus = { staged: 0, modified: 0, untracked: 0 };\n for (const line of statusLines) {\n const x = line[0];\n const y = line[1];\n if (x === '?' && y === '?') workingTree.untracked++;\n else if (x !== ' ' && x !== '?') workingTree.staged++;\n if (y !== ' ' && y !== '?') workingTree.modified++;\n }\n\n // Diff stats\n let diffStats: GitDiffStats | null = null;\n const diffLine = val(7);\n if (diffLine) {\n const files = diffLine.match(/(\\d+) file/);\n const ins = diffLine.match(/(\\d+) insertion/);\n const del = diffLine.match(/(\\d+) deletion/);\n diffStats = {\n filesChanged: files ? parseInt(files[1], 10) : 0,\n insertions: ins ? parseInt(ins[1], 10) : 0,\n deletions: del ? parseInt(del[1], 10) : 0,\n };\n }\n\n return { commits, branches, remotes, tags, stashCount, currentBranch, diffStats, workingTree };\n}\n\n// Keep backward compat\nexport async function getGitLog(\n repositoryPath: string,\n limit = 10\n): Promise<{ entries: GitLogEntry[]; error?: string }> {\n const info = await getGitRepoInfo(repositoryPath, limit);\n return { entries: info.commits, error: info.error };\n}\n","export {getAllAgentModels as '008509d19dd9a2cfbf9d2341a86901b764b3dc843b'} from 'ACTIONS_MODULE0'\nexport {checkAllAgentsStatus as '00d26e7ff84204c80048090e57fae7733e945583d3'} from 'ACTIONS_MODULE1'\nexport {updateAgentAndModel as '60fb317496dd3a25d29885828ee97f7cd47105920d'} from 'ACTIONS_MODULE2'\nexport {pickFolder as '00aa5fb0355ecf3b43439642183e35b6ec50560084'} from 'ACTIONS_MODULE3'\nexport {listGitHubRepositories as '4095a62107e998ea83afe905499439978bf697fb7d'} from 'ACTIONS_MODULE4'\nexport {listGitHubOrganizations as '00121c94c57d97ec959fb5070295c93770416422e8'} from 'ACTIONS_MODULE5'\nexport {importGitHubRepository as '403dbcc2be173f41862d8862984ef2d0eb34d2b82e'} from 'ACTIONS_MODULE6'\nexport {deployFeature as '40ce1870834f727e931b1cf59ab354e7e8681e5a6f'} from 'ACTIONS_MODULE7'\nexport {deployRepository as '40820278a653c830fe0245011a9d21ba971809c0fe'} from 'ACTIONS_MODULE8'\nexport {deployApplication as '4027e1286916f6f8a0ccf9ecf766f94d49f82483f4'} from 'ACTIONS_MODULE9'\nexport {stopDeployment as '4011ff2cab52aa8731c2ff4a2a21850af05dbd744f'} from 'ACTIONS_MODULE10'\nexport {getDeploymentStatus as '40e55c0879b8765841c0ef0e08cbdb2e8b4acd4888'} from 'ACTIONS_MODULE11'\nexport {openIde as '404a03f8b97ac011757753600df767dd92b9f6bfc6'} from 'ACTIONS_MODULE12'\nexport {openShell as '40b9f24b532374b29dec79c0541b43e2fffc9feafb'} from 'ACTIONS_MODULE13'\nexport {openFolder as '40acae42186eb8fd217d71a72b4945acf22d89ec18'} from 'ACTIONS_MODULE14'\nexport {syncRepository as '40723c9650159ba67a297db1a9aca888d3cc2bca59'} from 'ACTIONS_MODULE15'\nexport {getDeploymentLogs as '402b827b66f4a4690c02f0c2482b9648362444fca3'} from 'ACTIONS_MODULE16'\nexport {createProjectAndFeature as '402f7d3fbeeedeb3bf32eb4455f5c52c6cbe0c9dbc'} from 'ACTIONS_MODULE17'\nexport {createApplication as '40bd8f510d8e1649401a50167192ab2986af619ece'} from 'ACTIONS_MODULE18'\nexport {createProjectFolder as '40afc7125f38f319a56310312639e9772d5b330d7f'} from 'ACTIONS_MODULE19'\nexport {archiveFeature as '4066028d782e66210f353ba5777fc5e47ae5186ad5'} from 'ACTIONS_MODULE20'\nexport {deleteFeature as '78921b2703fb4d716a0043589cf819b56dc9dbd32c'} from 'ACTIONS_MODULE21'\nexport {resumeFeature as '40d2e35c3115af12d99ec265235ac234fe3d507793'} from 'ACTIONS_MODULE22'\nexport {startFeature as '4024fde93e6e2147dcdaa3f185855d20434a4ddf08'} from 'ACTIONS_MODULE23'\nexport {stopFeature as '403d888b0febaea3ca8e976004d7a3930298897064'} from 'ACTIONS_MODULE24'\nexport {unarchiveFeature as '40c35fbaa75aedc7ebc4ee7e6c3f5426183b102c46'} from 'ACTIONS_MODULE25'\nexport {addRepository as '40bb9c2a45d41de0c78ea76f48c10f92884a5ccfb2'} from 'ACTIONS_MODULE26'\nexport {deleteRepository as '6018195d0d10db5aaf9e274b10230a249a9d4f96a3'} from 'ACTIONS_MODULE27'\nexport {deleteApplication as '408345ac0b52fea08ca72b167c801d9b1b71a493b0'} from 'ACTIONS_MODULE28'\nexport {getFeatureMetadata as '4030634e58faa32adb5207cfeeb903a6bd0c77dcf6'} from 'ACTIONS_MODULE29'\nexport {getGitRepoInfo as '60996b3f1c4e8a5548f23b90cd8dc9699756654c1d'} from 'ACTIONS_MODULE30'\n"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- module.exports=[80496,a=>{"use strict";var b=a.i(92658),c=a.i(2157),d=a.i(60526),e=a.i(50227),f=a.i(74533),g=a.i(12581);let h={darwin:{cmd:"open",args:a=>[a]},linux:{cmd:"xdg-open",args:a=>[a]},win32:{cmd:"explorer",args:a=>[a]}};async function i(a){if(!a||!(0,e.isAbsolute)(a))return{success:!1,error:"repositoryPath must be an absolute path"};try{if(!(0,c.existsSync)(a))return{success:!1,error:"Directory not found"};let b=h[(0,d.platform)()];if(!b)return{success:!1,error:`Unsupported platform: ${(0,d.platform)()}`};let g=(0,e.normalize)(a),i=(0,f.spawn)(b.cmd,b.args(g),{detached:!0,stdio:"ignore"});return i.on("error",()=>void 0),i.unref(),{success:!0,path:a}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to open folder"}}}(0,g.ensureServerEntryExports)([i]),(0,b.registerServerReference)(i,"40d902df8a5f576b5aa33b645a7dfaf4b4133f67e6",null),a.s(["openFolder",()=>i])},24860,19720,a=>{"use strict";var b=a.i(92658),c=a.i(33244),d=a.i(12581);async function e(){let{workflow:a}=(0,c.getSettings)();return{approvalGates:{allowPrd:a.approvalGateDefaults.allowPrd,allowPlan:a.approvalGateDefaults.allowPlan,allowMerge:a.approvalGateDefaults.allowMerge},push:a.approvalGateDefaults.pushOnImplementationComplete,openPr:a.openPrOnImplementationComplete,ciWatchEnabled:a.ciWatchEnabled,enableEvidence:a.enableEvidence,commitEvidence:a.commitEvidence,fast:a.defaultFastMode,injectSkills:a.skillInjection?.enabled??!1}}(0,d.ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"00b377cba6c794f2eab4ff78f2016353e723e305c2",null),a.s(["getWorkflowDefaults",()=>e],24860);var f=a.i(96380);let g=new Set(["ADMIN","MAINTAIN","WRITE"]);async function h(a){try{let b=(0,f.resolve)("IGitHubRepositoryService"),c=await b.getViewerPermission(a);return{canPushDirectly:g.has(c)}}catch{return{canPushDirectly:!1}}}(0,d.ensureServerEntryExports)([h]),(0,b.registerServerReference)(h,"40e94d549a1b2ad0387ebfe8cd8e7d09a8802daa83",null),a.s(["getViewerPermission",()=>h],19720)},25637,a=>{"use strict";var b=a.i(23504),c=a.i(8115),d=a.i(27900),e=a.i(12513),f=a.i(73101),g=a.i(54775),h=a.i(65324),i=a.i(33841),j=a.i(46646),k=a.i(68378),l=a.i(68670),m=a.i(85321),n=a.i(84095),o=a.i(56799),p=a.i(80496),q=a.i(93225),r=a.i(94691),s=a.i(77710),t=a.i(45395),u=a.i(76707),v=a.i(10528),w=a.i(50845),x=a.i(26604),y=a.i(54723),z=a.i(18942),A=a.i(42886),B=a.i(49560),C=a.i(39353),D=a.i(95072),E=a.i(29207),F=a.i(24860),G=a.i(19720),H=a.i(77605);a.s([],313),a.i(313),a.s(["0023077826973eb66acc97360f2324aa92fc4b7eaf",()=>c.checkAllAgentsStatus,"003d0efbae2ee51b84f36569a3d9855d87e24750d1",()=>b.getAllAgentModels,"00b377cba6c794f2eab4ff78f2016353e723e305c2",()=>F.getWorkflowDefaults,"00bd27b30e6c35aa39ca5fcf0280d5b3379cd1c07e",()=>g.listGitHubOrganizations,"00d659d7355a2b6a5ffc831e27d33aa2b1bbb99816",()=>e.pickFolder,"40003deaddd47ade1409b6d526755b08eb3be80f0d",()=>B.addRepository,"400962487c8ebd3b1f5ded2ca4a60f8a73406f4f3f",()=>t.createApplication,"400c298d066926bbd45a1cc986940c718482912bf4",()=>q.syncRepository,"400c51000c5d6b72e9ea6f8c5b72d2281b3a54694b",()=>y.startFeature,"40192685e178327248c4ee3e7ed433168089f96062",()=>f.listGitHubRepositories,"401df75e6c7fb8e097b733abb8797bdfcdccbefb47",()=>h.importGitHubRepository,"40249dc44ff0bea67ac4b228d968dd1f704ee4b24f",()=>D.deleteApplication,"402abe7793fe396edf2d669c244fd0eeb370125424",()=>z.stopFeature,"402bf41f2c3cf1b29b445e07ab9a6fe3182e1df2d8",()=>j.deployRepository,"40314c5fc0aabcf152e1d908fe738c3cf40bd70be1",()=>l.stopDeployment,"403a379924950f7ba0c0e57e7c3c960d0624062339",()=>A.unarchiveFeature,"4046888598d39ae43d75963d3ef3cd4e8016324d4b",()=>s.createProjectAndFeature,"40699d7542c74323d1335bc9d1238c872989b4ff95",()=>u.createProjectFolder,"406c2354167c1037f06f5228adc94dcd5e877d721e",()=>r.getDeploymentLogs,"40adf0278807286a3192aa91cc969ad4bf34de24f3",()=>v.archiveFeature,"40bd8b1511738071912093ce876b807d0cb12137cd",()=>o.openShell,"40c7cc76af10154bd904315971383c0c513ef690f6",()=>E.getFeatureMetadata,"40cfbdcca08cd1c0a38f8655b5cec9e55a665cf783",()=>H.createFeature,"40cfe9ccf1af62e1123113d5ba522244a957544f28",()=>i.deployFeature,"40d7b674cc1d8c901818cf7e473218e7a6203fd032",()=>k.deployApplication,"40d902df8a5f576b5aa33b645a7dfaf4b4133f67e6",()=>p.openFolder,"40d9edabf5ce0f2bae3126c6a229398875f507a208",()=>n.openIde,"40e94d549a1b2ad0387ebfe8cd8e7d09a8802daa83",()=>G.getViewerPermission,"40f7e19e0c90a0828d68efc73ea956f73a3fc08de5",()=>x.resumeFeature,"40f88f7c0b3d5aad4185d49a932fc0dce113ec0912",()=>m.getDeploymentStatus,"6066fc7a836c30765dbacbf5d8466865b5aa1f9640",()=>C.deleteRepository,"60ddc5a1721764ad79ab273b52c39232c5e9359107",()=>d.updateAgentAndModel,"788ed56ab07e66ef884d6ce0f77fa46b5034bcfed4",()=>w.deleteFeature],25637)}];
1
+ module.exports=[80496,a=>{"use strict";var b=a.i(92658),c=a.i(2157),d=a.i(60526),e=a.i(50227),f=a.i(74533),g=a.i(12581);let h={darwin:{cmd:"open",args:a=>[a]},linux:{cmd:"xdg-open",args:a=>[a]},win32:{cmd:"explorer",args:a=>[a]}};async function i(a){if(!a||!(0,e.isAbsolute)(a))return{success:!1,error:"repositoryPath must be an absolute path"};try{if(!(0,c.existsSync)(a))return{success:!1,error:"Directory not found"};let b=h[(0,d.platform)()];if(!b)return{success:!1,error:`Unsupported platform: ${(0,d.platform)()}`};let g=(0,e.normalize)(a),i=(0,f.spawn)(b.cmd,b.args(g),{detached:!0,stdio:"ignore"});return i.on("error",()=>void 0),i.unref(),{success:!0,path:a}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to open folder"}}}(0,g.ensureServerEntryExports)([i]),(0,b.registerServerReference)(i,"40acae42186eb8fd217d71a72b4945acf22d89ec18",null),a.s(["openFolder",()=>i])},24860,19720,a=>{"use strict";var b=a.i(92658),c=a.i(33244),d=a.i(12581);async function e(){let{workflow:a}=(0,c.getSettings)();return{approvalGates:{allowPrd:a.approvalGateDefaults.allowPrd,allowPlan:a.approvalGateDefaults.allowPlan,allowMerge:a.approvalGateDefaults.allowMerge},push:a.approvalGateDefaults.pushOnImplementationComplete,openPr:a.openPrOnImplementationComplete,ciWatchEnabled:a.ciWatchEnabled,enableEvidence:a.enableEvidence,commitEvidence:a.commitEvidence,fast:a.defaultFastMode,injectSkills:a.skillInjection?.enabled??!1}}(0,d.ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"000ceee2fe57ea22361dbef2f4e190f659e96e5228",null),a.s(["getWorkflowDefaults",()=>e],24860);var f=a.i(96380);let g=new Set(["ADMIN","MAINTAIN","WRITE"]);async function h(a){try{let b=(0,f.resolve)("IGitHubRepositoryService"),c=await b.getViewerPermission(a);return{canPushDirectly:g.has(c)}}catch{return{canPushDirectly:!1}}}(0,d.ensureServerEntryExports)([h]),(0,b.registerServerReference)(h,"406a712ec0184b65e76aa84c1afbc72a461babb331",null),a.s(["getViewerPermission",()=>h],19720)},25637,a=>{"use strict";var b=a.i(23504),c=a.i(8115),d=a.i(27900),e=a.i(12513),f=a.i(73101),g=a.i(54775),h=a.i(65324),i=a.i(33841),j=a.i(46646),k=a.i(68378),l=a.i(68670),m=a.i(85321),n=a.i(84095),o=a.i(56799),p=a.i(80496),q=a.i(93225),r=a.i(94691),s=a.i(77710),t=a.i(45395),u=a.i(76707),v=a.i(10528),w=a.i(50845),x=a.i(26604),y=a.i(54723),z=a.i(18942),A=a.i(42886),B=a.i(49560),C=a.i(39353),D=a.i(95072),E=a.i(29207),F=a.i(24860),G=a.i(19720),H=a.i(77605);a.s([],313),a.i(313),a.s(["000ceee2fe57ea22361dbef2f4e190f659e96e5228",()=>F.getWorkflowDefaults,"00121c94c57d97ec959fb5070295c93770416422e8",()=>g.listGitHubOrganizations,"008509d19dd9a2cfbf9d2341a86901b764b3dc843b",()=>b.getAllAgentModels,"00aa5fb0355ecf3b43439642183e35b6ec50560084",()=>e.pickFolder,"00d26e7ff84204c80048090e57fae7733e945583d3",()=>c.checkAllAgentsStatus,"4011ff2cab52aa8731c2ff4a2a21850af05dbd744f",()=>l.stopDeployment,"4024fde93e6e2147dcdaa3f185855d20434a4ddf08",()=>y.startFeature,"4027e1286916f6f8a0ccf9ecf766f94d49f82483f4",()=>k.deployApplication,"402b827b66f4a4690c02f0c2482b9648362444fca3",()=>r.getDeploymentLogs,"402f7d3fbeeedeb3bf32eb4455f5c52c6cbe0c9dbc",()=>s.createProjectAndFeature,"4030634e58faa32adb5207cfeeb903a6bd0c77dcf6",()=>E.getFeatureMetadata,"403d888b0febaea3ca8e976004d7a3930298897064",()=>z.stopFeature,"403dbcc2be173f41862d8862984ef2d0eb34d2b82e",()=>h.importGitHubRepository,"404a03f8b97ac011757753600df767dd92b9f6bfc6",()=>n.openIde,"4066028d782e66210f353ba5777fc5e47ae5186ad5",()=>v.archiveFeature,"406a712ec0184b65e76aa84c1afbc72a461babb331",()=>G.getViewerPermission,"40723c9650159ba67a297db1a9aca888d3cc2bca59",()=>q.syncRepository,"40820278a653c830fe0245011a9d21ba971809c0fe",()=>j.deployRepository,"408345ac0b52fea08ca72b167c801d9b1b71a493b0",()=>D.deleteApplication,"4095a62107e998ea83afe905499439978bf697fb7d",()=>f.listGitHubRepositories,"40ab6a25d84540327f5a2cc1ce327e5bb05f6aa253",()=>H.createFeature,"40acae42186eb8fd217d71a72b4945acf22d89ec18",()=>p.openFolder,"40afc7125f38f319a56310312639e9772d5b330d7f",()=>u.createProjectFolder,"40b9f24b532374b29dec79c0541b43e2fffc9feafb",()=>o.openShell,"40bb9c2a45d41de0c78ea76f48c10f92884a5ccfb2",()=>B.addRepository,"40bd8f510d8e1649401a50167192ab2986af619ece",()=>t.createApplication,"40c35fbaa75aedc7ebc4ee7e6c3f5426183b102c46",()=>A.unarchiveFeature,"40ce1870834f727e931b1cf59ab354e7e8681e5a6f",()=>i.deployFeature,"40d2e35c3115af12d99ec265235ac234fe3d507793",()=>x.resumeFeature,"40e55c0879b8765841c0ef0e08cbdb2e8b4acd4888",()=>m.getDeploymentStatus,"6018195d0d10db5aaf9e274b10230a249a9d4f96a3",()=>C.deleteRepository,"60fb317496dd3a25d29885828ee97f7cd47105920d",()=>d.updateAgentAndModel,"78921b2703fb4d716a0043589cf819b56dc9dbd32c",()=>w.deleteFeature],25637)}];
2
2
 
3
3
  //# sourceMappingURL=src_presentation_web_6b2fdcd8._.js.map