takt 0.33.2 → 0.35.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 (641) hide show
  1. package/README.md +32 -25
  2. package/builtins/en/config.yaml +8 -8
  3. package/builtins/en/facets/instructions/dual-team-leader-implement.md +8 -2
  4. package/builtins/en/facets/instructions/plan.md +3 -0
  5. package/builtins/en/facets/instructions/review-requirements.md +12 -7
  6. package/builtins/en/facets/instructions/supervise.md +4 -2
  7. package/builtins/en/facets/instructions/team-leader-implement.md +3 -2
  8. package/builtins/en/facets/knowledge/architecture.md +93 -0
  9. package/builtins/en/facets/knowledge/cqrs-es.md +64 -5
  10. package/builtins/en/facets/output-contracts/plan.md +8 -0
  11. package/builtins/en/facets/output-contracts/requirements-review.md +10 -8
  12. package/builtins/en/facets/output-contracts/supervisor-validation.md +8 -0
  13. package/builtins/en/facets/personas/planner.md +7 -0
  14. package/builtins/en/facets/personas/requirements-reviewer.md +7 -0
  15. package/builtins/en/facets/personas/supervisor.md +10 -0
  16. package/builtins/en/facets/policies/coding.md +87 -0
  17. package/builtins/en/{piece-categories.yaml → workflow-categories.yaml} +10 -10
  18. package/builtins/en/{pieces → workflows}/audit-architecture-backend.yaml +3 -3
  19. package/builtins/en/{pieces → workflows}/audit-architecture-dual.yaml +3 -3
  20. package/builtins/en/{pieces → workflows}/audit-architecture-frontend.yaml +3 -3
  21. package/builtins/en/{pieces → workflows}/audit-architecture.yaml +3 -3
  22. package/builtins/en/{pieces → workflows}/audit-e2e.yaml +4 -4
  23. package/builtins/en/{pieces → workflows}/audit-security.yaml +3 -3
  24. package/builtins/en/{pieces → workflows}/audit-unit.yaml +4 -4
  25. package/builtins/en/{pieces → workflows}/backend-cqrs-mini.yaml +5 -5
  26. package/builtins/en/{pieces → workflows}/backend-cqrs.yaml +5 -5
  27. package/builtins/en/{pieces → workflows}/backend-mini.yaml +5 -5
  28. package/builtins/en/{pieces → workflows}/backend.yaml +5 -5
  29. package/builtins/en/{pieces → workflows}/compound-eye.yaml +5 -5
  30. package/builtins/en/{pieces → workflows}/deep-research.yaml +5 -5
  31. package/builtins/en/{pieces → workflows}/default.yaml +5 -5
  32. package/builtins/en/{pieces → workflows}/dual-cqrs-mini.yaml +5 -5
  33. package/builtins/en/{pieces → workflows}/dual-cqrs.yaml +5 -5
  34. package/builtins/en/{pieces → workflows}/dual-mini.yaml +5 -5
  35. package/builtins/en/{pieces → workflows}/dual.yaml +23 -7
  36. package/builtins/en/{pieces → workflows}/frontend-mini.yaml +5 -5
  37. package/builtins/en/{pieces → workflows}/frontend.yaml +5 -5
  38. package/builtins/en/{pieces → workflows}/magi.yaml +4 -4
  39. package/builtins/en/{pieces → workflows}/research.yaml +5 -5
  40. package/builtins/en/{pieces → workflows}/review-backend-cqrs.yaml +4 -4
  41. package/builtins/en/{pieces → workflows}/review-backend.yaml +4 -4
  42. package/builtins/en/{pieces → workflows}/review-default.yaml +5 -5
  43. package/builtins/en/{pieces → workflows}/review-dual-cqrs.yaml +4 -4
  44. package/builtins/en/{pieces → workflows}/review-dual.yaml +4 -4
  45. package/builtins/en/{pieces → workflows}/review-fix-backend-cqrs.yaml +4 -4
  46. package/builtins/en/{pieces → workflows}/review-fix-backend.yaml +4 -4
  47. package/builtins/en/{pieces → workflows}/review-fix-default.yaml +4 -4
  48. package/builtins/en/{pieces → workflows}/review-fix-dual-cqrs.yaml +4 -4
  49. package/builtins/en/{pieces → workflows}/review-fix-dual.yaml +4 -4
  50. package/builtins/en/{pieces → workflows}/review-fix-frontend.yaml +4 -4
  51. package/builtins/en/{pieces → workflows}/review-fix-takt-default.yaml +4 -4
  52. package/builtins/en/{pieces → workflows}/review-frontend.yaml +4 -4
  53. package/builtins/en/{pieces → workflows}/review-takt-default.yaml +5 -5
  54. package/builtins/en/{pieces → workflows}/takt-default.yaml +5 -5
  55. package/builtins/en/{pieces → workflows}/terraform.yaml +5 -5
  56. package/builtins/ja/config.yaml +8 -8
  57. package/builtins/ja/facets/instructions/dual-team-leader-implement.md +8 -2
  58. package/builtins/ja/facets/instructions/plan.md +3 -0
  59. package/builtins/ja/facets/instructions/review-requirements.md +12 -7
  60. package/builtins/ja/facets/instructions/supervise.md +4 -2
  61. package/builtins/ja/facets/instructions/team-leader-implement.md +3 -2
  62. package/builtins/ja/facets/knowledge/architecture.md +93 -0
  63. package/builtins/ja/facets/knowledge/cqrs-es.md +66 -6
  64. package/builtins/ja/facets/output-contracts/plan.md +8 -0
  65. package/builtins/ja/facets/output-contracts/requirements-review.md +10 -8
  66. package/builtins/ja/facets/output-contracts/supervisor-validation.md +8 -0
  67. package/builtins/ja/facets/personas/planner.md +8 -0
  68. package/builtins/ja/facets/personas/requirements-reviewer.md +7 -0
  69. package/builtins/ja/facets/personas/supervisor.md +6 -0
  70. package/builtins/ja/facets/policies/coding.md +87 -0
  71. package/builtins/ja/{piece-categories.yaml → workflow-categories.yaml} +10 -10
  72. package/builtins/ja/{pieces → workflows}/audit-architecture-backend.yaml +3 -3
  73. package/builtins/ja/{pieces → workflows}/audit-architecture-dual.yaml +3 -3
  74. package/builtins/ja/{pieces → workflows}/audit-architecture-frontend.yaml +3 -3
  75. package/builtins/ja/{pieces → workflows}/audit-architecture.yaml +3 -3
  76. package/builtins/ja/{pieces → workflows}/audit-e2e.yaml +4 -4
  77. package/builtins/ja/{pieces → workflows}/audit-security.yaml +3 -3
  78. package/builtins/ja/{pieces → workflows}/audit-unit.yaml +4 -4
  79. package/builtins/ja/{pieces → workflows}/backend-cqrs-mini.yaml +5 -5
  80. package/builtins/ja/{pieces → workflows}/backend-cqrs.yaml +4 -4
  81. package/builtins/ja/{pieces → workflows}/backend-mini.yaml +5 -5
  82. package/builtins/ja/{pieces → workflows}/backend.yaml +4 -4
  83. package/builtins/ja/{pieces → workflows}/compound-eye.yaml +5 -5
  84. package/builtins/ja/{pieces → workflows}/deep-research.yaml +5 -5
  85. package/builtins/ja/{pieces → workflows}/default.yaml +5 -5
  86. package/builtins/ja/{pieces → workflows}/dual-cqrs-mini.yaml +5 -5
  87. package/builtins/ja/{pieces → workflows}/dual-cqrs.yaml +5 -5
  88. package/builtins/ja/{pieces → workflows}/dual-mini.yaml +5 -5
  89. package/builtins/ja/{pieces → workflows}/dual.yaml +23 -7
  90. package/builtins/ja/{pieces → workflows}/frontend-mini.yaml +5 -5
  91. package/builtins/ja/{pieces → workflows}/frontend.yaml +4 -4
  92. package/builtins/ja/{pieces → workflows}/magi.yaml +4 -4
  93. package/builtins/ja/{pieces → workflows}/research.yaml +5 -5
  94. package/builtins/ja/{pieces → workflows}/review-backend-cqrs.yaml +4 -4
  95. package/builtins/ja/{pieces → workflows}/review-backend.yaml +4 -4
  96. package/builtins/ja/{pieces → workflows}/review-default.yaml +5 -5
  97. package/builtins/ja/{pieces → workflows}/review-dual-cqrs.yaml +4 -4
  98. package/builtins/ja/{pieces → workflows}/review-dual.yaml +4 -4
  99. package/builtins/ja/{pieces → workflows}/review-fix-backend-cqrs.yaml +4 -4
  100. package/builtins/ja/{pieces → workflows}/review-fix-backend.yaml +4 -4
  101. package/builtins/ja/{pieces → workflows}/review-fix-default.yaml +4 -4
  102. package/builtins/ja/{pieces → workflows}/review-fix-dual-cqrs.yaml +4 -4
  103. package/builtins/ja/{pieces → workflows}/review-fix-dual.yaml +4 -4
  104. package/builtins/ja/{pieces → workflows}/review-fix-frontend.yaml +4 -4
  105. package/builtins/ja/{pieces → workflows}/review-fix-takt-default.yaml +4 -4
  106. package/builtins/ja/{pieces → workflows}/review-frontend.yaml +4 -4
  107. package/builtins/ja/{pieces → workflows}/review-takt-default.yaml +5 -5
  108. package/builtins/ja/{pieces → workflows}/takt-default.yaml +5 -5
  109. package/builtins/ja/{pieces → workflows}/terraform.yaml +5 -5
  110. package/builtins/schemas/decomposition.json +1 -5
  111. package/builtins/schemas/more-parts.json +1 -5
  112. package/builtins/skill/SKILL.md +54 -52
  113. package/builtins/skill/references/engine.md +45 -45
  114. package/builtins/skill/references/yaml-schema.md +46 -38
  115. package/builtins/skill-codex/SKILL.md +48 -46
  116. package/builtins/skill-codex/references/engine.md +32 -32
  117. package/builtins/skill-codex/references/yaml-schema.md +46 -38
  118. package/dist/agents/decompose-task-usecase.d.ts +3 -1
  119. package/dist/agents/decompose-task-usecase.d.ts.map +1 -1
  120. package/dist/agents/decompose-task-usecase.js +2 -112
  121. package/dist/agents/decompose-task-usecase.js.map +1 -1
  122. package/dist/agents/judge-status-usecase.d.ts +17 -0
  123. package/dist/agents/judge-status-usecase.d.ts.map +1 -1
  124. package/dist/agents/judge-status-usecase.js +53 -31
  125. package/dist/agents/judge-status-usecase.js.map +1 -1
  126. package/dist/agents/judge-utils.d.ts +6 -0
  127. package/dist/agents/judge-utils.d.ts.map +1 -1
  128. package/dist/agents/judge-utils.js +12 -0
  129. package/dist/agents/judge-utils.js.map +1 -1
  130. package/dist/agents/runner.d.ts.map +1 -1
  131. package/dist/agents/runner.js +12 -8
  132. package/dist/agents/runner.js.map +1 -1
  133. package/dist/agents/structured-caller/contracts.d.ts +18 -0
  134. package/dist/agents/structured-caller/contracts.d.ts.map +1 -0
  135. package/dist/agents/structured-caller/contracts.js +2 -0
  136. package/dist/agents/structured-caller/contracts.js.map +1 -0
  137. package/dist/agents/structured-caller/default-structured-caller.d.ts +19 -0
  138. package/dist/agents/structured-caller/default-structured-caller.d.ts.map +1 -0
  139. package/dist/agents/structured-caller/default-structured-caller.js +25 -0
  140. package/dist/agents/structured-caller/default-structured-caller.js.map +1 -0
  141. package/dist/agents/structured-caller/prompt-based-structured-caller.d.ts +19 -0
  142. package/dist/agents/structured-caller/prompt-based-structured-caller.d.ts.map +1 -0
  143. package/dist/agents/structured-caller/prompt-based-structured-caller.js +151 -0
  144. package/dist/agents/structured-caller/prompt-based-structured-caller.js.map +1 -0
  145. package/dist/agents/structured-caller/shared.d.ts +5 -0
  146. package/dist/agents/structured-caller/shared.d.ts.map +1 -0
  147. package/dist/agents/structured-caller/shared.js +36 -0
  148. package/dist/agents/structured-caller/shared.js.map +1 -0
  149. package/dist/agents/structured-caller.d.ts +4 -0
  150. package/dist/agents/structured-caller.d.ts.map +1 -0
  151. package/dist/agents/structured-caller.js +3 -0
  152. package/dist/agents/structured-caller.js.map +1 -0
  153. package/dist/agents/team-leader-structured-output.d.ts +19 -0
  154. package/dist/agents/team-leader-structured-output.d.ts.map +1 -0
  155. package/dist/agents/team-leader-structured-output.js +152 -0
  156. package/dist/agents/team-leader-structured-output.js.map +1 -0
  157. package/dist/agents/types.d.ts +4 -3
  158. package/dist/agents/types.d.ts.map +1 -1
  159. package/dist/app/cli/commands.js +31 -14
  160. package/dist/app/cli/commands.js.map +1 -1
  161. package/dist/app/cli/helpers.d.ts +1 -0
  162. package/dist/app/cli/helpers.d.ts.map +1 -1
  163. package/dist/app/cli/helpers.js +12 -0
  164. package/dist/app/cli/helpers.js.map +1 -1
  165. package/dist/app/cli/program.d.ts.map +1 -1
  166. package/dist/app/cli/program.js +4 -3
  167. package/dist/app/cli/program.js.map +1 -1
  168. package/dist/app/cli/routing.d.ts.map +1 -1
  169. package/dist/app/cli/routing.js +12 -4
  170. package/dist/app/cli/routing.js.map +1 -1
  171. package/dist/core/models/config-schemas.d.ts +720 -0
  172. package/dist/core/models/config-schemas.d.ts.map +1 -0
  173. package/dist/core/models/config-schemas.js +143 -0
  174. package/dist/core/models/config-schemas.js.map +1 -0
  175. package/dist/core/models/config-types.d.ts +12 -8
  176. package/dist/core/models/config-types.d.ts.map +1 -1
  177. package/dist/core/models/part.d.ts +0 -2
  178. package/dist/core/models/part.d.ts.map +1 -1
  179. package/dist/core/models/piece-types.d.ts +9 -106
  180. package/dist/core/models/piece-types.d.ts.map +1 -1
  181. package/dist/core/models/piece-types.js +2 -4
  182. package/dist/core/models/piece-types.js.map +1 -1
  183. package/dist/core/models/provider-profiles.d.ts +1 -1
  184. package/dist/core/models/provider-profiles.d.ts.map +1 -1
  185. package/dist/core/models/schema-base.d.ts +522 -0
  186. package/dist/core/models/schema-base.d.ts.map +1 -0
  187. package/dist/core/models/schema-base.js +218 -0
  188. package/dist/core/models/schema-base.js.map +1 -0
  189. package/dist/core/models/schemas.d.ts +4 -1638
  190. package/dist/core/models/schemas.d.ts.map +1 -1
  191. package/dist/core/models/schemas.js +4 -563
  192. package/dist/core/models/schemas.js.map +1 -1
  193. package/dist/core/models/workflow-schemas.d.ts +1741 -0
  194. package/dist/core/models/workflow-schemas.d.ts.map +1 -0
  195. package/dist/core/models/workflow-schemas.js +217 -0
  196. package/dist/core/models/workflow-schemas.js.map +1 -0
  197. package/dist/core/piece/engine/ArpeggioRunner.d.ts +2 -6
  198. package/dist/core/piece/engine/ArpeggioRunner.d.ts.map +1 -1
  199. package/dist/core/piece/engine/ArpeggioRunner.js +5 -1
  200. package/dist/core/piece/engine/ArpeggioRunner.js.map +1 -1
  201. package/dist/core/piece/engine/MovementExecutor.d.ts +2 -6
  202. package/dist/core/piece/engine/MovementExecutor.d.ts.map +1 -1
  203. package/dist/core/piece/engine/MovementExecutor.js +5 -1
  204. package/dist/core/piece/engine/MovementExecutor.js.map +1 -1
  205. package/dist/core/piece/engine/OptionsBuilder.d.ts +1 -1
  206. package/dist/core/piece/engine/OptionsBuilder.d.ts.map +1 -1
  207. package/dist/core/piece/engine/OptionsBuilder.js +14 -35
  208. package/dist/core/piece/engine/OptionsBuilder.js.map +1 -1
  209. package/dist/core/piece/engine/ParallelRunner.d.ts +2 -6
  210. package/dist/core/piece/engine/ParallelRunner.d.ts.map +1 -1
  211. package/dist/core/piece/engine/ParallelRunner.js +115 -55
  212. package/dist/core/piece/engine/ParallelRunner.js.map +1 -1
  213. package/dist/core/piece/engine/PieceEngine.d.ts +1 -1
  214. package/dist/core/piece/engine/PieceEngine.d.ts.map +1 -1
  215. package/dist/core/piece/engine/PieceEngine.js +11 -10
  216. package/dist/core/piece/engine/PieceEngine.js.map +1 -1
  217. package/dist/core/piece/engine/TeamLeaderRunner.d.ts +0 -7
  218. package/dist/core/piece/engine/TeamLeaderRunner.d.ts.map +1 -1
  219. package/dist/core/piece/engine/TeamLeaderRunner.js +9 -6
  220. package/dist/core/piece/engine/TeamLeaderRunner.js.map +1 -1
  221. package/dist/core/piece/engine/parallel-logger.d.ts.map +1 -1
  222. package/dist/core/piece/engine/parallel-logger.js +2 -0
  223. package/dist/core/piece/engine/parallel-logger.js.map +1 -1
  224. package/dist/core/piece/engine/team-leader-common.d.ts.map +1 -1
  225. package/dist/core/piece/engine/team-leader-common.js +6 -3
  226. package/dist/core/piece/engine/team-leader-common.js.map +1 -1
  227. package/dist/core/piece/evaluation/RuleEvaluator.d.ts +9 -3
  228. package/dist/core/piece/evaluation/RuleEvaluator.d.ts.map +1 -1
  229. package/dist/core/piece/evaluation/RuleEvaluator.js +18 -14
  230. package/dist/core/piece/evaluation/RuleEvaluator.js.map +1 -1
  231. package/dist/core/piece/instruction/InstructionBuilder.d.ts +4 -4
  232. package/dist/core/piece/instruction/InstructionBuilder.js +9 -9
  233. package/dist/core/piece/instruction/InstructionBuilder.js.map +1 -1
  234. package/dist/core/piece/instruction/instruction-context.d.ts +1 -1
  235. package/dist/core/piece/instruction/instruction-context.js +5 -5
  236. package/dist/core/piece/instruction/instruction-context.js.map +1 -1
  237. package/dist/core/piece/part-definition-validator.d.ts.map +1 -1
  238. package/dist/core/piece/part-definition-validator.js +3 -6
  239. package/dist/core/piece/part-definition-validator.js.map +1 -1
  240. package/dist/core/piece/permission-profile-resolution.d.ts +0 -12
  241. package/dist/core/piece/permission-profile-resolution.d.ts.map +1 -1
  242. package/dist/core/piece/permission-profile-resolution.js +1 -12
  243. package/dist/core/piece/permission-profile-resolution.js.map +1 -1
  244. package/dist/core/piece/phase-runner.d.ts +7 -1
  245. package/dist/core/piece/phase-runner.d.ts.map +1 -1
  246. package/dist/core/piece/phase-runner.js.map +1 -1
  247. package/dist/core/piece/provider-resolution.d.ts +0 -2
  248. package/dist/core/piece/provider-resolution.d.ts.map +1 -1
  249. package/dist/core/piece/provider-resolution.js +0 -2
  250. package/dist/core/piece/provider-resolution.js.map +1 -1
  251. package/dist/core/piece/status-judgment-phase.d.ts.map +1 -1
  252. package/dist/core/piece/status-judgment-phase.js +7 -2
  253. package/dist/core/piece/status-judgment-phase.js.map +1 -1
  254. package/dist/core/piece/types.d.ts +7 -9
  255. package/dist/core/piece/types.d.ts.map +1 -1
  256. package/dist/core/runtime/runtime-environment.d.ts.map +1 -1
  257. package/dist/core/runtime/runtime-environment.js +15 -0
  258. package/dist/core/runtime/runtime-environment.js.map +1 -1
  259. package/dist/features/config/deploySkill.js +1 -1
  260. package/dist/features/config/deploySkill.js.map +1 -1
  261. package/dist/features/config/deploySkillCodex.js +1 -1
  262. package/dist/features/config/deploySkillCodex.js.map +1 -1
  263. package/dist/features/config/deploySkillInternal.js +5 -5
  264. package/dist/features/config/deploySkillInternal.js.map +1 -1
  265. package/dist/features/config/ejectBuiltin.d.ts +3 -3
  266. package/dist/features/config/ejectBuiltin.d.ts.map +1 -1
  267. package/dist/features/config/ejectBuiltin.js +53 -28
  268. package/dist/features/config/ejectBuiltin.js.map +1 -1
  269. package/dist/features/pieceSelection/index.d.ts.map +1 -1
  270. package/dist/features/pieceSelection/index.js +32 -31
  271. package/dist/features/pieceSelection/index.js.map +1 -1
  272. package/dist/features/pipeline/execute.d.ts.map +1 -1
  273. package/dist/features/pipeline/execute.js +9 -3
  274. package/dist/features/pipeline/execute.js.map +1 -1
  275. package/dist/features/pipeline/steps.d.ts.map +1 -1
  276. package/dist/features/pipeline/steps.js +22 -17
  277. package/dist/features/pipeline/steps.js.map +1 -1
  278. package/dist/features/prompt/preview.d.ts.map +1 -1
  279. package/dist/features/prompt/preview.js +9 -4
  280. package/dist/features/prompt/preview.js.map +1 -1
  281. package/dist/features/tasks/add/index.d.ts +4 -0
  282. package/dist/features/tasks/add/index.d.ts.map +1 -1
  283. package/dist/features/tasks/add/index.js +14 -5
  284. package/dist/features/tasks/add/index.js.map +1 -1
  285. package/dist/features/tasks/add/worktree-settings.d.ts.map +1 -1
  286. package/dist/features/tasks/add/worktree-settings.js +10 -8
  287. package/dist/features/tasks/add/worktree-settings.js.map +1 -1
  288. package/dist/features/tasks/execute/parallelExecution.js +2 -2
  289. package/dist/features/tasks/execute/pieceExecution.d.ts.map +1 -1
  290. package/dist/features/tasks/execute/pieceExecution.js +28 -27
  291. package/dist/features/tasks/execute/pieceExecution.js.map +1 -1
  292. package/dist/features/tasks/execute/postExecution.d.ts +1 -0
  293. package/dist/features/tasks/execute/postExecution.d.ts.map +1 -1
  294. package/dist/features/tasks/execute/postExecution.js +38 -24
  295. package/dist/features/tasks/execute/postExecution.js.map +1 -1
  296. package/dist/features/tasks/execute/resolveTask.d.ts +2 -1
  297. package/dist/features/tasks/execute/resolveTask.d.ts.map +1 -1
  298. package/dist/features/tasks/execute/resolveTask.js +13 -11
  299. package/dist/features/tasks/execute/resolveTask.js.map +1 -1
  300. package/dist/features/tasks/execute/runAllTasks.d.ts +3 -0
  301. package/dist/features/tasks/execute/runAllTasks.d.ts.map +1 -0
  302. package/dist/features/tasks/execute/runAllTasks.js +81 -0
  303. package/dist/features/tasks/execute/runAllTasks.js.map +1 -0
  304. package/dist/features/tasks/execute/selectAndExecute.d.ts.map +1 -1
  305. package/dist/features/tasks/execute/selectAndExecute.js +2 -1
  306. package/dist/features/tasks/execute/selectAndExecute.js.map +1 -1
  307. package/dist/features/tasks/execute/taskExecution.d.ts +0 -7
  308. package/dist/features/tasks/execute/taskExecution.d.ts.map +1 -1
  309. package/dist/features/tasks/execute/taskExecution.js +26 -100
  310. package/dist/features/tasks/execute/taskExecution.js.map +1 -1
  311. package/dist/features/tasks/execute/taskResultHandler.d.ts +4 -1
  312. package/dist/features/tasks/execute/taskResultHandler.d.ts.map +1 -1
  313. package/dist/features/tasks/execute/taskResultHandler.js +4 -2
  314. package/dist/features/tasks/execute/taskResultHandler.js.map +1 -1
  315. package/dist/features/tasks/execute/types.d.ts +3 -1
  316. package/dist/features/tasks/execute/types.d.ts.map +1 -1
  317. package/dist/features/tasks/index.d.ts +2 -1
  318. package/dist/features/tasks/index.d.ts.map +1 -1
  319. package/dist/features/tasks/index.js +2 -1
  320. package/dist/features/tasks/index.js.map +1 -1
  321. package/dist/features/tasks/list/index.js +2 -2
  322. package/dist/features/tasks/list/index.js.map +1 -1
  323. package/dist/features/tasks/list/listNonInteractive.d.ts.map +1 -1
  324. package/dist/features/tasks/list/listNonInteractive.js +6 -2
  325. package/dist/features/tasks/list/listNonInteractive.js.map +1 -1
  326. package/dist/features/tasks/list/requeueHelpers.d.ts.map +1 -1
  327. package/dist/features/tasks/list/requeueHelpers.js +2 -1
  328. package/dist/features/tasks/list/requeueHelpers.js.map +1 -1
  329. package/dist/features/tasks/list/taskActionTarget.d.ts +1 -1
  330. package/dist/features/tasks/list/taskActionTarget.d.ts.map +1 -1
  331. package/dist/features/tasks/list/taskActionTarget.js +4 -11
  332. package/dist/features/tasks/list/taskActionTarget.js.map +1 -1
  333. package/dist/features/tasks/list/taskRetryActions.d.ts.map +1 -1
  334. package/dist/features/tasks/list/taskRetryActions.js +12 -11
  335. package/dist/features/tasks/list/taskRetryActions.js.map +1 -1
  336. package/dist/index.d.ts +2 -2
  337. package/dist/index.d.ts.map +1 -1
  338. package/dist/index.js +1 -1
  339. package/dist/index.js.map +1 -1
  340. package/dist/infra/claude/client.d.ts +1 -7
  341. package/dist/infra/claude/client.d.ts.map +1 -1
  342. package/dist/infra/claude/client.js +2 -46
  343. package/dist/infra/claude/client.js.map +1 -1
  344. package/dist/infra/claude/executor.d.ts +1 -1
  345. package/dist/infra/claude/executor.d.ts.map +1 -1
  346. package/dist/infra/claude/executor.js +47 -27
  347. package/dist/infra/claude/executor.js.map +1 -1
  348. package/dist/infra/claude/options-builder.d.ts +0 -15
  349. package/dist/infra/claude/options-builder.d.ts.map +1 -1
  350. package/dist/infra/claude/options-builder.js +25 -28
  351. package/dist/infra/claude/options-builder.js.map +1 -1
  352. package/dist/infra/claude/permission-mode-expression.d.ts +5 -0
  353. package/dist/infra/claude/permission-mode-expression.d.ts.map +1 -0
  354. package/dist/infra/claude/permission-mode-expression.js +14 -0
  355. package/dist/infra/claude/permission-mode-expression.js.map +1 -0
  356. package/dist/infra/claude/stream-converter.d.ts.map +1 -1
  357. package/dist/infra/claude/stream-converter.js +26 -0
  358. package/dist/infra/claude/stream-converter.js.map +1 -1
  359. package/dist/infra/claude/types.d.ts +23 -0
  360. package/dist/infra/claude/types.d.ts.map +1 -1
  361. package/dist/infra/claude-headless/client.d.ts +4 -0
  362. package/dist/infra/claude-headless/client.d.ts.map +1 -0
  363. package/dist/infra/claude-headless/client.js +197 -0
  364. package/dist/infra/claude-headless/client.js.map +1 -0
  365. package/dist/infra/claude-headless/headless-spawn.d.ts +13 -0
  366. package/dist/infra/claude-headless/headless-spawn.d.ts.map +1 -0
  367. package/dist/infra/claude-headless/headless-spawn.js +182 -0
  368. package/dist/infra/claude-headless/headless-spawn.js.map +1 -0
  369. package/dist/infra/claude-headless/result-response.d.ts +15 -0
  370. package/dist/infra/claude-headless/result-response.d.ts.map +1 -0
  371. package/dist/infra/claude-headless/result-response.js +72 -0
  372. package/dist/infra/claude-headless/result-response.js.map +1 -0
  373. package/dist/infra/claude-headless/stream-json-lines.d.ts +14 -0
  374. package/dist/infra/claude-headless/stream-json-lines.d.ts.map +1 -0
  375. package/dist/infra/claude-headless/stream-json-lines.js +172 -0
  376. package/dist/infra/claude-headless/stream-json-lines.js.map +1 -0
  377. package/dist/infra/claude-headless/types.d.ts +21 -0
  378. package/dist/infra/claude-headless/types.d.ts.map +1 -0
  379. package/dist/infra/claude-headless/types.js +2 -0
  380. package/dist/infra/claude-headless/types.js.map +1 -0
  381. package/dist/infra/codex/client.d.ts.map +1 -1
  382. package/dist/infra/codex/client.js +1 -0
  383. package/dist/infra/codex/client.js.map +1 -1
  384. package/dist/infra/codex/types.d.ts +2 -0
  385. package/dist/infra/codex/types.d.ts.map +1 -1
  386. package/dist/infra/codex/types.js.map +1 -1
  387. package/dist/infra/config/configKeyAliases.d.ts +17 -0
  388. package/dist/infra/config/configKeyAliases.d.ts.map +1 -0
  389. package/dist/infra/config/configKeyAliases.js +82 -0
  390. package/dist/infra/config/configKeyAliases.js.map +1 -0
  391. package/dist/infra/config/configNormalizers.d.ts +7 -6
  392. package/dist/infra/config/configNormalizers.d.ts.map +1 -1
  393. package/dist/infra/config/configNormalizers.js +25 -10
  394. package/dist/infra/config/configNormalizers.js.map +1 -1
  395. package/dist/infra/config/env/config-env-overrides.d.ts +6 -3
  396. package/dist/infra/config/env/config-env-overrides.d.ts.map +1 -1
  397. package/dist/infra/config/env/config-env-overrides.js +5 -194
  398. package/dist/infra/config/env/config-env-overrides.js.map +1 -1
  399. package/dist/infra/config/env/config-env-shared.d.ts +16 -0
  400. package/dist/infra/config/env/config-env-shared.d.ts.map +1 -0
  401. package/dist/infra/config/env/config-env-shared.js +62 -0
  402. package/dist/infra/config/env/config-env-shared.js.map +1 -0
  403. package/dist/infra/config/env/global-current-env-specs.d.ts +3 -0
  404. package/dist/infra/config/env/global-current-env-specs.d.ts.map +1 -0
  405. package/dist/infra/config/env/global-current-env-specs.js +63 -0
  406. package/dist/infra/config/env/global-current-env-specs.js.map +1 -0
  407. package/dist/infra/config/env/global-legacy-env-specs.d.ts +3 -0
  408. package/dist/infra/config/env/global-legacy-env-specs.d.ts.map +1 -0
  409. package/dist/infra/config/env/global-legacy-env-specs.js +122 -0
  410. package/dist/infra/config/env/global-legacy-env-specs.js.map +1 -0
  411. package/dist/infra/config/env/project-current-env-specs.d.ts +3 -0
  412. package/dist/infra/config/env/project-current-env-specs.d.ts.map +1 -0
  413. package/dist/infra/config/env/project-current-env-specs.js +35 -0
  414. package/dist/infra/config/env/project-current-env-specs.js.map +1 -0
  415. package/dist/infra/config/env/project-legacy-env-specs.d.ts +3 -0
  416. package/dist/infra/config/env/project-legacy-env-specs.d.ts.map +1 -0
  417. package/dist/infra/config/env/project-legacy-env-specs.js +80 -0
  418. package/dist/infra/config/env/project-legacy-env-specs.js.map +1 -0
  419. package/dist/infra/config/global/globalConfigAccessors.d.ts +2 -1
  420. package/dist/infra/config/global/globalConfigAccessors.d.ts.map +1 -1
  421. package/dist/infra/config/global/globalConfigAccessors.js.map +1 -1
  422. package/dist/infra/config/global/globalConfigCore.d.ts +4 -0
  423. package/dist/infra/config/global/globalConfigCore.d.ts.map +1 -1
  424. package/dist/infra/config/global/globalConfigCore.js +69 -38
  425. package/dist/infra/config/global/globalConfigCore.js.map +1 -1
  426. package/dist/infra/config/global/globalConfigSerializer.js +9 -9
  427. package/dist/infra/config/global/globalConfigSerializer.js.map +1 -1
  428. package/dist/infra/config/global/initialization.d.ts +1 -1
  429. package/dist/infra/config/global/initialization.d.ts.map +1 -1
  430. package/dist/infra/config/global/initialization.js +2 -1
  431. package/dist/infra/config/global/initialization.js.map +1 -1
  432. package/dist/infra/config/global/pieceCategories.js +1 -1
  433. package/dist/infra/config/global/pieceCategories.js.map +1 -1
  434. package/dist/infra/config/issuePath.d.ts +2 -0
  435. package/dist/infra/config/issuePath.d.ts.map +1 -0
  436. package/dist/infra/config/issuePath.js +6 -0
  437. package/dist/infra/config/issuePath.js.map +1 -0
  438. package/dist/infra/config/legacy-workflow-key-deprecation.d.ts +11 -0
  439. package/dist/infra/config/legacy-workflow-key-deprecation.d.ts.map +1 -0
  440. package/dist/infra/config/legacy-workflow-key-deprecation.js +191 -0
  441. package/dist/infra/config/legacy-workflow-key-deprecation.js.map +1 -0
  442. package/dist/infra/config/loaders/agentLoader.d.ts +1 -1
  443. package/dist/infra/config/loaders/agentLoader.js +3 -3
  444. package/dist/infra/config/loaders/agentLoader.js.map +1 -1
  445. package/dist/infra/config/loaders/pieceCategories.d.ts +3 -3
  446. package/dist/infra/config/loaders/pieceCategories.d.ts.map +1 -1
  447. package/dist/infra/config/loaders/pieceCategories.js +55 -17
  448. package/dist/infra/config/loaders/pieceCategories.js.map +1 -1
  449. package/dist/infra/config/loaders/pieceLoadWarning.d.ts +2 -0
  450. package/dist/infra/config/loaders/pieceLoadWarning.d.ts.map +1 -0
  451. package/dist/infra/config/loaders/pieceLoadWarning.js +22 -0
  452. package/dist/infra/config/loaders/pieceLoadWarning.js.map +1 -0
  453. package/dist/infra/config/loaders/pieceParser.d.ts.map +1 -1
  454. package/dist/infra/config/loaders/pieceParser.js +8 -14
  455. package/dist/infra/config/loaders/pieceParser.js.map +1 -1
  456. package/dist/infra/config/loaders/pieceResolver.d.ts +25 -22
  457. package/dist/infra/config/loaders/pieceResolver.d.ts.map +1 -1
  458. package/dist/infra/config/loaders/pieceResolver.js +80 -72
  459. package/dist/infra/config/loaders/pieceResolver.js.map +1 -1
  460. package/dist/infra/config/paths.d.ts +6 -2
  461. package/dist/infra/config/paths.d.ts.map +1 -1
  462. package/dist/infra/config/paths.js +11 -3
  463. package/dist/infra/config/paths.js.map +1 -1
  464. package/dist/infra/config/project/projectConfig.d.ts +2 -6
  465. package/dist/infra/config/project/projectConfig.d.ts.map +1 -1
  466. package/dist/infra/config/project/projectConfig.js +41 -65
  467. package/dist/infra/config/project/projectConfig.js.map +1 -1
  468. package/dist/infra/config/project/projectConfigTransforms.d.ts +0 -1
  469. package/dist/infra/config/project/projectConfigTransforms.d.ts.map +1 -1
  470. package/dist/infra/config/project/projectConfigTransforms.js +0 -5
  471. package/dist/infra/config/project/projectConfigTransforms.js.map +1 -1
  472. package/dist/infra/config/project/projectConfigValidation.d.ts +2 -0
  473. package/dist/infra/config/project/projectConfigValidation.d.ts.map +1 -0
  474. package/dist/infra/config/project/projectConfigValidation.js +17 -0
  475. package/dist/infra/config/project/projectConfigValidation.js.map +1 -0
  476. package/dist/infra/config/providerBlockOptions.js +1 -1
  477. package/dist/infra/config/providerBlockOptions.js.map +1 -1
  478. package/dist/infra/config/providerModelCompatibility.js +1 -1
  479. package/dist/infra/config/providerModelCompatibility.js.map +1 -1
  480. package/dist/infra/config/providerOptions.d.ts +6 -1
  481. package/dist/infra/config/providerOptions.d.ts.map +1 -1
  482. package/dist/infra/config/providerOptions.js +93 -5
  483. package/dist/infra/config/providerOptions.js.map +1 -1
  484. package/dist/infra/config/providerOptionsContract.d.ts +14 -0
  485. package/dist/infra/config/providerOptionsContract.d.ts.map +1 -0
  486. package/dist/infra/config/providerOptionsContract.js +80 -0
  487. package/dist/infra/config/providerOptionsContract.js.map +1 -0
  488. package/dist/infra/config/resolutionCache.d.ts +3 -0
  489. package/dist/infra/config/resolutionCache.d.ts.map +1 -1
  490. package/dist/infra/config/resolutionCache.js +9 -0
  491. package/dist/infra/config/resolutionCache.js.map +1 -1
  492. package/dist/infra/config/resolveConfigValue.d.ts +6 -0
  493. package/dist/infra/config/resolveConfigValue.d.ts.map +1 -1
  494. package/dist/infra/config/resolveConfigValue.js +97 -16
  495. package/dist/infra/config/resolveConfigValue.js.map +1 -1
  496. package/dist/infra/config/resolvedConfig.d.ts +2 -1
  497. package/dist/infra/config/resolvedConfig.d.ts.map +1 -1
  498. package/dist/infra/config/traced/tracedConfigLegacyEnvAdapter.d.ts +4 -0
  499. package/dist/infra/config/traced/tracedConfigLegacyEnvAdapter.d.ts.map +1 -0
  500. package/dist/infra/config/traced/tracedConfigLegacyEnvAdapter.js +47 -0
  501. package/dist/infra/config/traced/tracedConfigLegacyEnvAdapter.js.map +1 -0
  502. package/dist/infra/config/traced/tracedConfigLoader.d.ts +32 -0
  503. package/dist/infra/config/traced/tracedConfigLoader.d.ts.map +1 -0
  504. package/dist/infra/config/traced/tracedConfigLoader.js +153 -0
  505. package/dist/infra/config/traced/tracedConfigLoader.js.map +1 -0
  506. package/dist/infra/config/traced/tracedConfigRuntimeBridge.d.ts +3 -0
  507. package/dist/infra/config/traced/tracedConfigRuntimeBridge.d.ts.map +1 -0
  508. package/dist/infra/config/traced/tracedConfigRuntimeBridge.js +135 -0
  509. package/dist/infra/config/traced/tracedConfigRuntimeBridge.js.map +1 -0
  510. package/dist/infra/config/traced/tracedConfigSchema.d.ts +5 -0
  511. package/dist/infra/config/traced/tracedConfigSchema.d.ts.map +1 -0
  512. package/dist/infra/config/traced/tracedConfigSchema.js +215 -0
  513. package/dist/infra/config/traced/tracedConfigSchema.js.map +1 -0
  514. package/dist/infra/cursor/client.js +1 -1
  515. package/dist/infra/cursor/client.js.map +1 -1
  516. package/dist/infra/mock/client.d.ts.map +1 -1
  517. package/dist/infra/mock/client.js +31 -0
  518. package/dist/infra/mock/client.js.map +1 -1
  519. package/dist/infra/mock/scenario.js +5 -0
  520. package/dist/infra/mock/scenario.js.map +1 -1
  521. package/dist/infra/mock/types.d.ts +3 -0
  522. package/dist/infra/mock/types.d.ts.map +1 -1
  523. package/dist/infra/providers/claude-headless.d.ts +6 -0
  524. package/dist/infra/providers/claude-headless.d.ts.map +1 -0
  525. package/dist/infra/providers/claude-headless.js +34 -0
  526. package/dist/infra/providers/claude-headless.js.map +1 -0
  527. package/dist/infra/providers/claude.d.ts +1 -4
  528. package/dist/infra/providers/claude.d.ts.map +1 -1
  529. package/dist/infra/providers/claude.js +3 -17
  530. package/dist/infra/providers/claude.js.map +1 -1
  531. package/dist/infra/providers/codex.d.ts +1 -0
  532. package/dist/infra/providers/codex.d.ts.map +1 -1
  533. package/dist/infra/providers/codex.js +2 -6
  534. package/dist/infra/providers/codex.js.map +1 -1
  535. package/dist/infra/providers/copilot.d.ts +1 -0
  536. package/dist/infra/providers/copilot.d.ts.map +1 -1
  537. package/dist/infra/providers/copilot.js +1 -6
  538. package/dist/infra/providers/copilot.js.map +1 -1
  539. package/dist/infra/providers/cursor.d.ts +1 -0
  540. package/dist/infra/providers/cursor.d.ts.map +1 -1
  541. package/dist/infra/providers/cursor.js +1 -6
  542. package/dist/infra/providers/cursor.js.map +1 -1
  543. package/dist/infra/providers/index.d.ts +0 -12
  544. package/dist/infra/providers/index.d.ts.map +1 -1
  545. package/dist/infra/providers/index.js +3 -13
  546. package/dist/infra/providers/index.js.map +1 -1
  547. package/dist/infra/providers/mock.d.ts +1 -0
  548. package/dist/infra/providers/mock.d.ts.map +1 -1
  549. package/dist/infra/providers/mock.js +2 -6
  550. package/dist/infra/providers/mock.js.map +1 -1
  551. package/dist/infra/providers/opencode.d.ts +1 -0
  552. package/dist/infra/providers/opencode.d.ts.map +1 -1
  553. package/dist/infra/providers/opencode.js +1 -6
  554. package/dist/infra/providers/opencode.js.map +1 -1
  555. package/dist/infra/providers/types.d.ts +3 -15
  556. package/dist/infra/providers/types.d.ts.map +1 -1
  557. package/dist/infra/providers/types.js +0 -3
  558. package/dist/infra/providers/types.js.map +1 -1
  559. package/dist/infra/resources/index.d.ts +1 -1
  560. package/dist/infra/resources/index.js +1 -1
  561. package/dist/infra/task/autoCommit.d.ts +2 -2
  562. package/dist/infra/task/autoCommit.d.ts.map +1 -1
  563. package/dist/infra/task/autoCommit.js +16 -10
  564. package/dist/infra/task/autoCommit.js.map +1 -1
  565. package/dist/infra/task/clone.d.ts.map +1 -1
  566. package/dist/infra/task/clone.js +15 -3
  567. package/dist/infra/task/clone.js.map +1 -1
  568. package/dist/infra/task/display.js +2 -2
  569. package/dist/infra/task/display.js.map +1 -1
  570. package/dist/infra/task/git.d.ts +7 -1
  571. package/dist/infra/task/git.d.ts.map +1 -1
  572. package/dist/infra/task/git.js +51 -9
  573. package/dist/infra/task/git.js.map +1 -1
  574. package/dist/infra/task/index.d.ts +3 -2
  575. package/dist/infra/task/index.d.ts.map +1 -1
  576. package/dist/infra/task/index.js +3 -2
  577. package/dist/infra/task/index.js.map +1 -1
  578. package/dist/infra/task/listSerializer.d.ts +42 -0
  579. package/dist/infra/task/listSerializer.d.ts.map +1 -0
  580. package/dist/infra/task/listSerializer.js +52 -0
  581. package/dist/infra/task/listSerializer.js.map +1 -0
  582. package/dist/infra/task/mapper.d.ts.map +1 -1
  583. package/dist/infra/task/mapper.js +7 -2
  584. package/dist/infra/task/mapper.js.map +1 -1
  585. package/dist/infra/task/schema.d.ts +272 -12
  586. package/dist/infra/task/schema.d.ts.map +1 -1
  587. package/dist/infra/task/schema.js +142 -8
  588. package/dist/infra/task/schema.js.map +1 -1
  589. package/dist/infra/task/store.d.ts.map +1 -1
  590. package/dist/infra/task/store.js +2 -2
  591. package/dist/infra/task/store.js.map +1 -1
  592. package/dist/infra/task/taskExceedService.d.ts +2 -0
  593. package/dist/infra/task/taskExceedService.d.ts.map +1 -1
  594. package/dist/infra/task/taskExceedService.js +3 -1
  595. package/dist/infra/task/taskExceedService.js.map +1 -1
  596. package/dist/infra/task/types.d.ts +3 -1
  597. package/dist/infra/task/types.d.ts.map +1 -1
  598. package/dist/shared/i18n/labels_en.yaml +6 -6
  599. package/dist/shared/i18n/labels_ja.yaml +6 -6
  600. package/dist/shared/prompts/en/perform_agent_system_prompt.md +6 -6
  601. package/dist/shared/prompts/en/perform_judge_message.md +1 -1
  602. package/dist/shared/prompts/en/perform_phase1_message.md +9 -9
  603. package/dist/shared/prompts/en/perform_phase2_message.md +2 -2
  604. package/dist/shared/prompts/en/score_instruct_system_prompt.md +7 -7
  605. package/dist/shared/prompts/en/score_interactive_policy.md +10 -10
  606. package/dist/shared/prompts/en/score_interactive_system_prompt.md +9 -9
  607. package/dist/shared/prompts/en/score_retry_system_prompt.md +8 -8
  608. package/dist/shared/prompts/en/score_summary_system_prompt.md +4 -4
  609. package/dist/shared/prompts/ja/perform_agent_system_prompt.md +6 -6
  610. package/dist/shared/prompts/ja/perform_judge_message.md +1 -1
  611. package/dist/shared/prompts/ja/perform_phase1_message.md +9 -9
  612. package/dist/shared/prompts/ja/perform_phase2_message.md +2 -2
  613. package/dist/shared/prompts/ja/score_instruct_system_prompt.md +7 -7
  614. package/dist/shared/prompts/ja/score_interactive_policy.md +10 -10
  615. package/dist/shared/prompts/ja/score_interactive_system_prompt.md +9 -9
  616. package/dist/shared/prompts/ja/score_retry_system_prompt.md +8 -8
  617. package/dist/shared/prompts/ja/score_summary_system_prompt.md +7 -7
  618. package/dist/shared/types/provider.d.ts +21 -10
  619. package/dist/shared/types/provider.d.ts.map +1 -1
  620. package/dist/shared/types/provider.js +0 -9
  621. package/dist/shared/types/provider.js.map +1 -1
  622. package/dist/shared/ui/StreamDisplay.d.ts.map +1 -1
  623. package/dist/shared/ui/StreamDisplay.js +2 -0
  624. package/dist/shared/ui/StreamDisplay.js.map +1 -1
  625. package/dist/shared/utils/debug.d.ts +4 -0
  626. package/dist/shared/utils/debug.d.ts.map +1 -1
  627. package/dist/shared/utils/debug.js +7 -0
  628. package/dist/shared/utils/debug.js.map +1 -1
  629. package/dist/shared/utils/slackWebhook.js +2 -2
  630. package/dist/shared/utils/slackWebhook.js.map +1 -1
  631. package/dist/shared/utils/text.d.ts +4 -0
  632. package/dist/shared/utils/text.d.ts.map +1 -1
  633. package/dist/shared/utils/text.js +29 -0
  634. package/dist/shared/utils/text.js.map +1 -1
  635. package/package.json +5 -3
  636. package/dist/agents/ai-judge.d.ts +0 -15
  637. package/dist/agents/ai-judge.d.ts.map +0 -1
  638. package/dist/agents/ai-judge.js +0 -23
  639. package/dist/agents/ai-judge.js.map +0 -1
  640. package/dist/shared/prompts/en/perform_builtin_agent_system_prompt.md +0 -7
  641. package/dist/shared/prompts/ja/perform_builtin_agent_system_prompt.md +0 -7
@@ -0,0 +1,197 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { chmod, mkdtemp, rm, writeFile } from 'node:fs/promises';
3
+ import { tmpdir } from 'node:os';
4
+ import { join } from 'node:path';
5
+ import { createLogger, getErrorMessage } from '../../shared/utils/index.js';
6
+ import { taktPermissionModeToClaudeExpression, } from '../claude/permission-mode-expression.js';
7
+ import { HEADLESS_ABORTED_MESSAGE, runHeadlessCli, } from './headless-spawn.js';
8
+ import { aggregateResultFromStdout, extractSessionIdFromStdout, } from './stream-json-lines.js';
9
+ import { buildClaudeHeadlessResponse } from './result-response.js';
10
+ const log = createLogger('claude-headless');
11
+ function resolveCliPermissionMode(mode, bypassPermissions) {
12
+ if (bypassPermissions) {
13
+ return 'bypassPermissions';
14
+ }
15
+ if (mode !== undefined) {
16
+ return taktPermissionModeToClaudeExpression(mode);
17
+ }
18
+ return 'default';
19
+ }
20
+ function resolveSessionArgs(options) {
21
+ if (options.sessionId) {
22
+ return {
23
+ args: ['--resume', options.sessionId],
24
+ sessionId: options.sessionId,
25
+ };
26
+ }
27
+ const sessionId = randomUUID();
28
+ return {
29
+ args: ['--session-id', sessionId],
30
+ sessionId,
31
+ };
32
+ }
33
+ async function prepareMcpConfig(options) {
34
+ if (!options.mcpServers || Object.keys(options.mcpServers).length === 0) {
35
+ return { cleanup: async () => { } };
36
+ }
37
+ const tempDir = await mkdtemp(join(tmpdir(), 'takt-claude-mcp-'));
38
+ const configPath = join(tempDir, 'mcp-config.json');
39
+ try {
40
+ await chmod(tempDir, 0o700);
41
+ await writeFile(configPath, JSON.stringify({ mcpServers: options.mcpServers }), {
42
+ encoding: 'utf-8',
43
+ mode: 0o600,
44
+ });
45
+ await chmod(configPath, 0o600);
46
+ }
47
+ catch (raw) {
48
+ try {
49
+ await rm(tempDir, { recursive: true, force: true });
50
+ }
51
+ catch (cleanupRaw) {
52
+ log.error('Failed to clean up Claude MCP temp directory after prepare failure', {
53
+ error: getErrorMessage(cleanupRaw),
54
+ tempDir,
55
+ });
56
+ }
57
+ throw raw;
58
+ }
59
+ return {
60
+ mcpConfigArg: configPath,
61
+ cleanup: async () => {
62
+ await rm(tempDir, { recursive: true, force: true });
63
+ },
64
+ };
65
+ }
66
+ function buildSettingsArg(options) {
67
+ const sandbox = options.sandbox;
68
+ if (!sandbox) {
69
+ return undefined;
70
+ }
71
+ const settingsSandbox = {
72
+ ...(sandbox.allowUnsandboxedCommands !== undefined
73
+ ? { allowUnsandboxedCommands: sandbox.allowUnsandboxedCommands }
74
+ : {}),
75
+ ...(sandbox.excludedCommands !== undefined
76
+ ? { excludedCommands: sandbox.excludedCommands }
77
+ : {}),
78
+ };
79
+ if (Object.keys(settingsSandbox).length === 0) {
80
+ return undefined;
81
+ }
82
+ return JSON.stringify({ sandbox: settingsSandbox });
83
+ }
84
+ async function buildSpawnArgs(prompt, options) {
85
+ const session = resolveSessionArgs(options);
86
+ const preparedResources = await prepareMcpConfig(options);
87
+ const args = [
88
+ '-p',
89
+ '--verbose',
90
+ '--output-format',
91
+ 'stream-json',
92
+ '--include-partial-messages',
93
+ '--permission-mode',
94
+ resolveCliPermissionMode(options.permissionMode, options.bypassPermissions),
95
+ ];
96
+ if (options.model) {
97
+ args.push('--model', options.model);
98
+ }
99
+ if (options.allowedTools && options.allowedTools.length > 0) {
100
+ args.push('--allowed-tools', options.allowedTools.join(','));
101
+ }
102
+ if (options.effort) {
103
+ args.push('--effort', options.effort);
104
+ }
105
+ if (options.systemPrompt?.trim()) {
106
+ args.push('--system-prompt', options.systemPrompt.trim());
107
+ }
108
+ if (options.outputSchema) {
109
+ args.push('--json-schema', JSON.stringify(options.outputSchema));
110
+ }
111
+ if (preparedResources.mcpConfigArg) {
112
+ args.push('--mcp-config', preparedResources.mcpConfigArg);
113
+ }
114
+ const settings = buildSettingsArg(options);
115
+ if (settings) {
116
+ args.push('--settings', settings);
117
+ }
118
+ args.push(...session.args);
119
+ args.push('--', prompt);
120
+ return {
121
+ args,
122
+ expectedSessionId: session.sessionId,
123
+ cleanup: preparedResources.cleanup,
124
+ };
125
+ }
126
+ function classifyError(error, options) {
127
+ if (options.abortSignal?.aborted || error.name === 'AbortError') {
128
+ return HEADLESS_ABORTED_MESSAGE;
129
+ }
130
+ if (error.code === 'ENOENT') {
131
+ return 'claude CLI not found. Install Claude Code and ensure `claude` is in PATH, or set claude_cli_path in config.';
132
+ }
133
+ if (error.code === 'ERR_CHILD_PROCESS_STDIO_MAXBUFFER') {
134
+ return getErrorMessage(error);
135
+ }
136
+ if (typeof error.code === 'number') {
137
+ const detail = (error.stderr ?? error.stdout ?? '').trim() || getErrorMessage(error);
138
+ return `Claude CLI failed (${error.code}): ${detail}`;
139
+ }
140
+ return getErrorMessage(error);
141
+ }
142
+ export async function callClaudeHeadless(agentName, prompt, options) {
143
+ let cleanup;
144
+ let response;
145
+ try {
146
+ const prepared = await buildSpawnArgs(prompt, options);
147
+ cleanup = prepared.cleanup;
148
+ const { args, expectedSessionId } = prepared;
149
+ const { stdout, stderr } = await runHeadlessCli(args, options);
150
+ const parsed = aggregateResultFromStdout(stdout);
151
+ const sessionId = extractSessionIdFromStdout(stdout) ?? expectedSessionId;
152
+ response = buildClaudeHeadlessResponse({
153
+ agentName,
154
+ parsed,
155
+ stdout,
156
+ stderr,
157
+ sessionId,
158
+ outputSchema: options.outputSchema,
159
+ onStream: options.onStream,
160
+ });
161
+ }
162
+ catch (raw) {
163
+ const error = raw;
164
+ const message = classifyError(error, options);
165
+ if (options.onStream) {
166
+ options.onStream({
167
+ type: 'result',
168
+ data: {
169
+ result: '',
170
+ success: false,
171
+ error: message,
172
+ sessionId: options.sessionId ?? '',
173
+ },
174
+ });
175
+ }
176
+ response = {
177
+ persona: agentName,
178
+ status: 'error',
179
+ content: message,
180
+ timestamp: new Date(),
181
+ sessionId: options.sessionId,
182
+ error: message,
183
+ };
184
+ }
185
+ try {
186
+ await cleanup?.();
187
+ }
188
+ catch (raw) {
189
+ const cleanupError = raw;
190
+ log.error('Failed to clean up Claude MCP config', {
191
+ agentName,
192
+ error: getErrorMessage(cleanupError),
193
+ });
194
+ }
195
+ return response;
196
+ }
197
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/infra/claude-headless/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { ClaudeHeadlessCallOptions } from './types.js';
2
+ export declare const HEADLESS_ABORTED_MESSAGE = "Claude CLI execution aborted";
3
+ export type ExecError = Error & {
4
+ code?: string | number;
5
+ stdout?: string;
6
+ stderr?: string;
7
+ signal?: NodeJS.Signals | null;
8
+ };
9
+ export declare function runHeadlessCli(args: string[], options: ClaudeHeadlessCallOptions): Promise<{
10
+ stdout: string;
11
+ stderr: string;
12
+ }>;
13
+ //# sourceMappingURL=headless-spawn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headless-spawn.d.ts","sourceRoot":"","sources":["../../../src/infra/claude-headless/headless-spawn.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAI5D,eAAO,MAAM,wBAAwB,iCAAiC,CAAC;AAWvE,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG;IAC9B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;CAChC,CAAC;AAuBF,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CA+L7C"}
@@ -0,0 +1,182 @@
1
+ import { spawn } from 'node:child_process';
2
+ import { tryExtractTextFromStreamJsonLine } from './stream-json-lines.js';
3
+ const HEADLESS_STREAM_IDLE_TIMEOUT_MS = 10 * 60 * 1000;
4
+ const HEADLESS_MAX_BUFFER_BYTES = 10 * 1024 * 1024;
5
+ export const HEADLESS_ABORTED_MESSAGE = 'Claude CLI execution aborted';
6
+ const CLAUDE_COMMAND = 'claude';
7
+ function buildHeadlessEnv(options) {
8
+ const env = { ...process.env };
9
+ if (options.anthropicApiKey) {
10
+ env.ANTHROPIC_API_KEY = options.anthropicApiKey;
11
+ }
12
+ return env;
13
+ }
14
+ function createExecError(message, params = {}) {
15
+ const error = new Error(message);
16
+ if (params.name) {
17
+ error.name = params.name;
18
+ }
19
+ error.code = params.code;
20
+ error.stdout = params.stdout;
21
+ error.stderr = params.stderr;
22
+ error.signal = params.signal;
23
+ return error;
24
+ }
25
+ export function runHeadlessCli(args, options) {
26
+ return new Promise((resolve, reject) => {
27
+ const executable = options.claudeCliPath ?? CLAUDE_COMMAND;
28
+ const child = spawn(executable, args, {
29
+ cwd: options.cwd,
30
+ env: buildHeadlessEnv(options),
31
+ stdio: ['ignore', 'pipe', 'pipe'],
32
+ });
33
+ let stdout = '';
34
+ let stderr = '';
35
+ let stdoutBytes = 0;
36
+ let stderrBytes = 0;
37
+ let settled = false;
38
+ let idleTimer;
39
+ const clearIdle = () => {
40
+ if (idleTimer !== undefined) {
41
+ clearTimeout(idleTimer);
42
+ idleTimer = undefined;
43
+ }
44
+ };
45
+ const scheduleIdle = () => {
46
+ clearIdle();
47
+ idleTimer = setTimeout(() => {
48
+ if (settled) {
49
+ return;
50
+ }
51
+ child.kill('SIGTERM');
52
+ rejectOnce(createExecError('Claude CLI stream idle timeout: no output within time limit', {
53
+ stdout,
54
+ stderr,
55
+ }));
56
+ }, HEADLESS_STREAM_IDLE_TIMEOUT_MS);
57
+ idleTimer.unref?.();
58
+ };
59
+ const abortHandler = () => {
60
+ if (settled) {
61
+ return;
62
+ }
63
+ child.kill('SIGTERM');
64
+ };
65
+ const cleanup = () => {
66
+ clearIdle();
67
+ if (options.abortSignal) {
68
+ options.abortSignal.removeEventListener('abort', abortHandler);
69
+ }
70
+ };
71
+ const resolveOnce = (result) => {
72
+ if (settled) {
73
+ return;
74
+ }
75
+ settled = true;
76
+ cleanup();
77
+ resolve(result);
78
+ };
79
+ const rejectOnce = (error) => {
80
+ if (settled) {
81
+ return;
82
+ }
83
+ settled = true;
84
+ cleanup();
85
+ reject(error);
86
+ };
87
+ const appendChunk = (target, chunk) => {
88
+ const text = typeof chunk === 'string' ? chunk : chunk.toString('utf-8');
89
+ const byteLength = Buffer.byteLength(text);
90
+ if (target === 'stdout') {
91
+ stdoutBytes += byteLength;
92
+ if (stdoutBytes > HEADLESS_MAX_BUFFER_BYTES) {
93
+ child.kill('SIGTERM');
94
+ rejectOnce(createExecError('Claude CLI stdout exceeded buffer limit', {
95
+ code: 'ERR_CHILD_PROCESS_STDIO_MAXBUFFER',
96
+ stdout,
97
+ stderr,
98
+ }));
99
+ return;
100
+ }
101
+ stdout += text;
102
+ scheduleIdle();
103
+ return;
104
+ }
105
+ stderrBytes += byteLength;
106
+ if (stderrBytes > HEADLESS_MAX_BUFFER_BYTES) {
107
+ child.kill('SIGTERM');
108
+ rejectOnce(createExecError('Claude CLI stderr exceeded buffer limit', {
109
+ code: 'ERR_CHILD_PROCESS_STDIO_MAXBUFFER',
110
+ stdout,
111
+ stderr,
112
+ }));
113
+ return;
114
+ }
115
+ stderr += text;
116
+ };
117
+ let lineBuffer = '';
118
+ const flushLines = (final = false) => {
119
+ const parts = lineBuffer.split('\n');
120
+ lineBuffer = final ? '' : (parts.pop() ?? '');
121
+ for (const line of parts) {
122
+ const text = tryExtractTextFromStreamJsonLine(line);
123
+ if (text && options.onStream) {
124
+ options.onStream({ type: 'text', data: { text } });
125
+ }
126
+ }
127
+ };
128
+ child.stdout?.on('data', (chunk) => {
129
+ appendChunk('stdout', chunk);
130
+ lineBuffer += typeof chunk === 'string' ? chunk : chunk.toString('utf-8');
131
+ flushLines(false);
132
+ });
133
+ child.stderr?.on('data', (chunk) => appendChunk('stderr', chunk));
134
+ child.on('error', (error) => {
135
+ rejectOnce(createExecError(error.message, {
136
+ code: error.code,
137
+ stdout,
138
+ stderr,
139
+ }));
140
+ });
141
+ child.on('close', (code, signal) => {
142
+ if (settled) {
143
+ return;
144
+ }
145
+ flushLines(true);
146
+ if (options.abortSignal?.aborted) {
147
+ rejectOnce(createExecError(HEADLESS_ABORTED_MESSAGE, {
148
+ name: 'AbortError',
149
+ stdout,
150
+ stderr,
151
+ signal,
152
+ }));
153
+ return;
154
+ }
155
+ if (code === 0) {
156
+ resolveOnce({ stdout, stderr });
157
+ return;
158
+ }
159
+ const message = signal
160
+ ? `Claude CLI terminated by signal ${signal}`
161
+ : code === null
162
+ ? 'Claude CLI exited without an exit code'
163
+ : `Claude CLI exited with code ${code}`;
164
+ rejectOnce(createExecError(message, {
165
+ code: code ?? undefined,
166
+ stdout,
167
+ stderr,
168
+ signal,
169
+ }));
170
+ });
171
+ if (options.abortSignal) {
172
+ if (options.abortSignal.aborted) {
173
+ abortHandler();
174
+ }
175
+ else {
176
+ options.abortSignal.addEventListener('abort', abortHandler, { once: true });
177
+ }
178
+ }
179
+ scheduleIdle();
180
+ });
181
+ }
182
+ //# sourceMappingURL=headless-spawn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headless-spawn.js","sourceRoot":"","sources":["../../../src/infra/claude-headless/headless-spawn.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { AgentResponse } from '../../core/models/index.js';
2
+ import type { StreamCallback } from '../../shared/types/provider.js';
3
+ import type { StreamJsonStdoutResult } from './stream-json-lines.js';
4
+ type ClaudeHeadlessResponseInput = {
5
+ agentName: string;
6
+ parsed: StreamJsonStdoutResult;
7
+ stdout: string;
8
+ stderr: string;
9
+ sessionId: string | undefined;
10
+ outputSchema: Record<string, unknown> | undefined;
11
+ onStream: StreamCallback | undefined;
12
+ };
13
+ export declare function buildClaudeHeadlessResponse(input: ClaudeHeadlessResponseInput): AgentResponse;
14
+ export {};
15
+ //# sourceMappingURL=result-response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result-response.d.ts","sourceRoot":"","sources":["../../../src/infra/claude-headless/result-response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAErE,KAAK,2BAA2B,GAAG;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,sBAAsB,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAClD,QAAQ,EAAE,cAAc,GAAG,SAAS,CAAC;CACtC,CAAC;AAyBF,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,2BAA2B,GAAG,aAAa,CAyD7F"}
@@ -0,0 +1,72 @@
1
+ import { parseStructuredOutput } from '../../shared/utils/index.js';
2
+ function buildNoContentMessage(stdout, stderr) {
3
+ const hint = stderr.trim() || stdout.trim().slice(0, 500) || 'no parseable stream-json output';
4
+ return `Claude CLI returned no assistant text. ${hint}`;
5
+ }
6
+ function hasCompatibilityDisplayText(parsed) {
7
+ return !parsed.hasResult && parsed.displayText.length > 0;
8
+ }
9
+ function emitResultEvent(onStream, payload) {
10
+ if (!onStream) {
11
+ return;
12
+ }
13
+ onStream({
14
+ type: 'result',
15
+ data: payload,
16
+ });
17
+ }
18
+ export function buildClaudeHeadlessResponse(input) {
19
+ const { agentName, parsed, stdout, stderr, sessionId, outputSchema, onStream } = input;
20
+ const content = parsed.content;
21
+ const structuredOutput = parsed.structuredOutput ?? parseStructuredOutput(content, !!outputSchema);
22
+ const resolvedSessionId = sessionId ?? '';
23
+ const compatibilitySuccess = hasCompatibilityDisplayText(parsed);
24
+ if (!parsed.hasResult && !compatibilitySuccess) {
25
+ const message = buildNoContentMessage(stdout, stderr);
26
+ emitResultEvent(onStream, {
27
+ result: '',
28
+ success: false,
29
+ error: message,
30
+ sessionId: resolvedSessionId,
31
+ });
32
+ return {
33
+ persona: agentName,
34
+ status: 'error',
35
+ content: message,
36
+ timestamp: new Date(),
37
+ sessionId,
38
+ error: message,
39
+ };
40
+ }
41
+ if (parsed.hasResult && !parsed.success) {
42
+ const message = parsed.error ?? buildNoContentMessage(stdout, stderr);
43
+ emitResultEvent(onStream, {
44
+ result: content,
45
+ success: false,
46
+ error: message,
47
+ sessionId: resolvedSessionId,
48
+ });
49
+ return {
50
+ persona: agentName,
51
+ status: 'error',
52
+ content: content || message,
53
+ timestamp: new Date(),
54
+ sessionId,
55
+ error: message,
56
+ };
57
+ }
58
+ emitResultEvent(onStream, {
59
+ result: content,
60
+ success: true,
61
+ sessionId: resolvedSessionId,
62
+ });
63
+ return {
64
+ persona: agentName,
65
+ status: 'done',
66
+ content,
67
+ timestamp: new Date(),
68
+ sessionId,
69
+ structuredOutput,
70
+ };
71
+ }
72
+ //# sourceMappingURL=result-response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result-response.js","sourceRoot":"","sources":["../../../src/infra/claude-headless/result-response.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAapE,SAAS,qBAAqB,CAAC,MAAc,EAAE,MAAc;IAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,iCAAiC,CAAC;IAC/F,OAAO,0CAA0C,IAAI,EAAE,CAAC;AAC1D,CAAC;AAED,SAAS,2BAA2B,CAAC,MAA8B;IACjE,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,eAAe,CACtB,QAAoC,EACpC,OAAgF;IAEhF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;IACT,CAAC;IAED,QAAQ,CAAC;QACP,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;KACd,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,KAAkC;IAC5E,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IACvF,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,MAAM,gBAAgB,GACpB,MAAM,CAAC,gBAAgB,IAAI,qBAAqB,CAAC,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;IAC5E,MAAM,iBAAiB,GAAG,SAAS,IAAI,EAAE,CAAC;IAC1C,MAAM,oBAAoB,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;IAEjE,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAG,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACtD,eAAe,CAAC,QAAQ,EAAE;YACxB,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,OAAO;YACd,SAAS,EAAE,iBAAiB;SAC7B,CAAC,CAAC;QACH,OAAO;YACL,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,SAAS;YACT,KAAK,EAAE,OAAO;SACf,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,IAAI,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACtE,eAAe,CAAC,QAAQ,EAAE;YACxB,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,OAAO;YACd,SAAS,EAAE,iBAAiB;SAC7B,CAAC,CAAC;QACH,OAAO;YACL,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,OAAO,IAAI,OAAO;YAC3B,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,SAAS;YACT,KAAK,EAAE,OAAO;SACf,CAAC;IACJ,CAAC;IAED,eAAe,CAAC,QAAQ,EAAE;QACxB,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,iBAAiB;KAC7B,CAAC,CAAC;IACH,OAAO;QACL,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,MAAM;QACd,OAAO;QACP,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,SAAS;QACT,gBAAgB;KACjB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,14 @@
1
+ export declare function tryExtractTextFromStreamJsonLine(line: string): string | undefined;
2
+ export declare function tryExtractSessionIdFromStreamJsonLine(line: string): string | undefined;
3
+ export interface StreamJsonStdoutResult {
4
+ content: string;
5
+ displayText: string;
6
+ hasResult: boolean;
7
+ success: boolean;
8
+ error?: string;
9
+ structuredOutput?: Record<string, unknown>;
10
+ }
11
+ export declare function aggregateResultFromStdout(stdout: string): StreamJsonStdoutResult;
12
+ export declare function aggregateContentFromStdout(stdout: string): string;
13
+ export declare function extractSessionIdFromStdout(stdout: string): string | undefined;
14
+ //# sourceMappingURL=stream-json-lines.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-json-lines.d.ts","sourceRoot":"","sources":["../../../src/infra/claude-headless/stream-json-lines.ts"],"names":[],"mappings":"AAkGA,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGjF;AAED,wBAAgB,qCAAqC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAMtF;AAiCD,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,sBAAsB,CA0ChF;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAW7E"}