takt 0.3.6 → 0.3.8

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 (121) hide show
  1. package/README.md +81 -25
  2. package/dist/claude/client.d.ts.map +1 -1
  3. package/dist/claude/client.js +3 -2
  4. package/dist/claude/client.js.map +1 -1
  5. package/dist/claude/executor.d.ts.map +1 -1
  6. package/dist/claude/executor.js +2 -1
  7. package/dist/claude/executor.js.map +1 -1
  8. package/dist/cli.d.ts +2 -0
  9. package/dist/cli.d.ts.map +1 -1
  10. package/dist/cli.js +52 -21
  11. package/dist/cli.js.map +1 -1
  12. package/dist/codex/client.d.ts.map +1 -1
  13. package/dist/codex/client.js +2 -1
  14. package/dist/codex/client.js.map +1 -1
  15. package/dist/commands/addTask.d.ts.map +1 -1
  16. package/dist/commands/addTask.js +3 -2
  17. package/dist/commands/addTask.js.map +1 -1
  18. package/dist/commands/config.d.ts.map +1 -1
  19. package/dist/commands/config.js +0 -7
  20. package/dist/commands/config.js.map +1 -1
  21. package/dist/commands/eject.js +3 -3
  22. package/dist/commands/eject.js.map +1 -1
  23. package/dist/commands/interactive.d.ts.map +1 -1
  24. package/dist/commands/interactive.js +12 -10
  25. package/dist/commands/interactive.js.map +1 -1
  26. package/dist/commands/listTasks.d.ts.map +1 -1
  27. package/dist/commands/listTasks.js +15 -9
  28. package/dist/commands/listTasks.js.map +1 -1
  29. package/dist/commands/pipelineExecution.d.ts +1 -1
  30. package/dist/commands/pipelineExecution.d.ts.map +1 -1
  31. package/dist/commands/pipelineExecution.js +15 -25
  32. package/dist/commands/pipelineExecution.js.map +1 -1
  33. package/dist/commands/taskExecution.d.ts +14 -6
  34. package/dist/commands/taskExecution.d.ts.map +1 -1
  35. package/dist/commands/taskExecution.js +27 -19
  36. package/dist/commands/taskExecution.js.map +1 -1
  37. package/dist/commands/watchTasks.d.ts.map +1 -1
  38. package/dist/commands/watchTasks.js +7 -7
  39. package/dist/commands/watchTasks.js.map +1 -1
  40. package/dist/commands/workflow.js +3 -3
  41. package/dist/commands/workflow.js.map +1 -1
  42. package/dist/commands/workflowExecution.d.ts +3 -3
  43. package/dist/commands/workflowExecution.d.ts.map +1 -1
  44. package/dist/commands/workflowExecution.js +10 -8
  45. package/dist/commands/workflowExecution.js.map +1 -1
  46. package/dist/config/globalConfig.d.ts +2 -0
  47. package/dist/config/globalConfig.d.ts.map +1 -1
  48. package/dist/config/globalConfig.js +20 -2
  49. package/dist/config/globalConfig.js.map +1 -1
  50. package/dist/config/loader.d.ts +2 -2
  51. package/dist/config/loader.d.ts.map +1 -1
  52. package/dist/config/loader.js +2 -2
  53. package/dist/config/loader.js.map +1 -1
  54. package/dist/config/projectConfig.d.ts +0 -2
  55. package/dist/config/projectConfig.d.ts.map +1 -1
  56. package/dist/config/projectConfig.js.map +1 -1
  57. package/dist/config/workflowLoader.d.ts +49 -13
  58. package/dist/config/workflowLoader.d.ts.map +1 -1
  59. package/dist/config/workflowLoader.js +139 -51
  60. package/dist/config/workflowLoader.js.map +1 -1
  61. package/dist/github/pr.d.ts.map +1 -1
  62. package/dist/github/pr.js +2 -1
  63. package/dist/github/pr.js.map +1 -1
  64. package/dist/mock/client.d.ts.map +1 -1
  65. package/dist/mock/client.js +5 -2
  66. package/dist/mock/client.js.map +1 -1
  67. package/dist/mock/scenario.d.ts +57 -0
  68. package/dist/mock/scenario.d.ts.map +1 -0
  69. package/dist/mock/scenario.js +123 -0
  70. package/dist/mock/scenario.js.map +1 -0
  71. package/dist/models/schemas.d.ts +1 -0
  72. package/dist/models/schemas.d.ts.map +1 -1
  73. package/dist/models/schemas.js +2 -0
  74. package/dist/models/schemas.js.map +1 -1
  75. package/dist/models/types.d.ts +2 -0
  76. package/dist/models/types.d.ts.map +1 -1
  77. package/dist/task/autoCommit.d.ts.map +1 -1
  78. package/dist/task/autoCommit.js +6 -25
  79. package/dist/task/autoCommit.js.map +1 -1
  80. package/dist/task/git.d.ts +9 -0
  81. package/dist/task/git.d.ts.map +1 -0
  82. package/dist/task/git.js +26 -0
  83. package/dist/task/git.js.map +1 -0
  84. package/dist/utils/session.d.ts.map +1 -1
  85. package/dist/utils/session.js +2 -1
  86. package/dist/utils/session.js.map +1 -1
  87. package/dist/utils/ui.d.ts +4 -1
  88. package/dist/utils/ui.d.ts.map +1 -1
  89. package/dist/utils/ui.js +30 -2
  90. package/dist/utils/ui.js.map +1 -1
  91. package/dist/workflow/engine.d.ts +1 -1
  92. package/dist/workflow/engine.d.ts.map +1 -1
  93. package/dist/workflow/engine.js +4 -3
  94. package/dist/workflow/engine.js.map +1 -1
  95. package/dist/workflow/instruction-builder.d.ts +5 -62
  96. package/dist/workflow/instruction-builder.d.ts.map +1 -1
  97. package/dist/workflow/instruction-builder.js +5 -139
  98. package/dist/workflow/instruction-builder.js.map +1 -1
  99. package/dist/workflow/instruction-context.d.ts +79 -0
  100. package/dist/workflow/instruction-context.d.ts.map +1 -0
  101. package/dist/workflow/instruction-context.js +72 -0
  102. package/dist/workflow/instruction-context.js.map +1 -0
  103. package/dist/workflow/status-rules.d.ts +21 -0
  104. package/dist/workflow/status-rules.d.ts.map +1 -0
  105. package/dist/workflow/status-rules.js +81 -0
  106. package/dist/workflow/status-rules.js.map +1 -0
  107. package/dist/workflow/types.d.ts +2 -2
  108. package/dist/workflow/types.d.ts.map +1 -1
  109. package/package.json +1 -1
  110. package/resources/global/en/agents/default/ai-antipattern-reviewer.md +58 -14
  111. package/resources/global/en/agents/default/architecture-reviewer.md +10 -0
  112. package/resources/global/en/agents/default/coder.md +82 -0
  113. package/resources/global/en/workflows/default.yaml +36 -25
  114. package/resources/global/en/workflows/expert-cqrs.yaml +36 -23
  115. package/resources/global/en/workflows/expert.yaml +37 -27
  116. package/resources/global/ja/agents/default/ai-antipattern-reviewer.md +57 -13
  117. package/resources/global/ja/agents/default/architecture-reviewer.md +10 -0
  118. package/resources/global/ja/agents/default/coder.md +82 -0
  119. package/resources/global/ja/workflows/default.yaml +36 -25
  120. package/resources/global/ja/workflows/expert-cqrs.yaml +36 -23
  121. package/resources/global/ja/workflows/expert.yaml +37 -28
@@ -1 +1 @@
1
- {"version":3,"file":"projectConfig.js","sourceRoot":"","sources":["../../src/config/projectConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projectConfig.js","sourceRoot":"","sources":["../../src/config/projectConfig.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,61 @@
1
1
  /**
2
2
  * Workflow configuration loader
3
3
  *
4
- * Loads workflows with user builtin fallback:
5
- * 1. User workflows: ~/.takt/workflows/{name}.yaml
6
- * 2. Builtin workflows: resources/global/{lang}/workflows/{name}.yaml
4
+ * Loads workflows with the following priority:
5
+ * 1. Path-based input (absolute, relative, or home-dir) → load directly from file
6
+ * 2. Project-local workflows: .takt/workflows/{name}.yaml
7
+ * 3. User workflows: ~/.takt/workflows/{name}.yaml
8
+ * 4. Builtin workflows: resources/global/{lang}/workflows/{name}.yaml
7
9
  */
8
10
  import type { WorkflowConfig } from '../models/types.js';
9
11
  /** Get builtin workflow by name */
10
12
  export declare function getBuiltinWorkflow(name: string): WorkflowConfig | null;
11
13
  /**
12
- * Load a workflow from a YAML file.
13
- * @param filePath Path to the workflow YAML file
14
+ * Load workflow by name (name-based loading only, no path detection).
15
+ *
16
+ * Priority:
17
+ * 1. Project-local workflows → .takt/workflows/{name}.yaml
18
+ * 2. User workflows → ~/.takt/workflows/{name}.yaml
19
+ * 3. Builtin workflows → resources/global/{lang}/workflows/{name}.yaml
20
+ *
21
+ * @param name Workflow name (not a file path)
22
+ * @param projectCwd Project root directory (for project-local workflow resolution)
14
23
  */
15
- export declare function loadWorkflowFromFile(filePath: string): WorkflowConfig;
24
+ export declare function loadWorkflow(name: string, projectCwd: string): WorkflowConfig | null;
16
25
  /**
17
- * Load workflow by name.
18
- * Priority: user (~/.takt/workflows/) → builtin (resources/global/{lang}/workflows/)
26
+ * Load all workflows with descriptions (for switch command).
27
+ *
28
+ * Priority (later entries override earlier):
29
+ * 1. Builtin workflows
30
+ * 2. User workflows (~/.takt/workflows/)
31
+ * 3. Project-local workflows (.takt/workflows/)
32
+ */
33
+ export declare function loadAllWorkflows(cwd: string): Map<string, WorkflowConfig>;
34
+ /**
35
+ * List available workflow names (builtin + user + project-local, excluding disabled).
36
+ *
37
+ * @param cwd Project root directory (used to scan project-local .takt/workflows/).
38
+ */
39
+ export declare function listWorkflows(cwd: string): string[];
40
+ /**
41
+ * Check if a workflow identifier looks like a file path (vs a workflow name).
42
+ *
43
+ * Path indicators:
44
+ * - Starts with `/` (absolute path)
45
+ * - Starts with `~` (home directory)
46
+ * - Starts with `./` or `../` (relative path)
47
+ * - Ends with `.yaml` or `.yml` (file extension)
48
+ */
49
+ export declare function isWorkflowPath(identifier: string): boolean;
50
+ /**
51
+ * Load workflow by identifier (auto-detects name vs path).
52
+ *
53
+ * If the identifier looks like a path (see isWorkflowPath), loads from file.
54
+ * Otherwise, loads by name with the standard priority chain:
55
+ * project-local → user → builtin.
56
+ *
57
+ * @param identifier Workflow name or file path
58
+ * @param projectCwd Project root directory (for project-local resolution and relative path base)
19
59
  */
20
- export declare function loadWorkflow(name: string): WorkflowConfig | null;
21
- /** Load all workflows with descriptions (for switch command) */
22
- export declare function loadAllWorkflows(): Map<string, WorkflowConfig>;
23
- /** List available workflows (user + builtin, excluding disabled) */
24
- export declare function listWorkflows(): string[];
60
+ export declare function loadWorkflowByIdentifier(identifier: string, projectCwd: string): WorkflowConfig | null;
25
61
  //# sourceMappingURL=workflowLoader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflowLoader.d.ts","sourceRoot":"","sources":["../../src/config/workflowLoader.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAgE,MAAM,oBAAoB,CAAC;AAIvH,mCAAmC;AACnC,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAWtE;AAwMD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAQrE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAUhE;AAED,gEAAgE;AAChE,wBAAgB,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CA4C9D;AAED,oEAAoE;AACpE,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAcxC"}
1
+ {"version":3,"file":"workflowLoader.d.ts","sourceRoot":"","sources":["../../src/config/workflowLoader.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,OAAO,KAAK,EAAE,cAAc,EAAgE,MAAM,oBAAoB,CAAC;AAIvH,mCAAmC;AACnC,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAWtE;AAiQD;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GACjB,cAAc,GAAG,IAAI,CAiBvB;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAkBzE;AAuBD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAkBnD;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAS1D;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,cAAc,GAAG,IAAI,CAKvB"}
@@ -1,15 +1,18 @@
1
1
  /**
2
2
  * Workflow configuration loader
3
3
  *
4
- * Loads workflows with user builtin fallback:
5
- * 1. User workflows: ~/.takt/workflows/{name}.yaml
6
- * 2. Builtin workflows: resources/global/{lang}/workflows/{name}.yaml
4
+ * Loads workflows with the following priority:
5
+ * 1. Path-based input (absolute, relative, or home-dir) → load directly from file
6
+ * 2. Project-local workflows: .takt/workflows/{name}.yaml
7
+ * 3. User workflows: ~/.takt/workflows/{name}.yaml
8
+ * 4. Builtin workflows: resources/global/{lang}/workflows/{name}.yaml
7
9
  */
8
10
  import { readFileSync, existsSync, readdirSync, statSync } from 'node:fs';
9
- import { join, dirname, basename } from 'node:path';
11
+ import { join, dirname, basename, resolve, isAbsolute } from 'node:path';
12
+ import { homedir } from 'node:os';
10
13
  import { parse as parseYaml } from 'yaml';
11
14
  import { WorkflowConfigRawSchema } from '../models/schemas.js';
12
- import { getGlobalWorkflowsDir, getBuiltinWorkflowsDir } from './paths.js';
15
+ import { getGlobalWorkflowsDir, getBuiltinWorkflowsDir, getProjectConfigDir } from './paths.js';
13
16
  import { getLanguage, getDisabledBuiltins } from './globalConfig.js';
14
17
  /** Get builtin workflow by name */
15
18
  export function getBuiltinWorkflow(name) {
@@ -201,7 +204,7 @@ function normalizeWorkflowConfig(raw, workflowDir) {
201
204
  * Load a workflow from a YAML file.
202
205
  * @param filePath Path to the workflow YAML file
203
206
  */
204
- export function loadWorkflowFromFile(filePath) {
207
+ function loadWorkflowFromFile(filePath) {
205
208
  if (!existsSync(filePath)) {
206
209
  throw new Error(`Workflow file not found: ${filePath}`);
207
210
  }
@@ -211,67 +214,116 @@ export function loadWorkflowFromFile(filePath) {
211
214
  return normalizeWorkflowConfig(raw, workflowDir);
212
215
  }
213
216
  /**
214
- * Load workflow by name.
215
- * Priority: user (~/.takt/workflows/) builtin (resources/global/{lang}/workflows/)
217
+ * Resolve a path that may be relative, absolute, or home-directory-relative.
218
+ * @param pathInput Path to resolve
219
+ * @param basePath Base directory for relative paths
220
+ * @returns Absolute resolved path
216
221
  */
217
- export function loadWorkflow(name) {
218
- // 1. User workflow
222
+ function resolvePath(pathInput, basePath) {
223
+ // Home directory expansion
224
+ if (pathInput.startsWith('~')) {
225
+ const home = homedir();
226
+ return resolve(home, pathInput.slice(1).replace(/^\//, ''));
227
+ }
228
+ // Absolute path
229
+ if (isAbsolute(pathInput)) {
230
+ return pathInput;
231
+ }
232
+ // Relative path
233
+ return resolve(basePath, pathInput);
234
+ }
235
+ /**
236
+ * Load workflow from a file path.
237
+ * Called internally by loadWorkflowByIdentifier when the identifier is detected as a path.
238
+ *
239
+ * @param filePath Path to workflow file (absolute, relative, or home-dir prefixed with ~)
240
+ * @param basePath Base directory for resolving relative paths
241
+ * @returns WorkflowConfig or null if file not found
242
+ */
243
+ function loadWorkflowFromPath(filePath, basePath) {
244
+ const resolvedPath = resolvePath(filePath, basePath);
245
+ if (!existsSync(resolvedPath)) {
246
+ return null;
247
+ }
248
+ return loadWorkflowFromFile(resolvedPath);
249
+ }
250
+ /**
251
+ * Load workflow by name (name-based loading only, no path detection).
252
+ *
253
+ * Priority:
254
+ * 1. Project-local workflows → .takt/workflows/{name}.yaml
255
+ * 2. User workflows → ~/.takt/workflows/{name}.yaml
256
+ * 3. Builtin workflows → resources/global/{lang}/workflows/{name}.yaml
257
+ *
258
+ * @param name Workflow name (not a file path)
259
+ * @param projectCwd Project root directory (for project-local workflow resolution)
260
+ */
261
+ export function loadWorkflow(name, projectCwd) {
262
+ // 1. Project-local workflow (.takt/workflows/{name}.yaml)
263
+ const projectWorkflowsDir = join(getProjectConfigDir(projectCwd), 'workflows');
264
+ const projectWorkflowPath = join(projectWorkflowsDir, `${name}.yaml`);
265
+ if (existsSync(projectWorkflowPath)) {
266
+ return loadWorkflowFromFile(projectWorkflowPath);
267
+ }
268
+ // 2. User workflow (~/.takt/workflows/{name}.yaml)
219
269
  const globalWorkflowsDir = getGlobalWorkflowsDir();
220
270
  const workflowYamlPath = join(globalWorkflowsDir, `${name}.yaml`);
221
271
  if (existsSync(workflowYamlPath)) {
222
272
  return loadWorkflowFromFile(workflowYamlPath);
223
273
  }
224
- // 2. Builtin fallback
274
+ // 3. Builtin fallback
225
275
  return getBuiltinWorkflow(name);
226
276
  }
227
- /** Load all workflows with descriptions (for switch command) */
228
- export function loadAllWorkflows() {
277
+ /**
278
+ * Load all workflows with descriptions (for switch command).
279
+ *
280
+ * Priority (later entries override earlier):
281
+ * 1. Builtin workflows
282
+ * 2. User workflows (~/.takt/workflows/)
283
+ * 3. Project-local workflows (.takt/workflows/)
284
+ */
285
+ export function loadAllWorkflows(cwd) {
229
286
  const workflows = new Map();
230
287
  const disabled = getDisabledBuiltins();
231
- // 1. Builtin workflows (lower priority — will be overridden by user)
288
+ // 1. Builtin workflows (lowest priority)
232
289
  const lang = getLanguage();
233
290
  const builtinDir = getBuiltinWorkflowsDir(lang);
234
- if (existsSync(builtinDir)) {
235
- for (const entry of readdirSync(builtinDir)) {
236
- if (!entry.endsWith('.yaml') && !entry.endsWith('.yml'))
237
- continue;
238
- const entryPath = join(builtinDir, entry);
239
- if (statSync(entryPath).isFile()) {
240
- const workflowName = entry.replace(/\.ya?ml$/, '');
241
- if (disabled.includes(workflowName))
242
- continue;
243
- try {
244
- workflows.set(workflowName, loadWorkflowFromFile(entryPath));
245
- }
246
- catch {
247
- // Skip invalid workflows
248
- }
249
- }
250
- }
251
- }
252
- // 2. User workflows (higher priority — overrides builtins)
291
+ loadWorkflowsFromDir(builtinDir, workflows, disabled);
292
+ // 2. User workflows (overrides builtins)
253
293
  const globalWorkflowsDir = getGlobalWorkflowsDir();
254
- if (existsSync(globalWorkflowsDir)) {
255
- for (const entry of readdirSync(globalWorkflowsDir)) {
256
- if (!entry.endsWith('.yaml') && !entry.endsWith('.yml'))
257
- continue;
258
- const entryPath = join(globalWorkflowsDir, entry);
259
- if (statSync(entryPath).isFile()) {
260
- try {
261
- const workflow = loadWorkflowFromFile(entryPath);
262
- const workflowName = entry.replace(/\.ya?ml$/, '');
263
- workflows.set(workflowName, workflow);
264
- }
265
- catch {
266
- // Skip invalid workflows
267
- }
268
- }
294
+ loadWorkflowsFromDir(globalWorkflowsDir, workflows);
295
+ // 3. Project-local workflows (highest priority)
296
+ const projectWorkflowsDir = join(getProjectConfigDir(cwd), 'workflows');
297
+ loadWorkflowsFromDir(projectWorkflowsDir, workflows);
298
+ return workflows;
299
+ }
300
+ /** Load workflow files from a directory into a Map (later calls override earlier entries) */
301
+ function loadWorkflowsFromDir(dir, target, disabled) {
302
+ if (!existsSync(dir))
303
+ return;
304
+ for (const entry of readdirSync(dir)) {
305
+ if (!entry.endsWith('.yaml') && !entry.endsWith('.yml'))
306
+ continue;
307
+ const entryPath = join(dir, entry);
308
+ if (!statSync(entryPath).isFile())
309
+ continue;
310
+ const workflowName = entry.replace(/\.ya?ml$/, '');
311
+ if (disabled?.includes(workflowName))
312
+ continue;
313
+ try {
314
+ target.set(workflowName, loadWorkflowFromFile(entryPath));
315
+ }
316
+ catch {
317
+ // Skip invalid workflows
269
318
  }
270
319
  }
271
- return workflows;
272
320
  }
273
- /** List available workflows (user + builtin, excluding disabled) */
274
- export function listWorkflows() {
321
+ /**
322
+ * List available workflow names (builtin + user + project-local, excluding disabled).
323
+ *
324
+ * @param cwd Project root directory (used to scan project-local .takt/workflows/).
325
+ */
326
+ export function listWorkflows(cwd) {
275
327
  const workflows = new Set();
276
328
  const disabled = getDisabledBuiltins();
277
329
  // 1. Builtin workflows
@@ -281,8 +333,44 @@ export function listWorkflows() {
281
333
  // 2. User workflows
282
334
  const globalWorkflowsDir = getGlobalWorkflowsDir();
283
335
  scanWorkflowDir(globalWorkflowsDir, workflows);
336
+ // 3. Project-local workflows
337
+ const projectWorkflowsDir = join(getProjectConfigDir(cwd), 'workflows');
338
+ scanWorkflowDir(projectWorkflowsDir, workflows);
284
339
  return Array.from(workflows).sort();
285
340
  }
341
+ /**
342
+ * Check if a workflow identifier looks like a file path (vs a workflow name).
343
+ *
344
+ * Path indicators:
345
+ * - Starts with `/` (absolute path)
346
+ * - Starts with `~` (home directory)
347
+ * - Starts with `./` or `../` (relative path)
348
+ * - Ends with `.yaml` or `.yml` (file extension)
349
+ */
350
+ export function isWorkflowPath(identifier) {
351
+ return (identifier.startsWith('/') ||
352
+ identifier.startsWith('~') ||
353
+ identifier.startsWith('./') ||
354
+ identifier.startsWith('../') ||
355
+ identifier.endsWith('.yaml') ||
356
+ identifier.endsWith('.yml'));
357
+ }
358
+ /**
359
+ * Load workflow by identifier (auto-detects name vs path).
360
+ *
361
+ * If the identifier looks like a path (see isWorkflowPath), loads from file.
362
+ * Otherwise, loads by name with the standard priority chain:
363
+ * project-local → user → builtin.
364
+ *
365
+ * @param identifier Workflow name or file path
366
+ * @param projectCwd Project root directory (for project-local resolution and relative path base)
367
+ */
368
+ export function loadWorkflowByIdentifier(identifier, projectCwd) {
369
+ if (isWorkflowPath(identifier)) {
370
+ return loadWorkflowFromPath(identifier, projectCwd);
371
+ }
372
+ return loadWorkflow(identifier, projectCwd);
373
+ }
286
374
  /** Scan a directory for .yaml/.yml files and add names to the set */
287
375
  function scanWorkflowDir(dir, target, disabled) {
288
376
  if (!existsSync(dir))
@@ -1 +1 @@
1
- {"version":3,"file":"workflowLoader.js","sourceRoot":"","sources":["../../src/config/workflowLoader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflowLoader.js","sourceRoot":"","sources":["../../src/config/workflowLoader.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pr.d.ts","sourceRoot":"","sources":["../../src/github/pr.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAI1D,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,eAAe;IACf,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAM5D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,cAAc,CAuCvF;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAoBlF"}
1
+ {"version":3,"file":"pr.d.ts","sourceRoot":"","sources":["../../src/github/pr.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAI1D,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,eAAe;IACf,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAM5D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,cAAc,CAuCvF;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAoBlF"}
package/dist/github/pr.js CHANGED
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import { execFileSync } from 'node:child_process';
7
7
  import { createLogger } from '../utils/debug.js';
8
+ import { getErrorMessage } from '../utils/error.js';
8
9
  import { checkGhCli } from './issue.js';
9
10
  const log = createLogger('github-pr');
10
11
  /**
@@ -50,7 +51,7 @@ export function createPullRequest(cwd, options) {
50
51
  return { success: true, url };
51
52
  }
52
53
  catch (err) {
53
- const errorMessage = err instanceof Error ? err.message : String(err);
54
+ const errorMessage = getErrorMessage(err);
54
55
  log.error('PR creation failed', { error: errorMessage });
55
56
  return { success: false, error: errorMessage };
56
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pr.js","sourceRoot":"","sources":["../../src/github/pr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pr.js","sourceRoot":"","sources":["../../src/github/pr.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/mock/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,sBAAsB,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,6BAA6B;AAC7B,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;CACvE;AASD;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,aAAa,CAAC,CAmCxB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,aAAa,CAAC,CAGxB"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/mock/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,sBAAsB,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD,6BAA6B;AAC7B,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;CACvE;AASD;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,aAAa,CAAC,CAuCxB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,aAAa,CAAC,CAGxB"}
@@ -5,6 +5,7 @@
5
5
  * Useful for testing workflows without incurring costs or latency.
6
6
  */
7
7
  import { randomUUID } from 'node:crypto';
8
+ import { getScenarioQueue } from './scenario.js';
8
9
  /**
9
10
  * Generate a mock session ID
10
11
  */
@@ -16,9 +17,11 @@ function generateMockSessionId() {
16
17
  */
17
18
  export async function callMock(agentName, prompt, options) {
18
19
  const sessionId = options.sessionId ?? generateMockSessionId();
19
- const status = options.mockStatus ?? 'done';
20
+ // Scenario queue takes priority over explicit options
21
+ const scenarioEntry = getScenarioQueue()?.consume(agentName);
22
+ const status = scenarioEntry?.status ?? options.mockStatus ?? 'done';
20
23
  const statusMarker = `[MOCK:${status.toUpperCase()}]`;
21
- const content = options.mockResponse ??
24
+ const content = scenarioEntry?.content ?? options.mockResponse ??
22
25
  `${statusMarker}\n\nMock response for agent "${agentName}".\nPrompt: ${prompt.slice(0, 100)}${prompt.length > 100 ? '...' : ''}`;
23
26
  // Emit stream events if callback is provided
24
27
  if (options.onStream) {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/mock/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAezC;;GAEG;AACH,SAAS,qBAAqB;IAC5B,OAAO,gBAAgB,UAAU,EAAE,EAAE,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,SAAiB,EACjB,MAAc,EACd,OAAwB;IAExB,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,qBAAqB,EAAE,CAAC;IAC/D,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,IAAI,MAAM,CAAC;IAC5C,MAAM,YAAY,GAAG,SAAS,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC;IACtD,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY;QAClC,GAAG,YAAY,gCAAgC,SAAS,eAAe,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAEnI,6CAA6C;IAC7C,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,SAAS,GAAgB;YAC7B,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE;SACzC,CAAC;QACF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAE5B,MAAM,SAAS,GAAgB;YAC7B,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;SACxB,CAAC;QACF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAE5B,MAAM,WAAW,GAAgB;YAC/B,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;SACpD,CAAC;QACF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAChC,CAAC;IAED,OAAO;QACL,KAAK,EAAE,SAAS;QAChB,MAAM;QACN,OAAO;QACP,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,SAAS;KACV,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,SAAiB,EACjB,MAAc,EACd,aAAqB,EACrB,OAAwB;IAExB,kEAAkE;IAClE,OAAO,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/mock/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAajD;;GAEG;AACH,SAAS,qBAAqB;IAC5B,OAAO,gBAAgB,UAAU,EAAE,EAAE,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,SAAiB,EACjB,MAAc,EACd,OAAwB;IAExB,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,qBAAqB,EAAE,CAAC;IAE/D,sDAAsD;IACtD,MAAM,aAAa,GAAG,gBAAgB,EAAE,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAE7D,MAAM,MAAM,GAAG,aAAa,EAAE,MAAM,IAAI,OAAO,CAAC,UAAU,IAAI,MAAM,CAAC;IACrE,MAAM,YAAY,GAAG,SAAS,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC;IACtD,MAAM,OAAO,GAAG,aAAa,EAAE,OAAO,IAAI,OAAO,CAAC,YAAY;QAC5D,GAAG,YAAY,gCAAgC,SAAS,eAAe,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAEnI,6CAA6C;IAC7C,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,SAAS,GAAgB;YAC7B,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE;SACzC,CAAC;QACF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAE5B,MAAM,SAAS,GAAgB;YAC7B,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;SACxB,CAAC;QACF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAE5B,MAAM,WAAW,GAAgB;YAC/B,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;SACpD,CAAC;QACF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAChC,CAAC;IAED,OAAO;QACL,KAAK,EAAE,SAAS;QAChB,MAAM;QACN,OAAO;QACP,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,SAAS;KACV,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,SAAiB,EACjB,MAAc,EACd,aAAqB,EACrB,OAAwB;IAExB,kEAAkE;IAClE,OAAO,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Mock scenario support for integration testing.
3
+ *
4
+ * Provides a queue-based mechanism to control mock provider responses
5
+ * per agent or by call order. Scenarios can be loaded from JSON files
6
+ * (via TAKT_MOCK_SCENARIO env var) or set programmatically in tests.
7
+ */
8
+ /** A single entry in a mock scenario */
9
+ export interface ScenarioEntry {
10
+ /** Agent name to match (optional — if omitted, consumed by call order) */
11
+ agent?: string;
12
+ /** Response status */
13
+ status: 'done' | 'blocked' | 'approved' | 'rejected' | 'improve';
14
+ /** Response content body */
15
+ content: string;
16
+ }
17
+ /**
18
+ * Queue that dispenses scenario entries.
19
+ *
20
+ * Matching rules:
21
+ * 1. If an entry has `agent` set, it only matches calls for that agent name.
22
+ * 2. Entries without `agent` match any call (consumed in order).
23
+ * 3. First matching entry is removed from the queue and returned.
24
+ * 4. Returns undefined when no matching entry remains.
25
+ */
26
+ export declare class ScenarioQueue {
27
+ private entries;
28
+ constructor(entries: ScenarioEntry[]);
29
+ /**
30
+ * Consume the next matching entry for the given agent.
31
+ */
32
+ consume(agentName: string): ScenarioEntry | undefined;
33
+ /** Number of remaining entries */
34
+ get remaining(): number;
35
+ }
36
+ /**
37
+ * Set mock scenario programmatically (for tests).
38
+ * Pass null to clear.
39
+ */
40
+ export declare function setMockScenario(entries: ScenarioEntry[] | null): void;
41
+ /**
42
+ * Get the current global scenario queue.
43
+ * Lazily loads from TAKT_MOCK_SCENARIO env var on first access.
44
+ */
45
+ export declare function getScenarioQueue(): ScenarioQueue | null;
46
+ /**
47
+ * Reset global scenario state (for test cleanup).
48
+ */
49
+ export declare function resetScenario(): void;
50
+ /**
51
+ * Load and validate a scenario JSON file.
52
+ *
53
+ * @param filePath Absolute or relative path to scenario JSON
54
+ * @throws Error if file not found or JSON invalid
55
+ */
56
+ export declare function loadScenarioFile(filePath: string): ScenarioEntry[];
57
+ //# sourceMappingURL=scenario.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scenario.d.ts","sourceRoot":"","sources":["../../src/mock/scenario.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,wCAAwC;AACxC,MAAM,WAAW,aAAa;IAC5B,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sBAAsB;IACtB,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;IACjE,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAkB;gBAErB,OAAO,EAAE,aAAa,EAAE;IAKpC;;OAEG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAkBrD,kCAAkC;IAClC,IAAI,SAAS,IAAI,MAAM,CAEtB;CACF;AAMD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,IAAI,GAAG,IAAI,CAErE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,GAAG,IAAI,CAWvD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,EAAE,CAkBlE"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Mock scenario support for integration testing.
3
+ *
4
+ * Provides a queue-based mechanism to control mock provider responses
5
+ * per agent or by call order. Scenarios can be loaded from JSON files
6
+ * (via TAKT_MOCK_SCENARIO env var) or set programmatically in tests.
7
+ */
8
+ import { readFileSync, existsSync } from 'node:fs';
9
+ /**
10
+ * Queue that dispenses scenario entries.
11
+ *
12
+ * Matching rules:
13
+ * 1. If an entry has `agent` set, it only matches calls for that agent name.
14
+ * 2. Entries without `agent` match any call (consumed in order).
15
+ * 3. First matching entry is removed from the queue and returned.
16
+ * 4. Returns undefined when no matching entry remains.
17
+ */
18
+ export class ScenarioQueue {
19
+ entries;
20
+ constructor(entries) {
21
+ // Defensive copy
22
+ this.entries = [...entries];
23
+ }
24
+ /**
25
+ * Consume the next matching entry for the given agent.
26
+ */
27
+ consume(agentName) {
28
+ // Try agent-specific match first
29
+ const agentIndex = this.entries.findIndex((e) => e.agent !== undefined && e.agent === agentName);
30
+ if (agentIndex >= 0) {
31
+ return this.entries.splice(agentIndex, 1)[0];
32
+ }
33
+ // Fall back to first unspecified entry
34
+ const anyIndex = this.entries.findIndex((e) => e.agent === undefined);
35
+ if (anyIndex >= 0) {
36
+ return this.entries.splice(anyIndex, 1)[0];
37
+ }
38
+ return undefined;
39
+ }
40
+ /** Number of remaining entries */
41
+ get remaining() {
42
+ return this.entries.length;
43
+ }
44
+ }
45
+ // --- Global singleton (module-level state) ---
46
+ let globalQueue = null;
47
+ /**
48
+ * Set mock scenario programmatically (for tests).
49
+ * Pass null to clear.
50
+ */
51
+ export function setMockScenario(entries) {
52
+ globalQueue = entries ? new ScenarioQueue(entries) : null;
53
+ }
54
+ /**
55
+ * Get the current global scenario queue.
56
+ * Lazily loads from TAKT_MOCK_SCENARIO env var on first access.
57
+ */
58
+ export function getScenarioQueue() {
59
+ if (globalQueue)
60
+ return globalQueue;
61
+ const envPath = process.env.TAKT_MOCK_SCENARIO;
62
+ if (envPath) {
63
+ const entries = loadScenarioFile(envPath);
64
+ globalQueue = new ScenarioQueue(entries);
65
+ return globalQueue;
66
+ }
67
+ return null;
68
+ }
69
+ /**
70
+ * Reset global scenario state (for test cleanup).
71
+ */
72
+ export function resetScenario() {
73
+ globalQueue = null;
74
+ }
75
+ /**
76
+ * Load and validate a scenario JSON file.
77
+ *
78
+ * @param filePath Absolute or relative path to scenario JSON
79
+ * @throws Error if file not found or JSON invalid
80
+ */
81
+ export function loadScenarioFile(filePath) {
82
+ if (!existsSync(filePath)) {
83
+ throw new Error(`Scenario file not found: ${filePath}`);
84
+ }
85
+ const raw = readFileSync(filePath, 'utf-8');
86
+ let parsed;
87
+ try {
88
+ parsed = JSON.parse(raw);
89
+ }
90
+ catch {
91
+ throw new Error(`Scenario file is not valid JSON: ${filePath}`);
92
+ }
93
+ if (!Array.isArray(parsed)) {
94
+ throw new Error(`Scenario file must contain a JSON array: ${filePath}`);
95
+ }
96
+ return parsed.map((entry, i) => validateEntry(entry, i));
97
+ }
98
+ function validateEntry(entry, index) {
99
+ if (typeof entry !== 'object' || entry === null) {
100
+ throw new Error(`Scenario entry [${index}] must be an object`);
101
+ }
102
+ const obj = entry;
103
+ // content is required
104
+ if (typeof obj.content !== 'string') {
105
+ throw new Error(`Scenario entry [${index}] must have a "content" string`);
106
+ }
107
+ // status defaults to 'done'
108
+ const validStatuses = ['done', 'blocked', 'approved', 'rejected', 'improve'];
109
+ const status = obj.status ?? 'done';
110
+ if (typeof status !== 'string' || !validStatuses.includes(status)) {
111
+ throw new Error(`Scenario entry [${index}] has invalid status "${String(status)}". Valid: ${validStatuses.join(', ')}`);
112
+ }
113
+ // agent is optional
114
+ if (obj.agent !== undefined && typeof obj.agent !== 'string') {
115
+ throw new Error(`Scenario entry [${index}] "agent" must be a string if provided`);
116
+ }
117
+ return {
118
+ agent: obj.agent,
119
+ status: status,
120
+ content: obj.content,
121
+ };
122
+ }
123
+ //# sourceMappingURL=scenario.js.map