@trentapps/manager-protocol 1.1.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 (151) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +446 -0
  3. package/dist/analyzers/ArchitectureDetector.d.ts +44 -0
  4. package/dist/analyzers/ArchitectureDetector.d.ts.map +1 -0
  5. package/dist/analyzers/ArchitectureDetector.js +218 -0
  6. package/dist/analyzers/ArchitectureDetector.js.map +1 -0
  7. package/dist/analyzers/CSSAnalyzer.d.ts +104 -0
  8. package/dist/analyzers/CSSAnalyzer.d.ts.map +1 -0
  9. package/dist/analyzers/CSSAnalyzer.js +578 -0
  10. package/dist/analyzers/CSSAnalyzer.js.map +1 -0
  11. package/dist/analyzers/index.d.ts +5 -0
  12. package/dist/analyzers/index.d.ts.map +1 -0
  13. package/dist/analyzers/index.js +5 -0
  14. package/dist/analyzers/index.js.map +1 -0
  15. package/dist/cli.d.ts +8 -0
  16. package/dist/cli.d.ts.map +1 -0
  17. package/dist/cli.js +174 -0
  18. package/dist/cli.js.map +1 -0
  19. package/dist/design-system/index.d.ts +6 -0
  20. package/dist/design-system/index.d.ts.map +1 -0
  21. package/dist/design-system/index.js +6 -0
  22. package/dist/design-system/index.js.map +1 -0
  23. package/dist/design-system/tokens.d.ts +106 -0
  24. package/dist/design-system/tokens.d.ts.map +1 -0
  25. package/dist/design-system/tokens.js +554 -0
  26. package/dist/design-system/tokens.js.map +1 -0
  27. package/dist/engine/AppMonitor.d.ts +162 -0
  28. package/dist/engine/AppMonitor.d.ts.map +1 -0
  29. package/dist/engine/AppMonitor.js +754 -0
  30. package/dist/engine/AppMonitor.js.map +1 -0
  31. package/dist/engine/AuditLogger.d.ts +138 -0
  32. package/dist/engine/AuditLogger.d.ts.map +1 -0
  33. package/dist/engine/AuditLogger.js +448 -0
  34. package/dist/engine/AuditLogger.js.map +1 -0
  35. package/dist/engine/GitHubApprovalManager.d.ts +106 -0
  36. package/dist/engine/GitHubApprovalManager.d.ts.map +1 -0
  37. package/dist/engine/GitHubApprovalManager.js +315 -0
  38. package/dist/engine/GitHubApprovalManager.js.map +1 -0
  39. package/dist/engine/RateLimiter.d.ts +79 -0
  40. package/dist/engine/RateLimiter.d.ts.map +1 -0
  41. package/dist/engine/RateLimiter.js +232 -0
  42. package/dist/engine/RateLimiter.js.map +1 -0
  43. package/dist/engine/RulesEngine.d.ts +77 -0
  44. package/dist/engine/RulesEngine.d.ts.map +1 -0
  45. package/dist/engine/RulesEngine.js +400 -0
  46. package/dist/engine/RulesEngine.js.map +1 -0
  47. package/dist/engine/TaskManager.d.ts +173 -0
  48. package/dist/engine/TaskManager.d.ts.map +1 -0
  49. package/dist/engine/TaskManager.js +678 -0
  50. package/dist/engine/TaskManager.js.map +1 -0
  51. package/dist/engine/index.d.ts +9 -0
  52. package/dist/engine/index.d.ts.map +1 -0
  53. package/dist/engine/index.js +9 -0
  54. package/dist/engine/index.js.map +1 -0
  55. package/dist/index.d.ts +21 -0
  56. package/dist/index.d.ts.map +1 -0
  57. package/dist/index.js +29 -0
  58. package/dist/index.js.map +1 -0
  59. package/dist/rules/architecture.d.ts +9 -0
  60. package/dist/rules/architecture.d.ts.map +1 -0
  61. package/dist/rules/architecture.js +322 -0
  62. package/dist/rules/architecture.js.map +1 -0
  63. package/dist/rules/azure.d.ts +7 -0
  64. package/dist/rules/azure.d.ts.map +1 -0
  65. package/dist/rules/azure.js +138 -0
  66. package/dist/rules/azure.js.map +1 -0
  67. package/dist/rules/compliance.d.ts +9 -0
  68. package/dist/rules/compliance.d.ts.map +1 -0
  69. package/dist/rules/compliance.js +304 -0
  70. package/dist/rules/compliance.js.map +1 -0
  71. package/dist/rules/css.d.ts +10 -0
  72. package/dist/rules/css.d.ts.map +1 -0
  73. package/dist/rules/css.js +1239 -0
  74. package/dist/rules/css.js.map +1 -0
  75. package/dist/rules/flask.d.ts +7 -0
  76. package/dist/rules/flask.d.ts.map +1 -0
  77. package/dist/rules/flask.js +155 -0
  78. package/dist/rules/flask.js.map +1 -0
  79. package/dist/rules/index.d.ts +607 -0
  80. package/dist/rules/index.d.ts.map +1 -0
  81. package/dist/rules/index.js +401 -0
  82. package/dist/rules/index.js.map +1 -0
  83. package/dist/rules/ml-ai.d.ts +7 -0
  84. package/dist/rules/ml-ai.d.ts.map +1 -0
  85. package/dist/rules/ml-ai.js +150 -0
  86. package/dist/rules/ml-ai.js.map +1 -0
  87. package/dist/rules/operational.d.ts +9 -0
  88. package/dist/rules/operational.d.ts.map +1 -0
  89. package/dist/rules/operational.js +318 -0
  90. package/dist/rules/operational.js.map +1 -0
  91. package/dist/rules/security.d.ts +9 -0
  92. package/dist/rules/security.d.ts.map +1 -0
  93. package/dist/rules/security.js +287 -0
  94. package/dist/rules/security.js.map +1 -0
  95. package/dist/rules/storage.d.ts +7 -0
  96. package/dist/rules/storage.d.ts.map +1 -0
  97. package/dist/rules/storage.js +134 -0
  98. package/dist/rules/storage.js.map +1 -0
  99. package/dist/rules/stripe.d.ts +7 -0
  100. package/dist/rules/stripe.d.ts.map +1 -0
  101. package/dist/rules/stripe.js +140 -0
  102. package/dist/rules/stripe.js.map +1 -0
  103. package/dist/rules/testing.d.ts +7 -0
  104. package/dist/rules/testing.d.ts.map +1 -0
  105. package/dist/rules/testing.js +135 -0
  106. package/dist/rules/testing.js.map +1 -0
  107. package/dist/rules/ux.d.ts +9 -0
  108. package/dist/rules/ux.d.ts.map +1 -0
  109. package/dist/rules/ux.js +280 -0
  110. package/dist/rules/ux.js.map +1 -0
  111. package/dist/rules/websocket.d.ts +7 -0
  112. package/dist/rules/websocket.d.ts.map +1 -0
  113. package/dist/rules/websocket.js +136 -0
  114. package/dist/rules/websocket.js.map +1 -0
  115. package/dist/server.d.ts +49 -0
  116. package/dist/server.d.ts.map +1 -0
  117. package/dist/server.js +2330 -0
  118. package/dist/server.js.map +1 -0
  119. package/dist/supervisor/AgentSupervisor.d.ts +235 -0
  120. package/dist/supervisor/AgentSupervisor.d.ts.map +1 -0
  121. package/dist/supervisor/AgentSupervisor.js +596 -0
  122. package/dist/supervisor/AgentSupervisor.js.map +1 -0
  123. package/dist/supervisor/ManagedServerRegistry.d.ts +48 -0
  124. package/dist/supervisor/ManagedServerRegistry.d.ts.map +1 -0
  125. package/dist/supervisor/ManagedServerRegistry.js +145 -0
  126. package/dist/supervisor/ManagedServerRegistry.js.map +1 -0
  127. package/dist/supervisor/ProjectTracker.d.ts +188 -0
  128. package/dist/supervisor/ProjectTracker.d.ts.map +1 -0
  129. package/dist/supervisor/ProjectTracker.js +617 -0
  130. package/dist/supervisor/ProjectTracker.js.map +1 -0
  131. package/dist/supervisor/index.d.ts +6 -0
  132. package/dist/supervisor/index.d.ts.map +1 -0
  133. package/dist/supervisor/index.js +6 -0
  134. package/dist/supervisor/index.js.map +1 -0
  135. package/dist/types/index.d.ts +1176 -0
  136. package/dist/types/index.d.ts.map +1 -0
  137. package/dist/types/index.js +391 -0
  138. package/dist/types/index.js.map +1 -0
  139. package/dist/utils/errors.d.ts +86 -0
  140. package/dist/utils/errors.d.ts.map +1 -0
  141. package/dist/utils/errors.js +171 -0
  142. package/dist/utils/errors.js.map +1 -0
  143. package/dist/utils/index.d.ts +5 -0
  144. package/dist/utils/index.d.ts.map +1 -0
  145. package/dist/utils/index.js +5 -0
  146. package/dist/utils/index.js.map +1 -0
  147. package/dist/utils/shell.d.ts +22 -0
  148. package/dist/utils/shell.d.ts.map +1 -0
  149. package/dist/utils/shell.js +29 -0
  150. package/dist/utils/shell.js.map +1 -0
  151. package/package.json +63 -0
@@ -0,0 +1,400 @@
1
+ /**
2
+ * Enterprise Agent Supervisor - Rules Engine Core
3
+ *
4
+ * The heart of the governance system that evaluates actions against business rules.
5
+ */
6
+ import { v4 as uuidv4 } from 'uuid';
7
+ export class RulesEngine {
8
+ rules = new Map();
9
+ customEvaluators = new Map();
10
+ constructor() {
11
+ this.registerDefaultEvaluators();
12
+ }
13
+ /**
14
+ * Register a business rule
15
+ */
16
+ registerRule(rule) {
17
+ this.rules.set(rule.id, rule);
18
+ }
19
+ /**
20
+ * Register multiple business rules
21
+ */
22
+ registerRules(rules) {
23
+ for (const rule of rules) {
24
+ this.registerRule(rule);
25
+ }
26
+ }
27
+ /**
28
+ * Unregister a rule by ID
29
+ */
30
+ unregisterRule(ruleId) {
31
+ return this.rules.delete(ruleId);
32
+ }
33
+ /**
34
+ * Get all registered rules
35
+ */
36
+ getRules() {
37
+ return Array.from(this.rules.values());
38
+ }
39
+ /**
40
+ * Get enabled rules sorted by priority (higher priority first)
41
+ */
42
+ getActiveRules() {
43
+ return this.getRules()
44
+ .filter(rule => rule.enabled)
45
+ .sort((a, b) => b.priority - a.priority);
46
+ }
47
+ /**
48
+ * Register a custom condition evaluator
49
+ */
50
+ registerCustomEvaluator(name, evaluator) {
51
+ this.customEvaluators.set(name, evaluator);
52
+ }
53
+ /**
54
+ * Evaluate an agent action against all active rules
55
+ */
56
+ evaluateAction(action, context) {
57
+ const actionId = action.id || uuidv4();
58
+ const violations = [];
59
+ const warnings = [];
60
+ const appliedRules = [];
61
+ let totalRiskWeight = 0;
62
+ let requiresHumanApproval = false;
63
+ let approvalReason;
64
+ let isDenied = false;
65
+ let isRateLimited = false;
66
+ // Build evaluation context
67
+ const evalContext = this.buildEvaluationContext(action, context);
68
+ // Get active rules and evaluate
69
+ const activeRules = this.getActiveRules();
70
+ for (const rule of activeRules) {
71
+ const ruleMatches = this.evaluateRuleConditions(rule, evalContext);
72
+ if (ruleMatches) {
73
+ appliedRules.push(rule.id);
74
+ totalRiskWeight += rule.riskWeight;
75
+ // Process rule actions
76
+ for (const ruleAction of rule.actions) {
77
+ switch (ruleAction.type) {
78
+ case 'deny':
79
+ isDenied = true;
80
+ violations.push({
81
+ ruleId: rule.id,
82
+ ruleName: rule.name,
83
+ severity: this.getRuleSeverity(rule),
84
+ message: ruleAction.message || `Action denied by rule: ${rule.name}`,
85
+ recommendation: this.getRecommendation(rule, ruleAction)
86
+ });
87
+ break;
88
+ case 'require_approval':
89
+ requiresHumanApproval = true;
90
+ approvalReason = ruleAction.message || `Requires approval due to rule: ${rule.name}`;
91
+ break;
92
+ case 'warn':
93
+ warnings.push(ruleAction.message || `Warning from rule: ${rule.name}`);
94
+ break;
95
+ case 'rate_limit':
96
+ isRateLimited = true;
97
+ break;
98
+ case 'escalate':
99
+ requiresHumanApproval = true;
100
+ approvalReason = `Escalated: ${ruleAction.message || rule.name}`;
101
+ break;
102
+ default:
103
+ // Allow, log, transform, notify - don't affect approval status
104
+ break;
105
+ }
106
+ }
107
+ }
108
+ }
109
+ // Calculate risk score (0-100)
110
+ const riskScore = Math.min(100, totalRiskWeight);
111
+ const riskLevel = this.calculateRiskLevel(riskScore);
112
+ // Determine final status
113
+ let status;
114
+ if (isDenied) {
115
+ status = 'denied';
116
+ }
117
+ else if (isRateLimited) {
118
+ status = 'rate_limited';
119
+ }
120
+ else if (requiresHumanApproval) {
121
+ status = 'pending_approval';
122
+ }
123
+ else if (warnings.length > 0) {
124
+ status = 'requires_review';
125
+ }
126
+ else {
127
+ status = 'approved';
128
+ }
129
+ return {
130
+ actionId,
131
+ status,
132
+ riskScore,
133
+ riskLevel,
134
+ allowed: !isDenied && !isRateLimited,
135
+ violations,
136
+ warnings,
137
+ appliedRules,
138
+ requiresHumanApproval,
139
+ approvalReason,
140
+ rateLimitInfo: isRateLimited ? { limited: true } : undefined,
141
+ evaluatedAt: new Date().toISOString(),
142
+ metadata: {
143
+ action: action.name,
144
+ category: action.category,
145
+ rulesEvaluated: activeRules.length
146
+ }
147
+ };
148
+ }
149
+ /**
150
+ * Apply business rules to a context and return recommendations
151
+ */
152
+ applyBusinessRules(context) {
153
+ const contextId = uuidv4();
154
+ const rulesApplied = [];
155
+ const recommendations = [];
156
+ const constraints = [];
157
+ let totalRiskScore = 0;
158
+ const evalContext = context.customAttributes || {};
159
+ const activeRules = this.getActiveRules();
160
+ for (const rule of activeRules) {
161
+ const matched = this.evaluateRuleConditions(rule, {
162
+ ...evalContext,
163
+ environment: context.environment,
164
+ userRole: context.userRole,
165
+ dataClassification: context.dataClassification,
166
+ department: context.department
167
+ });
168
+ rulesApplied.push({
169
+ ruleId: rule.id,
170
+ ruleName: rule.name,
171
+ matched,
172
+ actions: matched ? rule.actions : []
173
+ });
174
+ if (matched) {
175
+ totalRiskScore += rule.riskWeight;
176
+ // Generate recommendations and constraints
177
+ for (const action of rule.actions) {
178
+ if (action.type === 'deny') {
179
+ constraints.push({
180
+ type: 'prohibition',
181
+ description: action.message || `Prohibited by ${rule.name}`,
182
+ enforced: true
183
+ });
184
+ }
185
+ else if (action.type === 'require_approval') {
186
+ constraints.push({
187
+ type: 'approval_required',
188
+ description: action.message || `Requires approval per ${rule.name}`,
189
+ enforced: true
190
+ });
191
+ }
192
+ else if (action.type === 'warn') {
193
+ recommendations.push(action.message || `Consider: ${rule.name}`);
194
+ }
195
+ }
196
+ }
197
+ }
198
+ return {
199
+ contextId,
200
+ rulesApplied,
201
+ aggregateRiskScore: Math.min(100, totalRiskScore),
202
+ recommendations,
203
+ constraints,
204
+ processedAt: new Date().toISOString()
205
+ };
206
+ }
207
+ /**
208
+ * Build evaluation context from action and business context
209
+ */
210
+ buildEvaluationContext(action, context) {
211
+ return {
212
+ // Action fields
213
+ actionName: action.name,
214
+ actionCategory: action.category,
215
+ actionDescription: action.description,
216
+ ...action.parameters,
217
+ ...action.metadata,
218
+ // Context fields
219
+ environment: context?.environment,
220
+ agentId: context?.agentId || action.agentId,
221
+ agentType: context?.agentType,
222
+ userId: context?.userId,
223
+ userRole: context?.userRole,
224
+ sessionId: context?.sessionId || action.sessionId,
225
+ organizationId: context?.organizationId,
226
+ department: context?.department,
227
+ costCenter: context?.costCenter,
228
+ dataClassification: context?.dataClassification,
229
+ complianceFrameworks: context?.complianceFrameworks,
230
+ ...context?.customAttributes
231
+ };
232
+ }
233
+ /**
234
+ * Evaluate if all/any conditions of a rule match
235
+ */
236
+ evaluateRuleConditions(rule, context) {
237
+ if (rule.conditions.length === 0) {
238
+ return true; // No conditions means always match
239
+ }
240
+ const results = rule.conditions.map(condition => this.evaluateCondition(condition, context));
241
+ if (rule.conditionLogic === 'any') {
242
+ return results.some(r => r);
243
+ }
244
+ return results.every(r => r);
245
+ }
246
+ /**
247
+ * Evaluate a single condition
248
+ */
249
+ evaluateCondition(condition, context) {
250
+ const fieldValue = this.getNestedValue(context, condition.field);
251
+ switch (condition.operator) {
252
+ case 'equals':
253
+ return fieldValue === condition.value;
254
+ case 'not_equals':
255
+ return fieldValue !== condition.value;
256
+ case 'contains':
257
+ if (typeof fieldValue === 'string' && typeof condition.value === 'string') {
258
+ return fieldValue.includes(condition.value);
259
+ }
260
+ if (Array.isArray(fieldValue)) {
261
+ return fieldValue.includes(condition.value);
262
+ }
263
+ return false;
264
+ case 'not_contains':
265
+ if (typeof fieldValue === 'string' && typeof condition.value === 'string') {
266
+ return !fieldValue.includes(condition.value);
267
+ }
268
+ if (Array.isArray(fieldValue)) {
269
+ return !fieldValue.includes(condition.value);
270
+ }
271
+ return true;
272
+ case 'greater_than':
273
+ return typeof fieldValue === 'number' && typeof condition.value === 'number'
274
+ && fieldValue > condition.value;
275
+ case 'less_than':
276
+ return typeof fieldValue === 'number' && typeof condition.value === 'number'
277
+ && fieldValue < condition.value;
278
+ case 'in':
279
+ if (Array.isArray(condition.value)) {
280
+ return condition.value.includes(fieldValue);
281
+ }
282
+ return false;
283
+ case 'not_in':
284
+ if (Array.isArray(condition.value)) {
285
+ return !condition.value.includes(fieldValue);
286
+ }
287
+ return true;
288
+ case 'matches_regex':
289
+ if (typeof fieldValue === 'string' && typeof condition.value === 'string') {
290
+ try {
291
+ const regex = new RegExp(condition.value);
292
+ return regex.test(fieldValue);
293
+ }
294
+ catch {
295
+ return false;
296
+ }
297
+ }
298
+ return false;
299
+ case 'exists':
300
+ return fieldValue !== undefined && fieldValue !== null;
301
+ case 'not_exists':
302
+ return fieldValue === undefined || fieldValue === null;
303
+ case 'custom':
304
+ if (condition.customEvaluator) {
305
+ const evaluator = this.customEvaluators.get(condition.customEvaluator);
306
+ if (evaluator) {
307
+ return evaluator(context, condition);
308
+ }
309
+ }
310
+ return false;
311
+ default:
312
+ return false;
313
+ }
314
+ }
315
+ /**
316
+ * Get nested value from object using dot notation
317
+ */
318
+ getNestedValue(obj, path) {
319
+ return path.split('.').reduce((current, key) => {
320
+ if (current && typeof current === 'object' && key in current) {
321
+ return current[key];
322
+ }
323
+ return undefined;
324
+ }, obj);
325
+ }
326
+ /**
327
+ * Calculate risk level from score
328
+ */
329
+ calculateRiskLevel(score) {
330
+ if (score >= 80)
331
+ return 'critical';
332
+ if (score >= 60)
333
+ return 'high';
334
+ if (score >= 40)
335
+ return 'medium';
336
+ if (score >= 20)
337
+ return 'low';
338
+ return 'minimal';
339
+ }
340
+ /**
341
+ * Get severity level from a rule
342
+ */
343
+ getRuleSeverity(rule) {
344
+ if (rule.riskWeight >= 40)
345
+ return 'critical';
346
+ if (rule.riskWeight >= 30)
347
+ return 'high';
348
+ if (rule.riskWeight >= 20)
349
+ return 'medium';
350
+ if (rule.riskWeight >= 10)
351
+ return 'low';
352
+ return 'minimal';
353
+ }
354
+ /**
355
+ * Generate recommendation based on rule and action
356
+ */
357
+ getRecommendation(rule, action) {
358
+ const baseRecs = {
359
+ compliance: 'Review compliance requirements and ensure proper authorization',
360
+ security: 'Consult with security team before proceeding',
361
+ operational: 'Follow standard operating procedures',
362
+ financial: 'Obtain financial approval before proceeding',
363
+ ux: 'Review UX guidelines and user impact',
364
+ architecture: 'Consult architecture review board',
365
+ data_governance: 'Ensure data handling complies with policies',
366
+ rate_limit: 'Reduce request frequency or request limit increase',
367
+ custom: 'Review custom policy requirements'
368
+ };
369
+ return action.params?.recommendation
370
+ || baseRecs[rule.type]
371
+ || 'Review policy and obtain necessary approvals';
372
+ }
373
+ /**
374
+ * Register default custom evaluators
375
+ */
376
+ registerDefaultEvaluators() {
377
+ // Time-based evaluator
378
+ this.registerCustomEvaluator('businessHours', (_context) => {
379
+ const hour = new Date().getHours();
380
+ return hour >= 9 && hour < 17;
381
+ });
382
+ // Weekday evaluator
383
+ this.registerCustomEvaluator('weekday', (_context) => {
384
+ const day = new Date().getDay();
385
+ return day >= 1 && day <= 5;
386
+ });
387
+ // Production environment evaluator
388
+ this.registerCustomEvaluator('isProduction', (context) => {
389
+ return context.environment === 'production';
390
+ });
391
+ // High privilege evaluator
392
+ this.registerCustomEvaluator('isHighPrivilege', (context) => {
393
+ const highPrivRoles = ['admin', 'superuser', 'root', 'system'];
394
+ return highPrivRoles.includes(context.userRole);
395
+ });
396
+ }
397
+ }
398
+ // Export singleton instance
399
+ export const rulesEngine = new RulesEngine();
400
+ //# sourceMappingURL=RulesEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RulesEngine.js","sourceRoot":"","sources":["../../src/engine/RulesEngine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,173 @@
1
+ /**
2
+ * Enterprise Agent Supervisor - Task Manager
3
+ *
4
+ * Manages project tasks using GitHub Issues via the `gh` CLI.
5
+ * Tasks are stored as GitHub Issues, providing persistence and visibility.
6
+ *
7
+ * Features:
8
+ * - Auto-detects repo from current directory if not specified
9
+ * - Creates priority/status labels automatically
10
+ * - Caches repo detection for performance
11
+ * - Full GitHub Issues integration
12
+ */
13
+ import type { ProjectTask, TaskPriority, TaskStatus } from '../types/index.js';
14
+ export interface TaskManagerOptions {
15
+ defaultLabels?: string[];
16
+ priorityLabelPrefix?: string;
17
+ statusLabelPrefix?: string;
18
+ }
19
+ export declare class TaskManager {
20
+ private priorityPrefix;
21
+ private statusPrefix;
22
+ private cachedRepo;
23
+ private initializedLabels;
24
+ private ghVerified;
25
+ constructor(options?: TaskManagerOptions);
26
+ /**
27
+ * Verify gh CLI is installed and authenticated
28
+ */
29
+ verifyGh(): Promise<{
30
+ ok: boolean;
31
+ error?: string;
32
+ user?: string;
33
+ }>;
34
+ /**
35
+ * Get the current repo from git remote or gh CLI
36
+ */
37
+ getCurrentRepo(): Promise<string | null>;
38
+ /**
39
+ * Resolve project name - use provided or auto-detect
40
+ */
41
+ private resolveRepo;
42
+ /**
43
+ * Execute a gh command and return parsed JSON output
44
+ */
45
+ private execGh;
46
+ /**
47
+ * Execute a gh command without JSON output
48
+ */
49
+ private execGhRaw;
50
+ /**
51
+ * Ensure a label exists in the repo, create if not
52
+ */
53
+ private ensureLabel;
54
+ /**
55
+ * Convert GitHub Issue to ProjectTask
56
+ */
57
+ private issueToTask;
58
+ /**
59
+ * Build labels array for gh command
60
+ */
61
+ private buildLabels;
62
+ /**
63
+ * Create a new task (GitHub Issue) for a project
64
+ *
65
+ * @param params.projectName - Optional repo in "owner/repo" format. Auto-detects if not provided.
66
+ * @param params.needsApproval - Flag for significant changes requiring approval before implementation
67
+ */
68
+ createTask(params: {
69
+ projectName?: string;
70
+ title: string;
71
+ description?: string;
72
+ priority?: TaskPriority;
73
+ assignee?: string;
74
+ labels?: string[];
75
+ dueDate?: string;
76
+ estimatedHours?: number;
77
+ parentTaskId?: string;
78
+ dependencies?: string[];
79
+ metadata?: Record<string, unknown>;
80
+ needsApproval?: boolean;
81
+ }): Promise<ProjectTask>;
82
+ /**
83
+ * Get all tasks for a project
84
+ */
85
+ getTasksByProject(projectName?: string, filter?: {
86
+ status?: TaskStatus;
87
+ priority?: TaskPriority;
88
+ assignee?: string;
89
+ labels?: string[];
90
+ }): Promise<ProjectTask[]>;
91
+ /**
92
+ * Get pending tasks for a project
93
+ */
94
+ getPendingTasks(projectName?: string): Promise<ProjectTask[]>;
95
+ /**
96
+ * Get in-progress tasks
97
+ */
98
+ getInProgressTasks(projectName?: string): Promise<ProjectTask[]>;
99
+ /**
100
+ * Get a specific task by ID (issue number)
101
+ */
102
+ getTask(projectName: string | undefined, taskId: string): Promise<ProjectTask | null>;
103
+ /**
104
+ * Update a task
105
+ */
106
+ updateTask(projectName: string | undefined, taskId: string, updates: Partial<Omit<ProjectTask, 'id' | 'projectName' | 'createdAt'>> & {
107
+ comment?: string;
108
+ commits?: string[];
109
+ closeWithComment?: boolean;
110
+ }): Promise<ProjectTask | null>;
111
+ /**
112
+ * Add a comment to a task/issue
113
+ */
114
+ addComment(projectName: string | undefined, taskId: string, comment?: string, commits?: string[]): Promise<boolean>;
115
+ /**
116
+ * Link commits to a task by adding a comment
117
+ */
118
+ linkCommits(projectName: string | undefined, taskId: string, commits: string[], message?: string): Promise<boolean>;
119
+ /**
120
+ * Close a task with a resolution comment
121
+ */
122
+ closeWithComment(projectName: string | undefined, taskId: string, resolution: string, commits?: string[]): Promise<ProjectTask | null>;
123
+ /**
124
+ * Update task status
125
+ */
126
+ updateTaskStatus(projectName: string | undefined, taskId: string, status: TaskStatus): Promise<ProjectTask | null>;
127
+ /**
128
+ * Start a task (set to in_progress)
129
+ */
130
+ startTask(projectName: string | undefined, taskId: string): Promise<ProjectTask | null>;
131
+ /**
132
+ * Complete a task
133
+ */
134
+ completeTask(projectName: string | undefined, taskId: string): Promise<ProjectTask | null>;
135
+ /**
136
+ * Block a task
137
+ */
138
+ blockTask(projectName: string | undefined, taskId: string, reason?: string): Promise<ProjectTask | null>;
139
+ /**
140
+ * Delete a task (close as "not planned")
141
+ */
142
+ deleteTask(projectName: string | undefined, taskId: string): Promise<boolean>;
143
+ /**
144
+ * List projects with issues
145
+ */
146
+ listProjects(): Promise<Array<{
147
+ name: string;
148
+ taskCount: number;
149
+ pendingCount: number;
150
+ inProgressCount: number;
151
+ completedCount: number;
152
+ }>>;
153
+ /**
154
+ * Get task statistics for a project
155
+ */
156
+ getProjectStats(projectName?: string): Promise<{
157
+ total: number;
158
+ byStatus: Record<string, number>;
159
+ byPriority: Record<string, number>;
160
+ overdue: number;
161
+ completedThisWeek: number;
162
+ } | null>;
163
+ /**
164
+ * Search tasks
165
+ */
166
+ searchTasks(query: string, projectName?: string): Promise<ProjectTask[]>;
167
+ /**
168
+ * Get count of completed tasks (GitHub doesn't support bulk delete)
169
+ */
170
+ clearCompletedTasks(projectName?: string): Promise<number>;
171
+ }
172
+ export declare const taskManager: TaskManager;
173
+ //# sourceMappingURL=TaskManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaskManager.d.ts","sourceRoot":"","sources":["../../src/engine/TaskManager.ts"],"names":[],"mappings":"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"}