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,57 @@
|
|
|
1
|
+
import * as fs from 'fs/promises';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
export async function listAgentsCommand(repoPath) {
|
|
4
|
+
try {
|
|
5
|
+
const agentsDir = path.join(repoPath, '.claude', 'agents');
|
|
6
|
+
try {
|
|
7
|
+
await fs.access(agentsDir);
|
|
8
|
+
}
|
|
9
|
+
catch {
|
|
10
|
+
console.log('❌ No agents directory found');
|
|
11
|
+
console.log(' Run "agent-pipeline init" to set up the project\n');
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const files = await fs.readdir(agentsDir);
|
|
15
|
+
const mdFiles = files.filter(f => f.endsWith('.md') && !f.startsWith('.'));
|
|
16
|
+
if (mdFiles.length === 0) {
|
|
17
|
+
console.log('\n📋 No agents found\n');
|
|
18
|
+
console.log('💡 Import agents from Claude Code plugins:');
|
|
19
|
+
console.log(' agent-pipeline agent pull\n');
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const agents = [];
|
|
23
|
+
for (const file of mdFiles) {
|
|
24
|
+
const filePath = path.join(agentsDir, file);
|
|
25
|
+
const stats = await fs.stat(filePath);
|
|
26
|
+
const content = await fs.readFile(filePath, 'utf-8');
|
|
27
|
+
const headerMatch = content.match(/^#\s+(.+)$/m);
|
|
28
|
+
const description = headerMatch ? headerMatch[1] : 'No description';
|
|
29
|
+
agents.push({
|
|
30
|
+
name: path.basename(file, '.md'),
|
|
31
|
+
path: file,
|
|
32
|
+
description,
|
|
33
|
+
modified: stats.mtime
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
agents.sort((a, b) => a.name.localeCompare(b.name));
|
|
37
|
+
console.log(`\n📋 Available Agents (${agents.length})\n`);
|
|
38
|
+
console.log('─'.repeat(80));
|
|
39
|
+
console.log('NAME'.padEnd(30) +
|
|
40
|
+
'DESCRIPTION'.padEnd(40) +
|
|
41
|
+
'MODIFIED');
|
|
42
|
+
console.log('─'.repeat(80));
|
|
43
|
+
for (const agent of agents) {
|
|
44
|
+
const modifiedStr = agent.modified.toLocaleDateString();
|
|
45
|
+
console.log(agent.name.padEnd(30).substring(0, 30) +
|
|
46
|
+
agent.description.padEnd(40).substring(0, 40) +
|
|
47
|
+
modifiedStr);
|
|
48
|
+
}
|
|
49
|
+
console.log('─'.repeat(80));
|
|
50
|
+
console.log('\n💡 View agent details: agent-pipeline agent info <agent-name>\n');
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
console.error(`❌ Failed to list agents: ${error.message}`);
|
|
54
|
+
process.exit(1);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/cli/commands/agent/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/agent/pull.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CA4Ff"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import * as fs from 'fs/promises';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { AgentImporter } from '../../utils/agent-importer.js';
|
|
4
|
+
import { InteractivePrompts } from '../../utils/interactive-prompts.js';
|
|
5
|
+
export async function pullAgentsCommand(repoPath, options = {}) {
|
|
6
|
+
const agentsDir = path.join(repoPath, '.claude', 'agents');
|
|
7
|
+
try {
|
|
8
|
+
await fs.mkdir(agentsDir, { recursive: true });
|
|
9
|
+
if (options.source) {
|
|
10
|
+
console.log('⚠️ Custom source pull not yet implemented');
|
|
11
|
+
console.log(' Falling back to Claude Code plugins\n');
|
|
12
|
+
}
|
|
13
|
+
const summary = await AgentImporter.importPluginAgents(agentsDir);
|
|
14
|
+
if (summary.total === 0) {
|
|
15
|
+
console.log('\n💡 Tips for adding agents:');
|
|
16
|
+
console.log(' 1. Install Claude Code plugins with agent collections');
|
|
17
|
+
console.log(' 2. Create custom agents in .claude/agents/');
|
|
18
|
+
console.log(' 3. Import agents from files or URLs (coming soon)\n');
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
if (summary.skipped > 0) {
|
|
22
|
+
console.log(`\n⚠️ ${summary.skipped} agent(s) already exist\n`);
|
|
23
|
+
const update = await InteractivePrompts.confirm('Would you like to see which agents have updates available?', true);
|
|
24
|
+
if (update) {
|
|
25
|
+
console.log('\n📊 Checking for agent updates...\n');
|
|
26
|
+
for (const agent of summary.agents) {
|
|
27
|
+
const targetPath = path.join(agentsDir, agent.targetName);
|
|
28
|
+
try {
|
|
29
|
+
await fs.access(targetPath);
|
|
30
|
+
const existing = await fs.readFile(targetPath, 'utf-8');
|
|
31
|
+
const source = await fs.readFile(agent.originalPath, 'utf-8');
|
|
32
|
+
const cleanExisting = existing.replace(/<!--[\s\S]*?-->\n\n/, '');
|
|
33
|
+
const cleanSource = source;
|
|
34
|
+
if (cleanExisting !== cleanSource) {
|
|
35
|
+
console.log(` 📝 ${agent.agentName} - UPDATE AVAILABLE`);
|
|
36
|
+
const override = await InteractivePrompts.confirm(` Update ${agent.agentName}?`, false);
|
|
37
|
+
if (override) {
|
|
38
|
+
const enhancedContent = `<!--
|
|
39
|
+
Imported from Claude Code Plugin
|
|
40
|
+
Marketplace: ${agent.marketplace}
|
|
41
|
+
Plugin: ${agent.plugin}
|
|
42
|
+
Original: ${agent.agentName}.md
|
|
43
|
+
Imported: ${new Date().toISOString()}
|
|
44
|
+
Updated: ${new Date().toISOString()}
|
|
45
|
+
-->
|
|
46
|
+
|
|
47
|
+
${cleanSource}`;
|
|
48
|
+
await fs.writeFile(targetPath, enhancedContent, 'utf-8');
|
|
49
|
+
console.log(` ✅ Updated\n`);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
console.log(` ⏭️ Skipped\n`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
console.log('\n✅ Agent pull complete!\n');
|
|
62
|
+
console.log('💡 Next steps:');
|
|
63
|
+
console.log(' - View agents: agent-pipeline agent list');
|
|
64
|
+
console.log(' - Create pipeline: agent-pipeline create\n');
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
console.error(`❌ Failed to pull agents: ${error.message}`);
|
|
68
|
+
process.exit(1);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=pull.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../../../src/cli/commands/agent/pull.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/analytics.ts"],"names":[],"mappings":"AAKA,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;IACP,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GACA,OAAO,CAAC,IAAI,CAAC,CA0Ef"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { StateManager } from '../../core/state-manager.js';
|
|
2
|
+
import { PipelineAnalytics } from '../../analytics/pipeline-analytics.js';
|
|
3
|
+
export async function analyticsCommand(repoPath, options) {
|
|
4
|
+
const stateManager = new StateManager(repoPath);
|
|
5
|
+
const analytics = new PipelineAnalytics(stateManager, repoPath);
|
|
6
|
+
const timeRange = options.days
|
|
7
|
+
? {
|
|
8
|
+
start: new Date(Date.now() - options.days * 24 * 60 * 60 * 1000),
|
|
9
|
+
end: new Date()
|
|
10
|
+
}
|
|
11
|
+
: undefined;
|
|
12
|
+
if (options.loops) {
|
|
13
|
+
await displayLoopMetrics(analytics, timeRange, options.days);
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
const metrics = await analytics.generateMetrics(options.pipeline, timeRange);
|
|
17
|
+
if (metrics.totalRuns === 0) {
|
|
18
|
+
console.log('\n📊 Pipeline Analytics\n');
|
|
19
|
+
console.log('No pipeline runs found for the specified criteria.\n');
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
console.log('\n📊 Pipeline Analytics\n');
|
|
23
|
+
if (options.pipeline) {
|
|
24
|
+
console.log(`Pipeline: ${options.pipeline}`);
|
|
25
|
+
}
|
|
26
|
+
if (options.days) {
|
|
27
|
+
console.log(`Time Range: Last ${options.days} days`);
|
|
28
|
+
}
|
|
29
|
+
console.log('');
|
|
30
|
+
console.log(`Total Runs: ${metrics.totalRuns}`);
|
|
31
|
+
console.log(`Success Rate: ${(metrics.successRate * 100).toFixed(1)}%`);
|
|
32
|
+
console.log(`Average Duration: ${metrics.averageDuration.toFixed(2)}s\n`);
|
|
33
|
+
if (metrics.stageMetrics.size > 0) {
|
|
34
|
+
console.log('Stage Performance:');
|
|
35
|
+
for (const [name, stage] of metrics.stageMetrics) {
|
|
36
|
+
console.log(` ${name}:`);
|
|
37
|
+
console.log(` Success Rate: ${(stage.successRate * 100).toFixed(1)}%`);
|
|
38
|
+
console.log(` Avg Duration: ${stage.averageDuration.toFixed(2)}s`);
|
|
39
|
+
console.log(` Failures: ${stage.failureCount}`);
|
|
40
|
+
console.log(` Total Runs: ${stage.totalRuns}`);
|
|
41
|
+
}
|
|
42
|
+
console.log('');
|
|
43
|
+
}
|
|
44
|
+
if (metrics.failureReasons.size > 0) {
|
|
45
|
+
console.log('Top Failure Reasons:');
|
|
46
|
+
const sortedFailures = Array.from(metrics.failureReasons.entries())
|
|
47
|
+
.sort((a, b) => b[1] - a[1])
|
|
48
|
+
.slice(0, 5);
|
|
49
|
+
for (const [reason, count] of sortedFailures) {
|
|
50
|
+
console.log(` ${count}x ${reason}`);
|
|
51
|
+
}
|
|
52
|
+
console.log('');
|
|
53
|
+
}
|
|
54
|
+
if (metrics.trendsOverTime.length > 0) {
|
|
55
|
+
console.log('Trends Over Time (by day):');
|
|
56
|
+
const recentTrends = metrics.trendsOverTime.slice(-7);
|
|
57
|
+
for (const trend of recentTrends) {
|
|
58
|
+
const successBar = '█'.repeat(Math.round(trend.successRate * 20));
|
|
59
|
+
console.log(` ${trend.date}: ${successBar} ${(trend.successRate * 100).toFixed(0)}% (${trend.totalRuns} runs)`);
|
|
60
|
+
}
|
|
61
|
+
console.log('');
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
async function displayLoopMetrics(analytics, timeRange, days) {
|
|
65
|
+
const metrics = await analytics.generateLoopMetrics(timeRange);
|
|
66
|
+
if (metrics.totalSessions === 0) {
|
|
67
|
+
console.log('\n📊 Loop Analytics\n');
|
|
68
|
+
console.log('No loop sessions found for the specified criteria.\n');
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
console.log('\n📊 Loop Analytics\n');
|
|
72
|
+
if (days) {
|
|
73
|
+
console.log(`Time Range: Last ${days} days`);
|
|
74
|
+
}
|
|
75
|
+
console.log('');
|
|
76
|
+
console.log(`Total Sessions: ${metrics.totalSessions}`);
|
|
77
|
+
console.log(`Completed: ${metrics.completedSessions}`);
|
|
78
|
+
console.log(`Failed: ${metrics.failedSessions}`);
|
|
79
|
+
console.log(`Limit Reached: ${metrics.limitReachedSessions}`);
|
|
80
|
+
console.log(`Total Iterations: ${metrics.totalIterations}`);
|
|
81
|
+
console.log(`Avg Iterations/Session: ${metrics.averageIterationsPerSession.toFixed(2)}\n`);
|
|
82
|
+
if (metrics.terminationReasons.size > 0) {
|
|
83
|
+
console.log('Termination Reasons:');
|
|
84
|
+
for (const [reason, count] of metrics.terminationReasons) {
|
|
85
|
+
const percentage = ((count / metrics.totalSessions) * 100).toFixed(1);
|
|
86
|
+
console.log(` ${reason}: ${count} (${percentage}%)`);
|
|
87
|
+
}
|
|
88
|
+
console.log('');
|
|
89
|
+
}
|
|
90
|
+
if (metrics.mostCommonPipelines.size > 0) {
|
|
91
|
+
console.log('Most Common Pipelines:');
|
|
92
|
+
const sortedPipelines = Array.from(metrics.mostCommonPipelines.entries())
|
|
93
|
+
.sort((a, b) => b[1] - a[1])
|
|
94
|
+
.slice(0, 10);
|
|
95
|
+
for (const [pipeline, count] of sortedPipelines) {
|
|
96
|
+
console.log(` ${count}x ${pipeline}`);
|
|
97
|
+
}
|
|
98
|
+
console.log('');
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=analytics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../../src/cli/commands/analytics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanup.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/cleanup.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAqDf"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import * as fs from 'fs/promises';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { BranchManager } from '../../core/branch-manager.js';
|
|
4
|
+
import { InteractivePrompts } from '../utils/interactive-prompts.js';
|
|
5
|
+
export async function cleanupCommand(repoPath, options = {}) {
|
|
6
|
+
const branchManager = new BranchManager(repoPath);
|
|
7
|
+
const pipelineBranches = await branchManager.listPipelineBranches('pipeline');
|
|
8
|
+
const branchesToDelete = options.pipeline
|
|
9
|
+
? pipelineBranches.filter(b => b.includes(options.pipeline))
|
|
10
|
+
: pipelineBranches;
|
|
11
|
+
if (branchesToDelete.length === 0) {
|
|
12
|
+
console.log('No pipeline branches found to clean up');
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
console.log('Pipeline branches to delete:');
|
|
16
|
+
branchesToDelete.forEach(b => console.log(` - ${b}`));
|
|
17
|
+
if (!options.force) {
|
|
18
|
+
console.log('\nRun with --force to delete these branches');
|
|
19
|
+
console.log('Example: agent-pipeline cleanup --force');
|
|
20
|
+
console.log(' agent-pipeline cleanup --force --delete-logs');
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
console.log('\n🧹 Cleaning up pipeline branches...\n');
|
|
24
|
+
for (const branch of branchesToDelete) {
|
|
25
|
+
try {
|
|
26
|
+
await branchManager.deleteLocalBranch(branch, true);
|
|
27
|
+
console.log(`✅ Deleted ${branch}`);
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
console.error(`❌ Failed to delete ${branch}: ${error instanceof Error ? error.message : String(error)}`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
if (options.deleteLogs !== undefined ? options.deleteLogs : false) {
|
|
34
|
+
await deleteAssociatedLogs(repoPath, options.pipeline);
|
|
35
|
+
}
|
|
36
|
+
else if (branchesToDelete.length > 0) {
|
|
37
|
+
const shouldDeleteLogs = await InteractivePrompts.confirm('\nDelete associated history files?', false);
|
|
38
|
+
if (shouldDeleteLogs) {
|
|
39
|
+
await deleteAssociatedLogs(repoPath, options.pipeline);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
console.log('\n✨ Cleanup complete!');
|
|
43
|
+
}
|
|
44
|
+
async function deleteAssociatedLogs(repoPath, pipelineName) {
|
|
45
|
+
const stateDir = path.join(repoPath, '.agent-pipeline', 'state', 'runs');
|
|
46
|
+
try {
|
|
47
|
+
console.log('\n🗑️ Deleting history files...\n');
|
|
48
|
+
const stateFiles = await fs.readdir(stateDir);
|
|
49
|
+
let deletedCount = 0;
|
|
50
|
+
for (const file of stateFiles) {
|
|
51
|
+
if (!file.endsWith('.json'))
|
|
52
|
+
continue;
|
|
53
|
+
const statePath = path.join(stateDir, file);
|
|
54
|
+
const content = await fs.readFile(statePath, 'utf-8');
|
|
55
|
+
const state = JSON.parse(content);
|
|
56
|
+
const shouldDelete = pipelineName
|
|
57
|
+
? state.pipelineConfig?.name === pipelineName
|
|
58
|
+
: true;
|
|
59
|
+
if (shouldDelete) {
|
|
60
|
+
await fs.unlink(statePath);
|
|
61
|
+
console.log(` ✅ Deleted ${file}`);
|
|
62
|
+
deletedCount++;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if (deletedCount > 0) {
|
|
66
|
+
console.log(`\n 📊 Deleted ${deletedCount} history file(s)`);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
console.log(' No history files found to delete');
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
console.error(` ⚠️ Could not delete history files: ${error.message}`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=cleanup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../../src/cli/commands/cleanup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/history.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAOnD,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAoGxD,CAAC"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import React, { useState, useEffect } from 'react';
|
|
2
|
+
import { Box, Text, useInput, useApp } from 'ink';
|
|
3
|
+
import { spawn } from 'child_process';
|
|
4
|
+
import * as path from 'path';
|
|
5
|
+
import { StateManager } from '../../core/state-manager.js';
|
|
6
|
+
export const HistoryBrowser = ({ repoPath }) => {
|
|
7
|
+
const [runs, setRuns] = useState([]);
|
|
8
|
+
const [selectedIndex, setSelectedIndex] = useState(0);
|
|
9
|
+
const [detailView, setDetailView] = useState(false);
|
|
10
|
+
const { exit } = useApp();
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
loadHistory();
|
|
13
|
+
}, []);
|
|
14
|
+
const loadHistory = async () => {
|
|
15
|
+
const stateManager = new StateManager(repoPath);
|
|
16
|
+
const allRuns = await stateManager.getAllRuns();
|
|
17
|
+
setRuns(allRuns);
|
|
18
|
+
};
|
|
19
|
+
const openLogFile = async () => {
|
|
20
|
+
if (runs.length === 0)
|
|
21
|
+
return;
|
|
22
|
+
const selectedRun = runs[selectedIndex];
|
|
23
|
+
const logPath = path.join(repoPath, '.agent-pipeline', 'state', 'runs', `${selectedRun.runId}.json`);
|
|
24
|
+
const pager = process.env.PAGER || 'less';
|
|
25
|
+
exit();
|
|
26
|
+
const child = spawn(pager, [logPath], {
|
|
27
|
+
stdio: 'inherit',
|
|
28
|
+
shell: true
|
|
29
|
+
});
|
|
30
|
+
await new Promise((resolve) => {
|
|
31
|
+
child.on('exit', () => {
|
|
32
|
+
resolve();
|
|
33
|
+
});
|
|
34
|
+
child.on('error', () => {
|
|
35
|
+
resolve();
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
useInput((input, key) => {
|
|
40
|
+
if (detailView) {
|
|
41
|
+
if (key.escape || input === 'q') {
|
|
42
|
+
setDetailView(false);
|
|
43
|
+
}
|
|
44
|
+
else if (input === 'o') {
|
|
45
|
+
openLogFile();
|
|
46
|
+
}
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
if (key.upArrow) {
|
|
50
|
+
setSelectedIndex(Math.max(0, selectedIndex - 1));
|
|
51
|
+
}
|
|
52
|
+
else if (key.downArrow) {
|
|
53
|
+
setSelectedIndex(Math.min(runs.length - 1, selectedIndex + 1));
|
|
54
|
+
}
|
|
55
|
+
else if (key.return) {
|
|
56
|
+
setDetailView(true);
|
|
57
|
+
}
|
|
58
|
+
else if (input === 'o') {
|
|
59
|
+
openLogFile();
|
|
60
|
+
}
|
|
61
|
+
else if (input === 'q') {
|
|
62
|
+
exit();
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
if (runs.length === 0) {
|
|
66
|
+
return (React.createElement(Box, { flexDirection: "column", padding: 1 },
|
|
67
|
+
React.createElement(Text, { bold: true, color: "yellow" }, "No pipeline runs found"),
|
|
68
|
+
React.createElement(Text, { dimColor: true }, "Run a pipeline first to see history here.")));
|
|
69
|
+
}
|
|
70
|
+
if (detailView && runs[selectedIndex]) {
|
|
71
|
+
return React.createElement(PipelineDetailView, { state: runs[selectedIndex] });
|
|
72
|
+
}
|
|
73
|
+
return (React.createElement(Box, { flexDirection: "column", padding: 1 },
|
|
74
|
+
React.createElement(Text, { bold: true, color: "cyan" }, "\uD83D\uDCDC Pipeline History"),
|
|
75
|
+
React.createElement(Text, { dimColor: true }, "Use \u2191\u2193 to navigate, Enter to view details, o to open log file, q to quit"),
|
|
76
|
+
React.createElement(Box, { height: 1 }),
|
|
77
|
+
runs.map((run, index) => (React.createElement(RunRow, { key: run.runId, run: run, isSelected: index === selectedIndex })))));
|
|
78
|
+
};
|
|
79
|
+
const RunRow = ({ run, isSelected }) => {
|
|
80
|
+
const statusColor = run.status === 'completed' ? 'green' : run.status === 'failed' ? 'red' : 'yellow';
|
|
81
|
+
const formatDate = (iso) => {
|
|
82
|
+
const date = new Date(iso);
|
|
83
|
+
return date.toLocaleString();
|
|
84
|
+
};
|
|
85
|
+
return (React.createElement(Box, null,
|
|
86
|
+
React.createElement(Text, { color: isSelected ? 'cyan' : undefined, bold: isSelected },
|
|
87
|
+
isSelected ? '▶ ' : ' ',
|
|
88
|
+
formatDate(run.trigger.timestamp),
|
|
89
|
+
" |",
|
|
90
|
+
' ',
|
|
91
|
+
React.createElement(Text, { color: statusColor }, run.status),
|
|
92
|
+
" | ",
|
|
93
|
+
run.pipelineConfig.name,
|
|
94
|
+
" |",
|
|
95
|
+
' ',
|
|
96
|
+
run.artifacts.totalDuration.toFixed(1),
|
|
97
|
+
"s")));
|
|
98
|
+
};
|
|
99
|
+
const PipelineDetailView = ({ state }) => {
|
|
100
|
+
return (React.createElement(Box, { flexDirection: "column", padding: 1 },
|
|
101
|
+
React.createElement(Box, { borderStyle: "round", borderColor: "cyan", padding: 1 },
|
|
102
|
+
React.createElement(Box, { flexDirection: "column" },
|
|
103
|
+
React.createElement(Text, { bold: true, color: "cyan" },
|
|
104
|
+
"\uD83D\uDCCA Pipeline Details: ",
|
|
105
|
+
state.pipelineConfig.name),
|
|
106
|
+
React.createElement(Text, { dimColor: true }, "Press q or ESC to go back, o to open full log file"))),
|
|
107
|
+
React.createElement(Box, { height: 1 }),
|
|
108
|
+
React.createElement(Box, { flexDirection: "column" },
|
|
109
|
+
React.createElement(Text, null,
|
|
110
|
+
React.createElement(Text, { bold: true }, "Run ID:"),
|
|
111
|
+
" ",
|
|
112
|
+
state.runId),
|
|
113
|
+
React.createElement(Text, null,
|
|
114
|
+
React.createElement(Text, { bold: true }, "Status:"),
|
|
115
|
+
' ',
|
|
116
|
+
React.createElement(Text, { color: state.status === 'completed'
|
|
117
|
+
? 'green'
|
|
118
|
+
: state.status === 'failed'
|
|
119
|
+
? 'red'
|
|
120
|
+
: 'yellow' }, state.status.toUpperCase())),
|
|
121
|
+
React.createElement(Text, null,
|
|
122
|
+
React.createElement(Text, { bold: true }, "Duration:"),
|
|
123
|
+
" ",
|
|
124
|
+
state.artifacts.totalDuration.toFixed(2),
|
|
125
|
+
"s"),
|
|
126
|
+
React.createElement(Text, null,
|
|
127
|
+
React.createElement(Text, { bold: true }, "Timestamp:"),
|
|
128
|
+
" ",
|
|
129
|
+
new Date(state.trigger.timestamp).toLocaleString()),
|
|
130
|
+
React.createElement(Text, null,
|
|
131
|
+
React.createElement(Text, { bold: true }, "Trigger:"),
|
|
132
|
+
" ",
|
|
133
|
+
state.trigger.type),
|
|
134
|
+
React.createElement(Text, null,
|
|
135
|
+
React.createElement(Text, { bold: true }, "Initial Commit:"),
|
|
136
|
+
' ',
|
|
137
|
+
state.artifacts.initialCommit?.substring(0, 7) || 'N/A'),
|
|
138
|
+
React.createElement(Text, null,
|
|
139
|
+
React.createElement(Text, { bold: true }, "Final Commit:"),
|
|
140
|
+
" ",
|
|
141
|
+
state.artifacts.finalCommit?.substring(0, 7) || 'N/A')),
|
|
142
|
+
React.createElement(Box, { height: 1 }),
|
|
143
|
+
React.createElement(Text, { bold: true, color: "cyan" }, "Stages:"),
|
|
144
|
+
React.createElement(Box, { height: 1 }),
|
|
145
|
+
state.stages.map((stage) => (React.createElement(Box, { key: stage.stageName, flexDirection: "column", marginBottom: 1 },
|
|
146
|
+
React.createElement(Text, null,
|
|
147
|
+
stage.status === 'success' ? '✅' : stage.status === 'failed' ? '❌' : '⏭️',
|
|
148
|
+
' ',
|
|
149
|
+
React.createElement(Text, { bold: true }, stage.stageName),
|
|
150
|
+
stage.duration && React.createElement(Text, { dimColor: true },
|
|
151
|
+
" (",
|
|
152
|
+
stage.duration.toFixed(1),
|
|
153
|
+
"s)")),
|
|
154
|
+
stage.commitSha && (React.createElement(Box, { marginLeft: 3 },
|
|
155
|
+
React.createElement(Text, { dimColor: true }, "\u2514\u2500 Commit: "),
|
|
156
|
+
React.createElement(Text, { color: "cyan" }, stage.commitSha.substring(0, 7)))),
|
|
157
|
+
stage.extractedData && Object.keys(stage.extractedData).length > 0 && (React.createElement(Box, { marginLeft: 3, flexDirection: "column" },
|
|
158
|
+
React.createElement(Text, { dimColor: true }, "\u2514\u2500 Extracted Data:"),
|
|
159
|
+
Object.entries(stage.extractedData).map(([key, value]) => (React.createElement(Text, { key: key, dimColor: true },
|
|
160
|
+
' ',
|
|
161
|
+
"- ",
|
|
162
|
+
key,
|
|
163
|
+
": ",
|
|
164
|
+
String(value)))))),
|
|
165
|
+
stage.error && (React.createElement(Box, { marginLeft: 3, flexDirection: "column" },
|
|
166
|
+
React.createElement(Text, { color: "red" },
|
|
167
|
+
"\u2514\u2500 Error: ",
|
|
168
|
+
stage.error.message),
|
|
169
|
+
stage.error.suggestion && (React.createElement(Text, { color: "yellow" },
|
|
170
|
+
" \uD83D\uDCA1 ",
|
|
171
|
+
stage.error.suggestion)))))))));
|
|
172
|
+
};
|
|
173
|
+
//# sourceMappingURL=history.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../../src/cli/commands/history.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAcA,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;IACR,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,GACA,OAAO,CAAC,IAAI,CAAC,CAsHf"}
|