@shepai/cli 1.136.0-pr440.bb6800a → 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 (552) hide show
  1. package/apis/json-schema/Feature.yaml +0 -3
  2. package/apis/json-schema/FeatureFlags.yaml +5 -0
  3. package/apis/json-schema/NotificationEventConfig.yaml +15 -0
  4. package/apis/json-schema/NotificationEventType.yaml +3 -0
  5. package/apis/json-schema/ScheduledWorkflow.yaml +46 -0
  6. package/apis/json-schema/SdlcLifecycle.yaml +0 -1
  7. package/apis/json-schema/WorkflowExecution.yaml +38 -0
  8. package/apis/json-schema/WorkflowExecutionStatus.yaml +10 -0
  9. package/apis/json-schema/WorkflowTriggerType.yaml +7 -0
  10. package/dist/packages/core/src/application/ports/output/repositories/feature-repository.interface.d.ts +0 -2
  11. package/dist/packages/core/src/application/ports/output/repositories/feature-repository.interface.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/workflow-execution-repository.interface.d.ts +66 -0
  15. package/dist/packages/core/src/application/ports/output/repositories/workflow-execution-repository.interface.d.ts.map +1 -0
  16. package/dist/packages/core/src/application/ports/output/repositories/workflow-execution-repository.interface.js +11 -0
  17. package/dist/packages/core/src/application/ports/output/repositories/workflow-repository.interface.d.ts +81 -0
  18. package/dist/packages/core/src/application/ports/output/repositories/workflow-repository.interface.d.ts.map +1 -0
  19. package/dist/packages/core/src/application/ports/output/repositories/workflow-repository.interface.js +11 -0
  20. package/dist/packages/core/src/application/ports/output/services/clock.interface.d.ts +28 -0
  21. package/dist/packages/core/src/application/ports/output/services/clock.interface.d.ts.map +1 -0
  22. package/dist/packages/core/src/application/ports/output/services/clock.interface.js +13 -0
  23. package/dist/packages/core/src/application/ports/output/services/index.d.ts +1 -0
  24. package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
  25. package/dist/packages/core/src/application/use-cases/workflows/create-workflow.use-case.d.ts +28 -0
  26. package/dist/packages/core/src/application/use-cases/workflows/create-workflow.use-case.d.ts.map +1 -0
  27. package/dist/packages/core/src/application/use-cases/workflows/create-workflow.use-case.js +72 -0
  28. package/dist/packages/core/src/application/use-cases/workflows/cron-helpers.d.ts +27 -0
  29. package/dist/packages/core/src/application/use-cases/workflows/cron-helpers.d.ts.map +1 -0
  30. package/dist/packages/core/src/application/use-cases/workflows/cron-helpers.js +43 -0
  31. package/dist/packages/core/src/application/use-cases/workflows/delete-workflow.use-case.d.ts +18 -0
  32. package/dist/packages/core/src/application/use-cases/workflows/delete-workflow.use-case.d.ts.map +1 -0
  33. package/dist/packages/core/src/application/use-cases/workflows/delete-workflow.use-case.js +64 -0
  34. package/dist/packages/core/src/application/use-cases/workflows/get-workflow-history.use-case.d.ts +16 -0
  35. package/dist/packages/core/src/application/use-cases/workflows/get-workflow-history.use-case.d.ts.map +1 -0
  36. package/dist/packages/core/src/application/use-cases/workflows/get-workflow-history.use-case.js +46 -0
  37. package/dist/packages/core/src/application/use-cases/workflows/get-workflow.use-case.d.ts +13 -0
  38. package/dist/packages/core/src/application/use-cases/workflows/get-workflow.use-case.d.ts.map +1 -0
  39. package/dist/packages/core/src/application/use-cases/workflows/get-workflow.use-case.js +42 -0
  40. package/dist/packages/core/src/application/use-cases/workflows/list-workflows.use-case.d.ts +13 -0
  41. package/dist/packages/core/src/application/use-cases/workflows/list-workflows.use-case.d.ts.map +1 -0
  42. package/dist/packages/core/src/application/use-cases/workflows/list-workflows.use-case.js +33 -0
  43. package/dist/packages/core/src/application/use-cases/workflows/run-workflow.use-case.d.ts +19 -0
  44. package/dist/packages/core/src/application/use-cases/workflows/run-workflow.use-case.d.ts.map +1 -0
  45. package/dist/packages/core/src/application/use-cases/workflows/run-workflow.use-case.js +62 -0
  46. package/dist/packages/core/src/application/use-cases/workflows/schedule-workflow.use-case.d.ts +22 -0
  47. package/dist/packages/core/src/application/use-cases/workflows/schedule-workflow.use-case.d.ts.map +1 -0
  48. package/dist/packages/core/src/application/use-cases/workflows/schedule-workflow.use-case.js +73 -0
  49. package/dist/packages/core/src/application/use-cases/workflows/templates/branch-rebase.template.d.ts +9 -0
  50. package/dist/packages/core/src/application/use-cases/workflows/templates/branch-rebase.template.d.ts.map +1 -0
  51. package/dist/packages/core/src/application/use-cases/workflows/templates/branch-rebase.template.js +27 -0
  52. package/dist/packages/core/src/application/use-cases/workflows/templates/issue-triage.template.d.ts +11 -0
  53. package/dist/packages/core/src/application/use-cases/workflows/templates/issue-triage.template.d.ts.map +1 -0
  54. package/dist/packages/core/src/application/use-cases/workflows/templates/issue-triage.template.js +27 -0
  55. package/dist/packages/core/src/application/use-cases/workflows/toggle-workflow.use-case.d.ts +16 -0
  56. package/dist/packages/core/src/application/use-cases/workflows/toggle-workflow.use-case.d.ts.map +1 -0
  57. package/dist/packages/core/src/application/use-cases/workflows/toggle-workflow.use-case.js +60 -0
  58. package/dist/packages/core/src/application/use-cases/workflows/update-workflow.use-case.d.ts +25 -0
  59. package/dist/packages/core/src/application/use-cases/workflows/update-workflow.use-case.d.ts.map +1 -0
  60. package/dist/packages/core/src/application/use-cases/workflows/update-workflow.use-case.js +83 -0
  61. package/dist/packages/core/src/domain/factories/settings-defaults.factory.d.ts.map +1 -1
  62. package/dist/packages/core/src/domain/factories/settings-defaults.factory.js +4 -0
  63. package/dist/packages/core/src/domain/generated/output.d.ts +115 -7
  64. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  65. package/dist/packages/core/src/domain/generated/output.js +16 -1
  66. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  67. package/dist/packages/core/src/infrastructure/di/container.js +66 -10
  68. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts +0 -1
  69. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts.map +1 -1
  70. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.js +0 -6
  71. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +4 -0
  72. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
  73. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +8 -0
  74. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow-execution.mapper.d.ts +46 -0
  75. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow-execution.mapper.d.ts.map +1 -0
  76. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow-execution.mapper.js +57 -0
  77. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow.mapper.d.ts +51 -0
  78. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow.mapper.d.ts.map +1 -0
  79. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow.mapper.js +71 -0
  80. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-workflow-notification-events.d.ts +12 -0
  81. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-workflow-notification-events.d.ts.map +1 -0
  82. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-workflow-notification-events.js +22 -0
  83. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/045-create-scheduled-workflows.d.ts +14 -0
  84. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/045-create-scheduled-workflows.d.ts.map +1 -0
  85. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/045-create-scheduled-workflows.js +65 -0
  86. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/046-add-feature-flag-scheduled-workflows.d.ts +11 -0
  87. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/046-add-feature-flag-scheduled-workflows.d.ts.map +1 -0
  88. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/046-add-feature-flag-scheduled-workflows.js +17 -0
  89. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.d.ts.map +1 -1
  90. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.js +2 -7
  91. package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow-execution.repository.d.ts +24 -0
  92. package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow-execution.repository.d.ts.map +1 -0
  93. package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow-execution.repository.js +92 -0
  94. package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow.repository.d.ts +26 -0
  95. package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow.repository.d.ts.map +1 -0
  96. package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow.repository.js +117 -0
  97. package/dist/packages/core/src/infrastructure/services/clock.d.ts +11 -0
  98. package/dist/packages/core/src/infrastructure/services/clock.d.ts.map +1 -0
  99. package/dist/packages/core/src/infrastructure/services/clock.js +22 -0
  100. package/dist/packages/core/src/infrastructure/services/notifications/notification.service.d.ts.map +1 -1
  101. package/dist/packages/core/src/infrastructure/services/notifications/notification.service.js +3 -0
  102. package/dist/packages/core/src/infrastructure/services/workflow-scheduler/workflow-scheduler.service.d.ts +69 -0
  103. package/dist/packages/core/src/infrastructure/services/workflow-scheduler/workflow-scheduler.service.d.ts.map +1 -0
  104. package/dist/packages/core/src/infrastructure/services/workflow-scheduler/workflow-scheduler.service.js +270 -0
  105. package/dist/src/presentation/cli/commands/_serve.command.d.ts.map +1 -1
  106. package/dist/src/presentation/cli/commands/_serve.command.js +14 -0
  107. package/dist/src/presentation/cli/commands/feat/index.d.ts.map +1 -1
  108. package/dist/src/presentation/cli/commands/feat/index.js +1 -5
  109. package/dist/src/presentation/cli/commands/feat/ls.command.d.ts.map +1 -1
  110. package/dist/src/presentation/cli/commands/feat/ls.command.js +0 -5
  111. package/dist/src/presentation/cli/commands/workflow/create.command.d.ts +13 -0
  112. package/dist/src/presentation/cli/commands/workflow/create.command.d.ts.map +1 -0
  113. package/dist/src/presentation/cli/commands/workflow/create.command.js +83 -0
  114. package/dist/src/presentation/cli/commands/workflow/delete.command.d.ts +13 -0
  115. package/dist/src/presentation/cli/commands/workflow/delete.command.d.ts.map +1 -0
  116. package/dist/src/presentation/cli/commands/workflow/delete.command.js +50 -0
  117. package/dist/src/presentation/cli/commands/workflow/disable.command.d.ts +11 -0
  118. package/dist/src/presentation/cli/commands/workflow/disable.command.d.ts.map +1 -0
  119. package/dist/src/presentation/cli/commands/workflow/disable.command.js +32 -0
  120. package/dist/src/presentation/cli/commands/workflow/enable.command.d.ts +11 -0
  121. package/dist/src/presentation/cli/commands/workflow/enable.command.d.ts.map +1 -0
  122. package/dist/src/presentation/cli/commands/workflow/enable.command.js +35 -0
  123. package/dist/src/presentation/cli/commands/workflow/format-helpers.d.ts +35 -0
  124. package/dist/src/presentation/cli/commands/workflow/format-helpers.d.ts.map +1 -0
  125. package/dist/src/presentation/cli/commands/workflow/format-helpers.js +89 -0
  126. package/dist/src/presentation/cli/commands/workflow/history.command.d.ts +12 -0
  127. package/dist/src/presentation/cli/commands/workflow/history.command.d.ts.map +1 -0
  128. package/dist/src/presentation/cli/commands/workflow/history.command.js +46 -0
  129. package/dist/src/presentation/cli/commands/workflow/index.d.ts +26 -0
  130. package/dist/src/presentation/cli/commands/workflow/index.d.ts.map +1 -0
  131. package/dist/src/presentation/cli/commands/workflow/index.js +48 -0
  132. package/dist/src/presentation/cli/commands/workflow/list.command.d.ts +11 -0
  133. package/dist/src/presentation/cli/commands/workflow/list.command.d.ts.map +1 -0
  134. package/dist/src/presentation/cli/commands/workflow/list.command.js +52 -0
  135. package/dist/src/presentation/cli/commands/workflow/run.command.d.ts +11 -0
  136. package/dist/src/presentation/cli/commands/workflow/run.command.d.ts.map +1 -0
  137. package/dist/src/presentation/cli/commands/workflow/run.command.js +37 -0
  138. package/dist/src/presentation/cli/commands/workflow/schedule.command.d.ts +13 -0
  139. package/dist/src/presentation/cli/commands/workflow/schedule.command.d.ts.map +1 -0
  140. package/dist/src/presentation/cli/commands/workflow/schedule.command.js +76 -0
  141. package/dist/src/presentation/cli/commands/workflow/show.command.d.ts +11 -0
  142. package/dist/src/presentation/cli/commands/workflow/show.command.d.ts.map +1 -0
  143. package/dist/src/presentation/cli/commands/workflow/show.command.js +93 -0
  144. package/dist/src/presentation/cli/commands/workflow/update.command.d.ts +13 -0
  145. package/dist/src/presentation/cli/commands/workflow/update.command.d.ts.map +1 -0
  146. package/dist/src/presentation/cli/commands/workflow/update.command.js +67 -0
  147. package/dist/src/presentation/cli/index.js +2 -0
  148. package/dist/src/presentation/web/app/(dashboard)/get-graph-data.d.ts.map +1 -1
  149. package/dist/src/presentation/web/app/(dashboard)/get-graph-data.js +1 -6
  150. package/dist/src/presentation/web/app/actions/get-workflow-history.d.ts +7 -0
  151. package/dist/src/presentation/web/app/actions/get-workflow-history.d.ts.map +1 -0
  152. package/dist/src/presentation/web/app/actions/get-workflow-history.js +17 -0
  153. package/dist/src/presentation/web/app/actions/list-workflows.d.ts +7 -0
  154. package/dist/src/presentation/web/app/actions/list-workflows.d.ts.map +1 -0
  155. package/dist/src/presentation/web/app/actions/list-workflows.js +17 -0
  156. package/dist/src/presentation/web/app/actions/toggle-workflow.d.ts +8 -0
  157. package/dist/src/presentation/web/app/actions/toggle-workflow.d.ts.map +1 -0
  158. package/dist/src/presentation/web/app/actions/toggle-workflow.js +19 -0
  159. package/dist/src/presentation/web/app/actions/trigger-workflow.d.ts +8 -0
  160. package/dist/src/presentation/web/app/actions/trigger-workflow.d.ts.map +1 -0
  161. package/dist/src/presentation/web/app/actions/trigger-workflow.js +19 -0
  162. package/dist/src/presentation/web/app/api/agent-events/route.d.ts.map +1 -1
  163. package/dist/src/presentation/web/app/api/agent-events/route.js +0 -1
  164. package/dist/src/presentation/web/app/workflows/page.d.ts +4 -0
  165. package/dist/src/presentation/web/app/workflows/page.d.ts.map +1 -0
  166. package/dist/src/presentation/web/app/workflows/page.js +18 -0
  167. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.d.ts.map +1 -1
  168. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.js +4 -6
  169. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +1 -3
  170. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map +1 -1
  171. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.js +1 -11
  172. package/dist/src/presentation/web/components/common/feature-node/feature-node.d.ts.map +1 -1
  173. package/dist/src/presentation/web/components/common/feature-node/feature-node.js +2 -16
  174. package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.d.ts +0 -5
  175. package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.d.ts.map +1 -1
  176. package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.js +1 -75
  177. package/dist/src/presentation/web/components/features/control-center/control-center-inner.d.ts.map +1 -1
  178. package/dist/src/presentation/web/components/features/control-center/control-center-inner.js +4 -13
  179. package/dist/src/presentation/web/components/features/control-center/control-center.stories.d.ts +0 -6
  180. package/dist/src/presentation/web/components/features/control-center/control-center.stories.d.ts.map +1 -1
  181. package/dist/src/presentation/web/components/features/control-center/control-center.stories.js +0 -70
  182. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts +0 -6
  183. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts.map +1 -1
  184. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.js +2 -43
  185. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.d.ts.map +1 -1
  186. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.js +3 -0
  187. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.d.ts.map +1 -1
  188. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.js +3 -0
  189. package/dist/src/presentation/web/components/features/settings/notification-settings-section.d.ts.map +1 -1
  190. package/dist/src/presentation/web/components/features/settings/notification-settings-section.js +6 -1
  191. package/dist/src/presentation/web/components/features/settings/notification-settings-section.stories.d.ts.map +1 -1
  192. package/dist/src/presentation/web/components/features/settings/notification-settings-section.stories.js +6 -0
  193. package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
  194. package/dist/src/presentation/web/components/features/settings/settings-page-client.js +19 -2
  195. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts.map +1 -1
  196. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.js +1 -0
  197. package/dist/src/presentation/web/components/features/workflows/workflow-execution-history.d.ts +7 -0
  198. package/dist/src/presentation/web/components/features/workflows/workflow-execution-history.d.ts.map +1 -0
  199. package/dist/src/presentation/web/components/features/workflows/workflow-execution-history.js +84 -0
  200. package/dist/src/presentation/web/components/features/workflows/workflow-execution-history.stories.d.ts +11 -0
  201. package/dist/src/presentation/web/components/features/workflows/workflow-execution-history.stories.d.ts.map +1 -0
  202. package/dist/src/presentation/web/components/features/workflows/workflow-execution-history.stories.js +104 -0
  203. package/dist/src/presentation/web/components/features/workflows/workflow-list-item.d.ts +8 -0
  204. package/dist/src/presentation/web/components/features/workflows/workflow-list-item.d.ts.map +1 -0
  205. package/dist/src/presentation/web/components/features/workflows/workflow-list-item.js +68 -0
  206. package/dist/src/presentation/web/components/features/workflows/workflow-list-item.stories.d.ts +11 -0
  207. package/dist/src/presentation/web/components/features/workflows/workflow-list-item.stories.d.ts.map +1 -0
  208. package/dist/src/presentation/web/components/features/workflows/workflow-list-item.stories.js +89 -0
  209. package/dist/src/presentation/web/components/features/workflows/workflow-list.d.ts +8 -0
  210. package/dist/src/presentation/web/components/features/workflows/workflow-list.d.ts.map +1 -0
  211. package/dist/src/presentation/web/components/features/workflows/workflow-list.js +10 -0
  212. package/dist/src/presentation/web/components/features/workflows/workflow-list.stories.d.ts +11 -0
  213. package/dist/src/presentation/web/components/features/workflows/workflow-list.stories.d.ts.map +1 -0
  214. package/dist/src/presentation/web/components/features/workflows/workflow-list.stories.js +90 -0
  215. package/dist/src/presentation/web/components/features/workflows/workflows-page-client.d.ts +6 -0
  216. package/dist/src/presentation/web/components/features/workflows/workflows-page-client.d.ts.map +1 -0
  217. package/dist/src/presentation/web/components/features/workflows/workflows-page-client.js +14 -0
  218. package/dist/src/presentation/web/components/features/workflows/workflows-page-client.stories.d.ts +10 -0
  219. package/dist/src/presentation/web/components/features/workflows/workflows-page-client.stories.d.ts.map +1 -0
  220. package/dist/src/presentation/web/components/features/workflows/workflows-page-client.stories.js +70 -0
  221. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts.map +1 -1
  222. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.js +2 -2
  223. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.d.ts.map +1 -1
  224. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.js +1 -0
  225. package/dist/src/presentation/web/hooks/feature-flags-context.d.ts.map +1 -1
  226. package/dist/src/presentation/web/hooks/feature-flags-context.js +1 -0
  227. package/dist/src/presentation/web/hooks/sidebar-features-context.d.ts.map +1 -1
  228. package/dist/src/presentation/web/hooks/sidebar-features-context.js +0 -1
  229. package/dist/src/presentation/web/hooks/use-graph-state.d.ts +1 -1
  230. package/dist/src/presentation/web/hooks/use-graph-state.d.ts.map +1 -1
  231. package/dist/src/presentation/web/hooks/use-graph-state.js +2 -17
  232. package/dist/src/presentation/web/lib/derive-graph.d.ts +0 -4
  233. package/dist/src/presentation/web/lib/derive-graph.d.ts.map +1 -1
  234. package/dist/src/presentation/web/lib/derive-graph.js +0 -12
  235. package/dist/src/presentation/web/lib/feature-flags.d.ts +2 -0
  236. package/dist/src/presentation/web/lib/feature-flags.d.ts.map +1 -1
  237. package/dist/src/presentation/web/lib/feature-flags.js +5 -0
  238. package/dist/tsconfig.build.tsbuildinfo +1 -1
  239. package/package.json +2 -1
  240. package/web/.next/BUILD_ID +1 -1
  241. package/web/.next/app-path-routes-manifest.json +2 -1
  242. package/web/.next/build-manifest.json +2 -2
  243. package/web/.next/fallback-build-manifest.json +2 -2
  244. package/web/.next/prerender-manifest.json +3 -3
  245. package/web/.next/required-server-files.js +1 -1
  246. package/web/.next/required-server-files.json +1 -1
  247. package/web/.next/routes-manifest.json +6 -0
  248. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +50 -80
  249. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +3 -3
  250. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  251. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  252. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +50 -80
  253. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +3 -3
  254. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  255. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  256. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +62 -92
  257. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +3 -3
  258. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  259. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  260. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +62 -92
  261. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +3 -3
  262. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  263. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  264. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +46 -76
  265. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +3 -3
  266. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  267. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  268. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +50 -80
  269. package/web/.next/server/app/(dashboard)/create/page.js +3 -3
  270. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  271. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  272. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +62 -92
  273. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +3 -3
  274. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  275. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  276. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +62 -92
  277. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +3 -3
  278. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  279. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  280. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +46 -76
  281. package/web/.next/server/app/(dashboard)/page.js +3 -3
  282. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  283. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  284. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +46 -76
  285. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +3 -3
  286. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  287. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  288. package/web/.next/server/app/_global-error.html +2 -2
  289. package/web/.next/server/app/_global-error.rsc +1 -1
  290. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  291. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  292. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  293. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  294. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  295. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +3 -3
  296. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  297. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  298. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  299. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  300. package/web/.next/server/app/api/feature-logs/route.js +1 -1
  301. package/web/.next/server/app/api/feature-logs/route.js.nft.json +1 -1
  302. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  303. package/web/.next/server/app/settings/page/server-reference-manifest.json +8 -8
  304. package/web/.next/server/app/settings/page.js +2 -2
  305. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  306. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  307. package/web/.next/server/app/skills/page/server-reference-manifest.json +8 -8
  308. package/web/.next/server/app/skills/page.js +1 -1
  309. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  310. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  311. package/web/.next/server/app/tools/page/server-reference-manifest.json +8 -8
  312. package/web/.next/server/app/tools/page.js +1 -1
  313. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  314. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  315. package/web/.next/server/app/version/page/server-reference-manifest.json +3 -3
  316. package/web/.next/server/app/version/page.js.nft.json +1 -1
  317. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  318. package/web/.next/server/app/workflows/page/app-paths-manifest.json +3 -0
  319. package/web/.next/server/app/workflows/page/build-manifest.json +18 -0
  320. package/web/.next/server/app/workflows/page/next-font-manifest.json +6 -0
  321. package/web/.next/server/app/workflows/page/react-loadable-manifest.json +8 -0
  322. package/web/.next/server/app/workflows/page/server-reference-manifest.json +110 -0
  323. package/web/.next/server/app/workflows/page.js +18 -0
  324. package/web/.next/server/app/workflows/page.js.map +5 -0
  325. package/web/.next/server/app/workflows/page.js.nft.json +1 -0
  326. package/web/.next/server/app/workflows/page_client-reference-manifest.js +2 -0
  327. package/web/.next/server/app-paths-manifest.json +2 -1
  328. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js +1 -1
  329. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js.map +1 -1
  330. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js +2 -2
  331. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js.map +1 -1
  332. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  333. package/web/.next/server/chunks/[root-of-the-server]__c6e32a23._.js +1 -1
  334. package/web/.next/server/chunks/[root-of-the-server]__c6e32a23._.js.map +1 -1
  335. package/web/.next/server/chunks/{[root-of-the-server]__2b1074db._.js → [root-of-the-server]__c7d52490._.js} +2 -2
  336. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js +1 -1
  337. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
  338. package/web/.next/server/chunks/ssr/{_02ec1aea._.js → 403f9_next_53742624._.js} +2 -2
  339. package/web/.next/server/chunks/ssr/403f9_next_53742624._.js.map +1 -0
  340. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_b49d9c97.js +3 -0
  341. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_b49d9c97.js.map +1 -0
  342. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  343. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  344. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_0c7787d0._.js +3 -0
  345. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_0c7787d0._.js.map +1 -0
  346. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_28632197.js +3 -0
  347. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_28632197.js.map +1 -0
  348. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_10695d37.js +3 -0
  349. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_10695d37.js.map +1 -0
  350. package/web/.next/server/chunks/ssr/{[root-of-the-server]__a5f9c6e5._.js → [root-of-the-server]__07f12984._.js} +3 -3
  351. package/web/.next/server/chunks/ssr/[root-of-the-server]__07f12984._.js.map +1 -0
  352. package/web/.next/server/chunks/ssr/[root-of-the-server]__082758f6._.js +3 -0
  353. package/web/.next/server/chunks/ssr/[root-of-the-server]__082758f6._.js.map +1 -0
  354. package/web/.next/server/chunks/ssr/[root-of-the-server]__32cd6108._.js +3 -0
  355. package/web/.next/server/chunks/ssr/[root-of-the-server]__32cd6108._.js.map +1 -0
  356. package/web/.next/server/chunks/ssr/[root-of-the-server]__33ac1a70._.js +3 -0
  357. package/web/.next/server/chunks/ssr/[root-of-the-server]__33ac1a70._.js.map +1 -0
  358. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  359. package/web/.next/server/chunks/ssr/[root-of-the-server]__43f51aa6._.js +1 -1
  360. package/web/.next/server/chunks/ssr/[root-of-the-server]__43f51aa6._.js.map +1 -1
  361. package/web/.next/server/chunks/ssr/[root-of-the-server]__44358910._.js +4 -0
  362. package/web/.next/server/chunks/ssr/[root-of-the-server]__44358910._.js.map +1 -0
  363. package/web/.next/server/chunks/ssr/[root-of-the-server]__47ded061._.js +3 -0
  364. package/web/.next/server/chunks/ssr/[root-of-the-server]__47ded061._.js.map +1 -0
  365. package/web/.next/server/chunks/ssr/{[root-of-the-server]__3ef34e4c._.js → [root-of-the-server]__57e0ee34._.js} +3 -3
  366. package/web/.next/server/chunks/ssr/[root-of-the-server]__57e0ee34._.js.map +1 -0
  367. package/web/.next/server/chunks/ssr/[root-of-the-server]__68ce373c._.js +3 -0
  368. package/web/.next/server/chunks/ssr/[root-of-the-server]__68ce373c._.js.map +1 -0
  369. package/web/.next/server/chunks/ssr/[root-of-the-server]__6e93b49c._.js +3 -0
  370. package/web/.next/server/chunks/ssr/{[root-of-the-server]__b3dbadca._.js.map → [root-of-the-server]__6e93b49c._.js.map} +1 -1
  371. package/web/.next/server/chunks/ssr/[root-of-the-server]__718766da._.js +3 -0
  372. package/web/.next/server/chunks/ssr/[root-of-the-server]__718766da._.js.map +1 -0
  373. package/web/.next/server/chunks/ssr/[root-of-the-server]__815546bd._.js +1 -1
  374. package/web/.next/server/chunks/ssr/[root-of-the-server]__815546bd._.js.map +1 -1
  375. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +2 -2
  376. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
  377. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdd058b2._.js +3 -0
  378. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdd058b2._.js.map +1 -0
  379. package/web/.next/server/chunks/ssr/_20a4a0d5._.js +3 -0
  380. package/web/.next/server/chunks/ssr/_20a4a0d5._.js.map +1 -0
  381. package/web/.next/server/chunks/ssr/_25555eb5._.js +3 -0
  382. package/web/.next/server/chunks/ssr/_25555eb5._.js.map +1 -0
  383. package/web/.next/server/chunks/ssr/{_b5fc318a._.js → _277acdde._.js} +2 -2
  384. package/web/.next/server/chunks/ssr/_277acdde._.js.map +1 -0
  385. package/web/.next/server/chunks/ssr/_4711e8cf._.js +3 -0
  386. package/web/.next/server/chunks/ssr/_4711e8cf._.js.map +1 -0
  387. package/web/.next/server/chunks/ssr/{_a9f57758._.js → _6701ee41._.js} +2 -2
  388. package/web/.next/server/chunks/ssr/{_a9f57758._.js.map → _6701ee41._.js.map} +1 -1
  389. package/web/.next/server/chunks/ssr/_89a36303._.js +3 -0
  390. package/web/.next/server/chunks/ssr/_89a36303._.js.map +1 -0
  391. package/web/.next/server/chunks/ssr/_8e8cd7e1._.js +4 -0
  392. package/web/.next/server/chunks/ssr/_8e8cd7e1._.js.map +1 -0
  393. package/web/.next/server/chunks/ssr/_9869d3da._.js +3 -0
  394. package/web/.next/server/chunks/ssr/_9869d3da._.js.map +1 -0
  395. package/web/.next/server/chunks/ssr/{_0020fddd._.js → _a3721140._.js} +2 -2
  396. package/web/.next/server/chunks/ssr/_a3721140._.js.map +1 -0
  397. package/web/.next/server/chunks/ssr/_a37f5f18._.js +1 -1
  398. package/web/.next/server/chunks/ssr/_a37f5f18._.js.map +1 -1
  399. package/web/.next/server/chunks/ssr/_cc1243e6._.js +3 -0
  400. package/web/.next/server/chunks/ssr/_cc1243e6._.js.map +1 -0
  401. package/web/.next/server/chunks/ssr/_d8575088._.js +1 -1
  402. package/web/.next/server/chunks/ssr/_d8575088._.js.map +1 -1
  403. package/web/.next/server/chunks/ssr/_e3411387._.js +9 -0
  404. package/web/.next/server/chunks/ssr/_e3411387._.js.map +1 -0
  405. package/web/.next/server/chunks/ssr/_e69a26ba._.js +4 -0
  406. package/web/.next/server/chunks/ssr/_e69a26ba._.js.map +1 -0
  407. package/web/.next/server/chunks/ssr/_f64ffec0._.js +4 -0
  408. package/web/.next/server/chunks/ssr/_f64ffec0._.js.map +1 -0
  409. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  410. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  411. package/web/.next/server/chunks/ssr/{_1b7dae9a._.js → f7870_sonner_dist_index_mjs_dbf63824._.js} +2 -2
  412. package/web/.next/server/chunks/ssr/f7870_sonner_dist_index_mjs_dbf63824._.js.map +1 -0
  413. package/web/.next/server/chunks/ssr/node_modules__pnpm_28388798._.js +3 -0
  414. package/web/.next/server/chunks/ssr/node_modules__pnpm_28388798._.js.map +1 -0
  415. package/web/.next/server/chunks/ssr/node_modules__pnpm_ae1705ef._.js +3 -0
  416. package/web/.next/server/chunks/ssr/node_modules__pnpm_ae1705ef._.js.map +1 -0
  417. package/web/.next/server/chunks/ssr/src_presentation_web_53666118._.js +5 -0
  418. package/web/.next/server/chunks/ssr/src_presentation_web_53666118._.js.map +1 -0
  419. package/web/.next/server/chunks/ssr/src_presentation_web_53fa3010._.js +3 -0
  420. package/web/.next/server/chunks/ssr/{src_presentation_web_97dc2fb0._.js.map → src_presentation_web_53fa3010._.js.map} +1 -1
  421. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_d95e128d.js +3 -0
  422. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_d95e128d.js.map +1 -0
  423. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1b176e3c.js +1 -1
  424. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1b176e3c.js.map +1 -1
  425. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_bd9f0dda.js +1 -1
  426. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_bd9f0dda.js.map +1 -1
  427. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js +1 -1
  428. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js.map +1 -1
  429. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  430. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
  431. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  432. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  433. package/web/.next/server/chunks/ssr/src_presentation_web_e4df6dd7._.js +5 -0
  434. package/web/.next/server/chunks/ssr/src_presentation_web_e4df6dd7._.js.map +1 -0
  435. package/web/.next/server/pages/500.html +2 -2
  436. package/web/.next/server/server-reference-manifest.js +1 -1
  437. package/web/.next/server/server-reference-manifest.json +391 -466
  438. package/web/.next/static/chunks/{791e64500a080d4f.js → 196650f8cd7fb06a.js} +1 -1
  439. package/web/.next/static/chunks/2002f5eec5ffec42.css +1 -0
  440. package/web/.next/static/chunks/2c1ff62df9b34313.js +1 -0
  441. package/web/.next/static/chunks/3005583e819fc4fc.js +1 -0
  442. package/web/.next/static/chunks/333c7873f6b17ef1.js +1 -0
  443. package/web/.next/static/chunks/3b3f8c4f6c36a7ba.js +1 -0
  444. package/web/.next/static/chunks/{672e3da3ad26005b.js → 42c9564e375717ed.js} +1 -1
  445. package/web/.next/static/chunks/43e0eea352eb5106.js +5 -0
  446. package/web/.next/static/chunks/5420560352333486.js +1 -0
  447. package/web/.next/static/chunks/62fa33876b0964a4.js +1 -0
  448. package/web/.next/static/chunks/6db2addb5e13e372.js +1 -0
  449. package/web/.next/static/chunks/886d0385ca1d4484.js +1 -0
  450. package/web/.next/static/chunks/8e52a649c3f6bdf4.js +1 -0
  451. package/web/.next/static/chunks/a02fc9467a585a1f.js +2 -0
  452. package/web/.next/static/chunks/bee578019062e7f9.js +2 -0
  453. package/web/.next/static/chunks/cdb51cfd682387d2.js +1 -0
  454. package/web/.next/static/chunks/ed35b4293a81c861.js +9 -0
  455. package/web/.next/static/chunks/ed7fbcdf0b48e735.js +1 -0
  456. package/web/.next/static/chunks/f75142a1b75f1c32.js +1 -0
  457. package/web/.next/static/chunks/fabcd29d488281fa.js +1 -0
  458. package/web/.next/static/chunks/fd925f996c3fa318.js +1 -0
  459. package/dist/packages/core/src/application/use-cases/features/archive-feature.use-case.d.ts +0 -20
  460. package/dist/packages/core/src/application/use-cases/features/archive-feature.use-case.d.ts.map +0 -1
  461. package/dist/packages/core/src/application/use-cases/features/archive-feature.use-case.js +0 -74
  462. package/dist/packages/core/src/application/use-cases/features/unarchive-feature.use-case.d.ts +0 -20
  463. package/dist/packages/core/src/application/use-cases/features/unarchive-feature.use-case.d.ts.map +0 -1
  464. package/dist/packages/core/src/application/use-cases/features/unarchive-feature.use-case.js +0 -65
  465. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-previous-lifecycle.d.ts +0 -12
  466. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-previous-lifecycle.d.ts.map +0 -1
  467. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-previous-lifecycle.js +0 -16
  468. package/dist/src/presentation/cli/commands/feat/archive.command.d.ts +0 -18
  469. package/dist/src/presentation/cli/commands/feat/archive.command.d.ts.map +0 -1
  470. package/dist/src/presentation/cli/commands/feat/archive.command.js +0 -54
  471. package/dist/src/presentation/cli/commands/feat/unarchive.command.d.ts +0 -17
  472. package/dist/src/presentation/cli/commands/feat/unarchive.command.d.ts.map +0 -1
  473. package/dist/src/presentation/cli/commands/feat/unarchive.command.js +0 -42
  474. package/dist/src/presentation/web/app/actions/archive-feature.d.ts +0 -6
  475. package/dist/src/presentation/web/app/actions/archive-feature.d.ts.map +0 -1
  476. package/dist/src/presentation/web/app/actions/archive-feature.js +0 -16
  477. package/dist/src/presentation/web/app/actions/unarchive-feature.d.ts +0 -6
  478. package/dist/src/presentation/web/app/actions/unarchive-feature.d.ts.map +0 -1
  479. package/dist/src/presentation/web/app/actions/unarchive-feature.js +0 -16
  480. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_8b618f7d._.js +0 -3
  481. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_8b618f7d._.js.map +0 -1
  482. package/web/.next/server/chunks/ssr/[root-of-the-server]__3ef34e4c._.js.map +0 -1
  483. package/web/.next/server/chunks/ssr/[root-of-the-server]__61564698._.js +0 -4
  484. package/web/.next/server/chunks/ssr/[root-of-the-server]__61564698._.js.map +0 -1
  485. package/web/.next/server/chunks/ssr/[root-of-the-server]__6ec59045._.js +0 -3
  486. package/web/.next/server/chunks/ssr/[root-of-the-server]__6ec59045._.js.map +0 -1
  487. package/web/.next/server/chunks/ssr/[root-of-the-server]__74ab160c._.js +0 -4
  488. package/web/.next/server/chunks/ssr/[root-of-the-server]__74ab160c._.js.map +0 -1
  489. package/web/.next/server/chunks/ssr/[root-of-the-server]__a5f9c6e5._.js.map +0 -1
  490. package/web/.next/server/chunks/ssr/[root-of-the-server]__b3dbadca._.js +0 -3
  491. package/web/.next/server/chunks/ssr/[root-of-the-server]__bd16cded._.js +0 -4
  492. package/web/.next/server/chunks/ssr/[root-of-the-server]__bd16cded._.js.map +0 -1
  493. package/web/.next/server/chunks/ssr/[root-of-the-server]__d48c5b11._.js +0 -3
  494. package/web/.next/server/chunks/ssr/[root-of-the-server]__d48c5b11._.js.map +0 -1
  495. package/web/.next/server/chunks/ssr/[root-of-the-server]__f14fffe1._.js +0 -4
  496. package/web/.next/server/chunks/ssr/[root-of-the-server]__f14fffe1._.js.map +0 -1
  497. package/web/.next/server/chunks/ssr/_0020fddd._.js.map +0 -1
  498. package/web/.next/server/chunks/ssr/_01046927._.js +0 -9
  499. package/web/.next/server/chunks/ssr/_01046927._.js.map +0 -1
  500. package/web/.next/server/chunks/ssr/_02ec1aea._.js.map +0 -1
  501. package/web/.next/server/chunks/ssr/_1b7dae9a._.js.map +0 -1
  502. package/web/.next/server/chunks/ssr/_2fdfd9ab._.js +0 -4
  503. package/web/.next/server/chunks/ssr/_2fdfd9ab._.js.map +0 -1
  504. package/web/.next/server/chunks/ssr/_36059d08._.js +0 -4
  505. package/web/.next/server/chunks/ssr/_36059d08._.js.map +0 -1
  506. package/web/.next/server/chunks/ssr/_65f6e0e0._.js +0 -6
  507. package/web/.next/server/chunks/ssr/_65f6e0e0._.js.map +0 -1
  508. package/web/.next/server/chunks/ssr/_67104d9e._.js +0 -3
  509. package/web/.next/server/chunks/ssr/_67104d9e._.js.map +0 -1
  510. package/web/.next/server/chunks/ssr/_7dca1882._.js +0 -3
  511. package/web/.next/server/chunks/ssr/_7dca1882._.js.map +0 -1
  512. package/web/.next/server/chunks/ssr/_913fb649._.js +0 -3
  513. package/web/.next/server/chunks/ssr/_913fb649._.js.map +0 -1
  514. package/web/.next/server/chunks/ssr/_a51673dd._.js +0 -4
  515. package/web/.next/server/chunks/ssr/_a51673dd._.js.map +0 -1
  516. package/web/.next/server/chunks/ssr/_ae587066._.js +0 -4
  517. package/web/.next/server/chunks/ssr/_ae587066._.js.map +0 -1
  518. package/web/.next/server/chunks/ssr/_b5fc318a._.js.map +0 -1
  519. package/web/.next/server/chunks/ssr/_d162e30d._.js +0 -4
  520. package/web/.next/server/chunks/ssr/_d162e30d._.js.map +0 -1
  521. package/web/.next/server/chunks/ssr/_d4b20e29._.js +0 -3
  522. package/web/.next/server/chunks/ssr/_d4b20e29._.js.map +0 -1
  523. package/web/.next/server/chunks/ssr/_d763f022._.js +0 -6
  524. package/web/.next/server/chunks/ssr/_d763f022._.js.map +0 -1
  525. package/web/.next/server/chunks/ssr/_f39a1adb._.js +0 -3
  526. package/web/.next/server/chunks/ssr/_f39a1adb._.js.map +0 -1
  527. package/web/.next/server/chunks/ssr/node_modules__pnpm_55c7a131._.js +0 -3
  528. package/web/.next/server/chunks/ssr/node_modules__pnpm_55c7a131._.js.map +0 -1
  529. package/web/.next/server/chunks/ssr/src_presentation_web_97dc2fb0._.js +0 -3
  530. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +0 -3
  531. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js.map +0 -1
  532. package/web/.next/static/chunks/0b7fe2ac4f078f54.js +0 -13
  533. package/web/.next/static/chunks/2d6eb4409cc6324d.js +0 -1
  534. package/web/.next/static/chunks/3a7ff215d6a2c489.js +0 -2
  535. package/web/.next/static/chunks/4b3e7454c2b07877.js +0 -1
  536. package/web/.next/static/chunks/601d93593f5f664f.js +0 -1
  537. package/web/.next/static/chunks/688971d5bad5dc7c.js +0 -1
  538. package/web/.next/static/chunks/79c9871d46b22bf8.css +0 -1
  539. package/web/.next/static/chunks/7ee0606f698b032c.js +0 -1
  540. package/web/.next/static/chunks/87640f53f3bff3a6.js +0 -1
  541. package/web/.next/static/chunks/b70dd4985a814b27.js +0 -1
  542. package/web/.next/static/chunks/bb5bd1b5aafc70cd.js +0 -1
  543. package/web/.next/static/chunks/bf0a401666f990e2.js +0 -1
  544. package/web/.next/static/chunks/c4c3fcf18262b386.js +0 -2
  545. package/web/.next/static/chunks/cd14232b3d8f5052.js +0 -1
  546. package/web/.next/static/chunks/d0dff217a94d4ee1.js +0 -1
  547. package/web/.next/static/chunks/dd8f2197640aea64.js +0 -1
  548. package/web/.next/static/chunks/fc442d957b35bd5e.js +0 -1
  549. /package/web/.next/server/chunks/{[root-of-the-server]__2b1074db._.js.map → [root-of-the-server]__c7d52490._.js.map} +0 -0
  550. /package/web/.next/static/{JaRBeVSDLWZLQIl_k7ChK → w0YQoUPySQy1O9cN91KEk}/_buildManifest.js +0 -0
  551. /package/web/.next/static/{JaRBeVSDLWZLQIl_k7ChK → w0YQoUPySQy1O9cN91KEk}/_clientMiddlewareManifest.json +0 -0
  552. /package/web/.next/static/{JaRBeVSDLWZLQIl_k7ChK → w0YQoUPySQy1O9cN91KEk}/_ssgManifest.js +0 -0
@@ -59,6 +59,9 @@ export function toDatabase(settings) {
59
59
  notif_evt_pr_checks_failed: settings.notifications.events.prChecksFailed ? 1 : 0,
60
60
  notif_evt_pr_blocked: settings.notifications.events.prBlocked ? 1 : 0,
61
61
  notif_evt_merge_review_ready: settings.notifications.events.mergeReviewReady ? 1 : 0,
62
+ notif_evt_workflow_started: settings.notifications.events.workflowStarted ? 1 : 0,
63
+ notif_evt_workflow_completed: settings.notifications.events.workflowCompleted ? 1 : 0,
64
+ notif_evt_workflow_failed: settings.notifications.events.workflowFailed ? 1 : 0,
62
65
  // WorkflowConfig (boolean → INTEGER)
63
66
  workflow_open_pr_on_impl_complete: settings.workflow.openPrOnImplementationComplete ? 1 : 0,
64
67
  // WorkflowConfig CI settings (optional number → INTEGER | null)
@@ -96,6 +99,7 @@ export function toDatabase(settings) {
96
99
  feature_flag_github_import: settings.featureFlags?.githubImport ? 1 : 0,
97
100
  feature_flag_adopt_branch: settings.featureFlags?.adoptBranch ? 1 : 0,
98
101
  feature_flag_react_file_manager: settings.featureFlags?.reactFileManager ? 1 : 0,
102
+ feature_flag_scheduled_workflows: settings.featureFlags?.scheduledWorkflows ? 1 : 0,
99
103
  };
100
104
  }
101
105
  /**
@@ -188,6 +192,9 @@ export function fromDatabase(row) {
188
192
  prChecksFailed: row.notif_evt_pr_checks_failed === 1,
189
193
  prBlocked: row.notif_evt_pr_blocked === 1,
190
194
  mergeReviewReady: row.notif_evt_merge_review_ready === 1,
195
+ workflowStarted: row.notif_evt_workflow_started === 1,
196
+ workflowCompleted: row.notif_evt_workflow_completed === 1,
197
+ workflowFailed: row.notif_evt_workflow_failed === 1,
191
198
  },
192
199
  },
193
200
  // WorkflowConfig (INTEGER → boolean)
@@ -217,6 +224,7 @@ export function fromDatabase(row) {
217
224
  githubImport: row.feature_flag_github_import === 1,
218
225
  adoptBranch: row.feature_flag_adopt_branch === 1,
219
226
  reactFileManager: row.feature_flag_react_file_manager === 1,
227
+ scheduledWorkflows: row.feature_flag_scheduled_workflows === 1,
220
228
  },
221
229
  // Onboarding (INTEGER → boolean)
222
230
  onboardingComplete: row.onboarding_complete === 1,
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Workflow Execution Database Mapper
3
+ *
4
+ * Maps between WorkflowExecution domain objects and SQLite database rows.
5
+ *
6
+ * Mapping Rules:
7
+ * - TypeScript objects (camelCase) <-> SQL columns (snake_case)
8
+ * - Dates stored as INTEGER (unix milliseconds)
9
+ * - Optional fields stored as NULL when missing
10
+ * - Enum values (WorkflowTriggerType, WorkflowExecutionStatus) stored as strings
11
+ */
12
+ import type { WorkflowExecution } from '../../../../domain/generated/output.js';
13
+ /**
14
+ * Database row type matching the workflow_executions table schema.
15
+ * Uses snake_case column names.
16
+ */
17
+ export interface WorkflowExecutionRow {
18
+ id: string;
19
+ workflow_id: string;
20
+ trigger_type: string;
21
+ status: string;
22
+ started_at: number;
23
+ completed_at: number | null;
24
+ duration_ms: number | null;
25
+ output_summary: string | null;
26
+ error_message: string | null;
27
+ created_at: number;
28
+ updated_at: number;
29
+ }
30
+ /**
31
+ * Maps WorkflowExecution domain object to database row.
32
+ * Converts Date objects to unix milliseconds for SQL storage.
33
+ *
34
+ * @param execution - WorkflowExecution domain object
35
+ * @returns Database row object with snake_case columns
36
+ */
37
+ export declare function toDatabase(execution: WorkflowExecution): WorkflowExecutionRow;
38
+ /**
39
+ * Maps database row to WorkflowExecution domain object.
40
+ * Converts unix milliseconds back to Date objects.
41
+ *
42
+ * @param row - Database row with snake_case columns
43
+ * @returns WorkflowExecution domain object with camelCase properties
44
+ */
45
+ export declare function fromDatabase(row: WorkflowExecutionRow): WorkflowExecution;
46
+ //# sourceMappingURL=workflow-execution.mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-execution.mapper.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/persistence/sqlite/mappers/workflow-execution.mapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAMhF;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,iBAAiB,GAAG,oBAAoB,CAoB7E;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,oBAAoB,GAAG,iBAAiB,CAczE"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Workflow Execution Database Mapper
3
+ *
4
+ * Maps between WorkflowExecution domain objects and SQLite database rows.
5
+ *
6
+ * Mapping Rules:
7
+ * - TypeScript objects (camelCase) <-> SQL columns (snake_case)
8
+ * - Dates stored as INTEGER (unix milliseconds)
9
+ * - Optional fields stored as NULL when missing
10
+ * - Enum values (WorkflowTriggerType, WorkflowExecutionStatus) stored as strings
11
+ */
12
+ /**
13
+ * Maps WorkflowExecution domain object to database row.
14
+ * Converts Date objects to unix milliseconds for SQL storage.
15
+ *
16
+ * @param execution - WorkflowExecution domain object
17
+ * @returns Database row object with snake_case columns
18
+ */
19
+ export function toDatabase(execution) {
20
+ return {
21
+ id: execution.id,
22
+ workflow_id: execution.workflowId,
23
+ trigger_type: execution.triggerType,
24
+ status: execution.status,
25
+ started_at: execution.startedAt instanceof Date ? execution.startedAt.getTime() : execution.startedAt,
26
+ completed_at: execution.completedAt instanceof Date
27
+ ? execution.completedAt.getTime()
28
+ : (execution.completedAt ?? null),
29
+ duration_ms: execution.durationMs ?? null,
30
+ output_summary: execution.outputSummary ?? null,
31
+ error_message: execution.errorMessage ?? null,
32
+ created_at: execution.createdAt instanceof Date ? execution.createdAt.getTime() : execution.createdAt,
33
+ updated_at: execution.updatedAt instanceof Date ? execution.updatedAt.getTime() : execution.updatedAt,
34
+ };
35
+ }
36
+ /**
37
+ * Maps database row to WorkflowExecution domain object.
38
+ * Converts unix milliseconds back to Date objects.
39
+ *
40
+ * @param row - Database row with snake_case columns
41
+ * @returns WorkflowExecution domain object with camelCase properties
42
+ */
43
+ export function fromDatabase(row) {
44
+ return {
45
+ id: row.id,
46
+ workflowId: row.workflow_id,
47
+ triggerType: row.trigger_type,
48
+ status: row.status,
49
+ startedAt: new Date(row.started_at),
50
+ createdAt: new Date(row.created_at),
51
+ updatedAt: new Date(row.updated_at),
52
+ ...(row.completed_at != null && { completedAt: new Date(row.completed_at) }),
53
+ ...(row.duration_ms != null && { durationMs: row.duration_ms }),
54
+ ...(row.output_summary != null && { outputSummary: row.output_summary }),
55
+ ...(row.error_message != null && { errorMessage: row.error_message }),
56
+ };
57
+ }
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Scheduled Workflow Database Mapper
3
+ *
4
+ * Maps between ScheduledWorkflow domain objects and SQLite database rows.
5
+ *
6
+ * Mapping Rules:
7
+ * - TypeScript objects (camelCase) <-> SQL columns (snake_case)
8
+ * - Dates stored as INTEGER (unix milliseconds)
9
+ * - Optional fields stored as NULL when missing
10
+ * - toolConstraints stored as JSON TEXT array
11
+ * - enabled stored as INTEGER (0/1)
12
+ * - SoftDeletableEntity: deletedAt mapped to deleted_at
13
+ */
14
+ import type { ScheduledWorkflow } from '../../../../domain/generated/output.js';
15
+ /**
16
+ * Database row type matching the scheduled_workflows table schema.
17
+ * Uses snake_case column names.
18
+ */
19
+ export interface ScheduledWorkflowRow {
20
+ id: string;
21
+ name: string;
22
+ description: string | null;
23
+ prompt: string;
24
+ tool_constraints: string | null;
25
+ cron_expression: string | null;
26
+ timezone: string | null;
27
+ enabled: number;
28
+ last_run_at: number | null;
29
+ next_run_at: number | null;
30
+ repository_path: string;
31
+ deleted_at: number | null;
32
+ created_at: number;
33
+ updated_at: number;
34
+ }
35
+ /**
36
+ * Maps ScheduledWorkflow domain object to database row.
37
+ * Converts Date objects to unix milliseconds and complex fields to JSON for SQL storage.
38
+ *
39
+ * @param workflow - ScheduledWorkflow domain object
40
+ * @returns Database row object with snake_case columns
41
+ */
42
+ export declare function toDatabase(workflow: ScheduledWorkflow): ScheduledWorkflowRow;
43
+ /**
44
+ * Maps database row to ScheduledWorkflow domain object.
45
+ * Converts unix milliseconds back to Date objects and JSON strings to arrays.
46
+ *
47
+ * @param row - Database row with snake_case columns
48
+ * @returns ScheduledWorkflow domain object with camelCase properties
49
+ */
50
+ export declare function fromDatabase(row: ScheduledWorkflowRow): ScheduledWorkflow;
51
+ //# sourceMappingURL=workflow.mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.mapper.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/persistence/sqlite/mappers/workflow.mapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAEhF;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,iBAAiB,GAAG,oBAAoB,CA4B5E;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,oBAAoB,GAAG,iBAAiB,CAmBzE"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Scheduled Workflow Database Mapper
3
+ *
4
+ * Maps between ScheduledWorkflow domain objects and SQLite database rows.
5
+ *
6
+ * Mapping Rules:
7
+ * - TypeScript objects (camelCase) <-> SQL columns (snake_case)
8
+ * - Dates stored as INTEGER (unix milliseconds)
9
+ * - Optional fields stored as NULL when missing
10
+ * - toolConstraints stored as JSON TEXT array
11
+ * - enabled stored as INTEGER (0/1)
12
+ * - SoftDeletableEntity: deletedAt mapped to deleted_at
13
+ */
14
+ /**
15
+ * Maps ScheduledWorkflow domain object to database row.
16
+ * Converts Date objects to unix milliseconds and complex fields to JSON for SQL storage.
17
+ *
18
+ * @param workflow - ScheduledWorkflow domain object
19
+ * @returns Database row object with snake_case columns
20
+ */
21
+ export function toDatabase(workflow) {
22
+ return {
23
+ id: workflow.id,
24
+ name: workflow.name,
25
+ description: workflow.description ?? null,
26
+ prompt: workflow.prompt,
27
+ tool_constraints: workflow.toolConstraints ? JSON.stringify(workflow.toolConstraints) : null,
28
+ cron_expression: workflow.cronExpression ?? null,
29
+ timezone: workflow.timezone ?? null,
30
+ enabled: workflow.enabled ? 1 : 0,
31
+ last_run_at: workflow.lastRunAt instanceof Date
32
+ ? workflow.lastRunAt.getTime()
33
+ : (workflow.lastRunAt ?? null),
34
+ next_run_at: workflow.nextRunAt instanceof Date
35
+ ? workflow.nextRunAt.getTime()
36
+ : (workflow.nextRunAt ?? null),
37
+ repository_path: workflow.repositoryPath,
38
+ deleted_at: workflow.deletedAt instanceof Date
39
+ ? workflow.deletedAt.getTime()
40
+ : (workflow.deletedAt ?? null),
41
+ created_at: workflow.createdAt instanceof Date ? workflow.createdAt.getTime() : workflow.createdAt,
42
+ updated_at: workflow.updatedAt instanceof Date ? workflow.updatedAt.getTime() : workflow.updatedAt,
43
+ };
44
+ }
45
+ /**
46
+ * Maps database row to ScheduledWorkflow domain object.
47
+ * Converts unix milliseconds back to Date objects and JSON strings to arrays.
48
+ *
49
+ * @param row - Database row with snake_case columns
50
+ * @returns ScheduledWorkflow domain object with camelCase properties
51
+ */
52
+ export function fromDatabase(row) {
53
+ return {
54
+ id: row.id,
55
+ name: row.name,
56
+ prompt: row.prompt,
57
+ enabled: row.enabled === 1,
58
+ repositoryPath: row.repository_path,
59
+ createdAt: new Date(row.created_at),
60
+ updatedAt: new Date(row.updated_at),
61
+ ...(row.description != null && { description: row.description }),
62
+ ...(row.tool_constraints != null && {
63
+ toolConstraints: JSON.parse(row.tool_constraints),
64
+ }),
65
+ ...(row.cron_expression != null && { cronExpression: row.cron_expression }),
66
+ ...(row.timezone != null && { timezone: row.timezone }),
67
+ ...(row.last_run_at != null && { lastRunAt: new Date(row.last_run_at) }),
68
+ ...(row.next_run_at != null && { nextRunAt: new Date(row.next_run_at) }),
69
+ ...(row.deleted_at != null && { deletedAt: new Date(row.deleted_at) }),
70
+ };
71
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Migration 044: Add workflow notification event columns to settings table.
3
+ *
4
+ * Adds three new notification event type filter columns for scheduled
5
+ * workflow execution events: started, completed, and failed.
6
+ * All default to 1 (enabled).
7
+ */
8
+ import type { MigrationParams } from 'umzug';
9
+ import type Database from 'better-sqlite3';
10
+ export declare function up({ context: db }: MigrationParams<Database.Database>): Promise<void>;
11
+ export declare function down({ context: db }: MigrationParams<Database.Database>): Promise<void>;
12
+ //# sourceMappingURL=044-add-workflow-notification-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"044-add-workflow-notification-events.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-workflow-notification-events.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,wBAAsB,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB3F;AAED,wBAAsB,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7F"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Migration 044: Add workflow notification event columns to settings table.
3
+ *
4
+ * Adds three new notification event type filter columns for scheduled
5
+ * workflow execution events: started, completed, and failed.
6
+ * All default to 1 (enabled).
7
+ */
8
+ export async function up({ context: db }) {
9
+ const columns = db.pragma('table_info(settings)');
10
+ if (!columns.some((c) => c.name === 'notif_evt_workflow_started')) {
11
+ db.exec('ALTER TABLE settings ADD COLUMN notif_evt_workflow_started INTEGER NOT NULL DEFAULT 1');
12
+ }
13
+ if (!columns.some((c) => c.name === 'notif_evt_workflow_completed')) {
14
+ db.exec('ALTER TABLE settings ADD COLUMN notif_evt_workflow_completed INTEGER NOT NULL DEFAULT 1');
15
+ }
16
+ if (!columns.some((c) => c.name === 'notif_evt_workflow_failed')) {
17
+ db.exec('ALTER TABLE settings ADD COLUMN notif_evt_workflow_failed INTEGER NOT NULL DEFAULT 1');
18
+ }
19
+ }
20
+ export async function down({ context: db }) {
21
+ void db;
22
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Migration 045: Create scheduled_workflows and workflow_executions tables.
3
+ *
4
+ * Creates the persistence schema for the scheduled-workflows feature:
5
+ * - scheduled_workflows: Stores workflow definitions with cron schedules
6
+ * - workflow_executions: Stores execution history for each workflow run
7
+ *
8
+ * Uses CREATE TABLE IF NOT EXISTS and CREATE INDEX IF NOT EXISTS for idempotency.
9
+ */
10
+ import type { MigrationParams } from 'umzug';
11
+ import type Database from 'better-sqlite3';
12
+ export declare function up({ context: db }: MigrationParams<Database.Database>): Promise<void>;
13
+ export declare function down({ context: db }: MigrationParams<Database.Database>): Promise<void>;
14
+ //# sourceMappingURL=045-create-scheduled-workflows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"045-create-scheduled-workflows.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/persistence/sqlite/migrations/045-create-scheduled-workflows.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,wBAAsB,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAoD3F;AAED,wBAAsB,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAM7F"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Migration 045: Create scheduled_workflows and workflow_executions tables.
3
+ *
4
+ * Creates the persistence schema for the scheduled-workflows feature:
5
+ * - scheduled_workflows: Stores workflow definitions with cron schedules
6
+ * - workflow_executions: Stores execution history for each workflow run
7
+ *
8
+ * Uses CREATE TABLE IF NOT EXISTS and CREATE INDEX IF NOT EXISTS for idempotency.
9
+ */
10
+ export async function up({ context: db }) {
11
+ db.exec(`
12
+ CREATE TABLE IF NOT EXISTS scheduled_workflows (
13
+ id TEXT PRIMARY KEY NOT NULL,
14
+ name TEXT NOT NULL,
15
+ description TEXT,
16
+ prompt TEXT NOT NULL,
17
+ tool_constraints TEXT,
18
+ cron_expression TEXT,
19
+ timezone TEXT,
20
+ enabled INTEGER NOT NULL DEFAULT 1,
21
+ last_run_at INTEGER,
22
+ next_run_at INTEGER,
23
+ repository_path TEXT NOT NULL,
24
+ deleted_at INTEGER,
25
+ created_at INTEGER NOT NULL,
26
+ updated_at INTEGER NOT NULL,
27
+ UNIQUE(name, repository_path)
28
+ )
29
+ `);
30
+ db.exec(`
31
+ CREATE TABLE IF NOT EXISTS workflow_executions (
32
+ id TEXT PRIMARY KEY NOT NULL,
33
+ workflow_id TEXT NOT NULL,
34
+ trigger_type TEXT NOT NULL,
35
+ status TEXT NOT NULL,
36
+ started_at INTEGER NOT NULL,
37
+ completed_at INTEGER,
38
+ duration_ms INTEGER,
39
+ output_summary TEXT,
40
+ error_message TEXT,
41
+ created_at INTEGER NOT NULL,
42
+ updated_at INTEGER NOT NULL,
43
+ FOREIGN KEY (workflow_id) REFERENCES scheduled_workflows(id)
44
+ )
45
+ `);
46
+ db.exec(`
47
+ CREATE INDEX IF NOT EXISTS idx_workflow_executions_workflow_id
48
+ ON workflow_executions(workflow_id)
49
+ `);
50
+ db.exec(`
51
+ CREATE INDEX IF NOT EXISTS idx_workflow_executions_started_at
52
+ ON workflow_executions(started_at)
53
+ `);
54
+ db.exec(`
55
+ CREATE INDEX IF NOT EXISTS idx_workflow_executions_status_started
56
+ ON workflow_executions(status, started_at)
57
+ `);
58
+ }
59
+ export async function down({ context: db }) {
60
+ db.exec('DROP INDEX IF EXISTS idx_workflow_executions_status_started');
61
+ db.exec('DROP INDEX IF EXISTS idx_workflow_executions_started_at');
62
+ db.exec('DROP INDEX IF EXISTS idx_workflow_executions_workflow_id');
63
+ db.exec('DROP TABLE IF EXISTS workflow_executions');
64
+ db.exec('DROP TABLE IF EXISTS scheduled_workflows');
65
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Migration 046: Add feature_flag_scheduled_workflows column to settings table.
3
+ *
4
+ * Adds a boolean (INTEGER 0/1) column for the scheduled workflows feature flag.
5
+ * Defaults to 0 (disabled).
6
+ */
7
+ import type { MigrationParams } from 'umzug';
8
+ import type Database from 'better-sqlite3';
9
+ export declare function up({ context: db }: MigrationParams<Database.Database>): Promise<void>;
10
+ export declare function down({ context: db }: MigrationParams<Database.Database>): Promise<void>;
11
+ //# sourceMappingURL=046-add-feature-flag-scheduled-workflows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"046-add-feature-flag-scheduled-workflows.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/persistence/sqlite/migrations/046-add-feature-flag-scheduled-workflows.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,wBAAsB,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAS3F;AAED,wBAAsB,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAG7F"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Migration 046: Add feature_flag_scheduled_workflows column to settings table.
3
+ *
4
+ * Adds a boolean (INTEGER 0/1) column for the scheduled workflows feature flag.
5
+ * Defaults to 0 (disabled).
6
+ */
7
+ export async function up({ context: db }) {
8
+ const columns = db.pragma('table_info(settings)');
9
+ const existing = new Set(columns.map((c) => c.name));
10
+ if (!existing.has('feature_flag_scheduled_workflows')) {
11
+ db.exec('ALTER TABLE settings ADD COLUMN feature_flag_scheduled_workflows INTEGER NOT NULL DEFAULT 0');
12
+ }
13
+ }
14
+ export async function down({ context: db }) {
15
+ // SQLite does not support DROP COLUMN before 3.35.0; column remains but is unused after rollback.
16
+ void db;
17
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-feature.repository.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/infrastructure/repositories/sqlite-feature.repository.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,6EAA6E,CAAC;AACrF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAOhE;;;GAGG;AACH,qBACa,uBAAwB,YAAW,kBAAkB;IACpD,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAE5C,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BvC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAW7C,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAcvD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAazE,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAa7E,IAAI,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IA8BtD,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAQpD,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA0CvC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKjC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAK5C"}
1
+ {"version":3,"file":"sqlite-feature.repository.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/infrastructure/repositories/sqlite-feature.repository.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,6EAA6E,CAAC;AACrF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAOhE;;;GAGG;AACH,qBACa,uBAAwB,YAAW,kBAAkB;IACpD,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAE5C,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BvC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAW7C,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAcvD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAazE,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAa7E,IAAI,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAyBtD,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAQpD,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAyCvC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKjC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAK5C"}
@@ -36,7 +36,7 @@ let SQLiteFeatureRepository = class SQLiteFeatureRepository {
36
36
  push, open_pr, auto_merge, allow_prd, allow_plan, allow_merge,
37
37
  pr_url, pr_number, pr_status, commit_hash, ci_status,
38
38
  ci_fix_attempts, ci_fix_history, pr_mergeable,
39
- parent_id, previous_lifecycle,
39
+ parent_id,
40
40
  created_at, updated_at
41
41
  ) VALUES (
42
42
  @id, @name, @slug, @description, @user_query, @repository_path, @branch,
@@ -46,7 +46,7 @@ let SQLiteFeatureRepository = class SQLiteFeatureRepository {
46
46
  @push, @open_pr, @auto_merge, @allow_prd, @allow_plan, @allow_merge,
47
47
  @pr_url, @pr_number, @pr_status, @commit_hash, @ci_status,
48
48
  @ci_fix_attempts, @ci_fix_history, @pr_mergeable,
49
- @parent_id, @previous_lifecycle,
49
+ @parent_id,
50
50
  @created_at, @updated_at
51
51
  )
52
52
  `);
@@ -92,10 +92,6 @@ let SQLiteFeatureRepository = class SQLiteFeatureRepository {
92
92
  if (!filters?.includeDeleted) {
93
93
  conditions.push('deleted_at IS NULL');
94
94
  }
95
- if (!filters?.includeArchived && !filters?.lifecycle) {
96
- conditions.push('lifecycle != ?');
97
- params.push('Archived');
98
- }
99
95
  if (filters?.repositoryPath) {
100
96
  conditions.push("REPLACE(repository_path, '\\', '/') = ?");
101
97
  params.push(filters.repositoryPath.replace(/\\/g, '/'));
@@ -146,7 +142,6 @@ let SQLiteFeatureRepository = class SQLiteFeatureRepository {
146
142
  ci_fix_history = @ci_fix_history,
147
143
  pr_mergeable = @pr_mergeable,
148
144
  parent_id = @parent_id,
149
- previous_lifecycle = @previous_lifecycle,
150
145
  deleted_at = @deleted_at,
151
146
  updated_at = @updated_at
152
147
  WHERE id = @id
@@ -0,0 +1,24 @@
1
+ /**
2
+ * SQLite Workflow Execution Repository Implementation
3
+ *
4
+ * Implements IWorkflowExecutionRepository using SQLite database.
5
+ * Uses prepared statements to prevent SQL injection.
6
+ */
7
+ import type Database from 'better-sqlite3';
8
+ import type { IWorkflowExecutionRepository } from '../../application/ports/output/repositories/workflow-execution-repository.interface.js';
9
+ import type { WorkflowExecution, WorkflowExecutionStatus } from '../../domain/generated/output.js';
10
+ /**
11
+ * SQLite implementation of IWorkflowExecutionRepository.
12
+ * Manages WorkflowExecution persistence with CRUD and retention cleanup.
13
+ */
14
+ export declare class SQLiteWorkflowExecutionRepository implements IWorkflowExecutionRepository {
15
+ private readonly db;
16
+ constructor(db: Database.Database);
17
+ create(execution: WorkflowExecution): Promise<void>;
18
+ findById(id: string): Promise<WorkflowExecution | null>;
19
+ findByWorkflowId(workflowId: string, limit?: number): Promise<WorkflowExecution[]>;
20
+ findByStatus(status: WorkflowExecutionStatus): Promise<WorkflowExecution[]>;
21
+ update(execution: WorkflowExecution): Promise<void>;
22
+ deleteOlderThan(date: Date): Promise<number>;
23
+ }
24
+ //# sourceMappingURL=sqlite-workflow-execution.repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-workflow-execution.repository.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/infrastructure/repositories/sqlite-workflow-execution.repository.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,wFAAwF,CAAC;AAC3I,OAAO,KAAK,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAOnG;;;GAGG;AACH,qBACa,iCAAkC,YAAW,4BAA4B;IACxE,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAE5C,MAAM,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBnD,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAWvD,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAalF,YAAY,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAS3E,MAAM,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBnD,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;CAKnD"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * SQLite Workflow Execution Repository Implementation
3
+ *
4
+ * Implements IWorkflowExecutionRepository using SQLite database.
5
+ * Uses prepared statements to prevent SQL injection.
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
+ import { injectable } from 'tsyringe';
17
+ import { toDatabase, fromDatabase, } from '../persistence/sqlite/mappers/workflow-execution.mapper.js';
18
+ /**
19
+ * SQLite implementation of IWorkflowExecutionRepository.
20
+ * Manages WorkflowExecution persistence with CRUD and retention cleanup.
21
+ */
22
+ let SQLiteWorkflowExecutionRepository = class SQLiteWorkflowExecutionRepository {
23
+ db;
24
+ constructor(db) {
25
+ this.db = db;
26
+ }
27
+ async create(execution) {
28
+ const row = toDatabase(execution);
29
+ const stmt = this.db.prepare(`
30
+ INSERT INTO workflow_executions (
31
+ id, workflow_id, trigger_type, status,
32
+ started_at, completed_at, duration_ms,
33
+ output_summary, error_message,
34
+ created_at, updated_at
35
+ ) VALUES (
36
+ @id, @workflow_id, @trigger_type, @status,
37
+ @started_at, @completed_at, @duration_ms,
38
+ @output_summary, @error_message,
39
+ @created_at, @updated_at
40
+ )
41
+ `);
42
+ stmt.run(row);
43
+ }
44
+ async findById(id) {
45
+ const stmt = this.db.prepare('SELECT * FROM workflow_executions WHERE id = ?');
46
+ const row = stmt.get(id);
47
+ if (!row) {
48
+ return null;
49
+ }
50
+ return fromDatabase(row);
51
+ }
52
+ async findByWorkflowId(workflowId, limit) {
53
+ const sql = limit
54
+ ? 'SELECT * FROM workflow_executions WHERE workflow_id = ? ORDER BY started_at DESC LIMIT ?'
55
+ : 'SELECT * FROM workflow_executions WHERE workflow_id = ? ORDER BY started_at DESC';
56
+ const stmt = this.db.prepare(sql);
57
+ const rows = (limit ? stmt.all(workflowId, limit) : stmt.all(workflowId));
58
+ return rows.map(fromDatabase);
59
+ }
60
+ async findByStatus(status) {
61
+ const stmt = this.db.prepare('SELECT * FROM workflow_executions WHERE status = ? ORDER BY started_at ASC');
62
+ const rows = stmt.all(status);
63
+ return rows.map(fromDatabase);
64
+ }
65
+ async update(execution) {
66
+ const row = toDatabase(execution);
67
+ const stmt = this.db.prepare(`
68
+ UPDATE workflow_executions SET
69
+ workflow_id = @workflow_id,
70
+ trigger_type = @trigger_type,
71
+ status = @status,
72
+ started_at = @started_at,
73
+ completed_at = @completed_at,
74
+ duration_ms = @duration_ms,
75
+ output_summary = @output_summary,
76
+ error_message = @error_message,
77
+ updated_at = @updated_at
78
+ WHERE id = @id
79
+ `);
80
+ stmt.run(row);
81
+ }
82
+ async deleteOlderThan(date) {
83
+ const stmt = this.db.prepare('DELETE FROM workflow_executions WHERE started_at < ?');
84
+ const result = stmt.run(date.getTime());
85
+ return result.changes;
86
+ }
87
+ };
88
+ SQLiteWorkflowExecutionRepository = __decorate([
89
+ injectable(),
90
+ __metadata("design:paramtypes", [Object])
91
+ ], SQLiteWorkflowExecutionRepository);
92
+ export { SQLiteWorkflowExecutionRepository };
@@ -0,0 +1,26 @@
1
+ /**
2
+ * SQLite Workflow Repository Implementation
3
+ *
4
+ * Implements IWorkflowRepository using SQLite database.
5
+ * Uses prepared statements to prevent SQL injection.
6
+ * Excludes soft-deleted workflows (deleted_at IS NOT NULL) from queries by default.
7
+ */
8
+ import type Database from 'better-sqlite3';
9
+ import type { IWorkflowRepository, WorkflowListFilters } from '../../application/ports/output/repositories/workflow-repository.interface.js';
10
+ import type { ScheduledWorkflow } from '../../domain/generated/output.js';
11
+ /**
12
+ * SQLite implementation of IWorkflowRepository.
13
+ * Manages ScheduledWorkflow persistence with CRUD operations.
14
+ */
15
+ export declare class SQLiteWorkflowRepository implements IWorkflowRepository {
16
+ private readonly db;
17
+ constructor(db: Database.Database);
18
+ create(workflow: ScheduledWorkflow): Promise<void>;
19
+ findById(id: string): Promise<ScheduledWorkflow | null>;
20
+ findByName(name: string, repositoryPath: string): Promise<ScheduledWorkflow | null>;
21
+ findEnabled(): Promise<ScheduledWorkflow[]>;
22
+ list(filters?: WorkflowListFilters): Promise<ScheduledWorkflow[]>;
23
+ update(workflow: ScheduledWorkflow): Promise<void>;
24
+ softDelete(id: string): Promise<void>;
25
+ }
26
+ //# sourceMappingURL=sqlite-workflow.repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-workflow.repository.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/infrastructure/repositories/sqlite-workflow.repository.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,8EAA8E,CAAC;AACtF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAO1E;;;GAGG;AACH,qBACa,wBAAyB,YAAW,mBAAmB;IACtD,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAE5C,MAAM,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBlD,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAavD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAenF,WAAW,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAS3C,IAAI,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IA2BjE,MAAM,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBlD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAO5C"}