agent-pipeline 0.1.0
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/CLAUDE.md +134 -0
- package/README.md +209 -0
- package/dist/analytics/pipeline-analytics.d.ts +19 -0
- package/dist/analytics/pipeline-analytics.d.ts.map +1 -0
- package/dist/analytics/pipeline-analytics.js +155 -0
- package/dist/analytics/pipeline-analytics.js.map +1 -0
- package/dist/analytics/types.d.ts +31 -0
- package/dist/analytics/types.d.ts.map +1 -0
- package/dist/analytics/types.js +2 -0
- package/dist/analytics/types.js.map +1 -0
- package/dist/cli/commands/agent/info.d.ts +2 -0
- package/dist/cli/commands/agent/info.d.ts.map +1 -0
- package/dist/cli/commands/agent/info.js +62 -0
- package/dist/cli/commands/agent/info.js.map +1 -0
- package/dist/cli/commands/agent/list.d.ts +2 -0
- package/dist/cli/commands/agent/list.d.ts.map +1 -0
- package/dist/cli/commands/agent/list.js +57 -0
- package/dist/cli/commands/agent/list.js.map +1 -0
- package/dist/cli/commands/agent/pull.d.ts +5 -0
- package/dist/cli/commands/agent/pull.d.ts.map +1 -0
- package/dist/cli/commands/agent/pull.js +71 -0
- package/dist/cli/commands/agent/pull.js.map +1 -0
- package/dist/cli/commands/analytics.d.ts +6 -0
- package/dist/cli/commands/analytics.d.ts.map +1 -0
- package/dist/cli/commands/analytics.js +101 -0
- package/dist/cli/commands/analytics.js.map +1 -0
- package/dist/cli/commands/cleanup.d.ts +7 -0
- package/dist/cli/commands/cleanup.d.ts.map +1 -0
- package/dist/cli/commands/cleanup.js +76 -0
- package/dist/cli/commands/cleanup.js.map +1 -0
- package/dist/cli/commands/history.d.ts +7 -0
- package/dist/cli/commands/history.d.ts.map +1 -0
- package/dist/cli/commands/history.js +173 -0
- package/dist/cli/commands/history.js.map +1 -0
- package/dist/cli/commands/init.d.ts +7 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +158 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/install.d.ts +2 -0
- package/dist/cli/commands/install.d.ts.map +1 -0
- package/dist/cli/commands/install.js +15 -0
- package/dist/cli/commands/install.js.map +1 -0
- package/dist/cli/commands/list.d.ts +2 -0
- package/dist/cli/commands/list.d.ts.map +1 -0
- package/dist/cli/commands/list.js +13 -0
- package/dist/cli/commands/list.js.map +1 -0
- package/dist/cli/commands/pipeline/clone.d.ts +2 -0
- package/dist/cli/commands/pipeline/clone.d.ts.map +1 -0
- package/dist/cli/commands/pipeline/clone.js +42 -0
- package/dist/cli/commands/pipeline/clone.js.map +1 -0
- package/dist/cli/commands/pipeline/config.d.ts +2 -0
- package/dist/cli/commands/pipeline/config.d.ts.map +1 -0
- package/dist/cli/commands/pipeline/config.js +23 -0
- package/dist/cli/commands/pipeline/config.js.map +1 -0
- package/dist/cli/commands/pipeline/create.d.ts +2 -0
- package/dist/cli/commands/pipeline/create.d.ts.map +1 -0
- package/dist/cli/commands/pipeline/create.js +86 -0
- package/dist/cli/commands/pipeline/create.js.map +1 -0
- package/dist/cli/commands/pipeline/delete.d.ts +6 -0
- package/dist/cli/commands/pipeline/delete.d.ts.map +1 -0
- package/dist/cli/commands/pipeline/delete.js +60 -0
- package/dist/cli/commands/pipeline/delete.js.map +1 -0
- package/dist/cli/commands/pipeline/edit.d.ts +2 -0
- package/dist/cli/commands/pipeline/edit.d.ts.map +1 -0
- package/dist/cli/commands/pipeline/edit.js +50 -0
- package/dist/cli/commands/pipeline/edit.js.map +1 -0
- package/dist/cli/commands/pipeline/export.d.ts +6 -0
- package/dist/cli/commands/pipeline/export.d.ts.map +1 -0
- package/dist/cli/commands/pipeline/export.js +48 -0
- package/dist/cli/commands/pipeline/export.js.map +1 -0
- package/dist/cli/commands/pipeline/import.d.ts +2 -0
- package/dist/cli/commands/pipeline/import.d.ts.map +1 -0
- package/dist/cli/commands/pipeline/import.js +59 -0
- package/dist/cli/commands/pipeline/import.js.map +1 -0
- package/dist/cli/commands/pipeline/validate.d.ts +2 -0
- package/dist/cli/commands/pipeline/validate.d.ts.map +1 -0
- package/dist/cli/commands/pipeline/validate.js +28 -0
- package/dist/cli/commands/pipeline/validate.js.map +1 -0
- package/dist/cli/commands/rollback.d.ts +6 -0
- package/dist/cli/commands/rollback.d.ts.map +1 -0
- package/dist/cli/commands/rollback.js +49 -0
- package/dist/cli/commands/rollback.js.map +1 -0
- package/dist/cli/commands/run.d.ts +15 -0
- package/dist/cli/commands/run.d.ts.map +1 -0
- package/dist/cli/commands/run.js +61 -0
- package/dist/cli/commands/run.js.map +1 -0
- package/dist/cli/commands/status.d.ts +2 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +52 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/test.d.ts +5 -0
- package/dist/cli/commands/test.d.ts.map +1 -0
- package/dist/cli/commands/test.js +18 -0
- package/dist/cli/commands/test.js.map +1 -0
- package/dist/cli/commands/uninstall.d.ts +2 -0
- package/dist/cli/commands/uninstall.d.ts.map +1 -0
- package/dist/cli/commands/uninstall.js +6 -0
- package/dist/cli/commands/uninstall.js.map +1 -0
- package/dist/cli/hooks.d.ts +8 -0
- package/dist/cli/hooks.d.ts.map +1 -0
- package/dist/cli/hooks.js +98 -0
- package/dist/cli/hooks.js.map +1 -0
- package/dist/cli/templates/agents/cleanup-reporter.md +107 -0
- package/dist/cli/templates/agents/code-reducer.md +51 -0
- package/dist/cli/templates/agents/code-reviewer.md +34 -0
- package/dist/cli/templates/agents/context-reducer.md +94 -0
- package/dist/cli/templates/agents/dependency-auditor.md +127 -0
- package/dist/cli/templates/agents/detective-empath.md +26 -0
- package/dist/cli/templates/agents/detective-linguist.md +26 -0
- package/dist/cli/templates/agents/detective-logician.md +26 -0
- package/dist/cli/templates/agents/detective-skeptic.md +26 -0
- package/dist/cli/templates/agents/detective-statistician.md +26 -0
- package/dist/cli/templates/agents/doc-updater.md +30 -0
- package/dist/cli/templates/agents/judge.md +27 -0
- package/dist/cli/templates/agents/memory-updater.md +72 -0
- package/dist/cli/templates/agents/quality-checker.md +32 -0
- package/dist/cli/templates/agents/security-auditor.md +32 -0
- package/dist/cli/templates/agents/storyteller.md +26 -0
- package/dist/cli/templates/agents/summary.md +32 -0
- package/dist/cli/templates/agents/synthesizer.md +26 -0
- package/dist/cli/templates/pipelines/large-pipeline-example.yml +178 -0
- package/dist/cli/templates/pipelines/post-commit-example.yml +67 -0
- package/dist/cli/templates/pipelines/post-merge-example.yml +78 -0
- package/dist/cli/templates/pipelines/pre-commit-example.yml +41 -0
- package/dist/cli/templates/pipelines/pre-push-example.yml +51 -0
- package/dist/cli/templates/pipelines/test-pipeline.yml +90 -0
- package/dist/cli/utils/agent-importer.d.ts +21 -0
- package/dist/cli/utils/agent-importer.d.ts.map +1 -0
- package/dist/cli/utils/agent-importer.js +150 -0
- package/dist/cli/utils/agent-importer.js.map +1 -0
- package/dist/cli/utils/interactive-prompts.d.ts +10 -0
- package/dist/cli/utils/interactive-prompts.d.ts.map +1 -0
- package/dist/cli/utils/interactive-prompts.js +75 -0
- package/dist/cli/utils/interactive-prompts.js.map +1 -0
- package/dist/config/pipeline-loader.d.ts +14 -0
- package/dist/config/pipeline-loader.d.ts.map +1 -0
- package/dist/config/pipeline-loader.js +71 -0
- package/dist/config/pipeline-loader.js.map +1 -0
- package/dist/config/project-config-loader.d.ts +11 -0
- package/dist/config/project-config-loader.d.ts.map +1 -0
- package/dist/config/project-config-loader.js +100 -0
- package/dist/config/project-config-loader.js.map +1 -0
- package/dist/config/schema.d.ts +165 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +2 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/core/agent-query-runner.d.ts +25 -0
- package/dist/core/agent-query-runner.d.ts.map +1 -0
- package/dist/core/agent-query-runner.js +76 -0
- package/dist/core/agent-query-runner.js.map +1 -0
- package/dist/core/agent-runtime-registry.d.ts +11 -0
- package/dist/core/agent-runtime-registry.d.ts.map +1 -0
- package/dist/core/agent-runtime-registry.js +32 -0
- package/dist/core/agent-runtime-registry.js.map +1 -0
- package/dist/core/agent-runtimes/claude-code-headless-runtime.d.ts +16 -0
- package/dist/core/agent-runtimes/claude-code-headless-runtime.d.ts.map +1 -0
- package/dist/core/agent-runtimes/claude-code-headless-runtime.js +301 -0
- package/dist/core/agent-runtimes/claude-code-headless-runtime.js.map +1 -0
- package/dist/core/agent-runtimes/claude-sdk-runtime.d.ts +15 -0
- package/dist/core/agent-runtimes/claude-sdk-runtime.d.ts.map +1 -0
- package/dist/core/agent-runtimes/claude-sdk-runtime.js +92 -0
- package/dist/core/agent-runtimes/claude-sdk-runtime.js.map +1 -0
- package/dist/core/branch-manager.d.ts +15 -0
- package/dist/core/branch-manager.d.ts.map +1 -0
- package/dist/core/branch-manager.js +90 -0
- package/dist/core/branch-manager.js.map +1 -0
- package/dist/core/condition-evaluator.d.ts +16 -0
- package/dist/core/condition-evaluator.d.ts.map +1 -0
- package/dist/core/condition-evaluator.js +121 -0
- package/dist/core/condition-evaluator.js.map +1 -0
- package/dist/core/context-reducer.d.ts +15 -0
- package/dist/core/context-reducer.d.ts.map +1 -0
- package/dist/core/context-reducer.js +224 -0
- package/dist/core/context-reducer.js.map +1 -0
- package/dist/core/dag-planner.d.ts +13 -0
- package/dist/core/dag-planner.d.ts.map +1 -0
- package/dist/core/dag-planner.js +233 -0
- package/dist/core/dag-planner.js.map +1 -0
- package/dist/core/git-manager.d.ts +14 -0
- package/dist/core/git-manager.d.ts.map +1 -0
- package/dist/core/git-manager.js +70 -0
- package/dist/core/git-manager.js.map +1 -0
- package/dist/core/group-execution-orchestrator.d.ts +34 -0
- package/dist/core/group-execution-orchestrator.d.ts.map +1 -0
- package/dist/core/group-execution-orchestrator.js +238 -0
- package/dist/core/group-execution-orchestrator.js.map +1 -0
- package/dist/core/loop-state-manager.d.ts +29 -0
- package/dist/core/loop-state-manager.d.ts.map +1 -0
- package/dist/core/loop-state-manager.js +78 -0
- package/dist/core/loop-state-manager.js.map +1 -0
- package/dist/core/output-storage-manager.d.ts +14 -0
- package/dist/core/output-storage-manager.d.ts.map +1 -0
- package/dist/core/output-storage-manager.js +68 -0
- package/dist/core/output-storage-manager.js.map +1 -0
- package/dist/core/output-tool-builder.d.ts +6 -0
- package/dist/core/output-tool-builder.d.ts.map +1 -0
- package/dist/core/output-tool-builder.js +50 -0
- package/dist/core/output-tool-builder.js.map +1 -0
- package/dist/core/parallel-executor.d.ts +21 -0
- package/dist/core/parallel-executor.d.ts.map +1 -0
- package/dist/core/parallel-executor.js +93 -0
- package/dist/core/parallel-executor.js.map +1 -0
- package/dist/core/pipeline-finalizer.d.ts +24 -0
- package/dist/core/pipeline-finalizer.d.ts.map +1 -0
- package/dist/core/pipeline-finalizer.js +103 -0
- package/dist/core/pipeline-finalizer.js.map +1 -0
- package/dist/core/pipeline-initializer.d.ts +36 -0
- package/dist/core/pipeline-initializer.d.ts.map +1 -0
- package/dist/core/pipeline-initializer.js +105 -0
- package/dist/core/pipeline-initializer.js.map +1 -0
- package/dist/core/pipeline-runner.d.ts +36 -0
- package/dist/core/pipeline-runner.d.ts.map +1 -0
- package/dist/core/pipeline-runner.js +326 -0
- package/dist/core/pipeline-runner.js.map +1 -0
- package/dist/core/pr-creator.d.ts +23 -0
- package/dist/core/pr-creator.d.ts.map +1 -0
- package/dist/core/pr-creator.js +138 -0
- package/dist/core/pr-creator.js.map +1 -0
- package/dist/core/retry-handler.d.ts +15 -0
- package/dist/core/retry-handler.d.ts.map +1 -0
- package/dist/core/retry-handler.js +95 -0
- package/dist/core/retry-handler.js.map +1 -0
- package/dist/core/stage-executor.d.ts +27 -0
- package/dist/core/stage-executor.d.ts.map +1 -0
- package/dist/core/stage-executor.js +365 -0
- package/dist/core/stage-executor.js.map +1 -0
- package/dist/core/state-manager.d.ts +10 -0
- package/dist/core/state-manager.d.ts.map +1 -0
- package/dist/core/state-manager.js +61 -0
- package/dist/core/state-manager.js.map +1 -0
- package/dist/core/types/agent-runtime.d.ts +51 -0
- package/dist/core/types/agent-runtime.d.ts.map +1 -0
- package/dist/core/types/agent-runtime.js +2 -0
- package/dist/core/types/agent-runtime.js.map +1 -0
- package/dist/core/types/execution-graph.d.ts +29 -0
- package/dist/core/types/execution-graph.d.ts.map +1 -0
- package/dist/core/types/execution-graph.js +2 -0
- package/dist/core/types/execution-graph.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +400 -0
- package/dist/index.js.map +1 -0
- package/dist/notifications/notification-manager.d.ts +12 -0
- package/dist/notifications/notification-manager.d.ts.map +1 -0
- package/dist/notifications/notification-manager.js +74 -0
- package/dist/notifications/notification-manager.js.map +1 -0
- package/dist/notifications/notifiers/base-notifier.d.ts +9 -0
- package/dist/notifications/notifiers/base-notifier.d.ts.map +1 -0
- package/dist/notifications/notifiers/base-notifier.js +27 -0
- package/dist/notifications/notifiers/base-notifier.js.map +1 -0
- package/dist/notifications/notifiers/local-notifier.d.ts +11 -0
- package/dist/notifications/notifiers/local-notifier.d.ts.map +1 -0
- package/dist/notifications/notifiers/local-notifier.js +91 -0
- package/dist/notifications/notifiers/local-notifier.js.map +1 -0
- package/dist/notifications/notifiers/slack-notifier.d.ts +13 -0
- package/dist/notifications/notifiers/slack-notifier.d.ts.map +1 -0
- package/dist/notifications/notifiers/slack-notifier.js +209 -0
- package/dist/notifications/notifiers/slack-notifier.js.map +1 -0
- package/dist/notifications/types.d.ts +34 -0
- package/dist/notifications/types.d.ts.map +1 -0
- package/dist/notifications/types.js +2 -0
- package/dist/notifications/types.js.map +1 -0
- package/dist/ui/components/execution-group.d.ts +10 -0
- package/dist/ui/components/execution-group.d.ts.map +1 -0
- package/dist/ui/components/execution-group.js +19 -0
- package/dist/ui/components/execution-group.js.map +1 -0
- package/dist/ui/components/stage-row.d.ts +10 -0
- package/dist/ui/components/stage-row.d.ts.map +1 -0
- package/dist/ui/components/stage-row.js +69 -0
- package/dist/ui/components/stage-row.js.map +1 -0
- package/dist/ui/components/status-badge.d.ts +7 -0
- package/dist/ui/components/status-badge.d.ts.map +1 -0
- package/dist/ui/components/status-badge.js +18 -0
- package/dist/ui/components/status-badge.js.map +1 -0
- package/dist/ui/components/summary-line.d.ts +9 -0
- package/dist/ui/components/summary-line.d.ts.map +1 -0
- package/dist/ui/components/summary-line.js +13 -0
- package/dist/ui/components/summary-line.js.map +1 -0
- package/dist/ui/pipeline-ui.d.ts +8 -0
- package/dist/ui/pipeline-ui.d.ts.map +1 -0
- package/dist/ui/pipeline-ui.js +82 -0
- package/dist/ui/pipeline-ui.js.map +1 -0
- package/dist/utils/error-factory.d.ts +21 -0
- package/dist/utils/error-factory.d.ts.map +1 -0
- package/dist/utils/error-factory.js +74 -0
- package/dist/utils/error-factory.js.map +1 -0
- package/dist/utils/errors.d.ts +11 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +21 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/gh-cli-checker.d.ts +6 -0
- package/dist/utils/gh-cli-checker.d.ts.map +1 -0
- package/dist/utils/gh-cli-checker.js +42 -0
- package/dist/utils/gh-cli-checker.js.map +1 -0
- package/dist/utils/logger.d.ts +16 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +39 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/pipeline-formatter.d.ts +10 -0
- package/dist/utils/pipeline-formatter.d.ts.map +1 -0
- package/dist/utils/pipeline-formatter.js +92 -0
- package/dist/utils/pipeline-formatter.js.map +1 -0
- package/dist/utils/token-estimator.d.ts +15 -0
- package/dist/utils/token-estimator.d.ts.map +1 -0
- package/dist/utils/token-estimator.js +46 -0
- package/dist/utils/token-estimator.js.map +1 -0
- package/dist/validators/pipeline-validator.d.ts +31 -0
- package/dist/validators/pipeline-validator.d.ts.map +1 -0
- package/dist/validators/pipeline-validator.js +540 -0
- package/dist/validators/pipeline-validator.js.map +1 -0
- package/license +21 -0
- package/package.json +90 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../../../src/cli/commands/pipeline/export.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAOpE,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,QAAgB,EAChB,YAAoB,EACpB,UAAyB,EAAE;IAE3B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAE3D,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAGpC,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAC1B,MAAM,IAAI,uBAAuB,CAAC;YAElC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBACnD,IAAI,CAAC;oBACH,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;oBAC3D,MAAM,IAAI,YAAY,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,KAAK,KAAK,CAAC;oBACtD,MAAM,IAAI,eAAe,CAAC;oBAC1B,MAAM,IAAI,YAAY,CAAC;oBACvB,MAAM,IAAI,WAAW,CAAC;gBACxB,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,IAAI,YAAY,KAAK,CAAC,IAAI,2BAA2B,KAAK,CAAC,KAAK,MAAM,CAAC;gBAC/E,CAAC;YACH,CAAC;QACH,CAAC;QAGD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,2BAA2B,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAEzD,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,MAAM,CAAC,MAAM,iBAAiB,CAAC,CAAC;YACrE,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;YAC3D,OAAO,CAAC,KAAK,CAAC,eAAe,YAAY,aAAa,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,gCAAiC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/pipeline/import.ts"],"names":[],"mappings":"AAQA,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAwEf"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import * as fs from 'fs/promises';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import * as YAML from 'yaml';
|
|
4
|
+
import { PipelineValidator } from '../../../validators/pipeline-validator.js';
|
|
5
|
+
import { InteractivePrompts } from '../../utils/interactive-prompts.js';
|
|
6
|
+
export async function importPipelineCommand(repoPath, source) {
|
|
7
|
+
try {
|
|
8
|
+
console.log('\n๐ฅ Importing pipeline...\n');
|
|
9
|
+
let content;
|
|
10
|
+
if (source.startsWith('http://') || source.startsWith('https://')) {
|
|
11
|
+
console.log(` Fetching from: ${source}`);
|
|
12
|
+
const response = await fetch(source);
|
|
13
|
+
if (!response.ok) {
|
|
14
|
+
throw new Error(`HTTP ${response.status}: ${response.statusText}`);
|
|
15
|
+
}
|
|
16
|
+
content = await response.text();
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
console.log(` Reading from: ${source}`);
|
|
20
|
+
content = await fs.readFile(source, 'utf-8');
|
|
21
|
+
}
|
|
22
|
+
const config = YAML.parse(content);
|
|
23
|
+
if (!config.name) {
|
|
24
|
+
console.error('โ Invalid pipeline: missing name field');
|
|
25
|
+
process.exit(1);
|
|
26
|
+
}
|
|
27
|
+
console.log(` Pipeline name: ${config.name}\n`);
|
|
28
|
+
console.log('๐ Validating pipeline...\n');
|
|
29
|
+
const isValid = await PipelineValidator.validateAndReport(config, repoPath);
|
|
30
|
+
if (!isValid) {
|
|
31
|
+
console.error('โ Pipeline validation failed');
|
|
32
|
+
process.exit(1);
|
|
33
|
+
}
|
|
34
|
+
const pipelinesDir = path.join(repoPath, '.agent-pipeline', 'pipelines');
|
|
35
|
+
const targetPath = path.join(pipelinesDir, `${config.name}.yml`);
|
|
36
|
+
try {
|
|
37
|
+
await fs.access(targetPath);
|
|
38
|
+
const overwrite = await InteractivePrompts.confirm(`\nโ ๏ธ Pipeline "${config.name}" already exists. Overwrite?`, false);
|
|
39
|
+
if (!overwrite) {
|
|
40
|
+
console.log('Cancelled.');
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
}
|
|
46
|
+
await fs.mkdir(pipelinesDir, { recursive: true });
|
|
47
|
+
await fs.writeFile(targetPath, YAML.stringify(config), 'utf-8');
|
|
48
|
+
console.log(`\nโ
Pipeline imported successfully!`);
|
|
49
|
+
console.log(` Location: .agent-pipeline/pipelines/${config.name}.yml`);
|
|
50
|
+
console.log(`\n๐ก Next steps:`);
|
|
51
|
+
console.log(` - Review configuration: agent-pipeline config ${config.name}`);
|
|
52
|
+
console.log(` - Run the pipeline: agent-pipeline run ${config.name}\n`);
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
console.error(`โ Failed to import pipeline: ${error.message}`);
|
|
56
|
+
process.exit(1);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=import.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import.js","sourceRoot":"","sources":["../../../../src/cli/commands/pipeline/import.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/pipeline/validate.ts"],"names":[],"mappings":"AAKA,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAwBf"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { PipelineLoader } from '../../../config/pipeline-loader.js';
|
|
2
|
+
import { PipelineValidator } from '../../../validators/pipeline-validator.js';
|
|
3
|
+
export async function validatePipelineCommand(repoPath, pipelineName) {
|
|
4
|
+
try {
|
|
5
|
+
console.log(`\n๐ Validating pipeline: ${pipelineName}\n`);
|
|
6
|
+
const loader = new PipelineLoader(repoPath);
|
|
7
|
+
const { config } = await loader.loadPipeline(pipelineName);
|
|
8
|
+
const isValid = await PipelineValidator.validateAndReport(config, repoPath);
|
|
9
|
+
if (isValid) {
|
|
10
|
+
console.log('\nโ
Pipeline is valid!\n');
|
|
11
|
+
process.exit(0);
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
console.log('\nโ Pipeline has validation errors\n');
|
|
15
|
+
process.exit(1);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
if (error.message?.includes('Pipeline not found')) {
|
|
20
|
+
console.error(`โ Pipeline "${pipelineName}" not found`);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
console.error(`โ Validation failed: ${error.message}`);
|
|
24
|
+
}
|
|
25
|
+
process.exit(1);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=validate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../../src/cli/commands/pipeline/validate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAE9E,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,QAAgB,EAChB,YAAoB;IAEpB,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,6BAA6B,YAAY,IAAI,CAAC,CAAC;QAE3D,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAE3D,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAE5E,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;YACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;YAC3D,OAAO,CAAC,KAAK,CAAC,eAAe,YAAY,aAAa,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,wBAAyB,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rollback.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/rollback.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CA+Df"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import * as readline from 'readline';
|
|
2
|
+
import { GitManager } from '../../core/git-manager.js';
|
|
3
|
+
import { StateManager } from '../../core/state-manager.js';
|
|
4
|
+
export async function rollbackCommand(repoPath, options) {
|
|
5
|
+
const gitManager = new GitManager(repoPath);
|
|
6
|
+
const stateManager = new StateManager(repoPath);
|
|
7
|
+
const state = options.runId
|
|
8
|
+
? await stateManager.loadState(options.runId)
|
|
9
|
+
: await stateManager.getLatestRun();
|
|
10
|
+
if (!state) {
|
|
11
|
+
console.error('โ No pipeline run found to rollback');
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
console.log(`\n๐ Rolling back pipeline: ${state.pipelineConfig.name}`);
|
|
15
|
+
console.log(` Run ID: ${state.runId}`);
|
|
16
|
+
let targetCommit;
|
|
17
|
+
if (options.stages) {
|
|
18
|
+
const successfulStages = state.stages.filter(s => s.commitSha);
|
|
19
|
+
if (options.stages > successfulStages.length) {
|
|
20
|
+
console.error(`โ Cannot rollback ${options.stages} stages, only ${successfulStages.length} commits found`);
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const targetStage = successfulStages[successfulStages.length - options.stages - 1];
|
|
24
|
+
targetCommit = targetStage?.commitSha || state.trigger.commitSha;
|
|
25
|
+
console.log(` Rolling back ${options.stages} stage(s)`);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
targetCommit = state.trigger.commitSha;
|
|
29
|
+
console.log(` Rolling back to initial commit`);
|
|
30
|
+
}
|
|
31
|
+
console.log(` Target: ${targetCommit.substring(0, 7)}`);
|
|
32
|
+
const rl = readline.createInterface({
|
|
33
|
+
input: process.stdin,
|
|
34
|
+
output: process.stdout
|
|
35
|
+
});
|
|
36
|
+
const answer = await new Promise((resolve) => {
|
|
37
|
+
rl.question('\nโ ๏ธ This will reset your branch. Continue? (y/N): ', resolve);
|
|
38
|
+
});
|
|
39
|
+
rl.close();
|
|
40
|
+
if (answer.toLowerCase() !== 'y') {
|
|
41
|
+
console.log('Cancelled.');
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
await gitManager.revertToCommit(targetCommit);
|
|
45
|
+
console.log(`\nโ
Rolled back successfully`);
|
|
46
|
+
console.log(` Current HEAD: ${targetCommit.substring(0, 7)}`);
|
|
47
|
+
console.log(`\n๐ก Tip: Use 'git reflog' to see all commits if you need to recover\n`);
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=rollback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rollback.js","sourceRoot":"","sources":["../../../src/cli/commands/rollback.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAO3D,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAAgB,EAChB,OAAwB;IAExB,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC;IAGhD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;QACzB,CAAC,CAAC,MAAM,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;QAC7C,CAAC,CAAC,MAAM,YAAY,CAAC,YAAY,EAAE,CAAC;IAEtC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACrD,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,+BAA+B,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IAGzC,IAAI,YAAoB,CAAC;IAEzB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAEnB,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC/D,IAAI,OAAO,CAAC,MAAM,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC;YAC7C,OAAO,CAAC,KAAK,CAAC,qBAAqB,OAAO,CAAC,MAAM,iBAAiB,gBAAgB,CAAC,MAAM,gBAAgB,CAAC,CAAC;YAC3G,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnF,YAAY,GAAG,WAAW,EAAE,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QAEjE,OAAO,CAAC,GAAG,CAAC,mBAAmB,OAAO,CAAC,MAAM,WAAW,CAAC,CAAC;IAC5D,CAAC;SAAM,CAAC;QAEN,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,cAAc,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAG1D,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;QACnD,EAAE,CAAC,QAAQ,CAAC,sDAAsD,EAAE,OAAO,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,KAAK,EAAE,CAAC;IAEX,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1B,OAAO;IACT,CAAC;IAGD,MAAM,UAAU,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IAE9C,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,oBAAoB,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC;AACxF,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { PipelineMetadata } from '../../config/schema.js';
|
|
2
|
+
export interface RunOptions {
|
|
3
|
+
dryRun?: boolean;
|
|
4
|
+
interactive?: boolean;
|
|
5
|
+
noPr?: boolean;
|
|
6
|
+
baseBranch?: string;
|
|
7
|
+
prDraft?: boolean;
|
|
8
|
+
prWeb?: boolean;
|
|
9
|
+
noNotifications?: boolean;
|
|
10
|
+
loop?: boolean;
|
|
11
|
+
loopMetadata?: PipelineMetadata;
|
|
12
|
+
maxLoopIterations?: number;
|
|
13
|
+
}
|
|
14
|
+
export declare function runCommand(repoPath: string, pipelineName: string, options?: RunOptions): Promise<void>;
|
|
15
|
+
//# sourceMappingURL=run.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,UAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAuEf"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { render } from 'ink';
|
|
3
|
+
import { PipelineRunner } from '../../core/pipeline-runner.js';
|
|
4
|
+
import { PipelineLoader } from '../../config/pipeline-loader.js';
|
|
5
|
+
import { PipelineValidator } from '../../validators/pipeline-validator.js';
|
|
6
|
+
import { PipelineUI } from '../../ui/pipeline-ui.js';
|
|
7
|
+
export async function runCommand(repoPath, pipelineName, options = {}) {
|
|
8
|
+
const loader = new PipelineLoader(repoPath);
|
|
9
|
+
const { config, metadata } = await loader.loadPipeline(pipelineName);
|
|
10
|
+
if (options.noNotifications) {
|
|
11
|
+
config.notifications = { enabled: false };
|
|
12
|
+
}
|
|
13
|
+
if (options.noPr && config.git?.pullRequest) {
|
|
14
|
+
config.git.pullRequest.autoCreate = false;
|
|
15
|
+
}
|
|
16
|
+
if (options.baseBranch && config.git) {
|
|
17
|
+
config.git.baseBranch = options.baseBranch;
|
|
18
|
+
}
|
|
19
|
+
if (options.prDraft && config.git?.pullRequest) {
|
|
20
|
+
config.git.pullRequest.draft = true;
|
|
21
|
+
}
|
|
22
|
+
if (options.prWeb && config.git?.pullRequest) {
|
|
23
|
+
config.git.pullRequest.web = true;
|
|
24
|
+
}
|
|
25
|
+
const isValid = await PipelineValidator.validateAndReport(config, repoPath);
|
|
26
|
+
if (!isValid) {
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
const runner = new PipelineRunner(repoPath, options.dryRun);
|
|
30
|
+
const interactive = options.interactive ?? true;
|
|
31
|
+
const loopMetadata = options.loopMetadata ?? metadata;
|
|
32
|
+
let uiInstance;
|
|
33
|
+
if (interactive) {
|
|
34
|
+
uiInstance = render(React.createElement(PipelineUI, {
|
|
35
|
+
onStateChange: (callback) => {
|
|
36
|
+
runner.onStateChange(callback);
|
|
37
|
+
}
|
|
38
|
+
}));
|
|
39
|
+
}
|
|
40
|
+
try {
|
|
41
|
+
const result = await runner.runPipeline(config, {
|
|
42
|
+
interactive,
|
|
43
|
+
loop: options.loop,
|
|
44
|
+
loopMetadata,
|
|
45
|
+
maxLoopIterations: options.maxLoopIterations
|
|
46
|
+
});
|
|
47
|
+
const exitCode = result.status === 'completed'
|
|
48
|
+
? (result.loopContext?.terminationReason === 'limit-reached' ? 1 : 0)
|
|
49
|
+
: 1;
|
|
50
|
+
process.exit(exitCode);
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
throw error;
|
|
54
|
+
}
|
|
55
|
+
finally {
|
|
56
|
+
if (uiInstance) {
|
|
57
|
+
uiInstance.unmount();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"AAIA,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA6DnE"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { StateManager } from '../../core/state-manager.js';
|
|
2
|
+
export async function statusCommand(repoPath) {
|
|
3
|
+
const stateManager = new StateManager(repoPath);
|
|
4
|
+
const latestRun = await stateManager.getLatestRun();
|
|
5
|
+
if (!latestRun) {
|
|
6
|
+
console.log('No pipeline runs found');
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
console.log(`\n${'='.repeat(60)}`);
|
|
10
|
+
console.log(`Latest Pipeline Run: ${latestRun.pipelineConfig.name}`);
|
|
11
|
+
console.log(`${'='.repeat(60)}\n`);
|
|
12
|
+
console.log(`Run ID: ${latestRun.runId}`);
|
|
13
|
+
console.log(`Status: ${latestRun.status.toUpperCase()}`);
|
|
14
|
+
console.log(`Duration: ${latestRun.artifacts.totalDuration.toFixed(2)}s`);
|
|
15
|
+
console.log(`Timestamp: ${latestRun.trigger.timestamp}`);
|
|
16
|
+
console.log(`Trigger: ${latestRun.trigger.type}`);
|
|
17
|
+
console.log(`Initial Commit: ${latestRun.artifacts.initialCommit?.substring(0, 7) || 'N/A'}`);
|
|
18
|
+
console.log(`Final Commit: ${latestRun.artifacts.finalCommit?.substring(0, 7) || 'N/A'}`);
|
|
19
|
+
if (latestRun.artifacts.pullRequest) {
|
|
20
|
+
console.log(`Pull Request: ${latestRun.artifacts.pullRequest.url}`);
|
|
21
|
+
console.log(`PR Branch: ${latestRun.artifacts.pullRequest.branch}`);
|
|
22
|
+
}
|
|
23
|
+
console.log(`\n${'โ'.repeat(60)}`);
|
|
24
|
+
console.log('Stages:\n');
|
|
25
|
+
latestRun.stages.forEach(stage => {
|
|
26
|
+
const statusIcon = stage.status === 'success' ? 'โ
' :
|
|
27
|
+
stage.status === 'failed' ? 'โ' :
|
|
28
|
+
stage.status === 'skipped' ? 'โญ๏ธ' : 'โณ';
|
|
29
|
+
const duration = stage.duration ? `${stage.duration.toFixed(1)}s` : 'N/A';
|
|
30
|
+
console.log(`${statusIcon} ${stage.stageName}`);
|
|
31
|
+
console.log(` Status: ${stage.status}`);
|
|
32
|
+
console.log(` Duration: ${duration}`);
|
|
33
|
+
if (stage.commitSha) {
|
|
34
|
+
console.log(` Commit: ${stage.commitSha.substring(0, 7)}`);
|
|
35
|
+
}
|
|
36
|
+
if (stage.extractedData && Object.keys(stage.extractedData).length > 0) {
|
|
37
|
+
console.log(` Extracted Data:`);
|
|
38
|
+
for (const [key, value] of Object.entries(stage.extractedData)) {
|
|
39
|
+
console.log(` - ${key}: ${value}`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
if (stage.error) {
|
|
43
|
+
console.log(` Error: ${stage.error.message}`);
|
|
44
|
+
if (stage.error.suggestion) {
|
|
45
|
+
console.log(` ๐ก ${stage.error.suggestion}`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
console.log('');
|
|
49
|
+
});
|
|
50
|
+
console.log(`${'='.repeat(60)}\n`);
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/test.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,IAAI,CAAC,CAef"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { PipelineLoader } from '../../config/pipeline-loader.js';
|
|
2
|
+
import { NotificationManager } from '../../notifications/notification-manager.js';
|
|
3
|
+
export async function testCommand(repoPath, pipelineName, options = {}) {
|
|
4
|
+
if (options.notifications) {
|
|
5
|
+
const loader = new PipelineLoader(repoPath);
|
|
6
|
+
const { config } = await loader.loadPipeline(pipelineName);
|
|
7
|
+
if (!config.notifications) {
|
|
8
|
+
console.log('โ No notification configuration found in pipeline');
|
|
9
|
+
process.exit(1);
|
|
10
|
+
}
|
|
11
|
+
const manager = new NotificationManager(config.notifications);
|
|
12
|
+
await manager.test();
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
console.log('Usage: agent-pipeline test <pipeline-name> --notifications');
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../../src/cli/commands/test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAMlF,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,QAAgB,EAChB,YAAoB,EACpB,UAAuB,EAAE;IAEzB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAE3D,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;YACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC9D,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/uninstall.ts"],"names":[],"mappings":"AAIA,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGtE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../../src/cli/commands/uninstall.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,QAAgB;IACrD,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,SAAS,CAAC,SAAS,EAAE,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare class HookInstaller {
|
|
2
|
+
private repoPath;
|
|
3
|
+
constructor(repoPath: string);
|
|
4
|
+
install(pipelineName: string, hookType: string): Promise<void>;
|
|
5
|
+
uninstall(hookType?: string): Promise<void>;
|
|
6
|
+
private generateHookScript;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/cli/hooks.ts"],"names":[],"mappings":"AAKA,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,MAAM;IAE9B,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwC9D,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyEjD,OAAO,CAAC,kBAAkB;CAO3B"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import * as fs from 'fs/promises';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
export class HookInstaller {
|
|
4
|
+
repoPath;
|
|
5
|
+
constructor(repoPath) {
|
|
6
|
+
this.repoPath = repoPath;
|
|
7
|
+
}
|
|
8
|
+
async install(pipelineName, hookType) {
|
|
9
|
+
const hookPath = path.join(this.repoPath, '.git', 'hooks', hookType);
|
|
10
|
+
let existingHook = '';
|
|
11
|
+
try {
|
|
12
|
+
existingHook = await fs.readFile(hookPath, 'utf-8');
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
}
|
|
16
|
+
const hookScript = this.generateHookScript(pipelineName);
|
|
17
|
+
const hookMarker = `# Agent Pipeline (${hookType}): ${pipelineName}`;
|
|
18
|
+
if (existingHook) {
|
|
19
|
+
if (existingHook.includes(hookMarker)) {
|
|
20
|
+
console.log(`โ ๏ธ Agent Pipeline already installed for ${pipelineName} on ${hookType}`);
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const combinedHook = `${existingHook}\n\n${hookMarker}\n${hookScript}`;
|
|
24
|
+
await fs.writeFile(hookPath, combinedHook, 'utf-8');
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
await fs.writeFile(hookPath, `#!/bin/bash\n\n${hookMarker}\n${hookScript}`, 'utf-8');
|
|
28
|
+
}
|
|
29
|
+
await fs.chmod(hookPath, 0o755);
|
|
30
|
+
console.log(`โ
${hookType} hook installed`);
|
|
31
|
+
console.log(` Pipeline: ${pipelineName}`);
|
|
32
|
+
console.log(` Hook: .git/hooks/${hookType}`);
|
|
33
|
+
}
|
|
34
|
+
async uninstall(hookType) {
|
|
35
|
+
const hookTypes = hookType
|
|
36
|
+
? [hookType]
|
|
37
|
+
: ['pre-commit', 'post-commit', 'pre-push', 'post-merge'];
|
|
38
|
+
let uninstalledCount = 0;
|
|
39
|
+
for (const type of hookTypes) {
|
|
40
|
+
const hookPath = path.join(this.repoPath, '.git', 'hooks', type);
|
|
41
|
+
try {
|
|
42
|
+
const content = await fs.readFile(hookPath, 'utf-8');
|
|
43
|
+
const lines = content.split('\n');
|
|
44
|
+
const filtered = [];
|
|
45
|
+
let inPipelineSection = false;
|
|
46
|
+
let blankLineCount = 0;
|
|
47
|
+
for (let i = 0; i < lines.length; i++) {
|
|
48
|
+
const line = lines[i];
|
|
49
|
+
if (line.includes('# Agent Pipeline')) {
|
|
50
|
+
inPipelineSection = true;
|
|
51
|
+
blankLineCount = 0;
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
if (inPipelineSection) {
|
|
55
|
+
if (line.trim() === '') {
|
|
56
|
+
blankLineCount++;
|
|
57
|
+
if (blankLineCount >= 2 || i === lines.length - 1) {
|
|
58
|
+
inPipelineSection = false;
|
|
59
|
+
blankLineCount = 0;
|
|
60
|
+
}
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
blankLineCount = 0;
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
filtered.push(line);
|
|
69
|
+
}
|
|
70
|
+
const newContent = filtered.join('\n').trim();
|
|
71
|
+
if (newContent === '#!/bin/bash' || !newContent) {
|
|
72
|
+
await fs.unlink(hookPath);
|
|
73
|
+
console.log(`โ
${type} hook removed (was only agent-pipeline)`);
|
|
74
|
+
uninstalledCount++;
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
await fs.writeFile(hookPath, newContent, 'utf-8');
|
|
78
|
+
console.log(`โ
Agent Pipeline section removed from ${type} hook`);
|
|
79
|
+
uninstalledCount++;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
if (uninstalledCount === 0) {
|
|
87
|
+
console.log('โน๏ธ No Agent Pipeline hooks found to uninstall');
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
generateHookScript(pipelineName) {
|
|
91
|
+
return `# Run Agent Pipeline in background to avoid blocking
|
|
92
|
+
nohup npx agent-pipeline run ${pipelineName} > /dev/null 2>&1 &
|
|
93
|
+
|
|
94
|
+
# Optional: Notify user
|
|
95
|
+
echo "๐ค Agent Pipeline running in background (${pipelineName})"`;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/cli/hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# Post-Merge Cleanup Summary Reporter
|
|
2
|
+
|
|
3
|
+
You are a cleanup summary reporter agent in an automated post-merge pipeline.
|
|
4
|
+
|
|
5
|
+
## Your Task
|
|
6
|
+
|
|
7
|
+
Generate a comprehensive summary report of all cleanup activities performed after a merge. Review the outputs from previous pipeline stages and create a consolidated report.
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
|
|
11
|
+
You will receive context from previous stages:
|
|
12
|
+
- **doc-sync**: Documentation updates performed
|
|
13
|
+
- **dependency-audit**: Dependency and security findings
|
|
14
|
+
- **code-consolidation**: Code deduplication and consolidation results
|
|
15
|
+
|
|
16
|
+
## Report Structure
|
|
17
|
+
|
|
18
|
+
Create a markdown report in `CLEANUP_REPORT.md` with the following sections:
|
|
19
|
+
|
|
20
|
+
### 1. Overview
|
|
21
|
+
- Total cleanup tasks completed
|
|
22
|
+
- Overall health status
|
|
23
|
+
- Merge timestamp and branch information
|
|
24
|
+
|
|
25
|
+
### 2. Documentation Updates
|
|
26
|
+
- Files updated (from doc-sync stage)
|
|
27
|
+
- New sections added
|
|
28
|
+
- Links to updated documentation
|
|
29
|
+
|
|
30
|
+
### 3. Dependency Health
|
|
31
|
+
- Outdated packages count (from dependency-audit stage)
|
|
32
|
+
- Security issues found and addressed
|
|
33
|
+
- Recommended actions
|
|
34
|
+
|
|
35
|
+
### 4. Code Consolidation
|
|
36
|
+
- Duplicate code instances removed (from code-consolidation stage)
|
|
37
|
+
- Files merged or refactored
|
|
38
|
+
- Lines of code reduced
|
|
39
|
+
|
|
40
|
+
### 5. Next Steps
|
|
41
|
+
- Action items for developers
|
|
42
|
+
- Follow-up tasks required
|
|
43
|
+
- Recommended improvements
|
|
44
|
+
|
|
45
|
+
## Output Format
|
|
46
|
+
|
|
47
|
+
After creating the report, call the `report_outputs` tool with:
|
|
48
|
+
|
|
49
|
+
```javascript
|
|
50
|
+
report_outputs({
|
|
51
|
+
outputs: {
|
|
52
|
+
summary: "Generated post-merge cleanup report. Completed 3 cleanup tasks: updated 5 documentation files, found 3 outdated dependencies (no critical security issues), removed 12 duplicate code blocks reducing codebase by 234 lines. 4 action items for follow-up.",
|
|
53
|
+
report_created: true,
|
|
54
|
+
total_issues: 3,
|
|
55
|
+
action_items: 4,
|
|
56
|
+
cleanup_tasks_completed: 3
|
|
57
|
+
}
|
|
58
|
+
})
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**IMPORTANT:** The summary should be up to a few sentences or around 500 words or less, covering:
|
|
62
|
+
- What cleanup tasks were completed (doc updates, dependency audits, code consolidation)
|
|
63
|
+
- Key findings from each cleanup area
|
|
64
|
+
- Total issues found and action items generated
|
|
65
|
+
- Overall health status
|
|
66
|
+
|
|
67
|
+
## Guidelines
|
|
68
|
+
|
|
69
|
+
- Be concise but informative
|
|
70
|
+
- Highlight critical issues requiring immediate attention
|
|
71
|
+
- Use emojis for visual clarity (โ
โ ๏ธ โ ๐ ๐ ๐งน)
|
|
72
|
+
- Include actionable recommendations
|
|
73
|
+
- Link to relevant files and documentation
|
|
74
|
+
|
|
75
|
+
## Example Output
|
|
76
|
+
|
|
77
|
+
```markdown
|
|
78
|
+
# Post-Merge Cleanup Report
|
|
79
|
+
Generated: 2024-01-15 14:30:00
|
|
80
|
+
|
|
81
|
+
## Overview
|
|
82
|
+
โ
Successfully completed 3 cleanup tasks
|
|
83
|
+
๐ฏ Overall Health: Good
|
|
84
|
+
|
|
85
|
+
## Documentation Updates
|
|
86
|
+
๐ Updated 5 files:
|
|
87
|
+
- README.md (added API section)
|
|
88
|
+
- CONTRIBUTING.md (updated workflow)
|
|
89
|
+
- docs/architecture.md (new diagrams)
|
|
90
|
+
|
|
91
|
+
## Dependency Health
|
|
92
|
+
โ ๏ธ Found 3 outdated packages:
|
|
93
|
+
- express: 4.17.1 โ 4.18.2
|
|
94
|
+
- typescript: 4.9.0 โ 5.0.0
|
|
95
|
+
|
|
96
|
+
๐ No security vulnerabilities
|
|
97
|
+
|
|
98
|
+
## Code Consolidation
|
|
99
|
+
๐งน Removed 12 duplicate code blocks
|
|
100
|
+
๐ฆ Merged 4 utility files into single module
|
|
101
|
+
๐ก Reduced codebase by 234 lines
|
|
102
|
+
|
|
103
|
+
## Next Steps
|
|
104
|
+
1. Review and update outdated dependencies
|
|
105
|
+
2. Verify all documentation links
|
|
106
|
+
3. Consider extracting common patterns in utils/
|
|
107
|
+
```
|