@shepai/cli 1.169.1 → 1.170.0-pr513.cff27cb

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 (546) hide show
  1. package/apis/json-schema/Feature.yaml +27 -5
  2. package/apis/json-schema/FeatureMode.yaml +8 -0
  3. package/apis/json-schema/SdlcLifecycle.yaml +1 -0
  4. package/apis/json-schema/SkillInjectionConfig.yaml +17 -0
  5. package/apis/json-schema/SkillSource.yaml +21 -0
  6. package/apis/json-schema/SkillSourceType.yaml +7 -0
  7. package/apis/json-schema/WorkflowConfig.yaml +13 -5
  8. package/dist/packages/core/src/application/ports/output/agents/feature-agent-process.interface.d.ts +2 -2
  9. package/dist/packages/core/src/application/ports/output/agents/feature-agent-process.interface.d.ts.map +1 -1
  10. package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts +8 -0
  11. package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts.map +1 -1
  12. package/dist/packages/core/src/application/ports/output/services/index.d.ts +1 -0
  13. package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
  14. package/dist/packages/core/src/application/ports/output/services/skill-injector.interface.d.ts +39 -0
  15. package/dist/packages/core/src/application/ports/output/services/skill-injector.interface.d.ts.map +1 -0
  16. package/dist/packages/core/src/application/ports/output/services/skill-injector.interface.js +8 -0
  17. package/dist/packages/core/src/application/ports/output/services/spec-initializer.interface.d.ts +4 -3
  18. package/dist/packages/core/src/application/ports/output/services/spec-initializer.interface.d.ts.map +1 -1
  19. package/dist/packages/core/src/application/use-cases/agents/approve-agent-run.use-case.js +2 -2
  20. package/dist/packages/core/src/application/use-cases/agents/reject-agent-run.use-case.js +2 -2
  21. package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.d.ts.map +1 -1
  22. package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.js +4 -2
  23. package/dist/packages/core/src/application/use-cases/features/check-and-unblock-features.use-case.js +2 -2
  24. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts +3 -1
  25. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts.map +1 -1
  26. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.js +40 -10
  27. package/dist/packages/core/src/application/use-cases/features/create/types.d.ts +5 -2
  28. package/dist/packages/core/src/application/use-cases/features/create/types.d.ts.map +1 -1
  29. package/dist/packages/core/src/application/use-cases/features/delete-feature.use-case.d.ts.map +1 -1
  30. package/dist/packages/core/src/application/use-cases/features/delete-feature.use-case.js +13 -0
  31. package/dist/packages/core/src/application/use-cases/features/promote/promote-exploration.use-case.d.ts +40 -0
  32. package/dist/packages/core/src/application/use-cases/features/promote/promote-exploration.use-case.d.ts.map +1 -0
  33. package/dist/packages/core/src/application/use-cases/features/promote/promote-exploration.use-case.js +125 -0
  34. package/dist/packages/core/src/application/use-cases/features/rebase-feature-on-main.use-case.d.ts.map +1 -1
  35. package/dist/packages/core/src/application/use-cases/features/rebase-feature-on-main.use-case.js +23 -2
  36. package/dist/packages/core/src/application/use-cases/features/resume-feature.use-case.js +2 -2
  37. package/dist/packages/core/src/application/use-cases/features/start-feature.use-case.d.ts.map +1 -1
  38. package/dist/packages/core/src/application/use-cases/features/start-feature.use-case.js +5 -3
  39. package/dist/packages/core/src/domain/factories/settings-defaults.factory.d.ts.map +1 -1
  40. package/dist/packages/core/src/domain/factories/settings-defaults.factory.js +57 -2
  41. package/dist/packages/core/src/domain/generated/output.d.ts +72 -4
  42. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  43. package/dist/packages/core/src/domain/generated/output.js +12 -0
  44. package/dist/packages/core/src/domain/lifecycle-gates.d.ts +21 -6
  45. package/dist/packages/core/src/domain/lifecycle-gates.d.ts.map +1 -1
  46. package/dist/packages/core/src/domain/lifecycle-gates.js +25 -6
  47. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  48. package/dist/packages/core/src/infrastructure/di/container.js +7 -0
  49. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts +5 -1
  50. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts.map +1 -1
  51. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.js +16 -4
  52. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +4 -1
  53. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
  54. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +34 -2
  55. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/051-replace-fast-with-mode.d.ts +19 -0
  56. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/051-replace-fast-with-mode.d.ts.map +1 -0
  57. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/051-replace-fast-with-mode.js +46 -0
  58. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/052-replace-default-fast-mode-with-default-mode.d.ts +17 -0
  59. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/052-replace-default-fast-mode-with-default-mode.d.ts.map +1 -0
  60. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/052-replace-default-fast-mode-with-default-mode.js +37 -0
  61. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-exploration-max-iterations.d.ts +12 -0
  62. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-exploration-max-iterations.d.ts.map +1 -0
  63. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-exploration-max-iterations.js +17 -0
  64. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-skill-injection-config.d.ts +15 -0
  65. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-skill-injection-config.d.ts.map +1 -0
  66. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-skill-injection-config.js +23 -0
  67. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/054-add-injected-skills-to-features.d.ts +11 -0
  68. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/054-add-injected-skills-to-features.d.ts.map +1 -0
  69. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/054-add-injected-skills-to-features.js +19 -0
  70. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.d.ts.map +1 -1
  71. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.js +13 -7
  72. package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.js +3 -3
  73. package/dist/packages/core/src/infrastructure/services/agents/conflict-resolution/conflict-resolution.prompt.d.ts +21 -0
  74. package/dist/packages/core/src/infrastructure/services/agents/conflict-resolution/conflict-resolution.prompt.d.ts.map +1 -1
  75. package/dist/packages/core/src/infrastructure/services/agents/conflict-resolution/conflict-resolution.prompt.js +61 -0
  76. package/dist/packages/core/src/infrastructure/services/agents/conflict-resolution/conflict-resolution.service.d.ts +16 -0
  77. package/dist/packages/core/src/infrastructure/services/agents/conflict-resolution/conflict-resolution.service.d.ts.map +1 -1
  78. package/dist/packages/core/src/infrastructure/services/agents/conflict-resolution/conflict-resolution.service.js +47 -4
  79. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/exploration-agent-graph.d.ts +362 -0
  80. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/exploration-agent-graph.d.ts.map +1 -0
  81. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/exploration-agent-graph.js +72 -0
  82. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.d.ts +20 -0
  83. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.d.ts.map +1 -1
  84. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts +68 -0
  85. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts.map +1 -1
  86. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.d.ts +2 -2
  87. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.d.ts.map +1 -1
  88. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.js +3 -3
  89. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts +2 -2
  90. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts.map +1 -1
  91. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.js +19 -8
  92. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/lifecycle-context.d.ts.map +1 -1
  93. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/lifecycle-context.js +1 -0
  94. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/apply-feedback.node.d.ts +18 -0
  95. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/apply-feedback.node.d.ts.map +1 -0
  96. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/apply-feedback.node.js +52 -0
  97. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.d.ts.map +1 -1
  98. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.js +39 -20
  99. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts.map +1 -1
  100. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.js +1 -0
  101. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/apply-feedback.prompt.d.ts +24 -0
  102. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/apply-feedback.prompt.d.ts.map +1 -0
  103. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/apply-feedback.prompt.js +38 -0
  104. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/prototype-generate.prompt.d.ts +31 -0
  105. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/prototype-generate.prompt.d.ts.map +1 -0
  106. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/prototype-generate.prompt.js +240 -0
  107. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prototype-generate.node.d.ts +21 -0
  108. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prototype-generate.node.d.ts.map +1 -0
  109. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prototype-generate.node.js +134 -0
  110. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.d.ts +4 -0
  111. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.d.ts.map +1 -1
  112. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.js +17 -0
  113. package/dist/packages/core/src/infrastructure/services/git/git-fork.service.d.ts +5 -0
  114. package/dist/packages/core/src/infrastructure/services/git/git-fork.service.d.ts.map +1 -1
  115. package/dist/packages/core/src/infrastructure/services/git/git-fork.service.js +34 -0
  116. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts +1 -0
  117. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts.map +1 -1
  118. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.js +8 -0
  119. package/dist/packages/core/src/infrastructure/services/skill-injector.service.d.ts +26 -0
  120. package/dist/packages/core/src/infrastructure/services/skill-injector.service.d.ts.map +1 -0
  121. package/dist/packages/core/src/infrastructure/services/skill-injector.service.js +201 -0
  122. package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.d.ts +1 -1
  123. package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.d.ts.map +1 -1
  124. package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.js +7 -4
  125. package/dist/src/presentation/cli/commands/feat/feedback.command.d.ts +12 -0
  126. package/dist/src/presentation/cli/commands/feat/feedback.command.d.ts.map +1 -0
  127. package/dist/src/presentation/cli/commands/feat/feedback.command.js +64 -0
  128. package/dist/src/presentation/cli/commands/feat/index.d.ts.map +1 -1
  129. package/dist/src/presentation/cli/commands/feat/index.js +5 -1
  130. package/dist/src/presentation/cli/commands/feat/new.command.d.ts.map +1 -1
  131. package/dist/src/presentation/cli/commands/feat/new.command.js +21 -5
  132. package/dist/src/presentation/cli/commands/feat/promote.command.d.ts +13 -0
  133. package/dist/src/presentation/cli/commands/feat/promote.command.d.ts.map +1 -0
  134. package/dist/src/presentation/cli/commands/feat/promote.command.js +41 -0
  135. package/dist/src/presentation/web/app/actions/add-injected-skill.d.ts +7 -0
  136. package/dist/src/presentation/web/app/actions/add-injected-skill.d.ts.map +1 -0
  137. package/dist/src/presentation/web/app/actions/add-injected-skill.js +34 -0
  138. package/dist/src/presentation/web/app/actions/create-feature.d.ts +5 -2
  139. package/dist/src/presentation/web/app/actions/create-feature.d.ts.map +1 -1
  140. package/dist/src/presentation/web/app/actions/create-feature.js +5 -3
  141. package/dist/src/presentation/web/app/actions/discard-exploration.d.ts +9 -0
  142. package/dist/src/presentation/web/app/actions/discard-exploration.d.ts.map +1 -0
  143. package/dist/src/presentation/web/app/actions/discard-exploration.js +29 -0
  144. package/dist/src/presentation/web/app/actions/get-workflow-defaults.d.ts +3 -1
  145. package/dist/src/presentation/web/app/actions/get-workflow-defaults.d.ts.map +1 -1
  146. package/dist/src/presentation/web/app/actions/get-workflow-defaults.js +3 -1
  147. package/dist/src/presentation/web/app/actions/promote-exploration.d.ts +11 -0
  148. package/dist/src/presentation/web/app/actions/promote-exploration.d.ts.map +1 -0
  149. package/dist/src/presentation/web/app/actions/promote-exploration.js +21 -0
  150. package/dist/src/presentation/web/app/actions/remove-injected-skill.d.ts +6 -0
  151. package/dist/src/presentation/web/app/actions/remove-injected-skill.d.ts.map +1 -0
  152. package/dist/src/presentation/web/app/actions/remove-injected-skill.js +35 -0
  153. package/dist/src/presentation/web/app/actions/submit-exploration-feedback.d.ts +12 -0
  154. package/dist/src/presentation/web/app/actions/submit-exploration-feedback.d.ts.map +1 -0
  155. package/dist/src/presentation/web/app/actions/submit-exploration-feedback.js +40 -0
  156. package/dist/src/presentation/web/app/api/agent-events/route.d.ts.map +1 -1
  157. package/dist/src/presentation/web/app/api/agent-events/route.js +1 -0
  158. package/dist/src/presentation/web/app/build-feature-node-data.d.ts.map +1 -1
  159. package/dist/src/presentation/web/app/build-feature-node-data.js +6 -2
  160. package/dist/src/presentation/web/app/build-graph-nodes.js +4 -2
  161. package/dist/src/presentation/web/app/skills/page.d.ts.map +1 -1
  162. package/dist/src/presentation/web/app/skills/page.js +6 -1
  163. package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.d.ts +1 -1
  164. package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.d.ts.map +1 -1
  165. package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.js +3 -0
  166. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.d.ts.map +1 -1
  167. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.js +65 -1
  168. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts +5 -2
  169. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts.map +1 -1
  170. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.js +20 -12
  171. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.d.ts.map +1 -1
  172. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.js +3 -1
  173. package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.d.ts +8 -0
  174. package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.d.ts.map +1 -0
  175. package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.js +33 -0
  176. package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.stories.d.ts +10 -0
  177. package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.stories.d.ts.map +1 -0
  178. package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.stories.js +33 -0
  179. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts +6 -1
  180. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts.map +1 -1
  181. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.js +16 -4
  182. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.d.ts.map +1 -1
  183. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.js +10 -4
  184. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.d.ts +2 -0
  185. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.d.ts.map +1 -1
  186. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.js +12 -0
  187. package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.d.ts +11 -0
  188. package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.d.ts.map +1 -0
  189. package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.js +34 -0
  190. package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.stories.d.ts +16 -0
  191. package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.stories.d.ts.map +1 -0
  192. package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.stories.js +70 -0
  193. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.d.ts.map +1 -1
  194. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.js +2 -0
  195. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +10 -2
  196. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map +1 -1
  197. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.js +12 -0
  198. package/dist/src/presentation/web/components/common/feature-node/feature-node.d.ts.map +1 -1
  199. package/dist/src/presentation/web/components/common/feature-node/feature-node.js +7 -2
  200. package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
  201. package/dist/src/presentation/web/components/features/settings/settings-page-client.js +6 -6
  202. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.js +3 -3
  203. package/dist/src/presentation/web/components/features/skills/add-skill-dialog.d.ts +10 -0
  204. package/dist/src/presentation/web/components/features/skills/add-skill-dialog.d.ts.map +1 -0
  205. package/dist/src/presentation/web/components/features/skills/add-skill-dialog.js +56 -0
  206. package/dist/src/presentation/web/components/features/skills/add-skill-dialog.stories.d.ts +16 -0
  207. package/dist/src/presentation/web/components/features/skills/add-skill-dialog.stories.d.ts.map +1 -0
  208. package/dist/src/presentation/web/components/features/skills/add-skill-dialog.stories.js +66 -0
  209. package/dist/src/presentation/web/components/features/skills/auto-injected-skills-section.d.ts +8 -0
  210. package/dist/src/presentation/web/components/features/skills/auto-injected-skills-section.d.ts.map +1 -0
  211. package/dist/src/presentation/web/components/features/skills/auto-injected-skills-section.js +42 -0
  212. package/dist/src/presentation/web/components/features/skills/auto-injected-skills-section.stories.d.ts +16 -0
  213. package/dist/src/presentation/web/components/features/skills/auto-injected-skills-section.stories.d.ts.map +1 -0
  214. package/dist/src/presentation/web/components/features/skills/auto-injected-skills-section.stories.js +69 -0
  215. package/dist/src/presentation/web/components/features/skills/skills-page-client.d.ts +3 -1
  216. package/dist/src/presentation/web/components/features/skills/skills-page-client.d.ts.map +1 -1
  217. package/dist/src/presentation/web/components/features/skills/skills-page-client.js +5 -3
  218. package/dist/src/presentation/web/components/features/skills/skills-page-client.stories.d.ts +1 -0
  219. package/dist/src/presentation/web/components/features/skills/skills-page-client.stories.d.ts.map +1 -1
  220. package/dist/src/presentation/web/components/features/skills/skills-page-client.stories.js +27 -0
  221. package/dist/src/presentation/web/components/ui/toggle-group.d.ts +10 -0
  222. package/dist/src/presentation/web/components/ui/toggle-group.d.ts.map +1 -0
  223. package/dist/src/presentation/web/components/ui/toggle-group.js +22 -0
  224. package/dist/src/presentation/web/components/ui/toggle.d.ts +10 -0
  225. package/dist/src/presentation/web/components/ui/toggle.d.ts.map +1 -0
  226. package/dist/src/presentation/web/components/ui/toggle.js +26 -0
  227. package/dist/translations/ar/cli.json +26 -0
  228. package/dist/translations/ar/web.json +21 -13
  229. package/dist/translations/de/cli.json +26 -0
  230. package/dist/translations/de/web.json +41 -19
  231. package/dist/translations/en/cli.json +26 -0
  232. package/dist/translations/en/web.json +10 -2
  233. package/dist/translations/es/cli.json +26 -0
  234. package/dist/translations/es/web.json +22 -14
  235. package/dist/translations/fr/cli.json +26 -0
  236. package/dist/translations/fr/web.json +22 -14
  237. package/dist/translations/he/cli.json +26 -0
  238. package/dist/translations/he/web.json +22 -14
  239. package/dist/translations/pt/cli.json +26 -0
  240. package/dist/translations/pt/web.json +22 -14
  241. package/dist/translations/ru/cli.json +26 -0
  242. package/dist/translations/ru/web.json +22 -14
  243. package/dist/tsconfig.build.tsbuildinfo +1 -1
  244. package/package.json +1 -1
  245. package/web/.next/BUILD_ID +1 -1
  246. package/web/.next/build-manifest.json +5 -5
  247. package/web/.next/fallback-build-manifest.json +2 -2
  248. package/web/.next/prerender-manifest.json +3 -3
  249. package/web/.next/required-server-files.js +3 -3
  250. package/web/.next/required-server-files.json +3 -3
  251. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/build-manifest.json +3 -3
  252. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +29 -29
  253. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +1 -1
  254. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  255. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  256. package/web/.next/server/app/(dashboard)/@drawer/chat/page/build-manifest.json +3 -3
  257. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +27 -27
  258. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js +1 -1
  259. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
  260. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
  261. package/web/.next/server/app/(dashboard)/@drawer/create/page/build-manifest.json +3 -3
  262. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +30 -30
  263. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +1 -1
  264. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  265. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  266. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/build-manifest.json +3 -3
  267. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +121 -76
  268. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +3 -2
  269. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  270. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  271. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/build-manifest.json +3 -3
  272. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +121 -76
  273. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +3 -2
  274. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  275. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  276. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/build-manifest.json +3 -3
  277. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  278. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +1 -1
  279. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  280. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  281. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/build-manifest.json +3 -3
  282. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  283. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +1 -1
  284. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  285. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  286. package/web/.next/server/app/(dashboard)/chat/page/build-manifest.json +3 -3
  287. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +27 -27
  288. package/web/.next/server/app/(dashboard)/chat/page.js +1 -1
  289. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  290. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  291. package/web/.next/server/app/(dashboard)/create/page/build-manifest.json +3 -3
  292. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +30 -30
  293. package/web/.next/server/app/(dashboard)/create/page.js +1 -1
  294. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  295. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  296. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/build-manifest.json +3 -3
  297. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +121 -76
  298. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +3 -2
  299. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  300. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  301. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/build-manifest.json +3 -3
  302. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +121 -76
  303. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +3 -2
  304. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  305. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  306. package/web/.next/server/app/(dashboard)/page/build-manifest.json +3 -3
  307. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +27 -27
  308. package/web/.next/server/app/(dashboard)/page.js +1 -1
  309. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  310. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  311. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/build-manifest.json +3 -3
  312. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  313. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +1 -1
  314. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  315. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  316. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/build-manifest.json +3 -3
  317. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  318. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +1 -1
  319. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  320. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  321. package/web/.next/server/app/_global-error/page/build-manifest.json +3 -3
  322. package/web/.next/server/app/_global-error.html +2 -2
  323. package/web/.next/server/app/_global-error.rsc +1 -1
  324. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  325. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  326. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  327. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  328. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  329. package/web/.next/server/app/_not-found/page/build-manifest.json +3 -3
  330. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +6 -6
  331. package/web/.next/server/app/_not-found/page.js +1 -1
  332. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  333. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  334. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  335. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  336. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  337. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
  338. package/web/.next/server/app/features/page/build-manifest.json +3 -3
  339. package/web/.next/server/app/features/page/server-reference-manifest.json +6 -6
  340. package/web/.next/server/app/features/page.js +1 -1
  341. package/web/.next/server/app/features/page.js.nft.json +1 -1
  342. package/web/.next/server/app/features/page_client-reference-manifest.js +1 -1
  343. package/web/.next/server/app/settings/page/build-manifest.json +3 -3
  344. package/web/.next/server/app/settings/page/server-reference-manifest.json +9 -9
  345. package/web/.next/server/app/settings/page.js +3 -3
  346. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  347. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  348. package/web/.next/server/app/skills/page/build-manifest.json +3 -3
  349. package/web/.next/server/app/skills/page/server-reference-manifest.json +52 -22
  350. package/web/.next/server/app/skills/page.js +3 -2
  351. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  352. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  353. package/web/.next/server/app/tools/page/build-manifest.json +3 -3
  354. package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
  355. package/web/.next/server/app/tools/page.js +1 -1
  356. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  357. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  358. package/web/.next/server/app/version/page/build-manifest.json +3 -3
  359. package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
  360. package/web/.next/server/app/version/page.js +1 -1
  361. package/web/.next/server/app/version/page.js.nft.json +1 -1
  362. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  363. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js +1 -1
  364. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js.map +1 -1
  365. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js +1 -1
  366. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js.map +1 -1
  367. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  368. package/web/.next/server/chunks/[root-of-the-server]__c78383b1._.js +1 -1
  369. package/web/.next/server/chunks/[root-of-the-server]__c78383b1._.js.map +1 -1
  370. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js +1 -1
  371. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
  372. package/web/.next/server/chunks/ssr/{_0727935d._.js → 403f9_next_8a33ddee._.js} +2 -2
  373. package/web/.next/server/chunks/ssr/403f9_next_8a33ddee._.js.map +1 -0
  374. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  375. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  376. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +3 -3
  377. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
  378. package/web/.next/server/chunks/ssr/[root-of-the-server]__03c66352._.js +4 -0
  379. package/web/.next/server/chunks/ssr/[root-of-the-server]__03c66352._.js.map +1 -0
  380. package/web/.next/server/chunks/ssr/{[root-of-the-server]__e88da4ee._.js → [root-of-the-server]__1cd4327c._.js} +2 -2
  381. package/web/.next/server/chunks/ssr/[root-of-the-server]__1cd4327c._.js.map +1 -0
  382. package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js +1 -1
  383. package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js.map +1 -1
  384. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  385. package/web/.next/server/chunks/ssr/[root-of-the-server]__403afc23._.js +4 -0
  386. package/web/.next/server/chunks/ssr/[root-of-the-server]__403afc23._.js.map +1 -0
  387. package/web/.next/server/chunks/ssr/[root-of-the-server]__4ed9b909._.js +1 -1
  388. package/web/.next/server/chunks/ssr/[root-of-the-server]__684a868c._.js +1 -1
  389. package/web/.next/server/chunks/ssr/[root-of-the-server]__684a868c._.js.map +1 -1
  390. package/web/.next/server/chunks/ssr/[root-of-the-server]__69dd3217._.js +1 -1
  391. package/web/.next/server/chunks/ssr/[root-of-the-server]__69dd3217._.js.map +1 -1
  392. package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js +1 -1
  393. package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js.map +1 -1
  394. package/web/.next/server/chunks/ssr/{[root-of-the-server]__7ffd3598._.js → [root-of-the-server]__92ffd5ee._.js} +3 -3
  395. package/web/.next/server/chunks/ssr/[root-of-the-server]__92ffd5ee._.js.map +1 -0
  396. package/web/.next/server/chunks/ssr/[root-of-the-server]__b020c17d._.js +2 -2
  397. package/web/.next/server/chunks/ssr/[root-of-the-server]__b020c17d._.js.map +1 -1
  398. package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js +1 -1
  399. package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js.map +1 -1
  400. package/web/.next/server/chunks/ssr/[root-of-the-server]__c1262d08._.js +1 -1
  401. package/web/.next/server/chunks/ssr/[root-of-the-server]__c16bf5de._.js +1 -1
  402. package/web/.next/server/chunks/ssr/[root-of-the-server]__c16bf5de._.js.map +1 -1
  403. package/web/.next/server/chunks/ssr/[root-of-the-server]__df550e85._.js +3 -0
  404. package/web/.next/server/chunks/ssr/[root-of-the-server]__df550e85._.js.map +1 -0
  405. package/web/.next/server/chunks/ssr/[root-of-the-server]__df5602bf._.js +4 -0
  406. package/web/.next/server/chunks/ssr/[root-of-the-server]__df5602bf._.js.map +1 -0
  407. package/web/.next/server/chunks/ssr/[root-of-the-server]__e9f4767a._.js +4 -0
  408. package/web/.next/server/chunks/ssr/[root-of-the-server]__e9f4767a._.js.map +1 -0
  409. package/web/.next/server/chunks/ssr/_02e01240._.js +1 -1
  410. package/web/.next/server/chunks/ssr/_02e01240._.js.map +1 -1
  411. package/web/.next/server/chunks/ssr/_05c23ad9._.js +1 -1
  412. package/web/.next/server/chunks/ssr/_05c23ad9._.js.map +1 -1
  413. package/web/.next/server/chunks/ssr/{_fe058119._.js → _0fd635d7._.js} +2 -2
  414. package/web/.next/server/chunks/ssr/_0fd635d7._.js.map +1 -0
  415. package/web/.next/server/chunks/ssr/_16eb4fec._.js +1 -1
  416. package/web/.next/server/chunks/ssr/_16eb4fec._.js.map +1 -1
  417. package/web/.next/server/chunks/ssr/_18886033._.js +1 -1
  418. package/web/.next/server/chunks/ssr/_18886033._.js.map +1 -1
  419. package/web/.next/server/chunks/ssr/_22e00a14._.js +1 -1
  420. package/web/.next/server/chunks/ssr/_22e00a14._.js.map +1 -1
  421. package/web/.next/server/chunks/ssr/_30ddea9d._.js +9 -0
  422. package/web/.next/server/chunks/ssr/_30ddea9d._.js.map +1 -0
  423. package/web/.next/server/chunks/ssr/{_a8b338ec._.js → _34d897da._.js} +2 -2
  424. package/web/.next/server/chunks/ssr/{_a8b338ec._.js.map → _34d897da._.js.map} +1 -1
  425. package/web/.next/server/chunks/ssr/_45496654._.js +3 -0
  426. package/web/.next/server/chunks/ssr/_45496654._.js.map +1 -0
  427. package/web/.next/server/chunks/ssr/_4cbb7f95._.js +1 -1
  428. package/web/.next/server/chunks/ssr/_4cbb7f95._.js.map +1 -1
  429. package/web/.next/server/chunks/ssr/_5119a3df._.js +1 -1
  430. package/web/.next/server/chunks/ssr/_5119a3df._.js.map +1 -1
  431. package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
  432. package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
  433. package/web/.next/server/chunks/ssr/_6e79a2cc._.js +3 -0
  434. package/web/.next/server/chunks/ssr/_6e79a2cc._.js.map +1 -0
  435. package/web/.next/server/chunks/ssr/_6f35fb9a._.js +3 -0
  436. package/web/.next/server/chunks/ssr/_6f35fb9a._.js.map +1 -0
  437. package/web/.next/server/chunks/ssr/_a5a5901d._.js +1 -1
  438. package/web/.next/server/chunks/ssr/_a5a5901d._.js.map +1 -1
  439. package/web/.next/server/chunks/ssr/_ad09f271._.js +1 -1
  440. package/web/.next/server/chunks/ssr/_ad09f271._.js.map +1 -1
  441. package/web/.next/server/chunks/ssr/_c3f595c6._.js +1 -1
  442. package/web/.next/server/chunks/ssr/_c3f595c6._.js.map +1 -1
  443. package/web/.next/server/chunks/ssr/{_9b964adc._.js → _cac4abe6._.js} +2 -2
  444. package/web/.next/server/chunks/ssr/_cac4abe6._.js.map +1 -0
  445. package/web/.next/server/chunks/ssr/_df737cce._.js +3 -0
  446. package/web/.next/server/chunks/ssr/_df737cce._.js.map +1 -0
  447. package/web/.next/server/chunks/ssr/_ea9e1556._.js +1 -1
  448. package/web/.next/server/chunks/ssr/_ea9e1556._.js.map +1 -1
  449. package/web/.next/server/chunks/ssr/_f1ba9be6._.js +2 -2
  450. package/web/.next/server/chunks/ssr/_f1ba9be6._.js.map +1 -1
  451. package/web/.next/server/chunks/ssr/_f33cd07e._.js +2 -2
  452. package/web/.next/server/chunks/ssr/_f33cd07e._.js.map +1 -1
  453. package/web/.next/server/chunks/ssr/_f8b45233._.js +1 -1
  454. package/web/.next/server/chunks/ssr/_f8b45233._.js.map +1 -1
  455. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  456. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  457. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +1 -1
  458. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js.map +1 -1
  459. package/web/.next/server/chunks/ssr/node_modules__pnpm_1300ae39._.js +3 -0
  460. package/web/.next/server/chunks/ssr/node_modules__pnpm_1300ae39._.js.map +1 -0
  461. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_approve-feature_ts_9453ce8b._.js +3 -0
  462. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_approve-feature_ts_9453ce8b._.js.map +1 -0
  463. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +1 -1
  464. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js +1 -1
  465. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js.map +1 -1
  466. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js +1 -1
  467. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js.map +1 -1
  468. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  469. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  470. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js +3 -0
  471. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js.map +1 -0
  472. package/web/.next/server/chunks/ssr/src_presentation_web_db9fa0c2._.js +1 -1
  473. package/web/.next/server/chunks/ssr/src_presentation_web_db9fa0c2._.js.map +1 -1
  474. package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js +1 -1
  475. package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js.map +1 -1
  476. package/web/.next/server/middleware-build-manifest.js +3 -3
  477. package/web/.next/server/pages/500.html +2 -2
  478. package/web/.next/server/server-reference-manifest.js +1 -1
  479. package/web/.next/server/server-reference-manifest.json +349 -211
  480. package/web/.next/static/chunks/0769c695d6b663c7.js +1 -0
  481. package/web/.next/static/chunks/09a25231e5fc1ab8.js +3 -0
  482. package/web/.next/static/chunks/{d6c39780c2f75ecd.js → 0f30a983f3467cd5.js} +1 -1
  483. package/web/.next/static/chunks/185e4f36cb6efb24.js +1 -0
  484. package/web/.next/static/chunks/{d5366257d6b9f855.js → 2a9af061f4fbe7f5.js} +1 -1
  485. package/web/.next/static/chunks/2ceebcc839ee0d4b.js +1 -0
  486. package/web/.next/static/chunks/{04c874f52a7cd435.js → 37f9543560c58ea6.js} +1 -1
  487. package/web/.next/static/chunks/{caf7d7e1b439b29e.js → 4219ddfde68a6d0b.js} +1 -1
  488. package/web/.next/static/chunks/{562c70303d910295.js → 478adf5d5156f002.js} +1 -1
  489. package/web/.next/static/chunks/52681a7f14138e48.js +1 -0
  490. package/web/.next/static/chunks/5743a9c1c63e5261.js +5 -0
  491. package/web/.next/static/chunks/5cf9745e2ef3837c.js +1 -0
  492. package/web/.next/static/chunks/5e20f692bbfcfb94.js +7 -0
  493. package/web/.next/static/chunks/74729cbad964be13.js +1 -0
  494. package/web/.next/static/chunks/{c5d89c12a73e0461.js → 9a78b4c5dcd28196.js} +2 -2
  495. package/web/.next/static/chunks/c80e8e3d0cf5baa6.css +1 -0
  496. package/web/.next/static/chunks/cc5fe8d1d9e1e519.js +5 -0
  497. package/web/.next/static/chunks/d5bf9c963b5346e1.js +1 -0
  498. package/web/.next/static/chunks/d60cee2e7318f425.js +1 -0
  499. package/web/.next/static/chunks/da565c85277c2461.js +1 -0
  500. package/web/.next/static/chunks/e93ae5725b0babeb.js +1 -0
  501. package/web/.next/static/chunks/fb89cf91c10b2e8b.js +1 -0
  502. package/web/.next/static/chunks/{021c9b0effb6d688.js → fc595d95626ac9bb.js} +1 -1
  503. package/web/.next/static/chunks/{turbopack-57bb0674e2cd1d31.js → turbopack-b38a68b1b1c41a87.js} +1 -1
  504. package/web/.next/server/chunks/ssr/[root-of-the-server]__20a36a42._.js +0 -3
  505. package/web/.next/server/chunks/ssr/[root-of-the-server]__20a36a42._.js.map +0 -1
  506. package/web/.next/server/chunks/ssr/[root-of-the-server]__4fb81977._.js +0 -4
  507. package/web/.next/server/chunks/ssr/[root-of-the-server]__4fb81977._.js.map +0 -1
  508. package/web/.next/server/chunks/ssr/[root-of-the-server]__7dcd0917._.js +0 -4
  509. package/web/.next/server/chunks/ssr/[root-of-the-server]__7dcd0917._.js.map +0 -1
  510. package/web/.next/server/chunks/ssr/[root-of-the-server]__7ffd3598._.js.map +0 -1
  511. package/web/.next/server/chunks/ssr/[root-of-the-server]__ba7f5873._.js +0 -4
  512. package/web/.next/server/chunks/ssr/[root-of-the-server]__ba7f5873._.js.map +0 -1
  513. package/web/.next/server/chunks/ssr/[root-of-the-server]__c5e09f6f._.js +0 -4
  514. package/web/.next/server/chunks/ssr/[root-of-the-server]__c5e09f6f._.js.map +0 -1
  515. package/web/.next/server/chunks/ssr/[root-of-the-server]__e88da4ee._.js.map +0 -1
  516. package/web/.next/server/chunks/ssr/_0727935d._.js.map +0 -1
  517. package/web/.next/server/chunks/ssr/_0dc06d07._.js +0 -3
  518. package/web/.next/server/chunks/ssr/_0dc06d07._.js.map +0 -1
  519. package/web/.next/server/chunks/ssr/_682fc996._.js +0 -9
  520. package/web/.next/server/chunks/ssr/_682fc996._.js.map +0 -1
  521. package/web/.next/server/chunks/ssr/_6892e3b9._.js +0 -3
  522. package/web/.next/server/chunks/ssr/_6892e3b9._.js.map +0 -1
  523. package/web/.next/server/chunks/ssr/_9b964adc._.js.map +0 -1
  524. package/web/.next/server/chunks/ssr/_a1068852._.js +0 -3
  525. package/web/.next/server/chunks/ssr/_a1068852._.js.map +0 -1
  526. package/web/.next/server/chunks/ssr/_fe058119._.js.map +0 -1
  527. package/web/.next/server/chunks/ssr/node_modules__pnpm_12a7ede0._.js +0 -3
  528. package/web/.next/server/chunks/ssr/node_modules__pnpm_12a7ede0._.js.map +0 -1
  529. package/web/.next/static/chunks/20f7cc98a013b11c.js +0 -1
  530. package/web/.next/static/chunks/4cec255f2754e5ec.js +0 -1
  531. package/web/.next/static/chunks/5b7275374d2696b3.css +0 -1
  532. package/web/.next/static/chunks/647140fe96a7c88a.js +0 -1
  533. package/web/.next/static/chunks/6d6f70ff5151b8cb.js +0 -7
  534. package/web/.next/static/chunks/84792d40edc4b027.js +0 -5
  535. package/web/.next/static/chunks/8800875bb3d56192.js +0 -3
  536. package/web/.next/static/chunks/8d581adafe8d1dd0.js +0 -1
  537. package/web/.next/static/chunks/982aef195c118996.js +0 -1
  538. package/web/.next/static/chunks/a052c19c18e9eced.js +0 -1
  539. package/web/.next/static/chunks/a6b5e739d2f89c6b.js +0 -1
  540. package/web/.next/static/chunks/b0e2fb3d4eb42f3d.js +0 -1
  541. package/web/.next/static/chunks/c3ef3b892f7794ec.js +0 -1
  542. package/web/.next/static/chunks/dc134f3f58cdf850.js +0 -5
  543. package/web/.next/static/chunks/ff9e33615f5c856c.js +0 -1
  544. /package/web/.next/static/{lFiCv3l4nIAIpZmj6eehh → G895CgnbZl4YvWN_DaRC-}/_buildManifest.js +0 -0
  545. /package/web/.next/static/{lFiCv3l4nIAIpZmj6eehh → G895CgnbZl4YvWN_DaRC-}/_clientMiddlewareManifest.json +0 -0
  546. /package/web/.next/static/{lFiCv3l4nIAIpZmj6eehh → G895CgnbZl4YvWN_DaRC-}/_ssgManifest.js +0 -0
@@ -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). */
@@ -37,6 +38,8 @@ export interface CreateFeatureInput {
37
38
  attachmentPaths?: string[];
38
39
  /** Sync the default branch from remote before creating the feature branch (default: true). */
39
40
  rebaseBeforeBranch?: boolean;
41
+ /** Inject curated skills into the worktree (overrides settings.workflow.skillInjection.enabled). */
42
+ injectSkills?: boolean;
40
43
  }
41
44
  export interface CreateFeatureResult {
42
45
  feature: Feature;
@@ -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;IAC7B,oGAAoG;IACpG,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;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 };
@@ -1 +1 @@
1
- {"version":3,"file":"rebase-feature-on-main.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/features/rebase-feature-on-main.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAC1G,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yDAAyD,CAAC;AAK7F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAClG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6DAA6D,CAAC;AACvG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gEAAgE,CAAC;AAE7G,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4FAA4F,CAAC;AAE5I,qBACa,0BAA0B;IAGnC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAEhC,OAAO,CAAC,QAAQ,CAAC,yBAAyB;IAE1C,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAVf,WAAW,EAAE,kBAAkB,EAE/B,YAAY,EAAE,aAAa,EAE3B,eAAe,EAAE,gBAAgB,EAEjC,yBAAyB,EAAE,yBAAyB,EAEpD,YAAY,EAAE,mBAAmB,EAEjC,eAAe,EAAE,sBAAsB;IAGpD,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YA+EjC,cAAc;IAwB5B;;;;OAIG;YACW,UAAU;CAOzB"}
1
+ {"version":3,"file":"rebase-feature-on-main.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/features/rebase-feature-on-main.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAC1G,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yDAAyD,CAAC;AAK7F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAClG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6DAA6D,CAAC;AACvG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gEAAgE,CAAC;AAE7G,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4FAA4F,CAAC;AAE5I,qBACa,0BAA0B;IAGnC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAEhC,OAAO,CAAC,QAAQ,CAAC,yBAAyB;IAE1C,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAVf,WAAW,EAAE,kBAAkB,EAE/B,YAAY,EAAE,aAAa,EAE3B,eAAe,EAAE,gBAAgB,EAEjC,yBAAyB,EAAE,yBAAyB,EAEpD,YAAY,EAAE,mBAAmB,EAEjC,eAAe,EAAE,sBAAsB;IAGpD,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAyGjC,cAAc;IAwB5B;;;;OAIG;YACW,UAAU;CAOzB"}
@@ -77,7 +77,8 @@ let RebaseFeatureOnMainUseCase = class RebaseFeatureOnMainUseCase {
77
77
  const cwd = await this.resolveCwd(feature.repositoryPath, feature.branch);
78
78
  const defaultBranch = await this.gitPrService.getDefaultBranch(feature.repositoryPath);
79
79
  // Stash uncommitted changes if present (smart rebase)
80
- const didStash = await this.gitPrService.stash(cwd, 'shep-rebase: auto-stash before rebase');
80
+ const didStash = await this.gitPrService.stash(cwd, `shep-auto-stash: ${feature.branch}`);
81
+ let stashPopError;
81
82
  try {
82
83
  // Auto-sync main before rebasing (per spec decision)
83
84
  await this.gitPrService.syncMain(cwd, defaultBranch);
@@ -98,9 +99,29 @@ let RebaseFeatureOnMainUseCase = class RebaseFeatureOnMainUseCase {
98
99
  finally {
99
100
  // Restore stashed changes after rebase (whether it succeeded or failed)
100
101
  if (didStash) {
101
- await this.gitPrService.stashPop(cwd);
102
+ try {
103
+ await this.gitPrService.stashPop(cwd);
104
+ }
105
+ catch {
106
+ // Stash pop failed — likely conflicts between rebased code and stashed changes.
107
+ // Invoke agent-powered resolution, then drop the stash entry on success.
108
+ try {
109
+ await this.conflictResolutionService.resolveStashPop(cwd, feature.branch, defaultBranch);
110
+ await this.gitPrService.stashDrop(cwd);
111
+ }
112
+ catch {
113
+ stashPopError = new Error(`Rebase succeeded but failed to restore your uncommitted changes. ` +
114
+ `The rebase is complete, but your stashed work-in-progress could not be applied cleanly. ` +
115
+ `Run \`git stash pop\` manually to resolve the remaining conflicts. ` +
116
+ `Your stash entry is preserved.`);
117
+ }
118
+ }
102
119
  }
103
120
  }
121
+ // Throw stash pop error after the finally block to satisfy no-unsafe-finally
122
+ if (stashPopError) {
123
+ throw stashPopError;
124
+ }
104
125
  // Rebase succeeded (possibly with resolved conflicts)
105
126
  await this.completeTiming(agentRunId, phaseTimingId, startMs, 'success');
106
127
  }
@@ -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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"settings-defaults.factory.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/domain/factories/settings-defaults.factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,QAAQ,EAUT,MAAM,qBAAqB,CAAC;AA6C7B;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,qBAAqB,IAAI,QAAQ,CAuFhD"}
1
+ {"version":3,"file":"settings-defaults.factory.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/domain/factories/settings-defaults.factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,QAAQ,EAWT,MAAM,qBAAqB,CAAC;AAmD7B;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,qBAAqB,IAAI,QAAQ,CA+IhD"}
@@ -11,7 +11,7 @@
11
11
  * - Auto-update enabled, log level set to info
12
12
  * - Unique IDs and timestamps generated for each instance
13
13
  */
14
- import { AgentType, AgentAuthMethod, EditorType, TerminalType } from '../generated/output.js';
14
+ import { AgentType, AgentAuthMethod, EditorType, SkillSourceType, TerminalType, } from '../generated/output.js';
15
15
  /**
16
16
  * Default AI model for all SDLC agents.
17
17
  * Provides balanced performance and cost for all workflow stages.
@@ -112,14 +112,69 @@ export function createDefaultSettings() {
112
112
  allowMerge: false,
113
113
  pushOnImplementationComplete: false,
114
114
  };
115
+ const skillInjection = {
116
+ enabled: false,
117
+ skills: [
118
+ {
119
+ name: 'architecture-reviewer',
120
+ type: SkillSourceType.Remote,
121
+ source: 'shep-ai/shep',
122
+ remoteSkillName: 'architecture-reviewer',
123
+ },
124
+ {
125
+ name: 'cross-validate-artifacts',
126
+ type: SkillSourceType.Remote,
127
+ source: 'shep-ai/shep',
128
+ remoteSkillName: 'cross-validate-artifacts',
129
+ },
130
+ {
131
+ name: 'mermaid-diagrams',
132
+ type: SkillSourceType.Remote,
133
+ source: 'shep-ai/shep',
134
+ remoteSkillName: 'mermaid-diagrams',
135
+ },
136
+ {
137
+ name: 'react-flow',
138
+ type: SkillSourceType.Remote,
139
+ source: 'shep-ai/shep',
140
+ remoteSkillName: 'react-flow',
141
+ },
142
+ {
143
+ name: 'shadcn-ui',
144
+ type: SkillSourceType.Remote,
145
+ source: 'shep-ai/shep',
146
+ remoteSkillName: 'shadcn-ui',
147
+ },
148
+ {
149
+ name: 'tsp-model',
150
+ type: SkillSourceType.Remote,
151
+ source: 'shep-ai/shep',
152
+ remoteSkillName: 'tsp-model',
153
+ },
154
+ {
155
+ name: 'vercel-react-best-practices',
156
+ type: SkillSourceType.Remote,
157
+ source: 'shep-ai/shep',
158
+ remoteSkillName: 'vercel-react-best-practices',
159
+ },
160
+ {
161
+ name: 'frontend-design',
162
+ type: SkillSourceType.Remote,
163
+ source: 'anthropics/claude-code',
164
+ remoteSkillName: 'frontend-design',
165
+ },
166
+ ],
167
+ };
115
168
  const workflow = {
116
169
  openPrOnImplementationComplete: false,
117
170
  approvalGateDefaults,
118
171
  ciWatchEnabled: true,
119
172
  enableEvidence: false,
120
173
  commitEvidence: false,
121
- defaultFastMode: true,
174
+ defaultMode: 'Fast',
175
+ explorationMaxIterations: 10,
122
176
  autoArchiveDelayMinutes: 10,
177
+ skillInjection,
123
178
  };
124
179
  const featureFlags = {
125
180
  skills: false,
@@ -379,6 +379,44 @@ export type AnalyzeRepoTimeouts = {
379
379
  */
380
380
  analyzeMs?: number;
381
381
  };
382
+ export declare enum SkillSourceType {
383
+ Local = "local",
384
+ Remote = "remote"
385
+ }
386
+ /**
387
+ * A skill source for injection into feature worktrees
388
+ */
389
+ export type SkillSource = {
390
+ /**
391
+ * Unique skill directory name (e.g. 'architecture-reviewer')
392
+ */
393
+ name: string;
394
+ /**
395
+ * How this skill is provisioned (local copy or remote install)
396
+ */
397
+ type: SkillSourceType;
398
+ /**
399
+ * Source path (local) or npm package/URL (remote)
400
+ */
401
+ source: string;
402
+ /**
403
+ * Remote skill name passed to --skill flag (remote type only)
404
+ */
405
+ remoteSkillName?: string;
406
+ };
407
+ /**
408
+ * Skill injection configuration for feature worktrees
409
+ */
410
+ export type SkillInjectionConfig = {
411
+ /**
412
+ * Whether skill injection is enabled (default: false, opt-in)
413
+ */
414
+ enabled: boolean;
415
+ /**
416
+ * List of skills to inject into feature worktrees
417
+ */
418
+ skills: SkillSource[];
419
+ };
382
420
  /**
383
421
  * Global workflow configuration defaults
384
422
  */
@@ -436,13 +474,21 @@ export type WorkflowConfig = {
436
474
  */
437
475
  hideCiStatus?: boolean;
438
476
  /**
439
- * Default new features to fast mode (default: true)
477
+ * Default feature mode for new features: 'Regular', 'Fast', or 'Exploration' (default: 'Fast')
440
478
  */
441
- defaultFastMode: boolean;
479
+ defaultMode: string;
480
+ /**
481
+ * Maximum exploration feedback iterations (default: 10, 0 = unlimited)
482
+ */
483
+ explorationMaxIterations?: number;
442
484
  /**
443
485
  * Minutes after completion before auto-archiving a feature (default: 10, 0 = disabled)
444
486
  */
445
487
  autoArchiveDelayMinutes?: number;
488
+ /**
489
+ * Skill injection configuration (optional, disabled by default)
490
+ */
491
+ skillInjection?: SkillInjectionConfig;
446
492
  };
447
493
  export declare enum AgentType {
448
494
  ClaudeCode = "claude-code",
@@ -808,10 +854,16 @@ export declare enum SdlcLifecycle {
808
854
  Maintain = "Maintain",
809
855
  Blocked = "Blocked",
810
856
  Pending = "Pending",
857
+ Exploring = "Exploring",
811
858
  Deleting = "Deleting",
812
859
  AwaitingUpstream = "AwaitingUpstream",
813
860
  Archived = "Archived"
814
861
  }
862
+ export declare enum FeatureMode {
863
+ Regular = "Regular",
864
+ Fast = "Fast",
865
+ Exploration = "Exploration"
866
+ }
815
867
  /**
816
868
  * Configuration for human-in-the-loop approval gates
817
869
  */
@@ -990,6 +1042,10 @@ export type Feature = SoftDeletableEntity & {
990
1042
  * Associated agent run ID for process tracking (optional)
991
1043
  */
992
1044
  agentRunId?: string;
1045
+ /**
1046
+ * Skills that were injected into this feature's worktree during creation
1047
+ */
1048
+ injectedSkills?: string[];
993
1049
  /**
994
1050
  * Absolute path to the feature spec directory inside the worktree
995
1051
  */
@@ -999,9 +1055,9 @@ export type Feature = SoftDeletableEntity & {
999
1055
  */
1000
1056
  repositoryId?: UUID;
1001
1057
  /**
1002
- * When true, SDLC phases were skipped and the feature was implemented directly from the prompt
1058
+ * Execution mode determining the workflow: Regular (full SDLC), Fast (direct implementation), or Exploration (iterative prototyping)
1003
1059
  */
1004
- fast: boolean;
1060
+ mode: FeatureMode;
1005
1061
  /**
1006
1062
  * Push branch to remote after implementation (default: false)
1007
1063
  */
@@ -1026,6 +1082,10 @@ export type Feature = SoftDeletableEntity & {
1026
1082
  * Enable evidence collection after implementation (default: false)
1027
1083
  */
1028
1084
  enableEvidence: boolean;
1085
+ /**
1086
+ * Inject curated skills into the feature worktree (default: false)
1087
+ */
1088
+ injectSkills: boolean;
1029
1089
  /**
1030
1090
  * Commit evidence to PR (default: false, requires enableEvidence)
1031
1091
  */
@@ -1038,6 +1098,14 @@ export type Feature = SoftDeletableEntity & {
1038
1098
  * Absolute path to the git worktree for this feature
1039
1099
  */
1040
1100
  worktreePath?: string;
1101
+ /**
1102
+ * Current feedback iteration count in exploration mode (0 when not exploring)
1103
+ */
1104
+ iterationCount: number;
1105
+ /**
1106
+ * Maximum allowed iterations for exploration mode (only set when mode is Exploration)
1107
+ */
1108
+ maxIterations?: number;
1041
1109
  /**
1042
1110
  * Pull request data (null until PR created)
1043
1111
  */