task-o-matic 0.0.11 → 0.0.13

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 (123) hide show
  1. package/dist/commands/tasks/create.d.ts.map +1 -1
  2. package/dist/commands/tasks/create.js +6 -13
  3. package/dist/commands/tasks/document/add.d.ts +3 -0
  4. package/dist/commands/tasks/document/add.d.ts.map +1 -0
  5. package/dist/commands/tasks/document/add.js +35 -0
  6. package/dist/commands/tasks/document/analyze.d.ts +3 -0
  7. package/dist/commands/tasks/document/analyze.d.ts.map +1 -0
  8. package/dist/commands/tasks/document/analyze.js +49 -0
  9. package/dist/commands/tasks/document/get.d.ts +3 -0
  10. package/dist/commands/tasks/document/get.d.ts.map +1 -0
  11. package/dist/commands/tasks/document/get.js +29 -0
  12. package/dist/commands/tasks/document/index.d.ts +8 -0
  13. package/dist/commands/tasks/document/index.d.ts.map +1 -0
  14. package/dist/commands/tasks/document/index.js +13 -0
  15. package/dist/commands/tasks/enhance.d.ts.map +1 -1
  16. package/dist/commands/tasks/enhance.js +64 -61
  17. package/dist/commands/tasks/execute-loop.d.ts.map +1 -1
  18. package/dist/commands/tasks/execute-loop.js +66 -97
  19. package/dist/commands/tasks/execute.d.ts.map +1 -1
  20. package/dist/commands/tasks/execute.js +52 -16
  21. package/dist/commands/tasks/plan/create.d.ts +3 -0
  22. package/dist/commands/tasks/plan/create.d.ts.map +1 -0
  23. package/dist/commands/tasks/plan/create.js +37 -0
  24. package/dist/commands/tasks/plan/delete.d.ts +3 -0
  25. package/dist/commands/tasks/plan/delete.d.ts.map +1 -0
  26. package/dist/commands/tasks/plan/delete.js +14 -0
  27. package/dist/commands/tasks/plan/get.d.ts +3 -0
  28. package/dist/commands/tasks/plan/get.d.ts.map +1 -0
  29. package/dist/commands/tasks/plan/get.js +24 -0
  30. package/dist/commands/tasks/plan/index.d.ts +10 -0
  31. package/dist/commands/tasks/plan/index.d.ts.map +1 -0
  32. package/dist/commands/tasks/plan/index.js +17 -0
  33. package/dist/commands/tasks/plan/list.d.ts +3 -0
  34. package/dist/commands/tasks/plan/list.d.ts.map +1 -0
  35. package/dist/commands/tasks/plan/list.js +21 -0
  36. package/dist/commands/tasks/plan/set.d.ts +3 -0
  37. package/dist/commands/tasks/plan/set.d.ts.map +1 -0
  38. package/dist/commands/tasks/plan/set.js +33 -0
  39. package/dist/commands/tasks/split.d.ts.map +1 -1
  40. package/dist/commands/tasks/split.js +65 -60
  41. package/dist/lib/ai-service/documentation-operations.d.ts.map +1 -1
  42. package/dist/lib/ai-service/documentation-operations.js +22 -12
  43. package/dist/lib/ai-service/prd-operations.d.ts.map +1 -1
  44. package/dist/lib/ai-service/prd-operations.js +18 -25
  45. package/dist/lib/executors/opencode-executor.d.ts.map +1 -1
  46. package/dist/lib/executors/opencode-executor.js +3 -1
  47. package/dist/lib/git-utils.d.ts +45 -0
  48. package/dist/lib/git-utils.d.ts.map +1 -0
  49. package/dist/lib/git-utils.js +160 -0
  50. package/dist/lib/prompt-builder.d.ts +11 -0
  51. package/dist/lib/prompt-builder.d.ts.map +1 -1
  52. package/dist/lib/prompt-builder.js +59 -0
  53. package/dist/lib/prompt-registry.d.ts.map +1 -1
  54. package/dist/lib/prompt-registry.js +158 -0
  55. package/dist/lib/task-execution-core.d.ts +7 -0
  56. package/dist/lib/task-execution-core.d.ts.map +1 -0
  57. package/dist/lib/task-execution-core.js +360 -0
  58. package/dist/lib/task-execution.d.ts +4 -0
  59. package/dist/lib/task-execution.d.ts.map +1 -1
  60. package/dist/lib/task-execution.js +31 -178
  61. package/dist/lib/task-loop-execution.d.ts +1 -19
  62. package/dist/lib/task-loop-execution.d.ts.map +1 -1
  63. package/dist/lib/task-loop-execution.js +50 -592
  64. package/dist/lib/task-planning.d.ts +28 -0
  65. package/dist/lib/task-planning.d.ts.map +1 -0
  66. package/dist/lib/task-planning.js +109 -0
  67. package/dist/lib/task-review.d.ts +27 -0
  68. package/dist/lib/task-review.d.ts.map +1 -0
  69. package/dist/lib/task-review.js +106 -0
  70. package/dist/lib/validation.d.ts +20 -3
  71. package/dist/lib/validation.d.ts.map +1 -1
  72. package/dist/lib/validation.js +39 -10
  73. package/dist/prompts/documentation-recap.d.ts +3 -0
  74. package/dist/prompts/documentation-recap.d.ts.map +1 -0
  75. package/dist/prompts/documentation-recap.js +13 -0
  76. package/dist/prompts/index.d.ts +4 -0
  77. package/dist/prompts/index.d.ts.map +1 -1
  78. package/dist/prompts/index.js +4 -0
  79. package/dist/prompts/prd-question-answer.d.ts +3 -0
  80. package/dist/prompts/prd-question-answer.d.ts.map +1 -0
  81. package/dist/prompts/prd-question-answer.js +27 -0
  82. package/dist/prompts/task-execution.d.ts +3 -0
  83. package/dist/prompts/task-execution.d.ts.map +1 -0
  84. package/dist/prompts/task-execution.js +21 -0
  85. package/dist/prompts/workflow-prompts.d.ts +9 -0
  86. package/dist/prompts/workflow-prompts.d.ts.map +1 -0
  87. package/dist/prompts/workflow-prompts.js +93 -0
  88. package/dist/services/workflow-ai-assistant.d.ts.map +1 -1
  89. package/dist/services/workflow-ai-assistant.js +72 -94
  90. package/dist/test/task-loop-git.test.js +6 -6
  91. package/dist/types/cli-options.d.ts +138 -0
  92. package/dist/types/cli-options.d.ts.map +1 -0
  93. package/dist/types/cli-options.js +6 -0
  94. package/dist/types/index.d.ts +38 -0
  95. package/dist/types/index.d.ts.map +1 -1
  96. package/dist/utils/bulk-operations.d.ts +51 -0
  97. package/dist/utils/bulk-operations.d.ts.map +1 -0
  98. package/dist/utils/bulk-operations.js +68 -0
  99. package/dist/utils/cli-validators.d.ts +54 -0
  100. package/dist/utils/cli-validators.d.ts.map +1 -0
  101. package/dist/utils/cli-validators.js +75 -0
  102. package/dist/utils/command-error-handler.d.ts +32 -0
  103. package/dist/utils/command-error-handler.d.ts.map +1 -0
  104. package/dist/utils/command-error-handler.js +52 -0
  105. package/dist/utils/confirmation.d.ts +19 -0
  106. package/dist/utils/confirmation.d.ts.map +1 -0
  107. package/dist/utils/confirmation.js +39 -0
  108. package/dist/utils/display-helpers.d.ts +81 -0
  109. package/dist/utils/display-helpers.d.ts.map +1 -0
  110. package/dist/utils/display-helpers.js +109 -0
  111. package/dist/utils/model-executor-parser.d.ts +38 -0
  112. package/dist/utils/model-executor-parser.d.ts.map +1 -0
  113. package/dist/utils/model-executor-parser.js +67 -0
  114. package/dist/utils/progress-tracking.d.ts +28 -0
  115. package/dist/utils/progress-tracking.d.ts.map +1 -0
  116. package/dist/utils/progress-tracking.js +43 -0
  117. package/package.json +1 -1
  118. package/dist/commands/tasks/document.d.ts +0 -5
  119. package/dist/commands/tasks/document.d.ts.map +0 -1
  120. package/dist/commands/tasks/document.js +0 -118
  121. package/dist/commands/tasks/plan.d.ts +0 -7
  122. package/dist/commands/tasks/plan.d.ts.map +0 -1
  123. package/dist/commands/tasks/plan.js +0 -131
@@ -0,0 +1,28 @@
1
+ import { ExecutorTool, Task } from "../types";
2
+ /**
3
+ * Planning phase configuration
4
+ */
5
+ export interface PlanningConfig {
6
+ planModel?: string;
7
+ reviewPlan?: boolean;
8
+ autoCommit?: boolean;
9
+ dry?: boolean;
10
+ }
11
+ /**
12
+ * Planning phase result
13
+ */
14
+ export interface PlanningResult {
15
+ planContent?: string;
16
+ planFileName?: string;
17
+ success: boolean;
18
+ error?: string;
19
+ }
20
+ /**
21
+ * Execute planning phase for a task
22
+ * Creates an AI-generated implementation plan with optional human review
23
+ */
24
+ export declare function executePlanningPhase(task: Task, defaultTool: ExecutorTool, config: PlanningConfig, execFn?: (command: string) => Promise<{
25
+ stdout: string;
26
+ stderr: string;
27
+ }>): Promise<PlanningResult>;
28
+ //# sourceMappingURL=task-planning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-planning.d.ts","sourceRoot":"","sources":["../../src/lib/task-planning.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,YAAY,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAS9D;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,YAAY,EACzB,MAAM,EAAE,cAAc,EACtB,MAAM,GAAE,CACN,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAa,GAC3D,OAAO,CAAC,cAAc,CAAC,CAgIzB"}
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.executePlanningPhase = executePlanningPhase;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const executor_factory_1 = require("./executors/executor-factory");
9
+ const fs_1 = require("fs");
10
+ const inquirer_1 = __importDefault(require("inquirer"));
11
+ const child_process_1 = require("child_process");
12
+ const util_1 = require("util");
13
+ const git_utils_1 = require("./git-utils");
14
+ const execAsync = (0, util_1.promisify)(child_process_1.exec);
15
+ /**
16
+ * Execute planning phase for a task
17
+ * Creates an AI-generated implementation plan with optional human review
18
+ */
19
+ async function executePlanningPhase(task, defaultTool, config, execFn = execAsync) {
20
+ const { planModel, reviewPlan, autoCommit, dry } = config;
21
+ console.log(chalk_1.default.blue.bold(`\n🧠 Starting Planning Phase for Task: ${task.title}`));
22
+ const planFileName = `task-${task.id}-plan.md`;
23
+ // Parse executor and model from planModel string
24
+ const planExecutor = planModel
25
+ ? planModel.split(":")[0]
26
+ : defaultTool;
27
+ const planModelName = planModel ? planModel.split(":")[1] : undefined;
28
+ let planningPrompt = `You are a senior software architect. Analyze the following task and create a detailed implementation plan.
29
+
30
+ Task: ${task.title}
31
+ Description: ${task.description || "No description provided."}
32
+
33
+ Requirements:
34
+ 1. Analyze the task requirements.
35
+ 2. Create a detailed step-by-step implementation plan.
36
+ 3. Identify necessary file changes.
37
+ 4. Write this plan to a file named "${planFileName}" in the current directory.
38
+ 5. Do NOT implement the code yet, just create the plan file.
39
+
40
+ Please create the "${planFileName}" file now.`;
41
+ console.log(chalk_1.default.cyan(` Using executor for planning: ${planExecutor}${planModelName ? ` (${planModelName})` : ""}`));
42
+ // Create executor for planning
43
+ const planningConfig = {
44
+ model: planModelName,
45
+ continueLastSession: false,
46
+ };
47
+ const executor = executor_factory_1.ExecutorFactory.create(planExecutor, planningConfig);
48
+ try {
49
+ let planningComplete = false;
50
+ let planContent;
51
+ while (!planningComplete) {
52
+ await executor.execute(planningPrompt, dry, planningConfig);
53
+ if (!dry) {
54
+ // Verify plan file exists and read it
55
+ if ((0, fs_1.existsSync)(planFileName)) {
56
+ planContent = (0, fs_1.readFileSync)(planFileName, "utf-8");
57
+ console.log(chalk_1.default.green(`✅ Plan created successfully: ${planFileName}`));
58
+ // Human Review Loop
59
+ if (reviewPlan) {
60
+ console.log(chalk_1.default.yellow(`\n👀 Pausing for Human Review of the Plan: ${planFileName}`));
61
+ console.log(chalk_1.default.cyan("You can edit the file now."));
62
+ const { feedback } = await inquirer_1.default.prompt([
63
+ {
64
+ type: "input",
65
+ name: "feedback",
66
+ message: "Enter feedback to refine the plan (or press Enter to approve and continue):",
67
+ },
68
+ ]);
69
+ if (feedback && feedback.trim() !== "") {
70
+ console.log(chalk_1.default.blue("🔄 Refining plan based on feedback..."));
71
+ planningPrompt = `The user provided the following feedback on the plan you just created:
72
+
73
+ "${feedback}"
74
+
75
+ Please update the plan file "${planFileName}" to incorporate this feedback.`;
76
+ // Continue loop to regenerate plan
77
+ continue;
78
+ }
79
+ }
80
+ // Auto-commit plan if enabled (only after approval)
81
+ if (autoCommit) {
82
+ await (0, git_utils_1.commitFile)(planFileName, `docs: create implementation plan for task ${task.id}`, execFn);
83
+ }
84
+ planningComplete = true;
85
+ }
86
+ else {
87
+ console.warn(chalk_1.default.yellow(`⚠️ Plan file ${planFileName} was not created by the executor.`));
88
+ planningComplete = true; // Exit loop to avoid infinite retry if file not created
89
+ }
90
+ }
91
+ else {
92
+ planningComplete = true; // Dry run
93
+ }
94
+ }
95
+ return {
96
+ planContent,
97
+ planFileName,
98
+ success: true,
99
+ };
100
+ }
101
+ catch (error) {
102
+ const errorMessage = error instanceof Error ? error.message : String(error);
103
+ console.error(chalk_1.default.red(`❌ Planning phase failed: ${errorMessage}`));
104
+ return {
105
+ success: false,
106
+ error: errorMessage,
107
+ };
108
+ }
109
+ }
@@ -0,0 +1,27 @@
1
+ import { Task } from "../types";
2
+ /**
3
+ * Review phase configuration
4
+ */
5
+ export interface ReviewConfig {
6
+ reviewModel?: string;
7
+ planContent?: string;
8
+ dry?: boolean;
9
+ }
10
+ /**
11
+ * Review phase result
12
+ */
13
+ export interface ReviewResult {
14
+ approved: boolean;
15
+ feedback: string;
16
+ success: boolean;
17
+ error?: string;
18
+ }
19
+ /**
20
+ * Execute AI review phase for task execution
21
+ * Reviews code changes and provides feedback
22
+ */
23
+ export declare function executeReviewPhase(task: Task, config: ReviewConfig, execFn?: (command: string) => Promise<{
24
+ stdout: string;
25
+ stderr: string;
26
+ }>): Promise<ReviewResult>;
27
+ //# sourceMappingURL=task-review.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-review.d.ts","sourceRoot":"","sources":["../../src/lib/task-review.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,IAAI,EAAE,MAAM,UAAU,CAAC;AAO9C;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,YAAY,EACpB,MAAM,GAAE,CACN,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAa,GAC3D,OAAO,CAAC,YAAY,CAAC,CA+GvB"}
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.executeReviewPhase = executeReviewPhase;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const ai_service_factory_1 = require("../utils/ai-service-factory");
9
+ const child_process_1 = require("child_process");
10
+ const util_1 = require("util");
11
+ const execAsync = (0, util_1.promisify)(child_process_1.exec);
12
+ /**
13
+ * Execute AI review phase for task execution
14
+ * Reviews code changes and provides feedback
15
+ */
16
+ async function executeReviewPhase(task, config, execFn = execAsync) {
17
+ const { reviewModel, planContent, dry } = config;
18
+ console.log(chalk_1.default.blue.bold("\n🕵️ Starting AI Review Phase..."));
19
+ if (dry) {
20
+ console.log(chalk_1.default.yellow("🔍 DRY RUN - Review phase skipped"));
21
+ return {
22
+ approved: true,
23
+ feedback: "Dry run - review skipped",
24
+ success: true,
25
+ };
26
+ }
27
+ try {
28
+ // Get git diff
29
+ const { stdout: diff } = await execFn("git diff HEAD");
30
+ if (!diff.trim()) {
31
+ console.log(chalk_1.default.yellow("⚠️ No changes detected to review."));
32
+ return {
33
+ approved: true,
34
+ feedback: "No changes to review",
35
+ success: true,
36
+ };
37
+ }
38
+ // Parse executor and model from reviewModel string
39
+ const reviewExecutor = reviewModel
40
+ ? reviewModel.split(":")[0]
41
+ : undefined;
42
+ const reviewModelName = reviewModel ? reviewModel.split(":")[1] : undefined;
43
+ if (reviewExecutor && reviewModelName) {
44
+ console.log(chalk_1.default.cyan(` Using executor for review: ${reviewExecutor} (${reviewModelName})`));
45
+ }
46
+ else {
47
+ console.log(chalk_1.default.cyan(" Using default AI provider for review"));
48
+ }
49
+ const reviewPrompt = `You are a strict code reviewer. Review the following changes for the task.
50
+
51
+ Task: ${task.title}
52
+ ${planContent ? `Plan: ${planContent}` : "Plan: No plan provided."}
53
+
54
+ Git Diff:
55
+ ${diff.substring(0, 10000)}
56
+
57
+ Analyze the changes for:
58
+ 1. Correctness (does it solve the task?)
59
+ 2. Code Quality (clean code, best practices)
60
+ 3. Potential Bugs
61
+
62
+ Return a JSON object:
63
+ {
64
+ "approved": boolean,
65
+ "feedback": "Detailed feedback explaining why it was rejected or approved"
66
+ }
67
+ `;
68
+ // Use AI operations to get review response
69
+ const aiOps = (0, ai_service_factory_1.getAIOperations)();
70
+ const aiResponse = await aiOps.streamText(reviewPrompt);
71
+ const jsonMatch = aiResponse.match(/\{[\s\S]*\}/);
72
+ if (jsonMatch) {
73
+ const reviewResult = JSON.parse(jsonMatch[0]);
74
+ if (!reviewResult.approved) {
75
+ console.log(chalk_1.default.red(`❌ AI Review Rejected Changes: ${reviewResult.feedback}`));
76
+ }
77
+ else {
78
+ console.log(chalk_1.default.green(`✅ AI Review Approved: ${reviewResult.feedback}`));
79
+ }
80
+ return {
81
+ approved: reviewResult.approved,
82
+ feedback: reviewResult.feedback,
83
+ success: true,
84
+ };
85
+ }
86
+ else {
87
+ console.warn(chalk_1.default.yellow("⚠️ Could not parse AI review response. Assuming approval."));
88
+ return {
89
+ approved: true,
90
+ feedback: "Could not parse review response, assuming approval",
91
+ success: true,
92
+ };
93
+ }
94
+ }
95
+ catch (error) {
96
+ const errorMessage = error instanceof Error ? error.message : String(error);
97
+ console.error(chalk_1.default.red(`❌ AI Review failed: ${errorMessage}`));
98
+ // If review crashes, warn but don't fail the task
99
+ return {
100
+ approved: true,
101
+ feedback: `Review failed: ${errorMessage}`,
102
+ success: false,
103
+ error: errorMessage,
104
+ };
105
+ }
106
+ }
@@ -1,4 +1,21 @@
1
- import { AIConfig } from '../types';
2
- export declare function isValidAIProvider(provider: string): provider is NonNullable<AIConfig['provider']>;
3
- export declare function runValidations(validations: string[], dry: boolean): Promise<void>;
1
+ import { AIConfig } from "../types";
2
+ /**
3
+ * Validation/Verification result for a single command
4
+ */
5
+ export interface ValidationResult {
6
+ command: string;
7
+ success: boolean;
8
+ output?: string;
9
+ error?: string;
10
+ }
11
+ export declare function isValidAIProvider(provider: string): provider is NonNullable<AIConfig["provider"]>;
12
+ /**
13
+ * Run validation/verification commands and return results
14
+ * Supports both --validate and --verify as aliases
15
+ * Returns detailed results for each command
16
+ */
17
+ export declare function runValidations(validations: string[], dry: boolean, execFn?: (command: string) => Promise<{
18
+ stdout: string;
19
+ stderr: string;
20
+ }>): Promise<ValidationResult[]>;
4
21
  //# sourceMappingURL=validation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/lib/validation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAIpC,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAEjG;AAED,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA6CvF"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/lib/validation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAIpC;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,GACf,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAE/C;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EAAE,EACrB,GAAG,EAAE,OAAO,EACZ,MAAM,GAAE,CACN,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAa,GAC3D,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA6F7B"}
@@ -10,31 +10,50 @@ const util_1 = require("util");
10
10
  const chalk_1 = __importDefault(require("chalk"));
11
11
  const execAsync = (0, util_1.promisify)(child_process_1.exec);
12
12
  function isValidAIProvider(provider) {
13
- return ['openrouter', 'openai', 'anthropic', 'custom'].includes(provider);
13
+ return ["openrouter", "openai", "anthropic", "custom"].includes(provider);
14
14
  }
15
- async function runValidations(validations, dry) {
15
+ /**
16
+ * Run validation/verification commands and return results
17
+ * Supports both --validate and --verify as aliases
18
+ * Returns detailed results for each command
19
+ */
20
+ async function runValidations(validations, dry, execFn = execAsync) {
21
+ const results = [];
16
22
  if (validations.length === 0) {
17
- return;
23
+ return results;
18
24
  }
19
25
  if (dry) {
20
- console.log(chalk_1.default.yellow('🔍 DRY RUN - Validations that would run:'));
21
- validations.forEach(cmd => console.log(chalk_1.default.cyan(` ${cmd}`)));
22
- return;
26
+ console.log(chalk_1.default.yellow("🔍 DRY RUN - Validation/verification commands that would run:"));
27
+ validations.forEach((cmd) => {
28
+ console.log(chalk_1.default.cyan(` ${cmd}`));
29
+ results.push({
30
+ command: cmd,
31
+ success: true,
32
+ output: "DRY RUN - not executed",
33
+ });
34
+ });
35
+ return results;
23
36
  }
24
- console.log(chalk_1.default.blue(`🧪 Running ${validations.length} validation${validations.length > 1 ? 's' : ''}...`));
37
+ console.log(chalk_1.default.blue(`🧪 Running ${validations.length} validation/verification command${validations.length > 1 ? "s" : ""}...`));
25
38
  for (let i = 0; i < validations.length; i++) {
26
39
  const validation = validations[i];
27
40
  console.log(chalk_1.default.blue(`🧪 Running validation [${i + 1}/${validations.length}]: ${validation}`));
28
41
  try {
29
- const { stdout, stderr } = await execAsync(validation);
42
+ const { stdout, stderr } = await execFn(validation);
30
43
  console.log(chalk_1.default.green(`✅ Validation passed: ${validation}`));
31
44
  // Show stdout if there's any output
32
45
  if (stdout && stdout.trim()) {
33
46
  console.log(chalk_1.default.gray(` Output: ${stdout.trim()}`));
34
47
  }
48
+ results.push({
49
+ command: validation,
50
+ success: true,
51
+ output: stdout.trim(),
52
+ });
35
53
  }
36
54
  catch (error) {
37
55
  console.error(chalk_1.default.red(`❌ Validation failed: ${validation}`));
56
+ const errorOutput = error.stderr || error.stdout || error.message;
38
57
  // Show error details
39
58
  if (error.stdout && error.stdout.trim()) {
40
59
  console.error(chalk_1.default.yellow(` stdout: ${error.stdout.trim()}`));
@@ -45,8 +64,18 @@ async function runValidations(validations, dry) {
45
64
  if (error.message) {
46
65
  console.error(chalk_1.default.red(` Error: ${error.message}`));
47
66
  }
48
- process.exit(1);
67
+ results.push({
68
+ command: validation,
69
+ success: false,
70
+ error: errorOutput,
71
+ });
72
+ // Return early on first failure
73
+ break;
49
74
  }
50
75
  }
51
- console.log(chalk_1.default.green(`🎉 All ${validations.length} validation${validations.length > 1 ? 's' : ''} passed!`));
76
+ const allPassed = results.every((r) => r.success);
77
+ if (allPassed) {
78
+ console.log(chalk_1.default.green(`🎉 All ${validations.length} validation${validations.length > 1 ? "s" : ""} passed!`));
79
+ }
80
+ return results;
52
81
  }
@@ -0,0 +1,3 @@
1
+ export declare const DOCUMENTATION_RECAP_PROMPT = "Create a concise recap of the documentation fetched for these libraries:\n\nLibraries:\n{LIBRARIES_LIST}\n\nDocumentation Contents:\n{DOCUMENTATION_CONTENTS}\n\nPlease provide a 2-3 sentence summary of what documentation is available and how it relates to the task.";
2
+ export declare const DOCUMENTATION_RECAP_SYSTEM_PROMPT = "You are a technical writer who creates concise summaries of documentation collections.";
3
+ //# sourceMappingURL=documentation-recap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documentation-recap.d.ts","sourceRoot":"","sources":["../../src/prompts/documentation-recap.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B,8QAQkE,CAAC;AAE1G,eAAO,MAAM,iCAAiC,2FAA2F,CAAC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DOCUMENTATION_RECAP_SYSTEM_PROMPT = exports.DOCUMENTATION_RECAP_PROMPT = void 0;
4
+ exports.DOCUMENTATION_RECAP_PROMPT = `Create a concise recap of the documentation fetched for these libraries:
5
+
6
+ Libraries:
7
+ {LIBRARIES_LIST}
8
+
9
+ Documentation Contents:
10
+ {DOCUMENTATION_CONTENTS}
11
+
12
+ Please provide a 2-3 sentence summary of what documentation is available and how it relates to the task.`;
13
+ exports.DOCUMENTATION_RECAP_SYSTEM_PROMPT = `You are a technical writer who creates concise summaries of documentation collections.`;
@@ -4,7 +4,11 @@ export * from "./task-enhancement";
4
4
  export * from "./prd-rework";
5
5
  export * from "./documentation-detection";
6
6
  export * from "./task-planning";
7
+ export * from "./task-execution";
7
8
  export * from "./prd-question";
8
9
  export * from "./prd-generation";
9
10
  export * from "./prd-combination";
11
+ export * from "./documentation-recap";
12
+ export * from "./prd-question-answer";
13
+ export * from "./workflow-prompts";
10
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC"}
@@ -20,6 +20,10 @@ __exportStar(require("./task-enhancement"), exports);
20
20
  __exportStar(require("./prd-rework"), exports);
21
21
  __exportStar(require("./documentation-detection"), exports);
22
22
  __exportStar(require("./task-planning"), exports);
23
+ __exportStar(require("./task-execution"), exports);
23
24
  __exportStar(require("./prd-question"), exports);
24
25
  __exportStar(require("./prd-generation"), exports);
25
26
  __exportStar(require("./prd-combination"), exports);
27
+ __exportStar(require("./documentation-recap"), exports);
28
+ __exportStar(require("./prd-question-answer"), exports);
29
+ __exportStar(require("./workflow-prompts"), exports);
@@ -0,0 +1,3 @@
1
+ export declare const PRD_QUESTION_ANSWER_PROMPT = "You are a product expert helping to clarify a PRD.\n\nPRD Content:\n{PRD_CONTENT}{CONTEXT_TEXT}\n\nPlease answer the following questions based on the PRD and context:\n\n{QUESTIONS_TEXT}\n\nProvide thoughtful, specific answers that will help refine the PRD.\nFormat your response as JSON with the following structure:\n{\n \"answers\": {\n \"1\": \"answer to question 1\",\n \"2\": \"answer to question 2\",\n ...\n }\n}";
2
+ export declare const PRD_QUESTION_ANSWER_SYSTEM_PROMPT = "You are a product expert analyzing PRDs and answering clarifying questions.\nYour answers should be:\n- Specific and actionable\n- Based on the PRD content and project context\n- Helpful for refining the PRD\n- Formatted as JSON";
3
+ //# sourceMappingURL=prd-question-answer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prd-question-answer.d.ts","sourceRoot":"","sources":["../../src/prompts/prd-question-answer.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B,obAiBrC,CAAC;AAEH,eAAO,MAAM,iCAAiC,yOAK1B,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PRD_QUESTION_ANSWER_SYSTEM_PROMPT = exports.PRD_QUESTION_ANSWER_PROMPT = void 0;
4
+ exports.PRD_QUESTION_ANSWER_PROMPT = `You are a product expert helping to clarify a PRD.
5
+
6
+ PRD Content:
7
+ {PRD_CONTENT}{CONTEXT_TEXT}
8
+
9
+ Please answer the following questions based on the PRD and context:
10
+
11
+ {QUESTIONS_TEXT}
12
+
13
+ Provide thoughtful, specific answers that will help refine the PRD.
14
+ Format your response as JSON with the following structure:
15
+ {
16
+ "answers": {
17
+ "1": "answer to question 1",
18
+ "2": "answer to question 2",
19
+ ...
20
+ }
21
+ }`;
22
+ exports.PRD_QUESTION_ANSWER_SYSTEM_PROMPT = `You are a product expert analyzing PRDs and answering clarifying questions.
23
+ Your answers should be:
24
+ - Specific and actionable
25
+ - Based on the PRD content and project context
26
+ - Helpful for refining the PRD
27
+ - Formatted as JSON`;
@@ -0,0 +1,3 @@
1
+ export declare const TASK_EXECUTION_PROMPT = "{RETRY_CONTEXT}{TASK_PLAN}\n# Technology Stack\n{STACK_INFO}\n{DOCUMENTATION_CONTEXT}";
2
+ export declare const TASK_EXECUTION_SYSTEM_PROMPT = "\nYou are an expert software developer. Execute the task according to the implementation plan and project context provided.\n\n## Guidelines:\n1. Follow the implementation plan step-by-step\n2. Use the technology stack and libraries specified\n3. Refer to the documentation context for API usage\n4. Write clean, maintainable code following best practices\n5. Handle errors appropriately\n6. Test your changes\n\n## On Retries:\nIf this is a retry attempt, carefully analyze the previous error and fix it before proceeding.\n";
3
+ //# sourceMappingURL=task-execution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-execution.d.ts","sourceRoot":"","sources":["../../src/prompts/task-execution.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,0FAGV,CAAC;AAEzB,eAAO,MAAM,4BAA4B,khBAaxC,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TASK_EXECUTION_SYSTEM_PROMPT = exports.TASK_EXECUTION_PROMPT = void 0;
4
+ exports.TASK_EXECUTION_PROMPT = `{RETRY_CONTEXT}{TASK_PLAN}
5
+ # Technology Stack
6
+ {STACK_INFO}
7
+ {DOCUMENTATION_CONTEXT}`;
8
+ exports.TASK_EXECUTION_SYSTEM_PROMPT = `
9
+ You are an expert software developer. Execute the task according to the implementation plan and project context provided.
10
+
11
+ ## Guidelines:
12
+ 1. Follow the implementation plan step-by-step
13
+ 2. Use the technology stack and libraries specified
14
+ 3. Refer to the documentation context for API usage
15
+ 4. Write clean, maintainable code following best practices
16
+ 5. Handle errors appropriately
17
+ 6. Test your changes
18
+
19
+ ## On Retries:
20
+ If this is a retry attempt, carefully analyze the previous error and fix it before proceeding.
21
+ `;
@@ -0,0 +1,9 @@
1
+ export declare const PROJECT_INIT_SUGGESTION_PROMPT = "You are helping a developer configure their project initialization and tech stack.\n\nAvailable Options:\n- AI Providers: openrouter, anthropic, openai, custom\n- Frontend Frameworks: next, tanstack-router, react-router, vite-react, remix\n- Backend Frameworks: hono, express, elysia, fastify\n- Databases: sqlite, postgres, mysql, mongodb, turso, neon\n- Authentication: better-auth (recommended), clerk, auth0, custom\n\nUser's Description:\n\"{USER_DESCRIPTION}\"\n\nBased on the user's description, recommend a complete configuration. Consider:\n1. Project complexity and scale\n2. Developer experience level (infer from description)\n3. Modern best practices for 2025\n4. Compatibility between chosen technologies\n\nRespond in JSON format:\n{\n \"projectName\": \"suggested-project-name\",\n \"aiProvider\": \"recommended-provider\",\n \"aiModel\": \"recommended-model\",\n \"frontend\": \"recommended-frontend\",\n \"backend\": \"recommended-backend\",\n \"database\": \"recommended-database\",\n \"auth\": true/false,\n \"reasoning\": \"Brief explanation of your choices\"\n}";
2
+ export declare const PROJECT_INIT_SUGGESTION_SYSTEM_PROMPT = "You are an expert full-stack developer helping to configure modern web projects.";
3
+ export declare const PRD_IMPROVEMENT_PROMPT = "You are a product manager reviewing and improving a PRD.\n\nCurrent PRD:\n{CURRENT_PRD}\n\nUser's Feedback:\n\"{USER_FEEDBACK}\"\n\nImprove the PRD based on the feedback. Consider:\n1. Clarity and specificity\n2. Completeness of requirements\n3. Feasibility and scope\n4. Technical details\n5. Success criteria\n\nReturn the improved PRD in the same format, incorporating the user's feedback.";
4
+ export declare const PRD_IMPROVEMENT_SYSTEM_PROMPT = "You are an experienced product manager specializing in writing clear, actionable PRDs.";
5
+ export declare const TASK_PRIORITIZATION_PROMPT = "You are a project manager helping to prioritize tasks.\n\nTasks:\n{TASKS_DESCRIPTION}\n\nUser's Guidance:\n\"{USER_GUIDANCE}\"\n\nPrioritize these tasks (1 = highest priority) based on:\n1. Dependencies (what needs to be done first)\n2. User's guidance\n3. MVP vs. nice-to-have\n4. Risk and complexity\n\nRespond in JSON format:\n{\n \"prioritizedTasks\": [\n {\"id\": \"task-id\", \"priority\": 1, \"reasoning\": \"why this priority\"},\n ...\n ],\n \"recommendations\": \"Overall recommendations for task execution\"\n}";
6
+ export declare const TASK_PRIORITIZATION_SYSTEM_PROMPT = "You are an experienced project manager with expertise in agile methodologies and task prioritization.";
7
+ export declare const TASK_SPLITTING_ASSISTANCE_PROMPT = "You are a technical lead helping to break down a complex task.\n\nTask: {TASK_TITLE}\n{TASK_CONTENT}\n\nUser's Guidance:\n\"{USER_GUIDANCE}\"\n\nGenerate specific instructions for how to split this task into subtasks. Consider:\n1. Logical breakdown points\n2. Size constraints (e.g., 2-4 hour chunks)\n3. Dependencies between subtasks\n4. Testing and validation steps\n\nProvide clear, actionable instructions for the AI that will perform the split.";
8
+ export declare const TASK_SPLITTING_ASSISTANCE_SYSTEM_PROMPT = "You are a technical lead with deep expertise in breaking down complex software development tasks into manageable pieces.";
9
+ //# sourceMappingURL=workflow-prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-prompts.d.ts","sourceRoot":"","sources":["../../src/prompts/workflow-prompts.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,8BAA8B,wkCA4BzC,CAAC;AAEH,eAAO,MAAM,qCAAqC,qFAAqF,CAAC;AAGxI,eAAO,MAAM,sBAAsB,6YAe4C,CAAC;AAEhF,eAAO,MAAM,6BAA6B,2FAA2F,CAAC;AAGtI,eAAO,MAAM,0BAA0B,uhBAqBrC,CAAC;AAEH,eAAO,MAAM,iCAAiC,0GAA0G,CAAC;AAGzJ,eAAO,MAAM,gCAAgC,ucAckC,CAAC;AAEhF,eAAO,MAAM,uCAAuC,6HAA6H,CAAC"}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TASK_SPLITTING_ASSISTANCE_SYSTEM_PROMPT = exports.TASK_SPLITTING_ASSISTANCE_PROMPT = exports.TASK_PRIORITIZATION_SYSTEM_PROMPT = exports.TASK_PRIORITIZATION_PROMPT = exports.PRD_IMPROVEMENT_SYSTEM_PROMPT = exports.PRD_IMPROVEMENT_PROMPT = exports.PROJECT_INIT_SUGGESTION_SYSTEM_PROMPT = exports.PROJECT_INIT_SUGGESTION_PROMPT = void 0;
4
+ // Project Initialization Suggestion
5
+ exports.PROJECT_INIT_SUGGESTION_PROMPT = `You are helping a developer configure their project initialization and tech stack.
6
+
7
+ Available Options:
8
+ - AI Providers: openrouter, anthropic, openai, custom
9
+ - Frontend Frameworks: next, tanstack-router, react-router, vite-react, remix
10
+ - Backend Frameworks: hono, express, elysia, fastify
11
+ - Databases: sqlite, postgres, mysql, mongodb, turso, neon
12
+ - Authentication: better-auth (recommended), clerk, auth0, custom
13
+
14
+ User's Description:
15
+ "{USER_DESCRIPTION}"
16
+
17
+ Based on the user's description, recommend a complete configuration. Consider:
18
+ 1. Project complexity and scale
19
+ 2. Developer experience level (infer from description)
20
+ 3. Modern best practices for 2025
21
+ 4. Compatibility between chosen technologies
22
+
23
+ Respond in JSON format:
24
+ {
25
+ "projectName": "suggested-project-name",
26
+ "aiProvider": "recommended-provider",
27
+ "aiModel": "recommended-model",
28
+ "frontend": "recommended-frontend",
29
+ "backend": "recommended-backend",
30
+ "database": "recommended-database",
31
+ "auth": true/false,
32
+ "reasoning": "Brief explanation of your choices"
33
+ }`;
34
+ exports.PROJECT_INIT_SUGGESTION_SYSTEM_PROMPT = `You are an expert full-stack developer helping to configure modern web projects.`;
35
+ // PRD Improvement
36
+ exports.PRD_IMPROVEMENT_PROMPT = `You are a product manager reviewing and improving a PRD.
37
+
38
+ Current PRD:
39
+ {CURRENT_PRD}
40
+
41
+ User's Feedback:
42
+ "{USER_FEEDBACK}"
43
+
44
+ Improve the PRD based on the feedback. Consider:
45
+ 1. Clarity and specificity
46
+ 2. Completeness of requirements
47
+ 3. Feasibility and scope
48
+ 4. Technical details
49
+ 5. Success criteria
50
+
51
+ Return the improved PRD in the same format, incorporating the user's feedback.`;
52
+ exports.PRD_IMPROVEMENT_SYSTEM_PROMPT = `You are an experienced product manager specializing in writing clear, actionable PRDs.`;
53
+ // Task Prioritization
54
+ exports.TASK_PRIORITIZATION_PROMPT = `You are a project manager helping to prioritize tasks.
55
+
56
+ Tasks:
57
+ {TASKS_DESCRIPTION}
58
+
59
+ User's Guidance:
60
+ "{USER_GUIDANCE}"
61
+
62
+ Prioritize these tasks (1 = highest priority) based on:
63
+ 1. Dependencies (what needs to be done first)
64
+ 2. User's guidance
65
+ 3. MVP vs. nice-to-have
66
+ 4. Risk and complexity
67
+
68
+ Respond in JSON format:
69
+ {
70
+ "prioritizedTasks": [
71
+ {"id": "task-id", "priority": 1, "reasoning": "why this priority"},
72
+ ...
73
+ ],
74
+ "recommendations": "Overall recommendations for task execution"
75
+ }`;
76
+ exports.TASK_PRIORITIZATION_SYSTEM_PROMPT = `You are an experienced project manager with expertise in agile methodologies and task prioritization.`;
77
+ // Task Splitting Assistance
78
+ exports.TASK_SPLITTING_ASSISTANCE_PROMPT = `You are a technical lead helping to break down a complex task.
79
+
80
+ Task: {TASK_TITLE}
81
+ {TASK_CONTENT}
82
+
83
+ User's Guidance:
84
+ "{USER_GUIDANCE}"
85
+
86
+ Generate specific instructions for how to split this task into subtasks. Consider:
87
+ 1. Logical breakdown points
88
+ 2. Size constraints (e.g., 2-4 hour chunks)
89
+ 3. Dependencies between subtasks
90
+ 4. Testing and validation steps
91
+
92
+ Provide clear, actionable instructions for the AI that will perform the split.`;
93
+ exports.TASK_SPLITTING_ASSISTANCE_SYSTEM_PROMPT = `You are a technical lead with deep expertise in breaking down complex software development tasks into manageable pieces.`;
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-ai-assistant.d.ts","sourceRoot":"","sources":["../../src/services/workflow-ai-assistant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEtD,OAAO,EAAiB,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAGtE;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B;;OAEG;IACG,gBAAgB,CAAC,KAAK,EAAE;QAC5B,eAAe,EAAE,MAAM,CAAC;QACxB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;KACrC,GAAG,OAAO,CAAC;QACV,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IA+DF;;OAEG;IACG,iBAAiB,CAAC,KAAK,EAAE;QAC7B,eAAe,EAAE,MAAM,CAAC;QACxB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;KACrC,GAAG,OAAO,CAAC,MAAM,CAAC;IAYnB;;OAEG;IACG,mBAAmB,CAAC,KAAK,EAAE;QAC/B,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;KACrC,GAAG,OAAO,CAAC,MAAM,CAAC;IA+BnB;;OAEG;IACG,wBAAwB,CAAC,KAAK,EAAE;QACpC,KAAK,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAClE,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;KACrC,GAAG,OAAO,CAAC;QACV,gBAAgB,EAAE,KAAK,CAAC;YACtB,EAAE,EAAE,MAAM,CAAC;YACX,QAAQ,EAAE,MAAM,CAAC;YACjB,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC,CAAC;QACH,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IA+DF;;OAEG;IACG,mBAAmB,CAAC,KAAK,EAAE;QAC/B,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;KACrC,GAAG,OAAO,CAAC,MAAM,CAAC;CA6BpB;AAGD,eAAO,MAAM,mBAAmB,qBAA4B,CAAC"}
1
+ {"version":3,"file":"workflow-ai-assistant.d.ts","sourceRoot":"","sources":["../../src/services/workflow-ai-assistant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEtD,OAAO,EAAiB,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAItE;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B;;OAEG;IACG,gBAAgB,CAAC,KAAK,EAAE;QAC5B,eAAe,EAAE,MAAM,CAAC;QACxB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;KACrC,GAAG,OAAO,CAAC;QACV,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAqDF;;OAEG;IACG,iBAAiB,CAAC,KAAK,EAAE;QAC7B,eAAe,EAAE,MAAM,CAAC;QACxB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;KACrC,GAAG,OAAO,CAAC,MAAM,CAAC;IAYnB;;OAEG;IACG,mBAAmB,CAAC,KAAK,EAAE;QAC/B,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;KACrC,GAAG,OAAO,CAAC,MAAM,CAAC;IAmCnB;;OAEG;IACG,wBAAwB,CAAC,KAAK,EAAE;QACpC,KAAK,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAClE,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;KACrC,GAAG,OAAO,CAAC;QACV,gBAAgB,EAAE,KAAK,CAAC;YACtB,EAAE,EAAE,MAAM,CAAC;YACX,QAAQ,EAAE,MAAM,CAAC;YACjB,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC,CAAC;QACH,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IA6DF;;OAEG;IACG,mBAAmB,CAAC,KAAK,EAAE;QAC/B,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;KACrC,GAAG,OAAO,CAAC,MAAM,CAAC;CAuCpB;AAGD,eAAO,MAAM,mBAAmB,qBAA4B,CAAC"}