@shepai/cli 1.72.7 → 1.72.8-pr216.5a2ec32

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 (493) hide show
  1. package/dist/packages/core/src/application/ports/output/agents/feature-agent-process.interface.d.ts +2 -1
  2. package/dist/packages/core/src/application/ports/output/agents/feature-agent-process.interface.d.ts.map +1 -1
  3. package/dist/packages/core/src/application/use-cases/agents/approve-agent-run.use-case.d.ts.map +1 -1
  4. package/dist/packages/core/src/application/use-cases/agents/approve-agent-run.use-case.js +1 -0
  5. package/dist/packages/core/src/application/use-cases/features/resume-feature.use-case.d.ts.map +1 -1
  6. package/dist/packages/core/src/application/use-cases/features/resume-feature.use-case.js +1 -0
  7. package/dist/packages/core/src/application/use-cases/tools/list-tools.use-case.d.ts +3 -0
  8. package/dist/packages/core/src/application/use-cases/tools/list-tools.use-case.d.ts.map +1 -1
  9. package/dist/packages/core/src/application/use-cases/tools/list-tools.use-case.js +3 -0
  10. package/dist/packages/core/src/domain/factories/settings-defaults.factory.js +1 -1
  11. package/dist/packages/core/src/infrastructure/services/agents/common/executors/dev-executor.service.d.ts.map +1 -1
  12. package/dist/packages/core/src/infrastructure/services/agents/common/executors/dev-executor.service.js +88 -13
  13. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts +1 -1
  14. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.d.ts +2 -1
  15. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.d.ts.map +1 -1
  16. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.js +3 -0
  17. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts +2 -0
  18. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts.map +1 -1
  19. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.js +16 -3
  20. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.d.ts.map +1 -1
  21. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.js +5 -1
  22. package/dist/packages/core/src/infrastructure/services/tool-installer/tool-installer.service.d.ts.map +1 -1
  23. package/dist/packages/core/src/infrastructure/services/tool-installer/tool-installer.service.js +9 -1
  24. package/dist/packages/core/src/infrastructure/services/tool-installer/tool-metadata.d.ts +6 -0
  25. package/dist/packages/core/src/infrastructure/services/tool-installer/tool-metadata.d.ts.map +1 -1
  26. package/dist/packages/core/src/infrastructure/services/tool-installer/tool-metadata.js +5 -0
  27. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/alacritty.json +5 -2
  28. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/antigravity.json +3 -0
  29. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/claude-code.json +4 -1
  30. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/cursor-cli.json +3 -0
  31. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/cursor.json +3 -0
  32. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/gemini-cli.json +3 -0
  33. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/gh.json +3 -0
  34. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/git.json +3 -0
  35. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/iterm2.json +3 -0
  36. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/kitty.json +5 -2
  37. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/tmux.json +4 -1
  38. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/vscode.json +4 -1
  39. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/warp.json +3 -0
  40. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/windsurf.json +4 -1
  41. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/zed.json +3 -0
  42. package/dist/src/presentation/web/app/actions/get-graph-data.d.ts +10 -0
  43. package/dist/src/presentation/web/app/actions/get-graph-data.d.ts.map +1 -0
  44. package/dist/src/presentation/web/app/actions/get-graph-data.js +10 -0
  45. package/dist/src/presentation/web/app/api/agent-events/route.d.ts.map +1 -1
  46. package/dist/src/presentation/web/app/api/agent-events/route.js +3 -0
  47. package/dist/src/presentation/web/app/api/tools/[id]/install/route.d.ts.map +1 -1
  48. package/dist/src/presentation/web/app/api/tools/[id]/install/route.js +9 -4
  49. package/dist/src/presentation/web/app/api/tools/[id]/install/stream/route.d.ts +7 -0
  50. package/dist/src/presentation/web/app/api/tools/[id]/install/stream/route.d.ts.map +1 -0
  51. package/dist/src/presentation/web/app/api/tools/[id]/install/stream/route.js +32 -0
  52. package/dist/src/presentation/web/components/common/base-drawer/base-drawer.d.ts +2 -1
  53. package/dist/src/presentation/web/components/common/base-drawer/base-drawer.d.ts.map +1 -1
  54. package/dist/src/presentation/web/components/common/base-drawer/base-drawer.js +3 -3
  55. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.d.ts.map +1 -1
  56. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.js +2 -0
  57. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts.map +1 -1
  58. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.js +72 -1
  59. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.d.ts.map +1 -1
  60. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.js +2 -2
  61. package/dist/src/presentation/web/components/features/index.d.ts +1 -1
  62. package/dist/src/presentation/web/components/features/index.d.ts.map +1 -1
  63. package/dist/src/presentation/web/components/features/index.js +1 -1
  64. package/dist/src/presentation/web/components/features/tools/index.d.ts +1 -1
  65. package/dist/src/presentation/web/components/features/tools/index.d.ts.map +1 -1
  66. package/dist/src/presentation/web/components/features/tools/index.js +1 -1
  67. package/dist/src/presentation/web/components/features/tools/tool-card.d.ts.map +1 -1
  68. package/dist/src/presentation/web/components/features/tools/tool-card.js +18 -14
  69. package/dist/src/presentation/web/components/features/tools/tool-card.stories.d.ts.map +1 -1
  70. package/dist/src/presentation/web/components/features/tools/tool-card.stories.js +18 -0
  71. package/dist/src/presentation/web/components/features/tools/tool-detail-drawer.d.ts +10 -0
  72. package/dist/src/presentation/web/components/features/tools/tool-detail-drawer.d.ts.map +1 -0
  73. package/dist/src/presentation/web/components/features/tools/tool-detail-drawer.js +95 -0
  74. package/dist/src/presentation/web/components/features/tools/tool-detail-drawer.stories.d.ts +12 -0
  75. package/dist/src/presentation/web/components/features/tools/tool-detail-drawer.stories.d.ts.map +1 -0
  76. package/dist/src/presentation/web/components/features/tools/tool-detail-drawer.stories.js +119 -0
  77. package/dist/src/presentation/web/components/features/tools/tools-page-client.js +3 -3
  78. package/dist/src/presentation/web/components/features/tools/tools-page-client.stories.d.ts.map +1 -1
  79. package/dist/src/presentation/web/components/features/tools/tools-page-client.stories.js +15 -0
  80. package/dist/src/presentation/web/hooks/use-tool-install-stream.d.ts +10 -0
  81. package/dist/src/presentation/web/hooks/use-tool-install-stream.d.ts.map +1 -0
  82. package/dist/src/presentation/web/hooks/use-tool-install-stream.js +38 -0
  83. package/dist/tsconfig.build.tsbuildinfo +1 -1
  84. package/package.json +1 -1
  85. package/web/.next/BUILD_ID +1 -1
  86. package/web/.next/app-path-routes-manifest.json +1 -0
  87. package/web/.next/build-manifest.json +7 -7
  88. package/web/.next/cache/.previewinfo +1 -1
  89. package/web/.next/cache/.rscinfo +1 -1
  90. package/web/.next/cache/.tsbuildinfo +1 -1
  91. package/web/.next/cache/config.json +3 -3
  92. package/web/.next/fallback-build-manifest.json +2 -2
  93. package/web/.next/prerender-manifest.json +3 -3
  94. package/web/.next/required-server-files.js +1 -1
  95. package/web/.next/required-server-files.json +1 -1
  96. package/web/.next/routes-manifest.json +8 -0
  97. package/web/.next/server/app/(dashboard)/@drawer/create/page/build-manifest.json +5 -5
  98. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +43 -28
  99. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +4 -4
  100. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  101. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  102. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/build-manifest.json +5 -5
  103. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +49 -34
  104. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +4 -4
  105. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  106. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  107. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/build-manifest.json +5 -5
  108. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +39 -24
  109. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +4 -4
  110. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  111. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  112. package/web/.next/server/app/(dashboard)/create/page/build-manifest.json +5 -5
  113. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +43 -28
  114. package/web/.next/server/app/(dashboard)/create/page.js +4 -4
  115. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  116. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  117. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/build-manifest.json +5 -5
  118. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +49 -34
  119. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +4 -4
  120. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  121. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  122. package/web/.next/server/app/(dashboard)/page/build-manifest.json +5 -5
  123. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +39 -24
  124. package/web/.next/server/app/(dashboard)/page.js +4 -4
  125. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  126. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  127. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/build-manifest.json +5 -5
  128. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +39 -24
  129. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +4 -4
  130. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  131. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  132. package/web/.next/server/app/_global-error/page/build-manifest.json +5 -5
  133. package/web/.next/server/app/_global-error.html +2 -2
  134. package/web/.next/server/app/_global-error.rsc +1 -1
  135. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  136. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  137. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  138. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  139. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  140. package/web/.next/server/app/_not-found/page/build-manifest.json +5 -5
  141. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  142. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  143. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  144. package/web/.next/server/app/api/tools/[id]/install/route.js +1 -1
  145. package/web/.next/server/app/api/tools/[id]/install/route.js.nft.json +1 -1
  146. package/web/.next/server/app/api/tools/[id]/install/stream/route/app-paths-manifest.json +3 -0
  147. package/web/.next/server/app/api/tools/[id]/install/stream/route/build-manifest.json +11 -0
  148. package/web/.next/server/app/api/tools/[id]/install/stream/route/server-reference-manifest.json +4 -0
  149. package/web/.next/server/app/api/tools/[id]/install/stream/route.js +6 -0
  150. package/web/.next/server/app/api/tools/[id]/install/stream/route.js.map +5 -0
  151. package/web/.next/server/app/api/tools/[id]/install/stream/route.js.nft.json +1 -0
  152. package/web/.next/server/app/api/tools/[id]/install/stream/route_client-reference-manifest.js +2 -0
  153. package/web/.next/server/app/skills/page/build-manifest.json +5 -5
  154. package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  155. package/web/.next/server/app/skills/page.js +1 -1
  156. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  157. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  158. package/web/.next/server/app/tools/page/build-manifest.json +5 -5
  159. package/web/.next/server/app/tools/page/server-reference-manifest.json +77 -2
  160. package/web/.next/server/app/tools/page.js +2 -2
  161. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  162. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  163. package/web/.next/server/app/version/page/build-manifest.json +5 -5
  164. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  165. package/web/.next/server/app/version/page.js.nft.json +1 -1
  166. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  167. package/web/.next/server/app-paths-manifest.json +1 -0
  168. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js +2 -2
  169. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js.map +1 -1
  170. package/web/.next/server/chunks/[root-of-the-server]__0866d2b5._.js +3 -0
  171. package/web/.next/server/chunks/[root-of-the-server]__0866d2b5._.js.map +1 -0
  172. package/web/.next/server/chunks/[root-of-the-server]__e247a485._.js +11 -0
  173. package/web/.next/server/chunks/[root-of-the-server]__e247a485._.js.map +1 -0
  174. package/web/.next/server/chunks/f3a1f__next-internal_server_app_api_tools_[id]_install_stream_route_actions_1fe5bd5d.js +3 -0
  175. package/web/.next/server/chunks/f3a1f__next-internal_server_app_api_tools_[id]_install_stream_route_actions_1fe5bd5d.js.map +1 -0
  176. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  177. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  178. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_3a02d8a5.js +3 -0
  179. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_3a02d8a5.js.map +1 -0
  180. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_a3044852.js +3 -0
  181. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_a3044852.js.map +1 -0
  182. package/web/.next/server/chunks/ssr/[root-of-the-server]__17a611f0._.js +4 -0
  183. package/web/.next/server/chunks/ssr/[root-of-the-server]__17a611f0._.js.map +1 -0
  184. package/web/.next/server/chunks/ssr/[root-of-the-server]__249c74f6._.js +1 -1
  185. package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__07385073._.js → server/chunks/ssr/[root-of-the-server]__45dbf93d._.js} +3 -3
  186. package/web/.next/server/chunks/ssr/{[root-of-the-server]__07385073._.js.map → [root-of-the-server]__45dbf93d._.js.map} +1 -1
  187. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
  188. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js.map +1 -1
  189. package/web/.next/server/chunks/ssr/[root-of-the-server]__6cbc1149._.js +4 -0
  190. package/web/.next/server/chunks/ssr/[root-of-the-server]__6cbc1149._.js.map +1 -0
  191. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
  192. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js.map +1 -1
  193. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +3 -0
  194. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -0
  195. package/web/.next/server/chunks/ssr/[root-of-the-server]__c18f84a4._.js +3 -0
  196. package/web/.next/server/chunks/ssr/[root-of-the-server]__c18f84a4._.js.map +1 -0
  197. package/web/.next/server/chunks/ssr/[root-of-the-server]__cbae9863._.js +3 -0
  198. package/web/.next/server/chunks/ssr/[root-of-the-server]__cbae9863._.js.map +1 -0
  199. package/web/.next/server/chunks/ssr/[root-of-the-server]__e062a6de._.js +3 -0
  200. package/web/.next/server/chunks/ssr/[root-of-the-server]__e062a6de._.js.map +1 -0
  201. package/web/.next/server/chunks/ssr/[root-of-the-server]__e5e09f72._.js +3 -0
  202. package/web/.next/server/chunks/ssr/[root-of-the-server]__e5e09f72._.js.map +1 -0
  203. package/web/.next/server/chunks/ssr/_0e9d6bf7._.js +3 -0
  204. package/web/.next/server/chunks/ssr/_0e9d6bf7._.js.map +1 -0
  205. package/web/.next/server/chunks/ssr/_1978f325._.js +7 -0
  206. package/web/.next/server/chunks/ssr/_1978f325._.js.map +1 -0
  207. package/web/.next/server/chunks/ssr/_3197d5cb._.js +3 -0
  208. package/web/.next/server/chunks/ssr/_3197d5cb._.js.map +1 -0
  209. package/web/.next/server/chunks/ssr/_61351ed3._.js +3 -0
  210. package/web/.next/server/chunks/ssr/_61351ed3._.js.map +1 -0
  211. package/web/.next/server/chunks/ssr/_6e08ce21._.js +3 -0
  212. package/web/.next/server/chunks/ssr/_6e08ce21._.js.map +1 -0
  213. package/web/.next/server/chunks/ssr/_8400c8bb._.js +3 -0
  214. package/web/.next/server/chunks/ssr/_8400c8bb._.js.map +1 -0
  215. package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/_7215bb0f._.js → server/chunks/ssr/_8fa33b4c._.js} +2 -2
  216. package/web/.next/server/chunks/ssr/{_7215bb0f._.js.map → _8fa33b4c._.js.map} +1 -1
  217. package/web/.next/server/chunks/ssr/_9f940437._.js +3 -0
  218. package/web/.next/server/chunks/ssr/_9f940437._.js.map +1 -0
  219. package/web/.next/server/chunks/ssr/_a29296f0._.js +3 -0
  220. package/web/.next/server/chunks/ssr/_a29296f0._.js.map +1 -0
  221. package/web/.next/server/chunks/ssr/_e806976d._.js +3 -0
  222. package/web/.next/server/chunks/ssr/_e806976d._.js.map +1 -0
  223. package/web/.next/server/chunks/ssr/{src_presentation_web_1a32dbcb._.js → src_presentation_web_0a49d9ee._.js} +3 -3
  224. package/web/.next/server/chunks/ssr/{src_presentation_web_1a32dbcb._.js.map → src_presentation_web_0a49d9ee._.js.map} +1 -1
  225. package/web/.next/server/chunks/ssr/{src_presentation_web_398553b0._.js → src_presentation_web_5ea689db._.js} +2 -2
  226. package/web/.next/server/chunks/ssr/{src_presentation_web_398553b0._.js.map → src_presentation_web_5ea689db._.js.map} +1 -1
  227. package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_398553b0._.js → server/chunks/ssr/src_presentation_web_7188a290._.js} +2 -2
  228. package/web/.next/server/chunks/ssr/{src_presentation_web_5c87e8e4._.js.map → src_presentation_web_7188a290._.js.map} +1 -1
  229. package/web/.next/server/chunks/ssr/{src_presentation_web_c1bc6240._.js → src_presentation_web_79b0305a._.js} +3 -3
  230. package/web/.next/server/chunks/ssr/{src_presentation_web_c1bc6240._.js.map → src_presentation_web_79b0305a._.js.map} +1 -1
  231. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_cc16bd01.js +3 -0
  232. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_cc16bd01.js.map +1 -0
  233. package/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_get-graph-data_ts_b018483e._.js +3 -0
  234. package/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_get-graph-data_ts_b018483e._.js.map +1 -0
  235. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  236. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  237. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_3d0aa70c._.js +3 -0
  238. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_3d0aa70c._.js.map +1 -0
  239. package/web/.next/server/middleware-build-manifest.js +5 -5
  240. package/web/.next/server/pages/500.html +2 -2
  241. package/web/.next/server/server-reference-manifest.js +1 -1
  242. package/web/.next/server/server-reference-manifest.json +216 -124
  243. package/web/.next/standalone/src/presentation/web/.next/BUILD_ID +1 -1
  244. package/web/.next/standalone/src/presentation/web/.next/app-path-routes-manifest.json +1 -0
  245. package/web/.next/standalone/src/presentation/web/.next/build-manifest.json +7 -7
  246. package/web/.next/standalone/src/presentation/web/.next/prerender-manifest.json +3 -3
  247. package/web/.next/standalone/src/presentation/web/.next/required-server-files.json +1 -1
  248. package/web/.next/standalone/src/presentation/web/.next/routes-manifest.json +8 -0
  249. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page/build-manifest.json +5 -5
  250. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +43 -28
  251. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page.js +4 -4
  252. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  253. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  254. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/build-manifest.json +5 -5
  255. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +49 -34
  256. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +4 -4
  257. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  258. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  259. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/build-manifest.json +5 -5
  260. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +39 -24
  261. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +4 -4
  262. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  263. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  264. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page/build-manifest.json +5 -5
  265. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +43 -28
  266. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page.js +4 -4
  267. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  268. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  269. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page/build-manifest.json +5 -5
  270. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +49 -34
  271. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +4 -4
  272. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  273. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  274. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page/build-manifest.json +5 -5
  275. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +39 -24
  276. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page.js +4 -4
  277. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  278. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  279. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/build-manifest.json +5 -5
  280. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +39 -24
  281. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +4 -4
  282. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  283. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  284. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error/page/build-manifest.json +5 -5
  285. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.html +2 -2
  286. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.rsc +1 -1
  287. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  288. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  289. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  290. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  291. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  292. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page/build-manifest.json +5 -5
  293. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  294. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  295. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  296. package/web/.next/standalone/src/presentation/web/.next/server/app/api/tools/[id]/install/route.js +1 -1
  297. package/web/.next/standalone/src/presentation/web/.next/server/app/api/tools/[id]/install/route.js.nft.json +1 -1
  298. package/web/.next/standalone/src/presentation/web/.next/server/app/api/tools/[id]/install/stream/route/app-paths-manifest.json +3 -0
  299. package/web/.next/standalone/src/presentation/web/.next/server/app/api/tools/[id]/install/stream/route/build-manifest.json +11 -0
  300. package/web/.next/standalone/src/presentation/web/.next/server/app/api/tools/[id]/install/stream/route/server-reference-manifest.json +4 -0
  301. package/web/.next/standalone/src/presentation/web/.next/server/app/api/tools/[id]/install/stream/route.js +6 -0
  302. package/web/.next/standalone/src/presentation/web/.next/server/app/api/tools/[id]/install/stream/route.js.map +5 -0
  303. package/web/.next/standalone/src/presentation/web/.next/server/app/api/tools/[id]/install/stream/route.js.nft.json +1 -0
  304. package/web/.next/standalone/src/presentation/web/.next/server/app/api/tools/[id]/install/stream/route_client-reference-manifest.js +2 -0
  305. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page/build-manifest.json +5 -5
  306. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  307. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page.js +1 -1
  308. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page.js.nft.json +1 -1
  309. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  310. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page/build-manifest.json +5 -5
  311. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page/server-reference-manifest.json +77 -2
  312. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page.js +2 -2
  313. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page.js.nft.json +1 -1
  314. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  315. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page/build-manifest.json +5 -5
  316. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  317. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page.js.nft.json +1 -1
  318. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  319. package/web/.next/standalone/src/presentation/web/.next/server/app-paths-manifest.json +1 -0
  320. package/web/.next/standalone/src/presentation/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js +2 -2
  321. package/web/.next/standalone/src/presentation/web/.next/server/chunks/[root-of-the-server]__0866d2b5._.js +3 -0
  322. package/web/.next/standalone/src/presentation/web/.next/server/chunks/[root-of-the-server]__e247a485._.js +11 -0
  323. package/web/.next/standalone/src/presentation/web/.next/server/chunks/f3a1f__next-internal_server_app_api_tools_[id]_install_stream_route_actions_1fe5bd5d.js +3 -0
  324. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  325. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_3a02d8a5.js +3 -0
  326. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_a3044852.js +3 -0
  327. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__17a611f0._.js +4 -0
  328. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__249c74f6._.js +1 -1
  329. package/web/.next/{server/chunks/ssr/[root-of-the-server]__07385073._.js → standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__45dbf93d._.js} +3 -3
  330. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
  331. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6cbc1149._.js +4 -0
  332. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
  333. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +3 -0
  334. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__c18f84a4._.js +3 -0
  335. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__cbae9863._.js +3 -0
  336. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__e062a6de._.js +3 -0
  337. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__e5e09f72._.js +3 -0
  338. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_0e9d6bf7._.js +3 -0
  339. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_1978f325._.js +7 -0
  340. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_3197d5cb._.js +3 -0
  341. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_61351ed3._.js +3 -0
  342. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_6e08ce21._.js +3 -0
  343. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_8400c8bb._.js +3 -0
  344. package/web/.next/{server/chunks/ssr/_7215bb0f._.js → standalone/src/presentation/web/.next/server/chunks/ssr/_8fa33b4c._.js} +2 -2
  345. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_9f940437._.js +3 -0
  346. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_a29296f0._.js +3 -0
  347. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_e806976d._.js +3 -0
  348. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/{src_presentation_web_1a32dbcb._.js → src_presentation_web_0a49d9ee._.js} +3 -3
  349. package/web/.next/{server/chunks/ssr/src_presentation_web_5c87e8e4._.js → standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_5ea689db._.js} +2 -2
  350. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/{src_presentation_web_5c87e8e4._.js → src_presentation_web_7188a290._.js} +2 -2
  351. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/{src_presentation_web_c1bc6240._.js → src_presentation_web_79b0305a._.js} +3 -3
  352. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_cc16bd01.js +3 -0
  353. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_get-graph-data_ts_b018483e._.js +3 -0
  354. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  355. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_3d0aa70c._.js +3 -0
  356. package/web/.next/standalone/src/presentation/web/.next/server/middleware-build-manifest.js +5 -5
  357. package/web/.next/standalone/src/presentation/web/.next/server/pages/500.html +2 -2
  358. package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.js +1 -1
  359. package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.json +216 -124
  360. package/web/.next/standalone/src/presentation/web/CLAUDE.md +128 -0
  361. package/web/.next/standalone/src/presentation/web/app/actions/get-graph-data.ts +12 -0
  362. package/web/.next/standalone/src/presentation/web/app/api/agent-events/route.ts +4 -1
  363. package/web/.next/standalone/src/presentation/web/app/api/tools/[id]/install/route.ts +14 -6
  364. package/web/.next/standalone/src/presentation/web/app/api/tools/[id]/install/stream/route.ts +42 -0
  365. package/web/.next/standalone/src/presentation/web/components/common/base-drawer/base-drawer.tsx +13 -1
  366. package/web/.next/standalone/src/presentation/web/components/common/feature-node/derive-feature-state.ts +2 -0
  367. package/web/.next/standalone/src/presentation/web/components/features/control-center/use-control-center-state.ts +82 -1
  368. package/web/.next/standalone/src/presentation/web/components/features/features-canvas/features-canvas.tsx +21 -23
  369. package/web/.next/standalone/src/presentation/web/components/features/index.ts +1 -1
  370. package/web/.next/standalone/src/presentation/web/components/features/tools/index.ts +1 -1
  371. package/web/.next/standalone/src/presentation/web/components/features/tools/tool-card.stories.tsx +18 -0
  372. package/web/.next/standalone/src/presentation/web/components/features/tools/tool-card.tsx +75 -67
  373. package/web/.next/standalone/src/presentation/web/components/features/tools/tool-detail-drawer.stories.tsx +132 -0
  374. package/web/.next/standalone/src/presentation/web/components/features/tools/tool-detail-drawer.tsx +313 -0
  375. package/web/.next/standalone/src/presentation/web/components/features/tools/tools-page-client.stories.tsx +15 -0
  376. package/web/.next/standalone/src/presentation/web/components/features/tools/tools-page-client.tsx +3 -3
  377. package/web/.next/standalone/src/presentation/web/hooks/use-tool-install-stream.ts +58 -0
  378. package/web/.next/standalone/src/presentation/web/server.js +1 -1
  379. package/web/.next/static/chunks/3cab1e09dfb7bd2f.js +1 -0
  380. package/web/.next/static/chunks/4a3b3cfcc85e7254.js +1 -0
  381. package/web/.next/static/chunks/5d0a6417c4e4e545.js +1 -0
  382. package/web/.next/static/chunks/67f2a7a5e8dc358a.css +2 -0
  383. package/web/.next/static/chunks/73304a30a2bc5060.js +1 -0
  384. package/web/.next/static/chunks/778b64d00834e733.js +1 -0
  385. package/web/.next/static/chunks/84a181ff3270fd9f.js +1 -0
  386. package/web/.next/static/chunks/{b45344579a43cbb8.js → 86a1874bad52ce9c.js} +1 -1
  387. package/web/.next/static/chunks/9215b6fb973482c5.js +1 -0
  388. package/web/.next/static/chunks/{585ae19c520e8b72.js → ac1ebc041544949d.js} +1 -1
  389. package/web/.next/static/chunks/b2594f43fcecee16.js +1 -0
  390. package/web/.next/static/chunks/c92e1360ada8ca94.js +5 -0
  391. package/web/.next/static/chunks/{fe83a799663fd3cc.js → de9e34a45eebec78.js} +1 -1
  392. package/web/.next/static/chunks/eb3b1975428d04a8.js +1 -0
  393. package/web/.next/static/chunks/edbd674102e897b4.js +1 -0
  394. package/web/.next/static/chunks/f0a17d065f1aa75f.js +1 -0
  395. package/web/.next/static/chunks/{turbopack-3a8fe0e18e69b0ab.js → turbopack-05820f781f3ffc22.js} +1 -1
  396. package/web/.next/trace +1 -1
  397. package/web/.next/trace-build +1 -1
  398. package/web/.next/types/link.d.ts +1 -0
  399. package/web/.next/types/routes.d.ts +2 -1
  400. package/web/.next/types/validator.ts +9 -0
  401. package/dist/src/presentation/web/components/features/tools/install-instructions.d.ts +0 -9
  402. package/dist/src/presentation/web/components/features/tools/install-instructions.d.ts.map +0 -1
  403. package/dist/src/presentation/web/components/features/tools/install-instructions.js +0 -19
  404. package/dist/src/presentation/web/components/features/tools/install-instructions.stories.d.ts +0 -12
  405. package/dist/src/presentation/web/components/features/tools/install-instructions.stories.d.ts.map +0 -1
  406. package/dist/src/presentation/web/components/features/tools/install-instructions.stories.js +0 -77
  407. package/web/.next/server/chunks/[root-of-the-server]__b1f03347._.js +0 -3
  408. package/web/.next/server/chunks/[root-of-the-server]__b1f03347._.js.map +0 -1
  409. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_2b7834f6.js +0 -3
  410. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_2b7834f6.js.map +0 -1
  411. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_6923c575.js +0 -3
  412. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_6923c575.js.map +0 -1
  413. package/web/.next/server/chunks/ssr/[root-of-the-server]__08ba9bd3._.js +0 -4
  414. package/web/.next/server/chunks/ssr/[root-of-the-server]__08ba9bd3._.js.map +0 -1
  415. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js +0 -3
  416. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js.map +0 -1
  417. package/web/.next/server/chunks/ssr/[root-of-the-server]__6db85a66._.js +0 -4
  418. package/web/.next/server/chunks/ssr/[root-of-the-server]__6db85a66._.js.map +0 -1
  419. package/web/.next/server/chunks/ssr/[root-of-the-server]__8c1a3d66._.js +0 -3
  420. package/web/.next/server/chunks/ssr/[root-of-the-server]__8c1a3d66._.js.map +0 -1
  421. package/web/.next/server/chunks/ssr/[root-of-the-server]__8fcb9132._.js +0 -4
  422. package/web/.next/server/chunks/ssr/[root-of-the-server]__8fcb9132._.js.map +0 -1
  423. package/web/.next/server/chunks/ssr/[root-of-the-server]__9d14479b._.js +0 -3
  424. package/web/.next/server/chunks/ssr/[root-of-the-server]__9d14479b._.js.map +0 -1
  425. package/web/.next/server/chunks/ssr/[root-of-the-server]__d4e51258._.js +0 -3
  426. package/web/.next/server/chunks/ssr/[root-of-the-server]__d4e51258._.js.map +0 -1
  427. package/web/.next/server/chunks/ssr/[root-of-the-server]__fe2a7deb._.js +0 -3
  428. package/web/.next/server/chunks/ssr/[root-of-the-server]__fe2a7deb._.js.map +0 -1
  429. package/web/.next/server/chunks/ssr/_00e6c698._.js +0 -3
  430. package/web/.next/server/chunks/ssr/_00e6c698._.js.map +0 -1
  431. package/web/.next/server/chunks/ssr/_13566ff3._.js +0 -3
  432. package/web/.next/server/chunks/ssr/_13566ff3._.js.map +0 -1
  433. package/web/.next/server/chunks/ssr/_250a63ae._.js +0 -3
  434. package/web/.next/server/chunks/ssr/_250a63ae._.js.map +0 -1
  435. package/web/.next/server/chunks/ssr/_26129e04._.js +0 -3
  436. package/web/.next/server/chunks/ssr/_26129e04._.js.map +0 -1
  437. package/web/.next/server/chunks/ssr/_34a58db8._.js +0 -3
  438. package/web/.next/server/chunks/ssr/_34a58db8._.js.map +0 -1
  439. package/web/.next/server/chunks/ssr/_37259405._.js +0 -3
  440. package/web/.next/server/chunks/ssr/_37259405._.js.map +0 -1
  441. package/web/.next/server/chunks/ssr/_63bfa7dd._.js +0 -3
  442. package/web/.next/server/chunks/ssr/_63bfa7dd._.js.map +0 -1
  443. package/web/.next/server/chunks/ssr/_cb5b3951._.js +0 -3
  444. package/web/.next/server/chunks/ssr/_cb5b3951._.js.map +0 -1
  445. package/web/.next/server/chunks/ssr/_fc3a6895._.js +0 -3
  446. package/web/.next/server/chunks/ssr/_fc3a6895._.js.map +0 -1
  447. package/web/.next/server/chunks/ssr/node_modules__pnpm_3288606c._.js +0 -7
  448. package/web/.next/server/chunks/ssr/node_modules__pnpm_3288606c._.js.map +0 -1
  449. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_f4952172.js +0 -3
  450. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_f4952172.js.map +0 -1
  451. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js +0 -3
  452. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js.map +0 -1
  453. package/web/.next/standalone/src/presentation/web/.next/server/chunks/[root-of-the-server]__b1f03347._.js +0 -3
  454. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_2b7834f6.js +0 -3
  455. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_6923c575.js +0 -3
  456. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__08ba9bd3._.js +0 -4
  457. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js +0 -3
  458. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6db85a66._.js +0 -4
  459. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__8c1a3d66._.js +0 -3
  460. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__8fcb9132._.js +0 -4
  461. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__9d14479b._.js +0 -3
  462. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__d4e51258._.js +0 -3
  463. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__fe2a7deb._.js +0 -3
  464. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_00e6c698._.js +0 -3
  465. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_13566ff3._.js +0 -3
  466. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_250a63ae._.js +0 -3
  467. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_26129e04._.js +0 -3
  468. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_34a58db8._.js +0 -3
  469. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_37259405._.js +0 -3
  470. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_63bfa7dd._.js +0 -3
  471. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_cb5b3951._.js +0 -3
  472. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_fc3a6895._.js +0 -3
  473. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/node_modules__pnpm_3288606c._.js +0 -7
  474. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_f4952172.js +0 -3
  475. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js +0 -3
  476. package/web/.next/standalone/src/presentation/web/components/features/tools/install-instructions.stories.tsx +0 -89
  477. package/web/.next/standalone/src/presentation/web/components/features/tools/install-instructions.tsx +0 -109
  478. package/web/.next/static/chunks/07fcc6d17357e905.js +0 -1
  479. package/web/.next/static/chunks/304c8593d0a6525d.js +0 -1
  480. package/web/.next/static/chunks/3e1227e02ef8bcc6.js +0 -5
  481. package/web/.next/static/chunks/4558d1663c6f4d2c.js +0 -1
  482. package/web/.next/static/chunks/4df07e765b233622.js +0 -1
  483. package/web/.next/static/chunks/64d73952a0291431.js +0 -1
  484. package/web/.next/static/chunks/6e14d8bd5c005e6e.js +0 -1
  485. package/web/.next/static/chunks/8a1eb93510e54db0.js +0 -1
  486. package/web/.next/static/chunks/938c21b0cefb2b1d.js +0 -1
  487. package/web/.next/static/chunks/b143c7d78a6888e9.js +0 -1
  488. package/web/.next/static/chunks/c7e793951b20a67f.js +0 -1
  489. package/web/.next/static/chunks/dec13bccb136ef7c.css +0 -2
  490. package/web/.next/static/chunks/e4522f7d3134eefe.js +0 -1
  491. /package/web/.next/static/{9bO_bJBssG0NRxEG03iM5 → rLo0X398WFLTarx1augqu}/_buildManifest.js +0 -0
  492. /package/web/.next/static/{9bO_bJBssG0NRxEG03iM5 → rLo0X398WFLTarx1augqu}/_clientMiddlewareManifest.json +0 -0
  493. /package/web/.next/static/{9bO_bJBssG0NRxEG03iM5 → rLo0X398WFLTarx1augqu}/_ssgManifest.js +0 -0
@@ -9,7 +9,7 @@
9
9
  * - Application layer depends on this interface
10
10
  * - Infrastructure layer provides concrete implementation
11
11
  */
12
- import type { ApprovalGates } from '../../../../domain/generated/output.js';
12
+ import type { ApprovalGates, AgentType } from '../../../../domain/generated/output.js';
13
13
  /**
14
14
  * Service interface for feature agent background process management.
15
15
  */
@@ -31,6 +31,7 @@ export interface IFeatureAgentProcessService {
31
31
  push?: boolean;
32
32
  openPr?: boolean;
33
33
  resumePayload?: string;
34
+ agentType?: AgentType;
34
35
  }): number;
35
36
  /**
36
37
  * Check if a process is still alive.
@@ -1 +1 @@
1
- {"version":3,"file":"feature-agent-process.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/agents/feature-agent-process.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;;;;;;;OAQG;IACH,KAAK,CACH,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;QACR,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,GACA,MAAM,CAAC;IAEV;;;;;OAKG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAE9B;;;;;OAKG;IACH,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnD"}
1
+ {"version":3,"file":"feature-agent-process.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/agents/feature-agent-process.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAEvF;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;;;;;;;OAQG;IACH,KAAK,CACH,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;QACR,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,SAAS,CAAC;KACvB,GACA,MAAM,CAAC;IAEV;;;;;OAKG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAE9B;;;;;OAKG;IACH,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnD"}
@@ -1 +1 @@
1
- {"version":3,"file":"approve-agent-run.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/agents/approve-agent-run.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6DAA6D,CAAC;AACvG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8DAA8D,CAAC;AAChH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gEAAgE,CAAC;AAC7G,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAE1G,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAI9E,qBACa,sBAAsB;IAG/B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAEnC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAElC,OAAO,CAAC,QAAQ,CAAC,qBAAqB;gBANrB,kBAAkB,EAAE,mBAAmB,EAEvC,cAAc,EAAE,2BAA2B,EAE3C,iBAAiB,EAAE,kBAAkB,EAErC,qBAAqB,EAAE,sBAAsB;IAG1D,OAAO,CACX,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CA6FlD"}
1
+ {"version":3,"file":"approve-agent-run.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/agents/approve-agent-run.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6DAA6D,CAAC;AACvG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8DAA8D,CAAC;AAChH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gEAAgE,CAAC;AAC7G,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAE1G,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAI9E,qBACa,sBAAsB;IAG/B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAEnC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAElC,OAAO,CAAC,QAAQ,CAAC,qBAAqB;gBANrB,kBAAkB,EAAE,mBAAmB,EAEvC,cAAc,EAAE,2BAA2B,EAE3C,iBAAiB,EAAE,kBAAkB,EAErC,qBAAqB,EAAE,sBAAsB;IAG1D,OAAO,CACX,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CA8FlD"}
@@ -107,6 +107,7 @@ let ApproveAgentRunUseCase = class ApproveAgentRunUseCase {
107
107
  push: feature?.push ?? false,
108
108
  openPr: feature?.openPr ?? false,
109
109
  ...(payload ? { resumePayload: JSON.stringify(payload) } : {}),
110
+ agentType: run.agentType,
110
111
  });
111
112
  return { approved: true, reason: 'Approved and resumed' };
112
113
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resume-feature.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/features/resume-feature.use-case.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAE7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAC1G,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6DAA6D,CAAC;AACvG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8DAA8D,CAAC;AAChH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAQlG,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,QAAQ,CAAC;CAClB;AAED,qBACa,oBAAoB;IAG7B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAExB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,eAAe;gBANf,WAAW,EAAE,kBAAkB,EAE/B,OAAO,EAAE,mBAAmB,EAE5B,cAAc,EAAE,2BAA2B,EAE3C,eAAe,EAAE,gBAAgB;IAG9C,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAgG/D"}
1
+ {"version":3,"file":"resume-feature.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/features/resume-feature.use-case.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAE7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAC1G,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6DAA6D,CAAC;AACvG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8DAA8D,CAAC;AAChH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAQlG,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,QAAQ,CAAC;CAClB;AAED,qBACa,oBAAoB;IAG7B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAExB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,eAAe;gBANf,WAAW,EAAE,kBAAkB,EAE/B,OAAO,EAAE,mBAAmB,EAE5B,cAAc,EAAE,2BAA2B,EAE3C,eAAe,EAAE,gBAAgB;IAG9C,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAiG/D"}
@@ -106,6 +106,7 @@ let ResumeFeatureUseCase = class ResumeFeatureUseCase {
106
106
  resumeFromInterrupt: lastRun.status === AgentRunStatus.waitingApproval,
107
107
  push: feature.push,
108
108
  openPr: feature.openPr,
109
+ agentType: lastRun.agentType,
109
110
  });
110
111
  return { feature, newRun };
111
112
  }
@@ -21,6 +21,9 @@ export interface ToolItem {
21
21
  documentationUrl: string;
22
22
  installCommand: string | undefined;
23
23
  status: ToolInstallationStatus;
24
+ author: string | undefined;
25
+ website: string | undefined;
26
+ platforms: ('linux' | 'darwin' | 'win32')[] | undefined;
24
27
  }
25
28
  export type ListToolsResult = ToolItem[];
26
29
  export declare class ListToolsUseCase {
@@ -1 +1 @@
1
- {"version":3,"file":"list-tools.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/tools/list-tools.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAGlF,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,CAAC,KAAK,GAAG,WAAW,GAAG,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC;IACnD,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,MAAM,EAAE,sBAAsB,CAAC;CAChC;AAED,MAAM,MAAM,eAAe,GAAG,QAAQ,EAAE,CAAC;AAWzC,qBACa,gBAAgB;IAGzB,OAAO,CAAC,QAAQ,CAAC,oBAAoB;gBAApB,oBAAoB,EAAE,qBAAqB;IAGxD,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC;CAgC1C"}
1
+ {"version":3,"file":"list-tools.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/tools/list-tools.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAGlF,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,CAAC,KAAK,GAAG,WAAW,GAAG,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC;IACnD,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,MAAM,EAAE,sBAAsB,CAAC;IAC/B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,SAAS,EAAE,CAAC,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC;CACzD;AAED,MAAM,MAAM,eAAe,GAAG,QAAQ,EAAE,CAAC;AAWzC,qBACa,gBAAgB;IAGzB,OAAO,CAAC,QAAQ,CAAC,oBAAoB;gBAApB,oBAAoB,EAAE,qBAAqB;IAGxD,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC;CAmC1C"}
@@ -57,6 +57,9 @@ let ListToolsUseCase = class ListToolsUseCase {
57
57
  documentationUrl: metadata.documentationUrl,
58
58
  installCommand: metadata.commands[currentPlatform],
59
59
  status,
60
+ author: metadata.author,
61
+ website: metadata.website,
62
+ platforms: metadata.platforms,
60
63
  };
61
64
  }));
62
65
  return results;
@@ -88,7 +88,7 @@ export function createDefaultSettings() {
88
88
  const notifications = {
89
89
  inApp: { enabled: true },
90
90
  browser: { enabled: true },
91
- desktop: { enabled: true },
91
+ desktop: { enabled: false },
92
92
  events: {
93
93
  agentStarted: true,
94
94
  phaseCompleted: true,
@@ -1 +1 @@
1
- {"version":3,"file":"dev-executor.service.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/core/src/infrastructure/services/agents/common/executors/dev-executor.service.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,4EAA4E,CAAC;AAqDpF,qBAAa,uBAAwB,YAAW,cAAc;IAC5D,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAsB;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;;IAM3B,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAOvF,aAAa,CAClB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,qBAAqB,GAC9B,aAAa,CAAC,yBAAyB,CAAC;IAK3C,eAAe,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO;IAIhD,OAAO,CAAC,QAAQ;CAmEjB"}
1
+ {"version":3,"file":"dev-executor.service.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/core/src/infrastructure/services/agents/common/executors/dev-executor.service.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,4EAA4E,CAAC;AAmIpF,qBAAa,uBAAwB,YAAW,cAAc;IAC5D,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAsB;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;;IAM3B,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAOvF,aAAa,CAClB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,qBAAqB,GAC9B,aAAa,CAAC,yBAAyB,CAAC;IAK3C,eAAe,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO;IAIhD,OAAO,CAAC,QAAQ;CAmEjB"}
@@ -9,15 +9,90 @@ import { RESEARCH_FIXTURE } from './fixtures/research.fixture.js';
9
9
  import { PLAN_FIXTURE } from './fixtures/plan.fixture.js';
10
10
  import { TASKS_FIXTURE } from './fixtures/tasks.fixture.js';
11
11
  const DEFAULT_DELAY_MS = 2000;
12
- const METADATA_RESULT = JSON.stringify({
13
- slug: 'dark-mode-toggle',
14
- name: 'Dark Mode Toggle',
15
- description: 'Add a dark-mode toggle to the Shep web UI settings panel',
16
- });
17
- // Satisfies merge-output-parser.ts COMMIT_SHA_RE and PR_URL_RE patterns
18
- const MERGE_COMMIT_RESULT = '[feat/042-dark-mode-toggle abc1234f] feat(ui): add dark-mode toggle\n' +
19
- 'https://github.com/shep-ai/shep/pull/42\nPull request #42 created successfully.';
20
- const MERGE_SQUASH_RESULT = 'Merged PR #42 with squash merge. Branch feat/042-dark-mode-toggle deleted.';
12
+ const ADJECTIVES = [
13
+ 'quantum',
14
+ 'blazing',
15
+ 'cosmic',
16
+ 'fuzzy',
17
+ 'turbo',
18
+ 'hyperbolic',
19
+ 'spectral',
20
+ 'chromatic',
21
+ 'orbital',
22
+ 'fractal',
23
+ 'velvet',
24
+ 'neon',
25
+ 'arctic',
26
+ 'molten',
27
+ 'prismatic',
28
+ 'phantom',
29
+ 'galactic',
30
+ 'atomic',
31
+ 'sonic',
32
+ 'ethereal',
33
+ ];
34
+ const NOUNS = [
35
+ 'widget',
36
+ 'pipeline',
37
+ 'dashboard',
38
+ 'renderer',
39
+ 'compiler',
40
+ 'beacon',
41
+ 'transformer',
42
+ 'navigator',
43
+ 'interceptor',
44
+ 'gateway',
45
+ 'synthesizer',
46
+ 'orchestrator',
47
+ 'resolver',
48
+ 'dispatcher',
49
+ 'emitter',
50
+ 'detector',
51
+ 'aggregator',
52
+ 'scheduler',
53
+ 'validator',
54
+ 'serializer',
55
+ ];
56
+ const VERBS = [
57
+ 'add',
58
+ 'implement',
59
+ 'integrate',
60
+ 'build',
61
+ 'create',
62
+ 'wire up',
63
+ 'introduce',
64
+ 'scaffold',
65
+ 'bootstrap',
66
+ 'enable',
67
+ ];
68
+ function randomMetadata() {
69
+ const adj = ADJECTIVES[Math.floor(Math.random() * ADJECTIVES.length)];
70
+ const noun = NOUNS[Math.floor(Math.random() * NOUNS.length)];
71
+ const verb = VERBS[Math.floor(Math.random() * VERBS.length)];
72
+ const slug = `${adj}-${noun}`;
73
+ const name = `${adj.charAt(0).toUpperCase() + adj.slice(1)} ${noun.charAt(0).toUpperCase() + noun.slice(1)}`;
74
+ return JSON.stringify({
75
+ slug,
76
+ name,
77
+ description: `${verb.charAt(0).toUpperCase() + verb.slice(1)} a ${adj} ${noun} to the application`,
78
+ });
79
+ }
80
+ function randomPrNumber() {
81
+ return Math.floor(Math.random() * 900) + 100;
82
+ }
83
+ function randomCommitHash() {
84
+ return Math.random().toString(16).slice(2, 10);
85
+ }
86
+ function mergeCommitResult() {
87
+ const pr = randomPrNumber();
88
+ const hash = randomCommitHash();
89
+ return (`[feat/dev-branch ${hash}] feat: dev implementation\n` +
90
+ `https://github.com/shep-ai/shep/pull/${pr}\nPull request #${pr} created successfully.`);
91
+ }
92
+ function mergeSquashResult() {
93
+ const pr = randomPrNumber();
94
+ return `Merged PR #${pr} with squash merge. Branch feat/dev-branch deleted.`;
95
+ }
21
96
  const IMPLEMENT_RESULT = 'Implementation complete. All tests pass.\npnpm test: 47 passed, 0 failed';
22
97
  const CI_FIX_RESULT = 'Fixed CI failure: corrected import path. All checks now passing.';
23
98
  /**
@@ -66,7 +141,7 @@ export class DevAgentExecutorService {
66
141
  dispatch(prompt) {
67
142
  // Metadata: mock-executor.service.ts extractUserInput pattern
68
143
  if (prompt.includes('User request:\n"'))
69
- return METADATA_RESULT;
144
+ return randomMetadata();
70
145
  // Analyze: analyze.prompt.ts:39
71
146
  if (prompt.includes('Write your analysis to:')) {
72
147
  const specDir = extractSpecDir(prompt);
@@ -113,13 +188,13 @@ export class DevAgentExecutorService {
113
188
  return IMPLEMENT_RESULT;
114
189
  // Merge commit/push/PR: merge-prompts.ts:88
115
190
  if (prompt.includes('performing git operations in a feature worktree'))
116
- return MERGE_COMMIT_RESULT;
191
+ return mergeCommitResult();
117
192
  // Merge squash (PR): merge-prompts.ts:131
118
193
  if (prompt.includes('merging a pull request via the GitHub CLI'))
119
- return MERGE_SQUASH_RESULT;
194
+ return mergeSquashResult();
120
195
  // Merge squash (local): merge-prompts.ts:168
121
196
  if (prompt.includes('performing a local merge'))
122
- return MERGE_SQUASH_RESULT;
197
+ return mergeSquashResult();
123
198
  // CI fix: merge.prompt.ts:28
124
199
  if (prompt.includes('fixing a CI failure'))
125
200
  return CI_FIX_RESULT;
@@ -71,7 +71,7 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
71
71
  ciFixAttempts?: number | undefined;
72
72
  ciFixHistory?: import("../../../../domain/index.js").CiFixRecord[] | undefined;
73
73
  ciFixStatus?: "success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted" | undefined;
74
- }, "__start__" | "analyze" | "requirements" | "research" | "plan" | "implement" | "validate_spec_analyze" | "validate_spec_requirements" | "validate_research" | "validate_plan_tasks" | "repair_spec_analyze" | "repair_spec_requirements" | "repair_research" | "repair_plan_tasks", {
74
+ }, "implement" | "__start__" | "analyze" | "requirements" | "research" | "plan" | "validate_spec_analyze" | "validate_spec_requirements" | "validate_research" | "validate_plan_tasks" | "repair_spec_analyze" | "repair_spec_requirements" | "repair_research" | "repair_plan_tasks", {
75
75
  featureId: {
76
76
  (): import("@langchain/langgraph").LastValue<string>;
77
77
  (annotation: import("@langchain/langgraph").SingleReducer<string, string>): import("@langchain/langgraph").BinaryOperatorAggregate<string, string>;
@@ -7,7 +7,7 @@
7
7
  */
8
8
  import type { IFeatureAgentProcessService } from '../../../../application/ports/output/agents/feature-agent-process.interface.js';
9
9
  import type { IAgentRunRepository } from '../../../../application/ports/output/agents/agent-run-repository.interface.js';
10
- import { type ApprovalGates } from '../../../../domain/generated/output.js';
10
+ import { type ApprovalGates, type AgentType } from '../../../../domain/generated/output.js';
11
11
  export declare class FeatureAgentProcessService implements IFeatureAgentProcessService {
12
12
  private readonly runRepository;
13
13
  constructor(runRepository: IAgentRunRepository);
@@ -19,6 +19,7 @@ export declare class FeatureAgentProcessService implements IFeatureAgentProcessS
19
19
  push?: boolean;
20
20
  openPr?: boolean;
21
21
  resumePayload?: string;
22
+ agentType?: AgentType;
22
23
  }): number;
23
24
  isAlive(pid: number): boolean;
24
25
  checkAndMarkCrashed(runId: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"feature-agent-process.service.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sEAAsE,CAAC;AACxH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qEAAqE,CAAC;AAC/G,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAYlF,qBAAa,0BAA2B,YAAW,2BAA2B;IAChE,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,mBAAmB;IAE/D,KAAK,CACH,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;QACR,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,GACA,MAAM;IA0DT,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IASvB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAexD"}
1
+ {"version":3,"file":"feature-agent-process.service.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sEAAsE,CAAC;AACxH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qEAAqE,CAAC;AAC/G,OAAO,EAAkB,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAYlG,qBAAa,0BAA2B,YAAW,2BAA2B;IAChE,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,mBAAmB;IAE/D,KAAK,CACH,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;QACR,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,SAAS,CAAC;KACvB,GACA,MAAM;IA6DT,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IASvB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAexD"}
@@ -62,6 +62,9 @@ export class FeatureAgentProcessService {
62
62
  if (options?.resumePayload) {
63
63
  args.push('--resume-payload', options.resumePayload);
64
64
  }
65
+ if (options?.agentType) {
66
+ args.push('--agent-type', options.agentType);
67
+ }
65
68
  // Create log file for worker output (for debugging)
66
69
  const logsDir = join(homedir(), '.shep', 'logs');
67
70
  mkdirSync(logsDir, { recursive: true });
@@ -9,6 +9,7 @@
9
9
  * CLI Args: --feature-id <id> --run-id <id> --repo <path> --spec-dir <path>
10
10
  */
11
11
  import 'reflect-metadata';
12
+ import { type AgentType } from '../../../../domain/generated/output.js';
12
13
  import type { ApprovalGates } from '../../../../domain/generated/output.js';
13
14
  export interface WorkerArgs {
14
15
  featureId: string;
@@ -23,6 +24,7 @@ export interface WorkerArgs {
23
24
  push?: boolean;
24
25
  openPr?: boolean;
25
26
  resumePayload?: string;
27
+ agentType?: AgentType;
26
28
  }
27
29
  /**
28
30
  * Parse CLI arguments into a WorkerArgs object.
@@ -1 +1 @@
1
- {"version":3,"file":"feature-agent-worker.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AAEH,OAAO,kBAAkB,CAAC;AAqB1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAoD1D;AAgCD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA0M/D"}
1
+ {"version":3,"file":"feature-agent-worker.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AAEH,OAAO,kBAAkB,CAAC;AAa1B,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAS9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CA2D1D;AAgCD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAiN/D"}
@@ -53,6 +53,10 @@ export function parseWorkerArgs(args) {
53
53
  const openPr = args.includes('--open-pr');
54
54
  const threadIdx = args.indexOf('--thread-id');
55
55
  const threadId = threadIdx !== -1 && threadIdx + 1 < args.length ? args[threadIdx + 1] : undefined;
56
+ const agentTypeIdx = args.indexOf('--agent-type');
57
+ const agentType = agentTypeIdx !== -1 && agentTypeIdx + 1 < args.length
58
+ ? args[agentTypeIdx + 1]
59
+ : undefined;
56
60
  const resumePayloadIdx = args.indexOf('--resume-payload');
57
61
  const resumePayload = resumePayloadIdx !== -1 && resumePayloadIdx + 1 < args.length
58
62
  ? args[resumePayloadIdx + 1]
@@ -70,6 +74,7 @@ export function parseWorkerArgs(args) {
70
74
  push,
71
75
  openPr,
72
76
  resumePayload,
77
+ agentType,
73
78
  };
74
79
  }
75
80
  /** Simple worker logger — writes to stdout which is redirected to log file by the parent. */
@@ -119,9 +124,17 @@ export async function runWorker(args) {
119
124
  initializeSettings(settings);
120
125
  const runRepository = container.resolve('IAgentRunRepository');
121
126
  const executorProvider = container.resolve('IAgentExecutorProvider');
122
- // Create executor from configured agent settings
123
- log('Creating executor from configured agent settings...');
124
- const executor = executorProvider.getExecutor();
127
+ // Create executor use pinned agentType when resuming, otherwise fall back to settings
128
+ let executor;
129
+ if (args.agentType) {
130
+ log(`Creating executor from pinned agent type: ${args.agentType}`);
131
+ const factory = container.resolve('IAgentExecutorFactory');
132
+ executor = factory.createExecutor(args.agentType, settings.agent);
133
+ }
134
+ else {
135
+ log('Creating executor from configured agent settings...');
136
+ executor = executorProvider.getExecutor();
137
+ }
125
138
  // Resolve merge node dependencies
126
139
  const gitPrService = container.resolve('IGitPrService');
127
140
  const featureRepository = container.resolve('IFeatureRepository');
@@ -1 +1 @@
1
- {"version":3,"file":"merge.node.d.ts","sourceRoot":"","sources":["../../../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AACpG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yEAAyE,CAAC;AAClH,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACd,MAAM,iEAAiE,CAAC;AAmBzE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,cAAc,CAAC;IACzB,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1E,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,EAAE,UAAU,GAAG,QAAQ,CAAC,CAAC;IACnE;;;OAGG;IACH,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1F,YAAY,EAAE,aAAa,CAAC;CAC7B;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,IAGnC,OAAO,iBAAiB,KAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAkQ7E"}
1
+ {"version":3,"file":"merge.node.d.ts","sourceRoot":"","sources":["../../../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AACpG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yEAAyE,CAAC;AAClH,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACd,MAAM,iEAAiE,CAAC;AAmBzE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,cAAc,CAAC;IACzB,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1E,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,EAAE,UAAU,GAAG,QAAQ,CAAC,CAAC;IACnE;;;OAGG;IACH,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1F,YAAY,EAAE,aAAa,CAAC;CAC7B;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,IAGnC,OAAO,iBAAiB,KAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAsQ7E"}
@@ -36,9 +36,13 @@ export function createMergeNode(deps) {
36
36
  // --- Rejection detection on resume ---
37
37
  // Use DB lifecycle (Review) instead of feature.yaml completedPhases to detect
38
38
  // resume, because feature.yaml is in the worktree which was already pushed.
39
+ // Also require _approvalAction to be set — this distinguishes a genuine resume
40
+ // (where the worker sets _approvalAction via Command({update})) from a first run
41
+ // where updateNodeLifecycle('merge') already set lifecycle=Review in the DB.
39
42
  const featureForResume = await deps.featureRepository.findById(state.featureId);
40
43
  const isResumeAfterInterrupt = featureForResume?.lifecycle === SdlcLifecycle.Review &&
41
- shouldInterrupt('merge', state.approvalGates);
44
+ shouldInterrupt('merge', state.approvalGates) &&
45
+ state._approvalAction !== null;
42
46
  if (isResumeAfterInterrupt && state._approvalAction === 'rejected') {
43
47
  const feedback = state._rejectionFeedback ?? '(no feedback)';
44
48
  log.info(`Merge rejected with feedback: "${feedback}" — scheduling re-execution`);
@@ -1 +1 @@
1
- {"version":3,"file":"tool-installer.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/tool-installer/tool-installer.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sEAAsE,CAAC;AAClH,OAAO,KAAK,EACV,sBAAsB,EACtB,kBAAkB,EAEnB,MAAM,qCAAqC,CAAC;AAsD7C,qBACa,wBAAyB,YAAW,qBAAqB;IACpE;;;OAGG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAoC1E;;;OAGG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI;IAqB9D;;;OAGG;IACG,cAAc,CAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAChC,OAAO,CAAC,sBAAsB,CAAC;IAuElC;;OAEG;IACH,OAAO,CAAC,6BAA6B;CA4BtC"}
1
+ {"version":3,"file":"tool-installer.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/tool-installer/tool-installer.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sEAAsE,CAAC;AAClH,OAAO,KAAK,EACV,sBAAsB,EACtB,kBAAkB,EAEnB,MAAM,qCAAqC,CAAC;AAsD7C,qBACa,wBAAyB,YAAW,qBAAqB;IACpE;;;OAGG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAoC1E;;;OAGG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI;IAqB9D;;;OAGG;IACG,cAAc,CAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAChC,OAAO,CAAC,sBAAsB,CAAC;IAgFlC;;OAEG;IACH,OAAO,CAAC,6BAA6B;CA4BtC"}
@@ -132,8 +132,16 @@ let ToolInstallerServiceImpl = class ToolInstallerServiceImpl {
132
132
  let output = '';
133
133
  const child = spawn('sh', ['-c', installCommand.command], {
134
134
  shell: false,
135
- stdio: ['ignore', 'pipe', 'pipe'],
135
+ stdio: ['pipe', 'pipe', 'pipe'],
136
+ env: {
137
+ ...process.env,
138
+ DEBIAN_FRONTEND: 'noninteractive',
139
+ GIT_TERMINAL_PROMPT: '0',
140
+ GPG_TTY: '',
141
+ },
136
142
  });
143
+ // Close stdin immediately to prevent interactive prompts
144
+ child.stdin?.end();
137
145
  // Stream output from stdout and stderr
138
146
  const pipeOutput = (stream) => {
139
147
  if (!stream)
@@ -16,6 +16,12 @@ export interface ToolMetadata {
16
16
  description: string;
17
17
  /** Tool tags for grouping in listings. A tool can belong to multiple categories. */
18
18
  tags: ('ide' | 'cli-agent' | 'vcs' | 'terminal')[];
19
+ /** Company or developer name */
20
+ author?: string;
21
+ /** Main website/homepage URL (separate from documentation) */
22
+ website?: string;
23
+ /** Supported platforms (os.platform() values) */
24
+ platforms?: ('linux' | 'darwin' | 'win32')[];
19
25
  /** URL to the tool's icon/logo image */
20
26
  iconUrl?: string;
21
27
  /** Binary name to check with 'which' command (string or per-platform map) */
@@ -1 +1 @@
1
- {"version":3,"file":"tool-metadata.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/tool-installer/tool-metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,MAAM,WAAW,YAAY;IAC3B,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IAEb,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAEhB,2BAA2B;IAC3B,WAAW,EAAE,MAAM,CAAC;IAEpB,oFAAoF;IACpF,IAAI,EAAE,CAAC,KAAK,GAAG,WAAW,GAAG,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC;IAEnD,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,6EAA6E;IAC7E,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAExC,6CAA6C;IAC7C,cAAc,EAAE,MAAM,CAAC;IAEvB,wFAAwF;IACxF,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAEhB,iCAAiC;IACjC,gBAAgB,EAAE,MAAM,CAAC;IAEzB,8DAA8D;IAC9D,aAAa,EAAE,MAAM,CAAC;IAEtB,uEAAuE;IACvE,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;yGAEqG;IACrG,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEhD;;iGAE6F;IAC7F,YAAY,CAAC,EAAE;QACb,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;QACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;IAEF;;;;wEAIoE;IACpE,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnD;AA8CD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAsB,CAAC;AAE9E;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,CAExD"}
1
+ {"version":3,"file":"tool-metadata.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/tool-installer/tool-metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,MAAM,WAAW,YAAY;IAC3B,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IAEb,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAEhB,2BAA2B;IAC3B,WAAW,EAAE,MAAM,CAAC;IAEpB,oFAAoF;IACpF,IAAI,EAAE,CAAC,KAAK,GAAG,WAAW,GAAG,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC;IAEnD,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,iDAAiD;IACjD,SAAS,CAAC,EAAE,CAAC,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC;IAE7C,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,6EAA6E;IAC7E,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAExC,6CAA6C;IAC7C,cAAc,EAAE,MAAM,CAAC;IAEvB,wFAAwF;IACxF,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAEhB,iCAAiC;IACjC,gBAAgB,EAAE,MAAM,CAAC;IAEzB,8DAA8D;IAC9D,aAAa,EAAE,MAAM,CAAC;IAEtB,uEAAuE;IACvE,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;yGAEqG;IACrG,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEhD;;iGAE6F;IAC7F,YAAY,CAAC,EAAE;QACb,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;QACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;IAEF;;;;wEAIoE;IACpE,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnD;AAmDD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAsB,CAAC;AAE9E;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,CAExD"}
@@ -23,6 +23,11 @@ const REQUIRED_FIELDS = [
23
23
  'verifyCommand',
24
24
  ];
25
25
  function loadToolMetadata() {
26
+ // NOTE: This module uses import.meta.url to resolve the tools/ directory.
27
+ // It works correctly when loaded in the Node.js CLI bootstrap context but
28
+ // breaks when bundled by Turbopack (import.meta.url points to the chunk
29
+ // location where tools/ doesn't exist). API routes should access tool
30
+ // metadata via the DI container, not by importing this module directly.
26
31
  const toolsDir = join(fileURLToPath(import.meta.url), '..', 'tools');
27
32
  const metadata = {};
28
33
  let files;
@@ -3,16 +3,19 @@
3
3
  "summary": "GPU-accelerated terminal emulator",
4
4
  "description": "Alacritty is a modern, GPU-accelerated terminal emulator focused on simplicity and performance. Cross-platform (macOS and Linux). On older Linux distributions, you may need to add a PPA before installing via apt.",
5
5
  "tags": ["terminal"],
6
+ "author": "Alacritty Contributors",
7
+ "website": "https://alacritty.org",
8
+ "platforms": ["linux", "darwin"],
6
9
  "iconUrl": "https://cdn.simpleicons.org/alacritty",
7
10
  "binary": "alacritty",
8
11
  "packageManager": "brew",
9
12
  "commands": {
10
13
  "darwin": "brew install --cask alacritty",
11
- "linux": "apt install -y alacritty"
14
+ "linux": "sudo apt-get update && sudo apt-get install -y alacritty"
12
15
  },
13
16
  "timeout": 300000,
14
17
  "documentationUrl": "https://alacritty.org/",
15
18
  "verifyCommand": "alacritty --version",
16
- "autoInstall": false,
19
+ "autoInstall": true,
17
20
  "openDirectory": "alacritty --working-directory {dir}"
18
21
  }
@@ -3,6 +3,9 @@
3
3
  "summary": "AI-powered agentic development platform",
4
4
  "description": "Google Antigravity is an AI-powered platform that enables agentic development workflows, helping developers build intelligent applications with autonomous agents.",
5
5
  "tags": ["ide"],
6
+ "author": "Google",
7
+ "website": "https://antigravity.google",
8
+ "platforms": ["linux", "darwin"],
6
9
  "iconUrl": "https://cdn.simpleicons.org/google",
7
10
  "binary": {
8
11
  "linux": "antigravity",
@@ -2,7 +2,10 @@
2
2
  "name": "Claude Code",
3
3
  "summary": "AI-powered code assistant from Anthropic",
4
4
  "description": "Claude Code is an AI-powered code assistant from Anthropic that helps you write, understand, and debug code with advanced AI capabilities.",
5
- "tags": ["ide", "cli-agent"],
5
+ "tags": ["cli-agent"],
6
+ "author": "Anthropic",
7
+ "website": "https://claude.ai/code",
8
+ "platforms": ["linux", "darwin"],
6
9
  "iconUrl": "https://cdn.simpleicons.org/claude",
7
10
  "binary": "claude",
8
11
  "packageManager": "curl",
@@ -3,6 +3,9 @@
3
3
  "summary": "AI-powered terminal coding agent",
4
4
  "description": "Cursor CLI is a terminal-based AI coding agent that brings conversational AI assistance directly to your command line for any IDE or terminal.",
5
5
  "tags": ["cli-agent"],
6
+ "author": "Anysphere",
7
+ "website": "https://cursor.com",
8
+ "platforms": ["linux", "darwin"],
6
9
  "iconUrl": "https://cdn.simpleicons.org/cursor",
7
10
  "binary": "cursor-agent",
8
11
  "packageManager": "curl",
@@ -3,6 +3,9 @@
3
3
  "summary": "AI-powered code editor for efficient development",
4
4
  "description": "Cursor is an AI-powered code editor built on VS Code, designed to streamline development workflows with advanced AI-assisted coding capabilities.",
5
5
  "tags": ["ide"],
6
+ "author": "Anysphere",
7
+ "website": "https://cursor.com",
8
+ "platforms": ["linux", "darwin", "win32"],
6
9
  "iconUrl": "https://cdn.simpleicons.org/cursor",
7
10
  "binary": "cursor",
8
11
  "packageManager": "manual",
@@ -3,6 +3,9 @@
3
3
  "summary": "AI-powered coding agent from Google",
4
4
  "description": "Gemini CLI is an open-source AI coding agent from Google that brings the power of Gemini directly to your terminal for code generation, debugging, and development workflows.",
5
5
  "tags": ["cli-agent"],
6
+ "author": "Google",
7
+ "website": "https://github.com/google-gemini/gemini-cli",
8
+ "platforms": ["linux", "darwin"],
6
9
  "iconUrl": "https://cdn.simpleicons.org/googlegemini",
7
10
  "binary": "gemini",
8
11
  "packageManager": "npm",
@@ -3,6 +3,9 @@
3
3
  "summary": "GitHub's official command-line tool",
4
4
  "description": "GitHub CLI brings GitHub to your terminal. Manage pull requests, issues, repositories, workflows, and more without leaving the command line.",
5
5
  "tags": ["vcs"],
6
+ "author": "GitHub",
7
+ "website": "https://cli.github.com",
8
+ "platforms": ["linux", "darwin", "win32"],
6
9
  "iconUrl": "https://cdn.simpleicons.org/github",
7
10
  "binary": "gh",
8
11
  "packageManager": "apt",
@@ -3,6 +3,9 @@
3
3
  "summary": "Distributed version control system",
4
4
  "description": "Git is a free and open-source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.",
5
5
  "tags": ["vcs"],
6
+ "author": "Git Community",
7
+ "website": "https://git-scm.com",
8
+ "platforms": ["linux", "darwin", "win32"],
6
9
  "iconUrl": "https://cdn.simpleicons.org/git",
7
10
  "binary": "git",
8
11
  "packageManager": "apt",
@@ -3,6 +3,9 @@
3
3
  "summary": "macOS terminal replacement",
4
4
  "description": "iTerm2 is a feature-rich replacement for the default macOS Terminal.app with split panes, search, autocomplete, and extensive customization. macOS only. Verified by checking for the iTerm.app bundle in /Applications.",
5
5
  "tags": ["terminal"],
6
+ "author": "George Nachman",
7
+ "website": "https://iterm2.com",
8
+ "platforms": ["darwin"],
6
9
  "iconUrl": "https://cdn.simpleicons.org/iterm2",
7
10
  "binary": "iterm2",
8
11
  "packageManager": "brew",
@@ -3,16 +3,19 @@
3
3
  "summary": "Fast, GPU-based terminal emulator",
4
4
  "description": "Kitty is a fast, feature-rich, GPU-based terminal emulator with advanced graphics support, extensibility via kittens, and modern rendering. Cross-platform (macOS and Linux).",
5
5
  "tags": ["terminal"],
6
+ "author": "Kovid Goyal",
7
+ "website": "https://sw.kovidgoyal.net/kitty",
8
+ "platforms": ["linux", "darwin"],
6
9
  "iconUrl": "https://raw.githubusercontent.com/kovidgoyal/kitty/master/logo/kitty.svg",
7
10
  "binary": "kitty",
8
11
  "packageManager": "brew",
9
12
  "commands": {
10
13
  "darwin": "brew install --cask kitty",
11
- "linux": "apt install -y kitty"
14
+ "linux": "sudo apt-get update && sudo apt-get install -y kitty"
12
15
  },
13
16
  "timeout": 300000,
14
17
  "documentationUrl": "https://sw.kovidgoyal.net/kitty/",
15
18
  "verifyCommand": "kitty --version",
16
- "autoInstall": false,
19
+ "autoInstall": true,
17
20
  "openDirectory": "kitty --working-directory {dir}"
18
21
  }
@@ -3,12 +3,15 @@
3
3
  "summary": "Terminal multiplexer for session management",
4
4
  "description": "tmux is a terminal multiplexer that lets you create, manage, and switch between multiple terminal sessions. Ideal for remote development, persistent sessions, and multi-pane workflows. Cross-platform (macOS and Linux).",
5
5
  "tags": ["terminal"],
6
+ "author": "tmux Contributors",
7
+ "website": "https://tmux.github.io",
8
+ "platforms": ["linux", "darwin"],
6
9
  "iconUrl": "https://cdn.simpleicons.org/tmux",
7
10
  "binary": "tmux",
8
11
  "packageManager": "brew",
9
12
  "commands": {
10
13
  "darwin": "brew install tmux",
11
- "linux": "apt install -y tmux"
14
+ "linux": "sudo apt-get update && sudo apt-get install -y tmux"
12
15
  },
13
16
  "timeout": 300000,
14
17
  "documentationUrl": "https://github.com/tmux/tmux/wiki",
@@ -3,11 +3,14 @@
3
3
  "summary": "Lightweight but powerful source code editor",
4
4
  "description": "Microsoft Visual Studio Code is a free, open-source code editor with built-in support for debugging, version control, and extensions for enhanced development workflows.",
5
5
  "tags": ["ide"],
6
+ "author": "Microsoft",
7
+ "website": "https://code.visualstudio.com",
8
+ "platforms": ["linux", "darwin", "win32"],
6
9
  "iconUrl": "https://cdn.jsdelivr.net/gh/devicons/devicon/icons/vscode/vscode-original.svg",
7
10
  "binary": "code",
8
11
  "packageManager": "apt",
9
12
  "commands": {
10
- "linux": "curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor -o /usr/share/keyrings/packages.microsoft.gpg && echo \"deb [arch=amd64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main\" | sudo tee /etc/apt/sources.list.d/vscode.list > /dev/null && sudo apt-get update && sudo apt-get install -y code",
13
+ "linux": "curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --yes --dearmor -o /usr/share/keyrings/packages.microsoft.gpg && echo \"deb [arch=amd64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main\" | sudo tee /etc/apt/sources.list.d/vscode.list > /dev/null && sudo apt-get update && sudo apt-get install -y code",
11
14
  "darwin": "brew install visual-studio-code"
12
15
  },
13
16
  "timeout": 300000,