@shepai/cli 1.166.0-pr505.69702c9 → 1.166.0-pr513.fdcdd56

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 (552) hide show
  1. package/apis/json-schema/Feature.yaml +17 -5
  2. package/apis/json-schema/FeatureFlags.yaml +0 -5
  3. package/apis/json-schema/FeatureMode.yaml +8 -0
  4. package/apis/json-schema/SdlcLifecycle.yaml +1 -0
  5. package/apis/json-schema/WorkflowConfig.yaml +10 -5
  6. package/dist/packages/core/src/application/ports/output/agents/feature-agent-process.interface.d.ts +2 -2
  7. package/dist/packages/core/src/application/ports/output/agents/feature-agent-process.interface.d.ts.map +1 -1
  8. package/dist/packages/core/src/application/ports/output/services/spec-initializer.interface.d.ts +4 -3
  9. package/dist/packages/core/src/application/ports/output/services/spec-initializer.interface.d.ts.map +1 -1
  10. package/dist/packages/core/src/application/use-cases/agents/approve-agent-run.use-case.js +2 -2
  11. package/dist/packages/core/src/application/use-cases/agents/reject-agent-run.use-case.js +2 -2
  12. package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.d.ts.map +1 -1
  13. package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.js +3 -2
  14. package/dist/packages/core/src/application/use-cases/features/check-and-unblock-features.use-case.js +2 -2
  15. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts.map +1 -1
  16. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.js +18 -7
  17. package/dist/packages/core/src/application/use-cases/features/create/types.d.ts +3 -2
  18. package/dist/packages/core/src/application/use-cases/features/create/types.d.ts.map +1 -1
  19. package/dist/packages/core/src/application/use-cases/features/delete-feature.use-case.d.ts.map +1 -1
  20. package/dist/packages/core/src/application/use-cases/features/delete-feature.use-case.js +13 -0
  21. package/dist/packages/core/src/application/use-cases/features/promote/promote-exploration.use-case.d.ts +40 -0
  22. package/dist/packages/core/src/application/use-cases/features/promote/promote-exploration.use-case.d.ts.map +1 -0
  23. package/dist/packages/core/src/application/use-cases/features/promote/promote-exploration.use-case.js +125 -0
  24. package/dist/packages/core/src/application/use-cases/features/resume-feature.use-case.js +2 -2
  25. package/dist/packages/core/src/application/use-cases/features/start-feature.use-case.d.ts.map +1 -1
  26. package/dist/packages/core/src/application/use-cases/features/start-feature.use-case.js +5 -3
  27. package/dist/packages/core/src/domain/factories/settings-defaults.factory.js +2 -2
  28. package/dist/packages/core/src/domain/generated/output.d.ts +22 -8
  29. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  30. package/dist/packages/core/src/domain/generated/output.js +7 -0
  31. package/dist/packages/core/src/domain/lifecycle-gates.d.ts +21 -6
  32. package/dist/packages/core/src/domain/lifecycle-gates.d.ts.map +1 -1
  33. package/dist/packages/core/src/domain/lifecycle-gates.js +25 -6
  34. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  35. package/dist/packages/core/src/infrastructure/di/container.js +5 -0
  36. package/dist/packages/core/src/infrastructure/persistence/sqlite/legacy-migrations.d.ts.map +1 -1
  37. package/dist/packages/core/src/infrastructure/persistence/sqlite/legacy-migrations.js +0 -11
  38. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts +3 -1
  39. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts.map +1 -1
  40. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.js +10 -4
  41. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +2 -2
  42. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
  43. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +7 -4
  44. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/051-replace-fast-with-mode.d.ts +19 -0
  45. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/051-replace-fast-with-mode.d.ts.map +1 -0
  46. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/051-replace-fast-with-mode.js +46 -0
  47. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/052-replace-default-fast-mode-with-default-mode.d.ts +17 -0
  48. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/052-replace-default-fast-mode-with-default-mode.d.ts.map +1 -0
  49. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/052-replace-default-fast-mode-with-default-mode.js +37 -0
  50. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-exploration-max-iterations.d.ts +12 -0
  51. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-exploration-max-iterations.d.ts.map +1 -0
  52. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-exploration-max-iterations.js +17 -0
  53. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations.d.ts +3 -3
  54. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations.js +3 -3
  55. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.d.ts.map +1 -1
  56. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.js +5 -3
  57. package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.js +3 -3
  58. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/exploration-agent-graph.d.ts +362 -0
  59. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/exploration-agent-graph.d.ts.map +1 -0
  60. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/exploration-agent-graph.js +72 -0
  61. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.d.ts +20 -0
  62. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.d.ts.map +1 -1
  63. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts +68 -0
  64. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts.map +1 -1
  65. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.d.ts +2 -2
  66. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.d.ts.map +1 -1
  67. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.js +3 -3
  68. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts +2 -2
  69. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts.map +1 -1
  70. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.js +19 -8
  71. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/lifecycle-context.d.ts.map +1 -1
  72. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/lifecycle-context.js +1 -0
  73. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/apply-feedback.node.d.ts +18 -0
  74. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/apply-feedback.node.d.ts.map +1 -0
  75. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/apply-feedback.node.js +52 -0
  76. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts.map +1 -1
  77. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.js +1 -0
  78. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/apply-feedback.prompt.d.ts +24 -0
  79. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/apply-feedback.prompt.d.ts.map +1 -0
  80. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/apply-feedback.prompt.js +38 -0
  81. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/prototype-generate.prompt.d.ts +31 -0
  82. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/prototype-generate.prompt.d.ts.map +1 -0
  83. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/prototype-generate.prompt.js +240 -0
  84. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prototype-generate.node.d.ts +21 -0
  85. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prototype-generate.node.d.ts.map +1 -0
  86. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prototype-generate.node.js +134 -0
  87. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.d.ts +4 -0
  88. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.d.ts.map +1 -1
  89. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.js +17 -0
  90. package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.d.ts +1 -1
  91. package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.d.ts.map +1 -1
  92. package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.js +7 -4
  93. package/dist/src/presentation/cli/commands/feat/feedback.command.d.ts +12 -0
  94. package/dist/src/presentation/cli/commands/feat/feedback.command.d.ts.map +1 -0
  95. package/dist/src/presentation/cli/commands/feat/feedback.command.js +64 -0
  96. package/dist/src/presentation/cli/commands/feat/index.d.ts.map +1 -1
  97. package/dist/src/presentation/cli/commands/feat/index.js +5 -1
  98. package/dist/src/presentation/cli/commands/feat/new.command.d.ts.map +1 -1
  99. package/dist/src/presentation/cli/commands/feat/new.command.js +18 -5
  100. package/dist/src/presentation/cli/commands/feat/promote.command.d.ts +13 -0
  101. package/dist/src/presentation/cli/commands/feat/promote.command.d.ts.map +1 -0
  102. package/dist/src/presentation/cli/commands/feat/promote.command.js +41 -0
  103. package/dist/src/presentation/web/app/actions/create-feature.d.ts +3 -2
  104. package/dist/src/presentation/web/app/actions/create-feature.d.ts.map +1 -1
  105. package/dist/src/presentation/web/app/actions/create-feature.js +3 -3
  106. package/dist/src/presentation/web/app/actions/discard-exploration.d.ts +9 -0
  107. package/dist/src/presentation/web/app/actions/discard-exploration.d.ts.map +1 -0
  108. package/dist/src/presentation/web/app/actions/discard-exploration.js +29 -0
  109. package/dist/src/presentation/web/app/actions/get-workflow-defaults.d.ts +2 -1
  110. package/dist/src/presentation/web/app/actions/get-workflow-defaults.d.ts.map +1 -1
  111. package/dist/src/presentation/web/app/actions/get-workflow-defaults.js +2 -1
  112. package/dist/src/presentation/web/app/actions/promote-exploration.d.ts +11 -0
  113. package/dist/src/presentation/web/app/actions/promote-exploration.d.ts.map +1 -0
  114. package/dist/src/presentation/web/app/actions/promote-exploration.js +21 -0
  115. package/dist/src/presentation/web/app/actions/submit-exploration-feedback.d.ts +12 -0
  116. package/dist/src/presentation/web/app/actions/submit-exploration-feedback.d.ts.map +1 -0
  117. package/dist/src/presentation/web/app/actions/submit-exploration-feedback.js +40 -0
  118. package/dist/src/presentation/web/app/api/agent-events/route.d.ts.map +1 -1
  119. package/dist/src/presentation/web/app/api/agent-events/route.js +1 -0
  120. package/dist/src/presentation/web/app/build-feature-node-data.d.ts.map +1 -1
  121. package/dist/src/presentation/web/app/build-feature-node-data.js +4 -2
  122. package/dist/src/presentation/web/app/build-graph-nodes.js +4 -2
  123. package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.d.ts +1 -1
  124. package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.d.ts.map +1 -1
  125. package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.js +3 -0
  126. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.d.ts.map +1 -1
  127. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.js +65 -1
  128. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts +3 -2
  129. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts.map +1 -1
  130. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.js +15 -11
  131. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.d.ts.map +1 -1
  132. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.js +2 -1
  133. package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.d.ts +8 -0
  134. package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.d.ts.map +1 -0
  135. package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.js +33 -0
  136. package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.stories.d.ts +10 -0
  137. package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.stories.d.ts.map +1 -0
  138. package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.stories.js +33 -0
  139. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts +6 -1
  140. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts.map +1 -1
  141. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.js +16 -4
  142. package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.d.ts +11 -0
  143. package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.d.ts.map +1 -0
  144. package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.js +34 -0
  145. package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.stories.d.ts +16 -0
  146. package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.stories.d.ts.map +1 -0
  147. package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.stories.js +70 -0
  148. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.d.ts.map +1 -1
  149. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.js +2 -0
  150. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +6 -2
  151. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map +1 -1
  152. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.js +12 -0
  153. package/dist/src/presentation/web/components/common/feature-node/feature-node.d.ts.map +1 -1
  154. package/dist/src/presentation/web/components/common/feature-node/feature-node.js +7 -2
  155. package/dist/src/presentation/web/components/common/repository-node/repository-drawer.stories.d.ts.map +1 -1
  156. package/dist/src/presentation/web/components/common/repository-node/repository-drawer.stories.js +0 -1
  157. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.d.ts.map +1 -1
  158. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.js +0 -3
  159. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.d.ts.map +1 -1
  160. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.js +0 -3
  161. package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
  162. package/dist/src/presentation/web/components/features/settings/settings-page-client.js +6 -11
  163. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts.map +1 -1
  164. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.js +0 -1
  165. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.js +3 -3
  166. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts.map +1 -1
  167. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.js +2 -2
  168. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.d.ts.map +1 -1
  169. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.js +0 -1
  170. package/dist/src/presentation/web/components/ui/toggle-group.d.ts +10 -0
  171. package/dist/src/presentation/web/components/ui/toggle-group.d.ts.map +1 -0
  172. package/dist/src/presentation/web/components/ui/toggle-group.js +22 -0
  173. package/dist/src/presentation/web/components/ui/toggle.d.ts +10 -0
  174. package/dist/src/presentation/web/components/ui/toggle.d.ts.map +1 -0
  175. package/dist/src/presentation/web/components/ui/toggle.js +26 -0
  176. package/dist/src/presentation/web/hooks/feature-flags-context.d.ts.map +1 -1
  177. package/dist/src/presentation/web/hooks/feature-flags-context.js +0 -1
  178. package/dist/src/presentation/web/lib/feature-flags.d.ts +0 -2
  179. package/dist/src/presentation/web/lib/feature-flags.d.ts.map +1 -1
  180. package/dist/src/presentation/web/lib/feature-flags.js +0 -5
  181. package/dist/translations/ar/cli.json +24 -0
  182. package/dist/translations/ar/web.json +6 -4
  183. package/dist/translations/de/cli.json +24 -0
  184. package/dist/translations/de/web.json +6 -4
  185. package/dist/translations/en/cli.json +24 -0
  186. package/dist/translations/en/web.json +6 -4
  187. package/dist/translations/es/cli.json +24 -0
  188. package/dist/translations/es/web.json +6 -4
  189. package/dist/translations/fr/cli.json +24 -0
  190. package/dist/translations/fr/web.json +6 -4
  191. package/dist/translations/he/cli.json +24 -0
  192. package/dist/translations/he/web.json +6 -4
  193. package/dist/translations/pt/cli.json +24 -0
  194. package/dist/translations/pt/web.json +6 -4
  195. package/dist/translations/ru/cli.json +24 -0
  196. package/dist/translations/ru/web.json +6 -4
  197. package/dist/tsconfig.build.tsbuildinfo +1 -1
  198. package/package.json +1 -1
  199. package/web/.next/BUILD_ID +1 -1
  200. package/web/.next/app-path-routes-manifest.json +0 -1
  201. package/web/.next/build-manifest.json +5 -5
  202. package/web/.next/fallback-build-manifest.json +2 -2
  203. package/web/.next/prerender-manifest.json +3 -3
  204. package/web/.next/required-server-files.js +1 -1
  205. package/web/.next/required-server-files.json +1 -1
  206. package/web/.next/routes-manifest.json +0 -6
  207. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/build-manifest.json +3 -3
  208. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +29 -29
  209. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +1 -1
  210. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  211. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  212. package/web/.next/server/app/(dashboard)/@drawer/chat/page/build-manifest.json +3 -3
  213. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +27 -27
  214. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js +1 -1
  215. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
  216. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
  217. package/web/.next/server/app/(dashboard)/@drawer/create/page/build-manifest.json +3 -3
  218. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +30 -30
  219. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +1 -1
  220. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  221. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  222. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/build-manifest.json +3 -3
  223. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +119 -74
  224. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +3 -2
  225. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  226. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  227. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/build-manifest.json +3 -3
  228. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +119 -74
  229. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +3 -2
  230. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  231. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  232. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/build-manifest.json +3 -3
  233. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  234. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +1 -1
  235. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  236. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  237. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/build-manifest.json +3 -3
  238. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  239. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +1 -1
  240. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  241. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  242. package/web/.next/server/app/(dashboard)/chat/page/build-manifest.json +3 -3
  243. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +27 -27
  244. package/web/.next/server/app/(dashboard)/chat/page.js +1 -1
  245. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  246. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  247. package/web/.next/server/app/(dashboard)/create/page/build-manifest.json +3 -3
  248. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +30 -30
  249. package/web/.next/server/app/(dashboard)/create/page.js +1 -1
  250. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  251. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  252. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/build-manifest.json +3 -3
  253. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +119 -74
  254. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +3 -2
  255. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  256. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  257. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/build-manifest.json +3 -3
  258. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +119 -74
  259. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +3 -2
  260. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  261. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  262. package/web/.next/server/app/(dashboard)/page/build-manifest.json +3 -3
  263. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +27 -27
  264. package/web/.next/server/app/(dashboard)/page.js +1 -1
  265. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  266. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  267. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/build-manifest.json +3 -3
  268. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  269. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +1 -1
  270. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  271. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  272. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/build-manifest.json +3 -3
  273. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  274. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +1 -1
  275. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  276. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  277. package/web/.next/server/app/_global-error/page/build-manifest.json +3 -3
  278. package/web/.next/server/app/_global-error/page.js.nft.json +1 -1
  279. package/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  280. package/web/.next/server/app/_global-error.html +2 -2
  281. package/web/.next/server/app/_global-error.rsc +1 -1
  282. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  283. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  284. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  285. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  286. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  287. package/web/.next/server/app/_not-found/page/build-manifest.json +3 -3
  288. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +6 -6
  289. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  290. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  291. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  292. package/web/.next/server/app/api/attachments/upload-from-path/route.js +1 -1
  293. package/web/.next/server/app/api/attachments/upload-from-path/route.js.nft.json +1 -1
  294. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  295. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  296. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
  297. package/web/.next/server/app/settings/page/build-manifest.json +3 -3
  298. package/web/.next/server/app/settings/page/server-reference-manifest.json +9 -9
  299. package/web/.next/server/app/settings/page.js +1 -1
  300. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  301. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  302. package/web/.next/server/app/skills/page/build-manifest.json +3 -3
  303. package/web/.next/server/app/skills/page/server-reference-manifest.json +11 -11
  304. package/web/.next/server/app/skills/page.js +1 -1
  305. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  306. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  307. package/web/.next/server/app/tools/page/build-manifest.json +3 -3
  308. package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
  309. package/web/.next/server/app/tools/page.js +1 -1
  310. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  311. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  312. package/web/.next/server/app/version/page/build-manifest.json +3 -3
  313. package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
  314. package/web/.next/server/app/version/page.js.nft.json +1 -1
  315. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  316. package/web/.next/server/app-paths-manifest.json +0 -1
  317. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js +1 -1
  318. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js.map +1 -1
  319. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js +1 -1
  320. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js.map +1 -1
  321. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  322. package/web/.next/server/chunks/[root-of-the-server]__c78383b1._.js +1 -1
  323. package/web/.next/server/chunks/[root-of-the-server]__c78383b1._.js.map +1 -1
  324. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js +1 -1
  325. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
  326. package/web/.next/server/chunks/{[root-of-the-server]__a5879003._.js → [root-of-the-server]__ea653642._.js} +2 -2
  327. package/web/.next/server/chunks/{[root-of-the-server]__a5879003._.js.map → [root-of-the-server]__ea653642._.js.map} +1 -1
  328. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  329. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  330. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +3 -3
  331. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
  332. package/web/.next/server/chunks/ssr/{[root-of-the-server]__b020c17d._.js → [root-of-the-server]__1abe77bb._.js} +3 -3
  333. package/web/.next/server/chunks/ssr/[root-of-the-server]__1abe77bb._.js.map +1 -0
  334. package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js +1 -1
  335. package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js.map +1 -1
  336. package/web/.next/server/chunks/ssr/{[root-of-the-server]__851f6adb._.js → [root-of-the-server]__248ee887._.js} +2 -2
  337. package/web/.next/server/chunks/ssr/[root-of-the-server]__248ee887._.js.map +1 -0
  338. package/web/.next/server/chunks/ssr/{[root-of-the-server]__13fa44e4._.js → [root-of-the-server]__2d0c3840._.js} +2 -2
  339. package/web/.next/server/chunks/ssr/{[root-of-the-server]__13fa44e4._.js.map → [root-of-the-server]__2d0c3840._.js.map} +1 -1
  340. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  341. package/web/.next/server/chunks/ssr/[root-of-the-server]__4ed9b909._.js +1 -1
  342. package/web/.next/server/chunks/ssr/[root-of-the-server]__58a5b819._.js +4 -0
  343. package/web/.next/server/chunks/ssr/[root-of-the-server]__58a5b819._.js.map +1 -0
  344. package/web/.next/server/chunks/ssr/[root-of-the-server]__67a193c8._.js +4 -0
  345. package/web/.next/server/chunks/ssr/[root-of-the-server]__67a193c8._.js.map +1 -0
  346. package/web/.next/server/chunks/ssr/[root-of-the-server]__684a868c._.js +1 -1
  347. package/web/.next/server/chunks/ssr/[root-of-the-server]__684a868c._.js.map +1 -1
  348. package/web/.next/server/chunks/ssr/[root-of-the-server]__754fb18e._.js +4 -0
  349. package/web/.next/server/chunks/ssr/[root-of-the-server]__754fb18e._.js.map +1 -0
  350. package/web/.next/server/chunks/ssr/{[root-of-the-server]__7ffd3598._.js → [root-of-the-server]__7562afc6._.js} +3 -3
  351. package/web/.next/server/chunks/ssr/[root-of-the-server]__7562afc6._.js.map +1 -0
  352. package/web/.next/server/chunks/ssr/{[root-of-the-server]__e88da4ee._.js → [root-of-the-server]__8b0aac03._.js} +3 -3
  353. package/web/.next/server/chunks/ssr/{[root-of-the-server]__e88da4ee._.js.map → [root-of-the-server]__8b0aac03._.js.map} +1 -1
  354. package/web/.next/server/chunks/ssr/[root-of-the-server]__96ba046b._.js +4 -0
  355. package/web/.next/server/chunks/ssr/[root-of-the-server]__96ba046b._.js.map +1 -0
  356. package/web/.next/server/chunks/ssr/{[root-of-the-server]__0c5452c3._.js → [root-of-the-server]__b062b383._.js} +2 -2
  357. package/web/.next/server/chunks/ssr/[root-of-the-server]__b062b383._.js.map +1 -0
  358. package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js +1 -1
  359. package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js.map +1 -1
  360. package/web/.next/server/chunks/ssr/[root-of-the-server]__c1262d08._.js +1 -1
  361. package/web/.next/server/chunks/ssr/[root-of-the-server]__c16bf5de._.js +1 -1
  362. package/web/.next/server/chunks/ssr/[root-of-the-server]__c16bf5de._.js.map +1 -1
  363. package/web/.next/server/chunks/ssr/{[root-of-the-server]__69dd3217._.js → [root-of-the-server]__dffa13c5._.js} +2 -2
  364. package/web/.next/server/chunks/ssr/[root-of-the-server]__dffa13c5._.js.map +1 -0
  365. package/web/.next/server/chunks/ssr/_0020fddd._.js +1 -1
  366. package/web/.next/server/chunks/ssr/_0020fddd._.js.map +1 -1
  367. package/web/.next/server/chunks/ssr/_02e01240._.js +1 -1
  368. package/web/.next/server/chunks/ssr/_02e01240._.js.map +1 -1
  369. package/web/.next/server/chunks/ssr/_05c23ad9._.js +1 -1
  370. package/web/.next/server/chunks/ssr/_05c23ad9._.js.map +1 -1
  371. package/web/.next/server/chunks/ssr/_0727935d._.js +1 -1
  372. package/web/.next/server/chunks/ssr/_0727935d._.js.map +1 -1
  373. package/web/.next/server/chunks/ssr/_0dc06d07._.js +1 -1
  374. package/web/.next/server/chunks/ssr/_0dc06d07._.js.map +1 -1
  375. package/web/.next/server/chunks/ssr/_12c98a3d._.js +3 -0
  376. package/web/.next/server/chunks/ssr/_12c98a3d._.js.map +1 -0
  377. package/web/.next/server/chunks/ssr/_16eb4fec._.js +1 -1
  378. package/web/.next/server/chunks/ssr/_16eb4fec._.js.map +1 -1
  379. package/web/.next/server/chunks/ssr/_18886033._.js +1 -1
  380. package/web/.next/server/chunks/ssr/_18886033._.js.map +1 -1
  381. package/web/.next/server/chunks/ssr/_22e00a14._.js +1 -1
  382. package/web/.next/server/chunks/ssr/_22e00a14._.js.map +1 -1
  383. package/web/.next/server/chunks/ssr/_3bcda5d7._.js +3 -0
  384. package/web/.next/server/chunks/ssr/{_f79e241b._.js.map → _3bcda5d7._.js.map} +1 -1
  385. package/web/.next/server/chunks/ssr/{_407e5985._.js → _40c4d64e._.js} +2 -2
  386. package/web/.next/server/chunks/ssr/_40c4d64e._.js.map +1 -0
  387. package/web/.next/server/chunks/ssr/_5119a3df._.js +1 -1
  388. package/web/.next/server/chunks/ssr/_5119a3df._.js.map +1 -1
  389. package/web/.next/server/chunks/ssr/{_3edd669d._.js → _52567223._.js} +2 -2
  390. package/web/.next/server/chunks/ssr/{_3edd669d._.js.map → _52567223._.js.map} +1 -1
  391. package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
  392. package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
  393. package/web/.next/server/chunks/ssr/_5eb460b1._.js +3 -0
  394. package/web/.next/server/chunks/ssr/_5eb460b1._.js.map +1 -0
  395. package/web/.next/server/chunks/ssr/_997b560b._.js +3 -0
  396. package/web/.next/server/chunks/ssr/_997b560b._.js.map +1 -0
  397. package/web/.next/server/chunks/ssr/_a5a5901d._.js +1 -1
  398. package/web/.next/server/chunks/ssr/_a5a5901d._.js.map +1 -1
  399. package/web/.next/server/chunks/ssr/_acc5e43e._.js +9 -0
  400. package/web/.next/server/chunks/ssr/_acc5e43e._.js.map +1 -0
  401. package/web/.next/server/chunks/ssr/_ad09f271._.js +1 -1
  402. package/web/.next/server/chunks/ssr/_ad09f271._.js.map +1 -1
  403. package/web/.next/server/chunks/ssr/_b0efd563._.js +3 -0
  404. package/web/.next/server/chunks/ssr/_b0efd563._.js.map +1 -0
  405. package/web/.next/server/chunks/ssr/_b5fc318a._.js +3 -0
  406. package/web/.next/server/chunks/ssr/_b5fc318a._.js.map +1 -0
  407. package/web/.next/server/chunks/ssr/_c3f595c6._.js +1 -1
  408. package/web/.next/server/chunks/ssr/_c3f595c6._.js.map +1 -1
  409. package/web/.next/server/chunks/ssr/_ea9e1556._.js +1 -1
  410. package/web/.next/server/chunks/ssr/_ea9e1556._.js.map +1 -1
  411. package/web/.next/server/chunks/ssr/_f1ba9be6._.js +2 -2
  412. package/web/.next/server/chunks/ssr/_f1ba9be6._.js.map +1 -1
  413. package/web/.next/server/chunks/ssr/_f33cd07e._.js +2 -2
  414. package/web/.next/server/chunks/ssr/_f33cd07e._.js.map +1 -1
  415. package/web/.next/server/chunks/ssr/_f8b45233._.js +1 -1
  416. package/web/.next/server/chunks/ssr/_f8b45233._.js.map +1 -1
  417. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  418. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  419. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +1 -1
  420. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js.map +1 -1
  421. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_approve-feature_ts_9453ce8b._.js +3 -0
  422. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_approve-feature_ts_9453ce8b._.js.map +1 -0
  423. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +1 -1
  424. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js +1 -1
  425. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js.map +1 -1
  426. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js +1 -1
  427. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js.map +1 -1
  428. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  429. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  430. package/web/.next/server/chunks/ssr/src_presentation_web_db9fa0c2._.js +1 -1
  431. package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js +1 -1
  432. package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js.map +1 -1
  433. package/web/.next/server/middleware-build-manifest.js +3 -3
  434. package/web/.next/server/pages/500.html +2 -2
  435. package/web/.next/server/server-reference-manifest.js +1 -1
  436. package/web/.next/server/server-reference-manifest.json +303 -237
  437. package/web/.next/static/chunks/04636196914be502.js +1 -0
  438. package/web/.next/static/chunks/16eea21868510afd.js +5 -0
  439. package/web/.next/static/chunks/{12108d8133ec11d7.js → 19e7ce7a45b9aba5.js} +1 -1
  440. package/web/.next/static/chunks/{d5366257d6b9f855.js → 2a9af061f4fbe7f5.js} +1 -1
  441. package/web/.next/static/chunks/2ceebcc839ee0d4b.js +1 -0
  442. package/web/.next/static/chunks/{a83939881726a6dd.js → 333b1f2c897337c9.js} +2 -2
  443. package/web/.next/static/chunks/3deefc76ea55047c.js +1 -0
  444. package/web/.next/static/chunks/40b6bcf1a2de4a0f.js +1 -0
  445. package/web/.next/static/chunks/517f9f7b52421b78.js +1 -0
  446. package/web/.next/static/chunks/51f2de96879281ea.js +1 -0
  447. package/web/.next/static/chunks/672e3da3ad26005b.js +1 -0
  448. package/web/.next/static/chunks/{c8347760a2f8ac4d.js → 785d6f99b66ca637.js} +1 -1
  449. package/web/.next/static/chunks/{5535b63f0dee9d4d.js → 81a9fa188d0bef95.js} +1 -1
  450. package/web/.next/static/chunks/85c9f8d4601354cd.js +1 -0
  451. package/web/.next/static/chunks/884fceb3e6a67215.js +1 -0
  452. package/web/.next/static/chunks/{0ed5cc117fa6b1fb.js → 8aa61c1b439f38d6.js} +1 -1
  453. package/web/.next/static/chunks/904f10ee1f7ed44f.js +5 -0
  454. package/web/.next/static/chunks/985b80ac9fd25d02.css +1 -0
  455. package/web/.next/static/chunks/b2b1a749ec72f3a3.js +3 -0
  456. package/web/.next/static/chunks/b474396c44f62500.js +1 -0
  457. package/web/.next/static/chunks/{5c09d2251510fc0d.js → b810ab3e01ffa9cb.js} +1 -1
  458. package/web/.next/static/chunks/c7e793951b20a67f.js +1 -0
  459. package/web/.next/static/chunks/ed6f26a65c6e7da9.js +7 -0
  460. package/web/.next/static/chunks/{turbopack-62782e656a49f322.js → turbopack-432ef324fc27240c.js} +1 -1
  461. package/web/package.json +0 -2
  462. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/050-add-feature-flag-inventory.d.ts +0 -11
  463. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/050-add-feature-flag-inventory.d.ts.map +0 -1
  464. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/050-add-feature-flag-inventory.js +0 -17
  465. package/dist/src/presentation/web/app/features/feature-tree-page-client.d.ts +0 -7
  466. package/dist/src/presentation/web/app/features/feature-tree-page-client.d.ts.map +0 -1
  467. package/dist/src/presentation/web/app/features/feature-tree-page-client.js +0 -13
  468. package/dist/src/presentation/web/app/features/get-feature-tree-data.d.ts +0 -10
  469. package/dist/src/presentation/web/app/features/get-feature-tree-data.d.ts.map +0 -1
  470. package/dist/src/presentation/web/app/features/get-feature-tree-data.js +0 -47
  471. package/dist/src/presentation/web/app/features/page.d.ts +0 -4
  472. package/dist/src/presentation/web/app/features/page.d.ts.map +0 -1
  473. package/dist/src/presentation/web/app/features/page.js +0 -9
  474. package/dist/src/presentation/web/components/features/feature-tree-table/feature-tree-table.d.ts +0 -36
  475. package/dist/src/presentation/web/components/features/feature-tree-table/feature-tree-table.d.ts.map +0 -1
  476. package/dist/src/presentation/web/components/features/feature-tree-table/feature-tree-table.js +0 -196
  477. package/dist/src/presentation/web/components/features/feature-tree-table/feature-tree-table.stories.d.ts +0 -12
  478. package/dist/src/presentation/web/components/features/feature-tree-table/feature-tree-table.stories.d.ts.map +0 -1
  479. package/dist/src/presentation/web/components/features/feature-tree-table/feature-tree-table.stories.js +0 -166
  480. package/dist/src/presentation/web/components/features/feature-tree-table/index.d.ts +0 -3
  481. package/dist/src/presentation/web/components/features/feature-tree-table/index.d.ts.map +0 -1
  482. package/dist/src/presentation/web/components/features/feature-tree-table/index.js +0 -1
  483. package/web/.next/server/app/features/page/app-paths-manifest.json +0 -3
  484. package/web/.next/server/app/features/page/build-manifest.json +0 -18
  485. package/web/.next/server/app/features/page/next-font-manifest.json +0 -6
  486. package/web/.next/server/app/features/page/react-loadable-manifest.json +0 -8
  487. package/web/.next/server/app/features/page/server-reference-manifest.json +0 -95
  488. package/web/.next/server/app/features/page.js +0 -18
  489. package/web/.next/server/app/features/page.js.map +0 -5
  490. package/web/.next/server/app/features/page.js.nft.json +0 -1
  491. package/web/.next/server/app/features/page_client-reference-manifest.js +0 -2
  492. package/web/.next/server/chunks/ssr/[root-of-the-server]__08c912ab._.js +0 -3
  493. package/web/.next/server/chunks/ssr/[root-of-the-server]__08c912ab._.js.map +0 -1
  494. package/web/.next/server/chunks/ssr/[root-of-the-server]__0c5452c3._.js.map +0 -1
  495. package/web/.next/server/chunks/ssr/[root-of-the-server]__563e4faf._.js +0 -4
  496. package/web/.next/server/chunks/ssr/[root-of-the-server]__563e4faf._.js.map +0 -1
  497. package/web/.next/server/chunks/ssr/[root-of-the-server]__69dd3217._.js.map +0 -1
  498. package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js +0 -4
  499. package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js.map +0 -1
  500. package/web/.next/server/chunks/ssr/[root-of-the-server]__7ffd3598._.js.map +0 -1
  501. package/web/.next/server/chunks/ssr/[root-of-the-server]__821a11c1._.js +0 -4
  502. package/web/.next/server/chunks/ssr/[root-of-the-server]__821a11c1._.js.map +0 -1
  503. package/web/.next/server/chunks/ssr/[root-of-the-server]__851f6adb._.js.map +0 -1
  504. package/web/.next/server/chunks/ssr/[root-of-the-server]__98740ee4._.js +0 -4
  505. package/web/.next/server/chunks/ssr/[root-of-the-server]__98740ee4._.js.map +0 -1
  506. package/web/.next/server/chunks/ssr/[root-of-the-server]__b020c17d._.js.map +0 -1
  507. package/web/.next/server/chunks/ssr/[root-of-the-server]__ba9f9e11._.js +0 -4
  508. package/web/.next/server/chunks/ssr/[root-of-the-server]__ba9f9e11._.js.map +0 -1
  509. package/web/.next/server/chunks/ssr/_166f36df._.js +0 -3
  510. package/web/.next/server/chunks/ssr/_166f36df._.js.map +0 -1
  511. package/web/.next/server/chunks/ssr/_407e5985._.js.map +0 -1
  512. package/web/.next/server/chunks/ssr/_4a4709c5._.js +0 -4
  513. package/web/.next/server/chunks/ssr/_4a4709c5._.js.map +0 -1
  514. package/web/.next/server/chunks/ssr/_560f2971._.js +0 -3
  515. package/web/.next/server/chunks/ssr/_560f2971._.js.map +0 -1
  516. package/web/.next/server/chunks/ssr/_a69efc34._.js +0 -3
  517. package/web/.next/server/chunks/ssr/_a69efc34._.js.map +0 -1
  518. package/web/.next/server/chunks/ssr/_cc936cdc._.js +0 -9
  519. package/web/.next/server/chunks/ssr/_cc936cdc._.js.map +0 -1
  520. package/web/.next/server/chunks/ssr/_df737cce._.js +0 -3
  521. package/web/.next/server/chunks/ssr/_df737cce._.js.map +0 -1
  522. package/web/.next/server/chunks/ssr/_f535d854._.js +0 -3
  523. package/web/.next/server/chunks/ssr/_f535d854._.js.map +0 -1
  524. package/web/.next/server/chunks/ssr/_f79e241b._.js +0 -3
  525. package/web/.next/server/chunks/ssr/node_modules__pnpm_1300ae39._.js +0 -3
  526. package/web/.next/server/chunks/ssr/node_modules__pnpm_1300ae39._.js.map +0 -1
  527. package/web/.next/server/chunks/ssr/src_presentation_web_app_features_feature-tree-page-client_tsx_34c5cbbf._.js +0 -10
  528. package/web/.next/server/chunks/ssr/src_presentation_web_app_features_feature-tree-page-client_tsx_34c5cbbf._.js.map +0 -1
  529. package/web/.next/server/chunks/ssr/src_presentation_web_components_common_page-header_index_ts_bdf4db0b._.js +0 -3
  530. package/web/.next/server/chunks/ssr/src_presentation_web_components_common_page-header_index_ts_bdf4db0b._.js.map +0 -1
  531. package/web/.next/static/chunks/20f7cc98a013b11c.js +0 -1
  532. package/web/.next/static/chunks/2f711373a93c5bc3.css +0 -1
  533. package/web/.next/static/chunks/3e393d6a78b2ade4.js +0 -1
  534. package/web/.next/static/chunks/3e56f1c0d6fd597e.js +0 -1
  535. package/web/.next/static/chunks/4cec255f2754e5ec.js +0 -1
  536. package/web/.next/static/chunks/5c6d14681bec3a25.css +0 -1
  537. package/web/.next/static/chunks/5d4a8552d5b6a4a8.js +0 -1
  538. package/web/.next/static/chunks/5ed47e998707b519.js +0 -8
  539. package/web/.next/static/chunks/647140fe96a7c88a.js +0 -1
  540. package/web/.next/static/chunks/7d623e10e05fef54.js +0 -5
  541. package/web/.next/static/chunks/827b3cc73b7a2b34.js +0 -1
  542. package/web/.next/static/chunks/9bca6624c873b56f.js +0 -1
  543. package/web/.next/static/chunks/a825ba5207a10722.js +0 -7
  544. package/web/.next/static/chunks/a83f32d0b3e27624.js +0 -1
  545. package/web/.next/static/chunks/a93af66e94eeb5e0.js +0 -1
  546. package/web/.next/static/chunks/b85e74f20793ec84.js +0 -1
  547. package/web/.next/static/chunks/badd23a63c6342b7.js +0 -3
  548. package/web/.next/static/chunks/dc134f3f58cdf850.js +0 -5
  549. package/web/.next/static/chunks/f998b42b5cddafd6.js +0 -1
  550. /package/web/.next/static/{CTvT0XSlQD3ePT__3Kc2n → POB2JchXPeEvMtK9zhjns}/_buildManifest.js +0 -0
  551. /package/web/.next/static/{CTvT0XSlQD3ePT__3Kc2n → POB2JchXPeEvMtK9zhjns}/_clientMiddlewareManifest.json +0 -0
  552. /package/web/.next/static/{CTvT0XSlQD3ePT__3Kc2n → POB2JchXPeEvMtK9zhjns}/_ssgManifest.js +0 -0
@@ -45,10 +45,10 @@ properties:
45
45
  repositoryId:
46
46
  $ref: UUID.yaml
47
47
  description: ID of the Repository entity this feature belongs to
48
- fast:
49
- type: boolean
50
- default: false
51
- description: When true, SDLC phases were skipped and the feature was implemented directly from the prompt
48
+ mode:
49
+ $ref: FeatureMode.yaml
50
+ default: Regular
51
+ description: "Execution mode determining the workflow: Regular (full SDLC), Fast (direct implementation), or Exploration (iterative prototyping)"
52
52
  push:
53
53
  type: boolean
54
54
  default: false
@@ -83,6 +83,17 @@ properties:
83
83
  worktreePath:
84
84
  type: string
85
85
  description: Absolute path to the git worktree for this feature
86
+ iterationCount:
87
+ type: integer
88
+ minimum: -2147483648
89
+ maximum: 2147483647
90
+ default: 0
91
+ description: Current feedback iteration count in exploration mode (0 when not exploring)
92
+ maxIterations:
93
+ type: integer
94
+ minimum: -2147483648
95
+ maximum: 2147483647
96
+ description: Maximum allowed iterations for exploration mode (only set when mode is Exploration)
86
97
  pr:
87
98
  $ref: PullRequest.yaml
88
99
  description: Pull request data (null until PR created)
@@ -107,7 +118,7 @@ required:
107
118
  - lifecycle
108
119
  - messages
109
120
  - relatedArtifacts
110
- - fast
121
+ - mode
111
122
  - push
112
123
  - openPr
113
124
  - forkAndPr
@@ -116,6 +127,7 @@ required:
116
127
  - enableEvidence
117
128
  - commitEvidence
118
129
  - approvalGates
130
+ - iterationCount
119
131
  allOf:
120
132
  - $ref: SoftDeletableEntity.yaml
121
133
  description: Central entity tracking a piece of work through the SDLC lifecycle (Aggregate Root)
@@ -30,10 +30,6 @@ properties:
30
30
  type: boolean
31
31
  default: false
32
32
  description: Use the built-in React file manager instead of the native OS folder picker
33
- inventory:
34
- type: boolean
35
- default: false
36
- description: Enable the Inventory page showing all repositories and features
37
33
  required:
38
34
  - skills
39
35
  - envDeploy
@@ -42,5 +38,4 @@ required:
42
38
  - adoptBranch
43
39
  - gitRebaseSync
44
40
  - reactFileManager
45
- - inventory
46
41
  description: Feature flag toggles for runtime feature control
@@ -0,0 +1,8 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: FeatureMode.yaml
3
+ type: string
4
+ enum:
5
+ - Regular
6
+ - Fast
7
+ - Exploration
8
+ description: Execution mode determining the feature's workflow and agent graph
@@ -12,6 +12,7 @@ enum:
12
12
  - Maintain
13
13
  - Blocked
14
14
  - Pending
15
+ - Exploring
15
16
  - Deleting
16
17
  - AwaitingUpstream
17
18
  - Archived
@@ -55,10 +55,15 @@ properties:
55
55
  hideCiStatus:
56
56
  type: boolean
57
57
  description: "Hide CI status badges from UI (default: true)"
58
- defaultFastMode:
59
- type: boolean
60
- default: true
61
- description: "Default new features to fast mode (default: true)"
58
+ defaultMode:
59
+ type: string
60
+ default: Fast
61
+ description: "Default feature mode for new features: 'Regular', 'Fast', or 'Exploration' (default: 'Fast')"
62
+ explorationMaxIterations:
63
+ type: integer
64
+ minimum: -2147483648
65
+ maximum: 2147483647
66
+ description: "Maximum exploration feedback iterations (default: 10, 0 = unlimited)"
62
67
  autoArchiveDelayMinutes:
63
68
  type: integer
64
69
  minimum: -2147483648
@@ -70,5 +75,5 @@ required:
70
75
  - ciWatchEnabled
71
76
  - enableEvidence
72
77
  - commitEvidence
73
- - defaultFastMode
78
+ - defaultMode
74
79
  description: Global workflow configuration defaults
@@ -9,7 +9,7 @@
9
9
  * - Application layer depends on this interface
10
10
  * - Infrastructure layer provides concrete implementation
11
11
  */
12
- import type { ApprovalGates, AgentType } from '../../../../domain/generated/output.js';
12
+ import type { ApprovalGates, AgentType, FeatureMode } from '../../../../domain/generated/output.js';
13
13
  /**
14
14
  * Service interface for feature agent background process management.
15
15
  */
@@ -37,7 +37,7 @@ export interface IFeatureAgentProcessService {
37
37
  commitEvidence?: boolean;
38
38
  resumePayload?: string;
39
39
  agentType?: AgentType;
40
- fast?: boolean;
40
+ mode?: FeatureMode;
41
41
  model?: string;
42
42
  resumeReason?: string;
43
43
  }): number;
@@ -1 +1 @@
1
- {"version":3,"file":"feature-agent-process.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/agents/feature-agent-process.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAEvF;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;;;;;;;OAQG;IACH,KAAK,CACH,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;QACR,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GACA,MAAM,CAAC;IAEV;;;;;OAKG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAE9B;;;;;OAKG;IACH,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnD"}
1
+ {"version":3,"file":"feature-agent-process.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/agents/feature-agent-process.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAEpG;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;;;;;;;OAQG;IACH,KAAK,CACH,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;QACR,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,IAAI,CAAC,EAAE,WAAW,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GACA,MAAM,CAAC;IAEV;;;;;OAKG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAE9B;;;;;OAKG;IACH,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnD"}
@@ -22,15 +22,16 @@ export interface ISpecInitializerService {
22
22
  * - tasks.yaml
23
23
  * - feature.yaml
24
24
  *
25
- * When mode is 'fast', only feature.yaml is created (no spec/research/plan/tasks).
25
+ * When mode is 'fast', only feature.yaml and spec.yaml are created.
26
+ * When mode is 'exploration', only feature.yaml is created.
26
27
  *
27
28
  * @param basePath - Directory to create specs/ in (typically the worktree path)
28
29
  * @param slug - Feature slug (kebab-case, e.g., "user-authentication")
29
30
  * @param featureNumber - Sequential feature number (will be zero-padded to 3 digits)
30
31
  * @param description - Feature description for template substitution
31
- * @param mode - Optional mode; when 'fast', only feature.yaml is created
32
+ * @param mode - Optional mode; controls which template files are created
32
33
  * @returns The spec directory path and feature number used
33
34
  */
34
- initialize(basePath: string, slug: string, featureNumber: number, description: string, mode?: 'fast'): Promise<SpecInitializerResult>;
35
+ initialize(basePath: string, slug: string, featureNumber: number, description: string, mode?: 'fast' | 'exploration'): Promise<SpecInitializerResult>;
35
36
  }
36
37
  //# sourceMappingURL=spec-initializer.interface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"spec-initializer.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/spec-initializer.interface.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,qBAAqB;IACpC,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACtC;;;;;;;;;;;;;;;;;;OAkBG;IACH,UAAU,CACR,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACnC"}
1
+ {"version":3,"file":"spec-initializer.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/spec-initializer.interface.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,qBAAqB;IACpC,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACtC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,UAAU,CACR,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,MAAM,GAAG,aAAa,GAC5B,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACnC"}
@@ -22,7 +22,7 @@ import { injectable, inject } from 'tsyringe';
22
22
  import yaml from 'js-yaml';
23
23
  import { readFileSync } from 'node:fs';
24
24
  import { join } from 'node:path';
25
- import { AgentRunStatus } from '../../../domain/generated/output.js';
25
+ import { AgentRunStatus, FeatureMode } from '../../../domain/generated/output.js';
26
26
  import { writeSpecFileAtomic, safeYamlDump, } from '../../../infrastructure/services/agents/feature-agent/nodes/node-helpers.js';
27
27
  import { computeWorktreePath } from '../../../infrastructure/services/ide-launchers/compute-worktree-path.js';
28
28
  let ApproveAgentRunUseCase = class ApproveAgentRunUseCase {
@@ -119,7 +119,7 @@ let ApproveAgentRunUseCase = class ApproveAgentRunUseCase {
119
119
  ...(payload ? { resumePayload: JSON.stringify(payload) } : {}),
120
120
  agentType: run.agentType,
121
121
  ...(run.modelId ? { model: run.modelId } : {}),
122
- ...(feature?.fast ? { fast: true } : {}),
122
+ ...(feature?.mode && feature.mode !== FeatureMode.Regular ? { mode: feature.mode } : {}),
123
123
  });
124
124
  return { approved: true, reason: 'Approved and resumed' };
125
125
  }
@@ -21,7 +21,7 @@ import { injectable, inject } from 'tsyringe';
21
21
  import yaml from 'js-yaml';
22
22
  import { readFileSync } from 'node:fs';
23
23
  import { join } from 'node:path';
24
- import { AgentRunStatus } from '../../../domain/generated/output.js';
24
+ import { AgentRunStatus, FeatureMode } from '../../../domain/generated/output.js';
25
25
  import { writeSpecFileAtomic, safeYamlDump, } from '../../../infrastructure/services/agents/feature-agent/nodes/node-helpers.js';
26
26
  import { recordLifecycleEvent } from '../../../infrastructure/services/agents/feature-agent/phase-timing-context.js';
27
27
  import { computeWorktreePath } from '../../../infrastructure/services/ide-launchers/compute-worktree-path.js';
@@ -135,7 +135,7 @@ let RejectAgentRunUseCase = class RejectAgentRunUseCase {
135
135
  resumePayload: JSON.stringify(rejectionPayload),
136
136
  agentType: run.agentType,
137
137
  ...(run.modelId ? { model: run.modelId } : {}),
138
- ...(feature.fast ? { fast: true } : {}),
138
+ ...(feature.mode !== FeatureMode.Regular ? { mode: feature.mode } : {}),
139
139
  });
140
140
  return {
141
141
  rejected: true,
@@ -1 +1 @@
1
- {"version":3,"file":"adopt-branch.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/features/adopt-branch.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAe,MAAM,qCAAqC,CAAC;AAEhF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAC1G,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oEAAoE,CAAC;AAChH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAClG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yDAAyD,CAAC;AAG7F,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;CAClB;AAKD,qBACa,kBAAkB;IAG3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAEhC,OAAO,CAAC,QAAQ,CAAC,YAAY;gBANZ,WAAW,EAAE,kBAAkB,EAE/B,cAAc,EAAE,qBAAqB,EAErC,eAAe,EAAE,gBAAgB,EAEjC,YAAY,EAAE,aAAa;IAGxC,OAAO,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA8FlE;;;;OAIG;YACW,gBAAgB;IAiB9B;;;;OAIG;YACW,iBAAiB;IA4B/B;;;OAGG;YACW,iBAAiB;CAuBhC"}
1
+ {"version":3,"file":"adopt-branch.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/features/adopt-branch.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAe,MAAM,qCAAqC,CAAC;AAEhF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAC1G,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oEAAoE,CAAC;AAChH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAClG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yDAAyD,CAAC;AAG7F,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;CAClB;AAKD,qBACa,kBAAkB;IAG3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAEhC,OAAO,CAAC,QAAQ,CAAC,YAAY;gBANZ,WAAW,EAAE,kBAAkB,EAE/B,cAAc,EAAE,qBAAqB,EAErC,eAAe,EAAE,gBAAgB,EAEjC,YAAY,EAAE,aAAa;IAGxC,OAAO,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA+FlE;;;;OAIG;YACW,gBAAgB;IAiB9B;;;;OAIG;YACW,iBAAiB;IA4B/B;;;OAGG;YACW,iBAAiB;CAuBhC"}
@@ -23,7 +23,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
23
23
  };
24
24
  import { injectable, inject } from 'tsyringe';
25
25
  import { randomUUID } from 'node:crypto';
26
- import { SdlcLifecycle, PrStatus } from '../../../domain/generated/output.js';
26
+ import { SdlcLifecycle, PrStatus, FeatureMode } from '../../../domain/generated/output.js';
27
27
  import { deriveName, deriveSlug } from './branch-name-utils.js';
28
28
  /** Branches that must not be adopted as features. */
29
29
  const PROTECTED_BRANCHES = new Set(['main', 'master']);
@@ -89,7 +89,8 @@ let AdoptBranchUseCase = class AdoptBranchUseCase {
89
89
  lifecycle,
90
90
  messages: [],
91
91
  relatedArtifacts: [],
92
- fast: false,
92
+ mode: FeatureMode.Regular,
93
+ iterationCount: 0,
93
94
  push: false,
94
95
  openPr: hasOpenPr,
95
96
  forkAndPr: false,
@@ -27,7 +27,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
27
27
  return function (target, key) { decorator(target, key, paramIndex); }
28
28
  };
29
29
  import { injectable, inject } from 'tsyringe';
30
- import { SdlcLifecycle } from '../../../domain/generated/output.js';
30
+ import { SdlcLifecycle, FeatureMode } from '../../../domain/generated/output.js';
31
31
  import { POST_IMPLEMENTATION } from '../../../domain/lifecycle-gates.js';
32
32
  let CheckAndUnblockFeaturesUseCase = class CheckAndUnblockFeaturesUseCase {
33
33
  featureRepo;
@@ -69,7 +69,7 @@ let CheckAndUnblockFeaturesUseCase = class CheckAndUnblockFeaturesUseCase {
69
69
  ciWatchEnabled: child.ciWatchEnabled,
70
70
  enableEvidence: child.enableEvidence,
71
71
  commitEvidence: child.commitEvidence,
72
- ...(child.fast ? { fast: true } : {}),
72
+ ...(child.mode !== FeatureMode.Regular ? { mode: child.mode } : {}),
73
73
  });
74
74
  }
75
75
  }
@@ -1 +1 @@
1
- {"version":3,"file":"create-feature.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/use-cases/features/create/create-feature.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AAMtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oEAAoE,CAAC;AAC7G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8DAA8D,CAAC;AACrG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iEAAiE,CAAC;AACnH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gEAAgE,CAAC;AAC1G,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8DAA8D,CAAC;AAC5G,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uEAAuE,CAAC;AACnH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4DAA4D,CAAC;AAChG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2DAA2D,CAAC;AAGjG,OAAO,EAAE,wBAAwB,EAAE,MAAM,mEAAmE,CAAC;AAC7G,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE9F,qBACa,oBAAoB;IAG7B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAEhC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAEhC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAElC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAElC,OAAO,CAAC,QAAQ,CAAC,cAAc;gBApBd,WAAW,EAAE,kBAAkB,EAE/B,eAAe,EAAE,gBAAgB,EAEjC,YAAY,EAAE,2BAA2B,EAEzC,aAAa,EAAE,mBAAmB,EAElC,eAAe,EAAE,uBAAuB,EAExC,iBAAiB,EAAE,iBAAiB,EAEpC,YAAY,EAAE,YAAY,EAE1B,cAAc,EAAE,qBAAqB,EAErC,YAAY,EAAE,aAAa,EAE3B,iBAAiB,EAAE,wBAAwB,EAE3C,cAAc,EAAE,eAAe;IAGlD;;;OAGG;IACG,OAAO,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAMtE;;;;OAIG;IACG,YAAY,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAwI1E;;;OAGG;IACG,kBAAkB,CACtB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,kBAAkB,EACzB,WAAW,EAAE,OAAO,GACnB,OAAO,CAAC;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,OAAO,CAAA;KAAE,CAAC;CAmJ1D"}
1
+ {"version":3,"file":"create-feature.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/use-cases/features/create/create-feature.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AAOtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oEAAoE,CAAC;AAC7G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8DAA8D,CAAC;AACrG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iEAAiE,CAAC;AACnH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gEAAgE,CAAC;AAC1G,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8DAA8D,CAAC;AAC5G,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uEAAuE,CAAC;AACnH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4DAA4D,CAAC;AAChG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2DAA2D,CAAC;AAGjG,OAAO,EAAE,wBAAwB,EAAE,MAAM,mEAAmE,CAAC;AAC7G,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE9F,qBACa,oBAAoB;IAG7B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAEhC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAEhC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAElC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAElC,OAAO,CAAC,QAAQ,CAAC,cAAc;gBApBd,WAAW,EAAE,kBAAkB,EAE/B,eAAe,EAAE,gBAAgB,EAEjC,YAAY,EAAE,2BAA2B,EAEzC,aAAa,EAAE,mBAAmB,EAElC,eAAe,EAAE,uBAAuB,EAExC,iBAAiB,EAAE,iBAAiB,EAEpC,YAAY,EAAE,YAAY,EAE1B,cAAc,EAAE,qBAAqB,EAErC,YAAY,EAAE,aAAa,EAE3B,iBAAiB,EAAE,wBAAwB,EAE3C,cAAc,EAAE,eAAe;IAGlD;;;OAGG;IACG,OAAO,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAMtE;;;;OAIG;IACG,YAAY,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAgJ1E;;;OAGG;IACG,kBAAkB,CACtB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,kBAAkB,EACzB,WAAW,EAAE,OAAO,GACnB,OAAO,CAAC;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,OAAO,CAAA;KAAE,CAAC;CAuJ1D"}
@@ -29,7 +29,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
29
29
  };
30
30
  import { injectable, inject } from 'tsyringe';
31
31
  import { randomUUID } from 'node:crypto';
32
- import { SdlcLifecycle, AgentRunStatus, } from '../../../../domain/generated/output.js';
32
+ import { SdlcLifecycle, AgentRunStatus, FeatureMode, } from '../../../../domain/generated/output.js';
33
33
  import { getSettings } from '../../../../infrastructure/services/settings.service.js';
34
34
  import { POST_IMPLEMENTATION } from '../../../../domain/lifecycle-gates.js';
35
35
  import { AttachmentStorageService } from '../../../../infrastructure/services/attachment-storage.service.js';
@@ -75,9 +75,12 @@ let CreateFeatureUseCase = class CreateFeatureUseCase {
75
75
  * No AI calls, no git operations — just DB writes.
76
76
  */
77
77
  async createRecord(input) {
78
- let initialLifecycle = input.fast
79
- ? SdlcLifecycle.Implementation
80
- : SdlcLifecycle.Requirements;
78
+ const effectiveMode = input.mode ?? FeatureMode.Regular;
79
+ let initialLifecycle = effectiveMode === FeatureMode.Exploration
80
+ ? SdlcLifecycle.Exploring
81
+ : effectiveMode === FeatureMode.Fast
82
+ ? SdlcLifecycle.Implementation
83
+ : SdlcLifecycle.Requirements;
81
84
  let shouldSpawn = true;
82
85
  let effectiveRepoPath = input.repositoryPath.replace(/\\/g, '/');
83
86
  // Pending flag takes precedence — user explicitly defers agent execution.
@@ -150,7 +153,7 @@ let CreateFeatureUseCase = class CreateFeatureUseCase {
150
153
  lifecycle: initialLifecycle,
151
154
  messages: [],
152
155
  relatedArtifacts: [],
153
- fast: input.fast ?? false,
156
+ mode: effectiveMode,
154
157
  push: input.push ?? false,
155
158
  openPr: input.openPr ?? false,
156
159
  forkAndPr: input.forkAndPr ?? false,
@@ -163,6 +166,10 @@ let CreateFeatureUseCase = class CreateFeatureUseCase {
163
166
  allowPlan: false,
164
167
  allowMerge: false,
165
168
  },
169
+ iterationCount: 0,
170
+ ...(effectiveMode === FeatureMode.Exploration && {
171
+ maxIterations: getSettings().workflow.explorationMaxIterations ?? 10,
172
+ }),
166
173
  agentRunId: runId,
167
174
  specPath: '',
168
175
  repositoryId: repository.id,
@@ -227,7 +234,11 @@ let CreateFeatureUseCase = class CreateFeatureUseCase {
227
234
  const worktreePath = this.worktreeService.getWorktreePath(effectiveRepoPath, branch);
228
235
  await this.worktreeService.create(effectiveRepoPath, branch, worktreePath, defaultBranch);
229
236
  // Initialize spec directory — full user input goes into spec.yaml as-is
230
- const { specDir } = await this.specInitializer.initialize(worktreePath, slug, featureNumber, input.userInput, input.fast ? 'fast' : undefined);
237
+ const { specDir } = await this.specInitializer.initialize(worktreePath, slug, featureNumber, input.userInput, feature.mode === FeatureMode.Fast
238
+ ? 'fast'
239
+ : feature.mode === FeatureMode.Exploration
240
+ ? 'exploration'
241
+ : undefined);
231
242
  // Commit pending attachments if sessionId was provided (web UI flow)
232
243
  let committedAttachments = input.attachments;
233
244
  if (input.sessionId) {
@@ -305,7 +316,7 @@ let CreateFeatureUseCase = class CreateFeatureUseCase {
305
316
  ciWatchEnabled: input.ciWatchEnabled ?? true,
306
317
  enableEvidence: input.enableEvidence ?? false,
307
318
  commitEvidence: input.commitEvidence ?? false,
308
- ...(input.fast ? { fast: true } : {}),
319
+ ...(feature.mode !== FeatureMode.Regular ? { mode: feature.mode } : {}),
309
320
  ...(input.agentType ? { agentType: input.agentType } : {}),
310
321
  ...(input.model ? { model: input.model } : {}),
311
322
  });
@@ -1,4 +1,5 @@
1
1
  import type { ApprovalGates, Attachment, Feature } from '../../../../domain/generated/output.js';
2
+ import { type FeatureMode } from '../../../../domain/generated/output.js';
2
3
  export interface CreateFeatureInput {
3
4
  userInput: string;
4
5
  repositoryPath: string;
@@ -11,8 +12,8 @@ export interface CreateFeatureInput {
11
12
  name?: string;
12
13
  /** Pre-supplied description (skips AI metadata extraction for description). */
13
14
  description?: string;
14
- /** When true, skip SDLC phases and implement directly from the user prompt. */
15
- fast?: boolean;
15
+ /** Execution mode: Regular (full SDLC), Fast (direct implementation), or Exploration (iterative prototyping). */
16
+ mode?: FeatureMode;
16
17
  /** Fork repo and create PR to upstream at merge time (default: false). */
17
18
  forkAndPr?: boolean;
18
19
  /** Commit specs/evidences into the repo (default: true, auto-false when forkAndPr). */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/use-cases/features/create/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AAEjG,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,0EAA0E;IAC1E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uFAAuF;IACvF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,2DAA2D;IAC3D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,wEAAwE;IACxE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,uEAAuE;IACvE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4FAA4F;IAC5F,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qFAAqF;IACrF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,8FAA8F;IAC9F,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,8EAA8E;AAC9E,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,yEAAyE;IACzE,WAAW,EAAE,OAAO,CAAC;CACtB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/use-cases/features/create/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AACjG,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAE1E,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iHAAiH;IACjH,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uFAAuF;IACvF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,2DAA2D;IAC3D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,wEAAwE;IACxE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,uEAAuE;IACvE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4FAA4F;IAC5F,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qFAAqF;IACrF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,8FAA8F;IAC9F,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,8EAA8E;AAC9E,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,yEAAyE;IACzE,WAAW,EAAE,OAAO,CAAC;CACtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"delete-feature.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/features/delete-feature.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAEnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAC1G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAClG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8DAA8D,CAAC;AAChH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6DAA6D,CAAC;AACvG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yDAAyD,CAAC;AAE7F,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBACa,oBAAoB;IAEC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC9B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAE5D,OAAO,CAAC,QAAQ,CAAC,cAAc;IACA,OAAO,CAAC,QAAQ,CAAC,OAAO;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBALP,WAAW,EAAE,kBAAkB,EACjC,eAAe,EAAE,gBAAgB,EAE7D,cAAc,EAAE,2BAA2B,EACZ,OAAO,EAAE,mBAAmB,EAClC,YAAY,EAAE,aAAa;IAGjE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IA8BlF,oGAAoG;YACtF,gBAAgB;IAW9B,0DAA0D;YAC5C,iBAAiB;IAQ/B,6DAA6D;YAC/C,yBAAyB;IAevC,sDAAsD;YACxC,sBAAsB;IAYpC,6EAA6E;YAC/D,oBAAoB;CA+EnC"}
1
+ {"version":3,"file":"delete-feature.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/features/delete-feature.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAEnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAC1G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAClG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8DAA8D,CAAC;AAChH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6DAA6D,CAAC;AACvG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yDAAyD,CAAC;AAE7F,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBACa,oBAAoB;IAEC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC9B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAE5D,OAAO,CAAC,QAAQ,CAAC,cAAc;IACA,OAAO,CAAC,QAAQ,CAAC,OAAO;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBALP,WAAW,EAAE,kBAAkB,EACjC,eAAe,EAAE,gBAAgB,EAE7D,cAAc,EAAE,2BAA2B,EACZ,OAAO,EAAE,mBAAmB,EAClC,YAAY,EAAE,aAAa;IAGjE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IA8BlF,oGAAoG;YACtF,gBAAgB;IAW9B,0DAA0D;YAC5C,iBAAiB;IAQ/B,6DAA6D;YAC/C,yBAAyB;IAevC,sDAAsD;YACxC,sBAAsB;IAYpC,6EAA6E;YAC/D,oBAAoB;CAyFnC"}
@@ -25,6 +25,9 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
25
25
  return function (target, key) { decorator(target, key, paramIndex); }
26
26
  };
27
27
  import { injectable, inject } from 'tsyringe';
28
+ import { homedir } from 'node:os';
29
+ import { join } from 'node:path';
30
+ import { unlink } from 'node:fs/promises';
28
31
  import { AgentRunStatus, PrStatus, SdlcLifecycle } from '../../../domain/generated/output.js';
29
32
  let DeleteFeatureUseCase = class DeleteFeatureUseCase {
30
33
  featureRepo;
@@ -123,6 +126,16 @@ let DeleteFeatureUseCase = class DeleteFeatureUseCase {
123
126
  }
124
127
  await this.runRepo.updateStatus(run.id, AgentRunStatus.cancelled);
125
128
  }
129
+ // Clean up checkpoint database file (used by LangGraph for state persistence)
130
+ if (run?.threadId) {
131
+ const checkpointPath = join(homedir(), '.shep', 'checkpoints', `${run.threadId}.db`);
132
+ try {
133
+ await unlink(checkpointPath);
134
+ }
135
+ catch {
136
+ // Checkpoint file may not exist or already be removed
137
+ }
138
+ }
126
139
  }
127
140
  // Cleanup worktree and branches directly using the feature data we already
128
141
  // have (CleanupFeatureWorktreeUseCase.execute() would fail because
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Promote Exploration Use Case
3
+ *
4
+ * Transitions an exploration feature to Regular or Fast mode via in-place
5
+ * mode transition. Changes the mode field, transitions lifecycle from
6
+ * Exploring to Requirements (regular) or Implementation (fast), optionally
7
+ * scaffolds missing spec YAMLs when promoting to regular, and spawns the
8
+ * appropriate agent graph.
9
+ *
10
+ * Business Rules:
11
+ * - Feature must be in Exploration mode and Exploring lifecycle
12
+ * - Promotion preserves existing worktree and branch (prototype code)
13
+ * - Promoting to Regular scaffolds missing spec YAMLs (spec, research, plan, tasks)
14
+ * - Promoting to Fast does not scaffold spec YAMLs
15
+ * - Spawns the appropriate agent graph after transition
16
+ */
17
+ import type { Feature } from '../../../../domain/generated/output.js';
18
+ import { FeatureMode } from '../../../../domain/generated/output.js';
19
+ import type { IFeatureRepository } from '../../../ports/output/repositories/feature-repository.interface.js';
20
+ import type { IFeatureAgentProcessService } from '../../../ports/output/agents/feature-agent-process.interface.js';
21
+ import type { IAgentRunRepository } from '../../../ports/output/agents/agent-run-repository.interface.js';
22
+ import type { ISpecInitializerService } from '../../../ports/output/services/spec-initializer.interface.js';
23
+ import type { IWorktreeService } from '../../../ports/output/services/worktree-service.interface.js';
24
+ export interface PromoteExplorationInput {
25
+ featureId: string;
26
+ targetMode: FeatureMode.Regular | FeatureMode.Fast;
27
+ }
28
+ export interface PromoteExplorationResult {
29
+ feature: Feature;
30
+ }
31
+ export declare class PromoteExplorationUseCase {
32
+ private readonly featureRepo;
33
+ private readonly processService;
34
+ private readonly runRepo;
35
+ private readonly specInitializer;
36
+ private readonly worktreeService;
37
+ constructor(featureRepo: IFeatureRepository, processService: IFeatureAgentProcessService, runRepo: IAgentRunRepository, specInitializer: ISpecInitializerService, worktreeService: IWorktreeService);
38
+ execute(input: PromoteExplorationInput): Promise<PromoteExplorationResult>;
39
+ }
40
+ //# sourceMappingURL=promote-exploration.use-case.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promote-exploration.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/use-cases/features/promote/promote-exploration.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AACtE,OAAO,EAAiB,WAAW,EAAkB,MAAM,wCAAwC,CAAC;AAEpG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oEAAoE,CAAC;AAC7G,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iEAAiE,CAAC;AACnH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gEAAgE,CAAC;AAC1G,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8DAA8D,CAAC;AAC5G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8DAA8D,CAAC;AAGrG,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;CACpD;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,qBACa,yBAAyB;IAGlC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAExB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAEhC,OAAO,CAAC,QAAQ,CAAC,eAAe;gBARf,WAAW,EAAE,kBAAkB,EAE/B,cAAc,EAAE,2BAA2B,EAE3C,OAAO,EAAE,mBAAmB,EAE5B,eAAe,EAAE,uBAAuB,EAExC,eAAe,EAAE,gBAAgB;IAG9C,OAAO,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,wBAAwB,CAAC;CAiGjF"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Promote Exploration Use Case
3
+ *
4
+ * Transitions an exploration feature to Regular or Fast mode via in-place
5
+ * mode transition. Changes the mode field, transitions lifecycle from
6
+ * Exploring to Requirements (regular) or Implementation (fast), optionally
7
+ * scaffolds missing spec YAMLs when promoting to regular, and spawns the
8
+ * appropriate agent graph.
9
+ *
10
+ * Business Rules:
11
+ * - Feature must be in Exploration mode and Exploring lifecycle
12
+ * - Promotion preserves existing worktree and branch (prototype code)
13
+ * - Promoting to Regular scaffolds missing spec YAMLs (spec, research, plan, tasks)
14
+ * - Promoting to Fast does not scaffold spec YAMLs
15
+ * - Spawns the appropriate agent graph after transition
16
+ */
17
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
18
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
19
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
20
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
21
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
22
+ };
23
+ var __metadata = (this && this.__metadata) || function (k, v) {
24
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
25
+ };
26
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
27
+ return function (target, key) { decorator(target, key, paramIndex); }
28
+ };
29
+ import { injectable, inject } from 'tsyringe';
30
+ import { randomUUID } from 'node:crypto';
31
+ import { SdlcLifecycle, FeatureMode, AgentRunStatus } from '../../../../domain/generated/output.js';
32
+ import { EXPLORING_TRANSITIONS } from '../../../../domain/lifecycle-gates.js';
33
+ import { getSettings } from '../../../../infrastructure/services/settings.service.js';
34
+ let PromoteExplorationUseCase = class PromoteExplorationUseCase {
35
+ featureRepo;
36
+ processService;
37
+ runRepo;
38
+ specInitializer;
39
+ worktreeService;
40
+ constructor(featureRepo, processService, runRepo, specInitializer, worktreeService) {
41
+ this.featureRepo = featureRepo;
42
+ this.processService = processService;
43
+ this.runRepo = runRepo;
44
+ this.specInitializer = specInitializer;
45
+ this.worktreeService = worktreeService;
46
+ }
47
+ async execute(input) {
48
+ const feature = (await this.featureRepo.findById(input.featureId)) ??
49
+ (await this.featureRepo.findByIdPrefix(input.featureId));
50
+ if (!feature) {
51
+ throw new Error(`Feature not found: ${input.featureId}`);
52
+ }
53
+ if (feature.mode !== FeatureMode.Exploration) {
54
+ throw new Error(`Feature "${feature.name}" is not in Exploration mode (current: ${feature.mode}). Only exploration features can be promoted.`);
55
+ }
56
+ if (feature.lifecycle !== SdlcLifecycle.Exploring) {
57
+ throw new Error(`Feature "${feature.name}" is not in Exploring lifecycle (current: ${feature.lifecycle}). Only features in Exploring state can be promoted.`);
58
+ }
59
+ const targetLifecycle = input.targetMode === FeatureMode.Fast
60
+ ? SdlcLifecycle.Implementation
61
+ : SdlcLifecycle.Requirements;
62
+ // Validate the transition is allowed
63
+ if (!EXPLORING_TRANSITIONS.has(targetLifecycle)) {
64
+ throw new Error(`Invalid promotion target lifecycle: ${targetLifecycle}`);
65
+ }
66
+ // Scaffold missing spec YAMLs when promoting to regular mode
67
+ if (input.targetMode === FeatureMode.Regular && feature.specPath) {
68
+ const worktreePath = feature.worktreePath ??
69
+ this.worktreeService.getWorktreePath(feature.repositoryPath, feature.branch);
70
+ await this.specInitializer.initialize(worktreePath, feature.slug, 0, // Feature number hint — resolveNextNumber will use existing dir
71
+ feature.userQuery);
72
+ }
73
+ // Create a new agent run for the promoted mode
74
+ const settings = getSettings();
75
+ const runId = randomUUID();
76
+ const agentRun = {
77
+ id: runId,
78
+ agentType: settings.agent.type,
79
+ agentName: 'feature-agent',
80
+ status: AgentRunStatus.pending,
81
+ prompt: feature.userQuery,
82
+ threadId: randomUUID(),
83
+ featureId: feature.id,
84
+ repositoryPath: feature.repositoryPath,
85
+ createdAt: new Date().toISOString(),
86
+ updatedAt: new Date().toISOString(),
87
+ };
88
+ await this.runRepo.create(agentRun);
89
+ // Update the feature: mode, lifecycle, and agent run reference
90
+ const updatedFeature = {
91
+ ...feature,
92
+ mode: input.targetMode,
93
+ lifecycle: targetLifecycle,
94
+ agentRunId: runId,
95
+ updatedAt: new Date(),
96
+ };
97
+ await this.featureRepo.update(updatedFeature);
98
+ // Spawn the appropriate agent graph
99
+ const worktreePath = feature.worktreePath ??
100
+ this.worktreeService.getWorktreePath(feature.repositoryPath, feature.branch);
101
+ this.processService.spawn(feature.id, runId, feature.repositoryPath, feature.specPath ?? '', worktreePath, {
102
+ approvalGates: feature.approvalGates,
103
+ threadId: agentRun.threadId,
104
+ push: feature.push,
105
+ openPr: feature.openPr,
106
+ forkAndPr: feature.forkAndPr,
107
+ commitSpecs: feature.commitSpecs,
108
+ ciWatchEnabled: feature.ciWatchEnabled,
109
+ enableEvidence: feature.enableEvidence,
110
+ commitEvidence: feature.commitEvidence,
111
+ ...(input.targetMode !== FeatureMode.Regular ? { mode: input.targetMode } : {}),
112
+ });
113
+ return { feature: updatedFeature };
114
+ }
115
+ };
116
+ PromoteExplorationUseCase = __decorate([
117
+ injectable(),
118
+ __param(0, inject('IFeatureRepository')),
119
+ __param(1, inject('IFeatureAgentProcessService')),
120
+ __param(2, inject('IAgentRunRepository')),
121
+ __param(3, inject('ISpecInitializerService')),
122
+ __param(4, inject('IWorktreeService')),
123
+ __metadata("design:paramtypes", [Object, Object, Object, Object, Object])
124
+ ], PromoteExplorationUseCase);
125
+ export { PromoteExplorationUseCase };
@@ -18,7 +18,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
18
18
  };
19
19
  import { injectable, inject } from 'tsyringe';
20
20
  import { randomUUID } from 'node:crypto';
21
- import { AgentRunStatus } from '../../../domain/generated/output.js';
21
+ import { AgentRunStatus, FeatureMode } from '../../../domain/generated/output.js';
22
22
  const RESUMABLE_STATUSES = new Set([
23
23
  AgentRunStatus.interrupted,
24
24
  AgentRunStatus.failed,
@@ -115,7 +115,7 @@ let ResumeFeatureUseCase = class ResumeFeatureUseCase {
115
115
  enableEvidence: feature.enableEvidence,
116
116
  commitEvidence: feature.commitEvidence,
117
117
  agentType: lastRun.agentType,
118
- ...(feature.fast ? { fast: true } : {}),
118
+ ...(feature.mode !== FeatureMode.Regular ? { mode: feature.mode } : {}),
119
119
  ...(lastRun.modelId ? { model: lastRun.modelId } : {}),
120
120
  resumeReason: lastRun.status,
121
121
  });
@@ -1 +1 @@
1
- {"version":3,"file":"start-feature.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/features/start-feature.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAE7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAC1G,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6DAA6D,CAAC;AACvG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8DAA8D,CAAC;AAChH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAGlG,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,qBACa,mBAAmB;IAG5B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAExB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,eAAe;gBANf,WAAW,EAAE,kBAAkB,EAE/B,OAAO,EAAE,mBAAmB,EAE5B,cAAc,EAAE,2BAA2B,EAE3C,eAAe,EAAE,gBAAgB;IAG9C,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAyG9D"}
1
+ {"version":3,"file":"start-feature.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/features/start-feature.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAE7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAC1G,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6DAA6D,CAAC;AACvG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8DAA8D,CAAC;AAChH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAGlG,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,qBACa,mBAAmB;IAG5B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAExB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,eAAe;gBANf,WAAW,EAAE,kBAAkB,EAE/B,OAAO,EAAE,mBAAmB,EAE5B,cAAc,EAAE,2BAA2B,EAE3C,eAAe,EAAE,gBAAgB;IAG9C,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;CA4G9D"}
@@ -18,7 +18,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
18
18
  return function (target, key) { decorator(target, key, paramIndex); }
19
19
  };
20
20
  import { injectable, inject } from 'tsyringe';
21
- import { SdlcLifecycle } from '../../../domain/generated/output.js';
21
+ import { SdlcLifecycle, FeatureMode } from '../../../domain/generated/output.js';
22
22
  import { POST_IMPLEMENTATION } from '../../../domain/lifecycle-gates.js';
23
23
  let StartFeatureUseCase = class StartFeatureUseCase {
24
24
  featureRepo;
@@ -71,7 +71,9 @@ let StartFeatureUseCase = class StartFeatureUseCase {
71
71
  }
72
72
  }
73
73
  // Check parent gate if feature has a parent
74
- let targetLifecycle = resolved.fast ? SdlcLifecycle.Implementation : SdlcLifecycle.Requirements;
74
+ let targetLifecycle = resolved.mode === FeatureMode.Fast
75
+ ? SdlcLifecycle.Implementation
76
+ : SdlcLifecycle.Requirements;
75
77
  let shouldSpawn = true;
76
78
  if (resolved.parentId) {
77
79
  const parent = await this.featureRepo.findById(resolved.parentId);
@@ -103,7 +105,7 @@ let StartFeatureUseCase = class StartFeatureUseCase {
103
105
  enableEvidence: resolved.enableEvidence,
104
106
  commitEvidence: resolved.commitEvidence,
105
107
  agentType: agentRun.agentType,
106
- ...(resolved.fast ? { fast: true } : {}),
108
+ ...(resolved.mode !== FeatureMode.Regular ? { mode: resolved.mode } : {}),
107
109
  ...(agentRun.modelId ? { model: agentRun.modelId } : {}),
108
110
  });
109
111
  }