@shepai/cli 1.167.0 → 1.168.0-pr509.b1dd877

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 (479) hide show
  1. package/apis/json-schema/Feature.yaml +10 -0
  2. package/apis/json-schema/SkillInjectionConfig.yaml +17 -0
  3. package/apis/json-schema/SkillSource.yaml +21 -0
  4. package/apis/json-schema/SkillSourceType.yaml +7 -0
  5. package/apis/json-schema/WorkflowConfig.yaml +3 -0
  6. package/dist/packages/core/src/application/ports/output/agents/interactive-agent-executor.interface.d.ts +38 -2
  7. package/dist/packages/core/src/application/ports/output/agents/interactive-agent-executor.interface.d.ts.map +1 -1
  8. package/dist/packages/core/src/application/ports/output/services/index.d.ts +1 -0
  9. package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
  10. package/dist/packages/core/src/application/ports/output/services/interactive-session-service.interface.d.ts +16 -1
  11. package/dist/packages/core/src/application/ports/output/services/interactive-session-service.interface.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/use-cases/features/adopt-branch.use-case.d.ts.map +1 -1
  16. package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.js +1 -0
  17. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts +3 -1
  18. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts.map +1 -1
  19. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.js +22 -3
  20. package/dist/packages/core/src/application/use-cases/features/create/types.d.ts +2 -0
  21. package/dist/packages/core/src/application/use-cases/features/create/types.d.ts.map +1 -1
  22. package/dist/packages/core/src/application/use-cases/interactive/index.d.ts +2 -0
  23. package/dist/packages/core/src/application/use-cases/interactive/index.d.ts.map +1 -1
  24. package/dist/packages/core/src/application/use-cases/interactive/index.js +1 -0
  25. package/dist/packages/core/src/application/use-cases/interactive/respond-to-interaction.use-case.d.ts +17 -0
  26. package/dist/packages/core/src/application/use-cases/interactive/respond-to-interaction.use-case.d.ts.map +1 -0
  27. package/dist/packages/core/src/application/use-cases/interactive/respond-to-interaction.use-case.js +34 -0
  28. package/dist/packages/core/src/application/use-cases/repositories/delete-repository.use-case.d.ts.map +1 -1
  29. package/dist/packages/core/src/application/use-cases/repositories/delete-repository.use-case.js +6 -2
  30. package/dist/packages/core/src/domain/factories/settings-defaults.factory.d.ts.map +1 -1
  31. package/dist/packages/core/src/domain/factories/settings-defaults.factory.js +55 -1
  32. package/dist/packages/core/src/domain/generated/output.d.ts +50 -0
  33. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  34. package/dist/packages/core/src/domain/generated/output.js +5 -0
  35. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  36. package/dist/packages/core/src/infrastructure/di/container.js +7 -0
  37. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts +2 -0
  38. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts.map +1 -1
  39. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.js +6 -0
  40. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +2 -0
  41. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
  42. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +27 -0
  43. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-skill-injection-config.d.ts +15 -0
  44. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-skill-injection-config.d.ts.map +1 -0
  45. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-skill-injection-config.js +23 -0
  46. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/054-add-injected-skills-to-features.d.ts +11 -0
  47. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/054-add-injected-skills-to-features.d.ts.map +1 -0
  48. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/054-add-injected-skills-to-features.js +19 -0
  49. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.d.ts.map +1 -1
  50. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.js +8 -4
  51. package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-interactive-executor.service.d.ts +3 -0
  52. package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-interactive-executor.service.d.ts.map +1 -1
  53. package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-interactive-executor.service.js +59 -6
  54. package/dist/packages/core/src/infrastructure/services/interactive/interactive-session.service.d.ts +7 -0
  55. package/dist/packages/core/src/infrastructure/services/interactive/interactive-session.service.d.ts.map +1 -1
  56. package/dist/packages/core/src/infrastructure/services/interactive/interactive-session.service.js +101 -1
  57. package/dist/packages/core/src/infrastructure/services/skill-injector.service.d.ts +26 -0
  58. package/dist/packages/core/src/infrastructure/services/skill-injector.service.d.ts.map +1 -0
  59. package/dist/packages/core/src/infrastructure/services/skill-injector.service.js +201 -0
  60. package/dist/src/presentation/cli/commands/feat/new.command.d.ts.map +1 -1
  61. package/dist/src/presentation/cli/commands/feat/new.command.js +3 -0
  62. package/dist/src/presentation/web/app/actions/add-injected-skill.d.ts +7 -0
  63. package/dist/src/presentation/web/app/actions/add-injected-skill.d.ts.map +1 -0
  64. package/dist/src/presentation/web/app/actions/add-injected-skill.js +34 -0
  65. package/dist/src/presentation/web/app/actions/create-feature.d.ts +2 -0
  66. package/dist/src/presentation/web/app/actions/create-feature.d.ts.map +1 -1
  67. package/dist/src/presentation/web/app/actions/create-feature.js +3 -1
  68. package/dist/src/presentation/web/app/actions/get-workflow-defaults.d.ts +1 -0
  69. package/dist/src/presentation/web/app/actions/get-workflow-defaults.d.ts.map +1 -1
  70. package/dist/src/presentation/web/app/actions/get-workflow-defaults.js +1 -0
  71. package/dist/src/presentation/web/app/actions/remove-injected-skill.d.ts +6 -0
  72. package/dist/src/presentation/web/app/actions/remove-injected-skill.d.ts.map +1 -0
  73. package/dist/src/presentation/web/app/actions/remove-injected-skill.js +35 -0
  74. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/respond/route.d.ts +19 -0
  75. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/respond/route.d.ts.map +1 -0
  76. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/respond/route.js +33 -0
  77. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/stream/route.d.ts.map +1 -1
  78. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/stream/route.js +7 -0
  79. package/dist/src/presentation/web/app/build-feature-node-data.d.ts.map +1 -1
  80. package/dist/src/presentation/web/app/build-feature-node-data.js +2 -0
  81. package/dist/src/presentation/web/app/layout.d.ts +0 -1
  82. package/dist/src/presentation/web/app/layout.d.ts.map +1 -1
  83. package/dist/src/presentation/web/app/layout.js +0 -1
  84. package/dist/src/presentation/web/app/skills/page.d.ts.map +1 -1
  85. package/dist/src/presentation/web/app/skills/page.js +6 -1
  86. package/dist/src/presentation/web/components/assistant-ui/thread.d.ts +3 -2
  87. package/dist/src/presentation/web/components/assistant-ui/thread.d.ts.map +1 -1
  88. package/dist/src/presentation/web/components/assistant-ui/thread.js +26 -3
  89. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts +2 -0
  90. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts.map +1 -1
  91. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.js +6 -2
  92. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.d.ts.map +1 -1
  93. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.js +1 -0
  94. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.d.ts.map +1 -1
  95. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.js +10 -4
  96. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.d.ts +2 -0
  97. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.d.ts.map +1 -1
  98. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.js +12 -0
  99. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +4 -0
  100. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map +1 -1
  101. package/dist/src/presentation/web/components/common/react-file-manager-dialog/react-file-manager-dialog.d.ts.map +1 -1
  102. package/dist/src/presentation/web/components/common/react-file-manager-dialog/react-file-manager-dialog.js +68 -56
  103. package/dist/src/presentation/web/components/features/chat/ChatDotIndicator.d.ts +1 -0
  104. package/dist/src/presentation/web/components/features/chat/ChatDotIndicator.d.ts.map +1 -1
  105. package/dist/src/presentation/web/components/features/chat/ChatDotIndicator.js +7 -1
  106. package/dist/src/presentation/web/components/features/chat/ChatDotIndicator.stories.d.ts +1 -0
  107. package/dist/src/presentation/web/components/features/chat/ChatDotIndicator.stories.d.ts.map +1 -1
  108. package/dist/src/presentation/web/components/features/chat/ChatDotIndicator.stories.js +3 -0
  109. package/dist/src/presentation/web/components/features/chat/ChatSheet.d.ts.map +1 -1
  110. package/dist/src/presentation/web/components/features/chat/ChatSheet.js +3 -1
  111. package/dist/src/presentation/web/components/features/chat/ChatTab.d.ts.map +1 -1
  112. package/dist/src/presentation/web/components/features/chat/ChatTab.js +3 -2
  113. package/dist/src/presentation/web/components/features/chat/InteractionBubble.d.ts +33 -0
  114. package/dist/src/presentation/web/components/features/chat/InteractionBubble.d.ts.map +1 -0
  115. package/dist/src/presentation/web/components/features/chat/InteractionBubble.js +155 -0
  116. package/dist/src/presentation/web/components/features/chat/InteractionBubble.stories.d.ts +22 -0
  117. package/dist/src/presentation/web/components/features/chat/InteractionBubble.stories.d.ts.map +1 -0
  118. package/dist/src/presentation/web/components/features/chat/InteractionBubble.stories.js +107 -0
  119. package/dist/src/presentation/web/components/features/chat/useChatRuntime.d.ts +16 -0
  120. package/dist/src/presentation/web/components/features/chat/useChatRuntime.d.ts.map +1 -1
  121. package/dist/src/presentation/web/components/features/chat/useChatRuntime.js +62 -1
  122. package/dist/src/presentation/web/components/features/control-center/control-center-inner.d.ts.map +1 -1
  123. package/dist/src/presentation/web/components/features/control-center/control-center-inner.js +18 -3
  124. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts +1 -0
  125. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts.map +1 -1
  126. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.js +1 -1
  127. package/dist/src/presentation/web/components/features/skills/add-skill-dialog.d.ts +10 -0
  128. package/dist/src/presentation/web/components/features/skills/add-skill-dialog.d.ts.map +1 -0
  129. package/dist/src/presentation/web/components/features/skills/add-skill-dialog.js +56 -0
  130. package/dist/src/presentation/web/components/features/skills/add-skill-dialog.stories.d.ts +16 -0
  131. package/dist/src/presentation/web/components/features/skills/add-skill-dialog.stories.d.ts.map +1 -0
  132. package/dist/src/presentation/web/components/features/skills/add-skill-dialog.stories.js +66 -0
  133. package/dist/src/presentation/web/components/features/skills/auto-injected-skills-section.d.ts +8 -0
  134. package/dist/src/presentation/web/components/features/skills/auto-injected-skills-section.d.ts.map +1 -0
  135. package/dist/src/presentation/web/components/features/skills/auto-injected-skills-section.js +42 -0
  136. package/dist/src/presentation/web/components/features/skills/auto-injected-skills-section.stories.d.ts +16 -0
  137. package/dist/src/presentation/web/components/features/skills/auto-injected-skills-section.stories.d.ts.map +1 -0
  138. package/dist/src/presentation/web/components/features/skills/auto-injected-skills-section.stories.js +69 -0
  139. package/dist/src/presentation/web/components/features/skills/skills-page-client.d.ts +3 -1
  140. package/dist/src/presentation/web/components/features/skills/skills-page-client.d.ts.map +1 -1
  141. package/dist/src/presentation/web/components/features/skills/skills-page-client.js +5 -3
  142. package/dist/src/presentation/web/components/features/skills/skills-page-client.stories.d.ts +1 -0
  143. package/dist/src/presentation/web/components/features/skills/skills-page-client.stories.d.ts.map +1 -1
  144. package/dist/src/presentation/web/components/features/skills/skills-page-client.stories.js +27 -0
  145. package/dist/src/presentation/web/hooks/use-graph-state.d.ts.map +1 -1
  146. package/dist/src/presentation/web/hooks/use-graph-state.js +16 -0
  147. package/dist/src/presentation/web/hooks/use-turn-statuses.d.ts +1 -1
  148. package/dist/src/presentation/web/hooks/use-turn-statuses.d.ts.map +1 -1
  149. package/dist/src/presentation/web/hooks/use-turn-statuses.js +1 -1
  150. package/dist/translations/ar/cli.json +2 -0
  151. package/dist/translations/ar/web.json +15 -11
  152. package/dist/translations/de/cli.json +2 -0
  153. package/dist/translations/de/web.json +35 -17
  154. package/dist/translations/en/cli.json +2 -0
  155. package/dist/translations/en/web.json +4 -0
  156. package/dist/translations/es/cli.json +2 -0
  157. package/dist/translations/es/web.json +16 -12
  158. package/dist/translations/fr/cli.json +2 -0
  159. package/dist/translations/fr/web.json +16 -12
  160. package/dist/translations/he/cli.json +2 -0
  161. package/dist/translations/he/web.json +16 -12
  162. package/dist/translations/pt/cli.json +2 -0
  163. package/dist/translations/pt/web.json +16 -12
  164. package/dist/translations/ru/cli.json +2 -0
  165. package/dist/translations/ru/web.json +16 -12
  166. package/dist/tsconfig.build.tsbuildinfo +1 -1
  167. package/package.json +1 -1
  168. package/web/.next/BUILD_ID +1 -1
  169. package/web/.next/app-path-routes-manifest.json +1 -0
  170. package/web/.next/build-manifest.json +7 -7
  171. package/web/.next/fallback-build-manifest.json +2 -2
  172. package/web/.next/prerender-manifest.json +3 -3
  173. package/web/.next/required-server-files.js +3 -3
  174. package/web/.next/required-server-files.json +3 -3
  175. package/web/.next/routes-manifest.json +8 -0
  176. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/build-manifest.json +5 -5
  177. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/react-loadable-manifest.json +1 -8
  178. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +29 -29
  179. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +1 -1
  180. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  181. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  182. package/web/.next/server/app/(dashboard)/@drawer/chat/page/build-manifest.json +5 -5
  183. package/web/.next/server/app/(dashboard)/@drawer/chat/page/react-loadable-manifest.json +1 -8
  184. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +27 -27
  185. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js +1 -1
  186. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
  187. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
  188. package/web/.next/server/app/(dashboard)/@drawer/create/page/build-manifest.json +5 -5
  189. package/web/.next/server/app/(dashboard)/@drawer/create/page/react-loadable-manifest.json +1 -8
  190. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +30 -30
  191. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +1 -1
  192. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  193. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  194. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/build-manifest.json +5 -5
  195. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/react-loadable-manifest.json +1 -8
  196. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +38 -38
  197. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +1 -1
  198. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  199. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  200. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/build-manifest.json +5 -5
  201. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/react-loadable-manifest.json +1 -8
  202. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +38 -38
  203. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +1 -1
  204. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  205. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  206. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/build-manifest.json +5 -5
  207. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/react-loadable-manifest.json +1 -8
  208. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  209. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +1 -1
  210. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  211. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  212. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/build-manifest.json +5 -5
  213. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/react-loadable-manifest.json +1 -8
  214. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  215. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +1 -1
  216. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  217. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  218. package/web/.next/server/app/(dashboard)/chat/page/build-manifest.json +5 -5
  219. package/web/.next/server/app/(dashboard)/chat/page/react-loadable-manifest.json +1 -8
  220. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +27 -27
  221. package/web/.next/server/app/(dashboard)/chat/page.js +1 -1
  222. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  223. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  224. package/web/.next/server/app/(dashboard)/create/page/build-manifest.json +5 -5
  225. package/web/.next/server/app/(dashboard)/create/page/react-loadable-manifest.json +1 -8
  226. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +30 -30
  227. package/web/.next/server/app/(dashboard)/create/page.js +1 -1
  228. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  229. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  230. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/build-manifest.json +5 -5
  231. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/react-loadable-manifest.json +1 -8
  232. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +38 -38
  233. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +1 -1
  234. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  235. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  236. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/build-manifest.json +5 -5
  237. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/react-loadable-manifest.json +1 -8
  238. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +38 -38
  239. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +1 -1
  240. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  241. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  242. package/web/.next/server/app/(dashboard)/page/build-manifest.json +5 -5
  243. package/web/.next/server/app/(dashboard)/page/react-loadable-manifest.json +1 -8
  244. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +27 -27
  245. package/web/.next/server/app/(dashboard)/page.js +1 -1
  246. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  247. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  248. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/build-manifest.json +5 -5
  249. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/react-loadable-manifest.json +1 -8
  250. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  251. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +1 -1
  252. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  253. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  254. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/build-manifest.json +5 -5
  255. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/react-loadable-manifest.json +1 -8
  256. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  257. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +1 -1
  258. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  259. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  260. package/web/.next/server/app/_global-error/page/build-manifest.json +5 -5
  261. package/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  262. package/web/.next/server/app/_global-error.html +2 -2
  263. package/web/.next/server/app/_global-error.rsc +7 -7
  264. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  265. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  266. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
  267. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  268. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  269. package/web/.next/server/app/_not-found/page/build-manifest.json +5 -5
  270. package/web/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -8
  271. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +6 -6
  272. package/web/.next/server/app/_not-found/page.js +1 -1
  273. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  274. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  275. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  276. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  277. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  278. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
  279. package/web/.next/server/app/api/interactive/chat/[featureId]/respond/route/app-paths-manifest.json +3 -0
  280. package/web/.next/server/app/api/interactive/chat/[featureId]/respond/route/build-manifest.json +11 -0
  281. package/web/.next/server/app/api/interactive/chat/[featureId]/respond/route/server-reference-manifest.json +4 -0
  282. package/web/.next/server/app/api/interactive/chat/[featureId]/respond/route.js +7 -0
  283. package/web/.next/server/app/api/interactive/chat/[featureId]/respond/route.js.map +5 -0
  284. package/web/.next/server/app/api/interactive/chat/[featureId]/respond/route.js.nft.json +1 -0
  285. package/web/.next/server/app/api/interactive/chat/[featureId]/respond/route_client-reference-manifest.js +2 -0
  286. package/web/.next/server/app/settings/page/build-manifest.json +5 -5
  287. package/web/.next/server/app/settings/page/react-loadable-manifest.json +1 -8
  288. package/web/.next/server/app/settings/page/server-reference-manifest.json +9 -9
  289. package/web/.next/server/app/settings/page.js +3 -3
  290. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  291. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  292. package/web/.next/server/app/skills/page/build-manifest.json +5 -5
  293. package/web/.next/server/app/skills/page/react-loadable-manifest.json +1 -8
  294. package/web/.next/server/app/skills/page/server-reference-manifest.json +52 -22
  295. package/web/.next/server/app/skills/page.js +3 -2
  296. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  297. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  298. package/web/.next/server/app/tools/page/build-manifest.json +5 -5
  299. package/web/.next/server/app/tools/page/react-loadable-manifest.json +1 -8
  300. package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
  301. package/web/.next/server/app/tools/page.js +1 -1
  302. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  303. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  304. package/web/.next/server/app/version/page/build-manifest.json +5 -5
  305. package/web/.next/server/app/version/page/react-loadable-manifest.json +1 -8
  306. package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
  307. package/web/.next/server/app/version/page.js +1 -1
  308. package/web/.next/server/app/version/page.js.nft.json +1 -1
  309. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  310. package/web/.next/server/app-paths-manifest.json +1 -0
  311. package/web/.next/server/chunks/8ba4b_server_app_api_interactive_chat_[featureId]_respond_route_actions_990d51bd.js +3 -0
  312. package/web/.next/server/chunks/8ba4b_server_app_api_interactive_chat_[featureId]_respond_route_actions_990d51bd.js.map +1 -0
  313. package/web/.next/server/chunks/[root-of-the-server]__31944fa2._.js +3 -0
  314. package/web/.next/server/chunks/[root-of-the-server]__31944fa2._.js.map +1 -0
  315. package/web/.next/server/chunks/[root-of-the-server]__8a281f8d._.js +9 -3
  316. package/web/.next/server/chunks/[root-of-the-server]__8a281f8d._.js.map +1 -1
  317. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  318. package/web/.next/server/chunks/[root-of-the-server]__c78383b1._.js +1 -1
  319. package/web/.next/server/chunks/[root-of-the-server]__c78383b1._.js.map +1 -1
  320. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js +1 -1
  321. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
  322. package/web/.next/server/chunks/ssr/{_0727935d._.js → 403f9_next_8a33ddee._.js} +2 -2
  323. package/web/.next/server/chunks/ssr/403f9_next_8a33ddee._.js.map +1 -0
  324. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  325. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  326. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +3 -3
  327. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
  328. package/web/.next/server/chunks/ssr/{[root-of-the-server]__1abe77bb._.js → [root-of-the-server]__1b4846fd._.js} +3 -3
  329. package/web/.next/server/chunks/ssr/[root-of-the-server]__1b4846fd._.js.map +1 -0
  330. package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js +1 -1
  331. package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js.map +1 -1
  332. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  333. package/web/.next/server/chunks/ssr/[root-of-the-server]__4fb81977._.js +1 -1
  334. package/web/.next/server/chunks/ssr/[root-of-the-server]__4fb81977._.js.map +1 -1
  335. package/web/.next/server/chunks/ssr/[root-of-the-server]__7562afc6._.js +2 -2
  336. package/web/.next/server/chunks/ssr/[root-of-the-server]__7562afc6._.js.map +1 -1
  337. package/web/.next/server/chunks/ssr/[root-of-the-server]__7dcd0917._.js +1 -1
  338. package/web/.next/server/chunks/ssr/[root-of-the-server]__7dcd0917._.js.map +1 -1
  339. package/web/.next/server/chunks/ssr/{[root-of-the-server]__8b0aac03._.js → [root-of-the-server]__7ded596d._.js} +2 -2
  340. package/web/.next/server/chunks/ssr/[root-of-the-server]__7ded596d._.js.map +1 -0
  341. package/web/.next/server/chunks/ssr/[root-of-the-server]__86ff0bc5._.js +2 -2
  342. package/web/.next/server/chunks/ssr/[root-of-the-server]__86ff0bc5._.js.map +1 -1
  343. package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js +1 -1
  344. package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js.map +1 -1
  345. package/web/.next/server/chunks/ssr/[root-of-the-server]__ba7f5873._.js +1 -1
  346. package/web/.next/server/chunks/ssr/[root-of-the-server]__ba7f5873._.js.map +1 -1
  347. package/web/.next/server/chunks/ssr/[root-of-the-server]__c5e09f6f._.js +1 -1
  348. package/web/.next/server/chunks/ssr/[root-of-the-server]__c5e09f6f._.js.map +1 -1
  349. package/web/.next/server/chunks/ssr/[root-of-the-server]__e07df893._.js +3 -0
  350. package/web/.next/server/chunks/ssr/[root-of-the-server]__e07df893._.js.map +1 -0
  351. package/web/.next/server/chunks/ssr/_02e01240._.js +1 -1
  352. package/web/.next/server/chunks/ssr/_02e01240._.js.map +1 -1
  353. package/web/.next/server/chunks/ssr/_05c23ad9._.js +1 -1
  354. package/web/.next/server/chunks/ssr/_05c23ad9._.js.map +1 -1
  355. package/web/.next/server/chunks/ssr/_08e6a4c5._.js +3 -0
  356. package/web/.next/server/chunks/ssr/_08e6a4c5._.js.map +1 -0
  357. package/web/.next/server/chunks/ssr/_16eb4fec._.js +1 -1
  358. package/web/.next/server/chunks/ssr/_16eb4fec._.js.map +1 -1
  359. package/web/.next/server/chunks/ssr/_18886033._.js +1 -1
  360. package/web/.next/server/chunks/ssr/_18886033._.js.map +1 -1
  361. package/web/.next/server/chunks/ssr/_1e08a336._.js.map +1 -1
  362. package/web/.next/server/chunks/ssr/_22e00a14._.js +1 -1
  363. package/web/.next/server/chunks/ssr/_22e00a14._.js.map +1 -1
  364. package/web/.next/server/chunks/ssr/_45496654._.js +3 -0
  365. package/web/.next/server/chunks/ssr/_45496654._.js.map +1 -0
  366. package/web/.next/server/chunks/ssr/_4cbb7f95._.js +3 -0
  367. package/web/.next/server/chunks/ssr/_4cbb7f95._.js.map +1 -0
  368. package/web/.next/server/chunks/ssr/_5119a3df._.js.map +1 -1
  369. package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
  370. package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
  371. package/web/.next/server/chunks/ssr/{_a5913a26._.js → _79b66f37._.js} +2 -2
  372. package/web/.next/server/chunks/ssr/{_a5913a26._.js.map → _79b66f37._.js.map} +1 -1
  373. package/web/.next/server/chunks/ssr/{_b4c3ffcc._.js → _8b9129da._.js} +2 -2
  374. package/web/.next/server/chunks/ssr/{_b4c3ffcc._.js.map → _8b9129da._.js.map} +1 -1
  375. package/web/.next/server/chunks/ssr/_a5a5901d._.js +1 -1
  376. package/web/.next/server/chunks/ssr/_a5a5901d._.js.map +1 -1
  377. package/web/.next/server/chunks/ssr/_a963dd3c._.js +3 -0
  378. package/web/.next/server/chunks/ssr/_a963dd3c._.js.map +1 -0
  379. package/web/.next/server/chunks/ssr/_ad09f271._.js +1 -1
  380. package/web/.next/server/chunks/ssr/_ad09f271._.js.map +1 -1
  381. package/web/.next/server/chunks/ssr/_c3f595c6._.js +1 -1
  382. package/web/.next/server/chunks/ssr/_c3f595c6._.js.map +1 -1
  383. package/web/.next/server/chunks/ssr/_d78b2b6e._.js +3 -0
  384. package/web/.next/server/chunks/ssr/_d78b2b6e._.js.map +1 -0
  385. package/web/.next/server/chunks/ssr/_df737cce._.js +3 -0
  386. package/web/.next/server/chunks/ssr/_df737cce._.js.map +1 -0
  387. package/web/.next/server/chunks/ssr/_e3f14907._.js +9 -0
  388. package/web/.next/server/chunks/ssr/_e3f14907._.js.map +1 -0
  389. package/web/.next/server/chunks/ssr/_ea9e1556._.js +1 -1
  390. package/web/.next/server/chunks/ssr/_ea9e1556._.js.map +1 -1
  391. package/web/.next/server/chunks/ssr/_f1ba9be6._.js +2 -2
  392. package/web/.next/server/chunks/ssr/_f1ba9be6._.js.map +1 -1
  393. package/web/.next/server/chunks/ssr/_f33cd07e._.js +2 -2
  394. package/web/.next/server/chunks/ssr/_f33cd07e._.js.map +1 -1
  395. package/web/.next/server/chunks/ssr/_f8b45233._.js +1 -1
  396. package/web/.next/server/chunks/ssr/_f8b45233._.js.map +1 -1
  397. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  398. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  399. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +1 -1
  400. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js.map +1 -1
  401. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +1 -1
  402. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js +1 -1
  403. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js.map +1 -1
  404. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  405. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  406. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js +3 -0
  407. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js.map +1 -0
  408. package/web/.next/server/chunks/ssr/src_presentation_web_components_ui_select_tsx_45d6b8ae._.js +1 -1
  409. package/web/.next/server/chunks/ssr/src_presentation_web_components_ui_select_tsx_45d6b8ae._.js.map +1 -1
  410. package/web/.next/server/chunks/ssr/src_presentation_web_db9fa0c2._.js +1 -1
  411. package/web/.next/server/chunks/ssr/src_presentation_web_db9fa0c2._.js.map +1 -1
  412. package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js +1 -1
  413. package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js.map +1 -1
  414. package/web/.next/server/middleware-build-manifest.js +5 -5
  415. package/web/.next/server/pages/500.html +2 -2
  416. package/web/.next/server/server-reference-manifest.js +1 -1
  417. package/web/.next/server/server-reference-manifest.json +89 -59
  418. package/web/.next/static/chunks/0839854125212e6b.js +1 -0
  419. package/web/.next/static/chunks/{fe70e73feb07bcfd.js → 08ec4c9ab61717aa.js} +1 -1
  420. package/web/.next/static/chunks/{dedf6ca63c5468fa.js → 09edd35d194bec06.js} +3 -3
  421. package/web/.next/static/chunks/{d4d8f0a137bd2eb4.js → 12803afee7d0afc8.js} +2 -2
  422. package/web/.next/static/chunks/19680940c0bb3c3a.js +1 -0
  423. package/web/.next/static/chunks/{0be57768a211221a.js → 37a345c8f447ab56.js} +1 -1
  424. package/web/.next/static/chunks/3cbeac4d756302bc.js +5 -0
  425. package/web/.next/static/chunks/4355f7c193b01832.js +1 -0
  426. package/web/.next/static/chunks/{7a7d7e71cf9b5a4e.js → 4669ea9953c265d2.js} +1 -1
  427. package/web/.next/static/chunks/55e9df1e73af0b3e.js +7 -0
  428. package/web/.next/static/chunks/6deedc27548cd1df.js +1 -0
  429. package/web/.next/static/chunks/7b669373b268c12b.js +1 -0
  430. package/web/.next/static/chunks/7e22b815fb2a5b1b.js +3 -0
  431. package/web/.next/static/chunks/84a181ff3270fd9f.js +1 -0
  432. package/web/.next/static/chunks/89aac43287d73b02.js +1 -0
  433. package/web/.next/static/chunks/{d7eebb5c0aa9e101.js → a818bb026935d536.js} +2 -2
  434. package/web/.next/static/chunks/b2d1da8faf0da41d.js +1 -0
  435. package/web/.next/static/chunks/b7228e77a05ccbba.js +1 -0
  436. package/web/.next/static/chunks/ba251fd9b9fd254b.js +1 -0
  437. package/web/.next/static/chunks/c11bb4718643147f.js +5 -0
  438. package/web/.next/static/chunks/{3f404f608aebc7bb.js → d4a8e02e4be71dcf.js} +1 -1
  439. package/web/.next/static/chunks/f49e0076b62c6826.js +1 -0
  440. package/web/.next/static/chunks/fbff2864f22e8c88.css +1 -0
  441. package/web/.next/static/chunks/{turbopack-432ef324fc27240c.js → turbopack-9f7dcf06ca44886d.js} +1 -1
  442. package/web/.next/server/chunks/ssr/[root-of-the-server]__1abe77bb._.js.map +0 -1
  443. package/web/.next/server/chunks/ssr/[root-of-the-server]__2d0c3840._.js +0 -3
  444. package/web/.next/server/chunks/ssr/[root-of-the-server]__2d0c3840._.js.map +0 -1
  445. package/web/.next/server/chunks/ssr/[root-of-the-server]__8b0aac03._.js.map +0 -1
  446. package/web/.next/server/chunks/ssr/_0727935d._.js.map +0 -1
  447. package/web/.next/server/chunks/ssr/_0dc06d07._.js +0 -3
  448. package/web/.next/server/chunks/ssr/_0dc06d07._.js.map +0 -1
  449. package/web/.next/server/chunks/ssr/_3bcda5d7._.js +0 -3
  450. package/web/.next/server/chunks/ssr/_3bcda5d7._.js.map +0 -1
  451. package/web/.next/server/chunks/ssr/_4d49a312._.js +0 -3
  452. package/web/.next/server/chunks/ssr/_4d49a312._.js.map +0 -1
  453. package/web/.next/server/chunks/ssr/_506a3bc3._.js +0 -9
  454. package/web/.next/server/chunks/ssr/_506a3bc3._.js.map +0 -1
  455. package/web/.next/server/chunks/ssr/_5ab8e97d._.js +0 -3
  456. package/web/.next/server/chunks/ssr/_5ab8e97d._.js.map +0 -1
  457. package/web/.next/server/chunks/ssr/_9215e9ec._.js +0 -3
  458. package/web/.next/server/chunks/ssr/_9215e9ec._.js.map +0 -1
  459. package/web/.next/static/chunks/16eea21868510afd.js +0 -5
  460. package/web/.next/static/chunks/3208dc997aaee4d3.css +0 -1
  461. package/web/.next/static/chunks/3deefc76ea55047c.js +0 -1
  462. package/web/.next/static/chunks/40b6bcf1a2de4a0f.js +0 -1
  463. package/web/.next/static/chunks/420eb8b33d83c4cb.js +0 -1
  464. package/web/.next/static/chunks/63b0ad1dbc27a5d0.js +0 -1
  465. package/web/.next/static/chunks/65440524d7ee7d13.js +0 -1
  466. package/web/.next/static/chunks/6c634b447a6a0db8.js +0 -7
  467. package/web/.next/static/chunks/6d7b999c99d6d175.js +0 -9
  468. package/web/.next/static/chunks/6eb32cd5d2795a7c.js +0 -1
  469. package/web/.next/static/chunks/7f4d1ec4e9f921a3.js +0 -1
  470. package/web/.next/static/chunks/8180973e9cd6a99e.css +0 -1
  471. package/web/.next/static/chunks/8866edda931a81c2.js +0 -1
  472. package/web/.next/static/chunks/c0e13e7d1601bc5d.js +0 -1
  473. package/web/.next/static/chunks/c7e793951b20a67f.js +0 -1
  474. package/web/.next/static/chunks/d6a1facd04a52af5.js +0 -5
  475. package/web/.next/static/chunks/da6d0839a24602eb.js +0 -3
  476. package/web/.next/static/chunks/db3bf9eb0b519bae.js +0 -1
  477. /package/web/.next/static/{JjjyVzk5ESdcMWkH6999z → QTub9VF21lk2PO7IJDkNp}/_buildManifest.js +0 -0
  478. /package/web/.next/static/{JjjyVzk5ESdcMWkH6999z → QTub9VF21lk2PO7IJDkNp}/_clientMiddlewareManifest.json +0 -0
  479. /package/web/.next/static/{JjjyVzk5ESdcMWkH6999z → QTub9VF21lk2PO7IJDkNp}/_ssgManifest.js +0 -0
@@ -39,6 +39,11 @@ 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
@@ -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
@@ -114,6 +123,7 @@ required:
114
123
  - commitSpecs
115
124
  - ciWatchEnabled
116
125
  - enableEvidence
126
+ - injectSkills
117
127
  - commitEvidence
118
128
  - approvalGates
119
129
  allOf:
@@ -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
@@ -64,6 +64,9 @@ properties:
64
64
  minimum: -2147483648
65
65
  maximum: 2147483647
66
66
  description: "Minutes after completion before auto-archiving a feature (default: 10, 0 = disabled)"
67
+ skillInjection:
68
+ $ref: SkillInjectionConfig.yaml
69
+ description: Skill injection configuration (optional, disabled by default)
67
70
  required:
68
71
  - openPrOnImplementationComplete
69
72
  - approvalGateDefaults
@@ -10,6 +10,11 @@
10
10
  * - Infrastructure layer provides concrete implementations
11
11
  * - No SDK types leak through this boundary
12
12
  */
13
+ /**
14
+ * Callback invoked when the agent calls AskUserQuestion.
15
+ * The SDK stream is PAUSED until this resolves — the agent waits for the user's answers.
16
+ */
17
+ export type OnUserQuestionCallback = (interaction: UserInteractionData) => Promise<Record<string, string>>;
13
18
  /** Options for creating/resuming an interactive agent session. */
14
19
  export interface InteractiveAgentOptions {
15
20
  /** Absolute worktree path (CWD for agent) */
@@ -18,10 +23,32 @@ export interface InteractiveAgentOptions {
18
23
  model?: string;
19
24
  /** Feature context string to append to system prompt */
20
25
  systemPrompt?: string;
26
+ /**
27
+ * Called when agent uses AskUserQuestion. Must return user's answers keyed by question text.
28
+ * The SDK stream pauses until this resolves — the agent cannot continue without answers.
29
+ */
30
+ onUserQuestion?: OnUserQuestionCallback;
31
+ }
32
+ /** A single question within an AskUserQuestion tool call. */
33
+ export interface UserQuestionOption {
34
+ label: string;
35
+ description: string;
36
+ preview?: string;
37
+ }
38
+ export interface UserQuestion {
39
+ question: string;
40
+ header: string;
41
+ options: UserQuestionOption[];
42
+ multiSelect: boolean;
43
+ }
44
+ /** Data for a pending user interaction (AskUserQuestion). */
45
+ export interface UserInteractionData {
46
+ toolCallId: string;
47
+ questions: UserQuestion[];
21
48
  }
22
49
  /** Event emitted by an interactive agent session stream. */
23
50
  export interface InteractiveAgentEvent {
24
- type: 'delta' | 'tool_use' | 'tool_result' | 'status' | 'done' | 'error' | 'init' | 'api_retry' | 'rate_limit' | 'task_started' | 'task_progress' | 'task_done';
51
+ type: 'delta' | 'tool_use' | 'tool_result' | 'status' | 'done' | 'error' | 'init' | 'api_retry' | 'rate_limit' | 'task_started' | 'task_progress' | 'task_done' | 'user_question';
25
52
  content?: string;
26
53
  label?: string;
27
54
  detail?: string;
@@ -33,13 +60,22 @@ export interface InteractiveAgentEvent {
33
60
  numTurns?: number;
34
61
  durationMs?: number;
35
62
  };
63
+ /** Interaction data (attached to 'user_question' events) */
64
+ interaction?: UserInteractionData;
65
+ }
66
+ /** Structured tool result message sent back to the agent. */
67
+ export interface ToolResultMessage {
68
+ toolCallId: string;
69
+ result: unknown;
36
70
  }
37
71
  /** Handle to a live interactive agent session. */
38
72
  export interface InteractiveAgentSessionHandle {
39
73
  /** The agent's session ID (used for resumption) */
40
74
  readonly sessionId: string;
41
- /** Send a user message to the agent */
75
+ /** Send a user text message to the agent */
42
76
  send(message: string): Promise<void>;
77
+ /** Send a tool result back to the agent (e.g. AskUserQuestion response) */
78
+ sendToolResult(toolResult: ToolResultMessage): Promise<void>;
43
79
  /** Iterate response events from the agent */
44
80
  stream(): AsyncIterable<InteractiveAgentEvent>;
45
81
  /** Terminate the session gracefully */
@@ -1 +1 @@
1
- {"version":3,"file":"interactive-agent-executor.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/agents/interactive-agent-executor.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,kEAAkE;AAClE,MAAM,WAAW,uBAAuB;IACtC,6CAA6C;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,4DAA4D;AAC5D,MAAM,WAAW,qBAAqB;IACpC,IAAI,EACA,OAAO,GACP,UAAU,GACV,aAAa,GACb,QAAQ,GACR,MAAM,GACN,OAAO,GACP,MAAM,GACN,WAAW,GACX,YAAY,GACZ,cAAc,GACd,eAAe,GACf,WAAW,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,KAAK,CAAC,EAAE;QACN,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,kDAAkD;AAClD,MAAM,WAAW,6BAA6B;IAC5C,mDAAmD;IACnD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,uCAAuC;IACvC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,6CAA6C;IAC7C,MAAM,IAAI,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAC/C,uCAAuC;IACvC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,wEAAwE;IACxE,KAAK,IAAI,IAAI,CAAC;CACf;AAED,yDAAyD;AACzD,MAAM,WAAW,yBAAyB;IACxC,aAAa,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;IACxF,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,6BAA6B,CAAC,CAAC;CAC3C"}
1
+ {"version":3,"file":"interactive-agent-executor.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/agents/interactive-agent-executor.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG,CACnC,WAAW,EAAE,mBAAmB,KAC7B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAErC,kEAAkE;AAClE,MAAM,WAAW,uBAAuB;IACtC,6CAA6C;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,cAAc,CAAC,EAAE,sBAAsB,CAAC;CACzC;AAED,6DAA6D;AAC7D,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,6DAA6D;AAC7D,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,YAAY,EAAE,CAAC;CAC3B;AAED,4DAA4D;AAC5D,MAAM,WAAW,qBAAqB;IACpC,IAAI,EACA,OAAO,GACP,UAAU,GACV,aAAa,GACb,QAAQ,GACR,MAAM,GACN,OAAO,GACP,MAAM,GACN,WAAW,GACX,YAAY,GACZ,cAAc,GACd,eAAe,GACf,WAAW,GACX,eAAe,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,KAAK,CAAC,EAAE;QACN,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,4DAA4D;IAC5D,WAAW,CAAC,EAAE,mBAAmB,CAAC;CACnC;AAED,6DAA6D;AAC7D,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,kDAAkD;AAClD,MAAM,WAAW,6BAA6B;IAC5C,mDAAmD;IACnD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,4CAA4C;IAC5C,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,2EAA2E;IAC3E,cAAc,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,6CAA6C;IAC7C,MAAM,IAAI,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAC/C,uCAAuC;IACvC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,wEAAwE;IACxE,KAAK,IAAI,IAAI,CAAC;CACf;AAED,yDAAyD;AACzD,MAAM,WAAW,yBAAyB;IACxC,aAAa,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;IACxF,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,6BAA6B,CAAC,CAAC;CAC3C"}
@@ -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"}
@@ -10,6 +10,7 @@
10
10
  * - Infrastructure layer provides the concrete implementation (singleton)
11
11
  */
12
12
  import type { InteractiveSession, InteractiveMessage } from '../../../../domain/generated/output.js';
13
+ import type { UserInteractionData } from '../agents/interactive-agent-executor.interface.js';
13
14
  /**
14
15
  * A single streaming chunk forwarded from agent stdout to an SSE consumer.
15
16
  */
@@ -22,6 +23,8 @@ export interface StreamChunk {
22
23
  log?: string;
23
24
  /** Structured activity event for rich rendering in the thread */
24
25
  activity?: StreamActivity;
26
+ /** Pending user interaction (AskUserQuestion) — agent is waiting for user response */
27
+ interaction?: UserInteractionData;
25
28
  }
26
29
  /**
27
30
  * A structured activity event emitted during agent execution.
@@ -50,8 +53,10 @@ export interface ChatState {
50
53
  streamingText: string | null;
51
54
  /** Session info for the toolbar (null if no active session) */
52
55
  sessionInfo: SessionInfo | null;
53
- /** Turn activity status: 'idle' | 'processing' | 'unread' (for dot indicators) */
56
+ /** Turn activity status: 'idle' | 'processing' | 'unread' | 'awaiting_input' (for dot indicators) */
54
57
  turnStatus: string;
58
+ /** Pending user interaction — agent is waiting for user response (null when no interaction pending) */
59
+ pendingInteraction: UserInteractionData | null;
55
60
  }
56
61
  /** Live session metadata for the frontend toolbar. */
57
62
  export interface SessionInfo {
@@ -189,5 +194,15 @@ export interface IInteractiveSessionService {
189
194
  * active session's status ('processing' | 'unread').
190
195
  */
191
196
  getAllActiveTurnStatuses(): Promise<Map<string, string>>;
197
+ /**
198
+ * Respond to a pending user interaction (AskUserQuestion).
199
+ * Sends the user's answers back to the agent as a tool result,
200
+ * clears the pending interaction, and resumes the agent's turn.
201
+ *
202
+ * @param featureId - The feature scope key
203
+ * @param answers - Map of question text → selected answer(s)
204
+ * @param annotations - Optional per-question annotations (notes, preview)
205
+ */
206
+ respondToInteraction(featureId: string, answers: Record<string, string>): Promise<void>;
192
207
  }
193
208
  //# sourceMappingURL=interactive-session-service.interface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interactive-session-service.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/interactive-session-service.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,wCAAwC,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,IAAI,EAAE,OAAO,CAAC;IACd,oFAAoF;IACpF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,GAAG,aAAa,GAAG,UAAU,GAAG,QAAQ,CAAC;IACzD,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,wEAAwE;IACxE,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,+DAA+D;IAC/D,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,iEAAiE;IACjE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,+DAA+D;IAC/D,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,kFAAkF;IAClF,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,sDAAsD;AACtD,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,wEAAwE;IACxE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,+CAA+C;IAC/C,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,gDAAgD;IAChD,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;;;;;;;;OAUG;IACH,YAAY,CACV,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,KAAK,CAAC,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAE/B;;;;;;OAMG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C;;;;;;;;OAQG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAE7E;;;;;;OAMG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAE9E;;;;OAIG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IAElE;;;;OAIG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhD;;;;;;;;OAQG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,aAAa,CAAC;IAInF;;;;;;;;OAQG;IACH,eAAe,CACb,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,KAAK,CAAC,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAE/B;;;OAGG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAEpD;;;OAGG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,aAAa,CAAC;IAE5F;;;OAGG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhD;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3C;;;;OAIG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAEpE;;;OAGG;IACH,wBAAwB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC1D"}
1
+ {"version":3,"file":"interactive-session-service.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/interactive-session-service.interface.ts"],"names":[],"mappings":"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"}
@@ -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 {};
@@ -1 +1 @@
1
- {"version":3,"file":"adopt-branch.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/features/adopt-branch.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAe,MAAM,qCAAqC,CAAC;AAEhF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAC1G,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oEAAoE,CAAC;AAChH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAClG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yDAAyD,CAAC;AAG7F,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;CAClB;AAKD,qBACa,kBAAkB;IAG3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAEhC,OAAO,CAAC,QAAQ,CAAC,YAAY;gBANZ,WAAW,EAAE,kBAAkB,EAE/B,cAAc,EAAE,qBAAqB,EAErC,eAAe,EAAE,gBAAgB,EAEjC,YAAY,EAAE,aAAa;IAGxC,OAAO,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA8FlE;;;;OAIG;YACW,gBAAgB;IAiB9B;;;;OAIG;YACW,iBAAiB;IA4B/B;;;OAGG;YACW,iBAAiB;CAuBhC"}
1
+ {"version":3,"file":"adopt-branch.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/features/adopt-branch.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAe,MAAM,qCAAqC,CAAC;AAEhF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAC1G,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oEAAoE,CAAC;AAChH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAClG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yDAAyD,CAAC;AAG7F,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;CAClB;AAKD,qBACa,kBAAkB;IAG3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAEhC,OAAO,CAAC,QAAQ,CAAC,YAAY;gBANZ,WAAW,EAAE,kBAAkB,EAE/B,cAAc,EAAE,qBAAqB,EAErC,eAAe,EAAE,gBAAgB,EAEjC,YAAY,EAAE,aAAa;IAGxC,OAAO,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA+FlE;;;;OAIG;YACW,gBAAgB;IAiB9B;;;;OAIG;YACW,iBAAiB;IA4B/B;;;OAGG;YACW,iBAAiB;CAuBhC"}
@@ -96,6 +96,7 @@ let AdoptBranchUseCase = class AdoptBranchUseCase {
96
96
  commitSpecs: true,
97
97
  ciWatchEnabled: true,
98
98
  enableEvidence: false,
99
+ injectSkills: false,
99
100
  commitEvidence: false,
100
101
  approvalGates: {
101
102
  allowPrd: false,
@@ -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;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;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;IAyI1E;;;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;CAsK1D"}
@@ -31,6 +31,7 @@ import { injectable, inject } from 'tsyringe';
31
31
  import { randomUUID } from 'node:crypto';
32
32
  import { SdlcLifecycle, AgentRunStatus, } 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.
@@ -157,6 +160,7 @@ let CreateFeatureUseCase = class CreateFeatureUseCase {
157
160
  commitSpecs: input.commitSpecs ?? true,
158
161
  ciWatchEnabled: input.ciWatchEnabled ?? true,
159
162
  enableEvidence: input.enableEvidence ?? false,
163
+ injectSkills: input.injectSkills ?? false,
160
164
  commitEvidence: input.commitEvidence ?? false,
161
165
  approvalGates: input.approvalGates ?? {
162
166
  allowPrd: false,
@@ -255,6 +259,20 @@ let CreateFeatureUseCase = class CreateFeatureUseCase {
255
259
  // Attachment storage failure should not block feature creation
256
260
  }
257
261
  }
262
+ // Inject curated skills into the worktree (opt-in, guarded by settings or CLI flag)
263
+ const settings = getSettings();
264
+ const shouldInject = input.injectSkills ?? settings.workflow.skillInjection?.enabled ?? false;
265
+ let injectedSkillNames;
266
+ const skillConfig = settings.workflow.skillInjection ?? createDefaultSettings().workflow.skillInjection;
267
+ if (shouldInject && skillConfig.skills?.length) {
268
+ try {
269
+ const result = await this.skillInjector.inject(worktreePath, skillConfig, effectiveRepoPath);
270
+ injectedSkillNames = [...result.injected, ...result.skipped];
271
+ }
272
+ catch {
273
+ // Skill injection failure must not block feature creation (NFR-3)
274
+ }
275
+ }
258
276
  // Update feature record with refined metadata, branch, specPath, and attachments
259
277
  const updatedFeature = {
260
278
  ...feature,
@@ -264,6 +282,7 @@ let CreateFeatureUseCase = class CreateFeatureUseCase {
264
282
  branch,
265
283
  specPath: specDir,
266
284
  ...(committedAttachments?.length ? { attachments: committedAttachments } : {}),
285
+ ...(injectedSkillNames?.length ? { injectedSkills: injectedSkillNames } : {}),
267
286
  updatedAt: new Date(),
268
287
  };
269
288
  await this.featureRepo.update(updatedFeature);
@@ -273,7 +292,6 @@ let CreateFeatureUseCase = class CreateFeatureUseCase {
273
292
  // a background worker — prevents the feature from getting stuck
274
293
  // with a silent failure in the detached worker process.
275
294
  // Skip validation when using mock executor (E2E tests, CI without real agents).
276
- const settings = getSettings();
277
295
  const effectiveAgentType = input.agentType ?? settings.agent.type;
278
296
  const isMockExecutor = process.env.SHEP_MOCK_EXECUTOR === '1';
279
297
  const validation = isMockExecutor
@@ -326,7 +344,8 @@ CreateFeatureUseCase = __decorate([
326
344
  __param(8, inject('IGitPrService')),
327
345
  __param(9, inject(AttachmentStorageService)),
328
346
  __param(10, inject('IAgentValidator')),
347
+ __param(11, inject('ISkillInjectorService')),
329
348
  __metadata("design:paramtypes", [Object, Object, Object, Object, Object, MetadataGenerator,
330
- SlugResolver, Object, Object, AttachmentStorageService, Object])
349
+ SlugResolver, Object, Object, AttachmentStorageService, Object, Object])
331
350
  ], CreateFeatureUseCase);
332
351
  export { CreateFeatureUseCase };
@@ -37,6 +37,8 @@ export interface CreateFeatureInput {
37
37
  attachmentPaths?: string[];
38
38
  /** Sync the default branch from remote before creating the feature branch (default: true). */
39
39
  rebaseBeforeBranch?: boolean;
40
+ /** Inject curated skills into the worktree (overrides settings.workflow.skillInjection.enabled). */
41
+ injectSkills?: boolean;
40
42
  }
41
43
  export interface CreateFeatureResult {
42
44
  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;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;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"}
@@ -11,4 +11,6 @@ export { StopInteractiveSessionUseCase } from './stop-interactive-session.use-ca
11
11
  export type { StopInteractiveSessionInput } from './stop-interactive-session.use-case.js';
12
12
  export { GetInteractiveChatStateUseCase } from './get-interactive-chat-state.use-case.js';
13
13
  export type { GetInteractiveChatStateInput } from './get-interactive-chat-state.use-case.js';
14
+ export { RespondToInteractionUseCase } from './respond-to-interaction.use-case.js';
15
+ export type { RespondToInteractionInput } from './respond-to-interaction.use-case.js';
14
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/interactive/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AACzF,YAAY,EAAE,4BAA4B,EAAE,MAAM,yCAAyC,CAAC;AAC5F,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AACvF,YAAY,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AAC1F,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AACvF,YAAY,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AAC1F,OAAO,EAAE,8BAA8B,EAAE,MAAM,0CAA0C,CAAC;AAC1F,YAAY,EAAE,4BAA4B,EAAE,MAAM,0CAA0C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/interactive/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AACzF,YAAY,EAAE,4BAA4B,EAAE,MAAM,yCAAyC,CAAC;AAC5F,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AACvF,YAAY,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AAC1F,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AACvF,YAAY,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AAC1F,OAAO,EAAE,8BAA8B,EAAE,MAAM,0CAA0C,CAAC;AAC1F,YAAY,EAAE,4BAA4B,EAAE,MAAM,0CAA0C,CAAC;AAC7F,OAAO,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AACnF,YAAY,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC"}
@@ -7,3 +7,4 @@ export { StartInteractiveSessionUseCase } from './start-interactive-session.use-
7
7
  export { SendInteractiveMessageUseCase } from './send-interactive-message.use-case.js';
8
8
  export { StopInteractiveSessionUseCase } from './stop-interactive-session.use-case.js';
9
9
  export { GetInteractiveChatStateUseCase } from './get-interactive-chat-state.use-case.js';
10
+ export { RespondToInteractionUseCase } from './respond-to-interaction.use-case.js';
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Respond To Interaction Use Case
3
+ *
4
+ * Sends the user's response to a pending AskUserQuestion interaction
5
+ * back to the agent. The agent's turn resumes after receiving the response.
6
+ */
7
+ import type { IInteractiveSessionService } from '../../ports/output/services/interactive-session-service.interface.js';
8
+ export interface RespondToInteractionInput {
9
+ featureId: string;
10
+ answers: Record<string, string>;
11
+ }
12
+ export declare class RespondToInteractionUseCase {
13
+ private readonly service;
14
+ constructor(service: IInteractiveSessionService);
15
+ execute(input: RespondToInteractionInput): Promise<void>;
16
+ }
17
+ //# sourceMappingURL=respond-to-interaction.use-case.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"respond-to-interaction.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/interactive/respond-to-interaction.use-case.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,sEAAsE,CAAC;AAEvH,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,qBACa,2BAA2B;IAGpC,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,0BAA0B;IAGhD,OAAO,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;CAG/D"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Respond To Interaction Use Case
3
+ *
4
+ * Sends the user's response to a pending AskUserQuestion interaction
5
+ * back to the agent. The agent's turn resumes after receiving the response.
6
+ */
7
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
8
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
9
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
10
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
11
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
12
+ };
13
+ var __metadata = (this && this.__metadata) || function (k, v) {
14
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
15
+ };
16
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
17
+ return function (target, key) { decorator(target, key, paramIndex); }
18
+ };
19
+ import { injectable, inject } from 'tsyringe';
20
+ let RespondToInteractionUseCase = class RespondToInteractionUseCase {
21
+ service;
22
+ constructor(service) {
23
+ this.service = service;
24
+ }
25
+ async execute(input) {
26
+ return this.service.respondToInteraction(input.featureId, input.answers);
27
+ }
28
+ };
29
+ RespondToInteractionUseCase = __decorate([
30
+ injectable(),
31
+ __param(0, inject('IInteractiveSessionService')),
32
+ __metadata("design:paramtypes", [Object])
33
+ ], RespondToInteractionUseCase);
34
+ export { RespondToInteractionUseCase };
@@ -1 +1 @@
1
- {"version":3,"file":"delete-repository.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/repositories/delete-repository.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oEAAoE,CAAC;AAChH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAC1G,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAE9E,qBACa,uBAAuB;IAGhC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAJb,cAAc,EAAE,qBAAqB,EAErC,WAAW,EAAE,kBAAkB,EAE/B,aAAa,EAAE,oBAAoB;IAGhD,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAczC"}
1
+ {"version":3,"file":"delete-repository.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/repositories/delete-repository.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oEAAoE,CAAC;AAChH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAC1G,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAE9E,qBACa,uBAAuB;IAGhC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAJb,cAAc,EAAE,qBAAqB,EAErC,WAAW,EAAE,kBAAkB,EAE/B,aAAa,EAAE,oBAAoB;IAGhD,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAkBzC"}
@@ -33,8 +33,12 @@ let DeleteRepositoryUseCase = class DeleteRepositoryUseCase {
33
33
  if (!repository) {
34
34
  throw new Error(`Repository not found: "${id}"`);
35
35
  }
36
- // Delete all child features (cancels agent runs, removes worktrees)
37
- const features = await this.featureRepo.list({ repositoryPath: repository.path });
36
+ // Delete all child features (cancels agent runs, removes worktrees).
37
+ // Include archived features so they don't survive as orphans.
38
+ const features = await this.featureRepo.list({
39
+ repositoryPath: repository.path,
40
+ includeArchived: true,
41
+ });
38
42
  for (const feature of features) {
39
43
  await this.deleteFeature.execute(feature.id);
40
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"settings-defaults.factory.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/domain/factories/settings-defaults.factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,QAAQ,EAUT,MAAM,qBAAqB,CAAC;AA6C7B;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,qBAAqB,IAAI,QAAQ,CAsFhD"}
1
+ {"version":3,"file":"settings-defaults.factory.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/domain/factories/settings-defaults.factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,QAAQ,EAWT,MAAM,qBAAqB,CAAC;AAmD7B;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,qBAAqB,IAAI,QAAQ,CA6IhD"}