takt 0.2.2 → 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 -3
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +22 -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/{reviewTasks.js → listTasks.js} +93 -73
- 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 +21 -14
- package/dist/commands/taskExecution.js.map +1 -1
- package/dist/commands/workflowExecution.js +3 -3
- 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/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/schema.d.ts +4 -4
- package/dist/task/schema.js +4 -4
- package/dist/task/summarize.d.ts +7 -5
- package/dist/task/summarize.d.ts.map +1 -1
- package/dist/task/summarize.js +62 -29
- package/dist/task/summarize.js.map +1 -1
- 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 +2 -2
- package/dist/workflow/instruction-builder.d.ts.map +1 -1
- package/dist/workflow/instruction-builder.js +4 -8
- 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 -1
- package/resources/global/en/workflows/expert-cqrs.yaml +8 -1
- package/resources/global/en/workflows/expert.yaml +8 -1
- package/resources/global/en/workflows/simple.yaml +5 -1
- 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 -1
- package/resources/global/ja/workflows/expert-cqrs.yaml +9 -1
- package/resources/global/ja/workflows/expert.yaml +8 -1
- package/resources/global/ja/workflows/simple.yaml +5 -1
- package/resources/project/dotgitignore +10 -0
- package/resources/project/tasks/TASK-FORMAT +37 -0
- package/dist/commands/reviewTasks.d.ts +0 -43
- package/dist/commands/reviewTasks.d.ts.map +0 -1
- 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
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Git clone lifecycle management
|
|
3
|
+
*
|
|
4
|
+
* Creates, removes, and tracks git clones for task isolation.
|
|
5
|
+
* Uses `git clone --reference --dissociate` so each clone has a fully
|
|
6
|
+
* independent .git directory, then removes the origin remote to prevent
|
|
7
|
+
* Claude Code SDK from traversing back to the main repository.
|
|
8
|
+
*/
|
|
9
|
+
import * as fs from 'node:fs';
|
|
10
|
+
import * as path from 'node:path';
|
|
11
|
+
import { execFileSync } from 'node:child_process';
|
|
12
|
+
import { createLogger } from '../utils/debug.js';
|
|
13
|
+
import { slugify } from '../utils/slug.js';
|
|
14
|
+
import { loadGlobalConfig } from '../config/globalConfig.js';
|
|
15
|
+
const log = createLogger('clone');
|
|
16
|
+
function generateTimestamp() {
|
|
17
|
+
return new Date().toISOString().replace(/[-:.]/g, '').slice(0, 13);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Resolve the base directory for clones from global config.
|
|
21
|
+
* Returns the configured worktree_dir (resolved to absolute), or ../
|
|
22
|
+
*/
|
|
23
|
+
function resolveCloneBaseDir(projectDir) {
|
|
24
|
+
const globalConfig = loadGlobalConfig();
|
|
25
|
+
if (globalConfig.worktreeDir) {
|
|
26
|
+
return path.isAbsolute(globalConfig.worktreeDir)
|
|
27
|
+
? globalConfig.worktreeDir
|
|
28
|
+
: path.resolve(projectDir, globalConfig.worktreeDir);
|
|
29
|
+
}
|
|
30
|
+
return path.join(projectDir, '..');
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Resolve the clone path based on options and global config.
|
|
34
|
+
*
|
|
35
|
+
* Priority:
|
|
36
|
+
* 1. Custom path in options.worktree (string)
|
|
37
|
+
* 2. worktree_dir from config.yaml (if set)
|
|
38
|
+
* 3. Default: ../{dir-name}
|
|
39
|
+
*/
|
|
40
|
+
function resolveClonePath(projectDir, options) {
|
|
41
|
+
const timestamp = generateTimestamp();
|
|
42
|
+
const slug = slugify(options.taskSlug);
|
|
43
|
+
const dirName = slug ? `${timestamp}-${slug}` : timestamp;
|
|
44
|
+
if (typeof options.worktree === 'string') {
|
|
45
|
+
return path.isAbsolute(options.worktree)
|
|
46
|
+
? options.worktree
|
|
47
|
+
: path.resolve(projectDir, options.worktree);
|
|
48
|
+
}
|
|
49
|
+
return path.join(resolveCloneBaseDir(projectDir), dirName);
|
|
50
|
+
}
|
|
51
|
+
function resolveBranchName(options) {
|
|
52
|
+
if (options.branch) {
|
|
53
|
+
return options.branch;
|
|
54
|
+
}
|
|
55
|
+
const timestamp = generateTimestamp();
|
|
56
|
+
const slug = slugify(options.taskSlug);
|
|
57
|
+
return slug ? `takt/${timestamp}-${slug}` : `takt/${timestamp}`;
|
|
58
|
+
}
|
|
59
|
+
function branchExists(projectDir, branch) {
|
|
60
|
+
try {
|
|
61
|
+
execFileSync('git', ['rev-parse', '--verify', branch], {
|
|
62
|
+
cwd: projectDir,
|
|
63
|
+
stdio: 'pipe',
|
|
64
|
+
});
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Clone a repository and remove origin to isolate from the main repo.
|
|
73
|
+
*/
|
|
74
|
+
function cloneAndIsolate(projectDir, clonePath) {
|
|
75
|
+
fs.mkdirSync(path.dirname(clonePath), { recursive: true });
|
|
76
|
+
execFileSync('git', ['clone', '--reference', projectDir, '--dissociate', projectDir, clonePath], {
|
|
77
|
+
cwd: projectDir,
|
|
78
|
+
stdio: 'pipe',
|
|
79
|
+
});
|
|
80
|
+
execFileSync('git', ['remote', 'remove', 'origin'], {
|
|
81
|
+
cwd: clonePath,
|
|
82
|
+
stdio: 'pipe',
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Create a git clone for a task.
|
|
87
|
+
*
|
|
88
|
+
* Uses `git clone --reference --dissociate` to create an independent clone,
|
|
89
|
+
* then removes origin and checks out a new branch.
|
|
90
|
+
*/
|
|
91
|
+
export function createSharedClone(projectDir, options) {
|
|
92
|
+
const clonePath = resolveClonePath(projectDir, options);
|
|
93
|
+
const branch = resolveBranchName(options);
|
|
94
|
+
log.info('Creating shared clone', { path: clonePath, branch });
|
|
95
|
+
cloneAndIsolate(projectDir, clonePath);
|
|
96
|
+
if (branchExists(clonePath, branch)) {
|
|
97
|
+
execFileSync('git', ['checkout', branch], { cwd: clonePath, stdio: 'pipe' });
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
execFileSync('git', ['checkout', '-b', branch], { cwd: clonePath, stdio: 'pipe' });
|
|
101
|
+
}
|
|
102
|
+
saveCloneMeta(projectDir, branch, clonePath);
|
|
103
|
+
log.info('Clone created', { path: clonePath, branch });
|
|
104
|
+
return { path: clonePath, branch };
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Create a temporary clone for an existing branch.
|
|
108
|
+
* Used by review/instruct to work on a branch that was previously pushed.
|
|
109
|
+
*/
|
|
110
|
+
export function createTempCloneForBranch(projectDir, branch) {
|
|
111
|
+
const timestamp = generateTimestamp();
|
|
112
|
+
const clonePath = path.join(resolveCloneBaseDir(projectDir), `tmp-${timestamp}`);
|
|
113
|
+
log.info('Creating temp clone for branch', { path: clonePath, branch });
|
|
114
|
+
cloneAndIsolate(projectDir, clonePath);
|
|
115
|
+
execFileSync('git', ['checkout', branch], { cwd: clonePath, stdio: 'pipe' });
|
|
116
|
+
saveCloneMeta(projectDir, branch, clonePath);
|
|
117
|
+
log.info('Temp clone created', { path: clonePath, branch });
|
|
118
|
+
return { path: clonePath, branch };
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Remove a clone directory.
|
|
122
|
+
*/
|
|
123
|
+
export function removeClone(clonePath) {
|
|
124
|
+
log.info('Removing clone', { path: clonePath });
|
|
125
|
+
try {
|
|
126
|
+
fs.rmSync(clonePath, { recursive: true, force: true });
|
|
127
|
+
log.info('Clone removed', { path: clonePath });
|
|
128
|
+
}
|
|
129
|
+
catch (err) {
|
|
130
|
+
log.error('Failed to remove clone', { path: clonePath, error: String(err) });
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
// --- Clone metadata ---
|
|
134
|
+
const CLONE_META_DIR = 'clone-meta';
|
|
135
|
+
function encodeBranchName(branch) {
|
|
136
|
+
return branch.replace(/\//g, '--');
|
|
137
|
+
}
|
|
138
|
+
function getCloneMetaPath(projectDir, branch) {
|
|
139
|
+
return path.join(projectDir, '.takt', CLONE_META_DIR, `${encodeBranchName(branch)}.json`);
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Save clone metadata (branch → clonePath mapping).
|
|
143
|
+
* Used to clean up orphaned clone directories on merge/delete.
|
|
144
|
+
*/
|
|
145
|
+
export function saveCloneMeta(projectDir, branch, clonePath) {
|
|
146
|
+
const filePath = getCloneMetaPath(projectDir, branch);
|
|
147
|
+
fs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
148
|
+
fs.writeFileSync(filePath, JSON.stringify({ branch, clonePath }));
|
|
149
|
+
log.info('Clone meta saved', { branch, clonePath });
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Remove clone metadata for a branch.
|
|
153
|
+
*/
|
|
154
|
+
export function removeCloneMeta(projectDir, branch) {
|
|
155
|
+
try {
|
|
156
|
+
fs.unlinkSync(getCloneMetaPath(projectDir, branch));
|
|
157
|
+
log.info('Clone meta removed', { branch });
|
|
158
|
+
}
|
|
159
|
+
catch {
|
|
160
|
+
// File may not exist — ignore
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Clean up an orphaned clone directory associated with a branch.
|
|
165
|
+
* Reads metadata, removes clone directory if it still exists, then removes metadata.
|
|
166
|
+
*/
|
|
167
|
+
export function cleanupOrphanedClone(projectDir, branch) {
|
|
168
|
+
try {
|
|
169
|
+
const raw = fs.readFileSync(getCloneMetaPath(projectDir, branch), 'utf-8');
|
|
170
|
+
const meta = JSON.parse(raw);
|
|
171
|
+
if (fs.existsSync(meta.clonePath)) {
|
|
172
|
+
removeClone(meta.clonePath);
|
|
173
|
+
log.info('Orphaned clone cleaned up', { branch, clonePath: meta.clonePath });
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
catch {
|
|
177
|
+
// No metadata or parse error — nothing to clean up
|
|
178
|
+
}
|
|
179
|
+
removeCloneMeta(projectDir, branch);
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=clone.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clone.js","sourceRoot":"","sources":["../../src/task/clone.ts"],"names":[],"mappings":"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"}
|
package/dist/task/index.d.ts
CHANGED
|
@@ -5,7 +5,8 @@ export { TaskRunner, type TaskInfo, type TaskResult, } from './runner.js';
|
|
|
5
5
|
export { showTaskList } from './display.js';
|
|
6
6
|
export { TaskFileSchema, type TaskFileData } from './schema.js';
|
|
7
7
|
export { parseTaskFile, parseTaskFiles, type ParsedTask } from './parser.js';
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
8
|
+
export { createSharedClone, removeClone, createTempCloneForBranch, saveCloneMeta, removeCloneMeta, cleanupOrphanedClone, type WorktreeOptions, type WorktreeResult, } from './clone.js';
|
|
9
|
+
export { detectDefaultBranch, listTaktBranches, parseTaktBranches, getFilesChanged, extractTaskSlug, getOriginalInstruction, buildListItems, type BranchInfo, type BranchListItem, } from './branchList.js';
|
|
10
|
+
export { autoCommitAndPush, type AutoCommitResult } from './autoCommit.js';
|
|
10
11
|
export { TaskWatcher, type TaskWatcherOptions } from './watcher.js';
|
|
11
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/task/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/task/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,UAAU,EACV,KAAK,QAAQ,EACb,KAAK,UAAU,GAChB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/task/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,UAAU,EACV,KAAK,QAAQ,EACb,KAAK,UAAU,GAChB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,wBAAwB,EACxB,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,KAAK,eAAe,EACpB,KAAK,cAAc,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,cAAc,EACd,KAAK,UAAU,EACf,KAAK,cAAc,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/task/index.js
CHANGED
|
@@ -5,7 +5,8 @@ export { TaskRunner, } from './runner.js';
|
|
|
5
5
|
export { showTaskList } from './display.js';
|
|
6
6
|
export { TaskFileSchema } from './schema.js';
|
|
7
7
|
export { parseTaskFile, parseTaskFiles } from './parser.js';
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
8
|
+
export { createSharedClone, removeClone, createTempCloneForBranch, saveCloneMeta, removeCloneMeta, cleanupOrphanedClone, } from './clone.js';
|
|
9
|
+
export { detectDefaultBranch, listTaktBranches, parseTaktBranches, getFilesChanged, extractTaskSlug, getOriginalInstruction, buildListItems, } from './branchList.js';
|
|
10
|
+
export { autoCommitAndPush } from './autoCommit.js';
|
|
10
11
|
export { TaskWatcher } from './watcher.js';
|
|
11
12
|
//# sourceMappingURL=index.js.map
|
package/dist/task/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/task/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,UAAU,GAGX,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAqB,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAmB,MAAM,aAAa,CAAC;AAC7E,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/task/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,UAAU,GAGX,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAqB,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAmB,MAAM,aAAa,CAAC;AAC7E,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,wBAAwB,EACxB,aAAa,EACb,eAAe,EACf,oBAAoB,GAGrB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,cAAc,GAGf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,iBAAiB,EAAyB,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAA2B,MAAM,cAAc,CAAC"}
|
package/dist/task/schema.d.ts
CHANGED
|
@@ -9,14 +9,14 @@ import { z } from 'zod/v4';
|
|
|
9
9
|
*
|
|
10
10
|
* Examples:
|
|
11
11
|
* task: "認証機能を追加する"
|
|
12
|
-
* worktree: true #
|
|
12
|
+
* worktree: true # 共有クローンで隔離実行
|
|
13
13
|
* branch: "feat/add-auth" # オプション(省略時は自動生成)
|
|
14
14
|
* workflow: "default" # オプション(省略時はcurrent workflow)
|
|
15
15
|
*
|
|
16
|
-
* worktree patterns:
|
|
17
|
-
* - true: create
|
|
16
|
+
* worktree patterns (uses git clone --shared internally):
|
|
17
|
+
* - true: create shared clone in sibling dir or worktree_dir
|
|
18
18
|
* - "/path/to/dir": create at specified path
|
|
19
|
-
* - omitted: no
|
|
19
|
+
* - omitted: no isolation (run in cwd)
|
|
20
20
|
*
|
|
21
21
|
* branch patterns:
|
|
22
22
|
* - "feat/xxx": use specified branch name
|
package/dist/task/schema.js
CHANGED
|
@@ -9,14 +9,14 @@ import { z } from 'zod/v4';
|
|
|
9
9
|
*
|
|
10
10
|
* Examples:
|
|
11
11
|
* task: "認証機能を追加する"
|
|
12
|
-
* worktree: true #
|
|
12
|
+
* worktree: true # 共有クローンで隔離実行
|
|
13
13
|
* branch: "feat/add-auth" # オプション(省略時は自動生成)
|
|
14
14
|
* workflow: "default" # オプション(省略時はcurrent workflow)
|
|
15
15
|
*
|
|
16
|
-
* worktree patterns:
|
|
17
|
-
* - true: create
|
|
16
|
+
* worktree patterns (uses git clone --shared internally):
|
|
17
|
+
* - true: create shared clone in sibling dir or worktree_dir
|
|
18
18
|
* - "/path/to/dir": create at specified path
|
|
19
|
-
* - omitted: no
|
|
19
|
+
* - omitted: no isolation (run in cwd)
|
|
20
20
|
*
|
|
21
21
|
* branch patterns:
|
|
22
22
|
* - "feat/xxx": use specified branch name
|
package/dist/task/summarize.d.ts
CHANGED
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Task name summarization using AI
|
|
2
|
+
* Task name summarization using AI or romanization
|
|
3
3
|
*
|
|
4
|
-
* Generates concise English summaries for use in branch names and
|
|
4
|
+
* Generates concise English/romaji summaries for use in branch names and clone paths.
|
|
5
5
|
*/
|
|
6
6
|
export interface SummarizeOptions {
|
|
7
7
|
/** Working directory for Claude execution */
|
|
8
8
|
cwd: string;
|
|
9
|
-
/** Model to use (optional, defaults to
|
|
9
|
+
/** Model to use (optional, defaults to config or haiku) */
|
|
10
10
|
model?: string;
|
|
11
|
+
/** Use LLM for summarization (default: true). If false, uses romanization. */
|
|
12
|
+
useLLM?: boolean;
|
|
11
13
|
}
|
|
12
14
|
/**
|
|
13
|
-
* Summarize a task name into a concise
|
|
15
|
+
* Summarize a task name into a concise slug using AI or romanization.
|
|
14
16
|
*
|
|
15
17
|
* @param taskName - Original task name (can be in any language)
|
|
16
18
|
* @param options - Summarization options
|
|
17
|
-
* @returns
|
|
19
|
+
* @returns Slug suitable for branch names (English if LLM, romaji if not)
|
|
18
20
|
*/
|
|
19
21
|
export declare function summarizeTaskName(taskName: string, options: SummarizeOptions): Promise<string>;
|
|
20
22
|
//# sourceMappingURL=summarize.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summarize.d.ts","sourceRoot":"","sources":["../../src/task/summarize.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"summarize.d.ts","sourceRoot":"","sources":["../../src/task/summarize.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA0CH,MAAM,WAAW,gBAAgB;IAC/B,6CAA6C;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAaD;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,CAAC,CA4BjB"}
|
package/dist/task/summarize.js
CHANGED
|
@@ -1,49 +1,82 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Task name summarization using AI
|
|
2
|
+
* Task name summarization using AI or romanization
|
|
3
3
|
*
|
|
4
|
-
* Generates concise English summaries for use in branch names and
|
|
4
|
+
* Generates concise English/romaji summaries for use in branch names and clone paths.
|
|
5
5
|
*/
|
|
6
|
-
import
|
|
6
|
+
import * as wanakana from 'wanakana';
|
|
7
|
+
import { loadGlobalConfig } from '../config/globalConfig.js';
|
|
8
|
+
import { getProvider } from '../providers/index.js';
|
|
7
9
|
import { createLogger } from '../utils/debug.js';
|
|
8
10
|
const log = createLogger('summarize');
|
|
9
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Sanitize a string for use as git branch name and directory name.
|
|
13
|
+
*
|
|
14
|
+
* Git branch restrictions: no spaces, ~, ^, :, ?, *, [, \, .., @{, leading -
|
|
15
|
+
* Directory restrictions: no /, \, :, *, ?, ", <, >, |
|
|
16
|
+
*
|
|
17
|
+
* This function allows only: a-z, 0-9, hyphen
|
|
18
|
+
*/
|
|
19
|
+
function sanitizeSlug(input, maxLength = 30) {
|
|
20
|
+
return input
|
|
21
|
+
.trim()
|
|
22
|
+
.toLowerCase()
|
|
23
|
+
.replace(/[^a-z0-9-]/g, '-') // Replace invalid chars with hyphen
|
|
24
|
+
.replace(/-+/g, '-') // Collapse multiple hyphens
|
|
25
|
+
.replace(/^-+/, '') // Remove leading hyphens
|
|
26
|
+
.slice(0, maxLength)
|
|
27
|
+
.replace(/-+$/, ''); // Remove trailing hyphens (after slice)
|
|
28
|
+
}
|
|
29
|
+
const SUMMARIZE_SYSTEM_PROMPT = `You are a slug generator. Given a task description, output ONLY a slug.
|
|
10
30
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
- Use lowercase letters, numbers, and hyphens only
|
|
14
|
-
- Maximum 30 characters
|
|
15
|
-
- No leading/trailing hyphens
|
|
16
|
-
- Be descriptive but concise
|
|
17
|
-
- If the input is already in English and short, simplify it
|
|
31
|
+
NEVER output sentences. NEVER start with "this", "the", "i", "we", or "it".
|
|
32
|
+
ALWAYS start with a verb: add, fix, update, refactor, implement, remove, etc.
|
|
18
33
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
34
|
+
Format: verb-noun (lowercase, hyphens, max 30 chars)
|
|
35
|
+
|
|
36
|
+
Input → Output:
|
|
37
|
+
認証機能を追加する → add-auth
|
|
38
|
+
Fix the login bug → fix-login-bug
|
|
39
|
+
ユーザー登録にメール認証を追加 → add-email-verification
|
|
40
|
+
worktreeを作るときブランチ名をAIで生成 → ai-branch-naming
|
|
41
|
+
レビュー画面に元の指示を表示する → show-original-instruction`;
|
|
42
|
+
/**
|
|
43
|
+
* Convert Japanese text to romaji slug.
|
|
44
|
+
* Handles hiragana, katakana, and passes through alphanumeric.
|
|
45
|
+
* Kanji and other non-convertible characters become hyphens.
|
|
46
|
+
*/
|
|
47
|
+
function toRomajiSlug(text) {
|
|
48
|
+
// Convert to romaji (hiragana/katakana → romaji, kanji stays as-is)
|
|
49
|
+
const romaji = wanakana.toRomaji(text, { customRomajiMapping: {} });
|
|
50
|
+
return sanitizeSlug(romaji);
|
|
51
|
+
}
|
|
24
52
|
/**
|
|
25
|
-
* Summarize a task name into a concise
|
|
53
|
+
* Summarize a task name into a concise slug using AI or romanization.
|
|
26
54
|
*
|
|
27
55
|
* @param taskName - Original task name (can be in any language)
|
|
28
56
|
* @param options - Summarization options
|
|
29
|
-
* @returns
|
|
57
|
+
* @returns Slug suitable for branch names (English if LLM, romaji if not)
|
|
30
58
|
*/
|
|
31
59
|
export async function summarizeTaskName(taskName, options) {
|
|
32
|
-
|
|
33
|
-
|
|
60
|
+
const useLLM = options.useLLM ?? true;
|
|
61
|
+
log.info('Summarizing task name', { taskName, useLLM });
|
|
62
|
+
// Use romanization if LLM is disabled
|
|
63
|
+
if (!useLLM) {
|
|
64
|
+
const slug = toRomajiSlug(taskName);
|
|
65
|
+
log.info('Task name romanized', { original: taskName, slug });
|
|
66
|
+
return slug || 'task';
|
|
67
|
+
}
|
|
68
|
+
// Use LLM for summarization
|
|
69
|
+
const globalConfig = loadGlobalConfig();
|
|
70
|
+
const providerType = globalConfig.provider ?? 'claude';
|
|
71
|
+
const model = options.model ?? globalConfig.model ?? 'haiku';
|
|
72
|
+
const provider = getProvider(providerType);
|
|
73
|
+
const response = await provider.call('summarizer', taskName, {
|
|
34
74
|
cwd: options.cwd,
|
|
35
|
-
model
|
|
36
|
-
maxTurns: 1,
|
|
75
|
+
model,
|
|
37
76
|
systemPrompt: SUMMARIZE_SYSTEM_PROMPT,
|
|
38
77
|
allowedTools: [],
|
|
39
78
|
});
|
|
40
|
-
const slug = response.content
|
|
41
|
-
.trim()
|
|
42
|
-
.toLowerCase()
|
|
43
|
-
.replace(/[^a-z0-9-]/g, '-')
|
|
44
|
-
.replace(/-+/g, '-')
|
|
45
|
-
.replace(/^-|-$/g, '')
|
|
46
|
-
.slice(0, 30);
|
|
79
|
+
const slug = sanitizeSlug(response.content);
|
|
47
80
|
log.info('Task name summarized', { original: taskName, slug });
|
|
48
81
|
return slug || 'task';
|
|
49
82
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summarize.js","sourceRoot":"","sources":["../../src/task/summarize.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"summarize.js","sourceRoot":"","sources":["../../src/task/summarize.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAqB,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,GAAG,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;AAEtC;;;;;;;GAOG;AACH,SAAS,YAAY,CAAC,KAAa,EAAE,SAAS,GAAG,EAAE;IACjD,OAAO,KAAK;SACT,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAE,oCAAoC;SACjE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAU,4BAA4B;SACzD,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAW,yBAAyB;SACtD,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC;SACnB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAU,wCAAwC;AAC1E,CAAC;AAED,MAAM,uBAAuB,GAAG;;;;;;;;;;;;6CAYa,CAAC;AAW9C;;;;GAIG;AACH,SAAS,YAAY,CAAC,IAAY;IAChC,oEAAoE;IACpE,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,CAAC,CAAC;IACpE,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,QAAgB,EAChB,OAAyB;IAEzB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC;IACtC,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAExD,sCAAsC;IACtC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QACpC,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9D,OAAO,IAAI,IAAI,MAAM,CAAC;IACxB,CAAC;IAED,4BAA4B;IAC5B,MAAM,YAAY,GAAG,gBAAgB,EAAE,CAAC;IACxC,MAAM,YAAY,GAAI,YAAY,CAAC,QAAyB,IAAI,QAAQ,CAAC;IACzE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,YAAY,CAAC,KAAK,IAAI,OAAO,CAAC;IAE7D,MAAM,QAAQ,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE;QAC3D,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK;QACL,YAAY,EAAE,uBAAuB;QACrC,YAAY,EAAE,EAAE;KACjB,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5C,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/D,OAAO,IAAI,IAAI,MAAM,CAAC;AACxB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateNotifier.d.ts","sourceRoot":"","sources":["../../src/utils/updateNotifier.ts"],"names":[],"mappings":"AAeA;;;GAGG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAItC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';
|
|
2
|
+
// @ts-expect-error -- update-notifier v7.x has no type definitions
|
|
3
|
+
import updateNotifier from 'update-notifier';
|
|
4
|
+
const require = createRequire(import.meta.url);
|
|
5
|
+
function loadPackageJson() {
|
|
6
|
+
return require('../../package.json');
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Check for available updates and schedule a notification on process exit.
|
|
10
|
+
* This is non-blocking: the registry check runs in a background subprocess.
|
|
11
|
+
*/
|
|
12
|
+
export function checkForUpdates() {
|
|
13
|
+
const pkg = loadPackageJson();
|
|
14
|
+
const notifier = updateNotifier({ pkg });
|
|
15
|
+
notifier.notify();
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=updateNotifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateNotifier.js","sourceRoot":"","sources":["../../src/utils/updateNotifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,mEAAmE;AACnE,OAAO,cAAc,MAAM,iBAAiB,CAAC;AAE7C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAO/C,SAAS,eAAe;IACtB,OAAO,OAAO,CAAC,oBAAoB,CAAY,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,CAAC;AACpB,CAAC"}
|
|
@@ -18,7 +18,7 @@ export declare class WorkflowEngine extends EventEmitter {
|
|
|
18
18
|
private language;
|
|
19
19
|
private reportDir;
|
|
20
20
|
constructor(config: WorkflowConfig, cwd: string, task: string, options?: WorkflowEngineOptions);
|
|
21
|
-
/** Ensure report directory exists (always in project root, not
|
|
21
|
+
/** Ensure report directory exists (always in project root, not clone) */
|
|
22
22
|
private ensureReportDirExists;
|
|
23
23
|
/** Validate workflow configuration at construction time */
|
|
24
24
|
private validateConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/workflow/engine.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EAEb,aAAa,EACd,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAiBxD,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE3D,wDAAwD;AACxD,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B;IAqBlG,
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/workflow/engine.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EAEb,aAAa,EACd,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAiBxD,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE3D,wDAAwD;AACxD,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B;IAqBlG,yEAAyE;IACzE,OAAO,CAAC,qBAAqB;IAmB7B,2DAA2D;IAC3D,OAAO,CAAC,cAAc;IAqBtB,iCAAiC;IACjC,QAAQ,IAAI,aAAa;IAIzB,qBAAqB;IACrB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIjC,+BAA+B;IAC/B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,oCAAoC;IACpC,MAAM,IAAI,MAAM;IAIhB,sDAAsD;IACtD,aAAa,IAAI,MAAM;IAIvB,sCAAsC;IACtC,OAAO,CAAC,gBAAgB;IAexB,uBAAuB;IACvB,OAAO,CAAC,OAAO;IAQf,wBAAwB;YACV,OAAO;IA2CrB,qCAAqC;IAC/B,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC;IA4FnC,oDAAoD;IAC9C,kBAAkB,IAAI,OAAO,CAAC;QAClC,QAAQ,EAAE,aAAa,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,OAAO,CAAC;QACpB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;CAgCH"}
|
package/dist/workflow/engine.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Workflow execution engine
|
|
3
3
|
*/
|
|
4
4
|
import { EventEmitter } from 'node:events';
|
|
5
|
-
import { mkdirSync, existsSync } from 'node:fs';
|
|
5
|
+
import { mkdirSync, existsSync, symlinkSync } from 'node:fs';
|
|
6
6
|
import { join } from 'node:path';
|
|
7
7
|
import { runAgent } from '../agents/runner.js';
|
|
8
8
|
import { COMPLETE_STEP, ABORT_STEP, ERROR_MESSAGES } from './constants.js';
|
|
@@ -46,12 +46,20 @@ export class WorkflowEngine extends EventEmitter {
|
|
|
46
46
|
maxIterations: config.maxIterations,
|
|
47
47
|
});
|
|
48
48
|
}
|
|
49
|
-
/** Ensure report directory exists (always in project root, not
|
|
49
|
+
/** Ensure report directory exists (always in project root, not clone) */
|
|
50
50
|
ensureReportDirExists() {
|
|
51
51
|
const reportDirPath = join(this.projectCwd, '.takt', 'reports', this.reportDir);
|
|
52
52
|
if (!existsSync(reportDirPath)) {
|
|
53
53
|
mkdirSync(reportDirPath, { recursive: true });
|
|
54
54
|
}
|
|
55
|
+
// Worktree mode: create symlink so agents can access reports via relative path
|
|
56
|
+
if (this.cwd !== this.projectCwd) {
|
|
57
|
+
const cwdReportsDir = join(this.cwd, '.takt', 'reports');
|
|
58
|
+
if (!existsSync(cwdReportsDir)) {
|
|
59
|
+
mkdirSync(join(this.cwd, '.takt'), { recursive: true });
|
|
60
|
+
symlinkSync(join(this.projectCwd, '.takt', 'reports'), cwdReportsDir);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
55
63
|
}
|
|
56
64
|
/** Validate workflow configuration at construction time */
|
|
57
65
|
validateConfig() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/workflow/engine.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAOjC,OAAO,EAAE,QAAQ,EAAwB,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,IAAI,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAC5F,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;AAWnC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE3D,wDAAwD;AACxD,MAAM,OAAO,cAAe,SAAQ,YAAY;IACtC,KAAK,CAAgB;IACrB,MAAM,CAAiB;IACvB,UAAU,CAAS;IACnB,GAAG,CAAS;IACZ,IAAI,CAAS;IACb,OAAO,CAAwB;IAC/B,YAAY,CAAe;IAC3B,QAAQ,CAAoC;IAC5C,SAAS,CAAS;IAE1B,YAAY,MAAsB,EAAE,GAAW,EAAE,IAAY,EAAE,UAAiC,EAAE;QAChG,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,GAAG,CAAC;QAC5C,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC3D,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjD,GAAG,CAAC,KAAK,CAAC,4BAA4B,EAAE;YACtC,QAAQ,EAAE,MAAM,CAAC,IAAI;YACrB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACpC,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,aAAa,EAAE,MAAM,CAAC,aAAa;SACpC,CAAC,CAAC;IACL,CAAC;IAED,4EAA4E;IACpE,qBAAqB;QAC3B,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAChF,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAC/B,SAAS,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,2DAA2D;IACnD,cAAc;QACpB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACtF,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAChE,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC7B,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAE1B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACrC,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC1C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACxC,MAAM,IAAI,KAAK,CACb,+BAA+B,IAAI,CAAC,IAAI,mBAAmB,UAAU,CAAC,QAAQ,kBAAkB,CACjG,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,iCAAiC;IACjC,QAAQ;QACN,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,qBAAqB;IACrB,YAAY,CAAC,KAAa;QACxB,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,+BAA+B;IAC/B,SAAS,CAAC,MAAc;QACtB,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC;IACpB,CAAC;IAED,oCAAoC;IACpC,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,sDAAsD;IACtD,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,sCAAsC;IAC9B,gBAAgB,CAAC,IAAkB,EAAE,aAAqB;QAChE,OAAO,4BAA4B,CAAC,IAAI,EAAE;YACxC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;YAC/B,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa;YACxC,aAAa;YACb,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;YACjC,cAAc,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;YAC7C,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;IACL,CAAC;IAED,uBAAuB;IACf,OAAO,CAAC,IAAY;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,wBAAwB;IAChB,KAAK,CAAC,OAAO,CAAC,IAAkB;QACtC,+DAA+D;QAC/D,MAAM,aAAa,GAAG,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACpE,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3D,GAAG,CAAC,KAAK,CAAC,cAAc,EAAE;YACxB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,aAAa;YACb,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;YAC/B,SAAS,EAAE,SAAS,IAAI,KAAK;SAC9B,CAAC,CAAC;QAEH,MAAM,YAAY,GAAoB;YACpC,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,SAAS;YACT,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;YAC/B,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB;YACrD,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB;YACjD,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB;SAClD,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;QAEvE,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YACvB,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;YAE7D,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,QAAQ,CAAC,SAAS,KAAK,iBAAiB,EAAE,CAAC;gBAC7E,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAChD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,qCAAqC;IACrC,KAAK,CAAC,GAAG;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBACtD,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;gBAE9E,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;oBAClC,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;wBAC/D,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;wBACtC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa;wBACxC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW;qBACpC,CAAC,CAAC;oBAEH,IAAI,oBAAoB,KAAK,IAAI,IAAI,oBAAoB,GAAG,CAAC,EAAE,CAAC;wBAC9D,IAAI,CAAC,MAAM,GAAG;4BACZ,GAAG,IAAI,CAAC,MAAM;4BACd,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,oBAAoB;yBAChE,CAAC;wBACF,SAAS;oBACX,CAAC;gBACH,CAAC;gBAED,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;gBAC9B,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,sBAAsB,CAAC,CAAC;gBAC/E,MAAM;YACR,CAAC;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAErD,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;YACzD,CAAC;YAED,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;gBAC1B,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;gBAC9B,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;gBAClG,MAAM;YACR,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAEpD,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC1C,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAE3C,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBAClC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;oBAC1C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;oBAEjE,IAAI,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;wBAC9C,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;wBACpC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;wBACrD,SAAS;oBACX,CAAC;oBAED,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;oBAC9B,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,KAAK,EAAE,6CAA6C,CAAC,CAAC;oBACvF,MAAM;gBACR,CAAC;gBAED,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBACvE,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE;oBAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,QAAQ;iBACT,CAAC,CAAC;gBAEH,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;oBAC/B,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC;oBAChC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC3C,MAAM;gBACR,CAAC;gBAED,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;oBAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;oBAC9B,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,KAAK,EAAE,qCAAqC,CAAC,CAAC;oBAC/E,MAAM;gBACR,CAAC;gBAED,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,QAAQ,CAAC;YACpC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;gBAC9B,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;gBACvF,MAAM;YACR,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,oDAAoD;IACpD,KAAK,CAAC,kBAAkB;QAMtB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAErD,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;YAC9B,OAAO;gBACL,QAAQ,EAAE;oBACR,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,MAAM,EAAE,SAAS;oBACjB,OAAO,EAAE,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC;oBACjE,SAAS,EAAE,IAAI,IAAI,EAAE;iBACtB;gBACD,QAAQ,EAAE,UAAU;gBACpB,UAAU,EAAE,IAAI;gBAChB,YAAY,EAAE,IAAI;aACnB,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACvE,MAAM,UAAU,GAAG,QAAQ,KAAK,aAAa,IAAI,QAAQ,KAAK,UAAU,CAAC;QAEzE,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,QAAQ,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3E,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC;IAC5E,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/workflow/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ export interface InstructionContext {
|
|
|
17
17
|
maxIterations: number;
|
|
18
18
|
/** Current step's iteration number (how many times this step has been executed) */
|
|
19
19
|
stepIteration: number;
|
|
20
|
-
/** Working directory (agent work dir, may be a
|
|
20
|
+
/** Working directory (agent work dir, may be a clone) */
|
|
21
21
|
cwd: string;
|
|
22
22
|
/** Project root directory (where .takt/ lives). Defaults to cwd. */
|
|
23
23
|
projectCwd?: string;
|
|
@@ -32,7 +32,7 @@ export interface InstructionContext {
|
|
|
32
32
|
}
|
|
33
33
|
/** Execution environment metadata prepended to agent instructions */
|
|
34
34
|
export interface ExecutionMetadata {
|
|
35
|
-
/** The agent's working directory (may be a
|
|
35
|
+
/** The agent's working directory (may be a clone) */
|
|
36
36
|
readonly workingDirectory: string;
|
|
37
37
|
/** Language for metadata rendering */
|
|
38
38
|
readonly language: Language;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instruction-builder.d.ts","sourceRoot":"","sources":["../../src/workflow/instruction-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"instruction-builder.d.ts","sourceRoot":"","sources":["../../src/workflow/instruction-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGhF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,mFAAmF;IACnF,aAAa,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,GAAG,EAAE,MAAM,CAAC;IACZ,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,wCAAwC;IACxC,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,qEAAqE;AACrE,MAAM,WAAW,iBAAiB;IAChC,qDAAqD;IACrD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,sCAAsC;IACtC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,kBAAkB,GAAG,iBAAiB,CAKrF;AAgBD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAGlE;AAsBD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CAgB3E;AASD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,kBAAkB,GAC1B,MAAM,CAsDR"}
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
* Builds the instruction string for agent execution by replacing
|
|
5
5
|
* template placeholders with actual values.
|
|
6
6
|
*/
|
|
7
|
-
import { join } from 'node:path';
|
|
8
7
|
import { getGitDiff } from '../agents/runner.js';
|
|
9
8
|
/**
|
|
10
9
|
* Build execution metadata from instruction context.
|
|
@@ -123,14 +122,11 @@ export function buildInstruction(step, context) {
|
|
|
123
122
|
// Replace {user_inputs}
|
|
124
123
|
const userInputsStr = context.userInputs.join('\n');
|
|
125
124
|
instruction = instruction.replace(/\{user_inputs\}/g, escapeTemplateChars(userInputsStr));
|
|
126
|
-
// Replace
|
|
127
|
-
//
|
|
128
|
-
//
|
|
129
|
-
//
|
|
125
|
+
// Replace {report_dir} with the directory name, keeping paths relative.
|
|
126
|
+
// In worktree mode, a symlink from cwd/.takt/reports → projectCwd/.takt/reports
|
|
127
|
+
// ensures the relative path resolves correctly without embedding absolute paths
|
|
128
|
+
// that could cause agents to operate on the wrong repository.
|
|
130
129
|
if (context.reportDir) {
|
|
131
|
-
const projectRoot = context.projectCwd ?? context.cwd;
|
|
132
|
-
const reportDirFullPath = join(projectRoot, '.takt', 'reports', context.reportDir);
|
|
133
|
-
instruction = instruction.replace(/\.takt\/reports\/\{report_dir\}/g, reportDirFullPath);
|
|
134
130
|
instruction = instruction.replace(/\{report_dir\}/g, context.reportDir);
|
|
135
131
|
}
|
|
136
132
|
// Append status_rules_prompt with localized header if present
|