@shepai/cli 1.135.2-pr439.e1871c8 → 1.135.2-pr441.6804dc0

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 (472) hide show
  1. package/apis/json-schema/NotificationEventConfig.yaml +15 -0
  2. package/apis/json-schema/NotificationEventType.yaml +3 -0
  3. package/apis/json-schema/Repository.yaml +0 -3
  4. package/apis/json-schema/ScheduledWorkflow.yaml +46 -0
  5. package/apis/json-schema/WorkflowExecution.yaml +38 -0
  6. package/apis/json-schema/WorkflowExecutionStatus.yaml +10 -0
  7. package/apis/json-schema/WorkflowTriggerType.yaml +7 -0
  8. package/dist/packages/core/src/application/index.d.ts +1 -1
  9. package/dist/packages/core/src/application/index.d.ts.map +1 -1
  10. package/dist/packages/core/src/application/ports/output/index.d.ts +1 -1
  11. package/dist/packages/core/src/application/ports/output/index.d.ts.map +1 -1
  12. package/dist/packages/core/src/application/ports/output/repositories/index.d.ts +2 -0
  13. package/dist/packages/core/src/application/ports/output/repositories/index.d.ts.map +1 -1
  14. package/dist/packages/core/src/application/ports/output/repositories/repository-repository.interface.d.ts +1 -1
  15. package/dist/packages/core/src/application/ports/output/repositories/repository-repository.interface.d.ts.map +1 -1
  16. package/dist/packages/core/src/application/ports/output/repositories/workflow-execution-repository.interface.d.ts +66 -0
  17. package/dist/packages/core/src/application/ports/output/repositories/workflow-execution-repository.interface.d.ts.map +1 -0
  18. package/dist/packages/core/src/application/ports/output/repositories/workflow-execution-repository.interface.js +11 -0
  19. package/dist/packages/core/src/application/ports/output/repositories/workflow-repository.interface.d.ts +81 -0
  20. package/dist/packages/core/src/application/ports/output/repositories/workflow-repository.interface.d.ts.map +1 -0
  21. package/dist/packages/core/src/application/ports/output/repositories/workflow-repository.interface.js +11 -0
  22. package/dist/packages/core/src/application/ports/output/services/clock.interface.d.ts +28 -0
  23. package/dist/packages/core/src/application/ports/output/services/clock.interface.d.ts.map +1 -0
  24. package/dist/packages/core/src/application/ports/output/services/clock.interface.js +13 -0
  25. package/dist/packages/core/src/application/ports/output/services/index.d.ts +2 -1
  26. package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
  27. package/dist/packages/core/src/application/ports/output/services/spec-initializer.interface.d.ts +5 -21
  28. package/dist/packages/core/src/application/ports/output/services/spec-initializer.interface.d.ts.map +1 -1
  29. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts +1 -1
  30. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts.map +1 -1
  31. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.js +2 -8
  32. package/dist/packages/core/src/application/use-cases/workflows/create-workflow.use-case.d.ts +28 -0
  33. package/dist/packages/core/src/application/use-cases/workflows/create-workflow.use-case.d.ts.map +1 -0
  34. package/dist/packages/core/src/application/use-cases/workflows/create-workflow.use-case.js +72 -0
  35. package/dist/packages/core/src/application/use-cases/workflows/cron-helpers.d.ts +27 -0
  36. package/dist/packages/core/src/application/use-cases/workflows/cron-helpers.d.ts.map +1 -0
  37. package/dist/packages/core/src/application/use-cases/workflows/cron-helpers.js +43 -0
  38. package/dist/packages/core/src/application/use-cases/workflows/delete-workflow.use-case.d.ts +18 -0
  39. package/dist/packages/core/src/application/use-cases/workflows/delete-workflow.use-case.d.ts.map +1 -0
  40. package/dist/packages/core/src/application/use-cases/workflows/delete-workflow.use-case.js +64 -0
  41. package/dist/packages/core/src/application/use-cases/workflows/get-workflow-history.use-case.d.ts +16 -0
  42. package/dist/packages/core/src/application/use-cases/workflows/get-workflow-history.use-case.d.ts.map +1 -0
  43. package/dist/packages/core/src/application/use-cases/workflows/get-workflow-history.use-case.js +46 -0
  44. package/dist/packages/core/src/application/use-cases/workflows/get-workflow.use-case.d.ts +13 -0
  45. package/dist/packages/core/src/application/use-cases/workflows/get-workflow.use-case.d.ts.map +1 -0
  46. package/dist/packages/core/src/application/use-cases/workflows/get-workflow.use-case.js +42 -0
  47. package/dist/packages/core/src/application/use-cases/workflows/list-workflows.use-case.d.ts +13 -0
  48. package/dist/packages/core/src/application/use-cases/workflows/list-workflows.use-case.d.ts.map +1 -0
  49. package/dist/packages/core/src/application/use-cases/workflows/list-workflows.use-case.js +33 -0
  50. package/dist/packages/core/src/application/use-cases/workflows/run-workflow.use-case.d.ts +19 -0
  51. package/dist/packages/core/src/application/use-cases/workflows/run-workflow.use-case.d.ts.map +1 -0
  52. package/dist/packages/core/src/application/use-cases/workflows/run-workflow.use-case.js +62 -0
  53. package/dist/packages/core/src/application/use-cases/workflows/schedule-workflow.use-case.d.ts +22 -0
  54. package/dist/packages/core/src/application/use-cases/workflows/schedule-workflow.use-case.d.ts.map +1 -0
  55. package/dist/packages/core/src/application/use-cases/workflows/schedule-workflow.use-case.js +73 -0
  56. package/dist/packages/core/src/application/use-cases/workflows/templates/branch-rebase.template.d.ts +9 -0
  57. package/dist/packages/core/src/application/use-cases/workflows/templates/branch-rebase.template.d.ts.map +1 -0
  58. package/dist/packages/core/src/application/use-cases/workflows/templates/branch-rebase.template.js +27 -0
  59. package/dist/packages/core/src/application/use-cases/workflows/templates/issue-triage.template.d.ts +11 -0
  60. package/dist/packages/core/src/application/use-cases/workflows/templates/issue-triage.template.d.ts.map +1 -0
  61. package/dist/packages/core/src/application/use-cases/workflows/templates/issue-triage.template.js +27 -0
  62. package/dist/packages/core/src/application/use-cases/workflows/toggle-workflow.use-case.d.ts +16 -0
  63. package/dist/packages/core/src/application/use-cases/workflows/toggle-workflow.use-case.d.ts.map +1 -0
  64. package/dist/packages/core/src/application/use-cases/workflows/toggle-workflow.use-case.js +60 -0
  65. package/dist/packages/core/src/application/use-cases/workflows/update-workflow.use-case.d.ts +25 -0
  66. package/dist/packages/core/src/application/use-cases/workflows/update-workflow.use-case.d.ts.map +1 -0
  67. package/dist/packages/core/src/application/use-cases/workflows/update-workflow.use-case.js +83 -0
  68. package/dist/packages/core/src/domain/factories/settings-defaults.factory.d.ts.map +1 -1
  69. package/dist/packages/core/src/domain/factories/settings-defaults.factory.js +3 -0
  70. package/dist/packages/core/src/domain/generated/output.d.ts +108 -3
  71. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  72. package/dist/packages/core/src/domain/generated/output.js +16 -0
  73. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  74. package/dist/packages/core/src/infrastructure/di/container.js +66 -0
  75. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/repository.mapper.d.ts +0 -1
  76. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/repository.mapper.d.ts.map +1 -1
  77. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/repository.mapper.js +0 -2
  78. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +3 -0
  79. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
  80. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +6 -0
  81. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow-execution.mapper.d.ts +46 -0
  82. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow-execution.mapper.d.ts.map +1 -0
  83. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow-execution.mapper.js +57 -0
  84. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow.mapper.d.ts +51 -0
  85. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow.mapper.d.ts.map +1 -0
  86. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow.mapper.js +71 -0
  87. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-workflow-notification-events.d.ts +12 -0
  88. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-workflow-notification-events.d.ts.map +1 -0
  89. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-workflow-notification-events.js +22 -0
  90. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/045-create-scheduled-workflows.d.ts +14 -0
  91. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/045-create-scheduled-workflows.d.ts.map +1 -0
  92. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/045-create-scheduled-workflows.js +65 -0
  93. package/dist/packages/core/src/infrastructure/repositories/sqlite-repository.repository.d.ts +1 -1
  94. package/dist/packages/core/src/infrastructure/repositories/sqlite-repository.repository.d.ts.map +1 -1
  95. package/dist/packages/core/src/infrastructure/repositories/sqlite-repository.repository.js +2 -6
  96. package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow-execution.repository.d.ts +24 -0
  97. package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow-execution.repository.d.ts.map +1 -0
  98. package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow-execution.repository.js +92 -0
  99. package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow.repository.d.ts +26 -0
  100. package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow.repository.d.ts.map +1 -0
  101. package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow.repository.js +117 -0
  102. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/evidence-prompts.d.ts +2 -4
  103. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/evidence-prompts.d.ts.map +1 -1
  104. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/evidence-prompts.js +8 -15
  105. package/dist/packages/core/src/infrastructure/services/clock.d.ts +11 -0
  106. package/dist/packages/core/src/infrastructure/services/clock.d.ts.map +1 -0
  107. package/dist/packages/core/src/infrastructure/services/clock.js +22 -0
  108. package/dist/packages/core/src/infrastructure/services/git/worktree.service.d.ts.map +1 -1
  109. package/dist/packages/core/src/infrastructure/services/git/worktree.service.js +4 -2
  110. package/dist/packages/core/src/infrastructure/services/ide-launchers/compute-worktree-path.d.ts.map +1 -1
  111. package/dist/packages/core/src/infrastructure/services/ide-launchers/compute-worktree-path.js +4 -2
  112. package/dist/packages/core/src/infrastructure/services/notifications/notification.service.d.ts.map +1 -1
  113. package/dist/packages/core/src/infrastructure/services/notifications/notification.service.js +3 -0
  114. package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.d.ts +3 -17
  115. package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.d.ts.map +1 -1
  116. package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.js +13 -49
  117. package/dist/packages/core/src/infrastructure/services/workflow-scheduler/workflow-scheduler.service.d.ts +69 -0
  118. package/dist/packages/core/src/infrastructure/services/workflow-scheduler/workflow-scheduler.service.d.ts.map +1 -0
  119. package/dist/packages/core/src/infrastructure/services/workflow-scheduler/workflow-scheduler.service.js +270 -0
  120. package/dist/src/presentation/cli/commands/_serve.command.d.ts.map +1 -1
  121. package/dist/src/presentation/cli/commands/_serve.command.js +10 -0
  122. package/dist/src/presentation/cli/commands/workflow/create.command.d.ts +13 -0
  123. package/dist/src/presentation/cli/commands/workflow/create.command.d.ts.map +1 -0
  124. package/dist/src/presentation/cli/commands/workflow/create.command.js +83 -0
  125. package/dist/src/presentation/cli/commands/workflow/delete.command.d.ts +13 -0
  126. package/dist/src/presentation/cli/commands/workflow/delete.command.d.ts.map +1 -0
  127. package/dist/src/presentation/cli/commands/workflow/delete.command.js +50 -0
  128. package/dist/src/presentation/cli/commands/workflow/disable.command.d.ts +11 -0
  129. package/dist/src/presentation/cli/commands/workflow/disable.command.d.ts.map +1 -0
  130. package/dist/src/presentation/cli/commands/workflow/disable.command.js +32 -0
  131. package/dist/src/presentation/cli/commands/workflow/enable.command.d.ts +11 -0
  132. package/dist/src/presentation/cli/commands/workflow/enable.command.d.ts.map +1 -0
  133. package/dist/src/presentation/cli/commands/workflow/enable.command.js +35 -0
  134. package/dist/src/presentation/cli/commands/workflow/format-helpers.d.ts +35 -0
  135. package/dist/src/presentation/cli/commands/workflow/format-helpers.d.ts.map +1 -0
  136. package/dist/src/presentation/cli/commands/workflow/format-helpers.js +89 -0
  137. package/dist/src/presentation/cli/commands/workflow/history.command.d.ts +12 -0
  138. package/dist/src/presentation/cli/commands/workflow/history.command.d.ts.map +1 -0
  139. package/dist/src/presentation/cli/commands/workflow/history.command.js +46 -0
  140. package/dist/src/presentation/cli/commands/workflow/index.d.ts +26 -0
  141. package/dist/src/presentation/cli/commands/workflow/index.d.ts.map +1 -0
  142. package/dist/src/presentation/cli/commands/workflow/index.js +48 -0
  143. package/dist/src/presentation/cli/commands/workflow/list.command.d.ts +11 -0
  144. package/dist/src/presentation/cli/commands/workflow/list.command.d.ts.map +1 -0
  145. package/dist/src/presentation/cli/commands/workflow/list.command.js +52 -0
  146. package/dist/src/presentation/cli/commands/workflow/run.command.d.ts +11 -0
  147. package/dist/src/presentation/cli/commands/workflow/run.command.d.ts.map +1 -0
  148. package/dist/src/presentation/cli/commands/workflow/run.command.js +37 -0
  149. package/dist/src/presentation/cli/commands/workflow/schedule.command.d.ts +13 -0
  150. package/dist/src/presentation/cli/commands/workflow/schedule.command.d.ts.map +1 -0
  151. package/dist/src/presentation/cli/commands/workflow/schedule.command.js +76 -0
  152. package/dist/src/presentation/cli/commands/workflow/show.command.d.ts +11 -0
  153. package/dist/src/presentation/cli/commands/workflow/show.command.d.ts.map +1 -0
  154. package/dist/src/presentation/cli/commands/workflow/show.command.js +93 -0
  155. package/dist/src/presentation/cli/commands/workflow/update.command.d.ts +13 -0
  156. package/dist/src/presentation/cli/commands/workflow/update.command.d.ts.map +1 -0
  157. package/dist/src/presentation/cli/commands/workflow/update.command.js +67 -0
  158. package/dist/src/presentation/cli/index.js +2 -0
  159. package/dist/src/presentation/web/app/actions/get-workflow-history.d.ts +7 -0
  160. package/dist/src/presentation/web/app/actions/get-workflow-history.d.ts.map +1 -0
  161. package/dist/src/presentation/web/app/actions/get-workflow-history.js +13 -0
  162. package/dist/src/presentation/web/app/actions/list-workflows.d.ts +7 -0
  163. package/dist/src/presentation/web/app/actions/list-workflows.d.ts.map +1 -0
  164. package/dist/src/presentation/web/app/actions/list-workflows.js +13 -0
  165. package/dist/src/presentation/web/app/actions/toggle-workflow.d.ts +8 -0
  166. package/dist/src/presentation/web/app/actions/toggle-workflow.d.ts.map +1 -0
  167. package/dist/src/presentation/web/app/actions/toggle-workflow.js +15 -0
  168. package/dist/src/presentation/web/app/actions/trigger-workflow.d.ts +8 -0
  169. package/dist/src/presentation/web/app/actions/trigger-workflow.d.ts.map +1 -0
  170. package/dist/src/presentation/web/app/actions/trigger-workflow.js +15 -0
  171. package/dist/src/presentation/web/app/workflows/page.d.ts +4 -0
  172. package/dist/src/presentation/web/app/workflows/page.d.ts.map +1 -0
  173. package/dist/src/presentation/web/app/workflows/page.js +12 -0
  174. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.d.ts.map +1 -1
  175. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.js +4 -0
  176. package/dist/src/presentation/web/components/features/settings/notification-settings-section.d.ts.map +1 -1
  177. package/dist/src/presentation/web/components/features/settings/notification-settings-section.js +6 -1
  178. package/dist/src/presentation/web/components/features/settings/notification-settings-section.stories.d.ts.map +1 -1
  179. package/dist/src/presentation/web/components/features/settings/notification-settings-section.stories.js +6 -0
  180. package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
  181. package/dist/src/presentation/web/components/features/settings/settings-page-client.js +12 -0
  182. package/dist/src/presentation/web/components/features/workflows/workflow-execution-history.d.ts +7 -0
  183. package/dist/src/presentation/web/components/features/workflows/workflow-execution-history.d.ts.map +1 -0
  184. package/dist/src/presentation/web/components/features/workflows/workflow-execution-history.js +84 -0
  185. package/dist/src/presentation/web/components/features/workflows/workflow-execution-history.stories.d.ts +11 -0
  186. package/dist/src/presentation/web/components/features/workflows/workflow-execution-history.stories.d.ts.map +1 -0
  187. package/dist/src/presentation/web/components/features/workflows/workflow-execution-history.stories.js +104 -0
  188. package/dist/src/presentation/web/components/features/workflows/workflow-list-item.d.ts +8 -0
  189. package/dist/src/presentation/web/components/features/workflows/workflow-list-item.d.ts.map +1 -0
  190. package/dist/src/presentation/web/components/features/workflows/workflow-list-item.js +68 -0
  191. package/dist/src/presentation/web/components/features/workflows/workflow-list-item.stories.d.ts +11 -0
  192. package/dist/src/presentation/web/components/features/workflows/workflow-list-item.stories.d.ts.map +1 -0
  193. package/dist/src/presentation/web/components/features/workflows/workflow-list-item.stories.js +89 -0
  194. package/dist/src/presentation/web/components/features/workflows/workflow-list.d.ts +8 -0
  195. package/dist/src/presentation/web/components/features/workflows/workflow-list.d.ts.map +1 -0
  196. package/dist/src/presentation/web/components/features/workflows/workflow-list.js +10 -0
  197. package/dist/src/presentation/web/components/features/workflows/workflow-list.stories.d.ts +11 -0
  198. package/dist/src/presentation/web/components/features/workflows/workflow-list.stories.d.ts.map +1 -0
  199. package/dist/src/presentation/web/components/features/workflows/workflow-list.stories.js +90 -0
  200. package/dist/src/presentation/web/components/features/workflows/workflows-page-client.d.ts +6 -0
  201. package/dist/src/presentation/web/components/features/workflows/workflows-page-client.d.ts.map +1 -0
  202. package/dist/src/presentation/web/components/features/workflows/workflows-page-client.js +14 -0
  203. package/dist/src/presentation/web/components/features/workflows/workflows-page-client.stories.d.ts +10 -0
  204. package/dist/src/presentation/web/components/features/workflows/workflows-page-client.stories.d.ts.map +1 -0
  205. package/dist/src/presentation/web/components/features/workflows/workflows-page-client.stories.js +70 -0
  206. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts.map +1 -1
  207. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.js +2 -2
  208. package/dist/tsconfig.build.tsbuildinfo +1 -1
  209. package/package.json +2 -1
  210. package/web/.next/BUILD_ID +1 -1
  211. package/web/.next/app-path-routes-manifest.json +2 -1
  212. package/web/.next/build-manifest.json +2 -2
  213. package/web/.next/fallback-build-manifest.json +2 -2
  214. package/web/.next/prerender-manifest.json +3 -3
  215. package/web/.next/required-server-files.js +1 -1
  216. package/web/.next/required-server-files.json +1 -1
  217. package/web/.next/routes-manifest.json +6 -0
  218. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +24 -24
  219. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +1 -1
  220. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  221. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  222. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +24 -24
  223. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +1 -1
  224. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  225. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  226. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +30 -30
  227. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +2 -2
  228. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  229. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  230. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +30 -30
  231. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +2 -2
  232. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  233. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  234. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +22 -22
  235. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +1 -1
  236. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  237. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  238. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +24 -24
  239. package/web/.next/server/app/(dashboard)/create/page.js +1 -1
  240. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  241. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  242. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +30 -30
  243. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +2 -2
  244. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  245. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  246. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +30 -30
  247. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +2 -2
  248. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  249. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  250. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +22 -22
  251. package/web/.next/server/app/(dashboard)/page.js +1 -1
  252. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  253. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  254. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +22 -22
  255. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +1 -1
  256. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  257. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  258. package/web/.next/server/app/_global-error.html +2 -2
  259. package/web/.next/server/app/_global-error.rsc +1 -1
  260. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  261. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  262. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  263. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  264. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  265. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +3 -3
  266. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  267. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  268. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  269. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  270. package/web/.next/server/app/api/feature-logs/route.js +1 -1
  271. package/web/.next/server/app/api/feature-logs/route.js.nft.json +1 -1
  272. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  273. package/web/.next/server/app/settings/page/server-reference-manifest.json +8 -8
  274. package/web/.next/server/app/settings/page.js +2 -2
  275. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  276. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  277. package/web/.next/server/app/skills/page/server-reference-manifest.json +8 -8
  278. package/web/.next/server/app/skills/page.js +1 -1
  279. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  280. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  281. package/web/.next/server/app/tools/page/server-reference-manifest.json +8 -8
  282. package/web/.next/server/app/tools/page.js +1 -1
  283. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  284. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  285. package/web/.next/server/app/version/page/server-reference-manifest.json +3 -3
  286. package/web/.next/server/app/version/page.js.nft.json +1 -1
  287. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  288. package/web/.next/server/app/workflows/page/app-paths-manifest.json +3 -0
  289. package/web/.next/server/app/workflows/page/build-manifest.json +18 -0
  290. package/web/.next/server/app/workflows/page/next-font-manifest.json +6 -0
  291. package/web/.next/server/app/workflows/page/react-loadable-manifest.json +8 -0
  292. package/web/.next/server/app/workflows/page/server-reference-manifest.json +110 -0
  293. package/web/.next/server/app/workflows/page.js +18 -0
  294. package/web/.next/server/app/workflows/page.js.map +5 -0
  295. package/web/.next/server/app/workflows/page.js.nft.json +1 -0
  296. package/web/.next/server/app/workflows/page_client-reference-manifest.js +2 -0
  297. package/web/.next/server/app-paths-manifest.json +2 -1
  298. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js.map +1 -1
  299. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  300. package/web/.next/server/chunks/[root-of-the-server]__c6e32a23._.js +1 -1
  301. package/web/.next/server/chunks/[root-of-the-server]__c6e32a23._.js.map +1 -1
  302. package/web/.next/server/chunks/{[root-of-the-server]__2b1074db._.js → [root-of-the-server]__c7d52490._.js} +2 -2
  303. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js +1 -1
  304. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
  305. package/web/.next/server/chunks/ssr/{_02ec1aea._.js → 403f9_next_53742624._.js} +2 -2
  306. package/web/.next/server/chunks/ssr/403f9_next_53742624._.js.map +1 -0
  307. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_4e741df2.js +1 -1
  308. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_4e741df2.js.map +1 -1
  309. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  310. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  311. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_0c7787d0._.js +3 -0
  312. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_0c7787d0._.js.map +1 -0
  313. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_026fdffa.js +1 -1
  314. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_026fdffa.js.map +1 -1
  315. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_8b91e197.js +1 -1
  316. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_8b91e197.js.map +1 -1
  317. package/web/.next/server/chunks/ssr/[root-of-the-server]__182ecd69._.js +3 -0
  318. package/web/.next/server/chunks/ssr/[root-of-the-server]__182ecd69._.js.map +1 -0
  319. package/web/.next/server/chunks/ssr/{[root-of-the-server]__6c83fbec._.js → [root-of-the-server]__31bc28da._.js} +2 -2
  320. package/web/.next/server/chunks/ssr/{[root-of-the-server]__2096f24f._.js.map → [root-of-the-server]__31bc28da._.js.map} +1 -1
  321. package/web/.next/server/chunks/ssr/{[root-of-the-server]__2096f24f._.js → [root-of-the-server]__32ecbed9._.js} +2 -2
  322. package/web/.next/server/chunks/ssr/{[root-of-the-server]__6c83fbec._.js.map → [root-of-the-server]__32ecbed9._.js.map} +1 -1
  323. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  324. package/web/.next/server/chunks/ssr/[root-of-the-server]__43f51aa6._.js +1 -1
  325. package/web/.next/server/chunks/ssr/[root-of-the-server]__43f51aa6._.js.map +1 -1
  326. package/web/.next/server/chunks/ssr/[root-of-the-server]__44358910._.js +4 -0
  327. package/web/.next/server/chunks/ssr/[root-of-the-server]__44358910._.js.map +1 -0
  328. package/web/.next/server/chunks/ssr/{[root-of-the-server]__9c45d070._.js → [root-of-the-server]__56049783._.js} +2 -2
  329. package/web/.next/server/chunks/ssr/[root-of-the-server]__56049783._.js.map +1 -0
  330. package/web/.next/server/chunks/ssr/{[root-of-the-server]__3ef34e4c._.js → [root-of-the-server]__57e0ee34._.js} +3 -3
  331. package/web/.next/server/chunks/ssr/[root-of-the-server]__57e0ee34._.js.map +1 -0
  332. package/web/.next/server/chunks/ssr/[root-of-the-server]__6e93b49c._.js +3 -0
  333. package/web/.next/server/chunks/ssr/{[root-of-the-server]__b3dbadca._.js.map → [root-of-the-server]__6e93b49c._.js.map} +1 -1
  334. package/web/.next/server/chunks/ssr/[root-of-the-server]__815546bd._.js +1 -1
  335. package/web/.next/server/chunks/ssr/[root-of-the-server]__815546bd._.js.map +1 -1
  336. package/web/.next/server/chunks/ssr/{[root-of-the-server]__a13f3ed8._.js → [root-of-the-server]__90ce4b6d._.js} +2 -2
  337. package/web/.next/server/chunks/ssr/{[root-of-the-server]__3f6cd19e._.js.map → [root-of-the-server]__90ce4b6d._.js.map} +1 -1
  338. package/web/.next/server/chunks/ssr/{[root-of-the-server]__3f6cd19e._.js → [root-of-the-server]__90f9ae71._.js} +2 -2
  339. package/web/.next/server/chunks/ssr/{[root-of-the-server]__a13f3ed8._.js.map → [root-of-the-server]__90f9ae71._.js.map} +1 -1
  340. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +2 -2
  341. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
  342. package/web/.next/server/chunks/ssr/[root-of-the-server]__e6185e8f._.js +3 -0
  343. package/web/.next/server/chunks/ssr/[root-of-the-server]__e6185e8f._.js.map +1 -0
  344. package/web/.next/server/chunks/ssr/{[root-of-the-server]__96670392._.js → [root-of-the-server]__fbc4c252._.js} +3 -3
  345. package/web/.next/server/chunks/ssr/[root-of-the-server]__fbc4c252._.js.map +1 -0
  346. package/web/.next/server/chunks/ssr/_20a4a0d5._.js +3 -0
  347. package/web/.next/server/chunks/ssr/_20a4a0d5._.js.map +1 -0
  348. package/web/.next/server/chunks/ssr/_25555eb5._.js +3 -0
  349. package/web/.next/server/chunks/ssr/_25555eb5._.js.map +1 -0
  350. package/web/.next/server/chunks/ssr/{_b5fc318a._.js → _277acdde._.js} +2 -2
  351. package/web/.next/server/chunks/ssr/_277acdde._.js.map +1 -0
  352. package/web/.next/server/chunks/ssr/_381e4350._.js +9 -0
  353. package/web/.next/server/chunks/ssr/_381e4350._.js.map +1 -0
  354. package/web/.next/server/chunks/ssr/_4711e8cf._.js +3 -0
  355. package/web/.next/server/chunks/ssr/_4711e8cf._.js.map +1 -0
  356. package/web/.next/server/chunks/ssr/{_c5a0904f._.js → _5bebeeac._.js} +2 -2
  357. package/web/.next/server/chunks/ssr/{_c5a0904f._.js.map → _5bebeeac._.js.map} +1 -1
  358. package/web/.next/server/chunks/ssr/{_a9f57758._.js → _6701ee41._.js} +2 -2
  359. package/web/.next/server/chunks/ssr/{_a9f57758._.js.map → _6701ee41._.js.map} +1 -1
  360. package/web/.next/server/chunks/ssr/_89a36303._.js +3 -0
  361. package/web/.next/server/chunks/ssr/_89a36303._.js.map +1 -0
  362. package/web/.next/server/chunks/ssr/{_0020fddd._.js → _a3721140._.js} +2 -2
  363. package/web/.next/server/chunks/ssr/_a3721140._.js.map +1 -0
  364. package/web/.next/server/chunks/ssr/_b5ce655c._.js +3 -0
  365. package/web/.next/server/chunks/ssr/_b5ce655c._.js.map +1 -0
  366. package/web/.next/server/chunks/ssr/_b6960ca0._.js +2 -2
  367. package/web/.next/server/chunks/ssr/_b6960ca0._.js.map +1 -1
  368. package/web/.next/server/chunks/ssr/_cc1243e6._.js +3 -0
  369. package/web/.next/server/chunks/ssr/_cc1243e6._.js.map +1 -0
  370. package/web/.next/server/chunks/ssr/_d8575088._.js +1 -1
  371. package/web/.next/server/chunks/ssr/_d8575088._.js.map +1 -1
  372. package/web/.next/server/chunks/ssr/_f64ffec0._.js +4 -0
  373. package/web/.next/server/chunks/ssr/_f64ffec0._.js.map +1 -0
  374. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  375. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  376. package/web/.next/server/chunks/ssr/{_1b7dae9a._.js → f7870_sonner_dist_index_mjs_dbf63824._.js} +2 -2
  377. package/web/.next/server/chunks/ssr/f7870_sonner_dist_index_mjs_dbf63824._.js.map +1 -0
  378. package/web/.next/server/chunks/ssr/node_modules__pnpm_28388798._.js +3 -0
  379. package/web/.next/server/chunks/ssr/node_modules__pnpm_28388798._.js.map +1 -0
  380. package/web/.next/server/chunks/ssr/node_modules__pnpm_ae1705ef._.js +3 -0
  381. package/web/.next/server/chunks/ssr/node_modules__pnpm_ae1705ef._.js.map +1 -0
  382. package/web/.next/server/chunks/ssr/src_presentation_web_6f178e4e._.js +3 -0
  383. package/web/.next/server/chunks/ssr/{src_presentation_web_5cbfa9c3._.js.map → src_presentation_web_6f178e4e._.js.map} +1 -1
  384. package/web/.next/server/chunks/ssr/src_presentation_web_8e7fe0d1._.js +2 -2
  385. package/web/.next/server/chunks/ssr/src_presentation_web_8e7fe0d1._.js.map +1 -1
  386. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_ca051134.js +1 -1
  387. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_ca051134.js.map +1 -1
  388. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1b176e3c.js +1 -1
  389. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1b176e3c.js.map +1 -1
  390. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_bd9f0dda.js +1 -1
  391. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_bd9f0dda.js.map +1 -1
  392. package/web/.next/server/chunks/ssr/src_presentation_web_b9023017._.js +2 -2
  393. package/web/.next/server/chunks/ssr/src_presentation_web_b9023017._.js.map +1 -1
  394. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  395. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
  396. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  397. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  398. package/web/.next/server/pages/500.html +2 -2
  399. package/web/.next/server/server-reference-manifest.js +1 -1
  400. package/web/.next/server/server-reference-manifest.json +122 -41
  401. package/web/.next/static/chunks/039f4ab4160abfa3.js +1 -0
  402. package/web/.next/static/chunks/09de5fa7d66c6745.js +1 -0
  403. package/web/.next/static/chunks/0b9e55b2783ee3fb.js +5 -0
  404. package/web/.next/static/chunks/{d4ea4340c78d8fe8.js → 1068352aef31070a.js} +1 -1
  405. package/web/.next/static/chunks/{3e2d7d07926b05bf.css → 1e29c585c1e94e3c.css} +1 -1
  406. package/web/.next/static/chunks/2c1ff62df9b34313.js +1 -0
  407. package/web/.next/static/chunks/3566c243f152a986.js +1 -0
  408. package/web/.next/static/chunks/{672e3da3ad26005b.js → 42c9564e375717ed.js} +1 -1
  409. package/web/.next/static/chunks/5420560352333486.js +1 -0
  410. package/web/.next/static/chunks/6108f8293b0c07e6.js +1 -0
  411. package/web/.next/static/chunks/{dca377b2a0726988.js → 7c0b57ac2f855eb1.js} +1 -1
  412. package/web/.next/static/chunks/877d349200088a39.js +1 -0
  413. package/web/.next/static/chunks/928eca7a2bc74395.js +2 -0
  414. package/web/.next/static/chunks/9be8fb0d0e5983b7.js +1 -0
  415. package/web/.next/static/chunks/{9cde06b0bf7f313d.js → a2ad257fdfe2ee9c.js} +1 -1
  416. package/web/.next/static/chunks/b1b491045dc169cc.js +1 -0
  417. package/web/.next/static/chunks/b636c0ccb43b653d.js +1 -0
  418. package/web/.next/static/chunks/cc6b9021425b907e.js +1 -0
  419. package/web/.next/static/chunks/d2568e0b833ff357.js +1 -0
  420. package/web/.next/static/chunks/ed35b4293a81c861.js +9 -0
  421. package/web/.next/static/chunks/f75142a1b75f1c32.js +1 -0
  422. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-spec-storage-mode.d.ts +0 -12
  423. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-spec-storage-mode.d.ts.map +0 -1
  424. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-spec-storage-mode.js +0 -19
  425. package/dist/packages/core/src/infrastructure/services/filesystem/repo-hash.d.ts +0 -17
  426. package/dist/packages/core/src/infrastructure/services/filesystem/repo-hash.d.ts.map +0 -1
  427. package/dist/packages/core/src/infrastructure/services/filesystem/repo-hash.js +0 -21
  428. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_8b618f7d._.js +0 -3
  429. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_8b618f7d._.js.map +0 -1
  430. package/web/.next/server/chunks/ssr/[root-of-the-server]__3ef34e4c._.js.map +0 -1
  431. package/web/.next/server/chunks/ssr/[root-of-the-server]__7894f27f._.js +0 -3
  432. package/web/.next/server/chunks/ssr/[root-of-the-server]__7894f27f._.js.map +0 -1
  433. package/web/.next/server/chunks/ssr/[root-of-the-server]__96670392._.js.map +0 -1
  434. package/web/.next/server/chunks/ssr/[root-of-the-server]__9c45d070._.js.map +0 -1
  435. package/web/.next/server/chunks/ssr/[root-of-the-server]__b3dbadca._.js +0 -3
  436. package/web/.next/server/chunks/ssr/_0020fddd._.js.map +0 -1
  437. package/web/.next/server/chunks/ssr/_01046927._.js +0 -9
  438. package/web/.next/server/chunks/ssr/_01046927._.js.map +0 -1
  439. package/web/.next/server/chunks/ssr/_02ec1aea._.js.map +0 -1
  440. package/web/.next/server/chunks/ssr/_1b7dae9a._.js.map +0 -1
  441. package/web/.next/server/chunks/ssr/_67104d9e._.js +0 -3
  442. package/web/.next/server/chunks/ssr/_67104d9e._.js.map +0 -1
  443. package/web/.next/server/chunks/ssr/_7dca1882._.js +0 -3
  444. package/web/.next/server/chunks/ssr/_7dca1882._.js.map +0 -1
  445. package/web/.next/server/chunks/ssr/_b5fc318a._.js.map +0 -1
  446. package/web/.next/server/chunks/ssr/_c80f0ee4._.js +0 -3
  447. package/web/.next/server/chunks/ssr/_c80f0ee4._.js.map +0 -1
  448. package/web/.next/server/chunks/ssr/_d4b20e29._.js +0 -3
  449. package/web/.next/server/chunks/ssr/_d4b20e29._.js.map +0 -1
  450. package/web/.next/server/chunks/ssr/_f39a1adb._.js +0 -3
  451. package/web/.next/server/chunks/ssr/_f39a1adb._.js.map +0 -1
  452. package/web/.next/server/chunks/ssr/node_modules__pnpm_55c7a131._.js +0 -3
  453. package/web/.next/server/chunks/ssr/node_modules__pnpm_55c7a131._.js.map +0 -1
  454. package/web/.next/server/chunks/ssr/src_presentation_web_5cbfa9c3._.js +0 -3
  455. package/web/.next/static/chunks/0b7fe2ac4f078f54.js +0 -13
  456. package/web/.next/static/chunks/0f7a03924ffe9201.js +0 -1
  457. package/web/.next/static/chunks/290b9ee95370f3e6.js +0 -2
  458. package/web/.next/static/chunks/314b8314f77d6921.js +0 -1
  459. package/web/.next/static/chunks/32a0eb00cc8f57a5.js +0 -1
  460. package/web/.next/static/chunks/47151663050b874d.js +0 -1
  461. package/web/.next/static/chunks/601d93593f5f664f.js +0 -1
  462. package/web/.next/static/chunks/6472785bb556ec8a.js +0 -1
  463. package/web/.next/static/chunks/688971d5bad5dc7c.js +0 -1
  464. package/web/.next/static/chunks/6cf053583d146b73.js +0 -1
  465. package/web/.next/static/chunks/769db91c3a32cb62.js +0 -1
  466. package/web/.next/static/chunks/7eb6cae52a1a3747.js +0 -1
  467. package/web/.next/static/chunks/9a53c38c866d6fd6.js +0 -1
  468. package/web/.next/static/chunks/b70dd4985a814b27.js +0 -1
  469. /package/web/.next/server/chunks/{[root-of-the-server]__2b1074db._.js.map → [root-of-the-server]__c7d52490._.js.map} +0 -0
  470. /package/web/.next/static/{joXWxy8xjQS31B-KrKQy2 → HEAa-Mgva36D5TU3YlIqA}/_buildManifest.js +0 -0
  471. /package/web/.next/static/{joXWxy8xjQS31B-KrKQy2 → HEAa-Mgva36D5TU3YlIqA}/_clientMiddlewareManifest.json +0 -0
  472. /package/web/.next/static/{joXWxy8xjQS31B-KrKQy2 → HEAa-Mgva36D5TU3YlIqA}/_ssgManifest.js +0 -0
@@ -0,0 +1,72 @@
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
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
10
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
11
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
12
+ 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;
13
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
14
+ };
15
+ var __metadata = (this && this.__metadata) || function (k, v) {
16
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
17
+ };
18
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
19
+ return function (target, key) { decorator(target, key, paramIndex); }
20
+ };
21
+ import { injectable, inject } from 'tsyringe';
22
+ import { randomUUID } from 'node:crypto';
23
+ import { validateCronExpression, calculateNextRunAt } from './cron-helpers.js';
24
+ let CreateWorkflowUseCase = class CreateWorkflowUseCase {
25
+ workflowRepo;
26
+ clock;
27
+ constructor(workflowRepo, clock) {
28
+ this.workflowRepo = workflowRepo;
29
+ this.clock = clock;
30
+ }
31
+ async execute(input) {
32
+ // Validate name uniqueness within the repository
33
+ const existing = await this.workflowRepo.findByName(input.name, input.repositoryPath);
34
+ if (existing) {
35
+ throw new Error(`A workflow named "${input.name}" already exists in this repository.`);
36
+ }
37
+ // Validate cron expression if provided
38
+ if (input.cronExpression) {
39
+ validateCronExpression(input.cronExpression);
40
+ }
41
+ const now = this.clock.now();
42
+ // Calculate nextRunAt if cron expression is provided and workflow is enabled
43
+ let nextRunAt = null;
44
+ const enabled = input.enabled !== false; // default to true
45
+ if (input.cronExpression && enabled) {
46
+ nextRunAt = calculateNextRunAt(input.cronExpression, input.timezone, now);
47
+ }
48
+ const workflow = {
49
+ id: randomUUID(),
50
+ name: input.name,
51
+ prompt: input.prompt,
52
+ enabled,
53
+ repositoryPath: input.repositoryPath,
54
+ createdAt: now,
55
+ updatedAt: now,
56
+ ...(input.description != null && { description: input.description }),
57
+ ...(input.toolConstraints != null && { toolConstraints: input.toolConstraints }),
58
+ ...(input.cronExpression != null && { cronExpression: input.cronExpression }),
59
+ ...(input.timezone != null && { timezone: input.timezone }),
60
+ ...(nextRunAt != null && { nextRunAt }),
61
+ };
62
+ await this.workflowRepo.create(workflow);
63
+ return workflow;
64
+ }
65
+ };
66
+ CreateWorkflowUseCase = __decorate([
67
+ injectable(),
68
+ __param(0, inject('IWorkflowRepository')),
69
+ __param(1, inject('IClock')),
70
+ __metadata("design:paramtypes", [Object, Object])
71
+ ], CreateWorkflowUseCase);
72
+ export { CreateWorkflowUseCase };
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Cron Expression Helpers
3
+ *
4
+ * Shared utilities for cron expression validation and next-run calculation
5
+ * used by CreateWorkflowUseCase, UpdateWorkflowUseCase, and ScheduleWorkflowUseCase.
6
+ *
7
+ * Uses croner for both validation and next-run calculation to ensure consistency
8
+ * between what the UI accepts and what the scheduler evaluates at runtime.
9
+ */
10
+ /**
11
+ * Validate a cron expression using croner.
12
+ * Throws a descriptive error if the expression is invalid.
13
+ *
14
+ * @param cronExpression - The cron expression to validate
15
+ * @throws Error with a descriptive message if the expression is invalid
16
+ */
17
+ export declare function validateCronExpression(cronExpression: string): void;
18
+ /**
19
+ * Calculate the next run time for a cron expression from a reference date.
20
+ *
21
+ * @param cronExpression - A valid cron expression
22
+ * @param timezone - Optional IANA timezone (defaults to UTC)
23
+ * @param referenceDate - The reference date to calculate from (defaults to now)
24
+ * @returns The next run Date, or null if no future run exists
25
+ */
26
+ export declare function calculateNextRunAt(cronExpression: string, timezone?: string, referenceDate?: Date): Date | null;
27
+ //# sourceMappingURL=cron-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cron-helpers.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/workflows/cron-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAUnE;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,cAAc,EAAE,MAAM,EACtB,QAAQ,CAAC,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,IAAI,GACnB,IAAI,GAAG,IAAI,CAOb"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Cron Expression Helpers
3
+ *
4
+ * Shared utilities for cron expression validation and next-run calculation
5
+ * used by CreateWorkflowUseCase, UpdateWorkflowUseCase, and ScheduleWorkflowUseCase.
6
+ *
7
+ * Uses croner for both validation and next-run calculation to ensure consistency
8
+ * between what the UI accepts and what the scheduler evaluates at runtime.
9
+ */
10
+ import { Cron } from 'croner';
11
+ /**
12
+ * Validate a cron expression using croner.
13
+ * Throws a descriptive error if the expression is invalid.
14
+ *
15
+ * @param cronExpression - The cron expression to validate
16
+ * @throws Error with a descriptive message if the expression is invalid
17
+ */
18
+ export function validateCronExpression(cronExpression) {
19
+ try {
20
+ new Cron(cronExpression, { paused: true });
21
+ }
22
+ catch (err) {
23
+ const message = err instanceof Error ? err.message : String(err);
24
+ throw new Error(`Invalid cron expression "${cronExpression}": ${message}. ` +
25
+ `Example: "0 9 * * MON" runs every Monday at 9am.`);
26
+ }
27
+ }
28
+ /**
29
+ * Calculate the next run time for a cron expression from a reference date.
30
+ *
31
+ * @param cronExpression - A valid cron expression
32
+ * @param timezone - Optional IANA timezone (defaults to UTC)
33
+ * @param referenceDate - The reference date to calculate from (defaults to now)
34
+ * @returns The next run Date, or null if no future run exists
35
+ */
36
+ export function calculateNextRunAt(cronExpression, timezone, referenceDate) {
37
+ const cron = new Cron(cronExpression, {
38
+ paused: true,
39
+ ...(timezone ? { timezone } : {}),
40
+ });
41
+ const next = cron.nextRun(referenceDate);
42
+ return next ?? null;
43
+ }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Delete Workflow Use Case
3
+ *
4
+ * Soft-deletes a workflow and cancels any queued executions for it.
5
+ * Execution history is preserved subject to the retention policy.
6
+ */
7
+ import type { ScheduledWorkflow } from '../../../domain/generated/output.js';
8
+ import type { IWorkflowRepository } from '../../ports/output/repositories/workflow-repository.interface.js';
9
+ import type { IWorkflowExecutionRepository } from '../../ports/output/repositories/workflow-execution-repository.interface.js';
10
+ import type { IClock } from '../../ports/output/services/clock.interface.js';
11
+ export declare class DeleteWorkflowUseCase {
12
+ private readonly workflowRepo;
13
+ private readonly executionRepo;
14
+ private readonly clock;
15
+ constructor(workflowRepo: IWorkflowRepository, executionRepo: IWorkflowExecutionRepository, clock: IClock);
16
+ execute(nameOrId: string, repositoryPath?: string): Promise<ScheduledWorkflow>;
17
+ }
18
+ //# sourceMappingURL=delete-workflow.use-case.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-workflow.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/workflows/delete-workflow.use-case.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAE7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kEAAkE,CAAC;AAC5G,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,4EAA4E,CAAC;AAC/H,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gDAAgD,CAAC;AAE7E,qBACa,qBAAqB;IAG9B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAJL,YAAY,EAAE,mBAAmB,EAEjC,aAAa,EAAE,4BAA4B,EAE3C,KAAK,EAAE,MAAM;IAG1B,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;CA6BrF"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Delete Workflow Use Case
3
+ *
4
+ * Soft-deletes a workflow and cancels any queued executions for it.
5
+ * Execution history is preserved subject to the retention policy.
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
+ import { WorkflowExecutionStatus } from '../../../domain/generated/output.js';
21
+ let DeleteWorkflowUseCase = class DeleteWorkflowUseCase {
22
+ workflowRepo;
23
+ executionRepo;
24
+ clock;
25
+ constructor(workflowRepo, executionRepo, clock) {
26
+ this.workflowRepo = workflowRepo;
27
+ this.executionRepo = executionRepo;
28
+ this.clock = clock;
29
+ }
30
+ async execute(nameOrId, repositoryPath) {
31
+ // Try find by ID first, then by name
32
+ let workflow = await this.workflowRepo.findById(nameOrId);
33
+ if (!workflow && repositoryPath) {
34
+ workflow = await this.workflowRepo.findByName(nameOrId, repositoryPath);
35
+ }
36
+ if (!workflow) {
37
+ throw new Error(`Workflow not found: "${nameOrId}"`);
38
+ }
39
+ // Cancel any queued executions for this workflow
40
+ const queuedExecutions = await this.executionRepo.findByStatus(WorkflowExecutionStatus.Queued);
41
+ const now = this.clock.now();
42
+ for (const execution of queuedExecutions) {
43
+ if (execution.workflowId === workflow.id) {
44
+ await this.executionRepo.update({
45
+ ...execution,
46
+ status: WorkflowExecutionStatus.Cancelled,
47
+ completedAt: now,
48
+ updatedAt: now,
49
+ });
50
+ }
51
+ }
52
+ // Soft-delete the workflow
53
+ await this.workflowRepo.softDelete(workflow.id);
54
+ return workflow;
55
+ }
56
+ };
57
+ DeleteWorkflowUseCase = __decorate([
58
+ injectable(),
59
+ __param(0, inject('IWorkflowRepository')),
60
+ __param(1, inject('IWorkflowExecutionRepository')),
61
+ __param(2, inject('IClock')),
62
+ __metadata("design:paramtypes", [Object, Object, Object])
63
+ ], DeleteWorkflowUseCase);
64
+ export { DeleteWorkflowUseCase };
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Get Workflow History Use Case
3
+ *
4
+ * Returns paginated execution history for a workflow,
5
+ * ordered by started_at DESC.
6
+ */
7
+ import type { WorkflowExecution } from '../../../domain/generated/output.js';
8
+ import type { IWorkflowRepository } from '../../ports/output/repositories/workflow-repository.interface.js';
9
+ import type { IWorkflowExecutionRepository } from '../../ports/output/repositories/workflow-execution-repository.interface.js';
10
+ export declare class GetWorkflowHistoryUseCase {
11
+ private readonly workflowRepo;
12
+ private readonly executionRepo;
13
+ constructor(workflowRepo: IWorkflowRepository, executionRepo: IWorkflowExecutionRepository);
14
+ execute(nameOrId: string, repositoryPath?: string, limit?: number): Promise<WorkflowExecution[]>;
15
+ }
16
+ //# sourceMappingURL=get-workflow-history.use-case.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-workflow-history.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/workflows/get-workflow-history.use-case.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kEAAkE,CAAC;AAC5G,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,4EAA4E,CAAC;AAI/H,qBACa,yBAAyB;IAGlC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAFb,YAAY,EAAE,mBAAmB,EAEjC,aAAa,EAAE,4BAA4B;IAGxD,OAAO,CACX,QAAQ,EAAE,MAAM,EAChB,cAAc,CAAC,EAAE,MAAM,EACvB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,EAAE,CAAC;CAYhC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Get Workflow History Use Case
3
+ *
4
+ * Returns paginated execution history for a workflow,
5
+ * ordered by started_at DESC.
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
+ const DEFAULT_LIMIT = 20;
21
+ let GetWorkflowHistoryUseCase = class GetWorkflowHistoryUseCase {
22
+ workflowRepo;
23
+ executionRepo;
24
+ constructor(workflowRepo, executionRepo) {
25
+ this.workflowRepo = workflowRepo;
26
+ this.executionRepo = executionRepo;
27
+ }
28
+ async execute(nameOrId, repositoryPath, limit) {
29
+ // Find workflow
30
+ let workflow = await this.workflowRepo.findById(nameOrId);
31
+ if (!workflow && repositoryPath) {
32
+ workflow = await this.workflowRepo.findByName(nameOrId, repositoryPath);
33
+ }
34
+ if (!workflow) {
35
+ throw new Error(`Workflow not found: "${nameOrId}"`);
36
+ }
37
+ return this.executionRepo.findByWorkflowId(workflow.id, limit ?? DEFAULT_LIMIT);
38
+ }
39
+ };
40
+ GetWorkflowHistoryUseCase = __decorate([
41
+ injectable(),
42
+ __param(0, inject('IWorkflowRepository')),
43
+ __param(1, inject('IWorkflowExecutionRepository')),
44
+ __metadata("design:paramtypes", [Object, Object])
45
+ ], GetWorkflowHistoryUseCase);
46
+ export { GetWorkflowHistoryUseCase };
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Get Workflow Use Case
3
+ *
4
+ * Finds a single workflow by name+repositoryPath or by ID.
5
+ */
6
+ import type { ScheduledWorkflow } from '../../../domain/generated/output.js';
7
+ import type { IWorkflowRepository } from '../../ports/output/repositories/workflow-repository.interface.js';
8
+ export declare class GetWorkflowUseCase {
9
+ private readonly workflowRepo;
10
+ constructor(workflowRepo: IWorkflowRepository);
11
+ execute(nameOrId: string, repositoryPath?: string): Promise<ScheduledWorkflow>;
12
+ }
13
+ //# sourceMappingURL=get-workflow.use-case.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-workflow.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/workflows/get-workflow.use-case.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kEAAkE,CAAC;AAE5G,qBACa,kBAAkB;IAG3B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAAZ,YAAY,EAAE,mBAAmB;IAG9C,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAerF"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Get Workflow Use Case
3
+ *
4
+ * Finds a single workflow by name+repositoryPath or by ID.
5
+ */
6
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
7
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
8
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
9
+ 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;
10
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
11
+ };
12
+ var __metadata = (this && this.__metadata) || function (k, v) {
13
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
14
+ };
15
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
16
+ return function (target, key) { decorator(target, key, paramIndex); }
17
+ };
18
+ import { injectable, inject } from 'tsyringe';
19
+ let GetWorkflowUseCase = class GetWorkflowUseCase {
20
+ workflowRepo;
21
+ constructor(workflowRepo) {
22
+ this.workflowRepo = workflowRepo;
23
+ }
24
+ async execute(nameOrId, repositoryPath) {
25
+ // Try find by ID first
26
+ let workflow = await this.workflowRepo.findById(nameOrId);
27
+ // Then try by name+repoPath
28
+ if (!workflow && repositoryPath) {
29
+ workflow = await this.workflowRepo.findByName(nameOrId, repositoryPath);
30
+ }
31
+ if (!workflow) {
32
+ throw new Error(`Workflow not found: "${nameOrId}"`);
33
+ }
34
+ return workflow;
35
+ }
36
+ };
37
+ GetWorkflowUseCase = __decorate([
38
+ injectable(),
39
+ __param(0, inject('IWorkflowRepository')),
40
+ __metadata("design:paramtypes", [Object])
41
+ ], GetWorkflowUseCase);
42
+ export { GetWorkflowUseCase };
@@ -0,0 +1,13 @@
1
+ /**
2
+ * List Workflows Use Case
3
+ *
4
+ * Returns all workflows for a repository path with optional filters.
5
+ */
6
+ import type { ScheduledWorkflow } from '../../../domain/generated/output.js';
7
+ import type { IWorkflowRepository, WorkflowListFilters } from '../../ports/output/repositories/workflow-repository.interface.js';
8
+ export declare class ListWorkflowsUseCase {
9
+ private readonly workflowRepo;
10
+ constructor(workflowRepo: IWorkflowRepository);
11
+ execute(filters?: WorkflowListFilters): Promise<ScheduledWorkflow[]>;
12
+ }
13
+ //# sourceMappingURL=list-workflows.use-case.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-workflows.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/workflows/list-workflows.use-case.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,kEAAkE,CAAC;AAE1E,qBACa,oBAAoB;IAG7B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAAZ,YAAY,EAAE,mBAAmB;IAG9C,OAAO,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;CAG3E"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * List Workflows Use Case
3
+ *
4
+ * Returns all workflows for a repository path with optional filters.
5
+ */
6
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
7
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
8
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
9
+ 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;
10
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
11
+ };
12
+ var __metadata = (this && this.__metadata) || function (k, v) {
13
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
14
+ };
15
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
16
+ return function (target, key) { decorator(target, key, paramIndex); }
17
+ };
18
+ import { injectable, inject } from 'tsyringe';
19
+ let ListWorkflowsUseCase = class ListWorkflowsUseCase {
20
+ workflowRepo;
21
+ constructor(workflowRepo) {
22
+ this.workflowRepo = workflowRepo;
23
+ }
24
+ async execute(filters) {
25
+ return this.workflowRepo.list(filters);
26
+ }
27
+ };
28
+ ListWorkflowsUseCase = __decorate([
29
+ injectable(),
30
+ __param(0, inject('IWorkflowRepository')),
31
+ __metadata("design:paramtypes", [Object])
32
+ ], ListWorkflowsUseCase);
33
+ export { ListWorkflowsUseCase };
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Run Workflow Use Case
3
+ *
4
+ * Manually triggers a workflow execution. Creates a WorkflowExecution record
5
+ * with triggerType=Manual and status=Queued. The scheduler service handles
6
+ * actual execution.
7
+ */
8
+ import type { WorkflowExecution } from '../../../domain/generated/output.js';
9
+ import type { IWorkflowRepository } from '../../ports/output/repositories/workflow-repository.interface.js';
10
+ import type { IWorkflowExecutionRepository } from '../../ports/output/repositories/workflow-execution-repository.interface.js';
11
+ import type { IClock } from '../../ports/output/services/clock.interface.js';
12
+ export declare class RunWorkflowUseCase {
13
+ private readonly workflowRepo;
14
+ private readonly executionRepo;
15
+ private readonly clock;
16
+ constructor(workflowRepo: IWorkflowRepository, executionRepo: IWorkflowExecutionRepository, clock: IClock);
17
+ execute(nameOrId: string, repositoryPath?: string): Promise<WorkflowExecution>;
18
+ }
19
+ //# sourceMappingURL=run-workflow.use-case.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-workflow.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/workflows/run-workflow.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAE7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kEAAkE,CAAC;AAC5G,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,4EAA4E,CAAC;AAC/H,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gDAAgD,CAAC;AAE7E,qBACa,kBAAkB;IAG3B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAJL,YAAY,EAAE,mBAAmB,EAEjC,aAAa,EAAE,4BAA4B,EAE3C,KAAK,EAAE,MAAM;IAG1B,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAyBrF"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Run Workflow Use Case
3
+ *
4
+ * Manually triggers a workflow execution. Creates a WorkflowExecution record
5
+ * with triggerType=Manual and status=Queued. The scheduler service handles
6
+ * actual execution.
7
+ */
8
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
9
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
10
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
11
+ 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;
12
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
13
+ };
14
+ var __metadata = (this && this.__metadata) || function (k, v) {
15
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
16
+ };
17
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
18
+ return function (target, key) { decorator(target, key, paramIndex); }
19
+ };
20
+ import { injectable, inject } from 'tsyringe';
21
+ import { randomUUID } from 'node:crypto';
22
+ import { WorkflowTriggerType, WorkflowExecutionStatus } from '../../../domain/generated/output.js';
23
+ let RunWorkflowUseCase = class RunWorkflowUseCase {
24
+ workflowRepo;
25
+ executionRepo;
26
+ clock;
27
+ constructor(workflowRepo, executionRepo, clock) {
28
+ this.workflowRepo = workflowRepo;
29
+ this.executionRepo = executionRepo;
30
+ this.clock = clock;
31
+ }
32
+ async execute(nameOrId, repositoryPath) {
33
+ // Find workflow — works on both enabled and disabled workflows
34
+ let workflow = await this.workflowRepo.findById(nameOrId);
35
+ if (!workflow && repositoryPath) {
36
+ workflow = await this.workflowRepo.findByName(nameOrId, repositoryPath);
37
+ }
38
+ if (!workflow) {
39
+ throw new Error(`Workflow not found: "${nameOrId}"`);
40
+ }
41
+ const now = this.clock.now();
42
+ const execution = {
43
+ id: randomUUID(),
44
+ workflowId: workflow.id,
45
+ triggerType: WorkflowTriggerType.Manual,
46
+ status: WorkflowExecutionStatus.Queued,
47
+ startedAt: now,
48
+ createdAt: now,
49
+ updatedAt: now,
50
+ };
51
+ await this.executionRepo.create(execution);
52
+ return execution;
53
+ }
54
+ };
55
+ RunWorkflowUseCase = __decorate([
56
+ injectable(),
57
+ __param(0, inject('IWorkflowRepository')),
58
+ __param(1, inject('IWorkflowExecutionRepository')),
59
+ __param(2, inject('IClock')),
60
+ __metadata("design:paramtypes", [Object, Object, Object])
61
+ ], RunWorkflowUseCase);
62
+ export { RunWorkflowUseCase };
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Schedule Workflow Use Case
3
+ *
4
+ * Sets, updates, or removes a cron schedule on a workflow.
5
+ * Validates the cron expression and calculates nextRunAt.
6
+ */
7
+ import type { ScheduledWorkflow } from '../../../domain/generated/output.js';
8
+ import type { IWorkflowRepository } from '../../ports/output/repositories/workflow-repository.interface.js';
9
+ import type { IClock } from '../../ports/output/services/clock.interface.js';
10
+ export interface ScheduleWorkflowInput {
11
+ nameOrId: string;
12
+ repositoryPath?: string;
13
+ cronExpression: string | null;
14
+ timezone?: string;
15
+ }
16
+ export declare class ScheduleWorkflowUseCase {
17
+ private readonly workflowRepo;
18
+ private readonly clock;
19
+ constructor(workflowRepo: IWorkflowRepository, clock: IClock);
20
+ execute(input: ScheduleWorkflowInput): Promise<ScheduledWorkflow>;
21
+ }
22
+ //# sourceMappingURL=schedule-workflow.use-case.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule-workflow.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/workflows/schedule-workflow.use-case.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kEAAkE,CAAC;AAC5G,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gDAAgD,CAAC;AAG7E,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBACa,uBAAuB;IAGhC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAFL,YAAY,EAAE,mBAAmB,EAEjC,KAAK,EAAE,MAAM;IAG1B,OAAO,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC;CA6CxE"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Schedule Workflow Use Case
3
+ *
4
+ * Sets, updates, or removes a cron schedule on a workflow.
5
+ * Validates the cron expression and calculates nextRunAt.
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
+ import { validateCronExpression, calculateNextRunAt } from './cron-helpers.js';
21
+ let ScheduleWorkflowUseCase = class ScheduleWorkflowUseCase {
22
+ workflowRepo;
23
+ clock;
24
+ constructor(workflowRepo, clock) {
25
+ this.workflowRepo = workflowRepo;
26
+ this.clock = clock;
27
+ }
28
+ async execute(input) {
29
+ // Find workflow
30
+ let workflow = await this.workflowRepo.findById(input.nameOrId);
31
+ if (!workflow && input.repositoryPath) {
32
+ workflow = await this.workflowRepo.findByName(input.nameOrId, input.repositoryPath);
33
+ }
34
+ if (!workflow) {
35
+ throw new Error(`Workflow not found: "${input.nameOrId}"`);
36
+ }
37
+ const now = this.clock.now();
38
+ if (input.cronExpression === null) {
39
+ // Remove schedule
40
+ const updated = {
41
+ ...workflow,
42
+ cronExpression: undefined,
43
+ timezone: undefined,
44
+ nextRunAt: undefined,
45
+ updatedAt: now,
46
+ };
47
+ await this.workflowRepo.update(updated);
48
+ return updated;
49
+ }
50
+ // Validate cron expression
51
+ validateCronExpression(input.cronExpression);
52
+ // Calculate nextRunAt
53
+ const nextRunAt = workflow.enabled
54
+ ? calculateNextRunAt(input.cronExpression, input.timezone, now)
55
+ : null;
56
+ const updated = {
57
+ ...workflow,
58
+ cronExpression: input.cronExpression,
59
+ ...(input.timezone !== undefined && { timezone: input.timezone }),
60
+ ...(nextRunAt != null ? { nextRunAt } : { nextRunAt: undefined }),
61
+ updatedAt: now,
62
+ };
63
+ await this.workflowRepo.update(updated);
64
+ return updated;
65
+ }
66
+ };
67
+ ScheduleWorkflowUseCase = __decorate([
68
+ injectable(),
69
+ __param(0, inject('IWorkflowRepository')),
70
+ __param(1, inject('IClock')),
71
+ __metadata("design:paramtypes", [Object, Object])
72
+ ], ScheduleWorkflowUseCase);
73
+ export { ScheduleWorkflowUseCase };
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Branch Rebase Workflow Template
3
+ *
4
+ * Rebases all tracked shep feature branches on main and resolves merge conflicts.
5
+ * Constrained to git tools only.
6
+ */
7
+ import type { WorkflowTemplateData } from './issue-triage.template.js';
8
+ export declare function getBranchRebaseTemplate(): WorkflowTemplateData;
9
+ //# sourceMappingURL=branch-rebase.template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"branch-rebase.template.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/use-cases/workflows/templates/branch-rebase.template.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAEvE,wBAAgB,uBAAuB,IAAI,oBAAoB,CAqB9D"}