@shepai/cli 1.136.0-pr439.2a7af41 → 1.136.0-pr441.5eaafd1

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 (494) hide show
  1. package/apis/json-schema/FeatureFlags.yaml +5 -0
  2. package/apis/json-schema/NotificationEventConfig.yaml +15 -0
  3. package/apis/json-schema/NotificationEventType.yaml +3 -0
  4. package/apis/json-schema/Repository.yaml +0 -3
  5. package/apis/json-schema/ScheduledWorkflow.yaml +46 -0
  6. package/apis/json-schema/WorkflowExecution.yaml +38 -0
  7. package/apis/json-schema/WorkflowExecutionStatus.yaml +10 -0
  8. package/apis/json-schema/WorkflowTriggerType.yaml +7 -0
  9. package/dist/packages/core/src/application/index.d.ts +1 -1
  10. package/dist/packages/core/src/application/index.d.ts.map +1 -1
  11. package/dist/packages/core/src/application/ports/output/index.d.ts +1 -1
  12. package/dist/packages/core/src/application/ports/output/index.d.ts.map +1 -1
  13. package/dist/packages/core/src/application/ports/output/repositories/index.d.ts +2 -0
  14. package/dist/packages/core/src/application/ports/output/repositories/index.d.ts.map +1 -1
  15. package/dist/packages/core/src/application/ports/output/repositories/repository-repository.interface.d.ts +1 -1
  16. package/dist/packages/core/src/application/ports/output/repositories/repository-repository.interface.d.ts.map +1 -1
  17. package/dist/packages/core/src/application/ports/output/repositories/workflow-execution-repository.interface.d.ts +66 -0
  18. package/dist/packages/core/src/application/ports/output/repositories/workflow-execution-repository.interface.d.ts.map +1 -0
  19. package/dist/packages/core/src/application/ports/output/repositories/workflow-execution-repository.interface.js +11 -0
  20. package/dist/packages/core/src/application/ports/output/repositories/workflow-repository.interface.d.ts +81 -0
  21. package/dist/packages/core/src/application/ports/output/repositories/workflow-repository.interface.d.ts.map +1 -0
  22. package/dist/packages/core/src/application/ports/output/repositories/workflow-repository.interface.js +11 -0
  23. package/dist/packages/core/src/application/ports/output/services/clock.interface.d.ts +28 -0
  24. package/dist/packages/core/src/application/ports/output/services/clock.interface.d.ts.map +1 -0
  25. package/dist/packages/core/src/application/ports/output/services/clock.interface.js +13 -0
  26. package/dist/packages/core/src/application/ports/output/services/index.d.ts +2 -1
  27. package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
  28. package/dist/packages/core/src/application/ports/output/services/spec-initializer.interface.d.ts +5 -21
  29. package/dist/packages/core/src/application/ports/output/services/spec-initializer.interface.d.ts.map +1 -1
  30. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts +1 -1
  31. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts.map +1 -1
  32. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.js +2 -8
  33. package/dist/packages/core/src/application/use-cases/workflows/create-workflow.use-case.d.ts +28 -0
  34. package/dist/packages/core/src/application/use-cases/workflows/create-workflow.use-case.d.ts.map +1 -0
  35. package/dist/packages/core/src/application/use-cases/workflows/create-workflow.use-case.js +72 -0
  36. package/dist/packages/core/src/application/use-cases/workflows/cron-helpers.d.ts +27 -0
  37. package/dist/packages/core/src/application/use-cases/workflows/cron-helpers.d.ts.map +1 -0
  38. package/dist/packages/core/src/application/use-cases/workflows/cron-helpers.js +43 -0
  39. package/dist/packages/core/src/application/use-cases/workflows/delete-workflow.use-case.d.ts +18 -0
  40. package/dist/packages/core/src/application/use-cases/workflows/delete-workflow.use-case.d.ts.map +1 -0
  41. package/dist/packages/core/src/application/use-cases/workflows/delete-workflow.use-case.js +64 -0
  42. package/dist/packages/core/src/application/use-cases/workflows/get-workflow-history.use-case.d.ts +16 -0
  43. package/dist/packages/core/src/application/use-cases/workflows/get-workflow-history.use-case.d.ts.map +1 -0
  44. package/dist/packages/core/src/application/use-cases/workflows/get-workflow-history.use-case.js +46 -0
  45. package/dist/packages/core/src/application/use-cases/workflows/get-workflow.use-case.d.ts +13 -0
  46. package/dist/packages/core/src/application/use-cases/workflows/get-workflow.use-case.d.ts.map +1 -0
  47. package/dist/packages/core/src/application/use-cases/workflows/get-workflow.use-case.js +42 -0
  48. package/dist/packages/core/src/application/use-cases/workflows/list-workflows.use-case.d.ts +13 -0
  49. package/dist/packages/core/src/application/use-cases/workflows/list-workflows.use-case.d.ts.map +1 -0
  50. package/dist/packages/core/src/application/use-cases/workflows/list-workflows.use-case.js +33 -0
  51. package/dist/packages/core/src/application/use-cases/workflows/run-workflow.use-case.d.ts +19 -0
  52. package/dist/packages/core/src/application/use-cases/workflows/run-workflow.use-case.d.ts.map +1 -0
  53. package/dist/packages/core/src/application/use-cases/workflows/run-workflow.use-case.js +62 -0
  54. package/dist/packages/core/src/application/use-cases/workflows/schedule-workflow.use-case.d.ts +22 -0
  55. package/dist/packages/core/src/application/use-cases/workflows/schedule-workflow.use-case.d.ts.map +1 -0
  56. package/dist/packages/core/src/application/use-cases/workflows/schedule-workflow.use-case.js +73 -0
  57. package/dist/packages/core/src/application/use-cases/workflows/templates/branch-rebase.template.d.ts +9 -0
  58. package/dist/packages/core/src/application/use-cases/workflows/templates/branch-rebase.template.d.ts.map +1 -0
  59. package/dist/packages/core/src/application/use-cases/workflows/templates/branch-rebase.template.js +27 -0
  60. package/dist/packages/core/src/application/use-cases/workflows/templates/issue-triage.template.d.ts +11 -0
  61. package/dist/packages/core/src/application/use-cases/workflows/templates/issue-triage.template.d.ts.map +1 -0
  62. package/dist/packages/core/src/application/use-cases/workflows/templates/issue-triage.template.js +27 -0
  63. package/dist/packages/core/src/application/use-cases/workflows/toggle-workflow.use-case.d.ts +16 -0
  64. package/dist/packages/core/src/application/use-cases/workflows/toggle-workflow.use-case.d.ts.map +1 -0
  65. package/dist/packages/core/src/application/use-cases/workflows/toggle-workflow.use-case.js +60 -0
  66. package/dist/packages/core/src/application/use-cases/workflows/update-workflow.use-case.d.ts +25 -0
  67. package/dist/packages/core/src/application/use-cases/workflows/update-workflow.use-case.d.ts.map +1 -0
  68. package/dist/packages/core/src/application/use-cases/workflows/update-workflow.use-case.js +83 -0
  69. package/dist/packages/core/src/domain/factories/settings-defaults.factory.d.ts.map +1 -1
  70. package/dist/packages/core/src/domain/factories/settings-defaults.factory.js +4 -0
  71. package/dist/packages/core/src/domain/generated/output.d.ts +112 -3
  72. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  73. package/dist/packages/core/src/domain/generated/output.js +16 -0
  74. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  75. package/dist/packages/core/src/infrastructure/di/container.js +66 -0
  76. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/repository.mapper.d.ts +0 -1
  77. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/repository.mapper.d.ts.map +1 -1
  78. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/repository.mapper.js +0 -2
  79. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +4 -0
  80. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
  81. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +8 -0
  82. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow-execution.mapper.d.ts +46 -0
  83. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow-execution.mapper.d.ts.map +1 -0
  84. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow-execution.mapper.js +57 -0
  85. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow.mapper.d.ts +51 -0
  86. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow.mapper.d.ts.map +1 -0
  87. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow.mapper.js +71 -0
  88. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-workflow-notification-events.d.ts +12 -0
  89. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-workflow-notification-events.d.ts.map +1 -0
  90. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-workflow-notification-events.js +22 -0
  91. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/045-create-scheduled-workflows.d.ts +14 -0
  92. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/045-create-scheduled-workflows.d.ts.map +1 -0
  93. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/045-create-scheduled-workflows.js +65 -0
  94. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/046-add-feature-flag-scheduled-workflows.d.ts +11 -0
  95. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/046-add-feature-flag-scheduled-workflows.d.ts.map +1 -0
  96. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/046-add-feature-flag-scheduled-workflows.js +17 -0
  97. package/dist/packages/core/src/infrastructure/repositories/sqlite-repository.repository.d.ts +1 -1
  98. package/dist/packages/core/src/infrastructure/repositories/sqlite-repository.repository.d.ts.map +1 -1
  99. package/dist/packages/core/src/infrastructure/repositories/sqlite-repository.repository.js +2 -6
  100. package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow-execution.repository.d.ts +24 -0
  101. package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow-execution.repository.d.ts.map +1 -0
  102. package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow-execution.repository.js +92 -0
  103. package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow.repository.d.ts +26 -0
  104. package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow.repository.d.ts.map +1 -0
  105. package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow.repository.js +117 -0
  106. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/evidence-prompts.d.ts +2 -4
  107. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/evidence-prompts.d.ts.map +1 -1
  108. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/evidence-prompts.js +8 -15
  109. package/dist/packages/core/src/infrastructure/services/clock.d.ts +11 -0
  110. package/dist/packages/core/src/infrastructure/services/clock.d.ts.map +1 -0
  111. package/dist/packages/core/src/infrastructure/services/clock.js +22 -0
  112. package/dist/packages/core/src/infrastructure/services/git/worktree.service.d.ts.map +1 -1
  113. package/dist/packages/core/src/infrastructure/services/git/worktree.service.js +4 -2
  114. package/dist/packages/core/src/infrastructure/services/ide-launchers/compute-worktree-path.d.ts.map +1 -1
  115. package/dist/packages/core/src/infrastructure/services/ide-launchers/compute-worktree-path.js +4 -2
  116. package/dist/packages/core/src/infrastructure/services/notifications/notification.service.d.ts.map +1 -1
  117. package/dist/packages/core/src/infrastructure/services/notifications/notification.service.js +3 -0
  118. package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.d.ts +3 -17
  119. package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.d.ts.map +1 -1
  120. package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.js +13 -49
  121. package/dist/packages/core/src/infrastructure/services/workflow-scheduler/workflow-scheduler.service.d.ts +69 -0
  122. package/dist/packages/core/src/infrastructure/services/workflow-scheduler/workflow-scheduler.service.d.ts.map +1 -0
  123. package/dist/packages/core/src/infrastructure/services/workflow-scheduler/workflow-scheduler.service.js +270 -0
  124. package/dist/src/presentation/cli/commands/_serve.command.d.ts.map +1 -1
  125. package/dist/src/presentation/cli/commands/_serve.command.js +14 -0
  126. package/dist/src/presentation/cli/commands/workflow/create.command.d.ts +13 -0
  127. package/dist/src/presentation/cli/commands/workflow/create.command.d.ts.map +1 -0
  128. package/dist/src/presentation/cli/commands/workflow/create.command.js +83 -0
  129. package/dist/src/presentation/cli/commands/workflow/delete.command.d.ts +13 -0
  130. package/dist/src/presentation/cli/commands/workflow/delete.command.d.ts.map +1 -0
  131. package/dist/src/presentation/cli/commands/workflow/delete.command.js +50 -0
  132. package/dist/src/presentation/cli/commands/workflow/disable.command.d.ts +11 -0
  133. package/dist/src/presentation/cli/commands/workflow/disable.command.d.ts.map +1 -0
  134. package/dist/src/presentation/cli/commands/workflow/disable.command.js +32 -0
  135. package/dist/src/presentation/cli/commands/workflow/enable.command.d.ts +11 -0
  136. package/dist/src/presentation/cli/commands/workflow/enable.command.d.ts.map +1 -0
  137. package/dist/src/presentation/cli/commands/workflow/enable.command.js +35 -0
  138. package/dist/src/presentation/cli/commands/workflow/format-helpers.d.ts +35 -0
  139. package/dist/src/presentation/cli/commands/workflow/format-helpers.d.ts.map +1 -0
  140. package/dist/src/presentation/cli/commands/workflow/format-helpers.js +89 -0
  141. package/dist/src/presentation/cli/commands/workflow/history.command.d.ts +12 -0
  142. package/dist/src/presentation/cli/commands/workflow/history.command.d.ts.map +1 -0
  143. package/dist/src/presentation/cli/commands/workflow/history.command.js +46 -0
  144. package/dist/src/presentation/cli/commands/workflow/index.d.ts +26 -0
  145. package/dist/src/presentation/cli/commands/workflow/index.d.ts.map +1 -0
  146. package/dist/src/presentation/cli/commands/workflow/index.js +48 -0
  147. package/dist/src/presentation/cli/commands/workflow/list.command.d.ts +11 -0
  148. package/dist/src/presentation/cli/commands/workflow/list.command.d.ts.map +1 -0
  149. package/dist/src/presentation/cli/commands/workflow/list.command.js +52 -0
  150. package/dist/src/presentation/cli/commands/workflow/run.command.d.ts +11 -0
  151. package/dist/src/presentation/cli/commands/workflow/run.command.d.ts.map +1 -0
  152. package/dist/src/presentation/cli/commands/workflow/run.command.js +37 -0
  153. package/dist/src/presentation/cli/commands/workflow/schedule.command.d.ts +13 -0
  154. package/dist/src/presentation/cli/commands/workflow/schedule.command.d.ts.map +1 -0
  155. package/dist/src/presentation/cli/commands/workflow/schedule.command.js +76 -0
  156. package/dist/src/presentation/cli/commands/workflow/show.command.d.ts +11 -0
  157. package/dist/src/presentation/cli/commands/workflow/show.command.d.ts.map +1 -0
  158. package/dist/src/presentation/cli/commands/workflow/show.command.js +93 -0
  159. package/dist/src/presentation/cli/commands/workflow/update.command.d.ts +13 -0
  160. package/dist/src/presentation/cli/commands/workflow/update.command.d.ts.map +1 -0
  161. package/dist/src/presentation/cli/commands/workflow/update.command.js +67 -0
  162. package/dist/src/presentation/cli/index.js +2 -0
  163. package/dist/src/presentation/web/app/actions/get-workflow-history.d.ts +7 -0
  164. package/dist/src/presentation/web/app/actions/get-workflow-history.d.ts.map +1 -0
  165. package/dist/src/presentation/web/app/actions/get-workflow-history.js +17 -0
  166. package/dist/src/presentation/web/app/actions/list-workflows.d.ts +7 -0
  167. package/dist/src/presentation/web/app/actions/list-workflows.d.ts.map +1 -0
  168. package/dist/src/presentation/web/app/actions/list-workflows.js +17 -0
  169. package/dist/src/presentation/web/app/actions/toggle-workflow.d.ts +8 -0
  170. package/dist/src/presentation/web/app/actions/toggle-workflow.d.ts.map +1 -0
  171. package/dist/src/presentation/web/app/actions/toggle-workflow.js +19 -0
  172. package/dist/src/presentation/web/app/actions/trigger-workflow.d.ts +8 -0
  173. package/dist/src/presentation/web/app/actions/trigger-workflow.d.ts.map +1 -0
  174. package/dist/src/presentation/web/app/actions/trigger-workflow.js +19 -0
  175. package/dist/src/presentation/web/app/workflows/page.d.ts +4 -0
  176. package/dist/src/presentation/web/app/workflows/page.d.ts.map +1 -0
  177. package/dist/src/presentation/web/app/workflows/page.js +18 -0
  178. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.d.ts.map +1 -1
  179. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.js +4 -0
  180. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.d.ts.map +1 -1
  181. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.js +3 -0
  182. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.d.ts.map +1 -1
  183. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.js +3 -0
  184. package/dist/src/presentation/web/components/features/settings/notification-settings-section.d.ts.map +1 -1
  185. package/dist/src/presentation/web/components/features/settings/notification-settings-section.js +6 -1
  186. package/dist/src/presentation/web/components/features/settings/notification-settings-section.stories.d.ts.map +1 -1
  187. package/dist/src/presentation/web/components/features/settings/notification-settings-section.stories.js +6 -0
  188. package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
  189. package/dist/src/presentation/web/components/features/settings/settings-page-client.js +19 -2
  190. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts.map +1 -1
  191. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.js +1 -0
  192. package/dist/src/presentation/web/components/features/workflows/workflow-execution-history.d.ts +7 -0
  193. package/dist/src/presentation/web/components/features/workflows/workflow-execution-history.d.ts.map +1 -0
  194. package/dist/src/presentation/web/components/features/workflows/workflow-execution-history.js +84 -0
  195. package/dist/src/presentation/web/components/features/workflows/workflow-execution-history.stories.d.ts +11 -0
  196. package/dist/src/presentation/web/components/features/workflows/workflow-execution-history.stories.d.ts.map +1 -0
  197. package/dist/src/presentation/web/components/features/workflows/workflow-execution-history.stories.js +104 -0
  198. package/dist/src/presentation/web/components/features/workflows/workflow-list-item.d.ts +8 -0
  199. package/dist/src/presentation/web/components/features/workflows/workflow-list-item.d.ts.map +1 -0
  200. package/dist/src/presentation/web/components/features/workflows/workflow-list-item.js +68 -0
  201. package/dist/src/presentation/web/components/features/workflows/workflow-list-item.stories.d.ts +11 -0
  202. package/dist/src/presentation/web/components/features/workflows/workflow-list-item.stories.d.ts.map +1 -0
  203. package/dist/src/presentation/web/components/features/workflows/workflow-list-item.stories.js +89 -0
  204. package/dist/src/presentation/web/components/features/workflows/workflow-list.d.ts +8 -0
  205. package/dist/src/presentation/web/components/features/workflows/workflow-list.d.ts.map +1 -0
  206. package/dist/src/presentation/web/components/features/workflows/workflow-list.js +10 -0
  207. package/dist/src/presentation/web/components/features/workflows/workflow-list.stories.d.ts +11 -0
  208. package/dist/src/presentation/web/components/features/workflows/workflow-list.stories.d.ts.map +1 -0
  209. package/dist/src/presentation/web/components/features/workflows/workflow-list.stories.js +90 -0
  210. package/dist/src/presentation/web/components/features/workflows/workflows-page-client.d.ts +6 -0
  211. package/dist/src/presentation/web/components/features/workflows/workflows-page-client.d.ts.map +1 -0
  212. package/dist/src/presentation/web/components/features/workflows/workflows-page-client.js +14 -0
  213. package/dist/src/presentation/web/components/features/workflows/workflows-page-client.stories.d.ts +10 -0
  214. package/dist/src/presentation/web/components/features/workflows/workflows-page-client.stories.d.ts.map +1 -0
  215. package/dist/src/presentation/web/components/features/workflows/workflows-page-client.stories.js +70 -0
  216. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts.map +1 -1
  217. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.js +2 -2
  218. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.d.ts.map +1 -1
  219. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.js +1 -0
  220. package/dist/src/presentation/web/hooks/feature-flags-context.d.ts.map +1 -1
  221. package/dist/src/presentation/web/hooks/feature-flags-context.js +1 -0
  222. package/dist/src/presentation/web/lib/feature-flags.d.ts +2 -0
  223. package/dist/src/presentation/web/lib/feature-flags.d.ts.map +1 -1
  224. package/dist/src/presentation/web/lib/feature-flags.js +5 -0
  225. package/dist/tsconfig.build.tsbuildinfo +1 -1
  226. package/package.json +2 -1
  227. package/web/.next/BUILD_ID +1 -1
  228. package/web/.next/app-path-routes-manifest.json +2 -1
  229. package/web/.next/build-manifest.json +2 -2
  230. package/web/.next/fallback-build-manifest.json +2 -2
  231. package/web/.next/prerender-manifest.json +3 -3
  232. package/web/.next/required-server-files.js +1 -1
  233. package/web/.next/required-server-files.json +1 -1
  234. package/web/.next/routes-manifest.json +6 -0
  235. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +25 -25
  236. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +1 -1
  237. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  238. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  239. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +25 -25
  240. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +1 -1
  241. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  242. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  243. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +31 -31
  244. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +2 -2
  245. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  246. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  247. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +31 -31
  248. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +2 -2
  249. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  250. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  251. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +23 -23
  252. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +1 -1
  253. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  254. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  255. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +25 -25
  256. package/web/.next/server/app/(dashboard)/create/page.js +1 -1
  257. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  258. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  259. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +31 -31
  260. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +2 -2
  261. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  262. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  263. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +31 -31
  264. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +2 -2
  265. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  266. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  267. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +23 -23
  268. package/web/.next/server/app/(dashboard)/page.js +1 -1
  269. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  270. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  271. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +23 -23
  272. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +1 -1
  273. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  274. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  275. package/web/.next/server/app/_global-error.html +2 -2
  276. package/web/.next/server/app/_global-error.rsc +1 -1
  277. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  278. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  279. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  280. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  281. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  282. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +3 -3
  283. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  284. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  285. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  286. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  287. package/web/.next/server/app/api/feature-logs/route.js +1 -1
  288. package/web/.next/server/app/api/feature-logs/route.js.nft.json +1 -1
  289. package/web/.next/server/app/api/graph-data/route.js +1 -1
  290. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  291. package/web/.next/server/app/settings/page/server-reference-manifest.json +8 -8
  292. package/web/.next/server/app/settings/page.js +2 -2
  293. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  294. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  295. package/web/.next/server/app/skills/page/server-reference-manifest.json +8 -8
  296. package/web/.next/server/app/skills/page.js +1 -1
  297. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  298. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  299. package/web/.next/server/app/tools/page/server-reference-manifest.json +8 -8
  300. package/web/.next/server/app/tools/page.js +1 -1
  301. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  302. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  303. package/web/.next/server/app/version/page/server-reference-manifest.json +3 -3
  304. package/web/.next/server/app/version/page.js.nft.json +1 -1
  305. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  306. package/web/.next/server/app/workflows/page/app-paths-manifest.json +3 -0
  307. package/web/.next/server/app/workflows/page/build-manifest.json +18 -0
  308. package/web/.next/server/app/workflows/page/next-font-manifest.json +6 -0
  309. package/web/.next/server/app/workflows/page/react-loadable-manifest.json +8 -0
  310. package/web/.next/server/app/workflows/page/server-reference-manifest.json +110 -0
  311. package/web/.next/server/app/workflows/page.js +18 -0
  312. package/web/.next/server/app/workflows/page.js.map +5 -0
  313. package/web/.next/server/app/workflows/page.js.nft.json +1 -0
  314. package/web/.next/server/app/workflows/page_client-reference-manifest.js +2 -0
  315. package/web/.next/server/app-paths-manifest.json +2 -1
  316. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js +1 -1
  317. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js.map +1 -1
  318. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  319. package/web/.next/server/chunks/[root-of-the-server]__c6e32a23._.js +1 -1
  320. package/web/.next/server/chunks/[root-of-the-server]__c6e32a23._.js.map +1 -1
  321. package/web/.next/server/chunks/{[root-of-the-server]__2b1074db._.js → [root-of-the-server]__c7d52490._.js} +2 -2
  322. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js +1 -1
  323. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
  324. package/web/.next/server/chunks/ssr/{_02ec1aea._.js → 403f9_next_53742624._.js} +2 -2
  325. package/web/.next/server/chunks/ssr/403f9_next_53742624._.js.map +1 -0
  326. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_b49d9c97.js +1 -1
  327. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_b49d9c97.js.map +1 -1
  328. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  329. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  330. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_0c7787d0._.js +3 -0
  331. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_0c7787d0._.js.map +1 -0
  332. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_28632197.js +1 -1
  333. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_28632197.js.map +1 -1
  334. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_10695d37.js +1 -1
  335. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_10695d37.js.map +1 -1
  336. package/web/.next/server/chunks/ssr/{[root-of-the-server]__a5f9c6e5._.js → [root-of-the-server]__07f12984._.js} +3 -3
  337. package/web/.next/server/chunks/ssr/[root-of-the-server]__07f12984._.js.map +1 -0
  338. package/web/.next/server/chunks/ssr/[root-of-the-server]__082758f6._.js +3 -0
  339. package/web/.next/server/chunks/ssr/[root-of-the-server]__082758f6._.js.map +1 -0
  340. package/web/.next/server/chunks/ssr/[root-of-the-server]__32cd6108._.js +3 -0
  341. package/web/.next/server/chunks/ssr/[root-of-the-server]__32cd6108._.js.map +1 -0
  342. package/web/.next/server/chunks/ssr/[root-of-the-server]__33ac1a70._.js +3 -0
  343. package/web/.next/server/chunks/ssr/[root-of-the-server]__33ac1a70._.js.map +1 -0
  344. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  345. package/web/.next/server/chunks/ssr/[root-of-the-server]__43f51aa6._.js +1 -1
  346. package/web/.next/server/chunks/ssr/[root-of-the-server]__43f51aa6._.js.map +1 -1
  347. package/web/.next/server/chunks/ssr/[root-of-the-server]__44358910._.js +4 -0
  348. package/web/.next/server/chunks/ssr/[root-of-the-server]__44358910._.js.map +1 -0
  349. package/web/.next/server/chunks/ssr/{[root-of-the-server]__f4e193d3._.js → [root-of-the-server]__47ded061._.js} +2 -2
  350. package/web/.next/server/chunks/ssr/{[root-of-the-server]__f4e193d3._.js.map → [root-of-the-server]__47ded061._.js.map} +1 -1
  351. package/web/.next/server/chunks/ssr/{[root-of-the-server]__3ef34e4c._.js → [root-of-the-server]__57e0ee34._.js} +3 -3
  352. package/web/.next/server/chunks/ssr/[root-of-the-server]__57e0ee34._.js.map +1 -0
  353. package/web/.next/server/chunks/ssr/{[root-of-the-server]__d68f61dd._.js → [root-of-the-server]__68ce373c._.js} +2 -2
  354. package/web/.next/server/chunks/ssr/{[root-of-the-server]__d68f61dd._.js.map → [root-of-the-server]__68ce373c._.js.map} +1 -1
  355. package/web/.next/server/chunks/ssr/[root-of-the-server]__6e93b49c._.js +3 -0
  356. package/web/.next/server/chunks/ssr/{[root-of-the-server]__b3dbadca._.js.map → [root-of-the-server]__6e93b49c._.js.map} +1 -1
  357. package/web/.next/server/chunks/ssr/{[root-of-the-server]__b1670307._.js → [root-of-the-server]__718766da._.js} +2 -2
  358. package/web/.next/server/chunks/ssr/{[root-of-the-server]__b1670307._.js.map → [root-of-the-server]__718766da._.js.map} +1 -1
  359. package/web/.next/server/chunks/ssr/[root-of-the-server]__815546bd._.js +1 -1
  360. package/web/.next/server/chunks/ssr/[root-of-the-server]__815546bd._.js.map +1 -1
  361. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +2 -2
  362. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
  363. package/web/.next/server/chunks/ssr/{[root-of-the-server]__785e8499._.js → [root-of-the-server]__fdd058b2._.js} +2 -2
  364. package/web/.next/server/chunks/ssr/{[root-of-the-server]__785e8499._.js.map → [root-of-the-server]__fdd058b2._.js.map} +1 -1
  365. package/web/.next/server/chunks/ssr/_20a4a0d5._.js +3 -0
  366. package/web/.next/server/chunks/ssr/_20a4a0d5._.js.map +1 -0
  367. package/web/.next/server/chunks/ssr/_25555eb5._.js +3 -0
  368. package/web/.next/server/chunks/ssr/_25555eb5._.js.map +1 -0
  369. package/web/.next/server/chunks/ssr/{_b5fc318a._.js → _277acdde._.js} +2 -2
  370. package/web/.next/server/chunks/ssr/_277acdde._.js.map +1 -0
  371. package/web/.next/server/chunks/ssr/_4711e8cf._.js +3 -0
  372. package/web/.next/server/chunks/ssr/_4711e8cf._.js.map +1 -0
  373. package/web/.next/server/chunks/ssr/{_a9f57758._.js → _6701ee41._.js} +2 -2
  374. package/web/.next/server/chunks/ssr/{_a9f57758._.js.map → _6701ee41._.js.map} +1 -1
  375. package/web/.next/server/chunks/ssr/_89a36303._.js +3 -0
  376. package/web/.next/server/chunks/ssr/_89a36303._.js.map +1 -0
  377. package/web/.next/server/chunks/ssr/{_32961561._.js → _8e8cd7e1._.js} +2 -2
  378. package/web/.next/server/chunks/ssr/{_32961561._.js.map → _8e8cd7e1._.js.map} +1 -1
  379. package/web/.next/server/chunks/ssr/_9869d3da._.js +3 -0
  380. package/web/.next/server/chunks/ssr/_9869d3da._.js.map +1 -0
  381. package/web/.next/server/chunks/ssr/{_0020fddd._.js → _a3721140._.js} +2 -2
  382. package/web/.next/server/chunks/ssr/_a3721140._.js.map +1 -0
  383. package/web/.next/server/chunks/ssr/_a37f5f18._.js +1 -1
  384. package/web/.next/server/chunks/ssr/_a37f5f18._.js.map +1 -1
  385. package/web/.next/server/chunks/ssr/_cc1243e6._.js +3 -0
  386. package/web/.next/server/chunks/ssr/_cc1243e6._.js.map +1 -0
  387. package/web/.next/server/chunks/ssr/_d8575088._.js +1 -1
  388. package/web/.next/server/chunks/ssr/_d8575088._.js.map +1 -1
  389. package/web/.next/server/chunks/ssr/_e3411387._.js +9 -0
  390. package/web/.next/server/chunks/ssr/_e3411387._.js.map +1 -0
  391. package/web/.next/server/chunks/ssr/_e69a26ba._.js +1 -1
  392. package/web/.next/server/chunks/ssr/_f64ffec0._.js +4 -0
  393. package/web/.next/server/chunks/ssr/_f64ffec0._.js.map +1 -0
  394. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  395. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  396. package/web/.next/server/chunks/ssr/{_1b7dae9a._.js → f7870_sonner_dist_index_mjs_dbf63824._.js} +2 -2
  397. package/web/.next/server/chunks/ssr/f7870_sonner_dist_index_mjs_dbf63824._.js.map +1 -0
  398. package/web/.next/server/chunks/ssr/node_modules__pnpm_28388798._.js +3 -0
  399. package/web/.next/server/chunks/ssr/node_modules__pnpm_28388798._.js.map +1 -0
  400. package/web/.next/server/chunks/ssr/node_modules__pnpm_ae1705ef._.js +3 -0
  401. package/web/.next/server/chunks/ssr/node_modules__pnpm_ae1705ef._.js.map +1 -0
  402. package/web/.next/server/chunks/ssr/src_presentation_web_53666118._.js +2 -2
  403. package/web/.next/server/chunks/ssr/src_presentation_web_53666118._.js.map +1 -1
  404. package/web/.next/server/chunks/ssr/src_presentation_web_53fa3010._.js +3 -0
  405. package/web/.next/server/chunks/ssr/{src_presentation_web_06ffd221._.js.map → src_presentation_web_53fa3010._.js.map} +1 -1
  406. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_d95e128d.js +1 -1
  407. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_d95e128d.js.map +1 -1
  408. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1b176e3c.js +1 -1
  409. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1b176e3c.js.map +1 -1
  410. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_bd9f0dda.js +1 -1
  411. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_bd9f0dda.js.map +1 -1
  412. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  413. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
  414. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  415. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  416. package/web/.next/server/chunks/ssr/src_presentation_web_e4df6dd7._.js +2 -2
  417. package/web/.next/server/chunks/ssr/src_presentation_web_e4df6dd7._.js.map +1 -1
  418. package/web/.next/server/pages/500.html +2 -2
  419. package/web/.next/server/server-reference-manifest.js +1 -1
  420. package/web/.next/server/server-reference-manifest.json +123 -42
  421. package/web/.next/static/chunks/{d0be9b22c3b9bce8.js → 196650f8cd7fb06a.js} +1 -1
  422. package/web/.next/static/chunks/{92cd6f523639a6fa.css → 2002f5eec5ffec42.css} +1 -1
  423. package/web/.next/static/chunks/2c1ff62df9b34313.js +1 -0
  424. package/web/.next/static/chunks/3005583e819fc4fc.js +1 -0
  425. package/web/.next/static/chunks/333c7873f6b17ef1.js +1 -0
  426. package/web/.next/static/chunks/3b3f8c4f6c36a7ba.js +1 -0
  427. package/web/.next/static/chunks/{672e3da3ad26005b.js → 42c9564e375717ed.js} +1 -1
  428. package/web/.next/static/chunks/43e0eea352eb5106.js +5 -0
  429. package/web/.next/static/chunks/5420560352333486.js +1 -0
  430. package/web/.next/static/chunks/62fa33876b0964a4.js +1 -0
  431. package/web/.next/static/chunks/6db2addb5e13e372.js +1 -0
  432. package/web/.next/static/chunks/886d0385ca1d4484.js +1 -0
  433. package/web/.next/static/chunks/8e52a649c3f6bdf4.js +1 -0
  434. package/web/.next/static/chunks/a02fc9467a585a1f.js +2 -0
  435. package/web/.next/static/chunks/{796bb98fb3f35b71.js → bee578019062e7f9.js} +1 -1
  436. package/web/.next/static/chunks/cdb51cfd682387d2.js +1 -0
  437. package/web/.next/static/chunks/ed35b4293a81c861.js +9 -0
  438. package/web/.next/static/chunks/ed7fbcdf0b48e735.js +1 -0
  439. package/web/.next/static/chunks/f75142a1b75f1c32.js +1 -0
  440. package/web/.next/static/chunks/fabcd29d488281fa.js +1 -0
  441. package/web/.next/static/chunks/fd925f996c3fa318.js +1 -0
  442. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-spec-storage-mode.d.ts +0 -12
  443. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-spec-storage-mode.d.ts.map +0 -1
  444. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-spec-storage-mode.js +0 -19
  445. package/dist/packages/core/src/infrastructure/services/filesystem/repo-hash.d.ts +0 -17
  446. package/dist/packages/core/src/infrastructure/services/filesystem/repo-hash.d.ts.map +0 -1
  447. package/dist/packages/core/src/infrastructure/services/filesystem/repo-hash.js +0 -21
  448. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_8b618f7d._.js +0 -3
  449. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_8b618f7d._.js.map +0 -1
  450. package/web/.next/server/chunks/ssr/[root-of-the-server]__3ef34e4c._.js.map +0 -1
  451. package/web/.next/server/chunks/ssr/[root-of-the-server]__6ec59045._.js +0 -3
  452. package/web/.next/server/chunks/ssr/[root-of-the-server]__6ec59045._.js.map +0 -1
  453. package/web/.next/server/chunks/ssr/[root-of-the-server]__a5f9c6e5._.js.map +0 -1
  454. package/web/.next/server/chunks/ssr/[root-of-the-server]__b3dbadca._.js +0 -3
  455. package/web/.next/server/chunks/ssr/[root-of-the-server]__d48c5b11._.js +0 -3
  456. package/web/.next/server/chunks/ssr/[root-of-the-server]__d48c5b11._.js.map +0 -1
  457. package/web/.next/server/chunks/ssr/_0020fddd._.js.map +0 -1
  458. package/web/.next/server/chunks/ssr/_01046927._.js +0 -9
  459. package/web/.next/server/chunks/ssr/_01046927._.js.map +0 -1
  460. package/web/.next/server/chunks/ssr/_02ec1aea._.js.map +0 -1
  461. package/web/.next/server/chunks/ssr/_1b7dae9a._.js.map +0 -1
  462. package/web/.next/server/chunks/ssr/_503680be._.js +0 -3
  463. package/web/.next/server/chunks/ssr/_503680be._.js.map +0 -1
  464. package/web/.next/server/chunks/ssr/_67104d9e._.js +0 -3
  465. package/web/.next/server/chunks/ssr/_67104d9e._.js.map +0 -1
  466. package/web/.next/server/chunks/ssr/_7dca1882._.js +0 -3
  467. package/web/.next/server/chunks/ssr/_7dca1882._.js.map +0 -1
  468. package/web/.next/server/chunks/ssr/_b5fc318a._.js.map +0 -1
  469. package/web/.next/server/chunks/ssr/_d4b20e29._.js +0 -3
  470. package/web/.next/server/chunks/ssr/_d4b20e29._.js.map +0 -1
  471. package/web/.next/server/chunks/ssr/_f39a1adb._.js +0 -3
  472. package/web/.next/server/chunks/ssr/_f39a1adb._.js.map +0 -1
  473. package/web/.next/server/chunks/ssr/node_modules__pnpm_55c7a131._.js +0 -3
  474. package/web/.next/server/chunks/ssr/node_modules__pnpm_55c7a131._.js.map +0 -1
  475. package/web/.next/server/chunks/ssr/src_presentation_web_06ffd221._.js +0 -3
  476. package/web/.next/static/chunks/0b7fe2ac4f078f54.js +0 -13
  477. package/web/.next/static/chunks/2bbb31a39a80d011.js +0 -1
  478. package/web/.next/static/chunks/5466ac7c8d7c6b2b.js +0 -1
  479. package/web/.next/static/chunks/601d93593f5f664f.js +0 -1
  480. package/web/.next/static/chunks/688971d5bad5dc7c.js +0 -1
  481. package/web/.next/static/chunks/6daf875725c43e2c.js +0 -2
  482. package/web/.next/static/chunks/991f2fcba923f3ed.js +0 -1
  483. package/web/.next/static/chunks/af4d1051b6fa73d5.js +0 -1
  484. package/web/.next/static/chunks/b70dd4985a814b27.js +0 -1
  485. package/web/.next/static/chunks/c317cd6a6f76361d.js +0 -1
  486. package/web/.next/static/chunks/d0dff217a94d4ee1.js +0 -1
  487. package/web/.next/static/chunks/db862617e62ba1f9.js +0 -1
  488. package/web/.next/static/chunks/e15904973d49ff89.js +0 -1
  489. package/web/.next/static/chunks/e6cff1dacc561fa0.js +0 -1
  490. package/web/.next/static/chunks/e8d49a8e1274cb49.js +0 -1
  491. /package/web/.next/server/chunks/{[root-of-the-server]__2b1074db._.js.map → [root-of-the-server]__c7d52490._.js.map} +0 -0
  492. /package/web/.next/static/{xpAWvEAtoYdP3klvh5Yyo → w0YQoUPySQy1O9cN91KEk}/_buildManifest.js +0 -0
  493. /package/web/.next/static/{xpAWvEAtoYdP3klvh5Yyo → w0YQoUPySQy1O9cN91KEk}/_clientMiddlewareManifest.json +0 -0
  494. /package/web/.next/static/{xpAWvEAtoYdP3klvh5Yyo → w0YQoUPySQy1O9cN91KEk}/_ssgManifest.js +0 -0
@@ -26,6 +26,10 @@ properties:
26
26
  type: boolean
27
27
  default: false
28
28
  description: Use the built-in React file manager instead of the native OS folder picker
29
+ scheduledWorkflows:
30
+ type: boolean
31
+ default: false
32
+ description: Enable scheduled workflows feature — workflow creation, scheduling, and execution
29
33
  required:
30
34
  - skills
31
35
  - envDeploy
@@ -33,4 +37,5 @@ required:
33
37
  - githubImport
34
38
  - adoptBranch
35
39
  - reactFileManager
40
+ - scheduledWorkflows
36
41
  description: Feature flag toggles for runtime feature control
@@ -46,6 +46,18 @@ properties:
46
46
  type: boolean
47
47
  default: true
48
48
  description: Notify when feature is ready for merge review
49
+ workflowStarted:
50
+ type: boolean
51
+ default: true
52
+ description: Notify when a scheduled workflow execution starts
53
+ workflowCompleted:
54
+ type: boolean
55
+ default: true
56
+ description: Notify when a scheduled workflow execution completes successfully
57
+ workflowFailed:
58
+ type: boolean
59
+ default: true
60
+ description: Notify when a scheduled workflow execution fails
49
61
  required:
50
62
  - agentStarted
51
63
  - phaseCompleted
@@ -58,4 +70,7 @@ required:
58
70
  - prChecksFailed
59
71
  - prBlocked
60
72
  - mergeReviewReady
73
+ - workflowStarted
74
+ - workflowCompleted
75
+ - workflowFailed
61
76
  description: Notification event type filters
@@ -13,4 +13,7 @@ enum:
13
13
  - pr_checks_failed
14
14
  - pr_blocked
15
15
  - merge_review_ready
16
+ - workflow_started
17
+ - workflow_completed
18
+ - workflow_failed
16
19
  description: Types of agent lifecycle notification events
@@ -11,9 +11,6 @@ properties:
11
11
  remoteUrl:
12
12
  type: string
13
13
  description: "Remote GitHub URL this repository was cloned from (normalized: lowercase, no .git suffix)"
14
- specStorageMode:
15
- type: string
16
- description: "Spec storage mode: 'in-repo' stores specs at <worktree>/.shep/specs/, 'shep-managed' stores at ~/.shep/repos/<hash>/specs/"
17
14
  required:
18
15
  - name
19
16
  - path
@@ -0,0 +1,46 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: ScheduledWorkflow.yaml
3
+ type: object
4
+ properties:
5
+ name:
6
+ type: string
7
+ description: Unique human-readable name identifying this workflow within the repository
8
+ description:
9
+ type: string
10
+ description: Optional human-readable description of what this workflow does
11
+ prompt:
12
+ type: string
13
+ description: Agent prompt instruction that the AI agent will execute when the workflow runs
14
+ toolConstraints:
15
+ type: array
16
+ items:
17
+ type: string
18
+ description: Optional allowlist of tool names the workflow agent is permitted to use
19
+ cronExpression:
20
+ type: string
21
+ description: "Cron expression defining the schedule (5-field format: min hour dom month dow)"
22
+ timezone:
23
+ type: string
24
+ description: IANA timezone for cron evaluation (e.g. America/New_York). Defaults to UTC
25
+ enabled:
26
+ type: boolean
27
+ description: Whether the workflow schedule is active. Disabled workflows retain their cron expression but do not auto-execute
28
+ lastRunAt:
29
+ type: string
30
+ format: date-time
31
+ description: Timestamp of the most recent execution (manual or scheduled)
32
+ nextRunAt:
33
+ type: string
34
+ format: date-time
35
+ description: Calculated timestamp of the next scheduled execution based on cron expression
36
+ repositoryPath:
37
+ type: string
38
+ description: Absolute file system path to the repository this workflow operates on
39
+ required:
40
+ - name
41
+ - prompt
42
+ - enabled
43
+ - repositoryPath
44
+ allOf:
45
+ - $ref: SoftDeletableEntity.yaml
46
+ description: User-defined reusable automation that runs on demand or on a cron schedule
@@ -0,0 +1,38 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: WorkflowExecution.yaml
3
+ type: object
4
+ properties:
5
+ workflowId:
6
+ $ref: UUID.yaml
7
+ description: ID of the ScheduledWorkflow that was executed
8
+ triggerType:
9
+ $ref: WorkflowTriggerType.yaml
10
+ description: How this execution was triggered (manual or scheduled)
11
+ status:
12
+ $ref: WorkflowExecutionStatus.yaml
13
+ description: Current lifecycle status of this execution
14
+ startedAt:
15
+ type: string
16
+ format: date-time
17
+ description: Timestamp when the execution started running
18
+ completedAt:
19
+ type: string
20
+ format: date-time
21
+ description: Timestamp when the execution completed or failed (null if still running)
22
+ durationMs:
23
+ type: integer
24
+ description: Duration of the execution in milliseconds (null if still running)
25
+ outputSummary:
26
+ type: string
27
+ description: Summary of the execution output (truncated if too long)
28
+ errorMessage:
29
+ type: string
30
+ description: Error message if the execution failed
31
+ required:
32
+ - workflowId
33
+ - triggerType
34
+ - status
35
+ - startedAt
36
+ allOf:
37
+ - $ref: BaseEntity.yaml
38
+ description: A single execution record for a scheduled workflow run
@@ -0,0 +1,10 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: WorkflowExecutionStatus.yaml
3
+ type: string
4
+ enum:
5
+ - queued
6
+ - running
7
+ - completed
8
+ - failed
9
+ - cancelled
10
+ description: Lifecycle status of a workflow execution
@@ -0,0 +1,7 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: WorkflowTriggerType.yaml
3
+ type: string
4
+ enum:
5
+ - manual
6
+ - scheduled
7
+ description: How a workflow execution was triggered
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Exports all use cases and port interfaces.
5
5
  */
6
- export type { IAgentExecutor, AgentExecutionResult, AgentExecutionStreamEvent, AgentExecutionOptions, IAgentExecutorFactory, IAgentExecutorProvider, IAgentRegistry, AgentDefinitionWithFactory, IAgentRunner, AgentRunOptions, IAgentRunRepository, IAgentValidator, AgentValidationResult, IFeatureAgentProcessService, IFeatureRepository, FeatureListFilters, ISettingsRepository, IExternalIssueFetcher, ExternalIssue, ISpecInitializerService, SpecInitializerOptions, SpecInitializerResult, IVersionService, IWebServerService, IWorktreeService, WorktreeInfo, } from './ports/output/index.js';
6
+ export type { IAgentExecutor, AgentExecutionResult, AgentExecutionStreamEvent, AgentExecutionOptions, IAgentExecutorFactory, IAgentExecutorProvider, IAgentRegistry, AgentDefinitionWithFactory, IAgentRunner, AgentRunOptions, IAgentRunRepository, IAgentValidator, AgentValidationResult, IFeatureAgentProcessService, IFeatureRepository, FeatureListFilters, ISettingsRepository, IExternalIssueFetcher, ExternalIssue, ISpecInitializerService, SpecInitializerResult, IVersionService, IWebServerService, IWorktreeService, WorktreeInfo, } from './ports/output/index.js';
7
7
  export { IssueFetcherError, IssueNotFoundError, IssueAuthenticationError, IssueServiceUnavailableError, WorktreeError, WorktreeErrorCode, } from './ports/output/index.js';
8
8
  export { InitializeSettingsUseCase } from './use-cases/settings/initialize-settings.use-case.js';
9
9
  export { LoadSettingsUseCase } from './use-cases/settings/load-settings.use-case.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/application/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,0BAA0B,EAC1B,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,2BAA2B,EAC3B,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,4BAA4B,EAC5B,aAAa,EACb,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,sDAAsD,CAAC;AACjG,OAAO,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kDAAkD,CAAC;AAGzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wDAAwD,CAAC;AAC9F,OAAO,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AAGvF,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAC;AAC1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AACtF,OAAO,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AACvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,oDAAoD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/application/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,0BAA0B,EAC1B,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,2BAA2B,EAC3B,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,uBAAuB,EACvB,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,4BAA4B,EAC5B,aAAa,EACb,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,sDAAsD,CAAC;AACjG,OAAO,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kDAAkD,CAAC;AAGzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wDAAwD,CAAC;AAC9F,OAAO,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AAGvF,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAC;AAC1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AACtF,OAAO,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AACvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,oDAAoD,CAAC"}
@@ -8,6 +8,6 @@
8
8
  */
9
9
  export type { IAgentExecutor, AgentExecutionResult, AgentExecutionStreamEvent, AgentExecutionOptions, IAgentExecutorFactory, IAgentExecutorProvider, IAgentRegistry, AgentDefinitionWithFactory, IAgentRunner, AgentRunOptions, IAgentRunRepository, IAgentValidator, AgentValidationResult, IFeatureAgentProcessService, } from './agents/index.js';
10
10
  export type { IFeatureRepository, FeatureListFilters, ISettingsRepository, } from './repositories/index.js';
11
- export type { IExternalIssueFetcher, ExternalIssue, INotificationService, ISpecInitializerService, SpecInitializerOptions, SpecInitializerResult, IVersionService, IWebServerService, IWorktreeService, WorktreeInfo, } from './services/index.js';
11
+ export type { IExternalIssueFetcher, ExternalIssue, INotificationService, ISpecInitializerService, SpecInitializerResult, IVersionService, IWebServerService, IWorktreeService, WorktreeInfo, } from './services/index.js';
12
12
  export { IssueFetcherError, IssueNotFoundError, IssueAuthenticationError, IssueServiceUnavailableError, WorktreeError, WorktreeErrorCode, } from './services/index.js';
13
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/ports/output/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,0BAA0B,EAC1B,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AAGjC,YAAY,EACV,qBAAqB,EACrB,aAAa,EACb,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,4BAA4B,EAC5B,aAAa,EACb,iBAAiB,GAClB,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/ports/output/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,0BAA0B,EAC1B,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AAGjC,YAAY,EACV,qBAAqB,EACrB,aAAa,EACb,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,4BAA4B,EAC5B,aAAa,EACb,iBAAiB,GAClB,MAAM,qBAAqB,CAAC"}
@@ -6,4 +6,6 @@
6
6
  export type { IFeatureRepository, FeatureListFilters } from './feature-repository.interface.js';
7
7
  export type { ISettingsRepository } from './settings.repository.interface.js';
8
8
  export type { IRepositoryRepository } from './repository-repository.interface.js';
9
+ export type { IWorkflowRepository, WorkflowListFilters } from './workflow-repository.interface.js';
10
+ export type { IWorkflowExecutionRepository } from './workflow-execution-repository.interface.js';
9
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/repositories/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAChG,YAAY,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,YAAY,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/repositories/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAChG,YAAY,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,YAAY,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAClF,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACnG,YAAY,EAAE,4BAA4B,EAAE,MAAM,8CAA8C,CAAC"}
@@ -18,6 +18,6 @@ export interface IRepositoryRepository {
18
18
  /** Restore a soft-deleted repository by clearing deletedAt. */
19
19
  restore(id: string): Promise<void>;
20
20
  /** Update specific fields on an existing repository. */
21
- update(id: string, fields: Partial<Pick<Repository, 'name' | 'path' | 'remoteUrl' | 'specStorageMode'>>): Promise<Repository>;
21
+ update(id: string, fields: Partial<Pick<Repository, 'name' | 'path' | 'remoteUrl'>>): Promise<Repository>;
22
22
  }
23
23
  //# sourceMappingURL=repository-repository.interface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"repository-repository.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/repositories/repository-repository.interface.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAEzE,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACpD,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACjD,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACrD,uEAAuE;IACvE,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACrE,+FAA+F;IAC/F,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACzD,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,+DAA+D;IAC/D,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,wDAAwD;IACxD,MAAM,CACJ,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,iBAAiB,CAAC,CAAC,GACnF,OAAO,CAAC,UAAU,CAAC,CAAC;CACxB"}
1
+ {"version":3,"file":"repository-repository.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/repositories/repository-repository.interface.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAEzE,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACpD,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACjD,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACrD,uEAAuE;IACvE,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACrE,+FAA+F;IAC/F,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACzD,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,+DAA+D;IAC/D,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,wDAAwD;IACxD,MAAM,CACJ,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC,CAAC,GAC/D,OAAO,CAAC,UAAU,CAAC,CAAC;CACxB"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Workflow Execution Repository Interface
3
+ *
4
+ * Output port for WorkflowExecution persistence operations.
5
+ * Implementations handle database-specific logic (SQLite, etc.).
6
+ *
7
+ * Following Clean Architecture:
8
+ * - Domain and Application layers depend on this interface
9
+ * - Infrastructure layer provides concrete implementations
10
+ */
11
+ import type { WorkflowExecution, WorkflowExecutionStatus } from '../../../../domain/generated/output.js';
12
+ /**
13
+ * Repository interface for WorkflowExecution entity persistence.
14
+ *
15
+ * Implementations must:
16
+ * - Handle database connection management
17
+ * - Provide thread-safe operations
18
+ * - Support efficient queries by workflowId and status
19
+ * - Support retention cleanup via deleteOlderThan
20
+ */
21
+ export interface IWorkflowExecutionRepository {
22
+ /**
23
+ * Create a new execution record.
24
+ *
25
+ * @param execution - The execution to persist
26
+ */
27
+ create(execution: WorkflowExecution): Promise<void>;
28
+ /**
29
+ * Find an execution by its unique ID.
30
+ *
31
+ * @param id - The execution ID
32
+ * @returns The execution or null if not found
33
+ */
34
+ findById(id: string): Promise<WorkflowExecution | null>;
35
+ /**
36
+ * Find executions for a specific workflow, ordered by started_at DESC.
37
+ *
38
+ * @param workflowId - The workflow ID
39
+ * @param limit - Optional maximum number of records to return
40
+ * @returns Array of executions, most recent first
41
+ */
42
+ findByWorkflowId(workflowId: string, limit?: number): Promise<WorkflowExecution[]>;
43
+ /**
44
+ * Find executions with a specific status.
45
+ * Used by the scheduler for crash recovery (finding stale 'running' records).
46
+ *
47
+ * @param status - The execution status to filter by
48
+ * @returns Array of matching executions
49
+ */
50
+ findByStatus(status: WorkflowExecutionStatus): Promise<WorkflowExecution[]>;
51
+ /**
52
+ * Update an existing execution record.
53
+ *
54
+ * @param execution - The execution with updated fields
55
+ */
56
+ update(execution: WorkflowExecution): Promise<void>;
57
+ /**
58
+ * Delete execution records older than the given date.
59
+ * Used for retention cleanup (default: 30 days).
60
+ *
61
+ * @param date - Delete records with started_at before this date
62
+ * @returns The number of records deleted
63
+ */
64
+ deleteOlderThan(date: Date): Promise<number>;
65
+ }
66
+ //# sourceMappingURL=workflow-execution-repository.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-execution-repository.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/repositories/workflow-execution-repository.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EACxB,MAAM,wCAAwC,CAAC;AAEhD;;;;;;;;GAQG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;;;OAIG;IACH,MAAM,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpD;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAExD;;;;;;OAMG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAEnF;;;;;;OAMG;IACH,YAAY,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAE5E;;;;OAIG;IACH,MAAM,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpD;;;;;;OAMG;IACH,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9C"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Workflow Execution Repository Interface
3
+ *
4
+ * Output port for WorkflowExecution persistence operations.
5
+ * Implementations handle database-specific logic (SQLite, etc.).
6
+ *
7
+ * Following Clean Architecture:
8
+ * - Domain and Application layers depend on this interface
9
+ * - Infrastructure layer provides concrete implementations
10
+ */
11
+ export {};
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Workflow Repository Interface
3
+ *
4
+ * Output port for ScheduledWorkflow persistence operations.
5
+ * Implementations handle database-specific logic (SQLite, etc.).
6
+ *
7
+ * Following Clean Architecture:
8
+ * - Domain and Application layers depend on this interface
9
+ * - Infrastructure layer provides concrete implementations
10
+ */
11
+ import type { ScheduledWorkflow } from '../../../../domain/generated/output.js';
12
+ /**
13
+ * Filters for listing workflows.
14
+ */
15
+ export interface WorkflowListFilters {
16
+ repositoryPath?: string;
17
+ enabled?: boolean;
18
+ /** When true, include soft-deleted workflows in results. Default: false. */
19
+ includeDeleted?: boolean;
20
+ }
21
+ /**
22
+ * Repository interface for ScheduledWorkflow entity persistence.
23
+ *
24
+ * Implementations must:
25
+ * - Handle database connection management
26
+ * - Provide thread-safe operations
27
+ * - Support query by name + repositoryPath for uniqueness
28
+ * - Exclude soft-deleted workflows from queries by default
29
+ */
30
+ export interface IWorkflowRepository {
31
+ /**
32
+ * Create a new workflow record.
33
+ *
34
+ * @param workflow - The workflow to persist
35
+ */
36
+ create(workflow: ScheduledWorkflow): Promise<void>;
37
+ /**
38
+ * Find a workflow by its unique ID (excludes soft-deleted).
39
+ *
40
+ * @param id - The workflow ID
41
+ * @returns The workflow or null if not found
42
+ */
43
+ findById(id: string): Promise<ScheduledWorkflow | null>;
44
+ /**
45
+ * Find a workflow by name within a repository (excludes soft-deleted).
46
+ *
47
+ * @param name - The workflow name
48
+ * @param repositoryPath - The repository path to scope the search
49
+ * @returns The workflow or null if not found
50
+ */
51
+ findByName(name: string, repositoryPath: string): Promise<ScheduledWorkflow | null>;
52
+ /**
53
+ * Find all enabled, non-deleted workflows.
54
+ * Used by the scheduler service to determine which workflows need evaluation.
55
+ *
56
+ * @returns Array of enabled workflows
57
+ */
58
+ findEnabled(): Promise<ScheduledWorkflow[]>;
59
+ /**
60
+ * List workflows with optional filters.
61
+ * Excludes soft-deleted workflows unless includeDeleted is true.
62
+ *
63
+ * @param filters - Optional filters for repositoryPath, enabled state, and includeDeleted
64
+ * @returns Array of matching workflows
65
+ */
66
+ list(filters?: WorkflowListFilters): Promise<ScheduledWorkflow[]>;
67
+ /**
68
+ * Update an existing workflow.
69
+ *
70
+ * @param workflow - The workflow with updated fields
71
+ */
72
+ update(workflow: ScheduledWorkflow): Promise<void>;
73
+ /**
74
+ * Soft-delete a workflow by setting deletedAt timestamp.
75
+ * Preserves execution history for audit purposes.
76
+ *
77
+ * @param id - The workflow ID to soft-delete
78
+ */
79
+ softDelete(id: string): Promise<void>;
80
+ }
81
+ //# sourceMappingURL=workflow-repository.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-repository.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/repositories/workflow-repository.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4EAA4E;IAC5E,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,MAAM,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnD;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAExD;;;;;;OAMG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAEpF;;;;;OAKG;IACH,WAAW,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAE5C;;;;;;OAMG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAElE;;;;OAIG;IACH,MAAM,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnD;;;;;OAKG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Workflow Repository Interface
3
+ *
4
+ * Output port for ScheduledWorkflow persistence operations.
5
+ * Implementations handle database-specific logic (SQLite, etc.).
6
+ *
7
+ * Following Clean Architecture:
8
+ * - Domain and Application layers depend on this interface
9
+ * - Infrastructure layer provides concrete implementations
10
+ */
11
+ export {};
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Clock Service Interface
3
+ *
4
+ * Output port for reading the current time. Enables deterministic testing
5
+ * of time-dependent logic (cron evaluation, nextRunAt calculation, retention
6
+ * cleanup) without relying on system time or Vitest fake timers.
7
+ *
8
+ * Following Clean Architecture:
9
+ * - Application layer depends on this interface
10
+ * - Infrastructure layer provides concrete implementation (RealClock)
11
+ * - Tests provide MockClock with controllable time
12
+ */
13
+ /**
14
+ * Port interface for reading the current time.
15
+ *
16
+ * Implementations must:
17
+ * - Return a Date representing the current moment
18
+ * - Be safe to call frequently (no side effects)
19
+ */
20
+ export interface IClock {
21
+ /**
22
+ * Get the current date and time.
23
+ *
24
+ * @returns A Date representing the current moment
25
+ */
26
+ now(): Date;
27
+ }
28
+ //# sourceMappingURL=clock.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clock.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/clock.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;;;;GAMG;AACH,MAAM,WAAW,MAAM;IACrB;;;;OAIG;IACH,GAAG,IAAI,IAAI,CAAC;CACb"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Clock Service Interface
3
+ *
4
+ * Output port for reading the current time. Enables deterministic testing
5
+ * of time-dependent logic (cron evaluation, nextRunAt calculation, retention
6
+ * cleanup) without relying on system time or Vitest fake timers.
7
+ *
8
+ * Following Clean Architecture:
9
+ * - Application layer depends on this interface
10
+ * - Infrastructure layer provides concrete implementation (RealClock)
11
+ * - Tests provide MockClock with controllable time
12
+ */
13
+ export {};
@@ -5,7 +5,7 @@
5
5
  */
6
6
  export type { IExternalIssueFetcher, ExternalIssue } from './external-issue-fetcher.interface.js';
7
7
  export { IssueFetcherError, IssueNotFoundError, IssueAuthenticationError, IssueServiceUnavailableError, } from './external-issue-fetcher.interface.js';
8
- export type { ISpecInitializerService, SpecInitializerOptions, SpecInitializerResult, } from './spec-initializer.interface.js';
8
+ export type { ISpecInitializerService, SpecInitializerResult, } from './spec-initializer.interface.js';
9
9
  export type { IVersionService } from './version-service.interface.js';
10
10
  export type { IWebServerService } from './web-server-service.interface.js';
11
11
  export type { IWorktreeService, WorktreeInfo } from './worktree-service.interface.js';
@@ -15,6 +15,7 @@ export type { INotificationService } from './notification-service.interface.js';
15
15
  export type { IGitPrService, CiStatus, CiStatusResult, DiffSummary, MergeStrategy, PrCreateResult, } from './git-pr-service.interface.js';
16
16
  export { GitPrError, GitPrErrorCode } from './git-pr-service.interface.js';
17
17
  export type { IIdeLauncherService, LaunchIdeInput, LaunchIdeResult, LaunchIdeSuccess, LaunchIdeFailed, } from './ide-launcher-service.interface.js';
18
+ export type { IClock } from './clock.interface.js';
18
19
  export type { IDaemonService, DaemonState } from './daemon-service.interface.js';
19
20
  export type { IDeploymentService, DeploymentStatus } from './deployment-service.interface.js';
20
21
  export type { IGitHubRepositoryService, GitHubRepo, ListUserRepositoriesOptions, CloneOptions, ParsedGitHubUrl, } from './github-repository-service.interface.js';
@@ -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,sBAAsB,EACtB,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,2BAA2B,EAC3B,YAAY,EACZ,eAAe,GAChB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,0CAA0C,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,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,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,2BAA2B,EAC3B,YAAY,EACZ,eAAe,GAChB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,0CAA0C,CAAC"}
@@ -11,42 +11,26 @@ export interface SpecInitializerResult {
11
11
  /** Zero-padded 3-digit feature number used */
12
12
  featureNumber: string;
13
13
  }
14
- export interface SpecInitializerOptions {
15
- /**
16
- * Where to store spec files.
17
- * - 'in-repo': Store at <worktree>/.shep/specs/NNN-slug/ (committed to git)
18
- * - 'shep-managed': Store at ~/.shep/repos/<hash>/specs/NNN-slug/ (never committed)
19
- * @default 'in-repo'
20
- */
21
- storageMode?: 'in-repo' | 'shep-managed';
22
- /**
23
- * Absolute path to the repository root. Required when storageMode is 'shep-managed'
24
- * to compute the per-repo hash for the storage path.
25
- */
26
- repositoryPath?: string;
27
- }
28
14
  export interface ISpecInitializerService {
29
15
  /**
30
16
  * Initialize a spec directory with template YAML files.
31
17
  *
32
- * Creates .shep/specs/NNN-SLUG/ inside the given base directory (in-repo mode)
33
- * or ~/.shep/repos/<hash>/specs/NNN-SLUG/ (shep-managed mode) with:
18
+ * Creates specs/NNN-SLUG/ inside the given base directory with:
34
19
  * - spec.yaml
35
20
  * - research.yaml
36
21
  * - plan.yaml
37
22
  * - tasks.yaml
38
23
  * - feature.yaml
39
24
  *
40
- * When mode is 'fast', only feature.yaml and spec.yaml are created.
25
+ * When mode is 'fast', only feature.yaml is created (no spec/research/plan/tasks).
41
26
  *
42
- * @param basePath - Directory to create .shep/specs/ in (typically the worktree path)
27
+ * @param basePath - Directory to create specs/ in (typically the worktree path)
43
28
  * @param slug - Feature slug (kebab-case, e.g., "user-authentication")
44
29
  * @param featureNumber - Sequential feature number (will be zero-padded to 3 digits)
45
30
  * @param description - Feature description for template substitution
46
- * @param mode - Optional mode; when 'fast', only feature.yaml and spec.yaml are created
47
- * @param options - Optional storage mode configuration
31
+ * @param mode - Optional mode; when 'fast', only feature.yaml is created
48
32
  * @returns The spec directory path and feature number used
49
33
  */
50
- initialize(basePath: string, slug: string, featureNumber: number, description: string, mode?: 'fast', options?: SpecInitializerOptions): Promise<SpecInitializerResult>;
34
+ initialize(basePath: string, slug: string, featureNumber: number, description: string, mode?: 'fast'): Promise<SpecInitializerResult>;
51
35
  }
52
36
  //# 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,sBAAsB;IACrC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,SAAS,GAAG,cAAc,CAAC;IACzC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,uBAAuB;IACtC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,UAAU,CACR,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,sBAAsB,GAC/B,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;;;;;;;;;;;;;;;;;;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"}
@@ -10,7 +10,7 @@
10
10
  * - Slug uniqueness delegated to SlugResolver service
11
11
  * - Full user input is preserved as-is in spec.yaml
12
12
  * - A git worktree is created at ~/.shep/repos/HASH/wt/SLUG/
13
- * - Spec YAML files are scaffolded at WORKTREE/.shep/specs/NNN-SLUG/ (in-repo) or ~/.shep/repos/HASH/specs/NNN-SLUG/ (shep-managed)
13
+ * - Spec YAML files are scaffolded at WORKTREE/specs/NNN-SLUG/
14
14
  * - Feature agent is spawned with the spec dir path
15
15
  * - specPath is persisted on the Feature record
16
16
  * - Initial lifecycle is Requirements
@@ -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;IAmI1E;;;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;CA0I1D"}
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;IAmI1E;;;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;CAgI1D"}
@@ -10,7 +10,7 @@
10
10
  * - Slug uniqueness delegated to SlugResolver service
11
11
  * - Full user input is preserved as-is in spec.yaml
12
12
  * - A git worktree is created at ~/.shep/repos/HASH/wt/SLUG/
13
- * - Spec YAML files are scaffolded at WORKTREE/.shep/specs/NNN-SLUG/ (in-repo) or ~/.shep/repos/HASH/specs/NNN-SLUG/ (shep-managed)
13
+ * - Spec YAML files are scaffolded at WORKTREE/specs/NNN-SLUG/
14
14
  * - Feature agent is spawned with the spec dir path
15
15
  * - specPath is persisted on the Feature record
16
16
  * - Initial lifecycle is Requirements
@@ -209,14 +209,8 @@ let CreateFeatureUseCase = class CreateFeatureUseCase {
209
209
  const defaultBranch = await this.gitPrService.getDefaultBranch(effectiveRepoPath);
210
210
  const worktreePath = this.worktreeService.getWorktreePath(effectiveRepoPath, branch);
211
211
  await this.worktreeService.create(effectiveRepoPath, branch, worktreePath, defaultBranch);
212
- // Resolve spec storage mode from repository entity (defaults to 'in-repo')
213
- const repository = await this.repositoryRepo.findByPath(effectiveRepoPath.replace(/\\/g, '/').replace(/\/+$/, '') || effectiveRepoPath);
214
- const storageMode = repository?.specStorageMode ?? 'in-repo';
215
212
  // Initialize spec directory — full user input goes into spec.yaml as-is
216
- const { specDir } = await this.specInitializer.initialize(worktreePath, slug, featureNumber, input.userInput, input.fast ? 'fast' : undefined, {
217
- storageMode,
218
- repositoryPath: effectiveRepoPath,
219
- });
213
+ const { specDir } = await this.specInitializer.initialize(worktreePath, slug, featureNumber, input.userInput, input.fast ? 'fast' : undefined);
220
214
  // Commit pending attachments if sessionId was provided (web UI flow)
221
215
  let committedAttachments = input.attachments;
222
216
  if (input.sessionId) {
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Create Workflow Use Case
3
+ *
4
+ * Creates a new scheduled workflow definition. Validates:
5
+ * - Name uniqueness within the same repository path
6
+ * - Cron expression validity (if provided) using croner
7
+ * - Calculates nextRunAt if a cron expression is provided
8
+ */
9
+ import type { ScheduledWorkflow } from '../../../domain/generated/output.js';
10
+ import type { IWorkflowRepository } from '../../ports/output/repositories/workflow-repository.interface.js';
11
+ import type { IClock } from '../../ports/output/services/clock.interface.js';
12
+ export interface CreateWorkflowInput {
13
+ name: string;
14
+ description?: string;
15
+ prompt: string;
16
+ toolConstraints?: string[];
17
+ cronExpression?: string;
18
+ timezone?: string;
19
+ enabled?: boolean;
20
+ repositoryPath: string;
21
+ }
22
+ export declare class CreateWorkflowUseCase {
23
+ private readonly workflowRepo;
24
+ private readonly clock;
25
+ constructor(workflowRepo: IWorkflowRepository, clock: IClock);
26
+ execute(input: CreateWorkflowInput): Promise<ScheduledWorkflow>;
27
+ }
28
+ //# sourceMappingURL=create-workflow.use-case.d.ts.map