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.
Files changed (312) hide show
  1. package/CLAUDE.md +134 -0
  2. package/README.md +209 -0
  3. package/dist/analytics/pipeline-analytics.d.ts +19 -0
  4. package/dist/analytics/pipeline-analytics.d.ts.map +1 -0
  5. package/dist/analytics/pipeline-analytics.js +155 -0
  6. package/dist/analytics/pipeline-analytics.js.map +1 -0
  7. package/dist/analytics/types.d.ts +31 -0
  8. package/dist/analytics/types.d.ts.map +1 -0
  9. package/dist/analytics/types.js +2 -0
  10. package/dist/analytics/types.js.map +1 -0
  11. package/dist/cli/commands/agent/info.d.ts +2 -0
  12. package/dist/cli/commands/agent/info.d.ts.map +1 -0
  13. package/dist/cli/commands/agent/info.js +62 -0
  14. package/dist/cli/commands/agent/info.js.map +1 -0
  15. package/dist/cli/commands/agent/list.d.ts +2 -0
  16. package/dist/cli/commands/agent/list.d.ts.map +1 -0
  17. package/dist/cli/commands/agent/list.js +57 -0
  18. package/dist/cli/commands/agent/list.js.map +1 -0
  19. package/dist/cli/commands/agent/pull.d.ts +5 -0
  20. package/dist/cli/commands/agent/pull.d.ts.map +1 -0
  21. package/dist/cli/commands/agent/pull.js +71 -0
  22. package/dist/cli/commands/agent/pull.js.map +1 -0
  23. package/dist/cli/commands/analytics.d.ts +6 -0
  24. package/dist/cli/commands/analytics.d.ts.map +1 -0
  25. package/dist/cli/commands/analytics.js +101 -0
  26. package/dist/cli/commands/analytics.js.map +1 -0
  27. package/dist/cli/commands/cleanup.d.ts +7 -0
  28. package/dist/cli/commands/cleanup.d.ts.map +1 -0
  29. package/dist/cli/commands/cleanup.js +76 -0
  30. package/dist/cli/commands/cleanup.js.map +1 -0
  31. package/dist/cli/commands/history.d.ts +7 -0
  32. package/dist/cli/commands/history.d.ts.map +1 -0
  33. package/dist/cli/commands/history.js +173 -0
  34. package/dist/cli/commands/history.js.map +1 -0
  35. package/dist/cli/commands/init.d.ts +7 -0
  36. package/dist/cli/commands/init.d.ts.map +1 -0
  37. package/dist/cli/commands/init.js +158 -0
  38. package/dist/cli/commands/init.js.map +1 -0
  39. package/dist/cli/commands/install.d.ts +2 -0
  40. package/dist/cli/commands/install.d.ts.map +1 -0
  41. package/dist/cli/commands/install.js +15 -0
  42. package/dist/cli/commands/install.js.map +1 -0
  43. package/dist/cli/commands/list.d.ts +2 -0
  44. package/dist/cli/commands/list.d.ts.map +1 -0
  45. package/dist/cli/commands/list.js +13 -0
  46. package/dist/cli/commands/list.js.map +1 -0
  47. package/dist/cli/commands/pipeline/clone.d.ts +2 -0
  48. package/dist/cli/commands/pipeline/clone.d.ts.map +1 -0
  49. package/dist/cli/commands/pipeline/clone.js +42 -0
  50. package/dist/cli/commands/pipeline/clone.js.map +1 -0
  51. package/dist/cli/commands/pipeline/config.d.ts +2 -0
  52. package/dist/cli/commands/pipeline/config.d.ts.map +1 -0
  53. package/dist/cli/commands/pipeline/config.js +23 -0
  54. package/dist/cli/commands/pipeline/config.js.map +1 -0
  55. package/dist/cli/commands/pipeline/create.d.ts +2 -0
  56. package/dist/cli/commands/pipeline/create.d.ts.map +1 -0
  57. package/dist/cli/commands/pipeline/create.js +86 -0
  58. package/dist/cli/commands/pipeline/create.js.map +1 -0
  59. package/dist/cli/commands/pipeline/delete.d.ts +6 -0
  60. package/dist/cli/commands/pipeline/delete.d.ts.map +1 -0
  61. package/dist/cli/commands/pipeline/delete.js +60 -0
  62. package/dist/cli/commands/pipeline/delete.js.map +1 -0
  63. package/dist/cli/commands/pipeline/edit.d.ts +2 -0
  64. package/dist/cli/commands/pipeline/edit.d.ts.map +1 -0
  65. package/dist/cli/commands/pipeline/edit.js +50 -0
  66. package/dist/cli/commands/pipeline/edit.js.map +1 -0
  67. package/dist/cli/commands/pipeline/export.d.ts +6 -0
  68. package/dist/cli/commands/pipeline/export.d.ts.map +1 -0
  69. package/dist/cli/commands/pipeline/export.js +48 -0
  70. package/dist/cli/commands/pipeline/export.js.map +1 -0
  71. package/dist/cli/commands/pipeline/import.d.ts +2 -0
  72. package/dist/cli/commands/pipeline/import.d.ts.map +1 -0
  73. package/dist/cli/commands/pipeline/import.js +59 -0
  74. package/dist/cli/commands/pipeline/import.js.map +1 -0
  75. package/dist/cli/commands/pipeline/validate.d.ts +2 -0
  76. package/dist/cli/commands/pipeline/validate.d.ts.map +1 -0
  77. package/dist/cli/commands/pipeline/validate.js +28 -0
  78. package/dist/cli/commands/pipeline/validate.js.map +1 -0
  79. package/dist/cli/commands/rollback.d.ts +6 -0
  80. package/dist/cli/commands/rollback.d.ts.map +1 -0
  81. package/dist/cli/commands/rollback.js +49 -0
  82. package/dist/cli/commands/rollback.js.map +1 -0
  83. package/dist/cli/commands/run.d.ts +15 -0
  84. package/dist/cli/commands/run.d.ts.map +1 -0
  85. package/dist/cli/commands/run.js +61 -0
  86. package/dist/cli/commands/run.js.map +1 -0
  87. package/dist/cli/commands/status.d.ts +2 -0
  88. package/dist/cli/commands/status.d.ts.map +1 -0
  89. package/dist/cli/commands/status.js +52 -0
  90. package/dist/cli/commands/status.js.map +1 -0
  91. package/dist/cli/commands/test.d.ts +5 -0
  92. package/dist/cli/commands/test.d.ts.map +1 -0
  93. package/dist/cli/commands/test.js +18 -0
  94. package/dist/cli/commands/test.js.map +1 -0
  95. package/dist/cli/commands/uninstall.d.ts +2 -0
  96. package/dist/cli/commands/uninstall.d.ts.map +1 -0
  97. package/dist/cli/commands/uninstall.js +6 -0
  98. package/dist/cli/commands/uninstall.js.map +1 -0
  99. package/dist/cli/hooks.d.ts +8 -0
  100. package/dist/cli/hooks.d.ts.map +1 -0
  101. package/dist/cli/hooks.js +98 -0
  102. package/dist/cli/hooks.js.map +1 -0
  103. package/dist/cli/templates/agents/cleanup-reporter.md +107 -0
  104. package/dist/cli/templates/agents/code-reducer.md +51 -0
  105. package/dist/cli/templates/agents/code-reviewer.md +34 -0
  106. package/dist/cli/templates/agents/context-reducer.md +94 -0
  107. package/dist/cli/templates/agents/dependency-auditor.md +127 -0
  108. package/dist/cli/templates/agents/detective-empath.md +26 -0
  109. package/dist/cli/templates/agents/detective-linguist.md +26 -0
  110. package/dist/cli/templates/agents/detective-logician.md +26 -0
  111. package/dist/cli/templates/agents/detective-skeptic.md +26 -0
  112. package/dist/cli/templates/agents/detective-statistician.md +26 -0
  113. package/dist/cli/templates/agents/doc-updater.md +30 -0
  114. package/dist/cli/templates/agents/judge.md +27 -0
  115. package/dist/cli/templates/agents/memory-updater.md +72 -0
  116. package/dist/cli/templates/agents/quality-checker.md +32 -0
  117. package/dist/cli/templates/agents/security-auditor.md +32 -0
  118. package/dist/cli/templates/agents/storyteller.md +26 -0
  119. package/dist/cli/templates/agents/summary.md +32 -0
  120. package/dist/cli/templates/agents/synthesizer.md +26 -0
  121. package/dist/cli/templates/pipelines/large-pipeline-example.yml +178 -0
  122. package/dist/cli/templates/pipelines/post-commit-example.yml +67 -0
  123. package/dist/cli/templates/pipelines/post-merge-example.yml +78 -0
  124. package/dist/cli/templates/pipelines/pre-commit-example.yml +41 -0
  125. package/dist/cli/templates/pipelines/pre-push-example.yml +51 -0
  126. package/dist/cli/templates/pipelines/test-pipeline.yml +90 -0
  127. package/dist/cli/utils/agent-importer.d.ts +21 -0
  128. package/dist/cli/utils/agent-importer.d.ts.map +1 -0
  129. package/dist/cli/utils/agent-importer.js +150 -0
  130. package/dist/cli/utils/agent-importer.js.map +1 -0
  131. package/dist/cli/utils/interactive-prompts.d.ts +10 -0
  132. package/dist/cli/utils/interactive-prompts.d.ts.map +1 -0
  133. package/dist/cli/utils/interactive-prompts.js +75 -0
  134. package/dist/cli/utils/interactive-prompts.js.map +1 -0
  135. package/dist/config/pipeline-loader.d.ts +14 -0
  136. package/dist/config/pipeline-loader.d.ts.map +1 -0
  137. package/dist/config/pipeline-loader.js +71 -0
  138. package/dist/config/pipeline-loader.js.map +1 -0
  139. package/dist/config/project-config-loader.d.ts +11 -0
  140. package/dist/config/project-config-loader.d.ts.map +1 -0
  141. package/dist/config/project-config-loader.js +100 -0
  142. package/dist/config/project-config-loader.js.map +1 -0
  143. package/dist/config/schema.d.ts +165 -0
  144. package/dist/config/schema.d.ts.map +1 -0
  145. package/dist/config/schema.js +2 -0
  146. package/dist/config/schema.js.map +1 -0
  147. package/dist/core/agent-query-runner.d.ts +25 -0
  148. package/dist/core/agent-query-runner.d.ts.map +1 -0
  149. package/dist/core/agent-query-runner.js +76 -0
  150. package/dist/core/agent-query-runner.js.map +1 -0
  151. package/dist/core/agent-runtime-registry.d.ts +11 -0
  152. package/dist/core/agent-runtime-registry.d.ts.map +1 -0
  153. package/dist/core/agent-runtime-registry.js +32 -0
  154. package/dist/core/agent-runtime-registry.js.map +1 -0
  155. package/dist/core/agent-runtimes/claude-code-headless-runtime.d.ts +16 -0
  156. package/dist/core/agent-runtimes/claude-code-headless-runtime.d.ts.map +1 -0
  157. package/dist/core/agent-runtimes/claude-code-headless-runtime.js +301 -0
  158. package/dist/core/agent-runtimes/claude-code-headless-runtime.js.map +1 -0
  159. package/dist/core/agent-runtimes/claude-sdk-runtime.d.ts +15 -0
  160. package/dist/core/agent-runtimes/claude-sdk-runtime.d.ts.map +1 -0
  161. package/dist/core/agent-runtimes/claude-sdk-runtime.js +92 -0
  162. package/dist/core/agent-runtimes/claude-sdk-runtime.js.map +1 -0
  163. package/dist/core/branch-manager.d.ts +15 -0
  164. package/dist/core/branch-manager.d.ts.map +1 -0
  165. package/dist/core/branch-manager.js +90 -0
  166. package/dist/core/branch-manager.js.map +1 -0
  167. package/dist/core/condition-evaluator.d.ts +16 -0
  168. package/dist/core/condition-evaluator.d.ts.map +1 -0
  169. package/dist/core/condition-evaluator.js +121 -0
  170. package/dist/core/condition-evaluator.js.map +1 -0
  171. package/dist/core/context-reducer.d.ts +15 -0
  172. package/dist/core/context-reducer.d.ts.map +1 -0
  173. package/dist/core/context-reducer.js +224 -0
  174. package/dist/core/context-reducer.js.map +1 -0
  175. package/dist/core/dag-planner.d.ts +13 -0
  176. package/dist/core/dag-planner.d.ts.map +1 -0
  177. package/dist/core/dag-planner.js +233 -0
  178. package/dist/core/dag-planner.js.map +1 -0
  179. package/dist/core/git-manager.d.ts +14 -0
  180. package/dist/core/git-manager.d.ts.map +1 -0
  181. package/dist/core/git-manager.js +70 -0
  182. package/dist/core/git-manager.js.map +1 -0
  183. package/dist/core/group-execution-orchestrator.d.ts +34 -0
  184. package/dist/core/group-execution-orchestrator.d.ts.map +1 -0
  185. package/dist/core/group-execution-orchestrator.js +238 -0
  186. package/dist/core/group-execution-orchestrator.js.map +1 -0
  187. package/dist/core/loop-state-manager.d.ts +29 -0
  188. package/dist/core/loop-state-manager.d.ts.map +1 -0
  189. package/dist/core/loop-state-manager.js +78 -0
  190. package/dist/core/loop-state-manager.js.map +1 -0
  191. package/dist/core/output-storage-manager.d.ts +14 -0
  192. package/dist/core/output-storage-manager.d.ts.map +1 -0
  193. package/dist/core/output-storage-manager.js +68 -0
  194. package/dist/core/output-storage-manager.js.map +1 -0
  195. package/dist/core/output-tool-builder.d.ts +6 -0
  196. package/dist/core/output-tool-builder.d.ts.map +1 -0
  197. package/dist/core/output-tool-builder.js +50 -0
  198. package/dist/core/output-tool-builder.js.map +1 -0
  199. package/dist/core/parallel-executor.d.ts +21 -0
  200. package/dist/core/parallel-executor.d.ts.map +1 -0
  201. package/dist/core/parallel-executor.js +93 -0
  202. package/dist/core/parallel-executor.js.map +1 -0
  203. package/dist/core/pipeline-finalizer.d.ts +24 -0
  204. package/dist/core/pipeline-finalizer.d.ts.map +1 -0
  205. package/dist/core/pipeline-finalizer.js +103 -0
  206. package/dist/core/pipeline-finalizer.js.map +1 -0
  207. package/dist/core/pipeline-initializer.d.ts +36 -0
  208. package/dist/core/pipeline-initializer.d.ts.map +1 -0
  209. package/dist/core/pipeline-initializer.js +105 -0
  210. package/dist/core/pipeline-initializer.js.map +1 -0
  211. package/dist/core/pipeline-runner.d.ts +36 -0
  212. package/dist/core/pipeline-runner.d.ts.map +1 -0
  213. package/dist/core/pipeline-runner.js +326 -0
  214. package/dist/core/pipeline-runner.js.map +1 -0
  215. package/dist/core/pr-creator.d.ts +23 -0
  216. package/dist/core/pr-creator.d.ts.map +1 -0
  217. package/dist/core/pr-creator.js +138 -0
  218. package/dist/core/pr-creator.js.map +1 -0
  219. package/dist/core/retry-handler.d.ts +15 -0
  220. package/dist/core/retry-handler.d.ts.map +1 -0
  221. package/dist/core/retry-handler.js +95 -0
  222. package/dist/core/retry-handler.js.map +1 -0
  223. package/dist/core/stage-executor.d.ts +27 -0
  224. package/dist/core/stage-executor.d.ts.map +1 -0
  225. package/dist/core/stage-executor.js +365 -0
  226. package/dist/core/stage-executor.js.map +1 -0
  227. package/dist/core/state-manager.d.ts +10 -0
  228. package/dist/core/state-manager.d.ts.map +1 -0
  229. package/dist/core/state-manager.js +61 -0
  230. package/dist/core/state-manager.js.map +1 -0
  231. package/dist/core/types/agent-runtime.d.ts +51 -0
  232. package/dist/core/types/agent-runtime.d.ts.map +1 -0
  233. package/dist/core/types/agent-runtime.js +2 -0
  234. package/dist/core/types/agent-runtime.js.map +1 -0
  235. package/dist/core/types/execution-graph.d.ts +29 -0
  236. package/dist/core/types/execution-graph.d.ts.map +1 -0
  237. package/dist/core/types/execution-graph.js +2 -0
  238. package/dist/core/types/execution-graph.js.map +1 -0
  239. package/dist/index.d.ts +3 -0
  240. package/dist/index.d.ts.map +1 -0
  241. package/dist/index.js +400 -0
  242. package/dist/index.js.map +1 -0
  243. package/dist/notifications/notification-manager.d.ts +12 -0
  244. package/dist/notifications/notification-manager.d.ts.map +1 -0
  245. package/dist/notifications/notification-manager.js +74 -0
  246. package/dist/notifications/notification-manager.js.map +1 -0
  247. package/dist/notifications/notifiers/base-notifier.d.ts +9 -0
  248. package/dist/notifications/notifiers/base-notifier.d.ts.map +1 -0
  249. package/dist/notifications/notifiers/base-notifier.js +27 -0
  250. package/dist/notifications/notifiers/base-notifier.js.map +1 -0
  251. package/dist/notifications/notifiers/local-notifier.d.ts +11 -0
  252. package/dist/notifications/notifiers/local-notifier.d.ts.map +1 -0
  253. package/dist/notifications/notifiers/local-notifier.js +91 -0
  254. package/dist/notifications/notifiers/local-notifier.js.map +1 -0
  255. package/dist/notifications/notifiers/slack-notifier.d.ts +13 -0
  256. package/dist/notifications/notifiers/slack-notifier.d.ts.map +1 -0
  257. package/dist/notifications/notifiers/slack-notifier.js +209 -0
  258. package/dist/notifications/notifiers/slack-notifier.js.map +1 -0
  259. package/dist/notifications/types.d.ts +34 -0
  260. package/dist/notifications/types.d.ts.map +1 -0
  261. package/dist/notifications/types.js +2 -0
  262. package/dist/notifications/types.js.map +1 -0
  263. package/dist/ui/components/execution-group.d.ts +10 -0
  264. package/dist/ui/components/execution-group.d.ts.map +1 -0
  265. package/dist/ui/components/execution-group.js +19 -0
  266. package/dist/ui/components/execution-group.js.map +1 -0
  267. package/dist/ui/components/stage-row.d.ts +10 -0
  268. package/dist/ui/components/stage-row.d.ts.map +1 -0
  269. package/dist/ui/components/stage-row.js +69 -0
  270. package/dist/ui/components/stage-row.js.map +1 -0
  271. package/dist/ui/components/status-badge.d.ts +7 -0
  272. package/dist/ui/components/status-badge.d.ts.map +1 -0
  273. package/dist/ui/components/status-badge.js +18 -0
  274. package/dist/ui/components/status-badge.js.map +1 -0
  275. package/dist/ui/components/summary-line.d.ts +9 -0
  276. package/dist/ui/components/summary-line.d.ts.map +1 -0
  277. package/dist/ui/components/summary-line.js +13 -0
  278. package/dist/ui/components/summary-line.js.map +1 -0
  279. package/dist/ui/pipeline-ui.d.ts +8 -0
  280. package/dist/ui/pipeline-ui.d.ts.map +1 -0
  281. package/dist/ui/pipeline-ui.js +82 -0
  282. package/dist/ui/pipeline-ui.js.map +1 -0
  283. package/dist/utils/error-factory.d.ts +21 -0
  284. package/dist/utils/error-factory.d.ts.map +1 -0
  285. package/dist/utils/error-factory.js +74 -0
  286. package/dist/utils/error-factory.js.map +1 -0
  287. package/dist/utils/errors.d.ts +11 -0
  288. package/dist/utils/errors.d.ts.map +1 -0
  289. package/dist/utils/errors.js +21 -0
  290. package/dist/utils/errors.js.map +1 -0
  291. package/dist/utils/gh-cli-checker.d.ts +6 -0
  292. package/dist/utils/gh-cli-checker.d.ts.map +1 -0
  293. package/dist/utils/gh-cli-checker.js +42 -0
  294. package/dist/utils/gh-cli-checker.js.map +1 -0
  295. package/dist/utils/logger.d.ts +16 -0
  296. package/dist/utils/logger.d.ts.map +1 -0
  297. package/dist/utils/logger.js +39 -0
  298. package/dist/utils/logger.js.map +1 -0
  299. package/dist/utils/pipeline-formatter.d.ts +10 -0
  300. package/dist/utils/pipeline-formatter.d.ts.map +1 -0
  301. package/dist/utils/pipeline-formatter.js +92 -0
  302. package/dist/utils/pipeline-formatter.js.map +1 -0
  303. package/dist/utils/token-estimator.d.ts +15 -0
  304. package/dist/utils/token-estimator.d.ts.map +1 -0
  305. package/dist/utils/token-estimator.js +46 -0
  306. package/dist/utils/token-estimator.js.map +1 -0
  307. package/dist/validators/pipeline-validator.d.ts +31 -0
  308. package/dist/validators/pipeline-validator.d.ts.map +1 -0
  309. package/dist/validators/pipeline-validator.js +540 -0
  310. package/dist/validators/pipeline-validator.js.map +1 -0
  311. package/license +21 -0
  312. 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,5 @@
1
+ export interface PullAgentsOptions {
2
+ source?: string;
3
+ }
4
+ export declare function pullAgentsCommand(repoPath: string, options?: PullAgentsOptions): Promise<void>;
5
+ //# sourceMappingURL=pull.d.ts.map
@@ -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":"AAEA,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAMxE,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,QAAgB,EAChB,UAA6B,EAAE;IAE/B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAE3D,IAAI,CAAC;QAEH,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE/C,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAEnB,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QAC1D,CAAC;QAGD,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAElE,IAAI,OAAO,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;YACxE,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;YACtE,OAAO;QACT,CAAC;QAGD,IAAI,OAAO,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,SAAS,OAAO,CAAC,OAAO,2BAA2B,CAAC,CAAC;YAEjE,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAC7C,4DAA4D,EAC5D,IAAI,CACL,CAAC;YAEF,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;gBAEpD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;oBACnC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;oBAE1D,IAAI,CAAC;wBACH,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;wBAG5B,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;wBACxD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;wBAG9D,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;wBAClE,MAAM,WAAW,GAAG,MAAM,CAAC;wBAE3B,IAAI,aAAa,KAAK,WAAW,EAAE,CAAC;4BAClC,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,SAAS,qBAAqB,CAAC,CAAC;4BAE3D,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAC/C,gBAAgB,KAAK,CAAC,SAAS,GAAG,EAClC,KAAK,CACN,CAAC;4BAEF,IAAI,QAAQ,EAAE,CAAC;gCACb,MAAM,eAAe,GAAG;;eAEzB,KAAK,CAAC,WAAW;UACtB,KAAK,CAAC,MAAM;YACV,KAAK,CAAC,SAAS;YACf,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;WACzB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;;;EAGjC,WAAW,EAAE,CAAC;gCAEA,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;gCACzD,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;4BACnC,CAAC;iCAAM,CAAC;gCACN,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;4BACrC,CAAC;wBACH,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;oBAET,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAE/D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,4BAA6B,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare function analyticsCommand(repoPath: string, options: {
2
+ pipeline?: string;
3
+ days?: number;
4
+ loops?: boolean;
5
+ }): Promise<void>;
6
+ //# sourceMappingURL=analytics.d.ts.map
@@ -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,7 @@
1
+ export interface CleanupOptions {
2
+ pipeline?: string;
3
+ force?: boolean;
4
+ deleteLogs?: boolean;
5
+ }
6
+ export declare function cleanupCommand(repoPath: string, options?: CleanupOptions): Promise<void>;
7
+ //# sourceMappingURL=cleanup.d.ts.map
@@ -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,7 @@
1
+ import React from 'react';
2
+ interface HistoryBrowserProps {
3
+ repoPath: string;
4
+ }
5
+ export declare const HistoryBrowser: React.FC<HistoryBrowserProps>;
6
+ export {};
7
+ //# sourceMappingURL=history.d.ts.map
@@ -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,7 @@
1
+ export declare function initCommand(repoPath: string, options?: {
2
+ exampleName?: string;
3
+ all?: boolean;
4
+ importPluginAgents?: boolean;
5
+ interactive?: boolean;
6
+ }): Promise<void>;
7
+ //# sourceMappingURL=init.d.ts.map
@@ -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"}