agent-pipeline 0.1.0 โ 0.1.2
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 +4 -3
- package/{license โ LICENSE} +1 -1
- package/README.md +120 -55
- package/dist/cli/commands/agent/info.js +1 -1
- package/dist/cli/commands/agent/info.js.map +1 -1
- package/dist/cli/commands/agent/list.js +1 -1
- package/dist/cli/commands/agent/list.js.map +1 -1
- package/dist/cli/commands/agent/pull.d.ts +1 -0
- package/dist/cli/commands/agent/pull.d.ts.map +1 -1
- package/dist/cli/commands/agent/pull.js +67 -44
- package/dist/cli/commands/agent/pull.js.map +1 -1
- package/dist/cli/commands/cleanup.d.ts +4 -0
- package/dist/cli/commands/cleanup.d.ts.map +1 -1
- package/dist/cli/commands/cleanup.js +197 -37
- package/dist/cli/commands/cleanup.js.map +1 -1
- package/dist/cli/commands/history.d.ts.map +1 -1
- package/dist/cli/commands/history.js +3 -22
- package/dist/cli/commands/history.js.map +1 -1
- package/dist/cli/commands/hooks.d.ts +10 -0
- package/dist/cli/commands/hooks.d.ts.map +1 -0
- package/dist/cli/commands/hooks.js +88 -0
- package/dist/cli/commands/hooks.js.map +1 -0
- package/dist/cli/commands/init.d.ts +1 -6
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +169 -88
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/loop-context.d.ts +2 -0
- package/dist/cli/commands/loop-context.d.ts.map +1 -0
- package/dist/cli/commands/loop-context.js +88 -0
- package/dist/cli/commands/loop-context.js.map +1 -0
- package/dist/cli/commands/pipeline/create.d.ts.map +1 -1
- package/dist/cli/commands/pipeline/create.js +156 -68
- package/dist/cli/commands/pipeline/create.js.map +1 -1
- package/dist/cli/commands/run.d.ts +1 -1
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +29 -5
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/schema.d.ts +9 -0
- package/dist/cli/commands/schema.d.ts.map +1 -0
- package/dist/cli/commands/schema.js +541 -0
- package/dist/cli/commands/schema.js.map +1 -0
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +0 -6
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/help/index.d.ts +6 -0
- package/dist/cli/help/index.d.ts.map +1 -0
- package/dist/cli/help/index.js +538 -0
- package/dist/cli/help/index.js.map +1 -0
- package/dist/cli/help/types.d.ts +22 -0
- package/dist/cli/help/types.d.ts.map +1 -0
- package/dist/cli/help/types.js +2 -0
- package/dist/cli/help/types.js.map +1 -0
- package/dist/cli/hooks.d.ts +5 -1
- package/dist/cli/hooks.d.ts.map +1 -1
- package/dist/cli/hooks.js +106 -12
- package/dist/cli/hooks.js.map +1 -1
- package/dist/cli/templates/agents/code-review-agents/code-reviewer.md +46 -0
- package/dist/cli/templates/agents/code-review-agents/memory-doc-updater.md +189 -0
- package/dist/cli/templates/agents/code-review-agents/quality-checker.md +52 -0
- package/dist/cli/templates/agents/frontend-agents/brutalist_purist.md +563 -0
- package/dist/cli/templates/agents/frontend-agents/cyberpunk_hacker.md +824 -0
- package/dist/cli/templates/agents/frontend-agents/frontend-pipeline-ref.md +32 -0
- package/dist/cli/templates/agents/frontend-agents/indie_game_dev.md +715 -0
- package/dist/cli/templates/agents/frontend-agents/luxury_editorial.md +628 -0
- package/dist/cli/templates/agents/frontend-agents/product_owner.md +159 -0
- package/dist/cli/templates/agents/frontend-agents/retro_90s_webmaster.md +385 -0
- package/dist/cli/templates/agents/frontend-agents/showcase.md +362 -0
- package/dist/cli/templates/agents/frontend-agents/swiss_modernist.md +716 -0
- package/dist/cli/templates/agents/loop-agents/socratic-explorer.md +91 -0
- package/dist/cli/templates/instructions/handover.md +40 -0
- package/dist/cli/templates/instructions/loop.md +39 -0
- package/dist/cli/templates/pipelines/front-end-parallel-example.yml +81 -0
- package/dist/cli/templates/pipelines/loop-example.yml +25 -0
- package/dist/cli/templates/pipelines/post-commit-example.yml +49 -58
- package/dist/cli/templates/schema/pipeline-config.schema.json +400 -0
- package/dist/cli/templates/schema/pipeline-config.schema.yaml +302 -0
- package/dist/cli/utils/agent-importer.d.ts +1 -0
- package/dist/cli/utils/agent-importer.d.ts.map +1 -1
- package/dist/cli/utils/agent-importer.js +67 -0
- package/dist/cli/utils/agent-importer.js.map +1 -1
- package/dist/cli/utils/interactive-prompts.d.ts +4 -0
- package/dist/cli/utils/interactive-prompts.d.ts.map +1 -1
- package/dist/cli/utils/interactive-prompts.js +59 -13
- package/dist/cli/utils/interactive-prompts.js.map +1 -1
- package/dist/config/pipeline-loader.d.ts +4 -1
- package/dist/config/pipeline-loader.d.ts.map +1 -1
- package/dist/config/pipeline-loader.js +58 -0
- package/dist/config/pipeline-loader.js.map +1 -1
- package/dist/config/schema.d.ts +64 -35
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/core/abort-controller.d.ts +16 -0
- package/dist/core/abort-controller.d.ts.map +1 -0
- package/dist/core/abort-controller.js +52 -0
- package/dist/core/abort-controller.js.map +1 -0
- package/dist/core/agent-query-runner.d.ts +0 -1
- package/dist/core/agent-query-runner.d.ts.map +1 -1
- package/dist/core/agent-query-runner.js +0 -22
- package/dist/core/agent-query-runner.js.map +1 -1
- package/dist/core/agent-runtimes/claude-code-headless-runtime.d.ts +5 -1
- package/dist/core/agent-runtimes/claude-code-headless-runtime.d.ts.map +1 -1
- package/dist/core/agent-runtimes/claude-code-headless-runtime.js +127 -12
- package/dist/core/agent-runtimes/claude-code-headless-runtime.js.map +1 -1
- package/dist/core/agent-runtimes/claude-sdk-runtime.d.ts +0 -2
- package/dist/core/agent-runtimes/claude-sdk-runtime.d.ts.map +1 -1
- package/dist/core/agent-runtimes/claude-sdk-runtime.js +1 -22
- package/dist/core/agent-runtimes/claude-sdk-runtime.js.map +1 -1
- package/dist/core/agent-runtimes/codex-headless-runtime.d.ts +27 -0
- package/dist/core/agent-runtimes/codex-headless-runtime.d.ts.map +1 -0
- package/dist/core/agent-runtimes/codex-headless-runtime.js +623 -0
- package/dist/core/agent-runtimes/codex-headless-runtime.js.map +1 -0
- package/dist/core/agent-runtimes/openai-compatible-runtime.d.ts +17 -0
- package/dist/core/agent-runtimes/openai-compatible-runtime.d.ts.map +1 -0
- package/dist/core/agent-runtimes/openai-compatible-runtime.js +231 -0
- package/dist/core/agent-runtimes/openai-compatible-runtime.js.map +1 -0
- package/dist/core/branch-manager.d.ts +3 -1
- package/dist/core/branch-manager.d.ts.map +1 -1
- package/dist/core/branch-manager.js +11 -1
- package/dist/core/branch-manager.js.map +1 -1
- package/dist/core/git-manager.d.ts +17 -1
- package/dist/core/git-manager.d.ts.map +1 -1
- package/dist/core/git-manager.js +147 -3
- package/dist/core/git-manager.js.map +1 -1
- package/dist/core/group-execution-orchestrator.d.ts +4 -13
- package/dist/core/group-execution-orchestrator.d.ts.map +1 -1
- package/dist/core/group-execution-orchestrator.js +53 -142
- package/dist/core/group-execution-orchestrator.js.map +1 -1
- package/dist/core/handover-manager.d.ts +24 -0
- package/dist/core/handover-manager.d.ts.map +1 -0
- package/dist/core/handover-manager.js +214 -0
- package/dist/core/handover-manager.js.map +1 -0
- package/dist/core/instruction-loader.d.ts +23 -0
- package/dist/core/instruction-loader.d.ts.map +1 -0
- package/dist/core/instruction-loader.js +123 -0
- package/dist/core/instruction-loader.js.map +1 -0
- package/dist/core/loop-state-manager.d.ts +12 -7
- package/dist/core/loop-state-manager.d.ts.map +1 -1
- package/dist/core/loop-state-manager.js +49 -3
- package/dist/core/loop-state-manager.js.map +1 -1
- package/dist/core/parallel-executor.d.ts +8 -3
- package/dist/core/parallel-executor.d.ts.map +1 -1
- package/dist/core/parallel-executor.js +90 -16
- package/dist/core/parallel-executor.js.map +1 -1
- package/dist/core/pipeline-finalizer.d.ts +12 -4
- package/dist/core/pipeline-finalizer.d.ts.map +1 -1
- package/dist/core/pipeline-finalizer.js +244 -33
- package/dist/core/pipeline-finalizer.js.map +1 -1
- package/dist/core/pipeline-initializer.d.ts +13 -5
- package/dist/core/pipeline-initializer.d.ts.map +1 -1
- package/dist/core/pipeline-initializer.js +53 -25
- package/dist/core/pipeline-initializer.js.map +1 -1
- package/dist/core/pipeline-runner.d.ts +15 -1
- package/dist/core/pipeline-runner.d.ts.map +1 -1
- package/dist/core/pipeline-runner.js +434 -64
- package/dist/core/pipeline-runner.js.map +1 -1
- package/dist/core/pr-creator.d.ts +0 -1
- package/dist/core/pr-creator.d.ts.map +1 -1
- package/dist/core/pr-creator.js +12 -4
- package/dist/core/pr-creator.js.map +1 -1
- package/dist/core/stage-executor.d.ts +19 -11
- package/dist/core/stage-executor.d.ts.map +1 -1
- package/dist/core/stage-executor.js +151 -178
- package/dist/core/stage-executor.js.map +1 -1
- package/dist/core/types/agent-runtime.d.ts +3 -2
- package/dist/core/types/agent-runtime.d.ts.map +1 -1
- package/dist/core/worktree-manager.d.ts +21 -0
- package/dist/core/worktree-manager.d.ts.map +1 -0
- package/dist/core/worktree-manager.js +133 -0
- package/dist/core/worktree-manager.js.map +1 -0
- package/dist/index.js +147 -112
- package/dist/index.js.map +1 -1
- package/dist/notifications/notification-manager.d.ts +1 -0
- package/dist/notifications/notification-manager.d.ts.map +1 -1
- package/dist/notifications/notification-manager.js +17 -3
- package/dist/notifications/notification-manager.js.map +1 -1
- package/dist/notifications/notifiers/local-notifier.d.ts.map +1 -1
- package/dist/notifications/notifiers/local-notifier.js +5 -2
- package/dist/notifications/notifiers/local-notifier.js.map +1 -1
- package/dist/notifications/notifiers/slack-notifier.d.ts.map +1 -1
- package/dist/notifications/notifiers/slack-notifier.js +39 -8
- package/dist/notifications/notifiers/slack-notifier.js.map +1 -1
- package/dist/notifications/types.d.ts +1 -1
- package/dist/notifications/types.d.ts.map +1 -1
- package/dist/ui/components/execution-group.d.ts.map +1 -1
- package/dist/ui/components/execution-group.js +1 -1
- package/dist/ui/components/execution-group.js.map +1 -1
- package/dist/ui/components/interactive-summary.d.ts +9 -0
- package/dist/ui/components/interactive-summary.d.ts.map +1 -0
- package/dist/ui/components/interactive-summary.js +166 -0
- package/dist/ui/components/interactive-summary.js.map +1 -0
- package/dist/ui/components/keyboard-hints.d.ts +12 -0
- package/dist/ui/components/keyboard-hints.d.ts.map +1 -0
- package/dist/ui/components/keyboard-hints.js +13 -0
- package/dist/ui/components/keyboard-hints.js.map +1 -0
- package/dist/ui/components/live-timer.d.ts +9 -0
- package/dist/ui/components/live-timer.d.ts.map +1 -0
- package/dist/ui/components/live-timer.js +25 -0
- package/dist/ui/components/live-timer.js.map +1 -0
- package/dist/ui/components/loop-iteration-history.d.ts +8 -0
- package/dist/ui/components/loop-iteration-history.d.ts.map +1 -0
- package/dist/ui/components/loop-iteration-history.js +106 -0
- package/dist/ui/components/loop-iteration-history.js.map +1 -0
- package/dist/ui/components/loop-session-summary.d.ts +9 -0
- package/dist/ui/components/loop-session-summary.d.ts.map +1 -0
- package/dist/ui/components/loop-session-summary.js +39 -0
- package/dist/ui/components/loop-session-summary.js.map +1 -0
- package/dist/ui/components/stage-row.d.ts +0 -1
- package/dist/ui/components/stage-row.d.ts.map +1 -1
- package/dist/ui/components/stage-row.js +5 -15
- package/dist/ui/components/stage-row.js.map +1 -1
- package/dist/ui/components/status-badge.d.ts.map +1 -1
- package/dist/ui/components/status-badge.js +1 -0
- package/dist/ui/components/status-badge.js.map +1 -1
- package/dist/ui/pipeline-ui.d.ts +1 -0
- package/dist/ui/pipeline-ui.d.ts.map +1 -1
- package/dist/ui/pipeline-ui.js +22 -18
- package/dist/ui/pipeline-ui.js.map +1 -1
- package/dist/utils/error-factory.d.ts.map +1 -1
- package/dist/utils/error-factory.js +10 -2
- package/dist/utils/error-factory.js.map +1 -1
- package/dist/utils/pipeline-formatter.d.ts +8 -2
- package/dist/utils/pipeline-formatter.d.ts.map +1 -1
- package/dist/utils/pipeline-formatter.js +30 -26
- package/dist/utils/pipeline-formatter.js.map +1 -1
- package/dist/utils/pipeline-logger.d.ts +19 -0
- package/dist/utils/pipeline-logger.d.ts.map +1 -0
- package/dist/utils/pipeline-logger.js +80 -0
- package/dist/utils/pipeline-logger.js.map +1 -0
- package/dist/utils/platform-opener.d.ts +4 -0
- package/dist/utils/platform-opener.d.ts.map +1 -0
- package/dist/utils/platform-opener.js +52 -0
- package/dist/utils/platform-opener.js.map +1 -0
- package/dist/validators/agent-validator.d.ts +10 -0
- package/dist/validators/agent-validator.d.ts.map +1 -0
- package/dist/validators/agent-validator.js +87 -0
- package/dist/validators/agent-validator.js.map +1 -0
- package/dist/validators/dag-validator.d.ts +9 -0
- package/dist/validators/dag-validator.d.ts.map +1 -0
- package/dist/validators/dag-validator.js +51 -0
- package/dist/validators/dag-validator.js.map +1 -0
- package/dist/validators/environment-validator.d.ts +9 -0
- package/dist/validators/environment-validator.d.ts.map +1 -0
- package/dist/validators/environment-validator.js +35 -0
- package/dist/validators/environment-validator.js.map +1 -0
- package/dist/validators/execution-validator.d.ts +8 -0
- package/dist/validators/execution-validator.d.ts.map +1 -0
- package/dist/validators/execution-validator.js +51 -0
- package/dist/validators/execution-validator.js.map +1 -0
- package/dist/validators/git-validator.d.ts +13 -0
- package/dist/validators/git-validator.d.ts.map +1 -0
- package/dist/validators/git-validator.js +135 -0
- package/dist/validators/git-validator.js.map +1 -0
- package/dist/validators/notification-validator.d.ts +8 -0
- package/dist/validators/notification-validator.d.ts.map +1 -0
- package/dist/validators/notification-validator.js +27 -0
- package/dist/validators/notification-validator.js.map +1 -0
- package/dist/validators/pipeline-validator.d.ts +3 -26
- package/dist/validators/pipeline-validator.d.ts.map +1 -1
- package/dist/validators/pipeline-validator.js +5 -515
- package/dist/validators/pipeline-validator.js.map +1 -1
- package/dist/validators/retry-validator.d.ts +9 -0
- package/dist/validators/retry-validator.d.ts.map +1 -0
- package/dist/validators/retry-validator.js +34 -0
- package/dist/validators/retry-validator.js.map +1 -0
- package/dist/validators/runtime-validator.d.ts +9 -0
- package/dist/validators/runtime-validator.d.ts.map +1 -0
- package/dist/validators/runtime-validator.js +82 -0
- package/dist/validators/runtime-validator.js.map +1 -0
- package/dist/validators/structure-validator.d.ts +8 -0
- package/dist/validators/structure-validator.d.ts.map +1 -0
- package/dist/validators/structure-validator.js +39 -0
- package/dist/validators/structure-validator.js.map +1 -0
- package/dist/validators/types.d.ts +19 -0
- package/dist/validators/types.d.ts.map +1 -0
- package/dist/validators/types.js +2 -0
- package/dist/validators/types.js.map +1 -0
- package/dist/validators/validation-orchestrator.d.ts +9 -0
- package/dist/validators/validation-orchestrator.d.ts.map +1 -0
- package/dist/validators/validation-orchestrator.js +43 -0
- package/dist/validators/validation-orchestrator.js.map +1 -0
- package/package.json +18 -12
- package/dist/cli/commands/install.d.ts +0 -2
- package/dist/cli/commands/install.d.ts.map +0 -1
- package/dist/cli/commands/install.js +0 -15
- package/dist/cli/commands/install.js.map +0 -1
- package/dist/cli/commands/uninstall.d.ts +0 -2
- package/dist/cli/commands/uninstall.d.ts.map +0 -1
- package/dist/cli/commands/uninstall.js +0 -6
- package/dist/cli/commands/uninstall.js.map +0 -1
- package/dist/cli/templates/agents/cleanup-reporter.md +0 -107
- package/dist/cli/templates/agents/code-reducer.md +0 -51
- package/dist/cli/templates/agents/code-reviewer.md +0 -34
- package/dist/cli/templates/agents/context-reducer.md +0 -94
- package/dist/cli/templates/agents/dependency-auditor.md +0 -127
- package/dist/cli/templates/agents/detective-empath.md +0 -26
- package/dist/cli/templates/agents/detective-linguist.md +0 -26
- package/dist/cli/templates/agents/detective-logician.md +0 -26
- package/dist/cli/templates/agents/detective-skeptic.md +0 -26
- package/dist/cli/templates/agents/detective-statistician.md +0 -26
- package/dist/cli/templates/agents/doc-updater.md +0 -30
- package/dist/cli/templates/agents/judge.md +0 -27
- package/dist/cli/templates/agents/memory-updater.md +0 -72
- package/dist/cli/templates/agents/quality-checker.md +0 -32
- package/dist/cli/templates/agents/security-auditor.md +0 -32
- package/dist/cli/templates/agents/storyteller.md +0 -26
- package/dist/cli/templates/agents/summary.md +0 -32
- package/dist/cli/templates/agents/synthesizer.md +0 -26
- package/dist/cli/templates/pipelines/large-pipeline-example.yml +0 -178
- package/dist/cli/templates/pipelines/post-merge-example.yml +0 -78
- package/dist/cli/templates/pipelines/pre-commit-example.yml +0 -41
- package/dist/cli/templates/pipelines/pre-push-example.yml +0 -51
- package/dist/cli/templates/pipelines/test-pipeline.yml +0 -90
- package/dist/config/project-config-loader.d.ts +0 -11
- package/dist/config/project-config-loader.d.ts.map +0 -1
- package/dist/config/project-config-loader.js +0 -100
- package/dist/config/project-config-loader.js.map +0 -1
- package/dist/core/condition-evaluator.d.ts +0 -16
- package/dist/core/condition-evaluator.d.ts.map +0 -1
- package/dist/core/condition-evaluator.js +0 -121
- package/dist/core/condition-evaluator.js.map +0 -1
- package/dist/core/context-reducer.d.ts +0 -15
- package/dist/core/context-reducer.d.ts.map +0 -1
- package/dist/core/context-reducer.js +0 -224
- package/dist/core/context-reducer.js.map +0 -1
- package/dist/core/output-storage-manager.d.ts +0 -14
- package/dist/core/output-storage-manager.d.ts.map +0 -1
- package/dist/core/output-storage-manager.js +0 -68
- package/dist/core/output-storage-manager.js.map +0 -1
- package/dist/core/output-tool-builder.d.ts +0 -6
- package/dist/core/output-tool-builder.d.ts.map +0 -1
- package/dist/core/output-tool-builder.js +0 -50
- package/dist/core/output-tool-builder.js.map +0 -1
|
@@ -1,5 +1,20 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as fs from 'fs/promises';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import { GitManager } from './git-manager.js';
|
|
5
|
+
import { BranchManager } from './branch-manager.js';
|
|
6
|
+
import { WorktreeManager } from './worktree-manager.js';
|
|
2
7
|
import { PipelineFormatter } from '../utils/pipeline-formatter.js';
|
|
8
|
+
const c = {
|
|
9
|
+
success: chalk.green,
|
|
10
|
+
warn: chalk.yellow,
|
|
11
|
+
error: chalk.red,
|
|
12
|
+
dim: chalk.dim,
|
|
13
|
+
cmd: chalk.cyan,
|
|
14
|
+
branch: chalk.magenta,
|
|
15
|
+
path: chalk.yellow,
|
|
16
|
+
header: chalk.bold.white,
|
|
17
|
+
};
|
|
3
18
|
export class PipelineFinalizer {
|
|
4
19
|
gitManager;
|
|
5
20
|
branchManager;
|
|
@@ -8,6 +23,7 @@ export class PipelineFinalizer {
|
|
|
8
23
|
repoPath;
|
|
9
24
|
dryRun;
|
|
10
25
|
shouldLog;
|
|
26
|
+
worktreeManager;
|
|
11
27
|
constructor(gitManager, branchManager, prCreator, stateManager, repoPath, dryRun, shouldLog) {
|
|
12
28
|
this.gitManager = gitManager;
|
|
13
29
|
this.branchManager = branchManager;
|
|
@@ -16,49 +32,103 @@ export class PipelineFinalizer {
|
|
|
16
32
|
this.repoPath = repoPath;
|
|
17
33
|
this.dryRun = dryRun;
|
|
18
34
|
this.shouldLog = shouldLog;
|
|
35
|
+
this.worktreeManager = new WorktreeManager(repoPath);
|
|
19
36
|
}
|
|
20
|
-
async finalize(state, config, pipelineBranch,
|
|
21
|
-
|
|
22
|
-
await this.
|
|
23
|
-
if (
|
|
24
|
-
|
|
37
|
+
async finalize(state, config, pipelineBranch, worktreePath, executionRepoPath, startTime, interactive, verbose, notifyCallback, stateChangeCallback, options) {
|
|
38
|
+
const { pipelineLogger } = options || {};
|
|
39
|
+
await this.calculateMetrics(state, startTime, executionRepoPath);
|
|
40
|
+
if (state.status === 'aborted') {
|
|
41
|
+
if (this.shouldLog(interactive)) {
|
|
42
|
+
console.log(`\n${c.warn('โ ')} ${c.warn('Pipeline aborted.')} Work preserved on branch: ${c.branch(pipelineBranch || '(current)')}`);
|
|
43
|
+
if (worktreePath) {
|
|
44
|
+
console.log(` ${c.dim('Worktree preserved for recovery:')} ${c.path(worktreePath)}`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
if (worktreePath && state.artifacts.mainRepoHandoverDir) {
|
|
48
|
+
await this.copyHandoverToMainRepo(state.artifacts.handoverDir, state.artifacts.mainRepoHandoverDir, interactive);
|
|
49
|
+
state.artifacts.handoverDir = state.artifacts.mainRepoHandoverDir;
|
|
50
|
+
}
|
|
51
|
+
await this.stateManager.saveState(state);
|
|
52
|
+
stateChangeCallback(state);
|
|
53
|
+
await notifyCallback({
|
|
54
|
+
event: 'pipeline.aborted',
|
|
55
|
+
pipelineState: state
|
|
56
|
+
});
|
|
57
|
+
return state;
|
|
58
|
+
}
|
|
59
|
+
if (pipelineBranch && config.git) {
|
|
60
|
+
const mergeStrategy = config.git.mergeStrategy || 'none';
|
|
61
|
+
await this.handleMergeStrategy(mergeStrategy, config, pipelineBranch, state, executionRepoPath, interactive, notifyCallback);
|
|
62
|
+
}
|
|
63
|
+
if (worktreePath && state.artifacts.mainRepoHandoverDir) {
|
|
64
|
+
await this.copyHandoverToMainRepo(state.artifacts.handoverDir, state.artifacts.mainRepoHandoverDir, interactive);
|
|
65
|
+
state.artifacts.handoverDir = state.artifacts.mainRepoHandoverDir;
|
|
25
66
|
}
|
|
26
67
|
await this.stateManager.saveState(state);
|
|
27
68
|
stateChangeCallback(state);
|
|
28
|
-
|
|
69
|
+
if (!options?.suppressCompletionNotification) {
|
|
70
|
+
await this.notifyCompletion(state, notifyCallback);
|
|
71
|
+
}
|
|
29
72
|
if (this.shouldLog(interactive)) {
|
|
30
|
-
this.printSummary(state);
|
|
73
|
+
this.printSummary(state, worktreePath, verbose);
|
|
74
|
+
}
|
|
75
|
+
const prCreatedSuccessfully = !!state.artifacts.pullRequest?.url;
|
|
76
|
+
await this.handleWorktreeCleanup(worktreePath, config, state.status, interactive, prCreatedSuccessfully);
|
|
77
|
+
if (pipelineLogger) {
|
|
78
|
+
pipelineLogger.pipelineComplete(state.status, state.artifacts.totalDuration, state.stages.length);
|
|
79
|
+
pipelineLogger.close();
|
|
31
80
|
}
|
|
32
|
-
await this.cleanup(pipelineBranch, originalBranch, interactive);
|
|
33
81
|
return state;
|
|
34
82
|
}
|
|
35
|
-
async calculateMetrics(state, startTime) {
|
|
83
|
+
async calculateMetrics(state, startTime, executionRepoPath) {
|
|
36
84
|
const endTime = Date.now();
|
|
37
85
|
state.artifacts.totalDuration = (endTime - startTime) / 1000;
|
|
38
|
-
|
|
86
|
+
const execGitManager = executionRepoPath !== this.repoPath
|
|
87
|
+
? new GitManager(executionRepoPath)
|
|
88
|
+
: this.gitManager;
|
|
89
|
+
state.artifacts.finalCommit = await execGitManager.getCurrentCommit();
|
|
39
90
|
}
|
|
40
|
-
async
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
91
|
+
async handleMergeStrategy(strategy, config, branchName, state, executionRepoPath, interactive, notifyCallback) {
|
|
92
|
+
const hasCommits = state.stages.some(s => s.commitSha);
|
|
93
|
+
if (!hasCommits && (strategy === 'pull-request' || strategy === 'local-merge')) {
|
|
94
|
+
if (this.shouldLog(interactive)) {
|
|
95
|
+
console.log(`\n${c.dim('๐ No commits to merge.')} Work preserved on branch: ${c.branch(branchName)}`);
|
|
96
|
+
}
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
switch (strategy) {
|
|
100
|
+
case 'pull-request':
|
|
101
|
+
await this.handlePullRequest(config, branchName, state, executionRepoPath, interactive, notifyCallback);
|
|
102
|
+
break;
|
|
103
|
+
case 'local-merge':
|
|
104
|
+
await this.handleLocalMerge(config, branchName, interactive);
|
|
105
|
+
break;
|
|
106
|
+
case 'none':
|
|
107
|
+
if (this.shouldLog(interactive)) {
|
|
108
|
+
console.log(`\n${c.dim('๐ Work preserved on branch:')} ${c.branch(branchName)}`);
|
|
109
|
+
}
|
|
110
|
+
break;
|
|
45
111
|
}
|
|
46
112
|
}
|
|
47
|
-
async
|
|
113
|
+
async handlePullRequest(config, branchName, state, executionRepoPath, interactive, notifyCallback) {
|
|
48
114
|
try {
|
|
49
|
-
|
|
115
|
+
const pushBranchManager = executionRepoPath !== this.repoPath
|
|
116
|
+
? new BranchManager(executionRepoPath)
|
|
117
|
+
: this.branchManager;
|
|
118
|
+
await pushBranchManager.pushBranch(branchName);
|
|
50
119
|
const exists = await this.prCreator.prExists(branchName);
|
|
51
120
|
if (exists) {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
console.log(` View it with: gh pr view ${branchName}`);
|
|
55
|
-
}
|
|
121
|
+
console.log(`\n${c.success('โ')} Pull request already exists for ${c.branch(branchName)}`);
|
|
122
|
+
console.log(` ${c.dim('View it with:')} ${c.cmd(`gh pr view ${branchName}`)}`);
|
|
56
123
|
return;
|
|
57
124
|
}
|
|
58
|
-
const prConfig = config.git
|
|
125
|
+
const prConfig = config.git?.pullRequest || {};
|
|
59
126
|
const result = await this.prCreator.createPR(branchName, config.git?.baseBranch || 'main', prConfig, state);
|
|
60
127
|
if (this.shouldLog(interactive)) {
|
|
61
|
-
|
|
128
|
+
const isComplete = state.status === 'completed';
|
|
129
|
+
const statusIcon = isComplete ? c.success('โ') : c.warn('โ ');
|
|
130
|
+
const statusSuffix = state.status === 'partial' ? c.dim(' (partial success)') : '';
|
|
131
|
+
console.log(`\n${statusIcon} Pull Request created${statusSuffix}: ${c.cmd(result.url)}`);
|
|
62
132
|
}
|
|
63
133
|
state.artifacts.pullRequest = {
|
|
64
134
|
url: result.url,
|
|
@@ -73,11 +143,81 @@ export class PipelineFinalizer {
|
|
|
73
143
|
});
|
|
74
144
|
}
|
|
75
145
|
catch (error) {
|
|
146
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
147
|
+
state.artifacts.prError = errorMessage;
|
|
148
|
+
await this.stateManager.saveState(state);
|
|
149
|
+
console.log(`\n${c.error('โ')} ${c.error('Failed to create PR:')} ${c.dim(errorMessage)}`);
|
|
150
|
+
console.log(` ${c.dim('Branch')} ${c.branch(branchName)} ${c.dim('has been pushed to remote.')}`);
|
|
151
|
+
console.log(` ${c.dim('You can create the PR manually with:')} ${c.cmd('gh pr create')}`);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
async handleLocalMerge(config, branchName, interactive) {
|
|
155
|
+
const baseBranch = config.git?.baseBranch || 'main';
|
|
156
|
+
const baseCheckedOutPath = await this.gitManager.isBranchCheckedOut(baseBranch);
|
|
157
|
+
let mergeWorktreePath = null;
|
|
158
|
+
let mergeAttemptedOnCheckedOutPath = false;
|
|
159
|
+
try {
|
|
160
|
+
if (baseCheckedOutPath) {
|
|
161
|
+
const checkedOutGitManager = new GitManager(baseCheckedOutPath);
|
|
162
|
+
const hasChanges = await checkedOutGitManager.hasUncommittedChanges();
|
|
163
|
+
if (hasChanges) {
|
|
164
|
+
if (this.shouldLog(interactive)) {
|
|
165
|
+
console.log(`\n${c.warn('โ ')} Cannot auto-merge: ${c.branch(baseBranch)} has uncommitted changes.`);
|
|
166
|
+
console.log(` ${c.dim('Pipeline completed successfully. Changes on branch:')} ${c.branch(branchName)}`);
|
|
167
|
+
console.log(`\n ${c.dim('Commit or stash your work, then run:')} ${c.cmd(`git merge ${branchName}`)}`);
|
|
168
|
+
}
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
if (this.shouldLog(interactive)) {
|
|
172
|
+
console.log(`\n${c.dim('๐ Merging')} ${c.branch(branchName)} ${c.dim('into')} ${c.branch(baseBranch)}${c.dim('...')}`);
|
|
173
|
+
}
|
|
174
|
+
try {
|
|
175
|
+
mergeAttemptedOnCheckedOutPath = true;
|
|
176
|
+
await checkedOutGitManager.merge(branchName);
|
|
177
|
+
console.log(`${c.success('โ')} Merged ${c.branch(branchName)} into ${c.branch(baseBranch)}`);
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
catch (mergeError) {
|
|
181
|
+
if (this.shouldLog(interactive)) {
|
|
182
|
+
console.log(`\n${c.error('โ')} Failed to merge: ${mergeError instanceof Error ? mergeError.message : String(mergeError)}`);
|
|
183
|
+
console.log(` ${c.dim('To resolve:')} ${c.cmd('git status')} then fix conflicts and ${c.cmd('git commit')}`);
|
|
184
|
+
console.log(` ${c.dim('Or abort:')} ${c.cmd('git merge --abort')}`);
|
|
185
|
+
}
|
|
186
|
+
throw mergeError;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
const worktreeBaseDir = this.worktreeManager.getWorktreeBaseDir();
|
|
190
|
+
await fs.mkdir(worktreeBaseDir, { recursive: true });
|
|
191
|
+
const safeBranchName = branchName.replace(/[\\/]/g, '-');
|
|
192
|
+
mergeWorktreePath = path.join(worktreeBaseDir, `merge-${safeBranchName}-${Date.now()}`);
|
|
193
|
+
await this.worktreeManager.createWorktree(mergeWorktreePath, baseBranch, baseBranch);
|
|
194
|
+
const mergeGitManager = new GitManager(mergeWorktreePath);
|
|
76
195
|
if (this.shouldLog(interactive)) {
|
|
77
|
-
console.
|
|
78
|
-
console.log(` Branch ${branchName} has been pushed to remote.`);
|
|
79
|
-
console.log(` You can create the PR manually with: gh pr create`);
|
|
196
|
+
console.log(`\n${c.dim('๐ Merging')} ${c.branch(branchName)} ${c.dim('into')} ${c.branch(baseBranch)}${c.dim('...')}`);
|
|
80
197
|
}
|
|
198
|
+
await mergeGitManager.merge(branchName);
|
|
199
|
+
await this.worktreeManager.removeWorktree(mergeWorktreePath, true);
|
|
200
|
+
await this.worktreeManager.pruneWorktrees();
|
|
201
|
+
mergeWorktreePath = null;
|
|
202
|
+
console.log(`${c.success('โ')} Merged ${c.branch(branchName)} into ${c.branch(baseBranch)}`);
|
|
203
|
+
}
|
|
204
|
+
catch (error) {
|
|
205
|
+
if (mergeAttemptedOnCheckedOutPath) {
|
|
206
|
+
throw error;
|
|
207
|
+
}
|
|
208
|
+
if (this.shouldLog(interactive)) {
|
|
209
|
+
console.log(`\n${c.error('โ')} ${c.error('Failed to merge:')} ${c.dim(error instanceof Error ? error.message : String(error))}`);
|
|
210
|
+
console.log(` ${c.dim('Branch')} ${c.branch(branchName)} ${c.dim('still exists with your changes.')}`);
|
|
211
|
+
console.log('');
|
|
212
|
+
console.log(` ${c.dim('You can merge manually with:')}`);
|
|
213
|
+
console.log(` ${c.cmd(`git checkout ${baseBranch} && git merge ${branchName}`)}`);
|
|
214
|
+
if (mergeWorktreePath) {
|
|
215
|
+
console.log('');
|
|
216
|
+
console.log(` ${c.dim('Merge worktree preserved at:')} ${c.path(mergeWorktreePath)}`);
|
|
217
|
+
}
|
|
218
|
+
console.log('');
|
|
219
|
+
}
|
|
220
|
+
throw error;
|
|
81
221
|
}
|
|
82
222
|
}
|
|
83
223
|
async notifyCompletion(state, notifyCallback) {
|
|
@@ -88,15 +228,86 @@ export class PipelineFinalizer {
|
|
|
88
228
|
prUrl: state.artifacts.pullRequest?.url
|
|
89
229
|
});
|
|
90
230
|
}
|
|
91
|
-
printSummary(state) {
|
|
92
|
-
|
|
231
|
+
printSummary(state, worktreePath, verbose = false) {
|
|
232
|
+
const totals = this.calculateTotalTokens(state);
|
|
233
|
+
console.log(PipelineFormatter.formatSummary(state, verbose, totals));
|
|
234
|
+
if (worktreePath && verbose) {
|
|
235
|
+
console.log(`\n${c.dim('๐ณ Worktree location:')} ${c.path(worktreePath)}`);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
calculateTotalTokens(state) {
|
|
239
|
+
let totalProcessed = 0;
|
|
240
|
+
let totalOutput = 0;
|
|
241
|
+
let totalTurns = 0;
|
|
242
|
+
let totalCacheRead = 0;
|
|
243
|
+
for (const stage of state.stages) {
|
|
244
|
+
if (stage.tokenUsage) {
|
|
245
|
+
const cacheRead = stage.tokenUsage.cache_read || 0;
|
|
246
|
+
const cacheCreation = stage.tokenUsage.cache_creation || 0;
|
|
247
|
+
const actualInput = stage.tokenUsage.actual_input || 0;
|
|
248
|
+
const cacheCreationIncluded = cacheCreation > 0 && actualInput >= cacheCreation;
|
|
249
|
+
const stageProcessed = actualInput + cacheRead + (cacheCreationIncluded ? 0 : cacheCreation);
|
|
250
|
+
totalProcessed += stageProcessed;
|
|
251
|
+
totalOutput += stage.tokenUsage.output || 0;
|
|
252
|
+
totalTurns += stage.tokenUsage.num_turns || 0;
|
|
253
|
+
totalCacheRead += cacheRead;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
return { totalProcessed, totalOutput, totalTurns, totalCacheRead };
|
|
257
|
+
}
|
|
258
|
+
async copyHandoverToMainRepo(sourcePath, destPath, interactive) {
|
|
259
|
+
try {
|
|
260
|
+
await fs.mkdir(path.dirname(destPath), { recursive: true });
|
|
261
|
+
await fs.cp(sourcePath, destPath, { recursive: true });
|
|
262
|
+
if (this.shouldLog(interactive)) {
|
|
263
|
+
console.log(`\n${c.dim('๐ Copied handover files to:')} ${c.path(destPath)}`);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
catch (error) {
|
|
267
|
+
if (this.shouldLog(interactive)) {
|
|
268
|
+
console.log(`\n${c.warn('โ ')} ${c.dim('Could not copy handover directory:')} ${c.dim(error instanceof Error ? error.message : String(error))}`);
|
|
269
|
+
console.log(` ${c.dim('Source:')} ${c.path(sourcePath)}`);
|
|
270
|
+
console.log(` ${c.dim('Destination:')} ${c.path(destPath)}`);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
93
273
|
}
|
|
94
|
-
async
|
|
95
|
-
if (
|
|
274
|
+
async handleWorktreeCleanup(worktreePath, config, status, interactive, prCreatedSuccessfully = false) {
|
|
275
|
+
if (!worktreePath || this.dryRun) {
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
const strategy = config.git?.branchStrategy || 'reusable';
|
|
279
|
+
const success = status === 'completed';
|
|
280
|
+
if (strategy === 'reusable') {
|
|
281
|
+
if (this.shouldLog(interactive)) {
|
|
282
|
+
console.log(`\n${c.dim('๐ณ Worktree preserved at:')} ${c.path(worktreePath)}`);
|
|
283
|
+
console.log(` ${c.dim('Use')} ${c.cmd('agent-pipeline cleanup --worktrees')} ${c.dim('to remove.')}`);
|
|
284
|
+
}
|
|
285
|
+
return;
|
|
286
|
+
}
|
|
287
|
+
if (strategy === 'unique-and-delete' && success) {
|
|
288
|
+
try {
|
|
289
|
+
await this.worktreeManager.cleanupWorktree(worktreePath, true, prCreatedSuccessfully);
|
|
290
|
+
if (this.shouldLog(interactive)) {
|
|
291
|
+
console.log(`\n${c.dim('๐๏ธ Cleaned up worktree:')} ${c.path(worktreePath)}`);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
catch (error) {
|
|
295
|
+
if (this.shouldLog(interactive)) {
|
|
296
|
+
console.log(`\n${c.warn('โ ')} ${c.dim('Could not cleanup worktree:')} ${c.dim(error instanceof Error ? error.message : String(error))}`);
|
|
297
|
+
console.log(` ${c.dim('Worktree remains at:')} ${c.path(worktreePath)}`);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
else if (strategy === 'unique-per-run' && success) {
|
|
302
|
+
if (this.shouldLog(interactive)) {
|
|
303
|
+
console.log(`\n${c.dim('๐ณ Worktree preserved at:')} ${c.path(worktreePath)}`);
|
|
304
|
+
console.log(` ${c.dim('Use')} ${c.cmd('agent-pipeline cleanup --worktrees')} ${c.dim('to remove.')}`);
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
else if (!success) {
|
|
96
308
|
if (this.shouldLog(interactive)) {
|
|
97
|
-
console.log(`\n
|
|
309
|
+
console.log(`\n${c.dim('๐ณ Worktree preserved for debugging:')} ${c.path(worktreePath)}`);
|
|
98
310
|
}
|
|
99
|
-
await this.branchManager.checkoutBranch(originalBranch);
|
|
100
311
|
}
|
|
101
312
|
}
|
|
102
313
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline-finalizer.js","sourceRoot":"","sources":["../../src/core/pipeline-finalizer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pipeline-finalizer.js","sourceRoot":"","sources":["../../src/core/pipeline-finalizer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAMnE,MAAM,CAAC,GAAG;IACR,OAAO,EAAE,KAAK,CAAC,KAAK;IACpB,IAAI,EAAE,KAAK,CAAC,MAAM;IAClB,KAAK,EAAE,KAAK,CAAC,GAAG;IAChB,GAAG,EAAE,KAAK,CAAC,GAAG;IACd,GAAG,EAAE,KAAK,CAAC,IAAI;IACf,MAAM,EAAE,KAAK,CAAC,OAAO;IACrB,IAAI,EAAE,KAAK,CAAC,MAAM;IAClB,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK;CACzB,CAAC;AAEF,MAAM,OAAO,iBAAiB;IAIlB;IACA;IACA;IACA;IACA;IACA;IACA;IATF,eAAe,CAAkB;IAEzC,YACU,UAAsB,EACtB,aAA4B,EAC5B,SAAoB,EACpB,YAA0B,EAC1B,QAAgB,EAChB,MAAe,EACf,SAA4C;QAN5C,eAAU,GAAV,UAAU,CAAY;QACtB,kBAAa,GAAb,aAAa,CAAe;QAC5B,cAAS,GAAT,SAAS,CAAW;QACpB,iBAAY,GAAZ,YAAY,CAAc;QAC1B,aAAQ,GAAR,QAAQ,CAAQ;QAChB,WAAM,GAAN,MAAM,CAAS;QACf,cAAS,GAAT,SAAS,CAAmC;QAEpD,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC;IACvD,CAAC;IAKD,KAAK,CAAC,QAAQ,CACZ,KAAoB,EACpB,MAAsB,EACtB,cAAkC,EAClC,YAAgC,EAChC,iBAAyB,EACzB,SAAiB,EACjB,WAAoB,EACpB,OAAgB,EAChB,cAA+D,EAC/D,mBAAmD,EACnD,OAAuF;QAEvF,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;QAEzC,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;QAGjE,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,8BAA8B,CAAC,CAAC,MAAM,CAAC,cAAc,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;gBACrI,IAAI,YAAY,EAAE,CAAC;oBACjB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,kCAAkC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;gBACzF,CAAC;YACH,CAAC;YAED,IAAI,YAAY,IAAI,KAAK,CAAC,SAAS,CAAC,mBAAmB,EAAE,CAAC;gBACxD,MAAM,IAAI,CAAC,sBAAsB,CAC/B,KAAK,CAAC,SAAS,CAAC,WAAW,EAC3B,KAAK,CAAC,SAAS,CAAC,mBAAmB,EACnC,WAAW,CACZ,CAAC;gBACF,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,mBAAmB,CAAC;YACpE,CAAC;YAED,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACzC,mBAAmB,CAAC,KAAK,CAAC,CAAC;YAC3B,MAAM,cAAc,CAAC;gBACnB,KAAK,EAAE,kBAAkB;gBACzB,aAAa,EAAE,KAAK;aACrB,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACf,CAAC;QAGD,IAAI,cAAc,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;YACjC,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,IAAI,MAAM,CAAC;YACzD,MAAM,IAAI,CAAC,mBAAmB,CAC5B,aAAa,EACb,MAAM,EACN,cAAc,EACd,KAAK,EACL,iBAAiB,EACjB,WAAW,EACX,cAAc,CACf,CAAC;QACJ,CAAC;QAGD,IAAI,YAAY,IAAI,KAAK,CAAC,SAAS,CAAC,mBAAmB,EAAE,CAAC;YACxD,MAAM,IAAI,CAAC,sBAAsB,CAC/B,KAAK,CAAC,SAAS,CAAC,WAAW,EAC3B,KAAK,CAAC,SAAS,CAAC,mBAAmB,EACnC,WAAW,CACZ,CAAC;YAEF,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,mBAAmB,CAAC;QACpE,CAAC;QAGD,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACzC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAG3B,IAAI,CAAC,OAAO,EAAE,8BAA8B,EAAE,CAAC;YAC7C,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QACrD,CAAC;QAGD,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC;QAGD,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC;QACjE,MAAM,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,qBAAqB,CAAC,CAAC;QAGzG,IAAI,cAAc,EAAE,CAAC;YACnB,cAAc,CAAC,gBAAgB,CAC7B,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,SAAS,CAAC,aAAa,EAC7B,KAAK,CAAC,MAAM,CAAC,MAAM,CACpB,CAAC;YACF,cAAc,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAKO,KAAK,CAAC,gBAAgB,CAC5B,KAAoB,EACpB,SAAiB,EACjB,iBAAyB;QAEzB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,KAAK,CAAC,SAAS,CAAC,aAAa,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC;QAG7D,MAAM,cAAc,GAAG,iBAAiB,KAAK,IAAI,CAAC,QAAQ;YACxD,CAAC,CAAC,IAAI,UAAU,CAAC,iBAAiB,CAAC;YACnC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;QACpB,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,MAAM,cAAc,CAAC,gBAAgB,EAAE,CAAC;IACxE,CAAC;IAKO,KAAK,CAAC,mBAAmB,CAC/B,QAAuB,EACvB,MAAsB,EACtB,UAAkB,EAClB,KAAoB,EACpB,iBAAyB,EACzB,WAAoB,EACpB,cAA+D;QAG/D,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,IAAI,CAAC,QAAQ,KAAK,cAAc,IAAI,QAAQ,KAAK,aAAa,CAAC,EAAE,CAAC;YAC/E,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,yBAAyB,CAAC,8BAA8B,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACzG,CAAC;YACD,OAAO;QACT,CAAC;QAED,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,cAAc;gBACjB,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;gBACxG,MAAM;YACR,KAAK,aAAa;gBAChB,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;gBAC7D,MAAM;YACR,KAAK,MAAM;gBAET,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;oBAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBACpF,CAAC;gBACD,MAAM;QACV,CAAC;IACH,CAAC;IAKO,KAAK,CAAC,iBAAiB,CAC7B,MAAsB,EACtB,UAAkB,EAClB,KAAoB,EACpB,iBAAyB,EACzB,WAAoB,EACpB,cAA+D;QAE/D,IAAI,CAAC;YAEH,MAAM,iBAAiB,GAAG,iBAAiB,KAAK,IAAI,CAAC,QAAQ;gBAC3D,CAAC,CAAC,IAAI,aAAa,CAAC,iBAAiB,CAAC;gBACtC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;YACvB,MAAM,iBAAiB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAG/C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACzD,IAAI,MAAM,EAAE,CAAC;gBAEX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBAC3F,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,cAAc,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;gBACjF,OAAO;YACT,CAAC;YAGD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,EAAE,WAAW,IAAI,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAC1C,UAAU,EACV,MAAM,CAAC,GAAG,EAAE,UAAU,IAAI,MAAM,EAChC,QAAQ,EACR,KAAK,CACN,CAAC;YAEF,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;gBAChC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC;gBAChD,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC7D,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnF,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,wBAAwB,YAAY,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC3F,CAAC;YAGD,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG;gBAC5B,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,MAAM,EAAE,UAAU;aACnB,CAAC;YAEF,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAGzC,MAAM,cAAc,CAAC;gBACnB,KAAK,EAAE,YAAY;gBACnB,aAAa,EAAE,KAAK;gBACpB,KAAK,EAAE,MAAM,CAAC,GAAG;aAClB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAG5E,KAAK,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY,CAAC;YACvC,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAGzC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAC3F,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,4BAA4B,CAAC,EAAE,CAAC,CAAC;YACpG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,sCAAsC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAKO,KAAK,CAAC,gBAAgB,CAC5B,MAAsB,EACtB,UAAkB,EAClB,WAAoB;QAEpB,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,EAAE,UAAU,IAAI,MAAM,CAAC;QACpD,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAChF,IAAI,iBAAiB,GAAkB,IAAI,CAAC;QAC5C,IAAI,8BAA8B,GAAG,KAAK,CAAC;QAE3C,IAAI,CAAC;YACH,IAAI,kBAAkB,EAAE,CAAC;gBAEvB,MAAM,oBAAoB,GAAG,IAAI,UAAU,CAAC,kBAAkB,CAAC,CAAC;gBAChE,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC,qBAAqB,EAAE,CAAC;gBAEtE,IAAI,UAAU,EAAE,CAAC;oBAEf,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;wBAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,2BAA2B,CAAC,CAAC;wBACrG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,qDAAqD,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;wBAC1G,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,sCAAsC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,aAAa,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;oBAC3G,CAAC;oBACD,OAAO;gBACT,CAAC;gBAGD,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;oBAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC1H,CAAC;gBAED,IAAI,CAAC;oBACH,8BAA8B,GAAG,IAAI,CAAC;oBACtC,MAAM,oBAAoB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;oBAE7C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;oBAC7F,OAAO;gBACT,CAAC;gBAAC,OAAO,UAAU,EAAE,CAAC;oBACpB,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;wBAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,UAAU,YAAY,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;wBAC3H,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,2BAA2B,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;wBAC/G,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;oBACxE,CAAC;oBACD,MAAM,UAAU,CAAC;gBACnB,CAAC;YACH,CAAC;YAED,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC;YAClE,MAAM,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAErD,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACzD,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAC3B,eAAe,EACf,SAAS,cAAc,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CACxC,CAAC;YAEF,MAAM,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,iBAAiB,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;YACrF,MAAM,eAAe,GAAG,IAAI,UAAU,CAAC,iBAAiB,CAAC,CAAC;YAE1D,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC1H,CAAC;YAED,MAAM,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAExC,MAAM,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;YACnE,MAAM,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,CAAC;YAC5C,iBAAiB,GAAG,IAAI,CAAC;YAGzB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC/F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,8BAA8B,EAAE,CAAC;gBACnC,MAAM,KAAK,CAAC;YACd,CAAC;YACD,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,iCAAiC,CAAC,EAAE,CAAC,CAAC;gBACzG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC;gBAC3D,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,gBAAgB,UAAU,iBAAiB,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;gBACpF,IAAI,iBAAiB,EAAE,CAAC;oBACtB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAChB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;gBAC1F,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAKO,KAAK,CAAC,gBAAgB,CAC5B,KAAoB,EACpB,cAA+D;QAE/D,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,iBAAiB,CAAC;QACtF,MAAM,cAAc,CAAC;YACnB,KAAK;YACL,aAAa,EAAE,KAAK;YACpB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG;SACxC,CAAC,CAAC;IACL,CAAC;IAKO,YAAY,CAAC,KAAoB,EAAE,YAAqB,EAAE,UAAmB,KAAK;QAExF,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAGhD,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QAErE,IAAI,YAAY,IAAI,OAAO,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAOO,oBAAoB,CAAC,KAAoB;QAM/C,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,cAAc,GAAG,CAAC,CAAC;QAEvB,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACrB,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,IAAI,CAAC,CAAC;gBACnD,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,cAAc,IAAI,CAAC,CAAC;gBAC3D,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,YAAY,IAAI,CAAC,CAAC;gBAGvD,MAAM,qBAAqB,GAAG,aAAa,GAAG,CAAC,IAAI,WAAW,IAAI,aAAa,CAAC;gBAChF,MAAM,cAAc,GAAG,WAAW,GAAG,SAAS,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;gBAE7F,cAAc,IAAI,cAAc,CAAC;gBACjC,WAAW,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC;gBAC5C,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,IAAI,CAAC,CAAC;gBAC9C,cAAc,IAAI,SAAS,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;IACrE,CAAC;IAMO,KAAK,CAAC,sBAAsB,CAClC,UAAkB,EAClB,QAAgB,EAChB,WAAoB;QAEpB,IAAI,CAAC;YAEH,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAG5D,MAAM,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAEvD,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAEf,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,oCAAoC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjJ,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBAC5D,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;IACH,CAAC;IAUO,KAAK,CAAC,qBAAqB,CACjC,YAAgC,EAChC,MAAsB,EACtB,MAA+B,EAC/B,WAAoB,EACpB,wBAAiC,KAAK;QAEtC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,EAAE,cAAc,IAAI,UAAU,CAAC;QAC1D,MAAM,OAAO,GAAG,MAAM,KAAK,WAAW,CAAC;QAGvC,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;gBAC/E,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,oCAAoC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAC1G,CAAC;YACD,OAAO;QACT,CAAC;QAID,IAAI,QAAQ,KAAK,mBAAmB,IAAI,OAAO,EAAE,CAAC;YAChD,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,YAAY,EAAE,IAAI,EAAE,qBAAqB,CAAC,CAAC;gBACtF,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;oBAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;gBACjF,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;oBAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;oBAC1I,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;gBAC7E,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,QAAQ,KAAK,gBAAgB,IAAI,OAAO,EAAE,CAAC;YACpD,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;gBAC/E,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,oCAAoC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAC1G,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,sCAAsC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAC5F,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,35 +1,43 @@
|
|
|
1
1
|
import { GitManager } from './git-manager.js';
|
|
2
|
-
import { BranchManager } from './branch-manager.js';
|
|
3
2
|
import { StageExecutor } from './stage-executor.js';
|
|
4
3
|
import { ParallelExecutor } from './parallel-executor.js';
|
|
4
|
+
import { HandoverManager } from './handover-manager.js';
|
|
5
5
|
import { AgentRuntime } from './types/agent-runtime.js';
|
|
6
6
|
import { PipelineConfig, PipelineState, LoopContext, PipelineMetadata } from '../config/schema.js';
|
|
7
7
|
import { NotificationManager } from '../notifications/notification-manager.js';
|
|
8
8
|
import { NotificationContext } from '../notifications/types.js';
|
|
9
|
+
import { PipelineAbortController } from './abort-controller.js';
|
|
10
|
+
import { PipelineLogger } from '../utils/pipeline-logger.js';
|
|
9
11
|
export interface InitializationResult {
|
|
10
12
|
state: PipelineState;
|
|
11
13
|
stageExecutor: StageExecutor;
|
|
12
14
|
parallelExecutor: ParallelExecutor;
|
|
15
|
+
handoverManager: HandoverManager;
|
|
13
16
|
pipelineBranch?: string;
|
|
14
|
-
|
|
17
|
+
worktreePath?: string;
|
|
18
|
+
executionRepoPath: string;
|
|
15
19
|
notificationManager?: NotificationManager;
|
|
20
|
+
pipelineLogger: PipelineLogger;
|
|
16
21
|
startTime: number;
|
|
22
|
+
verbose: boolean;
|
|
17
23
|
}
|
|
18
24
|
export declare class PipelineInitializer {
|
|
19
25
|
private gitManager;
|
|
20
|
-
private branchManager;
|
|
21
26
|
private repoPath;
|
|
22
27
|
private dryRun;
|
|
23
28
|
private runtime;
|
|
24
|
-
|
|
29
|
+
private worktreeManager;
|
|
30
|
+
constructor(gitManager: GitManager, repoPath: string, dryRun: boolean, runtime: AgentRuntime);
|
|
25
31
|
initialize(config: PipelineConfig, options: {
|
|
26
32
|
interactive?: boolean;
|
|
33
|
+
verbose?: boolean;
|
|
27
34
|
notificationManager?: NotificationManager;
|
|
28
35
|
loopContext?: LoopContext;
|
|
29
36
|
loopSessionId?: string;
|
|
30
37
|
metadata?: PipelineMetadata;
|
|
38
|
+
abortController?: PipelineAbortController;
|
|
31
39
|
}, notifyCallback: (context: NotificationContext) => Promise<void>, stateChangeCallback: (state: PipelineState) => void): Promise<InitializationResult>;
|
|
32
|
-
private
|
|
40
|
+
private setupWorktreeIsolation;
|
|
33
41
|
private createInitialState;
|
|
34
42
|
private logStartup;
|
|
35
43
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline-initializer.d.ts","sourceRoot":"","sources":["../../src/core/pipeline-initializer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"pipeline-initializer.d.ts","sourceRoot":"","sources":["../../src/core/pipeline-initializer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,aAAa,CAAC;IACrB,aAAa,EAAE,aAAa,CAAC;IAC7B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,eAAe,EAAE,eAAe,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,mBAAmB;IAI5B,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IANjB,OAAO,CAAC,eAAe,CAAkB;gBAG/B,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,YAAY;IAQzB,UAAU,CACd,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE;QACP,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;QAC1C,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;QAC5B,eAAe,CAAC,EAAE,uBAAuB,CAAC;KAC3C,EACD,cAAc,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,EAC/D,mBAAmB,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,GAClD,OAAO,CAAC,oBAAoB,CAAC;YA8HlB,sBAAsB;IAqCpC,OAAO,CAAC,kBAAkB;IAmD1B,OAAO,CAAC,UAAU;CAuBnB"}
|
|
@@ -1,34 +1,50 @@
|
|
|
1
1
|
import { v4 as uuidv4 } from 'uuid';
|
|
2
|
+
import { WorktreeManager } from './worktree-manager.js';
|
|
2
3
|
import { StageExecutor } from './stage-executor.js';
|
|
3
4
|
import { ParallelExecutor } from './parallel-executor.js';
|
|
5
|
+
import { HandoverManager } from './handover-manager.js';
|
|
4
6
|
import { NotificationManager } from '../notifications/notification-manager.js';
|
|
7
|
+
import { PipelineLogger } from '../utils/pipeline-logger.js';
|
|
5
8
|
export class PipelineInitializer {
|
|
6
9
|
gitManager;
|
|
7
|
-
branchManager;
|
|
8
10
|
repoPath;
|
|
9
11
|
dryRun;
|
|
10
12
|
runtime;
|
|
11
|
-
|
|
13
|
+
worktreeManager;
|
|
14
|
+
constructor(gitManager, repoPath, dryRun, runtime) {
|
|
12
15
|
this.gitManager = gitManager;
|
|
13
|
-
this.branchManager = branchManager;
|
|
14
16
|
this.repoPath = repoPath;
|
|
15
17
|
this.dryRun = dryRun;
|
|
16
18
|
this.runtime = runtime;
|
|
19
|
+
this.worktreeManager = new WorktreeManager(repoPath);
|
|
17
20
|
}
|
|
18
21
|
async initialize(config, options, notifyCallback, stateChangeCallback) {
|
|
22
|
+
const verbose = options.verbose ?? false;
|
|
19
23
|
const runId = uuidv4();
|
|
20
24
|
const notificationManager = options.notificationManager ||
|
|
21
25
|
(config.notifications
|
|
22
26
|
? new NotificationManager(config.notifications)
|
|
23
27
|
: undefined);
|
|
24
|
-
const
|
|
25
|
-
const
|
|
28
|
+
const pipelineLogger = new PipelineLogger(this.repoPath, config.name, options.interactive ?? true);
|
|
29
|
+
const isolation = await this.setupWorktreeIsolation(config, runId, options.interactive || false);
|
|
26
30
|
const triggerCommit = await this.gitManager.getCurrentCommit();
|
|
27
31
|
const changedFiles = await this.gitManager.getChangedFiles(triggerCommit);
|
|
28
32
|
const state = this.createInitialState(config, runId, triggerCommit, changedFiles, options.loopContext, options.loopSessionId, options.metadata);
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
33
|
+
if (isolation.worktreePath) {
|
|
34
|
+
state.artifacts.worktreePath = isolation.worktreePath;
|
|
35
|
+
}
|
|
36
|
+
const handoverRepoPath = isolation.worktreePath || this.repoPath;
|
|
37
|
+
const handoverManager = new HandoverManager(handoverRepoPath, config.name, runId, config.handover);
|
|
38
|
+
await handoverManager.initialize();
|
|
39
|
+
state.artifacts.handoverDir = handoverManager.getHandoverDir();
|
|
40
|
+
state.artifacts.logPath = pipelineLogger.getLogPath();
|
|
41
|
+
if (isolation.worktreePath) {
|
|
42
|
+
const mainRepoHandoverManager = new HandoverManager(this.repoPath, config.name, runId, config.handover);
|
|
43
|
+
state.artifacts.mainRepoHandoverDir = mainRepoHandoverManager.getHandoverDir();
|
|
44
|
+
}
|
|
45
|
+
const stageExecutor = new StageExecutor(this.gitManager, this.dryRun, handoverManager, this.runtime, this.repoPath, isolation.executionRepoPath, { interactive: options.interactive ?? true, verbose }, options.abortController, pipelineLogger);
|
|
46
|
+
const parallelExecutor = new ParallelExecutor(stageExecutor, stateChangeCallback, options.abortController);
|
|
47
|
+
this.logStartup(config, state, triggerCommit, isolation, pipelineLogger, verbose);
|
|
32
48
|
stateChangeCallback(state);
|
|
33
49
|
await notifyCallback({
|
|
34
50
|
event: 'pipeline.started',
|
|
@@ -39,21 +55,30 @@ export class PipelineInitializer {
|
|
|
39
55
|
state,
|
|
40
56
|
stageExecutor,
|
|
41
57
|
parallelExecutor,
|
|
42
|
-
|
|
43
|
-
|
|
58
|
+
handoverManager,
|
|
59
|
+
pipelineBranch: isolation.branchName,
|
|
60
|
+
worktreePath: isolation.worktreePath,
|
|
61
|
+
executionRepoPath: isolation.executionRepoPath,
|
|
44
62
|
notificationManager,
|
|
45
|
-
|
|
63
|
+
pipelineLogger,
|
|
64
|
+
startTime,
|
|
65
|
+
verbose
|
|
46
66
|
};
|
|
47
67
|
}
|
|
48
|
-
async
|
|
68
|
+
async setupWorktreeIsolation(config, runId, _interactive) {
|
|
49
69
|
if (!config.git || this.dryRun) {
|
|
50
|
-
return
|
|
51
|
-
}
|
|
52
|
-
const pipelineBranch = await this.branchManager.setupPipelineBranch(config.name, runId, config.git.baseBranch || 'main', config.git.branchStrategy || 'reusable', config.git.branchPrefix || 'pipeline');
|
|
53
|
-
if (!interactive) {
|
|
54
|
-
console.log(`๐ Running on branch: ${pipelineBranch}\n`);
|
|
70
|
+
return { executionRepoPath: this.repoPath };
|
|
55
71
|
}
|
|
56
|
-
|
|
72
|
+
const worktreeDir = config.git?.worktree?.directory;
|
|
73
|
+
const worktreeManager = worktreeDir
|
|
74
|
+
? new WorktreeManager(this.repoPath, worktreeDir)
|
|
75
|
+
: this.worktreeManager;
|
|
76
|
+
const result = await worktreeManager.setupPipelineWorktree(config.name, runId, config.git.baseBranch || 'main', config.git.branchStrategy || 'reusable', config.git.branchPrefix || 'pipeline');
|
|
77
|
+
return {
|
|
78
|
+
worktreePath: result.worktreePath,
|
|
79
|
+
branchName: result.branchName,
|
|
80
|
+
executionRepoPath: result.worktreePath
|
|
81
|
+
};
|
|
57
82
|
}
|
|
58
83
|
createInitialState(config, runId, triggerCommit, changedFiles, loopContext, loopSessionId, metadata) {
|
|
59
84
|
const stateLoopContext = loopContext
|
|
@@ -86,19 +111,22 @@ export class PipelineInitializer {
|
|
|
86
111
|
artifacts: {
|
|
87
112
|
initialCommit: triggerCommit,
|
|
88
113
|
changedFiles,
|
|
89
|
-
totalDuration: 0
|
|
114
|
+
totalDuration: 0,
|
|
115
|
+
handoverDir: ''
|
|
90
116
|
},
|
|
91
117
|
loopContext: stateLoopContext
|
|
92
118
|
};
|
|
93
119
|
}
|
|
94
|
-
logStartup(config, state, triggerCommit,
|
|
120
|
+
logStartup(config, state, triggerCommit, isolation, logger, verbose) {
|
|
121
|
+
logger.pipelineStart(config.name, state.runId, triggerCommit);
|
|
95
122
|
if (this.dryRun) {
|
|
96
|
-
|
|
123
|
+
logger.log('DRY RUN MODE - No commits will be created');
|
|
97
124
|
}
|
|
98
|
-
if (
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
125
|
+
if (verbose) {
|
|
126
|
+
if (isolation.worktreePath) {
|
|
127
|
+
logger.log(`Worktree: ${isolation.worktreePath}`);
|
|
128
|
+
logger.log(`Branch: ${isolation.branchName}`);
|
|
129
|
+
}
|
|
102
130
|
}
|
|
103
131
|
}
|
|
104
132
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline-initializer.js","sourceRoot":"","sources":["../../src/core/pipeline-initializer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"pipeline-initializer.js","sourceRoot":"","sources":["../../src/core/pipeline-initializer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { PipelineConfig, PipelineState, PipelineMetadata } from '../config/schema.js';
|
|
2
|
+
import { PipelineAbortController } from './abort-controller.js';
|
|
2
3
|
export declare class PipelineRunner {
|
|
3
4
|
private gitManager;
|
|
4
5
|
private branchManager;
|
|
@@ -13,24 +14,37 @@ export declare class PipelineRunner {
|
|
|
13
14
|
private repoPath;
|
|
14
15
|
private runtime;
|
|
15
16
|
private stateUpdateCallbacks;
|
|
16
|
-
private projectConfigLoader;
|
|
17
17
|
private loopStateManager;
|
|
18
|
+
private loopExecutionDirs?;
|
|
19
|
+
private loopMainDirs?;
|
|
18
20
|
constructor(repoPath: string, dryRun?: boolean);
|
|
19
21
|
private shouldLog;
|
|
20
22
|
private notifyStageResults;
|
|
21
23
|
runPipeline(config: PipelineConfig, options?: {
|
|
22
24
|
interactive?: boolean;
|
|
25
|
+
verbose?: boolean;
|
|
23
26
|
loop?: boolean;
|
|
24
27
|
loopMetadata?: PipelineMetadata;
|
|
25
28
|
maxLoopIterations?: number;
|
|
29
|
+
abortController?: PipelineAbortController;
|
|
26
30
|
}): Promise<PipelineState>;
|
|
27
31
|
private notifyStateChange;
|
|
28
32
|
private notify;
|
|
29
33
|
onStateChange(callback: (state: PipelineState) => void): void;
|
|
34
|
+
private getDefaultLoopingConfig;
|
|
35
|
+
private getSessionLoopDirs;
|
|
36
|
+
private resolveLoopDirectories;
|
|
37
|
+
private mapToExecutionDir;
|
|
38
|
+
private areSameLoopDirs;
|
|
39
|
+
private ensureLoopDirectoriesExist;
|
|
40
|
+
private copyLoopDirectories;
|
|
30
41
|
private _findNextPipelineFile;
|
|
31
42
|
private _getUniqueFilePath;
|
|
32
43
|
private _moveFile;
|
|
33
44
|
private _executeSinglePipeline;
|
|
34
45
|
private recordIteration;
|
|
46
|
+
private injectLoopStageIntoConfig;
|
|
47
|
+
private getUniqueLoopStageName;
|
|
48
|
+
private getPipelineName;
|
|
35
49
|
}
|
|
36
50
|
//# sourceMappingURL=pipeline-runner.d.ts.map
|