@shepai/cli 1.170.0-pr513.cff27cb → 1.171.0

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 (417) hide show
  1. package/apis/json-schema/Feature.yaml +5 -17
  2. package/apis/json-schema/SdlcLifecycle.yaml +0 -1
  3. package/apis/json-schema/WorkflowConfig.yaml +5 -10
  4. package/dist/packages/core/src/application/ports/output/agents/feature-agent-process.interface.d.ts +2 -2
  5. package/dist/packages/core/src/application/ports/output/agents/feature-agent-process.interface.d.ts.map +1 -1
  6. package/dist/packages/core/src/application/ports/output/services/spec-initializer.interface.d.ts +3 -4
  7. package/dist/packages/core/src/application/ports/output/services/spec-initializer.interface.d.ts.map +1 -1
  8. package/dist/packages/core/src/application/use-cases/agents/approve-agent-run.use-case.js +2 -2
  9. package/dist/packages/core/src/application/use-cases/agents/reject-agent-run.use-case.js +2 -2
  10. package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.d.ts.map +1 -1
  11. package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.js +2 -3
  12. package/dist/packages/core/src/application/use-cases/features/check-and-unblock-features.use-case.js +2 -2
  13. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts.map +1 -1
  14. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.js +7 -18
  15. package/dist/packages/core/src/application/use-cases/features/create/types.d.ts +2 -3
  16. package/dist/packages/core/src/application/use-cases/features/create/types.d.ts.map +1 -1
  17. package/dist/packages/core/src/application/use-cases/features/delete-feature.use-case.d.ts.map +1 -1
  18. package/dist/packages/core/src/application/use-cases/features/delete-feature.use-case.js +0 -13
  19. package/dist/packages/core/src/application/use-cases/features/resume-feature.use-case.js +2 -2
  20. package/dist/packages/core/src/application/use-cases/features/start-feature.use-case.d.ts.map +1 -1
  21. package/dist/packages/core/src/application/use-cases/features/start-feature.use-case.js +3 -5
  22. package/dist/packages/core/src/application/use-cases/upgrade/upgrade-cli.use-case.d.ts +1 -0
  23. package/dist/packages/core/src/application/use-cases/upgrade/upgrade-cli.use-case.d.ts.map +1 -1
  24. package/dist/packages/core/src/application/use-cases/upgrade/upgrade-cli.use-case.js +59 -2
  25. package/dist/packages/core/src/domain/factories/settings-defaults.factory.d.ts.map +1 -1
  26. package/dist/packages/core/src/domain/factories/settings-defaults.factory.js +1 -2
  27. package/dist/packages/core/src/domain/generated/output.d.ts +4 -22
  28. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  29. package/dist/packages/core/src/domain/generated/output.js +0 -7
  30. package/dist/packages/core/src/domain/lifecycle-gates.d.ts +6 -21
  31. package/dist/packages/core/src/domain/lifecycle-gates.d.ts.map +1 -1
  32. package/dist/packages/core/src/domain/lifecycle-gates.js +6 -25
  33. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  34. package/dist/packages/core/src/infrastructure/di/container.js +0 -5
  35. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts +1 -3
  36. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts.map +1 -1
  37. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.js +4 -10
  38. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +1 -2
  39. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
  40. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +2 -7
  41. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.d.ts.map +1 -1
  42. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.js +3 -5
  43. package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.js +3 -3
  44. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.d.ts +0 -20
  45. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.d.ts.map +1 -1
  46. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts +0 -68
  47. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts.map +1 -1
  48. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.d.ts +2 -2
  49. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.d.ts.map +1 -1
  50. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.js +3 -3
  51. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts +2 -2
  52. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts.map +1 -1
  53. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.js +8 -19
  54. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/lifecycle-context.d.ts.map +1 -1
  55. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/lifecycle-context.js +0 -1
  56. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts.map +1 -1
  57. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.js +0 -1
  58. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.d.ts +0 -4
  59. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.d.ts.map +1 -1
  60. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.js +0 -17
  61. package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.d.ts +1 -1
  62. package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.d.ts.map +1 -1
  63. package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.js +4 -7
  64. package/dist/src/presentation/cli/commands/feat/index.d.ts.map +1 -1
  65. package/dist/src/presentation/cli/commands/feat/index.js +1 -5
  66. package/dist/src/presentation/cli/commands/feat/new.command.d.ts.map +1 -1
  67. package/dist/src/presentation/cli/commands/feat/new.command.js +5 -18
  68. package/dist/src/presentation/cli/commands/upgrade.command.d.ts.map +1 -1
  69. package/dist/src/presentation/cli/commands/upgrade.command.js +68 -3
  70. package/dist/src/presentation/web/app/actions/create-feature.d.ts +2 -3
  71. package/dist/src/presentation/web/app/actions/create-feature.d.ts.map +1 -1
  72. package/dist/src/presentation/web/app/actions/create-feature.js +3 -3
  73. package/dist/src/presentation/web/app/actions/get-workflow-defaults.d.ts +1 -2
  74. package/dist/src/presentation/web/app/actions/get-workflow-defaults.d.ts.map +1 -1
  75. package/dist/src/presentation/web/app/actions/get-workflow-defaults.js +1 -2
  76. package/dist/src/presentation/web/app/api/agent-events/route.d.ts.map +1 -1
  77. package/dist/src/presentation/web/app/api/agent-events/route.js +0 -1
  78. package/dist/src/presentation/web/app/build-feature-node-data.d.ts.map +1 -1
  79. package/dist/src/presentation/web/app/build-feature-node-data.js +2 -4
  80. package/dist/src/presentation/web/app/build-graph-nodes.js +2 -4
  81. package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.d.ts +1 -1
  82. package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.d.ts.map +1 -1
  83. package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.js +0 -3
  84. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.d.ts.map +1 -1
  85. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.js +1 -65
  86. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts +2 -3
  87. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts.map +1 -1
  88. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.js +11 -15
  89. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.d.ts.map +1 -1
  90. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.js +1 -2
  91. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts +1 -6
  92. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts.map +1 -1
  93. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.js +4 -16
  94. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.d.ts.map +1 -1
  95. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.js +0 -2
  96. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +2 -6
  97. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map +1 -1
  98. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.js +0 -12
  99. package/dist/src/presentation/web/components/common/feature-node/feature-node.d.ts.map +1 -1
  100. package/dist/src/presentation/web/components/common/feature-node/feature-node.js +2 -7
  101. package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
  102. package/dist/src/presentation/web/components/features/settings/settings-page-client.js +6 -6
  103. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.js +3 -3
  104. package/dist/translations/ar/cli.json +2 -24
  105. package/dist/translations/ar/web.json +2 -6
  106. package/dist/translations/de/cli.json +2 -24
  107. package/dist/translations/de/web.json +2 -6
  108. package/dist/translations/en/cli.json +2 -24
  109. package/dist/translations/en/web.json +2 -6
  110. package/dist/translations/es/cli.json +2 -24
  111. package/dist/translations/es/web.json +2 -6
  112. package/dist/translations/fr/cli.json +2 -24
  113. package/dist/translations/fr/web.json +2 -6
  114. package/dist/translations/he/cli.json +2 -24
  115. package/dist/translations/he/web.json +2 -6
  116. package/dist/translations/pt/cli.json +2 -24
  117. package/dist/translations/pt/web.json +2 -6
  118. package/dist/translations/ru/cli.json +2 -24
  119. package/dist/translations/ru/web.json +2 -6
  120. package/dist/tsconfig.build.tsbuildinfo +1 -1
  121. package/package.json +1 -1
  122. package/web/.next/BUILD_ID +1 -1
  123. package/web/.next/build-manifest.json +2 -2
  124. package/web/.next/fallback-build-manifest.json +2 -2
  125. package/web/.next/prerender-manifest.json +3 -3
  126. package/web/.next/required-server-files.js +2 -2
  127. package/web/.next/required-server-files.json +2 -2
  128. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +29 -29
  129. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  130. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  131. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +27 -27
  132. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
  133. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
  134. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +30 -30
  135. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  136. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  137. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +76 -121
  138. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +1 -2
  139. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  140. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  141. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +76 -121
  142. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +1 -2
  143. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  144. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  145. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  146. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  147. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  148. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  149. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  150. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  151. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +27 -27
  152. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  153. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  154. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +30 -30
  155. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  156. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  157. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +76 -121
  158. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +1 -2
  159. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  160. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  161. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +76 -121
  162. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +1 -2
  163. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  164. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  165. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +27 -27
  166. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  167. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  168. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  169. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  170. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  171. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  172. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  173. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  174. package/web/.next/server/app/_global-error.html +2 -2
  175. package/web/.next/server/app/_global-error.rsc +1 -1
  176. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  177. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  178. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  179. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  180. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  181. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +6 -6
  182. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  183. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  184. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  185. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  186. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  187. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
  188. package/web/.next/server/app/features/page/server-reference-manifest.json +6 -6
  189. package/web/.next/server/app/features/page.js.nft.json +1 -1
  190. package/web/.next/server/app/features/page_client-reference-manifest.js +1 -1
  191. package/web/.next/server/app/settings/page/server-reference-manifest.json +9 -9
  192. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  193. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  194. package/web/.next/server/app/skills/page/server-reference-manifest.json +13 -13
  195. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  196. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  197. package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
  198. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  199. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  200. package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
  201. package/web/.next/server/app/version/page.js.nft.json +1 -1
  202. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  203. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js +1 -1
  204. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js.map +1 -1
  205. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js +1 -1
  206. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js.map +1 -1
  207. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  208. package/web/.next/server/chunks/[root-of-the-server]__c78383b1._.js +1 -1
  209. package/web/.next/server/chunks/[root-of-the-server]__c78383b1._.js.map +1 -1
  210. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js +1 -1
  211. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
  212. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  213. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  214. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +3 -3
  215. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
  216. package/web/.next/server/chunks/ssr/[root-of-the-server]__1cd4327c._.js +1 -1
  217. package/web/.next/server/chunks/ssr/[root-of-the-server]__1cd4327c._.js.map +1 -1
  218. package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js +1 -1
  219. package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js.map +1 -1
  220. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  221. package/web/.next/server/chunks/ssr/[root-of-the-server]__4ed9b909._.js +1 -1
  222. package/web/.next/server/chunks/ssr/[root-of-the-server]__4fb81977._.js +4 -0
  223. package/web/.next/server/chunks/ssr/[root-of-the-server]__4fb81977._.js.map +1 -0
  224. package/web/.next/server/chunks/ssr/[root-of-the-server]__684a868c._.js +1 -1
  225. package/web/.next/server/chunks/ssr/[root-of-the-server]__684a868c._.js.map +1 -1
  226. package/web/.next/server/chunks/ssr/[root-of-the-server]__69dd3217._.js +1 -1
  227. package/web/.next/server/chunks/ssr/[root-of-the-server]__69dd3217._.js.map +1 -1
  228. package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js +1 -1
  229. package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js.map +1 -1
  230. package/web/.next/server/chunks/ssr/[root-of-the-server]__7dcd0917._.js +4 -0
  231. package/web/.next/server/chunks/ssr/[root-of-the-server]__7dcd0917._.js.map +1 -0
  232. package/web/.next/server/chunks/ssr/[root-of-the-server]__92ffd5ee._.js +2 -2
  233. package/web/.next/server/chunks/ssr/[root-of-the-server]__92ffd5ee._.js.map +1 -1
  234. package/web/.next/server/chunks/ssr/[root-of-the-server]__b020c17d._.js +2 -2
  235. package/web/.next/server/chunks/ssr/[root-of-the-server]__b020c17d._.js.map +1 -1
  236. package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js +1 -1
  237. package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js.map +1 -1
  238. package/web/.next/server/chunks/ssr/[root-of-the-server]__ba7f5873._.js +4 -0
  239. package/web/.next/server/chunks/ssr/[root-of-the-server]__ba7f5873._.js.map +1 -0
  240. package/web/.next/server/chunks/ssr/[root-of-the-server]__c1262d08._.js +1 -1
  241. package/web/.next/server/chunks/ssr/[root-of-the-server]__c16bf5de._.js +1 -1
  242. package/web/.next/server/chunks/ssr/[root-of-the-server]__c16bf5de._.js.map +1 -1
  243. package/web/.next/server/chunks/ssr/[root-of-the-server]__c5e09f6f._.js +4 -0
  244. package/web/.next/server/chunks/ssr/[root-of-the-server]__c5e09f6f._.js.map +1 -0
  245. package/web/.next/server/chunks/ssr/[root-of-the-server]__fa525872._.js +3 -0
  246. package/web/.next/server/chunks/ssr/[root-of-the-server]__fa525872._.js.map +1 -0
  247. package/web/.next/server/chunks/ssr/_02e01240._.js +1 -1
  248. package/web/.next/server/chunks/ssr/_02e01240._.js.map +1 -1
  249. package/web/.next/server/chunks/ssr/_05c23ad9._.js +1 -1
  250. package/web/.next/server/chunks/ssr/_05c23ad9._.js.map +1 -1
  251. package/web/.next/server/chunks/ssr/_16eb4fec._.js +1 -1
  252. package/web/.next/server/chunks/ssr/_16eb4fec._.js.map +1 -1
  253. package/web/.next/server/chunks/ssr/_18886033._.js +1 -1
  254. package/web/.next/server/chunks/ssr/_18886033._.js.map +1 -1
  255. package/web/.next/server/chunks/ssr/_22e00a14._.js +1 -1
  256. package/web/.next/server/chunks/ssr/_22e00a14._.js.map +1 -1
  257. package/web/.next/server/chunks/ssr/_45496654._.js +1 -1
  258. package/web/.next/server/chunks/ssr/_45496654._.js.map +1 -1
  259. package/web/.next/server/chunks/ssr/{_cac4abe6._.js → _49447b3c._.js} +2 -2
  260. package/web/.next/server/chunks/ssr/_49447b3c._.js.map +1 -0
  261. package/web/.next/server/chunks/ssr/_4cbb7f95._.js +1 -1
  262. package/web/.next/server/chunks/ssr/_4cbb7f95._.js.map +1 -1
  263. package/web/.next/server/chunks/ssr/_5119a3df._.js +1 -1
  264. package/web/.next/server/chunks/ssr/_5119a3df._.js.map +1 -1
  265. package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
  266. package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
  267. package/web/.next/server/chunks/ssr/_a5a5901d._.js +1 -1
  268. package/web/.next/server/chunks/ssr/_a5a5901d._.js.map +1 -1
  269. package/web/.next/server/chunks/ssr/_a963dd3c._.js +3 -0
  270. package/web/.next/server/chunks/ssr/_a963dd3c._.js.map +1 -0
  271. package/web/.next/server/chunks/ssr/_ad09f271._.js +1 -1
  272. package/web/.next/server/chunks/ssr/_ad09f271._.js.map +1 -1
  273. package/web/.next/server/chunks/ssr/_c3f595c6._.js +1 -1
  274. package/web/.next/server/chunks/ssr/_c3f595c6._.js.map +1 -1
  275. package/web/.next/server/chunks/ssr/{_0fd635d7._.js → _d50cde79._.js} +2 -2
  276. package/web/.next/server/chunks/ssr/_d50cde79._.js.map +1 -0
  277. package/web/.next/server/chunks/ssr/_df737cce._.js +1 -1
  278. package/web/.next/server/chunks/ssr/_e3f14907._.js +9 -0
  279. package/web/.next/server/chunks/ssr/_e3f14907._.js.map +1 -0
  280. package/web/.next/server/chunks/ssr/_ea9e1556._.js +1 -1
  281. package/web/.next/server/chunks/ssr/_ea9e1556._.js.map +1 -1
  282. package/web/.next/server/chunks/ssr/_f1ba9be6._.js +2 -2
  283. package/web/.next/server/chunks/ssr/_f1ba9be6._.js.map +1 -1
  284. package/web/.next/server/chunks/ssr/_f33cd07e._.js +2 -2
  285. package/web/.next/server/chunks/ssr/_f33cd07e._.js.map +1 -1
  286. package/web/.next/server/chunks/ssr/{_34d897da._.js → _f778f3ef._.js} +2 -2
  287. package/web/.next/server/chunks/ssr/{_34d897da._.js.map → _f778f3ef._.js.map} +1 -1
  288. package/web/.next/server/chunks/ssr/_f8b45233._.js +1 -1
  289. package/web/.next/server/chunks/ssr/_f8b45233._.js.map +1 -1
  290. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  291. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  292. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +1 -1
  293. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js.map +1 -1
  294. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +1 -1
  295. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js +1 -1
  296. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js.map +1 -1
  297. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js +1 -1
  298. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js.map +1 -1
  299. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  300. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  301. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js +1 -1
  302. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js.map +1 -1
  303. package/web/.next/server/chunks/ssr/src_presentation_web_db9fa0c2._.js +1 -1
  304. package/web/.next/server/chunks/ssr/src_presentation_web_db9fa0c2._.js.map +1 -1
  305. package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js +1 -1
  306. package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js.map +1 -1
  307. package/web/.next/server/pages/500.html +2 -2
  308. package/web/.next/server/server-reference-manifest.js +1 -1
  309. package/web/.next/server/server-reference-manifest.json +202 -310
  310. package/web/.next/static/chunks/{9a78b4c5dcd28196.js → 02fe1303471793b9.js} +2 -2
  311. package/web/.next/static/chunks/0ce50b34df07306b.js +1 -0
  312. package/web/.next/static/chunks/18d4601f068c700d.js +1 -0
  313. package/web/.next/static/chunks/{52681a7f14138e48.js → 24dd6b3021c2d849.js} +1 -1
  314. package/web/.next/static/chunks/3d182168cdc4c15c.js +1 -0
  315. package/web/.next/static/chunks/{0769c695d6b663c7.js → 4383bcae769740e7.js} +1 -1
  316. package/web/.next/static/chunks/{5e20f692bbfcfb94.js → 4559a403ee40dd19.js} +1 -1
  317. package/web/.next/static/chunks/{e93ae5725b0babeb.js → 5983ef48d50d2d2a.js} +1 -1
  318. package/web/.next/static/chunks/{4219ddfde68a6d0b.js → 67a430796dea42a7.js} +1 -1
  319. package/web/.next/static/chunks/6ee5d45de67d3547.js +5 -0
  320. package/web/.next/static/chunks/{0f30a983f3467cd5.js → 9705f2a5695a4995.js} +1 -1
  321. package/web/.next/static/chunks/{d5bf9c963b5346e1.js → a80bbfca8ee3d79b.js} +1 -1
  322. package/web/.next/static/chunks/{37f9543560c58ea6.js → aa077ab14015a8fd.js} +1 -1
  323. package/web/.next/static/chunks/b14085e99b88e7f7.css +1 -0
  324. package/web/.next/static/chunks/b65e555419a0c664.js +1 -0
  325. package/web/.next/static/chunks/{478adf5d5156f002.js → b93a918712cd4987.js} +1 -1
  326. package/web/.next/static/chunks/{fc595d95626ac9bb.js → bb962a996814718a.js} +1 -1
  327. package/web/.next/static/chunks/{2a9af061f4fbe7f5.js → d5366257d6b9f855.js} +1 -1
  328. package/web/.next/static/chunks/{09a25231e5fc1ab8.js → eff45ffddd85918c.js} +1 -1
  329. package/apis/json-schema/FeatureMode.yaml +0 -8
  330. package/dist/packages/core/src/application/use-cases/features/promote/promote-exploration.use-case.d.ts +0 -40
  331. package/dist/packages/core/src/application/use-cases/features/promote/promote-exploration.use-case.d.ts.map +0 -1
  332. package/dist/packages/core/src/application/use-cases/features/promote/promote-exploration.use-case.js +0 -125
  333. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/051-replace-fast-with-mode.d.ts +0 -19
  334. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/051-replace-fast-with-mode.d.ts.map +0 -1
  335. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/051-replace-fast-with-mode.js +0 -46
  336. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/052-replace-default-fast-mode-with-default-mode.d.ts +0 -17
  337. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/052-replace-default-fast-mode-with-default-mode.d.ts.map +0 -1
  338. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/052-replace-default-fast-mode-with-default-mode.js +0 -37
  339. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-exploration-max-iterations.d.ts +0 -12
  340. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-exploration-max-iterations.d.ts.map +0 -1
  341. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-exploration-max-iterations.js +0 -17
  342. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/exploration-agent-graph.d.ts +0 -362
  343. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/exploration-agent-graph.d.ts.map +0 -1
  344. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/exploration-agent-graph.js +0 -72
  345. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/apply-feedback.node.d.ts +0 -18
  346. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/apply-feedback.node.d.ts.map +0 -1
  347. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/apply-feedback.node.js +0 -52
  348. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/apply-feedback.prompt.d.ts +0 -24
  349. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/apply-feedback.prompt.d.ts.map +0 -1
  350. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/apply-feedback.prompt.js +0 -38
  351. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/prototype-generate.prompt.d.ts +0 -31
  352. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/prototype-generate.prompt.d.ts.map +0 -1
  353. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/prototype-generate.prompt.js +0 -240
  354. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prototype-generate.node.d.ts +0 -21
  355. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prototype-generate.node.d.ts.map +0 -1
  356. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prototype-generate.node.js +0 -134
  357. package/dist/src/presentation/cli/commands/feat/feedback.command.d.ts +0 -12
  358. package/dist/src/presentation/cli/commands/feat/feedback.command.d.ts.map +0 -1
  359. package/dist/src/presentation/cli/commands/feat/feedback.command.js +0 -64
  360. package/dist/src/presentation/cli/commands/feat/promote.command.d.ts +0 -13
  361. package/dist/src/presentation/cli/commands/feat/promote.command.d.ts.map +0 -1
  362. package/dist/src/presentation/cli/commands/feat/promote.command.js +0 -41
  363. package/dist/src/presentation/web/app/actions/discard-exploration.d.ts +0 -9
  364. package/dist/src/presentation/web/app/actions/discard-exploration.d.ts.map +0 -1
  365. package/dist/src/presentation/web/app/actions/discard-exploration.js +0 -29
  366. package/dist/src/presentation/web/app/actions/promote-exploration.d.ts +0 -11
  367. package/dist/src/presentation/web/app/actions/promote-exploration.d.ts.map +0 -1
  368. package/dist/src/presentation/web/app/actions/promote-exploration.js +0 -21
  369. package/dist/src/presentation/web/app/actions/submit-exploration-feedback.d.ts +0 -12
  370. package/dist/src/presentation/web/app/actions/submit-exploration-feedback.d.ts.map +0 -1
  371. package/dist/src/presentation/web/app/actions/submit-exploration-feedback.js +0 -40
  372. package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.d.ts +0 -8
  373. package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.d.ts.map +0 -1
  374. package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.js +0 -33
  375. package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.stories.d.ts +0 -10
  376. package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.stories.d.ts.map +0 -1
  377. package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.stories.js +0 -33
  378. package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.d.ts +0 -11
  379. package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.d.ts.map +0 -1
  380. package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.js +0 -34
  381. package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.stories.d.ts +0 -16
  382. package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.stories.d.ts.map +0 -1
  383. package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.stories.js +0 -70
  384. package/dist/src/presentation/web/components/ui/toggle-group.d.ts +0 -10
  385. package/dist/src/presentation/web/components/ui/toggle-group.d.ts.map +0 -1
  386. package/dist/src/presentation/web/components/ui/toggle-group.js +0 -22
  387. package/dist/src/presentation/web/components/ui/toggle.d.ts +0 -10
  388. package/dist/src/presentation/web/components/ui/toggle.d.ts.map +0 -1
  389. package/dist/src/presentation/web/components/ui/toggle.js +0 -26
  390. package/web/.next/server/chunks/ssr/[root-of-the-server]__03c66352._.js +0 -4
  391. package/web/.next/server/chunks/ssr/[root-of-the-server]__03c66352._.js.map +0 -1
  392. package/web/.next/server/chunks/ssr/[root-of-the-server]__403afc23._.js +0 -4
  393. package/web/.next/server/chunks/ssr/[root-of-the-server]__403afc23._.js.map +0 -1
  394. package/web/.next/server/chunks/ssr/[root-of-the-server]__df550e85._.js +0 -3
  395. package/web/.next/server/chunks/ssr/[root-of-the-server]__df550e85._.js.map +0 -1
  396. package/web/.next/server/chunks/ssr/[root-of-the-server]__df5602bf._.js +0 -4
  397. package/web/.next/server/chunks/ssr/[root-of-the-server]__df5602bf._.js.map +0 -1
  398. package/web/.next/server/chunks/ssr/[root-of-the-server]__e9f4767a._.js +0 -4
  399. package/web/.next/server/chunks/ssr/[root-of-the-server]__e9f4767a._.js.map +0 -1
  400. package/web/.next/server/chunks/ssr/_0fd635d7._.js.map +0 -1
  401. package/web/.next/server/chunks/ssr/_30ddea9d._.js +0 -9
  402. package/web/.next/server/chunks/ssr/_30ddea9d._.js.map +0 -1
  403. package/web/.next/server/chunks/ssr/_6e79a2cc._.js +0 -3
  404. package/web/.next/server/chunks/ssr/_6e79a2cc._.js.map +0 -1
  405. package/web/.next/server/chunks/ssr/_cac4abe6._.js.map +0 -1
  406. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_approve-feature_ts_9453ce8b._.js +0 -3
  407. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_approve-feature_ts_9453ce8b._.js.map +0 -1
  408. package/web/.next/static/chunks/2ceebcc839ee0d4b.js +0 -1
  409. package/web/.next/static/chunks/5743a9c1c63e5261.js +0 -5
  410. package/web/.next/static/chunks/5cf9745e2ef3837c.js +0 -1
  411. package/web/.next/static/chunks/c80e8e3d0cf5baa6.css +0 -1
  412. package/web/.next/static/chunks/d60cee2e7318f425.js +0 -1
  413. package/web/.next/static/chunks/da565c85277c2461.js +0 -1
  414. package/web/.next/static/chunks/fb89cf91c10b2e8b.js +0 -1
  415. /package/web/.next/static/{G895CgnbZl4YvWN_DaRC- → akDn2qFk1krSwrjt4345P}/_buildManifest.js +0 -0
  416. /package/web/.next/static/{G895CgnbZl4YvWN_DaRC- → akDn2qFk1krSwrjt4345P}/_clientMiddlewareManifest.json +0 -0
  417. /package/web/.next/static/{G895CgnbZl4YvWN_DaRC- → akDn2qFk1krSwrjt4345P}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"feature-drawer-tabs.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAU9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAIxE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;AACjG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAMxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAUxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uDAAuD,CAAC;AAC3F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAuEvE,MAAM,WAAW,sBAAsB;IACrC,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mFAAmF;IACnF,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,WAAW,EAAE,eAAe,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,gFAAgF;IAChF,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,mFAAmF;IACnF,SAAS,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAGzC,OAAO,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;IAC1E,YAAY,CAAC,EAAE,OAAO,CAAC;IAGvB,QAAQ,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAC1C,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;IAC3E,aAAa,CAAC,EAAE,OAAO,CAAC;IAGxB,WAAW,CAAC,EAAE,2BAA2B,GAAG,IAAI,CAAC;IAGjD,SAAS,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;IAC5E,cAAc,CAAC,EAAE,OAAO,CAAC;IAGzB,UAAU,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACnC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAG3B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAG5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,YAAY,CAAC,EAAE,yBAAyB,CAAC;IACzC,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAGtC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClF,oBAAoB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAGhC,qFAAqF;IACrF,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAwBD,wBAAgB,iBAAiB,CAAC,EAChC,WAAW,EACX,aAAa,EACb,WAAW,EACX,SAAS,EACT,UAAU,EACV,MAAM,EACN,OAAO,EACP,aAAa,EACb,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,aAAa,EACb,WAAW,EACX,SAAS,EACT,cAAc,EACd,aAAa,EACb,cAAc,EACd,UAAU,EACV,WAAW,EACX,SAAS,EACT,aAAa,EACb,cAAc,EACd,aAAa,EACb,WAAW,EACX,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,YAAY,EACZ,2BAAmC,EACnC,SAAS,EACT,gBAAgB,EAChB,SAAS,EACT,oBAAoB,EACpB,qBAAqB,EACrB,uBAA8B,EAC9B,OAAO,EACP,MAAM,EACN,OAAO,GACR,EAAE,sBAAsB,2CAwfxB"}
1
+ {"version":3,"file":"feature-drawer-tabs.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.tsx"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useState, useEffect, useCallback, useRef, useMemo } from 'react';
4
4
  import { useTranslation } from 'react-i18next';
5
5
  import { usePathname } from 'next/navigation';
6
- import { Loader2, AlertCircle, LayoutDashboard, Activity, ScrollText, Map, FileCheck, Cpu, Package, GitMerge, MessageSquare, Play, Square, RotateCcw, Zap, Layers, FlaskConical, } from 'lucide-react';
6
+ import { Loader2, AlertCircle, LayoutDashboard, Activity, ScrollText, Map, FileCheck, Cpu, Package, GitMerge, MessageSquare, Play, Square, RotateCcw, Zap, Layers, } from 'lucide-react';
7
7
  import { Tabs, TabsList, TabsTrigger, TabsContent } from '../../ui/tabs.js';
8
8
  import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../../ui/tooltip.js';
9
9
  import { getFeaturePhaseTimings } from '../../../app/actions/get-feature-phase-timings.js';
@@ -20,14 +20,12 @@ import { OverviewTab } from './overview-tab.js';
20
20
  import { ActivityTab } from './activity-tab.js';
21
21
  import { LogTab } from './log-tab.js';
22
22
  import { PlanTab } from './plan-tab.js';
23
- import { PrototypeTab } from './prototype-tab.js';
24
23
  import { ChatTab } from '../../features/chat/ChatTab.js';
25
24
  import { useFeatureLogs } from '../../../hooks/use-feature-logs.js';
26
25
  import { useTabDataFetch } from './use-tab-data-fetch.js';
27
26
  /** All possible tabs in display order. */
28
27
  const ALL_TABS = [
29
28
  { key: 'overview', label: 'Overview', icon: LayoutDashboard },
30
- { key: 'prototype', label: 'Prototype', icon: FlaskConical },
31
29
  { key: 'activity', label: 'Activity', icon: Activity },
32
30
  { key: 'log', label: 'Log', icon: ScrollText },
33
31
  { key: 'plan', label: 'Plan', icon: Map },
@@ -39,17 +37,7 @@ const ALL_TABS = [
39
37
  ];
40
38
  /** Compute which tabs are visible based on feature lifecycle + state. */
41
39
  function computeVisibleTabs(node, interactiveAgentEnabled = true) {
42
- const tabs = ['overview'];
43
- // Exploration mode: show prototype tab, skip SDLC-specific tabs
44
- if (node.lifecycle === 'exploring') {
45
- tabs.push('prototype', 'activity');
46
- if (node.hasAgentRun)
47
- tabs.push('log');
48
- if (interactiveAgentEnabled)
49
- tabs.push('chat');
50
- return tabs;
51
- }
52
- tabs.push('activity');
40
+ const tabs = ['overview', 'activity'];
53
41
  if (node.hasAgentRun) {
54
42
  tabs.push('log');
55
43
  }
@@ -90,7 +78,7 @@ const TAB_FETCHERS = {
90
78
  activity: fetchActivity,
91
79
  plan: fetchPlan,
92
80
  };
93
- export function FeatureDrawerTabs({ featureName, headerContent, featureNode, featureId, initialTab, urlTab, prdData, prdSelections, onPrdSelect, onPrdApprove, onPrdReject, isPrdLoading, techData, onTechApprove, onTechReject, isTechLoading, productData, mergeData, onMergeApprove, onMergeReject, isMergeLoading, syncStatus, syncLoading, syncError, onRefreshSync, onRebaseOnMain, rebaseLoading, rebaseError, isRejecting, chatInput, onChatInputChange, pinnedConfig, continuationActionsDisabled = false, sseEvents, onSubmitFeedback, onPromote, onDiscardExploration, isPrototypeSubmitting, interactiveAgentEnabled = true, onRetry, onStop, onStart, }) {
81
+ export function FeatureDrawerTabs({ featureName, headerContent, featureNode, featureId, initialTab, urlTab, prdData, prdSelections, onPrdSelect, onPrdApprove, onPrdReject, isPrdLoading, techData, onTechApprove, onTechReject, isTechLoading, productData, mergeData, onMergeApprove, onMergeReject, isMergeLoading, syncStatus, syncLoading, syncError, onRefreshSync, onRebaseOnMain, rebaseLoading, rebaseError, isRejecting, chatInput, onChatInputChange, pinnedConfig, continuationActionsDisabled = false, sseEvents, interactiveAgentEnabled = true, onRetry, onStop, onStart, }) {
94
82
  const pathname = usePathname();
95
83
  const visibleTabs = useMemo(() => computeVisibleTabs(featureNode, interactiveAgentEnabled), [featureNode, interactiveAgentEnabled]);
96
84
  const visibleTabDefs = useMemo(() => ALL_TABS.filter((t) => visibleTabs.includes(t.key)).map((t) => t.key === 'merge-review' && featureNode.lifecycle === 'maintain'
@@ -275,7 +263,7 @@ export function FeatureDrawerTabs({ featureName, headerContent, featureNode, fea
275
263
  return _jsx(I, { className: "size-3.5 shrink-0" });
276
264
  })()), featureNodeStateConfig[featureNode.state].label] }), featureNode.state === 'pending' && onStart ? (_jsxs("button", { type: "button", onClick: () => onStart(featureNode.featureId), disabled: continuationActionsDisabled, className: "text-muted-foreground flex items-center gap-1 self-stretch px-3 hover:bg-green-500/10 hover:text-green-600 disabled:pointer-events-none disabled:opacity-50 dark:hover:text-green-400", "data-testid": "feature-drawer-start-button", children: [_jsx(Play, { className: "size-3.5" }), " Start"] })) : featureNode.state === 'error' && onRetry ? (_jsxs("button", { type: "button", onClick: () => onRetry(featureNode.featureId), disabled: continuationActionsDisabled, className: "text-muted-foreground flex items-center gap-1 self-stretch px-3 hover:bg-red-500/10 hover:text-red-500 disabled:pointer-events-none disabled:opacity-50 dark:hover:text-red-400", "data-testid": "feature-drawer-retry-button", children: [_jsx(RotateCcw, { className: "size-3.5" }), " Retry"] })) : featureNode.state === 'running' && onStop ? (_jsxs("button", { type: "button", onClick: () => onStop(featureNode.featureId), className: "text-muted-foreground flex items-center gap-1 self-stretch px-3 hover:bg-red-500/10 hover:text-red-500 dark:hover:text-red-400", "data-testid": "feature-drawer-stop-button", children: [_jsx(Square, { className: "size-3.5" }), " Stop"] })) : null] }) }), featureNode.errorMessage ? (_jsxs(TooltipContent, { side: "bottom", align: "end", sideOffset: 4, className: "z-[100] max-w-xs cursor-pointer text-xs leading-relaxed select-text", onClick: () => {
277
265
  void navigator.clipboard.writeText(featureNode.errorMessage);
278
- }, children: [featureNode.errorMessage, _jsx("span", { className: "text-muted-foreground ml-1 text-[10px] italic", children: "(click to copy)" })] })) : null] }) })] })) : null, headerContent] }), _jsx(TabsContent, { value: "overview", className: "mt-0 flex-1 overflow-y-auto", children: _jsx(OverviewTab, { data: featureNode, pinnedConfig: pinnedConfig, syncStatus: syncStatus, syncLoading: syncLoading, syncError: syncError, onRefreshSync: onRefreshSync, onRebaseOnMain: onRebaseOnMain, rebaseLoading: rebaseLoading, rebaseError: rebaseError }) }), visibleTabs.includes('prototype') ? (_jsx(TabsContent, { value: "prototype", className: "mt-0 flex-1 overflow-y-auto", children: _jsx(PrototypeTab, { data: featureNode, onSubmitFeedback: onSubmitFeedback, onPromote: onPromote, onDiscard: onDiscardExploration, isSubmitting: isPrototypeSubmitting }) })) : null, _jsx(TabsContent, { value: "activity", className: "mt-0 flex-1 overflow-y-auto", children: _jsx(ActivityTab, { timings: tabs.activity.data?.timings ?? null, loading: tabs.activity.loading, error: tabs.activity.error, rejectionFeedback: tabs.activity.data?.rejectionFeedback }) }), _jsx(TabsContent, { value: "log", className: "mt-0 flex-1 overflow-hidden", children: _jsx(LogTab, { content: featureLogs.content, isConnected: featureLogs.isConnected, error: featureLogs.error }) }), _jsx(TabsContent, { value: "plan", className: "mt-0 flex-1 overflow-y-auto", children: _jsx(PlanTab, { plan: tabs.plan.data, loading: tabs.plan.loading, error: tabs.plan.error }) }), visibleTabs.includes('prd-review') ? (_jsx(TabsContent, { value: "prd-review", className: "mt-0 flex min-h-0 flex-1 flex-col", children: prdData ? (_jsx(PrdQuestionnaire, { data: prdData, selections: prdSelections ?? {}, onSelect: onPrdSelect ?? (() => undefined), onApprove: onPrdApprove ?? (() => undefined), onReject: onPrdReject, isProcessing: Boolean((isPrdLoading ?? false) || continuationActionsDisabled), isRejecting: isRejecting, chatInput: chatInput, onChatInputChange: onChatInputChange })) : (_jsx("div", { className: "flex items-center justify-center p-8", children: _jsx(Loader2, { className: "text-muted-foreground h-6 w-6 animate-spin" }) })) })) : null, visibleTabs.includes('tech-decisions') ? (_jsx(TabsContent, { value: "tech-decisions", className: "mt-0 flex min-h-0 flex-1 flex-col", children: techData ? (_jsxs("div", { className: "flex min-h-0 flex-1 flex-col", children: [_jsx("div", { className: "flex-1 overflow-y-auto", children: _jsx(TechDecisionsContent, { data: techData }) }), _jsx(DrawerActionBarForTech, { onApprove: onTechApprove ?? (() => undefined), onReject: onTechReject, isProcessing: Boolean((isTechLoading ?? false) || continuationActionsDisabled), isRejecting: isRejecting, chatInput: chatInput, onChatInputChange: onChatInputChange })] })) : (_jsx("div", { className: "flex items-center justify-center p-8", children: _jsx(Loader2, { className: "text-muted-foreground h-6 w-6 animate-spin" }) })) })) : null, visibleTabs.includes('product-decisions') ? (_jsx(TabsContent, { value: "product-decisions", className: "mt-0 flex-1 overflow-y-auto", children: productData === null ? (_jsx("div", { className: "flex items-center justify-center p-8", children: _jsx(Loader2, { className: "text-muted-foreground h-6 w-6 animate-spin" }) })) : productData ? (_jsx(ProductDecisionsSummary, { data: productData })) : (_jsx("p", { className: "text-muted-foreground p-4 text-center text-sm", children: "No product decisions available." })) })) : null, visibleTabs.includes('merge-review') ? (_jsx(TabsContent, { value: "merge-review", className: "mt-0 flex min-h-0 flex-1 flex-col", children: mergeData ? (_jsx(MergeReview, { data: mergeData, readOnly: featureNode.lifecycle === 'maintain', onApprove: onMergeApprove ?? (() => undefined), onReject: onMergeReject, isProcessing: Boolean((isMergeLoading ?? false) || continuationActionsDisabled), isRejecting: isRejecting, chatInput: chatInput, onChatInputChange: onChatInputChange })) : (_jsx("div", { className: "flex items-center justify-center p-8", children: isMergeLoading ? (_jsx(Loader2, { className: "text-muted-foreground h-6 w-6 animate-spin" })) : (_jsxs("div", { className: "text-muted-foreground flex flex-col items-center gap-2 text-sm", children: [_jsx(AlertCircle, { className: "h-6 w-6" }), _jsx("span", { children: "Merge review data unavailable" })] })) })) })) : null, visibleTabs.includes('chat') ? (_jsx(TabsContent, { value: "chat", className: "mt-0 flex min-h-0 flex-1 flex-col overflow-hidden", children: _jsx(ChatTab, { featureId: featureId, worktreePath: featureNode.worktreePath }) })) : null] }) }));
266
+ }, children: [featureNode.errorMessage, _jsx("span", { className: "text-muted-foreground ml-1 text-[10px] italic", children: "(click to copy)" })] })) : null] }) })] })) : null, headerContent] }), _jsx(TabsContent, { value: "overview", className: "mt-0 flex-1 overflow-y-auto", children: _jsx(OverviewTab, { data: featureNode, pinnedConfig: pinnedConfig, syncStatus: syncStatus, syncLoading: syncLoading, syncError: syncError, onRefreshSync: onRefreshSync, onRebaseOnMain: onRebaseOnMain, rebaseLoading: rebaseLoading, rebaseError: rebaseError }) }), _jsx(TabsContent, { value: "activity", className: "mt-0 flex-1 overflow-y-auto", children: _jsx(ActivityTab, { timings: tabs.activity.data?.timings ?? null, loading: tabs.activity.loading, error: tabs.activity.error, rejectionFeedback: tabs.activity.data?.rejectionFeedback }) }), _jsx(TabsContent, { value: "log", className: "mt-0 flex-1 overflow-hidden", children: _jsx(LogTab, { content: featureLogs.content, isConnected: featureLogs.isConnected, error: featureLogs.error }) }), _jsx(TabsContent, { value: "plan", className: "mt-0 flex-1 overflow-y-auto", children: _jsx(PlanTab, { plan: tabs.plan.data, loading: tabs.plan.loading, error: tabs.plan.error }) }), visibleTabs.includes('prd-review') ? (_jsx(TabsContent, { value: "prd-review", className: "mt-0 flex min-h-0 flex-1 flex-col", children: prdData ? (_jsx(PrdQuestionnaire, { data: prdData, selections: prdSelections ?? {}, onSelect: onPrdSelect ?? (() => undefined), onApprove: onPrdApprove ?? (() => undefined), onReject: onPrdReject, isProcessing: Boolean((isPrdLoading ?? false) || continuationActionsDisabled), isRejecting: isRejecting, chatInput: chatInput, onChatInputChange: onChatInputChange })) : (_jsx("div", { className: "flex items-center justify-center p-8", children: _jsx(Loader2, { className: "text-muted-foreground h-6 w-6 animate-spin" }) })) })) : null, visibleTabs.includes('tech-decisions') ? (_jsx(TabsContent, { value: "tech-decisions", className: "mt-0 flex min-h-0 flex-1 flex-col", children: techData ? (_jsxs("div", { className: "flex min-h-0 flex-1 flex-col", children: [_jsx("div", { className: "flex-1 overflow-y-auto", children: _jsx(TechDecisionsContent, { data: techData }) }), _jsx(DrawerActionBarForTech, { onApprove: onTechApprove ?? (() => undefined), onReject: onTechReject, isProcessing: Boolean((isTechLoading ?? false) || continuationActionsDisabled), isRejecting: isRejecting, chatInput: chatInput, onChatInputChange: onChatInputChange })] })) : (_jsx("div", { className: "flex items-center justify-center p-8", children: _jsx(Loader2, { className: "text-muted-foreground h-6 w-6 animate-spin" }) })) })) : null, visibleTabs.includes('product-decisions') ? (_jsx(TabsContent, { value: "product-decisions", className: "mt-0 flex-1 overflow-y-auto", children: productData === null ? (_jsx("div", { className: "flex items-center justify-center p-8", children: _jsx(Loader2, { className: "text-muted-foreground h-6 w-6 animate-spin" }) })) : productData ? (_jsx(ProductDecisionsSummary, { data: productData })) : (_jsx("p", { className: "text-muted-foreground p-4 text-center text-sm", children: "No product decisions available." })) })) : null, visibleTabs.includes('merge-review') ? (_jsx(TabsContent, { value: "merge-review", className: "mt-0 flex min-h-0 flex-1 flex-col", children: mergeData ? (_jsx(MergeReview, { data: mergeData, readOnly: featureNode.lifecycle === 'maintain', onApprove: onMergeApprove ?? (() => undefined), onReject: onMergeReject, isProcessing: Boolean((isMergeLoading ?? false) || continuationActionsDisabled), isRejecting: isRejecting, chatInput: chatInput, onChatInputChange: onChatInputChange })) : (_jsx("div", { className: "flex items-center justify-center p-8", children: isMergeLoading ? (_jsx(Loader2, { className: "text-muted-foreground h-6 w-6 animate-spin" })) : (_jsxs("div", { className: "text-muted-foreground flex flex-col items-center gap-2 text-sm", children: [_jsx(AlertCircle, { className: "h-6 w-6" }), _jsx("span", { children: "Merge review data unavailable" })] })) })) })) : null, visibleTabs.includes('chat') ? (_jsx(TabsContent, { value: "chat", className: "mt-0 flex min-h-0 flex-1 flex-col overflow-hidden", children: _jsx(ChatTab, { featureId: featureId, worktreePath: featureNode.worktreePath }) })) : null] }) }));
279
267
  }
280
268
  // ── Private helper ──────────────────────────────────────────────────────
281
269
  function DrawerActionBarForTech({ onApprove, onReject, isProcessing, isRejecting, chatInput, onChatInputChange, }) {
@@ -1 +1 @@
1
- {"version":3,"file":"derive-feature-state.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-node/derive-feature-state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAIL,qBAAqB,EACtB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAE3F;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,EAChB,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,EAC1B,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GACjC,gBAAgB,CAiElB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAYvD;AAED,oGAAoG;AACpG,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,qBAAqB,GAAG,gBAAgB,CAsBtF;AAED,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAUlE,CAAC;AAiBF;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,IAAI,GAAG,qBAAqB,CAQ7F;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACpC,SAAS,EAAE,qBAAqB,GAAG,SAAS,CAAC;IAC7C,SAAS,EAAE,qBAAqB,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,qBAAqB,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,GAC7F,cAAc,EAAE,CAmBlB;AAED,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,GAAG,SAAS,GAC5B,qBAAqB,GAAG,SAAS,CAGnC"}
1
+ {"version":3,"file":"derive-feature-state.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-node/derive-feature-state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAIL,qBAAqB,EACtB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAE3F;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,EAChB,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,EAC1B,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GACjC,gBAAgB,CAiElB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAYvD;AAED,oGAAoG;AACpG,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,qBAAqB,GAAG,gBAAgB,CAsBtF;AAED,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CASlE,CAAC;AAgBF;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,IAAI,GAAG,qBAAqB,CAQ7F;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACpC,SAAS,EAAE,qBAAqB,GAAG,SAAS,CAAC;IAC7C,SAAS,EAAE,qBAAqB,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,qBAAqB,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,GAC7F,cAAc,EAAE,CAmBlB;AAED,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,GAAG,SAAS,GAC5B,qBAAqB,GAAG,SAAS,CAGnC"}
@@ -124,7 +124,6 @@ export const sdlcLifecycleMap = {
124
124
  'Deploy & QA': 'deploy',
125
125
  Maintain: 'maintain',
126
126
  Pending: 'pending',
127
- Exploring: 'exploring',
128
127
  Archived: 'maintain',
129
128
  };
130
129
  /** Map agent graph node names (from agent_run.result or SSE phaseName) to UI lifecycle phases. */
@@ -138,7 +137,6 @@ const phaseNameToLifecycle = {
138
137
  maintain: 'maintain',
139
138
  blocked: 'requirements',
140
139
  pending: 'pending',
141
- exploring: 'exploring',
142
140
  archived: 'maintain',
143
141
  };
144
142
  /**
@@ -1,9 +1,9 @@
1
1
  import { type LucideIcon } from 'lucide-react';
2
2
  import type { Node } from '@xyflow/react';
3
- import type { PrStatus, CiStatus, DeploymentState, FeatureMode } from '../../../../../../packages/core/src/domain/generated/output.js';
3
+ import type { PrStatus, CiStatus, DeploymentState } from '../../../../../../packages/core/src/domain/generated/output.js';
4
4
  import type { AgentTypeValue } from './agent-type-icons.js';
5
5
  export type FeatureNodeState = 'creating' | 'running' | 'action-required' | 'done' | 'blocked' | 'pending' | 'error' | 'deleting' | 'archived';
6
- export type FeatureLifecyclePhase = 'pending' | 'requirements' | 'research' | 'implementation' | 'review' | 'awaitingUpstream' | 'deploy' | 'maintain' | 'exploring';
6
+ export type FeatureLifecyclePhase = 'pending' | 'requirements' | 'research' | 'implementation' | 'review' | 'awaitingUpstream' | 'deploy' | 'maintain';
7
7
  /** Human-readable display labels for lifecycle phases. */
8
8
  export declare const lifecycleDisplayLabels: Record<FeatureLifecyclePhase, string>;
9
9
  /** Inline-start border color for each lifecycle phase. */
@@ -51,10 +51,6 @@ export interface FeatureNodeData {
51
51
  errorMessage?: string;
52
52
  /** Whether the feature was created in fast mode (skip SDLC phases). */
53
53
  fastMode?: boolean;
54
- /** Feature execution mode (Regular, Fast, Exploration). */
55
- mode?: FeatureMode;
56
- /** Current feedback iteration count in exploration mode. */
57
- iterationCount?: number;
58
54
  /** Agent executor type (e.g. "claude-code", "cursor"). */
59
55
  agentType?: AgentTypeValue;
60
56
  /** LLM model identifier used for this feature's agent run. */
@@ -1 +1 @@
1
- {"version":3,"file":"feature-node-state-config.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-node/feature-node-state-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feature-node-state-config.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-node/feature-node-state-config.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,6 @@ export const lifecycleDisplayLabels = {
9
9
  awaitingUpstream: 'AWAITING UPSTREAM',
10
10
  deploy: 'DEPLOY & QA',
11
11
  maintain: 'COMPLETED',
12
- exploring: 'EXPLORING',
13
12
  };
14
13
  /** Inline-start border color for each lifecycle phase. */
15
14
  export const lifecycleBorderColors = {
@@ -21,7 +20,6 @@ export const lifecycleBorderColors = {
21
20
  awaitingUpstream: 'border-s-amber-500',
22
21
  deploy: 'border-s-emerald-500',
23
22
  maintain: 'border-s-gray-400',
24
- exploring: 'border-s-amber-400',
25
23
  };
26
24
  /** Accent bar background color for each lifecycle phase. */
27
25
  export const lifecycleAccentColors = {
@@ -33,7 +31,6 @@ export const lifecycleAccentColors = {
33
31
  awaitingUpstream: 'bg-amber-500',
34
32
  deploy: 'bg-emerald-500',
35
33
  maintain: 'bg-gray-400',
36
- exploring: 'bg-amber-400',
37
34
  };
38
35
  /** Phase badge: short letter, color classes, and user-friendly tooltip. */
39
36
  export const lifecyclePhaseBadge = {
@@ -101,14 +98,6 @@ export const lifecyclePhaseBadge = {
101
98
  tooltip: 'Completed',
102
99
  description: 'All done — the feature has been merged and delivered successfully.',
103
100
  },
104
- exploring: {
105
- letter: 'E',
106
- bg: 'bg-amber-100 dark:bg-amber-900/40',
107
- text: 'text-amber-600 dark:text-amber-300',
108
- dot: 'bg-amber-400',
109
- tooltip: 'Exploring',
110
- description: 'Prototyping — the AI is generating a quick prototype. Review it and provide feedback to iterate.',
111
- },
112
101
  };
113
102
  /** State-based inline-start border overrides (takes precedence over lifecycle). */
114
103
  export const stateBorderColors = {
@@ -132,7 +121,6 @@ export const lifecycleRunningVerbs = {
132
121
  awaitingUpstream: 'Awaiting upstream',
133
122
  deploy: 'Deploying',
134
123
  maintain: 'Maintaining',
135
- exploring: 'Prototyping',
136
124
  };
137
125
  export const featureNodeStateConfig = {
138
126
  creating: {
@@ -1 +1 @@
1
- {"version":3,"file":"feature-node.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-node/feature-node.tsx"],"names":[],"mappings":"AAgDA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAmDnE,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,2CA8nBA"}
1
+ {"version":3,"file":"feature-node.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-node/feature-node.tsx"],"names":[],"mappings":"AA8CA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAmDnE,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,2CAwnBA"}
@@ -4,7 +4,7 @@ import { useState } from 'react';
4
4
  import { useTranslation } from 'react-i18next';
5
5
  import { useRouter } from 'next/navigation';
6
6
  import { Handle, Position } from '@xyflow/react';
7
- import { Plus, Trash2, Zap, ClipboardList, FlaskConical, Loader2, Globe, RotateCcw, Play, Square, Eye, Archive, ArchiveRestore, MessageSquare, } from 'lucide-react';
7
+ import { Plus, Trash2, Zap, ClipboardList, Loader2, Globe, RotateCcw, Play, Square, Eye, Archive, ArchiveRestore, MessageSquare, } from 'lucide-react';
8
8
  import { cn } from '../../../lib/utils.js';
9
9
  import { ActionButton } from '../../common/action-button/action-button.js';
10
10
  import { Button } from '../../ui/button.js';
@@ -16,7 +16,6 @@ import { useFeatureFlags } from '../../../hooks/feature-flags-context.js';
16
16
  import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, } from '../../ui/alert-dialog.js';
17
17
  import { DeleteFeatureDialog } from '../../common/delete-feature-dialog/index.js';
18
18
  import { featureNodeStateConfig, lifecycleRunningVerbs, lifecyclePhaseBadge, } from './feature-node-state-config.js';
19
- import { FeatureMode } from '../../../../../../packages/core/src/domain/generated/output.js';
20
19
  import { getAgentTypeIcon } from './agent-type-icons.js';
21
20
  import { FeatureSessionsDropdown } from './feature-sessions-dropdown.js';
22
21
  function AgentIcon({ agentType, className }) {
@@ -112,11 +111,7 @@ export function FeatureNode({ data, selected, }) {
112
111
  selected &&
113
112
  'border-e-rose-400 border-t-rose-400 border-b-rose-400 dark:border-e-amber-500 dark:border-t-amber-500 dark:border-b-amber-500', selected &&
114
113
  data.state !== 'action-required' &&
115
- 'border-blue-400 dark:border-amber-500/60', data.state === 'deleting' && 'opacity-60', data.state === 'archived' && 'opacity-50'), children: [data.state !== 'creating' ? (_jsx("div", { className: "absolute end-4 top-3", children: _jsx(TooltipProvider, { children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsxs("span", { "data-testid": "feature-node-phase-badge", className: "flex items-center gap-1.5", children: [_jsx("span", { className: "text-muted-foreground text-[10px]", children: lifecyclePhaseBadge[data.lifecycle].tooltip }), _jsx("span", { className: cn('h-1.5 w-1.5 -translate-y-px rounded-full', lifecyclePhaseBadge[data.lifecycle].dot) })] }) }), _jsxs(TooltipContent, { side: "right", className: "max-w-56", children: [_jsx("p", { className: "font-semibold", children: lifecyclePhaseBadge[data.lifecycle].tooltip }), _jsx("p", { className: "mt-1 text-xs leading-relaxed text-neutral-500", children: lifecyclePhaseBadge[data.lifecycle].description })] })] }) }) })) : null, _jsxs("div", { className: "flex items-center gap-1.5 pe-24", children: [data.agentType ? (_jsx(AgentIcon, { agentType: data.agentType, className: "h-4 w-4 shrink-0" })) : null, _jsx(TooltipProvider, { children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("span", { "data-testid": "feature-node-mode-badge", className: "shrink-0", children: data.mode === FeatureMode.Exploration ? (_jsx(FlaskConical, { className: "h-3.5 w-3.5 text-amber-500" })) : data.mode === FeatureMode.Fast || data.fastMode ? (_jsx(Zap, { className: "h-3.5 w-3.5 text-amber-500" })) : (_jsx(ClipboardList, { className: "h-3.5 w-3.5 text-indigo-500" })) }) }), _jsx(TooltipContent, { side: "top", children: data.mode === FeatureMode.Exploration
116
- ? t('featureNode.explorationMode')
117
- : data.mode === FeatureMode.Fast || data.fastMode
118
- ? t('featureNode.fastMode')
119
- : t('featureNode.specDriven') })] }) }), _jsx("h3", { className: "min-w-0 truncate text-sm font-bold", children: data.name })] }), data.description ? (_jsx("p", { "data-testid": "feature-node-description", className: "text-muted-foreground mt-1 line-clamp-2 text-xs", children: data.description })) : null, _jsxs("div", { className: "mt-auto pt-2", children: [config.showProgressBar ? (_jsxs(_Fragment, { children: [_jsx("div", { className: "text-muted-foreground flex items-center justify-end text-[10px]", children: _jsxs("span", { children: [data.progress, "%"] }) }), _jsx("div", { "data-testid": "feature-node-progress-bar", className: "bg-muted mt-1.5 h-1 w-full overflow-hidden rounded-full", children: _jsx("div", { className: cn('h-full rounded-full transition-all', config.progressClass), style: { width: `${data.progress}%` } }) })] })) : null, !config.showProgressBar &&
114
+ 'border-blue-400 dark:border-amber-500/60', data.state === 'deleting' && 'opacity-60', data.state === 'archived' && 'opacity-50'), children: [data.state !== 'creating' ? (_jsx("div", { className: "absolute end-4 top-3", children: _jsx(TooltipProvider, { children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsxs("span", { "data-testid": "feature-node-phase-badge", className: "flex items-center gap-1.5", children: [_jsx("span", { className: "text-muted-foreground text-[10px]", children: lifecyclePhaseBadge[data.lifecycle].tooltip }), _jsx("span", { className: cn('h-1.5 w-1.5 -translate-y-px rounded-full', lifecyclePhaseBadge[data.lifecycle].dot) })] }) }), _jsxs(TooltipContent, { side: "right", className: "max-w-56", children: [_jsx("p", { className: "font-semibold", children: lifecyclePhaseBadge[data.lifecycle].tooltip }), _jsx("p", { className: "mt-1 text-xs leading-relaxed text-neutral-500", children: lifecyclePhaseBadge[data.lifecycle].description })] })] }) }) })) : null, _jsxs("div", { className: "flex items-center gap-1.5 pe-24", children: [data.agentType ? (_jsx(AgentIcon, { agentType: data.agentType, className: "h-4 w-4 shrink-0" })) : null, _jsx(TooltipProvider, { children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("span", { "data-testid": "feature-node-fast-mode-badge", className: "shrink-0", children: data.fastMode ? (_jsx(Zap, { className: "h-3.5 w-3.5 text-amber-500" })) : (_jsx(ClipboardList, { className: "h-3.5 w-3.5 text-indigo-500" })) }) }), _jsx(TooltipContent, { side: "top", children: data.fastMode ? t('featureNode.fastMode') : t('featureNode.specDriven') })] }) }), _jsx("h3", { className: "min-w-0 truncate text-sm font-bold", children: data.name })] }), data.description ? (_jsx("p", { "data-testid": "feature-node-description", className: "text-muted-foreground mt-1 line-clamp-2 text-xs", children: data.description })) : null, _jsxs("div", { className: "mt-auto pt-2", children: [config.showProgressBar ? (_jsxs(_Fragment, { children: [_jsx("div", { className: "text-muted-foreground flex items-center justify-end text-[10px]", children: _jsxs("span", { children: [data.progress, "%"] }) }), _jsx("div", { "data-testid": "feature-node-progress-bar", className: "bg-muted mt-1.5 h-1 w-full overflow-hidden rounded-full", children: _jsx("div", { className: cn('h-full rounded-full transition-all', config.progressClass), style: { width: `${data.progress}%` } }) })] })) : null, !config.showProgressBar &&
120
115
  ![
121
116
  'deleting',
122
117
  'creating',
@@ -1 +1 @@
1
- {"version":3,"file":"settings-page-client.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/settings/settings-page-client.tsx"],"names":[],"mappings":"AA4CA,OAAO,KAAK,EACV,QAAQ,EAKT,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AA8B/E,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC1C;AA+QD,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,kBAAkB,GACnB,EAAE,uBAAuB,2CAs6CzB"}
1
+ {"version":3,"file":"settings-page-client.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/settings/settings-page-client.tsx"],"names":[],"mappings":"AA4CA,OAAO,KAAK,EACV,QAAQ,EAKT,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AA8B/E,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC1C;AA+QD,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,kBAAkB,GACnB,EAAE,uBAAuB,2CAw5CzB"}
@@ -159,7 +159,7 @@ export function SettingsPageClient({ settings, shepHome, dbFileSize, availableTe
159
159
  const [commitEvidence, setCommitEvidence] = useState(settings.workflow.commitEvidence);
160
160
  const [ciWatchEnabled, setCiWatchEnabled] = useState(settings.workflow.ciWatchEnabled !== false);
161
161
  const [hideCiStatus, setHideCiStatus] = useState(settings.workflow.hideCiStatus !== false);
162
- const [defaultMode, setDefaultMode] = useState(settings.workflow.defaultMode ?? 'Fast');
162
+ const [defaultFastMode, setDefaultFastMode] = useState(settings.workflow.defaultFastMode !== false);
163
163
  // Auto-archive state
164
164
  const [autoArchiveEnabled, setAutoArchiveEnabled] = useState((settings.workflow.autoArchiveDelayMinutes ?? 10) > 0);
165
165
  const [autoArchiveDelay, setAutoArchiveDelay] = useState(String(settings.workflow.autoArchiveDelayMinutes ?? 10));
@@ -264,7 +264,7 @@ export function SettingsPageClient({ settings, shepHome, dbFileSize, availableTe
264
264
  commitEvidence: overrides.commitEvidence ?? commitEvidence,
265
265
  ciWatchEnabled: overrides.ciWatchEnabled ?? ciWatchEnabled,
266
266
  hideCiStatus: overrides.hideCiStatus ?? hideCiStatus,
267
- defaultMode: overrides.defaultMode ?? defaultMode,
267
+ defaultFastMode: overrides.defaultFastMode ?? defaultFastMode,
268
268
  autoArchiveDelayMinutes: archiveEnabled
269
269
  ? Number.isNaN(archiveDelay) || archiveDelay < 1
270
270
  ? 10
@@ -380,10 +380,10 @@ export function SettingsPageClient({ settings, shepHome, dbFileSize, availableTe
380
380
  label: t('settings.environment.links.configurationGuide'),
381
381
  href: 'https://github.com/shep-ai/shep/blob/main/docs/guides/configuration.md',
382
382
  },
383
- ], children: t('settings.environment.hint') })] }), _jsxs("div", { id: "section-workflow", className: "grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]", children: [_jsxs(SettingsSection, { icon: GitBranch, title: t('settings.workflow.title'), description: t('settings.workflow.sectionDescription'), testId: "workflow-settings-section", children: [_jsx(SettingsRow, { label: t('settings.workflow.defaultMode'), description: t('settings.workflow.defaultModeDescription'), children: _jsxs(Select, { value: defaultMode, onValueChange: (v) => {
384
- setDefaultMode(v);
385
- save(buildWorkflowPayload({ defaultMode: v }));
386
- }, children: [_jsx(SelectTrigger, { id: "default-mode", "data-testid": "default-mode-select", className: "w-55 cursor-pointer text-xs", children: _jsx(SelectValue, {}) }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: "Regular", children: t('settings.workflow.modeRegular') }), _jsx(SelectItem, { value: "Fast", children: t('settings.workflow.modeFast') }), _jsx(SelectItem, { value: "Exploration", children: t('settings.workflow.modeExploration') })] })] }) }), _jsx(SubsectionLabel, { children: t('settings.workflow.subsections.approve') }), _jsx(SwitchRow, { label: t('settings.workflow.autoApprovePrd'), description: t('settings.workflow.autoApprovePrdDescription'), id: "allow-prd", testId: "switch-allow-prd", checked: allowPrd, onChange: (v) => {
383
+ ], children: t('settings.environment.hint') })] }), _jsxs("div", { id: "section-workflow", className: "grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]", children: [_jsxs(SettingsSection, { icon: GitBranch, title: t('settings.workflow.title'), description: t('settings.workflow.sectionDescription'), testId: "workflow-settings-section", children: [_jsx(SwitchRow, { label: t('settings.workflow.defaultFastMode'), description: t('settings.workflow.defaultFastModeDescription'), id: "default-fast-mode", testId: "switch-default-fast-mode", checked: defaultFastMode, onChange: (v) => {
384
+ setDefaultFastMode(v);
385
+ save(buildWorkflowPayload({ defaultFastMode: v }));
386
+ } }), _jsx(SubsectionLabel, { children: t('settings.workflow.subsections.approve') }), _jsx(SwitchRow, { label: t('settings.workflow.autoApprovePrd'), description: t('settings.workflow.autoApprovePrdDescription'), id: "allow-prd", testId: "switch-allow-prd", checked: allowPrd, onChange: (v) => {
387
387
  setAllowPrd(v);
388
388
  save(buildWorkflowPayload({ allowPrd: v }));
389
389
  } }), _jsx(SwitchRow, { label: t('settings.workflow.autoApprovePlan'), description: t('settings.workflow.autoApprovePlanDescription'), id: "allow-plan", testId: "switch-allow-plan", checked: allowPlan, onChange: (v) => {
@@ -21,7 +21,7 @@ export const Default = {
21
21
  ciWatchEnabled: true,
22
22
  enableEvidence: false,
23
23
  commitEvidence: false,
24
- defaultMode: 'Fast',
24
+ defaultFastMode: true,
25
25
  },
26
26
  },
27
27
  };
@@ -53,7 +53,7 @@ export const AllEnabled = {
53
53
  ciWatchEnabled: true,
54
54
  enableEvidence: true,
55
55
  commitEvidence: true,
56
- defaultMode: 'Fast',
56
+ defaultFastMode: true,
57
57
  },
58
58
  },
59
59
  };
@@ -85,7 +85,7 @@ export const WithCiSettings = {
85
85
  ciWatchEnabled: true,
86
86
  enableEvidence: false,
87
87
  commitEvidence: false,
88
- defaultMode: 'Fast',
88
+ defaultFastMode: true,
89
89
  },
90
90
  },
91
91
  };
@@ -204,8 +204,6 @@
204
204
  "pendingOption": "إنشاء الميزة بدون بدء الوكيل",
205
205
  "fastOption": "تخطي مراحل SDLC والتنفيذ مباشرة من الأمر (الافتراضي: مفعّل)",
206
206
  "noFastOption": "تشغيل جميع مراحل SDLC (تحليل → متطلبات → خطة → تنفيذ)",
207
- "exploreOption": "Start an exploration/prototyping session for iterative design",
208
- "exploreAndFastConflict": "Cannot use --explore and --fast together. Choose one mode.",
209
207
  "modelOption": "معرّف نموذج LLM لهذا التشغيل (مثال: claude-opus-4-6)",
210
208
  "noRebaseOption": "Skip syncing main from remote before creating the feature branch",
211
209
  "injectSkillsOption": "Inject curated skills into the worktree",
@@ -418,28 +416,6 @@
418
416
  "restoredLabel": "تمت الاستعادة:",
419
417
  "failedToUnarchive": "فشل إلغاء أرشفة الميزة"
420
418
  },
421
- "feedback": {
422
- "description": "Send feedback on an exploration prototype to iterate",
423
- "idArgument": "Feature ID or prefix",
424
- "feedbackArgument": "Feedback text for the next iteration",
425
- "feedbackSubmitted": "Feedback submitted for: {{name}}",
426
- "iterationLabel": "Iteration:",
427
- "agentLabel": "Agent:",
428
- "agentIterating": "iterating on feedback",
429
- "notExploration": "Feature \"{{name}}\" is not in exploration mode (mode: {{mode}}, lifecycle: {{lifecycle}})",
430
- "failedToSubmit": "Failed to submit feedback"
431
- },
432
- "promote": {
433
- "description": "Promote an exploration feature to Regular or Fast mode",
434
- "idArgument": "Feature ID or prefix",
435
- "fastOption": "Promote to Fast mode (skip SDLC phases)",
436
- "promoted": "Exploration promoted: {{name}}",
437
- "modeLabel": "Mode:",
438
- "statusLabel": "Status:",
439
- "agentLabel": "Agent:",
440
- "agentSpawned": "spawned for {{mode}} mode",
441
- "failedToPromote": "Failed to promote exploration"
442
- },
443
419
  "resolveWaiting": {
444
420
  "featureNotFound": "الميزة غير موجودة: \"{{id}}\"",
445
421
  "noAgentRun": "الميزة \"{{name}}\" ليس لديها تشغيل وكيل",
@@ -591,6 +567,8 @@
591
567
  "alreadyUpToDate": "محدّث بالفعل (v{{version}})",
592
568
  "upgradingFromTo": "الترقية من v{{current}} إلى v{{latest}}",
593
569
  "upgradingToLatest": "الترقية من v{{current}} إلى الأحدث",
570
+ "downloadingPackage": "جارٍ تنزيل الإصدار الجديد...",
571
+ "downloadFailed": "لم يكتمل التنزيل المسبق — المتابعة بالتثبيت",
594
572
  "stoppingDaemon": "جارٍ إيقاف الخدمة الخلفية قبل الترقية...",
595
573
  "restartingDaemon": "جارٍ إعادة تشغيل الخدمة الخلفية...",
596
574
  "daemonRestarted": "تمت إعادة تشغيل الخدمة الخلفية بنجاح.",
@@ -68,11 +68,8 @@
68
68
  "title": "سير العمل",
69
69
  "description": "تكوين سلوك PR وبوابات الموافقة وإعدادات CI",
70
70
  "sectionDescription": "سلوك الأتمتة بعد التنفيذ",
71
- "defaultMode": "وضع الميزة الافتراضي",
72
- "defaultModeDescription": "الوضع الافتراضي للميزات الجديدة المنشأة عبر CLI أو واجهة الويب",
73
- "modeRegular": "عادي",
74
- "modeFast": "سريع",
75
- "modeExploration": "استكشاف",
71
+ "defaultFastMode": "الوضع السريع كافتراضي",
72
+ "defaultFastModeDescription": "تخطي مراحل SDLC والتنفيذ مباشرة من الأمر",
76
73
  "subsections": {
77
74
  "approve": "الموافقة",
78
75
  "evidence": "الأدلة",
@@ -350,7 +347,6 @@
350
347
  "cancel": "إلغاء",
351
348
  "archive": "أرشفة",
352
349
  "fastMode": "الوضع السريع",
353
- "explorationMode": "Exploration Mode",
354
350
  "specDriven": "مبني على المواصفات",
355
351
  "copied": "تم النسخ!",
356
352
  "chatWithAgent": "محادثة مع الوكيل",
@@ -204,8 +204,6 @@
204
204
  "pendingOption": "Feature erstellen, ohne den Agenten zu starten",
205
205
  "fastOption": "SDLC-Phasen überspringen und direkt nach Ihrem Prompt implementieren (Standard: ein)",
206
206
  "noFastOption": "Alle SDLC-Phasen durchlaufen (Analyse → Anforderungen → Plan → Implementierung)",
207
- "exploreOption": "Start an exploration/prototyping session for iterative design",
208
- "exploreAndFastConflict": "Cannot use --explore and --fast together. Choose one mode.",
209
207
  "modelOption": "LLM-Modellbezeichnung für diesen Lauf (z.B. claude-opus-4-6)",
210
208
  "noRebaseOption": "Skip syncing main from remote before creating the feature branch",
211
209
  "injectSkillsOption": "Inject curated skills into the worktree",
@@ -418,28 +416,6 @@
418
416
  "restoredLabel": "Wiederhergestellt:",
419
417
  "failedToUnarchive": "Feature konnte nicht wiederhergestellt werden"
420
418
  },
421
- "feedback": {
422
- "description": "Send feedback on an exploration prototype to iterate",
423
- "idArgument": "Feature ID or prefix",
424
- "feedbackArgument": "Feedback text for the next iteration",
425
- "feedbackSubmitted": "Feedback submitted for: {{name}}",
426
- "iterationLabel": "Iteration:",
427
- "agentLabel": "Agent:",
428
- "agentIterating": "iterating on feedback",
429
- "notExploration": "Feature \"{{name}}\" is not in exploration mode (mode: {{mode}}, lifecycle: {{lifecycle}})",
430
- "failedToSubmit": "Failed to submit feedback"
431
- },
432
- "promote": {
433
- "description": "Promote an exploration feature to Regular or Fast mode",
434
- "idArgument": "Feature ID or prefix",
435
- "fastOption": "Promote to Fast mode (skip SDLC phases)",
436
- "promoted": "Exploration promoted: {{name}}",
437
- "modeLabel": "Mode:",
438
- "statusLabel": "Status:",
439
- "agentLabel": "Agent:",
440
- "agentSpawned": "spawned for {{mode}} mode",
441
- "failedToPromote": "Failed to promote exploration"
442
- },
443
419
  "resolveWaiting": {
444
420
  "featureNotFound": "Feature nicht gefunden: \"{{id}}\"",
445
421
  "noAgentRun": "Feature \"{{name}}\" hat keinen Agentlauf",
@@ -591,6 +567,8 @@
591
567
  "alreadyUpToDate": "Bereits aktuell (v{{version}})",
592
568
  "upgradingFromTo": "Aktualisierung von v{{current}} auf v{{latest}}",
593
569
  "upgradingToLatest": "Aktualisierung von v{{current}} auf die neueste Version",
570
+ "downloadingPackage": "Neue Version wird heruntergeladen...",
571
+ "downloadFailed": "Vorab-Download nicht abgeschlossen — Installation wird fortgesetzt",
594
572
  "stoppingDaemon": "Dienst wird vor Aktualisierung gestoppt...",
595
573
  "restartingDaemon": "Dienst wird neu gestartet...",
596
574
  "daemonRestarted": "Dienst erfolgreich neu gestartet.",
@@ -68,11 +68,8 @@
68
68
  "title": "Workflow",
69
69
  "description": "Konfigurieren Sie PR-Verhalten, Genehmigungsstufen und CI-Einstellungen",
70
70
  "sectionDescription": "Automatisierungsverhalten nach der Implementierung",
71
- "defaultMode": "Standard-Feature-Modus",
72
- "defaultModeDescription": "Standardmodus für neue Features, die über CLI oder Web-UI erstellt werden",
73
- "modeRegular": "Standard",
74
- "modeFast": "Schnell",
75
- "modeExploration": "Erkundung",
71
+ "defaultFastMode": "Schnellmodus als Standard",
72
+ "defaultFastModeDescription": "SDLC-Phasen überspringen und direkt aus dem Prompt implementieren",
76
73
  "subsections": {
77
74
  "approve": "Genehmigen",
78
75
  "evidence": "Nachweise",
@@ -350,7 +347,6 @@
350
347
  "cancel": "Abbrechen",
351
348
  "archive": "Archivieren",
352
349
  "fastMode": "Schnellmodus",
353
- "explorationMode": "Exploration Mode",
354
350
  "specDriven": "Spezifikationsbasiert",
355
351
  "copied": "Kopiert!",
356
352
  "chatWithAgent": "Chat mit Agent",
@@ -204,8 +204,6 @@
204
204
  "pendingOption": "Create feature without starting the agent",
205
205
  "fastOption": "Skip SDLC phases and implement directly from your prompt (default: on)",
206
206
  "noFastOption": "Run full SDLC phases (analyze → requirements → plan → implement)",
207
- "exploreOption": "Start an exploration/prototyping session for iterative design",
208
- "exploreAndFastConflict": "Cannot use --explore and --fast together. Choose one mode.",
209
207
  "modelOption": "LLM model identifier for this run (e.g. claude-opus-4-6)",
210
208
  "noRebaseOption": "Skip syncing main from remote before creating the feature branch",
211
209
  "injectSkillsOption": "Inject curated skills into the worktree",
@@ -418,28 +416,6 @@
418
416
  "restoredLabel": "Restored:",
419
417
  "failedToUnarchive": "Failed to unarchive feature"
420
418
  },
421
- "feedback": {
422
- "description": "Send feedback on an exploration prototype to iterate",
423
- "idArgument": "Feature ID or prefix",
424
- "feedbackArgument": "Feedback text for the next iteration",
425
- "feedbackSubmitted": "Feedback submitted for: {{name}}",
426
- "iterationLabel": "Iteration:",
427
- "agentLabel": "Agent:",
428
- "agentIterating": "iterating on feedback",
429
- "notExploration": "Feature \"{{name}}\" is not in exploration mode (mode: {{mode}}, lifecycle: {{lifecycle}})",
430
- "failedToSubmit": "Failed to submit feedback"
431
- },
432
- "promote": {
433
- "description": "Promote an exploration feature to Regular or Fast mode",
434
- "idArgument": "Feature ID or prefix",
435
- "fastOption": "Promote to Fast mode (skip SDLC phases)",
436
- "promoted": "Exploration promoted: {{name}}",
437
- "modeLabel": "Mode:",
438
- "statusLabel": "Status:",
439
- "agentLabel": "Agent:",
440
- "agentSpawned": "spawned for {{mode}} mode",
441
- "failedToPromote": "Failed to promote exploration"
442
- },
443
419
  "resolveWaiting": {
444
420
  "featureNotFound": "Feature not found: \"{{id}}\"",
445
421
  "noAgentRun": "Feature \"{{name}}\" has no agent run",
@@ -591,6 +567,8 @@
591
567
  "alreadyUpToDate": "Already up to date (v{{version}})",
592
568
  "upgradingFromTo": "Upgrading from v{{current}} to v{{latest}}",
593
569
  "upgradingToLatest": "Upgrading from v{{current}} to latest",
570
+ "downloadingPackage": "Downloading new version...",
571
+ "downloadFailed": "Pre-download did not complete — proceeding with install",
594
572
  "stoppingDaemon": "Stopping daemon before upgrade...",
595
573
  "restartingDaemon": "Restarting daemon...",
596
574
  "daemonRestarted": "Daemon restarted successfully.",
@@ -68,11 +68,8 @@
68
68
  "title": "Workflow",
69
69
  "description": "Configure PR behavior, approval gates, and CI settings",
70
70
  "sectionDescription": "Automation behavior after implementation",
71
- "defaultMode": "Default feature mode",
72
- "defaultModeDescription": "Default mode for new features created via CLI or Web UI",
73
- "modeRegular": "Regular",
74
- "modeFast": "Fast",
75
- "modeExploration": "Exploration",
71
+ "defaultFastMode": "Fast mode by default",
72
+ "defaultFastModeDescription": "Skip SDLC phases and implement directly from prompt",
76
73
  "subsections": {
77
74
  "approve": "Approve",
78
75
  "evidence": "Evidence",
@@ -350,7 +347,6 @@
350
347
  "cancel": "Cancel",
351
348
  "archive": "Archive",
352
349
  "fastMode": "Fast Mode",
353
- "explorationMode": "Exploration Mode",
354
350
  "specDriven": "Spec Driven",
355
351
  "copied": "Copied!",
356
352
  "chatWithAgent": "Chat with agent",
@@ -204,8 +204,6 @@
204
204
  "pendingOption": "Crear funcionalidad sin iniciar el agente",
205
205
  "fastOption": "Omitir las fases SDLC e implementar directamente desde tu prompt (predeterminado: activado)",
206
206
  "noFastOption": "Ejecutar todas las fases SDLC (analizar → requisitos → plan → implementar)",
207
- "exploreOption": "Start an exploration/prototyping session for iterative design",
208
- "exploreAndFastConflict": "Cannot use --explore and --fast together. Choose one mode.",
209
207
  "modelOption": "Identificador del modelo LLM para esta ejecución (ej., claude-opus-4-6)",
210
208
  "noRebaseOption": "Skip syncing main from remote before creating the feature branch",
211
209
  "injectSkillsOption": "Inject curated skills into the worktree",
@@ -418,28 +416,6 @@
418
416
  "restoredLabel": "Restaurado:",
419
417
  "failedToUnarchive": "Error al desarchivar la funcionalidad"
420
418
  },
421
- "feedback": {
422
- "description": "Send feedback on an exploration prototype to iterate",
423
- "idArgument": "Feature ID or prefix",
424
- "feedbackArgument": "Feedback text for the next iteration",
425
- "feedbackSubmitted": "Feedback submitted for: {{name}}",
426
- "iterationLabel": "Iteration:",
427
- "agentLabel": "Agent:",
428
- "agentIterating": "iterating on feedback",
429
- "notExploration": "Feature \"{{name}}\" is not in exploration mode (mode: {{mode}}, lifecycle: {{lifecycle}})",
430
- "failedToSubmit": "Failed to submit feedback"
431
- },
432
- "promote": {
433
- "description": "Promote an exploration feature to Regular or Fast mode",
434
- "idArgument": "Feature ID or prefix",
435
- "fastOption": "Promote to Fast mode (skip SDLC phases)",
436
- "promoted": "Exploration promoted: {{name}}",
437
- "modeLabel": "Mode:",
438
- "statusLabel": "Status:",
439
- "agentLabel": "Agent:",
440
- "agentSpawned": "spawned for {{mode}} mode",
441
- "failedToPromote": "Failed to promote exploration"
442
- },
443
419
  "resolveWaiting": {
444
420
  "featureNotFound": "Funcionalidad no encontrada: \"{{id}}\"",
445
421
  "noAgentRun": "La funcionalidad \"{{name}}\" no tiene ejecución de agente",
@@ -591,6 +567,8 @@
591
567
  "alreadyUpToDate": "Ya está actualizado (v{{version}})",
592
568
  "upgradingFromTo": "Actualizando de v{{current}} a v{{latest}}",
593
569
  "upgradingToLatest": "Actualizando de v{{current}} a la última versión",
570
+ "downloadingPackage": "Descargando nueva versión...",
571
+ "downloadFailed": "La descarga previa no se completó — continuando con la instalación",
594
572
  "stoppingDaemon": "Deteniendo el demonio antes de actualizar...",
595
573
  "restartingDaemon": "Reiniciando el demonio...",
596
574
  "daemonRestarted": "Demonio reiniciado exitosamente.",