takt 0.44.0 → 0.46.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 (595) hide show
  1. package/README.md +1 -0
  2. package/builtins/en/config.yaml +9 -0
  3. package/builtins/en/facets/instructions/implement-maintenance.md +2 -0
  4. package/builtins/en/facets/instructions/implement.md +3 -2
  5. package/builtins/en/facets/instructions/review-arch.md +1 -1
  6. package/builtins/en/facets/instructions/review-coding.md +4 -3
  7. package/builtins/en/facets/instructions/review-cqrs-es.md +1 -1
  8. package/builtins/en/facets/instructions/review-pure.md +1 -0
  9. package/builtins/en/facets/instructions/review-qa.md +1 -0
  10. package/builtins/en/facets/instructions/review-terraform.md +1 -1
  11. package/builtins/en/facets/instructions/review-test.md +2 -0
  12. package/builtins/en/facets/instructions/supervise-maintenance.md +7 -5
  13. package/builtins/en/facets/instructions/supervise.md +11 -4
  14. package/builtins/en/facets/instructions/write-tests-maintenance.md +1 -0
  15. package/builtins/en/facets/knowledge/e2e-testing.md +11 -1
  16. package/builtins/en/facets/knowledge/unit-testing.md +11 -0
  17. package/builtins/en/facets/output-contracts/maintenance-scope.md +5 -0
  18. package/builtins/en/facets/output-contracts/pure-review.md +61 -0
  19. package/builtins/en/facets/output-contracts/qa-review.md +5 -0
  20. package/builtins/en/facets/output-contracts/supervisor-validation.md +1 -1
  21. package/builtins/en/facets/output-contracts/testing-review.md +6 -1
  22. package/builtins/en/facets/personas/ai-antipattern-reviewer.md +2 -2
  23. package/builtins/en/facets/personas/architecture-reviewer.md +1 -1
  24. package/builtins/en/facets/personas/pr-commenter.md +2 -2
  25. package/builtins/en/facets/personas/pure-reviewer.md +22 -0
  26. package/builtins/en/facets/personas/supervisor.md +1 -1
  27. package/builtins/en/facets/personas/terraform-reviewer.md +3 -3
  28. package/builtins/en/facets/policies/ai-antipattern.md +2 -0
  29. package/builtins/en/facets/policies/coding.md +36 -0
  30. package/builtins/en/facets/policies/review.md +26 -1
  31. package/builtins/en/facets/policies/testing.md +25 -0
  32. package/builtins/en/workflows/backend-cqrs.yaml +21 -0
  33. package/builtins/en/workflows/backend.yaml +21 -0
  34. package/builtins/en/workflows/default-high.yaml +1 -1
  35. package/builtins/en/workflows/default-peer-review.yaml +24 -3
  36. package/builtins/en/workflows/draft.yaml +4 -32
  37. package/builtins/en/workflows/dual-cqrs.yaml +21 -0
  38. package/builtins/en/workflows/dual.yaml +5 -5
  39. package/builtins/en/workflows/frontend-maintenance.yaml +21 -0
  40. package/builtins/en/workflows/frontend.yaml +21 -0
  41. package/builtins/en/workflows/peer-review.yaml +13 -70
  42. package/builtins/en/workflows/provider-options/edit.yaml +21 -0
  43. package/builtins/en/workflows/provider-options/review-files.yaml +10 -0
  44. package/builtins/en/workflows/provider-options/review-readonly.yaml +16 -0
  45. package/builtins/en/workflows/provider-options/review-web.yaml +14 -0
  46. package/builtins/en/workflows/review-backend-cqrs.yaml +21 -0
  47. package/builtins/en/workflows/review-backend.yaml +21 -0
  48. package/builtins/en/workflows/review-default.yaml +6 -6
  49. package/builtins/en/workflows/review-dual-cqrs.yaml +21 -0
  50. package/builtins/en/workflows/review-dual.yaml +21 -0
  51. package/builtins/en/workflows/review-fix-backend-cqrs.yaml +21 -0
  52. package/builtins/en/workflows/review-fix-backend.yaml +21 -0
  53. package/builtins/en/workflows/review-fix-default.yaml +6 -6
  54. package/builtins/en/workflows/review-fix-dual-cqrs.yaml +21 -0
  55. package/builtins/en/workflows/review-fix-dual.yaml +21 -0
  56. package/builtins/en/workflows/review-fix-frontend.yaml +21 -0
  57. package/builtins/en/workflows/review-fix-takt-default.yaml +5 -5
  58. package/builtins/en/workflows/review-frontend.yaml +21 -0
  59. package/builtins/en/workflows/review-takt-default.yaml +6 -6
  60. package/builtins/en/workflows/takt-default-refresh-all.yaml +6 -6
  61. package/builtins/en/workflows/takt-default-refresh-fast.yaml +5 -5
  62. package/builtins/en/workflows/takt-default.yaml +4 -27
  63. package/builtins/en/workflows/terraform.yaml +23 -2
  64. package/builtins/ja/config.yaml +9 -0
  65. package/builtins/ja/facets/instructions/implement-maintenance.md +2 -0
  66. package/builtins/ja/facets/instructions/implement.md +3 -2
  67. package/builtins/ja/facets/instructions/review-arch.md +1 -1
  68. package/builtins/ja/facets/instructions/review-coding.md +4 -3
  69. package/builtins/ja/facets/instructions/review-cqrs-es.md +1 -1
  70. package/builtins/ja/facets/instructions/review-pure.md +1 -0
  71. package/builtins/ja/facets/instructions/review-qa.md +1 -0
  72. package/builtins/ja/facets/instructions/review-terraform.md +1 -1
  73. package/builtins/ja/facets/instructions/review-test.md +2 -0
  74. package/builtins/ja/facets/instructions/supervise-maintenance.md +6 -4
  75. package/builtins/ja/facets/instructions/supervise.md +11 -4
  76. package/builtins/ja/facets/instructions/write-tests-maintenance.md +1 -0
  77. package/builtins/ja/facets/knowledge/e2e-testing.md +11 -1
  78. package/builtins/ja/facets/knowledge/unit-testing.md +11 -0
  79. package/builtins/ja/facets/output-contracts/maintenance-scope.md +5 -0
  80. package/builtins/ja/facets/output-contracts/pure-review.md +61 -0
  81. package/builtins/ja/facets/output-contracts/qa-review.md +5 -0
  82. package/builtins/ja/facets/output-contracts/supervisor-validation.md +1 -1
  83. package/builtins/ja/facets/output-contracts/testing-review.md +6 -1
  84. package/builtins/ja/facets/personas/ai-antipattern-reviewer.md +2 -2
  85. package/builtins/ja/facets/personas/architecture-reviewer.md +2 -2
  86. package/builtins/ja/facets/personas/pr-commenter.md +3 -3
  87. package/builtins/ja/facets/personas/pure-reviewer.md +22 -0
  88. package/builtins/ja/facets/personas/supervisor.md +1 -1
  89. package/builtins/ja/facets/personas/terraform-reviewer.md +3 -3
  90. package/builtins/ja/facets/policies/ai-antipattern.md +2 -0
  91. package/builtins/ja/facets/policies/coding.md +36 -0
  92. package/builtins/ja/facets/policies/review.md +26 -1
  93. package/builtins/ja/facets/policies/testing.md +25 -0
  94. package/builtins/ja/workflows/backend-cqrs.yaml +21 -0
  95. package/builtins/ja/workflows/backend.yaml +21 -0
  96. package/builtins/ja/workflows/default-high.yaml +1 -1
  97. package/builtins/ja/workflows/default-peer-review.yaml +24 -3
  98. package/builtins/ja/workflows/draft.yaml +4 -32
  99. package/builtins/ja/workflows/dual-cqrs.yaml +21 -0
  100. package/builtins/ja/workflows/dual.yaml +5 -5
  101. package/builtins/ja/workflows/frontend-maintenance.yaml +21 -0
  102. package/builtins/ja/workflows/frontend.yaml +21 -0
  103. package/builtins/ja/workflows/peer-review.yaml +13 -70
  104. package/builtins/ja/workflows/provider-options/edit.yaml +21 -0
  105. package/builtins/ja/workflows/provider-options/review-files.yaml +10 -0
  106. package/builtins/ja/workflows/provider-options/review-readonly.yaml +16 -0
  107. package/builtins/ja/workflows/provider-options/review-web.yaml +14 -0
  108. package/builtins/ja/workflows/review-backend-cqrs.yaml +21 -0
  109. package/builtins/ja/workflows/review-backend.yaml +21 -0
  110. package/builtins/ja/workflows/review-default.yaml +7 -7
  111. package/builtins/ja/workflows/review-dual-cqrs.yaml +21 -0
  112. package/builtins/ja/workflows/review-dual.yaml +21 -0
  113. package/builtins/ja/workflows/review-fix-backend-cqrs.yaml +21 -0
  114. package/builtins/ja/workflows/review-fix-backend.yaml +21 -0
  115. package/builtins/ja/workflows/review-fix-default.yaml +6 -6
  116. package/builtins/ja/workflows/review-fix-dual-cqrs.yaml +21 -0
  117. package/builtins/ja/workflows/review-fix-dual.yaml +21 -0
  118. package/builtins/ja/workflows/review-fix-frontend.yaml +21 -0
  119. package/builtins/ja/workflows/review-fix-takt-default.yaml +6 -6
  120. package/builtins/ja/workflows/review-frontend.yaml +21 -0
  121. package/builtins/ja/workflows/review-takt-default.yaml +7 -7
  122. package/builtins/ja/workflows/takt-default-refresh-all.yaml +6 -6
  123. package/builtins/ja/workflows/takt-default-refresh-fast.yaml +5 -5
  124. package/builtins/ja/workflows/takt-default.yaml +4 -27
  125. package/builtins/ja/workflows/terraform.yaml +22 -1
  126. package/dist/agents/decompose-task-usecase.d.ts +2 -1
  127. package/dist/agents/decompose-task-usecase.d.ts.map +1 -1
  128. package/dist/agents/decompose-task-usecase.js +7 -5
  129. package/dist/agents/decompose-task-usecase.js.map +1 -1
  130. package/dist/agents/judge-status-usecase.d.ts +21 -8
  131. package/dist/agents/judge-status-usecase.d.ts.map +1 -1
  132. package/dist/agents/judge-status-usecase.js +30 -13
  133. package/dist/agents/judge-status-usecase.js.map +1 -1
  134. package/dist/agents/runner-prompt.d.ts +3 -1
  135. package/dist/agents/runner-prompt.d.ts.map +1 -1
  136. package/dist/agents/runner-prompt.js +11 -4
  137. package/dist/agents/runner-prompt.js.map +1 -1
  138. package/dist/agents/runner.d.ts.map +1 -1
  139. package/dist/agents/runner.js +23 -5
  140. package/dist/agents/runner.js.map +1 -1
  141. package/dist/agents/structured-caller/capability-aware-structured-caller.d.ts +1 -1
  142. package/dist/agents/structured-caller/capability-aware-structured-caller.d.ts.map +1 -1
  143. package/dist/agents/structured-caller/capability-aware-structured-caller.js +3 -3
  144. package/dist/agents/structured-caller/capability-aware-structured-caller.js.map +1 -1
  145. package/dist/agents/structured-caller/contracts.d.ts +1 -1
  146. package/dist/agents/structured-caller/contracts.d.ts.map +1 -1
  147. package/dist/agents/structured-caller/default-structured-caller.d.ts +1 -1
  148. package/dist/agents/structured-caller/default-structured-caller.d.ts.map +1 -1
  149. package/dist/agents/structured-caller/default-structured-caller.js +2 -2
  150. package/dist/agents/structured-caller/default-structured-caller.js.map +1 -1
  151. package/dist/agents/structured-caller/prompt-based-structured-caller.d.ts +1 -1
  152. package/dist/agents/structured-caller/prompt-based-structured-caller.d.ts.map +1 -1
  153. package/dist/agents/structured-caller/prompt-based-structured-caller.js +16 -17
  154. package/dist/agents/structured-caller/prompt-based-structured-caller.js.map +1 -1
  155. package/dist/agents/team-leader-structured-output.d.ts +3 -3
  156. package/dist/agents/team-leader-structured-output.d.ts.map +1 -1
  157. package/dist/agents/team-leader-structured-output.js +14 -10
  158. package/dist/agents/team-leader-structured-output.js.map +1 -1
  159. package/dist/agents/types.d.ts +1 -0
  160. package/dist/agents/types.d.ts.map +1 -1
  161. package/dist/commands/analyze-usage.d.ts +26 -0
  162. package/dist/commands/analyze-usage.d.ts.map +1 -0
  163. package/dist/commands/analyze-usage.js +305 -0
  164. package/dist/commands/analyze-usage.js.map +1 -0
  165. package/dist/core/logging/contracts.d.ts +1 -0
  166. package/dist/core/logging/contracts.d.ts.map +1 -1
  167. package/dist/core/logging/contracts.js +1 -0
  168. package/dist/core/logging/contracts.js.map +1 -1
  169. package/dist/core/logging/phaseUsageEvent.d.ts +40 -0
  170. package/dist/core/logging/phaseUsageEvent.d.ts.map +1 -0
  171. package/dist/core/logging/phaseUsageEvent.js +195 -0
  172. package/dist/core/logging/phaseUsageEvent.js.map +1 -0
  173. package/dist/core/logging/providerEvent.d.ts +4 -0
  174. package/dist/core/logging/providerEvent.d.ts.map +1 -1
  175. package/dist/core/logging/providerEvent.js +31 -27
  176. package/dist/core/logging/providerEvent.js.map +1 -1
  177. package/dist/core/models/config-schemas.d.ts +16 -0
  178. package/dist/core/models/config-schemas.d.ts.map +1 -1
  179. package/dist/core/models/part.d.ts +2 -1
  180. package/dist/core/models/part.d.ts.map +1 -1
  181. package/dist/core/models/schema-base.d.ts +66 -0
  182. package/dist/core/models/schema-base.d.ts.map +1 -1
  183. package/dist/core/models/schema-base.js +7 -2
  184. package/dist/core/models/schema-base.js.map +1 -1
  185. package/dist/core/models/workflow-provider-options.d.ts +5 -0
  186. package/dist/core/models/workflow-provider-options.d.ts.map +1 -1
  187. package/dist/core/models/workflow-provider-options.js.map +1 -1
  188. package/dist/core/models/workflow-schemas.d.ts +165 -21
  189. package/dist/core/models/workflow-schemas.d.ts.map +1 -1
  190. package/dist/core/models/workflow-schemas.js +62 -18
  191. package/dist/core/models/workflow-schemas.js.map +1 -1
  192. package/dist/core/models/workflow-types.d.ts +1 -1
  193. package/dist/core/models/workflow-types.d.ts.map +1 -1
  194. package/dist/core/models/workflow-types.js.map +1 -1
  195. package/dist/core/workflow/arpeggio/types.d.ts +3 -0
  196. package/dist/core/workflow/arpeggio/types.d.ts.map +1 -1
  197. package/dist/core/workflow/engine/ArpeggioRunner.d.ts +2 -0
  198. package/dist/core/workflow/engine/ArpeggioRunner.d.ts.map +1 -1
  199. package/dist/core/workflow/engine/ArpeggioRunner.js +10 -0
  200. package/dist/core/workflow/engine/ArpeggioRunner.js.map +1 -1
  201. package/dist/core/workflow/engine/OptionsBuilder.d.ts.map +1 -1
  202. package/dist/core/workflow/engine/OptionsBuilder.js +2 -0
  203. package/dist/core/workflow/engine/OptionsBuilder.js.map +1 -1
  204. package/dist/core/workflow/engine/ParallelRunner.d.ts +1 -0
  205. package/dist/core/workflow/engine/ParallelRunner.d.ts.map +1 -1
  206. package/dist/core/workflow/engine/ParallelRunner.js +4 -0
  207. package/dist/core/workflow/engine/ParallelRunner.js.map +1 -1
  208. package/dist/core/workflow/engine/StepExecutor.d.ts.map +1 -1
  209. package/dist/core/workflow/engine/StepExecutor.js +2 -0
  210. package/dist/core/workflow/engine/StepExecutor.js.map +1 -1
  211. package/dist/core/workflow/engine/TeamLeaderRunner.d.ts.map +1 -1
  212. package/dist/core/workflow/engine/TeamLeaderRunner.js +9 -4
  213. package/dist/core/workflow/engine/TeamLeaderRunner.js.map +1 -1
  214. package/dist/core/workflow/engine/WorkflowEngineSetup.d.ts.map +1 -1
  215. package/dist/core/workflow/engine/WorkflowEngineSetup.js +2 -0
  216. package/dist/core/workflow/engine/WorkflowEngineSetup.js.map +1 -1
  217. package/dist/core/workflow/engine/WorkflowRunLoop.d.ts +1 -0
  218. package/dist/core/workflow/engine/WorkflowRunLoop.d.ts.map +1 -1
  219. package/dist/core/workflow/engine/WorkflowRunLoop.js +3 -0
  220. package/dist/core/workflow/engine/WorkflowRunLoop.js.map +1 -1
  221. package/dist/core/workflow/engine/engine-provider-options.d.ts.map +1 -1
  222. package/dist/core/workflow/engine/engine-provider-options.js +3 -3
  223. package/dist/core/workflow/engine/engine-provider-options.js.map +1 -1
  224. package/dist/core/workflow/engine/parallel-logger.d.ts +1 -1
  225. package/dist/core/workflow/engine/parallel-logger.d.ts.map +1 -1
  226. package/dist/core/workflow/engine/parallel-logger.js +3 -1
  227. package/dist/core/workflow/engine/parallel-logger.js.map +1 -1
  228. package/dist/core/workflow/engine/task-decomposer.d.ts +1 -1
  229. package/dist/core/workflow/engine/task-decomposer.d.ts.map +1 -1
  230. package/dist/core/workflow/engine/task-decomposer.js +3 -3
  231. package/dist/core/workflow/engine/task-decomposer.js.map +1 -1
  232. package/dist/core/workflow/engine/team-leader-budget-errors.d.ts +2 -0
  233. package/dist/core/workflow/engine/team-leader-budget-errors.d.ts.map +1 -0
  234. package/dist/core/workflow/engine/team-leader-budget-errors.js +12 -0
  235. package/dist/core/workflow/engine/team-leader-budget-errors.js.map +1 -0
  236. package/dist/core/workflow/engine/team-leader-execution.d.ts.map +1 -1
  237. package/dist/core/workflow/engine/team-leader-execution.js +16 -2
  238. package/dist/core/workflow/engine/team-leader-execution.js.map +1 -1
  239. package/dist/core/workflow/engine/team-leader-part-runner.d.ts.map +1 -1
  240. package/dist/core/workflow/engine/team-leader-part-runner.js +1 -0
  241. package/dist/core/workflow/engine/team-leader-part-runner.js.map +1 -1
  242. package/dist/core/workflow/evaluation/RuleEvaluator.d.ts +2 -0
  243. package/dist/core/workflow/evaluation/RuleEvaluator.d.ts.map +1 -1
  244. package/dist/core/workflow/evaluation/RuleEvaluator.js +1 -0
  245. package/dist/core/workflow/evaluation/RuleEvaluator.js.map +1 -1
  246. package/dist/core/workflow/observability/workflowSpans.d.ts +3 -0
  247. package/dist/core/workflow/observability/workflowSpans.d.ts.map +1 -1
  248. package/dist/core/workflow/observability/workflowSpans.js +61 -10
  249. package/dist/core/workflow/observability/workflowSpans.js.map +1 -1
  250. package/dist/core/workflow/phase-runner.d.ts +2 -0
  251. package/dist/core/workflow/phase-runner.d.ts.map +1 -1
  252. package/dist/core/workflow/phase-runner.js.map +1 -1
  253. package/dist/core/workflow/promotion/PromotionEvaluator.d.ts +2 -0
  254. package/dist/core/workflow/promotion/PromotionEvaluator.d.ts.map +1 -1
  255. package/dist/core/workflow/promotion/PromotionEvaluator.js +1 -0
  256. package/dist/core/workflow/promotion/PromotionEvaluator.js.map +1 -1
  257. package/dist/core/workflow/promotion/promotion-runtime.d.ts +2 -0
  258. package/dist/core/workflow/promotion/promotion-runtime.d.ts.map +1 -1
  259. package/dist/core/workflow/promotion/promotion-runtime.js +1 -0
  260. package/dist/core/workflow/promotion/promotion-runtime.js.map +1 -1
  261. package/dist/core/workflow/quality-gates/commandGateRunner.d.ts +1 -1
  262. package/dist/core/workflow/quality-gates/commandGateRunner.d.ts.map +1 -1
  263. package/dist/core/workflow/quality-gates/commandGateRunner.js +11 -6
  264. package/dist/core/workflow/quality-gates/commandGateRunner.js.map +1 -1
  265. package/dist/core/workflow/quality-gates/qualityGateRunner.d.ts +1 -1
  266. package/dist/core/workflow/quality-gates/qualityGateRunner.d.ts.map +1 -1
  267. package/dist/core/workflow/quality-gates/qualityGateRunner.js +2 -2
  268. package/dist/core/workflow/quality-gates/qualityGateRunner.js.map +1 -1
  269. package/dist/core/workflow/quality-gates/types.d.ts +2 -0
  270. package/dist/core/workflow/quality-gates/types.d.ts.map +1 -1
  271. package/dist/core/workflow/report-phase-runner.js +1 -0
  272. package/dist/core/workflow/report-phase-runner.js.map +1 -1
  273. package/dist/core/workflow/status-judgment-phase.d.ts.map +1 -1
  274. package/dist/core/workflow/status-judgment-phase.js +2 -0
  275. package/dist/core/workflow/status-judgment-phase.js.map +1 -1
  276. package/dist/core/workflow/types.d.ts +4 -0
  277. package/dist/core/workflow/types.d.ts.map +1 -1
  278. package/dist/features/interactive/aiCaller.d.ts +6 -1
  279. package/dist/features/interactive/aiCaller.d.ts.map +1 -1
  280. package/dist/features/interactive/aiCaller.js +14 -5
  281. package/dist/features/interactive/aiCaller.js.map +1 -1
  282. package/dist/features/interactive/clipboardImage.d.ts +3 -0
  283. package/dist/features/interactive/clipboardImage.d.ts.map +1 -0
  284. package/dist/features/interactive/clipboardImage.js +91 -0
  285. package/dist/features/interactive/clipboardImage.js.map +1 -0
  286. package/dist/features/interactive/clipboardImageFeedback.d.ts +2 -0
  287. package/dist/features/interactive/clipboardImageFeedback.d.ts.map +1 -0
  288. package/dist/features/interactive/clipboardImageFeedback.js +6 -0
  289. package/dist/features/interactive/clipboardImageFeedback.js.map +1 -0
  290. package/dist/features/interactive/conversationLoop.d.ts.map +1 -1
  291. package/dist/features/interactive/conversationLoop.js +8 -3
  292. package/dist/features/interactive/conversationLoop.js.map +1 -1
  293. package/dist/features/interactive/imageAttachments.d.ts +3 -0
  294. package/dist/features/interactive/imageAttachments.d.ts.map +1 -1
  295. package/dist/features/interactive/imageAttachments.js +18 -0
  296. package/dist/features/interactive/imageAttachments.js.map +1 -1
  297. package/dist/features/interactive/interactive.d.ts +1 -0
  298. package/dist/features/interactive/interactive.d.ts.map +1 -1
  299. package/dist/features/interactive/interactive.js.map +1 -1
  300. package/dist/features/interactive/interactiveInput.d.ts.map +1 -1
  301. package/dist/features/interactive/interactiveInput.js +4 -1
  302. package/dist/features/interactive/interactiveInput.js.map +1 -1
  303. package/dist/features/interactive/lineEditor.d.ts +18 -14
  304. package/dist/features/interactive/lineEditor.d.ts.map +1 -1
  305. package/dist/features/interactive/lineEditor.js +174 -80
  306. package/dist/features/interactive/lineEditor.js.map +1 -1
  307. package/dist/features/interactive/passthroughMode.d.ts.map +1 -1
  308. package/dist/features/interactive/passthroughMode.js +4 -1
  309. package/dist/features/interactive/passthroughMode.js.map +1 -1
  310. package/dist/features/interactive/quietMode.d.ts.map +1 -1
  311. package/dist/features/interactive/quietMode.js +5 -2
  312. package/dist/features/interactive/quietMode.js.map +1 -1
  313. package/dist/features/interactive/slashCommandRegistry.d.ts.map +1 -1
  314. package/dist/features/interactive/slashCommandRegistry.js +1 -0
  315. package/dist/features/interactive/slashCommandRegistry.js.map +1 -1
  316. package/dist/features/tasks/attachments.d.ts.map +1 -1
  317. package/dist/features/tasks/attachments.js +18 -1
  318. package/dist/features/tasks/attachments.js.map +1 -1
  319. package/dist/features/tasks/execute/runAllTasks.js +3 -3
  320. package/dist/features/tasks/execute/runAllTasks.js.map +1 -1
  321. package/dist/features/tasks/execute/selectAndExecute.d.ts.map +1 -1
  322. package/dist/features/tasks/execute/selectAndExecute.js +1 -2
  323. package/dist/features/tasks/execute/selectAndExecute.js.map +1 -1
  324. package/dist/features/tasks/execute/taskSpecContext.d.ts +1 -0
  325. package/dist/features/tasks/execute/taskSpecContext.d.ts.map +1 -1
  326. package/dist/features/tasks/execute/taskSpecContext.js +25 -1
  327. package/dist/features/tasks/execute/taskSpecContext.js.map +1 -1
  328. package/dist/features/tasks/execute/workflowExecution.d.ts.map +1 -1
  329. package/dist/features/tasks/execute/workflowExecution.js +30 -0
  330. package/dist/features/tasks/execute/workflowExecution.js.map +1 -1
  331. package/dist/features/tasks/execute/workflowExecutionBootstrap.d.ts.map +1 -1
  332. package/dist/features/tasks/execute/workflowExecutionBootstrap.js +13 -1
  333. package/dist/features/tasks/execute/workflowExecutionBootstrap.js.map +1 -1
  334. package/dist/features/tasks/execute/workflowExecutionEvents.d.ts.map +1 -1
  335. package/dist/features/tasks/execute/workflowExecutionEvents.js +6 -0
  336. package/dist/features/tasks/execute/workflowExecutionEvents.js.map +1 -1
  337. package/dist/features/tasks/watch/index.js +3 -3
  338. package/dist/features/tasks/watch/index.js.map +1 -1
  339. package/dist/infra/claude/client.d.ts.map +1 -1
  340. package/dist/infra/claude/client.js +2 -0
  341. package/dist/infra/claude/client.js.map +1 -1
  342. package/dist/infra/claude/executor.d.ts.map +1 -1
  343. package/dist/infra/claude/executor.js +5 -35
  344. package/dist/infra/claude/executor.js.map +1 -1
  345. package/dist/infra/claude/image-input.d.ts +4 -0
  346. package/dist/infra/claude/image-input.d.ts.map +1 -0
  347. package/dist/infra/claude/image-input.js +63 -0
  348. package/dist/infra/claude/image-input.js.map +1 -0
  349. package/dist/infra/claude/options-builder.d.ts.map +1 -1
  350. package/dist/infra/claude/options-builder.js +2 -3
  351. package/dist/infra/claude/options-builder.js.map +1 -1
  352. package/dist/infra/claude/types.d.ts +5 -0
  353. package/dist/infra/claude/types.d.ts.map +1 -1
  354. package/dist/infra/claude/usage.d.ts +3 -0
  355. package/dist/infra/claude/usage.d.ts.map +1 -0
  356. package/dist/infra/claude/usage.js +45 -0
  357. package/dist/infra/claude/usage.js.map +1 -0
  358. package/dist/infra/claude-headless/headless-spawn.d.ts.map +1 -1
  359. package/dist/infra/claude-headless/headless-spawn.js +2 -1
  360. package/dist/infra/claude-headless/headless-spawn.js.map +1 -1
  361. package/dist/infra/claude-headless/result-response.d.ts.map +1 -1
  362. package/dist/infra/claude-headless/result-response.js +1 -0
  363. package/dist/infra/claude-headless/result-response.js.map +1 -1
  364. package/dist/infra/claude-headless/stream-json-lines.d.ts +2 -0
  365. package/dist/infra/claude-headless/stream-json-lines.d.ts.map +1 -1
  366. package/dist/infra/claude-headless/stream-json-lines.js +4 -0
  367. package/dist/infra/claude-headless/stream-json-lines.js.map +1 -1
  368. package/dist/infra/claude-headless/types.d.ts +1 -0
  369. package/dist/infra/claude-headless/types.d.ts.map +1 -1
  370. package/dist/infra/claude-terminal/client.d.ts.map +1 -1
  371. package/dist/infra/claude-terminal/client.js +1 -0
  372. package/dist/infra/claude-terminal/client.js.map +1 -1
  373. package/dist/infra/claude-terminal/response-normalizer.js.map +1 -1
  374. package/dist/infra/claude-terminal/tmux-backend.d.ts.map +1 -1
  375. package/dist/infra/claude-terminal/tmux-backend.js +15 -1
  376. package/dist/infra/claude-terminal/tmux-backend.js.map +1 -1
  377. package/dist/infra/claude-terminal/types.d.ts +2 -0
  378. package/dist/infra/claude-terminal/types.d.ts.map +1 -1
  379. package/dist/infra/codex/client.d.ts.map +1 -1
  380. package/dist/infra/codex/client.js +14 -2
  381. package/dist/infra/codex/client.js.map +1 -1
  382. package/dist/infra/codex/types.d.ts +3 -0
  383. package/dist/infra/codex/types.d.ts.map +1 -1
  384. package/dist/infra/codex/types.js.map +1 -1
  385. package/dist/infra/config/configNormalizers.d.ts.map +1 -1
  386. package/dist/infra/config/configNormalizers.js +9 -1
  387. package/dist/infra/config/configNormalizers.js.map +1 -1
  388. package/dist/infra/config/loaders/workflowDiscovery.js +1 -1
  389. package/dist/infra/config/loaders/workflowDiscovery.js.map +1 -1
  390. package/dist/infra/config/loaders/workflowLoopMonitorNormalizer.d.ts.map +1 -1
  391. package/dist/infra/config/loaders/workflowLoopMonitorNormalizer.js +1 -1
  392. package/dist/infra/config/loaders/workflowLoopMonitorNormalizer.js.map +1 -1
  393. package/dist/infra/config/loaders/workflowParser.d.ts.map +1 -1
  394. package/dist/infra/config/loaders/workflowParser.js +1 -1
  395. package/dist/infra/config/loaders/workflowParser.js.map +1 -1
  396. package/dist/infra/config/loaders/workflowProviderOptionsResolver.d.ts +7 -0
  397. package/dist/infra/config/loaders/workflowProviderOptionsResolver.d.ts.map +1 -0
  398. package/dist/infra/config/loaders/workflowProviderOptionsResolver.js +68 -0
  399. package/dist/infra/config/loaders/workflowProviderOptionsResolver.js.map +1 -0
  400. package/dist/infra/config/loaders/workflowStepFeaturesNormalizer.d.ts.map +1 -1
  401. package/dist/infra/config/loaders/workflowStepFeaturesNormalizer.js +5 -3
  402. package/dist/infra/config/loaders/workflowStepFeaturesNormalizer.js.map +1 -1
  403. package/dist/infra/config/loaders/workflowStepNormalizer.d.ts +1 -1
  404. package/dist/infra/config/loaders/workflowStepNormalizer.d.ts.map +1 -1
  405. package/dist/infra/config/loaders/workflowStepNormalizer.js +41 -10
  406. package/dist/infra/config/loaders/workflowStepNormalizer.js.map +1 -1
  407. package/dist/infra/config/providerOptions.d.ts +6 -1
  408. package/dist/infra/config/providerOptions.d.ts.map +1 -1
  409. package/dist/infra/config/providerOptions.js +31 -3
  410. package/dist/infra/config/providerOptions.js.map +1 -1
  411. package/dist/infra/config/providerOptionsContract.d.ts +3 -3
  412. package/dist/infra/config/providerOptionsContract.d.ts.map +1 -1
  413. package/dist/infra/config/providerOptionsContract.js +8 -0
  414. package/dist/infra/config/providerOptionsContract.js.map +1 -1
  415. package/dist/infra/copilot/client.d.ts.map +1 -1
  416. package/dist/infra/copilot/client.js +7 -8
  417. package/dist/infra/copilot/client.js.map +1 -1
  418. package/dist/infra/copilot/types.d.ts +1 -0
  419. package/dist/infra/copilot/types.d.ts.map +1 -1
  420. package/dist/infra/cursor/client.d.ts.map +1 -1
  421. package/dist/infra/cursor/client.js +7 -8
  422. package/dist/infra/cursor/client.js.map +1 -1
  423. package/dist/infra/cursor/types.d.ts +1 -0
  424. package/dist/infra/cursor/types.d.ts.map +1 -1
  425. package/dist/infra/fs/index.d.ts +1 -0
  426. package/dist/infra/fs/index.d.ts.map +1 -1
  427. package/dist/infra/fs/index.js +1 -0
  428. package/dist/infra/fs/index.js.map +1 -1
  429. package/dist/infra/fs/jsonl.d.ts +2 -0
  430. package/dist/infra/fs/jsonl.d.ts.map +1 -0
  431. package/dist/infra/fs/jsonl.js +5 -0
  432. package/dist/infra/fs/jsonl.js.map +1 -0
  433. package/dist/infra/kiro/client.d.ts.map +1 -1
  434. package/dist/infra/kiro/client.js +10 -0
  435. package/dist/infra/kiro/client.js.map +1 -1
  436. package/dist/infra/kiro/process.d.ts.map +1 -1
  437. package/dist/infra/kiro/process.js +4 -2
  438. package/dist/infra/kiro/process.js.map +1 -1
  439. package/dist/infra/kiro/types.d.ts +2 -0
  440. package/dist/infra/kiro/types.d.ts.map +1 -1
  441. package/dist/infra/observability/otelFoundation.d.ts +2 -0
  442. package/dist/infra/observability/otelFoundation.d.ts.map +1 -1
  443. package/dist/infra/observability/otelFoundation.js +138 -25
  444. package/dist/infra/observability/otelFoundation.js.map +1 -1
  445. package/dist/infra/observability/usageEventsSpanProcessor.d.ts +19 -0
  446. package/dist/infra/observability/usageEventsSpanProcessor.d.ts.map +1 -0
  447. package/dist/infra/observability/usageEventsSpanProcessor.js +77 -0
  448. package/dist/infra/observability/usageEventsSpanProcessor.js.map +1 -0
  449. package/dist/infra/opencode/OpenCodeStreamHandler.d.ts +19 -0
  450. package/dist/infra/opencode/OpenCodeStreamHandler.d.ts.map +1 -1
  451. package/dist/infra/opencode/OpenCodeStreamHandler.js +10 -0
  452. package/dist/infra/opencode/OpenCodeStreamHandler.js.map +1 -1
  453. package/dist/infra/opencode/allowedTools.d.ts +2 -0
  454. package/dist/infra/opencode/allowedTools.d.ts.map +1 -0
  455. package/dist/infra/opencode/allowedTools.js +10 -0
  456. package/dist/infra/opencode/allowedTools.js.map +1 -0
  457. package/dist/infra/opencode/client.d.ts +4 -2
  458. package/dist/infra/opencode/client.d.ts.map +1 -1
  459. package/dist/infra/opencode/client.js +283 -124
  460. package/dist/infra/opencode/client.js.map +1 -1
  461. package/dist/infra/opencode/index.d.ts +1 -1
  462. package/dist/infra/opencode/index.d.ts.map +1 -1
  463. package/dist/infra/opencode/index.js +1 -1
  464. package/dist/infra/opencode/index.js.map +1 -1
  465. package/dist/infra/opencode/types.d.ts +12 -10
  466. package/dist/infra/opencode/types.d.ts.map +1 -1
  467. package/dist/infra/opencode/types.js +109 -40
  468. package/dist/infra/opencode/types.js.map +1 -1
  469. package/dist/infra/providers/allowed-tool-edit-policy.d.ts +3 -0
  470. package/dist/infra/providers/allowed-tool-edit-policy.d.ts.map +1 -0
  471. package/dist/infra/providers/allowed-tool-edit-policy.js +10 -0
  472. package/dist/infra/providers/allowed-tool-edit-policy.js.map +1 -0
  473. package/dist/infra/providers/claude-headless.d.ts +3 -0
  474. package/dist/infra/providers/claude-headless.d.ts.map +1 -1
  475. package/dist/infra/providers/claude-headless.js +9 -0
  476. package/dist/infra/providers/claude-headless.js.map +1 -1
  477. package/dist/infra/providers/claude-terminal.d.ts +3 -0
  478. package/dist/infra/providers/claude-terminal.d.ts.map +1 -1
  479. package/dist/infra/providers/claude-terminal.js +9 -0
  480. package/dist/infra/providers/claude-terminal.js.map +1 -1
  481. package/dist/infra/providers/claude.d.ts +3 -0
  482. package/dist/infra/providers/claude.d.ts.map +1 -1
  483. package/dist/infra/providers/claude.js +10 -0
  484. package/dist/infra/providers/claude.js.map +1 -1
  485. package/dist/infra/providers/codex.d.ts +3 -0
  486. package/dist/infra/providers/codex.d.ts.map +1 -1
  487. package/dist/infra/providers/codex.js +9 -0
  488. package/dist/infra/providers/codex.js.map +1 -1
  489. package/dist/infra/providers/copilot.d.ts +3 -0
  490. package/dist/infra/providers/copilot.d.ts.map +1 -1
  491. package/dist/infra/providers/copilot.js +8 -0
  492. package/dist/infra/providers/copilot.js.map +1 -1
  493. package/dist/infra/providers/cursor.d.ts +3 -0
  494. package/dist/infra/providers/cursor.d.ts.map +1 -1
  495. package/dist/infra/providers/cursor.js +8 -0
  496. package/dist/infra/providers/cursor.js.map +1 -1
  497. package/dist/infra/providers/imageAttachmentPrompt.d.ts +4 -0
  498. package/dist/infra/providers/imageAttachmentPrompt.d.ts.map +1 -0
  499. package/dist/infra/providers/imageAttachmentPrompt.js +10 -0
  500. package/dist/infra/providers/imageAttachmentPrompt.js.map +1 -0
  501. package/dist/infra/providers/kiro.d.ts +3 -0
  502. package/dist/infra/providers/kiro.d.ts.map +1 -1
  503. package/dist/infra/providers/kiro.js +12 -0
  504. package/dist/infra/providers/kiro.js.map +1 -1
  505. package/dist/infra/providers/mock.d.ts +3 -0
  506. package/dist/infra/providers/mock.d.ts.map +1 -1
  507. package/dist/infra/providers/mock.js +8 -0
  508. package/dist/infra/providers/mock.js.map +1 -1
  509. package/dist/infra/providers/opencode.d.ts +4 -1
  510. package/dist/infra/providers/opencode.d.ts.map +1 -1
  511. package/dist/infra/providers/opencode.js +17 -3
  512. package/dist/infra/providers/opencode.js.map +1 -1
  513. package/dist/infra/providers/provider-capabilities.d.ts +3 -0
  514. package/dist/infra/providers/provider-capabilities.d.ts.map +1 -1
  515. package/dist/infra/providers/provider-capabilities.js +19 -1
  516. package/dist/infra/providers/provider-capabilities.js.map +1 -1
  517. package/dist/infra/providers/runtimeSystemPrompt.d.ts +2 -0
  518. package/dist/infra/providers/runtimeSystemPrompt.d.ts.map +1 -0
  519. package/dist/infra/providers/runtimeSystemPrompt.js +11 -0
  520. package/dist/infra/providers/runtimeSystemPrompt.js.map +1 -0
  521. package/dist/infra/providers/types.d.ts +9 -0
  522. package/dist/infra/providers/types.d.ts.map +1 -1
  523. package/dist/infra/rate-limit/detection.d.ts +1 -1
  524. package/dist/infra/rate-limit/detection.d.ts.map +1 -1
  525. package/dist/infra/rate-limit/detection.js +6 -7
  526. package/dist/infra/rate-limit/detection.js.map +1 -1
  527. package/dist/infra/resources/schema-loader.d.ts +1 -1
  528. package/dist/infra/resources/schema-loader.d.ts.map +1 -1
  529. package/dist/infra/resources/schema-loader.js +8 -4
  530. package/dist/infra/resources/schema-loader.js.map +1 -1
  531. package/dist/infra/service/runSyncConflictResolver.d.ts.map +1 -1
  532. package/dist/infra/service/runSyncConflictResolver.js +3 -1
  533. package/dist/infra/service/runSyncConflictResolver.js.map +1 -1
  534. package/dist/infra/task/clone-exec.d.ts +2 -0
  535. package/dist/infra/task/clone-exec.d.ts.map +1 -1
  536. package/dist/infra/task/clone-exec.js +29 -0
  537. package/dist/infra/task/clone-exec.js.map +1 -1
  538. package/dist/infra/task/clone.d.ts.map +1 -1
  539. package/dist/infra/task/clone.js +3 -1
  540. package/dist/infra/task/clone.js.map +1 -1
  541. package/dist/infra/task/runner.d.ts +1 -1
  542. package/dist/infra/task/runner.d.ts.map +1 -1
  543. package/dist/infra/task/runner.js +2 -2
  544. package/dist/infra/task/runner.js.map +1 -1
  545. package/dist/infra/task/summarize.d.ts.map +1 -1
  546. package/dist/infra/task/summarize.js +3 -1
  547. package/dist/infra/task/summarize.js.map +1 -1
  548. package/dist/infra/task/taskLifecycleService.d.ts +1 -2
  549. package/dist/infra/task/taskLifecycleService.d.ts.map +1 -1
  550. package/dist/infra/task/taskLifecycleService.js +13 -19
  551. package/dist/infra/task/taskLifecycleService.js.map +1 -1
  552. package/dist/infra/task/taskRecordMutations.d.ts +0 -1
  553. package/dist/infra/task/taskRecordMutations.d.ts.map +1 -1
  554. package/dist/infra/task/taskRecordMutations.js +0 -12
  555. package/dist/infra/task/taskRecordMutations.js.map +1 -1
  556. package/dist/shared/constants.d.ts +3 -0
  557. package/dist/shared/constants.d.ts.map +1 -1
  558. package/dist/shared/constants.js +3 -0
  559. package/dist/shared/constants.js.map +1 -1
  560. package/dist/shared/i18n/labels_en.yaml +3 -1
  561. package/dist/shared/i18n/labels_ja.yaml +3 -1
  562. package/dist/shared/prompts/en/perform_agent_system_prompt.md +9 -1
  563. package/dist/shared/prompts/en/provider_runtime_system_prompt.md +18 -0
  564. package/dist/shared/prompts/index.d.ts +1 -1
  565. package/dist/shared/prompts/index.d.ts.map +1 -1
  566. package/dist/shared/prompts/index.js +7 -1
  567. package/dist/shared/prompts/index.js.map +1 -1
  568. package/dist/shared/prompts/ja/perform_agent_system_prompt.md +9 -1
  569. package/dist/shared/prompts/ja/provider_runtime_system_prompt.md +18 -0
  570. package/dist/shared/telemetry/childProcessEnv.d.ts +7 -0
  571. package/dist/shared/telemetry/childProcessEnv.d.ts.map +1 -0
  572. package/dist/shared/telemetry/childProcessEnv.js +176 -0
  573. package/dist/shared/telemetry/childProcessEnv.js.map +1 -0
  574. package/dist/shared/telemetry/index.d.ts +3 -0
  575. package/dist/shared/telemetry/index.d.ts.map +1 -0
  576. package/dist/shared/telemetry/index.js +3 -0
  577. package/dist/shared/telemetry/index.js.map +1 -0
  578. package/dist/shared/telemetry/otlp.d.ts +40 -0
  579. package/dist/shared/telemetry/otlp.d.ts.map +1 -0
  580. package/dist/shared/telemetry/otlp.js +72 -0
  581. package/dist/shared/telemetry/otlp.js.map +1 -0
  582. package/dist/shared/types/provider.d.ts +28 -1
  583. package/dist/shared/types/provider.d.ts.map +1 -1
  584. package/dist/shared/types/provider.js +15 -1
  585. package/dist/shared/types/provider.js.map +1 -1
  586. package/dist/shared/ui/StreamDisplay.d.ts.map +1 -1
  587. package/dist/shared/ui/StreamDisplay.js +1 -0
  588. package/dist/shared/ui/StreamDisplay.js.map +1 -1
  589. package/package.json +8 -4
  590. package/builtins/en/facets/instructions/review-requirements.md +0 -17
  591. package/builtins/en/facets/output-contracts/requirements-review.md +0 -56
  592. package/builtins/en/facets/personas/requirements-reviewer.md +0 -33
  593. package/builtins/ja/facets/instructions/review-requirements.md +0 -17
  594. package/builtins/ja/facets/output-contracts/requirements-review.md +0 -56
  595. package/builtins/ja/facets/personas/requirements-reviewer.md +0 -33
@@ -0,0 +1,305 @@
1
+ import { existsSync, lstatSync, readFileSync, readdirSync } from 'node:fs';
2
+ import { basename, join, resolve } from 'node:path';
3
+ import { pathToFileURL } from 'node:url';
4
+ import { PHASE_USAGE_EVENTS_LOG_FILE_SUFFIX } from '../core/logging/contracts.js';
5
+ const MARKDOWN_COLUMNS = [
6
+ ['step', 'step'],
7
+ ['phase', 'phase'],
8
+ ['provider', 'provider'],
9
+ ['model', 'model'],
10
+ ['runs', 'runs'],
11
+ ['calls', 'calls'],
12
+ ['missing', 'missing'],
13
+ ['input_tokens', 'inputTokens'],
14
+ ['output_tokens', 'outputTokens'],
15
+ ['total_tokens', 'totalTokens'],
16
+ ['cached_input_tokens', 'cachedInputTokens'],
17
+ ['cache_creation_input_tokens', 'cacheCreationInputTokens'],
18
+ ['cache_read_input_tokens', 'cacheReadInputTokens'],
19
+ ['avg_total_tokens', 'avgTotalTokens'],
20
+ ['median_total_tokens', 'medianTotalTokens'],
21
+ ['stddev_total_tokens', 'stddevTotalTokens'],
22
+ ];
23
+ export function analyzeUsage(inputs) {
24
+ const files = resolvePhaseUsageFiles(inputs);
25
+ const groups = new Map();
26
+ for (const file of files) {
27
+ for (const record of readPhaseUsageRecords(file)) {
28
+ const key = groupKey(record);
29
+ let group = groups.get(key);
30
+ if (!group) {
31
+ group = {
32
+ key,
33
+ step: record.step,
34
+ phase: record.phase,
35
+ provider: record.provider,
36
+ model: record.provider_model,
37
+ runs: new Set(),
38
+ calls: 0,
39
+ missing: 0,
40
+ inputTokens: 0,
41
+ outputTokens: 0,
42
+ totalTokens: 0,
43
+ cachedInputTokens: 0,
44
+ cacheCreationInputTokens: 0,
45
+ cacheReadInputTokens: 0,
46
+ totalSamples: [],
47
+ };
48
+ groups.set(key, group);
49
+ }
50
+ addRecord(group, record);
51
+ }
52
+ }
53
+ return [...groups.values()]
54
+ .sort((a, b) => a.key.localeCompare(b.key))
55
+ .map(groupToRow);
56
+ }
57
+ export function formatUsageAnalysis(rows, format = 'markdown') {
58
+ return format === 'csv' ? formatCsv(rows) : formatMarkdown(rows);
59
+ }
60
+ export function resolvePhaseUsageFiles(inputs) {
61
+ const files = new Set();
62
+ for (const input of inputs) {
63
+ const target = resolve(input);
64
+ if (!existsSync(target)) {
65
+ throw new Error(`Input path does not exist: ${input}`);
66
+ }
67
+ const stat = lstatSync(target);
68
+ if (stat.isDirectory()) {
69
+ for (const file of listPhaseUsageFilesInDirectory(target)) {
70
+ files.add(file);
71
+ }
72
+ continue;
73
+ }
74
+ if (stat.isFile()) {
75
+ if (!isPhaseUsageFile(target)) {
76
+ throw new Error(`Input file is not a phase usage event file: ${input}`);
77
+ }
78
+ files.add(target);
79
+ }
80
+ }
81
+ return [...files].sort();
82
+ }
83
+ function listPhaseUsageFilesInDirectory(dir) {
84
+ const candidates = [
85
+ ...listDirectPhaseUsageFiles(dir),
86
+ ...listDirectPhaseUsageFiles(join(dir, 'logs')),
87
+ ];
88
+ return candidates;
89
+ }
90
+ function listDirectPhaseUsageFiles(dir) {
91
+ if (!existsSync(dir) || !lstatSync(dir).isDirectory()) {
92
+ return [];
93
+ }
94
+ return readdirSync(dir)
95
+ .filter((entry) => isPhaseUsageFile(entry))
96
+ .map((entry) => join(dir, entry));
97
+ }
98
+ function isPhaseUsageFile(path) {
99
+ return basename(path).endsWith(PHASE_USAGE_EVENTS_LOG_FILE_SUFFIX);
100
+ }
101
+ function readPhaseUsageRecords(file) {
102
+ const records = [];
103
+ const content = readFileSync(file, 'utf-8');
104
+ for (const [index, line] of content.split('\n').entries()) {
105
+ const trimmed = line.trim();
106
+ if (!trimmed) {
107
+ continue;
108
+ }
109
+ try {
110
+ const record = JSON.parse(trimmed);
111
+ if (isPhaseUsageRecord(record)) {
112
+ records.push(record);
113
+ }
114
+ }
115
+ catch (error) {
116
+ const message = error instanceof Error ? error.message : String(error);
117
+ throw new Error(`Invalid JSON in ${file}:${index + 1}: ${message}`);
118
+ }
119
+ }
120
+ return records;
121
+ }
122
+ function isPhaseUsageRecord(value) {
123
+ if (value === null || typeof value !== 'object') {
124
+ return false;
125
+ }
126
+ const candidate = value;
127
+ return typeof candidate.run_id === 'string'
128
+ && typeof candidate.provider === 'string'
129
+ && typeof candidate.provider_model === 'string'
130
+ && typeof candidate.step === 'string'
131
+ && typeof candidate.phase === 'string'
132
+ && typeof candidate.usage_missing === 'boolean'
133
+ && candidate.usage !== null
134
+ && typeof candidate.usage === 'object';
135
+ }
136
+ function groupKey(record) {
137
+ return [
138
+ record.step,
139
+ record.phase,
140
+ record.provider,
141
+ record.provider_model,
142
+ ].join('\u0000');
143
+ }
144
+ function addRecord(group, record) {
145
+ group.runs.add(record.run_id);
146
+ group.calls += 1;
147
+ if (record.usage_missing) {
148
+ group.missing += 1;
149
+ return;
150
+ }
151
+ const inputTokens = finiteNumber(record.usage.input_tokens);
152
+ const outputTokens = finiteNumber(record.usage.output_tokens);
153
+ const totalTokens = finiteNumber(record.usage.total_tokens);
154
+ if (inputTokens === undefined || outputTokens === undefined || totalTokens === undefined) {
155
+ group.missing += 1;
156
+ return;
157
+ }
158
+ group.inputTokens += inputTokens;
159
+ group.outputTokens += outputTokens;
160
+ group.totalTokens += totalTokens;
161
+ group.cachedInputTokens += finiteNumber(record.usage.cached_input_tokens) ?? 0;
162
+ group.cacheCreationInputTokens += finiteNumber(record.usage.cache_creation_input_tokens) ?? 0;
163
+ group.cacheReadInputTokens += finiteNumber(record.usage.cache_read_input_tokens) ?? 0;
164
+ group.totalSamples.push(totalTokens);
165
+ }
166
+ function groupToRow(group) {
167
+ return {
168
+ step: group.step,
169
+ phase: group.phase,
170
+ provider: group.provider,
171
+ model: group.model,
172
+ runs: group.runs.size,
173
+ calls: group.calls,
174
+ missing: group.missing,
175
+ inputTokens: group.inputTokens,
176
+ outputTokens: group.outputTokens,
177
+ totalTokens: group.totalTokens,
178
+ cachedInputTokens: group.cachedInputTokens,
179
+ cacheCreationInputTokens: group.cacheCreationInputTokens,
180
+ cacheReadInputTokens: group.cacheReadInputTokens,
181
+ avgTotalTokens: average(group.totalSamples),
182
+ medianTotalTokens: median(group.totalSamples),
183
+ stddevTotalTokens: standardDeviation(group.totalSamples),
184
+ };
185
+ }
186
+ function finiteNumber(value) {
187
+ return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
188
+ }
189
+ function average(values) {
190
+ if (values.length === 0) {
191
+ return 0;
192
+ }
193
+ return values.reduce((sum, value) => sum + value, 0) / values.length;
194
+ }
195
+ function median(values) {
196
+ if (values.length === 0) {
197
+ return 0;
198
+ }
199
+ const sorted = [...values].sort((a, b) => a - b);
200
+ const middle = Math.floor(sorted.length / 2);
201
+ if (sorted.length % 2 === 1) {
202
+ return sorted[middle] ?? 0;
203
+ }
204
+ return ((sorted[middle - 1] ?? 0) + (sorted[middle] ?? 0)) / 2;
205
+ }
206
+ function standardDeviation(values) {
207
+ if (values.length === 0) {
208
+ return 0;
209
+ }
210
+ const avg = average(values);
211
+ const variance = values.reduce((sum, value) => sum + ((value - avg) ** 2), 0) / values.length;
212
+ return Math.sqrt(variance);
213
+ }
214
+ function formatMarkdown(rows) {
215
+ if (rows.length === 0) {
216
+ return 'No phase usage events found.';
217
+ }
218
+ const header = `| ${MARKDOWN_COLUMNS.map(([name]) => name).join(' | ')} |`;
219
+ const separator = `| ${MARKDOWN_COLUMNS.map(() => '---').join(' | ')} |`;
220
+ const body = rows.map((row) => `| ${MARKDOWN_COLUMNS.map(([, key]) => formatValue(row[key])).join(' | ')} |`);
221
+ return [header, separator, ...body].join('\n');
222
+ }
223
+ function formatCsv(rows) {
224
+ const header = MARKDOWN_COLUMNS.map(([name]) => name).join(',');
225
+ const body = rows.map((row) => MARKDOWN_COLUMNS.map(([, key]) => csvCell(formatValue(row[key]))).join(','));
226
+ return [header, ...body].join('\n');
227
+ }
228
+ function formatValue(value) {
229
+ if (typeof value === 'number') {
230
+ return Number.isInteger(value) ? String(value) : value.toFixed(2);
231
+ }
232
+ return value;
233
+ }
234
+ function csvCell(value) {
235
+ if (!/[",\n]/.test(value)) {
236
+ return value;
237
+ }
238
+ return `"${value.replaceAll('"', '""')}"`;
239
+ }
240
+ function parseArgs(argv) {
241
+ let format = 'markdown';
242
+ const inputs = [];
243
+ for (let index = 0; index < argv.length; index += 1) {
244
+ const arg = argv[index];
245
+ if (arg === '--format') {
246
+ const value = argv[index + 1];
247
+ if (value !== 'markdown' && value !== 'csv') {
248
+ throw new Error('--format must be "markdown" or "csv"');
249
+ }
250
+ format = value;
251
+ index += 1;
252
+ continue;
253
+ }
254
+ if (arg?.startsWith('--format=')) {
255
+ const value = arg.slice('--format='.length);
256
+ if (value !== 'markdown' && value !== 'csv') {
257
+ throw new Error('--format must be "markdown" or "csv"');
258
+ }
259
+ format = value;
260
+ continue;
261
+ }
262
+ if (arg === '--help' || arg === '-h') {
263
+ throw new UsageHelp();
264
+ }
265
+ if (arg?.startsWith('-')) {
266
+ throw new Error(`Unknown option: ${arg}`);
267
+ }
268
+ if (arg !== undefined) {
269
+ inputs.push(arg);
270
+ }
271
+ }
272
+ if (inputs.length === 0) {
273
+ throw new Error('At least one phase usage event file or run directory is required');
274
+ }
275
+ return { format, inputs };
276
+ }
277
+ class UsageHelp extends Error {
278
+ }
279
+ function usageText() {
280
+ return [
281
+ 'Usage: npm run analyze:usage -- [--format markdown|csv] <file-or-directory>...',
282
+ '',
283
+ `Reads ${PHASE_USAGE_EVENTS_LOG_FILE_SUFFIX} files and aggregates by step, phase, provider, and model.`,
284
+ ].join('\n');
285
+ }
286
+ async function main() {
287
+ try {
288
+ const { format, inputs } = parseArgs(process.argv.slice(2));
289
+ const rows = analyzeUsage(inputs);
290
+ process.stdout.write(`${formatUsageAnalysis(rows, format)}\n`);
291
+ }
292
+ catch (error) {
293
+ if (error instanceof UsageHelp) {
294
+ process.stdout.write(`${usageText()}\n`);
295
+ return;
296
+ }
297
+ const message = error instanceof Error ? error.message : String(error);
298
+ process.stderr.write(`${message}\n\n${usageText()}\n`);
299
+ process.exitCode = 1;
300
+ }
301
+ }
302
+ if (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) {
303
+ await main();
304
+ }
305
+ //# sourceMappingURL=analyze-usage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyze-usage.js","sourceRoot":"","sources":["../../src/commands/analyze-usage.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  export declare const PROVIDER_EVENTS_LOG_FILE_SUFFIX = "-provider-events.jsonl";
2
2
  export declare const USAGE_EVENTS_LOG_FILE_SUFFIX = "-usage-events.jsonl";
3
+ export declare const PHASE_USAGE_EVENTS_LOG_FILE_SUFFIX = "-usage-events.phase.jsonl";
3
4
  export declare const USAGE_MISSING_REASONS: {
4
5
  readonly NOT_AVAILABLE: "usage_not_available";
5
6
  readonly TOKENS_MISSING: "usage_tokens_missing";
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../src/core/logging/contracts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,+BAA+B,2BAA2B,CAAC;AACxE,eAAO,MAAM,4BAA4B,wBAAwB,CAAC;AAElE,eAAO,MAAM,qBAAqB;;;;CAIxB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAC5B,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,OAAO,qBAAqB,CAAC,CAAC"}
1
+ {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../src/core/logging/contracts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,+BAA+B,2BAA2B,CAAC;AACxE,eAAO,MAAM,4BAA4B,wBAAwB,CAAC;AAClE,eAAO,MAAM,kCAAkC,8BAA8B,CAAC;AAE9E,eAAO,MAAM,qBAAqB;;;;CAIxB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAC5B,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,OAAO,qBAAqB,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export const PROVIDER_EVENTS_LOG_FILE_SUFFIX = '-provider-events.jsonl';
2
2
  export const USAGE_EVENTS_LOG_FILE_SUFFIX = '-usage-events.jsonl';
3
+ export const PHASE_USAGE_EVENTS_LOG_FILE_SUFFIX = '-usage-events.phase.jsonl';
3
4
  export const USAGE_MISSING_REASONS = {
4
5
  NOT_AVAILABLE: 'usage_not_available',
5
6
  TOKENS_MISSING: 'usage_tokens_missing',
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../src/core/logging/contracts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,+BAA+B,GAAG,wBAAwB,CAAC;AACxE,MAAM,CAAC,MAAM,4BAA4B,GAAG,qBAAqB,CAAC;AAElE,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,aAAa,EAAE,qBAAqB;IACpC,cAAc,EAAE,sBAAsB;IACtC,yBAAyB,EAAE,iCAAiC;CACpD,CAAC"}
1
+ {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../src/core/logging/contracts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,+BAA+B,GAAG,wBAAwB,CAAC;AACxE,MAAM,CAAC,MAAM,4BAA4B,GAAG,qBAAqB,CAAC;AAClE,MAAM,CAAC,MAAM,kCAAkC,GAAG,2BAA2B,CAAC;AAE9E,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,aAAa,EAAE,qBAAqB;IACpC,cAAc,EAAE,sBAAsB;IACtC,yBAAyB,EAAE,iCAAiC;CACpD,CAAC"}
@@ -0,0 +1,40 @@
1
+ import type { SpanSnapshot } from './span-to-ndjson-mapper.js';
2
+ import { type UsageMissingReason } from './contracts.js';
3
+ import { type ProviderType } from '../../shared/types/provider.js';
4
+ export type PhaseUsageType = 'phase1_execute' | 'phase2_report' | 'phase3_structured' | 'phase3_tag' | 'phase3_fallback';
5
+ export type PhaseUsageStepType = 'agent' | 'system' | 'workflow_call';
6
+ type PhaseName = 'execute' | 'report' | 'judge';
7
+ type JudgeMethod = 'structured_output' | 'phase3_tag' | 'ai_judge';
8
+ type JudgeStage = 1 | 2 | 3;
9
+ export interface PhaseUsageEventLogRecord {
10
+ run_id: string;
11
+ session_id: string;
12
+ provider: ProviderType;
13
+ provider_model: string;
14
+ step: string;
15
+ step_type: PhaseUsageStepType;
16
+ phase: PhaseUsageType;
17
+ phase_name: PhaseName;
18
+ phase_execution_id?: string;
19
+ judge_stage?: JudgeStage;
20
+ judge_method?: JudgeMethod;
21
+ timestamp: string;
22
+ success: boolean;
23
+ usage_missing: boolean;
24
+ reason?: UsageMissingReason;
25
+ usage: {
26
+ input_tokens?: number;
27
+ output_tokens?: number;
28
+ total_tokens?: number;
29
+ cached_input_tokens?: number;
30
+ cache_creation_input_tokens?: number;
31
+ cache_read_input_tokens?: number;
32
+ };
33
+ }
34
+ export interface PhaseUsageEventContext {
35
+ runId: string;
36
+ sessionId: string;
37
+ }
38
+ export declare function mapSpanEndToPhaseUsageEvent(span: SpanSnapshot, context: PhaseUsageEventContext): PhaseUsageEventLogRecord | undefined;
39
+ export {};
40
+ //# sourceMappingURL=phaseUsageEvent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phaseUsageEvent.d.ts","sourceRoot":"","sources":["../../../src/core/logging/phaseUsageEvent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAEnF,MAAM,MAAM,cAAc,GACtB,gBAAgB,GAChB,eAAe,GACf,mBAAmB,GACnB,YAAY,GACZ,iBAAiB,CAAC;AAEtB,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,QAAQ,GAAG,eAAe,CAAC;AACtE,KAAK,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAChD,KAAK,WAAW,GAAG,mBAAmB,GAAG,YAAY,GAAG,UAAU,CAAC;AACnE,KAAK,UAAU,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE5B,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,YAAY,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,kBAAkB,CAAC;IAC9B,KAAK,EAAE,cAAc,CAAC;IACtB,UAAU,EAAE,SAAS,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,KAAK,EAAE;QACL,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,2BAA2B,CAAC,EAAE,MAAM,CAAC;QACrC,uBAAuB,CAAC,EAAE,MAAM,CAAC;KAClC,CAAC;CACH;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAeD,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,sBAAsB,GAC9B,wBAAwB,GAAG,SAAS,CAQtC"}
@@ -0,0 +1,195 @@
1
+ import { USAGE_MISSING_REASONS, } from './contracts.js';
2
+ import { buildUsageEventPayload } from './providerEvent.js';
3
+ import { isProviderType } from '../../shared/types/provider.js';
4
+ export function mapSpanEndToPhaseUsageEvent(span, context) {
5
+ if (span.name.startsWith('phase.')) {
6
+ return mapPhaseSpan(span, context);
7
+ }
8
+ if (span.name.startsWith('judge_stage.')) {
9
+ return mapJudgeStageSpan(span, context);
10
+ }
11
+ return undefined;
12
+ }
13
+ function mapPhaseSpan(span, context) {
14
+ const phaseNumber = getNumber(span.attributes, 'takt.phase.number');
15
+ const phaseName = getPhaseName(span.attributes, 'takt.phase.name');
16
+ const phase = phaseLabelForPhaseSpan(phaseNumber, phaseName);
17
+ if (!phase || !phaseName) {
18
+ return undefined;
19
+ }
20
+ const common = buildCommonMeta(span);
21
+ if (!common) {
22
+ return undefined;
23
+ }
24
+ return buildRecord(span, context, {
25
+ ...common,
26
+ phase,
27
+ phaseName,
28
+ phaseExecutionId: getString(span.attributes, 'takt.phase.execution_id'),
29
+ success: getString(span.attributes, 'takt.phase.status') === 'done',
30
+ });
31
+ }
32
+ function mapJudgeStageSpan(span, context) {
33
+ const judgeStage = getJudgeStage(span.attributes, 'takt.judge.stage');
34
+ const judgeMethod = getJudgeMethod(span.attributes, 'takt.judge.method');
35
+ const phase = phaseLabelForJudgeStage(judgeStage);
36
+ if (!phase || !judgeStage || !judgeMethod) {
37
+ return undefined;
38
+ }
39
+ const common = buildCommonMeta(span);
40
+ if (!common) {
41
+ return undefined;
42
+ }
43
+ return buildRecord(span, context, {
44
+ ...common,
45
+ phase,
46
+ phaseName: 'judge',
47
+ phaseExecutionId: getString(span.attributes, 'takt.phase.execution_id'),
48
+ judgeStage,
49
+ judgeMethod,
50
+ success: getString(span.attributes, 'takt.judge.status') === 'done',
51
+ });
52
+ }
53
+ function buildCommonMeta(span) {
54
+ const provider = getProvider(span.attributes, 'takt.provider.name');
55
+ const step = getString(span.attributes, 'takt.step.name');
56
+ const stepType = getStepType(span.attributes, 'takt.step.type');
57
+ if (!provider || !step || !stepType) {
58
+ return undefined;
59
+ }
60
+ return {
61
+ provider,
62
+ providerModel: getString(span.attributes, 'takt.model.name') ?? '(default)',
63
+ step,
64
+ stepType,
65
+ };
66
+ }
67
+ function buildRecord(span, context, meta) {
68
+ const usage = extractUsage(span.attributes);
69
+ return {
70
+ run_id: context.runId,
71
+ session_id: context.sessionId,
72
+ provider: meta.provider,
73
+ provider_model: meta.providerModel,
74
+ step: meta.step,
75
+ step_type: meta.stepType,
76
+ phase: meta.phase,
77
+ phase_name: meta.phaseName,
78
+ ...(meta.phaseExecutionId ? { phase_execution_id: meta.phaseExecutionId } : {}),
79
+ ...(meta.judgeStage ? { judge_stage: meta.judgeStage } : {}),
80
+ ...(meta.judgeMethod ? { judge_method: meta.judgeMethod } : {}),
81
+ timestamp: hrTimeToIso(span.endTime),
82
+ success: meta.success,
83
+ usage_missing: usage.missing,
84
+ ...(usage.reason ? { reason: usage.reason } : {}),
85
+ usage: usage.usage,
86
+ };
87
+ }
88
+ function extractUsage(attributes) {
89
+ const snapshot = usageSnapshotFromAttributes(attributes);
90
+ const payload = buildUsageEventPayload(snapshot);
91
+ return {
92
+ missing: payload.usage_missing,
93
+ ...payload,
94
+ };
95
+ }
96
+ function usageSnapshotFromAttributes(attributes) {
97
+ if (attributes['takt.usage.missing'] === true) {
98
+ return {
99
+ usageMissing: true,
100
+ reason: getUsageMissingReason(attributes['takt.usage.missing_reason']),
101
+ };
102
+ }
103
+ const inputTokens = getNumber(attributes, 'gen_ai.usage.input_tokens');
104
+ const outputTokens = getNumber(attributes, 'gen_ai.usage.output_tokens');
105
+ const totalTokens = getNumber(attributes, 'gen_ai.usage.total_tokens')
106
+ ?? (inputTokens !== undefined && outputTokens !== undefined ? inputTokens + outputTokens : undefined);
107
+ if (inputTokens === undefined || outputTokens === undefined || totalTokens === undefined) {
108
+ return {
109
+ usageMissing: true,
110
+ reason: hasAnyUsageAttribute(attributes)
111
+ ? USAGE_MISSING_REASONS.TOKENS_MISSING
112
+ : USAGE_MISSING_REASONS.NOT_AVAILABLE,
113
+ };
114
+ }
115
+ return {
116
+ usageMissing: false,
117
+ inputTokens,
118
+ outputTokens,
119
+ totalTokens,
120
+ cachedInputTokens: getNumber(attributes, 'gen_ai.usage.cached_input_tokens'),
121
+ cacheCreationInputTokens: getNumber(attributes, 'gen_ai.usage.cache_creation_input_tokens'),
122
+ cacheReadInputTokens: getNumber(attributes, 'gen_ai.usage.cache_read_input_tokens'),
123
+ };
124
+ }
125
+ function hasAnyUsageAttribute(attributes) {
126
+ return Object.keys(attributes).some((key) => key.startsWith('gen_ai.usage.'));
127
+ }
128
+ function phaseLabelForPhaseSpan(phaseNumber, phaseName) {
129
+ if (phaseNumber === 1 && phaseName === 'execute') {
130
+ return 'phase1_execute';
131
+ }
132
+ if (phaseNumber === 2 && phaseName === 'report') {
133
+ return 'phase2_report';
134
+ }
135
+ return undefined;
136
+ }
137
+ function phaseLabelForJudgeStage(stage) {
138
+ switch (stage) {
139
+ case 1:
140
+ return 'phase3_structured';
141
+ case 2:
142
+ return 'phase3_tag';
143
+ case 3:
144
+ return 'phase3_fallback';
145
+ default:
146
+ return undefined;
147
+ }
148
+ }
149
+ function getString(attributes, key) {
150
+ const value = attributes[key];
151
+ return typeof value === 'string' && value.length > 0 ? value : undefined;
152
+ }
153
+ function getNumber(attributes, key) {
154
+ const value = attributes[key];
155
+ return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
156
+ }
157
+ function getProvider(attributes, key) {
158
+ const value = getString(attributes, key);
159
+ return isProviderType(value) ? value : undefined;
160
+ }
161
+ function getStepType(attributes, key) {
162
+ const value = getString(attributes, key);
163
+ return value === 'agent'
164
+ || value === 'system'
165
+ || value === 'workflow_call'
166
+ ? value
167
+ : undefined;
168
+ }
169
+ function getPhaseName(attributes, key) {
170
+ const value = getString(attributes, key);
171
+ return value === 'execute' || value === 'report' || value === 'judge' ? value : undefined;
172
+ }
173
+ function getJudgeStage(attributes, key) {
174
+ const value = getNumber(attributes, key);
175
+ return value === 1 || value === 2 || value === 3 ? value : undefined;
176
+ }
177
+ function getJudgeMethod(attributes, key) {
178
+ const value = getString(attributes, key);
179
+ return value === 'structured_output' || value === 'phase3_tag' || value === 'ai_judge' ? value : undefined;
180
+ }
181
+ function getUsageMissingReason(value) {
182
+ return value === USAGE_MISSING_REASONS.NOT_AVAILABLE
183
+ || value === USAGE_MISSING_REASONS.TOKENS_MISSING
184
+ || value === USAGE_MISSING_REASONS.NOT_SUPPORTED_BY_PROVIDER
185
+ ? value
186
+ : USAGE_MISSING_REASONS.NOT_AVAILABLE;
187
+ }
188
+ function hrTimeToIso(time) {
189
+ if (!time) {
190
+ return new Date().toISOString();
191
+ }
192
+ const [seconds, nanoseconds] = time;
193
+ return new Date((seconds * 1000) + Math.floor(nanoseconds / 1_000_000)).toISOString();
194
+ }
195
+ //# sourceMappingURL=phaseUsageEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phaseUsageEvent.js","sourceRoot":"","sources":["../../../src/core/logging/phaseUsageEvent.ts"],"names":[],"mappings":"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"}
@@ -30,8 +30,11 @@ export interface UsageEventLogRecord {
30
30
  output_tokens?: number;
31
31
  total_tokens?: number;
32
32
  cached_input_tokens?: number;
33
+ cache_creation_input_tokens?: number;
34
+ cache_read_input_tokens?: number;
33
35
  };
34
36
  }
37
+ export type UsageEventPayload = Pick<UsageEventLogRecord, 'usage_missing' | 'reason' | 'usage'>;
35
38
  interface UsageEventMeta {
36
39
  runId: string;
37
40
  sessionId: string;
@@ -47,5 +50,6 @@ interface BuildUsageRecordParams {
47
50
  }
48
51
  export declare function normalizeProviderEvent(event: StreamEvent, provider: ProviderType, step: string, runId: string): ProviderEventLogRecord;
49
52
  export declare function buildUsageEventRecord(meta: UsageEventMeta, params: BuildUsageRecordParams): UsageEventLogRecord;
53
+ export declare function buildUsageEventPayload(usageSnapshot: ProviderUsageSnapshot): UsageEventPayload;
50
54
  export {};
51
55
  //# sourceMappingURL=providerEvent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"providerEvent.d.ts","sourceRoot":"","sources":["../../../src/core/logging/providerEvent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAyB,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEhF,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,aAAa,GAAG,eAAe,CAAC;AAE5F,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,YAAY,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,YAAY,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,QAAQ,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,KAAK,EAAE;QACL,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,CAAC;CACH;AAED,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,YAAY,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,UAAU,sBAAsB;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,qBAAqB,CAAC;IAC7B,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAkDD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,sBAAsB,CAmBxB;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,sBAAsB,GAC7B,mBAAmB,CA6CrB"}
1
+ {"version":3,"file":"providerEvent.d.ts","sourceRoot":"","sources":["../../../src/core/logging/providerEvent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAyB,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEhF,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,aAAa,GAAG,eAAe,CAAC;AAE5F,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,YAAY,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,YAAY,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,QAAQ,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,KAAK,EAAE;QACL,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,2BAA2B,CAAC,EAAE,MAAM,CAAC;QACrC,uBAAuB,CAAC,EAAE,MAAM,CAAC;KAClC,CAAC;CACH;AAED,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,EAAE,eAAe,GAAG,QAAQ,GAAG,OAAO,CAAC,CAAC;AAEhG,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,YAAY,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,UAAU,sBAAsB;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,qBAAqB,CAAC;IAC7B,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAkDD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,sBAAsB,CAmBxB;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,sBAAsB,GAC7B,mBAAmB,CAarB;AAED,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,qBAAqB,GAAG,iBAAiB,CAmC9F"}