@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 +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/%40drawer/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/%40drawer/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])},49851,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(92658),G=a.i(96380),H=a.i(12581);async function I(a){let{branchName:b,repositoryPath:c}=a;if(!b?.trim())return{error:"Branch name is required"};if(!c?.trim())return{error:"Repository path is required"};try{let a=(0,G.resolve)("AdoptBranchUseCase");return{feature:(await a.execute({branchName:b,repositoryPath:c})).feature}}catch(a){return{error:a instanceof Error?a.message:"Failed to adopt branch"}}}async function J(a){if(!a?.trim())return[];try{let b=(0,G.resolve)("IWorktreeService");return await b.listBranches(a)}catch{return[]}}(0,H.ensureServerEntryExports)([I]),(0,F.registerServerReference)(I,"40ebf6fb7c12ba0c96a087e925010ba9953421ebc1",null),(0,H.ensureServerEntryExports)([J]),(0,F.registerServerReference)(J,"40d6b9a6d8a3dec6db39512f48e30cee75c4839d75",null),a.s([],81841),a.i(81841),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,"40d6b9a6d8a3dec6db39512f48e30cee75c4839d75",()=>J,"40d7b674cc1d8c901818cf7e473218e7a6203fd032",()=>k.deployApplication,"40d902df8a5f576b5aa33b645a7dfaf4b4133f67e6",()=>p.openFolder,"40d9edabf5ce0f2bae3126c6a229398875f507a208",()=>n.openIde,"40ebf6fb7c12ba0c96a087e925010ba9953421ebc1",()=>I,"40f7e19e0c90a0828d68efc73ea956f73a3fc08de5",()=>x.resumeFeature,"40f88f7c0b3d5aad4185d49a932fc0dce113ec0912",()=>m.getDeploymentStatus,"6066fc7a836c30765dbacbf5d8466865b5aa1f9640",()=>C.deleteRepository,"60ddc5a1721764ad79ab273b52c39232c5e9359107",()=>d.updateAgentAndModel,"788ed56ab07e66ef884d6ce0f77fa46b5034bcfed4",()=>w.deleteFeature],49851)}];
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])},49851,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(92658),G=a.i(96380),H=a.i(12581);async function I(a){let{branchName:b,repositoryPath:c}=a;if(!b?.trim())return{error:"Branch name is required"};if(!c?.trim())return{error:"Repository path is required"};try{let a=(0,G.resolve)("AdoptBranchUseCase");return{feature:(await a.execute({branchName:b,repositoryPath:c})).feature}}catch(a){return{error:a instanceof Error?a.message:"Failed to adopt branch"}}}async function J(a){if(!a?.trim())return[];try{let b=(0,G.resolve)("IWorktreeService");return await b.listBranches(a)}catch{return[]}}(0,H.ensureServerEntryExports)([I]),(0,F.registerServerReference)(I,"40f2586c594b9cb91f2040c2ecc5fa7409f1b33e2d",null),(0,H.ensureServerEntryExports)([J]),(0,F.registerServerReference)(J,"40e5501acc9ca15e960f48be0f8bd4936a5d8f5d05",null),a.s([],81841),a.i(81841),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,"40e5501acc9ca15e960f48be0f8bd4936a5d8f5d05",()=>J,"40e55c0879b8765841c0ef0e08cbdb2e8b4acd4888",()=>m.getDeploymentStatus,"40f2586c594b9cb91f2040c2ecc5fa7409f1b33e2d",()=>I,"6018195d0d10db5aaf9e274b10230a249a9d4f96a3",()=>C.deleteRepository,"60fb317496dd3a25d29885828ee97f7cd47105920d",()=>d.updateAgentAndModel,"78921b2703fb4d716a0043589cf819b56dc9dbd32c",()=>w.deleteFeature],49851)}];
2
2
 
3
3
  //# sourceMappingURL=src_presentation_web_74703c9f._.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/%40drawer/adopt/page/actions.js%20%28server%20actions%20loader%29","../../../../../../../src/presentation/web/app/actions/adopt-branch.ts","../../../../../../../src/presentation/web/app/actions/list-branches.ts"],"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'\nexport {adoptBranch as '40ebf6fb7c12ba0c96a087e925010ba9953421ebc1'} from 'ACTIONS_MODULE30'\nexport {listBranches as '40d6b9a6d8a3dec6db39512f48e30cee75c4839d75'} from 'ACTIONS_MODULE31'\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { AdoptBranchUseCase } from '@shepai/core/application/use-cases/features/adopt-branch.use-case';\nimport type { Feature } from '@shepai/core/domain/generated/output';\n\ninterface AdoptBranchInput {\n branchName: string;\n repositoryPath: string;\n}\n\nexport async function adoptBranch(\n input: AdoptBranchInput\n): Promise<{ feature?: Feature; error?: string }> {\n const { branchName, repositoryPath } = input;\n\n if (!branchName?.trim()) {\n return { error: 'Branch name is required' };\n }\n if (!repositoryPath?.trim()) {\n return { error: 'Repository path is required' };\n }\n\n try {\n const useCase = resolve<AdoptBranchUseCase>('AdoptBranchUseCase');\n const result = await useCase.execute({ branchName, repositoryPath });\n return { feature: result.feature };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to adopt branch';\n return { error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { IWorktreeService } from '@shepai/core/application/ports/output/services/worktree-service.interface';\n\n/**\n * Server action that returns all branch names (local + remote) for a repository.\n * Used by the adopt branch drawer to populate the branch combobox.\n */\nexport async function listBranches(repositoryPath: string): Promise<string[]> {\n if (!repositoryPath?.trim()) {\n return [];\n }\n\n try {\n const worktreeService = resolve<IWorktreeService>('IWorktreeService');\n return await worktreeService.listBranches(repositoryPath);\n } catch {\n return [];\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../../src/presentation/web/app/actions/open-folder.ts","../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/%40drawer/adopt/page/actions.js%20%28server%20actions%20loader%29","../../../../../../../src/presentation/web/app/actions/adopt-branch.ts","../../../../../../../src/presentation/web/app/actions/list-branches.ts"],"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'\nexport {adoptBranch as '40f2586c594b9cb91f2040c2ecc5fa7409f1b33e2d'} from 'ACTIONS_MODULE30'\nexport {listBranches as '40e5501acc9ca15e960f48be0f8bd4936a5d8f5d05'} from 'ACTIONS_MODULE31'\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { AdoptBranchUseCase } from '@shepai/core/application/use-cases/features/adopt-branch.use-case';\nimport type { Feature } from '@shepai/core/domain/generated/output';\n\ninterface AdoptBranchInput {\n branchName: string;\n repositoryPath: string;\n}\n\nexport async function adoptBranch(\n input: AdoptBranchInput\n): Promise<{ feature?: Feature; error?: string }> {\n const { branchName, repositoryPath } = input;\n\n if (!branchName?.trim()) {\n return { error: 'Branch name is required' };\n }\n if (!repositoryPath?.trim()) {\n return { error: 'Repository path is required' };\n }\n\n try {\n const useCase = resolve<AdoptBranchUseCase>('AdoptBranchUseCase');\n const result = await useCase.execute({ branchName, repositoryPath });\n return { feature: result.feature };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to adopt branch';\n return { error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { IWorktreeService } from '@shepai/core/application/ports/output/services/worktree-service.interface';\n\n/**\n * Server action that returns all branch names (local + remote) for a repository.\n * Used by the adopt branch drawer to populate the branch combobox.\n */\nexport async function listBranches(repositoryPath: string): Promise<string[]> {\n if (!repositoryPath?.trim()) {\n return [];\n }\n\n try {\n const worktreeService = resolve<IWorktreeService>('IWorktreeService');\n return await worktreeService.listBranches(repositoryPath);\n } catch {\n return [];\n }\n}\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])},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])},61035,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([],43223),a.i(43223),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],61035)}];
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])},61035,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([],43223),a.i(43223),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],61035)}];
2
2
 
3
3
  //# sourceMappingURL=src_presentation_web_a8056dac._.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/%40drawer/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/%40drawer/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=[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])},34294,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),o=a.i(92658),p=a.i(7128),q=a.i(96380),r=a.i(33244),s=a.i(12581);async function t(a){try{let b=(0,q.resolve)("LoadSettingsUseCase"),c=await b.execute(),d=c.workflow.skillInjection?.skills??[],e=d.filter(b=>b.name!==a);if(e.length===d.length)return{success:!1,error:`Skill "${a}" not found in configuration`};let f={...c,workflow:{...c.workflow,skillInjection:{enabled:c.workflow.skillInjection?.enabled??!1,skills:e}},updatedAt:new Date},g=(0,q.resolve)("UpdateSettingsUseCase");return await g.execute(f),(0,r.updateSettings)(f),(0,p.revalidatePath)("/skills"),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to remove skill"}}}async function u(a){try{let b=(0,q.resolve)("LoadSettingsUseCase"),c=await b.execute(),d=c.workflow.skillInjection?.skills??[];if(d.some(b=>b.name===a.name))return{success:!1,error:`Skill "${a.name}" is already configured`};let e={...c,workflow:{...c.workflow,skillInjection:{enabled:c.workflow.skillInjection?.enabled??!0,skills:[...d,a]}},updatedAt:new Date},f=(0,q.resolve)("UpdateSettingsUseCase");return await f.execute(e),(0,r.updateSettings)(e),(0,p.revalidatePath)("/skills"),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to add skill"}}}(0,s.ensureServerEntryExports)([t]),(0,o.registerServerReference)(t,"40e2ea3c89625f89f59266a81d174098c8c156c94e",null),(0,s.ensureServerEntryExports)([u]),(0,o.registerServerReference)(u,"40e3be46c3dabbd695830d6a8d62290808482376e2",null),a.s([],1855),a.i(1855),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,"40e2ea3c89625f89f59266a81d174098c8c156c94e",()=>t,"40e3be46c3dabbd695830d6a8d62290808482376e2",()=>u,"40f88f7c0b3d5aad4185d49a932fc0dce113ec0912",()=>n.getDeploymentStatus,"60ddc5a1721764ad79ab273b52c39232c5e9359107",()=>d.updateAgentAndModel],34294)}];
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])},34294,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),o=a.i(92658),p=a.i(7128),q=a.i(96380),r=a.i(33244),s=a.i(12581);async function t(a){try{let b=(0,q.resolve)("LoadSettingsUseCase"),c=await b.execute(),d=c.workflow.skillInjection?.skills??[],e=d.filter(b=>b.name!==a);if(e.length===d.length)return{success:!1,error:`Skill "${a}" not found in configuration`};let f={...c,workflow:{...c.workflow,skillInjection:{enabled:c.workflow.skillInjection?.enabled??!1,skills:e}},updatedAt:new Date},g=(0,q.resolve)("UpdateSettingsUseCase");return await g.execute(f),(0,r.updateSettings)(f),(0,p.revalidatePath)("/skills"),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to remove skill"}}}async function u(a){try{let b=(0,q.resolve)("LoadSettingsUseCase"),c=await b.execute(),d=c.workflow.skillInjection?.skills??[];if(d.some(b=>b.name===a.name))return{success:!1,error:`Skill "${a.name}" is already configured`};let e={...c,workflow:{...c.workflow,skillInjection:{enabled:c.workflow.skillInjection?.enabled??!0,skills:[...d,a]}},updatedAt:new Date},f=(0,q.resolve)("UpdateSettingsUseCase");return await f.execute(e),(0,r.updateSettings)(e),(0,p.revalidatePath)("/skills"),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to add skill"}}}(0,s.ensureServerEntryExports)([t]),(0,o.registerServerReference)(t,"40a22a898d5cd9d4b723febcee650cd6bbbabc823a",null),(0,s.ensureServerEntryExports)([u]),(0,o.registerServerReference)(u,"40ec24b4cfcdc715101b0c580dcb509fe6574edbf1",null),a.s([],1855),a.i(1855),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,"40a22a898d5cd9d4b723febcee650cd6bbbabc823a",()=>t,"40ce1870834f727e931b1cf59ab354e7e8681e5a6f",()=>j.deployFeature,"40e55c0879b8765841c0ef0e08cbdb2e8b4acd4888",()=>n.getDeploymentStatus,"40ec24b4cfcdc715101b0c580dcb509fe6574edbf1",()=>u,"60fb317496dd3a25d29885828ee97f7cd47105920d",()=>d.updateAgentAndModel],34294)}];
2
2
 
3
3
  //# sourceMappingURL=src_presentation_web_ad42cc73._.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/app/actions/get-deployment-logs.ts","../../../../../../../src/presentation/web/.next-internal/server/app/skills/page/actions.js%20%28server%20actions%20loader%29","../../../../../../../src/presentation/web/app/actions/remove-injected-skill.ts","../../../../../../../src/presentation/web/app/actions/add-injected-skill.ts"],"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'\nexport {removeInjectedSkill as '40e2ea3c89625f89f59266a81d174098c8c156c94e'} from 'ACTIONS_MODULE13'\nexport {addInjectedSkill as '40e3be46c3dabbd695830d6a8d62290808482376e2'} from 'ACTIONS_MODULE14'\n","'use server';\n\nimport { revalidatePath } from 'next/cache';\nimport { resolve } from '@/lib/server-container';\nimport type { LoadSettingsUseCase } from '@shepai/core/application/use-cases/settings/load-settings.use-case';\nimport type { UpdateSettingsUseCase } from '@shepai/core/application/use-cases/settings/update-settings.use-case';\nimport { updateSettings as updateSettingsSingleton } from '@shepai/core/infrastructure/services/settings.service';\n\nexport interface RemoveInjectedSkillResult {\n success: boolean;\n error?: string;\n}\n\nexport async function removeInjectedSkill(skillName: string): Promise<RemoveInjectedSkillResult> {\n try {\n const loadUseCase = resolve<LoadSettingsUseCase>('LoadSettingsUseCase');\n const current = await loadUseCase.execute();\n\n const existingSkills = current.workflow.skillInjection?.skills ?? [];\n const filtered = existingSkills.filter((s) => s.name !== skillName);\n\n if (filtered.length === existingSkills.length) {\n return { success: false, error: `Skill \"${skillName}\" not found in configuration` };\n }\n\n const updated = {\n ...current,\n workflow: {\n ...current.workflow,\n skillInjection: {\n enabled: current.workflow.skillInjection?.enabled ?? false,\n skills: filtered,\n },\n },\n updatedAt: new Date(),\n };\n\n const updateUseCase = resolve<UpdateSettingsUseCase>('UpdateSettingsUseCase');\n await updateUseCase.execute(updated);\n updateSettingsSingleton(updated);\n revalidatePath('/skills');\n\n return { success: true };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to remove skill';\n return { success: false, error: message };\n }\n}\n","'use server';\n\nimport { revalidatePath } from 'next/cache';\nimport { resolve } from '@/lib/server-container';\nimport type { LoadSettingsUseCase } from '@shepai/core/application/use-cases/settings/load-settings.use-case';\nimport type { UpdateSettingsUseCase } from '@shepai/core/application/use-cases/settings/update-settings.use-case';\nimport { updateSettings as updateSettingsSingleton } from '@shepai/core/infrastructure/services/settings.service';\nimport type { SkillSource } from '@shepai/core/domain/generated/output';\n\nexport interface AddInjectedSkillResult {\n success: boolean;\n error?: string;\n}\n\nexport async function addInjectedSkill(skill: SkillSource): Promise<AddInjectedSkillResult> {\n try {\n const loadUseCase = resolve<LoadSettingsUseCase>('LoadSettingsUseCase');\n const current = await loadUseCase.execute();\n\n const existingSkills = current.workflow.skillInjection?.skills ?? [];\n if (existingSkills.some((s) => s.name === skill.name)) {\n return { success: false, error: `Skill \"${skill.name}\" is already configured` };\n }\n\n const updated = {\n ...current,\n workflow: {\n ...current.workflow,\n skillInjection: {\n enabled: current.workflow.skillInjection?.enabled ?? true,\n skills: [...existingSkills, skill],\n },\n },\n updatedAt: new Date(),\n };\n\n const updateUseCase = resolve<UpdateSettingsUseCase>('UpdateSettingsUseCase');\n await updateUseCase.execute(updated);\n updateSettingsSingleton(updated);\n revalidatePath('/skills');\n\n return { success: true };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to add skill';\n return { success: false, error: message };\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../../src/presentation/web/app/actions/get-deployment-logs.ts","../../../../../../../src/presentation/web/.next-internal/server/app/skills/page/actions.js%20%28server%20actions%20loader%29","../../../../../../../src/presentation/web/app/actions/remove-injected-skill.ts","../../../../../../../src/presentation/web/app/actions/add-injected-skill.ts"],"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'\nexport {removeInjectedSkill as '40a22a898d5cd9d4b723febcee650cd6bbbabc823a'} from 'ACTIONS_MODULE13'\nexport {addInjectedSkill as '40ec24b4cfcdc715101b0c580dcb509fe6574edbf1'} from 'ACTIONS_MODULE14'\n","'use server';\n\nimport { revalidatePath } from 'next/cache';\nimport { resolve } from '@/lib/server-container';\nimport type { LoadSettingsUseCase } from '@shepai/core/application/use-cases/settings/load-settings.use-case';\nimport type { UpdateSettingsUseCase } from '@shepai/core/application/use-cases/settings/update-settings.use-case';\nimport { updateSettings as updateSettingsSingleton } from '@shepai/core/infrastructure/services/settings.service';\n\nexport interface RemoveInjectedSkillResult {\n success: boolean;\n error?: string;\n}\n\nexport async function removeInjectedSkill(skillName: string): Promise<RemoveInjectedSkillResult> {\n try {\n const loadUseCase = resolve<LoadSettingsUseCase>('LoadSettingsUseCase');\n const current = await loadUseCase.execute();\n\n const existingSkills = current.workflow.skillInjection?.skills ?? [];\n const filtered = existingSkills.filter((s) => s.name !== skillName);\n\n if (filtered.length === existingSkills.length) {\n return { success: false, error: `Skill \"${skillName}\" not found in configuration` };\n }\n\n const updated = {\n ...current,\n workflow: {\n ...current.workflow,\n skillInjection: {\n enabled: current.workflow.skillInjection?.enabled ?? false,\n skills: filtered,\n },\n },\n updatedAt: new Date(),\n };\n\n const updateUseCase = resolve<UpdateSettingsUseCase>('UpdateSettingsUseCase');\n await updateUseCase.execute(updated);\n updateSettingsSingleton(updated);\n revalidatePath('/skills');\n\n return { success: true };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to remove skill';\n return { success: false, error: message };\n }\n}\n","'use server';\n\nimport { revalidatePath } from 'next/cache';\nimport { resolve } from '@/lib/server-container';\nimport type { LoadSettingsUseCase } from '@shepai/core/application/use-cases/settings/load-settings.use-case';\nimport type { UpdateSettingsUseCase } from '@shepai/core/application/use-cases/settings/update-settings.use-case';\nimport { updateSettings as updateSettingsSingleton } from '@shepai/core/infrastructure/services/settings.service';\nimport type { SkillSource } from '@shepai/core/domain/generated/output';\n\nexport interface AddInjectedSkillResult {\n success: boolean;\n error?: string;\n}\n\nexport async function addInjectedSkill(skill: SkillSource): Promise<AddInjectedSkillResult> {\n try {\n const loadUseCase = resolve<LoadSettingsUseCase>('LoadSettingsUseCase');\n const current = await loadUseCase.execute();\n\n const existingSkills = current.workflow.skillInjection?.skills ?? [];\n if (existingSkills.some((s) => s.name === skill.name)) {\n return { success: false, error: `Skill \"${skill.name}\" is already configured` };\n }\n\n const updated = {\n ...current,\n workflow: {\n ...current.workflow,\n skillInjection: {\n enabled: current.workflow.skillInjection?.enabled ?? true,\n skills: [...existingSkills, skill],\n },\n },\n updatedAt: new Date(),\n };\n\n const updateUseCase = resolve<UpdateSettingsUseCase>('UpdateSettingsUseCase');\n await updateUseCase.execute(updated);\n updateSettingsSingleton(updated);\n revalidatePath('/skills');\n\n return { success: true };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to add skill';\n return { success: false, error: message };\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- module.exports=[84095,56799,93225,77605,77710,45395,76707,10528,50845,26604,54723,18942,42886,49560,39353,95072,29207,a=>{"use strict";var b=a.i(92658),c=a.i(50227),d=a.i(33244),e=a.i(96380),f=a.i(12581);async function g(a){let{repositoryPath:b,branch:f}=a;if(!b||!(0,c.isAbsolute)(b))return{success:!1,error:"repositoryPath must be an absolute path"};let g=(0,d.getSettings)().environment.defaultEditor,h=(0,e.resolve)("LaunchIdeUseCase"),i=await h.execute({editorId:g,repositoryPath:b,branch:f,checkAvailability:!0});return i.ok?{success:!0,editor:i.editorName,path:i.worktreePath}:{success:!1,error:i.message}}(0,f.ensureServerEntryExports)([g]),(0,b.registerServerReference)(g,"40d9edabf5ce0f2bae3126c6a229398875f507a208",null),a.s(["openIde",()=>g],84095);var h=a.i(2157),i=a.i(60526),j=a.i(74533),k=a.i(29918);let l={darwin:{cmd:"open",args:a=>["-a","Terminal",a]},linux:{cmd:"x-terminal-emulator",args:a=>[`--working-directory=${a}`]},win32:{cmd:"cmd.exe",args:a=>["/c","start","powershell","-NoExit","-Command",`Set-Location "${a}"`]}};async function m(a){let{repositoryPath:b,branch:f}=a;if(!b||!(0,c.isAbsolute)(b))return{success:!1,error:"repositoryPath must be an absolute path"};try{let a=(0,d.getSettings)(),c=a.environment.shellPreference,g=a.environment.terminalPreference??"system",m=f?(0,k.computeWorktreePath)(b,f):b;if(!(0,h.existsSync)(m))return{success:!1,error:`Path does not exist: ${m}`};if("system"!==g)try{let a=(0,e.resolve)("IToolInstallerService").getTerminalOpenConfig(g);if(a?.openDirectory.includes("{dir}")){let b=a.openDirectory.replace("{dir}",m);if(a.shell){let a=(0,j.spawn)(b,[],{detached:!0,stdio:"ignore",shell:!0});a.on("error",()=>void 0),a.unref()}else{let[a,...c]=b.split(/\s+/),d=(0,j.spawn)(a,c,{detached:!0,stdio:"ignore"});d.on("error",()=>void 0),d.unref()}return{success:!0,path:m,shell:c}}}catch{}let n=l[(0,i.platform)()];if(!n)return{success:!1,error:`Unsupported platform: ${(0,i.platform)()}`};let o=(0,j.spawn)(n.cmd,n.args(m),{detached:!0,stdio:"ignore"});return o.on("error",()=>void 0),o.unref(),{success:!0,path:m,shell:c}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to open shell"}}}async function n(a){if(!a?.trim())return{success:!1,error:"Repository id is required"};try{let b=(0,e.resolve)("SyncRepositoryMainUseCase");return await b.execute(a),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to sync repository"}}}async function o(a){let{description:b,repositoryPath:c,attachments:d,sessionId:f,approvalGates:g,push:h,openPr:i,parentId:j,fast:k,pending:l,forkAndPr:m,commitSpecs:n,ciWatchEnabled:o,enableEvidence:p,commitEvidence:q,agentType:r,model:s,rebaseBeforeBranch:t,injectSkills:u}=a;if(!b?.trim())return{error:"description is required"};if(!c?.trim())return{error:"repositoryPath is required"};let v=function(a,b){if(!b||0===b.length)return a;let c=b.map(a=>a.notes?.trim()?`@${a.path} [Note: ${a.notes.trim()}]`:`@${a.path}`).join(" ");return`${a}
1
+ module.exports=[84095,56799,93225,77605,77710,45395,76707,10528,50845,26604,54723,18942,42886,49560,39353,95072,29207,a=>{"use strict";var b=a.i(92658),c=a.i(50227),d=a.i(33244),e=a.i(96380),f=a.i(12581);async function g(a){let{repositoryPath:b,branch:f}=a;if(!b||!(0,c.isAbsolute)(b))return{success:!1,error:"repositoryPath must be an absolute path"};let g=(0,d.getSettings)().environment.defaultEditor,h=(0,e.resolve)("LaunchIdeUseCase"),i=await h.execute({editorId:g,repositoryPath:b,branch:f,checkAvailability:!0});return i.ok?{success:!0,editor:i.editorName,path:i.worktreePath}:{success:!1,error:i.message}}(0,f.ensureServerEntryExports)([g]),(0,b.registerServerReference)(g,"404a03f8b97ac011757753600df767dd92b9f6bfc6",null),a.s(["openIde",()=>g],84095);var h=a.i(2157),i=a.i(60526),j=a.i(74533),k=a.i(29918);let l={darwin:{cmd:"open",args:a=>["-a","Terminal",a]},linux:{cmd:"x-terminal-emulator",args:a=>[`--working-directory=${a}`]},win32:{cmd:"cmd.exe",args:a=>["/c","start","powershell","-NoExit","-Command",`Set-Location "${a}"`]}};async function m(a){let{repositoryPath:b,branch:f}=a;if(!b||!(0,c.isAbsolute)(b))return{success:!1,error:"repositoryPath must be an absolute path"};try{let a=(0,d.getSettings)(),c=a.environment.shellPreference,g=a.environment.terminalPreference??"system",m=f?(0,k.computeWorktreePath)(b,f):b;if(!(0,h.existsSync)(m))return{success:!1,error:`Path does not exist: ${m}`};if("system"!==g)try{let a=(0,e.resolve)("IToolInstallerService").getTerminalOpenConfig(g);if(a?.openDirectory.includes("{dir}")){let b=a.openDirectory.replace("{dir}",m);if(a.shell){let a=(0,j.spawn)(b,[],{detached:!0,stdio:"ignore",shell:!0});a.on("error",()=>void 0),a.unref()}else{let[a,...c]=b.split(/\s+/),d=(0,j.spawn)(a,c,{detached:!0,stdio:"ignore"});d.on("error",()=>void 0),d.unref()}return{success:!0,path:m,shell:c}}}catch{}let n=l[(0,i.platform)()];if(!n)return{success:!1,error:`Unsupported platform: ${(0,i.platform)()}`};let o=(0,j.spawn)(n.cmd,n.args(m),{detached:!0,stdio:"ignore"});return o.on("error",()=>void 0),o.unref(),{success:!0,path:m,shell:c}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to open shell"}}}async function n(a){if(!a?.trim())return{success:!1,error:"Repository id is required"};try{let b=(0,e.resolve)("SyncRepositoryMainUseCase");return await b.execute(a),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to sync repository"}}}async function o(a){let{description:b,repositoryPath:c,attachments:d,sessionId:f,approvalGates:g,push:h,openPr:i,parentId:j,fast:k,pending:l,forkAndPr:m,commitSpecs:n,ciWatchEnabled:o,enableEvidence:p,commitEvidence:q,agentType:r,model:s,rebaseBeforeBranch:t,injectSkills:u}=a;if(!b?.trim())return{error:"description is required"};if(!c?.trim())return{error:"repositoryPath is required"};let v=function(a,b){if(!b||0===b.length)return a;let c=b.map(a=>a.notes?.trim()?`@${a.path} [Note: ${a.notes.trim()}]`:`@${a.path}`).join(" ");return`${a}
2
2
 
3
- ${c}`}(b,d),w={allowPrd:g?.allowPrd??!1,allowPlan:g?.allowPlan??!1,allowMerge:g?.allowMerge??!1};try{let a=(0,e.resolve)("CreateFeatureUseCase"),{feature:d,shouldSpawn:g}=await a.createRecord({userInput:v,repositoryPath:c,approvalGates:w,push:h??!1,openPr:i??!1,...j?{parentId:j}:{},description:b,...k?{fast:k}:{},...l?{pending:l}:{},...null!=m?{forkAndPr:m}:{},...null!=n?{commitSpecs:n}:{},...null!=o?{ciWatchEnabled:o}:{},...null!=p?{enableEvidence:p}:{},...null!=q?{commitEvidence:q}:{},...r?{agentType:r}:{},...s?{model:s}:{},...null!=t?{rebaseBeforeBranch:t}:{},...null!=u?{injectSkills:u}:{}});return a.initializeAndSpawn(d,{userInput:v,repositoryPath:c,approvalGates:w,push:h??!1,openPr:i??!1,...j?{parentId:j}:{},...k?{fast:k}:{},...l?{pending:l}:{},...null!=m?{forkAndPr:m}:{},...null!=n?{commitSpecs:n}:{},...null!=o?{ciWatchEnabled:o}:{},...null!=p?{enableEvidence:p}:{},...null!=q?{commitEvidence:q}:{},...r?{agentType:r}:{},...s?{model:s}:{},...f?{sessionId:f}:{},...null!=t?{rebaseBeforeBranch:t}:{},...null!=u?{injectSkills:u}:{}},g).catch(a=>{console.error("[createFeature] initializeAndSpawn failed:",a)}),{feature:d}}catch(a){return{error:a instanceof Error?a.message:"Failed to create feature"}}}(0,f.ensureServerEntryExports)([m]),(0,b.registerServerReference)(m,"40bd8b1511738071912093ce876b807d0cb12137cd",null),a.s(["openShell",()=>m],56799),(0,f.ensureServerEntryExports)([n]),(0,b.registerServerReference)(n,"400c298d066926bbd45a1cc986940c718482912bf4",null),a.s(["syncRepository",()=>n],93225),(0,f.ensureServerEntryExports)([o]),(0,b.registerServerReference)(o,"40cfbdcca08cd1c0a38f8655b5cec9e55a665cf783",null),a.s(["createFeature",()=>o],77605);let p=`\
3
+ ${c}`}(b,d),w={allowPrd:g?.allowPrd??!1,allowPlan:g?.allowPlan??!1,allowMerge:g?.allowMerge??!1};try{let a=(0,e.resolve)("CreateFeatureUseCase"),{feature:d,shouldSpawn:g}=await a.createRecord({userInput:v,repositoryPath:c,approvalGates:w,push:h??!1,openPr:i??!1,...j?{parentId:j}:{},description:b,...k?{fast:k}:{},...l?{pending:l}:{},...null!=m?{forkAndPr:m}:{},...null!=n?{commitSpecs:n}:{},...null!=o?{ciWatchEnabled:o}:{},...null!=p?{enableEvidence:p}:{},...null!=q?{commitEvidence:q}:{},...r?{agentType:r}:{},...s?{model:s}:{},...null!=t?{rebaseBeforeBranch:t}:{},...null!=u?{injectSkills:u}:{}});return a.initializeAndSpawn(d,{userInput:v,repositoryPath:c,approvalGates:w,push:h??!1,openPr:i??!1,...j?{parentId:j}:{},...k?{fast:k}:{},...l?{pending:l}:{},...null!=m?{forkAndPr:m}:{},...null!=n?{commitSpecs:n}:{},...null!=o?{ciWatchEnabled:o}:{},...null!=p?{enableEvidence:p}:{},...null!=q?{commitEvidence:q}:{},...r?{agentType:r}:{},...s?{model:s}:{},...f?{sessionId:f}:{},...null!=t?{rebaseBeforeBranch:t}:{},...null!=u?{injectSkills:u}:{}},g).catch(a=>{console.error("[createFeature] initializeAndSpawn failed:",a)}),{feature:d}}catch(a){return{error:a instanceof Error?a.message:"Failed to create feature"}}}(0,f.ensureServerEntryExports)([m]),(0,b.registerServerReference)(m,"40b9f24b532374b29dec79c0541b43e2fffc9feafb",null),a.s(["openShell",()=>m],56799),(0,f.ensureServerEntryExports)([n]),(0,b.registerServerReference)(n,"40723c9650159ba67a297db1a9aca888d3cc2bca59",null),a.s(["syncRepository",()=>n],93225),(0,f.ensureServerEntryExports)([o]),(0,b.registerServerReference)(o,"40ab6a25d84540327f5a2cc1ce327e5bb05f6aa253",null),a.s(["createFeature",()=>o],77605);let p=`\
4
4
  ## Project Requirements
5
5
 
6
6
  Build this as a **React application** using Vite as the build tool.
@@ -27,6 +27,6 @@ Build this as a **React application** using Vite as the build tool.
27
27
  ---
28
28
 
29
29
  ## What to Build
30
- `;async function q(a){let{description:b,attachments:c,agentType:d,model:f}=a;if(!b?.trim())return{error:"Description is required"};try{let g=(0,e.resolve)("CreateProjectUseCase"),h=await g.execute({name:b.trim().split(/\s+/).slice(0,6).join(" ")});if(!h.ok)return{error:h.error};let i=h.path,j=(0,e.resolve)("AddRepositoryUseCase"),k=await j.execute({path:i}),l=p+b.trim(),m=await o({description:l,repositoryPath:i,attachments:c,agentType:d,model:f,fast:a.fast});if(m.error)return{error:m.error};return{feature:m.feature,repository:k,repositoryPath:i}}catch(a){return{error:a instanceof Error?a.message:"Failed to create project"}}}async function r(a){if(!a.description?.trim())return{error:"Description is required"};try{let b=(0,e.resolve)("CreateApplicationUseCase"),c=await b.execute({description:a.description.trim(),agentType:a.agentType,modelOverride:a.modelOverride,initialPrompt:a.initialPrompt});return{application:c.application,repositoryPath:c.repositoryPath}}catch(a){return{error:a instanceof Error?a.message:"Failed to create application"}}}async function s(a){let b=(0,e.resolve)("CreateProjectUseCase"),c=await b.execute({name:a});return c.ok?{ok:!0,path:c.path}:{ok:!1,error:c.error}}async function t(a){if(!a?.trim())return{error:"id is required"};try{let b=(0,e.resolve)("ArchiveFeatureUseCase");return{feature:await b.execute(a)}}catch(a){return{error:a instanceof Error?a.message:"Failed to archive feature"}}}async function u(a,b,c,d){if(!a?.trim())return{error:"id is required"};try{let f=(0,e.resolve)("DeleteFeatureUseCase"),g={};return void 0!==b&&(g.cleanup=b),void 0!==c&&(g.cascadeDelete=c),void 0!==d&&(g.closePr=d),{feature:Object.keys(g).length>0?await f.execute(a,g):await f.execute(a)}}catch(a){return{error:a instanceof Error?a.message:"Failed to delete feature"}}}async function v(a){if(!a.trim())return{resumed:!1,error:"Feature id is required"};try{let b=(0,e.resolve)("ResumeFeatureUseCase");return await b.execute(a),{resumed:!0}}catch(a){return{resumed:!1,error:a instanceof Error?a.message:"Failed to resume feature"}}}async function w(a){if(!a.trim())return{started:!1,error:"Feature id is required"};try{let b=(0,e.resolve)("StartFeatureUseCase");return await b.execute(a),{started:!0}}catch(a){return{started:!1,error:a instanceof Error?a.message:"Failed to start feature"}}}async function x(a){if(!a.trim())return{stopped:!1,error:"Feature id is required"};try{let b=(0,e.resolve)("IAgentRunRepository"),c=(await b.list()).find(b=>b.featureId===a&&"completed"!==b.status&&"failed"!==b.status&&"interrupted"!==b.status&&"cancelled"!==b.status);if(!c)return{stopped:!1,error:"No active agent run found for this feature"};let d=(0,e.resolve)("StopAgentRunUseCase"),f=await d.execute(c.id);if(!f.stopped)return{stopped:!1,error:f.reason};return{stopped:!0}}catch(a){return{stopped:!1,error:a instanceof Error?a.message:"Failed to stop agent"}}}async function y(a){if(!a?.trim())return{error:"id is required"};try{let b=(0,e.resolve)("UnarchiveFeatureUseCase");return{feature:await b.execute(a)}}catch(a){return{error:a instanceof Error?a.message:"Failed to unarchive feature"}}}async function z(a){let{path:b,name:c}=a;if(!b?.trim())return{error:"path is required"};try{let a=(0,e.resolve)("AddRepositoryUseCase");return{repository:await a.execute({path:b,name:c})}}catch(a){return{error:a instanceof Error?a.message:"Failed to add repository"}}}async function A(a,b){if(!a?.trim())return{success:!1,error:"id is required"};try{let c=(0,e.resolve)("DeleteRepositoryUseCase");return await c.execute(a,{deleteFromDisk:b?.deleteFromDisk===!0}),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to delete repository"}}}async function B(a){if(!a?.trim())return{error:"Application ID is required"};try{let b=(0,e.resolve)("DeleteApplicationUseCase");return await b.execute(a),{}}catch(a){return{error:a instanceof Error?a.message:"Failed to delete application"}}}async function C(a){let b=(0,e.resolve)("IFeatureRepository"),c=await b.findById(a);return c?{name:c.name,description:c.description}:null}(0,f.ensureServerEntryExports)([q]),(0,b.registerServerReference)(q,"4046888598d39ae43d75963d3ef3cd4e8016324d4b",null),a.s(["createProjectAndFeature",()=>q],77710),(0,f.ensureServerEntryExports)([r]),(0,b.registerServerReference)(r,"400962487c8ebd3b1f5ded2ca4a60f8a73406f4f3f",null),a.s(["createApplication",()=>r],45395),(0,f.ensureServerEntryExports)([s]),(0,b.registerServerReference)(s,"40699d7542c74323d1335bc9d1238c872989b4ff95",null),a.s(["createProjectFolder",()=>s],76707),(0,f.ensureServerEntryExports)([t]),(0,b.registerServerReference)(t,"40adf0278807286a3192aa91cc969ad4bf34de24f3",null),a.s(["archiveFeature",()=>t],10528),(0,f.ensureServerEntryExports)([u]),(0,b.registerServerReference)(u,"788ed56ab07e66ef884d6ce0f77fa46b5034bcfed4",null),a.s(["deleteFeature",()=>u],50845),(0,f.ensureServerEntryExports)([v]),(0,b.registerServerReference)(v,"40f7e19e0c90a0828d68efc73ea956f73a3fc08de5",null),a.s(["resumeFeature",()=>v],26604),(0,f.ensureServerEntryExports)([w]),(0,b.registerServerReference)(w,"400c51000c5d6b72e9ea6f8c5b72d2281b3a54694b",null),a.s(["startFeature",()=>w],54723),(0,f.ensureServerEntryExports)([x]),(0,b.registerServerReference)(x,"402abe7793fe396edf2d669c244fd0eeb370125424",null),a.s(["stopFeature",()=>x],18942),(0,f.ensureServerEntryExports)([y]),(0,b.registerServerReference)(y,"403a379924950f7ba0c0e57e7c3c960d0624062339",null),a.s(["unarchiveFeature",()=>y],42886),(0,f.ensureServerEntryExports)([z]),(0,b.registerServerReference)(z,"40003deaddd47ade1409b6d526755b08eb3be80f0d",null),a.s(["addRepository",()=>z],49560),(0,f.ensureServerEntryExports)([A]),(0,b.registerServerReference)(A,"6066fc7a836c30765dbacbf5d8466865b5aa1f9640",null),a.s(["deleteRepository",()=>A],39353),(0,f.ensureServerEntryExports)([B]),(0,b.registerServerReference)(B,"40249dc44ff0bea67ac4b228d968dd1f704ee4b24f",null),a.s(["deleteApplication",()=>B],95072),(0,f.ensureServerEntryExports)([C]),(0,b.registerServerReference)(C,"40c7cc76af10154bd904315971383c0c513ef690f6",null),a.s(["getFeatureMetadata",()=>C],29207)}];
30
+ `;async function q(a){let{description:b,attachments:c,agentType:d,model:f}=a;if(!b?.trim())return{error:"Description is required"};try{let g=(0,e.resolve)("CreateProjectUseCase"),h=await g.execute({name:b.trim().split(/\s+/).slice(0,6).join(" ")});if(!h.ok)return{error:h.error};let i=h.path,j=(0,e.resolve)("AddRepositoryUseCase"),k=await j.execute({path:i}),l=p+b.trim(),m=await o({description:l,repositoryPath:i,attachments:c,agentType:d,model:f,fast:a.fast});if(m.error)return{error:m.error};return{feature:m.feature,repository:k,repositoryPath:i}}catch(a){return{error:a instanceof Error?a.message:"Failed to create project"}}}async function r(a){if(!a.description?.trim())return{error:"Description is required"};try{let b=(0,e.resolve)("CreateApplicationUseCase"),c=await b.execute({description:a.description.trim(),agentType:a.agentType,modelOverride:a.modelOverride,initialPrompt:a.initialPrompt});return{application:c.application,repositoryPath:c.repositoryPath}}catch(a){return{error:a instanceof Error?a.message:"Failed to create application"}}}async function s(a){let b=(0,e.resolve)("CreateProjectUseCase"),c=await b.execute({name:a});return c.ok?{ok:!0,path:c.path}:{ok:!1,error:c.error}}async function t(a){if(!a?.trim())return{error:"id is required"};try{let b=(0,e.resolve)("ArchiveFeatureUseCase");return{feature:await b.execute(a)}}catch(a){return{error:a instanceof Error?a.message:"Failed to archive feature"}}}async function u(a,b,c,d){if(!a?.trim())return{error:"id is required"};try{let f=(0,e.resolve)("DeleteFeatureUseCase"),g={};return void 0!==b&&(g.cleanup=b),void 0!==c&&(g.cascadeDelete=c),void 0!==d&&(g.closePr=d),{feature:Object.keys(g).length>0?await f.execute(a,g):await f.execute(a)}}catch(a){return{error:a instanceof Error?a.message:"Failed to delete feature"}}}async function v(a){if(!a.trim())return{resumed:!1,error:"Feature id is required"};try{let b=(0,e.resolve)("ResumeFeatureUseCase");return await b.execute(a),{resumed:!0}}catch(a){return{resumed:!1,error:a instanceof Error?a.message:"Failed to resume feature"}}}async function w(a){if(!a.trim())return{started:!1,error:"Feature id is required"};try{let b=(0,e.resolve)("StartFeatureUseCase");return await b.execute(a),{started:!0}}catch(a){return{started:!1,error:a instanceof Error?a.message:"Failed to start feature"}}}async function x(a){if(!a.trim())return{stopped:!1,error:"Feature id is required"};try{let b=(0,e.resolve)("IAgentRunRepository"),c=(await b.list()).find(b=>b.featureId===a&&"completed"!==b.status&&"failed"!==b.status&&"interrupted"!==b.status&&"cancelled"!==b.status);if(!c)return{stopped:!1,error:"No active agent run found for this feature"};let d=(0,e.resolve)("StopAgentRunUseCase"),f=await d.execute(c.id);if(!f.stopped)return{stopped:!1,error:f.reason};return{stopped:!0}}catch(a){return{stopped:!1,error:a instanceof Error?a.message:"Failed to stop agent"}}}async function y(a){if(!a?.trim())return{error:"id is required"};try{let b=(0,e.resolve)("UnarchiveFeatureUseCase");return{feature:await b.execute(a)}}catch(a){return{error:a instanceof Error?a.message:"Failed to unarchive feature"}}}async function z(a){let{path:b,name:c}=a;if(!b?.trim())return{error:"path is required"};try{let a=(0,e.resolve)("AddRepositoryUseCase");return{repository:await a.execute({path:b,name:c})}}catch(a){return{error:a instanceof Error?a.message:"Failed to add repository"}}}async function A(a,b){if(!a?.trim())return{success:!1,error:"id is required"};try{let c=(0,e.resolve)("DeleteRepositoryUseCase");return await c.execute(a,{deleteFromDisk:b?.deleteFromDisk===!0}),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to delete repository"}}}async function B(a){if(!a?.trim())return{error:"Application ID is required"};try{let b=(0,e.resolve)("DeleteApplicationUseCase");return await b.execute(a),{}}catch(a){return{error:a instanceof Error?a.message:"Failed to delete application"}}}async function C(a){let b=(0,e.resolve)("IFeatureRepository"),c=await b.findById(a);return c?{name:c.name,description:c.description}:null}(0,f.ensureServerEntryExports)([q]),(0,b.registerServerReference)(q,"402f7d3fbeeedeb3bf32eb4455f5c52c6cbe0c9dbc",null),a.s(["createProjectAndFeature",()=>q],77710),(0,f.ensureServerEntryExports)([r]),(0,b.registerServerReference)(r,"40bd8f510d8e1649401a50167192ab2986af619ece",null),a.s(["createApplication",()=>r],45395),(0,f.ensureServerEntryExports)([s]),(0,b.registerServerReference)(s,"40afc7125f38f319a56310312639e9772d5b330d7f",null),a.s(["createProjectFolder",()=>s],76707),(0,f.ensureServerEntryExports)([t]),(0,b.registerServerReference)(t,"4066028d782e66210f353ba5777fc5e47ae5186ad5",null),a.s(["archiveFeature",()=>t],10528),(0,f.ensureServerEntryExports)([u]),(0,b.registerServerReference)(u,"78921b2703fb4d716a0043589cf819b56dc9dbd32c",null),a.s(["deleteFeature",()=>u],50845),(0,f.ensureServerEntryExports)([v]),(0,b.registerServerReference)(v,"40d2e35c3115af12d99ec265235ac234fe3d507793",null),a.s(["resumeFeature",()=>v],26604),(0,f.ensureServerEntryExports)([w]),(0,b.registerServerReference)(w,"4024fde93e6e2147dcdaa3f185855d20434a4ddf08",null),a.s(["startFeature",()=>w],54723),(0,f.ensureServerEntryExports)([x]),(0,b.registerServerReference)(x,"403d888b0febaea3ca8e976004d7a3930298897064",null),a.s(["stopFeature",()=>x],18942),(0,f.ensureServerEntryExports)([y]),(0,b.registerServerReference)(y,"40c35fbaa75aedc7ebc4ee7e6c3f5426183b102c46",null),a.s(["unarchiveFeature",()=>y],42886),(0,f.ensureServerEntryExports)([z]),(0,b.registerServerReference)(z,"40bb9c2a45d41de0c78ea76f48c10f92884a5ccfb2",null),a.s(["addRepository",()=>z],49560),(0,f.ensureServerEntryExports)([A]),(0,b.registerServerReference)(A,"6018195d0d10db5aaf9e274b10230a249a9d4f96a3",null),a.s(["deleteRepository",()=>A],39353),(0,f.ensureServerEntryExports)([B]),(0,b.registerServerReference)(B,"408345ac0b52fea08ca72b167c801d9b1b71a493b0",null),a.s(["deleteApplication",()=>B],95072),(0,f.ensureServerEntryExports)([C]),(0,b.registerServerReference)(C,"4030634e58faa32adb5207cfeeb903a6bd0c77dcf6",null),a.s(["getFeatureMetadata",()=>C],29207)}];
31
31
 
32
32
  //# sourceMappingURL=src_presentation_web_app_actions_open-ide_ts_baaca5d5._.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])},49159,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([],61178),a.i(61178),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],49159)}];
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])},49159,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([],61178),a.i(61178),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],49159)}];
2
2
 
3
3
  //# sourceMappingURL=src_presentation_web_b00bfb08._.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/%40drawer/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,wDCjBtB,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/%40drawer/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,wDCjBtB,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"}