takt 0.2.1 → 0.2.3
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/README.md +67 -38
- package/dist/cli.d.ts +4 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +27 -17
- package/dist/cli.js.map +1 -1
- package/dist/commands/addTask.d.ts.map +1 -1
- package/dist/commands/addTask.js +6 -5
- package/dist/commands/addTask.js.map +1 -1
- package/dist/commands/help.js +3 -3
- package/dist/commands/index.d.ts +1 -1
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +1 -1
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/listTasks.d.ts +45 -0
- package/dist/commands/listTasks.d.ts.map +1 -0
- package/dist/commands/listTasks.js +353 -0
- package/dist/commands/listTasks.js.map +1 -0
- package/dist/commands/taskExecution.d.ts +7 -5
- package/dist/commands/taskExecution.d.ts.map +1 -1
- package/dist/commands/taskExecution.js +26 -17
- package/dist/commands/taskExecution.js.map +1 -1
- package/dist/commands/workflowExecution.d.ts.map +1 -1
- package/dist/commands/workflowExecution.js +11 -10
- package/dist/commands/workflowExecution.js.map +1 -1
- package/dist/config/globalConfig.d.ts.map +1 -1
- package/dist/config/globalConfig.js +4 -0
- package/dist/config/globalConfig.js.map +1 -1
- package/dist/config/paths.d.ts +1 -1
- package/dist/config/paths.d.ts.map +1 -1
- package/dist/config/paths.js +3 -1
- package/dist/config/paths.js.map +1 -1
- package/dist/config/sessionStore.d.ts +10 -0
- package/dist/config/sessionStore.d.ts.map +1 -1
- package/dist/config/sessionStore.js +54 -0
- package/dist/config/sessionStore.js.map +1 -1
- package/dist/models/schemas.d.ts +1 -0
- package/dist/models/schemas.d.ts.map +1 -1
- package/dist/models/schemas.js +2 -0
- package/dist/models/schemas.js.map +1 -1
- package/dist/models/types.d.ts +2 -0
- package/dist/models/types.d.ts.map +1 -1
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js +6 -3
- package/dist/resources/index.js.map +1 -1
- package/dist/task/autoCommit.d.ts +9 -6
- package/dist/task/autoCommit.d.ts.map +1 -1
- package/dist/task/autoCommit.js +21 -12
- package/dist/task/autoCommit.js.map +1 -1
- package/dist/task/branchList.d.ts +55 -0
- package/dist/task/branchList.d.ts.map +1 -0
- package/dist/task/branchList.js +131 -0
- package/dist/task/branchList.js.map +1 -0
- package/dist/task/clone.d.ts +53 -0
- package/dist/task/clone.d.ts.map +1 -0
- package/dist/task/clone.js +181 -0
- package/dist/task/clone.js.map +1 -0
- package/dist/task/index.d.ts +3 -2
- package/dist/task/index.d.ts.map +1 -1
- package/dist/task/index.js +3 -2
- package/dist/task/index.js.map +1 -1
- package/dist/task/runner.d.ts +14 -0
- package/dist/task/runner.d.ts.map +1 -1
- package/dist/task/runner.js +30 -7
- package/dist/task/runner.js.map +1 -1
- package/dist/task/schema.d.ts +4 -4
- package/dist/task/schema.js +4 -4
- package/dist/task/summarize.d.ts +22 -0
- package/dist/task/summarize.d.ts.map +1 -0
- package/dist/task/summarize.js +83 -0
- package/dist/task/summarize.js.map +1 -0
- package/dist/utils/updateNotifier.d.ts +6 -0
- package/dist/utils/updateNotifier.d.ts.map +1 -0
- package/dist/utils/updateNotifier.js +17 -0
- package/dist/utils/updateNotifier.js.map +1 -0
- package/dist/workflow/engine.d.ts +1 -1
- package/dist/workflow/engine.d.ts.map +1 -1
- package/dist/workflow/engine.js +10 -2
- package/dist/workflow/engine.js.map +1 -1
- package/dist/workflow/instruction-builder.d.ts +8 -7
- package/dist/workflow/instruction-builder.d.ts.map +1 -1
- package/dist/workflow/instruction-builder.js +39 -24
- package/dist/workflow/instruction-builder.js.map +1 -1
- package/package.json +4 -1
- package/resources/global/en/agents/default/{ai-reviewer.md → ai-antipattern-reviewer.md} +22 -1
- package/resources/global/en/agents/default/coder.md +3 -3
- package/resources/global/en/agents/default/planner.md +14 -1
- package/resources/global/en/workflows/default.yaml +6 -51
- package/resources/global/en/workflows/{expert-review.yaml → expert-cqrs.yaml} +14 -49
- package/resources/global/en/workflows/expert.yaml +1106 -0
- package/resources/global/en/workflows/magi.yaml +0 -9
- package/resources/global/en/workflows/research.yaml +0 -9
- package/resources/global/en/workflows/simple.yaml +5 -26
- package/resources/global/ja/agents/default/{ai-reviewer.md → ai-antipattern-reviewer.md} +22 -1
- package/resources/global/ja/agents/default/coder.md +3 -3
- package/resources/global/ja/agents/default/planner.md +14 -1
- package/resources/global/ja/workflows/default.yaml +6 -51
- package/resources/global/ja/workflows/{expert-review.yaml → expert-cqrs.yaml} +15 -55
- package/resources/global/ja/workflows/expert.yaml +1106 -0
- package/resources/global/ja/workflows/magi.yaml +0 -9
- package/resources/global/ja/workflows/research.yaml +0 -9
- package/resources/global/ja/workflows/simple.yaml +5 -26
- package/resources/project/dotgitignore +10 -0
- package/resources/project/tasks/TASK-FORMAT +37 -0
- package/dist/commands/reviewTasks.d.ts +0 -32
- package/dist/commands/reviewTasks.d.ts.map +0 -1
- package/dist/commands/reviewTasks.js +0 -198
- package/dist/commands/reviewTasks.js.map +0 -1
- package/dist/task/worktree.d.ts +0 -70
- package/dist/task/worktree.d.ts.map +0 -1
- package/dist/task/worktree.js +0 -221
- package/dist/task/worktree.js.map +0 -1
- /package/resources/global/en/agents/{expert-review → expert}/frontend-reviewer.md +0 -0
- /package/resources/global/en/agents/{expert-review → expert}/qa-reviewer.md +0 -0
- /package/resources/global/en/agents/{expert-review → expert}/security-reviewer.md +0 -0
- /package/resources/global/en/agents/{expert-review → expert}/supervisor.md +0 -0
- /package/resources/global/en/agents/{expert-review → expert-cqrs}/cqrs-es-reviewer.md +0 -0
- /package/resources/global/ja/agents/{expert-review → expert}/frontend-reviewer.md +0 -0
- /package/resources/global/ja/agents/{expert-review → expert}/qa-reviewer.md +0 -0
- /package/resources/global/ja/agents/{expert-review → expert}/security-reviewer.md +0 -0
- /package/resources/global/ja/agents/{expert-review → expert}/supervisor.md +0 -0
- /package/resources/global/ja/agents/{expert-review → expert-cqrs}/cqrs-es-reviewer.md +0 -0
package/dist/task/worktree.js
DELETED
|
@@ -1,221 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Git worktree management
|
|
3
|
-
*
|
|
4
|
-
* Creates and removes git worktrees for task isolation.
|
|
5
|
-
*/
|
|
6
|
-
import * as fs from 'node:fs';
|
|
7
|
-
import * as path from 'node:path';
|
|
8
|
-
import { execFileSync } from 'node:child_process';
|
|
9
|
-
import { createLogger } from '../utils/debug.js';
|
|
10
|
-
import { slugify } from '../utils/slug.js';
|
|
11
|
-
import { isPathSafe } from '../config/paths.js';
|
|
12
|
-
const log = createLogger('worktree');
|
|
13
|
-
/**
|
|
14
|
-
* Generate a timestamp string for paths/branches
|
|
15
|
-
*/
|
|
16
|
-
function generateTimestamp() {
|
|
17
|
-
return new Date().toISOString().replace(/[:.]/g, '').slice(0, 15);
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Resolve the worktree path based on options.
|
|
21
|
-
* Validates that custom paths stay within the project directory.
|
|
22
|
-
*
|
|
23
|
-
* @throws Error if a custom path escapes projectDir (path traversal)
|
|
24
|
-
*/
|
|
25
|
-
function resolveWorktreePath(projectDir, options) {
|
|
26
|
-
if (typeof options.worktree === 'string') {
|
|
27
|
-
const resolved = path.isAbsolute(options.worktree)
|
|
28
|
-
? options.worktree
|
|
29
|
-
: path.resolve(projectDir, options.worktree);
|
|
30
|
-
if (!isPathSafe(projectDir, resolved)) {
|
|
31
|
-
throw new Error(`Worktree path escapes project directory: ${options.worktree}`);
|
|
32
|
-
}
|
|
33
|
-
return resolved;
|
|
34
|
-
}
|
|
35
|
-
// worktree: true → .takt/worktrees/{timestamp}-{task-slug}/
|
|
36
|
-
const timestamp = generateTimestamp();
|
|
37
|
-
const slug = slugify(options.taskSlug);
|
|
38
|
-
const dirName = slug ? `${timestamp}-${slug}` : timestamp;
|
|
39
|
-
return path.join(projectDir, '.takt', 'worktrees', dirName);
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Resolve the branch name based on options
|
|
43
|
-
*/
|
|
44
|
-
function resolveBranchName(options) {
|
|
45
|
-
if (options.branch) {
|
|
46
|
-
return options.branch;
|
|
47
|
-
}
|
|
48
|
-
// Auto-generate: takt/{timestamp}-{task-slug}
|
|
49
|
-
const timestamp = generateTimestamp();
|
|
50
|
-
const slug = slugify(options.taskSlug);
|
|
51
|
-
return slug ? `takt/${timestamp}-${slug}` : `takt/${timestamp}`;
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Check if a git branch exists
|
|
55
|
-
*/
|
|
56
|
-
function branchExists(projectDir, branch) {
|
|
57
|
-
try {
|
|
58
|
-
execFileSync('git', ['rev-parse', '--verify', branch], {
|
|
59
|
-
cwd: projectDir,
|
|
60
|
-
stdio: 'pipe',
|
|
61
|
-
});
|
|
62
|
-
return true;
|
|
63
|
-
}
|
|
64
|
-
catch {
|
|
65
|
-
return false;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Create a git worktree for a task
|
|
70
|
-
*
|
|
71
|
-
* @returns WorktreeResult with path and branch
|
|
72
|
-
* @throws Error if git worktree creation fails
|
|
73
|
-
*/
|
|
74
|
-
export function createWorktree(projectDir, options) {
|
|
75
|
-
const worktreePath = resolveWorktreePath(projectDir, options);
|
|
76
|
-
const branch = resolveBranchName(options);
|
|
77
|
-
log.info('Creating worktree', { path: worktreePath, branch });
|
|
78
|
-
// Ensure parent directory exists
|
|
79
|
-
fs.mkdirSync(path.dirname(worktreePath), { recursive: true });
|
|
80
|
-
// Create worktree (use execFileSync to avoid shell injection)
|
|
81
|
-
if (branchExists(projectDir, branch)) {
|
|
82
|
-
execFileSync('git', ['worktree', 'add', worktreePath, branch], {
|
|
83
|
-
cwd: projectDir,
|
|
84
|
-
stdio: 'pipe',
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
execFileSync('git', ['worktree', 'add', '-b', branch, worktreePath], {
|
|
89
|
-
cwd: projectDir,
|
|
90
|
-
stdio: 'pipe',
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
log.info('Worktree created', { path: worktreePath, branch });
|
|
94
|
-
return { path: worktreePath, branch };
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Remove a git worktree
|
|
98
|
-
*/
|
|
99
|
-
export function removeWorktree(projectDir, worktreePath) {
|
|
100
|
-
log.info('Removing worktree', { path: worktreePath });
|
|
101
|
-
try {
|
|
102
|
-
execFileSync('git', ['worktree', 'remove', worktreePath, '--force'], {
|
|
103
|
-
cwd: projectDir,
|
|
104
|
-
stdio: 'pipe',
|
|
105
|
-
});
|
|
106
|
-
log.info('Worktree removed', { path: worktreePath });
|
|
107
|
-
}
|
|
108
|
-
catch (err) {
|
|
109
|
-
log.error('Failed to remove worktree', { path: worktreePath, error: String(err) });
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
// --- Review-related types and helpers ---
|
|
113
|
-
const TAKT_BRANCH_PREFIX = 'takt/';
|
|
114
|
-
/**
|
|
115
|
-
* Detect the default branch name (main or master).
|
|
116
|
-
* Falls back to 'main'.
|
|
117
|
-
*/
|
|
118
|
-
export function detectDefaultBranch(cwd) {
|
|
119
|
-
try {
|
|
120
|
-
const ref = execFileSync('git', ['symbolic-ref', 'refs/remotes/origin/HEAD'], { cwd, encoding: 'utf-8', stdio: 'pipe' }).trim();
|
|
121
|
-
// ref is like "refs/remotes/origin/main"
|
|
122
|
-
const parts = ref.split('/');
|
|
123
|
-
return parts[parts.length - 1] || 'main';
|
|
124
|
-
}
|
|
125
|
-
catch {
|
|
126
|
-
// Fallback: check if 'main' or 'master' exists
|
|
127
|
-
try {
|
|
128
|
-
execFileSync('git', ['rev-parse', '--verify', 'main'], {
|
|
129
|
-
cwd, encoding: 'utf-8', stdio: 'pipe',
|
|
130
|
-
});
|
|
131
|
-
return 'main';
|
|
132
|
-
}
|
|
133
|
-
catch {
|
|
134
|
-
try {
|
|
135
|
-
execFileSync('git', ['rev-parse', '--verify', 'master'], {
|
|
136
|
-
cwd, encoding: 'utf-8', stdio: 'pipe',
|
|
137
|
-
});
|
|
138
|
-
return 'master';
|
|
139
|
-
}
|
|
140
|
-
catch {
|
|
141
|
-
return 'main';
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
/**
|
|
147
|
-
* Parse `git worktree list --porcelain` output into WorktreeInfo entries.
|
|
148
|
-
* Only includes worktrees on branches with the takt/ prefix.
|
|
149
|
-
*/
|
|
150
|
-
export function parseTaktWorktrees(porcelainOutput) {
|
|
151
|
-
const entries = [];
|
|
152
|
-
const blocks = porcelainOutput.trim().split('\n\n');
|
|
153
|
-
for (const block of blocks) {
|
|
154
|
-
const lines = block.split('\n');
|
|
155
|
-
let wtPath = '';
|
|
156
|
-
let commit = '';
|
|
157
|
-
let branch = '';
|
|
158
|
-
for (const line of lines) {
|
|
159
|
-
if (line.startsWith('worktree ')) {
|
|
160
|
-
wtPath = line.slice('worktree '.length);
|
|
161
|
-
}
|
|
162
|
-
else if (line.startsWith('HEAD ')) {
|
|
163
|
-
commit = line.slice('HEAD '.length);
|
|
164
|
-
}
|
|
165
|
-
else if (line.startsWith('branch ')) {
|
|
166
|
-
const ref = line.slice('branch '.length);
|
|
167
|
-
branch = ref.replace('refs/heads/', '');
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
if (wtPath && branch.startsWith(TAKT_BRANCH_PREFIX)) {
|
|
171
|
-
entries.push({ path: wtPath, branch, commit });
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
return entries;
|
|
175
|
-
}
|
|
176
|
-
/**
|
|
177
|
-
* List all takt-managed worktrees.
|
|
178
|
-
*/
|
|
179
|
-
export function listTaktWorktrees(projectDir) {
|
|
180
|
-
try {
|
|
181
|
-
const output = execFileSync('git', ['worktree', 'list', '--porcelain'], { cwd: projectDir, encoding: 'utf-8', stdio: 'pipe' });
|
|
182
|
-
return parseTaktWorktrees(output);
|
|
183
|
-
}
|
|
184
|
-
catch (err) {
|
|
185
|
-
log.error('Failed to list worktrees', { error: String(err) });
|
|
186
|
-
return [];
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
/**
|
|
190
|
-
* Get the number of files changed between the default branch and a given branch.
|
|
191
|
-
*/
|
|
192
|
-
export function getFilesChanged(cwd, defaultBranch, branch) {
|
|
193
|
-
try {
|
|
194
|
-
const output = execFileSync('git', ['diff', '--numstat', `${defaultBranch}...${branch}`], { cwd, encoding: 'utf-8', stdio: 'pipe' });
|
|
195
|
-
return output.trim().split('\n').filter(l => l.length > 0).length;
|
|
196
|
-
}
|
|
197
|
-
catch {
|
|
198
|
-
return 0;
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
/**
|
|
202
|
-
* Extract a human-readable task slug from a takt branch name.
|
|
203
|
-
* e.g. "takt/20260128T032800-fix-auth" → "fix-auth"
|
|
204
|
-
*/
|
|
205
|
-
export function extractTaskSlug(branch) {
|
|
206
|
-
const name = branch.replace(TAKT_BRANCH_PREFIX, '');
|
|
207
|
-
// Remove timestamp prefix (format: YYYYMMDDTHHmmss- or similar)
|
|
208
|
-
const withoutTimestamp = name.replace(/^\d{8,}T?\d{0,6}-?/, '');
|
|
209
|
-
return withoutTimestamp || name;
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* Build review items from worktree list, enriching with diff stats.
|
|
213
|
-
*/
|
|
214
|
-
export function buildReviewItems(projectDir, worktrees, defaultBranch) {
|
|
215
|
-
return worktrees.map(wt => ({
|
|
216
|
-
info: wt,
|
|
217
|
-
filesChanged: getFilesChanged(projectDir, defaultBranch, wt.branch),
|
|
218
|
-
taskSlug: extractTaskSlug(wt.branch),
|
|
219
|
-
}));
|
|
220
|
-
}
|
|
221
|
-
//# sourceMappingURL=worktree.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worktree.js","sourceRoot":"","sources":["../../src/task/worktree.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|