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.
Files changed (45) hide show
  1. package/README.md +32 -36
  2. package/dist/claude/executor.d.ts.map +1 -1
  3. package/dist/claude/executor.js +17 -8
  4. package/dist/claude/executor.js.map +1 -1
  5. package/dist/cli.d.ts +5 -5
  6. package/dist/cli.d.ts.map +1 -1
  7. package/dist/cli.js +151 -126
  8. package/dist/cli.js.map +1 -1
  9. package/dist/commands/addTask.d.ts +15 -8
  10. package/dist/commands/addTask.d.ts.map +1 -1
  11. package/dist/commands/addTask.js +61 -39
  12. package/dist/commands/addTask.js.map +1 -1
  13. package/dist/commands/eject.js +2 -2
  14. package/dist/commands/eject.js.map +1 -1
  15. package/dist/commands/index.d.ts +1 -2
  16. package/dist/commands/index.d.ts.map +1 -1
  17. package/dist/commands/index.js +1 -2
  18. package/dist/commands/index.js.map +1 -1
  19. package/dist/commands/interactive.d.ts +28 -0
  20. package/dist/commands/interactive.d.ts.map +1 -0
  21. package/dist/commands/interactive.js +186 -0
  22. package/dist/commands/interactive.js.map +1 -0
  23. package/dist/commands/taskExecution.js +2 -2
  24. package/dist/commands/taskExecution.js.map +1 -1
  25. package/dist/prompt/index.d.ts +0 -7
  26. package/dist/prompt/index.d.ts.map +1 -1
  27. package/dist/prompt/index.js +0 -11
  28. package/dist/prompt/index.js.map +1 -1
  29. package/dist/task/display.js +1 -1
  30. package/dist/task/display.js.map +1 -1
  31. package/package.json +1 -1
  32. package/resources/global/en/agents/default/ai-antipattern-reviewer.md +13 -0
  33. package/resources/global/en/agents/default/supervisor.md +9 -0
  34. package/resources/global/en/agents/expert/supervisor.md +2 -0
  35. package/resources/global/ja/agents/default/ai-antipattern-reviewer.md +13 -0
  36. package/resources/global/ja/agents/default/supervisor.md +9 -0
  37. package/resources/global/ja/agents/expert/supervisor.md +2 -0
  38. package/dist/commands/help.d.ts +0 -8
  39. package/dist/commands/help.d.ts.map +0 -1
  40. package/dist/commands/help.js +0 -55
  41. package/dist/commands/help.js.map +0 -1
  42. package/dist/commands/refreshBuiltin.d.ts +0 -11
  43. package/dist/commands/refreshBuiltin.d.ts.map +0 -1
  44. package/dist/commands/refreshBuiltin.js +0 -21
  45. 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 to the queue
34
- takt /add-task "Fix the login bug"
33
+ # Add a task via AI conversation
34
+ takt add
35
35
 
36
36
  # Run all pending tasks
37
- takt /run-tasks
37
+ takt run
38
38
 
39
39
  # Watch for tasks and auto-execute
40
- takt /watch
40
+ takt watch
41
41
 
42
42
  # List task branches (merge or delete)
43
- takt /list-tasks
43
+ takt list
44
44
 
45
45
  # Switch workflow
46
- takt /switch
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 | Alias | 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 /run-tasks` | `/run` | Run all pending tasks from `.takt/tasks/` |
95
- | `takt /watch` | | Watch `.takt/tasks/` and auto-execute tasks (stays resident) |
96
- | `takt /add-task` | `/add` | Add a new task interactively (YAML format, multiline supported) |
97
- | `takt /list-tasks` | `/list` | List task branches (try merge, merge & cleanup, or delete) |
98
- | `takt /switch` | `/sw` | Switch workflow interactively |
99
- | `takt /clear` | | Clear agent conversation sessions |
100
- | `takt /eject` | | Copy builtin workflow/agents to `~/.takt/` for customization |
101
- | `takt /refresh-builtin` | | Update builtin agents/workflows to latest version |
102
- | `takt /config` | | Configure permission mode |
103
- | `takt /help` | | Show help |
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 `/eject` to copy a builtin to `~/.takt/` for customization.
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 /switch`.
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 /eject default
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 `/add-task`
368
+ #### Adding Tasks with `takt add`
369
369
 
370
370
  ```bash
371
- # Quick add (no isolation)
372
- takt /add-task "Add authentication feature"
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 /list-tasks` to list, try-merge, or delete task branches.
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 /run-tasks
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 /watch
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 /list-tasks
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;AAoDD;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,YAAY,CAAC,CA8EvB"}
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"}
@@ -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.systemPrompt) {
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":"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"}
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 /run-tasks - 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
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;AA0CH,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,0BAA0B,CAAC,CAkBrC"}
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 /run-tasks - 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
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, showHelp, switchWorkflow, switchConfig, addTask, refreshBuiltin, ejectBuiltin, watchTasks, listTasks, } from './commands/index.js';
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
- program
59
- .argument('[task]', 'Task to execute or slash command')
60
- .action(async (task) => {
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
- // Initialize project directories (.takt/)
65
- initProjectDirs(cwd);
66
- // Determine verbose mode and initialize logging
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, cwd);
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
- version: cliVersion,
85
- cwd,
86
- task: task || null,
87
- verbose,
88
- });
89
- // Handle slash commands
90
- if (task?.startsWith('/')) {
91
- const parts = task.slice(1).split(/\s+/);
92
- const command = parts[0]?.toLowerCase() || '';
93
- const args = parts.slice(1);
94
- switch (command) {
95
- case 'run-tasks':
96
- case 'run': {
97
- const workflow = getCurrentWorkflow(cwd);
98
- await runAllTasks(cwd, workflow);
99
- return;
100
- }
101
- case 'clear':
102
- clearAgentSessions(cwd);
103
- success('Agent sessions cleared');
104
- return;
105
- case 'switch':
106
- case 'sw':
107
- await switchWorkflow(cwd, args[0]);
108
- return;
109
- case 'help':
110
- showHelp();
111
- return;
112
- case 'config':
113
- await switchConfig(cwd, args[0]);
114
- return;
115
- case 'add-task':
116
- case 'add':
117
- await addTask(cwd, args);
118
- return;
119
- case 'refresh-builtin':
120
- await refreshBuiltin();
121
- return;
122
- case 'eject':
123
- await ejectBuiltin(args[0]);
124
- return;
125
- case 'watch':
126
- await watchTasks(cwd);
127
- return;
128
- case 'list-tasks':
129
- case 'list':
130
- await listTasks(cwd);
131
- return;
132
- default:
133
- error(`Unknown command: /${command}`);
134
- info('Available: /run-tasks (/run), /watch, /add-task (/add), /list-tasks (/list), /switch (/sw), /clear, /eject, /help, /config');
135
- process.exit(1);
136
- }
137
- }
138
- // Task execution
139
- if (task) {
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
- // Get available workflows and prompt user to select
153
- const availableWorkflows = listWorkflows();
154
- const currentWorkflow = getCurrentWorkflow(cwd);
155
- let selectedWorkflow;
156
- if (availableWorkflows.length === 0) {
157
- // No workflows available, use default
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
- // No task provided - show help
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":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}