@shepai/cli 1.150.0 → 1.150.1-pr441.b309db7
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/FeatureFlags.yaml +5 -0
- package/apis/json-schema/NotificationEventConfig.yaml +15 -0
- package/apis/json-schema/NotificationEventType.yaml +3 -0
- 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/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/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 +1 -0
- package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
- 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 +4 -0
- package/dist/packages/core/src/domain/generated/output.d.ts +114 -1
- 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/settings.mapper.d.ts +4 -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 +8 -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/persistence/sqlite/migrations/046-add-feature-flag-scheduled-workflows.d.ts +11 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/046-add-feature-flag-scheduled-workflows.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/046-add-feature-flag-scheduled-workflows.js +17 -0
- 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/evidence.node.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/evidence.node.js +2 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/fast-implement.node.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/fast-implement.node.js +11 -42
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/implement.node.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/implement.node.js +2 -3
- 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/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/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 +14 -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 +17 -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 +17 -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 +19 -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 +19 -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 +18 -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/common/repository-node/repository-drawer.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/repository-node/repository-drawer.stories.js +1 -0
- package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.js +3 -0
- package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.js +3 -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 +19 -2
- package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.js +1 -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/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.js +1 -0
- package/dist/src/presentation/web/hooks/feature-flags-context.d.ts.map +1 -1
- package/dist/src/presentation/web/hooks/feature-flags-context.js +1 -0
- package/dist/src/presentation/web/lib/feature-flags.d.ts +2 -0
- package/dist/src/presentation/web/lib/feature-flags.d.ts.map +1 -1
- package/dist/src/presentation/web/lib/feature-flags.js +5 -0
- 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 +3 -3
- package/web/.next/required-server-files.json +3 -3
- package/web/.next/routes-manifest.json +6 -0
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +2 -2
- 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 +28 -28
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js +2 -2
- 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 +36 -36
- 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 +36 -36
- 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 +26 -26
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +2 -2
- 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 +28 -28
- package/web/.next/server/app/(dashboard)/create/page.js +2 -2
- 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 +36 -36
- 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 +36 -36
- 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 +26 -26
- package/web/.next/server/app/(dashboard)/page.js +2 -2
- 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 +26 -26
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +2 -2
- 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/page.js +1 -1
- package/web/.next/server/app/_global-error/page.js.nft.json +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 +1 -1
- 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/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 +3 -3
- 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 +2 -2
- 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 +2 -2
- 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 +1 -1
- 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 +19 -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]__cd67a84c._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_6256a985._.js → 403f9_next_8a33ddee._.js} +2 -2
- package/web/.next/server/chunks/ssr/403f9_next_8a33ddee._.js.map +1 -0
- 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/[root-of-the-server]__082758f6._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__082758f6._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__d1040bd1._.js → [root-of-the-server]__090f24cb._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__d1040bd1._.js.map → [root-of-the-server]__090f24cb._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__29580090._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__29580090._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__32cd6108._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__32cd6108._.js.map +1 -0
- 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]__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]__efeeaed4._.js → [root-of-the-server]__7aa484f5._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__efeeaed4._.js.map → [root-of-the-server]__7aa484f5._.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]__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]__c094882b._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c094882b._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__0b150ddf._.js → [root-of-the-server]__c85ef334._.js} +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c85ef334._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__cf7aca8a._.js +3 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__df7c1cd3._.js.map → [root-of-the-server]__cf7aca8a._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__dac5dbf1._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__dac5dbf1._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__2138fa7e._.js → [root-of-the-server]__e5851493._.js} +3 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__e5851493._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__fae8b355._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__fae8b355._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0c5f56e3._.js +2 -2
- package/web/.next/server/chunks/ssr/_0c5f56e3._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_17dbc240._.js +3 -0
- package/web/.next/server/chunks/ssr/_17dbc240._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_1b719e7f._.js +1 -1
- package/web/.next/server/chunks/ssr/_1b719e7f._.js.map +1 -1
- 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/{_8fcc39d4._.js → _212aafc7._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_8fcc39d4._.js.map → _212aafc7._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_26582473._.js +3 -0
- package/web/.next/server/chunks/ssr/_26582473._.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/{_92b9e766._.js → _3038739c._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_92b9e766._.js.map → _3038739c._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_37e8548b._.js +1 -1
- package/web/.next/server/chunks/ssr/_37e8548b._.js.map +1 -1
- 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/_4b432739._.js +1 -1
- package/web/.next/server/chunks/ssr/_4b432739._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_55d763e2._.js +1 -1
- package/web/.next/server/chunks/ssr/_55d763e2._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_64bdfc6f._.js +2 -2
- package/web/.next/server/chunks/ssr/_64bdfc6f._.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/_b71645b4._.js +1 -1
- package/web/.next/server/chunks/ssr/_b71645b4._.js.map +1 -1
- 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/_e3411387._.js +9 -0
- package/web/.next/server/chunks/ssr/_e3411387._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_f35785e8._.js +3 -0
- package/web/.next/server/chunks/ssr/_f35785e8._.js.map +1 -0
- 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_47c56a89._.js +3 -0
- package/web/.next/server/chunks/ssr/{src_presentation_web_f449e0af._.js.map → src_presentation_web_47c56a89._.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_app_actions_open-ide_ts_baaca5d5._.js +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 +128 -47
- package/web/.next/static/chunks/012cd198f2f5f69b.js +1 -0
- package/web/.next/static/chunks/1717cd5043bdd3bd.js +1 -0
- package/web/.next/static/chunks/1760fdd748136b0a.js +1 -0
- package/web/.next/static/chunks/18c906505123f6bc.js +1 -0
- package/web/.next/static/chunks/{eb7b91c45ec7b468.js → 2be2403fc6ea10fb.js} +2 -2
- package/web/.next/static/chunks/2c1ff62df9b34313.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/581da2fea22a26ed.js +1 -0
- package/web/.next/static/chunks/7e664ecef6b0412b.js +1 -0
- package/web/.next/static/chunks/8254b51579b9bf14.js +1 -0
- package/web/.next/static/chunks/{9b8678597fa1db84.css → 919a5016ff5973a8.css} +1 -1
- package/web/.next/static/chunks/955de9c458882838.js +5 -0
- package/web/.next/static/chunks/{a18a5348858c6d75.js → 9d58a91a359e0b7d.js} +3 -3
- package/web/.next/static/chunks/{10b75a1ea923a690.js → c7865694beb27ce3.js} +1 -1
- package/web/.next/static/chunks/d7a464b957f611ba.js +1 -0
- package/web/.next/static/chunks/de2a780de5e1d718.js +1 -0
- package/web/.next/static/chunks/ed35b4293a81c861.js +9 -0
- package/web/.next/static/chunks/{97a773e5a88462a0.js → ed82c6ab93a79fa3.js} +1 -1
- package/web/.next/static/chunks/f29c8010a2d10bc5.js +1 -0
- package/web/.next/static/chunks/f75142a1b75f1c32.js +1 -0
- 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]__0b150ddf._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__2138fa7e._.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]__d48c5b11._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__d48c5b11._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__df7c1cd3._.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/_05c23ad9._.js +0 -3
- package/web/.next/server/chunks/ssr/_05c23ad9._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_16eb4fec._.js +0 -3
- package/web/.next/server/chunks/ssr/_16eb4fec._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_1b7dae9a._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_6256a985._.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/_b5fc318a._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_bf695af2._.js +0 -3
- package/web/.next/server/chunks/ssr/_bf695af2._.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/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_f449e0af._.js +0 -3
- package/web/.next/static/chunks/08baac5434d9528e.js +0 -13
- package/web/.next/static/chunks/1f265c393614cad2.js +0 -1
- package/web/.next/static/chunks/413e2ca694528497.js +0 -1
- package/web/.next/static/chunks/49057cf8cd37e262.js +0 -1
- package/web/.next/static/chunks/56233eb0780a997e.js +0 -1
- package/web/.next/static/chunks/601d93593f5f664f.js +0 -1
- package/web/.next/static/chunks/688971d5bad5dc7c.js +0 -1
- package/web/.next/static/chunks/ad8f9fe681d88d09.js +0 -1
- package/web/.next/static/chunks/b70dd4985a814b27.js +0 -1
- package/web/.next/static/chunks/c69cea3bed20eea7.js +0 -1
- package/web/.next/static/chunks/d2e9df0b38f0d962.js +0 -1
- package/web/.next/static/chunks/f17d6d87a3508ba0.js +0 -1
- package/web/.next/static/chunks/f9a69279d55bfd3b.js +0 -1
- /package/web/.next/static/{e6hBEk7bk-CV1jLaYcZLX → Lsq24p2KQmGstqY0A7dDg}/_buildManifest.js +0 -0
- /package/web/.next/static/{e6hBEk7bk-CV1jLaYcZLX → Lsq24p2KQmGstqY0A7dDg}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{e6hBEk7bk-CV1jLaYcZLX → Lsq24p2KQmGstqY0A7dDg}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow Delete Command
|
|
3
|
+
*
|
|
4
|
+
* Delete a workflow (soft-delete). Execution history is preserved
|
|
5
|
+
* subject to the retention policy.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* shep workflow delete <name>
|
|
9
|
+
* shep workflow delete <name> --force
|
|
10
|
+
*/
|
|
11
|
+
import { Command } from 'commander';
|
|
12
|
+
export declare function createDeleteCommand(): Command;
|
|
13
|
+
//# sourceMappingURL=delete.command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.command.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/workflow/delete.command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,mBAAmB,IAAI,OAAO,CAyC7C"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow Delete Command
|
|
3
|
+
*
|
|
4
|
+
* Delete a workflow (soft-delete). Execution history is preserved
|
|
5
|
+
* subject to the retention policy.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* shep workflow delete <name>
|
|
9
|
+
* shep workflow delete <name> --force
|
|
10
|
+
*/
|
|
11
|
+
import { Command } from 'commander';
|
|
12
|
+
import { container } from '../../../../../packages/core/src/infrastructure/di/container.js';
|
|
13
|
+
import { DeleteWorkflowUseCase } from '../../../../../packages/core/src/application/use-cases/workflows/delete-workflow.use-case.js';
|
|
14
|
+
import { colors, messages } from '../../ui/index.js';
|
|
15
|
+
export function createDeleteCommand() {
|
|
16
|
+
return new Command('delete')
|
|
17
|
+
.description('Delete a workflow')
|
|
18
|
+
.argument('<name>', 'Workflow name or ID')
|
|
19
|
+
.option('--force', 'Skip confirmation')
|
|
20
|
+
.option('-r, --repo <path>', 'Repository path (defaults to current directory)')
|
|
21
|
+
.action(async (nameOrId, options) => {
|
|
22
|
+
try {
|
|
23
|
+
// Confirmation prompt (skip with --force or non-interactive)
|
|
24
|
+
if (!options.force && process.stdin.isTTY) {
|
|
25
|
+
const readline = await import('node:readline');
|
|
26
|
+
const rl = readline.createInterface({
|
|
27
|
+
input: process.stdin,
|
|
28
|
+
output: process.stdout,
|
|
29
|
+
});
|
|
30
|
+
const answer = await new Promise((resolve) => {
|
|
31
|
+
rl.question(` Delete workflow "${nameOrId}"? This will cancel queued executions. [y/N] `, resolve);
|
|
32
|
+
});
|
|
33
|
+
rl.close();
|
|
34
|
+
if (answer.toLowerCase() !== 'y') {
|
|
35
|
+
messages.info('Cancelled');
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
const repositoryPath = options.repo ?? process.cwd();
|
|
40
|
+
const useCase = container.resolve(DeleteWorkflowUseCase);
|
|
41
|
+
const workflow = await useCase.execute(nameOrId, repositoryPath);
|
|
42
|
+
messages.success(`Deleted workflow "${colors.accent(workflow.name)}"`);
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
46
|
+
messages.error('Failed to delete workflow', err);
|
|
47
|
+
process.exitCode = 1;
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow Disable Command
|
|
3
|
+
*
|
|
4
|
+
* Disable a workflow's schedule (manual triggers still allowed).
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* shep workflow disable <name>
|
|
8
|
+
*/
|
|
9
|
+
import { Command } from 'commander';
|
|
10
|
+
export declare function createDisableCommand(): Command;
|
|
11
|
+
//# sourceMappingURL=disable.command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disable.command.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/workflow/disable.command.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,oBAAoB,IAAI,OAAO,CAmB9C"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow Disable Command
|
|
3
|
+
*
|
|
4
|
+
* Disable a workflow's schedule (manual triggers still allowed).
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* shep workflow disable <name>
|
|
8
|
+
*/
|
|
9
|
+
import { Command } from 'commander';
|
|
10
|
+
import { container } from '../../../../../packages/core/src/infrastructure/di/container.js';
|
|
11
|
+
import { ToggleWorkflowUseCase } from '../../../../../packages/core/src/application/use-cases/workflows/toggle-workflow.use-case.js';
|
|
12
|
+
import { messages } from '../../ui/index.js';
|
|
13
|
+
export function createDisableCommand() {
|
|
14
|
+
return new Command('disable')
|
|
15
|
+
.description('Disable a workflow schedule')
|
|
16
|
+
.argument('<name>', 'Workflow name or ID')
|
|
17
|
+
.option('-r, --repo <path>', 'Repository path (defaults to current directory)')
|
|
18
|
+
.action(async (nameOrId, options) => {
|
|
19
|
+
try {
|
|
20
|
+
const repositoryPath = options.repo ?? process.cwd();
|
|
21
|
+
const useCase = container.resolve(ToggleWorkflowUseCase);
|
|
22
|
+
const workflow = await useCase.execute(nameOrId, false, repositoryPath);
|
|
23
|
+
messages.success(`Workflow "${workflow.name}" disabled`);
|
|
24
|
+
messages.info('Manual triggers are still allowed via: shep workflow run <name>');
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
28
|
+
messages.error('Failed to disable workflow', err);
|
|
29
|
+
process.exitCode = 1;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow Enable Command
|
|
3
|
+
*
|
|
4
|
+
* Enable a workflow's schedule.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* shep workflow enable <name>
|
|
8
|
+
*/
|
|
9
|
+
import { Command } from 'commander';
|
|
10
|
+
export declare function createEnableCommand(): Command;
|
|
11
|
+
//# sourceMappingURL=enable.command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enable.command.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/workflow/enable.command.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,mBAAmB,IAAI,OAAO,CAuB7C"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow Enable Command
|
|
3
|
+
*
|
|
4
|
+
* Enable a workflow's schedule.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* shep workflow enable <name>
|
|
8
|
+
*/
|
|
9
|
+
import { Command } from 'commander';
|
|
10
|
+
import { container } from '../../../../../packages/core/src/infrastructure/di/container.js';
|
|
11
|
+
import { ToggleWorkflowUseCase } from '../../../../../packages/core/src/application/use-cases/workflows/toggle-workflow.use-case.js';
|
|
12
|
+
import { colors, messages } from '../../ui/index.js';
|
|
13
|
+
import { formatTimestamp } from './format-helpers.js';
|
|
14
|
+
export function createEnableCommand() {
|
|
15
|
+
return new Command('enable')
|
|
16
|
+
.description('Enable a workflow schedule')
|
|
17
|
+
.argument('<name>', 'Workflow name or ID')
|
|
18
|
+
.option('-r, --repo <path>', 'Repository path (defaults to current directory)')
|
|
19
|
+
.action(async (nameOrId, options) => {
|
|
20
|
+
try {
|
|
21
|
+
const repositoryPath = options.repo ?? process.cwd();
|
|
22
|
+
const useCase = container.resolve(ToggleWorkflowUseCase);
|
|
23
|
+
const workflow = await useCase.execute(nameOrId, true, repositoryPath);
|
|
24
|
+
messages.success(`Workflow "${workflow.name}" enabled`);
|
|
25
|
+
if (workflow.nextRunAt) {
|
|
26
|
+
console.log(` ${colors.muted('Next run:')} ${formatTimestamp(new Date(workflow.nextRunAt))}`);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
31
|
+
messages.error('Failed to enable workflow', err);
|
|
32
|
+
process.exitCode = 1;
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow CLI Format Helpers
|
|
3
|
+
*
|
|
4
|
+
* Shared formatting utilities for workflow CLI commands.
|
|
5
|
+
*/
|
|
6
|
+
import type { ScheduledWorkflow, WorkflowExecution } from '../../../../../packages/core/src/domain/generated/output.js';
|
|
7
|
+
/**
|
|
8
|
+
* Format a workflow's current status indicator for list/show output.
|
|
9
|
+
*/
|
|
10
|
+
export declare function formatWorkflowStatus(workflow: ScheduledWorkflow): string;
|
|
11
|
+
/**
|
|
12
|
+
* Format an execution status with color and symbol.
|
|
13
|
+
*/
|
|
14
|
+
export declare function formatExecutionStatus(status: string): string;
|
|
15
|
+
/**
|
|
16
|
+
* Format a Date as a locale string.
|
|
17
|
+
*/
|
|
18
|
+
export declare function formatTimestamp(date: Date): string;
|
|
19
|
+
/**
|
|
20
|
+
* Format a relative time string (e.g., "5 minutes ago").
|
|
21
|
+
*/
|
|
22
|
+
export declare function formatRelativeTime(date: Date): string;
|
|
23
|
+
/**
|
|
24
|
+
* Format execution duration in human-readable form.
|
|
25
|
+
*/
|
|
26
|
+
export declare function formatDuration(ms: number): string;
|
|
27
|
+
/**
|
|
28
|
+
* Format trigger type for display.
|
|
29
|
+
*/
|
|
30
|
+
export declare function formatTriggerType(triggerType: string): string;
|
|
31
|
+
/**
|
|
32
|
+
* Format execution row for history table.
|
|
33
|
+
*/
|
|
34
|
+
export declare function formatExecutionRow(execution: WorkflowExecution): string[];
|
|
35
|
+
//# sourceMappingURL=format-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-helpers.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/workflow/format-helpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAGzF;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CAQxE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAS5D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAElD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAWrD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAQjD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAI7D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAQzE"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow CLI Format Helpers
|
|
3
|
+
*
|
|
4
|
+
* Shared formatting utilities for workflow CLI commands.
|
|
5
|
+
*/
|
|
6
|
+
import { colors, symbols } from '../../ui/index.js';
|
|
7
|
+
/**
|
|
8
|
+
* Format a workflow's current status indicator for list/show output.
|
|
9
|
+
*/
|
|
10
|
+
export function formatWorkflowStatus(workflow) {
|
|
11
|
+
if (!workflow.enabled) {
|
|
12
|
+
return `${colors.muted(symbols.dotEmpty)} ${colors.muted('disabled')}`;
|
|
13
|
+
}
|
|
14
|
+
if (workflow.cronExpression) {
|
|
15
|
+
return `${colors.success(symbols.dot)} ${colors.success('scheduled')}`;
|
|
16
|
+
}
|
|
17
|
+
return `${colors.info(symbols.dot)} ${colors.info('on-demand')}`;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Format an execution status with color and symbol.
|
|
21
|
+
*/
|
|
22
|
+
export function formatExecutionStatus(status) {
|
|
23
|
+
const map = {
|
|
24
|
+
queued: `${colors.muted(symbols.dotEmpty)} ${colors.muted('queued')}`,
|
|
25
|
+
running: `${colors.info(symbols.dot)} ${colors.info('running')}`,
|
|
26
|
+
completed: `${colors.success(symbols.success)} ${colors.success('completed')}`,
|
|
27
|
+
failed: `${colors.error(symbols.error)} ${colors.error('failed')}`,
|
|
28
|
+
cancelled: `${colors.muted(symbols.dotEmpty)} ${colors.muted('cancelled')}`,
|
|
29
|
+
};
|
|
30
|
+
return map[status] ?? colors.muted(status);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Format a Date as a locale string.
|
|
34
|
+
*/
|
|
35
|
+
export function formatTimestamp(date) {
|
|
36
|
+
return date.toLocaleString();
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Format a relative time string (e.g., "5 minutes ago").
|
|
40
|
+
*/
|
|
41
|
+
export function formatRelativeTime(date) {
|
|
42
|
+
const diffMs = Date.now() - date.getTime();
|
|
43
|
+
const seconds = Math.floor(diffMs / 1000);
|
|
44
|
+
const minutes = Math.floor(seconds / 60);
|
|
45
|
+
const hours = Math.floor(minutes / 60);
|
|
46
|
+
const days = Math.floor(hours / 24);
|
|
47
|
+
if (days > 0)
|
|
48
|
+
return `${days}d ago`;
|
|
49
|
+
if (hours > 0)
|
|
50
|
+
return `${hours}h ago`;
|
|
51
|
+
if (minutes > 0)
|
|
52
|
+
return `${minutes}m ago`;
|
|
53
|
+
return `${seconds}s ago`;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Format execution duration in human-readable form.
|
|
57
|
+
*/
|
|
58
|
+
export function formatDuration(ms) {
|
|
59
|
+
const seconds = Math.floor(ms / 1000);
|
|
60
|
+
const minutes = Math.floor(seconds / 60);
|
|
61
|
+
const hours = Math.floor(minutes / 60);
|
|
62
|
+
if (hours > 0)
|
|
63
|
+
return `${hours}h ${minutes % 60}m`;
|
|
64
|
+
if (minutes > 0)
|
|
65
|
+
return `${minutes}m ${seconds % 60}s`;
|
|
66
|
+
return `${seconds}s`;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Format trigger type for display.
|
|
70
|
+
*/
|
|
71
|
+
export function formatTriggerType(triggerType) {
|
|
72
|
+
if (triggerType === 'manual')
|
|
73
|
+
return colors.info('manual');
|
|
74
|
+
if (triggerType === 'scheduled')
|
|
75
|
+
return colors.accent('scheduled');
|
|
76
|
+
return triggerType;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Format execution row for history table.
|
|
80
|
+
*/
|
|
81
|
+
export function formatExecutionRow(execution) {
|
|
82
|
+
return [
|
|
83
|
+
execution.id.substring(0, 8),
|
|
84
|
+
formatExecutionStatus(execution.status),
|
|
85
|
+
formatTriggerType(execution.triggerType),
|
|
86
|
+
execution.durationMs != null ? formatDuration(execution.durationMs) : colors.muted('-'),
|
|
87
|
+
formatTimestamp(new Date(execution.startedAt)),
|
|
88
|
+
];
|
|
89
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow History Command
|
|
3
|
+
*
|
|
4
|
+
* View execution history for a workflow.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* shep workflow history <name>
|
|
8
|
+
* shep workflow history <name> --limit 50
|
|
9
|
+
*/
|
|
10
|
+
import { Command } from 'commander';
|
|
11
|
+
export declare function createHistoryCommand(): Command;
|
|
12
|
+
//# sourceMappingURL=history.command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history.command.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/workflow/history.command.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,oBAAoB,IAAI,OAAO,CAgC9C"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow History Command
|
|
3
|
+
*
|
|
4
|
+
* View execution history for a workflow.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* shep workflow history <name>
|
|
8
|
+
* shep workflow history <name> --limit 50
|
|
9
|
+
*/
|
|
10
|
+
import { Command } from 'commander';
|
|
11
|
+
import { container } from '../../../../../packages/core/src/infrastructure/di/container.js';
|
|
12
|
+
import { GetWorkflowHistoryUseCase } from '../../../../../packages/core/src/application/use-cases/workflows/get-workflow-history.use-case.js';
|
|
13
|
+
import { messages, renderListView } from '../../ui/index.js';
|
|
14
|
+
import { formatExecutionRow } from './format-helpers.js';
|
|
15
|
+
export function createHistoryCommand() {
|
|
16
|
+
return new Command('history')
|
|
17
|
+
.description('View workflow execution history')
|
|
18
|
+
.argument('<name>', 'Workflow name or ID')
|
|
19
|
+
.option('-l, --limit <number>', 'Max results (default: 20)', parseInt)
|
|
20
|
+
.option('-r, --repo <path>', 'Repository path (defaults to current directory)')
|
|
21
|
+
.action(async (nameOrId, options) => {
|
|
22
|
+
try {
|
|
23
|
+
const repositoryPath = options.repo ?? process.cwd();
|
|
24
|
+
const useCase = container.resolve(GetWorkflowHistoryUseCase);
|
|
25
|
+
const executions = await useCase.execute(nameOrId, repositoryPath, options.limit);
|
|
26
|
+
const rows = executions.map(formatExecutionRow);
|
|
27
|
+
renderListView({
|
|
28
|
+
title: `Execution History: ${nameOrId}`,
|
|
29
|
+
columns: [
|
|
30
|
+
{ label: 'ID', width: 10 },
|
|
31
|
+
{ label: 'Status', width: 16 },
|
|
32
|
+
{ label: 'Trigger', width: 12 },
|
|
33
|
+
{ label: 'Duration', width: 10 },
|
|
34
|
+
{ label: 'Started', width: 22 },
|
|
35
|
+
],
|
|
36
|
+
rows,
|
|
37
|
+
emptyMessage: 'No execution history found',
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
42
|
+
messages.error('Failed to get workflow history', err);
|
|
43
|
+
process.exitCode = 1;
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow Command
|
|
3
|
+
*
|
|
4
|
+
* Top-level workflow command with subcommands for managing scheduled workflows.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* shep workflow [subcommand]
|
|
8
|
+
*
|
|
9
|
+
* Subcommands:
|
|
10
|
+
* shep workflow create <name> Create a new workflow
|
|
11
|
+
* shep workflow list List all workflows
|
|
12
|
+
* shep workflow show <name> Show workflow details
|
|
13
|
+
* shep workflow run <name> Manually trigger a workflow
|
|
14
|
+
* shep workflow schedule <name> Set a cron schedule
|
|
15
|
+
* shep workflow enable <name> Enable a workflow's schedule
|
|
16
|
+
* shep workflow disable <name> Disable a workflow's schedule
|
|
17
|
+
* shep workflow history <name> View execution history
|
|
18
|
+
* shep workflow update <name> Update a workflow
|
|
19
|
+
* shep workflow delete <name> Delete a workflow
|
|
20
|
+
*/
|
|
21
|
+
import { Command } from 'commander';
|
|
22
|
+
/**
|
|
23
|
+
* Create the workflow command with all subcommands.
|
|
24
|
+
*/
|
|
25
|
+
export declare function createWorkflowCommand(): Command;
|
|
26
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/workflow/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAa/C"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow Command
|
|
3
|
+
*
|
|
4
|
+
* Top-level workflow command with subcommands for managing scheduled workflows.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* shep workflow [subcommand]
|
|
8
|
+
*
|
|
9
|
+
* Subcommands:
|
|
10
|
+
* shep workflow create <name> Create a new workflow
|
|
11
|
+
* shep workflow list List all workflows
|
|
12
|
+
* shep workflow show <name> Show workflow details
|
|
13
|
+
* shep workflow run <name> Manually trigger a workflow
|
|
14
|
+
* shep workflow schedule <name> Set a cron schedule
|
|
15
|
+
* shep workflow enable <name> Enable a workflow's schedule
|
|
16
|
+
* shep workflow disable <name> Disable a workflow's schedule
|
|
17
|
+
* shep workflow history <name> View execution history
|
|
18
|
+
* shep workflow update <name> Update a workflow
|
|
19
|
+
* shep workflow delete <name> Delete a workflow
|
|
20
|
+
*/
|
|
21
|
+
import { Command } from 'commander';
|
|
22
|
+
import { createCreateCommand } from './create.command.js';
|
|
23
|
+
import { createListCommand } from './list.command.js';
|
|
24
|
+
import { createShowCommand } from './show.command.js';
|
|
25
|
+
import { createRunCommand } from './run.command.js';
|
|
26
|
+
import { createScheduleCommand } from './schedule.command.js';
|
|
27
|
+
import { createEnableCommand } from './enable.command.js';
|
|
28
|
+
import { createDisableCommand } from './disable.command.js';
|
|
29
|
+
import { createHistoryCommand } from './history.command.js';
|
|
30
|
+
import { createUpdateCommand } from './update.command.js';
|
|
31
|
+
import { createDeleteCommand } from './delete.command.js';
|
|
32
|
+
/**
|
|
33
|
+
* Create the workflow command with all subcommands.
|
|
34
|
+
*/
|
|
35
|
+
export function createWorkflowCommand() {
|
|
36
|
+
return new Command('workflow')
|
|
37
|
+
.description('Manage scheduled workflows')
|
|
38
|
+
.addCommand(createCreateCommand())
|
|
39
|
+
.addCommand(createListCommand())
|
|
40
|
+
.addCommand(createShowCommand())
|
|
41
|
+
.addCommand(createRunCommand())
|
|
42
|
+
.addCommand(createScheduleCommand())
|
|
43
|
+
.addCommand(createEnableCommand())
|
|
44
|
+
.addCommand(createDisableCommand())
|
|
45
|
+
.addCommand(createHistoryCommand())
|
|
46
|
+
.addCommand(createUpdateCommand())
|
|
47
|
+
.addCommand(createDeleteCommand());
|
|
48
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow List Command
|
|
3
|
+
*
|
|
4
|
+
* List all workflows with their schedule, status, last run, and enabled state.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* shep workflow list
|
|
8
|
+
*/
|
|
9
|
+
import { Command } from 'commander';
|
|
10
|
+
export declare function createListCommand(): Command;
|
|
11
|
+
//# sourceMappingURL=list.command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.command.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/workflow/list.command.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,iBAAiB,IAAI,OAAO,CAwC3C"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow List Command
|
|
3
|
+
*
|
|
4
|
+
* List all workflows with their schedule, status, last run, and enabled state.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* shep workflow list
|
|
8
|
+
*/
|
|
9
|
+
import { Command } from 'commander';
|
|
10
|
+
import { container } from '../../../../../packages/core/src/infrastructure/di/container.js';
|
|
11
|
+
import { ListWorkflowsUseCase } from '../../../../../packages/core/src/application/use-cases/workflows/list-workflows.use-case.js';
|
|
12
|
+
import { colors, symbols, messages, renderListView } from '../../ui/index.js';
|
|
13
|
+
import { formatWorkflowStatus, formatRelativeTime } from './format-helpers.js';
|
|
14
|
+
export function createListCommand() {
|
|
15
|
+
return new Command('list')
|
|
16
|
+
.alias('ls')
|
|
17
|
+
.description('List all workflows')
|
|
18
|
+
.option('-r, --repo <path>', 'Repository path (defaults to current directory)')
|
|
19
|
+
.action(async (options) => {
|
|
20
|
+
try {
|
|
21
|
+
const repositoryPath = options.repo ?? process.cwd();
|
|
22
|
+
const useCase = container.resolve(ListWorkflowsUseCase);
|
|
23
|
+
const workflows = await useCase.execute({ repositoryPath });
|
|
24
|
+
const rows = workflows.map((w) => [
|
|
25
|
+
w.name,
|
|
26
|
+
w.cronExpression ?? colors.muted('-'),
|
|
27
|
+
formatWorkflowStatus(w),
|
|
28
|
+
w.lastRunAt ? formatRelativeTime(new Date(w.lastRunAt)) : colors.muted('never'),
|
|
29
|
+
w.enabled
|
|
30
|
+
? `${colors.success(symbols.dot)} ${colors.success('on')}`
|
|
31
|
+
: `${colors.muted(symbols.dotEmpty)} ${colors.muted('off')}`,
|
|
32
|
+
]);
|
|
33
|
+
renderListView({
|
|
34
|
+
title: 'Workflows',
|
|
35
|
+
columns: [
|
|
36
|
+
{ label: 'Name', width: 22 },
|
|
37
|
+
{ label: 'Schedule', width: 20 },
|
|
38
|
+
{ label: 'Status', width: 16 },
|
|
39
|
+
{ label: 'Last Run', width: 14 },
|
|
40
|
+
{ label: 'Enabled', width: 10 },
|
|
41
|
+
],
|
|
42
|
+
rows,
|
|
43
|
+
emptyMessage: 'No workflows found. Create one with: shep workflow create <name> --prompt <prompt>',
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
48
|
+
messages.error('Failed to list workflows', err);
|
|
49
|
+
process.exitCode = 1;
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow Run Command
|
|
3
|
+
*
|
|
4
|
+
* Manually trigger a workflow execution.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* shep workflow run <name>
|
|
8
|
+
*/
|
|
9
|
+
import { Command } from 'commander';
|
|
10
|
+
export declare function createRunCommand(): Command;
|
|
11
|
+
//# sourceMappingURL=run.command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.command.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/workflow/run.command.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,gBAAgB,IAAI,OAAO,CA0B1C"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow Run Command
|
|
3
|
+
*
|
|
4
|
+
* Manually trigger a workflow execution.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* shep workflow run <name>
|
|
8
|
+
*/
|
|
9
|
+
import { Command } from 'commander';
|
|
10
|
+
import { container } from '../../../../../packages/core/src/infrastructure/di/container.js';
|
|
11
|
+
import { RunWorkflowUseCase } from '../../../../../packages/core/src/application/use-cases/workflows/run-workflow.use-case.js';
|
|
12
|
+
import { colors, messages } from '../../ui/index.js';
|
|
13
|
+
export function createRunCommand() {
|
|
14
|
+
return new Command('run')
|
|
15
|
+
.description('Manually trigger a workflow')
|
|
16
|
+
.argument('<name>', 'Workflow name or ID')
|
|
17
|
+
.option('-r, --repo <path>', 'Repository path (defaults to current directory)')
|
|
18
|
+
.action(async (nameOrId, options) => {
|
|
19
|
+
try {
|
|
20
|
+
const repositoryPath = options.repo ?? process.cwd();
|
|
21
|
+
const useCase = container.resolve(RunWorkflowUseCase);
|
|
22
|
+
const execution = await useCase.execute(nameOrId, repositoryPath);
|
|
23
|
+
messages.newline();
|
|
24
|
+
messages.success('Workflow execution queued');
|
|
25
|
+
console.log(` ${colors.muted('Execution ID:')} ${execution.id.substring(0, 8)}`);
|
|
26
|
+
console.log(` ${colors.muted('Status:')} ${colors.info('queued')}`);
|
|
27
|
+
console.log(` ${colors.muted('Trigger:')} ${colors.info('manual')}`);
|
|
28
|
+
messages.newline();
|
|
29
|
+
messages.info(`View execution history: ${colors.accent(`shep workflow history ${nameOrId}`)}`);
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
33
|
+
messages.error('Failed to run workflow', err);
|
|
34
|
+
process.exitCode = 1;
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow Schedule Command
|
|
3
|
+
*
|
|
4
|
+
* Set, update, or remove a cron schedule on a workflow.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* shep workflow schedule <name> --cron "0 9 * * MON"
|
|
8
|
+
* shep workflow schedule <name> --cron "0 9 * * MON" --timezone "America/New_York"
|
|
9
|
+
* shep workflow schedule <name> --remove
|
|
10
|
+
*/
|
|
11
|
+
import { Command } from 'commander';
|
|
12
|
+
export declare function createScheduleCommand(): Command;
|
|
13
|
+
//# sourceMappingURL=schedule.command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedule.command.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/workflow/schedule.command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,qBAAqB,IAAI,OAAO,CAmF/C"}
|