takt 0.2.2 → 0.3.0

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 (210) hide show
  1. package/README.md +223 -166
  2. package/dist/agents/runner.d.ts +2 -4
  3. package/dist/agents/runner.d.ts.map +1 -1
  4. package/dist/agents/runner.js +6 -35
  5. package/dist/agents/runner.js.map +1 -1
  6. package/dist/claude/client.d.ts +31 -6
  7. package/dist/claude/client.d.ts.map +1 -1
  8. package/dist/claude/client.js +78 -30
  9. package/dist/claude/client.js.map +1 -1
  10. package/dist/claude/index.d.ts +1 -1
  11. package/dist/claude/index.d.ts.map +1 -1
  12. package/dist/claude/index.js +1 -1
  13. package/dist/claude/index.js.map +1 -1
  14. package/dist/cli.d.ts +4 -3
  15. package/dist/cli.d.ts.map +1 -1
  16. package/dist/cli.js +41 -20
  17. package/dist/cli.js.map +1 -1
  18. package/dist/codex/client.d.ts +0 -1
  19. package/dist/codex/client.d.ts.map +1 -1
  20. package/dist/codex/client.js +3 -6
  21. package/dist/codex/client.js.map +1 -1
  22. package/dist/commands/addTask.d.ts.map +1 -1
  23. package/dist/commands/addTask.js +23 -7
  24. package/dist/commands/addTask.js.map +1 -1
  25. package/dist/commands/eject.d.ts +13 -0
  26. package/dist/commands/eject.d.ts.map +1 -0
  27. package/dist/commands/eject.js +105 -0
  28. package/dist/commands/eject.js.map +1 -0
  29. package/dist/commands/help.d.ts.map +1 -1
  30. package/dist/commands/help.js +12 -5
  31. package/dist/commands/help.js.map +1 -1
  32. package/dist/commands/index.d.ts +2 -1
  33. package/dist/commands/index.d.ts.map +1 -1
  34. package/dist/commands/index.js +2 -1
  35. package/dist/commands/index.js.map +1 -1
  36. package/dist/commands/listTasks.d.ts +45 -0
  37. package/dist/commands/listTasks.d.ts.map +1 -0
  38. package/dist/commands/{reviewTasks.js → listTasks.js} +93 -73
  39. package/dist/commands/listTasks.js.map +1 -0
  40. package/dist/commands/refreshBuiltin.d.ts +4 -4
  41. package/dist/commands/refreshBuiltin.d.ts.map +1 -1
  42. package/dist/commands/refreshBuiltin.js +13 -29
  43. package/dist/commands/refreshBuiltin.js.map +1 -1
  44. package/dist/commands/taskExecution.d.ts +7 -5
  45. package/dist/commands/taskExecution.d.ts.map +1 -1
  46. package/dist/commands/taskExecution.js +21 -14
  47. package/dist/commands/taskExecution.js.map +1 -1
  48. package/dist/commands/workflowExecution.d.ts.map +1 -1
  49. package/dist/commands/workflowExecution.js +88 -21
  50. package/dist/commands/workflowExecution.js.map +1 -1
  51. package/dist/config/agentLoader.d.ts +3 -1
  52. package/dist/config/agentLoader.d.ts.map +1 -1
  53. package/dist/config/agentLoader.js +17 -24
  54. package/dist/config/agentLoader.js.map +1 -1
  55. package/dist/config/globalConfig.d.ts +2 -0
  56. package/dist/config/globalConfig.d.ts.map +1 -1
  57. package/dist/config/globalConfig.js +18 -0
  58. package/dist/config/globalConfig.js.map +1 -1
  59. package/dist/config/initialization.d.ts +7 -5
  60. package/dist/config/initialization.d.ts.map +1 -1
  61. package/dist/config/initialization.js +23 -21
  62. package/dist/config/initialization.js.map +1 -1
  63. package/dist/config/paths.d.ts +5 -0
  64. package/dist/config/paths.d.ts.map +1 -1
  65. package/dist/config/paths.js +9 -0
  66. package/dist/config/paths.js.map +1 -1
  67. package/dist/config/workflowLoader.d.ts +6 -4
  68. package/dist/config/workflowLoader.d.ts.map +1 -1
  69. package/dist/config/workflowLoader.js +190 -35
  70. package/dist/config/workflowLoader.js.map +1 -1
  71. package/dist/github/issue.d.ts +72 -0
  72. package/dist/github/issue.d.ts.map +1 -0
  73. package/dist/github/issue.js +143 -0
  74. package/dist/github/issue.js.map +1 -0
  75. package/dist/models/index.d.ts +1 -1
  76. package/dist/models/index.d.ts.map +1 -1
  77. package/dist/models/index.js.map +1 -1
  78. package/dist/models/schemas.d.ts +165 -90
  79. package/dist/models/schemas.d.ts.map +1 -1
  80. package/dist/models/schemas.js +79 -51
  81. package/dist/models/schemas.js.map +1 -1
  82. package/dist/models/types.d.ts +53 -20
  83. package/dist/models/types.d.ts.map +1 -1
  84. package/dist/providers/claude.js +2 -2
  85. package/dist/providers/claude.js.map +1 -1
  86. package/dist/providers/codex.d.ts.map +1 -1
  87. package/dist/providers/codex.js +0 -2
  88. package/dist/providers/codex.js.map +1 -1
  89. package/dist/providers/index.d.ts +2 -1
  90. package/dist/providers/index.d.ts.map +1 -1
  91. package/dist/providers/index.js.map +1 -1
  92. package/dist/resources/index.d.ts +3 -22
  93. package/dist/resources/index.d.ts.map +1 -1
  94. package/dist/resources/index.js +9 -76
  95. package/dist/resources/index.js.map +1 -1
  96. package/dist/task/autoCommit.d.ts +9 -6
  97. package/dist/task/autoCommit.d.ts.map +1 -1
  98. package/dist/task/autoCommit.js +21 -12
  99. package/dist/task/autoCommit.js.map +1 -1
  100. package/dist/task/branchList.d.ts +55 -0
  101. package/dist/task/branchList.d.ts.map +1 -0
  102. package/dist/task/branchList.js +131 -0
  103. package/dist/task/branchList.js.map +1 -0
  104. package/dist/task/clone.d.ts +53 -0
  105. package/dist/task/clone.d.ts.map +1 -0
  106. package/dist/task/clone.js +181 -0
  107. package/dist/task/clone.js.map +1 -0
  108. package/dist/task/index.d.ts +3 -2
  109. package/dist/task/index.d.ts.map +1 -1
  110. package/dist/task/index.js +3 -2
  111. package/dist/task/index.js.map +1 -1
  112. package/dist/task/schema.d.ts +4 -4
  113. package/dist/task/schema.js +4 -4
  114. package/dist/task/summarize.d.ts +7 -5
  115. package/dist/task/summarize.d.ts.map +1 -1
  116. package/dist/task/summarize.js +62 -29
  117. package/dist/task/summarize.js.map +1 -1
  118. package/dist/utils/session.d.ts +74 -10
  119. package/dist/utils/session.d.ts.map +1 -1
  120. package/dist/utils/session.js +101 -51
  121. package/dist/utils/session.js.map +1 -1
  122. package/dist/utils/updateNotifier.d.ts +6 -0
  123. package/dist/utils/updateNotifier.d.ts.map +1 -0
  124. package/dist/utils/updateNotifier.js +17 -0
  125. package/dist/utils/updateNotifier.js.map +1 -0
  126. package/dist/workflow/engine.d.ts +35 -2
  127. package/dist/workflow/engine.d.ts.map +1 -1
  128. package/dist/workflow/engine.js +238 -38
  129. package/dist/workflow/engine.js.map +1 -1
  130. package/dist/workflow/index.d.ts +1 -1
  131. package/dist/workflow/index.d.ts.map +1 -1
  132. package/dist/workflow/index.js +1 -1
  133. package/dist/workflow/index.js.map +1 -1
  134. package/dist/workflow/instruction-builder.d.ts +89 -20
  135. package/dist/workflow/instruction-builder.d.ts.map +1 -1
  136. package/dist/workflow/instruction-builder.js +404 -61
  137. package/dist/workflow/instruction-builder.js.map +1 -1
  138. package/dist/workflow/parallel-logger.d.ts +76 -0
  139. package/dist/workflow/parallel-logger.d.ts.map +1 -0
  140. package/dist/workflow/parallel-logger.js +173 -0
  141. package/dist/workflow/parallel-logger.js.map +1 -0
  142. package/dist/workflow/phase-runner.d.ts +40 -0
  143. package/dist/workflow/phase-runner.d.ts.map +1 -0
  144. package/dist/workflow/phase-runner.js +69 -0
  145. package/dist/workflow/phase-runner.js.map +1 -0
  146. package/dist/workflow/rule-evaluator.d.ts +64 -0
  147. package/dist/workflow/rule-evaluator.d.ts.map +1 -0
  148. package/dist/workflow/rule-evaluator.js +178 -0
  149. package/dist/workflow/rule-evaluator.js.map +1 -0
  150. package/dist/workflow/rule-utils.d.ts +13 -0
  151. package/dist/workflow/rule-utils.d.ts.map +1 -0
  152. package/dist/workflow/rule-utils.js +17 -0
  153. package/dist/workflow/rule-utils.js.map +1 -0
  154. package/dist/workflow/transitions.d.ts +5 -13
  155. package/dist/workflow/transitions.d.ts.map +1 -1
  156. package/dist/workflow/transitions.js +8 -78
  157. package/dist/workflow/transitions.js.map +1 -1
  158. package/dist/workflow/types.d.ts +2 -1
  159. package/dist/workflow/types.d.ts.map +1 -1
  160. package/package.json +4 -1
  161. package/resources/global/en/agents/default/ai-antipattern-reviewer.md +193 -0
  162. package/resources/global/en/agents/default/{architect.md → architecture-reviewer.md} +144 -44
  163. package/resources/global/en/agents/default/coder.md +7 -7
  164. package/resources/global/en/agents/default/planner.md +29 -9
  165. package/resources/global/en/agents/default/{security.md → security-reviewer.md} +23 -5
  166. package/resources/global/en/agents/default/supervisor.md +13 -2
  167. package/resources/global/en/agents/expert/frontend-reviewer.md +0 -17
  168. package/resources/global/en/agents/expert/qa-reviewer.md +0 -16
  169. package/resources/global/en/agents/expert/security-reviewer.md +0 -16
  170. package/resources/global/en/agents/expert-cqrs/cqrs-es-reviewer.md +0 -17
  171. package/resources/global/en/agents/templates/coder.md +128 -0
  172. package/resources/global/en/agents/templates/planner.md +44 -0
  173. package/resources/global/en/agents/templates/reviewer.md +57 -0
  174. package/resources/global/en/agents/templates/supervisor.md +64 -0
  175. package/resources/global/en/workflows/default.yaml +235 -770
  176. package/resources/global/en/workflows/expert-cqrs.yaml +325 -697
  177. package/resources/global/en/workflows/expert.yaml +354 -722
  178. package/resources/global/en/workflows/magi.yaml +45 -52
  179. package/resources/global/en/workflows/research.yaml +18 -99
  180. package/resources/global/en/workflows/simple.yaml +156 -421
  181. package/resources/global/ja/agents/default/{ai-reviewer.md → ai-antipattern-reviewer.md} +92 -15
  182. package/resources/global/ja/agents/default/{architect.md → architecture-reviewer.md} +148 -48
  183. package/resources/global/ja/agents/default/coder.md +7 -7
  184. package/resources/global/ja/agents/default/planner.md +29 -9
  185. package/resources/global/ja/agents/default/{security.md → security-reviewer.md} +23 -5
  186. package/resources/global/ja/agents/default/supervisor.md +13 -2
  187. package/resources/global/ja/agents/expert/frontend-reviewer.md +0 -18
  188. package/resources/global/ja/agents/expert/qa-reviewer.md +0 -16
  189. package/resources/global/ja/agents/expert/security-reviewer.md +0 -16
  190. package/resources/global/ja/agents/expert-cqrs/cqrs-es-reviewer.md +0 -18
  191. package/resources/global/ja/agents/templates/coder.md +128 -0
  192. package/resources/global/ja/agents/templates/planner.md +44 -0
  193. package/resources/global/ja/agents/templates/reviewer.md +57 -0
  194. package/resources/global/ja/agents/templates/supervisor.md +64 -0
  195. package/resources/global/ja/workflows/default.yaml +230 -771
  196. package/resources/global/ja/workflows/expert-cqrs.yaml +316 -832
  197. package/resources/global/ja/workflows/expert.yaml +331 -711
  198. package/resources/global/ja/workflows/magi.yaml +45 -52
  199. package/resources/global/ja/workflows/research.yaml +18 -99
  200. package/resources/global/ja/workflows/simple.yaml +149 -415
  201. package/resources/project/dotgitignore +10 -0
  202. package/resources/project/tasks/TASK-FORMAT +37 -0
  203. package/dist/commands/reviewTasks.d.ts +0 -43
  204. package/dist/commands/reviewTasks.d.ts.map +0 -1
  205. package/dist/commands/reviewTasks.js.map +0 -1
  206. package/dist/task/worktree.d.ts +0 -70
  207. package/dist/task/worktree.d.ts.map +0 -1
  208. package/dist/task/worktree.js +0 -221
  209. package/dist/task/worktree.js.map +0 -1
  210. package/resources/global/en/agents/default/ai-reviewer.md +0 -116
@@ -14,7 +14,6 @@ export declare const AgentTypeSchema: z.ZodEnum<{
14
14
  /** Status schema */
15
15
  export declare const StatusSchema: z.ZodEnum<{
16
16
  pending: "pending";
17
- in_progress: "in_progress";
18
17
  done: "done";
19
18
  blocked: "blocked";
20
19
  approved: "approved";
@@ -24,55 +23,59 @@ export declare const StatusSchema: z.ZodEnum<{
24
23
  interrupted: "interrupted";
25
24
  answer: "answer";
26
25
  }>;
27
- /**
28
- * Transition condition schema
29
- *
30
- * WARNING: Do NOT add new values carelessly.
31
- * Use existing values creatively in workflow design:
32
- * - done: Task completed (minor fixes, successful completion)
33
- * - blocked: Cannot proceed (needs plan rework)
34
- * - approved: Review passed
35
- * - rejected: Review failed, needs major rework
36
- * - improve: Needs improvement (security concerns, quality issues)
37
- * - answer: Question answered (complete workflow as success)
38
- * - always: Unconditional transition
39
- */
40
- export declare const TransitionConditionSchema: z.ZodEnum<{
41
- done: "done";
42
- blocked: "blocked";
43
- approved: "approved";
44
- rejected: "rejected";
45
- improve: "improve";
46
- answer: "answer";
47
- always: "always";
48
- }>;
49
- /** On no status behavior schema */
50
- export declare const OnNoStatusBehaviorSchema: z.ZodEnum<{
51
- complete: "complete";
52
- continue: "continue";
53
- stay: "stay";
54
- }>;
55
- /** Workflow transition schema */
56
- export declare const WorkflowTransitionSchema: z.ZodObject<{
57
- condition: z.ZodEnum<{
58
- done: "done";
59
- blocked: "blocked";
60
- approved: "approved";
61
- rejected: "rejected";
62
- improve: "improve";
63
- answer: "answer";
64
- always: "always";
65
- }>;
66
- nextStep: z.ZodString;
67
- }, z.core.$strip>;
68
26
  /** Permission mode schema for tool execution */
69
27
  export declare const PermissionModeSchema: z.ZodEnum<{
70
28
  default: "default";
71
29
  acceptEdits: "acceptEdits";
72
30
  bypassPermissions: "bypassPermissions";
73
31
  }>;
74
- /** Workflow step schema - raw YAML format */
75
- export declare const WorkflowStepRawSchema: z.ZodObject<{
32
+ /**
33
+ * Report object schema (new structured format).
34
+ *
35
+ * YAML format:
36
+ * report:
37
+ * name: 00-plan.md
38
+ * order: |
39
+ * **レポート出力:** {report:00-plan.md} に出力してください。
40
+ * format: |
41
+ * **レポートフォーマット:**
42
+ * ```markdown
43
+ * ...
44
+ * ```
45
+ */
46
+ export declare const ReportObjectSchema: z.ZodObject<{
47
+ name: z.ZodString;
48
+ order: z.ZodOptional<z.ZodString>;
49
+ format: z.ZodOptional<z.ZodString>;
50
+ }, z.core.$strip>;
51
+ /**
52
+ * Report field schema.
53
+ *
54
+ * YAML formats:
55
+ * report: 00-plan.md # single file (string)
56
+ * report: # multiple files (label: path map entries)
57
+ * - Scope: 01-scope.md
58
+ * - Decisions: 02-decisions.md
59
+ * report: # object form (name + order + format)
60
+ * name: 00-plan.md
61
+ * order: ...
62
+ * format: ...
63
+ *
64
+ * Array items are parsed as single-key objects: [{Scope: "01-scope.md"}, ...]
65
+ */
66
+ export declare const ReportFieldSchema: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodRecord<z.ZodString, z.ZodString>>, z.ZodObject<{
67
+ name: z.ZodString;
68
+ order: z.ZodOptional<z.ZodString>;
69
+ format: z.ZodOptional<z.ZodString>;
70
+ }, z.core.$strip>]>;
71
+ /** Rule-based transition schema (new unified format) */
72
+ export declare const WorkflowRuleSchema: z.ZodObject<{
73
+ condition: z.ZodString;
74
+ next: z.ZodOptional<z.ZodString>;
75
+ appendix: z.ZodOptional<z.ZodString>;
76
+ }, z.core.$strip>;
77
+ /** Sub-step schema for parallel execution (agent is required) */
78
+ export declare const ParallelSubStepRawSchema: z.ZodObject<{
76
79
  name: z.ZodString;
77
80
  agent: z.ZodString;
78
81
  agent_name: z.ZodOptional<z.ZodString>;
@@ -88,27 +91,83 @@ export declare const WorkflowStepRawSchema: z.ZodObject<{
88
91
  acceptEdits: "acceptEdits";
89
92
  bypassPermissions: "bypassPermissions";
90
93
  }>>;
94
+ edit: z.ZodOptional<z.ZodBoolean>;
91
95
  instruction: z.ZodOptional<z.ZodString>;
92
96
  instruction_template: z.ZodOptional<z.ZodString>;
93
- status_rules_prompt: z.ZodOptional<z.ZodString>;
97
+ rules: z.ZodOptional<z.ZodArray<z.ZodObject<{
98
+ condition: z.ZodString;
99
+ next: z.ZodOptional<z.ZodString>;
100
+ appendix: z.ZodOptional<z.ZodString>;
101
+ }, z.core.$strip>>>;
102
+ report: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodRecord<z.ZodString, z.ZodString>>, z.ZodObject<{
103
+ name: z.ZodString;
104
+ order: z.ZodOptional<z.ZodString>;
105
+ format: z.ZodOptional<z.ZodString>;
106
+ }, z.core.$strip>]>>;
94
107
  pass_previous_response: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
95
- on_no_status: z.ZodOptional<z.ZodEnum<{
96
- complete: "complete";
97
- continue: "continue";
98
- stay: "stay";
108
+ }, z.core.$strip>;
109
+ /** Workflow step schema - raw YAML format */
110
+ export declare const WorkflowStepRawSchema: z.ZodObject<{
111
+ name: z.ZodString;
112
+ agent: z.ZodOptional<z.ZodString>;
113
+ agent_name: z.ZodOptional<z.ZodString>;
114
+ allowed_tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
115
+ provider: z.ZodOptional<z.ZodEnum<{
116
+ claude: "claude";
117
+ codex: "codex";
118
+ mock: "mock";
99
119
  }>>;
100
- transitions: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
101
- condition: z.ZodEnum<{
102
- done: "done";
103
- blocked: "blocked";
104
- approved: "approved";
105
- rejected: "rejected";
106
- improve: "improve";
107
- answer: "answer";
108
- always: "always";
109
- }>;
110
- next_step: z.ZodString;
111
- }, z.core.$strip>>>>;
120
+ model: z.ZodOptional<z.ZodString>;
121
+ permission_mode: z.ZodOptional<z.ZodEnum<{
122
+ default: "default";
123
+ acceptEdits: "acceptEdits";
124
+ bypassPermissions: "bypassPermissions";
125
+ }>>;
126
+ edit: z.ZodOptional<z.ZodBoolean>;
127
+ instruction: z.ZodOptional<z.ZodString>;
128
+ instruction_template: z.ZodOptional<z.ZodString>;
129
+ rules: z.ZodOptional<z.ZodArray<z.ZodObject<{
130
+ condition: z.ZodString;
131
+ next: z.ZodOptional<z.ZodString>;
132
+ appendix: z.ZodOptional<z.ZodString>;
133
+ }, z.core.$strip>>>;
134
+ report: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodRecord<z.ZodString, z.ZodString>>, z.ZodObject<{
135
+ name: z.ZodString;
136
+ order: z.ZodOptional<z.ZodString>;
137
+ format: z.ZodOptional<z.ZodString>;
138
+ }, z.core.$strip>]>>;
139
+ pass_previous_response: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
140
+ parallel: z.ZodOptional<z.ZodArray<z.ZodObject<{
141
+ name: z.ZodString;
142
+ agent: z.ZodString;
143
+ agent_name: z.ZodOptional<z.ZodString>;
144
+ allowed_tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
145
+ provider: z.ZodOptional<z.ZodEnum<{
146
+ claude: "claude";
147
+ codex: "codex";
148
+ mock: "mock";
149
+ }>>;
150
+ model: z.ZodOptional<z.ZodString>;
151
+ permission_mode: z.ZodOptional<z.ZodEnum<{
152
+ default: "default";
153
+ acceptEdits: "acceptEdits";
154
+ bypassPermissions: "bypassPermissions";
155
+ }>>;
156
+ edit: z.ZodOptional<z.ZodBoolean>;
157
+ instruction: z.ZodOptional<z.ZodString>;
158
+ instruction_template: z.ZodOptional<z.ZodString>;
159
+ rules: z.ZodOptional<z.ZodArray<z.ZodObject<{
160
+ condition: z.ZodString;
161
+ next: z.ZodOptional<z.ZodString>;
162
+ appendix: z.ZodOptional<z.ZodString>;
163
+ }, z.core.$strip>>>;
164
+ report: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodRecord<z.ZodString, z.ZodString>>, z.ZodObject<{
165
+ name: z.ZodString;
166
+ order: z.ZodOptional<z.ZodString>;
167
+ format: z.ZodOptional<z.ZodString>;
168
+ }, z.core.$strip>]>>;
169
+ pass_previous_response: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
170
+ }, z.core.$strip>>>;
112
171
  }, z.core.$strip>;
113
172
  /** Workflow configuration schema - raw YAML format */
114
173
  export declare const WorkflowConfigRawSchema: z.ZodObject<{
@@ -116,7 +175,7 @@ export declare const WorkflowConfigRawSchema: z.ZodObject<{
116
175
  description: z.ZodOptional<z.ZodString>;
117
176
  steps: z.ZodArray<z.ZodObject<{
118
177
  name: z.ZodString;
119
- agent: z.ZodString;
178
+ agent: z.ZodOptional<z.ZodString>;
120
179
  agent_name: z.ZodOptional<z.ZodString>;
121
180
  allowed_tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
122
181
  provider: z.ZodOptional<z.ZodEnum<{
@@ -130,27 +189,51 @@ export declare const WorkflowConfigRawSchema: z.ZodObject<{
130
189
  acceptEdits: "acceptEdits";
131
190
  bypassPermissions: "bypassPermissions";
132
191
  }>>;
192
+ edit: z.ZodOptional<z.ZodBoolean>;
133
193
  instruction: z.ZodOptional<z.ZodString>;
134
194
  instruction_template: z.ZodOptional<z.ZodString>;
135
- status_rules_prompt: z.ZodOptional<z.ZodString>;
195
+ rules: z.ZodOptional<z.ZodArray<z.ZodObject<{
196
+ condition: z.ZodString;
197
+ next: z.ZodOptional<z.ZodString>;
198
+ appendix: z.ZodOptional<z.ZodString>;
199
+ }, z.core.$strip>>>;
200
+ report: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodRecord<z.ZodString, z.ZodString>>, z.ZodObject<{
201
+ name: z.ZodString;
202
+ order: z.ZodOptional<z.ZodString>;
203
+ format: z.ZodOptional<z.ZodString>;
204
+ }, z.core.$strip>]>>;
136
205
  pass_previous_response: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
137
- on_no_status: z.ZodOptional<z.ZodEnum<{
138
- complete: "complete";
139
- continue: "continue";
140
- stay: "stay";
141
- }>>;
142
- transitions: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
143
- condition: z.ZodEnum<{
144
- done: "done";
145
- blocked: "blocked";
146
- approved: "approved";
147
- rejected: "rejected";
148
- improve: "improve";
149
- answer: "answer";
150
- always: "always";
151
- }>;
152
- next_step: z.ZodString;
153
- }, z.core.$strip>>>>;
206
+ parallel: z.ZodOptional<z.ZodArray<z.ZodObject<{
207
+ name: z.ZodString;
208
+ agent: z.ZodString;
209
+ agent_name: z.ZodOptional<z.ZodString>;
210
+ allowed_tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
211
+ provider: z.ZodOptional<z.ZodEnum<{
212
+ claude: "claude";
213
+ codex: "codex";
214
+ mock: "mock";
215
+ }>>;
216
+ model: z.ZodOptional<z.ZodString>;
217
+ permission_mode: z.ZodOptional<z.ZodEnum<{
218
+ default: "default";
219
+ acceptEdits: "acceptEdits";
220
+ bypassPermissions: "bypassPermissions";
221
+ }>>;
222
+ edit: z.ZodOptional<z.ZodBoolean>;
223
+ instruction: z.ZodOptional<z.ZodString>;
224
+ instruction_template: z.ZodOptional<z.ZodString>;
225
+ rules: z.ZodOptional<z.ZodArray<z.ZodObject<{
226
+ condition: z.ZodString;
227
+ next: z.ZodOptional<z.ZodString>;
228
+ appendix: z.ZodOptional<z.ZodString>;
229
+ }, z.core.$strip>>>;
230
+ report: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodRecord<z.ZodString, z.ZodString>>, z.ZodObject<{
231
+ name: z.ZodString;
232
+ order: z.ZodOptional<z.ZodString>;
233
+ format: z.ZodOptional<z.ZodString>;
234
+ }, z.core.$strip>]>>;
235
+ pass_previous_response: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
236
+ }, z.core.$strip>>>;
154
237
  }, z.core.$strip>>;
155
238
  initial_step: z.ZodOptional<z.ZodString>;
156
239
  max_iterations: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
@@ -162,7 +245,6 @@ export declare const CustomAgentConfigSchema: z.ZodObject<{
162
245
  prompt_file: z.ZodOptional<z.ZodString>;
163
246
  prompt: z.ZodOptional<z.ZodString>;
164
247
  allowed_tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
165
- status_patterns: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
166
248
  claude_agent: z.ZodOptional<z.ZodString>;
167
249
  claude_skill: z.ZodOptional<z.ZodString>;
168
250
  provider: z.ZodOptional<z.ZodEnum<{
@@ -206,6 +288,8 @@ export declare const GlobalConfigSchema: z.ZodObject<{
206
288
  enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
207
289
  log_file: z.ZodOptional<z.ZodString>;
208
290
  }, z.core.$strip>>;
291
+ worktree_dir: z.ZodOptional<z.ZodString>;
292
+ disabled_builtins: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
209
293
  }, z.core.$strip>;
210
294
  /** Project config schema */
211
295
  export declare const ProjectConfigSchema: z.ZodObject<{
@@ -215,7 +299,6 @@ export declare const ProjectConfigSchema: z.ZodObject<{
215
299
  prompt_file: z.ZodOptional<z.ZodString>;
216
300
  prompt: z.ZodOptional<z.ZodString>;
217
301
  allowed_tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
218
- status_patterns: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
219
302
  claude_agent: z.ZodOptional<z.ZodString>;
220
303
  claude_skill: z.ZodOptional<z.ZodString>;
221
304
  provider: z.ZodOptional<z.ZodEnum<{
@@ -231,12 +314,4 @@ export declare const ProjectConfigSchema: z.ZodObject<{
231
314
  mock: "mock";
232
315
  }>>;
233
316
  }, z.core.$strip>;
234
- /**
235
- * Generic status patterns that match any role name
236
- * Format: [ROLE:COMMAND] where ROLE is any word characters
237
- *
238
- * This allows new agents to be added without modifying this file.
239
- * Custom agents can override these patterns in their configuration.
240
- */
241
- export declare const GENERIC_STATUS_PATTERNS: Record<string, string>;
242
317
  //# sourceMappingURL=schemas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/models/schemas.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAG3B,wBAAwB;AACxB,eAAO,MAAM,eAAe;;;;;EAAyD,CAAC;AAEtF,oBAAoB;AACpB,eAAO,MAAM,YAAY;;;;;;;;;;;EAWvB,CAAC;AAEH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;EAQpC,CAAC;AAEH,mCAAmC;AACnC,eAAO,MAAM,wBAAwB;;;;EAA2C,CAAC;AAEjF,iCAAiC;AACjC,eAAO,MAAM,wBAAwB;;;;;;;;;;;iBAGnC,CAAC;AAEH,gDAAgD;AAChD,eAAO,MAAM,oBAAoB;;;;EAA0D,CAAC;AAE5F,6CAA6C;AAC7C,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqBhC,CAAC;AAEH,sDAAsD;AACtD,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAOlC,CAAC;AAEH,wCAAwC;AACxC,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;iBAanC,CAAC;AAEF,0BAA0B;AAC1B,eAAO,MAAM,iBAAiB;;;iBAG5B,CAAC;AAEH,8BAA8B;AAC9B,eAAO,MAAM,cAAc;;;EAAuB,CAAC;AAEnD,2BAA2B;AAC3B,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;iBAQ7B,CAAC;AAEH,4BAA4B;AAC5B,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;iBAI9B,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAO1D,CAAC"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/models/schemas.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAG3B,wBAAwB;AACxB,eAAO,MAAM,eAAe;;;;;EAAyD,CAAC;AAEtF,oBAAoB;AACpB,eAAO,MAAM,YAAY;;;;;;;;;;EAUvB,CAAC;AAEH,gDAAgD;AAChD,eAAO,MAAM,oBAAoB;;;;EAA0D,CAAC;AAE5F;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kBAAkB;;;;iBAO7B,CAAC;AAEH;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,iBAAiB;;;;mBAI5B,CAAC;AAEH,wDAAwD;AACxD,eAAO,MAAM,kBAAkB;;;;iBAO7B,CAAC;AAEH,iEAAiE;AACjE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAcnC,CAAC;AAEH,6CAA6C;AAC7C,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAyBjC,CAAC;AAEF,sDAAsD;AACtD,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAOlC,CAAC;AAEH,wCAAwC;AACxC,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;iBAYnC,CAAC;AAEF,0BAA0B;AAC1B,eAAO,MAAM,iBAAiB;;;iBAG5B,CAAC;AAEH,8BAA8B;AAC9B,eAAO,MAAM,cAAc;;;EAAuB,CAAC;AAEnD,2BAA2B;AAC3B,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;iBAY7B,CAAC;AAEH,4BAA4B;AAC5B,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;iBAI9B,CAAC"}
@@ -10,7 +10,6 @@ export const AgentTypeSchema = z.enum(['coder', 'architect', 'supervisor', 'cust
10
10
  /** Status schema */
11
11
  export const StatusSchema = z.enum([
12
12
  'pending',
13
- 'in_progress',
14
13
  'done',
15
14
  'blocked',
16
15
  'approved',
@@ -20,41 +19,80 @@ export const StatusSchema = z.enum([
20
19
  'interrupted',
21
20
  'answer',
22
21
  ]);
22
+ /** Permission mode schema for tool execution */
23
+ export const PermissionModeSchema = z.enum(['default', 'acceptEdits', 'bypassPermissions']);
23
24
  /**
24
- * Transition condition schema
25
+ * Report object schema (new structured format).
25
26
  *
26
- * WARNING: Do NOT add new values carelessly.
27
- * Use existing values creatively in workflow design:
28
- * - done: Task completed (minor fixes, successful completion)
29
- * - blocked: Cannot proceed (needs plan rework)
30
- * - approved: Review passed
31
- * - rejected: Review failed, needs major rework
32
- * - improve: Needs improvement (security concerns, quality issues)
33
- * - answer: Question answered (complete workflow as success)
34
- * - always: Unconditional transition
27
+ * YAML format:
28
+ * report:
29
+ * name: 00-plan.md
30
+ * order: |
31
+ * **レポート出力:** {report:00-plan.md} に出力してください。
32
+ * format: |
33
+ * **レポートフォーマット:**
34
+ * ```markdown
35
+ * ...
36
+ * ```
35
37
  */
36
- export const TransitionConditionSchema = z.enum([
37
- 'done',
38
- 'blocked',
39
- 'approved',
40
- 'rejected',
41
- 'improve',
42
- 'answer',
43
- 'always',
38
+ export const ReportObjectSchema = z.object({
39
+ /** Report file name */
40
+ name: z.string().min(1),
41
+ /** Instruction prepended before instruction_template (e.g., output destination) */
42
+ order: z.string().optional(),
43
+ /** Instruction appended after instruction_template (e.g., output format) */
44
+ format: z.string().optional(),
45
+ });
46
+ /**
47
+ * Report field schema.
48
+ *
49
+ * YAML formats:
50
+ * report: 00-plan.md # single file (string)
51
+ * report: # multiple files (label: path map entries)
52
+ * - Scope: 01-scope.md
53
+ * - Decisions: 02-decisions.md
54
+ * report: # object form (name + order + format)
55
+ * name: 00-plan.md
56
+ * order: ...
57
+ * format: ...
58
+ *
59
+ * Array items are parsed as single-key objects: [{Scope: "01-scope.md"}, ...]
60
+ */
61
+ export const ReportFieldSchema = z.union([
62
+ z.string().min(1),
63
+ z.array(z.record(z.string(), z.string())).min(1),
64
+ ReportObjectSchema,
44
65
  ]);
45
- /** On no status behavior schema */
46
- export const OnNoStatusBehaviorSchema = z.enum(['complete', 'continue', 'stay']);
47
- /** Workflow transition schema */
48
- export const WorkflowTransitionSchema = z.object({
49
- condition: TransitionConditionSchema,
50
- nextStep: z.string().min(1),
66
+ /** Rule-based transition schema (new unified format) */
67
+ export const WorkflowRuleSchema = z.object({
68
+ /** Human-readable condition text */
69
+ condition: z.string().min(1),
70
+ /** Next step name (e.g., implement, COMPLETE, ABORT). Optional for parallel sub-steps (parent handles routing). */
71
+ next: z.string().min(1).optional(),
72
+ /** Template for additional AI output */
73
+ appendix: z.string().optional(),
74
+ });
75
+ /** Sub-step schema for parallel execution (agent is required) */
76
+ export const ParallelSubStepRawSchema = z.object({
77
+ name: z.string().min(1),
78
+ agent: z.string().min(1),
79
+ agent_name: z.string().optional(),
80
+ allowed_tools: z.array(z.string()).optional(),
81
+ provider: z.enum(['claude', 'codex', 'mock']).optional(),
82
+ model: z.string().optional(),
83
+ permission_mode: PermissionModeSchema.optional(),
84
+ edit: z.boolean().optional(),
85
+ instruction: z.string().optional(),
86
+ instruction_template: z.string().optional(),
87
+ rules: z.array(WorkflowRuleSchema).optional(),
88
+ report: ReportFieldSchema.optional(),
89
+ pass_previous_response: z.boolean().optional().default(true),
51
90
  });
52
- /** Permission mode schema for tool execution */
53
- export const PermissionModeSchema = z.enum(['default', 'acceptEdits', 'bypassPermissions']);
54
91
  /** Workflow step schema - raw YAML format */
55
92
  export const WorkflowStepRawSchema = z.object({
56
93
  name: z.string().min(1),
57
- agent: z.string().min(1),
94
+ /** Agent is required for normal steps, optional for parallel container steps */
95
+ agent: z.string().optional(),
58
96
  /** Display name for the agent (shown in output). Falls back to agent basename if not specified */
59
97
  agent_name: z.string().optional(),
60
98
  allowed_tools: z.array(z.string()).optional(),
@@ -62,16 +100,18 @@ export const WorkflowStepRawSchema = z.object({
62
100
  model: z.string().optional(),
63
101
  /** Permission mode for tool execution in this step */
64
102
  permission_mode: PermissionModeSchema.optional(),
103
+ /** Whether this step is allowed to edit project files */
104
+ edit: z.boolean().optional(),
65
105
  instruction: z.string().optional(),
66
106
  instruction_template: z.string().optional(),
67
- status_rules_prompt: z.string().optional(),
107
+ /** Rules for step routing */
108
+ rules: z.array(WorkflowRuleSchema).optional(),
109
+ /** Report file(s) for this step */
110
+ report: ReportFieldSchema.optional(),
68
111
  pass_previous_response: z.boolean().optional().default(true),
69
- on_no_status: OnNoStatusBehaviorSchema.optional(),
70
- transitions: z.array(z.object({
71
- condition: TransitionConditionSchema,
72
- next_step: z.string().min(1),
73
- })).optional().default([]),
74
- });
112
+ /** Sub-steps to execute in parallel */
113
+ parallel: z.array(ParallelSubStepRawSchema).optional(),
114
+ }).refine((data) => data.agent || (data.parallel && data.parallel.length > 0), { message: 'Step must have either an agent or parallel sub-steps' });
75
115
  /** Workflow configuration schema - raw YAML format */
76
116
  export const WorkflowConfigRawSchema = z.object({
77
117
  name: z.string().min(1),
@@ -87,7 +127,6 @@ export const CustomAgentConfigSchema = z.object({
87
127
  prompt_file: z.string().optional(),
88
128
  prompt: z.string().optional(),
89
129
  allowed_tools: z.array(z.string()).optional(),
90
- status_patterns: z.record(z.string(), z.string()).optional(),
91
130
  claude_agent: z.string().optional(),
92
131
  claude_skill: z.string().optional(),
93
132
  provider: z.enum(['claude', 'codex', 'mock']).optional(),
@@ -109,6 +148,10 @@ export const GlobalConfigSchema = z.object({
109
148
  provider: z.enum(['claude', 'codex', 'mock']).optional().default('claude'),
110
149
  model: z.string().optional(),
111
150
  debug: DebugConfigSchema.optional(),
151
+ /** Directory for shared clones (worktree_dir in config). If empty, uses ../{clone-name} relative to project */
152
+ worktree_dir: z.string().optional(),
153
+ /** List of builtin workflow/agent names to exclude from fallback loading */
154
+ disabled_builtins: z.array(z.string()).optional().default([]),
112
155
  });
113
156
  /** Project config schema */
114
157
  export const ProjectConfigSchema = z.object({
@@ -116,19 +159,4 @@ export const ProjectConfigSchema = z.object({
116
159
  agents: z.array(CustomAgentConfigSchema).optional(),
117
160
  provider: z.enum(['claude', 'codex', 'mock']).optional(),
118
161
  });
119
- /**
120
- * Generic status patterns that match any role name
121
- * Format: [ROLE:COMMAND] where ROLE is any word characters
122
- *
123
- * This allows new agents to be added without modifying this file.
124
- * Custom agents can override these patterns in their configuration.
125
- */
126
- export const GENERIC_STATUS_PATTERNS = {
127
- approved: '\\[[\\w-]+:APPROVE\\]',
128
- rejected: '\\[[\\w-]+:REJECT\\]',
129
- improve: '\\[[\\w-]+:IMPROVE\\]',
130
- done: '\\[[\\w-]+:(DONE|FIXED)\\]',
131
- blocked: '\\[[\\w-]+:BLOCKED\\]',
132
- answer: '\\[[\\w-]+:ANSWER\\]',
133
- };
134
162
  //# sourceMappingURL=schemas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/models/schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/models/schemas.ts"],"names":[],"mappings":"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"}
@@ -4,9 +4,9 @@
4
4
  /** Built-in agent types */
5
5
  export type AgentType = 'coder' | 'architect' | 'supervisor' | 'custom';
6
6
  /** Execution status for agents and workflows */
7
- export type Status = 'pending' | 'in_progress' | 'done' | 'blocked' | 'approved' | 'rejected' | 'improve' | 'cancelled' | 'interrupted' | 'answer';
8
- /** Condition types for workflow transitions */
9
- export type TransitionCondition = 'done' | 'blocked' | 'approved' | 'rejected' | 'improve' | 'answer' | 'always';
7
+ export type Status = 'pending' | 'done' | 'blocked' | 'approved' | 'rejected' | 'improve' | 'cancelled' | 'interrupted' | 'answer';
8
+ /** How a rule match was detected */
9
+ export type RuleMatchMethod = 'aggregate' | 'phase3_tag' | 'phase1_tag' | 'ai_judge' | 'ai_judge_fallback';
10
10
  /** Response from an agent execution */
11
11
  export interface AgentResponse {
12
12
  agent: string;
@@ -16,6 +16,10 @@ export interface AgentResponse {
16
16
  sessionId?: string;
17
17
  /** Error message when the query failed (e.g., API error, rate limit) */
18
18
  error?: string;
19
+ /** Matched rule index (0-based) when rules-based detection was used */
20
+ matchedRuleIndex?: number;
21
+ /** How the rule match was detected */
22
+ matchedRuleMethod?: RuleMatchMethod;
19
23
  }
20
24
  /** Session state for workflow execution */
21
25
  export interface SessionState {
@@ -25,13 +29,41 @@ export interface SessionState {
25
29
  history: AgentResponse[];
26
30
  context: Record<string, string>;
27
31
  }
28
- /** Workflow step transition configuration */
29
- export interface WorkflowTransition {
30
- condition: TransitionCondition;
31
- nextStep: string;
32
+ /** Rule-based transition configuration (new unified format) */
33
+ export interface WorkflowRule {
34
+ /** Human-readable condition text */
35
+ condition: string;
36
+ /** Next step name (e.g., implement, COMPLETE, ABORT). Optional for parallel sub-steps. */
37
+ next?: string;
38
+ /** Template for additional AI output */
39
+ appendix?: string;
40
+ /** Whether this condition uses ai() expression (set by loader) */
41
+ isAiCondition?: boolean;
42
+ /** The condition text inside ai("...") for AI judge evaluation (set by loader) */
43
+ aiConditionText?: string;
44
+ /** Whether this condition uses all()/any() aggregate expression (set by loader) */
45
+ isAggregateCondition?: boolean;
46
+ /** Aggregate type: 'all' requires all sub-steps match, 'any' requires at least one (set by loader) */
47
+ aggregateType?: 'all' | 'any';
48
+ /** The condition text inside all("...")/any("...") to match against sub-step results (set by loader) */
49
+ aggregateConditionText?: string;
50
+ }
51
+ /** Report file configuration for a workflow step (label: path pair) */
52
+ export interface ReportConfig {
53
+ /** Display label (e.g., "Scope", "Decisions") */
54
+ label: string;
55
+ /** File path relative to report directory (e.g., "01-coder-scope.md") */
56
+ path: string;
57
+ }
58
+ /** Report object configuration with order/format instructions */
59
+ export interface ReportObjectConfig {
60
+ /** Report file name (e.g., "00-plan.md") */
61
+ name: string;
62
+ /** Instruction prepended before instruction_template (e.g., output destination) */
63
+ order?: string;
64
+ /** Instruction appended after instruction_template (e.g., output format) */
65
+ format?: string;
32
66
  }
33
- /** Behavior when no status marker is found in agent output */
34
- export type OnNoStatusBehavior = 'complete' | 'continue' | 'stay';
35
67
  /** Permission mode for tool execution */
36
68
  export type PermissionMode = 'default' | 'acceptEdits' | 'bypassPermissions';
37
69
  /** Single step in a workflow */
@@ -51,18 +83,16 @@ export interface WorkflowStep {
51
83
  model?: string;
52
84
  /** Permission mode for tool execution in this step */
53
85
  permissionMode?: PermissionMode;
86
+ /** Whether this step is allowed to edit project files (true=allowed, false=prohibited, undefined=no prompt) */
87
+ edit?: boolean;
54
88
  instructionTemplate: string;
55
- /** Status output rules to be injected into system prompt */
56
- statusRulesPrompt?: string;
57
- transitions: WorkflowTransition[];
89
+ /** Rules for step routing */
90
+ rules?: WorkflowRule[];
91
+ /** Report file configuration. Single string, array of label:path, or object with order/format. */
92
+ report?: string | ReportConfig[] | ReportObjectConfig;
58
93
  passPreviousResponse: boolean;
59
- /**
60
- * Behavior when agent doesn't output a status marker (in_progress).
61
- * - 'complete': Treat as done, follow done/always transition or complete workflow (default)
62
- * - 'continue': Treat as done, follow done/always transition or move to next step
63
- * - 'stay': Stay on current step (may cause loops, use with caution)
64
- */
65
- onNoStatus?: OnNoStatusBehavior;
94
+ /** Sub-steps to execute in parallel. When set, this step runs all sub-steps concurrently. */
95
+ parallel?: WorkflowStep[];
66
96
  }
67
97
  /** Loop detection configuration */
68
98
  export interface LoopDetectionConfig {
@@ -105,7 +135,6 @@ export interface CustomAgentConfig {
105
135
  promptFile?: string;
106
136
  prompt?: string;
107
137
  allowedTools?: string[];
108
- statusPatterns?: Record<string, string>;
109
138
  claudeAgent?: string;
110
139
  claudeSkill?: string;
111
140
  provider?: 'claude' | 'codex' | 'mock';
@@ -127,6 +156,10 @@ export interface GlobalConfig {
127
156
  provider?: 'claude' | 'codex' | 'mock';
128
157
  model?: string;
129
158
  debug?: DebugConfig;
159
+ /** Directory for shared clones (worktree_dir in config). If empty, uses ../{clone-name} relative to project */
160
+ worktreeDir?: string;
161
+ /** List of builtin workflow/agent names to exclude from fallback loading */
162
+ disabledBuiltins?: string[];
130
163
  }
131
164
  /** Project-level configuration */
132
165
  export interface ProjectConfig {