cmp-memory-system 1.0.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 (161) hide show
  1. package/README.md +541 -0
  2. package/dist/analytics/index.d.ts +5 -0
  3. package/dist/analytics/index.d.ts.map +1 -0
  4. package/dist/analytics/index.js +5 -0
  5. package/dist/analytics/index.js.map +1 -0
  6. package/dist/analytics/tracker.d.ts +107 -0
  7. package/dist/analytics/tracker.d.ts.map +1 -0
  8. package/dist/analytics/tracker.js +333 -0
  9. package/dist/analytics/tracker.js.map +1 -0
  10. package/dist/auto-improve/eslint-generator.d.ts +36 -0
  11. package/dist/auto-improve/eslint-generator.d.ts.map +1 -0
  12. package/dist/auto-improve/eslint-generator.js +280 -0
  13. package/dist/auto-improve/eslint-generator.js.map +1 -0
  14. package/dist/auto-improve/index.d.ts +6 -0
  15. package/dist/auto-improve/index.d.ts.map +1 -0
  16. package/dist/auto-improve/index.js +6 -0
  17. package/dist/auto-improve/index.js.map +1 -0
  18. package/dist/auto-improve/pattern-detector.d.ts +92 -0
  19. package/dist/auto-improve/pattern-detector.d.ts.map +1 -0
  20. package/dist/auto-improve/pattern-detector.js +231 -0
  21. package/dist/auto-improve/pattern-detector.js.map +1 -0
  22. package/dist/cli/index.d.ts +16 -0
  23. package/dist/cli/index.d.ts.map +1 -0
  24. package/dist/cli/index.js +636 -0
  25. package/dist/cli/index.js.map +1 -0
  26. package/dist/dashboard/index.d.ts +6 -0
  27. package/dist/dashboard/index.d.ts.map +1 -0
  28. package/dist/dashboard/index.js +6 -0
  29. package/dist/dashboard/index.js.map +1 -0
  30. package/dist/dashboard/server.d.ts +15 -0
  31. package/dist/dashboard/server.d.ts.map +1 -0
  32. package/dist/dashboard/server.js +373 -0
  33. package/dist/dashboard/server.js.map +1 -0
  34. package/dist/dashboard/ui.d.ts +9 -0
  35. package/dist/dashboard/ui.d.ts.map +1 -0
  36. package/dist/dashboard/ui.js +530 -0
  37. package/dist/dashboard/ui.js.map +1 -0
  38. package/dist/db/client.d.ts +66 -0
  39. package/dist/db/client.d.ts.map +1 -0
  40. package/dist/db/client.js +159 -0
  41. package/dist/db/client.js.map +1 -0
  42. package/dist/db/drizzle-client.d.ts +302 -0
  43. package/dist/db/drizzle-client.d.ts.map +1 -0
  44. package/dist/db/drizzle-client.js +404 -0
  45. package/dist/db/drizzle-client.js.map +1 -0
  46. package/dist/db/index.d.ts +5 -0
  47. package/dist/db/index.d.ts.map +1 -0
  48. package/dist/db/index.js +5 -0
  49. package/dist/db/index.js.map +1 -0
  50. package/dist/feedback/collector.d.ts +74 -0
  51. package/dist/feedback/collector.d.ts.map +1 -0
  52. package/dist/feedback/collector.js +231 -0
  53. package/dist/feedback/collector.js.map +1 -0
  54. package/dist/feedback/index.d.ts +5 -0
  55. package/dist/feedback/index.d.ts.map +1 -0
  56. package/dist/feedback/index.js +5 -0
  57. package/dist/feedback/index.js.map +1 -0
  58. package/dist/hooks/index.d.ts +8 -0
  59. package/dist/hooks/index.d.ts.map +1 -0
  60. package/dist/hooks/index.js +8 -0
  61. package/dist/hooks/index.js.map +1 -0
  62. package/dist/hooks/memory-checkpoint.d.ts +43 -0
  63. package/dist/hooks/memory-checkpoint.d.ts.map +1 -0
  64. package/dist/hooks/memory-checkpoint.js +257 -0
  65. package/dist/hooks/memory-checkpoint.js.map +1 -0
  66. package/dist/hooks/post-tool-use.d.ts +61 -0
  67. package/dist/hooks/post-tool-use.d.ts.map +1 -0
  68. package/dist/hooks/post-tool-use.js +262 -0
  69. package/dist/hooks/post-tool-use.js.map +1 -0
  70. package/dist/hooks/pre-tool-use.d.ts +34 -0
  71. package/dist/hooks/pre-tool-use.d.ts.map +1 -0
  72. package/dist/hooks/pre-tool-use.js +358 -0
  73. package/dist/hooks/pre-tool-use.js.map +1 -0
  74. package/dist/hooks/session-start.d.ts +38 -0
  75. package/dist/hooks/session-start.d.ts.map +1 -0
  76. package/dist/hooks/session-start.js +274 -0
  77. package/dist/hooks/session-start.js.map +1 -0
  78. package/dist/index.d.ts +29 -0
  79. package/dist/index.d.ts.map +1 -0
  80. package/dist/index.js +39 -0
  81. package/dist/index.js.map +1 -0
  82. package/dist/mcp/index.d.ts +5 -0
  83. package/dist/mcp/index.d.ts.map +1 -0
  84. package/dist/mcp/index.js +5 -0
  85. package/dist/mcp/index.js.map +1 -0
  86. package/dist/mcp/server.d.ts +42 -0
  87. package/dist/mcp/server.d.ts.map +1 -0
  88. package/dist/mcp/server.js +599 -0
  89. package/dist/mcp/server.js.map +1 -0
  90. package/dist/registry/embeddings.d.ts +38 -0
  91. package/dist/registry/embeddings.d.ts.map +1 -0
  92. package/dist/registry/embeddings.js +110 -0
  93. package/dist/registry/embeddings.js.map +1 -0
  94. package/dist/registry/generator.d.ts +41 -0
  95. package/dist/registry/generator.d.ts.map +1 -0
  96. package/dist/registry/generator.js +323 -0
  97. package/dist/registry/generator.js.map +1 -0
  98. package/dist/registry/index.d.ts +6 -0
  99. package/dist/registry/index.d.ts.map +1 -0
  100. package/dist/registry/index.js +6 -0
  101. package/dist/registry/index.js.map +1 -0
  102. package/dist/services/IdeaCollector.d.ts +103 -0
  103. package/dist/services/IdeaCollector.d.ts.map +1 -0
  104. package/dist/services/IdeaCollector.js +371 -0
  105. package/dist/services/IdeaCollector.js.map +1 -0
  106. package/dist/services/TaskTracker.d.ts +89 -0
  107. package/dist/services/TaskTracker.d.ts.map +1 -0
  108. package/dist/services/TaskTracker.js +324 -0
  109. package/dist/services/TaskTracker.js.map +1 -0
  110. package/dist/services/WorkPlanManager.d.ts +107 -0
  111. package/dist/services/WorkPlanManager.d.ts.map +1 -0
  112. package/dist/services/WorkPlanManager.js +440 -0
  113. package/dist/services/WorkPlanManager.js.map +1 -0
  114. package/dist/services/auto-inject.d.ts +77 -0
  115. package/dist/services/auto-inject.d.ts.map +1 -0
  116. package/dist/services/auto-inject.js +289 -0
  117. package/dist/services/auto-inject.js.map +1 -0
  118. package/dist/services/auto-tag.d.ts +61 -0
  119. package/dist/services/auto-tag.d.ts.map +1 -0
  120. package/dist/services/auto-tag.js +203 -0
  121. package/dist/services/auto-tag.js.map +1 -0
  122. package/dist/services/cross-project-sync.d.ts +76 -0
  123. package/dist/services/cross-project-sync.d.ts.map +1 -0
  124. package/dist/services/cross-project-sync.js +235 -0
  125. package/dist/services/cross-project-sync.js.map +1 -0
  126. package/dist/services/index.d.ts +15 -0
  127. package/dist/services/index.d.ts.map +1 -0
  128. package/dist/services/index.js +18 -0
  129. package/dist/services/index.js.map +1 -0
  130. package/dist/services/memory-consolidation.d.ts +77 -0
  131. package/dist/services/memory-consolidation.d.ts.map +1 -0
  132. package/dist/services/memory-consolidation.js +298 -0
  133. package/dist/services/memory-consolidation.js.map +1 -0
  134. package/dist/services/semantic-search.d.ts +93 -0
  135. package/dist/services/semantic-search.d.ts.map +1 -0
  136. package/dist/services/semantic-search.js +278 -0
  137. package/dist/services/semantic-search.js.map +1 -0
  138. package/dist/services/weekly-digest.d.ts +105 -0
  139. package/dist/services/weekly-digest.d.ts.map +1 -0
  140. package/dist/services/weekly-digest.js +292 -0
  141. package/dist/services/weekly-digest.js.map +1 -0
  142. package/dist/types/index.d.ts +274 -0
  143. package/dist/types/index.d.ts.map +1 -0
  144. package/dist/types/index.js +84 -0
  145. package/dist/types/index.js.map +1 -0
  146. package/dist/utils/config.d.ts +21 -0
  147. package/dist/utils/config.d.ts.map +1 -0
  148. package/dist/utils/config.js +89 -0
  149. package/dist/utils/config.js.map +1 -0
  150. package/dist/utils/index.d.ts +6 -0
  151. package/dist/utils/index.d.ts.map +1 -0
  152. package/dist/utils/index.js +6 -0
  153. package/dist/utils/index.js.map +1 -0
  154. package/dist/utils/paths.d.ts +28 -0
  155. package/dist/utils/paths.d.ts.map +1 -0
  156. package/dist/utils/paths.js +80 -0
  157. package/dist/utils/paths.js.map +1 -0
  158. package/package.json +89 -0
  159. package/templates/memory-config.json +82 -0
  160. package/templates/memory-config.schema.json +212 -0
  161. package/templates/settings.json +58 -0
@@ -0,0 +1,371 @@
1
+ /**
2
+ * IdeaCollector Service
3
+ *
4
+ * Collects and manages ideas and improvements generated during work sessions.
5
+ * Integrates with TaskTracker to associate ideas with tasks.
6
+ */
7
+ import { ulid } from 'ulid';
8
+ import { createDrizzleClient } from '../db/drizzle-client.js';
9
+ // =============================================================================
10
+ // IDEA COLLECTOR SERVICE
11
+ // =============================================================================
12
+ export class IdeaCollector {
13
+ client;
14
+ system;
15
+ constructor(system) {
16
+ this.system = system;
17
+ this.client = createDrizzleClient(system);
18
+ }
19
+ // ===========================================================================
20
+ // IDEA OPERATIONS
21
+ // ===========================================================================
22
+ /**
23
+ * Create a new idea (standalone, not attached to task)
24
+ */
25
+ async createIdea(input) {
26
+ const now = new Date().toISOString();
27
+ const content = {
28
+ id: ulid(),
29
+ title: input.title,
30
+ description: input.description,
31
+ priority: input.priority ?? 'medium',
32
+ category: input.category ?? 'feature',
33
+ createdAt: now,
34
+ relatedFiles: input.relatedFiles,
35
+ standalone: true,
36
+ taskId: input.taskId,
37
+ };
38
+ const result = await this.client.create({
39
+ type: 'idea',
40
+ status: 'active',
41
+ priority: input.priority ?? 'medium',
42
+ content: content,
43
+ tags: [
44
+ 'idea',
45
+ `category:${content.category}`,
46
+ `priority:${content.priority}`,
47
+ ],
48
+ });
49
+ return result.id;
50
+ }
51
+ /**
52
+ * Get all ideas (standalone and from tasks)
53
+ */
54
+ async getAllIdeas(options) {
55
+ // Get standalone ideas
56
+ const standaloneItems = await this.client.list({
57
+ type: 'idea',
58
+ status: 'active',
59
+ limit: options?.limit ?? 100,
60
+ });
61
+ // Get ideas from tasks
62
+ const taskItems = await this.client.list({
63
+ type: 'task',
64
+ limit: 100,
65
+ });
66
+ const ideas = [];
67
+ // Add standalone ideas
68
+ for (const item of standaloneItems) {
69
+ const content = item.content;
70
+ if (content) {
71
+ ideas.push({
72
+ id: content.id,
73
+ title: content.title,
74
+ description: content.description,
75
+ priority: content.priority,
76
+ category: content.category,
77
+ createdAt: content.createdAt,
78
+ relatedFiles: content.relatedFiles,
79
+ });
80
+ }
81
+ }
82
+ // Add ideas from tasks
83
+ for (const task of taskItems) {
84
+ const content = task.content;
85
+ if (content?.ideas) {
86
+ ideas.push(...content.ideas);
87
+ }
88
+ }
89
+ // Filter by category
90
+ let filtered = ideas;
91
+ if (options?.category) {
92
+ filtered = filtered.filter(i => i.category === options.category);
93
+ }
94
+ if (options?.priority) {
95
+ filtered = filtered.filter(i => i.priority === options.priority);
96
+ }
97
+ // Sort by date and limit
98
+ return filtered
99
+ .sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime())
100
+ .slice(0, options?.limit ?? 100);
101
+ }
102
+ /**
103
+ * Get idea statistics
104
+ */
105
+ async getIdeaStats() {
106
+ const ideas = await this.getAllIdeas({ limit: 1000 });
107
+ const byCategory = {};
108
+ const byPriority = {};
109
+ for (const idea of ideas) {
110
+ byCategory[idea.category] = (byCategory[idea.category] ?? 0) + 1;
111
+ byPriority[idea.priority] = (byPriority[idea.priority] ?? 0) + 1;
112
+ }
113
+ return {
114
+ totalIdeas: ideas.length,
115
+ byCategory,
116
+ byPriority,
117
+ recent: ideas.slice(0, 10),
118
+ };
119
+ }
120
+ /**
121
+ * Mark idea as implemented/done
122
+ */
123
+ async completeIdea(ideaId) {
124
+ // Find the idea (could be standalone or in a task)
125
+ const standaloneItems = await this.client.list({ type: 'idea' });
126
+ const standaloneItem = standaloneItems.find(item => {
127
+ const content = item.content;
128
+ return content?.id === ideaId;
129
+ });
130
+ if (standaloneItem) {
131
+ await this.client.update(standaloneItem.id, { status: 'done' });
132
+ }
133
+ }
134
+ // ===========================================================================
135
+ // IMPROVEMENT OPERATIONS
136
+ // ===========================================================================
137
+ /**
138
+ * Create a new improvement (standalone)
139
+ */
140
+ async createImprovement(input) {
141
+ const now = new Date().toISOString();
142
+ const content = {
143
+ id: ulid(),
144
+ title: input.title,
145
+ description: input.description,
146
+ type: input.type ?? 'code_quality',
147
+ effort: input.effort ?? 'medium',
148
+ createdAt: now,
149
+ suggestedBy: input.suggestedBy ?? 'ai',
150
+ standalone: true,
151
+ taskId: input.taskId,
152
+ };
153
+ const result = await this.client.create({
154
+ type: 'improvement',
155
+ status: 'active',
156
+ priority: input.effort === 'small' ? 'low' : input.effort === 'large' ? 'high' : 'medium',
157
+ content: content,
158
+ tags: [
159
+ 'improvement',
160
+ `type:${content.type}`,
161
+ `effort:${content.effort}`,
162
+ ],
163
+ });
164
+ return result.id;
165
+ }
166
+ /**
167
+ * Get all improvements
168
+ */
169
+ async getAllImprovements(options) {
170
+ // Get standalone improvements
171
+ const standaloneItems = await this.client.list({
172
+ type: 'improvement',
173
+ status: 'active',
174
+ limit: options?.limit ?? 100,
175
+ });
176
+ // Get improvements from tasks
177
+ const taskItems = await this.client.list({
178
+ type: 'task',
179
+ limit: 100,
180
+ });
181
+ const improvements = [];
182
+ // Add standalone improvements
183
+ for (const item of standaloneItems) {
184
+ const content = item.content;
185
+ if (content) {
186
+ improvements.push({
187
+ id: content.id,
188
+ title: content.title,
189
+ description: content.description,
190
+ type: content.type,
191
+ effort: content.effort,
192
+ createdAt: content.createdAt,
193
+ suggestedBy: content.suggestedBy,
194
+ });
195
+ }
196
+ }
197
+ // Add improvements from tasks
198
+ for (const task of taskItems) {
199
+ const content = task.content;
200
+ if (content?.improvements) {
201
+ improvements.push(...content.improvements);
202
+ }
203
+ }
204
+ // Filter
205
+ let filtered = improvements;
206
+ if (options?.type) {
207
+ filtered = filtered.filter(i => i.type === options.type);
208
+ }
209
+ if (options?.effort) {
210
+ filtered = filtered.filter(i => i.effort === options.effort);
211
+ }
212
+ // Sort and limit
213
+ return filtered
214
+ .sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime())
215
+ .slice(0, options?.limit ?? 100);
216
+ }
217
+ /**
218
+ * Get improvement statistics
219
+ */
220
+ async getImprovementStats() {
221
+ const improvements = await this.getAllImprovements({ limit: 1000 });
222
+ const byType = {};
223
+ const byEffort = {};
224
+ for (const imp of improvements) {
225
+ byType[imp.type] = (byType[imp.type] ?? 0) + 1;
226
+ byEffort[imp.effort] = (byEffort[imp.effort] ?? 0) + 1;
227
+ }
228
+ return {
229
+ totalImprovements: improvements.length,
230
+ byType,
231
+ byEffort,
232
+ recent: improvements.slice(0, 10),
233
+ };
234
+ }
235
+ /**
236
+ * Mark improvement as implemented
237
+ */
238
+ async completeImprovement(improvementId) {
239
+ const standaloneItems = await this.client.list({ type: 'improvement' });
240
+ const standaloneItem = standaloneItems.find(item => {
241
+ const content = item.content;
242
+ return content?.id === improvementId;
243
+ });
244
+ if (standaloneItem) {
245
+ await this.client.update(standaloneItem.id, { status: 'done' });
246
+ }
247
+ }
248
+ // ===========================================================================
249
+ // QUICK CAPTURE
250
+ // ===========================================================================
251
+ /**
252
+ * Quick capture from AI analysis (auto-categorizes)
253
+ */
254
+ async quickCapture(text, context) {
255
+ const result = {};
256
+ // Simple heuristics to categorize
257
+ const lowerText = text.toLowerCase();
258
+ // Is it an improvement suggestion?
259
+ const isImprovement = lowerText.includes('refactor') ||
260
+ lowerText.includes('improve') ||
261
+ lowerText.includes('optimize') ||
262
+ lowerText.includes('performance') ||
263
+ lowerText.includes('clean up') ||
264
+ lowerText.includes('security');
265
+ // Is it a feature idea?
266
+ const isFeature = lowerText.includes('could add') ||
267
+ lowerText.includes('would be nice') ||
268
+ lowerText.includes('feature') ||
269
+ lowerText.includes('consider adding');
270
+ if (isImprovement) {
271
+ // Determine type
272
+ let type = 'code_quality';
273
+ if (lowerText.includes('performance') || lowerText.includes('optimize')) {
274
+ type = 'performance';
275
+ }
276
+ else if (lowerText.includes('security')) {
277
+ type = 'security';
278
+ }
279
+ else if (lowerText.includes('ux') || lowerText.includes('user')) {
280
+ type = 'ux';
281
+ }
282
+ else if (lowerText.includes('architecture') || lowerText.includes('structure')) {
283
+ type = 'architecture';
284
+ }
285
+ result.improvementId = await this.createImprovement({
286
+ title: text.slice(0, 100),
287
+ description: text,
288
+ type,
289
+ taskId: context?.taskId,
290
+ suggestedBy: 'ai',
291
+ });
292
+ }
293
+ if (isFeature || !isImprovement) {
294
+ // Determine category
295
+ let category = 'feature';
296
+ if (lowerText.includes('bug') || lowerText.includes('fix')) {
297
+ category = 'bug';
298
+ }
299
+ else if (lowerText.includes('refactor')) {
300
+ category = 'refactor';
301
+ }
302
+ else if (lowerText.includes('doc')) {
303
+ category = 'documentation';
304
+ }
305
+ else if (lowerText.includes('optim')) {
306
+ category = 'optimization';
307
+ }
308
+ result.ideaId = await this.createIdea({
309
+ title: text.slice(0, 100),
310
+ description: text,
311
+ category,
312
+ taskId: context?.taskId,
313
+ relatedFiles: context?.files,
314
+ });
315
+ }
316
+ return result;
317
+ }
318
+ // ===========================================================================
319
+ // EXPORT
320
+ // ===========================================================================
321
+ /**
322
+ * Export all ideas and improvements as markdown
323
+ */
324
+ async exportMarkdown() {
325
+ const ideas = await this.getAllIdeas();
326
+ const improvements = await this.getAllImprovements();
327
+ let md = `# Ideas & Improvements\n\n`;
328
+ md += `*Generated: ${new Date().toISOString()}*\n\n`;
329
+ md += `## Ideas (${ideas.length})\n\n`;
330
+ for (const idea of ideas) {
331
+ md += `### ${idea.title}\n`;
332
+ md += `- **Priority**: ${idea.priority}\n`;
333
+ md += `- **Category**: ${idea.category}\n`;
334
+ md += `- **Created**: ${idea.createdAt}\n`;
335
+ if (idea.relatedFiles?.length) {
336
+ md += `- **Files**: ${idea.relatedFiles.join(', ')}\n`;
337
+ }
338
+ md += `\n${idea.description}\n\n---\n\n`;
339
+ }
340
+ md += `## Improvements (${improvements.length})\n\n`;
341
+ for (const imp of improvements) {
342
+ md += `### ${imp.title}\n`;
343
+ md += `- **Type**: ${imp.type}\n`;
344
+ md += `- **Effort**: ${imp.effort}\n`;
345
+ md += `- **Suggested by**: ${imp.suggestedBy ?? 'unknown'}\n`;
346
+ md += `- **Created**: ${imp.createdAt}\n`;
347
+ md += `\n${imp.description}\n\n---\n\n`;
348
+ }
349
+ return md;
350
+ }
351
+ }
352
+ // =============================================================================
353
+ // FACTORY
354
+ // =============================================================================
355
+ let collectorInstance = null;
356
+ /**
357
+ * Get or create IdeaCollector instance
358
+ */
359
+ export function getIdeaCollector(system) {
360
+ if (!collectorInstance) {
361
+ collectorInstance = new IdeaCollector(system);
362
+ }
363
+ return collectorInstance;
364
+ }
365
+ /**
366
+ * Create fresh IdeaCollector instance
367
+ */
368
+ export function createIdeaCollector(system) {
369
+ return new IdeaCollector(system);
370
+ }
371
+ //# sourceMappingURL=IdeaCollector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IdeaCollector.js","sourceRoot":"","sources":["../../src/services/IdeaCollector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * TaskTracker Service
3
+ *
4
+ * Automatically tracks tasks in DEV_Items database.
5
+ * Creates task entries when work starts, updates progress, and records completion.
6
+ */
7
+ import type { DevSystem, DevItem, TaskIdea, TaskImprovement } from '../types/index.js';
8
+ export interface StartTaskOptions {
9
+ title: string;
10
+ description?: string;
11
+ userRequest?: string;
12
+ currentFile?: string;
13
+ todoItems?: string[];
14
+ branch?: string;
15
+ }
16
+ export interface UpdateTaskOptions {
17
+ filesModified?: string[];
18
+ toolCalls?: number;
19
+ filesRead?: number;
20
+ filesWritten?: number;
21
+ }
22
+ export interface CompleteTaskOptions {
23
+ ideas?: Omit<TaskIdea, 'id' | 'createdAt'>[];
24
+ improvements?: Omit<TaskImprovement, 'id' | 'createdAt'>[];
25
+ cancelled?: boolean;
26
+ }
27
+ export declare class TaskTracker {
28
+ private client;
29
+ private currentTaskId;
30
+ private taskMetrics;
31
+ constructor(system: DevSystem);
32
+ /**
33
+ * Start tracking a new task
34
+ */
35
+ startTask(options: StartTaskOptions): Promise<string>;
36
+ /**
37
+ * Update current task with new information
38
+ */
39
+ updateTask(options: UpdateTaskOptions): Promise<void>;
40
+ /**
41
+ * Complete the current task
42
+ */
43
+ completeTask(options?: CompleteTaskOptions): Promise<void>;
44
+ /**
45
+ * Add an idea to the current task
46
+ */
47
+ addIdea(idea: Omit<TaskIdea, 'id' | 'createdAt'>): Promise<void>;
48
+ /**
49
+ * Add an improvement to the current task
50
+ */
51
+ addImprovement(improvement: Omit<TaskImprovement, 'id' | 'createdAt'>): Promise<void>;
52
+ /**
53
+ * Get current active task
54
+ */
55
+ getCurrentTask(): Promise<DevItem | null>;
56
+ /**
57
+ * Get recent tasks
58
+ */
59
+ getRecentTasks(limit?: number): Promise<DevItem[]>;
60
+ /**
61
+ * Get all ideas from completed tasks
62
+ */
63
+ getAllIdeas(limit?: number): Promise<TaskIdea[]>;
64
+ /**
65
+ * Get all improvements from completed tasks
66
+ */
67
+ getAllImprovements(limit?: number): Promise<TaskImprovement[]>;
68
+ /**
69
+ * Get current git branch
70
+ */
71
+ private getCurrentBranch;
72
+ /**
73
+ * Check if there's an active task
74
+ */
75
+ hasActiveTask(): boolean;
76
+ /**
77
+ * Get current task ID
78
+ */
79
+ getCurrentTaskId(): string | null;
80
+ }
81
+ /**
82
+ * Get or create TaskTracker instance
83
+ */
84
+ export declare function getTaskTracker(system: DevSystem): TaskTracker;
85
+ /**
86
+ * Create fresh TaskTracker instance
87
+ */
88
+ export declare function createTaskTracker(system: DevSystem): TaskTracker;
89
+ //# sourceMappingURL=TaskTracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaskTracker.d.ts","sourceRoot":"","sources":["../../src/services/TaskTracker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACV,SAAS,EACT,OAAO,EAEP,QAAQ,EACR,eAAe,EAChB,MAAM,mBAAmB,CAAA;AAM1B,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,WAAW,CAAC,EAAE,CAAA;IAC5C,YAAY,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,GAAG,WAAW,CAAC,EAAE,CAAA;IAC1D,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAMD,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,WAAW,CAUlB;gBAEW,MAAM,EAAE,SAAS;IAQ7B;;OAEG;IACG,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IA2C3D;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAuC3D;;OAEG;IACG,YAAY,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAyDhE;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBtE;;OAEG;IACG,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B3F;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAiB/C;;OAEG;IACG,cAAc,CAAC,KAAK,SAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAOpD;;OAEG;IACG,WAAW,CAAC,KAAK,SAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAoBlD;;OAEG;IACG,kBAAkB,CAAC,KAAK,SAAK,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAwBhE;;OAEG;YACW,gBAAgB;IAe9B;;OAEG;IACH,aAAa,IAAI,OAAO;IAIxB;;OAEG;IACH,gBAAgB,IAAI,MAAM,GAAG,IAAI;CAGlC;AAQD;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,WAAW,CAK7D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,WAAW,CAEhE"}