@polka-codes/cli 0.10.23 → 0.10.25
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.
- package/dist/bin.cjs +143854 -0
- package/dist/bin.d.ts +2 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9201 -9195
- package/dist/program.d.ts +3 -0
- package/dist/program.d.ts.map +1 -0
- package/package.json +6 -7
- package/cli.mjs +0 -2
- package/dist/ApiProviderConfig.js +0 -57
- package/dist/ApiProviderConfig.js.map +0 -1
- package/dist/ApiProviderConfig.test.js +0 -278
- package/dist/ApiProviderConfig.test.js.map +0 -1
- package/dist/agent/advanced-discovery.js +0 -604
- package/dist/agent/advanced-discovery.js.map +0 -1
- package/dist/agent/config.js +0 -139
- package/dist/agent/config.js.map +0 -1
- package/dist/agent/config.test.js +0 -140
- package/dist/agent/config.test.js.map +0 -1
- package/dist/agent/constants.js +0 -172
- package/dist/agent/constants.js.map +0 -1
- package/dist/agent/constants.test.js +0 -132
- package/dist/agent/constants.test.js.map +0 -1
- package/dist/agent/debug-logger.js +0 -281
- package/dist/agent/debug-logger.js.map +0 -1
- package/dist/agent/debug-logger.test.js +0 -294
- package/dist/agent/debug-logger.test.js.map +0 -1
- package/dist/agent/error-handling.js +0 -114
- package/dist/agent/error-handling.js.map +0 -1
- package/dist/agent/error-handling.test.js +0 -191
- package/dist/agent/error-handling.test.js.map +0 -1
- package/dist/agent/errors.js +0 -301
- package/dist/agent/errors.js.map +0 -1
- package/dist/agent/executor.js +0 -206
- package/dist/agent/executor.js.map +0 -1
- package/dist/agent/executor.test.js +0 -228
- package/dist/agent/executor.test.js.map +0 -1
- package/dist/agent/goal-decomposer.js +0 -281
- package/dist/agent/goal-decomposer.js.map +0 -1
- package/dist/agent/goal-decomposer.test.js +0 -225
- package/dist/agent/goal-decomposer.test.js.map +0 -1
- package/dist/agent/health-monitor.js +0 -89
- package/dist/agent/health-monitor.js.map +0 -1
- package/dist/agent/improvement-loop.js +0 -177
- package/dist/agent/improvement-loop.js.map +0 -1
- package/dist/agent/index.js +0 -38
- package/dist/agent/index.js.map +0 -1
- package/dist/agent/metrics.js +0 -158
- package/dist/agent/metrics.js.map +0 -1
- package/dist/agent/metrics.test.js +0 -311
- package/dist/agent/metrics.test.js.map +0 -1
- package/dist/agent/orchestrator.js +0 -438
- package/dist/agent/orchestrator.js.map +0 -1
- package/dist/agent/planner.js +0 -199
- package/dist/agent/planner.js.map +0 -1
- package/dist/agent/planner.test.js +0 -135
- package/dist/agent/planner.test.js.map +0 -1
- package/dist/agent/progress.js +0 -298
- package/dist/agent/progress.js.map +0 -1
- package/dist/agent/progress.test.js +0 -255
- package/dist/agent/progress.test.js.map +0 -1
- package/dist/agent/resource-monitor.js +0 -114
- package/dist/agent/resource-monitor.js.map +0 -1
- package/dist/agent/safety/approval.js +0 -178
- package/dist/agent/safety/approval.js.map +0 -1
- package/dist/agent/safety/approval.test.js +0 -142
- package/dist/agent/safety/approval.test.js.map +0 -1
- package/dist/agent/safety/checks.js +0 -152
- package/dist/agent/safety/checks.js.map +0 -1
- package/dist/agent/safety/checks.test.js +0 -89
- package/dist/agent/safety/checks.test.js.map +0 -1
- package/dist/agent/safety/interrupt.js +0 -92
- package/dist/agent/safety/interrupt.js.map +0 -1
- package/dist/agent/safety/interrupt.test.js +0 -53
- package/dist/agent/safety/interrupt.test.js.map +0 -1
- package/dist/agent/session.js +0 -117
- package/dist/agent/session.js.map +0 -1
- package/dist/agent/session.test.js +0 -213
- package/dist/agent/session.test.js.map +0 -1
- package/dist/agent/state-manager.js +0 -287
- package/dist/agent/state-manager.js.map +0 -1
- package/dist/agent/task-discovery.js +0 -433
- package/dist/agent/task-discovery.js.map +0 -1
- package/dist/agent/task-discovery.test.js +0 -40
- package/dist/agent/task-discovery.test.js.map +0 -1
- package/dist/agent/task-history.js +0 -128
- package/dist/agent/task-history.js.map +0 -1
- package/dist/agent/task-prioritizer.js +0 -286
- package/dist/agent/task-prioritizer.js.map +0 -1
- package/dist/agent/test-fixtures.js +0 -112
- package/dist/agent/test-fixtures.js.map +0 -1
- package/dist/agent/types.js +0 -15
- package/dist/agent/types.js.map +0 -1
- package/dist/agent/workflow-adapter.js +0 -219
- package/dist/agent/workflow-adapter.js.map +0 -1
- package/dist/agent/workflow-adapter.test.js +0 -11
- package/dist/agent/workflow-adapter.test.js.map +0 -1
- package/dist/agent/working-dir-discovery.js +0 -54
- package/dist/agent/working-dir-discovery.js.map +0 -1
- package/dist/agent/working-space.js +0 -484
- package/dist/agent/working-space.js.map +0 -1
- package/dist/agent/working-space.test.js +0 -436
- package/dist/agent/working-space.test.js.map +0 -1
- package/dist/api.js +0 -279
- package/dist/api.js.map +0 -1
- package/dist/builtin-commands.js +0 -20
- package/dist/builtin-commands.js.map +0 -1
- package/dist/commandSummarizer.js +0 -96
- package/dist/commandSummarizer.js.map +0 -1
- package/dist/commands/__tests__/command-detection.integration.test.js +0 -238
- package/dist/commands/__tests__/command-detection.integration.test.js.map +0 -1
- package/dist/commands/__tests__/script-generator.integration.test.js +0 -271
- package/dist/commands/__tests__/script-generator.integration.test.js.map +0 -1
- package/dist/commands/agent.js +0 -218
- package/dist/commands/agent.js.map +0 -1
- package/dist/commands/code.js +0 -102
- package/dist/commands/code.js.map +0 -1
- package/dist/commands/command.constants.js +0 -13
- package/dist/commands/command.constants.js.map +0 -1
- package/dist/commands/commit.js +0 -17
- package/dist/commands/commit.js.map +0 -1
- package/dist/commands/fix.js +0 -17
- package/dist/commands/fix.js.map +0 -1
- package/dist/commands/init.js +0 -501
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/mcp-server.js +0 -122
- package/dist/commands/mcp-server.js.map +0 -1
- package/dist/commands/memory.js +0 -410
- package/dist/commands/memory.js.map +0 -1
- package/dist/commands/memory.test.js +0 -453
- package/dist/commands/memory.test.js.map +0 -1
- package/dist/commands/meta.js +0 -142
- package/dist/commands/meta.js.map +0 -1
- package/dist/commands/plan.js +0 -39
- package/dist/commands/plan.js.map +0 -1
- package/dist/commands/pr.js +0 -14
- package/dist/commands/pr.js.map +0 -1
- package/dist/commands/review-json.test.js +0 -33
- package/dist/commands/review-json.test.js.map +0 -1
- package/dist/commands/review.js +0 -137
- package/dist/commands/review.js.map +0 -1
- package/dist/commands/review.usage.test.js +0 -41
- package/dist/commands/review.usage.test.js.map +0 -1
- package/dist/commands/run.js +0 -107
- package/dist/commands/run.js.map +0 -1
- package/dist/commands/skills.js +0 -175
- package/dist/commands/skills.js.map +0 -1
- package/dist/commands/task.js +0 -34
- package/dist/commands/task.js.map +0 -1
- package/dist/commands/workflow.js +0 -117
- package/dist/commands/workflow.js.map +0 -1
- package/dist/configPrompt.js +0 -39
- package/dist/configPrompt.js.map +0 -1
- package/dist/env.js +0 -22
- package/dist/env.js.map +0 -1
- package/dist/errors.js +0 -132
- package/dist/errors.js.map +0 -1
- package/dist/errors.test.js +0 -21
- package/dist/errors.test.js.map +0 -1
- package/dist/file-attachments.js +0 -77
- package/dist/file-attachments.js.map +0 -1
- package/dist/file-attachments.test.js +0 -214
- package/dist/file-attachments.test.js.map +0 -1
- package/dist/getModel.js +0 -229
- package/dist/getModel.js.map +0 -1
- package/dist/getModel.test.js +0 -67
- package/dist/getModel.test.js.map +0 -1
- package/dist/getProviderOptions.js +0 -58
- package/dist/getProviderOptions.js.map +0 -1
- package/dist/git-operations.js +0 -363
- package/dist/git-operations.js.map +0 -1
- package/dist/git-operations.test.js +0 -81
- package/dist/git-operations.test.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/logger.js +0 -41
- package/dist/logger.js.map +0 -1
- package/dist/mcp/client.js +0 -11
- package/dist/mcp/client.js.map +0 -1
- package/dist/mcp/error-scenarios.test.js +0 -206
- package/dist/mcp/error-scenarios.test.js.map +0 -1
- package/dist/mcp/errors.js +0 -63
- package/dist/mcp/errors.js.map +0 -1
- package/dist/mcp/index.js +0 -9
- package/dist/mcp/index.js.map +0 -1
- package/dist/mcp/manager.js +0 -231
- package/dist/mcp/manager.js.map +0 -1
- package/dist/mcp/manager.test.js +0 -40
- package/dist/mcp/manager.test.js.map +0 -1
- package/dist/mcp/sdk-client.js +0 -166
- package/dist/mcp/sdk-client.js.map +0 -1
- package/dist/mcp/shared-types.js +0 -3
- package/dist/mcp/shared-types.js.map +0 -1
- package/dist/mcp/tools-integration.test.js +0 -198
- package/dist/mcp/tools-integration.test.js.map +0 -1
- package/dist/mcp/tools.js +0 -60
- package/dist/mcp/tools.js.map +0 -1
- package/dist/mcp/transport.js +0 -257
- package/dist/mcp/transport.js.map +0 -1
- package/dist/mcp/types.js +0 -3
- package/dist/mcp/types.js.map +0 -1
- package/dist/mcp-server/index.js +0 -5
- package/dist/mcp-server/index.js.map +0 -1
- package/dist/mcp-server/plan-formatting.test.js +0 -74
- package/dist/mcp-server/plan-formatting.test.js.map +0 -1
- package/dist/mcp-server/sdk-server.js +0 -102
- package/dist/mcp-server/sdk-server.js.map +0 -1
- package/dist/mcp-server/sdk-server.test.js +0 -363
- package/dist/mcp-server/sdk-server.test.js.map +0 -1
- package/dist/mcp-server/tools.js +0 -785
- package/dist/mcp-server/tools.js.map +0 -1
- package/dist/mcp-server/types.js +0 -3
- package/dist/mcp-server/types.js.map +0 -1
- package/dist/options.js +0 -85
- package/dist/options.js.map +0 -1
- package/dist/options.test.js +0 -177
- package/dist/options.test.js.map +0 -1
- package/dist/prices.js +0 -61
- package/dist/prices.js.map +0 -1
- package/dist/prices.test.js +0 -148
- package/dist/prices.test.js.map +0 -1
- package/dist/runWorkflow.js +0 -313
- package/dist/runWorkflow.js.map +0 -1
- package/dist/script/__tests__/execution.integration.test.js +0 -274
- package/dist/script/__tests__/execution.integration.test.js.map +0 -1
- package/dist/script/__tests__/runner.test.js +0 -176
- package/dist/script/__tests__/runner.test.js.map +0 -1
- package/dist/script/__tests__/validator.test.js +0 -180
- package/dist/script/__tests__/validator.test.js.map +0 -1
- package/dist/script/executor.js +0 -127
- package/dist/script/executor.js.map +0 -1
- package/dist/script/index.js +0 -4
- package/dist/script/index.js.map +0 -1
- package/dist/script/runner.js +0 -258
- package/dist/script/runner.js.map +0 -1
- package/dist/skillIntegration.js +0 -46
- package/dist/skillIntegration.js.map +0 -1
- package/dist/skillIntegration.test.js +0 -128
- package/dist/skillIntegration.test.js.map +0 -1
- package/dist/test/utils.js +0 -200
- package/dist/test/utils.js.map +0 -1
- package/dist/test/workflow-fixtures.js +0 -120
- package/dist/test/workflow-fixtures.js.map +0 -1
- package/dist/tool-implementations.js +0 -521
- package/dist/tool-implementations.js.map +0 -1
- package/dist/tool-implementations.skill-tools.test.js +0 -106
- package/dist/tool-implementations.skill-tools.test.js.map +0 -1
- package/dist/tools/getTodoItem.js +0 -33
- package/dist/tools/getTodoItem.js.map +0 -1
- package/dist/tools/gitDiff.js +0 -108
- package/dist/tools/gitDiff.js.map +0 -1
- package/dist/tools/index.js +0 -8
- package/dist/tools/index.js.map +0 -1
- package/dist/tools/listMemoryTopics.js +0 -24
- package/dist/tools/listMemoryTopics.js.map +0 -1
- package/dist/tools/listTodoItems.js +0 -35
- package/dist/tools/listTodoItems.js.map +0 -1
- package/dist/tools/listTodoItems.test.js +0 -89
- package/dist/tools/listTodoItems.test.js.map +0 -1
- package/dist/tools/readMemory.js +0 -33
- package/dist/tools/readMemory.js.map +0 -1
- package/dist/tools/updateMemory.js +0 -62
- package/dist/tools/updateMemory.js.map +0 -1
- package/dist/tools/updateMemory.test.js +0 -109
- package/dist/tools/updateMemory.test.js.map +0 -1
- package/dist/tools/updateTodoItem.js +0 -31
- package/dist/tools/updateTodoItem.js.map +0 -1
- package/dist/tools/utils/diffLineNumbers.js +0 -178
- package/dist/tools/utils/diffLineNumbers.js.map +0 -1
- package/dist/utils/cacheControl.js +0 -59
- package/dist/utils/cacheControl.js.map +0 -1
- package/dist/utils/cacheControl.test.js +0 -128
- package/dist/utils/cacheControl.test.js.map +0 -1
- package/dist/utils/command.js +0 -50
- package/dist/utils/command.js.map +0 -1
- package/dist/utils/shell.js +0 -56
- package/dist/utils/shell.js.map +0 -1
- package/dist/utils/userInput.js +0 -47
- package/dist/utils/userInput.js.map +0 -1
- package/dist/workflow-tools.js +0 -21
- package/dist/workflow-tools.js.map +0 -1
- package/dist/workflows/agent-builder.js +0 -90
- package/dist/workflows/agent-builder.js.map +0 -1
- package/dist/workflows/agent-builder.test.js +0 -115
- package/dist/workflows/agent-builder.test.js.map +0 -1
- package/dist/workflows/code.workflow.js +0 -145
- package/dist/workflows/code.workflow.js.map +0 -1
- package/dist/workflows/commit.workflow.js +0 -111
- package/dist/workflows/commit.workflow.js.map +0 -1
- package/dist/workflows/commit.workflow.test.js +0 -141
- package/dist/workflows/commit.workflow.test.js.map +0 -1
- package/dist/workflows/fix.workflow.js +0 -172
- package/dist/workflows/fix.workflow.js.map +0 -1
- package/dist/workflows/fix.workflow.test.js +0 -137
- package/dist/workflows/fix.workflow.test.js.map +0 -1
- package/dist/workflows/git-file-tools.js +0 -408
- package/dist/workflows/git-file-tools.js.map +0 -1
- package/dist/workflows/index.js +0 -12
- package/dist/workflows/index.js.map +0 -1
- package/dist/workflows/init-interactive.workflow.js +0 -198
- package/dist/workflows/init-interactive.workflow.js.map +0 -1
- package/dist/workflows/init.workflow.js +0 -41
- package/dist/workflows/init.workflow.js.map +0 -1
- package/dist/workflows/meta.workflow.js +0 -107
- package/dist/workflows/meta.workflow.js.map +0 -1
- package/dist/workflows/plan.workflow.js +0 -275
- package/dist/workflows/plan.workflow.js.map +0 -1
- package/dist/workflows/plan.workflow.test.js +0 -419
- package/dist/workflows/plan.workflow.test.js.map +0 -1
- package/dist/workflows/pr.workflow.js +0 -54
- package/dist/workflows/pr.workflow.js.map +0 -1
- package/dist/workflows/pr.workflow.test.js +0 -98
- package/dist/workflows/pr.workflow.test.js.map +0 -1
- package/dist/workflows/prompts/coder.js +0 -85
- package/dist/workflows/prompts/coder.js.map +0 -1
- package/dist/workflows/prompts/commit.js +0 -16
- package/dist/workflows/prompts/commit.js.map +0 -1
- package/dist/workflows/prompts/fix.js +0 -44
- package/dist/workflows/prompts/fix.js.map +0 -1
- package/dist/workflows/prompts/index.js +0 -10
- package/dist/workflows/prompts/index.js.map +0 -1
- package/dist/workflows/prompts/init.js +0 -48
- package/dist/workflows/prompts/init.js.map +0 -1
- package/dist/workflows/prompts/meta.js +0 -17
- package/dist/workflows/prompts/meta.js.map +0 -1
- package/dist/workflows/prompts/plan.js +0 -212
- package/dist/workflows/prompts/plan.js.map +0 -1
- package/dist/workflows/prompts/pr.js +0 -15
- package/dist/workflows/prompts/pr.js.map +0 -1
- package/dist/workflows/prompts/review.js +0 -145
- package/dist/workflows/prompts/review.js.map +0 -1
- package/dist/workflows/prompts/shared.js +0 -93
- package/dist/workflows/prompts/shared.js.map +0 -1
- package/dist/workflows/review.workflow.js +0 -357
- package/dist/workflows/review.workflow.js.map +0 -1
- package/dist/workflows/task.workflow.js +0 -47
- package/dist/workflows/task.workflow.js.map +0 -1
- package/dist/workflows/testing/helper.js +0 -41
- package/dist/workflows/testing/helper.js.map +0 -1
- package/dist/workflows/workflow.utils.js +0 -351
- package/dist/workflows/workflow.utils.js.map +0 -1
- package/dist/workflows/workflow.utils.test.js +0 -45
- package/dist/workflows/workflow.utils.test.js.map +0 -1
|
@@ -1,286 +0,0 @@
|
|
|
1
|
-
import { Priority } from './types';
|
|
2
|
-
/**
|
|
3
|
-
* Dynamic task prioritizer
|
|
4
|
-
*
|
|
5
|
-
* Adjusts task priorities based on:
|
|
6
|
-
* - Historical execution success/failure
|
|
7
|
-
* - Dependency relationships
|
|
8
|
-
* - File change frequency
|
|
9
|
-
* - Task age
|
|
10
|
-
* - Cluster of similar failures
|
|
11
|
-
*/
|
|
12
|
-
export class TaskPrioritizer {
|
|
13
|
-
#executionHistory = new Map();
|
|
14
|
-
#fileChangeFrequency = new Map();
|
|
15
|
-
#MAX_HISTORY_SIZE = 100;
|
|
16
|
-
#HIGH_PRIORITY_THRESHOLD = 850;
|
|
17
|
-
#LOW_PRIORITY_THRESHOLD = 350;
|
|
18
|
-
/**
|
|
19
|
-
* Prioritize a list of tasks
|
|
20
|
-
*/
|
|
21
|
-
prioritizeTasks(tasks, allTasks) {
|
|
22
|
-
if (tasks.length === 0) {
|
|
23
|
-
return tasks;
|
|
24
|
-
}
|
|
25
|
-
// Calculate priority for each task
|
|
26
|
-
const prioritized = tasks.map((task) => {
|
|
27
|
-
const result = this.calculatePriority(task, allTasks);
|
|
28
|
-
return {
|
|
29
|
-
task,
|
|
30
|
-
result,
|
|
31
|
-
adjustedPriority: result.adjustedPriority,
|
|
32
|
-
};
|
|
33
|
-
});
|
|
34
|
-
// Sort by adjusted priority (highest first)
|
|
35
|
-
prioritized.sort((a, b) => b.adjustedPriority - a.adjustedPriority);
|
|
36
|
-
// Return tasks in priority order
|
|
37
|
-
return prioritized.map((p) => {
|
|
38
|
-
// Update task priority
|
|
39
|
-
const updatedTask = { ...p.task, priority: p.adjustedPriority };
|
|
40
|
-
return updatedTask;
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Calculate dynamic priority for a task
|
|
45
|
-
*/
|
|
46
|
-
calculatePriority(task, allTasks) {
|
|
47
|
-
const originalPriority = task.priority;
|
|
48
|
-
const factors = this.gatherFactors(task, allTasks);
|
|
49
|
-
const adjustment = this.calculateAdjustment(task, factors);
|
|
50
|
-
const adjustedPriority = this.applyAdjustment(originalPriority, adjustment);
|
|
51
|
-
const reasoning = this.generateReasoning(task, factors, adjustment);
|
|
52
|
-
const confidence = this.calculateConfidence(factors);
|
|
53
|
-
return {
|
|
54
|
-
originalPriority,
|
|
55
|
-
adjustedPriority,
|
|
56
|
-
reasoning,
|
|
57
|
-
confidence,
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Gather priority adjustment factors
|
|
62
|
-
*/
|
|
63
|
-
gatherFactors(task, allTasks) {
|
|
64
|
-
// Check if task failed before
|
|
65
|
-
const history = this.#executionHistory.get(task.id) || [];
|
|
66
|
-
const failedBefore = history.some((h) => !h.success);
|
|
67
|
-
// Check if task is blocked
|
|
68
|
-
const blocked = task.dependencies.length > 0 &&
|
|
69
|
-
task.dependencies.some((depId) => {
|
|
70
|
-
const dep = allTasks.find((t) => t.id === depId);
|
|
71
|
-
return dep && dep.status !== 'completed';
|
|
72
|
-
});
|
|
73
|
-
// Check if task blocks others
|
|
74
|
-
const blocksOthers = allTasks.some((t) => t.dependencies.includes(task.id) && t.status !== 'completed');
|
|
75
|
-
// Check file change frequency
|
|
76
|
-
let hotFile = false;
|
|
77
|
-
for (const file of task.files) {
|
|
78
|
-
const freq = this.#fileChangeFrequency.get(file) || 0;
|
|
79
|
-
if (freq > 5) {
|
|
80
|
-
// Changed more than 5 times recently
|
|
81
|
-
hotFile = true;
|
|
82
|
-
break;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
// Check for problematic area (similar tasks failed)
|
|
86
|
-
const problematicArea = this.isProblematicArea(task);
|
|
87
|
-
// Task age
|
|
88
|
-
const age = Date.now() - task.createdAt;
|
|
89
|
-
return {
|
|
90
|
-
failedBefore,
|
|
91
|
-
blocked,
|
|
92
|
-
blocksOthers,
|
|
93
|
-
hotFile,
|
|
94
|
-
problematicArea,
|
|
95
|
-
age,
|
|
96
|
-
retryCount: task.retryCount || 0,
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Calculate priority adjustment score
|
|
101
|
-
*/
|
|
102
|
-
calculateAdjustment(_task, factors) {
|
|
103
|
-
let adjustment = 0;
|
|
104
|
-
// Failed before (+200)
|
|
105
|
-
if (factors.failedBefore) {
|
|
106
|
-
adjustment += 200;
|
|
107
|
-
}
|
|
108
|
-
// Blocked (-150)
|
|
109
|
-
if (factors.blocked) {
|
|
110
|
-
adjustment -= 150;
|
|
111
|
-
}
|
|
112
|
-
// Blocks others (+100)
|
|
113
|
-
if (factors.blocksOthers) {
|
|
114
|
-
adjustment += 100;
|
|
115
|
-
}
|
|
116
|
-
// Hot file (+150)
|
|
117
|
-
if (factors.hotFile) {
|
|
118
|
-
adjustment += 150;
|
|
119
|
-
}
|
|
120
|
-
// Problematic area (+100)
|
|
121
|
-
if (factors.problematicArea) {
|
|
122
|
-
adjustment += 100;
|
|
123
|
-
}
|
|
124
|
-
// Old task (+50 per day, max 150)
|
|
125
|
-
const ageInDays = factors.age / (1000 * 60 * 60 * 24);
|
|
126
|
-
if (ageInDays > 1) {
|
|
127
|
-
adjustment += Math.min(Math.floor(ageInDays) * 50, 150);
|
|
128
|
-
}
|
|
129
|
-
// High retry count (+100 per retry, max 300)
|
|
130
|
-
if (factors.retryCount > 0) {
|
|
131
|
-
adjustment += Math.min(factors.retryCount * 100, 300);
|
|
132
|
-
}
|
|
133
|
-
return adjustment;
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Apply adjustment to original priority
|
|
137
|
-
*/
|
|
138
|
-
applyAdjustment(original, adjustment) {
|
|
139
|
-
let adjusted = original + adjustment;
|
|
140
|
-
// Clamp to valid priority range
|
|
141
|
-
adjusted = Math.max(Priority.TRIVIAL, Math.min(Priority.CRITICAL, adjusted));
|
|
142
|
-
return adjusted;
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Generate human-readable reasoning
|
|
146
|
-
*/
|
|
147
|
-
generateReasoning(task, factors, adjustment) {
|
|
148
|
-
const reasons = [];
|
|
149
|
-
if (factors.failedBefore) {
|
|
150
|
-
reasons.push('failed previously');
|
|
151
|
-
}
|
|
152
|
-
if (factors.blocked) {
|
|
153
|
-
reasons.push('blocked by dependencies');
|
|
154
|
-
}
|
|
155
|
-
if (factors.blocksOthers) {
|
|
156
|
-
reasons.push('blocks other tasks');
|
|
157
|
-
}
|
|
158
|
-
if (factors.hotFile) {
|
|
159
|
-
reasons.push('frequently changed file');
|
|
160
|
-
}
|
|
161
|
-
if (factors.problematicArea) {
|
|
162
|
-
reasons.push('problematic code area');
|
|
163
|
-
}
|
|
164
|
-
if (factors.age > 86400000) {
|
|
165
|
-
// More than 1 day
|
|
166
|
-
reasons.push('old task');
|
|
167
|
-
}
|
|
168
|
-
if (factors.retryCount > 0) {
|
|
169
|
-
reasons.push(`retry attempt ${factors.retryCount + 1}`);
|
|
170
|
-
}
|
|
171
|
-
if (reasons.length === 0) {
|
|
172
|
-
return `Priority ${task.priority} (no adjustment)`;
|
|
173
|
-
}
|
|
174
|
-
const direction = adjustment > 0 ? 'increased' : 'decreased';
|
|
175
|
-
return `Priority ${direction} from ${task.priority} to ${task.priority + adjustment} (${reasons.join(', ')})`;
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* Calculate confidence score
|
|
179
|
-
*/
|
|
180
|
-
calculateConfidence(factors) {
|
|
181
|
-
let confidence = 0.5; // Base confidence
|
|
182
|
-
// More factors = higher confidence
|
|
183
|
-
if (factors.failedBefore)
|
|
184
|
-
confidence += 0.15;
|
|
185
|
-
if (factors.blocked)
|
|
186
|
-
confidence += 0.1;
|
|
187
|
-
if (factors.blocksOthers)
|
|
188
|
-
confidence += 0.1;
|
|
189
|
-
if (factors.hotFile)
|
|
190
|
-
confidence += 0.1;
|
|
191
|
-
if (factors.problematicArea)
|
|
192
|
-
confidence += 0.15;
|
|
193
|
-
if (factors.retryCount > 0)
|
|
194
|
-
confidence += 0.1;
|
|
195
|
-
return Math.min(confidence, 1.0);
|
|
196
|
-
}
|
|
197
|
-
/**
|
|
198
|
-
* Check if task is in a problematic area
|
|
199
|
-
*/
|
|
200
|
-
isProblematicArea(task) {
|
|
201
|
-
// Check if similar tasks (same files) failed recently
|
|
202
|
-
for (const file of task.files) {
|
|
203
|
-
const history = this.#executionHistory.get(file) || [];
|
|
204
|
-
const recentFailures = history.filter((h) => !h.success && Date.now() - h.timestamp < 3600000);
|
|
205
|
-
if (recentFailures.length >= 2) {
|
|
206
|
-
return true;
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
return false;
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* Record task execution result
|
|
213
|
-
*/
|
|
214
|
-
recordExecution(taskId, success) {
|
|
215
|
-
const history = this.#executionHistory.get(taskId) || [];
|
|
216
|
-
history.push({
|
|
217
|
-
success,
|
|
218
|
-
timestamp: Date.now(),
|
|
219
|
-
});
|
|
220
|
-
// Trim history if too large
|
|
221
|
-
if (history.length > this.#MAX_HISTORY_SIZE) {
|
|
222
|
-
history.shift();
|
|
223
|
-
}
|
|
224
|
-
this.#executionHistory.set(taskId, history);
|
|
225
|
-
}
|
|
226
|
-
/**
|
|
227
|
-
* Record file change
|
|
228
|
-
*/
|
|
229
|
-
recordFileChange(file) {
|
|
230
|
-
const current = this.#fileChangeFrequency.get(file) || 0;
|
|
231
|
-
this.#fileChangeFrequency.set(file, current + 1);
|
|
232
|
-
// Decay old frequencies periodically (not implemented here)
|
|
233
|
-
}
|
|
234
|
-
/**
|
|
235
|
-
* Reset all history
|
|
236
|
-
*/
|
|
237
|
-
resetHistory() {
|
|
238
|
-
this.#executionHistory.clear();
|
|
239
|
-
this.#fileChangeFrequency.clear();
|
|
240
|
-
}
|
|
241
|
-
/**
|
|
242
|
-
* Get high priority tasks
|
|
243
|
-
*/
|
|
244
|
-
getHighPriorityTasks(tasks) {
|
|
245
|
-
return tasks.filter((t) => t.priority >= this.#HIGH_PRIORITY_THRESHOLD);
|
|
246
|
-
}
|
|
247
|
-
/**
|
|
248
|
-
* Get low priority tasks
|
|
249
|
-
*/
|
|
250
|
-
getLowPriorityTasks(tasks) {
|
|
251
|
-
return tasks.filter((t) => t.priority <= this.#LOW_PRIORITY_THRESHOLD);
|
|
252
|
-
}
|
|
253
|
-
/**
|
|
254
|
-
* Get critical tasks
|
|
255
|
-
*/
|
|
256
|
-
getCriticalTasks(tasks) {
|
|
257
|
-
return tasks.filter((t) => t.priority === Priority.CRITICAL);
|
|
258
|
-
}
|
|
259
|
-
/**
|
|
260
|
-
* Get prioritization statistics
|
|
261
|
-
*/
|
|
262
|
-
getStatistics() {
|
|
263
|
-
let totalExecutions = 0;
|
|
264
|
-
let totalSuccesses = 0;
|
|
265
|
-
const fileFailures = new Map();
|
|
266
|
-
for (const [taskId, history] of this.#executionHistory.entries()) {
|
|
267
|
-
totalExecutions += history.length;
|
|
268
|
-
totalSuccesses += history.filter((h) => h.success).length;
|
|
269
|
-
// Track failures per file (assuming taskId maps to file)
|
|
270
|
-
const failures = history.filter((h) => !h.success).length;
|
|
271
|
-
if (failures > 0) {
|
|
272
|
-
fileFailures.set(taskId, failures);
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
const mostProblematicFiles = Array.from(fileFailures.entries())
|
|
276
|
-
.map(([file, failures]) => ({ file, failures }))
|
|
277
|
-
.sort((a, b) => b.failures - a.failures)
|
|
278
|
-
.slice(0, 10);
|
|
279
|
-
return {
|
|
280
|
-
totalTasksTracked: this.#executionHistory.size,
|
|
281
|
-
averageSuccessRate: totalExecutions > 0 ? totalSuccesses / totalExecutions : 1,
|
|
282
|
-
mostProblematicFiles,
|
|
283
|
-
};
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
//# sourceMappingURL=task-prioritizer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"task-prioritizer.js","sourceRoot":"","sources":["../../src/agent/task-prioritizer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AA6ClC;;;;;;;;;GASG;AACH,MAAM,OAAO,eAAe;IAC1B,iBAAiB,GAAgE,IAAI,GAAG,EAAE,CAAA;IAC1F,oBAAoB,GAAwB,IAAI,GAAG,EAAE,CAAA;IACrD,iBAAiB,GAAG,GAAG,CAAA;IACvB,wBAAwB,GAAG,GAAG,CAAA;IAC9B,uBAAuB,GAAG,GAAG,CAAA;IAE7B;;OAEG;IACH,eAAe,CAAC,KAAa,EAAE,QAAgB;QAC7C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,KAAK,CAAA;QACd,CAAC;QAED,mCAAmC;QACnC,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;YACrD,OAAO;gBACL,IAAI;gBACJ,MAAM;gBACN,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;aAC1C,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,4CAA4C;QAC5C,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAA;QAEnE,iCAAiC;QACjC,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC3B,uBAAuB;YACvB,MAAM,WAAW,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,gBAAgB,EAAE,CAAA;YAC/D,OAAO,WAAW,CAAA;QACpB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,IAAU,EAAE,QAAgB;QAC5C,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAA;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QAClD,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAC1D,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAA;QAE3E,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;QACnE,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAA;QAEpD,OAAO;YACL,gBAAgB;YAChB,gBAAgB;YAChB,SAAS;YACT,UAAU;SACX,CAAA;IACH,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,IAAU,EAAE,QAAgB;QAChD,8BAA8B;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAA;QACzD,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QAEpD,2BAA2B;QAC3B,MAAM,OAAO,GACX,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;YAC5B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC/B,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,CAAA;gBAChD,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,CAAA;YAC1C,CAAC,CAAC,CAAA;QAEJ,8BAA8B;QAC9B,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAA;QAEvG,8BAA8B;QAC9B,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACrD,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;gBACb,qCAAqC;gBACrC,OAAO,GAAG,IAAI,CAAA;gBACd,MAAK;YACP,CAAC;QACH,CAAC;QAED,oDAAoD;QACpD,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAEpD,WAAW;QACX,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAA;QAEvC,OAAO;YACL,YAAY;YACZ,OAAO;YACP,YAAY;YACZ,OAAO;YACP,eAAe;YACf,GAAG;YACH,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,CAAC;SACjC,CAAA;IACH,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,KAAW,EAAE,OAAwB;QAC/D,IAAI,UAAU,GAAG,CAAC,CAAA;QAElB,uBAAuB;QACvB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,UAAU,IAAI,GAAG,CAAA;QACnB,CAAC;QAED,iBAAiB;QACjB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,UAAU,IAAI,GAAG,CAAA;QACnB,CAAC;QAED,uBAAuB;QACvB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,UAAU,IAAI,GAAG,CAAA;QACnB,CAAC;QAED,kBAAkB;QAClB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,UAAU,IAAI,GAAG,CAAA;QACnB,CAAC;QAED,0BAA0B;QAC1B,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YAC5B,UAAU,IAAI,GAAG,CAAA;QACnB,CAAC;QAED,kCAAkC;QAClC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAA;QACrD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClB,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAA;QACzD,CAAC;QAED,6CAA6C;QAC7C,IAAI,OAAO,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;YAC3B,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,GAAG,GAAG,EAAE,GAAG,CAAC,CAAA;QACvD,CAAC;QAED,OAAO,UAAU,CAAA;IACnB,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,QAAkB,EAAE,UAAkB;QAC5D,IAAI,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAA;QAEpC,gCAAgC;QAChC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;QAE5E,OAAO,QAAoB,CAAA;IAC7B,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,IAAU,EAAE,OAAwB,EAAE,UAAkB;QAChF,MAAM,OAAO,GAAa,EAAE,CAAA;QAE5B,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;QACnC,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;QACzC,CAAC;QACD,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;QACpC,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;QACzC,CAAC;QACD,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;QACvC,CAAC;QACD,IAAI,OAAO,CAAC,GAAG,GAAG,QAAQ,EAAE,CAAC;YAC3B,kBAAkB;YAClB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC1B,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,iBAAiB,OAAO,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC,CAAA;QACzD,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,YAAY,IAAI,CAAC,QAAQ,kBAAkB,CAAA;QACpD,CAAC;QAED,MAAM,SAAS,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAA;QAC5D,OAAO,YAAY,SAAS,SAAS,IAAI,CAAC,QAAQ,OAAO,IAAI,CAAC,QAAQ,GAAG,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;IAC/G,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,OAAwB;QAClD,IAAI,UAAU,GAAG,GAAG,CAAA,CAAC,kBAAkB;QAEvC,mCAAmC;QACnC,IAAI,OAAO,CAAC,YAAY;YAAE,UAAU,IAAI,IAAI,CAAA;QAC5C,IAAI,OAAO,CAAC,OAAO;YAAE,UAAU,IAAI,GAAG,CAAA;QACtC,IAAI,OAAO,CAAC,YAAY;YAAE,UAAU,IAAI,GAAG,CAAA;QAC3C,IAAI,OAAO,CAAC,OAAO;YAAE,UAAU,IAAI,GAAG,CAAA;QACtC,IAAI,OAAO,CAAC,eAAe;YAAE,UAAU,IAAI,IAAI,CAAA;QAC/C,IAAI,OAAO,CAAC,UAAU,GAAG,CAAC;YAAE,UAAU,IAAI,GAAG,CAAA;QAE7C,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;IAClC,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,IAAU;QAClC,sDAAsD;QACtD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;YACtD,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CACnC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,SAAS,GAAG,OAAO,CACxD,CAAA;YAED,IAAI,cAAc,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBAC/B,OAAO,IAAI,CAAA;YACb,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,MAAc,EAAE,OAAgB;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QAExD,OAAO,CAAC,IAAI,CAAC;YACX,OAAO;YACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAA;QAEF,4BAA4B;QAC5B,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5C,OAAO,CAAC,KAAK,EAAE,CAAA;QACjB,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7C,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,IAAY;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACxD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,CAAC,CAAC,CAAA;QAEhD,4DAA4D;IAC9D,CAAC;IAED;;OAEG;IACH,YAAY;QACV,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAA;QAC9B,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAA;IACnC,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,KAAa;QAChC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,wBAAwB,CAAC,CAAA;IACzE,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,KAAa;QAC/B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,uBAAuB,CAAC,CAAA;IACxE,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,KAAa;QAC5B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAC9D,CAAC;IAED;;OAEG;IACH,aAAa;QAKX,IAAI,eAAe,GAAG,CAAC,CAAA;QACvB,IAAI,cAAc,GAAG,CAAC,CAAA;QACtB,MAAM,YAAY,GAAwB,IAAI,GAAG,EAAE,CAAA;QAEnD,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,EAAE,CAAC;YACjE,eAAe,IAAI,OAAO,CAAC,MAAM,CAAA;YACjC,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAA;YAEzD,yDAAyD;YACzD,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAA;YACzD,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;gBACjB,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;YACpC,CAAC;QACH,CAAC;QAED,MAAM,oBAAoB,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;aAC5D,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;aAC/C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;aACvC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAEf,OAAO;YACL,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI;YAC9C,kBAAkB,EAAE,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;YAC9E,oBAAoB;SACrB,CAAA;IACH,CAAC;CACF"}
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Test fixtures and mock utilities for agent testing
|
|
3
|
-
*
|
|
4
|
-
* Provides properly typed mock objects and factory functions
|
|
5
|
-
* to replace unsafe `as any` assertions in tests.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Mock logger for testing
|
|
9
|
-
*/
|
|
10
|
-
export function createMockLogger() {
|
|
11
|
-
return {
|
|
12
|
-
info: () => { },
|
|
13
|
-
warn: () => { },
|
|
14
|
-
error: () => { },
|
|
15
|
-
debug: () => { },
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Mock step function for testing
|
|
20
|
-
*/
|
|
21
|
-
export function createMockStepFn() {
|
|
22
|
-
return async (_name, optionsOrFn, fn) => {
|
|
23
|
-
const actualFn = fn || optionsOrFn;
|
|
24
|
-
if (typeof actualFn === 'function') {
|
|
25
|
-
return await actualFn();
|
|
26
|
-
}
|
|
27
|
-
throw new Error('Expected function');
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Mock tools for testing
|
|
32
|
-
*/
|
|
33
|
-
export function createMockTools() {
|
|
34
|
-
return {
|
|
35
|
-
executeCommand: async () => ({
|
|
36
|
-
exitCode: 0,
|
|
37
|
-
stdout: '',
|
|
38
|
-
stderr: '',
|
|
39
|
-
}),
|
|
40
|
-
readFile: async () => ({ content: '' }),
|
|
41
|
-
listFiles: async () => [],
|
|
42
|
-
writeToFile: async () => { },
|
|
43
|
-
removeFile: async () => { },
|
|
44
|
-
updateMemory: async () => { },
|
|
45
|
-
readMemory: async () => '',
|
|
46
|
-
listMemoryTopics: async () => [],
|
|
47
|
-
getMemoryContext: async () => '',
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Mock workflow context for testing
|
|
52
|
-
*/
|
|
53
|
-
export function createMockContext(overrides) {
|
|
54
|
-
return {
|
|
55
|
-
logger: createMockLogger(),
|
|
56
|
-
tools: createMockTools(),
|
|
57
|
-
step: createMockStepFn(),
|
|
58
|
-
workingDir: '/test/workspace',
|
|
59
|
-
stateDir: '/test/state',
|
|
60
|
-
sessionId: 'test-session-123',
|
|
61
|
-
...overrides,
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Mock agent config for testing
|
|
66
|
-
*/
|
|
67
|
-
export function createMockConfig() {
|
|
68
|
-
return {
|
|
69
|
-
resourceLimits: {
|
|
70
|
-
maxMemory: 1024,
|
|
71
|
-
maxSessionTime: 60,
|
|
72
|
-
maxTaskExecutionTime: 30,
|
|
73
|
-
},
|
|
74
|
-
approval: {
|
|
75
|
-
level: 'none',
|
|
76
|
-
autoApproveSafeTasks: true,
|
|
77
|
-
maxAutoApprovalCost: 100,
|
|
78
|
-
},
|
|
79
|
-
destructiveOperations: {
|
|
80
|
-
allowBranchDeletion: false,
|
|
81
|
-
allowForcePush: false,
|
|
82
|
-
allowStagingReset: false,
|
|
83
|
-
},
|
|
84
|
-
discovery: {
|
|
85
|
-
strategy: 'default',
|
|
86
|
-
maxTasksPerIteration: 10,
|
|
87
|
-
taskPrioritization: true,
|
|
88
|
-
},
|
|
89
|
-
stateDir: '/test/state',
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Mock agent state for testing
|
|
94
|
-
*/
|
|
95
|
-
export function createMockState() {
|
|
96
|
-
return {
|
|
97
|
-
currentMode: 'idle',
|
|
98
|
-
currentGoal: null,
|
|
99
|
-
config: createMockConfig(),
|
|
100
|
-
taskQueue: [],
|
|
101
|
-
completedTasks: [],
|
|
102
|
-
failedTasks: [],
|
|
103
|
-
startTime: Date.now(),
|
|
104
|
-
lastActivity: Date.now(),
|
|
105
|
-
sessionMetadata: {
|
|
106
|
-
pid: process.pid,
|
|
107
|
-
hostname: 'localhost',
|
|
108
|
-
username: 'test-user',
|
|
109
|
-
},
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
//# sourceMappingURL=test-fixtures.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test-fixtures.js","sourceRoot":"","sources":["../../src/agent/test-fixtures.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;QACd,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;QACd,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;QACf,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;KAChB,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,EAAG,EAAE,EAAE;QACvC,MAAM,QAAQ,GAAG,EAAE,IAAI,WAAW,CAAA;QAClC,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;YACnC,OAAO,MAAM,QAAQ,EAAE,CAAA;QACzB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;IACtC,CAAC,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO;QACL,cAAc,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;YAC3B,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;SACX,CAAC;QACF,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACvC,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;QACzB,WAAW,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;QAC3B,UAAU,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;QAC1B,YAAY,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;QAC5B,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;QAC1B,gBAAgB,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;QAChC,gBAAgB,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;KACjC,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAuC;IACvE,OAAO;QACL,MAAM,EAAE,gBAAgB,EAAE;QAC1B,KAAK,EAAE,eAAe,EAAE;QACxB,IAAI,EAAE,gBAAgB,EAAE;QACxB,UAAU,EAAE,iBAAiB;QAC7B,QAAQ,EAAE,aAAa;QACvB,SAAS,EAAE,kBAAkB;QAC7B,GAAG,SAAS;KACb,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,cAAc,EAAE;YACd,SAAS,EAAE,IAAI;YACf,cAAc,EAAE,EAAE;YAClB,oBAAoB,EAAE,EAAE;SACzB;QACD,QAAQ,EAAE;YACR,KAAK,EAAE,MAAe;YACtB,oBAAoB,EAAE,IAAI;YAC1B,mBAAmB,EAAE,GAAG;SACzB;QACD,qBAAqB,EAAE;YACrB,mBAAmB,EAAE,KAAK;YAC1B,cAAc,EAAE,KAAK;YACrB,iBAAiB,EAAE,KAAK;SACzB;QACD,SAAS,EAAE;YACT,QAAQ,EAAE,SAAkB;YAC5B,oBAAoB,EAAE,EAAE;YACxB,kBAAkB,EAAE,IAAI;SACzB;QACD,QAAQ,EAAE,aAAa;KACxB,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO;QACL,WAAW,EAAE,MAAe;QAC5B,WAAW,EAAE,IAAI;QACjB,MAAM,EAAE,gBAAgB,EAAE;QAC1B,SAAS,EAAE,EAAE;QACb,cAAc,EAAE,EAAE;QAClB,WAAW,EAAE,EAAE;QACf,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE;QACxB,eAAe,EAAE;YACf,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,QAAQ,EAAE,WAAW;YACrB,QAAQ,EAAE,WAAW;SACtB;KACF,CAAA;AACH,CAAC"}
|
package/dist/agent/types.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Core type definitions for the autonomous agent system
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Priority levels (enum-based for clarity)
|
|
6
|
-
*/
|
|
7
|
-
export var Priority;
|
|
8
|
-
(function (Priority) {
|
|
9
|
-
Priority[Priority["CRITICAL"] = 1000] = "CRITICAL";
|
|
10
|
-
Priority[Priority["HIGH"] = 800] = "HIGH";
|
|
11
|
-
Priority[Priority["MEDIUM"] = 600] = "MEDIUM";
|
|
12
|
-
Priority[Priority["LOW"] = 400] = "LOW";
|
|
13
|
-
Priority[Priority["TRIVIAL"] = 200] = "TRIVIAL";
|
|
14
|
-
})(Priority || (Priority = {}));
|
|
15
|
-
//# sourceMappingURL=types.js.map
|
package/dist/agent/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/agent/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AA8BH;;GAEG;AACH,MAAM,CAAN,IAAY,QAMX;AAND,WAAY,QAAQ;IAClB,kDAAe,CAAA;IACf,yCAAU,CAAA;IACV,6CAAY,CAAA;IACZ,uCAAS,CAAA;IACT,+CAAa,CAAA;AACf,CAAC,EANW,QAAQ,KAAR,QAAQ,QAMnB"}
|
|
@@ -1,219 +0,0 @@
|
|
|
1
|
-
import { WorkflowInvocationError } from './errors';
|
|
2
|
-
/**
|
|
3
|
-
* Adapts existing workflow outputs to WorkflowExecutionResult format
|
|
4
|
-
*
|
|
5
|
-
* This layer bridges the gap between existing workflows (which have varying
|
|
6
|
-
* return types) and the unified WorkflowExecutionResult format expected by
|
|
7
|
-
* the agent orchestrator.
|
|
8
|
-
*/
|
|
9
|
-
/**
|
|
10
|
-
* Adapt code workflow result
|
|
11
|
-
*/
|
|
12
|
-
export async function adaptCodeWorkflow(input, context) {
|
|
13
|
-
try {
|
|
14
|
-
// Dynamic import to avoid circular dependencies
|
|
15
|
-
const { codeWorkflow } = await import('../workflows/code.workflow');
|
|
16
|
-
const result = await codeWorkflow(input, context);
|
|
17
|
-
if (result.success) {
|
|
18
|
-
return {
|
|
19
|
-
success: true,
|
|
20
|
-
data: result,
|
|
21
|
-
output: result.summaries.join('\n'),
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
return {
|
|
26
|
-
success: false,
|
|
27
|
-
error: new Error(result.reason || 'Code workflow failed'),
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
catch (error) {
|
|
32
|
-
throw new WorkflowInvocationError('code', error instanceof Error ? error.message : String(error), error instanceof Error ? error : undefined);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Adapt fix workflow result
|
|
37
|
-
*/
|
|
38
|
-
export async function adaptFixWorkflow(input, context) {
|
|
39
|
-
try {
|
|
40
|
-
const { fixWorkflow } = await import('../workflows/fix.workflow');
|
|
41
|
-
const result = await fixWorkflow(input, context);
|
|
42
|
-
if (result.success) {
|
|
43
|
-
return {
|
|
44
|
-
success: true,
|
|
45
|
-
data: result,
|
|
46
|
-
output: result.summaries.join('\n') || 'Fix applied',
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
return {
|
|
51
|
-
success: false,
|
|
52
|
-
error: new Error(result.reason || 'Fix workflow failed'),
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
catch (error) {
|
|
57
|
-
throw new WorkflowInvocationError('fix', error instanceof Error ? error.message : String(error), error instanceof Error ? error : undefined);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Adapt plan workflow result
|
|
62
|
-
*/
|
|
63
|
-
export async function adaptPlanWorkflow(input, context) {
|
|
64
|
-
try {
|
|
65
|
-
const { planWorkflow } = await import('../workflows/plan.workflow');
|
|
66
|
-
const result = await planWorkflow(input, context);
|
|
67
|
-
if (!result) {
|
|
68
|
-
return {
|
|
69
|
-
success: false,
|
|
70
|
-
error: new Error('Plan not approved'),
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
return {
|
|
74
|
-
success: true,
|
|
75
|
-
data: result,
|
|
76
|
-
output: result.plan || 'Plan created',
|
|
77
|
-
filesModified: result.files.map((f) => f.path),
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
catch (error) {
|
|
81
|
-
throw new WorkflowInvocationError('plan', error instanceof Error ? error.message : String(error), error instanceof Error ? error : undefined);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Adapt review workflow result
|
|
86
|
-
*/
|
|
87
|
-
export async function adaptReviewWorkflow(input, context) {
|
|
88
|
-
try {
|
|
89
|
-
const { reviewWorkflow } = await import('../workflows/review.workflow');
|
|
90
|
-
const result = await reviewWorkflow(input, context);
|
|
91
|
-
// Review workflow always returns successfully
|
|
92
|
-
return {
|
|
93
|
-
success: true,
|
|
94
|
-
data: result,
|
|
95
|
-
output: result.overview || 'Review complete',
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
catch (error) {
|
|
99
|
-
throw new WorkflowInvocationError('review', error instanceof Error ? error.message : String(error), error instanceof Error ? error : undefined);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Adapt commit workflow result
|
|
104
|
-
*/
|
|
105
|
-
export async function adaptCommitWorkflow(input, context) {
|
|
106
|
-
try {
|
|
107
|
-
const { commitWorkflow } = await import('../workflows/commit.workflow');
|
|
108
|
-
const result = await commitWorkflow(input, context);
|
|
109
|
-
// Commit workflow returns string | void
|
|
110
|
-
if (typeof result === 'string') {
|
|
111
|
-
return {
|
|
112
|
-
success: true,
|
|
113
|
-
data: result,
|
|
114
|
-
output: `Committed: ${result}`,
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
else {
|
|
118
|
-
return {
|
|
119
|
-
success: true,
|
|
120
|
-
data: null,
|
|
121
|
-
output: 'Commit workflow completed',
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
catch (error) {
|
|
126
|
-
throw new WorkflowInvocationError('commit', error instanceof Error ? error.message : String(error), error instanceof Error ? error : undefined);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Generic workflow invoker
|
|
131
|
-
* Routes to the appropriate adapter based on workflow name
|
|
132
|
-
*
|
|
133
|
-
* @param workflowName - The name of the workflow to invoke
|
|
134
|
-
* @param input - Input data for the workflow
|
|
135
|
-
* @param context - Workflow context (logger, tools, etc.)
|
|
136
|
-
* @param signal - Optional AbortSignal for cancellation
|
|
137
|
-
*/
|
|
138
|
-
export async function invokeWorkflow(workflowName, input, context, signal) {
|
|
139
|
-
// Check if operation was aborted before starting
|
|
140
|
-
if (signal?.aborted) {
|
|
141
|
-
const abortReason = signal.reason ? String(signal.reason) : 'Workflow was cancelled before execution';
|
|
142
|
-
throw new WorkflowInvocationError(workflowName, abortReason);
|
|
143
|
-
}
|
|
144
|
-
// Create a wrapped context that can check abort status
|
|
145
|
-
const wrappedContext = signal
|
|
146
|
-
? {
|
|
147
|
-
...context,
|
|
148
|
-
checkAbort: () => {
|
|
149
|
-
if (signal.aborted) {
|
|
150
|
-
const reason = signal.reason ? String(signal.reason) : 'Workflow was cancelled';
|
|
151
|
-
throw new WorkflowInvocationError(workflowName, reason);
|
|
152
|
-
}
|
|
153
|
-
},
|
|
154
|
-
}
|
|
155
|
-
: context;
|
|
156
|
-
// Cast input to proper workflow input type based on workflow name
|
|
157
|
-
// The caller is responsible for passing the correct input structure
|
|
158
|
-
const workflowInput = input;
|
|
159
|
-
// NOTE: Type assertion to CliToolRegistry is needed here because:
|
|
160
|
-
// - invokeWorkflow is generic (accepts any ToolRegistry)
|
|
161
|
-
// - Actual workflow adapters require CliToolRegistry (full tool set)
|
|
162
|
-
// - Agent command currently provides AgentToolsRegistry (subset)
|
|
163
|
-
//
|
|
164
|
-
// This is a known limitation - see agent.ts lines 86-102 for the TODO
|
|
165
|
-
// about refactoring to provide full tool support to the agent.
|
|
166
|
-
//
|
|
167
|
-
// Runtime errors will occur if workflows try to use tools not provided by the caller.
|
|
168
|
-
const cliContext = wrappedContext;
|
|
169
|
-
switch (workflowName) {
|
|
170
|
-
case 'code':
|
|
171
|
-
return adaptCodeWorkflow(workflowInput, cliContext);
|
|
172
|
-
case 'fix':
|
|
173
|
-
return adaptFixWorkflow(workflowInput, cliContext);
|
|
174
|
-
case 'plan':
|
|
175
|
-
return adaptPlanWorkflow(workflowInput, cliContext);
|
|
176
|
-
case 'review':
|
|
177
|
-
return adaptReviewWorkflow(workflowInput, cliContext);
|
|
178
|
-
case 'commit':
|
|
179
|
-
return adaptCommitWorkflow(workflowInput, cliContext);
|
|
180
|
-
default:
|
|
181
|
-
throw new WorkflowInvocationError(workflowName, `Unknown workflow: ${workflowName}`);
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* Execute workflow with timeout
|
|
186
|
-
* Wraps workflow execution with timeout protection
|
|
187
|
-
*/
|
|
188
|
-
export async function invokeWorkflowWithTimeout(workflowName, input, context, timeoutMs) {
|
|
189
|
-
const timeoutPromise = new Promise((_, reject) => {
|
|
190
|
-
setTimeout(() => {
|
|
191
|
-
reject(new Error(`Workflow ${workflowName} timed out after ${timeoutMs}ms`));
|
|
192
|
-
}, timeoutMs);
|
|
193
|
-
});
|
|
194
|
-
try {
|
|
195
|
-
return await Promise.race([invokeWorkflow(workflowName, input, context), timeoutPromise]);
|
|
196
|
-
}
|
|
197
|
-
catch (error) {
|
|
198
|
-
if (error instanceof Error && error.message.includes('timed out')) {
|
|
199
|
-
return {
|
|
200
|
-
success: false,
|
|
201
|
-
error,
|
|
202
|
-
};
|
|
203
|
-
}
|
|
204
|
-
throw error;
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
/**
|
|
208
|
-
* @deprecated Use invokeWorkflow instead
|
|
209
|
-
*/
|
|
210
|
-
export const WorkflowAdapter = {
|
|
211
|
-
adaptCodeWorkflow,
|
|
212
|
-
adaptFixWorkflow,
|
|
213
|
-
adaptPlanWorkflow,
|
|
214
|
-
adaptReviewWorkflow,
|
|
215
|
-
adaptCommitWorkflow,
|
|
216
|
-
invokeWorkflow,
|
|
217
|
-
invokeWorkflowWithTimeout,
|
|
218
|
-
};
|
|
219
|
-
//# sourceMappingURL=workflow-adapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-adapter.js","sourceRoot":"","sources":["../../src/agent/workflow-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Workflow adapter tests
|
|
4
|
-
*
|
|
5
|
-
* Note: Unit tests for invokeWorkflow are skipped due to mock.module() state leakage
|
|
6
|
-
* from other test files (particularly executor.test.ts which mocks './workflow-adapter').
|
|
7
|
-
* The production code is well-tested by integration tests and the executor tests.
|
|
8
|
-
*/
|
|
9
|
-
// Empty test file to maintain test structure
|
|
10
|
-
// Actual testing is done via integration tests
|
|
11
|
-
//# sourceMappingURL=workflow-adapter.test.js.map
|