takt 0.2.3 → 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 (165) hide show
  1. package/README.md +161 -133
  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.map +1 -1
  15. package/dist/cli.js +22 -6
  16. package/dist/cli.js.map +1 -1
  17. package/dist/codex/client.d.ts +0 -1
  18. package/dist/codex/client.d.ts.map +1 -1
  19. package/dist/codex/client.js +3 -6
  20. package/dist/codex/client.js.map +1 -1
  21. package/dist/commands/addTask.d.ts.map +1 -1
  22. package/dist/commands/addTask.js +17 -2
  23. package/dist/commands/addTask.js.map +1 -1
  24. package/dist/commands/eject.d.ts +13 -0
  25. package/dist/commands/eject.d.ts.map +1 -0
  26. package/dist/commands/eject.js +105 -0
  27. package/dist/commands/eject.js.map +1 -0
  28. package/dist/commands/help.d.ts.map +1 -1
  29. package/dist/commands/help.js +9 -2
  30. package/dist/commands/help.js.map +1 -1
  31. package/dist/commands/index.d.ts +1 -0
  32. package/dist/commands/index.d.ts.map +1 -1
  33. package/dist/commands/index.js +1 -0
  34. package/dist/commands/index.js.map +1 -1
  35. package/dist/commands/refreshBuiltin.d.ts +4 -4
  36. package/dist/commands/refreshBuiltin.d.ts.map +1 -1
  37. package/dist/commands/refreshBuiltin.js +13 -29
  38. package/dist/commands/refreshBuiltin.js.map +1 -1
  39. package/dist/commands/workflowExecution.d.ts.map +1 -1
  40. package/dist/commands/workflowExecution.js +85 -18
  41. package/dist/commands/workflowExecution.js.map +1 -1
  42. package/dist/config/agentLoader.d.ts +3 -1
  43. package/dist/config/agentLoader.d.ts.map +1 -1
  44. package/dist/config/agentLoader.js +17 -24
  45. package/dist/config/agentLoader.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 +14 -0
  49. package/dist/config/globalConfig.js.map +1 -1
  50. package/dist/config/initialization.d.ts +7 -5
  51. package/dist/config/initialization.d.ts.map +1 -1
  52. package/dist/config/initialization.js +23 -21
  53. package/dist/config/initialization.js.map +1 -1
  54. package/dist/config/paths.d.ts +5 -0
  55. package/dist/config/paths.d.ts.map +1 -1
  56. package/dist/config/paths.js +9 -0
  57. package/dist/config/paths.js.map +1 -1
  58. package/dist/config/workflowLoader.d.ts +6 -4
  59. package/dist/config/workflowLoader.d.ts.map +1 -1
  60. package/dist/config/workflowLoader.js +190 -35
  61. package/dist/config/workflowLoader.js.map +1 -1
  62. package/dist/github/issue.d.ts +72 -0
  63. package/dist/github/issue.d.ts.map +1 -0
  64. package/dist/github/issue.js +143 -0
  65. package/dist/github/issue.js.map +1 -0
  66. package/dist/models/index.d.ts +1 -1
  67. package/dist/models/index.d.ts.map +1 -1
  68. package/dist/models/index.js.map +1 -1
  69. package/dist/models/schemas.d.ts +164 -90
  70. package/dist/models/schemas.d.ts.map +1 -1
  71. package/dist/models/schemas.js +77 -51
  72. package/dist/models/schemas.js.map +1 -1
  73. package/dist/models/types.d.ts +51 -20
  74. package/dist/models/types.d.ts.map +1 -1
  75. package/dist/providers/claude.js +2 -2
  76. package/dist/providers/claude.js.map +1 -1
  77. package/dist/providers/codex.d.ts.map +1 -1
  78. package/dist/providers/codex.js +0 -2
  79. package/dist/providers/codex.js.map +1 -1
  80. package/dist/providers/index.d.ts +2 -1
  81. package/dist/providers/index.d.ts.map +1 -1
  82. package/dist/providers/index.js.map +1 -1
  83. package/dist/resources/index.d.ts +3 -22
  84. package/dist/resources/index.d.ts.map +1 -1
  85. package/dist/resources/index.js +3 -73
  86. package/dist/resources/index.js.map +1 -1
  87. package/dist/utils/session.d.ts +74 -10
  88. package/dist/utils/session.d.ts.map +1 -1
  89. package/dist/utils/session.js +101 -51
  90. package/dist/utils/session.js.map +1 -1
  91. package/dist/workflow/engine.d.ts +34 -1
  92. package/dist/workflow/engine.d.ts.map +1 -1
  93. package/dist/workflow/engine.js +228 -36
  94. package/dist/workflow/engine.js.map +1 -1
  95. package/dist/workflow/index.d.ts +1 -1
  96. package/dist/workflow/index.d.ts.map +1 -1
  97. package/dist/workflow/index.js +1 -1
  98. package/dist/workflow/index.js.map +1 -1
  99. package/dist/workflow/instruction-builder.d.ts +87 -18
  100. package/dist/workflow/instruction-builder.d.ts.map +1 -1
  101. package/dist/workflow/instruction-builder.js +404 -57
  102. package/dist/workflow/instruction-builder.js.map +1 -1
  103. package/dist/workflow/parallel-logger.d.ts +76 -0
  104. package/dist/workflow/parallel-logger.d.ts.map +1 -0
  105. package/dist/workflow/parallel-logger.js +173 -0
  106. package/dist/workflow/parallel-logger.js.map +1 -0
  107. package/dist/workflow/phase-runner.d.ts +40 -0
  108. package/dist/workflow/phase-runner.d.ts.map +1 -0
  109. package/dist/workflow/phase-runner.js +69 -0
  110. package/dist/workflow/phase-runner.js.map +1 -0
  111. package/dist/workflow/rule-evaluator.d.ts +64 -0
  112. package/dist/workflow/rule-evaluator.d.ts.map +1 -0
  113. package/dist/workflow/rule-evaluator.js +178 -0
  114. package/dist/workflow/rule-evaluator.js.map +1 -0
  115. package/dist/workflow/rule-utils.d.ts +13 -0
  116. package/dist/workflow/rule-utils.d.ts.map +1 -0
  117. package/dist/workflow/rule-utils.js +17 -0
  118. package/dist/workflow/rule-utils.js.map +1 -0
  119. package/dist/workflow/transitions.d.ts +5 -13
  120. package/dist/workflow/transitions.d.ts.map +1 -1
  121. package/dist/workflow/transitions.js +8 -78
  122. package/dist/workflow/transitions.js.map +1 -1
  123. package/dist/workflow/types.d.ts +2 -1
  124. package/dist/workflow/types.d.ts.map +1 -1
  125. package/package.json +1 -1
  126. package/resources/global/en/agents/default/ai-antipattern-reviewer.md +71 -15
  127. package/resources/global/en/agents/default/{architect.md → architecture-reviewer.md} +144 -44
  128. package/resources/global/en/agents/default/coder.md +4 -4
  129. package/resources/global/en/agents/default/planner.md +16 -9
  130. package/resources/global/en/agents/default/{security.md → security-reviewer.md} +23 -5
  131. package/resources/global/en/agents/default/supervisor.md +13 -2
  132. package/resources/global/en/agents/expert/frontend-reviewer.md +0 -17
  133. package/resources/global/en/agents/expert/qa-reviewer.md +0 -16
  134. package/resources/global/en/agents/expert/security-reviewer.md +0 -16
  135. package/resources/global/en/agents/expert-cqrs/cqrs-es-reviewer.md +0 -17
  136. package/resources/global/en/agents/templates/coder.md +128 -0
  137. package/resources/global/en/agents/templates/planner.md +44 -0
  138. package/resources/global/en/agents/templates/reviewer.md +57 -0
  139. package/resources/global/en/agents/templates/supervisor.md +64 -0
  140. package/resources/global/en/workflows/default.yaml +232 -772
  141. package/resources/global/en/workflows/expert-cqrs.yaml +319 -698
  142. package/resources/global/en/workflows/expert.yaml +348 -723
  143. package/resources/global/en/workflows/magi.yaml +45 -52
  144. package/resources/global/en/workflows/research.yaml +18 -99
  145. package/resources/global/en/workflows/simple.yaml +152 -421
  146. package/resources/global/ja/agents/default/ai-antipattern-reviewer.md +71 -15
  147. package/resources/global/ja/agents/default/{architect.md → architecture-reviewer.md} +148 -48
  148. package/resources/global/ja/agents/default/coder.md +4 -4
  149. package/resources/global/ja/agents/default/planner.md +16 -9
  150. package/resources/global/ja/agents/default/{security.md → security-reviewer.md} +23 -5
  151. package/resources/global/ja/agents/default/supervisor.md +13 -2
  152. package/resources/global/ja/agents/expert/frontend-reviewer.md +0 -18
  153. package/resources/global/ja/agents/expert/qa-reviewer.md +0 -16
  154. package/resources/global/ja/agents/expert/security-reviewer.md +0 -16
  155. package/resources/global/ja/agents/expert-cqrs/cqrs-es-reviewer.md +0 -18
  156. package/resources/global/ja/agents/templates/coder.md +128 -0
  157. package/resources/global/ja/agents/templates/planner.md +44 -0
  158. package/resources/global/ja/agents/templates/reviewer.md +57 -0
  159. package/resources/global/ja/agents/templates/supervisor.md +64 -0
  160. package/resources/global/ja/workflows/default.yaml +227 -773
  161. package/resources/global/ja/workflows/expert-cqrs.yaml +309 -833
  162. package/resources/global/ja/workflows/expert.yaml +325 -712
  163. package/resources/global/ja/workflows/magi.yaml +45 -52
  164. package/resources/global/ja/workflows/research.yaml +18 -99
  165. package/resources/global/ja/workflows/simple.yaml +145 -415
@@ -0,0 +1,105 @@
1
+ /**
2
+ * /eject command implementation
3
+ *
4
+ * Copies a builtin workflow (and its agents) to ~/.takt/ for user customization.
5
+ * Once ejected, the user copy takes priority over the builtin version.
6
+ */
7
+ import { existsSync, readdirSync, statSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
8
+ import { join, dirname } from 'node:path';
9
+ import { getGlobalWorkflowsDir, getGlobalAgentsDir, getBuiltinWorkflowsDir, getBuiltinAgentsDir } from '../config/paths.js';
10
+ import { getLanguage } from '../config/globalConfig.js';
11
+ import { header, success, info, warn, error } from '../utils/ui.js';
12
+ /**
13
+ * Eject a builtin workflow to user space for customization.
14
+ * Copies the workflow YAML and related agent .md files to ~/.takt/.
15
+ * Agent paths in the ejected workflow are rewritten from ../agents/ to ~/.takt/agents/.
16
+ */
17
+ export async function ejectBuiltin(name) {
18
+ header('Eject Builtin');
19
+ const lang = getLanguage();
20
+ const builtinWorkflowsDir = getBuiltinWorkflowsDir(lang);
21
+ if (!name) {
22
+ // List available builtins
23
+ listAvailableBuiltins(builtinWorkflowsDir);
24
+ return;
25
+ }
26
+ const builtinPath = join(builtinWorkflowsDir, `${name}.yaml`);
27
+ if (!existsSync(builtinPath)) {
28
+ error(`Builtin workflow not found: ${name}`);
29
+ info('Run "takt /eject" to see available builtins.');
30
+ return;
31
+ }
32
+ const userWorkflowsDir = getGlobalWorkflowsDir();
33
+ const userAgentsDir = getGlobalAgentsDir();
34
+ const builtinAgentsDir = getBuiltinAgentsDir(lang);
35
+ // Copy workflow YAML (rewrite agent paths)
36
+ const workflowDest = join(userWorkflowsDir, `${name}.yaml`);
37
+ if (existsSync(workflowDest)) {
38
+ warn(`User workflow already exists: ${workflowDest}`);
39
+ warn('Skipping workflow copy (user version takes priority).');
40
+ }
41
+ else {
42
+ mkdirSync(dirname(workflowDest), { recursive: true });
43
+ const content = readFileSync(builtinPath, 'utf-8');
44
+ // Rewrite relative agent paths to ~/.takt/agents/
45
+ const rewritten = content.replace(/agent:\s*\.\.\/agents\//g, 'agent: ~/.takt/agents/');
46
+ writeFileSync(workflowDest, rewritten, 'utf-8');
47
+ success(`Ejected workflow: ${workflowDest}`);
48
+ }
49
+ // Copy related agent files
50
+ const agentPaths = extractAgentRelativePaths(builtinPath);
51
+ let copiedAgents = 0;
52
+ for (const relPath of agentPaths) {
53
+ const srcPath = join(builtinAgentsDir, relPath);
54
+ const destPath = join(userAgentsDir, relPath);
55
+ if (!existsSync(srcPath))
56
+ continue;
57
+ if (existsSync(destPath)) {
58
+ info(` Agent already exists: ${destPath}`);
59
+ continue;
60
+ }
61
+ mkdirSync(dirname(destPath), { recursive: true });
62
+ writeFileSync(destPath, readFileSync(srcPath));
63
+ info(` ✓ ${destPath}`);
64
+ copiedAgents++;
65
+ }
66
+ if (copiedAgents > 0) {
67
+ success(`${copiedAgents} agent file(s) ejected.`);
68
+ }
69
+ }
70
+ /** List available builtin workflows for ejection */
71
+ function listAvailableBuiltins(builtinWorkflowsDir) {
72
+ if (!existsSync(builtinWorkflowsDir)) {
73
+ warn('No builtin workflows found.');
74
+ return;
75
+ }
76
+ info('Available builtin workflows:');
77
+ console.log();
78
+ for (const entry of readdirSync(builtinWorkflowsDir).sort()) {
79
+ if (!entry.endsWith('.yaml') && !entry.endsWith('.yml'))
80
+ continue;
81
+ if (!statSync(join(builtinWorkflowsDir, entry)).isFile())
82
+ continue;
83
+ const name = entry.replace(/\.ya?ml$/, '');
84
+ info(` ${name}`);
85
+ }
86
+ console.log();
87
+ info('Usage: takt /eject {name}');
88
+ }
89
+ /**
90
+ * Extract agent relative paths from a builtin workflow YAML.
91
+ * Matches `agent: ../agents/{path}` and returns the {path} portions.
92
+ */
93
+ function extractAgentRelativePaths(workflowPath) {
94
+ const content = readFileSync(workflowPath, 'utf-8');
95
+ const paths = new Set();
96
+ const regex = /agent:\s*\.\.\/agents\/(.+)/g;
97
+ let match;
98
+ while ((match = regex.exec(content)) !== null) {
99
+ if (match[1]) {
100
+ paths.add(match[1].trim());
101
+ }
102
+ }
103
+ return Array.from(paths);
104
+ }
105
+ //# sourceMappingURL=eject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eject.js","sourceRoot":"","sources":["../../src/commands/eject.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/commands/help.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;GAEG;AACH,wBAAgB,QAAQ,IAAI,IAAI,CAwC/B"}
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/commands/help.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;GAEG;AACH,wBAAgB,QAAQ,IAAI,IAAI,CA+C/B"}
@@ -11,22 +11,29 @@ export function showHelp() {
11
11
  console.log(`
12
12
  Usage:
13
13
  takt {task} Execute task with current workflow (continues session)
14
+ takt "#N" Execute GitHub Issue #N as task (quote # in shell)
14
15
  takt /run-tasks (/run) Run all pending tasks from .takt/tasks/
15
16
  takt /watch Watch for tasks and auto-execute (stays resident)
16
17
  takt /add-task (/add) Add a new task (interactive, YAML format)
17
18
  takt /list-tasks (/list) List task branches (merge/delete)
18
19
  takt /switch Switch workflow interactively
19
20
  takt /clear Clear agent conversation sessions (reset to initial state)
20
- takt /refresh-builtin Overwrite builtin agents/workflows with latest version
21
+ takt /eject Copy builtin workflow/agents to ~/.takt/ for customization
22
+ takt /eject {name} Eject a specific builtin workflow
21
23
  takt /help Show this help
22
24
 
23
25
  Examples:
24
26
  takt "Fix the bug in main.ts" # Execute task (continues session)
27
+ takt "#6" # Execute Issue #6 as task
28
+ takt "#6 #7" # Execute multiple Issues as task
29
+ takt /add-task "#6" # Create task from Issue #6
30
+ takt /add-task "#6" "#7" # Create task from multiple Issues
25
31
  takt /add-task "認証機能を追加する" # Quick add task
26
32
  takt /add-task # Interactive task creation
27
33
  takt /clear # Clear sessions, start fresh
28
34
  takt /watch # Watch & auto-execute tasks
29
- takt /refresh-builtin # Update builtin resources
35
+ takt /eject # List available builtins
36
+ takt /eject default # Eject default workflow for customization
30
37
  takt /list-tasks # List & merge task branches
31
38
  takt /switch
32
39
  takt /run-tasks
@@ -1 +1 @@
1
- {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/commands/help.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;GAEG;AACH,MAAM,UAAU,QAAQ;IACtB,MAAM,CAAC,qCAAqC,CAAC,CAAC;IAE9C,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8Bb,CAAC,CAAC;IAED,iCAAiC;IACjC,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC,cAAc,YAAY,EAAE,CAAC,CAAC;IACrC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/commands/help.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;GAEG;AACH,MAAM,UAAU,QAAQ;IACtB,MAAM,CAAC,qCAAqC,CAAC,CAAC;IAE9C,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCb,CAAC,CAAC;IAED,iCAAiC;IACjC,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC,cAAc,YAAY,EAAE,CAAC,CAAC;IACrC,CAAC;AACH,CAAC"}
@@ -5,6 +5,7 @@ export { executeWorkflow, type WorkflowExecutionResult, type WorkflowExecutionOp
5
5
  export { executeTask, runAllTasks } from './taskExecution.js';
6
6
  export { addTask } from './addTask.js';
7
7
  export { refreshBuiltin } from './refreshBuiltin.js';
8
+ export { ejectBuiltin } from './eject.js';
8
9
  export { watchTasks } from './watchTasks.js';
9
10
  export { showHelp } from './help.js';
10
11
  export { withAgentSession } from './session.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,KAAK,uBAAuB,EAAE,KAAK,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACtH,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7G,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,KAAK,uBAAuB,EAAE,KAAK,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACtH,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7G,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
@@ -5,6 +5,7 @@ export { executeWorkflow } from './workflowExecution.js';
5
5
  export { executeTask, runAllTasks } from './taskExecution.js';
6
6
  export { addTask } from './addTask.js';
7
7
  export { refreshBuiltin } from './refreshBuiltin.js';
8
+ export { ejectBuiltin } from './eject.js';
8
9
  export { watchTasks } from './watchTasks.js';
9
10
  export { showHelp } from './help.js';
10
11
  export { withAgentSession } from './session.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAA+D,MAAM,wBAAwB,CAAC;AACtH,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,iBAAiB,EAAuB,MAAM,aAAa,CAAC;AAC7G,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAA+D,MAAM,wBAAwB,CAAC;AACtH,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,iBAAiB,EAAuB,MAAM,aAAa,CAAC;AAC7G,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,11 +1,11 @@
1
1
  /**
2
- * /refresh-builtin command implementation
2
+ * /refresh-builtin command — DEPRECATED
3
3
  *
4
- * Overwrites builtin workflow and agent files in ~/.takt/ with the latest
5
- * embedded resources. Does NOT touch config.yaml or user-added files.
4
+ * Builtin resources are now loaded directly from the package bundle.
5
+ * Use /eject to copy individual builtins to ~/.takt/ for customization.
6
6
  */
7
7
  /**
8
- * Refresh builtin agents and workflows to latest version.
8
+ * Show deprecation notice and guide user to /eject.
9
9
  */
10
10
  export declare function refreshBuiltin(): Promise<void>;
11
11
  //# sourceMappingURL=refreshBuiltin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"refreshBuiltin.d.ts","sourceRoot":"","sources":["../../src/commands/refreshBuiltin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAwBpD"}
1
+ {"version":3,"file":"refreshBuiltin.d.ts","sourceRoot":"","sources":["../../src/commands/refreshBuiltin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CASpD"}
@@ -1,37 +1,21 @@
1
1
  /**
2
- * /refresh-builtin command implementation
2
+ * /refresh-builtin command — DEPRECATED
3
3
  *
4
- * Overwrites builtin workflow and agent files in ~/.takt/ with the latest
5
- * embedded resources. Does NOT touch config.yaml or user-added files.
4
+ * Builtin resources are now loaded directly from the package bundle.
5
+ * Use /eject to copy individual builtins to ~/.takt/ for customization.
6
6
  */
7
- import { getGlobalConfigDir } from '../config/paths.js';
8
- import { getLanguage } from '../config/globalConfig.js';
9
- import { forceRefreshLanguageResources } from '../resources/index.js';
10
- import { header, success, info, error } from '../utils/ui.js';
11
- import { createLogger } from '../utils/debug.js';
12
- const log = createLogger('refresh-builtin');
7
+ import { warn, info } from '../utils/ui.js';
13
8
  /**
14
- * Refresh builtin agents and workflows to latest version.
9
+ * Show deprecation notice and guide user to /eject.
15
10
  */
16
11
  export async function refreshBuiltin() {
17
- const globalDir = getGlobalConfigDir();
18
- const lang = getLanguage();
19
- header('Refresh Builtin Resources');
20
- info(`Language: ${lang}`);
21
- info(`Target: ${globalDir}`);
22
- try {
23
- const overwritten = forceRefreshLanguageResources(globalDir, lang);
24
- log.info('Builtin resources refreshed', { count: overwritten.length, lang });
25
- console.log();
26
- success(`${overwritten.length} files refreshed.`);
27
- for (const filePath of overwritten) {
28
- info(` ✓ ${filePath}`);
29
- }
30
- }
31
- catch (err) {
32
- const message = err instanceof Error ? err.message : String(err);
33
- log.error('Failed to refresh builtin resources', { error: message });
34
- error(`Failed to refresh: ${message}`);
35
- }
12
+ warn('/refresh-builtin is deprecated.');
13
+ console.log();
14
+ info('Builtin workflows and agents are now loaded directly from the package.');
15
+ info('They no longer need to be copied to ~/.takt/.');
16
+ console.log();
17
+ info('To customize a builtin, use:');
18
+ info(' takt /eject List available builtins');
19
+ info(' takt /eject {name} Copy a builtin to ~/.takt/ for editing');
36
20
  }
37
21
  //# sourceMappingURL=refreshBuiltin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"refreshBuiltin.js","sourceRoot":"","sources":["../../src/commands/refreshBuiltin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,GAAG,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC;AAE5C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;IACvC,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC;IAE3B,MAAM,CAAC,2BAA2B,CAAC,CAAC;IACpC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;IAC1B,IAAI,CAAC,WAAW,SAAS,EAAE,CAAC,CAAC;IAE7B,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,6BAA6B,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAEnE,GAAG,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAE7E,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,WAAW,CAAC,MAAM,mBAAmB,CAAC,CAAC;QAElD,KAAK,MAAM,QAAQ,IAAI,WAAW,EAAE,CAAC;YACnC,IAAI,CAAC,OAAO,QAAQ,EAAE,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,GAAG,CAAC,KAAK,CAAC,qCAAqC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QACrE,KAAK,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAC;IACzC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"refreshBuiltin.js","sourceRoot":"","sources":["../../src/commands/refreshBuiltin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE5C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,IAAI,CAAC,wEAAwE,CAAC,CAAC;IAC/E,IAAI,CAAC,+CAA+C,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,IAAI,CAAC,8BAA8B,CAAC,CAAC;IACrC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IACxD,IAAI,CAAC,gEAAgE,CAAC,CAAC;AACzE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"workflowExecution.d.ts","sourceRoot":"","sources":["../../src/commands/workflowExecution.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAiDnE,mCAAmC;AACnC,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qCAAqC;AACrC,MAAM,WAAW,wBAAwB;IACvC,gCAAgC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,uBAAuB,CAAC,CAoLlC"}
1
+ {"version":3,"file":"workflowExecution.d.ts","sourceRoot":"","sources":["../../src/commands/workflowExecution.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAsDnE,mCAAmC;AACnC,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qCAAqC;AACrC,MAAM,WAAW,wBAAwB;IACvC,gCAAgC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,uBAAuB,CAAC,CA6PlC"}
@@ -1,10 +1,11 @@
1
1
  /**
2
2
  * Workflow execution logic
3
3
  */
4
+ import { readFileSync } from 'node:fs';
4
5
  import { WorkflowEngine } from '../workflow/engine.js';
5
6
  import { loadAgentSessions, updateAgentSession, loadWorktreeSessions, updateWorktreeSession, } from '../config/paths.js';
6
7
  import { header, info, warn, error, success, status, StreamDisplay, } from '../utils/ui.js';
7
- import { generateSessionId, createSessionLog, addToSessionLog, finalizeSessionLog, saveSessionLog, updateLatestPointer, } from '../utils/session.js';
8
+ import { generateSessionId, createSessionLog, finalizeSessionLog, updateLatestPointer, initNdjsonLog, appendNdjsonLine, } from '../utils/session.js';
8
9
  import { createLogger } from '../utils/debug.js';
9
10
  import { notifySuccess, notifyError } from '../utils/notification.js';
10
11
  import { selectOption, promptInput } from '../prompt/index.js';
@@ -35,14 +36,27 @@ export async function executeWorkflow(workflowConfig, task, cwd, options = {}) {
35
36
  log.debug('Continuing session (use /clear to reset)');
36
37
  header(`${headerPrefix} ${workflowConfig.name}`);
37
38
  const workflowSessionId = generateSessionId();
38
- const sessionLog = createSessionLog(task, projectCwd, workflowConfig.name);
39
- // Persist initial log + pointer at workflow start (enables crash recovery)
40
- saveSessionLog(sessionLog, workflowSessionId, projectCwd);
39
+ let sessionLog = createSessionLog(task, projectCwd, workflowConfig.name);
40
+ // Initialize NDJSON log file + pointer at workflow start
41
+ const ndjsonLogPath = initNdjsonLog(workflowSessionId, task, workflowConfig.name, projectCwd);
41
42
  updateLatestPointer(sessionLog, workflowSessionId, projectCwd, { copyToPrevious: true });
43
+ // Track current step name for stream log records
44
+ const stepRef = { current: '' };
42
45
  // Track current display for streaming
43
46
  const displayRef = { current: null };
44
- // Create stream handler that delegates to current display
47
+ // Create stream handler that delegates to UI display + writes NDJSON log
45
48
  const streamHandler = (event) => {
49
+ // Write stream event to NDJSON log (real-time)
50
+ if (stepRef.current) {
51
+ const record = {
52
+ type: 'stream',
53
+ step: stepRef.current,
54
+ event,
55
+ timestamp: new Date().toISOString(),
56
+ };
57
+ appendNdjsonLine(ndjsonLogPath, record);
58
+ }
59
+ // Delegate to UI display
46
60
  if (!displayRef.current)
47
61
  return;
48
62
  if (event.type === 'result')
@@ -108,11 +122,23 @@ export async function executeWorkflow(workflowConfig, task, cwd, options = {}) {
108
122
  log.debug('Step starting', { step: step.name, agent: step.agentDisplayName, iteration });
109
123
  info(`[${iteration}/${workflowConfig.maxIterations}] ${step.name} (${step.agentDisplayName})`);
110
124
  displayRef.current = new StreamDisplay(step.agentDisplayName);
125
+ stepRef.current = step.name;
126
+ // Write step_start record to NDJSON log
127
+ const record = {
128
+ type: 'step_start',
129
+ step: step.name,
130
+ agent: step.agentDisplayName,
131
+ iteration,
132
+ timestamp: new Date().toISOString(),
133
+ };
134
+ appendNdjsonLine(ndjsonLogPath, record);
111
135
  });
112
- engine.on('step:complete', (step, response) => {
136
+ engine.on('step:complete', (step, response, instruction) => {
113
137
  log.debug('Step completed', {
114
138
  step: step.name,
115
139
  status: response.status,
140
+ matchedRuleIndex: response.matchedRuleIndex,
141
+ matchedRuleMethod: response.matchedRuleMethod,
116
142
  contentLength: response.content.length,
117
143
  sessionId: response.sessionId,
118
144
  error: response.error,
@@ -122,30 +148,65 @@ export async function executeWorkflow(workflowConfig, task, cwd, options = {}) {
122
148
  displayRef.current = null;
123
149
  }
124
150
  console.log();
125
- status('Status', response.status);
151
+ if (response.matchedRuleIndex != null && step.rules) {
152
+ const rule = step.rules[response.matchedRuleIndex];
153
+ if (rule) {
154
+ const methodLabel = response.matchedRuleMethod ? ` (${response.matchedRuleMethod})` : '';
155
+ status('Status', `${rule.condition}${methodLabel}`);
156
+ }
157
+ else {
158
+ status('Status', response.status);
159
+ }
160
+ }
161
+ else {
162
+ status('Status', response.status);
163
+ }
126
164
  if (response.error) {
127
165
  error(`Error: ${response.error}`);
128
166
  }
129
167
  if (response.sessionId) {
130
168
  status('Session', response.sessionId);
131
169
  }
132
- addToSessionLog(sessionLog, step.name, response);
133
- // Incremental save after each step
134
- saveSessionLog(sessionLog, workflowSessionId, projectCwd);
170
+ // Write step_complete record to NDJSON log
171
+ const record = {
172
+ type: 'step_complete',
173
+ step: step.name,
174
+ agent: response.agent,
175
+ status: response.status,
176
+ content: response.content,
177
+ instruction,
178
+ ...(response.matchedRuleIndex != null ? { matchedRuleIndex: response.matchedRuleIndex } : {}),
179
+ ...(response.matchedRuleMethod ? { matchedRuleMethod: response.matchedRuleMethod } : {}),
180
+ ...(response.error ? { error: response.error } : {}),
181
+ timestamp: response.timestamp.toISOString(),
182
+ };
183
+ appendNdjsonLine(ndjsonLogPath, record);
184
+ // Update in-memory log for pointer metadata (immutable)
185
+ sessionLog = { ...sessionLog, iterations: sessionLog.iterations + 1 };
135
186
  updateLatestPointer(sessionLog, workflowSessionId, projectCwd);
136
187
  });
188
+ engine.on('step:report', (_step, filePath, fileName) => {
189
+ const content = readFileSync(filePath, 'utf-8');
190
+ console.log(`\n📄 Report: ${fileName}\n`);
191
+ console.log(content);
192
+ });
137
193
  engine.on('workflow:complete', (state) => {
138
194
  log.info('Workflow completed successfully', { iterations: state.iteration });
139
- finalizeSessionLog(sessionLog, 'completed');
140
- // Save log to project root so user can find it easily
141
- const logPath = saveSessionLog(sessionLog, workflowSessionId, projectCwd);
195
+ sessionLog = finalizeSessionLog(sessionLog, 'completed');
196
+ // Write workflow_complete record to NDJSON log
197
+ const record = {
198
+ type: 'workflow_complete',
199
+ iterations: state.iteration,
200
+ endTime: new Date().toISOString(),
201
+ };
202
+ appendNdjsonLine(ndjsonLogPath, record);
142
203
  updateLatestPointer(sessionLog, workflowSessionId, projectCwd);
143
204
  const elapsed = sessionLog.endTime
144
205
  ? formatElapsedTime(sessionLog.startTime, sessionLog.endTime)
145
206
  : '';
146
207
  const elapsedDisplay = elapsed ? `, ${elapsed}` : '';
147
208
  success(`Workflow completed (${state.iteration} iterations${elapsedDisplay})`);
148
- info(`Session log: ${logPath}`);
209
+ info(`Session log: ${ndjsonLogPath}`);
149
210
  notifySuccess('TAKT', `ワークフロー完了 (${state.iteration} iterations)`);
150
211
  });
151
212
  engine.on('workflow:abort', (state, reason) => {
@@ -155,16 +216,22 @@ export async function executeWorkflow(workflowConfig, task, cwd, options = {}) {
155
216
  displayRef.current = null;
156
217
  }
157
218
  abortReason = reason;
158
- finalizeSessionLog(sessionLog, 'aborted');
159
- // Save log to project root so user can find it easily
160
- const logPath = saveSessionLog(sessionLog, workflowSessionId, projectCwd);
219
+ sessionLog = finalizeSessionLog(sessionLog, 'aborted');
220
+ // Write workflow_abort record to NDJSON log
221
+ const record = {
222
+ type: 'workflow_abort',
223
+ iterations: state.iteration,
224
+ reason,
225
+ endTime: new Date().toISOString(),
226
+ };
227
+ appendNdjsonLine(ndjsonLogPath, record);
161
228
  updateLatestPointer(sessionLog, workflowSessionId, projectCwd);
162
229
  const elapsed = sessionLog.endTime
163
230
  ? formatElapsedTime(sessionLog.startTime, sessionLog.endTime)
164
231
  : '';
165
232
  const elapsedDisplay = elapsed ? ` (${elapsed})` : '';
166
233
  error(`Workflow aborted after ${state.iteration} iterations${elapsedDisplay}: ${reason}`);
167
- info(`Session log: ${logPath}`);
234
+ info(`Session log: ${ndjsonLogPath}`);
168
235
  notifyError('TAKT', `中断: ${reason}`);
169
236
  });
170
237
  const finalState = await engine.run();
@@ -1 +1 @@
1
- {"version":3,"file":"workflowExecution.js","sourceRoot":"","sources":["../../src/commands/workflowExecution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflowExecution.js","sourceRoot":"","sources":["../../src/commands/workflowExecution.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  /**
2
2
  * Agent configuration loader
3
3
  *
4
- * Loads agents from ~/.takt/agents/ directory only.
4
+ * Loads agents with user builtin fallback:
5
+ * 1. User agents: ~/.takt/agents/*.md
6
+ * 2. Builtin agents: resources/global/{lang}/agents/*.md
5
7
  */
6
8
  import type { CustomAgentConfig } from '../models/types.js';
7
9
  /** Load agents from markdown files in a directory */
@@ -1 +1 @@
1
- {"version":3,"file":"agentLoader.d.ts","sourceRoot":"","sources":["../../src/config/agentLoader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAO5D,qDAAqD;AACrD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAgBtE;AAED,qEAAqE;AACrE,wBAAgB,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CASjE;AAED,mCAAmC;AACnC,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAE3C;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CA+BhE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAuBjE"}
1
+ {"version":3,"file":"agentLoader.d.ts","sourceRoot":"","sources":["../../src/config/agentLoader.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAqB5D,qDAAqD;AACrD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAgBtE;AAED,qEAAqE;AACrE,wBAAgB,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CASjE;AAED,mCAAmC;AACnC,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAE3C;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAmBhE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAWjE"}
@@ -1,11 +1,24 @@
1
1
  /**
2
2
  * Agent configuration loader
3
3
  *
4
- * Loads agents from ~/.takt/agents/ directory only.
4
+ * Loads agents with user builtin fallback:
5
+ * 1. User agents: ~/.takt/agents/*.md
6
+ * 2. Builtin agents: resources/global/{lang}/agents/*.md
5
7
  */
6
8
  import { readFileSync, existsSync, readdirSync } from 'node:fs';
7
9
  import { join, basename } from 'node:path';
8
- import { getGlobalAgentsDir, getGlobalWorkflowsDir, isPathSafe, } from './paths.js';
10
+ import { getGlobalAgentsDir, getGlobalWorkflowsDir, getBuiltinAgentsDir, getBuiltinWorkflowsDir, isPathSafe, } from './paths.js';
11
+ import { getLanguage } from './globalConfig.js';
12
+ /** Get all allowed base directories for agent prompt files */
13
+ function getAllowedAgentBases() {
14
+ const lang = getLanguage();
15
+ return [
16
+ getGlobalAgentsDir(),
17
+ getGlobalWorkflowsDir(),
18
+ getBuiltinAgentsDir(lang),
19
+ getBuiltinWorkflowsDir(lang),
20
+ ];
21
+ }
9
22
  /** Load agents from markdown files in a directory */
10
23
  export function loadAgentsFromDir(dirPath) {
11
24
  if (!existsSync(dirPath)) {
@@ -48,17 +61,7 @@ export function loadAgentPrompt(agent) {
48
61
  return agent.prompt;
49
62
  }
50
63
  if (agent.promptFile) {
51
- const allowedBases = [
52
- getGlobalAgentsDir(),
53
- getGlobalWorkflowsDir(),
54
- ];
55
- let isValid = false;
56
- for (const base of allowedBases) {
57
- if (isPathSafe(base, agent.promptFile)) {
58
- isValid = true;
59
- break;
60
- }
61
- }
64
+ const isValid = getAllowedAgentBases().some((base) => isPathSafe(base, agent.promptFile));
62
65
  if (!isValid) {
63
66
  throw new Error(`Agent prompt file path is not allowed: ${agent.promptFile}`);
64
67
  }
@@ -74,17 +77,7 @@ export function loadAgentPrompt(agent) {
74
77
  * Used by workflow engine when agentPath is already resolved.
75
78
  */
76
79
  export function loadAgentPromptFromPath(agentPath) {
77
- const allowedBases = [
78
- getGlobalAgentsDir(),
79
- getGlobalWorkflowsDir(),
80
- ];
81
- let isValid = false;
82
- for (const base of allowedBases) {
83
- if (isPathSafe(base, agentPath)) {
84
- isValid = true;
85
- break;
86
- }
87
- }
80
+ const isValid = getAllowedAgentBases().some((base) => isPathSafe(base, agentPath));
88
81
  if (!isValid) {
89
82
  throw new Error(`Agent prompt file path is not allowed: ${agentPath}`);
90
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agentLoader.js","sourceRoot":"","sources":["../../src/config/agentLoader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agentLoader.js","sourceRoot":"","sources":["../../src/config/agentLoader.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,8 @@ import type { GlobalConfig, DebugConfig, Language } from '../models/types.js';
8
8
  export declare function loadGlobalConfig(): GlobalConfig;
9
9
  /** Save global configuration */
10
10
  export declare function saveGlobalConfig(config: GlobalConfig): void;
11
+ /** Get list of disabled builtin names */
12
+ export declare function getDisabledBuiltins(): string[];
11
13
  /** Get current language setting */
12
14
  export declare function getLanguage(): Language;
13
15
  /** Set language setting */
@@ -1 +1 @@
1
- {"version":3,"file":"globalConfig.d.ts","sourceRoot":"","sources":["../../src/config/globalConfig.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAI9E,gCAAgC;AAChC,wBAAgB,gBAAgB,IAAI,YAAY,CAwB/C;AAED,gCAAgC;AAChC,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAsB3D;AAED,mCAAmC;AACnC,wBAAgB,WAAW,IAAI,QAAQ,CAOtC;AAED,2BAA2B;AAC3B,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAIpD;AAED,2BAA2B;AAC3B,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,CAI9D;AAED,8BAA8B;AAC9B,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAOrD;AAED,sCAAsC;AACtC,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAMvD;AAED,sEAAsE;AACtE,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAqBlF;AAED,4DAA4D;AAC5D,wBAAgB,uBAAuB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAYpF"}
1
+ {"version":3,"file":"globalConfig.d.ts","sourceRoot":"","sources":["../../src/config/globalConfig.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAI9E,gCAAgC;AAChC,wBAAgB,gBAAgB,IAAI,YAAY,CAyB/C;AAED,gCAAgC;AAChC,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAyB3D;AAED,yCAAyC;AACzC,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAO9C;AAED,mCAAmC;AACnC,wBAAgB,WAAW,IAAI,QAAQ,CAOtC;AAED,2BAA2B;AAC3B,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAIpD;AAED,2BAA2B;AAC3B,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,CAI9D;AAED,8BAA8B;AAC9B,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAOrD;AAED,sCAAsC;AACtC,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAMvD;AAED,sEAAsE;AACtE,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAqBlF;AAED,4DAA4D;AAC5D,wBAAgB,uBAAuB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAYpF"}