takt 0.35.0 → 0.35.2

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 (125) hide show
  1. package/README.md +2 -2
  2. package/builtins/en/facets/instructions/write-tests-first.md +4 -34
  3. package/builtins/en/facets/output-contracts/test-report.md +20 -0
  4. package/builtins/en/workflows/backend-cqrs.yaml +2 -4
  5. package/builtins/en/workflows/backend.yaml +2 -4
  6. package/builtins/en/workflows/default.yaml +2 -4
  7. package/builtins/en/workflows/dual.yaml +2 -4
  8. package/builtins/en/workflows/frontend.yaml +2 -4
  9. package/builtins/en/workflows/takt-default.yaml +2 -4
  10. package/builtins/ja/facets/instructions/write-tests-first.md +4 -34
  11. package/builtins/ja/facets/output-contracts/test-report.md +20 -0
  12. package/builtins/ja/workflows/backend-cqrs.yaml +2 -4
  13. package/builtins/ja/workflows/backend.yaml +2 -4
  14. package/builtins/ja/workflows/default.yaml +2 -4
  15. package/builtins/ja/workflows/dual.yaml +2 -4
  16. package/builtins/ja/workflows/frontend.yaml +2 -4
  17. package/builtins/ja/workflows/takt-default.yaml +2 -4
  18. package/dist/app/cli/immediateSigintExit.d.ts +17 -0
  19. package/dist/app/cli/immediateSigintExit.d.ts.map +1 -0
  20. package/dist/app/cli/immediateSigintExit.js +33 -0
  21. package/dist/app/cli/immediateSigintExit.js.map +1 -0
  22. package/dist/app/cli/index.d.ts.map +1 -1
  23. package/dist/app/cli/index.js +2 -0
  24. package/dist/app/cli/index.js.map +1 -1
  25. package/dist/core/piece/run/run-meta.d.ts +19 -0
  26. package/dist/core/piece/run/run-meta.d.ts.map +1 -0
  27. package/dist/core/piece/run/run-meta.js +42 -0
  28. package/dist/core/piece/run/run-meta.js.map +1 -0
  29. package/dist/features/interactive/runSessionReader.d.ts.map +1 -1
  30. package/dist/features/interactive/runSessionReader.js +4 -21
  31. package/dist/features/interactive/runSessionReader.js.map +1 -1
  32. package/dist/features/pipeline/steps.d.ts.map +1 -1
  33. package/dist/features/pipeline/steps.js +15 -7
  34. package/dist/features/pipeline/steps.js.map +1 -1
  35. package/dist/features/tasks/execute/outputFns.d.ts.map +1 -1
  36. package/dist/features/tasks/execute/outputFns.js +16 -1
  37. package/dist/features/tasks/execute/outputFns.js.map +1 -1
  38. package/dist/features/tasks/execute/pieceExecution.d.ts.map +1 -1
  39. package/dist/features/tasks/execute/pieceExecution.js +7 -1
  40. package/dist/features/tasks/execute/pieceExecution.js.map +1 -1
  41. package/dist/features/tasks/execute/resolveTask.d.ts +1 -1
  42. package/dist/features/tasks/execute/resolveTask.d.ts.map +1 -1
  43. package/dist/features/tasks/execute/resolveTask.js +6 -4
  44. package/dist/features/tasks/execute/resolveTask.js.map +1 -1
  45. package/dist/features/tasks/execute/runAllTasks.d.ts.map +1 -1
  46. package/dist/features/tasks/execute/runAllTasks.js +5 -0
  47. package/dist/features/tasks/execute/runAllTasks.js.map +1 -1
  48. package/dist/features/tasks/execute/runMeta.d.ts +1 -0
  49. package/dist/features/tasks/execute/runMeta.d.ts.map +1 -1
  50. package/dist/features/tasks/execute/runMeta.js +5 -0
  51. package/dist/features/tasks/execute/runMeta.js.map +1 -1
  52. package/dist/features/tasks/execute/selectAndExecute.d.ts.map +1 -1
  53. package/dist/features/tasks/execute/selectAndExecute.js +5 -0
  54. package/dist/features/tasks/execute/selectAndExecute.js.map +1 -1
  55. package/dist/features/tasks/execute/taskExecution.d.ts.map +1 -1
  56. package/dist/features/tasks/execute/taskExecution.js +12 -5
  57. package/dist/features/tasks/execute/taskExecution.js.map +1 -1
  58. package/dist/features/tasks/list/index.d.ts.map +1 -1
  59. package/dist/features/tasks/list/index.js +13 -7
  60. package/dist/features/tasks/list/index.js.map +1 -1
  61. package/dist/features/tasks/list/taskForceFailActions.d.ts +3 -0
  62. package/dist/features/tasks/list/taskForceFailActions.d.ts.map +1 -0
  63. package/dist/features/tasks/list/taskForceFailActions.js +67 -0
  64. package/dist/features/tasks/list/taskForceFailActions.js.map +1 -0
  65. package/dist/infra/claude-headless/headless-spawn.d.ts.map +1 -1
  66. package/dist/infra/claude-headless/headless-spawn.js +9 -2
  67. package/dist/infra/claude-headless/headless-spawn.js.map +1 -1
  68. package/dist/infra/claude-headless/stream-json-lines.d.ts +1 -0
  69. package/dist/infra/claude-headless/stream-json-lines.d.ts.map +1 -1
  70. package/dist/infra/claude-headless/stream-json-lines.js +27 -0
  71. package/dist/infra/claude-headless/stream-json-lines.js.map +1 -1
  72. package/dist/infra/providers/codex.d.ts.map +1 -1
  73. package/dist/infra/providers/codex.js +0 -27
  74. package/dist/infra/providers/codex.js.map +1 -1
  75. package/dist/infra/task/clone-base-branch.d.ts +7 -0
  76. package/dist/infra/task/clone-base-branch.d.ts.map +1 -1
  77. package/dist/infra/task/clone-base-branch.js +48 -0
  78. package/dist/infra/task/clone-base-branch.js.map +1 -1
  79. package/dist/infra/task/clone-exec.d.ts +5 -0
  80. package/dist/infra/task/clone-exec.d.ts.map +1 -1
  81. package/dist/infra/task/clone-exec.js +138 -1
  82. package/dist/infra/task/clone-exec.js.map +1 -1
  83. package/dist/infra/task/clone.d.ts +2 -0
  84. package/dist/infra/task/clone.d.ts.map +1 -1
  85. package/dist/infra/task/clone.js +39 -2
  86. package/dist/infra/task/clone.js.map +1 -1
  87. package/dist/infra/task/index.d.ts +1 -1
  88. package/dist/infra/task/index.d.ts.map +1 -1
  89. package/dist/infra/task/index.js +1 -1
  90. package/dist/infra/task/index.js.map +1 -1
  91. package/dist/infra/task/mapper.d.ts.map +1 -1
  92. package/dist/infra/task/mapper.js +3 -0
  93. package/dist/infra/task/mapper.js.map +1 -1
  94. package/dist/infra/task/runner.d.ts +7 -1
  95. package/dist/infra/task/runner.d.ts.map +1 -1
  96. package/dist/infra/task/runner.js +6 -0
  97. package/dist/infra/task/runner.js.map +1 -1
  98. package/dist/infra/task/schema.d.ts +6 -0
  99. package/dist/infra/task/schema.d.ts.map +1 -1
  100. package/dist/infra/task/schema.js +1 -0
  101. package/dist/infra/task/schema.js.map +1 -1
  102. package/dist/infra/task/taskLifecycleService.d.ts +7 -1
  103. package/dist/infra/task/taskLifecycleService.d.ts.map +1 -1
  104. package/dist/infra/task/taskLifecycleService.js +45 -0
  105. package/dist/infra/task/taskLifecycleService.js.map +1 -1
  106. package/dist/infra/task/types.d.ts +3 -0
  107. package/dist/infra/task/types.d.ts.map +1 -1
  108. package/dist/shared/ui/Progress.d.ts.map +1 -1
  109. package/dist/shared/ui/Progress.js +26 -7
  110. package/dist/shared/ui/Progress.js.map +1 -1
  111. package/dist/shared/ui/StatusLine.d.ts +24 -0
  112. package/dist/shared/ui/StatusLine.d.ts.map +1 -0
  113. package/dist/shared/ui/StatusLine.js +81 -0
  114. package/dist/shared/ui/StatusLine.js.map +1 -0
  115. package/dist/shared/ui/StreamDisplay.d.ts.map +1 -1
  116. package/dist/shared/ui/StreamDisplay.js.map +1 -1
  117. package/dist/shared/ui/TaskPrefixWriter.d.ts +4 -2
  118. package/dist/shared/ui/TaskPrefixWriter.d.ts.map +1 -1
  119. package/dist/shared/ui/TaskPrefixWriter.js +8 -4
  120. package/dist/shared/ui/TaskPrefixWriter.js.map +1 -1
  121. package/dist/shared/ui/index.d.ts +1 -0
  122. package/dist/shared/ui/index.d.ts.map +1 -1
  123. package/dist/shared/ui/index.js +1 -0
  124. package/dist/shared/ui/index.js.map +1 -1
  125. package/package.json +1 -1
package/README.md CHANGED
@@ -86,7 +86,7 @@ takt run
86
86
  ### Manage results
87
87
 
88
88
  ```bash
89
- # List completed/failed task branches — merge, retry, or delete
89
+ # List task branches — merge, retry, force-fail, or delete
90
90
  takt list
91
91
  ```
92
92
 
@@ -150,7 +150,7 @@ See the [Builtin Catalog](./docs/builtin-catalog.md) for all workflows and perso
150
150
  |---------|-------------|
151
151
  | `takt` | Talk to AI, refine requirements, execute or queue tasks |
152
152
  | `takt run` | Execute all pending tasks |
153
- | `takt list` | Manage task branches (merge, retry, instruct, delete) |
153
+ | `takt list` | Manage task branches (merge, retry, force-fail, instruct, delete) |
154
154
  | `takt #N` | Execute GitHub Issue as task |
155
155
  | `takt eject` | Copy builtin workflows/facets for customization |
156
156
  | `takt repertoire add` | Install a repertoire package from GitHub |
@@ -24,37 +24,7 @@ Refer only to files within the Report Directory shown in the Piece Context. Do n
24
24
  - Include tests that would catch implementations that incorrectly reuse a response envelope when reading requests
25
25
  - Write tests that are expected to pass after implementation is complete (build errors and test failures are expected at this stage)
26
26
 
27
- **Scope output contract (create at the start):**
28
- ```markdown
29
- # Change Scope Declaration
30
-
31
- ## Task
32
- {One-line task summary}
33
-
34
- ## Planned changes
35
- | Type | File |
36
- |------|------|
37
- | Create | `src/__tests__/example.test.ts` |
38
-
39
- ## Estimated size
40
- Small / Medium / Large
41
-
42
- ## Impact area
43
- - {Affected modules or features}
44
- ```
45
-
46
- **Decisions output contract (at completion, only if decisions were made):**
47
- ```markdown
48
- # Decision Log
49
-
50
- ## 1. {Decision}
51
- - **Context**: {Why the decision was needed}
52
- - **Options considered**: {List of options}
53
- - **Rationale**: {Reason for the choice}
54
- ```
55
-
56
- **Required output (include headings)**
57
- ## Work results
58
- - {Summary of actions taken}
59
- ## Changes made
60
- - {List of test files created}
27
+ **Test execution:**
28
+ - Run tests after creating them to check results
29
+ - Test failures and import errors are expected before implementation (including imports of not-yet-implemented modules)
30
+ - Fix errors that will persist after implementation, such as wrong import paths for existing modules
@@ -0,0 +1,20 @@
1
+ ```markdown
2
+ # Test Creation Report
3
+
4
+ ## Created Tests
5
+ | File | Type | Count | Summary |
6
+ |------|------|-------|---------|
7
+ | `{test file path}` | Unit / Integration | {N} | {what is tested} |
8
+
9
+ ## Execution Results (Reference)
10
+ Test failures and import errors are expected before implementation.
11
+
12
+ | Status | Count | Notes |
13
+ |--------|-------|-------|
14
+ | Pass | {N} | |
15
+ | Fail / Import Error (expected) | {N} | Due to unimplemented modules |
16
+ | Error (needs fix) | {N} | Wrong paths for existing modules, etc. |
17
+
18
+ ## Notes (only if decisions were made)
19
+ - {Test design decisions or notes}
20
+ ```
@@ -98,10 +98,8 @@ steps:
98
98
  interactive_only: true
99
99
  output_contracts:
100
100
  report:
101
- - name: test-scope.md
102
- format: coder-scope
103
- - name: test-decisions.md
104
- format: coder-decisions
101
+ - name: test-report.md
102
+ format: test-report
105
103
  - name: implement
106
104
  edit: true
107
105
  persona: coder
@@ -96,10 +96,8 @@ steps:
96
96
  interactive_only: true
97
97
  output_contracts:
98
98
  report:
99
- - name: test-scope.md
100
- format: coder-scope
101
- - name: test-decisions.md
102
- format: coder-decisions
99
+ - name: test-report.md
100
+ format: test-report
103
101
  - name: implement
104
102
  edit: true
105
103
  persona: coder
@@ -111,10 +111,8 @@ steps:
111
111
  interactive_only: true
112
112
  output_contracts:
113
113
  report:
114
- - name: test-scope.md
115
- format: coder-scope
116
- - name: test-decisions.md
117
- format: coder-decisions
114
+ - name: test-report.md
115
+ format: test-report
118
116
  - name: implement
119
117
  edit: true
120
118
  persona: coder
@@ -106,10 +106,8 @@ steps:
106
106
  interactive_only: true
107
107
  output_contracts:
108
108
  report:
109
- - name: test-scope.md
110
- format: coder-scope
111
- - name: test-decisions.md
112
- format: coder-decisions
109
+ - name: test-report.md
110
+ format: test-report
113
111
  - name: implement
114
112
  edit: true
115
113
  persona: coder
@@ -100,10 +100,8 @@ steps:
100
100
  interactive_only: true
101
101
  output_contracts:
102
102
  report:
103
- - name: test-scope.md
104
- format: coder-scope
105
- - name: test-decisions.md
106
- format: coder-decisions
103
+ - name: test-report.md
104
+ format: test-report
107
105
  - name: implement
108
106
  edit: true
109
107
  persona: coder
@@ -100,10 +100,8 @@ steps:
100
100
  interactive_only: true
101
101
  output_contracts:
102
102
  report:
103
- - name: test-scope.md
104
- format: coder-scope
105
- - name: test-decisions.md
106
- format: coder-decisions
103
+ - name: test-report.md
104
+ format: test-report
107
105
  - name: implement
108
106
  edit: true
109
107
  persona: coder
@@ -24,37 +24,7 @@ Piece Contextに示されたReport Directory内のファイルのみ参照して
24
24
  - レスポンス標準の envelope をリクエスト解釈へ流用した実装を見逃さないテストを含める
25
25
  - テストは実装完了後にパスすることを前提に書く(この段階ではビルドエラーやテスト失敗は想定内)
26
26
 
27
- **Scope出力契約(作成開始時に作成):**
28
- ```markdown
29
- # 変更スコープ宣言
30
-
31
- ## タスク
32
- {タスクの1行要約}
33
-
34
- ## 変更予定
35
- | 種別 | ファイル |
36
- |------|---------|
37
- | 作成 | `src/__tests__/example.test.ts` |
38
-
39
- ## 推定規模
40
- Small / Medium / Large
41
-
42
- ## 影響範囲
43
- - {影響するモジュールや機能}
44
- ```
45
-
46
- **Decisions出力契約(完了時、決定がある場合のみ):**
47
- ```markdown
48
- # 決定ログ
49
-
50
- ## 1. {決定内容}
51
- - **背景**: {なぜ決定が必要だったか}
52
- - **検討した選択肢**: {選択肢リスト}
53
- - **理由**: {選んだ理由}
54
- ```
55
-
56
- **必須出力(見出しを含める)**
57
- ## 作業結果
58
- - {実施内容の要約}
59
- ## 変更内容
60
- - {作成したテストファイル一覧}
27
+ **テスト実行について:**
28
+ - テスト作成後、テストを実行して結果を確認する
29
+ - 実装前のためテスト失敗・import エラーは想定内(未実装モジュールの import を含む)
30
+ - 既存モジュールの import パスミスなど、実装完了後も解消しないエラーは修正する
@@ -0,0 +1,20 @@
1
+ ```markdown
2
+ # テスト作成レポート
3
+
4
+ ## 作成テスト
5
+ | ファイル | 種別 | テスト数 | 概要 |
6
+ |---------|------|---------|------|
7
+ | `{テストファイルパス}` | 単体 / 統合 | {N} | {テスト対象の概要} |
8
+
9
+ ## 実行結果(参考)
10
+ 実装前のためテスト失敗・import エラーは想定内。
11
+
12
+ | 状態 | 件数 | 備考 |
13
+ |------|------|------|
14
+ | Pass | {N} | |
15
+ | Fail / Import Error(想定内) | {N} | 未実装モジュール起因 |
16
+ | Error(要対応) | {N} | 既存パスミス等、実装後も残るもの |
17
+
18
+ ## 備考(判断がある場合のみ)
19
+ - {テスト設計の判断や注意点}
20
+ ```
@@ -98,10 +98,8 @@ steps:
98
98
  interactive_only: true
99
99
  output_contracts:
100
100
  report:
101
- - name: test-scope.md
102
- format: coder-scope
103
- - name: test-decisions.md
104
- format: coder-decisions
101
+ - name: test-report.md
102
+ format: test-report
105
103
  - name: implement
106
104
  edit: true
107
105
  persona: coder
@@ -96,10 +96,8 @@ steps:
96
96
  interactive_only: true
97
97
  output_contracts:
98
98
  report:
99
- - name: test-scope.md
100
- format: coder-scope
101
- - name: test-decisions.md
102
- format: coder-decisions
99
+ - name: test-report.md
100
+ format: test-report
103
101
  - name: implement
104
102
  edit: true
105
103
  persona: coder
@@ -111,10 +111,8 @@ steps:
111
111
  interactive_only: true
112
112
  output_contracts:
113
113
  report:
114
- - name: test-scope.md
115
- format: coder-scope
116
- - name: test-decisions.md
117
- format: coder-decisions
114
+ - name: test-report.md
115
+ format: test-report
118
116
  - name: implement
119
117
  edit: true
120
118
  persona: coder
@@ -106,10 +106,8 @@ steps:
106
106
  interactive_only: true
107
107
  output_contracts:
108
108
  report:
109
- - name: test-scope.md
110
- format: coder-scope
111
- - name: test-decisions.md
112
- format: coder-decisions
109
+ - name: test-report.md
110
+ format: test-report
113
111
  - name: implement
114
112
  edit: true
115
113
  persona: coder
@@ -100,10 +100,8 @@ steps:
100
100
  interactive_only: true
101
101
  output_contracts:
102
102
  report:
103
- - name: test-scope.md
104
- format: coder-scope
105
- - name: test-decisions.md
106
- format: coder-decisions
103
+ - name: test-report.md
104
+ format: test-report
107
105
  - name: implement
108
106
  edit: true
109
107
  persona: coder
@@ -100,10 +100,8 @@ steps:
100
100
  interactive_only: true
101
101
  output_contracts:
102
102
  report:
103
- - name: test-scope.md
104
- format: coder-scope
105
- - name: test-decisions.md
106
- format: coder-decisions
103
+ - name: test-report.md
104
+ format: test-report
107
105
  - name: implement
108
106
  edit: true
109
107
  persona: coder
@@ -0,0 +1,17 @@
1
+ import { EventEmitter } from 'node:events';
2
+ type StdinLike = EventEmitter & {
3
+ isTTY?: boolean;
4
+ isRaw?: boolean;
5
+ setRawMode?: (mode: boolean) => void;
6
+ resume: () => void;
7
+ removeListener: (event: string, listener: (...args: unknown[]) => void) => StdinLike;
8
+ on: (event: string, listener: (...args: unknown[]) => void) => StdinLike;
9
+ };
10
+ type ProcessLike = EventEmitter & {
11
+ pid: number;
12
+ stdin: StdinLike;
13
+ once: (event: string, listener: (...args: unknown[]) => void) => ProcessLike;
14
+ };
15
+ export declare function installImmediateSigintExit(commandName: string | undefined, runtime?: ProcessLike): void;
16
+ export {};
17
+ //# sourceMappingURL=immediateSigintExit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"immediateSigintExit.d.ts","sourceRoot":"","sources":["../../../src/app/cli/immediateSigintExit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,KAAK,SAAS,GAAG,YAAY,GAAG;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK,SAAS,CAAC;IACrF,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK,SAAS,CAAC;CAC1E,CAAC;AAEF,KAAK,WAAW,GAAG,YAAY,GAAG;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK,WAAW,CAAC;CAC9E,CAAC;AAMF,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,OAAO,GAAE,WAA+C,GACvD,IAAI,CAkCN"}
@@ -0,0 +1,33 @@
1
+ function isRunLikeCommand(commandName) {
2
+ return commandName === 'run' || commandName === 'watch';
3
+ }
4
+ export function installImmediateSigintExit(commandName, runtime = process) {
5
+ if (!isRunLikeCommand(commandName)) {
6
+ return;
7
+ }
8
+ const stdin = runtime.stdin;
9
+ const hadRawMode = stdin.isRaw === true;
10
+ let enabledRawMode = false;
11
+ if (!stdin.isTTY) {
12
+ return;
13
+ }
14
+ if (typeof stdin.setRawMode === 'function' && !hadRawMode) {
15
+ stdin.setRawMode(true);
16
+ enabledRawMode = true;
17
+ }
18
+ const onData = (chunk) => {
19
+ const text = typeof chunk === 'string' ? chunk : chunk.toString('utf-8');
20
+ if (text.includes('\u0003')) {
21
+ runtime.emit('SIGINT');
22
+ }
23
+ };
24
+ stdin.on('data', onData);
25
+ stdin.resume();
26
+ runtime.once('exit', () => {
27
+ stdin.removeListener('data', onData);
28
+ if (enabledRawMode && typeof stdin.setRawMode === 'function') {
29
+ stdin.setRawMode(false);
30
+ }
31
+ });
32
+ }
33
+ //# sourceMappingURL=immediateSigintExit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"immediateSigintExit.js","sourceRoot":"","sources":["../../../src/app/cli/immediateSigintExit.ts"],"names":[],"mappings":"AAiBA,SAAS,gBAAgB,CAAC,WAA+B;IACvD,OAAO,WAAW,KAAK,KAAK,IAAI,WAAW,KAAK,OAAO,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,WAA+B,EAC/B,UAAuB,OAAiC;IAExD,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC;QACnC,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC5B,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC;IACxC,IAAI,cAAc,GAAG,KAAK,CAAC;IAE3B,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,UAAU,IAAI,CAAC,UAAU,EAAE,CAAC;QAC1D,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACvB,cAAc,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,KAAsB,EAAQ,EAAE;QAC9C,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzE,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;IACH,CAAC,CAAC;IAEF,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,KAAK,CAAC,MAAM,EAAE,CAAC;IAEf,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;QACxB,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACrC,IAAI,cAAc,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YAC7D,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/app/cli/index.ts"],"names":[],"mappings":";AAEA;;;;GAIG;AAWH,OAAO,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/app/cli/index.ts"],"names":[],"mappings":";AAEA;;;;GAIG;AAYH,OAAO,eAAe,CAAC"}
@@ -8,6 +8,7 @@ import { checkForUpdates } from '../../shared/utils/index.js';
8
8
  import { getErrorMessage } from '../../shared/utils/error.js';
9
9
  import { error as errorLog } from '../../shared/ui/index.js';
10
10
  import { resolveRemovedRootCommand, resolveSlashFallbackTask } from './helpers.js';
11
+ import { installImmediateSigintExit } from './immediateSigintExit.js';
11
12
  checkForUpdates();
12
13
  // Import in dependency order
13
14
  import { program, runPreActionHook } from './program.js';
@@ -15,6 +16,7 @@ import './commands.js';
15
16
  import { executeDefaultAction } from './routing.js';
16
17
  (async () => {
17
18
  const args = process.argv.slice(2);
19
+ installImmediateSigintExit(args[0]);
18
20
  const { operands } = program.parseOptions(args);
19
21
  const removedRootCommand = resolveRemovedRootCommand(operands);
20
22
  if (removedRootCommand !== null) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/app/cli/index.ts"],"names":[],"mappings":";AAEA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAEnF,eAAe,EAAE,CAAC;AAElB,6BAA6B;AAC7B,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEpD,CAAC,KAAK,IAAI,EAAE;IACV,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,kBAAkB,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IAC/D,IAAI,kBAAkB,KAAK,IAAI,EAAE,CAAC;QAChC,QAAQ,CAAC,2BAA2B,kBAAkB,GAAG,CAAC,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAChE,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAExE,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;QAC/B,MAAM,gBAAgB,EAAE,CAAC;QACzB,MAAM,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,qEAAqE;IACrE,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;IAE3B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACjB,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/app/cli/index.ts"],"names":[],"mappings":";AAEA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAEtE,eAAe,EAAE,CAAC;AAElB,6BAA6B;AAC7B,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEpD,CAAC,KAAK,IAAI,EAAE;IACV,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,kBAAkB,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IAC/D,IAAI,kBAAkB,KAAK,IAAI,EAAE,CAAC;QAChC,QAAQ,CAAC,2BAA2B,kBAAkB,GAAG,CAAC,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAChE,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAExE,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;QAC/B,MAAM,gBAAgB,EAAE,CAAC;QACzB,MAAM,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,qEAAqE;IACrE,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;IAE3B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACjB,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ export interface RunMeta {
2
+ task: string;
3
+ piece: string;
4
+ runSlug: string;
5
+ runRoot: string;
6
+ reportDirectory: string;
7
+ contextDirectory: string;
8
+ logsDirectory: string;
9
+ status: 'running' | 'completed' | 'aborted';
10
+ startTime: string;
11
+ endTime?: string;
12
+ iterations?: number;
13
+ currentStep?: string;
14
+ currentIteration?: number;
15
+ }
16
+ export declare function readRunMeta(metaPath: string): RunMeta | null;
17
+ export declare function readRunMetaBySlug(cwd: string, slug: string): RunMeta | null;
18
+ export declare function findRunningStepByRunSlug(cwd: string, runSlug: string): string | undefined;
19
+ //# sourceMappingURL=run-meta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-meta.d.ts","sourceRoot":"","sources":["../../../../src/core/piece/run/run-meta.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAe5D;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAY3E;AAcD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEzF"}
@@ -0,0 +1,42 @@
1
+ import { existsSync, readFileSync } from 'node:fs';
2
+ import { resolve } from 'node:path';
3
+ import { isPathInside, isValidReportDirName } from '../../../shared/utils/index.js';
4
+ export function readRunMeta(metaPath) {
5
+ if (!existsSync(metaPath)) {
6
+ return null;
7
+ }
8
+ const raw = readFileSync(metaPath, 'utf-8').trim();
9
+ if (!raw) {
10
+ return null;
11
+ }
12
+ try {
13
+ return JSON.parse(raw);
14
+ }
15
+ catch {
16
+ return null;
17
+ }
18
+ }
19
+ export function readRunMetaBySlug(cwd, slug) {
20
+ if (!isValidReportDirName(slug)) {
21
+ return null;
22
+ }
23
+ const runsDir = resolve(cwd, '.takt', 'runs');
24
+ const metaPath = resolve(runsDir, slug, 'meta.json');
25
+ if (!isPathInside(runsDir, metaPath)) {
26
+ return null;
27
+ }
28
+ return readRunMeta(metaPath);
29
+ }
30
+ function resolveRunningStep(meta) {
31
+ if (!meta) {
32
+ return undefined;
33
+ }
34
+ if (meta.status !== 'running' || !meta.currentStep) {
35
+ return undefined;
36
+ }
37
+ return meta.currentStep;
38
+ }
39
+ export function findRunningStepByRunSlug(cwd, runSlug) {
40
+ return resolveRunningStep(readRunMetaBySlug(cwd, runSlug));
41
+ }
42
+ //# sourceMappingURL=run-meta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-meta.js","sourceRoot":"","sources":["../../../../src/core/piece/run/run-meta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAkBpF,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IACnD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAW,EAAE,IAAY;IACzD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IACrD,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAoB;IAC9C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACnD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,IAAI,CAAC,WAAW,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,GAAW,EAAE,OAAe;IACnE,OAAO,kBAAkB,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;AAC7D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"runSessionReader.d.ts","sourceRoot":"","sources":["../../../src/features/interactive/runSessionReader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiBH,wCAAwC;AACxC,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,8CAA8C;AAC9C,UAAU,gBAAgB;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,0BAA0B;AAC1B,UAAU,WAAW;IACnB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,0DAA0D;AAC1D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACnD,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;CAC1C;AAED,6DAA6D;AAC7D,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AA4ED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,EAAE,CA2BxD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI9E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAW/D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,iBAAiB,CA4BlF;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAYxF;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,iBAAiB,GAAG;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB,CAiBA"}
1
+ {"version":3,"file":"runSessionReader.d.ts","sourceRoot":"","sources":["../../../src/features/interactive/runSessionReader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkBH,wCAAwC;AACxC,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,8CAA8C;AAC9C,UAAU,gBAAgB;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,0BAA0B;AAC1B,UAAU,WAAW;IACnB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,0DAA0D;AAC1D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACnD,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;CAC1C;AAED,6DAA6D;AAC7D,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAmDD;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,EAAE,CA0BxD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI9E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAU/D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,iBAAiB,CA2BlF;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAYxF;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,iBAAiB,GAAG;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB,CAiBA"}
@@ -6,6 +6,7 @@
6
6
  */
7
7
  import { existsSync, readdirSync, readFileSync } from 'node:fs';
8
8
  import { join } from 'node:path';
9
+ import { readRunMetaBySlug } from '../../core/piece/run/run-meta.js';
9
10
  import { PROVIDER_EVENTS_LOG_FILE_SUFFIX, USAGE_EVENTS_LOG_FILE_SUFFIX, } from '../../core/logging/contracts.js';
10
11
  import { loadNdjsonLog } from '../../infra/fs/index.js';
11
12
  /** Maximum number of runs to return from listing */
@@ -18,21 +19,6 @@ function truncateContent(content, maxLength) {
18
19
  }
19
20
  return content.slice(0, maxLength) + '…';
20
21
  }
21
- function parseMetaJson(metaPath) {
22
- if (!existsSync(metaPath)) {
23
- return null;
24
- }
25
- const raw = readFileSync(metaPath, 'utf-8').trim();
26
- if (!raw) {
27
- return null;
28
- }
29
- try {
30
- return JSON.parse(raw);
31
- }
32
- catch {
33
- return null;
34
- }
35
- }
36
22
  function buildMovementLogs(sessionLog) {
37
23
  return sessionLog.history.map((entry) => ({
38
24
  step: entry.step,
@@ -77,8 +63,7 @@ export function listRecentRuns(cwd) {
77
63
  for (const entry of entries) {
78
64
  if (!entry.isDirectory())
79
65
  continue;
80
- const metaPath = join(runsDir, entry.name, 'meta.json');
81
- const meta = parseMetaJson(metaPath);
66
+ const meta = readRunMetaBySlug(cwd, entry.name);
82
67
  if (!meta)
83
68
  continue;
84
69
  summaries.push({
@@ -106,8 +91,7 @@ export function findRunForTask(cwd, taskContent) {
106
91
  * Get absolute paths to a run's logs and reports directories.
107
92
  */
108
93
  export function getRunPaths(cwd, slug) {
109
- const metaPath = join(cwd, '.takt', 'runs', slug, 'meta.json');
110
- const meta = parseMetaJson(metaPath);
94
+ const meta = readRunMetaBySlug(cwd, slug);
111
95
  if (!meta) {
112
96
  throw new Error(`Run not found: ${slug}`);
113
97
  }
@@ -120,8 +104,7 @@ export function getRunPaths(cwd, slug) {
120
104
  * Load full run session context for prompt injection.
121
105
  */
122
106
  export function loadRunSessionContext(cwd, slug) {
123
- const metaPath = join(cwd, '.takt', 'runs', slug, 'meta.json');
124
- const meta = parseMetaJson(metaPath);
107
+ const meta = readRunMetaBySlug(cwd, slug);
125
108
  if (!meta) {
126
109
  throw new Error(`Run not found: ${slug}`);
127
110
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runSessionReader.js","sourceRoot":"","sources":["../../../src/features/interactive/runSessionReader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runSessionReader.js","sourceRoot":"","sources":["../../../src/features/interactive/runSessionReader.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"steps.d.ts","sourceRoot":"","sources":["../../../src/features/pipeline/steps.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAkB,MAAM,0BAA0B,CAAC;AAGtE,OAAO,EAAoE,KAAK,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAGpI,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAGjE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,KAAK,CAAC;IAClB,MAAM,EAAE,SAAS,CAAC;IAClB,UAAU,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,GAAG,uBAAuB,CAAC;AA4B7E,wBAAgB,kBAAkB,CAChC,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,KAAK,EAAE,KAAK,GAAG,SAAS,EACxB,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,MAAM,CAWR;AA2CD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,wBAAwB,GAAG,WAAW,GAAG,SAAS,CAmC7F;AAED,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,IAAI,CAAC,wBAAwB,EAAE,gBAAgB,GAAG,SAAS,GAAG,QAAQ,GAAG,aAAa,CAAC,EAChG,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,QAAQ,CAAC,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,gBAAgB,CAAC,CA2C3B;AAED,wBAAsB,QAAQ,CAC5B,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,IAAI,CAAC,wBAAwB,EAAE,UAAU,GAAG,OAAO,CAAC,GAC5D,OAAO,CAAC,OAAO,CAAC,CAqBlB;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,OAAO,GAClB,OAAO,CA0BT;AAED,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,OAAO,EAAE,IAAI,CAAC,wBAAwB,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,GACnE,MAAM,GAAG,SAAS,CAsBpB"}
1
+ {"version":3,"file":"steps.d.ts","sourceRoot":"","sources":["../../../src/features/pipeline/steps.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAkB,MAAM,0BAA0B,CAAC;AAGtE,OAAO,EAAoE,KAAK,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAIpI,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAGjE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,KAAK,CAAC;IAClB,MAAM,EAAE,SAAS,CAAC;IAClB,UAAU,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,GAAG,uBAAuB,CAAC;AA4B7E,wBAAgB,kBAAkB,CAChC,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,KAAK,EAAE,KAAK,GAAG,SAAS,EACxB,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,MAAM,CAWR;AA2CD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,wBAAwB,GAAG,WAAW,GAAG,SAAS,CAmC7F;AAED,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,IAAI,CAAC,wBAAwB,EAAE,gBAAgB,GAAG,SAAS,GAAG,QAAQ,GAAG,aAAa,CAAC,EAChG,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,QAAQ,CAAC,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,gBAAgB,CAAC,CA2C3B;AAED,wBAAsB,QAAQ,CAC5B,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,IAAI,CAAC,wBAAwB,EAAE,UAAU,GAAG,OAAO,CAAC,GAC5D,OAAO,CAAC,OAAO,CAAC,CA2BlB;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,OAAO,GAClB,OAAO,CA0BT;AAED,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,OAAO,EAAE,IAAI,CAAC,wBAAwB,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,GACnE,MAAM,GAAG,SAAS,CAsBpB"}
@@ -4,6 +4,7 @@ import { resolveConfigValue } from '../../infra/config/index.js';
4
4
  import { stageAndCommit, resolveBaseBranch, pushBranch, checkoutBranch } from '../../infra/task/index.js';
5
5
  import { executeTask, confirmAndCreateWorktree } from '../tasks/index.js';
6
6
  import { info, error, success } from '../../shared/ui/index.js';
7
+ import { statusLine } from '../../shared/ui/StatusLine.js';
7
8
  import { getErrorMessage } from '../../shared/utils/index.js';
8
9
  import { sanitizeTerminalText } from '../../shared/utils/text.js';
9
10
  function requireBaseBranch(baseBranch, context) {
@@ -151,13 +152,20 @@ export async function runPiece(projectCwd, piece, task, execCwd, options) {
151
152
  const agentOverrides = (options.provider || options.model)
152
153
  ? { provider: options.provider, model: options.model }
153
154
  : undefined;
154
- const taskSuccess = await executeTask({
155
- task,
156
- cwd: execCwd,
157
- pieceIdentifier: piece,
158
- projectCwd,
159
- agentOverrides,
160
- });
155
+ statusLine.start('Running...');
156
+ let taskSuccess;
157
+ try {
158
+ taskSuccess = await executeTask({
159
+ task,
160
+ cwd: execCwd,
161
+ pieceIdentifier: piece,
162
+ projectCwd,
163
+ agentOverrides,
164
+ });
165
+ }
166
+ finally {
167
+ statusLine.stop();
168
+ }
161
169
  if (!taskSuccess) {
162
170
  error(`Workflow '${safePiece}' failed`);
163
171
  return false;