@e0ipso/ai-task-manager 1.27.2 → 1.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +31 -0
- package/dist/cli.js.map +1 -1
- package/dist/exec.d.ts +12 -0
- package/dist/exec.d.ts.map +1 -0
- package/dist/exec.js +227 -0
- package/dist/exec.js.map +1 -0
- package/package.json +2 -1
package/dist/cli.js
CHANGED
|
@@ -11,6 +11,7 @@ const commander_1 = require("commander");
|
|
|
11
11
|
const index_1 = require("./index");
|
|
12
12
|
const status_1 = require("./status");
|
|
13
13
|
const plan_1 = require("./plan");
|
|
14
|
+
const exec_1 = require("./exec");
|
|
14
15
|
const program = new commander_1.Command();
|
|
15
16
|
program.name('ai-task-manager').version('0.1.0').description('AI-powered task management CLI tool');
|
|
16
17
|
program
|
|
@@ -171,6 +172,36 @@ planCommand
|
|
|
171
172
|
}
|
|
172
173
|
}
|
|
173
174
|
});
|
|
175
|
+
// Claude-exec command: validate and execute multiple plans sequentially
|
|
176
|
+
program
|
|
177
|
+
.command('claude-exec <plan-ids>')
|
|
178
|
+
.description('Validate and execute multiple plans sequentially using Claude Code CLI')
|
|
179
|
+
.action(async (planIdsStr) => {
|
|
180
|
+
try {
|
|
181
|
+
const planIds = planIdsStr.split(',').map(id => {
|
|
182
|
+
const num = parseInt(id.trim(), 10);
|
|
183
|
+
if (isNaN(num)) {
|
|
184
|
+
console.error(`Invalid plan ID: ${id.trim()}. Must be a number.`);
|
|
185
|
+
process.exit(1);
|
|
186
|
+
}
|
|
187
|
+
return num;
|
|
188
|
+
});
|
|
189
|
+
const result = await (0, exec_1.claudeExec)(planIds);
|
|
190
|
+
if (result.success) {
|
|
191
|
+
process.exit(0);
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
if (result.message) {
|
|
195
|
+
console.error(result.message);
|
|
196
|
+
}
|
|
197
|
+
process.exit(1);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
catch (error) {
|
|
201
|
+
console.error(`Unexpected error: ${error instanceof Error ? error.message : String(error)}`);
|
|
202
|
+
process.exit(1);
|
|
203
|
+
}
|
|
204
|
+
});
|
|
174
205
|
// Error handling for unknown commands
|
|
175
206
|
program.on('command:*', async (operands) => {
|
|
176
207
|
console.error(`Unknown command: ${operands[0]}`);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;AACA;;;;;GAKG;;AAEH,yCAAoC;AACpC,mCAA+B;AAC/B,qCAAkC;AAClC,iCAA2D;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/exec.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claude Exec Command Module
|
|
3
|
+
*
|
|
4
|
+
* Validates and executes multiple plans sequentially using the Claude Agent SDK.
|
|
5
|
+
* Performs pre-flight validation and auto-remediation before execution.
|
|
6
|
+
*/
|
|
7
|
+
import { CommandResult } from './types';
|
|
8
|
+
/**
|
|
9
|
+
* Main exec command: validate and execute multiple plans sequentially
|
|
10
|
+
*/
|
|
11
|
+
export declare function claudeExec(planIds: number[]): Promise<CommandResult>;
|
|
12
|
+
//# sourceMappingURL=exec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../src/exec.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AA8FxC;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAuH1E"}
|
package/dist/exec.js
ADDED
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Claude Exec Command Module
|
|
4
|
+
*
|
|
5
|
+
* Validates and executes multiple plans sequentially using the Claude Agent SDK.
|
|
6
|
+
* Performs pre-flight validation and auto-remediation before execution.
|
|
7
|
+
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
42
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
43
|
+
};
|
|
44
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
+
exports.claudeExec = claudeExec;
|
|
46
|
+
const fs = __importStar(require("fs-extra"));
|
|
47
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
48
|
+
const plan_utils_1 = require("./plan-utils");
|
|
49
|
+
const status_1 = require("./status");
|
|
50
|
+
/**
|
|
51
|
+
* Check if a plan file contains an Execution Blueprint section
|
|
52
|
+
*/
|
|
53
|
+
async function hasBlueprintSection(filePath) {
|
|
54
|
+
const content = await fs.readFile(filePath, 'utf-8');
|
|
55
|
+
return /^## Execution Blueprint/m.test(content);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Run a Claude Code command using the Agent SDK query function
|
|
59
|
+
*/
|
|
60
|
+
async function runClaudeCommand(prompt, cwd) {
|
|
61
|
+
const oauthToken = process.env.CLAUDE_CODE_OAUTH_TOKEN;
|
|
62
|
+
if (!oauthToken) {
|
|
63
|
+
throw new Error('CLAUDE_CODE_OAUTH_TOKEN environment variable is required');
|
|
64
|
+
}
|
|
65
|
+
// Dynamic import for ESM module from CommonJS context
|
|
66
|
+
const { query } = await Promise.resolve().then(() => __importStar(require('@anthropic-ai/claude-agent-sdk')));
|
|
67
|
+
const output = [];
|
|
68
|
+
for await (const message of query({
|
|
69
|
+
prompt,
|
|
70
|
+
options: {
|
|
71
|
+
cwd,
|
|
72
|
+
permissionMode: 'bypassPermissions',
|
|
73
|
+
allowDangerouslySkipPermissions: true,
|
|
74
|
+
env: {
|
|
75
|
+
...process.env,
|
|
76
|
+
CLAUDE_CODE_OAUTH_TOKEN: oauthToken,
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
})) {
|
|
80
|
+
if (message.type === 'assistant') {
|
|
81
|
+
const assistantMsg = message;
|
|
82
|
+
if (assistantMsg.message?.content) {
|
|
83
|
+
for (const block of assistantMsg.message.content) {
|
|
84
|
+
if (block.type === 'text' && block.text) {
|
|
85
|
+
output.push(block.text);
|
|
86
|
+
process.stdout.write(chalk_1.default.gray(block.text));
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
else if (message.type === 'result') {
|
|
92
|
+
const resultMsg = message;
|
|
93
|
+
if (resultMsg.result) {
|
|
94
|
+
output.push(resultMsg.result);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return output.join('\n');
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Validate a single plan
|
|
102
|
+
*/
|
|
103
|
+
async function validatePlan(planId) {
|
|
104
|
+
const location = await (0, plan_utils_1.findPlanById)(planId);
|
|
105
|
+
if (!location) {
|
|
106
|
+
throw new Error(`Plan ${planId} not found`);
|
|
107
|
+
}
|
|
108
|
+
if (location.isArchived) {
|
|
109
|
+
throw new Error(`Plan ${planId} is archived and cannot be executed`);
|
|
110
|
+
}
|
|
111
|
+
const tasks = await (0, status_1.parseTaskFiles)(location.directoryPath);
|
|
112
|
+
const hasBlueprint = await hasBlueprintSection(location.filePath);
|
|
113
|
+
return {
|
|
114
|
+
planId,
|
|
115
|
+
location,
|
|
116
|
+
taskCount: tasks.length,
|
|
117
|
+
hasBlueprintSection: hasBlueprint,
|
|
118
|
+
needsRemediation: tasks.length === 0 || !hasBlueprint,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Main exec command: validate and execute multiple plans sequentially
|
|
123
|
+
*/
|
|
124
|
+
async function claudeExec(planIds) {
|
|
125
|
+
const cwd = process.cwd();
|
|
126
|
+
// Check for OAuth token early
|
|
127
|
+
if (!process.env.CLAUDE_CODE_OAUTH_TOKEN) {
|
|
128
|
+
return {
|
|
129
|
+
success: false,
|
|
130
|
+
message: 'CLAUDE_CODE_OAUTH_TOKEN environment variable is required. Set it before running claude-exec.',
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
if (planIds.length === 0) {
|
|
134
|
+
return {
|
|
135
|
+
success: false,
|
|
136
|
+
message: 'No plan IDs provided.',
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
console.log(chalk_1.default.bold(`\nValidating ${planIds.length} plan(s): ${planIds.join(', ')}\n`));
|
|
140
|
+
// Phase 1: Initial validation
|
|
141
|
+
const validations = [];
|
|
142
|
+
for (const planId of planIds) {
|
|
143
|
+
try {
|
|
144
|
+
const validation = await validatePlan(planId);
|
|
145
|
+
validations.push(validation);
|
|
146
|
+
const status = validation.needsRemediation
|
|
147
|
+
? chalk_1.default.yellow('needs remediation')
|
|
148
|
+
: chalk_1.default.green('ready');
|
|
149
|
+
console.log(` Plan ${planId}: ${status}`);
|
|
150
|
+
}
|
|
151
|
+
catch (error) {
|
|
152
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
153
|
+
console.error(chalk_1.default.red(` Plan ${planId}: ${msg}`));
|
|
154
|
+
return {
|
|
155
|
+
success: false,
|
|
156
|
+
message: msg,
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
// Phase 2: Auto-remediation for plans needing tasks/blueprint
|
|
161
|
+
const needsRemediation = validations.filter(v => v.needsRemediation);
|
|
162
|
+
if (needsRemediation.length > 0) {
|
|
163
|
+
console.log(chalk_1.default.bold(`\nRemediating ${needsRemediation.length} plan(s)...\n`));
|
|
164
|
+
for (const validation of needsRemediation) {
|
|
165
|
+
console.log(chalk_1.default.cyan(` Generating tasks for plan ${validation.planId}...`));
|
|
166
|
+
try {
|
|
167
|
+
await runClaudeCommand(`/tasks:generate-tasks ${validation.planId}`, cwd);
|
|
168
|
+
}
|
|
169
|
+
catch (error) {
|
|
170
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
171
|
+
return {
|
|
172
|
+
success: false,
|
|
173
|
+
message: `Failed to generate tasks for plan ${validation.planId}: ${msg}`,
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
// Re-validate after remediation
|
|
177
|
+
try {
|
|
178
|
+
const revalidation = await validatePlan(validation.planId);
|
|
179
|
+
if (revalidation.taskCount === 0) {
|
|
180
|
+
return {
|
|
181
|
+
success: false,
|
|
182
|
+
message: `Plan ${validation.planId}: still has no tasks after remediation`,
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
if (!revalidation.hasBlueprintSection) {
|
|
186
|
+
return {
|
|
187
|
+
success: false,
|
|
188
|
+
message: `Plan ${validation.planId}: still missing Execution Blueprint section after remediation`,
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
console.log(chalk_1.default.green(` Plan ${validation.planId}: remediation successful`));
|
|
192
|
+
}
|
|
193
|
+
catch (error) {
|
|
194
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
195
|
+
return {
|
|
196
|
+
success: false,
|
|
197
|
+
message: `Re-validation failed for plan ${validation.planId}: ${msg}`,
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
// Phase 3: Sequential execution
|
|
203
|
+
console.log(chalk_1.default.bold(`\nExecuting ${planIds.length} plan(s)...\n`));
|
|
204
|
+
for (let i = 0; i < planIds.length; i++) {
|
|
205
|
+
const planId = planIds[i];
|
|
206
|
+
console.log(chalk_1.default.cyan.bold(`\n[${i + 1}/${planIds.length}] Executing blueprint for plan ${planId}...\n`));
|
|
207
|
+
try {
|
|
208
|
+
await runClaudeCommand(`/tasks:execute-blueprint ${planId}`, cwd);
|
|
209
|
+
console.log(chalk_1.default.green(`\nPlan ${planId}: execution completed successfully`));
|
|
210
|
+
}
|
|
211
|
+
catch (error) {
|
|
212
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
213
|
+
return {
|
|
214
|
+
success: false,
|
|
215
|
+
message: `Execution failed for plan ${planId} (${i + 1}/${planIds.length}): ${msg}`,
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
const summary = `Successfully executed ${planIds.length} plan(s): ${planIds.join(', ')}`;
|
|
220
|
+
console.log(chalk_1.default.green.bold(`\n${summary}\n`));
|
|
221
|
+
return {
|
|
222
|
+
success: true,
|
|
223
|
+
message: summary,
|
|
224
|
+
data: { planIds },
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
//# sourceMappingURL=exec.js.map
|
package/dist/exec.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../src/exec.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@e0ipso/ai-task-manager",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.28.0",
|
|
4
4
|
"description": "Task management for AI coding assistants",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -53,6 +53,7 @@
|
|
|
53
53
|
},
|
|
54
54
|
"homepage": "https://github.com/e0ipso/ai-task-manager#readme",
|
|
55
55
|
"dependencies": {
|
|
56
|
+
"@anthropic-ai/claude-agent-sdk": "^0.2.70",
|
|
56
57
|
"chalk": "^5.6.0",
|
|
57
58
|
"commander": "^11.1.0",
|
|
58
59
|
"diff": "^5.2.0",
|