claude-code-workflow 6.3.34 → 6.3.37
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/.claude/agents/cli-execution-agent.md +61 -0
- package/.claude/agents/cli-lite-planning-agent.md +322 -36
- package/.claude/agents/issue-plan-agent.md +95 -11
- package/.claude/commands/cli/codex-review.md +8 -2
- package/.claude/commands/issue/plan.md +20 -6
- package/.claude/commands/workflow/lite-execute.md +56 -16
- package/.claude/commands/workflow/lite-fix.md +108 -9
- package/.claude/commands/workflow/lite-plan.md +1 -1
- package/.claude/skills/ccw-loop/README.md +303 -0
- package/.claude/skills/ccw-loop/SKILL.md +259 -0
- package/.claude/skills/ccw-loop/phases/actions/action-complete.md +320 -0
- package/.claude/skills/ccw-loop/phases/actions/action-debug-with-file.md +485 -0
- package/.claude/skills/ccw-loop/phases/actions/action-develop-with-file.md +365 -0
- package/.claude/skills/ccw-loop/phases/actions/action-init.md +200 -0
- package/.claude/skills/ccw-loop/phases/actions/action-menu.md +192 -0
- package/.claude/skills/ccw-loop/phases/actions/action-validate-with-file.md +307 -0
- package/.claude/skills/ccw-loop/phases/orchestrator.md +486 -0
- package/.claude/skills/ccw-loop/phases/state-schema.md +474 -0
- package/.claude/skills/ccw-loop/specs/action-catalog.md +300 -0
- package/.claude/skills/ccw-loop/specs/loop-requirements.md +192 -0
- package/.claude/skills/ccw-loop/templates/progress-template.md +175 -0
- package/.claude/skills/ccw-loop/templates/understanding-template.md +303 -0
- package/.claude/skills/ccw-loop/templates/validation-template.md +258 -0
- package/.claude/workflows/cli-templates/schemas/issues-jsonl-schema.json +29 -0
- package/.claude/workflows/cli-templates/schemas/plan-json-schema.json +200 -0
- package/.codex/prompts/debug-with-file.md +609 -0
- package/ccw/dist/cli.d.ts.map +1 -1
- package/ccw/dist/cli.js +8 -1
- package/ccw/dist/cli.js.map +1 -1
- package/ccw/dist/commands/cli.d.ts.map +1 -1
- package/ccw/dist/commands/cli.js +16 -4
- package/ccw/dist/commands/cli.js.map +1 -1
- package/ccw/dist/commands/issue.d.ts.map +1 -1
- package/ccw/dist/commands/issue.js +37 -4
- package/ccw/dist/commands/issue.js.map +1 -1
- package/ccw/dist/commands/loop.d.ts +10 -0
- package/ccw/dist/commands/loop.d.ts.map +1 -0
- package/ccw/dist/commands/loop.js +289 -0
- package/ccw/dist/commands/loop.js.map +1 -0
- package/ccw/dist/core/dashboard-generator.d.ts.map +1 -1
- package/ccw/dist/core/dashboard-generator.js +4 -1
- package/ccw/dist/core/dashboard-generator.js.map +1 -1
- package/ccw/dist/core/routes/claude-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/claude-routes.js +5 -3
- package/ccw/dist/core/routes/claude-routes.js.map +1 -1
- package/ccw/dist/core/routes/cli-routes.d.ts +6 -0
- package/ccw/dist/core/routes/cli-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/cli-routes.js +42 -13
- package/ccw/dist/core/routes/cli-routes.js.map +1 -1
- package/ccw/dist/core/routes/cli-settings-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/cli-settings-routes.js +44 -0
- package/ccw/dist/core/routes/cli-settings-routes.js.map +1 -1
- package/ccw/dist/core/routes/codexlens/semantic-handlers.d.ts.map +1 -1
- package/ccw/dist/core/routes/codexlens/semantic-handlers.js +3 -2
- package/ccw/dist/core/routes/codexlens/semantic-handlers.js.map +1 -1
- package/ccw/dist/core/routes/core-memory-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/core-memory-routes.js +4 -2
- package/ccw/dist/core/routes/core-memory-routes.js.map +1 -1
- package/ccw/dist/core/routes/files-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/files-routes.js +4 -2
- package/ccw/dist/core/routes/files-routes.js.map +1 -1
- package/ccw/dist/core/routes/hooks-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/hooks-routes.js +3 -0
- package/ccw/dist/core/routes/hooks-routes.js.map +1 -1
- package/ccw/dist/core/routes/loop-routes.d.ts +24 -0
- package/ccw/dist/core/routes/loop-routes.d.ts.map +1 -0
- package/ccw/dist/core/routes/loop-routes.js +334 -0
- package/ccw/dist/core/routes/loop-routes.js.map +1 -0
- package/ccw/dist/core/routes/loop-v2-routes.d.ts +35 -0
- package/ccw/dist/core/routes/loop-v2-routes.d.ts.map +1 -0
- package/ccw/dist/core/routes/loop-v2-routes.js +1208 -0
- package/ccw/dist/core/routes/loop-v2-routes.js.map +1 -0
- package/ccw/dist/core/routes/memory-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/memory-routes.js +2 -1
- package/ccw/dist/core/routes/memory-routes.js.map +1 -1
- package/ccw/dist/core/routes/task-routes.d.ts +12 -0
- package/ccw/dist/core/routes/task-routes.d.ts.map +1 -0
- package/ccw/dist/core/routes/task-routes.js +321 -0
- package/ccw/dist/core/routes/task-routes.js.map +1 -0
- package/ccw/dist/core/routes/test-loop-routes.d.ts +11 -0
- package/ccw/dist/core/routes/test-loop-routes.d.ts.map +1 -0
- package/ccw/dist/core/routes/test-loop-routes.js +298 -0
- package/ccw/dist/core/routes/test-loop-routes.js.map +1 -0
- package/ccw/dist/core/server.d.ts.map +1 -1
- package/ccw/dist/core/server.js +43 -3
- package/ccw/dist/core/server.js.map +1 -1
- package/ccw/dist/core/websocket.d.ts +59 -0
- package/ccw/dist/core/websocket.d.ts.map +1 -1
- package/ccw/dist/core/websocket.js +34 -0
- package/ccw/dist/core/websocket.js.map +1 -1
- package/ccw/dist/tools/claude-cli-tools.d.ts +40 -0
- package/ccw/dist/tools/claude-cli-tools.d.ts.map +1 -1
- package/ccw/dist/tools/claude-cli-tools.js +119 -0
- package/ccw/dist/tools/claude-cli-tools.js.map +1 -1
- package/ccw/dist/tools/codex-lens.d.ts.map +1 -1
- package/ccw/dist/tools/codex-lens.js +66 -47
- package/ccw/dist/tools/codex-lens.js.map +1 -1
- package/ccw/dist/tools/loop-manager.d.ts +84 -0
- package/ccw/dist/tools/loop-manager.d.ts.map +1 -0
- package/ccw/dist/tools/loop-manager.js +425 -0
- package/ccw/dist/tools/loop-manager.js.map +1 -0
- package/ccw/dist/tools/loop-state-manager.d.ts +47 -0
- package/ccw/dist/tools/loop-state-manager.d.ts.map +1 -0
- package/ccw/dist/tools/loop-state-manager.js +149 -0
- package/ccw/dist/tools/loop-state-manager.js.map +1 -0
- package/ccw/dist/tools/loop-task-manager.d.ts +138 -0
- package/ccw/dist/tools/loop-task-manager.d.ts.map +1 -0
- package/ccw/dist/tools/loop-task-manager.js +270 -0
- package/ccw/dist/tools/loop-task-manager.js.map +1 -0
- package/ccw/dist/types/index.d.ts +1 -0
- package/ccw/dist/types/index.d.ts.map +1 -1
- package/ccw/dist/types/index.js +1 -0
- package/ccw/dist/types/index.js.map +1 -1
- package/ccw/dist/types/loop.d.ts +257 -0
- package/ccw/dist/types/loop.d.ts.map +1 -0
- package/ccw/dist/types/loop.js +17 -0
- package/ccw/dist/types/loop.js.map +1 -0
- package/ccw/scripts/IMPLEMENTATION-SUMMARY.md +2 -2
- package/ccw/scripts/QUICK-REFERENCE.md +1 -1
- package/ccw/scripts/README-memory-embedder.md +1 -1
- package/ccw/scripts/memory_embedder.py +1 -1
- package/ccw/src/cli.ts +9 -1
- package/ccw/src/commands/cli.ts +16 -4
- package/ccw/src/commands/issue.ts +41 -5
- package/ccw/src/commands/loop.ts +344 -0
- package/ccw/src/core/dashboard-generator.ts +4 -1
- package/ccw/src/core/routes/claude-routes.ts +5 -3
- package/ccw/src/core/routes/cli-routes.ts +47 -15
- package/ccw/src/core/routes/cli-settings-routes.ts +47 -0
- package/ccw/src/core/routes/codexlens/semantic-handlers.ts +3 -2
- package/ccw/src/core/routes/core-memory-routes.ts +4 -2
- package/ccw/src/core/routes/files-routes.ts +4 -2
- package/ccw/src/core/routes/hooks-routes.ts +3 -0
- package/ccw/src/core/routes/loop-routes.ts +386 -0
- package/ccw/src/core/routes/loop-v2-routes.ts +1412 -0
- package/ccw/src/core/routes/memory-routes.ts +2 -1
- package/ccw/src/core/routes/task-routes.ts +361 -0
- package/ccw/src/core/routes/test-loop-routes.ts +312 -0
- package/ccw/src/core/server.ts +44 -3
- package/ccw/src/core/websocket.ts +104 -0
- package/ccw/src/templates/dashboard-css/12-cli-legacy.css +56 -0
- package/ccw/src/templates/dashboard-css/32-issue-manager.css +160 -0
- package/ccw/src/templates/dashboard-css/33-cli-stream-viewer.css +57 -2
- package/ccw/src/templates/dashboard-css/36-loop-monitor.css +1896 -0
- package/ccw/src/templates/dashboard-css/36-loop-monitor.css.backup +1877 -0
- package/ccw/src/templates/dashboard-js/components/cli-status.js +64 -3
- package/ccw/src/templates/dashboard-js/components/cli-stream-viewer.js +251 -110
- package/ccw/src/templates/dashboard-js/components/navigation.js +10 -0
- package/ccw/src/templates/dashboard-js/components/notifications.js +16 -0
- package/ccw/src/templates/dashboard-js/i18n.js +475 -1
- package/ccw/src/templates/dashboard-js/views/cli-manager.js +3 -2
- package/ccw/src/templates/dashboard-js/views/issue-manager.js +159 -0
- package/ccw/src/templates/dashboard-js/views/loop-monitor.js +3244 -0
- package/ccw/src/templates/dashboard.html +20 -2
- package/ccw/src/tools/claude-cli-tools.ts +143 -0
- package/ccw/src/tools/codex-lens.ts +71 -44
- package/ccw/src/tools/loop-manager.ts +519 -0
- package/ccw/src/tools/loop-state-manager.ts +173 -0
- package/ccw/src/tools/loop-task-manager.ts +380 -0
- package/ccw/src/types/index.ts +1 -0
- package/ccw/src/types/loop.ts +316 -0
- package/package.json +1 -1
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Loop Task Manager
|
|
3
|
+
* CCW Loop System - JSONL task persistence layer for v2 loops
|
|
4
|
+
* Reference: .workflow/.scratchpad/loop-system-complete-design-20260121.md section 4.2
|
|
5
|
+
*
|
|
6
|
+
* Storage format: .workflow/.loop/{loopId}/tasks.jsonl
|
|
7
|
+
* JSONL format: one JSON object per line for efficient append-only operations
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Loop Task - simplified task definition for v2 loops
|
|
11
|
+
*/
|
|
12
|
+
export interface LoopTask {
|
|
13
|
+
/** Unique task identifier */
|
|
14
|
+
task_id: string;
|
|
15
|
+
/** Task description (what to do) */
|
|
16
|
+
description: string;
|
|
17
|
+
/** CLI tool to use */
|
|
18
|
+
tool: 'bash' | 'gemini' | 'codex' | 'qwen' | 'claude';
|
|
19
|
+
/** Execution mode */
|
|
20
|
+
mode: 'analysis' | 'write' | 'review';
|
|
21
|
+
/** Prompt template with variable replacement */
|
|
22
|
+
prompt_template: string;
|
|
23
|
+
/** Display order (for drag-drop reordering) */
|
|
24
|
+
order: number;
|
|
25
|
+
/** Creation timestamp */
|
|
26
|
+
created_at: string;
|
|
27
|
+
/** Last update timestamp */
|
|
28
|
+
updated_at: string;
|
|
29
|
+
/** Optional: custom bash command */
|
|
30
|
+
command?: string;
|
|
31
|
+
/** Optional: step failure behavior */
|
|
32
|
+
on_error?: 'continue' | 'pause' | 'fail_fast';
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Task create request
|
|
36
|
+
*/
|
|
37
|
+
export interface TaskCreateRequest {
|
|
38
|
+
description: string;
|
|
39
|
+
tool: LoopTask['tool'];
|
|
40
|
+
mode: LoopTask['mode'];
|
|
41
|
+
prompt_template: string;
|
|
42
|
+
command?: string;
|
|
43
|
+
on_error?: LoopTask['on_error'];
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Task update request
|
|
47
|
+
*/
|
|
48
|
+
export interface TaskUpdateRequest {
|
|
49
|
+
description?: string;
|
|
50
|
+
tool?: LoopTask['tool'];
|
|
51
|
+
mode?: LoopTask['mode'];
|
|
52
|
+
prompt_template?: string;
|
|
53
|
+
command?: string;
|
|
54
|
+
on_error?: LoopTask['on_error'];
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Task reorder request
|
|
58
|
+
*/
|
|
59
|
+
export interface TaskReorderRequest {
|
|
60
|
+
ordered_task_ids: string[];
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Task Storage Manager
|
|
64
|
+
* Handles JSONL persistence for loop tasks
|
|
65
|
+
*/
|
|
66
|
+
export declare class TaskStorageManager {
|
|
67
|
+
private baseDir;
|
|
68
|
+
constructor(workflowDir: string);
|
|
69
|
+
/**
|
|
70
|
+
* Add a new task to the loop
|
|
71
|
+
*/
|
|
72
|
+
addTask(loopId: string, request: TaskCreateRequest): Promise<LoopTask>;
|
|
73
|
+
/**
|
|
74
|
+
* Get all tasks for a loop
|
|
75
|
+
*/
|
|
76
|
+
getTasks(loopId: string): Promise<LoopTask[]>;
|
|
77
|
+
/**
|
|
78
|
+
* Get single task by ID
|
|
79
|
+
*/
|
|
80
|
+
getTask(loopId: string, taskId: string): Promise<LoopTask | null>;
|
|
81
|
+
/**
|
|
82
|
+
* Update existing task
|
|
83
|
+
*/
|
|
84
|
+
updateTask(loopId: string, taskId: string, updates: TaskUpdateRequest): Promise<LoopTask | null>;
|
|
85
|
+
/**
|
|
86
|
+
* Delete task and reorder remaining tasks
|
|
87
|
+
*/
|
|
88
|
+
deleteTask(loopId: string, taskId: string): Promise<boolean>;
|
|
89
|
+
/**
|
|
90
|
+
* Reorder tasks based on provided task ID sequence
|
|
91
|
+
*/
|
|
92
|
+
reorderTasks(loopId: string, request: TaskReorderRequest): Promise<LoopTask[]>;
|
|
93
|
+
/**
|
|
94
|
+
* Delete all tasks for a loop
|
|
95
|
+
*/
|
|
96
|
+
deleteAllTasks(loopId: string): Promise<void>;
|
|
97
|
+
/**
|
|
98
|
+
* Read tasks with recovery from backup
|
|
99
|
+
*/
|
|
100
|
+
readTasksWithRecovery(loopId: string): Promise<LoopTask[]>;
|
|
101
|
+
/**
|
|
102
|
+
* Get tasks file path
|
|
103
|
+
*/
|
|
104
|
+
getTasksPath(loopId: string): string;
|
|
105
|
+
/**
|
|
106
|
+
* Read tasks from JSONL file
|
|
107
|
+
*/
|
|
108
|
+
private readTasks;
|
|
109
|
+
/**
|
|
110
|
+
* Parse JSONL content into tasks array
|
|
111
|
+
*/
|
|
112
|
+
private parseTasksJsonl;
|
|
113
|
+
/**
|
|
114
|
+
* Write tasks array to JSONL file
|
|
115
|
+
*/
|
|
116
|
+
private writeTasks;
|
|
117
|
+
/**
|
|
118
|
+
* Append single task to JSONL file
|
|
119
|
+
*/
|
|
120
|
+
private appendTask;
|
|
121
|
+
/**
|
|
122
|
+
* Ensure loop directory exists
|
|
123
|
+
*/
|
|
124
|
+
private ensureLoopDir;
|
|
125
|
+
/**
|
|
126
|
+
* Generate unique task ID
|
|
127
|
+
*/
|
|
128
|
+
private generateTaskId;
|
|
129
|
+
/**
|
|
130
|
+
* Sanitize loop ID for filesystem usage
|
|
131
|
+
*/
|
|
132
|
+
private sanitizeLoopId;
|
|
133
|
+
/**
|
|
134
|
+
* Reorder tasks array by updating order indices sequentially
|
|
135
|
+
*/
|
|
136
|
+
private reorderTasksByOrder;
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=loop-task-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop-task-manager.d.ts","sourceRoot":"","sources":["../../src/tools/loop-task-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Loop Task Manager
|
|
3
|
+
* CCW Loop System - JSONL task persistence layer for v2 loops
|
|
4
|
+
* Reference: .workflow/.scratchpad/loop-system-complete-design-20260121.md section 4.2
|
|
5
|
+
*
|
|
6
|
+
* Storage format: .workflow/.loop/{loopId}/tasks.jsonl
|
|
7
|
+
* JSONL format: one JSON object per line for efficient append-only operations
|
|
8
|
+
*/
|
|
9
|
+
import { readFile, writeFile, mkdir, copyFile } from 'fs/promises';
|
|
10
|
+
import { join } from 'path';
|
|
11
|
+
import { existsSync } from 'fs';
|
|
12
|
+
import { randomBytes } from 'crypto';
|
|
13
|
+
/**
|
|
14
|
+
* Task Storage Manager
|
|
15
|
+
* Handles JSONL persistence for loop tasks
|
|
16
|
+
*/
|
|
17
|
+
export class TaskStorageManager {
|
|
18
|
+
baseDir;
|
|
19
|
+
constructor(workflowDir) {
|
|
20
|
+
// Task files stored in .workflow/.loop/{loopId}/
|
|
21
|
+
this.baseDir = join(workflowDir, '.workflow', '.loop');
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Add a new task to the loop
|
|
25
|
+
*/
|
|
26
|
+
async addTask(loopId, request) {
|
|
27
|
+
await this.ensureLoopDir(loopId);
|
|
28
|
+
// Read existing tasks to determine next order
|
|
29
|
+
const existingTasks = await this.readTasks(loopId);
|
|
30
|
+
const nextOrder = existingTasks.length > 0
|
|
31
|
+
? Math.max(...existingTasks.map(t => t.order)) + 1
|
|
32
|
+
: 0;
|
|
33
|
+
const task = {
|
|
34
|
+
task_id: this.generateTaskId(),
|
|
35
|
+
description: request.description,
|
|
36
|
+
tool: request.tool,
|
|
37
|
+
mode: request.mode,
|
|
38
|
+
prompt_template: request.prompt_template,
|
|
39
|
+
order: nextOrder,
|
|
40
|
+
created_at: new Date().toISOString(),
|
|
41
|
+
updated_at: new Date().toISOString(),
|
|
42
|
+
command: request.command,
|
|
43
|
+
on_error: request.on_error
|
|
44
|
+
};
|
|
45
|
+
await this.appendTask(loopId, task);
|
|
46
|
+
return task;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Get all tasks for a loop
|
|
50
|
+
*/
|
|
51
|
+
async getTasks(loopId) {
|
|
52
|
+
return this.readTasks(loopId);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Get single task by ID
|
|
56
|
+
*/
|
|
57
|
+
async getTask(loopId, taskId) {
|
|
58
|
+
const tasks = await this.readTasks(loopId);
|
|
59
|
+
return tasks.find(t => t.task_id === taskId) || null;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Update existing task
|
|
63
|
+
*/
|
|
64
|
+
async updateTask(loopId, taskId, updates) {
|
|
65
|
+
const tasks = await this.readTasks(loopId);
|
|
66
|
+
const taskIndex = tasks.findIndex(t => t.task_id === taskId);
|
|
67
|
+
if (taskIndex === -1) {
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
const task = tasks[taskIndex];
|
|
71
|
+
const updatedTask = {
|
|
72
|
+
...task,
|
|
73
|
+
description: updates.description ?? task.description,
|
|
74
|
+
tool: updates.tool ?? task.tool,
|
|
75
|
+
mode: updates.mode ?? task.mode,
|
|
76
|
+
prompt_template: updates.prompt_template ?? task.prompt_template,
|
|
77
|
+
command: updates.command ?? task.command,
|
|
78
|
+
on_error: updates.on_error ?? task.on_error,
|
|
79
|
+
updated_at: new Date().toISOString()
|
|
80
|
+
};
|
|
81
|
+
tasks[taskIndex] = updatedTask;
|
|
82
|
+
await this.writeTasks(loopId, tasks);
|
|
83
|
+
return updatedTask;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Delete task and reorder remaining tasks
|
|
87
|
+
*/
|
|
88
|
+
async deleteTask(loopId, taskId) {
|
|
89
|
+
const tasks = await this.readTasks(loopId);
|
|
90
|
+
const filteredTasks = tasks.filter(t => t.task_id !== taskId);
|
|
91
|
+
if (filteredTasks.length === tasks.length) {
|
|
92
|
+
return false; // Task not found
|
|
93
|
+
}
|
|
94
|
+
// Reorder remaining tasks
|
|
95
|
+
const reorderedTasks = this.reorderTasksByOrder(filteredTasks);
|
|
96
|
+
await this.writeTasks(loopId, reorderedTasks);
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Reorder tasks based on provided task ID sequence
|
|
101
|
+
*/
|
|
102
|
+
async reorderTasks(loopId, request) {
|
|
103
|
+
const tasks = await this.readTasks(loopId);
|
|
104
|
+
const taskMap = new Map(tasks.map(t => [t.task_id, t]));
|
|
105
|
+
// Verify all provided task IDs exist
|
|
106
|
+
for (const taskId of request.ordered_task_ids) {
|
|
107
|
+
if (!taskMap.has(taskId)) {
|
|
108
|
+
throw new Error(`Task not found: ${taskId}`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
// Reorder tasks and update order indices
|
|
112
|
+
const reorderedTasks = [];
|
|
113
|
+
for (let i = 0; i < request.ordered_task_ids.length; i++) {
|
|
114
|
+
const task = taskMap.get(request.ordered_task_ids[i]);
|
|
115
|
+
reorderedTasks.push({
|
|
116
|
+
...task,
|
|
117
|
+
order: i,
|
|
118
|
+
updated_at: new Date().toISOString()
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
// Add any tasks not in the reorder list (shouldn't happen normally)
|
|
122
|
+
for (const task of tasks) {
|
|
123
|
+
if (!request.ordered_task_ids.includes(task.task_id)) {
|
|
124
|
+
reorderedTasks.push({
|
|
125
|
+
...task,
|
|
126
|
+
order: reorderedTasks.length,
|
|
127
|
+
updated_at: new Date().toISOString()
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
await this.writeTasks(loopId, reorderedTasks);
|
|
132
|
+
return reorderedTasks;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Delete all tasks for a loop
|
|
136
|
+
*/
|
|
137
|
+
async deleteAllTasks(loopId) {
|
|
138
|
+
const tasksPath = this.getTasksPath(loopId);
|
|
139
|
+
if (existsSync(tasksPath)) {
|
|
140
|
+
const { unlink } = await import('fs/promises');
|
|
141
|
+
await unlink(tasksPath).catch(() => { });
|
|
142
|
+
}
|
|
143
|
+
// Also delete backup
|
|
144
|
+
const backupPath = `${tasksPath}.backup`;
|
|
145
|
+
if (existsSync(backupPath)) {
|
|
146
|
+
const { unlink } = await import('fs/promises');
|
|
147
|
+
await unlink(backupPath).catch(() => { });
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Read tasks with recovery from backup
|
|
152
|
+
*/
|
|
153
|
+
async readTasksWithRecovery(loopId) {
|
|
154
|
+
try {
|
|
155
|
+
return await this.readTasks(loopId);
|
|
156
|
+
}
|
|
157
|
+
catch (error) {
|
|
158
|
+
console.warn(`Tasks file corrupted, attempting recovery for ${loopId}...`);
|
|
159
|
+
const backupPath = `${this.getTasksPath(loopId)}.backup`;
|
|
160
|
+
if (existsSync(backupPath)) {
|
|
161
|
+
const content = await readFile(backupPath, 'utf-8');
|
|
162
|
+
const tasks = this.parseTasksJsonl(content);
|
|
163
|
+
// Restore from backup
|
|
164
|
+
await this.writeTasks(loopId, tasks);
|
|
165
|
+
return tasks;
|
|
166
|
+
}
|
|
167
|
+
throw error;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Get tasks file path
|
|
172
|
+
*/
|
|
173
|
+
getTasksPath(loopId) {
|
|
174
|
+
return join(this.baseDir, this.sanitizeLoopId(loopId), 'tasks.jsonl');
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Read tasks from JSONL file
|
|
178
|
+
*/
|
|
179
|
+
async readTasks(loopId) {
|
|
180
|
+
const filePath = this.getTasksPath(loopId);
|
|
181
|
+
if (!existsSync(filePath)) {
|
|
182
|
+
return [];
|
|
183
|
+
}
|
|
184
|
+
const content = await readFile(filePath, 'utf-8');
|
|
185
|
+
return this.parseTasksJsonl(content);
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Parse JSONL content into tasks array
|
|
189
|
+
*/
|
|
190
|
+
parseTasksJsonl(content) {
|
|
191
|
+
const tasks = [];
|
|
192
|
+
const lines = content.split('\n').filter(line => line.trim().length > 0);
|
|
193
|
+
for (const line of lines) {
|
|
194
|
+
try {
|
|
195
|
+
const task = JSON.parse(line);
|
|
196
|
+
tasks.push(task);
|
|
197
|
+
}
|
|
198
|
+
catch (error) {
|
|
199
|
+
console.error('Failed to parse task line:', error);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
return tasks;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Write tasks array to JSONL file
|
|
206
|
+
*/
|
|
207
|
+
async writeTasks(loopId, tasks) {
|
|
208
|
+
await this.ensureLoopDir(loopId);
|
|
209
|
+
const filePath = this.getTasksPath(loopId);
|
|
210
|
+
// Create backup if file exists
|
|
211
|
+
if (existsSync(filePath)) {
|
|
212
|
+
const backupPath = `${filePath}.backup`;
|
|
213
|
+
await copyFile(filePath, backupPath).catch(() => { });
|
|
214
|
+
}
|
|
215
|
+
// Write each task as a JSON line
|
|
216
|
+
const jsonlContent = tasks.map(t => JSON.stringify(t)).join('\n');
|
|
217
|
+
await writeFile(filePath, jsonlContent, 'utf-8');
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Append single task to JSONL file
|
|
221
|
+
*/
|
|
222
|
+
async appendTask(loopId, task) {
|
|
223
|
+
await this.ensureLoopDir(loopId);
|
|
224
|
+
const filePath = this.getTasksPath(loopId);
|
|
225
|
+
// Create backup if file exists
|
|
226
|
+
if (existsSync(filePath)) {
|
|
227
|
+
const backupPath = `${filePath}.backup`;
|
|
228
|
+
await copyFile(filePath, backupPath).catch(() => { });
|
|
229
|
+
}
|
|
230
|
+
// Append task as new line
|
|
231
|
+
const line = JSON.stringify(task) + '\n';
|
|
232
|
+
await writeFile(filePath, line, { flag: 'a' });
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Ensure loop directory exists
|
|
236
|
+
*/
|
|
237
|
+
async ensureLoopDir(loopId) {
|
|
238
|
+
const dirPath = join(this.baseDir, this.sanitizeLoopId(loopId));
|
|
239
|
+
if (!existsSync(dirPath)) {
|
|
240
|
+
await mkdir(dirPath, { recursive: true });
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Generate unique task ID
|
|
245
|
+
*/
|
|
246
|
+
generateTaskId() {
|
|
247
|
+
const timestamp = Date.now();
|
|
248
|
+
const random = randomBytes(4).toString('hex');
|
|
249
|
+
return `task-${timestamp}-${random}`;
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Sanitize loop ID for filesystem usage
|
|
253
|
+
*/
|
|
254
|
+
sanitizeLoopId(loopId) {
|
|
255
|
+
// Remove any path traversal characters
|
|
256
|
+
return loopId.replace(/[\/\\]/g, '-').replace(/\.\./g, '').replace(/^\./, '');
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Reorder tasks array by updating order indices sequentially
|
|
260
|
+
*/
|
|
261
|
+
reorderTasksByOrder(tasks) {
|
|
262
|
+
return tasks
|
|
263
|
+
.sort((a, b) => a.order - b.order)
|
|
264
|
+
.map((task, index) => ({
|
|
265
|
+
...task,
|
|
266
|
+
order: index
|
|
267
|
+
}));
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
//# sourceMappingURL=loop-task-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop-task-manager.js","sourceRoot":"","sources":["../../src/tools/loop-task-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC"}
|
package/ccw/dist/types/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC"}
|