@bicorne/task-flow 0.1.0 → 0.2.1

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 (58) hide show
  1. package/README.md +337 -145
  2. package/SKILL.md +9 -5
  3. package/assets/.harnessrc +0 -1
  4. package/dist/commands/analyze.js +160 -318
  5. package/dist/commands/archive.js +44 -48
  6. package/dist/commands/design.js +225 -400
  7. package/dist/commands/extract.js +174 -303
  8. package/dist/commands/init.js +103 -148
  9. package/dist/commands/merge/index.js +184 -295
  10. package/dist/commands/merge/merger.js +112 -134
  11. package/dist/commands/merge/types.js +3 -5
  12. package/dist/commands/merge/validators.js +115 -132
  13. package/dist/commands/merge.js +46 -13
  14. package/dist/commands/start.js +155 -248
  15. package/dist/commands/status.js +68 -129
  16. package/dist/commands/sync.js +37 -53
  17. package/dist/commands/tasks-gen/doc-parser.js +148 -228
  18. package/dist/commands/tasks-gen/generators.js +104 -116
  19. package/dist/commands/tasks-gen/index.js +206 -314
  20. package/dist/commands/tasks-gen/parsers.js +131 -232
  21. package/dist/commands/tasks-gen/templates.js +9 -10
  22. package/dist/commands/tasks-gen/types.js +36 -14
  23. package/dist/commands/tasks-gen/validators.js +33 -49
  24. package/dist/commands/tasks.js +58 -20
  25. package/dist/commands/worktree.js +167 -249
  26. package/dist/hooks/check-prd-exists.js +45 -55
  27. package/dist/hooks/check-worktree-conflict.js +68 -101
  28. package/dist/hooks/hook-runner/executor.js +134 -126
  29. package/dist/hooks/hook-runner/index.js +181 -196
  30. package/dist/hooks/hook-runner/loader.js +74 -113
  31. package/dist/hooks/hook-runner/types.js +3 -5
  32. package/dist/hooks/hook-runner.js +94 -28
  33. package/dist/hooks/phase-complete-detector.js +125 -191
  34. package/dist/hooks/phase-gate-validator.js +315 -376
  35. package/dist/hooks/save-checkpoint.js +87 -130
  36. package/dist/hooks/start-mcp-servers.js +50 -65
  37. package/dist/hooks/stop-mcp-servers.js +40 -49
  38. package/dist/index.js +84 -153
  39. package/dist/lib/archive.js +126 -209
  40. package/dist/lib/config.d.ts +0 -2
  41. package/dist/lib/config.js +141 -230
  42. package/dist/lib/constants.js +155 -145
  43. package/dist/lib/interactive.js +98 -148
  44. package/dist/lib/mcp-client.js +197 -320
  45. package/dist/lib/state.js +142 -253
  46. package/dist/slash/executor.js +309 -233
  47. package/dist/slash/index.js +69 -43
  48. package/dist/slash/parser.js +84 -97
  49. package/dist/slash/registry.js +100 -88
  50. package/dist/spec/openspec-to-task/builders.js +96 -109
  51. package/dist/spec/openspec-to-task/index.js +112 -173
  52. package/dist/spec/openspec-to-task/parsers.js +148 -219
  53. package/dist/spec/openspec-to-task/types.js +3 -5
  54. package/dist/spec/sync-openspec-to-task.js +47 -19
  55. package/dist/spec/sync-task-to-openspec.js +241 -272
  56. package/dist/types/ai-context.js +3 -8
  57. package/package.json +9 -7
  58. package/references/CLI-TUTORIAL.md +4 -10
@@ -1,272 +1,171 @@
1
- "use strict";
2
- /**
3
- * commands/tasks-gen/parsers.ts
4
- * Parsing utilities for task generation
5
- */
6
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
- if (k2 === undefined) k2 = k;
8
- var desc = Object.getOwnPropertyDescriptor(m, k);
9
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
- desc = { enumerable: true, get: function() { return m[k]; } };
11
- }
12
- Object.defineProperty(o, k2, desc);
13
- }) : (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- o[k2] = m[k];
16
- }));
17
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
- Object.defineProperty(o, "default", { enumerable: true, value: v });
19
- }) : function(o, v) {
20
- o["default"] = v;
21
- });
22
- var __importStar = (this && this.__importStar) || (function () {
23
- var ownKeys = function(o) {
24
- ownKeys = Object.getOwnPropertyNames || function (o) {
25
- var ar = [];
26
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
- return ar;
28
- };
29
- return ownKeys(o);
30
- };
31
- return function (mod) {
32
- if (mod && mod.__esModule) return mod;
33
- var result = {};
34
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
- __setModuleDefault(result, mod);
36
- return result;
37
- };
38
- })();
39
- Object.defineProperty(exports, "__esModule", { value: true });
40
- exports.parseArgs = parseArgs;
41
- exports.toChangeName = toChangeName;
42
- exports.parseTasksMd = parseTasksMd;
43
- exports.parseAiInput = parseAiInput;
44
- exports.readStdin = readStdin;
45
- exports.promptConfirmation = promptConfirmation;
46
- const readline = __importStar(require("readline"));
47
- const types_1 = require("./types");
48
- /**
49
- * Parse CLI arguments
50
- */
51
- function parseArgs(argv) {
52
- const args = {};
53
- for (let i = 2; i < argv.length; i += 1) {
54
- const token = argv[i] || '';
55
- if (!token.startsWith('--')) {
56
- continue;
57
- }
58
- const key = token.slice(2);
59
- const next = argv[i + 1] || '';
60
- if (!next || next.startsWith('--')) {
61
- args[key] = true;
1
+ function e(t) {
2
+ return "function" != typeof WeakMap ? null : (e = function(e) {
3
+ return new WeakMap();
4
+ })(t);
5
+ }
6
+ function t(e) {
7
+ let t = {};
8
+ for(let r = 2; r < e.length; r += 1){
9
+ let n = e[r] || '';
10
+ if (!n.startsWith('--')) continue;
11
+ let s = n.slice(2), i = e[r + 1] || '';
12
+ if (!i || i.startsWith('--')) {
13
+ t[s] = !0;
62
14
  continue;
63
15
  }
64
- args[key] = next;
65
- i += 1;
16
+ t[s] = i, r += 1;
66
17
  }
67
- return args;
18
+ return t;
68
19
  }
69
- /**
70
- * Sanitize change name
71
- */
72
- function toChangeName(input) {
73
- return String(input || '')
74
- .trim()
75
- .replace(/[^a-zA-Z0-9-_]/g, '-')
76
- .replace(/-+/g, '-')
77
- .replace(/^-|-$/g, '');
20
+ function r(e) {
21
+ return String(e || '').trim().replace(/[^a-zA-Z0-9-_]/g, '-').replace(/-+/g, '-').replace(/^-|-$/g, '');
78
22
  }
79
- /**
80
- * Parse tasks from markdown content
81
- */
82
- function parseTasksMd(tasksContent) {
83
- const tasks = [];
84
- const lines = tasksContent.split(/\r?\n/);
85
- let currentTask = null;
86
- let inDependencySection = false;
87
- for (const line of lines) {
88
- const phaseMatch = line.match(/^###\s+Phase\s+(\d+)/i);
89
- if (phaseMatch) {
90
- continue;
91
- }
92
- const taskMatch = line.match(/^-\s+\[([ xX])\]\s+Task\s+(\d+)\.(\d+):\s+(.+)$/);
93
- if (taskMatch) {
94
- if (currentTask && currentTask.id) {
95
- tasks.push(currentTask);
96
- }
97
- const phase = parseInt(taskMatch[2] || '0', 10);
98
- const sequence = parseInt(taskMatch[3] || '0', 10);
99
- currentTask = {
100
- id: `PHASE-${phase}-${phase}-${sequence}`,
101
- phase,
102
- subphase: phase,
103
- sequence,
104
- title: taskMatch[4]?.trim() || '',
105
- status: taskMatch[1]?.toLowerCase() === 'x' ? 'completed' : 'pending',
23
+ function n(e) {
24
+ let t = [], r = e.split(/\r?\n/), n = null, s = !1;
25
+ for (let e of r){
26
+ if (e.match(/^###\s+Phase\s+(\d+)/i)) continue;
27
+ let r = e.match(/^-\s+\[([ xX])\]\s+Task\s+(\d+)\.(\d+):\s+(.+)$/);
28
+ if (r) {
29
+ n && n.id && t.push(n);
30
+ let e = parseInt(r[2] || '0', 10), i = parseInt(r[3] || '0', 10);
31
+ n = {
32
+ id: `PHASE-${e}-${e}-${i}`,
33
+ phase: e,
34
+ subphase: e,
35
+ sequence: i,
36
+ title: r[4]?.trim() || '',
37
+ status: r[1]?.toLowerCase() === 'x' ? 'completed' : 'pending',
106
38
  type: 'feat',
107
39
  priority: 'medium',
108
40
  dependencies: [],
109
41
  spec: {
110
42
  description: '',
111
43
  files: [],
112
- context: [],
44
+ context: []
113
45
  },
114
- acceptance_criteria: [],
115
- };
116
- inDependencySection = false;
46
+ acceptance_criteria: []
47
+ }, s = !1;
117
48
  continue;
118
49
  }
119
- if (line.includes('## 任务依赖关系') || line.includes('Dependencies')) {
120
- inDependencySection = true;
50
+ if (e.includes('## 任务依赖关系') || e.includes('Dependencies')) {
51
+ s = !0;
121
52
  continue;
122
53
  }
123
- if (currentTask && !inDependencySection) {
124
- const descMatch = line.match(/^\s+描述:\s*(.+)$/);
125
- if (descMatch) {
126
- currentTask.spec.description = descMatch?.[1]?.trim() || '';
54
+ if (n && !s) {
55
+ let t = e.match(/^\s+描述:\s*(.+)$/);
56
+ if (t) {
57
+ n.spec.description = t?.[1]?.trim() || '';
127
58
  continue;
128
59
  }
129
- const filesMatch = line.match(/^\s+文件:\s*(.+)$/);
130
- if (filesMatch) {
131
- currentTask.spec.files = filesMatch?.[1]?.split(',').map((f) => f.trim()).filter(Boolean) || [];
60
+ let r = e.match(/^\s+文件:\s*(.+)$/);
61
+ if (r) {
62
+ n.spec.files = r?.[1]?.split(',').map((e)=>e.trim()).filter(Boolean) || [];
132
63
  continue;
133
64
  }
134
- const acceptMatch = line.match(/^\s+验收:\s*(.+)$/);
135
- if (acceptMatch) {
136
- currentTask.acceptance_criteria = [acceptMatch?.[1]?.trim() || ''];
65
+ let s = e.match(/^\s+验收:\s*(.+)$/);
66
+ if (s) {
67
+ n.acceptance_criteria = [
68
+ s?.[1]?.trim() || ''
69
+ ];
137
70
  continue;
138
71
  }
139
72
  }
140
- if (inDependencySection && currentTask) {
141
- const depMatch = line.match(/Task\s+(\d+)\.(\d+)\s+(?:依赖|depends? on)\s+Task\s+(\d+)\.(\d+)/i);
142
- if (depMatch) {
143
- const depPhase = parseInt(depMatch[3] || '0', 10);
144
- const depSeq = parseInt(depMatch[4] || '0', 10);
145
- if (depPhase <= currentTask.phase) {
146
- currentTask.dependencies.push(`PHASE-${depPhase}-${depPhase}-${depSeq}`);
147
- }
73
+ if (s && n) {
74
+ let t = e.match(/Task\s+(\d+)\.(\d+)\s+(?:依赖|depends? on)\s+Task\s+(\d+)\.(\d+)/i);
75
+ if (t) {
76
+ let e = parseInt(t[3] || '0', 10), r = parseInt(t[4] || '0', 10);
77
+ e <= n.phase && n.dependencies.push(`PHASE-${e}-${e}-${r}`);
148
78
  }
149
79
  }
150
80
  }
151
- if (currentTask && currentTask.id) {
152
- tasks.push(currentTask);
153
- }
154
- return tasks;
81
+ return n && n.id && t.push(n), t;
155
82
  }
156
- /**
157
- * Parse AI input from JSON
158
- */
159
- function parseAiInput(input) {
83
+ function s(e) {
160
84
  try {
161
- const parsed = JSON.parse(input);
162
- let tasks;
163
- if (Array.isArray(parsed)) {
164
- tasks = parsed;
165
- }
166
- else if (parsed && typeof parsed === 'object' && Array.isArray(parsed.tasks)) {
167
- tasks = parsed.tasks;
168
- }
169
- else {
170
- throw new Error('Invalid input format: expected array or { tasks: [] }');
171
- }
172
- const validTasks = [];
173
- const errors = [];
174
- for (let i = 0; i < tasks.length; i += 1) {
175
- if (validateTask(tasks[i])) {
176
- validTasks.push(tasks[i]);
177
- }
178
- else {
179
- errors.push(`Task ${i}: validation failed`);
180
- }
181
- }
182
- if (errors.length > 0) {
183
- console.warn('[TASKS] Validation warnings:');
184
- errors.forEach((err) => console.warn(` - ${err}`));
185
- }
186
- return validTasks;
187
- }
188
- catch (error) {
189
- const errorMessage = error instanceof Error ? error.message : 'Unknown error';
190
- throw new Error(`Failed to parse AI input: ${errorMessage}`);
85
+ let t, r = JSON.parse(e);
86
+ if (Array.isArray(r)) t = r;
87
+ else if (r && 'object' == typeof r && Array.isArray(r.tasks)) t = r.tasks;
88
+ else throw Error('Invalid input format: expected array or { tasks: [] }');
89
+ let n = [], s = [];
90
+ for(let e = 0; e < t.length; e += 1)!function(e) {
91
+ if ('object' != typeof e || null === e || 'string' != typeof e.id || !l.TASK_SCHEMA.idPattern.test(e.id) || !l.TASK_SCHEMA.types.includes(e.type) || 'string' != typeof e.title || 0 === e.title.length || !l.TASK_SCHEMA.priorities.includes(e.priority) || 'number' != typeof e.phase || e.phase < 1 || !l.TASK_SCHEMA.statuses.includes(e.status) || 'object' != typeof e.spec || null === e.spec) return !1;
92
+ let t = e.spec;
93
+ return 'string' == typeof t.description && !!Array.isArray(t.files);
94
+ }(t[e]) ? s.push(`Task ${e}: validation failed`) : n.push(t[e]);
95
+ return s.length > 0 && (console.warn('[TASKS] Validation warnings:'), s.forEach((e)=>console.warn(` - ${e}`))), n;
96
+ } catch (t) {
97
+ let e = t instanceof Error ? t.message : 'Unknown error';
98
+ throw Error(`Failed to parse AI input: ${e}`);
191
99
  }
192
100
  }
193
- /**
194
- * Read stdin content
195
- */
196
- async function readStdin() {
197
- return new Promise((resolve, reject) => {
198
- const chunks = [];
199
- process.stdin.setEncoding('utf8');
200
- process.stdin.on('readable', () => {
201
- let chunk;
202
- while ((chunk = process.stdin.read()) !== null) {
203
- chunks.push(chunk);
204
- }
205
- });
206
- process.stdin.on('end', () => {
207
- resolve(chunks.join(''));
208
- });
209
- process.stdin.on('error', (error) => {
210
- reject(error);
211
- });
212
- setTimeout(() => {
213
- if (chunks.length === 0) {
214
- reject(new Error('Stdin timeout: no data received'));
215
- }
101
+ async function i() {
102
+ return new Promise((e, t)=>{
103
+ let r = [];
104
+ process.stdin.setEncoding('utf8'), process.stdin.on('readable', ()=>{
105
+ let e;
106
+ for(; null !== (e = process.stdin.read());)r.push(e);
107
+ }), process.stdin.on('end', ()=>{
108
+ e(r.join(''));
109
+ }), process.stdin.on('error', (e)=>{
110
+ t(e);
111
+ }), setTimeout(()=>{
112
+ 0 === r.length && t(Error('Stdin timeout: no data received'));
216
113
  }, 5000);
217
114
  });
218
115
  }
219
- /**
220
- * Prompt user for confirmation
221
- */
222
- function promptConfirmation(message) {
223
- const rl = readline.createInterface({
116
+ function o(e) {
117
+ let t = u.createInterface({
224
118
  input: process.stdin,
225
- output: process.stdout,
119
+ output: process.stdout
226
120
  });
227
- return new Promise((resolve) => {
228
- rl.question(message, (answer) => {
229
- rl.close();
230
- resolve(answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes' || answer === '');
231
- });
232
- rl.on('error', () => {
233
- rl.close();
234
- resolve(false);
121
+ return new Promise((r)=>{
122
+ t.question(e, (e)=>{
123
+ t.close(), r('y' === e.toLowerCase() || 'yes' === e.toLowerCase() || '' === e);
124
+ }), t.on('error', ()=>{
125
+ t.close(), r(!1);
235
126
  });
236
127
  });
237
128
  }
238
- /**
239
- * Validate a single task object
240
- */
241
- function validateTask(task) {
242
- if (typeof task !== 'object' || task === null) {
243
- return false;
244
- }
245
- const t = task;
246
- if (typeof t.id !== 'string' || !types_1.TASK_SCHEMA.idPattern.test(t.id)) {
247
- return false;
248
- }
249
- if (!types_1.TASK_SCHEMA.types.includes(t.type)) {
250
- return false;
251
- }
252
- if (typeof t.title !== 'string' || t.title.length === 0) {
253
- return false;
254
- }
255
- if (!types_1.TASK_SCHEMA.priorities.includes(t.priority)) {
256
- return false;
257
- }
258
- if (typeof t.phase !== 'number' || t.phase < 1) {
259
- return false;
260
- }
261
- if (!types_1.TASK_SCHEMA.statuses.includes(t.status)) {
262
- return false;
263
- }
264
- if (typeof t.spec !== 'object' || t.spec === null) {
265
- return false;
129
+ "use strict";
130
+ Object.defineProperty(exports, "__esModule", {
131
+ value: !0
132
+ });
133
+ var a = exports, c = {
134
+ get parseAiInput () {
135
+ return s;
136
+ },
137
+ get parseArgs () {
138
+ return t;
139
+ },
140
+ get parseTasksMd () {
141
+ return n;
142
+ },
143
+ get promptConfirmation () {
144
+ return o;
145
+ },
146
+ get readStdin () {
147
+ return i;
148
+ },
149
+ get toChangeName () {
150
+ return r;
266
151
  }
267
- const spec = t.spec;
268
- if (typeof spec.description !== 'string' || !Array.isArray(spec.files)) {
269
- return false;
152
+ };
153
+ for(var p in c)Object.defineProperty(a, p, {
154
+ enumerable: !0,
155
+ get: Object.getOwnPropertyDescriptor(c, p).get
156
+ });
157
+ let u = /*#__PURE__*/ function(t) {
158
+ var r, n, s;
159
+ if (t && t.__esModule) return t;
160
+ if (null === t || "object" != typeof t && "function" != typeof t) return {
161
+ default: t
162
+ };
163
+ if ((r = e(void 0)) && r.has(t)) return r.get(t);
164
+ for(var i in n = {
165
+ __proto__: null
166
+ }, s = Object.defineProperty && Object.getOwnPropertyDescriptor, t)if ("default" !== i && Object.prototype.hasOwnProperty.call(t, i)) {
167
+ var o = s ? Object.getOwnPropertyDescriptor(t, i) : null;
168
+ o && (o.get || o.set) ? Object.defineProperty(n, i, o) : n[i] = t[i];
270
169
  }
271
- return true;
272
- }
170
+ return n.default = t, r && r.set(t, n), n;
171
+ }(require("readline")), l = require("./types");
@@ -1,14 +1,13 @@
1
1
  "use strict";
2
- /**
3
- * commands/tasks-gen/templates.ts
4
- * Markdown templates for task generation
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.TASKS_MD_TEMPLATE = void 0;
8
- /**
9
- * Tasks.md template
10
- */
11
- exports.TASKS_MD_TEMPLATE = `# 任务清单
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: !0
4
+ }), Object.defineProperty(exports, "TASKS_MD_TEMPLATE", {
5
+ enumerable: !0,
6
+ get: function() {
7
+ return e;
8
+ }
9
+ });
10
+ let e = `# 任务清单
12
11
 
13
12
  ## 概述
14
13
  <!-- 任务概述 -->
@@ -1,17 +1,39 @@
1
1
  "use strict";
2
- /**
3
- * commands/tasks-gen/types.ts
4
- * Type definitions for task generation
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.TASK_SCHEMA = void 0;
8
- /**
9
- * Task schema constants
10
- */
11
- exports.TASK_SCHEMA = {
12
- required: ['id', 'type', 'title', 'priority', 'phase', 'status', 'spec'],
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: !0
4
+ }), Object.defineProperty(exports, "TASK_SCHEMA", {
5
+ enumerable: !0,
6
+ get: function() {
7
+ return e;
8
+ }
9
+ });
10
+ let e = {
11
+ required: [
12
+ 'id',
13
+ 'type',
14
+ 'title',
15
+ 'priority',
16
+ 'phase',
17
+ 'status',
18
+ 'spec'
19
+ ],
13
20
  idPattern: /^PHASE-[0-9]+-[0-9]+-[0-9]+$/,
14
- types: ['feat', 'fix', 'refactor', 'test', 'docs'],
15
- priorities: ['high', 'medium', 'low'],
16
- statuses: ['pending', 'in_progress', 'completed', 'blocked'],
21
+ types: [
22
+ 'feat',
23
+ 'fix',
24
+ 'refactor',
25
+ 'test',
26
+ 'docs'
27
+ ],
28
+ priorities: [
29
+ 'high',
30
+ 'medium',
31
+ 'low'
32
+ ],
33
+ statuses: [
34
+ 'pending',
35
+ 'in_progress',
36
+ 'completed',
37
+ 'blocked'
38
+ ]
17
39
  };
@@ -1,54 +1,38 @@
1
+ function e(t) {
2
+ return "function" != typeof WeakMap ? null : (e = function(e) {
3
+ return new WeakMap();
4
+ })(t);
5
+ }
6
+ function t(e) {
7
+ return r.existsSync(e.productRequirement) ? {
8
+ valid: !0
9
+ } : {
10
+ valid: !1,
11
+ reason: 'product-requirement-not-found',
12
+ message: `product-requirement.md not found: ${e.productRequirement}`
13
+ };
14
+ }
1
15
  "use strict";
2
- /**
3
- * commands/tasks-gen/validators.ts
4
- * Validation utilities for task generation
5
- */
6
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
- if (k2 === undefined) k2 = k;
8
- var desc = Object.getOwnPropertyDescriptor(m, k);
9
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
- desc = { enumerable: true, get: function() { return m[k]; } };
16
+ Object.defineProperty(exports, "__esModule", {
17
+ value: !0
18
+ }), Object.defineProperty(exports, "validateRequiredFiles", {
19
+ enumerable: !0,
20
+ get: function() {
21
+ return t;
11
22
  }
12
- Object.defineProperty(o, k2, desc);
13
- }) : (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- o[k2] = m[k];
16
- }));
17
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
- Object.defineProperty(o, "default", { enumerable: true, value: v });
19
- }) : function(o, v) {
20
- o["default"] = v;
21
23
  });
22
- var __importStar = (this && this.__importStar) || (function () {
23
- var ownKeys = function(o) {
24
- ownKeys = Object.getOwnPropertyNames || function (o) {
25
- var ar = [];
26
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
- return ar;
28
- };
29
- return ownKeys(o);
24
+ let r = /*#__PURE__*/ function(t) {
25
+ var r, n, o;
26
+ if (t && t.__esModule) return t;
27
+ if (null === t || "object" != typeof t && "function" != typeof t) return {
28
+ default: t
30
29
  };
31
- return function (mod) {
32
- if (mod && mod.__esModule) return mod;
33
- var result = {};
34
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
- __setModuleDefault(result, mod);
36
- return result;
37
- };
38
- })();
39
- Object.defineProperty(exports, "__esModule", { value: true });
40
- exports.validateRequiredFiles = validateRequiredFiles;
41
- const fs = __importStar(require("fs"));
42
- /**
43
- * Validate required files exist
44
- */
45
- function validateRequiredFiles(paths) {
46
- if (!fs.existsSync(paths.productRequirement)) {
47
- return {
48
- valid: false,
49
- reason: 'product-requirement-not-found',
50
- message: `product-requirement.md not found: ${paths.productRequirement}`,
51
- };
30
+ if ((r = e(void 0)) && r.has(t)) return r.get(t);
31
+ for(var u in n = {
32
+ __proto__: null
33
+ }, o = Object.defineProperty && Object.getOwnPropertyDescriptor, t)if ("default" !== u && Object.prototype.hasOwnProperty.call(t, u)) {
34
+ var i = o ? Object.getOwnPropertyDescriptor(t, u) : null;
35
+ i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = t[u];
52
36
  }
53
- return { valid: true };
54
- }
37
+ return n.default = t, r && r.set(t, n), n;
38
+ }(require("fs"));
@@ -1,22 +1,60 @@
1
+ function e(t) {
2
+ return "function" != typeof WeakMap ? null : (e = function(e) {
3
+ return new WeakMap();
4
+ })(t);
5
+ }
1
6
  "use strict";
2
- /**
3
- * commands/tasks-gen.ts
4
- * Backward-compatible re-export from tasks-gen/ module
5
- * @deprecated Import from './tasks-gen/index' directly
6
- */
7
- var __importDefault = (this && this.__importDefault) || function (mod) {
8
- return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: !0
9
+ });
10
+ var t = exports, r = {
11
+ get TASK_SCHEMA () {
12
+ return a.TASK_SCHEMA;
13
+ },
14
+ get Task () {
15
+ return a.Task;
16
+ },
17
+ get TasksGenOptions () {
18
+ return a.TasksGenOptions;
19
+ },
20
+ get TasksGenResult () {
21
+ return a.TasksGenResult;
22
+ },
23
+ get default () {
24
+ return s.default;
25
+ },
26
+ get generateManifestJson () {
27
+ return o.generateManifestJson;
28
+ },
29
+ get generatePhaseJson () {
30
+ return o.generatePhaseJson;
31
+ },
32
+ get generateTasks () {
33
+ return s.generateTasks;
34
+ },
35
+ get main () {
36
+ return s.main;
37
+ },
38
+ get parseTasksMd () {
39
+ return u.parseTasksMd;
40
+ }
9
41
  };
10
- Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.generateManifestJson = exports.generatePhaseJson = exports.parseTasksMd = exports.TASK_SCHEMA = exports.default = exports.main = exports.generateTasks = void 0;
12
- var index_1 = require("./tasks-gen/index");
13
- Object.defineProperty(exports, "generateTasks", { enumerable: true, get: function () { return index_1.generateTasks; } });
14
- Object.defineProperty(exports, "main", { enumerable: true, get: function () { return index_1.main; } });
15
- Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(index_1).default; } });
16
- var types_1 = require("./tasks-gen/types");
17
- Object.defineProperty(exports, "TASK_SCHEMA", { enumerable: true, get: function () { return types_1.TASK_SCHEMA; } });
18
- var parsers_1 = require("./tasks-gen/parsers");
19
- Object.defineProperty(exports, "parseTasksMd", { enumerable: true, get: function () { return parsers_1.parseTasksMd; } });
20
- var generators_1 = require("./tasks-gen/generators");
21
- Object.defineProperty(exports, "generatePhaseJson", { enumerable: true, get: function () { return generators_1.generatePhaseJson; } });
22
- Object.defineProperty(exports, "generateManifestJson", { enumerable: true, get: function () { return generators_1.generateManifestJson; } });
42
+ for(var n in r)Object.defineProperty(t, n, {
43
+ enumerable: !0,
44
+ get: Object.getOwnPropertyDescriptor(r, n).get
45
+ });
46
+ let s = /*#__PURE__*/ function(t) {
47
+ var r, n, s;
48
+ if (t && t.__esModule) return t;
49
+ if (null === t || "object" != typeof t && "function" != typeof t) return {
50
+ default: t
51
+ };
52
+ if ((r = e(void 0)) && r.has(t)) return r.get(t);
53
+ for(var a in n = {
54
+ __proto__: null
55
+ }, s = Object.defineProperty && Object.getOwnPropertyDescriptor, t)if ("default" !== a && Object.prototype.hasOwnProperty.call(t, a)) {
56
+ var u = s ? Object.getOwnPropertyDescriptor(t, a) : null;
57
+ u && (u.get || u.set) ? Object.defineProperty(n, a, u) : n[a] = t[a];
58
+ }
59
+ return n.default = t, r && r.set(t, n), n;
60
+ }(require("./tasks-gen/index")), a = require("./tasks-gen/types"), u = require("./tasks-gen/parsers"), o = require("./tasks-gen/generators");