takt 0.3.0 → 0.3.1
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 +32 -36
- package/dist/claude/executor.d.ts.map +1 -1
- package/dist/claude/executor.js +17 -8
- package/dist/claude/executor.js.map +1 -1
- package/dist/cli.d.ts +5 -5
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +151 -126
- package/dist/cli.js.map +1 -1
- package/dist/commands/addTask.d.ts +15 -8
- package/dist/commands/addTask.d.ts.map +1 -1
- package/dist/commands/addTask.js +61 -39
- package/dist/commands/addTask.js.map +1 -1
- package/dist/commands/eject.js +2 -2
- package/dist/commands/eject.js.map +1 -1
- package/dist/commands/index.d.ts +1 -2
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +1 -2
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/interactive.d.ts +28 -0
- package/dist/commands/interactive.d.ts.map +1 -0
- package/dist/commands/interactive.js +186 -0
- package/dist/commands/interactive.js.map +1 -0
- package/dist/commands/taskExecution.js +2 -2
- package/dist/commands/taskExecution.js.map +1 -1
- package/dist/prompt/index.d.ts +0 -7
- package/dist/prompt/index.d.ts.map +1 -1
- package/dist/prompt/index.js +0 -11
- package/dist/prompt/index.js.map +1 -1
- package/dist/task/display.js +1 -1
- package/dist/task/display.js.map +1 -1
- package/package.json +1 -1
- package/resources/global/en/agents/default/ai-antipattern-reviewer.md +13 -0
- package/resources/global/en/agents/default/supervisor.md +9 -0
- package/resources/global/en/agents/expert/supervisor.md +2 -0
- package/resources/global/ja/agents/default/ai-antipattern-reviewer.md +13 -0
- package/resources/global/ja/agents/default/supervisor.md +9 -0
- package/resources/global/ja/agents/expert/supervisor.md +2 -0
- package/dist/commands/help.d.ts +0 -8
- package/dist/commands/help.d.ts.map +0 -1
- package/dist/commands/help.js +0 -55
- package/dist/commands/help.js.map +0 -1
- package/dist/commands/refreshBuiltin.d.ts +0 -11
- package/dist/commands/refreshBuiltin.d.ts.map +0 -1
- package/dist/commands/refreshBuiltin.js +0 -21
- package/dist/commands/refreshBuiltin.js.map +0 -1
package/README.md
CHANGED
|
@@ -30,20 +30,20 @@ takt "Add a login feature"
|
|
|
30
30
|
# Run a GitHub issue as a task
|
|
31
31
|
takt "#6"
|
|
32
32
|
|
|
33
|
-
# Add a task
|
|
34
|
-
takt
|
|
33
|
+
# Add a task via AI conversation
|
|
34
|
+
takt add
|
|
35
35
|
|
|
36
36
|
# Run all pending tasks
|
|
37
|
-
takt
|
|
37
|
+
takt run
|
|
38
38
|
|
|
39
39
|
# Watch for tasks and auto-execute
|
|
40
|
-
takt
|
|
40
|
+
takt watch
|
|
41
41
|
|
|
42
42
|
# List task branches (merge or delete)
|
|
43
|
-
takt
|
|
43
|
+
takt list
|
|
44
44
|
|
|
45
45
|
# Switch workflow
|
|
46
|
-
takt
|
|
46
|
+
takt switch
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
### What happens when you run a task
|
|
@@ -87,24 +87,24 @@ Choose `y` to run in a `git clone --shared` isolated environment, keeping your w
|
|
|
87
87
|
|
|
88
88
|
## Commands
|
|
89
89
|
|
|
90
|
-
| Command |
|
|
91
|
-
|
|
92
|
-
| `takt "task"` |
|
|
93
|
-
| `takt "#N"` |
|
|
94
|
-
| `takt
|
|
95
|
-
| `takt
|
|
96
|
-
| `takt
|
|
97
|
-
| `takt
|
|
98
|
-
| `takt
|
|
99
|
-
| `takt
|
|
100
|
-
| `takt
|
|
101
|
-
| `takt
|
|
102
|
-
| `takt
|
|
103
|
-
| `takt
|
|
90
|
+
| Command | Description |
|
|
91
|
+
|---------|-------------|
|
|
92
|
+
| `takt "task"` | Execute task with current workflow (session auto-continued) |
|
|
93
|
+
| `takt "#N"` | Execute GitHub issue #N as a task |
|
|
94
|
+
| `takt` | Interactive task input mode |
|
|
95
|
+
| `takt run` | Run all pending tasks from `.takt/tasks/` |
|
|
96
|
+
| `takt watch` | Watch `.takt/tasks/` and auto-execute tasks (stays resident) |
|
|
97
|
+
| `takt add` | Add a new task via AI conversation |
|
|
98
|
+
| `takt list` | List task branches (try merge, merge & cleanup, or delete) |
|
|
99
|
+
| `takt switch` | Switch workflow interactively |
|
|
100
|
+
| `takt clear` | Clear agent conversation sessions |
|
|
101
|
+
| `takt eject` | Copy builtin workflow/agents to `~/.takt/` for customization |
|
|
102
|
+
| `takt config` | Configure permission mode |
|
|
103
|
+
| `takt --help` | Show help |
|
|
104
104
|
|
|
105
105
|
## Workflows
|
|
106
106
|
|
|
107
|
-
TAKT uses YAML-based workflow definitions with rule-based routing. Builtin workflows are embedded in the package; user workflows in `~/.takt/workflows/` take priority. Use
|
|
107
|
+
TAKT uses YAML-based workflow definitions with rule-based routing. Builtin workflows are embedded in the package; user workflows in `~/.takt/workflows/` take priority. Use `takt eject` to copy a builtin to `~/.takt/` for customization.
|
|
108
108
|
|
|
109
109
|
### Example Workflow
|
|
110
110
|
|
|
@@ -201,7 +201,7 @@ TAKT ships with several built-in workflows:
|
|
|
201
201
|
| `expert-cqrs` | Sequential review with domain experts: CQRS+ES, Frontend, Security, QA reviews with fix loops. |
|
|
202
202
|
| `magi` | Deliberation system inspired by Evangelion. Three AI personas (MELCHIOR, BALTHASAR, CASPER) analyze and vote. |
|
|
203
203
|
|
|
204
|
-
Switch between workflows with `takt
|
|
204
|
+
Switch between workflows with `takt switch`.
|
|
205
205
|
|
|
206
206
|
## Built-in Agents
|
|
207
207
|
|
|
@@ -312,7 +312,7 @@ Create your own workflow by adding YAML files to `~/.takt/workflows/`, or use `/
|
|
|
312
312
|
|
|
313
313
|
```bash
|
|
314
314
|
# Copy the default workflow to ~/.takt/workflows/ for editing
|
|
315
|
-
takt
|
|
315
|
+
takt eject default
|
|
316
316
|
```
|
|
317
317
|
|
|
318
318
|
```yaml
|
|
@@ -365,19 +365,15 @@ agent: /path/to/custom/agent.md
|
|
|
365
365
|
|
|
366
366
|
TAKT supports batch task processing through task files in `.takt/tasks/`. Both `.yaml`/`.yml` and `.md` file formats are supported.
|
|
367
367
|
|
|
368
|
-
#### Adding Tasks with
|
|
368
|
+
#### Adding Tasks with `takt add`
|
|
369
369
|
|
|
370
370
|
```bash
|
|
371
|
-
#
|
|
372
|
-
takt
|
|
373
|
-
|
|
374
|
-
# Add a GitHub issue as a task
|
|
375
|
-
takt /add-task "#6"
|
|
376
|
-
|
|
377
|
-
# Interactive mode (prompts for isolation, branch, workflow options)
|
|
378
|
-
takt /add-task
|
|
371
|
+
# Start AI conversation to define and add a task
|
|
372
|
+
takt add
|
|
379
373
|
```
|
|
380
374
|
|
|
375
|
+
The `takt add` command starts an AI conversation where you discuss and refine your task requirements. After confirming with `/go`, the AI summarizes the conversation and creates a YAML task file with optional worktree/branch/workflow settings.
|
|
376
|
+
|
|
381
377
|
#### Task File Formats
|
|
382
378
|
|
|
383
379
|
**YAML format** (recommended, supports worktree/branch/workflow options):
|
|
@@ -414,12 +410,12 @@ YAML task files can specify `worktree` to run each task in an isolated `git clon
|
|
|
414
410
|
|
|
415
411
|
> **Note**: The YAML field is named `worktree` for backward compatibility. Internally, `git clone --shared` is used instead of `git worktree` because git worktrees have a `.git` file with `gitdir:` that points back to the main repository, causing Claude Code to recognize the main repo as the project root. Shared clones have an independent `.git` directory that avoids this issue.
|
|
416
412
|
|
|
417
|
-
Clones are ephemeral. When a task completes successfully, TAKT automatically commits all changes and pushes the branch to the main repository, then deletes the clone. Use `takt
|
|
413
|
+
Clones are ephemeral. When a task completes successfully, TAKT automatically commits all changes and pushes the branch to the main repository, then deletes the clone. Use `takt list` to list, try-merge, or delete task branches.
|
|
418
414
|
|
|
419
415
|
#### Running Tasks with `/run-tasks`
|
|
420
416
|
|
|
421
417
|
```bash
|
|
422
|
-
takt
|
|
418
|
+
takt run
|
|
423
419
|
```
|
|
424
420
|
|
|
425
421
|
- Tasks are executed in alphabetical order (use prefixes like `001-`, `002-` for ordering)
|
|
@@ -429,7 +425,7 @@ takt /run-tasks
|
|
|
429
425
|
#### Watching Tasks with `/watch`
|
|
430
426
|
|
|
431
427
|
```bash
|
|
432
|
-
takt
|
|
428
|
+
takt watch
|
|
433
429
|
```
|
|
434
430
|
|
|
435
431
|
Watch mode polls `.takt/tasks/` for new task files and auto-executes them as they appear. The process stays resident until `Ctrl+C`. This is useful for:
|
|
@@ -440,7 +436,7 @@ Watch mode polls `.takt/tasks/` for new task files and auto-executes them as the
|
|
|
440
436
|
#### Listing Task Branches with `/list-tasks`
|
|
441
437
|
|
|
442
438
|
```bash
|
|
443
|
-
takt
|
|
439
|
+
takt list
|
|
444
440
|
```
|
|
445
441
|
|
|
446
442
|
Lists all `takt/`-prefixed branches with file change counts. For each branch you can:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/claude/executor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAML,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,gCAAgC,CAAC;AAYxC,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,EACb,MAAM,YAAY,CAAC;AAIpB,2CAA2C;AAC3C,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACzC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,mBAAmB,CAAC,EAAE,iBAAiB,CAAC;IACxC,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;IAC3C,0DAA0D;IAC1D,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/claude/executor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAML,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,gCAAgC,CAAC;AAYxC,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,EACb,MAAM,YAAY,CAAC;AAIpB,2CAA2C;AAC3C,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACzC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,mBAAmB,CAAC,EAAE,iBAAiB,CAAC;IACxC,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;IAC3C,0DAA0D;IAC1D,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAuDD;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,YAAY,CAAC,CA8EvB"}
|
package/dist/claude/executor.js
CHANGED
|
@@ -35,19 +35,28 @@ function buildSdkOptions(options) {
|
|
|
35
35
|
else {
|
|
36
36
|
permissionMode = 'acceptEdits';
|
|
37
37
|
}
|
|
38
|
+
// Only include defined values — the SDK treats key-present-but-undefined
|
|
39
|
+
// differently from key-absent for some options (e.g. model), causing hangs.
|
|
38
40
|
const sdkOptions = {
|
|
39
41
|
cwd: options.cwd,
|
|
40
|
-
model: options.model,
|
|
41
|
-
maxTurns: options.maxTurns,
|
|
42
|
-
allowedTools: options.allowedTools,
|
|
43
|
-
agents: options.agents,
|
|
44
42
|
permissionMode,
|
|
45
|
-
includePartialMessages: !!options.onStream,
|
|
46
|
-
canUseTool,
|
|
47
|
-
hooks,
|
|
48
43
|
};
|
|
49
|
-
if (options.
|
|
44
|
+
if (options.model)
|
|
45
|
+
sdkOptions.model = options.model;
|
|
46
|
+
if (options.maxTurns != null)
|
|
47
|
+
sdkOptions.maxTurns = options.maxTurns;
|
|
48
|
+
if (options.allowedTools)
|
|
49
|
+
sdkOptions.allowedTools = options.allowedTools;
|
|
50
|
+
if (options.agents)
|
|
51
|
+
sdkOptions.agents = options.agents;
|
|
52
|
+
if (options.systemPrompt)
|
|
50
53
|
sdkOptions.systemPrompt = options.systemPrompt;
|
|
54
|
+
if (canUseTool)
|
|
55
|
+
sdkOptions.canUseTool = canUseTool;
|
|
56
|
+
if (hooks)
|
|
57
|
+
sdkOptions.hooks = hooks;
|
|
58
|
+
if (options.onStream) {
|
|
59
|
+
sdkOptions.includePartialMessages = true;
|
|
51
60
|
}
|
|
52
61
|
if (options.sessionId) {
|
|
53
62
|
sdkOptions.resume = options.sessionId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/claude/executor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,KAAK,EACL,UAAU,GAMX,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EACL,eAAe,EACf,aAAa,EACb,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EACL,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAQ9B,MAAM,GAAG,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;AAmBvC;;GAEG;AACH,SAAS,eAAe,CAAC,OAAuB;IAC9C,MAAM,UAAU,GAAG,OAAO,CAAC,mBAAmB;QAC5C,CAAC,CAAC,wBAAwB,CAAC,OAAO,CAAC,mBAAmB,CAAC;QACvD,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,KAAK,GAAG,OAAO,CAAC,iBAAiB;QACrC,CAAC,CAAC,0BAA0B,CAAC,OAAO,CAAC,iBAAiB,CAAC;QACvD,CAAC,CAAC,SAAS,CAAC;IAEd,4BAA4B;IAC5B,iFAAiF;IACjF,IAAI,cAA8B,CAAC;IACnC,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC9B,cAAc,GAAG,mBAAmB,CAAC;IACvC,CAAC;SAAM,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QAClC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAC1C,CAAC;SAAM,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;QACvC,cAAc,GAAG,SAAS,CAAC;IAC7B,CAAC;SAAM,CAAC;QACN,cAAc,GAAG,aAAa,CAAC;IACjC,CAAC;IAED,MAAM,UAAU,GAAY;QAC1B,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/claude/executor.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
CHANGED
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Usage:
|
|
6
6
|
* takt {task} - Execute task with current workflow (continues session)
|
|
7
|
-
* takt
|
|
8
|
-
* takt
|
|
9
|
-
* takt
|
|
10
|
-
* takt
|
|
11
|
-
* takt
|
|
7
|
+
* takt run - Run all pending tasks from .takt/tasks/
|
|
8
|
+
* takt switch - Switch workflow interactively
|
|
9
|
+
* takt clear - Clear agent conversation sessions (reset to initial state)
|
|
10
|
+
* takt --help - Show help
|
|
11
|
+
* takt config - Select permission mode interactively
|
|
12
12
|
*/
|
|
13
13
|
export interface WorktreeConfirmationResult {
|
|
14
14
|
execCwd: string;
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;GAUG;AA4CH,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAgED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,0BAA0B,CAAC,CAkBrC"}
|
package/dist/cli.js
CHANGED
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Usage:
|
|
6
6
|
* takt {task} - Execute task with current workflow (continues session)
|
|
7
|
-
* takt
|
|
8
|
-
* takt
|
|
9
|
-
* takt
|
|
10
|
-
* takt
|
|
11
|
-
* takt
|
|
7
|
+
* takt run - Run all pending tasks from .takt/tasks/
|
|
8
|
+
* takt switch - Switch workflow interactively
|
|
9
|
+
* takt clear - Clear agent conversation sessions (reset to initial state)
|
|
10
|
+
* takt --help - Show help
|
|
11
|
+
* takt config - Select permission mode interactively
|
|
12
12
|
*/
|
|
13
13
|
import { createRequire } from 'node:module';
|
|
14
14
|
import { Command } from 'commander';
|
|
@@ -17,7 +17,7 @@ import { initGlobalDirs, initProjectDirs, loadGlobalConfig, getEffectiveDebugCon
|
|
|
17
17
|
import { clearAgentSessions, getCurrentWorkflow, isVerboseMode } from './config/paths.js';
|
|
18
18
|
import { info, error, success, setLogLevel } from './utils/ui.js';
|
|
19
19
|
import { initDebugLogger, createLogger, setVerboseConsole } from './utils/debug.js';
|
|
20
|
-
import { executeTask, runAllTasks,
|
|
20
|
+
import { executeTask, runAllTasks, switchWorkflow, switchConfig, addTask, ejectBuiltin, watchTasks, listTasks, interactiveMode, } from './commands/index.js';
|
|
21
21
|
import { listWorkflows } from './config/workflowLoader.js';
|
|
22
22
|
import { selectOptionWithDefault, confirm } from './prompt/index.js';
|
|
23
23
|
import { createSharedClone } from './task/clone.js';
|
|
@@ -30,6 +30,59 @@ const require = createRequire(import.meta.url);
|
|
|
30
30
|
const { version: cliVersion } = require('../package.json');
|
|
31
31
|
const log = createLogger('cli');
|
|
32
32
|
checkForUpdates();
|
|
33
|
+
/** Resolved cwd shared across commands via preAction hook */
|
|
34
|
+
let resolvedCwd = '';
|
|
35
|
+
/**
|
|
36
|
+
* Select a workflow interactively.
|
|
37
|
+
* Returns the selected workflow name, or null if cancelled.
|
|
38
|
+
*/
|
|
39
|
+
async function selectWorkflow(cwd) {
|
|
40
|
+
const availableWorkflows = listWorkflows();
|
|
41
|
+
const currentWorkflow = getCurrentWorkflow(cwd);
|
|
42
|
+
if (availableWorkflows.length === 0) {
|
|
43
|
+
info(`No workflows found. Using default: ${DEFAULT_WORKFLOW_NAME}`);
|
|
44
|
+
return DEFAULT_WORKFLOW_NAME;
|
|
45
|
+
}
|
|
46
|
+
if (availableWorkflows.length === 1 && availableWorkflows[0]) {
|
|
47
|
+
return availableWorkflows[0];
|
|
48
|
+
}
|
|
49
|
+
const options = availableWorkflows.map((name) => ({
|
|
50
|
+
label: name === currentWorkflow ? `${name} (current)` : name,
|
|
51
|
+
value: name,
|
|
52
|
+
}));
|
|
53
|
+
const defaultWorkflow = availableWorkflows.includes(currentWorkflow)
|
|
54
|
+
? currentWorkflow
|
|
55
|
+
: (availableWorkflows.includes(DEFAULT_WORKFLOW_NAME)
|
|
56
|
+
? DEFAULT_WORKFLOW_NAME
|
|
57
|
+
: availableWorkflows[0] || DEFAULT_WORKFLOW_NAME);
|
|
58
|
+
return selectOptionWithDefault('Select workflow:', options, defaultWorkflow);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Execute a task with workflow selection, optional worktree, and auto-commit.
|
|
62
|
+
* Shared by direct task execution and interactive mode.
|
|
63
|
+
*/
|
|
64
|
+
async function selectAndExecuteTask(cwd, task) {
|
|
65
|
+
const selectedWorkflow = await selectWorkflow(cwd);
|
|
66
|
+
if (selectedWorkflow === null) {
|
|
67
|
+
info('Cancelled');
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
const { execCwd, isWorktree } = await confirmAndCreateWorktree(cwd, task);
|
|
71
|
+
log.info('Starting task execution', { workflow: selectedWorkflow, worktree: isWorktree });
|
|
72
|
+
const taskSuccess = await executeTask(task, execCwd, selectedWorkflow, cwd);
|
|
73
|
+
if (taskSuccess && isWorktree) {
|
|
74
|
+
const commitResult = autoCommitAndPush(execCwd, task, cwd);
|
|
75
|
+
if (commitResult.success && commitResult.commitHash) {
|
|
76
|
+
success(`Auto-committed & pushed: ${commitResult.commitHash}`);
|
|
77
|
+
}
|
|
78
|
+
else if (!commitResult.success) {
|
|
79
|
+
error(`Auto-commit failed: ${commitResult.message}`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
if (!taskSuccess) {
|
|
83
|
+
process.exit(1);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
33
86
|
/**
|
|
34
87
|
* Ask user whether to create a shared clone, and create one if confirmed.
|
|
35
88
|
* Returns the execution directory and whether a clone was created.
|
|
@@ -55,23 +108,17 @@ program
|
|
|
55
108
|
.name('takt')
|
|
56
109
|
.description('TAKT: Task Agent Koordination Tool')
|
|
57
110
|
.version(cliVersion);
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
.
|
|
61
|
-
const cwd = resolve(process.cwd());
|
|
62
|
-
// Initialize global directories first
|
|
111
|
+
// Common initialization for all commands
|
|
112
|
+
program.hook('preAction', async () => {
|
|
113
|
+
resolvedCwd = resolve(process.cwd());
|
|
63
114
|
await initGlobalDirs();
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
const verbose = isVerboseMode(cwd);
|
|
68
|
-
let debugConfig = getEffectiveDebugConfig(cwd);
|
|
69
|
-
// verbose=true enables file logging automatically
|
|
115
|
+
initProjectDirs(resolvedCwd);
|
|
116
|
+
const verbose = isVerboseMode(resolvedCwd);
|
|
117
|
+
let debugConfig = getEffectiveDebugConfig(resolvedCwd);
|
|
70
118
|
if (verbose && (!debugConfig || !debugConfig.enabled)) {
|
|
71
119
|
debugConfig = { enabled: true };
|
|
72
120
|
}
|
|
73
|
-
initDebugLogger(debugConfig,
|
|
74
|
-
// Enable verbose console output (stderr) for debug logs
|
|
121
|
+
initDebugLogger(debugConfig, resolvedCwd);
|
|
75
122
|
if (verbose) {
|
|
76
123
|
setVerboseConsole(true);
|
|
77
124
|
setLogLevel('debug');
|
|
@@ -80,63 +127,84 @@ program
|
|
|
80
127
|
const config = loadGlobalConfig();
|
|
81
128
|
setLogLevel(config.logLevel);
|
|
82
129
|
}
|
|
83
|
-
log.info('TAKT CLI starting', {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
130
|
+
log.info('TAKT CLI starting', { version: cliVersion, cwd: resolvedCwd, verbose });
|
|
131
|
+
});
|
|
132
|
+
// --- Subcommands ---
|
|
133
|
+
program
|
|
134
|
+
.command('run')
|
|
135
|
+
.description('Run all pending tasks from .takt/tasks/')
|
|
136
|
+
.action(async () => {
|
|
137
|
+
const workflow = getCurrentWorkflow(resolvedCwd);
|
|
138
|
+
await runAllTasks(resolvedCwd, workflow);
|
|
139
|
+
});
|
|
140
|
+
program
|
|
141
|
+
.command('watch')
|
|
142
|
+
.description('Watch for tasks and auto-execute')
|
|
143
|
+
.action(async () => {
|
|
144
|
+
await watchTasks(resolvedCwd);
|
|
145
|
+
});
|
|
146
|
+
program
|
|
147
|
+
.command('add')
|
|
148
|
+
.description('Add a new task (interactive AI conversation)')
|
|
149
|
+
.argument('[task]', 'Task description or GitHub issue reference (e.g. "#28")')
|
|
150
|
+
.action(async (task) => {
|
|
151
|
+
await addTask(resolvedCwd, task);
|
|
152
|
+
});
|
|
153
|
+
program
|
|
154
|
+
.command('list')
|
|
155
|
+
.description('List task branches (merge/delete)')
|
|
156
|
+
.action(async () => {
|
|
157
|
+
await listTasks(resolvedCwd);
|
|
158
|
+
});
|
|
159
|
+
program
|
|
160
|
+
.command('switch')
|
|
161
|
+
.description('Switch workflow interactively')
|
|
162
|
+
.argument('[workflow]', 'Workflow name')
|
|
163
|
+
.action(async (workflow) => {
|
|
164
|
+
await switchWorkflow(resolvedCwd, workflow);
|
|
165
|
+
});
|
|
166
|
+
program
|
|
167
|
+
.command('clear')
|
|
168
|
+
.description('Clear agent conversation sessions')
|
|
169
|
+
.action(() => {
|
|
170
|
+
clearAgentSessions(resolvedCwd);
|
|
171
|
+
success('Agent sessions cleared');
|
|
172
|
+
});
|
|
173
|
+
program
|
|
174
|
+
.command('eject')
|
|
175
|
+
.description('Copy builtin workflow/agents to ~/.takt/ for customization')
|
|
176
|
+
.argument('[name]', 'Specific builtin to eject')
|
|
177
|
+
.action(async (name) => {
|
|
178
|
+
await ejectBuiltin(name);
|
|
179
|
+
});
|
|
180
|
+
program
|
|
181
|
+
.command('config')
|
|
182
|
+
.description('Configure settings (permission mode)')
|
|
183
|
+
.argument('[key]', 'Configuration key')
|
|
184
|
+
.action(async (key) => {
|
|
185
|
+
await switchConfig(resolvedCwd, key);
|
|
186
|
+
});
|
|
187
|
+
// --- Default action: task execution or interactive mode ---
|
|
188
|
+
/**
|
|
189
|
+
* Check if the input is a task description (should execute directly)
|
|
190
|
+
* vs a short input that should enter interactive mode as initial input.
|
|
191
|
+
*
|
|
192
|
+
* Task descriptions: contain spaces, or are issue references (#N).
|
|
193
|
+
* Short single words: routed to interactive mode as first message.
|
|
194
|
+
*/
|
|
195
|
+
function isDirectTask(input) {
|
|
196
|
+
// Multi-word input is a task description
|
|
197
|
+
if (input.includes(' '))
|
|
198
|
+
return true;
|
|
199
|
+
// Issue references are direct tasks
|
|
200
|
+
if (isIssueReference(input) || input.trim().split(/\s+/).every((t) => isIssueReference(t)))
|
|
201
|
+
return true;
|
|
202
|
+
return false;
|
|
203
|
+
}
|
|
204
|
+
program
|
|
205
|
+
.argument('[task]', 'Task to execute (or GitHub issue reference like "#6")')
|
|
206
|
+
.action(async (task) => {
|
|
207
|
+
if (task && isDirectTask(task)) {
|
|
140
208
|
// Resolve #N issue references to task text
|
|
141
209
|
let resolvedTask = task;
|
|
142
210
|
if (isIssueReference(task) || task.trim().split(/\s+/).every((t) => isIssueReference(t))) {
|
|
@@ -149,58 +217,15 @@ program
|
|
|
149
217
|
process.exit(1);
|
|
150
218
|
}
|
|
151
219
|
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
selectedWorkflow = DEFAULT_WORKFLOW_NAME;
|
|
159
|
-
info(`No workflows found. Using default: ${selectedWorkflow}`);
|
|
160
|
-
}
|
|
161
|
-
else if (availableWorkflows.length === 1 && availableWorkflows[0]) {
|
|
162
|
-
// Only one workflow, use it directly
|
|
163
|
-
selectedWorkflow = availableWorkflows[0];
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
// Multiple workflows, prompt user to select
|
|
167
|
-
const options = availableWorkflows.map((name) => ({
|
|
168
|
-
label: name === currentWorkflow ? `${name} (current)` : name,
|
|
169
|
-
value: name,
|
|
170
|
-
}));
|
|
171
|
-
// Use current workflow as default, fallback to DEFAULT_WORKFLOW_NAME
|
|
172
|
-
const defaultWorkflow = availableWorkflows.includes(currentWorkflow)
|
|
173
|
-
? currentWorkflow
|
|
174
|
-
: (availableWorkflows.includes(DEFAULT_WORKFLOW_NAME)
|
|
175
|
-
? DEFAULT_WORKFLOW_NAME
|
|
176
|
-
: availableWorkflows[0] || DEFAULT_WORKFLOW_NAME);
|
|
177
|
-
const selected = await selectOptionWithDefault('Select workflow:', options, defaultWorkflow);
|
|
178
|
-
if (selected === null) {
|
|
179
|
-
info('Cancelled');
|
|
180
|
-
return;
|
|
181
|
-
}
|
|
182
|
-
selectedWorkflow = selected;
|
|
183
|
-
}
|
|
184
|
-
// Ask whether to create a worktree
|
|
185
|
-
const { execCwd, isWorktree } = await confirmAndCreateWorktree(cwd, resolvedTask);
|
|
186
|
-
log.info('Starting task execution', { task: resolvedTask, workflow: selectedWorkflow, worktree: isWorktree });
|
|
187
|
-
const taskSuccess = await executeTask(resolvedTask, execCwd, selectedWorkflow, cwd);
|
|
188
|
-
if (taskSuccess && isWorktree) {
|
|
189
|
-
const commitResult = autoCommitAndPush(execCwd, resolvedTask, cwd);
|
|
190
|
-
if (commitResult.success && commitResult.commitHash) {
|
|
191
|
-
success(`Auto-committed & pushed: ${commitResult.commitHash}`);
|
|
192
|
-
}
|
|
193
|
-
else if (!commitResult.success) {
|
|
194
|
-
error(`Auto-commit failed: ${commitResult.message}`);
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
if (!taskSuccess) {
|
|
198
|
-
process.exit(1);
|
|
199
|
-
}
|
|
220
|
+
await selectAndExecuteTask(resolvedCwd, resolvedTask);
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
// Short single word or no task → interactive mode (with optional initial input)
|
|
224
|
+
const result = await interactiveMode(resolvedCwd, task);
|
|
225
|
+
if (!result.confirmed) {
|
|
200
226
|
return;
|
|
201
227
|
}
|
|
202
|
-
|
|
203
|
-
showHelp();
|
|
228
|
+
await selectAndExecuteTask(resolvedCwd, result.task);
|
|
204
229
|
});
|
|
205
230
|
program.parse();
|
|
206
231
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,EACL,WAAW,EACX,WAAW,EACX,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|