@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.
- package/apis/json-schema/NotificationEventConfig.yaml +15 -0
- package/apis/json-schema/NotificationEventType.yaml +3 -0
- package/apis/json-schema/Repository.yaml +0 -3
- package/apis/json-schema/ScheduledWorkflow.yaml +46 -0
- package/apis/json-schema/WorkflowExecution.yaml +38 -0
- package/apis/json-schema/WorkflowExecutionStatus.yaml +10 -0
- package/apis/json-schema/WorkflowTriggerType.yaml +7 -0
- package/dist/packages/core/src/application/index.d.ts +1 -1
- package/dist/packages/core/src/application/index.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/index.d.ts +1 -1
- package/dist/packages/core/src/application/ports/output/index.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/repositories/index.d.ts +2 -0
- package/dist/packages/core/src/application/ports/output/repositories/index.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/repositories/repository-repository.interface.d.ts +1 -1
- package/dist/packages/core/src/application/ports/output/repositories/repository-repository.interface.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/repositories/workflow-execution-repository.interface.d.ts +66 -0
- package/dist/packages/core/src/application/ports/output/repositories/workflow-execution-repository.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/repositories/workflow-execution-repository.interface.js +11 -0
- package/dist/packages/core/src/application/ports/output/repositories/workflow-repository.interface.d.ts +81 -0
- package/dist/packages/core/src/application/ports/output/repositories/workflow-repository.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/repositories/workflow-repository.interface.js +11 -0
- package/dist/packages/core/src/application/ports/output/services/clock.interface.d.ts +28 -0
- package/dist/packages/core/src/application/ports/output/services/clock.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/services/clock.interface.js +13 -0
- package/dist/packages/core/src/application/ports/output/services/index.d.ts +2 -1
- package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/services/spec-initializer.interface.d.ts +5 -21
- package/dist/packages/core/src/application/ports/output/services/spec-initializer.interface.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts +1 -1
- package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.js +2 -8
- package/dist/packages/core/src/application/use-cases/workflows/create-workflow.use-case.d.ts +28 -0
- package/dist/packages/core/src/application/use-cases/workflows/create-workflow.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/workflows/create-workflow.use-case.js +72 -0
- package/dist/packages/core/src/application/use-cases/workflows/cron-helpers.d.ts +27 -0
- package/dist/packages/core/src/application/use-cases/workflows/cron-helpers.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/workflows/cron-helpers.js +43 -0
- package/dist/packages/core/src/application/use-cases/workflows/delete-workflow.use-case.d.ts +18 -0
- package/dist/packages/core/src/application/use-cases/workflows/delete-workflow.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/workflows/delete-workflow.use-case.js +64 -0
- package/dist/packages/core/src/application/use-cases/workflows/get-workflow-history.use-case.d.ts +16 -0
- package/dist/packages/core/src/application/use-cases/workflows/get-workflow-history.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/workflows/get-workflow-history.use-case.js +46 -0
- package/dist/packages/core/src/application/use-cases/workflows/get-workflow.use-case.d.ts +13 -0
- package/dist/packages/core/src/application/use-cases/workflows/get-workflow.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/workflows/get-workflow.use-case.js +42 -0
- package/dist/packages/core/src/application/use-cases/workflows/list-workflows.use-case.d.ts +13 -0
- package/dist/packages/core/src/application/use-cases/workflows/list-workflows.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/workflows/list-workflows.use-case.js +33 -0
- package/dist/packages/core/src/application/use-cases/workflows/run-workflow.use-case.d.ts +19 -0
- package/dist/packages/core/src/application/use-cases/workflows/run-workflow.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/workflows/run-workflow.use-case.js +62 -0
- package/dist/packages/core/src/application/use-cases/workflows/schedule-workflow.use-case.d.ts +22 -0
- package/dist/packages/core/src/application/use-cases/workflows/schedule-workflow.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/workflows/schedule-workflow.use-case.js +73 -0
- package/dist/packages/core/src/application/use-cases/workflows/templates/branch-rebase.template.d.ts +9 -0
- package/dist/packages/core/src/application/use-cases/workflows/templates/branch-rebase.template.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/workflows/templates/branch-rebase.template.js +27 -0
- package/dist/packages/core/src/application/use-cases/workflows/templates/issue-triage.template.d.ts +11 -0
- package/dist/packages/core/src/application/use-cases/workflows/templates/issue-triage.template.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/workflows/templates/issue-triage.template.js +27 -0
- package/dist/packages/core/src/application/use-cases/workflows/toggle-workflow.use-case.d.ts +16 -0
- package/dist/packages/core/src/application/use-cases/workflows/toggle-workflow.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/workflows/toggle-workflow.use-case.js +60 -0
- package/dist/packages/core/src/application/use-cases/workflows/update-workflow.use-case.d.ts +25 -0
- package/dist/packages/core/src/application/use-cases/workflows/update-workflow.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/workflows/update-workflow.use-case.js +83 -0
- package/dist/packages/core/src/domain/factories/settings-defaults.factory.d.ts.map +1 -1
- package/dist/packages/core/src/domain/factories/settings-defaults.factory.js +3 -0
- package/dist/packages/core/src/domain/generated/output.d.ts +108 -3
- package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
- package/dist/packages/core/src/domain/generated/output.js +16 -0
- package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/container.js +66 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/repository.mapper.d.ts +0 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/repository.mapper.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/repository.mapper.js +0 -2
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +3 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +6 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow-execution.mapper.d.ts +46 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow-execution.mapper.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow-execution.mapper.js +57 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow.mapper.d.ts +51 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow.mapper.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow.mapper.js +71 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-workflow-notification-events.d.ts +12 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-workflow-notification-events.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-workflow-notification-events.js +22 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/045-create-scheduled-workflows.d.ts +14 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/045-create-scheduled-workflows.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/045-create-scheduled-workflows.js +65 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-repository.repository.d.ts +1 -1
- package/dist/packages/core/src/infrastructure/repositories/sqlite-repository.repository.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/repositories/sqlite-repository.repository.js +2 -6
- package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow-execution.repository.d.ts +24 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow-execution.repository.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow-execution.repository.js +92 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow.repository.d.ts +26 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow.repository.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow.repository.js +117 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/evidence-prompts.d.ts +2 -4
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/evidence-prompts.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/evidence-prompts.js +8 -15
- package/dist/packages/core/src/infrastructure/services/clock.d.ts +11 -0
- package/dist/packages/core/src/infrastructure/services/clock.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/clock.js +22 -0
- package/dist/packages/core/src/infrastructure/services/git/worktree.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/git/worktree.service.js +4 -2
- package/dist/packages/core/src/infrastructure/services/ide-launchers/compute-worktree-path.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/ide-launchers/compute-worktree-path.js +4 -2
- package/dist/packages/core/src/infrastructure/services/notifications/notification.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/notifications/notification.service.js +3 -0
- package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.d.ts +3 -17
- package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.js +13 -49
- package/dist/packages/core/src/infrastructure/services/workflow-scheduler/workflow-scheduler.service.d.ts +69 -0
- package/dist/packages/core/src/infrastructure/services/workflow-scheduler/workflow-scheduler.service.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/workflow-scheduler/workflow-scheduler.service.js +270 -0
- package/dist/src/presentation/cli/commands/_serve.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/_serve.command.js +10 -0
- package/dist/src/presentation/cli/commands/workflow/create.command.d.ts +13 -0
- package/dist/src/presentation/cli/commands/workflow/create.command.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/workflow/create.command.js +83 -0
- package/dist/src/presentation/cli/commands/workflow/delete.command.d.ts +13 -0
- package/dist/src/presentation/cli/commands/workflow/delete.command.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/workflow/delete.command.js +50 -0
- package/dist/src/presentation/cli/commands/workflow/disable.command.d.ts +11 -0
- package/dist/src/presentation/cli/commands/workflow/disable.command.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/workflow/disable.command.js +32 -0
- package/dist/src/presentation/cli/commands/workflow/enable.command.d.ts +11 -0
- package/dist/src/presentation/cli/commands/workflow/enable.command.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/workflow/enable.command.js +35 -0
- package/dist/src/presentation/cli/commands/workflow/format-helpers.d.ts +35 -0
- package/dist/src/presentation/cli/commands/workflow/format-helpers.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/workflow/format-helpers.js +89 -0
- package/dist/src/presentation/cli/commands/workflow/history.command.d.ts +12 -0
- package/dist/src/presentation/cli/commands/workflow/history.command.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/workflow/history.command.js +46 -0
- package/dist/src/presentation/cli/commands/workflow/index.d.ts +26 -0
- package/dist/src/presentation/cli/commands/workflow/index.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/workflow/index.js +48 -0
- package/dist/src/presentation/cli/commands/workflow/list.command.d.ts +11 -0
- package/dist/src/presentation/cli/commands/workflow/list.command.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/workflow/list.command.js +52 -0
- package/dist/src/presentation/cli/commands/workflow/run.command.d.ts +11 -0
- package/dist/src/presentation/cli/commands/workflow/run.command.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/workflow/run.command.js +37 -0
- package/dist/src/presentation/cli/commands/workflow/schedule.command.d.ts +13 -0
- package/dist/src/presentation/cli/commands/workflow/schedule.command.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/workflow/schedule.command.js +76 -0
- package/dist/src/presentation/cli/commands/workflow/show.command.d.ts +11 -0
- package/dist/src/presentation/cli/commands/workflow/show.command.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/workflow/show.command.js +93 -0
- package/dist/src/presentation/cli/commands/workflow/update.command.d.ts +13 -0
- package/dist/src/presentation/cli/commands/workflow/update.command.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/workflow/update.command.js +67 -0
- package/dist/src/presentation/cli/index.js +2 -0
- package/dist/src/presentation/web/app/actions/get-workflow-history.d.ts +7 -0
- package/dist/src/presentation/web/app/actions/get-workflow-history.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/get-workflow-history.js +13 -0
- package/dist/src/presentation/web/app/actions/list-workflows.d.ts +7 -0
- package/dist/src/presentation/web/app/actions/list-workflows.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/list-workflows.js +13 -0
- package/dist/src/presentation/web/app/actions/toggle-workflow.d.ts +8 -0
- package/dist/src/presentation/web/app/actions/toggle-workflow.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/toggle-workflow.js +15 -0
- package/dist/src/presentation/web/app/actions/trigger-workflow.d.ts +8 -0
- package/dist/src/presentation/web/app/actions/trigger-workflow.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/trigger-workflow.js +15 -0
- package/dist/src/presentation/web/app/workflows/page.d.ts +4 -0
- package/dist/src/presentation/web/app/workflows/page.d.ts.map +1 -0
- package/dist/src/presentation/web/app/workflows/page.js +12 -0
- package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.js +4 -0
- package/dist/src/presentation/web/components/features/settings/notification-settings-section.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/notification-settings-section.js +6 -1
- package/dist/src/presentation/web/components/features/settings/notification-settings-section.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/notification-settings-section.stories.js +6 -0
- package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/settings-page-client.js +12 -0
- package/dist/src/presentation/web/components/features/workflows/workflow-execution-history.d.ts +7 -0
- package/dist/src/presentation/web/components/features/workflows/workflow-execution-history.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/workflows/workflow-execution-history.js +84 -0
- package/dist/src/presentation/web/components/features/workflows/workflow-execution-history.stories.d.ts +11 -0
- package/dist/src/presentation/web/components/features/workflows/workflow-execution-history.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/workflows/workflow-execution-history.stories.js +104 -0
- package/dist/src/presentation/web/components/features/workflows/workflow-list-item.d.ts +8 -0
- package/dist/src/presentation/web/components/features/workflows/workflow-list-item.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/workflows/workflow-list-item.js +68 -0
- package/dist/src/presentation/web/components/features/workflows/workflow-list-item.stories.d.ts +11 -0
- package/dist/src/presentation/web/components/features/workflows/workflow-list-item.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/workflows/workflow-list-item.stories.js +89 -0
- package/dist/src/presentation/web/components/features/workflows/workflow-list.d.ts +8 -0
- package/dist/src/presentation/web/components/features/workflows/workflow-list.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/workflows/workflow-list.js +10 -0
- package/dist/src/presentation/web/components/features/workflows/workflow-list.stories.d.ts +11 -0
- package/dist/src/presentation/web/components/features/workflows/workflow-list.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/workflows/workflow-list.stories.js +90 -0
- package/dist/src/presentation/web/components/features/workflows/workflows-page-client.d.ts +6 -0
- package/dist/src/presentation/web/components/features/workflows/workflows-page-client.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/workflows/workflows-page-client.js +14 -0
- package/dist/src/presentation/web/components/features/workflows/workflows-page-client.stories.d.ts +10 -0
- package/dist/src/presentation/web/components/features/workflows/workflows-page-client.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/workflows/workflows-page-client.stories.js +70 -0
- package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts.map +1 -1
- package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.js +2 -2
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -1
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/app-path-routes-manifest.json +2 -1
- package/web/.next/build-manifest.json +2 -2
- package/web/.next/fallback-build-manifest.json +2 -2
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/required-server-files.js +1 -1
- package/web/.next/required-server-files.json +1 -1
- package/web/.next/routes-manifest.json +6 -0
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +24 -24
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +24 -24
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +30 -30
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +2 -2
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +30 -30
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +2 -2
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +22 -22
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +24 -24
- package/web/.next/server/app/(dashboard)/create/page.js +1 -1
- package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +30 -30
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +2 -2
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +30 -30
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +2 -2
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +22 -22
- package/web/.next/server/app/(dashboard)/page.js +1 -1
- package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +22 -22
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/_not-found/page/server-reference-manifest.json +3 -3
- package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
- package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
- package/web/.next/server/app/api/feature-logs/route.js +1 -1
- package/web/.next/server/app/api/feature-logs/route.js.nft.json +1 -1
- package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
- package/web/.next/server/app/settings/page/server-reference-manifest.json +8 -8
- package/web/.next/server/app/settings/page.js +2 -2
- package/web/.next/server/app/settings/page.js.nft.json +1 -1
- package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/skills/page/server-reference-manifest.json +8 -8
- package/web/.next/server/app/skills/page.js +1 -1
- package/web/.next/server/app/skills/page.js.nft.json +1 -1
- package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/tools/page/server-reference-manifest.json +8 -8
- package/web/.next/server/app/tools/page.js +1 -1
- package/web/.next/server/app/tools/page.js.nft.json +1 -1
- package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/version/page/server-reference-manifest.json +3 -3
- package/web/.next/server/app/version/page.js.nft.json +1 -1
- package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/workflows/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/workflows/page/build-manifest.json +18 -0
- package/web/.next/server/app/workflows/page/next-font-manifest.json +6 -0
- package/web/.next/server/app/workflows/page/react-loadable-manifest.json +8 -0
- package/web/.next/server/app/workflows/page/server-reference-manifest.json +110 -0
- package/web/.next/server/app/workflows/page.js +18 -0
- package/web/.next/server/app/workflows/page.js.map +5 -0
- package/web/.next/server/app/workflows/page.js.nft.json +1 -0
- package/web/.next/server/app/workflows/page_client-reference-manifest.js +2 -0
- package/web/.next/server/app-paths-manifest.json +2 -1
- package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js.map +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__c6e32a23._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__c6e32a23._.js.map +1 -1
- package/web/.next/server/chunks/{[root-of-the-server]__2b1074db._.js → [root-of-the-server]__c7d52490._.js} +2 -2
- package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_02ec1aea._.js → 403f9_next_53742624._.js} +2 -2
- package/web/.next/server/chunks/ssr/403f9_next_53742624._.js.map +1 -0
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_4e741df2.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_4e741df2.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_0c7787d0._.js +3 -0
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_0c7787d0._.js.map +1 -0
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_026fdffa.js +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_026fdffa.js.map +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_8b91e197.js +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_8b91e197.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__182ecd69._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__182ecd69._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__6c83fbec._.js → [root-of-the-server]__31bc28da._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__2096f24f._.js.map → [root-of-the-server]__31bc28da._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__2096f24f._.js → [root-of-the-server]__32ecbed9._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__6c83fbec._.js.map → [root-of-the-server]__32ecbed9._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__43f51aa6._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__43f51aa6._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__44358910._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__44358910._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__9c45d070._.js → [root-of-the-server]__56049783._.js} +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__56049783._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__3ef34e4c._.js → [root-of-the-server]__57e0ee34._.js} +3 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__57e0ee34._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6e93b49c._.js +3 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__b3dbadca._.js.map → [root-of-the-server]__6e93b49c._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__815546bd._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__815546bd._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__a13f3ed8._.js → [root-of-the-server]__90ce4b6d._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__3f6cd19e._.js.map → [root-of-the-server]__90ce4b6d._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__3f6cd19e._.js → [root-of-the-server]__90f9ae71._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__a13f3ed8._.js.map → [root-of-the-server]__90f9ae71._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__e6185e8f._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__e6185e8f._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__96670392._.js → [root-of-the-server]__fbc4c252._.js} +3 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__fbc4c252._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_20a4a0d5._.js +3 -0
- package/web/.next/server/chunks/ssr/_20a4a0d5._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_25555eb5._.js +3 -0
- package/web/.next/server/chunks/ssr/_25555eb5._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_b5fc318a._.js → _277acdde._.js} +2 -2
- package/web/.next/server/chunks/ssr/_277acdde._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_381e4350._.js +9 -0
- package/web/.next/server/chunks/ssr/_381e4350._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_4711e8cf._.js +3 -0
- package/web/.next/server/chunks/ssr/_4711e8cf._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_c5a0904f._.js → _5bebeeac._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_c5a0904f._.js.map → _5bebeeac._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{_a9f57758._.js → _6701ee41._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_a9f57758._.js.map → _6701ee41._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_89a36303._.js +3 -0
- package/web/.next/server/chunks/ssr/_89a36303._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_0020fddd._.js → _a3721140._.js} +2 -2
- package/web/.next/server/chunks/ssr/_a3721140._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_b5ce655c._.js +3 -0
- package/web/.next/server/chunks/ssr/_b5ce655c._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_b6960ca0._.js +2 -2
- package/web/.next/server/chunks/ssr/_b6960ca0._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_cc1243e6._.js +3 -0
- package/web/.next/server/chunks/ssr/_cc1243e6._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_d8575088._.js +1 -1
- package/web/.next/server/chunks/ssr/_d8575088._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_f64ffec0._.js +4 -0
- package/web/.next/server/chunks/ssr/_f64ffec0._.js.map +1 -0
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_1b7dae9a._.js → f7870_sonner_dist_index_mjs_dbf63824._.js} +2 -2
- package/web/.next/server/chunks/ssr/f7870_sonner_dist_index_mjs_dbf63824._.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules__pnpm_28388798._.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules__pnpm_28388798._.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules__pnpm_ae1705ef._.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules__pnpm_ae1705ef._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_6f178e4e._.js +3 -0
- package/web/.next/server/chunks/ssr/{src_presentation_web_5cbfa9c3._.js.map → src_presentation_web_6f178e4e._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_8e7fe0d1._.js +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_8e7fe0d1._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_ca051134.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_ca051134.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1b176e3c.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1b176e3c.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_bd9f0dda.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_bd9f0dda.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_b9023017._.js +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_b9023017._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
- package/web/.next/server/pages/500.html +2 -2
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +122 -41
- package/web/.next/static/chunks/039f4ab4160abfa3.js +1 -0
- package/web/.next/static/chunks/09de5fa7d66c6745.js +1 -0
- package/web/.next/static/chunks/0b9e55b2783ee3fb.js +5 -0
- package/web/.next/static/chunks/{d4ea4340c78d8fe8.js → 1068352aef31070a.js} +1 -1
- package/web/.next/static/chunks/{3e2d7d07926b05bf.css → 1e29c585c1e94e3c.css} +1 -1
- package/web/.next/static/chunks/2c1ff62df9b34313.js +1 -0
- package/web/.next/static/chunks/3566c243f152a986.js +1 -0
- package/web/.next/static/chunks/{672e3da3ad26005b.js → 42c9564e375717ed.js} +1 -1
- package/web/.next/static/chunks/5420560352333486.js +1 -0
- package/web/.next/static/chunks/6108f8293b0c07e6.js +1 -0
- package/web/.next/static/chunks/{dca377b2a0726988.js → 7c0b57ac2f855eb1.js} +1 -1
- package/web/.next/static/chunks/877d349200088a39.js +1 -0
- package/web/.next/static/chunks/928eca7a2bc74395.js +2 -0
- package/web/.next/static/chunks/9be8fb0d0e5983b7.js +1 -0
- package/web/.next/static/chunks/{9cde06b0bf7f313d.js → a2ad257fdfe2ee9c.js} +1 -1
- package/web/.next/static/chunks/b1b491045dc169cc.js +1 -0
- package/web/.next/static/chunks/b636c0ccb43b653d.js +1 -0
- package/web/.next/static/chunks/cc6b9021425b907e.js +1 -0
- package/web/.next/static/chunks/d2568e0b833ff357.js +1 -0
- package/web/.next/static/chunks/ed35b4293a81c861.js +9 -0
- package/web/.next/static/chunks/f75142a1b75f1c32.js +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-spec-storage-mode.d.ts +0 -12
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-spec-storage-mode.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-spec-storage-mode.js +0 -19
- package/dist/packages/core/src/infrastructure/services/filesystem/repo-hash.d.ts +0 -17
- package/dist/packages/core/src/infrastructure/services/filesystem/repo-hash.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/filesystem/repo-hash.js +0 -21
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_8b618f7d._.js +0 -3
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_8b618f7d._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__3ef34e4c._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__7894f27f._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__7894f27f._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__96670392._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__9c45d070._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__b3dbadca._.js +0 -3
- package/web/.next/server/chunks/ssr/_0020fddd._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_01046927._.js +0 -9
- package/web/.next/server/chunks/ssr/_01046927._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_02ec1aea._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_1b7dae9a._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_67104d9e._.js +0 -3
- package/web/.next/server/chunks/ssr/_67104d9e._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_7dca1882._.js +0 -3
- package/web/.next/server/chunks/ssr/_7dca1882._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_b5fc318a._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_c80f0ee4._.js +0 -3
- package/web/.next/server/chunks/ssr/_c80f0ee4._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_d4b20e29._.js +0 -3
- package/web/.next/server/chunks/ssr/_d4b20e29._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_f39a1adb._.js +0 -3
- package/web/.next/server/chunks/ssr/_f39a1adb._.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules__pnpm_55c7a131._.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules__pnpm_55c7a131._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_5cbfa9c3._.js +0 -3
- package/web/.next/static/chunks/0b7fe2ac4f078f54.js +0 -13
- package/web/.next/static/chunks/0f7a03924ffe9201.js +0 -1
- package/web/.next/static/chunks/290b9ee95370f3e6.js +0 -2
- package/web/.next/static/chunks/314b8314f77d6921.js +0 -1
- package/web/.next/static/chunks/32a0eb00cc8f57a5.js +0 -1
- package/web/.next/static/chunks/47151663050b874d.js +0 -1
- package/web/.next/static/chunks/601d93593f5f664f.js +0 -1
- package/web/.next/static/chunks/6472785bb556ec8a.js +0 -1
- package/web/.next/static/chunks/688971d5bad5dc7c.js +0 -1
- package/web/.next/static/chunks/6cf053583d146b73.js +0 -1
- package/web/.next/static/chunks/769db91c3a32cb62.js +0 -1
- package/web/.next/static/chunks/7eb6cae52a1a3747.js +0 -1
- package/web/.next/static/chunks/9a53c38c866d6fd6.js +0 -1
- package/web/.next/static/chunks/b70dd4985a814b27.js +0 -1
- /package/web/.next/server/chunks/{[root-of-the-server]__2b1074db._.js.map → [root-of-the-server]__c7d52490._.js.map} +0 -0
- /package/web/.next/static/{joXWxy8xjQS31B-KrKQy2 → HEAa-Mgva36D5TU3YlIqA}/_buildManifest.js +0 -0
- /package/web/.next/static/{joXWxy8xjQS31B-KrKQy2 → HEAa-Mgva36D5TU3YlIqA}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{joXWxy8xjQS31B-KrKQy2 → HEAa-Mgva36D5TU3YlIqA}/_ssgManifest.js +0 -0
|
@@ -46,6 +46,18 @@ properties:
|
|
|
46
46
|
type: boolean
|
|
47
47
|
default: true
|
|
48
48
|
description: Notify when feature is ready for merge review
|
|
49
|
+
workflowStarted:
|
|
50
|
+
type: boolean
|
|
51
|
+
default: true
|
|
52
|
+
description: Notify when a scheduled workflow execution starts
|
|
53
|
+
workflowCompleted:
|
|
54
|
+
type: boolean
|
|
55
|
+
default: true
|
|
56
|
+
description: Notify when a scheduled workflow execution completes successfully
|
|
57
|
+
workflowFailed:
|
|
58
|
+
type: boolean
|
|
59
|
+
default: true
|
|
60
|
+
description: Notify when a scheduled workflow execution fails
|
|
49
61
|
required:
|
|
50
62
|
- agentStarted
|
|
51
63
|
- phaseCompleted
|
|
@@ -58,4 +70,7 @@ required:
|
|
|
58
70
|
- prChecksFailed
|
|
59
71
|
- prBlocked
|
|
60
72
|
- mergeReviewReady
|
|
73
|
+
- workflowStarted
|
|
74
|
+
- workflowCompleted
|
|
75
|
+
- workflowFailed
|
|
61
76
|
description: Notification event type filters
|
|
@@ -11,9 +11,6 @@ properties:
|
|
|
11
11
|
remoteUrl:
|
|
12
12
|
type: string
|
|
13
13
|
description: "Remote GitHub URL this repository was cloned from (normalized: lowercase, no .git suffix)"
|
|
14
|
-
specStorageMode:
|
|
15
|
-
type: string
|
|
16
|
-
description: "Spec storage mode: 'in-repo' stores specs at <worktree>/.shep/specs/, 'shep-managed' stores at ~/.shep/repos/<hash>/specs/"
|
|
17
14
|
required:
|
|
18
15
|
- name
|
|
19
16
|
- path
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
$schema: https://json-schema.org/draft/2020-12/schema
|
|
2
|
+
$id: ScheduledWorkflow.yaml
|
|
3
|
+
type: object
|
|
4
|
+
properties:
|
|
5
|
+
name:
|
|
6
|
+
type: string
|
|
7
|
+
description: Unique human-readable name identifying this workflow within the repository
|
|
8
|
+
description:
|
|
9
|
+
type: string
|
|
10
|
+
description: Optional human-readable description of what this workflow does
|
|
11
|
+
prompt:
|
|
12
|
+
type: string
|
|
13
|
+
description: Agent prompt instruction that the AI agent will execute when the workflow runs
|
|
14
|
+
toolConstraints:
|
|
15
|
+
type: array
|
|
16
|
+
items:
|
|
17
|
+
type: string
|
|
18
|
+
description: Optional allowlist of tool names the workflow agent is permitted to use
|
|
19
|
+
cronExpression:
|
|
20
|
+
type: string
|
|
21
|
+
description: "Cron expression defining the schedule (5-field format: min hour dom month dow)"
|
|
22
|
+
timezone:
|
|
23
|
+
type: string
|
|
24
|
+
description: IANA timezone for cron evaluation (e.g. America/New_York). Defaults to UTC
|
|
25
|
+
enabled:
|
|
26
|
+
type: boolean
|
|
27
|
+
description: Whether the workflow schedule is active. Disabled workflows retain their cron expression but do not auto-execute
|
|
28
|
+
lastRunAt:
|
|
29
|
+
type: string
|
|
30
|
+
format: date-time
|
|
31
|
+
description: Timestamp of the most recent execution (manual or scheduled)
|
|
32
|
+
nextRunAt:
|
|
33
|
+
type: string
|
|
34
|
+
format: date-time
|
|
35
|
+
description: Calculated timestamp of the next scheduled execution based on cron expression
|
|
36
|
+
repositoryPath:
|
|
37
|
+
type: string
|
|
38
|
+
description: Absolute file system path to the repository this workflow operates on
|
|
39
|
+
required:
|
|
40
|
+
- name
|
|
41
|
+
- prompt
|
|
42
|
+
- enabled
|
|
43
|
+
- repositoryPath
|
|
44
|
+
allOf:
|
|
45
|
+
- $ref: SoftDeletableEntity.yaml
|
|
46
|
+
description: User-defined reusable automation that runs on demand or on a cron schedule
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
$schema: https://json-schema.org/draft/2020-12/schema
|
|
2
|
+
$id: WorkflowExecution.yaml
|
|
3
|
+
type: object
|
|
4
|
+
properties:
|
|
5
|
+
workflowId:
|
|
6
|
+
$ref: UUID.yaml
|
|
7
|
+
description: ID of the ScheduledWorkflow that was executed
|
|
8
|
+
triggerType:
|
|
9
|
+
$ref: WorkflowTriggerType.yaml
|
|
10
|
+
description: How this execution was triggered (manual or scheduled)
|
|
11
|
+
status:
|
|
12
|
+
$ref: WorkflowExecutionStatus.yaml
|
|
13
|
+
description: Current lifecycle status of this execution
|
|
14
|
+
startedAt:
|
|
15
|
+
type: string
|
|
16
|
+
format: date-time
|
|
17
|
+
description: Timestamp when the execution started running
|
|
18
|
+
completedAt:
|
|
19
|
+
type: string
|
|
20
|
+
format: date-time
|
|
21
|
+
description: Timestamp when the execution completed or failed (null if still running)
|
|
22
|
+
durationMs:
|
|
23
|
+
type: integer
|
|
24
|
+
description: Duration of the execution in milliseconds (null if still running)
|
|
25
|
+
outputSummary:
|
|
26
|
+
type: string
|
|
27
|
+
description: Summary of the execution output (truncated if too long)
|
|
28
|
+
errorMessage:
|
|
29
|
+
type: string
|
|
30
|
+
description: Error message if the execution failed
|
|
31
|
+
required:
|
|
32
|
+
- workflowId
|
|
33
|
+
- triggerType
|
|
34
|
+
- status
|
|
35
|
+
- startedAt
|
|
36
|
+
allOf:
|
|
37
|
+
- $ref: BaseEntity.yaml
|
|
38
|
+
description: A single execution record for a scheduled workflow run
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Exports all use cases and port interfaces.
|
|
5
5
|
*/
|
|
6
|
-
export type { IAgentExecutor, AgentExecutionResult, AgentExecutionStreamEvent, AgentExecutionOptions, IAgentExecutorFactory, IAgentExecutorProvider, IAgentRegistry, AgentDefinitionWithFactory, IAgentRunner, AgentRunOptions, IAgentRunRepository, IAgentValidator, AgentValidationResult, IFeatureAgentProcessService, IFeatureRepository, FeatureListFilters, ISettingsRepository, IExternalIssueFetcher, ExternalIssue, ISpecInitializerService,
|
|
6
|
+
export type { IAgentExecutor, AgentExecutionResult, AgentExecutionStreamEvent, AgentExecutionOptions, IAgentExecutorFactory, IAgentExecutorProvider, IAgentRegistry, AgentDefinitionWithFactory, IAgentRunner, AgentRunOptions, IAgentRunRepository, IAgentValidator, AgentValidationResult, IFeatureAgentProcessService, IFeatureRepository, FeatureListFilters, ISettingsRepository, IExternalIssueFetcher, ExternalIssue, ISpecInitializerService, SpecInitializerResult, IVersionService, IWebServerService, IWorktreeService, WorktreeInfo, } from './ports/output/index.js';
|
|
7
7
|
export { IssueFetcherError, IssueNotFoundError, IssueAuthenticationError, IssueServiceUnavailableError, WorktreeError, WorktreeErrorCode, } from './ports/output/index.js';
|
|
8
8
|
export { InitializeSettingsUseCase } from './use-cases/settings/initialize-settings.use-case.js';
|
|
9
9
|
export { LoadSettingsUseCase } from './use-cases/settings/load-settings.use-case.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/application/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,0BAA0B,EAC1B,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,2BAA2B,EAC3B,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,uBAAuB,EACvB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/application/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,0BAA0B,EAC1B,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,2BAA2B,EAC3B,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,uBAAuB,EACvB,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,4BAA4B,EAC5B,aAAa,EACb,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,sDAAsD,CAAC;AACjG,OAAO,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kDAAkD,CAAC;AAGzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wDAAwD,CAAC;AAC9F,OAAO,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AAGvF,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAC;AAC1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AACtF,OAAO,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AACvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,oDAAoD,CAAC"}
|
|
@@ -8,6 +8,6 @@
|
|
|
8
8
|
*/
|
|
9
9
|
export type { IAgentExecutor, AgentExecutionResult, AgentExecutionStreamEvent, AgentExecutionOptions, IAgentExecutorFactory, IAgentExecutorProvider, IAgentRegistry, AgentDefinitionWithFactory, IAgentRunner, AgentRunOptions, IAgentRunRepository, IAgentValidator, AgentValidationResult, IFeatureAgentProcessService, } from './agents/index.js';
|
|
10
10
|
export type { IFeatureRepository, FeatureListFilters, ISettingsRepository, } from './repositories/index.js';
|
|
11
|
-
export type { IExternalIssueFetcher, ExternalIssue, INotificationService, ISpecInitializerService,
|
|
11
|
+
export type { IExternalIssueFetcher, ExternalIssue, INotificationService, ISpecInitializerService, SpecInitializerResult, IVersionService, IWebServerService, IWorktreeService, WorktreeInfo, } from './services/index.js';
|
|
12
12
|
export { IssueFetcherError, IssueNotFoundError, IssueAuthenticationError, IssueServiceUnavailableError, WorktreeError, WorktreeErrorCode, } from './services/index.js';
|
|
13
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/ports/output/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,0BAA0B,EAC1B,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AAGjC,YAAY,EACV,qBAAqB,EACrB,aAAa,EACb,oBAAoB,EACpB,uBAAuB,EACvB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/ports/output/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,0BAA0B,EAC1B,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AAGjC,YAAY,EACV,qBAAqB,EACrB,aAAa,EACb,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,4BAA4B,EAC5B,aAAa,EACb,iBAAiB,GAClB,MAAM,qBAAqB,CAAC"}
|
|
@@ -6,4 +6,6 @@
|
|
|
6
6
|
export type { IFeatureRepository, FeatureListFilters } from './feature-repository.interface.js';
|
|
7
7
|
export type { ISettingsRepository } from './settings.repository.interface.js';
|
|
8
8
|
export type { IRepositoryRepository } from './repository-repository.interface.js';
|
|
9
|
+
export type { IWorkflowRepository, WorkflowListFilters } from './workflow-repository.interface.js';
|
|
10
|
+
export type { IWorkflowExecutionRepository } from './workflow-execution-repository.interface.js';
|
|
9
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/repositories/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAChG,YAAY,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,YAAY,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/repositories/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAChG,YAAY,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,YAAY,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAClF,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACnG,YAAY,EAAE,4BAA4B,EAAE,MAAM,8CAA8C,CAAC"}
|
|
@@ -18,6 +18,6 @@ export interface IRepositoryRepository {
|
|
|
18
18
|
/** Restore a soft-deleted repository by clearing deletedAt. */
|
|
19
19
|
restore(id: string): Promise<void>;
|
|
20
20
|
/** Update specific fields on an existing repository. */
|
|
21
|
-
update(id: string, fields: Partial<Pick<Repository, 'name' | 'path' | 'remoteUrl'
|
|
21
|
+
update(id: string, fields: Partial<Pick<Repository, 'name' | 'path' | 'remoteUrl'>>): Promise<Repository>;
|
|
22
22
|
}
|
|
23
23
|
//# sourceMappingURL=repository-repository.interface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository-repository.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/repositories/repository-repository.interface.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAEzE,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACpD,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACjD,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACrD,uEAAuE;IACvE,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACrE,+FAA+F;IAC/F,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACzD,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,+DAA+D;IAC/D,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,wDAAwD;IACxD,MAAM,CACJ,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"repository-repository.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/repositories/repository-repository.interface.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAEzE,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACpD,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACjD,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACrD,uEAAuE;IACvE,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACrE,+FAA+F;IAC/F,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACzD,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,+DAA+D;IAC/D,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,wDAAwD;IACxD,MAAM,CACJ,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC,CAAC,GAC/D,OAAO,CAAC,UAAU,CAAC,CAAC;CACxB"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow Execution Repository Interface
|
|
3
|
+
*
|
|
4
|
+
* Output port for WorkflowExecution persistence operations.
|
|
5
|
+
* Implementations handle database-specific logic (SQLite, etc.).
|
|
6
|
+
*
|
|
7
|
+
* Following Clean Architecture:
|
|
8
|
+
* - Domain and Application layers depend on this interface
|
|
9
|
+
* - Infrastructure layer provides concrete implementations
|
|
10
|
+
*/
|
|
11
|
+
import type { WorkflowExecution, WorkflowExecutionStatus } from '../../../../domain/generated/output.js';
|
|
12
|
+
/**
|
|
13
|
+
* Repository interface for WorkflowExecution entity persistence.
|
|
14
|
+
*
|
|
15
|
+
* Implementations must:
|
|
16
|
+
* - Handle database connection management
|
|
17
|
+
* - Provide thread-safe operations
|
|
18
|
+
* - Support efficient queries by workflowId and status
|
|
19
|
+
* - Support retention cleanup via deleteOlderThan
|
|
20
|
+
*/
|
|
21
|
+
export interface IWorkflowExecutionRepository {
|
|
22
|
+
/**
|
|
23
|
+
* Create a new execution record.
|
|
24
|
+
*
|
|
25
|
+
* @param execution - The execution to persist
|
|
26
|
+
*/
|
|
27
|
+
create(execution: WorkflowExecution): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Find an execution by its unique ID.
|
|
30
|
+
*
|
|
31
|
+
* @param id - The execution ID
|
|
32
|
+
* @returns The execution or null if not found
|
|
33
|
+
*/
|
|
34
|
+
findById(id: string): Promise<WorkflowExecution | null>;
|
|
35
|
+
/**
|
|
36
|
+
* Find executions for a specific workflow, ordered by started_at DESC.
|
|
37
|
+
*
|
|
38
|
+
* @param workflowId - The workflow ID
|
|
39
|
+
* @param limit - Optional maximum number of records to return
|
|
40
|
+
* @returns Array of executions, most recent first
|
|
41
|
+
*/
|
|
42
|
+
findByWorkflowId(workflowId: string, limit?: number): Promise<WorkflowExecution[]>;
|
|
43
|
+
/**
|
|
44
|
+
* Find executions with a specific status.
|
|
45
|
+
* Used by the scheduler for crash recovery (finding stale 'running' records).
|
|
46
|
+
*
|
|
47
|
+
* @param status - The execution status to filter by
|
|
48
|
+
* @returns Array of matching executions
|
|
49
|
+
*/
|
|
50
|
+
findByStatus(status: WorkflowExecutionStatus): Promise<WorkflowExecution[]>;
|
|
51
|
+
/**
|
|
52
|
+
* Update an existing execution record.
|
|
53
|
+
*
|
|
54
|
+
* @param execution - The execution with updated fields
|
|
55
|
+
*/
|
|
56
|
+
update(execution: WorkflowExecution): Promise<void>;
|
|
57
|
+
/**
|
|
58
|
+
* Delete execution records older than the given date.
|
|
59
|
+
* Used for retention cleanup (default: 30 days).
|
|
60
|
+
*
|
|
61
|
+
* @param date - Delete records with started_at before this date
|
|
62
|
+
* @returns The number of records deleted
|
|
63
|
+
*/
|
|
64
|
+
deleteOlderThan(date: Date): Promise<number>;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=workflow-execution-repository.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-execution-repository.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/repositories/workflow-execution-repository.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EACxB,MAAM,wCAAwC,CAAC;AAEhD;;;;;;;;GAQG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;;;OAIG;IACH,MAAM,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpD;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAExD;;;;;;OAMG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAEnF;;;;;;OAMG;IACH,YAAY,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAE5E;;;;OAIG;IACH,MAAM,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpD;;;;;;OAMG;IACH,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9C"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow Execution Repository Interface
|
|
3
|
+
*
|
|
4
|
+
* Output port for WorkflowExecution persistence operations.
|
|
5
|
+
* Implementations handle database-specific logic (SQLite, etc.).
|
|
6
|
+
*
|
|
7
|
+
* Following Clean Architecture:
|
|
8
|
+
* - Domain and Application layers depend on this interface
|
|
9
|
+
* - Infrastructure layer provides concrete implementations
|
|
10
|
+
*/
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow Repository Interface
|
|
3
|
+
*
|
|
4
|
+
* Output port for ScheduledWorkflow persistence operations.
|
|
5
|
+
* Implementations handle database-specific logic (SQLite, etc.).
|
|
6
|
+
*
|
|
7
|
+
* Following Clean Architecture:
|
|
8
|
+
* - Domain and Application layers depend on this interface
|
|
9
|
+
* - Infrastructure layer provides concrete implementations
|
|
10
|
+
*/
|
|
11
|
+
import type { ScheduledWorkflow } from '../../../../domain/generated/output.js';
|
|
12
|
+
/**
|
|
13
|
+
* Filters for listing workflows.
|
|
14
|
+
*/
|
|
15
|
+
export interface WorkflowListFilters {
|
|
16
|
+
repositoryPath?: string;
|
|
17
|
+
enabled?: boolean;
|
|
18
|
+
/** When true, include soft-deleted workflows in results. Default: false. */
|
|
19
|
+
includeDeleted?: boolean;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Repository interface for ScheduledWorkflow entity persistence.
|
|
23
|
+
*
|
|
24
|
+
* Implementations must:
|
|
25
|
+
* - Handle database connection management
|
|
26
|
+
* - Provide thread-safe operations
|
|
27
|
+
* - Support query by name + repositoryPath for uniqueness
|
|
28
|
+
* - Exclude soft-deleted workflows from queries by default
|
|
29
|
+
*/
|
|
30
|
+
export interface IWorkflowRepository {
|
|
31
|
+
/**
|
|
32
|
+
* Create a new workflow record.
|
|
33
|
+
*
|
|
34
|
+
* @param workflow - The workflow to persist
|
|
35
|
+
*/
|
|
36
|
+
create(workflow: ScheduledWorkflow): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Find a workflow by its unique ID (excludes soft-deleted).
|
|
39
|
+
*
|
|
40
|
+
* @param id - The workflow ID
|
|
41
|
+
* @returns The workflow or null if not found
|
|
42
|
+
*/
|
|
43
|
+
findById(id: string): Promise<ScheduledWorkflow | null>;
|
|
44
|
+
/**
|
|
45
|
+
* Find a workflow by name within a repository (excludes soft-deleted).
|
|
46
|
+
*
|
|
47
|
+
* @param name - The workflow name
|
|
48
|
+
* @param repositoryPath - The repository path to scope the search
|
|
49
|
+
* @returns The workflow or null if not found
|
|
50
|
+
*/
|
|
51
|
+
findByName(name: string, repositoryPath: string): Promise<ScheduledWorkflow | null>;
|
|
52
|
+
/**
|
|
53
|
+
* Find all enabled, non-deleted workflows.
|
|
54
|
+
* Used by the scheduler service to determine which workflows need evaluation.
|
|
55
|
+
*
|
|
56
|
+
* @returns Array of enabled workflows
|
|
57
|
+
*/
|
|
58
|
+
findEnabled(): Promise<ScheduledWorkflow[]>;
|
|
59
|
+
/**
|
|
60
|
+
* List workflows with optional filters.
|
|
61
|
+
* Excludes soft-deleted workflows unless includeDeleted is true.
|
|
62
|
+
*
|
|
63
|
+
* @param filters - Optional filters for repositoryPath, enabled state, and includeDeleted
|
|
64
|
+
* @returns Array of matching workflows
|
|
65
|
+
*/
|
|
66
|
+
list(filters?: WorkflowListFilters): Promise<ScheduledWorkflow[]>;
|
|
67
|
+
/**
|
|
68
|
+
* Update an existing workflow.
|
|
69
|
+
*
|
|
70
|
+
* @param workflow - The workflow with updated fields
|
|
71
|
+
*/
|
|
72
|
+
update(workflow: ScheduledWorkflow): Promise<void>;
|
|
73
|
+
/**
|
|
74
|
+
* Soft-delete a workflow by setting deletedAt timestamp.
|
|
75
|
+
* Preserves execution history for audit purposes.
|
|
76
|
+
*
|
|
77
|
+
* @param id - The workflow ID to soft-delete
|
|
78
|
+
*/
|
|
79
|
+
softDelete(id: string): Promise<void>;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=workflow-repository.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-repository.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/repositories/workflow-repository.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4EAA4E;IAC5E,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,MAAM,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnD;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAExD;;;;;;OAMG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAEpF;;;;;OAKG;IACH,WAAW,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAE5C;;;;;;OAMG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAElE;;;;OAIG;IACH,MAAM,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnD;;;;;OAKG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow Repository Interface
|
|
3
|
+
*
|
|
4
|
+
* Output port for ScheduledWorkflow persistence operations.
|
|
5
|
+
* Implementations handle database-specific logic (SQLite, etc.).
|
|
6
|
+
*
|
|
7
|
+
* Following Clean Architecture:
|
|
8
|
+
* - Domain and Application layers depend on this interface
|
|
9
|
+
* - Infrastructure layer provides concrete implementations
|
|
10
|
+
*/
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Clock Service Interface
|
|
3
|
+
*
|
|
4
|
+
* Output port for reading the current time. Enables deterministic testing
|
|
5
|
+
* of time-dependent logic (cron evaluation, nextRunAt calculation, retention
|
|
6
|
+
* cleanup) without relying on system time or Vitest fake timers.
|
|
7
|
+
*
|
|
8
|
+
* Following Clean Architecture:
|
|
9
|
+
* - Application layer depends on this interface
|
|
10
|
+
* - Infrastructure layer provides concrete implementation (RealClock)
|
|
11
|
+
* - Tests provide MockClock with controllable time
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Port interface for reading the current time.
|
|
15
|
+
*
|
|
16
|
+
* Implementations must:
|
|
17
|
+
* - Return a Date representing the current moment
|
|
18
|
+
* - Be safe to call frequently (no side effects)
|
|
19
|
+
*/
|
|
20
|
+
export interface IClock {
|
|
21
|
+
/**
|
|
22
|
+
* Get the current date and time.
|
|
23
|
+
*
|
|
24
|
+
* @returns A Date representing the current moment
|
|
25
|
+
*/
|
|
26
|
+
now(): Date;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=clock.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clock.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/clock.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;;;;GAMG;AACH,MAAM,WAAW,MAAM;IACrB;;;;OAIG;IACH,GAAG,IAAI,IAAI,CAAC;CACb"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Clock Service Interface
|
|
3
|
+
*
|
|
4
|
+
* Output port for reading the current time. Enables deterministic testing
|
|
5
|
+
* of time-dependent logic (cron evaluation, nextRunAt calculation, retention
|
|
6
|
+
* cleanup) without relying on system time or Vitest fake timers.
|
|
7
|
+
*
|
|
8
|
+
* Following Clean Architecture:
|
|
9
|
+
* - Application layer depends on this interface
|
|
10
|
+
* - Infrastructure layer provides concrete implementation (RealClock)
|
|
11
|
+
* - Tests provide MockClock with controllable time
|
|
12
|
+
*/
|
|
13
|
+
export {};
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export type { IExternalIssueFetcher, ExternalIssue } from './external-issue-fetcher.interface.js';
|
|
7
7
|
export { IssueFetcherError, IssueNotFoundError, IssueAuthenticationError, IssueServiceUnavailableError, } from './external-issue-fetcher.interface.js';
|
|
8
|
-
export type { ISpecInitializerService,
|
|
8
|
+
export type { ISpecInitializerService, SpecInitializerResult, } from './spec-initializer.interface.js';
|
|
9
9
|
export type { IVersionService } from './version-service.interface.js';
|
|
10
10
|
export type { IWebServerService } from './web-server-service.interface.js';
|
|
11
11
|
export type { IWorktreeService, WorktreeInfo } from './worktree-service.interface.js';
|
|
@@ -15,6 +15,7 @@ export type { INotificationService } from './notification-service.interface.js';
|
|
|
15
15
|
export type { IGitPrService, CiStatus, CiStatusResult, DiffSummary, MergeStrategy, PrCreateResult, } from './git-pr-service.interface.js';
|
|
16
16
|
export { GitPrError, GitPrErrorCode } from './git-pr-service.interface.js';
|
|
17
17
|
export type { IIdeLauncherService, LaunchIdeInput, LaunchIdeResult, LaunchIdeSuccess, LaunchIdeFailed, } from './ide-launcher-service.interface.js';
|
|
18
|
+
export type { IClock } from './clock.interface.js';
|
|
18
19
|
export type { IDaemonService, DaemonState } from './daemon-service.interface.js';
|
|
19
20
|
export type { IDeploymentService, DeploymentStatus } from './deployment-service.interface.js';
|
|
20
21
|
export type { IGitHubRepositoryService, GitHubRepo, ListUserRepositoriesOptions, CloneOptions, ParsedGitHubUrl, } from './github-repository-service.interface.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAClG,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,uCAAuC,CAAC;AAC/C,YAAY,EACV,uBAAuB,EACvB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAClG,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,uCAAuC,CAAC;AAC/C,YAAY,EACV,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,iCAAiC,CAAC;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACnF,YAAY,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACjG,YAAY,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAChF,YAAY,EACV,aAAa,EACb,QAAQ,EACR,cAAc,EACd,WAAW,EACX,aAAa,EACb,cAAc,GACf,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC3E,YAAY,EACV,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,eAAe,GAChB,MAAM,qCAAqC,CAAC;AAC7C,YAAY,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjF,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC9F,YAAY,EACV,wBAAwB,EACxB,UAAU,EACV,2BAA2B,EAC3B,YAAY,EACZ,eAAe,GAChB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,0CAA0C,CAAC"}
|
package/dist/packages/core/src/application/ports/output/services/spec-initializer.interface.d.ts
CHANGED
|
@@ -11,42 +11,26 @@ export interface SpecInitializerResult {
|
|
|
11
11
|
/** Zero-padded 3-digit feature number used */
|
|
12
12
|
featureNumber: string;
|
|
13
13
|
}
|
|
14
|
-
export interface SpecInitializerOptions {
|
|
15
|
-
/**
|
|
16
|
-
* Where to store spec files.
|
|
17
|
-
* - 'in-repo': Store at <worktree>/.shep/specs/NNN-slug/ (committed to git)
|
|
18
|
-
* - 'shep-managed': Store at ~/.shep/repos/<hash>/specs/NNN-slug/ (never committed)
|
|
19
|
-
* @default 'in-repo'
|
|
20
|
-
*/
|
|
21
|
-
storageMode?: 'in-repo' | 'shep-managed';
|
|
22
|
-
/**
|
|
23
|
-
* Absolute path to the repository root. Required when storageMode is 'shep-managed'
|
|
24
|
-
* to compute the per-repo hash for the storage path.
|
|
25
|
-
*/
|
|
26
|
-
repositoryPath?: string;
|
|
27
|
-
}
|
|
28
14
|
export interface ISpecInitializerService {
|
|
29
15
|
/**
|
|
30
16
|
* Initialize a spec directory with template YAML files.
|
|
31
17
|
*
|
|
32
|
-
* Creates
|
|
33
|
-
* or ~/.shep/repos/<hash>/specs/NNN-SLUG/ (shep-managed mode) with:
|
|
18
|
+
* Creates specs/NNN-SLUG/ inside the given base directory with:
|
|
34
19
|
* - spec.yaml
|
|
35
20
|
* - research.yaml
|
|
36
21
|
* - plan.yaml
|
|
37
22
|
* - tasks.yaml
|
|
38
23
|
* - feature.yaml
|
|
39
24
|
*
|
|
40
|
-
* When mode is 'fast', only feature.yaml
|
|
25
|
+
* When mode is 'fast', only feature.yaml is created (no spec/research/plan/tasks).
|
|
41
26
|
*
|
|
42
|
-
* @param basePath - Directory to create
|
|
27
|
+
* @param basePath - Directory to create specs/ in (typically the worktree path)
|
|
43
28
|
* @param slug - Feature slug (kebab-case, e.g., "user-authentication")
|
|
44
29
|
* @param featureNumber - Sequential feature number (will be zero-padded to 3 digits)
|
|
45
30
|
* @param description - Feature description for template substitution
|
|
46
|
-
* @param mode - Optional mode; when 'fast', only feature.yaml
|
|
47
|
-
* @param options - Optional storage mode configuration
|
|
31
|
+
* @param mode - Optional mode; when 'fast', only feature.yaml is created
|
|
48
32
|
* @returns The spec directory path and feature number used
|
|
49
33
|
*/
|
|
50
|
-
initialize(basePath: string, slug: string, featureNumber: number, description: string, mode?: 'fast'
|
|
34
|
+
initialize(basePath: string, slug: string, featureNumber: number, description: string, mode?: 'fast'): Promise<SpecInitializerResult>;
|
|
51
35
|
}
|
|
52
36
|
//# sourceMappingURL=spec-initializer.interface.d.ts.map
|
package/dist/packages/core/src/application/ports/output/services/spec-initializer.interface.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-initializer.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/spec-initializer.interface.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,qBAAqB;IACpC,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"spec-initializer.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/spec-initializer.interface.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,qBAAqB;IACpC,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACtC;;;;;;;;;;;;;;;;;;OAkBG;IACH,UAAU,CACR,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACnC"}
|
package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* - Slug uniqueness delegated to SlugResolver service
|
|
11
11
|
* - Full user input is preserved as-is in spec.yaml
|
|
12
12
|
* - A git worktree is created at ~/.shep/repos/HASH/wt/SLUG/
|
|
13
|
-
* - Spec YAML files are scaffolded at WORKTREE
|
|
13
|
+
* - Spec YAML files are scaffolded at WORKTREE/specs/NNN-SLUG/
|
|
14
14
|
* - Feature agent is spawned with the spec dir path
|
|
15
15
|
* - specPath is persisted on the Feature record
|
|
16
16
|
* - Initial lifecycle is Requirements
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-feature.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/use-cases/features/create/create-feature.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AAMtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oEAAoE,CAAC;AAC7G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8DAA8D,CAAC;AACrG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iEAAiE,CAAC;AACnH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gEAAgE,CAAC;AAC1G,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8DAA8D,CAAC;AAC5G,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uEAAuE,CAAC;AACnH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4DAA4D,CAAC;AAChG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2DAA2D,CAAC;AAGjG,OAAO,EAAE,wBAAwB,EAAE,MAAM,mEAAmE,CAAC;AAC7G,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE9F,qBACa,oBAAoB;IAG7B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAEhC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAEhC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAElC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAElC,OAAO,CAAC,QAAQ,CAAC,cAAc;gBApBd,WAAW,EAAE,kBAAkB,EAE/B,eAAe,EAAE,gBAAgB,EAEjC,YAAY,EAAE,2BAA2B,EAEzC,aAAa,EAAE,mBAAmB,EAElC,eAAe,EAAE,uBAAuB,EAExC,iBAAiB,EAAE,iBAAiB,EAEpC,YAAY,EAAE,YAAY,EAE1B,cAAc,EAAE,qBAAqB,EAErC,YAAY,EAAE,aAAa,EAE3B,iBAAiB,EAAE,wBAAwB,EAE3C,cAAc,EAAE,eAAe;IAGlD;;;OAGG;IACG,OAAO,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAMtE;;;;OAIG;IACG,YAAY,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAmI1E;;;OAGG;IACG,kBAAkB,CACtB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,kBAAkB,EACzB,WAAW,EAAE,OAAO,GACnB,OAAO,CAAC;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,OAAO,CAAA;KAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"create-feature.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/use-cases/features/create/create-feature.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AAMtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oEAAoE,CAAC;AAC7G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8DAA8D,CAAC;AACrG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iEAAiE,CAAC;AACnH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gEAAgE,CAAC;AAC1G,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8DAA8D,CAAC;AAC5G,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uEAAuE,CAAC;AACnH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4DAA4D,CAAC;AAChG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2DAA2D,CAAC;AAGjG,OAAO,EAAE,wBAAwB,EAAE,MAAM,mEAAmE,CAAC;AAC7G,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE9F,qBACa,oBAAoB;IAG7B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAEhC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAEhC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAElC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAElC,OAAO,CAAC,QAAQ,CAAC,cAAc;gBApBd,WAAW,EAAE,kBAAkB,EAE/B,eAAe,EAAE,gBAAgB,EAEjC,YAAY,EAAE,2BAA2B,EAEzC,aAAa,EAAE,mBAAmB,EAElC,eAAe,EAAE,uBAAuB,EAExC,iBAAiB,EAAE,iBAAiB,EAEpC,YAAY,EAAE,YAAY,EAE1B,cAAc,EAAE,qBAAqB,EAErC,YAAY,EAAE,aAAa,EAE3B,iBAAiB,EAAE,wBAAwB,EAE3C,cAAc,EAAE,eAAe;IAGlD;;;OAGG;IACG,OAAO,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAMtE;;;;OAIG;IACG,YAAY,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAmI1E;;;OAGG;IACG,kBAAkB,CACtB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,kBAAkB,EACzB,WAAW,EAAE,OAAO,GACnB,OAAO,CAAC;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,OAAO,CAAA;KAAE,CAAC;CAgI1D"}
|
package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.js
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* - Slug uniqueness delegated to SlugResolver service
|
|
11
11
|
* - Full user input is preserved as-is in spec.yaml
|
|
12
12
|
* - A git worktree is created at ~/.shep/repos/HASH/wt/SLUG/
|
|
13
|
-
* - Spec YAML files are scaffolded at WORKTREE
|
|
13
|
+
* - Spec YAML files are scaffolded at WORKTREE/specs/NNN-SLUG/
|
|
14
14
|
* - Feature agent is spawned with the spec dir path
|
|
15
15
|
* - specPath is persisted on the Feature record
|
|
16
16
|
* - Initial lifecycle is Requirements
|
|
@@ -209,14 +209,8 @@ let CreateFeatureUseCase = class CreateFeatureUseCase {
|
|
|
209
209
|
const defaultBranch = await this.gitPrService.getDefaultBranch(effectiveRepoPath);
|
|
210
210
|
const worktreePath = this.worktreeService.getWorktreePath(effectiveRepoPath, branch);
|
|
211
211
|
await this.worktreeService.create(effectiveRepoPath, branch, worktreePath, defaultBranch);
|
|
212
|
-
// Resolve spec storage mode from repository entity (defaults to 'in-repo')
|
|
213
|
-
const repository = await this.repositoryRepo.findByPath(effectiveRepoPath.replace(/\\/g, '/').replace(/\/+$/, '') || effectiveRepoPath);
|
|
214
|
-
const storageMode = repository?.specStorageMode ?? 'in-repo';
|
|
215
212
|
// Initialize spec directory — full user input goes into spec.yaml as-is
|
|
216
|
-
const { specDir } = await this.specInitializer.initialize(worktreePath, slug, featureNumber, input.userInput, input.fast ? 'fast' : undefined
|
|
217
|
-
storageMode,
|
|
218
|
-
repositoryPath: effectiveRepoPath,
|
|
219
|
-
});
|
|
213
|
+
const { specDir } = await this.specInitializer.initialize(worktreePath, slug, featureNumber, input.userInput, input.fast ? 'fast' : undefined);
|
|
220
214
|
// Commit pending attachments if sessionId was provided (web UI flow)
|
|
221
215
|
let committedAttachments = input.attachments;
|
|
222
216
|
if (input.sessionId) {
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create Workflow Use Case
|
|
3
|
+
*
|
|
4
|
+
* Creates a new scheduled workflow definition. Validates:
|
|
5
|
+
* - Name uniqueness within the same repository path
|
|
6
|
+
* - Cron expression validity (if provided) using croner
|
|
7
|
+
* - Calculates nextRunAt if a cron expression is provided
|
|
8
|
+
*/
|
|
9
|
+
import type { ScheduledWorkflow } from '../../../domain/generated/output.js';
|
|
10
|
+
import type { IWorkflowRepository } from '../../ports/output/repositories/workflow-repository.interface.js';
|
|
11
|
+
import type { IClock } from '../../ports/output/services/clock.interface.js';
|
|
12
|
+
export interface CreateWorkflowInput {
|
|
13
|
+
name: string;
|
|
14
|
+
description?: string;
|
|
15
|
+
prompt: string;
|
|
16
|
+
toolConstraints?: string[];
|
|
17
|
+
cronExpression?: string;
|
|
18
|
+
timezone?: string;
|
|
19
|
+
enabled?: boolean;
|
|
20
|
+
repositoryPath: string;
|
|
21
|
+
}
|
|
22
|
+
export declare class CreateWorkflowUseCase {
|
|
23
|
+
private readonly workflowRepo;
|
|
24
|
+
private readonly clock;
|
|
25
|
+
constructor(workflowRepo: IWorkflowRepository, clock: IClock);
|
|
26
|
+
execute(input: CreateWorkflowInput): Promise<ScheduledWorkflow>;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=create-workflow.use-case.d.ts.map
|
package/dist/packages/core/src/application/use-cases/workflows/create-workflow.use-case.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-workflow.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/workflows/create-workflow.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,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,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,qBACa,qBAAqB;IAG9B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAFL,YAAY,EAAE,mBAAmB,EAEjC,KAAK,EAAE,MAAM;IAG1B,OAAO,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAwCtE"}
|