strikethroo 3.0.1 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/README.md +20 -5
  2. package/dist/cli.js +19 -128
  3. package/dist/cli.js.map +1 -1
  4. package/dist/serve/archive.d.ts +43 -0
  5. package/dist/serve/archive.d.ts.map +1 -0
  6. package/dist/serve/archive.js +124 -0
  7. package/dist/serve/archive.js.map +1 -0
  8. package/dist/serve/derivation.d.ts +78 -0
  9. package/dist/serve/derivation.d.ts.map +1 -0
  10. package/dist/serve/derivation.js +237 -0
  11. package/dist/serve/derivation.js.map +1 -0
  12. package/dist/serve/events.d.ts +41 -0
  13. package/dist/serve/events.d.ts.map +1 -0
  14. package/dist/serve/events.js +91 -0
  15. package/dist/serve/events.js.map +1 -0
  16. package/dist/serve/markdown.d.ts +75 -0
  17. package/dist/serve/markdown.d.ts.map +1 -0
  18. package/dist/serve/markdown.js +221 -0
  19. package/dist/serve/markdown.js.map +1 -0
  20. package/dist/serve/root.d.ts +48 -0
  21. package/dist/serve/root.d.ts.map +1 -0
  22. package/dist/serve/root.js +110 -0
  23. package/dist/serve/root.js.map +1 -0
  24. package/dist/serve/self-review.d.ts +70 -0
  25. package/dist/serve/self-review.d.ts.map +1 -0
  26. package/dist/serve/self-review.js +164 -0
  27. package/dist/serve/self-review.js.map +1 -0
  28. package/dist/serve/server.d.ts +70 -0
  29. package/dist/serve/server.d.ts.map +1 -0
  30. package/dist/serve/server.js +368 -0
  31. package/dist/serve/server.js.map +1 -0
  32. package/dist/serve/watcher.d.ts +32 -0
  33. package/dist/serve/watcher.d.ts.map +1 -0
  34. package/dist/serve/watcher.js +99 -0
  35. package/dist/serve/watcher.js.map +1 -0
  36. package/dist/serve/workspace-model.d.ts +80 -0
  37. package/dist/serve/workspace-model.d.ts.map +1 -0
  38. package/dist/serve/workspace-model.js +176 -0
  39. package/dist/serve/workspace-model.js.map +1 -0
  40. package/dist/skill-scripts/shared/frontmatter.d.ts +2 -0
  41. package/dist/skill-scripts/shared/frontmatter.d.ts.map +1 -0
  42. package/dist/skill-scripts/shared/frontmatter.js +37 -0
  43. package/dist/skill-scripts/shared/frontmatter.js.map +1 -0
  44. package/dist/skill-scripts/shared/plan-scan.d.ts +10 -0
  45. package/dist/skill-scripts/shared/plan-scan.d.ts.map +1 -0
  46. package/dist/skill-scripts/shared/plan-scan.js +91 -0
  47. package/dist/skill-scripts/shared/plan-scan.js.map +1 -0
  48. package/dist/skill-scripts/shared/root.d.ts +2 -0
  49. package/dist/skill-scripts/shared/root.d.ts.map +1 -0
  50. package/dist/skill-scripts/shared/root.js +104 -0
  51. package/dist/skill-scripts/shared/root.js.map +1 -0
  52. package/dist-web/assets/Fraunces-Italic-VariableFont_SOFT_WONK_opsz_wght-CuXX_kIb.ttf +0 -0
  53. package/dist-web/assets/Fraunces-VariableFont_SOFT_WONK_opsz_wght-DLWfSgHL.ttf +0 -0
  54. package/dist-web/assets/Outfit-VariableFont_wght-B6lQlNBM.ttf +0 -0
  55. package/dist-web/assets/SFMonoBold-DXHgGUoo.otf +0 -0
  56. package/dist-web/assets/SFMonoBoldItalic-CdGEImHi.otf +0 -0
  57. package/dist-web/assets/SFMonoHeavy-DL92f7rT.otf +0 -0
  58. package/dist-web/assets/SFMonoHeavyItalic-DnE00LFH.otf +0 -0
  59. package/dist-web/assets/SFMonoLight-CaMC1gg-.otf +0 -0
  60. package/dist-web/assets/SFMonoLightItalic-DG3Owzn7.otf +0 -0
  61. package/dist-web/assets/SFMonoMedium-ypRDCKSo.otf +0 -0
  62. package/dist-web/assets/SFMonoMediumItalic-DkJk-c-x.otf +0 -0
  63. package/dist-web/assets/SFMonoRegular-77Uh1IPk.otf +0 -0
  64. package/dist-web/assets/SFMonoRegularItalic-Cn01bACm.otf +0 -0
  65. package/dist-web/assets/SFMonoSemibold-CvhtzcyM.otf +0 -0
  66. package/dist-web/assets/SFMonoSemiboldItalic-D75NMH13.otf +0 -0
  67. package/dist-web/assets/arc-BWWIDtzc.js +1 -0
  68. package/dist-web/assets/architectureDiagram-3BPJPVTR-DeYxmq4e.js +36 -0
  69. package/dist-web/assets/blockDiagram-GPEHLZMM-DR85OQGh.js +132 -0
  70. package/dist-web/assets/c4Diagram-AAUBKEIU-B5p4vlmU.js +10 -0
  71. package/dist-web/assets/channel-BaP08-ph.js +1 -0
  72. package/dist-web/assets/chunk-2J33WTMH-duXs_Bbu.js +1 -0
  73. package/dist-web/assets/chunk-4BX2VUAB-DR1619KE.js +1 -0
  74. package/dist-web/assets/chunk-55IACEB6-UacLKom4.js +1 -0
  75. package/dist-web/assets/chunk-727SXJPM-DW2a_NI7.js +206 -0
  76. package/dist-web/assets/chunk-AQP2D5EJ-Bu5jn-_L.js +231 -0
  77. package/dist-web/assets/chunk-FMBD7UC4-eJsExyuh.js +15 -0
  78. package/dist-web/assets/chunk-ND2GUHAM-BqKmGd94.js +1 -0
  79. package/dist-web/assets/chunk-QZHKN3VN--ynTiOCz.js +1 -0
  80. package/dist-web/assets/classDiagram-4FO5ZUOK-V5dHIfdR.js +1 -0
  81. package/dist-web/assets/classDiagram-v2-Q7XG4LA2-V5dHIfdR.js +1 -0
  82. package/dist-web/assets/cose-bilkent-S5V4N54A-Ccz3r4S1.js +1 -0
  83. package/dist-web/assets/cytoscape.esm-BHYC38rz.js +331 -0
  84. package/dist-web/assets/dagre-BM42HDAG-BESSLbjB.js +4 -0
  85. package/dist-web/assets/defaultLocale-CrowFXzY.js +1 -0
  86. package/dist-web/assets/diagram-2AECGRRQ-BB5cYRbY.js +43 -0
  87. package/dist-web/assets/diagram-5GNKFQAL-3lmcZFDS.js +10 -0
  88. package/dist-web/assets/diagram-KO2AKTUF-DUMp202y.js +3 -0
  89. package/dist-web/assets/diagram-LMA3HP47-DCGXhLm1.js +24 -0
  90. package/dist-web/assets/diagram-OG6HWLK6-D247gj5y.js +24 -0
  91. package/dist-web/assets/erDiagram-TEJ5UH35-GI1vhsr2.js +85 -0
  92. package/dist-web/assets/flowDiagram-I6XJVG4X-iqUPWZuf.js +162 -0
  93. package/dist-web/assets/ganttDiagram-6RSMTGT7-DfG1X-Pe.js +292 -0
  94. package/dist-web/assets/gitGraphDiagram-PVQCEYII-B2MrV3y6.js +106 -0
  95. package/dist-web/assets/graph-Dqkl27Ch.js +1 -0
  96. package/dist-web/assets/index-Bm5I46eC.css +1 -0
  97. package/dist-web/assets/index-CvfrFREc.js +125 -0
  98. package/dist-web/assets/infoDiagram-5YYISTIA-DGqU5K4a.js +2 -0
  99. package/dist-web/assets/init-Gi6I4Gst.js +1 -0
  100. package/dist-web/assets/ishikawaDiagram-YF4QCWOH-DrMH3jRf.js +70 -0
  101. package/dist-web/assets/journeyDiagram-JHISSGLW-BH4wiwsd.js +139 -0
  102. package/dist-web/assets/kanban-definition-UN3LZRKU-DEV_dEgE.js +89 -0
  103. package/dist-web/assets/katex-C5jXJg4s.js +257 -0
  104. package/dist-web/assets/layout-DO9UvE1P.js +1 -0
  105. package/dist-web/assets/linear-D81nAxzR.js +1 -0
  106. package/dist-web/assets/mermaid.core-BaP7clO2.js +307 -0
  107. package/dist-web/assets/mindmap-definition-RKZ34NQL-DM4iAZ4M.js +96 -0
  108. package/dist-web/assets/ordinal-Cboi1Yqb.js +1 -0
  109. package/dist-web/assets/pieDiagram-4H26LBE5-DinO6q5i.js +30 -0
  110. package/dist-web/assets/quadrantDiagram-W4KKPZXB-CYvCm7U6.js +7 -0
  111. package/dist-web/assets/requirementDiagram-4Y6WPE33-DXfPIJ5m.js +84 -0
  112. package/dist-web/assets/sankeyDiagram-5OEKKPKP-CfovFay4.js +40 -0
  113. package/dist-web/assets/sequenceDiagram-3UESZ5HK-BboUGmEB.js +162 -0
  114. package/dist-web/assets/stateDiagram-AJRCARHV-CsB2FtnQ.js +1 -0
  115. package/dist-web/assets/stateDiagram-v2-BHNVJYJU-D0D_KesS.js +1 -0
  116. package/dist-web/assets/timeline-definition-PNZ67QCA-Cma1yLcq.js +120 -0
  117. package/dist-web/assets/vennDiagram-CIIHVFJN-DhFGEgCQ.js +34 -0
  118. package/dist-web/assets/wardley-L42UT6IY-DYkCeynG.js +173 -0
  119. package/dist-web/assets/wardleyDiagram-YWT4CUSO-jogT61m_.js +78 -0
  120. package/dist-web/assets/xychartDiagram-2RQKCTM6-Cn3W0E3s.js +7 -0
  121. package/dist-web/favicon.svg +13 -0
  122. package/dist-web/index.html +30 -0
  123. package/package.json +28 -8
  124. package/templates/harness/skills/st-full-workflow/SKILL.md +2 -2
  125. package/templates/harness/skills/st-generate-tasks/SKILL.md +2 -2
  126. package/dist/plan-utils.d.ts +0 -35
  127. package/dist/plan-utils.d.ts.map +0 -1
  128. package/dist/plan-utils.js +0 -123
  129. package/dist/plan-utils.js.map +0 -1
  130. package/dist/plan.d.ts +0 -27
  131. package/dist/plan.d.ts.map +0 -1
  132. package/dist/plan.js +0 -279
  133. package/dist/plan.js.map +0 -1
  134. package/dist/status.d.ts +0 -73
  135. package/dist/status.d.ts.map +0 -1
  136. package/dist/status.js +0 -375
  137. package/dist/status.js.map +0 -1
package/dist/plan.js DELETED
@@ -1,279 +0,0 @@
1
- "use strict";
2
- /**
3
- * Plan Command Module
4
- *
5
- * Implements show and archive subcommands for plan inspection and management
6
- */
7
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
- if (k2 === undefined) k2 = k;
9
- var desc = Object.getOwnPropertyDescriptor(m, k);
10
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
- desc = { enumerable: true, get: function() { return m[k]; } };
12
- }
13
- Object.defineProperty(o, k2, desc);
14
- }) : (function(o, m, k, k2) {
15
- if (k2 === undefined) k2 = k;
16
- o[k2] = m[k];
17
- }));
18
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
- Object.defineProperty(o, "default", { enumerable: true, value: v });
20
- }) : function(o, v) {
21
- o["default"] = v;
22
- });
23
- var __importStar = (this && this.__importStar) || (function () {
24
- var ownKeys = function(o) {
25
- ownKeys = Object.getOwnPropertyNames || function (o) {
26
- var ar = [];
27
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
- return ar;
29
- };
30
- return ownKeys(o);
31
- };
32
- return function (mod) {
33
- if (mod && mod.__esModule) return mod;
34
- var result = {};
35
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
- __setModuleDefault(result, mod);
37
- return result;
38
- };
39
- })();
40
- var __importDefault = (this && this.__importDefault) || function (mod) {
41
- return (mod && mod.__esModule) ? mod : { "default": mod };
42
- };
43
- Object.defineProperty(exports, "__esModule", { value: true });
44
- exports.showPlan = showPlan;
45
- exports.deletePlan = deletePlan;
46
- exports.archivePlan = archivePlan;
47
- const fs = __importStar(require("fs-extra"));
48
- const path = __importStar(require("path"));
49
- const gray_matter_1 = __importDefault(require("gray-matter"));
50
- const readline = __importStar(require("readline"));
51
- const chalk_1 = __importDefault(require("chalk"));
52
- const plan_utils_1 = require("./plan-utils");
53
- const TERM_WIDTH = 80;
54
- const DIVIDER = '─'.repeat(TERM_WIDTH);
55
- /**
56
- * Format a section header
57
- */
58
- function formatSectionHeader(title) {
59
- return `\n${chalk_1.default.cyan.bold(title)}\n${chalk_1.default.cyan(DIVIDER)}\n`;
60
- }
61
- /**
62
- * Create an ASCII progress bar
63
- */
64
- function createProgressBar(percentage, width = 20) {
65
- const filled = Math.round((percentage / 100) * width);
66
- const empty = width - filled;
67
- const bar = chalk_1.default.green('█'.repeat(filled)) + chalk_1.default.gray('░'.repeat(empty));
68
- return `[${bar}] ${percentage}%`;
69
- }
70
- /**
71
- * Wrap text to specified width, preserving paragraphs
72
- */
73
- function wrapText(text, maxWidth) {
74
- const paragraphs = text.split('\n\n');
75
- return paragraphs
76
- .map(paragraph => {
77
- const words = paragraph.split(/\s+/);
78
- const lines = [];
79
- let currentLine = '';
80
- for (const word of words) {
81
- if (currentLine.length + word.length + 1 <= maxWidth) {
82
- currentLine += (currentLine ? ' ' : '') + word;
83
- }
84
- else {
85
- if (currentLine)
86
- lines.push(currentLine);
87
- currentLine = word;
88
- }
89
- }
90
- if (currentLine)
91
- lines.push(currentLine);
92
- return lines.join('\n');
93
- })
94
- .join('\n\n');
95
- }
96
- /**
97
- * Prompt user for yes/no confirmation
98
- */
99
- async function promptConfirmation(question) {
100
- const rl = readline.createInterface({
101
- input: process.stdin,
102
- output: process.stdout,
103
- });
104
- return new Promise(resolve => {
105
- rl.question(question, answer => {
106
- rl.close();
107
- resolve(answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes');
108
- });
109
- });
110
- }
111
- /**
112
- * Display plan metadata, executive summary, and task statistics
113
- */
114
- async function showPlan(planId) {
115
- try {
116
- const planData = await (0, plan_utils_1.loadPlanData)(planId);
117
- if (!planData) {
118
- return {
119
- success: false,
120
- message: `Plan ${planId} not found. Check .ai/strikethroo/plans/ and .ai/strikethroo/archive/`,
121
- };
122
- }
123
- // Build output
124
- let output = '';
125
- // Header
126
- output += chalk_1.default.bold.white(`\nPlan ${planData.id}\n`);
127
- output += chalk_1.default.gray(DIVIDER) + '\n';
128
- // Metadata section
129
- output += formatSectionHeader('Metadata');
130
- output += ` ${chalk_1.default.cyan('●')} ID: ${planData.id}\n`;
131
- output += ` ${chalk_1.default.cyan('●')} Created: ${planData.created}\n`;
132
- output += ` ${chalk_1.default.cyan('●')} Status: ${planData.isArchived ? chalk_1.default.blue('Archived') : chalk_1.default.green('Active')}\n`;
133
- output += ` ${chalk_1.default.cyan('●')} Summary: ${planData.summary}\n`;
134
- output += ` ${chalk_1.default.cyan('●')} Approval: ${planData.approval_method ?? 'unset'}\n`;
135
- // Task statistics section
136
- const taskCount = planData.tasks.length;
137
- const completedCount = planData.tasks.filter(t => t.status === 'completed').length;
138
- const percentage = taskCount > 0 ? Math.round((completedCount / taskCount) * 100) : 0;
139
- output += formatSectionHeader('Task Progress');
140
- if (taskCount > 0) {
141
- output += ` ${createProgressBar(percentage, 20)} ${completedCount}/${taskCount} tasks completed\n`;
142
- }
143
- else {
144
- output += ` ${chalk_1.default.gray('No tasks generated yet')}\n`;
145
- }
146
- // Executive Summary section
147
- output += formatSectionHeader('Executive Summary');
148
- // Word wrap the executive summary to 76 chars (80 - 4 for indent)
149
- const wrappedSummary = wrapText(planData.executiveSummary, 76);
150
- output +=
151
- wrappedSummary
152
- .split('\n')
153
- .map(line => ` ${line}`)
154
- .join('\n') + '\n';
155
- // Footer
156
- output += '\n' + chalk_1.default.gray(DIVIDER) + '\n';
157
- console.log(output);
158
- return { success: true };
159
- }
160
- catch (error) {
161
- const message = error instanceof Error ? error.message : String(error);
162
- return {
163
- success: false,
164
- message: `Failed to display plan: ${message}`,
165
- };
166
- }
167
- }
168
- /**
169
- * Delete a plan permanently from either active or archive directory
170
- */
171
- async function deletePlan(planId, autoConfirm = false) {
172
- try {
173
- // 1. Find the plan
174
- const location = await (0, plan_utils_1.findPlanById)(planId);
175
- if (!location) {
176
- return {
177
- success: false,
178
- message: `Plan ${planId} not found. Check .ai/strikethroo/plans/ and .ai/strikethroo/archive/ directories.`,
179
- };
180
- }
181
- // 2. Prompt for confirmation (unless autoConfirm is true)
182
- if (!autoConfirm) {
183
- const planType = location.isArchived ? 'archived' : 'active';
184
- console.log(chalk_1.default.yellow(`\n⚠ Warning: This will permanently delete ${planType} plan ${planId} and all its tasks.\n`));
185
- const confirmed = await promptConfirmation('Delete plan? (y/n): ');
186
- if (!confirmed) {
187
- return { success: false, message: 'Deletion cancelled by user.' };
188
- }
189
- }
190
- // 3. Delete the directory
191
- await fs.remove(location.directoryPath);
192
- // 4. Display success message
193
- console.log(chalk_1.default.green(`\n✓ Plan ${planId} successfully deleted.\n`));
194
- return { success: true };
195
- }
196
- catch (error) {
197
- const message = error instanceof Error ? error.message : String(error);
198
- return {
199
- success: false,
200
- message: `Failed to delete plan: ${message}`,
201
- };
202
- }
203
- }
204
- /**
205
- * Archive a plan by moving it to the archive directory
206
- */
207
- async function archivePlan(planId, autoConfirm = false) {
208
- try {
209
- // 1. Find and validate plan location
210
- const location = await (0, plan_utils_1.findPlanById)(planId);
211
- if (!location) {
212
- return {
213
- success: false,
214
- message: `Plan ${planId} not found. Check .ai/strikethroo/plans/ directory.`,
215
- };
216
- }
217
- if (location.isArchived) {
218
- return {
219
- success: false,
220
- message: `Plan ${planId} is already archived.`,
221
- };
222
- }
223
- // 2. Load plan data to check for incomplete tasks
224
- const planData = await (0, plan_utils_1.loadPlanData)(planId);
225
- if (!planData) {
226
- return { success: false, message: `Failed to load plan ${planId} data.` };
227
- }
228
- const incompleteTasks = planData.tasks.filter(t => t.status !== 'completed');
229
- // 3. Warn user if incomplete tasks exist
230
- if (incompleteTasks.length > 0 && !autoConfirm) {
231
- console.log(chalk_1.default.yellow(`\n⚠ Warning: Plan ${planId} has ${incompleteTasks.length} incomplete task(s).\n`));
232
- const confirmed = await promptConfirmation('Archive anyway? (y/n): ');
233
- if (!confirmed) {
234
- return { success: false, message: 'Archive cancelled by user.' };
235
- }
236
- }
237
- // 4. Update all task files to completed status
238
- const tasksDir = path.join(location.directoryPath, 'tasks');
239
- if (await fs.pathExists(tasksDir)) {
240
- const taskFiles = await fs.readdir(tasksDir);
241
- for (const file of taskFiles) {
242
- if (!file.endsWith('.md'))
243
- continue;
244
- const taskPath = path.join(tasksDir, file);
245
- const content = await fs.readFile(taskPath, 'utf-8');
246
- const parsed = (0, gray_matter_1.default)(content);
247
- // Update status to completed
248
- parsed.data.status = 'completed';
249
- // Write back with updated frontmatter
250
- const updated = gray_matter_1.default.stringify(parsed.content, parsed.data);
251
- await fs.writeFile(taskPath, updated, 'utf-8');
252
- }
253
- }
254
- // 5. Append "Manually archived" note to plan document
255
- const planContent = await fs.readFile(location.filePath, 'utf-8');
256
- const today = new Date().toISOString().split('T')[0]; // YYYY-MM-DD format
257
- const archiveNote = `\n---\n\n**Note**: Manually archived on ${today}\n`;
258
- const updatedContent = planContent + archiveNote;
259
- await fs.writeFile(location.filePath, updatedContent, 'utf-8');
260
- // 6. Move plan directory to archive
261
- const baseDir = process.cwd();
262
- const archiveDir = path.join(baseDir, '.ai/strikethroo/archive');
263
- await fs.ensureDir(archiveDir);
264
- const planDirName = path.basename(location.directoryPath);
265
- const archivePath = path.join(archiveDir, planDirName);
266
- await fs.move(location.directoryPath, archivePath);
267
- // 7. Display success message
268
- console.log(chalk_1.default.green(`\n✓ Plan ${planId} successfully archived to .ai/strikethroo/archive/${planDirName}\n`));
269
- return { success: true };
270
- }
271
- catch (error) {
272
- const message = error instanceof Error ? error.message : String(error);
273
- return {
274
- success: false,
275
- message: `Failed to archive plan: ${message}`,
276
- };
277
- }
278
- }
279
- //# sourceMappingURL=plan.js.map
package/dist/plan.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"plan.js","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6EH,4BA8DC;AAKD,gCA4CC;AAKD,kCAiGC;AAhSD,6CAA+B;AAC/B,2CAA6B;AAC7B,8DAAiC;AACjC,mDAAqC;AACrC,kDAA0B;AAC1B,6CAA0D;AAE1D,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAEvC;;GAEG;AACH,SAAS,mBAAmB,CAAC,KAAa;IACxC,OAAO,KAAK,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AACjE,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,UAAkB,EAAE,QAAgB,EAAE;IAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;IAE7B,MAAM,GAAG,GAAG,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5E,OAAO,IAAI,GAAG,KAAK,UAAU,GAAG,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CAAC,IAAY,EAAE,QAAgB;IAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAEtC,OAAO,UAAU;SACd,GAAG,CAAC,SAAS,CAAC,EAAE;QACf,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,WAAW,GAAG,EAAE,CAAC;QAErB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACrD,WAAW,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACN,IAAI,WAAW;oBAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACzC,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;QACH,CAAC;QACD,IAAI,WAAW;YAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEzC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC;SACD,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAAC,QAAgB;IAChD,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;YAC7B,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,QAAQ,CAAC,MAAc;IAC3C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,IAAA,yBAAY,EAAC,MAAM,CAAC,CAAC;QAE5C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,QAAQ,MAAM,uEAAuE;aAC/F,CAAC;QACJ,CAAC;QAED,eAAe;QACf,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,SAAS;QACT,MAAM,IAAI,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,IAAI,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;QAErC,mBAAmB;QACnB,MAAM,IAAI,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,IAAI,KAAK,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,QAAQ,CAAC,EAAE,IAAI,CAAC;QACtD,MAAM,IAAI,KAAK,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,QAAQ,CAAC,OAAO,IAAI,CAAC;QAChE,MAAM,IAAI,KAAK,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,eAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;QACnH,MAAM,IAAI,KAAK,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,QAAQ,CAAC,OAAO,IAAI,CAAC;QAChE,MAAM,IAAI,KAAK,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,QAAQ,CAAC,eAAe,IAAI,OAAO,IAAI,CAAC;QAEpF,0BAA0B;QAC1B,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;QACxC,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,MAAM,CAAC;QACnF,MAAM,UAAU,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEtF,MAAM,IAAI,mBAAmB,CAAC,eAAe,CAAC,CAAC;QAC/C,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,iBAAiB,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,cAAc,IAAI,SAAS,oBAAoB,CAAC;QACtG,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,eAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC;QAC1D,CAAC;QAED,4BAA4B;QAC5B,MAAM,IAAI,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;QAEnD,kEAAkE;QAClE,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QAC/D,MAAM;YACJ,cAAc;iBACX,KAAK,CAAC,IAAI,CAAC;iBACX,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;iBACxB,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAEvB,SAAS;QACT,MAAM,IAAI,IAAI,GAAG,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;QAE5C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEpB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,2BAA2B,OAAO,EAAE;SAC9C,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,UAAU,CAC9B,MAAc,EACd,cAAuB,KAAK;IAE5B,IAAI,CAAC;QACH,mBAAmB;QACnB,MAAM,QAAQ,GAAG,MAAM,IAAA,yBAAY,EAAC,MAAM,CAAC,CAAC;QAE5C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,QAAQ,MAAM,oFAAoF;aAC5G,CAAC;QACJ,CAAC;QAED,0DAA0D;QAC1D,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC7D,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,MAAM,CACV,8CAA8C,QAAQ,SAAS,MAAM,uBAAuB,CAC7F,CACF,CAAC;YAEF,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;YACnE,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC;YACpE,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAExC,6BAA6B;QAC7B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,YAAY,MAAM,0BAA0B,CAAC,CAAC,CAAC;QAEvE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,0BAA0B,OAAO,EAAE;SAC7C,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,WAAW,CAC/B,MAAc,EACd,cAAuB,KAAK;IAE5B,IAAI,CAAC;QACH,qCAAqC;QACrC,MAAM,QAAQ,GAAG,MAAM,IAAA,yBAAY,EAAC,MAAM,CAAC,CAAC;QAE5C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,QAAQ,MAAM,qDAAqD;aAC7E,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YACxB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,QAAQ,MAAM,uBAAuB;aAC/C,CAAC;QACJ,CAAC;QAED,kDAAkD;QAClD,MAAM,QAAQ,GAAG,MAAM,IAAA,yBAAY,EAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,uBAAuB,MAAM,QAAQ,EAAE,CAAC;QAC5E,CAAC;QAED,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;QAE7E,yCAAyC;QACzC,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAC/C,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,MAAM,CACV,sBAAsB,MAAM,QAAQ,eAAe,CAAC,MAAM,wBAAwB,CACnF,CACF,CAAC;YAEF,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,yBAAyB,CAAC,CAAC;YACtE,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC;YACnE,CAAC;QACH,CAAC;QAED,+CAA+C;QAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC5D,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAE7C,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;gBAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAAE,SAAS;gBAEpC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAC3C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACrD,MAAM,MAAM,GAAG,IAAA,qBAAM,EAAC,OAAO,CAAC,CAAC;gBAE/B,6BAA6B;gBAC7B,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;gBAEjC,sCAAsC;gBACtC,MAAM,OAAO,GAAG,qBAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC9D,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QAED,sDAAsD;QACtD,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClE,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB;QAC1E,MAAM,WAAW,GAAG,2CAA2C,KAAK,IAAI,CAAC;QACzE,MAAM,cAAc,GAAG,WAAW,GAAG,WAAW,CAAC;QACjD,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;QAE/D,oCAAoC;QACpC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;QACjE,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAE/B,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAEvD,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAEnD,6BAA6B;QAC7B,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,KAAK,CACT,YAAY,MAAM,qDAAqD,WAAW,IAAI,CACvF,CACF,CAAC;QAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,2BAA2B,OAAO,EAAE;SAC9C,CAAC;IACJ,CAAC;AACH,CAAC"}
package/dist/status.d.ts DELETED
@@ -1,73 +0,0 @@
1
- /**
2
- * Status Dashboard Module
3
- *
4
- * This module provides functionality to display a dashboard with plans and task statistics
5
- */
6
- /**
7
- * Metadata extracted from task files
8
- */
9
- export interface TaskMetadata {
10
- id: number;
11
- status: 'pending' | 'in-progress' | 'completed' | 'needs-clarification';
12
- }
13
- /**
14
- * Metadata extracted from plan files
15
- */
16
- export interface PlanMetadata {
17
- id: number;
18
- summary: string;
19
- created: string;
20
- approval_method?: string;
21
- isArchived: boolean;
22
- directoryPath: string;
23
- tasks: TaskMetadata[];
24
- }
25
- /**
26
- * Parse task files in a plan directory
27
- */
28
- export declare function parseTaskFiles(planDir: string): Promise<TaskMetadata[]>;
29
- /**
30
- * Collect all plan data from the filesystem
31
- */
32
- export declare function collectPlanData(): Promise<PlanMetadata[]>;
33
- /**
34
- * Plan status categorization
35
- */
36
- export type PlanStatus = 'noTasks' | 'notStarted' | 'inProgress' | 'completed';
37
- /**
38
- * Dashboard statistics interface
39
- */
40
- export interface DashboardStatistics {
41
- totalPlans: number;
42
- activePlans: number;
43
- archivedPlans: number;
44
- taskCompletionRate: number;
45
- plansByStatus: {
46
- noTasks: number;
47
- notStarted: number;
48
- inProgress: number;
49
- completed: number;
50
- };
51
- mostRecentPlan?: PlanMetadata;
52
- oldestPlan?: PlanMetadata;
53
- }
54
- /**
55
- * Categorize a single plan's status
56
- */
57
- export declare function categorizePlanStatus(plan: PlanMetadata): PlanStatus;
58
- /**
59
- * Calculate all dashboard statistics
60
- */
61
- export declare function calculateStatistics(plans: PlanMetadata[]): DashboardStatistics;
62
- /**
63
- * Format the complete dashboard
64
- */
65
- export declare function formatDashboard(stats: DashboardStatistics, plans: PlanMetadata[]): string;
66
- /**
67
- * Main status function that orchestrates all components
68
- */
69
- export declare function status(): Promise<{
70
- success: boolean;
71
- message?: string;
72
- }>;
73
- //# sourceMappingURL=status.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,qBAAqB,CAAC;CACzE;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AA0DD;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAsC7E;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAyB/D;AAMD;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,YAAY,GAAG,YAAY,GAAG,WAAW,CAAC;AAE/E;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,cAAc,CAAC,EAAE,YAAY,CAAC;IAC9B,UAAU,CAAC,EAAE,YAAY,CAAC;CAC3B;AAiCD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,UAAU,CASnE;AAwCD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,mBAAmB,CAa9E;AA2HD;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,MAAM,CAmBzF;AAMD;;GAEG;AACH,wBAAsB,MAAM,IAAI,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAgB9E"}