@shepai/cli 1.169.1-pr526.8e89740 → 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 (533) 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/index.d.ts +1 -0
  11. package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
  12. package/dist/packages/core/src/application/ports/output/services/skill-injector.interface.d.ts +39 -0
  13. package/dist/packages/core/src/application/ports/output/services/skill-injector.interface.d.ts.map +1 -0
  14. package/dist/packages/core/src/application/ports/output/services/skill-injector.interface.js +8 -0
  15. package/dist/packages/core/src/application/ports/output/services/spec-initializer.interface.d.ts +4 -3
  16. package/dist/packages/core/src/application/ports/output/services/spec-initializer.interface.d.ts.map +1 -1
  17. package/dist/packages/core/src/application/use-cases/agents/approve-agent-run.use-case.js +2 -2
  18. package/dist/packages/core/src/application/use-cases/agents/reject-agent-run.use-case.js +2 -2
  19. package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.d.ts.map +1 -1
  20. package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.js +4 -2
  21. package/dist/packages/core/src/application/use-cases/features/check-and-unblock-features.use-case.js +2 -2
  22. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts +3 -1
  23. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts.map +1 -1
  24. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.js +40 -10
  25. package/dist/packages/core/src/application/use-cases/features/create/types.d.ts +5 -2
  26. package/dist/packages/core/src/application/use-cases/features/create/types.d.ts.map +1 -1
  27. package/dist/packages/core/src/application/use-cases/features/delete-feature.use-case.d.ts.map +1 -1
  28. package/dist/packages/core/src/application/use-cases/features/delete-feature.use-case.js +13 -0
  29. package/dist/packages/core/src/application/use-cases/features/promote/promote-exploration.use-case.d.ts +40 -0
  30. package/dist/packages/core/src/application/use-cases/features/promote/promote-exploration.use-case.d.ts.map +1 -0
  31. package/dist/packages/core/src/application/use-cases/features/promote/promote-exploration.use-case.js +125 -0
  32. package/dist/packages/core/src/application/use-cases/features/resume-feature.use-case.js +2 -2
  33. package/dist/packages/core/src/application/use-cases/features/start-feature.use-case.d.ts.map +1 -1
  34. package/dist/packages/core/src/application/use-cases/features/start-feature.use-case.js +5 -3
  35. package/dist/packages/core/src/domain/factories/settings-defaults.factory.d.ts.map +1 -1
  36. package/dist/packages/core/src/domain/factories/settings-defaults.factory.js +57 -2
  37. package/dist/packages/core/src/domain/generated/output.d.ts +72 -4
  38. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  39. package/dist/packages/core/src/domain/generated/output.js +12 -0
  40. package/dist/packages/core/src/domain/lifecycle-gates.d.ts +21 -6
  41. package/dist/packages/core/src/domain/lifecycle-gates.d.ts.map +1 -1
  42. package/dist/packages/core/src/domain/lifecycle-gates.js +25 -6
  43. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  44. package/dist/packages/core/src/infrastructure/di/container.js +7 -0
  45. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts +5 -1
  46. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts.map +1 -1
  47. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.js +16 -4
  48. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +4 -1
  49. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
  50. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +34 -2
  51. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/051-replace-fast-with-mode.d.ts +19 -0
  52. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/051-replace-fast-with-mode.d.ts.map +1 -0
  53. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/051-replace-fast-with-mode.js +46 -0
  54. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/052-replace-default-fast-mode-with-default-mode.d.ts +17 -0
  55. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/052-replace-default-fast-mode-with-default-mode.d.ts.map +1 -0
  56. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/052-replace-default-fast-mode-with-default-mode.js +37 -0
  57. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-exploration-max-iterations.d.ts +12 -0
  58. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-exploration-max-iterations.d.ts.map +1 -0
  59. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-exploration-max-iterations.js +17 -0
  60. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-skill-injection-config.d.ts +15 -0
  61. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-skill-injection-config.d.ts.map +1 -0
  62. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-skill-injection-config.js +23 -0
  63. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/054-add-injected-skills-to-features.d.ts +11 -0
  64. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/054-add-injected-skills-to-features.d.ts.map +1 -0
  65. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/054-add-injected-skills-to-features.js +19 -0
  66. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.d.ts.map +1 -1
  67. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.js +13 -7
  68. package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.js +3 -3
  69. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/exploration-agent-graph.d.ts +362 -0
  70. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/exploration-agent-graph.d.ts.map +1 -0
  71. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/exploration-agent-graph.js +72 -0
  72. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.d.ts +20 -0
  73. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.d.ts.map +1 -1
  74. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts +68 -0
  75. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts.map +1 -1
  76. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.d.ts +2 -2
  77. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.d.ts.map +1 -1
  78. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.js +3 -3
  79. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts +2 -2
  80. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts.map +1 -1
  81. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.js +19 -8
  82. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/lifecycle-context.d.ts.map +1 -1
  83. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/lifecycle-context.js +1 -0
  84. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/apply-feedback.node.d.ts +18 -0
  85. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/apply-feedback.node.d.ts.map +1 -0
  86. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/apply-feedback.node.js +52 -0
  87. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.d.ts.map +1 -1
  88. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.js +39 -20
  89. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts.map +1 -1
  90. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.js +1 -0
  91. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/apply-feedback.prompt.d.ts +24 -0
  92. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/apply-feedback.prompt.d.ts.map +1 -0
  93. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/apply-feedback.prompt.js +38 -0
  94. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/prototype-generate.prompt.d.ts +31 -0
  95. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/prototype-generate.prompt.d.ts.map +1 -0
  96. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/prototype-generate.prompt.js +240 -0
  97. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prototype-generate.node.d.ts +21 -0
  98. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prototype-generate.node.d.ts.map +1 -0
  99. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prototype-generate.node.js +134 -0
  100. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.d.ts +4 -0
  101. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.d.ts.map +1 -1
  102. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.js +17 -0
  103. package/dist/packages/core/src/infrastructure/services/git/git-fork.service.d.ts +5 -0
  104. package/dist/packages/core/src/infrastructure/services/git/git-fork.service.d.ts.map +1 -1
  105. package/dist/packages/core/src/infrastructure/services/git/git-fork.service.js +34 -0
  106. package/dist/packages/core/src/infrastructure/services/skill-injector.service.d.ts +26 -0
  107. package/dist/packages/core/src/infrastructure/services/skill-injector.service.d.ts.map +1 -0
  108. package/dist/packages/core/src/infrastructure/services/skill-injector.service.js +201 -0
  109. package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.d.ts +1 -1
  110. package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.d.ts.map +1 -1
  111. package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.js +7 -4
  112. package/dist/src/presentation/cli/commands/feat/feedback.command.d.ts +12 -0
  113. package/dist/src/presentation/cli/commands/feat/feedback.command.d.ts.map +1 -0
  114. package/dist/src/presentation/cli/commands/feat/feedback.command.js +64 -0
  115. package/dist/src/presentation/cli/commands/feat/index.d.ts.map +1 -1
  116. package/dist/src/presentation/cli/commands/feat/index.js +5 -1
  117. package/dist/src/presentation/cli/commands/feat/new.command.d.ts.map +1 -1
  118. package/dist/src/presentation/cli/commands/feat/new.command.js +21 -5
  119. package/dist/src/presentation/cli/commands/feat/promote.command.d.ts +13 -0
  120. package/dist/src/presentation/cli/commands/feat/promote.command.d.ts.map +1 -0
  121. package/dist/src/presentation/cli/commands/feat/promote.command.js +41 -0
  122. package/dist/src/presentation/web/app/actions/add-injected-skill.d.ts +7 -0
  123. package/dist/src/presentation/web/app/actions/add-injected-skill.d.ts.map +1 -0
  124. package/dist/src/presentation/web/app/actions/add-injected-skill.js +34 -0
  125. package/dist/src/presentation/web/app/actions/create-feature.d.ts +5 -2
  126. package/dist/src/presentation/web/app/actions/create-feature.d.ts.map +1 -1
  127. package/dist/src/presentation/web/app/actions/create-feature.js +5 -3
  128. package/dist/src/presentation/web/app/actions/discard-exploration.d.ts +9 -0
  129. package/dist/src/presentation/web/app/actions/discard-exploration.d.ts.map +1 -0
  130. package/dist/src/presentation/web/app/actions/discard-exploration.js +29 -0
  131. package/dist/src/presentation/web/app/actions/get-workflow-defaults.d.ts +3 -1
  132. package/dist/src/presentation/web/app/actions/get-workflow-defaults.d.ts.map +1 -1
  133. package/dist/src/presentation/web/app/actions/get-workflow-defaults.js +3 -1
  134. package/dist/src/presentation/web/app/actions/promote-exploration.d.ts +11 -0
  135. package/dist/src/presentation/web/app/actions/promote-exploration.d.ts.map +1 -0
  136. package/dist/src/presentation/web/app/actions/promote-exploration.js +21 -0
  137. package/dist/src/presentation/web/app/actions/remove-injected-skill.d.ts +6 -0
  138. package/dist/src/presentation/web/app/actions/remove-injected-skill.d.ts.map +1 -0
  139. package/dist/src/presentation/web/app/actions/remove-injected-skill.js +35 -0
  140. package/dist/src/presentation/web/app/actions/submit-exploration-feedback.d.ts +12 -0
  141. package/dist/src/presentation/web/app/actions/submit-exploration-feedback.d.ts.map +1 -0
  142. package/dist/src/presentation/web/app/actions/submit-exploration-feedback.js +40 -0
  143. package/dist/src/presentation/web/app/api/agent-events/route.d.ts.map +1 -1
  144. package/dist/src/presentation/web/app/api/agent-events/route.js +1 -0
  145. package/dist/src/presentation/web/app/build-feature-node-data.d.ts.map +1 -1
  146. package/dist/src/presentation/web/app/build-feature-node-data.js +6 -2
  147. package/dist/src/presentation/web/app/build-graph-nodes.js +4 -2
  148. package/dist/src/presentation/web/app/skills/page.d.ts.map +1 -1
  149. package/dist/src/presentation/web/app/skills/page.js +6 -1
  150. package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.d.ts +1 -1
  151. package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.d.ts.map +1 -1
  152. package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.js +3 -0
  153. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.d.ts.map +1 -1
  154. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.js +65 -1
  155. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts +5 -2
  156. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts.map +1 -1
  157. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.js +20 -12
  158. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.d.ts.map +1 -1
  159. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.js +3 -1
  160. package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.d.ts +8 -0
  161. package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.d.ts.map +1 -0
  162. package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.js +33 -0
  163. package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.stories.d.ts +10 -0
  164. package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.stories.d.ts.map +1 -0
  165. package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.stories.js +33 -0
  166. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts +6 -1
  167. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts.map +1 -1
  168. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.js +16 -4
  169. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.d.ts.map +1 -1
  170. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.js +10 -4
  171. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.d.ts +2 -0
  172. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.d.ts.map +1 -1
  173. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.js +12 -0
  174. package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.d.ts +11 -0
  175. package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.d.ts.map +1 -0
  176. package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.js +34 -0
  177. package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.stories.d.ts +16 -0
  178. package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.stories.d.ts.map +1 -0
  179. package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.stories.js +70 -0
  180. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.d.ts.map +1 -1
  181. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.js +2 -0
  182. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +10 -2
  183. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map +1 -1
  184. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.js +12 -0
  185. package/dist/src/presentation/web/components/common/feature-node/feature-node.d.ts.map +1 -1
  186. package/dist/src/presentation/web/components/common/feature-node/feature-node.js +7 -2
  187. package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
  188. package/dist/src/presentation/web/components/features/settings/settings-page-client.js +6 -6
  189. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.js +3 -3
  190. package/dist/src/presentation/web/components/features/skills/add-skill-dialog.d.ts +10 -0
  191. package/dist/src/presentation/web/components/features/skills/add-skill-dialog.d.ts.map +1 -0
  192. package/dist/src/presentation/web/components/features/skills/add-skill-dialog.js +56 -0
  193. package/dist/src/presentation/web/components/features/skills/add-skill-dialog.stories.d.ts +16 -0
  194. package/dist/src/presentation/web/components/features/skills/add-skill-dialog.stories.d.ts.map +1 -0
  195. package/dist/src/presentation/web/components/features/skills/add-skill-dialog.stories.js +66 -0
  196. package/dist/src/presentation/web/components/features/skills/auto-injected-skills-section.d.ts +8 -0
  197. package/dist/src/presentation/web/components/features/skills/auto-injected-skills-section.d.ts.map +1 -0
  198. package/dist/src/presentation/web/components/features/skills/auto-injected-skills-section.js +42 -0
  199. package/dist/src/presentation/web/components/features/skills/auto-injected-skills-section.stories.d.ts +16 -0
  200. package/dist/src/presentation/web/components/features/skills/auto-injected-skills-section.stories.d.ts.map +1 -0
  201. package/dist/src/presentation/web/components/features/skills/auto-injected-skills-section.stories.js +69 -0
  202. package/dist/src/presentation/web/components/features/skills/skills-page-client.d.ts +3 -1
  203. package/dist/src/presentation/web/components/features/skills/skills-page-client.d.ts.map +1 -1
  204. package/dist/src/presentation/web/components/features/skills/skills-page-client.js +5 -3
  205. package/dist/src/presentation/web/components/features/skills/skills-page-client.stories.d.ts +1 -0
  206. package/dist/src/presentation/web/components/features/skills/skills-page-client.stories.d.ts.map +1 -1
  207. package/dist/src/presentation/web/components/features/skills/skills-page-client.stories.js +27 -0
  208. package/dist/src/presentation/web/components/ui/toggle-group.d.ts +10 -0
  209. package/dist/src/presentation/web/components/ui/toggle-group.d.ts.map +1 -0
  210. package/dist/src/presentation/web/components/ui/toggle-group.js +22 -0
  211. package/dist/src/presentation/web/components/ui/toggle.d.ts +10 -0
  212. package/dist/src/presentation/web/components/ui/toggle.d.ts.map +1 -0
  213. package/dist/src/presentation/web/components/ui/toggle.js +26 -0
  214. package/dist/translations/ar/cli.json +26 -0
  215. package/dist/translations/ar/web.json +21 -13
  216. package/dist/translations/de/cli.json +26 -0
  217. package/dist/translations/de/web.json +41 -19
  218. package/dist/translations/en/cli.json +26 -0
  219. package/dist/translations/en/web.json +10 -2
  220. package/dist/translations/es/cli.json +26 -0
  221. package/dist/translations/es/web.json +22 -14
  222. package/dist/translations/fr/cli.json +26 -0
  223. package/dist/translations/fr/web.json +22 -14
  224. package/dist/translations/he/cli.json +26 -0
  225. package/dist/translations/he/web.json +22 -14
  226. package/dist/translations/pt/cli.json +26 -0
  227. package/dist/translations/pt/web.json +22 -14
  228. package/dist/translations/ru/cli.json +26 -0
  229. package/dist/translations/ru/web.json +22 -14
  230. package/dist/tsconfig.build.tsbuildinfo +1 -1
  231. package/package.json +1 -1
  232. package/web/.next/BUILD_ID +1 -1
  233. package/web/.next/build-manifest.json +5 -5
  234. package/web/.next/fallback-build-manifest.json +2 -2
  235. package/web/.next/prerender-manifest.json +3 -3
  236. package/web/.next/required-server-files.js +2 -2
  237. package/web/.next/required-server-files.json +2 -2
  238. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/build-manifest.json +3 -3
  239. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +29 -29
  240. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +1 -1
  241. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  242. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  243. package/web/.next/server/app/(dashboard)/@drawer/chat/page/build-manifest.json +3 -3
  244. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +27 -27
  245. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js +1 -1
  246. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
  247. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
  248. package/web/.next/server/app/(dashboard)/@drawer/create/page/build-manifest.json +3 -3
  249. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +30 -30
  250. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +1 -1
  251. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  252. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  253. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/build-manifest.json +3 -3
  254. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +121 -76
  255. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +3 -2
  256. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  257. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  258. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/build-manifest.json +3 -3
  259. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +121 -76
  260. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +3 -2
  261. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  262. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  263. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/build-manifest.json +3 -3
  264. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  265. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +1 -1
  266. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  267. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  268. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/build-manifest.json +3 -3
  269. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  270. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +1 -1
  271. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  272. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  273. package/web/.next/server/app/(dashboard)/chat/page/build-manifest.json +3 -3
  274. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +27 -27
  275. package/web/.next/server/app/(dashboard)/chat/page.js +1 -1
  276. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  277. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  278. package/web/.next/server/app/(dashboard)/create/page/build-manifest.json +3 -3
  279. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +30 -30
  280. package/web/.next/server/app/(dashboard)/create/page.js +1 -1
  281. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  282. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  283. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/build-manifest.json +3 -3
  284. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +121 -76
  285. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +3 -2
  286. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  287. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  288. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/build-manifest.json +3 -3
  289. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +121 -76
  290. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +3 -2
  291. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  292. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  293. package/web/.next/server/app/(dashboard)/page/build-manifest.json +3 -3
  294. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +27 -27
  295. package/web/.next/server/app/(dashboard)/page.js +1 -1
  296. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  297. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  298. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/build-manifest.json +3 -3
  299. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  300. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +1 -1
  301. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  302. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  303. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/build-manifest.json +3 -3
  304. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  305. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +1 -1
  306. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  307. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  308. package/web/.next/server/app/_global-error/page/build-manifest.json +3 -3
  309. package/web/.next/server/app/_global-error.html +2 -2
  310. package/web/.next/server/app/_global-error.rsc +1 -1
  311. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  312. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  313. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  314. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  315. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  316. package/web/.next/server/app/_not-found/page/build-manifest.json +3 -3
  317. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +6 -6
  318. package/web/.next/server/app/_not-found/page.js +1 -1
  319. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  320. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  321. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  322. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  323. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  324. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
  325. package/web/.next/server/app/features/page/build-manifest.json +3 -3
  326. package/web/.next/server/app/features/page/server-reference-manifest.json +6 -6
  327. package/web/.next/server/app/features/page.js +1 -1
  328. package/web/.next/server/app/features/page.js.nft.json +1 -1
  329. package/web/.next/server/app/features/page_client-reference-manifest.js +1 -1
  330. package/web/.next/server/app/settings/page/build-manifest.json +3 -3
  331. package/web/.next/server/app/settings/page/server-reference-manifest.json +9 -9
  332. package/web/.next/server/app/settings/page.js +3 -3
  333. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  334. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  335. package/web/.next/server/app/skills/page/build-manifest.json +3 -3
  336. package/web/.next/server/app/skills/page/server-reference-manifest.json +52 -22
  337. package/web/.next/server/app/skills/page.js +3 -2
  338. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  339. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  340. package/web/.next/server/app/tools/page/build-manifest.json +3 -3
  341. package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
  342. package/web/.next/server/app/tools/page.js +1 -1
  343. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  344. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  345. package/web/.next/server/app/version/page/build-manifest.json +3 -3
  346. package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
  347. package/web/.next/server/app/version/page.js +1 -1
  348. package/web/.next/server/app/version/page.js.nft.json +1 -1
  349. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  350. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js +1 -1
  351. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js.map +1 -1
  352. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js +1 -1
  353. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js.map +1 -1
  354. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  355. package/web/.next/server/chunks/[root-of-the-server]__c78383b1._.js +1 -1
  356. package/web/.next/server/chunks/[root-of-the-server]__c78383b1._.js.map +1 -1
  357. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js +1 -1
  358. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
  359. package/web/.next/server/chunks/ssr/{_0727935d._.js → 403f9_next_8a33ddee._.js} +2 -2
  360. package/web/.next/server/chunks/ssr/403f9_next_8a33ddee._.js.map +1 -0
  361. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  362. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  363. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +3 -3
  364. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
  365. package/web/.next/server/chunks/ssr/[root-of-the-server]__03c66352._.js +4 -0
  366. package/web/.next/server/chunks/ssr/[root-of-the-server]__03c66352._.js.map +1 -0
  367. package/web/.next/server/chunks/ssr/{[root-of-the-server]__e88da4ee._.js → [root-of-the-server]__1cd4327c._.js} +2 -2
  368. package/web/.next/server/chunks/ssr/[root-of-the-server]__1cd4327c._.js.map +1 -0
  369. package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js +1 -1
  370. package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js.map +1 -1
  371. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  372. package/web/.next/server/chunks/ssr/[root-of-the-server]__403afc23._.js +4 -0
  373. package/web/.next/server/chunks/ssr/[root-of-the-server]__403afc23._.js.map +1 -0
  374. package/web/.next/server/chunks/ssr/[root-of-the-server]__4ed9b909._.js +1 -1
  375. package/web/.next/server/chunks/ssr/[root-of-the-server]__684a868c._.js +1 -1
  376. package/web/.next/server/chunks/ssr/[root-of-the-server]__684a868c._.js.map +1 -1
  377. package/web/.next/server/chunks/ssr/[root-of-the-server]__69dd3217._.js +1 -1
  378. package/web/.next/server/chunks/ssr/[root-of-the-server]__69dd3217._.js.map +1 -1
  379. package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js +1 -1
  380. package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js.map +1 -1
  381. package/web/.next/server/chunks/ssr/{[root-of-the-server]__7ffd3598._.js → [root-of-the-server]__92ffd5ee._.js} +3 -3
  382. package/web/.next/server/chunks/ssr/[root-of-the-server]__92ffd5ee._.js.map +1 -0
  383. package/web/.next/server/chunks/ssr/[root-of-the-server]__b020c17d._.js +2 -2
  384. package/web/.next/server/chunks/ssr/[root-of-the-server]__b020c17d._.js.map +1 -1
  385. package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js +1 -1
  386. package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js.map +1 -1
  387. package/web/.next/server/chunks/ssr/[root-of-the-server]__c1262d08._.js +1 -1
  388. package/web/.next/server/chunks/ssr/[root-of-the-server]__c16bf5de._.js +1 -1
  389. package/web/.next/server/chunks/ssr/[root-of-the-server]__c16bf5de._.js.map +1 -1
  390. package/web/.next/server/chunks/ssr/[root-of-the-server]__df550e85._.js +3 -0
  391. package/web/.next/server/chunks/ssr/[root-of-the-server]__df550e85._.js.map +1 -0
  392. package/web/.next/server/chunks/ssr/[root-of-the-server]__df5602bf._.js +4 -0
  393. package/web/.next/server/chunks/ssr/[root-of-the-server]__df5602bf._.js.map +1 -0
  394. package/web/.next/server/chunks/ssr/[root-of-the-server]__e9f4767a._.js +4 -0
  395. package/web/.next/server/chunks/ssr/[root-of-the-server]__e9f4767a._.js.map +1 -0
  396. package/web/.next/server/chunks/ssr/_02e01240._.js +1 -1
  397. package/web/.next/server/chunks/ssr/_02e01240._.js.map +1 -1
  398. package/web/.next/server/chunks/ssr/_05c23ad9._.js +1 -1
  399. package/web/.next/server/chunks/ssr/_05c23ad9._.js.map +1 -1
  400. package/web/.next/server/chunks/ssr/{_97ba1e88._.js → _0fd635d7._.js} +2 -2
  401. package/web/.next/server/chunks/ssr/_0fd635d7._.js.map +1 -0
  402. package/web/.next/server/chunks/ssr/_16eb4fec._.js +1 -1
  403. package/web/.next/server/chunks/ssr/_16eb4fec._.js.map +1 -1
  404. package/web/.next/server/chunks/ssr/_18886033._.js +1 -1
  405. package/web/.next/server/chunks/ssr/_18886033._.js.map +1 -1
  406. package/web/.next/server/chunks/ssr/_22e00a14._.js +1 -1
  407. package/web/.next/server/chunks/ssr/_22e00a14._.js.map +1 -1
  408. package/web/.next/server/chunks/ssr/_30ddea9d._.js +9 -0
  409. package/web/.next/server/chunks/ssr/_30ddea9d._.js.map +1 -0
  410. package/web/.next/server/chunks/ssr/{_cbeb3852._.js → _34d897da._.js} +2 -2
  411. package/web/.next/server/chunks/ssr/{_cbeb3852._.js.map → _34d897da._.js.map} +1 -1
  412. package/web/.next/server/chunks/ssr/_45496654._.js +3 -0
  413. package/web/.next/server/chunks/ssr/_45496654._.js.map +1 -0
  414. package/web/.next/server/chunks/ssr/_4cbb7f95._.js +1 -1
  415. package/web/.next/server/chunks/ssr/_4cbb7f95._.js.map +1 -1
  416. package/web/.next/server/chunks/ssr/_5119a3df._.js +1 -1
  417. package/web/.next/server/chunks/ssr/_5119a3df._.js.map +1 -1
  418. package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
  419. package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
  420. package/web/.next/server/chunks/ssr/_6e79a2cc._.js +3 -0
  421. package/web/.next/server/chunks/ssr/_6e79a2cc._.js.map +1 -0
  422. package/web/.next/server/chunks/ssr/_6f35fb9a._.js +3 -0
  423. package/web/.next/server/chunks/ssr/_6f35fb9a._.js.map +1 -0
  424. package/web/.next/server/chunks/ssr/_a5a5901d._.js +1 -1
  425. package/web/.next/server/chunks/ssr/_a5a5901d._.js.map +1 -1
  426. package/web/.next/server/chunks/ssr/_ad09f271._.js +1 -1
  427. package/web/.next/server/chunks/ssr/_ad09f271._.js.map +1 -1
  428. package/web/.next/server/chunks/ssr/_c3f595c6._.js +1 -1
  429. package/web/.next/server/chunks/ssr/_c3f595c6._.js.map +1 -1
  430. package/web/.next/server/chunks/ssr/_cac4abe6._.js +3 -0
  431. package/web/.next/server/chunks/ssr/_cac4abe6._.js.map +1 -0
  432. package/web/.next/server/chunks/ssr/_df737cce._.js +3 -0
  433. package/web/.next/server/chunks/ssr/_df737cce._.js.map +1 -0
  434. package/web/.next/server/chunks/ssr/_ea9e1556._.js +1 -1
  435. package/web/.next/server/chunks/ssr/_ea9e1556._.js.map +1 -1
  436. package/web/.next/server/chunks/ssr/_f1ba9be6._.js +2 -2
  437. package/web/.next/server/chunks/ssr/_f1ba9be6._.js.map +1 -1
  438. package/web/.next/server/chunks/ssr/_f33cd07e._.js +2 -2
  439. package/web/.next/server/chunks/ssr/_f33cd07e._.js.map +1 -1
  440. package/web/.next/server/chunks/ssr/_f8b45233._.js +1 -1
  441. package/web/.next/server/chunks/ssr/_f8b45233._.js.map +1 -1
  442. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  443. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  444. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +1 -1
  445. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js.map +1 -1
  446. package/web/.next/server/chunks/ssr/node_modules__pnpm_1300ae39._.js +3 -0
  447. package/web/.next/server/chunks/ssr/node_modules__pnpm_1300ae39._.js.map +1 -0
  448. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_approve-feature_ts_9453ce8b._.js +3 -0
  449. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_approve-feature_ts_9453ce8b._.js.map +1 -0
  450. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +1 -1
  451. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js +1 -1
  452. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js.map +1 -1
  453. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js +1 -1
  454. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js.map +1 -1
  455. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  456. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  457. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js +3 -0
  458. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js.map +1 -0
  459. package/web/.next/server/chunks/ssr/src_presentation_web_db9fa0c2._.js +1 -1
  460. package/web/.next/server/chunks/ssr/src_presentation_web_db9fa0c2._.js.map +1 -1
  461. package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js +1 -1
  462. package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js.map +1 -1
  463. package/web/.next/server/middleware-build-manifest.js +3 -3
  464. package/web/.next/server/pages/500.html +2 -2
  465. package/web/.next/server/server-reference-manifest.js +1 -1
  466. package/web/.next/server/server-reference-manifest.json +349 -211
  467. package/web/.next/static/chunks/{bd793f5313d21cef.js → 0769c695d6b663c7.js} +1 -1
  468. package/web/.next/static/chunks/09a25231e5fc1ab8.js +3 -0
  469. package/web/.next/static/chunks/{1b25af1545d4fe75.js → 0f30a983f3467cd5.js} +1 -1
  470. package/web/.next/static/chunks/185e4f36cb6efb24.js +1 -0
  471. package/web/.next/static/chunks/{d5366257d6b9f855.js → 2a9af061f4fbe7f5.js} +1 -1
  472. package/web/.next/static/chunks/2ceebcc839ee0d4b.js +1 -0
  473. package/web/.next/static/chunks/{ff8f6b0cd99a48f0.js → 37f9543560c58ea6.js} +1 -1
  474. package/web/.next/static/chunks/{6d13105df94166ea.js → 4219ddfde68a6d0b.js} +1 -1
  475. package/web/.next/static/chunks/{b1ca3617f9e0b324.js → 478adf5d5156f002.js} +1 -1
  476. package/web/.next/static/chunks/52681a7f14138e48.js +1 -0
  477. package/web/.next/static/chunks/5743a9c1c63e5261.js +5 -0
  478. package/web/.next/static/chunks/5cf9745e2ef3837c.js +1 -0
  479. package/web/.next/static/chunks/5e20f692bbfcfb94.js +7 -0
  480. package/web/.next/static/chunks/74729cbad964be13.js +1 -0
  481. package/web/.next/static/chunks/{294b5af681c0f97c.js → 9a78b4c5dcd28196.js} +2 -2
  482. package/web/.next/static/chunks/c80e8e3d0cf5baa6.css +1 -0
  483. package/web/.next/static/chunks/cc5fe8d1d9e1e519.js +5 -0
  484. package/web/.next/static/chunks/d5bf9c963b5346e1.js +1 -0
  485. package/web/.next/static/chunks/d60cee2e7318f425.js +1 -0
  486. package/web/.next/static/chunks/da565c85277c2461.js +1 -0
  487. package/web/.next/static/chunks/e93ae5725b0babeb.js +1 -0
  488. package/web/.next/static/chunks/fb89cf91c10b2e8b.js +1 -0
  489. package/web/.next/static/chunks/{f06e7cf3b04606a9.js → fc595d95626ac9bb.js} +1 -1
  490. package/web/.next/static/chunks/{turbopack-57bb0674e2cd1d31.js → turbopack-b38a68b1b1c41a87.js} +1 -1
  491. package/web/.next/server/chunks/ssr/[root-of-the-server]__20a36a42._.js +0 -3
  492. package/web/.next/server/chunks/ssr/[root-of-the-server]__20a36a42._.js.map +0 -1
  493. package/web/.next/server/chunks/ssr/[root-of-the-server]__4fb81977._.js +0 -4
  494. package/web/.next/server/chunks/ssr/[root-of-the-server]__4fb81977._.js.map +0 -1
  495. package/web/.next/server/chunks/ssr/[root-of-the-server]__7dcd0917._.js +0 -4
  496. package/web/.next/server/chunks/ssr/[root-of-the-server]__7dcd0917._.js.map +0 -1
  497. package/web/.next/server/chunks/ssr/[root-of-the-server]__7ffd3598._.js.map +0 -1
  498. package/web/.next/server/chunks/ssr/[root-of-the-server]__ba7f5873._.js +0 -4
  499. package/web/.next/server/chunks/ssr/[root-of-the-server]__ba7f5873._.js.map +0 -1
  500. package/web/.next/server/chunks/ssr/[root-of-the-server]__c5e09f6f._.js +0 -4
  501. package/web/.next/server/chunks/ssr/[root-of-the-server]__c5e09f6f._.js.map +0 -1
  502. package/web/.next/server/chunks/ssr/[root-of-the-server]__e88da4ee._.js.map +0 -1
  503. package/web/.next/server/chunks/ssr/_0727935d._.js.map +0 -1
  504. package/web/.next/server/chunks/ssr/_0dc06d07._.js +0 -3
  505. package/web/.next/server/chunks/ssr/_0dc06d07._.js.map +0 -1
  506. package/web/.next/server/chunks/ssr/_52a9052c._.js +0 -3
  507. package/web/.next/server/chunks/ssr/_52a9052c._.js.map +0 -1
  508. package/web/.next/server/chunks/ssr/_682fc996._.js +0 -9
  509. package/web/.next/server/chunks/ssr/_682fc996._.js.map +0 -1
  510. package/web/.next/server/chunks/ssr/_6892e3b9._.js +0 -3
  511. package/web/.next/server/chunks/ssr/_6892e3b9._.js.map +0 -1
  512. package/web/.next/server/chunks/ssr/_97ba1e88._.js.map +0 -1
  513. package/web/.next/server/chunks/ssr/_a1068852._.js +0 -3
  514. package/web/.next/server/chunks/ssr/_a1068852._.js.map +0 -1
  515. package/web/.next/server/chunks/ssr/node_modules__pnpm_12a7ede0._.js +0 -3
  516. package/web/.next/server/chunks/ssr/node_modules__pnpm_12a7ede0._.js.map +0 -1
  517. package/web/.next/static/chunks/14dd572f1096c435.js +0 -1
  518. package/web/.next/static/chunks/20f7cc98a013b11c.js +0 -1
  519. package/web/.next/static/chunks/4cec255f2754e5ec.js +0 -1
  520. package/web/.next/static/chunks/507597d4ee67da52.js +0 -5
  521. package/web/.next/static/chunks/5b7275374d2696b3.css +0 -1
  522. package/web/.next/static/chunks/647140fe96a7c88a.js +0 -1
  523. package/web/.next/static/chunks/688aa1f1c444e691.js +0 -1
  524. package/web/.next/static/chunks/6d6f70ff5151b8cb.js +0 -7
  525. package/web/.next/static/chunks/6e6f02f79befe9a0.js +0 -1
  526. package/web/.next/static/chunks/982aef195c118996.js +0 -1
  527. package/web/.next/static/chunks/c3ef3b892f7794ec.js +0 -1
  528. package/web/.next/static/chunks/cc5eb740be9562f5.js +0 -1
  529. package/web/.next/static/chunks/dc134f3f58cdf850.js +0 -5
  530. package/web/.next/static/chunks/e4523284672b11e5.js +0 -3
  531. /package/web/.next/static/{tylqydlwEYLIq1IbKLtlP → G895CgnbZl4YvWN_DaRC-}/_buildManifest.js +0 -0
  532. /package/web/.next/static/{tylqydlwEYLIq1IbKLtlP → G895CgnbZl4YvWN_DaRC-}/_clientMiddlewareManifest.json +0 -0
  533. /package/web/.next/static/{tylqydlwEYLIq1IbKLtlP → G895CgnbZl4YvWN_DaRC-}/_ssgManifest.js +0 -0
@@ -39,16 +39,21 @@ properties:
39
39
  agentRunId:
40
40
  type: string
41
41
  description: Associated agent run ID for process tracking (optional)
42
+ injectedSkills:
43
+ type: array
44
+ items:
45
+ type: string
46
+ description: Skills that were injected into this feature's worktree during creation
42
47
  specPath:
43
48
  type: string
44
49
  description: Absolute path to the feature spec directory inside the worktree
45
50
  repositoryId:
46
51
  $ref: UUID.yaml
47
52
  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
53
+ mode:
54
+ $ref: FeatureMode.yaml
55
+ default: Regular
56
+ description: "Execution mode determining the workflow: Regular (full SDLC), Fast (direct implementation), or Exploration (iterative prototyping)"
52
57
  push:
53
58
  type: boolean
54
59
  default: false
@@ -73,6 +78,10 @@ properties:
73
78
  type: boolean
74
79
  default: false
75
80
  description: "Enable evidence collection after implementation (default: false)"
81
+ injectSkills:
82
+ type: boolean
83
+ default: false
84
+ description: "Inject curated skills into the feature worktree (default: false)"
76
85
  commitEvidence:
77
86
  type: boolean
78
87
  default: false
@@ -83,6 +92,17 @@ properties:
83
92
  worktreePath:
84
93
  type: string
85
94
  description: Absolute path to the git worktree for this feature
95
+ iterationCount:
96
+ type: integer
97
+ minimum: -2147483648
98
+ maximum: 2147483647
99
+ default: 0
100
+ description: Current feedback iteration count in exploration mode (0 when not exploring)
101
+ maxIterations:
102
+ type: integer
103
+ minimum: -2147483648
104
+ maximum: 2147483647
105
+ description: Maximum allowed iterations for exploration mode (only set when mode is Exploration)
86
106
  pr:
87
107
  $ref: PullRequest.yaml
88
108
  description: Pull request data (null until PR created)
@@ -107,15 +127,17 @@ required:
107
127
  - lifecycle
108
128
  - messages
109
129
  - relatedArtifacts
110
- - fast
130
+ - mode
111
131
  - push
112
132
  - openPr
113
133
  - forkAndPr
114
134
  - commitSpecs
115
135
  - ciWatchEnabled
116
136
  - enableEvidence
137
+ - injectSkills
117
138
  - commitEvidence
118
139
  - approvalGates
140
+ - iterationCount
119
141
  allOf:
120
142
  - $ref: SoftDeletableEntity.yaml
121
143
  description: Central entity tracking a piece of work through the SDLC lifecycle (Aggregate Root)
@@ -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
@@ -0,0 +1,17 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: SkillInjectionConfig.yaml
3
+ type: object
4
+ properties:
5
+ enabled:
6
+ type: boolean
7
+ default: false
8
+ description: "Whether skill injection is enabled (default: false, opt-in)"
9
+ skills:
10
+ type: array
11
+ items:
12
+ $ref: SkillSource.yaml
13
+ description: List of skills to inject into feature worktrees
14
+ required:
15
+ - enabled
16
+ - skills
17
+ description: Skill injection configuration for feature worktrees
@@ -0,0 +1,21 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: SkillSource.yaml
3
+ type: object
4
+ properties:
5
+ name:
6
+ type: string
7
+ description: Unique skill directory name (e.g. 'architecture-reviewer')
8
+ type:
9
+ $ref: SkillSourceType.yaml
10
+ description: How this skill is provisioned (local copy or remote install)
11
+ source:
12
+ type: string
13
+ description: Source path (local) or npm package/URL (remote)
14
+ remoteSkillName:
15
+ type: string
16
+ description: Remote skill name passed to --skill flag (remote type only)
17
+ required:
18
+ - name
19
+ - type
20
+ - source
21
+ description: A skill source for injection into feature worktrees
@@ -0,0 +1,7 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: SkillSourceType.yaml
3
+ type: string
4
+ enum:
5
+ - local
6
+ - remote
7
+ description: How a skill is provisioned into a worktree
@@ -55,20 +55,28 @@ 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
65
70
  maximum: 2147483647
66
71
  description: "Minutes after completion before auto-archiving a feature (default: 10, 0 = disabled)"
72
+ skillInjection:
73
+ $ref: SkillInjectionConfig.yaml
74
+ description: Skill injection configuration (optional, disabled by default)
67
75
  required:
68
76
  - openPrOnImplementationComplete
69
77
  - approvalGateDefaults
70
78
  - ciWatchEnabled
71
79
  - enableEvidence
72
80
  - commitEvidence
73
- - defaultFastMode
81
+ - defaultMode
74
82
  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"}
@@ -20,4 +20,5 @@ export type { IDeploymentService, DeploymentStatus } from './deployment-service.
20
20
  export type { IGitHubRepositoryService, GitHubRepo, GitHubOrganization, ListUserRepositoriesOptions, CloneOptions, ParsedGitHubUrl, } from './github-repository-service.interface.js';
21
21
  export { GitHubAuthError, GitHubCloneError, GitHubUrlParseError, GitHubRepoListError, } from './github-repository-service.interface.js';
22
22
  export type { IInteractiveSessionService, StreamChunk, UnsubscribeFn, ChatState, } from './interactive-session-service.interface.js';
23
+ export type { ISkillInjectorService, SkillInjectionResult } from './skill-injector.interface.js';
23
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAClG,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,uCAAuC,CAAC;AAC/C,YAAY,EACV,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,iCAAiC,CAAC;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACnF,YAAY,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACjG,YAAY,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAChF,YAAY,EACV,aAAa,EACb,QAAQ,EACR,cAAc,EACd,WAAW,EACX,aAAa,EACb,cAAc,GACf,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC3E,YAAY,EACV,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,eAAe,GAChB,MAAM,qCAAqC,CAAC;AAC7C,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjF,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC9F,YAAY,EACV,wBAAwB,EACxB,UAAU,EACV,kBAAkB,EAClB,2BAA2B,EAC3B,YAAY,EACZ,eAAe,GAChB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,0CAA0C,CAAC;AAClD,YAAY,EACV,0BAA0B,EAC1B,WAAW,EACX,aAAa,EACb,SAAS,GACV,MAAM,4CAA4C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAClG,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,uCAAuC,CAAC;AAC/C,YAAY,EACV,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,iCAAiC,CAAC;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACnF,YAAY,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACjG,YAAY,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAChF,YAAY,EACV,aAAa,EACb,QAAQ,EACR,cAAc,EACd,WAAW,EACX,aAAa,EACb,cAAc,GACf,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC3E,YAAY,EACV,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,eAAe,GAChB,MAAM,qCAAqC,CAAC;AAC7C,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjF,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC9F,YAAY,EACV,wBAAwB,EACxB,UAAU,EACV,kBAAkB,EAClB,2BAA2B,EAC3B,YAAY,EACZ,eAAe,GAChB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,0CAA0C,CAAC;AAClD,YAAY,EACV,0BAA0B,EAC1B,WAAW,EACX,aAAa,EACb,SAAS,GACV,MAAM,4CAA4C,CAAC;AACpD,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Skill Injector Service Interface
3
+ *
4
+ * Output port for injecting curated agent skills into worktrees
5
+ * during feature creation. Handles local skill copying, remote skill
6
+ * installation via npx, idempotency checks, and .gitignore management.
7
+ */
8
+ import type { SkillInjectionConfig } from '../../../../domain/generated/output.js';
9
+ export interface SkillInjectionResult {
10
+ /** Names of skills that were successfully injected */
11
+ injected: string[];
12
+ /** Names of skills that were already present and skipped */
13
+ skipped: string[];
14
+ /** Skills that failed to inject, with error details */
15
+ failed: {
16
+ name: string;
17
+ error: string;
18
+ }[];
19
+ }
20
+ export interface ISkillInjectorService {
21
+ /**
22
+ * Inject curated skills into a worktree's .claude/skills/ directory.
23
+ *
24
+ * For each skill in the config:
25
+ * - Local skills are deep-copied from the source path
26
+ * - Remote skills are installed via `npx skills add`
27
+ * - Skills already present (SKILL.md exists) are skipped
28
+ * - Newly injected skills are added to .gitignore (unless already tracked in git)
29
+ *
30
+ * Individual skill failures are captured in the result (not thrown).
31
+ *
32
+ * @param worktreePath - Absolute path to the worktree root
33
+ * @param config - Skill injection configuration from settings
34
+ * @param repoRoot - Absolute path to the main repository root (for resolving local skill sources)
35
+ * @returns Counts of injected, skipped, and failed skills
36
+ */
37
+ inject(worktreePath: string, config: SkillInjectionConfig, repoRoot?: string): Promise<SkillInjectionResult>;
38
+ }
39
+ //# sourceMappingURL=skill-injector.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-injector.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/skill-injector.interface.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAEnF,MAAM,WAAW,oBAAoB;IACnC,sDAAsD;IACtD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,4DAA4D;IAC5D,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,uDAAuD;IACvD,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC3C;AAED,MAAM,WAAW,qBAAqB;IACpC;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CACJ,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,oBAAoB,EAC5B,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAClC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Skill Injector Service Interface
3
+ *
4
+ * Output port for injecting curated agent skills into worktrees
5
+ * during feature creation. Handles local skill copying, remote skill
6
+ * installation via npx, idempotency checks, and .gitignore management.
7
+ */
8
+ export {};
@@ -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;IAgGlE;;;;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,13 +89,15 @@ 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,
96
97
  commitSpecs: true,
97
98
  ciWatchEnabled: true,
98
99
  enableEvidence: false,
100
+ injectSkills: false,
99
101
  commitEvidence: false,
100
102
  approvalGates: {
101
103
  allowPrd: 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
  }
@@ -24,6 +24,7 @@ import type { ISpecInitializerService } from '../../../ports/output/services/spe
24
24
  import type { IRepositoryRepository } from '../../../ports/output/repositories/repository-repository.interface.js';
25
25
  import type { IGitPrService } from '../../../ports/output/services/git-pr-service.interface.js';
26
26
  import type { IAgentValidator } from '../../../ports/output/agents/agent-validator.interface.js';
27
+ import type { ISkillInjectorService } from '../../../ports/output/services/skill-injector.interface.js';
27
28
  import { AttachmentStorageService } from '../../../../infrastructure/services/attachment-storage.service.js';
28
29
  import { MetadataGenerator } from './metadata-generator.js';
29
30
  import { SlugResolver } from './slug-resolver.js';
@@ -40,7 +41,8 @@ export declare class CreateFeatureUseCase {
40
41
  private readonly gitPrService;
41
42
  private readonly attachmentStorage;
42
43
  private readonly agentValidator;
43
- constructor(featureRepo: IFeatureRepository, worktreeService: IWorktreeService, agentProcess: IFeatureAgentProcessService, runRepository: IAgentRunRepository, specInitializer: ISpecInitializerService, metadataGenerator: MetadataGenerator, slugResolver: SlugResolver, repositoryRepo: IRepositoryRepository, gitPrService: IGitPrService, attachmentStorage: AttachmentStorageService, agentValidator: IAgentValidator);
44
+ private readonly skillInjector;
45
+ constructor(featureRepo: IFeatureRepository, worktreeService: IWorktreeService, agentProcess: IFeatureAgentProcessService, runRepository: IAgentRunRepository, specInitializer: ISpecInitializerService, metadataGenerator: MetadataGenerator, slugResolver: SlugResolver, repositoryRepo: IRepositoryRepository, gitPrService: IGitPrService, attachmentStorage: AttachmentStorageService, agentValidator: IAgentValidator, skillInjector: ISkillInjectorService);
44
46
  /**
45
47
  * Full synchronous execution: creates record, initializes worktree/spec, spawns agent.
46
48
  * Used by the CLI which shows a spinner and needs everything done before returning.
@@ -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;AACjG,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4DAA4D,CAAC;AAIxG,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;IAE/B,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAtBb,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,EAE/B,aAAa,EAAE,qBAAqB;IAGvD;;;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;IAiJ1E;;;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;CA0K1D"}
@@ -29,8 +29,9 @@ 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
+ import { createDefaultSettings } from '../../../../domain/factories/settings-defaults.factory.js';
34
35
  import { POST_IMPLEMENTATION } from '../../../../domain/lifecycle-gates.js';
35
36
  import { AttachmentStorageService } from '../../../../infrastructure/services/attachment-storage.service.js';
36
37
  import { MetadataGenerator } from './metadata-generator.js';
@@ -47,7 +48,8 @@ let CreateFeatureUseCase = class CreateFeatureUseCase {
47
48
  gitPrService;
48
49
  attachmentStorage;
49
50
  agentValidator;
50
- constructor(featureRepo, worktreeService, agentProcess, runRepository, specInitializer, metadataGenerator, slugResolver, repositoryRepo, gitPrService, attachmentStorage, agentValidator) {
51
+ skillInjector;
52
+ constructor(featureRepo, worktreeService, agentProcess, runRepository, specInitializer, metadataGenerator, slugResolver, repositoryRepo, gitPrService, attachmentStorage, agentValidator, skillInjector) {
51
53
  this.featureRepo = featureRepo;
52
54
  this.worktreeService = worktreeService;
53
55
  this.agentProcess = agentProcess;
@@ -59,6 +61,7 @@ let CreateFeatureUseCase = class CreateFeatureUseCase {
59
61
  this.gitPrService = gitPrService;
60
62
  this.attachmentStorage = attachmentStorage;
61
63
  this.agentValidator = agentValidator;
64
+ this.skillInjector = skillInjector;
62
65
  }
63
66
  /**
64
67
  * Full synchronous execution: creates record, initializes worktree/spec, spawns agent.
@@ -75,9 +78,12 @@ let CreateFeatureUseCase = class CreateFeatureUseCase {
75
78
  * No AI calls, no git operations — just DB writes.
76
79
  */
77
80
  async createRecord(input) {
78
- let initialLifecycle = input.fast
79
- ? SdlcLifecycle.Implementation
80
- : SdlcLifecycle.Requirements;
81
+ const effectiveMode = input.mode ?? FeatureMode.Regular;
82
+ let initialLifecycle = effectiveMode === FeatureMode.Exploration
83
+ ? SdlcLifecycle.Exploring
84
+ : effectiveMode === FeatureMode.Fast
85
+ ? SdlcLifecycle.Implementation
86
+ : SdlcLifecycle.Requirements;
81
87
  let shouldSpawn = true;
82
88
  let effectiveRepoPath = input.repositoryPath.replace(/\\/g, '/');
83
89
  // Pending flag takes precedence — user explicitly defers agent execution.
@@ -150,19 +156,24 @@ let CreateFeatureUseCase = class CreateFeatureUseCase {
150
156
  lifecycle: initialLifecycle,
151
157
  messages: [],
152
158
  relatedArtifacts: [],
153
- fast: input.fast ?? false,
159
+ mode: effectiveMode,
154
160
  push: input.push ?? false,
155
161
  openPr: input.openPr ?? false,
156
162
  forkAndPr: input.forkAndPr ?? false,
157
163
  commitSpecs: input.commitSpecs ?? true,
158
164
  ciWatchEnabled: input.ciWatchEnabled ?? true,
159
165
  enableEvidence: input.enableEvidence ?? false,
166
+ injectSkills: input.injectSkills ?? false,
160
167
  commitEvidence: input.commitEvidence ?? false,
161
168
  approvalGates: input.approvalGates ?? {
162
169
  allowPrd: false,
163
170
  allowPlan: false,
164
171
  allowMerge: false,
165
172
  },
173
+ iterationCount: 0,
174
+ ...(effectiveMode === FeatureMode.Exploration && {
175
+ maxIterations: getSettings().workflow.explorationMaxIterations ?? 10,
176
+ }),
166
177
  agentRunId: runId,
167
178
  specPath: '',
168
179
  repositoryId: repository.id,
@@ -227,7 +238,11 @@ let CreateFeatureUseCase = class CreateFeatureUseCase {
227
238
  const worktreePath = this.worktreeService.getWorktreePath(effectiveRepoPath, branch);
228
239
  await this.worktreeService.create(effectiveRepoPath, branch, worktreePath, defaultBranch);
229
240
  // 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);
241
+ const { specDir } = await this.specInitializer.initialize(worktreePath, slug, featureNumber, input.userInput, feature.mode === FeatureMode.Fast
242
+ ? 'fast'
243
+ : feature.mode === FeatureMode.Exploration
244
+ ? 'exploration'
245
+ : undefined);
231
246
  // Commit pending attachments if sessionId was provided (web UI flow)
232
247
  let committedAttachments = input.attachments;
233
248
  if (input.sessionId) {
@@ -255,6 +270,20 @@ let CreateFeatureUseCase = class CreateFeatureUseCase {
255
270
  // Attachment storage failure should not block feature creation
256
271
  }
257
272
  }
273
+ // Inject curated skills into the worktree (opt-in, guarded by settings or CLI flag)
274
+ const settings = getSettings();
275
+ const shouldInject = input.injectSkills ?? settings.workflow.skillInjection?.enabled ?? false;
276
+ let injectedSkillNames;
277
+ const skillConfig = settings.workflow.skillInjection ?? createDefaultSettings().workflow.skillInjection;
278
+ if (shouldInject && skillConfig.skills?.length) {
279
+ try {
280
+ const result = await this.skillInjector.inject(worktreePath, skillConfig, effectiveRepoPath);
281
+ injectedSkillNames = [...result.injected, ...result.skipped];
282
+ }
283
+ catch {
284
+ // Skill injection failure must not block feature creation (NFR-3)
285
+ }
286
+ }
258
287
  // Update feature record with refined metadata, branch, specPath, and attachments
259
288
  const updatedFeature = {
260
289
  ...feature,
@@ -264,6 +293,7 @@ let CreateFeatureUseCase = class CreateFeatureUseCase {
264
293
  branch,
265
294
  specPath: specDir,
266
295
  ...(committedAttachments?.length ? { attachments: committedAttachments } : {}),
296
+ ...(injectedSkillNames?.length ? { injectedSkills: injectedSkillNames } : {}),
267
297
  updatedAt: new Date(),
268
298
  };
269
299
  await this.featureRepo.update(updatedFeature);
@@ -273,7 +303,6 @@ let CreateFeatureUseCase = class CreateFeatureUseCase {
273
303
  // a background worker — prevents the feature from getting stuck
274
304
  // with a silent failure in the detached worker process.
275
305
  // Skip validation when using mock executor (E2E tests, CI without real agents).
276
- const settings = getSettings();
277
306
  const effectiveAgentType = input.agentType ?? settings.agent.type;
278
307
  const isMockExecutor = process.env.SHEP_MOCK_EXECUTOR === '1';
279
308
  const validation = isMockExecutor
@@ -305,7 +334,7 @@ let CreateFeatureUseCase = class CreateFeatureUseCase {
305
334
  ciWatchEnabled: input.ciWatchEnabled ?? true,
306
335
  enableEvidence: input.enableEvidence ?? false,
307
336
  commitEvidence: input.commitEvidence ?? false,
308
- ...(input.fast ? { fast: true } : {}),
337
+ ...(feature.mode !== FeatureMode.Regular ? { mode: feature.mode } : {}),
309
338
  ...(input.agentType ? { agentType: input.agentType } : {}),
310
339
  ...(input.model ? { model: input.model } : {}),
311
340
  });
@@ -326,7 +355,8 @@ CreateFeatureUseCase = __decorate([
326
355
  __param(8, inject('IGitPrService')),
327
356
  __param(9, inject(AttachmentStorageService)),
328
357
  __param(10, inject('IAgentValidator')),
358
+ __param(11, inject('ISkillInjectorService')),
329
359
  __metadata("design:paramtypes", [Object, Object, Object, Object, Object, MetadataGenerator,
330
- SlugResolver, Object, Object, AttachmentStorageService, Object])
360
+ SlugResolver, Object, Object, AttachmentStorageService, Object, Object])
331
361
  ], CreateFeatureUseCase);
332
362
  export { CreateFeatureUseCase };
@@ -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"}