task-pipeliner 0.2.2 → 0.2.4

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 (168) hide show
  1. package/README.ko.md +17 -1
  2. package/README.md +17 -1
  3. package/dist/index.cjs +18 -16
  4. package/dist/index.js +18 -16
  5. package/dist/task-pipeliner-rs.node +0 -0
  6. package/package.json +17 -1
  7. package/dist/cli/index.d.ts +0 -19
  8. package/dist/cli/index.d.ts.map +0 -1
  9. package/dist/cli/index.js +0 -305
  10. package/dist/cli/index.js.map +0 -1
  11. package/dist/cli/prompts.d.ts +0 -48
  12. package/dist/cli/prompts.d.ts.map +0 -1
  13. package/dist/cli/prompts.js +0 -75
  14. package/dist/cli/prompts.js.map +0 -1
  15. package/dist/cli/ui.d.ts +0 -39
  16. package/dist/cli/ui.d.ts.map +0 -1
  17. package/dist/cli/ui.js +0 -84
  18. package/dist/cli/ui.js.map +0 -1
  19. package/dist/core/__tests__/actual-execution.test.d.ts +0 -2
  20. package/dist/core/__tests__/actual-execution.test.d.ts.map +0 -1
  21. package/dist/core/__tests__/actual-execution.test.js +0 -147
  22. package/dist/core/__tests__/actual-execution.test.js.map +0 -1
  23. package/dist/core/__tests__/base-dir.test.d.ts +0 -2
  24. package/dist/core/__tests__/base-dir.test.d.ts.map +0 -1
  25. package/dist/core/__tests__/base-dir.test.js +0 -146
  26. package/dist/core/__tests__/base-dir.test.js.map +0 -1
  27. package/dist/core/__tests__/built-code-execution.test.d.ts +0 -2
  28. package/dist/core/__tests__/built-code-execution.test.d.ts.map +0 -1
  29. package/dist/core/__tests__/built-code-execution.test.js +0 -48
  30. package/dist/core/__tests__/built-code-execution.test.js.map +0 -1
  31. package/dist/core/__tests__/choose-as-var-condition.test.d.ts +0 -2
  32. package/dist/core/__tests__/choose-as-var-condition.test.d.ts.map +0 -1
  33. package/dist/core/__tests__/choose-as-var-condition.test.js +0 -308
  34. package/dist/core/__tests__/choose-as-var-condition.test.js.map +0 -1
  35. package/dist/core/__tests__/cli-integration.test.d.ts +0 -2
  36. package/dist/core/__tests__/cli-integration.test.d.ts.map +0 -1
  37. package/dist/core/__tests__/cli-integration.test.js +0 -83
  38. package/dist/core/__tests__/cli-integration.test.js.map +0 -1
  39. package/dist/core/__tests__/comprehensive-basic-yaml.test.d.ts +0 -2
  40. package/dist/core/__tests__/comprehensive-basic-yaml.test.d.ts.map +0 -1
  41. package/dist/core/__tests__/comprehensive-basic-yaml.test.js +0 -114
  42. package/dist/core/__tests__/comprehensive-basic-yaml.test.js.map +0 -1
  43. package/dist/core/__tests__/condition-evaluator.test.d.ts +0 -2
  44. package/dist/core/__tests__/condition-evaluator.test.d.ts.map +0 -1
  45. package/dist/core/__tests__/condition-evaluator.test.js +0 -164
  46. package/dist/core/__tests__/condition-evaluator.test.js.map +0 -1
  47. package/dist/core/__tests__/debug-basic-yaml.test.d.ts +0 -2
  48. package/dist/core/__tests__/debug-basic-yaml.test.d.ts.map +0 -1
  49. package/dist/core/__tests__/debug-basic-yaml.test.js +0 -126
  50. package/dist/core/__tests__/debug-basic-yaml.test.js.map +0 -1
  51. package/dist/core/__tests__/example-files.test.d.ts +0 -2
  52. package/dist/core/__tests__/example-files.test.d.ts.map +0 -1
  53. package/dist/core/__tests__/example-files.test.js +0 -199
  54. package/dist/core/__tests__/example-files.test.js.map +0 -1
  55. package/dist/core/__tests__/executor-choice-integration.test.d.ts +0 -2
  56. package/dist/core/__tests__/executor-choice-integration.test.d.ts.map +0 -1
  57. package/dist/core/__tests__/executor-choice-integration.test.js +0 -169
  58. package/dist/core/__tests__/executor-choice-integration.test.js.map +0 -1
  59. package/dist/core/__tests__/executor-choice.test.d.ts +0 -2
  60. package/dist/core/__tests__/executor-choice.test.d.ts.map +0 -1
  61. package/dist/core/__tests__/executor-choice.test.js +0 -170
  62. package/dist/core/__tests__/executor-choice.test.js.map +0 -1
  63. package/dist/core/__tests__/executor-parallel.test.d.ts +0 -2
  64. package/dist/core/__tests__/executor-parallel.test.d.ts.map +0 -1
  65. package/dist/core/__tests__/executor-parallel.test.js +0 -129
  66. package/dist/core/__tests__/executor-parallel.test.js.map +0 -1
  67. package/dist/core/__tests__/executor-prompt.test.d.ts +0 -2
  68. package/dist/core/__tests__/executor-prompt.test.d.ts.map +0 -1
  69. package/dist/core/__tests__/executor-prompt.test.js +0 -147
  70. package/dist/core/__tests__/executor-prompt.test.js.map +0 -1
  71. package/dist/core/__tests__/executor-real-scenario.test.d.ts +0 -2
  72. package/dist/core/__tests__/executor-real-scenario.test.d.ts.map +0 -1
  73. package/dist/core/__tests__/executor-real-scenario.test.js +0 -169
  74. package/dist/core/__tests__/executor-real-scenario.test.js.map +0 -1
  75. package/dist/core/__tests__/file-condition.test.d.ts +0 -2
  76. package/dist/core/__tests__/file-condition.test.d.ts.map +0 -1
  77. package/dist/core/__tests__/file-condition.test.js +0 -172
  78. package/dist/core/__tests__/file-condition.test.js.map +0 -1
  79. package/dist/core/__tests__/final-verification.test.d.ts +0 -2
  80. package/dist/core/__tests__/final-verification.test.d.ts.map +0 -1
  81. package/dist/core/__tests__/final-verification.test.js +0 -56
  82. package/dist/core/__tests__/final-verification.test.js.map +0 -1
  83. package/dist/core/__tests__/parallel-when-condition.test.d.ts +0 -2
  84. package/dist/core/__tests__/parallel-when-condition.test.d.ts.map +0 -1
  85. package/dist/core/__tests__/parallel-when-condition.test.js +0 -155
  86. package/dist/core/__tests__/parallel-when-condition.test.js.map +0 -1
  87. package/dist/core/__tests__/parser.test.d.ts +0 -2
  88. package/dist/core/__tests__/parser.test.d.ts.map +0 -1
  89. package/dist/core/__tests__/parser.test.js +0 -91
  90. package/dist/core/__tests__/parser.test.js.map +0 -1
  91. package/dist/core/__tests__/real-inquirer-test.test.d.ts +0 -2
  92. package/dist/core/__tests__/real-inquirer-test.test.d.ts.map +0 -1
  93. package/dist/core/__tests__/real-inquirer-test.test.js +0 -20
  94. package/dist/core/__tests__/real-inquirer-test.test.js.map +0 -1
  95. package/dist/core/__tests__/reproduce-bug.test.d.ts +0 -2
  96. package/dist/core/__tests__/reproduce-bug.test.d.ts.map +0 -1
  97. package/dist/core/__tests__/reproduce-bug.test.js +0 -85
  98. package/dist/core/__tests__/reproduce-bug.test.js.map +0 -1
  99. package/dist/core/__tests__/timeout-retry.test.d.ts +0 -2
  100. package/dist/core/__tests__/timeout-retry.test.d.ts.map +0 -1
  101. package/dist/core/__tests__/timeout-retry.test.js +0 -184
  102. package/dist/core/__tests__/timeout-retry.test.js.map +0 -1
  103. package/dist/core/__tests__/workflow-validation.test.d.ts +0 -2
  104. package/dist/core/__tests__/workflow-validation.test.d.ts.map +0 -1
  105. package/dist/core/__tests__/workflow-validation.test.js +0 -116
  106. package/dist/core/__tests__/workflow-validation.test.js.map +0 -1
  107. package/dist/core/__tests__/workspace.test.d.ts +0 -2
  108. package/dist/core/__tests__/workspace.test.d.ts.map +0 -1
  109. package/dist/core/__tests__/workspace.test.js +0 -29
  110. package/dist/core/__tests__/workspace.test.js.map +0 -1
  111. package/dist/core/__tests__/yaml-integration.test.d.ts +0 -2
  112. package/dist/core/__tests__/yaml-integration.test.d.ts.map +0 -1
  113. package/dist/core/__tests__/yaml-integration.test.js +0 -114
  114. package/dist/core/__tests__/yaml-integration.test.js.map +0 -1
  115. package/dist/core/__tests__/yaml-scenarios.test.d.ts +0 -2
  116. package/dist/core/__tests__/yaml-scenarios.test.d.ts.map +0 -1
  117. package/dist/core/__tests__/yaml-scenarios.test.js +0 -197
  118. package/dist/core/__tests__/yaml-scenarios.test.js.map +0 -1
  119. package/dist/core/condition-evaluator.d.ts +0 -44
  120. package/dist/core/condition-evaluator.d.ts.map +0 -1
  121. package/dist/core/condition-evaluator.js +0 -121
  122. package/dist/core/condition-evaluator.js.map +0 -1
  123. package/dist/core/executor.d.ts +0 -172
  124. package/dist/core/executor.d.ts.map +0 -1
  125. package/dist/core/executor.js +0 -590
  126. package/dist/core/executor.js.map +0 -1
  127. package/dist/core/history.d.ts +0 -51
  128. package/dist/core/history.d.ts.map +0 -1
  129. package/dist/core/history.js +0 -57
  130. package/dist/core/history.js.map +0 -1
  131. package/dist/core/parser.d.ts +0 -41
  132. package/dist/core/parser.d.ts.map +0 -1
  133. package/dist/core/parser.js +0 -206
  134. package/dist/core/parser.js.map +0 -1
  135. package/dist/core/recorder.d.ts +0 -48
  136. package/dist/core/recorder.d.ts.map +0 -1
  137. package/dist/core/recorder.js +0 -56
  138. package/dist/core/recorder.js.map +0 -1
  139. package/dist/core/rust-task-runner.d.ts +0 -14
  140. package/dist/core/rust-task-runner.d.ts.map +0 -1
  141. package/dist/core/rust-task-runner.js +0 -34
  142. package/dist/core/rust-task-runner.js.map +0 -1
  143. package/dist/core/task-runner.d.ts +0 -63
  144. package/dist/core/task-runner.d.ts.map +0 -1
  145. package/dist/core/task-runner.js +0 -259
  146. package/dist/core/task-runner.js.map +0 -1
  147. package/dist/core/template.d.ts +0 -11
  148. package/dist/core/template.d.ts.map +0 -1
  149. package/dist/core/template.js +0 -36
  150. package/dist/core/template.js.map +0 -1
  151. package/dist/core/workflow-schema.d.ts +0 -31
  152. package/dist/core/workflow-schema.d.ts.map +0 -1
  153. package/dist/core/workflow-schema.js +0 -127
  154. package/dist/core/workflow-schema.js.map +0 -1
  155. package/dist/core/workspace.d.ts +0 -90
  156. package/dist/core/workspace.d.ts.map +0 -1
  157. package/dist/core/workspace.js +0 -143
  158. package/dist/core/workspace.js.map +0 -1
  159. package/dist/index.d.ts.map +0 -1
  160. package/dist/index.js.map +0 -1
  161. package/dist/types/condition.d.ts +0 -62
  162. package/dist/types/condition.d.ts.map +0 -1
  163. package/dist/types/condition.js +0 -6
  164. package/dist/types/condition.js.map +0 -1
  165. package/dist/types/workflow.d.ts +0 -90
  166. package/dist/types/workflow.d.ts.map +0 -1
  167. package/dist/types/workflow.js +0 -2
  168. package/dist/types/workflow.js.map +0 -1
@@ -1,57 +0,0 @@
1
- import { mkdir, readdir, rm, writeFile } from 'fs/promises';
2
- import { homedir } from 'os';
3
- import { basename, join } from 'path';
4
- import dayjs from 'dayjs';
5
- /**
6
- * Default directory for storing workflow execution history
7
- * Located at ~/.pipeliner/workflow-history/
8
- */
9
- export const WORKFLOW_HISTORY_DIR = join(homedir(), '.pipeliner', 'workflow-history');
10
- /**
11
- * WorkflowHistoryManager
12
- *
13
- * Manages workflow execution history storage and retrieval.
14
- * Handles saving, listing, and clearing workflow execution records.
15
- */
16
- export class WorkflowHistoryManager {
17
- constructor() { }
18
- /**
19
- * Save history to file
20
- * Creates the storage directory if it doesn't exist.
21
- * Generates a timestamp-based filename with random hash.
22
- */
23
- async saveHistory(history) {
24
- // Create storage directory if it doesn't exist
25
- await mkdir(WORKFLOW_HISTORY_DIR, { recursive: true });
26
- // Generate filename with timestamp and random hash
27
- const dateFormat = dayjs().format('YYYY-MM-DD_HH-mm-ss');
28
- const hash = Math.random().toString(36).slice(2, 6);
29
- const filepath = join(WORKFLOW_HISTORY_DIR, `workflow-${dateFormat}-${hash}.json`);
30
- // Save history to file
31
- await writeFile(filepath, JSON.stringify(history, null, 2), { encoding: 'utf8' });
32
- return filepath;
33
- }
34
- /**
35
- * Clear the storage directory
36
- * Removes all workflow execution history files.
37
- */
38
- async clearAllHistories() {
39
- // Remove the storage directory and all its contents
40
- await rm(WORKFLOW_HISTORY_DIR, { recursive: true, force: true });
41
- }
42
- async removeHistory(filename) {
43
- // Remove the history file
44
- await rm(join(WORKFLOW_HISTORY_DIR, filename), { force: true });
45
- }
46
- /**
47
- * Get all history names
48
- * Returns an array of all history file names in the storage directory.
49
- */
50
- async getHistoryNames() {
51
- // Get all files in the storage directory
52
- const files = await readdir(WORKFLOW_HISTORY_DIR);
53
- const fileNames = files.map((file) => basename(file));
54
- return fileNames;
55
- }
56
- }
57
- //# sourceMappingURL=history.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/core/history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,kBAAkB,CAAC,CAAC;AAoBtF;;;;;GAKG;AACH,MAAM,OAAO,sBAAsB;IACjC,gBAAe,CAAC;IAEhB;;;;OAIG;IACI,KAAK,CAAC,WAAW,CAAC,OAAgB;QACvC,+CAA+C;QAC/C,MAAM,KAAK,CAAC,oBAAoB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEvD,mDAAmD;QACnD,MAAM,UAAU,GAAG,KAAK,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,EAAE,YAAY,UAAU,IAAI,IAAI,OAAO,CAAC,CAAC;QAEnF,uBAAuB;QACvB,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAClF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,iBAAiB;QAC5B,oDAAoD;QACpD,MAAM,EAAE,CAAC,oBAAoB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACnE,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,QAAgB;QACzC,0BAA0B;QAC1B,MAAM,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,eAAe;QAC1B,yCAAyC;QACzC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACtD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
@@ -1,41 +0,0 @@
1
- /**
2
- * Workflow Parser
3
- *
4
- * Supports both YAML and JSON format workflow files.
5
- * Uses polymorphism to handle different file formats.
6
- * Validates parsed data using Zod schemas for type safety.
7
- */
8
- import type { Workflow } from '../types/workflow';
9
- /**
10
- * Parser interface for workflow files
11
- */
12
- export interface WorkflowParser {
13
- /**
14
- * Parse workflow content into Workflow object
15
- */
16
- parse(content: string): Workflow;
17
- /**
18
- * Extract line numbers for each step (for error reporting)
19
- * Returns a map: stepIndex -> lineNumber
20
- */
21
- extractStepLineNumbers(content: string): Map<number, number>;
22
- }
23
- /**
24
- * YAML Parser
25
- */
26
- export declare class YAMLParser implements WorkflowParser {
27
- parse(content: string): Workflow;
28
- extractStepLineNumbers(content: string): Map<number, number>;
29
- }
30
- /**
31
- * JSON Parser
32
- */
33
- export declare class JSONParser implements WorkflowParser {
34
- parse(content: string): Workflow;
35
- extractStepLineNumbers(content: string): Map<number, number>;
36
- }
37
- /**
38
- * Get appropriate parser based on file extension
39
- */
40
- export declare function getParser(filePath: string): WorkflowParser;
41
- //# sourceMappingURL=parser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/core/parser.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGlD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC;IAEjC;;;OAGG;IACH,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9D;AAwDD;;GAEG;AACH,qBAAa,UAAW,YAAW,cAAc;IAC/C,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ;IAqChC,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;CAqB7D;AAED;;GAEG;AACH,qBAAa,UAAW,YAAW,cAAc;IAC/C,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ;IAqChC,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;CA0C7D;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAc1D"}
@@ -1,206 +0,0 @@
1
- /**
2
- * Workflow Parser
3
- *
4
- * Supports both YAML and JSON format workflow files.
5
- * Uses polymorphism to handle different file formats.
6
- * Validates parsed data using Zod schemas for type safety.
7
- */
8
- import { parse } from 'yaml';
9
- import { ZodError } from 'zod';
10
- import { validateWorkflow } from './workflow-schema';
11
- /**
12
- * Fix malformed step (YAML indentation issue)
13
- * When choose/prompt is null but properties exist at step level
14
- * This happens when YAML is incorrectly indented
15
- */
16
- function fixMalformedStep(step) {
17
- const stepAsRecord = step;
18
- // Fix malformed choose structure
19
- if ('choose' in stepAsRecord &&
20
- (stepAsRecord.choose === null || stepAsRecord.choose === undefined) &&
21
- 'message' in stepAsRecord &&
22
- 'options' in stepAsRecord) {
23
- return {
24
- choose: {
25
- message: stepAsRecord.message,
26
- options: stepAsRecord.options,
27
- as: stepAsRecord.as,
28
- },
29
- when: stepAsRecord.when,
30
- };
31
- }
32
- // Fix malformed prompt structure
33
- if ('prompt' in stepAsRecord &&
34
- (stepAsRecord.prompt === null || stepAsRecord.prompt === undefined) &&
35
- 'message' in stepAsRecord &&
36
- 'as' in stepAsRecord) {
37
- return {
38
- prompt: {
39
- message: stepAsRecord.message,
40
- as: stepAsRecord.as,
41
- default: stepAsRecord.default,
42
- validate: stepAsRecord.validate,
43
- },
44
- when: stepAsRecord.when,
45
- };
46
- }
47
- // Fix malformed parallel steps
48
- if ('parallel' in stepAsRecord && Array.isArray(stepAsRecord.parallel)) {
49
- return {
50
- ...stepAsRecord,
51
- parallel: stepAsRecord.parallel.map((subStep) => fixMalformedStep(subStep)),
52
- };
53
- }
54
- return step;
55
- }
56
- /**
57
- * YAML Parser
58
- */
59
- export class YAMLParser {
60
- parse(content) {
61
- let parsed;
62
- try {
63
- parsed = parse(content);
64
- }
65
- catch (error) {
66
- throw new Error(`Invalid YAML format: ${error instanceof Error ? error.message : String(error)}`);
67
- }
68
- // Fix malformed steps before validation
69
- if (parsed && typeof parsed === 'object' && 'steps' in parsed) {
70
- const workflow = parsed;
71
- if (Array.isArray(workflow.steps)) {
72
- workflow.steps = workflow.steps.map((step) => fixMalformedStep(step));
73
- }
74
- }
75
- // Validate using Zod schema
76
- try {
77
- const validated = validateWorkflow(parsed);
78
- return validated;
79
- }
80
- catch (error) {
81
- if (error instanceof ZodError) {
82
- // Zod validation error
83
- const issues = error.issues
84
- .map((issue) => {
85
- const path = issue.path.length > 0 ? ` at ${issue.path.join('.')}` : '';
86
- return ` - ${issue.message}${path}`;
87
- })
88
- .join('\n');
89
- throw new Error(`Invalid workflow structure:\n${issues}`);
90
- }
91
- throw error;
92
- }
93
- }
94
- extractStepLineNumbers(content) {
95
- const lineNumbers = new Map();
96
- const lines = content.split('\n');
97
- let stepIndex = 0;
98
- let inSteps = false; // Track if we're inside the "steps:" section
99
- for (let i = 0; i < lines.length; i++) {
100
- const trimmed = lines[i].trim();
101
- // Found the "steps:" section
102
- if (trimmed === 'steps:' || trimmed.startsWith('steps:')) {
103
- inSteps = true;
104
- continue;
105
- }
106
- // Found a step (line starting with "-")
107
- if (inSteps && trimmed.startsWith('-')) {
108
- lineNumbers.set(stepIndex++, i + 1); // i+1 because line numbers are 1-based
109
- }
110
- }
111
- return lineNumbers;
112
- }
113
- }
114
- /**
115
- * JSON Parser
116
- */
117
- export class JSONParser {
118
- parse(content) {
119
- let parsed;
120
- try {
121
- parsed = JSON.parse(content);
122
- }
123
- catch (error) {
124
- throw new Error(`Invalid JSON format: ${error instanceof Error ? error.message : String(error)}`);
125
- }
126
- // Fix malformed steps before validation
127
- if (parsed && typeof parsed === 'object' && 'steps' in parsed) {
128
- const workflow = parsed;
129
- if (Array.isArray(workflow.steps)) {
130
- workflow.steps = workflow.steps.map((step) => fixMalformedStep(step));
131
- }
132
- }
133
- // Validate using Zod schema
134
- try {
135
- const validated = validateWorkflow(parsed);
136
- return validated;
137
- }
138
- catch (error) {
139
- if (error instanceof ZodError) {
140
- // Zod validation error
141
- const issues = error.issues
142
- .map((issue) => {
143
- const path = issue.path.length > 0 ? ` at ${issue.path.join('.')}` : '';
144
- return ` - ${issue.message}${path}`;
145
- })
146
- .join('\n');
147
- throw new Error(`Invalid workflow structure:\n${issues}`);
148
- }
149
- throw error;
150
- }
151
- }
152
- extractStepLineNumbers(content) {
153
- const lineNumbers = new Map();
154
- const lines = content.split('\n');
155
- let stepIndex = 0;
156
- let inSteps = false;
157
- let inStepsArray = false;
158
- for (let i = 0; i < lines.length; i++) {
159
- const line = lines[i];
160
- const trimmed = line.trim();
161
- // Found "steps" property
162
- if (trimmed.startsWith('"steps"') || trimmed.startsWith("'steps'")) {
163
- inSteps = true;
164
- // Check if it's an array start on the same line
165
- if (trimmed.includes('[')) {
166
- inStepsArray = true;
167
- }
168
- continue;
169
- }
170
- // Found array start after "steps"
171
- if (inSteps && trimmed === '[') {
172
- inStepsArray = true;
173
- continue;
174
- }
175
- // Found array end
176
- if (inStepsArray && trimmed === ']') {
177
- inStepsArray = false;
178
- inSteps = false;
179
- continue;
180
- }
181
- // Found a step object (starts with "{" and we're in steps array)
182
- if (inStepsArray && trimmed.startsWith('{')) {
183
- lineNumbers.set(stepIndex++, i + 1);
184
- }
185
- }
186
- return lineNumbers;
187
- }
188
- }
189
- /**
190
- * Get appropriate parser based on file extension
191
- */
192
- export function getParser(filePath) {
193
- const ext = filePath.toLowerCase().split('.').pop();
194
- switch (ext) {
195
- case 'yaml':
196
- case 'yml':
197
- return new YAMLParser();
198
- case 'json':
199
- return new JSONParser();
200
- default:
201
- // Default to YAML if extension is not recognized
202
- // This maintains backward compatibility
203
- return new YAMLParser();
204
- }
205
- }
206
- //# sourceMappingURL=parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/core/parser.ts"],"names":[],"mappings":"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"}
@@ -1,48 +0,0 @@
1
- import { Step, StepResult, StepStatus } from '../types/workflow';
2
- import { ExecutionContext } from './executor';
3
- /**
4
- * Interface for recording workflow step execution
5
- */
6
- export interface Recorder {
7
- /**
8
- * Record the start of a step execution (initial timestamp for duration calculation)
9
- */
10
- recordStart(): void;
11
- /**
12
- * Record a step execution with its result and status
13
- */
14
- recordEnd(step: Step, context: ExecutionContext, output: StepResult, status: StepStatus): void;
15
- }
16
- /**
17
- * WorkflowRecorder
18
- *
19
- * Records workflow execution history and saves it to disk.
20
- * Stores execution records in ~/.pipeliner/workflow-history/ directory.
21
- */
22
- declare class WorkflowRecorder implements Recorder {
23
- private records;
24
- private initialTimestamp;
25
- private recordStartTimestamp;
26
- constructor();
27
- recordStart(): void;
28
- /**
29
- * Record a step execution
30
- */
31
- recordEnd(step: Step, context: ExecutionContext, output: StepResult, status: StepStatus): void;
32
- /**
33
- * Reset the recorder, clearing all records and resetting the timestamp
34
- */
35
- reset(): void;
36
- /**
37
- * Save execution records to a JSON file
38
- * Creates the storage directory if it doesn't exist.
39
- * Generates a timestamp-based filename with random hash if filename is not provided.
40
- */
41
- save(): Promise<string>;
42
- /**
43
- * Get the duration since the recorder was initialized or last reset
44
- */
45
- private getDuration;
46
- }
47
- export { WorkflowRecorder };
48
- //# sourceMappingURL=recorder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"recorder.d.ts","sourceRoot":"","sources":["../../src/core/recorder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG9C;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,WAAW,IAAI,IAAI,CAAC;IACpB;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;CAChG;AAED;;;;;GAKG;AACH,cAAM,gBAAiB,YAAW,QAAQ;IACxC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,gBAAgB,CAAc;IACtC,OAAO,CAAC,oBAAoB,CAAc;;IAMnC,WAAW,IAAI,IAAI;IAI1B;;OAEG;IACI,SAAS,CACd,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,UAAU,GACjB,IAAI;IAKP;;OAEG;IACI,KAAK;IAKZ;;;;OAIG;IACU,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IAYpC;;OAEG;IACH,OAAO,CAAC,WAAW;CAGpB;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -1,56 +0,0 @@
1
- import { WorkflowHistoryManager } from './history';
2
- /**
3
- * WorkflowRecorder
4
- *
5
- * Records workflow execution history and saves it to disk.
6
- * Stores execution records in ~/.pipeliner/workflow-history/ directory.
7
- */
8
- class WorkflowRecorder {
9
- records = [];
10
- initialTimestamp = Date.now();
11
- recordStartTimestamp = Date.now();
12
- constructor() {
13
- this.records = [];
14
- }
15
- recordStart() {
16
- this.recordStartTimestamp = Date.now();
17
- }
18
- /**
19
- * Record a step execution
20
- */
21
- recordEnd(step, context, output, status) {
22
- const duration = this.getDuration();
23
- this.records.push({ step, context, output, duration, status });
24
- }
25
- /**
26
- * Reset the recorder, clearing all records and resetting the timestamp
27
- */
28
- reset() {
29
- this.records = [];
30
- this.initialTimestamp = Date.now();
31
- }
32
- /**
33
- * Save execution records to a JSON file
34
- * Creates the storage directory if it doesn't exist.
35
- * Generates a timestamp-based filename with random hash if filename is not provided.
36
- */
37
- async save() {
38
- // Create storage directory if it doesn't exist
39
- const historyManager = new WorkflowHistoryManager();
40
- // Create history object
41
- const resultJson = {
42
- initialTimestamp: this.initialTimestamp,
43
- records: this.records,
44
- };
45
- // Save history to file
46
- return await historyManager.saveHistory(resultJson);
47
- }
48
- /**
49
- * Get the duration since the recorder was initialized or last reset
50
- */
51
- getDuration() {
52
- return Date.now() - this.recordStartTimestamp;
53
- }
54
- }
55
- export { WorkflowRecorder };
56
- //# sourceMappingURL=recorder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"recorder.js","sourceRoot":"","sources":["../../src/core/recorder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAgBnD;;;;;GAKG;AACH,MAAM,gBAAgB;IACZ,OAAO,GAAa,EAAE,CAAC;IACvB,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC9B,oBAAoB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE1C;QACE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;IAEM,WAAW;QAChB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzC,CAAC;IAED;;OAEG;IACI,SAAS,CACd,IAAU,EACV,OAAyB,EACzB,MAAkB,EAClB,MAAkB;QAElB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACI,KAAK;QACV,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACrC,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,IAAI;QACf,+CAA+C;QAC/C,MAAM,cAAc,GAAG,IAAI,sBAAsB,EAAE,CAAC;QACpD,wBAAwB;QACxB,MAAM,UAAU,GAAY;YAC1B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;QACF,uBAAuB;QACvB,OAAO,MAAM,cAAc,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACK,WAAW;QACjB,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,oBAAoB,CAAC;IAChD,CAAC;CACF;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -1,14 +0,0 @@
1
- /**
2
- * Rust Task Runner Module
3
- * Directly imports Rust NAPI module (auto-generated by @napi-rs/cli)
4
- */
5
- interface RustTaskRunnerModule {
6
- runTask(command: string): Promise<boolean>;
7
- runTaskSync(command: string): boolean;
8
- }
9
- /**
10
- * Load Rust module (dynamically require .node file in ESM)
11
- */
12
- export declare function loadRustModule(): Promise<RustTaskRunnerModule | null>;
13
- export {};
14
- //# sourceMappingURL=rust-task-runner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rust-task-runner.d.ts","sourceRoot":"","sources":["../../src/core/rust-task-runner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,UAAU,oBAAoB;IAC5B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;CACvC;AAID;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CA4B3E"}
@@ -1,34 +0,0 @@
1
- /**
2
- * Rust Task Runner Module
3
- * Directly imports Rust NAPI module (auto-generated by @napi-rs/cli)
4
- */
5
- let rustModule = null;
6
- /**
7
- * Load Rust module (dynamically require .node file in ESM)
8
- */
9
- export async function loadRustModule() {
10
- if (rustModule) {
11
- return rustModule;
12
- }
13
- try {
14
- const path = await import('path');
15
- const { fileURLToPath } = await import('url');
16
- const { createRequire } = await import('module');
17
- const __filename = fileURLToPath(import.meta.url);
18
- const __dirname = path.dirname(__filename);
19
- const nodePath = path.resolve(__dirname, '../task-pipeliner-rs.node');
20
- // Use require to load .node file in ESM
21
- const require = createRequire(import.meta.url);
22
- const module = require(nodePath);
23
- if (module && 'runTask' in module) {
24
- rustModule = module;
25
- return rustModule;
26
- }
27
- }
28
- catch (_error) {
29
- // Return null if Rust module not found (use fallback)
30
- return null;
31
- }
32
- return null;
33
- }
34
- //# sourceMappingURL=rust-task-runner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rust-task-runner.js","sourceRoot":"","sources":["../../src/core/rust-task-runner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,IAAI,UAAU,GAAgC,IAAI,CAAC;AAEnD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEjD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,2BAA2B,CAAC,CAAC;QAEtE,wCAAwC;QACxC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEjC,IAAI,MAAM,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;YAClC,UAAU,GAAG,MAA8B,CAAC;YAC5C,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,sDAAsD;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,63 +0,0 @@
1
- export interface TaskRunResult {
2
- success: boolean;
3
- stdout: string[];
4
- stderr: string[];
5
- }
6
- export declare class TaskRunner {
7
- /**
8
- * Run a task command with box-style output streaming
9
- *
10
- * @param command - Shell command to execute
11
- * @param stepIndex - Step index in workflow (for tracking)
12
- * @param stepName - Display name for the step
13
- * @param branchIndex - Branch index for parallel execution
14
- * @param bufferOutput - If true, collect output instead of displaying immediately
15
- * @param hasCondition - If true, step has a condition (affects border color)
16
- * @param lineNumber - Line number in YAML file (for error reporting)
17
- * @param fileName - YAML file name (for error reporting)
18
- * @param cwd - Working directory for command execution
19
- * @param timeout - Timeout in seconds (optional)
20
- */
21
- run(command: string, stepIndex?: number, stepName?: string, branchIndex?: number, bufferOutput?: boolean, hasCondition?: boolean, lineNumber?: number, fileName?: string, cwd?: string, timeout?: number): Promise<boolean | TaskRunResult>;
22
- /**
23
- * Run command in buffered mode (collect all output for later display)
24
- * Used for parallel execution where we need to collect output first
25
- */
26
- private runBuffered;
27
- /**
28
- * Run command in real-time mode (output immediately as it happens)
29
- */
30
- private runRealtime;
31
- /**
32
- * Parse command string into command and arguments
33
- */
34
- private parseCommand;
35
- /**
36
- * Create spawn options with optional working directory
37
- */
38
- private createSpawnOptions;
39
- /**
40
- * Process stream buffer and extract complete lines
41
- *
42
- * Command output comes in chunks, not necessarily line-by-line.
43
- * This function:
44
- * 1. Combines new chunk with existing buffer
45
- * 2. Extracts all complete lines (ending with \n)
46
- * 3. Keeps incomplete line in buffer for next chunk
47
- *
48
- * Example:
49
- * - Buffer: "Hello "
50
- * - Chunk: "World\nHow are"
51
- * - Result: lines=["Hello World"], remaining="How are"
52
- */
53
- private processStreamBuffer;
54
- /**
55
- * Format nested output (add | prefix for nested display)
56
- */
57
- private formatNestedOutput;
58
- /**
59
- * Display buffered output in box format (for parallel execution, nested display)
60
- */
61
- displayBufferedOutput(result: TaskRunResult, stepName: string, isNested?: boolean, lineNumber?: number, fileName?: string): void;
62
- }
63
- //# sourceMappingURL=task-runner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task-runner.d.ts","sourceRoot":"","sources":["../../src/core/task-runner.ts"],"names":[],"mappings":"AAsBA,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAQD,qBAAa,UAAU;IACrB;;;;;;;;;;;;;OAaG;IACG,GAAG,CACP,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,GAAE,OAAe,EAC7B,YAAY,GAAE,OAAe,EAC7B,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,EACjB,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,GAAG,aAAa,CAAC;IAmBnC;;;OAGG;YACW,WAAW;IA8EzB;;OAEG;YACW,WAAW;IAwFzB;;OAEG;IACH,OAAO,CAAC,YAAY;IAKpB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAW1B;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,mBAAmB;IAmB3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;OAEG;IACH,qBAAqB,CACnB,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,EAChB,QAAQ,GAAE,OAAe,EACzB,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,GAChB,IAAI;CAmBR"}